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.
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.
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.
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.
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.
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.
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.
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.
Looking at the source I think I wrote this back in 2001/2002 as learning project for Java. AddMan is a platform independent address manager written in Java. One of my first software projects ever. Gregor Zurowski and myself started it basically to learn Java and to overcome the multi platform dilemma. These were the days I ran 3 computers with Linux, Windows, MacOS and Solaris x86… and there was no cloud to synchronize.
My first IP-Core is a Advanced Encryption Standard (AES) Core with generics to configure the keylength (128, 192, or 256 Bits) an optional decryption datapath, also configurable with generics and an (optional) Altera Avalon-MM Slave Interface. I even wrote a documentation for this (WOW) I hope it is useful for you if you have any comments or bugreports, please let me know. The core can be synthesized and I have run it successfully on a Altera Cyclone II EP2C35 FPGA.
Since 2014 I have been pushing most of my projects to github. There is still tons of code lying around on my harddisk, most of the stuff so badly named and documented I don’t even remember what it was good for and when I take a closer look I am embarrassed about the quality…. This page exists to preserve the content of my older blog sites, its all undergrad hacking: