RSSAmplifier

Blog

www.Vanille.de – Blog

vanille.deRSS feed ↗277 posts

Latest posts

The weather app I swore I'd never write

There is a short list of apps every developer is contractually obliged to build at least once: a to-do list, a Markdown editor, a podcast player, and — the final boss of clichés — a weather app. I held the line for twenty years. This is the confession of how I finally caved. For most of those t…

The other 90 percent — polishing notes from a streaming-radio app

I have been polishing Wellenreiter — my streaming-radio app for iOS, iPadOS, macOS, and CarPlay — for the better part of a year. The newest addition is a standalone macOS menu-bar app: the whole experience in a popover that opens on a global hotkey. The feature list is short and unremarkable: it pl…

Seventeen Characters: Designing VIN Entry for When You Cannot Scan

Scanning a barcode is the happy path. Point the camera, hear the beep, done. But in an automotive diagnostics app the camera is not always an option: the VIN sticker is peeled off, the car is on a lift in bad light, the value arrives over a diagnostic link and a human has to confirm it by hand — or …

Letting an agent talk to my ECUs

Something has changed for me at the bench in the last few weeks, and I want to write it down before it stops feeling new. I have spent the last decade building or using diagnostic tools that put a human between the agent of investigation and the bus. CANcorder, Swift-CANyonero, my Linux toolbox — mc…

Swift beyond Apple, five and a half years later

In October 2020 I wrote that I had decided to go all-in on Swift. Not just on iOS and macOS, where Swift obviously belongs, but pretty much everywhere: servers, command-line tools, reusable frameworks, UNIX-like systems, perhaps one day even the kind of embedded-ish tooling that had followed me arou…

Reverse engineering a USB device driver on macOS

I have been writing a macOS userspace driver for a CAN bus adapter. The device uses a custom USB protocol — bulk endpoints, vendor control transfers, a command language with opcodes and terminators. The Linux kernel has an open-source driver for the same hardware, so porting it should have been stra…

ImpossiBLE — BLE back in the iOS Simulator

For a while, Bluetooth Low Energy in the iOS Simulator was one of those things that half-worked often enough to be useful. It was never a perfect substitute for a real device — Bluetooth never is — but it helped. You could at least keep the edit/build/run cycle on the Mac while working on UI, parsin…

Two million CAN frames and the limits of React

CANcorder, my CAN bus logger and analyzer, is built with Tauri 2 and React 19. It is a desktop app for macOS, Windows, and Linux — written in TypeScript on the frontend, Rust on the backend, and held together by Tauri’s IPC bridge. For the first year of development, this stack felt like a gift. Com…

Back to UIKit for fluid scrolling

I have spent the last couple of days optimizing the iPhone companion app for CANcorder (forthcoming), my CAN bus logger and analyzer. The original iOS frontend was written in SwiftUI, which made it wonderfully quick to build and iterate on. For modest amounts of data, it was fine. But “modest” is n…

From Lektor to Zola — migrating 26 years of content

This website has been running on Lektor, a Python-based static site generator created by Armin Ronacher (of Flask fame), since I moved away from WordPress years ago. Lektor served me well: its file-based content model, Jinja2 templates, and simple admin UI were a good fit for a personal site that do…

A small Linux toolbox for CAN work

For the last couple of months I have been spending more time on the Linux side of my automotive setup again. CANcorder is still the place where I want to look at traffic, decode transport protocols, and make sense of what an ECU is doing. But the boring bench work around it still happens on Linux: b…

ELMterm, CornucopiaStreams, and the joy of clean automotive telemetry

Back in 2016 I fell deep into the rabbit hole of automotive diagnostics. What started as “let me decode one CAN frame” quickly became a multi‑year tour of every adapter I could get my hands on: ELM327 clones, genuine STN units, Bluetooth dongles, USB‑serial cables, Wi‑Fi gateways, even a few early B…

RetroPlayer – Bringing the Sound of My Youth to iOS

Some projects aren’t just about building software—they’re about preserving memories, honoring the past, and sharing what shaped you. RetroPlayer is one of those projects for me. Growing up in the 1980s, I spent countless hours in front of a Commodore 64, and later an Amiga, absolutely mesmerized by…

Do old‑style version numbers still make sense?

Long before the endless scroll of release notes and automatic updates, software came packaged in physical media: floppies, CDs, DVDs. Version numbers were lovingly crafted—Version 3.5.2 meant something. It signaled a meaningful hierarchy: major features, minor improvements, bug fixes. You’d carefull…

Back to C++

I learned C++ in the late 1990s, back then with Microsoft’s Visual Studio C++ and the Microsoft Foundation Classes. When I left Windows behind and embraced Linux and macOS, I concentrated on Objective-C, Vala, and (since 2020, being late to the game) Swift. Just recently I started getting into MCU p…

