My Blog

Hey, you found my blog - Welcome! I like to share my thoughts and learnings about all kinds of topics. Select a topic that interests you below or scroll down for all posts.

A view of our balcony in our Bonn apartment where I'm watching the sunrise and writing my first blog post for the new website. There's a cup of freshly brewed espresso next to my Laptop.

Hello World. Anyone Still Out There?

Sunday, 04 September, 2022

Wow, a blog post - must’ve been a while since I wrote one of those… In fact, I had to go back and revisit my old blog to find the last one was from September 2016 - six years ago!

Someone call pest control, cause we’ve got a serious infestation of Time Flies! 🕰 🪰 🪰

Seriously though, as I’m typing these lines and chuckling about my brilliant joke (sorry not sorry; the terrible puns are gonna be a thing ‘round here 🤷‍♂️) while enjoying a fresh morning brew and watching the sunrise from our balcony, I’m thinking to myself that I’ve really been missing this whole blogging thing and I definitely don’t want to wait another six years to write the next post - I promise (more to myself than anyone else because at this point I expect my regular readership to be… nil)

Quick Intro

So, you’ve not only somehow stumbled on this post but for whatever reason are still reading despite the time flies pun? Well, I have a feeling we might get along pretty well, so let me introduce myself 🤓

Background, Interests and Experience

My name’s Manuel, I’m originally from Germany (where I now live again) but have lived in Scotland, England and California over the last seven years. I’m a software engineer and designer but also a hobbyist musician (guitar, singing) and like to dabble in “the arts” and explore the outdoors (especially hiking and mountain-biking).

Some of the topics I’m most interested in are “Tech” in general (both hard- and software; specifically iOS, macOS, watchOS, smart home, automation and app development) but also “lifestyle topics” like outdoor adventures, travel, mindfulness, productivity and many more. Expect random posts about all sorts of things on this blog but rest assured I implemented a category filter so you can only read what’s interesting to you and ignore the rest.

For the five years prior to my relocation back to Germany, I’ve been working as a software engineer at Apple, where I had the exciting opportunity to help build some of the software that I personally use on a daily base and learn so much about software development in general and the Apple ecosystem in particular. Most importantly though I got to work alongside very kind, passionate and brilliant folks - many of which I have the honor to call my friends today. If one of you is reading this, I really miss y’all 🥲

The Road Ahead

After moving back to Europe, I decided my next step will be working as an “independent iOS & macOS developer” doing a mix of freelance work and my own app projects. So far this has been a lot of fun and quite a wild ride to say the least. Starting a business for the first time can be challenging, starting one in Germany (where we love bureaucracy) even more so, and doing this while still dealing with the aftermath of a transatlantic relocation with all that it entails? Well, let’s say, there’s been a bit of “admin overhead” going on over the last half year and I cannot wait until the dust has fully settled so I can really get into my groove and have a bit of a “routine” again for a change 🙃

I will say though that I have been spending more and more time doing the things I love (building cool stuff) lately, with this new website being one of them! Expect more to come going forward; in particular, I am hoping to launch a beta test for my first app Zenitizer on TestFlight soon. Stay tuned for Appdates.

Why the Radio Silence?

You might be asking why it took me such a long time to write a blog post? Well, “it’s complicated” and ultimately due to a number of factors, but in a nutshell mostly because Apple had fairly strict policies around any kind of public speaking or publishing of content related to Apple itself or “The Tech Industry” and while there was not a blanket ban on blogging/social media, I definitely would’ve needed to be careful about what I write online and how it’s worded so I decided to play it safe and just not post anything for a while.

About This Website

If you are reading this, it means I have finally published my redesigned website 🎉 As I pointed out above, I’ll be blogging about a number of topics and, of course, this will be the primary channel to learn about My Apps and get any Appdates about them.

Feel free to reach out (via Email, Twitter or LinkedIn) if you have any thoughts or questions, whatsoever. And please let me know if there are particular topics you would like me to blog about. I will certainly follow up with a more technical post about the design and architecture of this website in the coming weeks.

For the curious and impatient: I’m still using a static site generator but I switched to Hugo in the meantime. This time, I completely designed and implemented the theme myself using the lightweight and highly flexible CSS framework Bulma which has been a joy to use.

But I’m getting ahead of myself here… Coffee’s empty and the sun is up, so I’ll stop writing for now.

Until next time ☕️ ☀️

“A view of our balcony in our Bonn apartment where I’m watching the sunrise and writing my first blog post for the new website. There’s a cup of freshly brewed espresso next to my Laptop.”

macOS Sierra - First Impressions banner image

macOS Sierra - First Impressions

Wednesday, 21 September, 2016

📜 Archived

Yesterday was the day I have been waiting for since the WWDC in June: the release of macOS Sierra featuring Siri on the mac. Why is this a big deal for me? Because my favourite personal computing platform is the desktop (or laptop for that matter) but I am also a huge fan of voice-controlled assistants which have been most prominent on smartphones - until now.

The Update Procedure

The update was an extremely fast, pleasant and uncoplicated procedure. Having used Linux on the desktop for years I am used to “installing a new distro on top of another” thus retaining my home directory and various config files, but keeping all apps and system-wide configurations in tact without inducing any unforseen complications made the transition even smoother than I expected.

What’s New?

The new macOS looks familiar at first glance. In fact, apart from the slightly redesigned notification center, the “desktop shell” looks pretty much like El Capitan. Some of the core apps have been updated with Photos being especially notable. Its UI has been improved with an awesome visualisation and layout mechanism for moments, memories and albums as well as advanced machine learning for face, object and scene recognition “under the hood”.

Why I Like Talking to My Computer

As stated earlier macOS Sierra supports voice commands via Apple’s personal assistant Siri. Maybe it’s just me being a fan of “talking to machines” but I am totally thrilled about this addition and have been using it a lot today. Sure this is mostly due to the fact that you tend to play around a lot when you get a brand new toy but I am sure that I will stick to using it for a particular group of tasks:

Minor tasks that are not worth a UI context switch while being focussed on a different primary task. I can very well imagine asking Siri to play a particular song, playlist, artist or genre via Apple Music while coding. Opening iTunes would be a remarkable distraction that can be avoided.

Another example is the creation of reminders. When I am scheduling my next day I will probably always prefer a graphical user interface (Reminders and Calendar app) to organise my agenda, but when a (sub) task comes to mind while working on something else it is nice to be able to just quickly say “remind me to write documentation for module X in 2 hours”.

We Developed an Assistant Application for Pokémon GO This Weekend

Monday, 18 July, 2016

📜 Archived

Like almost everyone else on this planet I have been out there catching Pokémon and conquering gyms last week whenever I took a break from uni work and went outside. In case you have no idea what I am talking about, well, no offense, but you must have been living under a rock for the last weeks - I am of course referring to the highly popular augmented reality game “Pokémon GO”.

Tobi and I were both excited about the game’s release but as computer scientists we don’t “just play” such a game. We systematically try to find ways of optimizing our progress with as little effort as possible. We experimented and did research on the best ways of boosting our XP points quickly. It turned out that there is a very common technique to achieve this: Try to evolve as many Pokémon in a row as possible (ideally under the influence of a lucky egg which doubles your XP gain).

While this is a good strategy there are a few parameters which need to be considered in order to optimize the outcome of that approach. Evolutions cost candy, transferring Pokémon gives you candy but also makes you loose a potential evolution candidate. So we figured out the maths to solve this simple optimization problem and wrapped it up in a pair of nice, little mobile apps so you too can benefit from our insights. Find out more on my corresponding project page.

New App and Minor Go For It! Update banner image

New App and Minor Go for It! Update

Sunday, 17 January, 2016

📜 Archived

During the Christmas break, I found the time to do some free time coding again and I would like to share my results with you.

First of all, I have developed an Android app for smart, rule-based phone silencing. Silentio allows to put your phone into silence or vibrate mode based on fixed times or calendar events. It is currently in open beta stage and I highly encourage you to have a look at it and tell me what you think. More information can be found here.

Moreover I have released a new version of Go For It! (1.4.5) with a small update suggested by a Github user: Automatic refresh of your task list, when the content of your Todo.txt has changed. This is especially interesting if you synchronize your task list or use multiple Todo.txt frontends.

What Operating System is That?! banner image

What Operating System Is That?!

Wednesday, 04 November, 2015

📜 Archived

During the last month or so, a remarkable number of people have asked me, “what OS is that on your laptop”? When I got my new laptop, I have put quite some time into setting up my personal Arch Linux installation and apparently I am not the only one to appreciate its looks and workflow.

The sad part of the story is that I cannot give a simple answer, because it is, in fact, a compilation of various software packages, themes and configurations, that make it what it is. This is why I have decided to write a blog post which allows others to replicate my “desktop experience”.

Desktop Environment

