Elasticsearch, Imgix and new URL structure 4 months ago

Three big things have happened on the site lately;

  • Searching have been switched from Algolia to Elasticsearch.
  • Images are now processed and served by Imgix.
  • URL structure have been replaced.

New domain; uctrl.io! 7 months ago

I’ve been hosing my projects on uctrl.net since 2009, back then I was using MediaWiki and it looked something like this. A few years ago the site was moved to www.uctrl.net, and now it is uctrl.io. So why the moves?


Tag based navigation FTW! 8 months ago

Categories or tags
Categories, tags, or both?

One of the first tables I created when I started work on this site was categories; of course posts and images needed a category. I then added a tags table and went on with my day. So posts and images could have one category and multiple tags. Great!

Well… Maybe not… As soon as I started adding content I realized that categorizing things is really hard… Yeah, somethings are clear-cut; like a project with an AVR microcontroller. But what about if a project has both an AVR microcontroller and an Arduino board?


A Christmas update 9 months ago

Life have been pretty busy the last couple of months, both at work and at home. So I haven’t had much time available for projects lately… And I started re-watching Game of Thrones, damn that series is awesome, and addictive! But I have some projects in the making :)


Disk full, site crashed 1 year ago

On Aug 18 03:38:37 (UTC+2) a backup script behaving badly filled up the entire server hard drive. This caused a number of services to crash, e.g. database and caching, which are pretty important parts of the system. This meant that pretty much the entire site returned 500 errors, the exceptions being pages that nginx had cached.

Nginx is set to micro-cache all pages on this site, and in the case of exceptions or other errors it serves stale (expired) versions of the cached page. Coincidentally this included the page the health checker uses to verify that the site is OK, which meant that the problem went unnoticed by the health check.

The problem was fixed 3.5 hours later. It is a pretty unfortunate series of events, but still; a few lessons learned:

  1. Don’t cache the health check URL.
  2. Keep your backup scripts in order.
  3. Notice when the hard drive is getting full…

Update; recent site changes 1 year ago

Just checking in… :) Here are some recently implemented site changes and updates:

  • Some parts now have links to their datasheets, obsolete parts list their replacement and parts quantity is shown with unit on project part lists.
  • View filters are now marked as active when they are turned on.
  • Images in galleries can now be browsed in the light box with previous and next buttons.
  • The image page have now been removed and redirects to the image file, image uses in listed below the thumbnail instead.
  • Turned Disqus comments back on, read why here.
  • Some layout and styling changes; font and line height increased on posts, moved the table of content, moved away from having two columns on the home page.
  • Improved part descriptions and updated old and obsolete part supplier URLs.
  • Fixed a pretty decent number of bugs.

Moved from BitBucket to GitHub, and new deployment 1 year ago

I’ve had all my private repositories on BitBucket for a number of years, but all my public/open source projects on GitHub. But after GitHub announced unlimited private repositories I figured it was time to leave BitBucket behind.

Now; BitBucket is a wonderful service, and you can have unlimited private repos for free! But I have to admit that I like the UI and community on GitHub more, a lot more actually.

After moving the entire repository and issue list to GitHub I also implemented a new way of deploying…


Major improvements to images 1 year ago

Images are a big part of the web and, according to Http Archive, 64% of the average bytes per page are images. So optimized images are definitely a big factor when it comes to site performance and weight. However; finding the balance between filesize and quality can be difficult, enter Kraken.io!


Searching is difficult, enter Algolia 1 year ago

Creating a good and fast search for your website is difficult, and very time consuming. Stop words, relevance, word weight and spelling errors…

I used full text search for a long time; but it’s far from perfect. It does handle stop words, but I found the relevance sorting to be less than ideal. And it does not at all tolerate misspellings.

Then I discovered Algolia!


Moving to jQuery 2.x, leaving IE 6/7/8 behind 1 year ago

I have updated the jQuery library from 1.x to 2.2, this means that support for Internet Explorer 6, 7, and 8 browsers is removed. I don’t really view this as a problem, seeing as even Microsoft is pulling the plug on Internet Explorer 8, 9, and 10.

jQuery 2.x is smaller and faster, and lets face it; if you are still using Internet Explorer 6, 7 or 8 you really need to upgrade!


Bye bye Disqus, hello custom commenting system 1 year ago

I’ve been using Disqus for comments on this site since it launched, never been happy with it though. However it did work, and it did allow me to implement comments with minimum effort.

I’ve been playing with the idea of writing a commenting system myself for some time, and about three weeks ago I got started. Today I am happy to announce that the new code has been pushed to the production server last night :)


Micro caching 2 years ago

After experimenting and playing with Nginx micro caching for some time; I have turned it on for the entire domain. My server can now handle more connections with less load, awesome!

Update August 2017: I no longer use micro caching on this site, mainly due to the CSRF tokens that is unique for all visitors.

Project pages updated 2 years ago

I’ve started work on refreshing some project pages. This involves creating parts lists for project that didn’t have that already, redrawing some old schematic drawings and taking some new photos with my SLR camera.


Say hello to Laravel 5! 2 years ago

I’ve spent the last week or so coding and adapting the website to Laravel 5 and today it was deployed to the production server:D I’ll spent the next weeks fine-tuning and tweaking while continuing to add content.

Maintenance is complete 2 years ago

Maintenance was performed as planned yesterday, with around 30 minutes of downtime. I am currently working on improving some key components of the site before adding more projects. This should, among other things, improve the response time somewhat. More information to come… :)

Things are happening on the back-end 2 years ago

I have successfully merged my old logistics system with this site. A lot of development was needed on back-end features and functions that is not really visible. So although it might look like nothing has been done; the change log says otherwise :) With all the back-end data now in place; (almost) all projects will get a complete parts list and…

I have started migrating projects from the old wiki system! :D

Content is on it's way :) 2 years ago

I’ve finally started to migrate content! First on the list is some resources from my previous logistics system, mostly used behind the scenes. After that I will start with the projects from the old Wiki, so stay tuned, I’ll keep you updated :)

Personal news 3 years ago

It’s been a long time since my last project. A lot has happened in my personal life, the biggest you can see on the image below. This have (naturally) taken a huge bite out of my spare time, but is also very rewarding :)

My twin boys
My beautiful twin boys :)

Website news 3 years ago

For many years I hosted all of my electronics and micro controller projects on this URL, using the MediaWiki application. Life happened and the site was taken down, and has been down for about a year. Now it’s coming back up! :)