I haven’t touched this blog for 5 years due to various reasons. I thought it would be entertaining to briefly summarize how projects and various tech concepts mentioned here stood the test of time.
-
Project #1 - programmable thermostat - that was quite a success. I used the thermostat for almost 10 years until selling the apartment this year. It never had any failures. Unfortunately I could not pass it to the next owner, as this would be considered placing the product on the market and would require full CE conformity, which would be 100x more expensive than the unit itself. Because of that I had to throw it away (to the electrical components recycling bin of course).
-
Internet of things - after several years of hype, this concept entered its ‘Trough of disillusionment’ phase. There are billions of Internet-connected things out there, but there are also serious issues like updates, security and vendor lock-in. Interestingly very little of real-life IoT devices can actually be described as ‘constrained’ (battery powered, low throughput, long life).
-
6LoWPAN - the 6LoWPAN standard has been adopted by Thread Group, but without some of its complementary standards like RPL. This may be considered a limited success. Also the standard has been used as a basis for IPv6 over Bluetooth.
-
Contiki OS - the Contiki OS community seems to have suffered a serious fork in 2017, and some of the most active contributors seem to have moved to Contiki NG project. The reasons for this fork are I remember the Contiki community as nice and helpful, and it’s quite sad to see it split.
-
Grinch Border Router - implementing border router on an 8-bit microcontroller no longer makes sense as Linux kernel has pretty good support for 6LoWPAN now.
-
Linux Border Router - 802.15.4 and 6LoWPAN support has been merged into Linux kernel. RPL is not supported. As a quick idea I think it would be possible to use Yocto to efficiently build your own Linux with patched kernel for RPL support.
-
IPv6 - it’s still not usable natively in Poland in 2020. My ISP does not support IPv6 addressing. Alternative solutions like tunnels must be used.
-
Roguelikes - I should have looked for some nice library to handle the basics like libtcod
-
Makers - wow - I have been so naive :)
-
Python - in 2020 Python 3 is finally the standard. In 2012 it wasn’t clear for me which version to use, so I first tried Python 3 but most libraries and examples didn’t work so I decided to go with Python 2.7. In my opinion the way Python 3 succession was handled was a major disaster. It’s good that this struggle is mostly over. Now the language is stronger than ever thanks to ML community.
-
Twisted - the framework is still widely used, although I suspect its popularity has been greatly undermined by including asyncio in Python Standard Library. Asyncio has been created by Guido van Rossum himself and has the same target group as Twisted. This no longer matters too much because cool kids use node.js now for this kind of applications.
-
txThings - this is my only somewhat successful project on Github, but unfortunately for the reasons specified above it has been created using Twisted and Python 2.7. In 2020 both are not cool anymore. Please use aiocoap which started long ago as txThings fork for Python 3 but is more complete than txThings ever was.
-
CoAP - I’ve no idea if this protocol is used in any real-life applications. In theory it should be a decent fit for constrained devices (battery-powered, low throughput), however I’m not sure which applications nowadays really require such devices. For mains-powered devices or devices with rechargeable batteries (like smartphones) it’s much better to use HTTP - it’s widely supported, has better tooling, and can be quite efficient too when necessary (especially HTTP/2).
-
Kivy - the project seems alive and well, and it seems to be marketed mostly as a multi-platform mobile framework, not a Python GUI library. That’s an interesting field, however there are other more popular multi-platform mobile tools: React Native and Xamarin. Personally I’d rather not use any of these tools for a high-profile Android or iOS app. Smartphone users are spoilt nowadays and native apps simply give better user experience in my opinion.
-
Aneska - the coap client app has been removed from Google play store in 2018 because I haven’t made some child directed declaration. I’ve no idea what’s this declaration and have no intention to find out. I sincerely hope no children out there play with Constrained Application Protocol. Important note: keeping apps in app store requires constant attention - I guess it’s the main reason why there are so few free apps of any value.
I also decided to move the blog to Hugo and Netlify hosting. It’s an elegant solution and writing posts in chosen text editor is much better experience than clumsy Blogger interface. Markdown is okay, and although it’s probably not the best text-based document format out there, it doesn’t distract from writing. Netlify platform is polished and solid, and setting it up took me below 1h (with domain and certs). I certainly recommend it to any person with enough programming knowledge to set up Hugo and a Github repository.