25th anniversary of Commodore Amiga

When I was walking though Prague with my beloved wife the world was celebrating 25th anniversary of Commodore Amiga.

First time I met Amiga in early 90’s. My friends had Amiga 500/500+ models and another one (Rafał Kotyński) just bought Amiga 1200 to replace ageing Commodore 64. And due to him I got impressed by power of AmigaOS and how much things could be done on limited resources.

In September 1995 I bought Amiga 600. It was old at that time but allowed to connect hard drive which I bought on 10th October same year. Why I remember that date? My A600 lacked RTC so each time I booted system it set date of creation of system partition as current one. With 1MB of RAM and ~400MB of storage it was nice platform to learn programming.

My first application was written in High Speed Pascal and it was very simple antivirus as lot of my files was infected with “Happy New Year 1996” crap. I remember that I compared clean and infected file, disassembled both and removed all entries to virus code. Some time later I got Virus-Z and it cured whole system.

After few years I sold a bit upgraded version (2MB ram) and kept hard drive for Amiga 1200 model. New hardware, new possibilities. Faster cpu, more graphics capabilities which I did not used because my primary display was still 12″ green monitor which I used with my 8bit Atari 65XE in a past. 704×260 resolution was not so great so when something got broken again I bought “new” display for my machine: 14″ vga mono monitor. Move to 720×480 in 16 shades of grey was big change.

I selected all shades to follow MagicWB colour scheme as much as it was possible and converted wallpapers using script in ADPro. Effect was nice and usable.

For most of time I used this computer for programming, entertainment and many others but games (which for many people were main reason to buy Amiga) never took most of my time. There were two exceptions: Civilisation and Angband (including variants). Those took me hours and hours.

What I liked in Amiga was operating system. When it appeared on market there was MacOS, Atari TOS and Microsoft did not yet had usable Windows released. Many things were great:

  • multitasking — before it was only in Unix systems
  • DataTypes (think “codecs” for any kind of data — open/save files in different formats without having to use lot of libraries)
  • localisation — currently *.po files shows that idea was right
  • flexible partitioning scheme – no /dev/sdaX, no C:\ but partitions which could have own names (DH0: by default, SH0: on my system) and filesystem labels (Boocik:, Szafa: were what I used)
  • Magic User Interface toolkit — user could configure look & feel at a level which no other UI toolkit ever provided
  • assigns — all fonts resided in Fonts: but this could be a list of directories (something like $PATH but more advanced)
  • ability to replace any library call with own code — this gave a possibility to improve system behaviour in a ways which authors never thought about
  • screens — hard to describe for those which never used — extra desktops for use with applications does not even give half of it
  • RAM disk which took only required amount of memory
  • Reset proof fixed size RAM disk (which could be used as system boot drive)
  • two stage icons with application configuration stored inside (in tooltypes)
  • comment field in filesystem for any object
  • XPK and XFD libraries which allowed to (de)compress any kind of data with any available method

And lot more.

I wrote few applications for AmigaOS. Some of them became popular and I was able to expand my computer with addons with money which I got from registrations (yes, I wrote shareware program). It started with 68000/1MB ram when I had to close code editor (great CygnusEd) to be able to compile to 68040 cpu with 64+2MB of memory at the end. AmigaE was language which was both easy to use and powerful to write programs never mind how complex. Add few libraries to it and you can do anything. Today even ‘hello world’ takes few kilobytes on my Linux system ;(

I could buy 386sx instead of Amiga 600 but then all I would learn would be how to do things in MS DOS or MS Windows 3.x as there was no x86 people around which would use Linux, BSD or OS/2. This would be lost years as now after few years of using AmigaOS I know what good operating system can give to hardware when resources are very limited.

A dla tych, co dotarli do końca polecam także post napisany przez Opiego.

Ubuntu/Linaro Platform Sprint in Prague

This week I spent in the Hildon Old Town hotel in Prague as Ubuntu Platform Sprint took place there. Linaro project was part of it.

It was good time. I met many developers, connected faces to nick names (as usual) and wrote some patches. Today it looks like my work items for Maverick alpha3 release are “done” — all changes are reported as bugs, linked to my “cross compiler packages” blueprint and discussed with proper developers. The goal of my work is “armel cross compiler” package in Ubuntu Maverick. I know that there are people in team which will make use of it when it becomes available.

But for next event I really need to take isolating headphones as there are too much noise in room — few groups of people speaking, air condition etc.

Evening events were interesting — I met Czech developers from OpenEmbedded project, had occasion to listen to Nicolas’s Pitre stories about his developer experience and long discussions on many different subjects. And of course Czech beers 😉 Too bad that main one here is Pilsner Urquell as I can buy it in any local shop in Szczecin. But they also had Staropromen which was quite ok.

Prague is nice city. I did not made lot of sight-seeing but this weekend I will spend with my wife Ania so it will be done ;D We plan to see some of popular places and try to find those less popular ones but due to time limits there will be some left for next visit.

I am old fashioned

I use KDE since 2004 (do not remember which version it was). Lot of things changed during that time. But not my X11 session use.

Since beginning of my Linux use (in 2000) I use one set of virtual desktop. Their amount changes from time to time but there are always at least 4 of them (six at the moment):

  1. “work area” — terminal, gvim (few copies of each)
  2. “web area” — here I have web browser (now it is chromium, was firefox, galeon in past)
  3. “mail/news are” — mail/news reader (kontact with kmail/knode, was sylpheed-claws at some time)
  4. “misc area” — here I run software which do not fit to first three

Terminal application changes from time to time. First it was GNOME-Terminal from GNOME 1.4, then Konsole, xterm, uxterm, rxvt-unicode, eterm and few others but after experimenting with many I stayed with Konsole. It has tabs so allows me to run many sessions in one window. Some of tabs have “screen” attached as this allows me to quickly get another shell in working directory and also easy way to log any output (“tee” sometimes got blocked). With recent KDE 4.x changes I started to using “window grouping” to split tabs related to other tasks from main terminal. This gives me one terminal window on screen with few tabbed windows in it which can have own tabs which can have screen sessions in them. May sounds strange but it works. And I always have screen with “irssi” running in it (on local or remote machine).

As editor I use gVim mostly. I kind of mastered it and do not feel good in Kate, Eclipse, JEdit or other “so called normal” editor. Never tried Emacs but do not plan to.

During UDS-M when I told that I am using MPlayer for all videos reaction was interesting. I got list of modern video players (mostly GStreamer based ones) which I should switch to. But I really do not see a need for it. MPlayer maybe is pain in the ass sometimes but it plays everything I have, adds subtitles in a way which I like, has controls on keyboard which I remember and allows me to seek instead of fast forwarding during watching film. Ok, on devices like BeagleBoard I probably can get better results with GStreamer based apps but thats due to codecs which can use DSP.

I never liked Konqueror — always used Gecko based browser. It was Galeon 1.x in past, Phoenix/Firebird/Firefox later, Chromium now. Tried Opera (UI never managed to integrate with look&feel of my desktop) and few other browsers. Chromium is nice but has some drawbacks. Maybe some will be fixed/changed.

Even removable storage I most of time handle with “pmount” command. It works fine for me and I do not like to have all my pendrives/memory cards/etc to be auto mounted. How will I notice which is which in situation when I plug 2 same ones… And UUIDs or filesystem labels are not solution probably. But maybe I will change that in next months.

But back to desktops. KDE 4 has widgets on desktops, activities and few other buzz words. I do not use them. Ok, panel has few widgets integrated but it is still panel. I simply do not see a use case on my desktop for most of widgets. Even after trying them.

So if someone wonder why I do not use something which “everyone is using” then I hope that I gave an answer.

Ubuntu cross compilers

Some time ago developers from Linaro asked me to provide cross compilers which will target ARM. I did setup two (amd64 and i386) chroots with maverick and started builds.

Result is available at my area of people.canonical.com server as normal APT repository. Currently I provide gcc-4.4, gcc-4.5 and binutils there + all ARM libraries which are needed. And this is bare toolchain — you can build kernel with it or hello.c but if you want something more complicated then you will need additional libraries.

Building of those toolchains was easy. Much more time consuming was improving packaging rules. I merged all cross ones into native related so (according to diffstat) over 1600 lines were removed. And that was not all — I am finding new things each day so lot of rebuilds happen. Thanks to Matthias Klose (also known as doko) who is Debian/Ubuntu gcc maintainer all those changes were reviewed, fixed, improved, accepted and released in last versions of “gcc-4.4” and “gcc-4.5” packages in both those distributions.

UPDATE: all those packages are available in Ubuntu 10.10 (and later) repositories.