Web development
I first started developing web projects when I was young. First it was only
html pages with css, but later I moved to php/MySQL, php/PostgreSQL, php/SQLite
combinations. I wrote my whole personal CMS for various purposes (from blogging,
finance data statistics, user management, web-shop) during this time. It was
quite in early days of php and I was looking for a bit better solution. Soon
Django as Python framework with CMS was a viable solution
to maintain and start new web projects. As older php projects required increased
maintaining and development I have decided to use twig as template engine of choice.
JQuery, Javascript, AJAX came in as a side products to increase dynamics of the
browsing experience, but were later a bit replaced with html5 and css3 possibilities.
Knowledge of Google Analytics, Google AdSense, Google Webmaster Tools and other useful
Google tools was obtained while trying to monetize the projects to some extent.
Projects
Below are some still maintained projects and their specifics.
Current website
Lets start with a bit of history of current website. It was written in php
with support of twig template engine and MySQL. No CMS or user management is
basically needed or implemented. Simple Google Analytics with Google AdSense
are added just for fun. As part of the normal development practice also LetsEncrypt certificate
was added in 2018.
In 2022 I was looking to containerize the website, to run it on my private RaspberryPi cluster
and for that I wanted to get rid of the database dependency. With only around 100 entries,
there is actually no real need for the database, but SQL back in old days was easy way to
store raw data. Today as we want lean docker containers, which could replicate the data
easily the option was to go with static website generator, but I wanted to avoid a huge
rewrite so I decided to migrate MySQL to SleekDB.
Website started as tech-review.net and was later moved to current domain.
Rolerski klub Ljubljana webpage
Since I am founder of the Rolerski klub Ljubljana this page has served as an
learning example through time. It started as simple news website written in php
with user management to add news. Background database was MySQL. Soon expansion
begun with adding some management to create invoices and for a simple accounting
system. It is integrated with Google Analytics for detailed statistics and used
AJAX to refresh various parts of the website. Search Engine Optimization was
constantly improved, but some limitations of the core system were soon spotted.
In 2015 new more modern look was established and system migrated to Django on
PostgreSQL. Google Analytics with Events reporting and loads of AJAX was perfected
to my current knowledge as well as previous lessons learned were implemented.
SE optimization is easier and more maintainable while still providing a decent
platform for the admins to admin content. JQuery was also added to produce a more
modern look.
You can find current version of the website on www.rklj.si
Inline skating halfmarathon Ljubljana
Rolerski klub Ljubljana organizes each year the inline speed skating halfmarathon (and marathon) in Ljubljana. We usually get around 50 to 100 competitors and to ease information sharing and registration I have designed and created a website. It is written in Django on PostgreSQL and deployed on Kubernetes Cluster as a stateless application since backups are formed from the existing pod while they are restored statelessly at each pod creation from the most recent backup. It is written in AMP (Accelerated Mobile Pages) which managed to make this an easy responsive design as well as much optimized for mobile devices with Webp image format.
You can find current version of the website on halfmarathon.rklj.si
Leerah blog and product presentation
I made a blog and product presentation website for my wife. After she learned Django she did not want to be bothered with complex website development for another pet project of her as well as she wanted to avoid private server hosting. With the emergence of static website generators from Markdown templates, which can be deployed and hosted directly from GitLab, we decided to go that way. I picked Hugo as a static website generator, because I wanted to dip a toe into GO programming language. She found Eureka template, which I then only slightly modified to also include Carousel and PayPal integration for the presented products.
You can find current version of the website on leerah.com
Coloring art blog
I made a coloring-art website for my wife. Since she was learning
Django, that was the go-to tool that I used and the new technology that I tried was AMP. My
challenge was to build just one website (in AMP) for both desktop and mobile users.
With all the challenges of the AMP (webeditors in Django do not support it, forms do not support
it, mailchimp subscription does not support it) it proved to be a bad design decision.
However after more than needed struggle I got all the above working, and I have even
managed to opensource the mailchimp-amp extension for Django (probably needs some work).
Website design is quite simple, but the AMP part the made the real challenge and in background
I also learned SCSS to produce nicer CSS (which is then embedded into a template because
of the AMP) for the website, but the real advantage was a bit lost because of the AMP.
On the end I am proud to have produced 0 AMP error and warning website and I hope that
the SEO is good enough to rank on first page on certain keywords.
You can find current version of the website on coloring-art.ninja
Rolarska zveza Slovenije webpage
Another quick project for the association I am part of. It is a php and MySQL
project with CMS for content and user management. It is also special as it has
interface to add live results to the website while calculating scores and sorting
by time or places. System enables us to run the whole race and broadcast it live
online with same click. Printing data using A4 templates is also enabled. System
is able to track progress of members and statuses of memberships. Website is using
simple Google Analytics for user tracking.
Site still has old look and is currently pending renewal. News are updated
regularly by admin base.
Website was on www.rolarska-zveza.si
Bont.si webshop
Also website developed to support the Rolerski klub Ljubljana main sponsor.
It needed to be online fast (time to first live version was 2 days) with basic
webshop/webinfo capabilities while providing a bit more specific CMS. It is using
quite a decent implementation of Google Analytics as well some AJAX to keep various
parts updated during the search. It has implemented SESSION cookies with some
specifics to provide seamless user interface. It also provides news with photo
uploads through admin interface where images are automatically scaled and watermarked.
Some expansion was done especially with adding Cycling section to original Inline
Speed skating section, but no major redesigns have occurred.
In 2020 the website got a bit of a redesign with the AMP version available and indexed.
Also everything was moved to Twig templating engine and update for php7 syntax and PDO
classes for the MySQL connection.
At begining of 2023 the AMP version was abandoned due to Google Analytics 4 not supporting
AMP pages. As that has changed in late 2023 there is some reconsideration to bring the
AMP website back.
You can find current version of the website on www.bont.si and current AMP version on amp.bont.si
Revija Vita online version of printed magazine
Expert health-education magazine Vita is very popular in Slovenia. The
printed version runs out fast, so the magazine has soon expanded to web. Main idea was
to keep the design of the printed version as close as possible, but to still make use of
dynamics of the web. The website is visited by between 3000 and 12000 people each day.
It is more impressive that content is exclusively in Slovenian, where overall population is
just 2 million.
Revija Vita has more than 80 official releases at the time of writing and many more are
expected to come. It also has news part where important health-educational news are shared.
It runs on the privately maintained server (by me), is based on php, MySQL and to improve
mobile experience uses JQuery and some JavaScript.
There was a redesign made to Twig templating engine in 2018 which improved site
maintainability and expansion with additional advertising spots.
You can find current version of the website on www.revija-vita.com
ProRollerTour ranking
As I am an vivid inline speed skating enthusiast and actively present on the speed skating scene, I had opportunity to develop an ATP style ranking for best Marathon Inline speed skaters (men and women). The ranking is based on Django and PostgreSQL, with support of Javascript, JQuery and AJAX to provide decent user experience on Desktop and Mobile devices. Design of the website is not my idea, but I was provided with an image, which I then transformed into a live website.
You can find current version of the website on www.prorollertour.com
Keyword-boost.com traffic-exchange with bounce rate lowering system
There was a need to drive traffic to my sites and there are a lot of traffic
exchange sites online that allow you to visit other sites in exchange for others
visiting yours. I identified the problem that this lowers your bounce rate as visitor
basically only sees one page and leaves. Among this, these websites are also listed
as referrals on the Google Analytics, so this kind of action is easily identifiable.
Idea was born that system can first redirect to Google or any other big search engine,
input keywords associated with website, then visit the website and also make another
view on the website. This way referral is from search engine, and bounce rate is lowered
because of the second view. It worked well, reaching over 100 active users, but search
engines kept adapting the statistics and also made it illegal in their terms of service
to use such techniques, so I decided to stop it and delete all account information.
Website had brilliant implementation of Google Analytics, AJAX scripting, with .php and
MySQL background (encrypted database system). Quite many nifty JavaScript and JQuery
tricks were performed to achieve the desired goals.
Website was on www.keyword-boost.com
Contributions to Open Source projects
For hobby I was contributing and using a lot of open source projects in the past. I never had confidence to maintain repositories or even start new ones, until I started working for Melexis. One of my tasks at Melexis is to enhance the Open Source mindset inside the company. Beside opening our tools also a lot more device drivers were opened.
You can visit my GitHub and GitLab profiles to see more details about my contributions and activities.
Linux kernel
I am official maintainer for MLX90614 - Melexis Infra Red Temperature Sensor, MLX90632 - Melexis Infra Red Temperature Sensor and MLX90635 - Melexis Infra Red Temperature Sensor. There are some other contributions that I also made to Linux kernel and they can all be found
in official Linux repository: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/log/?qt=grep&q=Crt+Mori
Private Kubernetes Cluster
I had few Raspberry Pi3 in the cupboard collecting dust, so I decided to make a Kubernetes cluster which could be used to host websites or do some computations for me. Since RPi3 is not powerful enough I added two Rasberry Pi4 (one is master and one node) to the cluster which now runs since 2018. In 2024 I have added another Raspberry Pi4 node as there were many pages now hosted on the cluster. Whenever I have some time, I try to write, develop and port applications to this Kubernetes cluster as I think that this is the future of IT. It was also a nice platform for testing few of my ideas from my book.
Private GitLab server
All the time of maintaining private web server has got me to also maintain private GitLab server where I could backup my existing projects. This has grown over time with addition of Dockerized GitLab-CI runners (Raspberry Pi Zero, Raspberry Pi3) on armhf and armlf architectures as well as huge knowledge base of tricks and pimps. Since server was regularly updated it kept me in shape with the IT practices and tricks to keep a decent availability. Because of the performance/disk space restrictions I have decided to close the GitLab server and just use public GitLab.com for future development.
Server was available on the-mori.com, but I have since moved all development to public GitLab as the code is more secure and backuped there.
Literature and references
As you can see on my blog I occasionally write something about my developer or coding experiences, but also some articles about traveling and my thoughts. This page serves mostly as my private blog and an easy followup of the solutions I have implemented for various occurring problems. It is a lot easier to search my own website than whole web again for the solution.
Major publications
Due to my extensive experience with Git Version Control System, I have written an article on GitLab.com about Numerous undo possibilities in Git.
The article can be found on:
GitLab-EE official documentation
GitLab-CE official documentation
Hacking Master Plan - Learn hacking tips and tricks
I wrote a fictional book where main character is using Raspberry Pi and Kuberenetes cluster to hack a bank
Buy it on:
Amazon or
Any other platform or
read summary on
my blog
Other non-embedded projects
Garmin Watchface
Garmin watchface which displays time, current heartrate, 4 hour heartrate graph and battery status.
Google Play applications
I wrote couple of applications for Android phones. In old times when clock did not have stopwatch, the Advanced stopwatch application was able to log times (and lap times) or 3 competitors, and could export to csv for computer storing and processing. The Click a dot is a simple game where you need to click the dots without missing too much and before time runs out.
My developer profile can be found on Google Play
Writing backlink, SEO or promotional articles in Slovenian and English
Internet marketing is constantly expanding. I am in contact with Press agency MOREL and we can offer expertly written articles in Slovenian. Because Slovenian market is very small, we have decided to add English articles as well. This means we are writing SEO articles, backlink articles and promotional articles for our clients and you can pick various payment options like PayPal or bank transfer. For more details you can contact them directly on info@morel.si
Article type | Price | Language |
10 articles, each 150 words for backlinking and SEO | 12 EUR + 22 % TAX | Slovenian |
10 articles, each 150 words for backlinking and SEO | 14 EUR + 22 % TAX | English |
20 articles, each 150 words for backlinking and SEO | 19 EUR + 22 % TAX | Slovenian |
20 articles, each 150 words for backlinking and SEO | 23 EUR + 22 % TAX | English |
30 articles, each 150 words for backlinking and SEO | 27 EUR + 22 % TAX | Slovenian |
30 articles, each 150 words for backlinking and SEO | 35 EUR + 22 % TAX | English |
Promotional article 150 to 600 words | 8 EUR + 22 % TAX | Slovenian |
Promotional article 150 to 600 words | 10 EUR + 22 % TAX | English |
Lately many of advertisers asked me to put banners on my page and to make customers spot their advertisement everywhere and to make things more official and transparent I have decided to put a short pricelist of current prices on this website. Of course you can also click on our banners from our advertising sponsors where you can get advertisement per impression, but if you want to show a bit more lasting support of my page there is special offer pricelist below.
Advertise on Crt's personal blog
Banner size | Price (monthly) | Payment option |
468x60px banner in header | 20 EUR + 22 % TAX | Contact me via contact form |
120x600px banner od right side | 40 EUR + 22 % TAX | Contact me via contact form |
CodersRank profile
I find an interesting graph of my presonal/hobby project development experience (based on git commits) and open source contributions.