Tech

Vector vs List

Vector vs List

How could my crude implementation possibly be faster than STL?

This is an old discovery from 2013. I never published the draft in my old blog, however I still think this is interesting: Using STL algorithms may not be always the optimal solution! In 2013 I had a lot of free time while applying for jobs in Porto Alegre and was honing my C++ skills programming and listening the gurus talk. Bjarne Stroustrup explained in his keynote to Going Native 2012 that vector performs faster than list for insertions (at least for small elements and long lists) and removals and it makes pretty much sense.
Shutting Down Wordpress

Shutting Down Wordpress

Going back to static pages

I am not the most prolific blogger and most interaction with wordpress in the last years was limited to updating the software. Luckily Wordpress has an auto-updater, otherwise I would have been p0wnd a long time ago. Also wordpress is so web 2.0 - an ancient internet term, long before industry 4.0 even pre-dating “social media” or “iPhone”. Anyway we now are back to static sites without PHP or MySQL that require constant patches.
Git Basics

Git Basics

an introductory persentation for everyone

Last week I gave an introductory talk on git for my colleagues new to git. Since I made the presentation during lock down in my own time and did not include company secrets I can share the slides here. I have been working with git for some ten years now and I still learn new stuff. Maybe you find the useful, unfortunately the nice PowerPoint animations (that took quite some time to make) are lost.

Sales on Tindie are slow

It is hard to make any money from electronics

I had registered a business so I could sell my cool digitalrooster pcb assembly commercially. I chose tindie.com for this service as it caters to makers and tinkerers and my product is exactly for this audience. Spoiler alert: So far it was not a success. Luckily I had no gone all in and have a batch of 50 or a 100 manufactured. As a test I listed the surplus ones of my MK3b order on Tindie for the price I would get from pcbway if I ordered 50-100.
Finally: Digitalrooster Mk3b

Finally: Digitalrooster Mk3b

Going live on tindie!

I hesitated quite some time to place a new order with PCBway. The design was ready in May but component cost have gone way up since last November. Some parts cost more than double. But when my friend told me some of his friends are also interested in DigitalRooster it was time to go ahead fast. PCBway was quick, I only ordered 8 assemblies. Which in hindsight might have been an error, it looks they hand-soldered again instead of using a pick-and-place. DigitalRooster is ready for adventurous makers to use it and abuse it!
DigitalRooster Mk3a

DigitalRooster Mk3a

Check Your Silkscreen!

Finally I received the assembly for the revised layout of my Audio PCB. Covid-19 has affected lead times but PCBway was quicker than estimated. Unfortunately not everything was working and it is not pcbway’s fault. I learned you should not blindly trust the CAD data you get, even from ultralibrarian.
Digitalrooster On Hardware

Digitalrooster On Hardware

A Hackable Alarm Clock, Internet Radio and Podcast Player

For quite some time I have been playing around with QT on embedded to learn new stuff. One thing that I really found annoying was that my fancy Internet Radio alarm clock only allowed for a curated list of stations. I could not add my own podcasts. So the idea was to build my own, Open-Source alarm clock. The learning project turned out quite long project I called DigitalRooster. I am really proud,the quality is good enough that it keeps waking me up reliably since end 2018.
My first PCB design

My first PCB design

JLCPCB has real human customer care!

I got my first batch PCBs from JLCPCB in less than two weeks choosing low-priority shipping. I ordered five 2-layer PCBs with a laser cut stencil. The service of JLCPCB was surprisingly good. I never thought these orders for 5US$ would be checked by a human being but during manufacturing I was contacted by a person called Tony Lee inquiring about the backside stencil. I haven’t included back side solder mask since there are no components except for some THTs and solder jumpers that require soldering.

Once and for All: Loading Device Tree Overlays (at runtime)

Time for another Once-And-For-All post - tasks I do periodically (but not weekly) and keep forgetting the command syntax. Today: Loading Device tree overlays at runtime. # Mount kernel configfs mount -t configfs none /sys/kernel/config/ # Create the device tree node (name doesn't really matter) mkdir /sys/kernel/config/device-tree/overlays/rotary-enc # cat the device tree overlay to a special file cat /boot/overlays/rotary-encoder.dtbo > /sys/kernel/config/device-tree/overlays/rotary-enc/dtbo Note: This is raspberry-pi specific! Raspberry-Linux has a patch that allows loading overlays at runtime.
Emacs EDDL major Mode

Emacs EDDL major Mode

My first Emacs mode

The available tools to edit Electronic Device Description Language EDDL files feature rudimentary editors - compared to Emacs. Playing around with EDD using a editor that sucks the logic step was to sit, think and create a new major mode for Emacs. I created github.com/truschival/edd-mode. Since EDDL shares lot of syntactic constructs with plain C it made sense to create edd-mode based on cc-mode.A good thing for beginners, similar things have been done before.

Volatile Superstition

A rant on common misconceptions

After an argument I had recently at work about the volatile specifier on super scalar CPUs I decided to rant here. Programmers memory seems to be volatile regarding the meaning of the C or C++ qualifier ‘volatile’. There are at least a dozen of articles on the internet referencing or copying in verbatim Jones Nigel and a zillion discussions on bulletin boards. Yet there is at least as much superstition among even experienced developers.

Once and for All: iptables and udev rules

I hope I can remember it now

Time for another Once-And-For-All - tasks I do periodically (but not weekly) and keep forgetting the command syntax. I got myself a brand-new BeagleBone Black A6. When you attach the device via usb (and have a correctly configured kernel) it will appear as USB Gadget device with 3 classes a usb-uart serial device (CDC), a mass-storage device (MSC) and a usb-networking adapter (rndis_host). Magic™ will take care that it already has an ipaddress (192.
Fork Me on Github

Fork Me on Github

Sharing my code

Git is the most powerful tool for revision management I know of. But as it always goes - with great power comes great responsibility. Especially the responsibility to learn how to use this power. Git is something marvelous, even after years using git there are always thing to be discovered, learned and unfortunately forgotten. I really wonder if Linus and the other developers actually remembers all commands and features git provides.

Once and for All: substrings & substitiution in bash/zsh

Great shell foo (and a bit of imagemagick)

This is the first post in the new Once-And-For-All category. Maybe it’s just me who keeps forgetting commands and syntax from one use to the other. I don’t know how often I already googled simple basic actions like bash-syntax only to forget the the other week. Now to avoid future googling I decided to write a post. Today’s episode: Batch-renaming and conversion of all PNG-files in current folder to a 128x128 pixel JPEG using ImageMagick ‘convert’ (foo.
An App, it's an App

An App, it's an App

My pet project during unemployment

O.k. admitted, “App” is no longer buzz-word of the year and there is already at least one ‘App’ for everything. But nevertheless I proudly present my first Android App on Google Play Store Actually I didn’t write this app in desperate need for a todo List, I got myself organized before having a smartphone. But the development of this app it was the main justification why to buy an android gadget.