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.

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!

A Love Letter to Freya - The Operating System, Not the Goddess banner image

A Love Letter to Freya - The Operating System, Not the Goddess

Monday, 24 November, 2014

📜 Archived

User experience matters a lot to me. I have tried, tweaked, installed, removed, loved and hated many desktop environments in the past.

My favorites among them are KDE and XFCE for reasons, too complex to discuss here. But, they all had one thing in common: the way they feel and behave by default (on most distros) does not compliment the way I like to operate a computer. Thus I always found myself applying changes of various extend until I felt “at home”.

About one month ago, I booted into a live session of elementary OS Freya Beta 1. I did this just out of curiosity and without any serious expectations. Having seen screenshots before, I had an idea of how elementary OS looks, but that’s not the whole story. The whole OS is crafted with many aesthetic details that go far beyond “shipping with a nice GTK theme”.  It is hard to describe and highly subjective, but as I perceive it, it feels great to interact with every part of the system.

The design of the user interface is alltogether simple and elegant, with very little room for customization. That may not be everyone’s cup of tea. Customization has it’s value. Infact, there was a time, that I thought it would be smart for an email client to contain 10 pages of settings. I’d even say that the ability to tweak everything was one of my major motivations to switch to open source software in the first place.

Well 


I’ve learned my lesson:If the default settings are well-wrought, there’s no need to configure every detail. This applies at least for what I call “everyday applications” i.e. email client, PIM, file manager, browser, etc. I still consider it preferable to equip professional tools, like IDEs, CAD software or multimedia production suites, with many options and utilities, because it is of actual use in such an environment.

Performance

If you would have liked to see benchmark results here, I have to apologize. I do not consider numbers a reasonable measurement for “user experience”.

During the last month on a Beta release, I have experienced uptimes of more than 5 days without  lags, screen freezes or desktop crashes. In contrast, while testing Gnome Shell and Cinnamon I experienced stuttering animations and delays before switching from one workspace to another, especially with many windows open. In my opinion that is a deal breaker, as I find these delays very distracting.

On my machine, elmentary’s desktop shell Pantheon and its window manager Gala have performed as good as lightweight desktops like XFCE, which impressed me a lot!

Conclusion

After using elementary OS daily for about a month, I plan to continue using it for my professional needs, because, out of all the computer environments I’ve had my hands on, elementary offers the most pleasant user experience and for me, it “just works”.

That being said I may as well switch to something else out of curiosity or boredom one day, but at least I cannot see any rational reasons to do so at this point :-)

Desktop Touchpads for Linux: Logitech T650 vs. Apple Magic Trackpad banner image

Desktop Touchpads for Linux: Logitech T650 vs. Apple Magic Trackpad

Monday, 03 November, 2014

📜 Archived

Working “on the road” a lot I have grown used to touchpads and have developed a slight aversion to mice (the gadgets, not the animals).

Due to that I caught myself sitting around with my notebook even when I was at home where I could be spending time at my desk with a docking station, a proper keyboard and a bigger screen. So I decided it was time to replace my mouse with a modern touch device.

My requirements were as follows:

  • GNU+Linux compatibility (of course)
  • Ability to recognize a multitude of gestures
  • Appealing haptics, design and build quality

After some research it turned out that the most promising canidates appeared to be the Logitech T650 and Apple’s Magic Trackpad.

Look and Feel

Both devices are a pleasure to interact with, as they have big glassy surfaces and a “valuable overall feeling” to them. The Magic Trackpad feels a bit sturdier as it is mostly composed of metal parts. Moreover it looks somewhat more “modern” whereas I considered the T650 to be a better match for the other components of my setup. Mechanical clicks on the T650 require a decent amount of pressure which can be tedious after a longer usage period.

Connection

The Logitech T650 comes with its own dongle consuming one of my valuable USB slots. It was recognized after plugging in the dongle and turning on the device. As long as one sticks to Logitech products it is possible to connect up to six devices to that dongle using the Unifying Device Technology which is being brought to Linux by the Solaar project.