Activating an Apple Watch eSIM w/ O2

When activating an Apple Watch eSIM, the process is usually pretty straightforward. Most providers are using a QR code that you can scan during setup ­– this transfers the eSIM data and off you go. Not with O2 though ­– at least here in Germany; they open a builtin web browser and require you to log…

SPM-ifying YapDatabase

Converting an existing Objective-C/Swift framework to Swift Package Manager I’m a big fan of the database library YapDatabase, which is a collection/key/value store for macOS, iOS, tvOS & watchOS. It comes with many high level features and is built atop sqlite. In the last 5 years, I have used t…

Programming Languages

While I never got much into natural languages (beyond my native tounge, a halfway solid english, and some bits and pieces of french), I have always been fascinated by (some) programming languages – I even wrote books about some of them. I (literally) grew up with BASIC and 6502/6510 ASSEMBLER – on t…

Feeling like Don Quixote

For some years now, I have been feeling like Don Quixote fighting against windmills. This is a multidimensional feeling that has its roots in both personal and professional circumstances. With regards to personal issues, I won’t go into details as I want to keep this blog free from politics, society…

Welcome, 2020

Here’s the new decade. 2019 went by as an important year where I regained some of my health, discipline, and motivation. Next to the inevitable iOS development, the most important milestones were the release of the 2nd edition of my Vala book and my first music album after more than two decades of i…

Fabrique Noir – Space Travel

I’m enjoying creating music since 1981. First on analogue synthesizers (SIEL OPERA 6) and drum machines (ROLAND TR-505), later on with digital synths and workstations (KORG M1, KORG 01/Wfd). From 1986 to 1989 I created my music mainly on the COMMODORE AMIGA. The PC platform almost killed my motivati…

Health

When I started this blog in 1999, it contained mostly personal stuff. Blogs were a new thing, Facebook and Twitter were five respectively seven years away, and it felt appropriate to me. Later on, I switched to english and added more about my professional projects – hence the focus moved to rather t…

Converting Wordpress Posts To Lektor

As promised in the previous installment of this column, I have now imported all my old blog posts from Wordpress. In case you have a similar requirement, here’s how I did it: 1. Export your posts from Wordpress. Login to your Wordpress administration interface and then click on Tools → Export Data. …

From Wordpress To Lektor

Every five to six years I’m revamping my website. This is now the 4th major incarnation. I created my first website somewhere in the 1990s – back then handcoded with HTML. I vaguely remember that it looked better than many others due my use of Bitstream’s TrueDoc Technology. In 1999, I started my bl…

The state of things in 2019

And another year has passed – pretty quickly, if you ask me. Last year was the chance to close a bunch of construction sites and start new ones. Next to releasing two iOS apps that I have been working on for a while, I finally got the time to publish another book. I’m currently working on a round of…

Pet Project Releases

Once and then I try to sneak work on my pet projects into my daily routine. Today I want to tell you about two projects that I have released this month: SongBook Pro for iOS, and Introduction to Vala Programming. SongBook Pro for iOS SongBook Pro is a complete rewrite of my iOS songbook app for guit…

Coming back from FOSDEM 2018

Salut! I usually write a FOSDEM retrospective every year, although, as you might have (not) seen, last year was different. While I’m sure 2017’s FOSDEM was a nice weekend I almost can’t remember anymore. I had a severe cold (already when coming there, usually I only have a cold when coming home…) an…

OpenMoko: 10 Years After (Mickey’s Story)

For the 10th anniversary since the legendary OpenMoko announcement at the „Open Source in Mobile“ (7th of November 2006 in Amsterdam), I’ve been meaning to write an anthology or – as Paul Fertser suggested on #openmoko-cdevel – an obituary. I’ve been thinking about objectively describing the motivat…

Coming back from FOSDEM 2016

In the good tradition about writing a blog post on my way back from a FOSDEM (see earlier installments e.g. for 2012, 2010, 2008, and 2007), here is this year’s take. No issues with transportation this time (I’m still in the train, but it looks good so far), other than road construction works at the…

Towards the end of 2015

’Tis the season to let the year pass by and make plans for the next one. 2015 was what I’d call a “transitioning” year. Although LaTe App-Developers had been shut down in 2014, we still had to spend most of 2015 to work on some things our clients already paid for. This is now finally done and I can …

My "new" issue tracker installation

I’m absolutely relying on working with issue trackers for managing features, bugs, and releases. Although it’s always a bit cumbersome to teach (new) clients how to properly use it (it takes quite some hand holding and improving their tickets), sooner or later they all realize that it’s way better t…

Is anyone still sampling?

