Creating custom Linux appliances with SUSE Studio
I have been playing with SUSE Studio for quite some time, and it never fails to amaze me. In short, it’s a utility that allows you to build your own SuSE-based Linux: you start with a general selection (openSUSE, SLES, KDE, Gnome, a JeOS , …), add
repositories and packages. Then you add your configuration: set your locale and keyboard, add users, rig the network settings and the firewall, add custom backgrounds and logos, add license(s) that have to be accepted by the end user, add your own files and folders, add your custom post-built/post-boot/first boot scripts … and change many more things.
After that, it’s time for building: you can create USB images, live CDs (.iso files), XEN guests and VMware / VirtualBox / KVM (.vmdk) appliances. Built time is just a few minutes, and you can either download your appliance or take it for a test drive it right away, on the SUSE Studio servers. For that, you can connect to the web server of your appliance, log in via SSH, or have the desktop displayed in an applet within your web browser.
One of the most interesting features of SUSE Studio is the ability to keep the changes you make in your test drive. In other words: you don’t have to stick with the web interface for refining your appliance, but you can apply the more delicate refinements in a live system.
The SUSE Gallery hosts an impressive number of appliances that were made with SUSE Studio. Let me highlight just a few examples:
- Android Developer’s Desktop Remix – an Android development environment, based on openSUSE
- BrowserBox – 22 versions of 13 different web browsers (Android Browser, Internet Explorer, Firefox, Chrome, Safari, Lynx, Opera, …)
- iFolder Server – run your own iFolder file synchronization server
- Chrome OS – well, mostly Google Chrome

Private Mercurial Hosting for Free
Bitbucket.org, a code-hosting site, has been acquired by Atlassian (the company behind the Jira issue tracking system) and changed its pricing and hosting plans.
In short, Bitbucket offers code hosting using the distributed revision control toolMercurial, a wiki and a simple issue tracking system.With the pricing change, user may now create an unlimited number of private and public repositories and have unlimited disk space at their disposal.
On the downside, free private projects are limited to five users.
Personally, I am using the git and Subversion most of the time. Mainly because they happen to be used in the projects I am taking part in. And both systems get the job done.
But free, private and reliable source code hosting is pretty hard to find. I think Bitbucket is definitively worth a try for small teams – if you have more than five project members, you can host Mercurial yourself as well. It’s actually not that hard.
There’s a number of alternatives for hosted Mercurial as well, of course.
Herb Sutter on Web Browser UIs
The just-released IE9 Beta features a slim user interface. This makes pretty much sense: in the web, the focus is on the content – not on the tool that is used to display it.
Or as Herb Sutter puts it:
Of course, that’s because the page/site is the real app. And like most apps they are indeed going the other way.
The browser is not really an app; it’s a shell, like the OS shell, just a runtime necessity to run the real app and provide some convenience housekeeping tools.
One more thing that changed since the early browser wars.
How to repair the Apple iCal
My iCal kept crashing constantly due to a segmentation fault (EXC_BAD_ACCESS, SIGSEGV). In the short time right before it crashed, I noticed that iCal tried to sync with a corrupt external calendar. The bad data got into iCal once, and iCal didn’t stand it ![]()
If you happen to meet a failing iCal one day, and you can’t remove the mischief from within iCal, you have two options:
- get the decent Purity app, unplug the network (so that iCal won’t sync before the culprit has been removed), and clean the iCal cache
- have a closer look at ~/Library/Calendars/, where all the calendars are stored. Inspect the info.plist files and .ics event data to find the bad calendar and move its folder to another location. Restart iCal. If it is still crashing you got the wrong calendar – put the moved calendar back and keep on searching.
No. 2 did the trick for me.
Plain text files and simple folder layouts might not look as evolved as SQL tables and mysterious binary data files – but they work just fine in this scenario and are pretty easy to debug.