This policy of urging customers to buy more and more products of a particualar brand by using proprietary interfaces that are desigend to exclude or obstruct competitors’ products is often associated with Apple. In this particular case it is actually the other way round: The Apple Magic Trackpad uses the well established Bluetooth technology for connecting to the computer. This was achieved in less than a minute on Xubuntu 14.04 by pairing the device via the Blueman applet using the PIN 0000.

Gesture Recognition and Setup

The first thing to do with the T650 for Linux support is a firmware upgrade, because otherwise not even “tap to click” is functional. Unfortunately the software required for that procedure is only available for Windows, which was the first obstacle for me. Gestures get interpreted in the device’s hardware which then sends key events that are meant to trigger (Windows 8 specific) events. By mapping these keys to meaningful commands in the XFCE system settings I was able to make use of the built in gestures, which are limited to two and three finger swipes as well as (somewhat uncomfortable) edge swipes. I was not able to manage software like TouchĂ©gg or Ginn to recognize  “real gestures” using both the synaptics and the evdev driver.

The Magic Trackpand on the other hand sends events that can be properly interpreted by TouchĂ©gg. I am using the synaptics driver for gestures of up to two fingers as it provides the smoothest scrolling experience and best integration with certain applications and TouchĂ©gg for dealing with everything that involves three or more fingers. For that purpose one must disable synaptic’s 3 finger recognition. This can be achieved by setting TapButton3 and ClickFinger3 to “0” via the synclient command (temporary) or a specific xorg configuration (permanent). Up to 5 fingers are being recognized and I have used swipe, drag, pinch and (double) tap gestures so far. KWin, which I use as window manager provides a lot of “fancy gimmicks” like smooth workspace switching animations and the “Present Windows” effect (comparable to OSX’s “ExposĂ©”), which feels very natural when triggered by multitouch gestures.

Power

The T650 has a built-in battery. While this has the advantage of being rechargeable, it comes with the downside of being hard to replace (Never forget that batteries are wearing parts!). The Magic Trackpad is powered by 2 AA batteries which means that a regular battery change will be necessary. I cannot judge about the runtime as my testing period is not long enough, but both are reported to run for several weeks when used on a regular base.

Pricing

The Magic Trackpad is about twice as expensive as the T650, which is to be considered when comparing the two. I am lucky to get my mine used for a lower price, because a friend of mine has no need for the one that came bundled to his iMac.

Conclusion

The Magic Trackpad outperforms the T650 in almost every category I consider important. On the other hand you could save $30 if the aforementioned disadvantages of the T650 are not relevant to you. Moreover it must not be left aside that both devices may perform different on the platform they were orignially designed for. So if you are not using GNU+Linux exclusively but dual boot to OSX or Windows 8 then you may choose to buy the corresponding device so you can get the most out of your touchpad.

Some Additional Information about Touchégg

If you do not like to write configuration files by hand you may want to have a look at Touchegg GCE which offers a graphical frontend to set up Touchégg gestures. Moreover it is advised to build Touchégg from source if you want to use pinch gestures, because your distribution may not package the newest version where a pinching related bug has been fixed.

Lightning Talk @ FrOSCon 2014

Thursday, 21 August, 2014

📜 Archived

I hereby invite you to join my lightning talk (5 minute speech) about Icon Set Forge that will be held in the context of this year’s FrOSCon at the Bonn-Rhein-Sieg University of Applied Sciences in Sankt Augustin. It will take place next saturday at approximately 14:15 (Better be there 10 mintues earlier, as the talks are in fact short). I do not know where exactly these talks are located, but I guess one can easily find that out on site.

I hope that I can reach further developers and motivate others to contribute to the project, by this means.

The FrOSCon is a worthwhile event with a lot of informative speeches, interesting projects and nice people, that I recommend visiting either way.

Update:

Here is a video of the talk for those interested