Hi fellow readers, this time we’re talking music. For quite some time, I’ve been wondering about the sound of a certain area which seems to be abandoned by pretty much all bands. It was the area when sampling technology became affordable and where a bunch of musicians adopted this (back then very li…

freesmartphone.org API docs live again

After the outage of the VM where freesmartphone.org has been hosted on, we are now almost fully back. I have integrated the DBus API documentation (that has been hosted on the doc subdomain) into the top level documentation which now lives at https://www.freesmartphone.org. The source code has alrea…

RFC: Future of SidPlayer, ModPlayer, PokeyPlayer for iOS

This is a post about the state of Sid-, Mod, or PokeyPlayer on iOS. Coming from the background of the C64 and AMIGA demo scenes, I always thought that every platform needs a way to play back the musical artwork created by those great musicians in the 80s and 90s on machines like the Commodore C64, t…

Wayback Machine

Thanks to the fabulous wayback machine, I have imported my blog from between 1999 and 2006. It’s not properly formatted and most of the images are missing, but it’s somewhat interesting to read the things my younger self wrote about 15 years ago.

To web or not?

I have pondered a long time whether to learn web programming for my customers’ services app, so that they can access their user & device statistics, crash logs, manage service messages, push messages, etc. I now have decided not to pursue this path. Web technology is a mess, even more than mobil…

Simplify your life

After 6 years being co-director and CTO of LaTe App-Developers, I feel it is time to make some changes. It’s not that mobile development is no longer interesting to me, however after doing (too) many small (5-20 person days) iOS projects, I need some new challenges. Project work has been limiting my…

New Site

Every 6 years or so I’m revamping my website. This is the 3rd incarnation now (yes, I started early) featuring a new wordpress theme, a clean layout, and – most important – serious content improvements.

Welcome, 2014

So 2013 is finally over and it’s been an energy-sapping year, business-, baby-, and building wise. Business. The stagnation that was present for pretty much the first half of the year and which forced us to downsize a bit, had been replaced by too many projects all at once in the 2nd half of the yea…

The state of things in 2013

Salut! I didn’t blog for quite a while, since – as I’ve mentioned before – these days, Facebook seems to me the more appropriate forum for shorter status messages. That aside, let me recap how things are these days. Since the birth of Lara Marie, quite a lot in my life has changed. I haven’t been co…

Towards the end of 2012

Hi folks! Obviously I don’t manage to update this blog more than a few times a year. I must confess that – for smaller status messages – I find Facebook and Twitter working quite well. So if you want to stay in touch a bit more, hop over to my page @ Michael Lauer or follow my Tweets @ DrMickeyLauer…

Coming back from FOSDEM

After having skipped FOSDEM in 2011, I wanted to go this year, especially because of the Golden Delicious stand where we had the OpenPhoenux GTA04 on show. A lot of people came around and were excited that someone picked up where Openmoko had left in 2009. The GTA04 is the true successor of the Free…

IT has seen a crazy year

Information Technology has seen a really crazy year. Among all the smaller incidents, the big bangs involved Nokia partnering with Microsoft, abandoning Maemo, HP driving with WebOS against the wall, patent lawsuits everywhere. What that means for FOSS-lovers is clear… you can’t trust any company to…

Towards the end of 2011

Tempus fugit. I can tell you. Even more so, if you have a baby. I must confess I somewhat underestimated the impact the baby would have on my spare time. In some weird mindset I really thought I could continue working as usual on my open source projects… as we know now I couldn’t. I completely lost …

The Eagle Has Landed!

After letting us wait for a bit longer than scheduled (13 days), the hospital initiated the contractions. For the first couple of hours, everything went just perfect, but then the little one got stuck on the way and we had to resort to a cesarean section. Lara Marie Lauer was born 8th of June at 04:…

German Post on time!

And now for something completely different… while we are all waiting for my baby to arrive (who was scheduled for 25th of May), she just received her first greeting card – together with a personalized bib and a towel (with integrated hood – pretty fancy!) from my good friends at #openmoko-cdevel. Gu…

Towards the end of 2010

Howdy, dear reader! It’s been a while on this blog, mainly due to the fact that many short status updates are better twittered than blogged. Then again, as promised / threatened in last year’s installment of this column, I had to spend most of the time this year with iOS development, rather than wit…

Gernot Schäfer (1972-2010)

Rest In Peace, buddy! You will be missed.

Feeling good

Since the last post about my growing feeling of uneasiness, I did a couple of things to improve my mood. First, I stopped spending every free second of my spare time at the computer, writing FOSS. Second, I reactivated some other recreational interests I also have, but which have been pushed back fo…

Volksradio: Just Radio!

Every now and then you come to the comfortable situation that a client requests you to develop a technology for a product of theirs, which you can then use in your own productions as well. This happened to us in the last couple of months, when we had to create an audio streaming engine for iOS for a…