I cannot even specifiy a particular desktop environment, because even that consists of modules from various projects, most of which are located in the “GTK camp”. Most of the time I, point people to elementary OS, if they want something “similar” out of the box, because I use Deepin WM, which is a fork of their window manager and elementary’s dock Plank, which make up the most relevant part of the desktop. Readers of my blog or Google+ followers know that I have been quite keen about the elementary project - and I still am! I just consider Arch the most attractive distribution for me personally due its rolling release model, “DIY philosophy” and the amount of packages available in the AUR.

The panel on top is Budige Panel from the Solus projectes. The new version features Raven, a sliding panel with calendar, music player and sound widgets as well as an overview of missed notifications, which is both beautiful and highly functional. I really like the whole budgie desktop experience and can recommend trying Solus, if you do not need a window manager with “fancy window and workspace overview” modes.

Look and Feel

Regarding look and feel, the Arc GTK theme and the Numix Circle icon set are most notable. Not only are these the (imho) best-looking, flat themes in the Linux world, but also are both astonishingly complete, that is, almost every app installed has a a corresponding Numix icon and Arc looks functional and consistent with all sorts of different apps. There is even an Arc Firefox theme, which makes Firefoox look 100% native. I might mention at this point that I have created an eclipse theme that is supposed to match Arc as closely as possible.

Software

A “representable excerpt of my everyday software stack” is listed below:

  • Nautilus (file manager)
  • Gnome Terminal (terminal emulator)
  • Kupfer (command launcher)
  • Firefox (for general web browsing)
  • Chromium (as “webapp runtime”)
  • Geary (mail client)
  • California (calendar)
  • Gnome Contacts (contact manager)
  • Go For It! (productivity, sorry for shameless self-promotion…)
  • Corebird (twitter client)
  • Okular (PDF reader)
  • Sublime Text (text editor)
  • Lollypop + Spotify (music players)

You might ask yourself, what I mean by “webapp runtime”. I prefer to think of websites like Google+ or Facebook Messenger as apps, rather than websites. Thus I do not want them to clutter my browser tab list, but interact with them as if they were native applications. This is done by creating .desktop files with mLauncher, which execute chromium with the --app=url parameter and specify the corresponding icon.

My favourite tool on any Linux desktop is the Kupfer command launcher for which I have written a few plugins myself. To enable multi touch (up to 4 fingers) gestures on my Thinkpad t450s, I run xSwipe and I use xbindkeys to define keyboard shortcuts.

If you wonder, why I use KDE’s PDF reader on a GTK setup I can understand you. Basically, I need it for “academic reasons”: Okular’s highlighting functionality is unbeatable. I read a lot of scientific papers and I rely on the ability of using differently coloured markers. Morever it plays nicely together with LaTeX in regard to biderectional search and it is well integrated into KBibTex, which I use to organise my references. Also if you set your KDE settings to match the GTK theme and disable the toolbar, Okular actually looks quite clean and well integrated.

Session and Login

The whole desktop session is initiated via startx using my custom .xinitrc, which is based on a snippet from the Arch Wiki. If I want to lock my screen, I use i3lock for which I have created a .desktop file with mLauncher, aswell.

Conclusion

The above is far from being complete. There are many settings and details that I might not have mentioned in the post. Feel free to ask, if you encounter any questions or problems.

Enjoy customizing your Linux desktop ;-)

Finally! Some Love for Windows Users banner image

Finally! Some Love for Windows Users

Saturday, 23 May, 2015

📜 Archived

Windows users of Go For It! have not seen many updates lately. Apart from my general, omnipresent “lack of time” forcing me to focus on what I consider most important, this was mostly due to the former dependency on the unstable Gtk 3.10 release for Windows.

Thanks to Jonathan Moerman’s support in porting Go For It! to an older Gtk version, less “hacks” need to be applied to the Windows version, thus allowing for an easier synchronization between the Linux and Windows branch.

More Updates in the Future

Apart from translation support which I simply cannot get to work on Windows (at least for now), all future features of the Linux version will hopefully transition into the Windows branch without much extra efforts. The consequence of this will be more regular updates coming to a proprietary operating system near you!

An Update Notifier for Windows

Unfortunately Windows does not provide the convencience of a “proper package manager” capable of handling all updates automatically. Still I don’t want to require you to check my website for a new version every day. This is why I created a simple update notifer that leads you to the download page as soon as an update is available.

It Is Not Ugly Anymore!

But I decided to go even further! Shipping a Gtk application for Windows can be a pain in many ways. One problem being the fact that each application is supposed to come with its own Gtk settings instead of relying on system wide settings. This might be okay if the defaults were not that ugly, including icons that look out of place and choppy font rendering.

This time I put some time and effort into creating flat icons that blend in more nicely with Windows 8. I am neither a designer, nor have I studied any Metro HIGs, so send me a pull request if you have a better proposal!

I even managed to replace the default Gtk application icon. This is a particulary cumbersome task on Microsoft’s operating system as it involves adding a particular binary ressource at link time! For everyone interested in how this can be accomplished, I recommend Kevin Boone’s article about Gtk applications on Windows.

Besides I have experimented to find Gtk settings that result in pleasant and “native looking” font rendering.

All in all I hope that the overall UX is far better for Windows users now and Go For It! does not appear like a halfhearted portation anymore.

Download

The new version can be downloaded here. If the update notifer works as expected, you should receive all future updates just in time.

Enjoy!

Information for Developers

The old Windows branch on Github has been completely replaced, because it was easier to base the new version on the Linux branch than on the bunch of hacks and tweaks that the former Windows version was. If you want to get it involved just have a look at the corresponding branch on Github.

Why I Moved From Drupal to Jekyll

Friday, 20 March, 2015

📜 Archived

When I started to learn about web development it felt to me as if everyone was suggesting to use a CMS for everything. Back then I have chosen to get started with Drupal after considering also Wordpress, Joomla and a few others and I have to say that it served me well all the time.

Nevertheless I have become tired of the amount of maintenance that a full blown CMS demands.

No matter how well the update mechanism is designed (Drupal’s drush up is super convenient), it is still a somewhat tedious procedure. Things may break. Thus one has to create, maintain and, in the worst case, re-deploy backups.

Another critical aspect is the fact, that security updates often allow for no more than a few hours to pass until vulnerabilities are widely exploited. This may not be a problem for companies capabable of paying staff all around the clock to react quickly in such scenarios, but it surely is a challenge for individuals like me running their own websites.

Keep It Simple

I basically wanted to get rid of two things: The database and all server side code.

Databases Are Cumbersome

Not relying on a database makes various things so much easier. One can quickly migrate to another host by uploading a bunch of files without even bothering to export/import SQL or change database credentials in some configuration file. One of the most outstanding advantages for me is the fact that, without a database, your complete website can be tracked using a version control system.

So Why Do You Want to Get Rid of PHP?

The simple answer is: Because I can. Given the type of content I provide on this website, there simply is no necessity for dynamic, server side code. PHP only imposes superfluous performance and security drawbacks, which I hereby avoid.

The Jekyll Workflow

I personally consider Jekyll’s workflow another major selling point for this system. Other CMSs come with heavy web interfaces for content creation, which often feel sluggish and are anything but a pleasure to interact with. In the worst case you may end up waiting for the post you have been typing for the past 2 hours to be processed just to find that the system decides to give you a timeout instead and discard your data (been there).

Jekyll uses plain text files formatted in Markdown. Therefore you can use your editor of choice to compose your posts. Simply type jekyll serve in the corresponding directory and it processes your files and even hosts a local web server to test your page. Setting up a web development environment has never been so easy.

Conclusion

There are many valid examples for projects that demand CMSs, databases and server side logic. It took me a while to realize that my personal website is not one of them, but now I am very content about the new found simplicity that Jekyll offers.

In the end of the day there is no such thing as the “best CMS”, as it all boils down to the maxim of choosing the right tool for the job.

Go for It! for Windows Has Been Updated

Friday, 02 January, 2015

📜 Archived

I finally released a Go For It! update to version 1.3 for you patient Windows users out there. Even notifications work now!

Unfortunately Glib.Notification does not appear to be supported by Gtk 3.10 on Windows, so I implemented my own notification class, which is not the prettiest of all solutions, but gets the job done.

Feel free to help maintaining the Windows version, as I personally don’t use Windows myself. I documented my changes in a separate Windows branch on Github.

I hope you enjoy the changes!

A New Open Source App for Christmas

Thursday, 25 December, 2014

📜 Archived

I just happened to release a new open source project this very christmas eve. Go For It! is a to-do list application with built-in productivity timer, that I have been working on in my spare time during the last one and a half months or so.

It has been designed with minimalism in mind, insipired by elementary OS and Gnome applications. To-do lists are stored in the Todo.txt format, which makes them easy to synchronize and maintain. The video iilustrates the application’s workflow and functionality.

More information for end users is available here and developers can find the code hosted on Github.

I wish you all a merry Christmas!