Nico Golde: Two weeks with the n900
Two weeks ago I got myself a nokia n900 phone which is running maemo 5. So far I am quite happy with it, given that my previous phone was a sony erricsson p1i which is pretty crappy.
I've taken some notes about my experiences:
Those are the things I came up with while using the phone. The calling functionality and everything which is only phone related really works fine and the sound quality while talking to someone on the phone is also really good. So far I am really happy with the phone and I can only recommend it. I hope I'll have some time to port some applications to maemo soon.
I've taken some notes about my experiences:
- under normal use the battery lasts for ~ 2 days, if I'm using 3G the whole day I need to recharge it daily though
- the terminal has a bug which results in the enter key not working under some conditions, ctrl-m works as a workaround though
- playing normal dvdrips in mplayer is absolutely no problem without downscaling, 720p doesn't perform though
- I somehow managed that my screen flipped and I wasn't able to flip it back, only a reboot solved that
- It is not clear to me which tools you will find in the list of installable packages and which are only visible with apt-cache search. I also managed to end up with a doubled launch icon in my application list for some application
- the termininal is not usable anymore after an ncurses program crashed, "reset" doesnt help either
- wireless uses less battery than umts, way less
- the back button in the browser is per default opening a fancy eyecandy browse history which is slow, so I mostly use backspace to browse back
- there is lots of useful tools in the extras-devel repository, e.g. I can control my mpd via mmpc from the phone which is great
- importing contacts works flawlessly, also merging existing contacts works as expected
- jabber (including xmpp calls) are integrated in the contacts information (you can merge a jabber uid into an existing contact)
- i've no idea yet what the internal video player is, but i wasn't able to play a non downscaled XviD file with it, mplayer does play it fine
- freely placeable widgets are awesome
- it's is really userfriendly and no geeky linux user phone
- i would prefer not having busybox per default, i can install bash but the libc is still from busybox which implies world readable password hashes in /etc/passwd, so no other user accounts on my mobile

- is there disk encryption available?
- n900fly can't cause any good

- gps with nokia maps is ok and I find it pretty usable even if a google maps client would be nice as well
- the mp3 mplayer sucks unless you have tagged your music properly, you can't just play some folder without having a playlist for it
- mplayer as an alternative from the console is no real alternative either, if you don't redirect its output to /dev/null it gets stuck in a loop when the display blanks,
- app manager locks dpkg lock even if you just list available programs, no idea why this is needed and no idea how aptitude and synaptic are doing this
- is there a good todo manager which comes with a widget listing todos?
- is it possible to install armel debian packages without having a debian chroot?
- sms are nicely organized per contact in an instant messaging fashion
- the builtin accelerator works nice and you can automatically flip the screen when you want to dial a number, sometimes happens by accident though
- the multiuser support works awesome and you get a nice overview of open applications in a compos fashion, it may be wise to have not 40 applications open though
- the list of processes is already huge (like 160 processes running in the background)
- i haven't checked out the sdk yet but I will do that soon as I need e.g. newsbeuter for RSS
- hardware feels robust, arm cortex a8 is imho a very good processor, RAM could be more (the phone is heavily swapping)
- you can not yet use the phone as a wireless access point without building your own kernel images, some people seem to be working on this
- you can manipulate all kinds of stuff through the sysfs, including the phone led and the vibration

- wireless certificates are sometimes shown to be invalid but there there is no details button, you can click only "done"
Those are the things I came up with while using the phone. The calling functionality and everything which is only phone related really works fine and the sound quality while talking to someone on the phone is also really good. So far I am really happy with the phone and I can only recommend it. I hope I'll have some time to port some applications to maemo soon.
In November 2007, 
The annoucement below went out to
Agile Business Analysts?
I have recently been fleshing out my thoughts on the role of business analysts in an Agile team. This is something I have historically addressed on a case-by-case basis with clients, but when thinking about it last week at a client site, I realized that I do have a general take on how the role and responsibilities of a business analyst change when a group moves to using an Agile process. Per the usual, I ll be using Scrum as the example process where needed.
The Classical Roles
Historically the business analyst has had two primary roles. In a process where cross-functional communication and collaboration are minimized, these roles are essential. What little communication that takes place between the business and the software development teams purporting to serve them passes almost exclusively through one or more business analysts. I view the business analyst in a phased development approach as having two roles; Translator and Gatekeeper.
The Translator
The business analyst is primarily tasked with taking the needs of the business and translating them into a written document that is then handed to the software developers and testers. This role s necessity is based upon some fundamental assumptions. First, programmers and testers are on the whole, too socially retarded to actually talk to the business persons and find out what they want. Second, the business is primarily viewed as being unable to focus its thought long enough to tell the programmers and testers what they need. Since a key value of an Agile approach to software development is to have individuals and their interactions be the driving force rather than processes an tools (see
On Wednesday I got DAM approval and since Saturday late evening
How a window manager with tiling layouts makes a 1024x600 resolution livable.
I spend a lot of time in front of a screen, and for the past year I have
used only my netbook. No desktops, no laptops. Just a cheap $200 computer
that is nearly a kid's toy. The most challenging thing about this is
dealing with the 1024x600 screen resolution. When I moved to this screen
from something with many more pixels, it at first seemed very cramped.
After a year, I think that the most important part of coping with the small
screen is the flexability and customizability of layouts provided by the
Xmonad window manager. In this post I will explain a few layouts I have
developed for fitting specific tasks onto the netbook screen.
(I assume that you know maybe 0.1% of Haskell (about what I do),
and can read Haskell code without having a brain aneurysm.)
web browsing
















New guidelines for periodic publications' websites at my University favor the different journals we have to use a standardized system And it makes quite a bit of sense. It is quite hard to explain to the people I work with that the content is not only meant to be consumed by humans, but also by other systems; the reasons behind rich content tagging and deep hierarchies for what they would just see as a list of words (think list of authors for an article, list of keywords, and so on). After all, aggregator databases such as
So, it is quite possible I will be uploading this into Debian in a couple of weeks (hopefully in time to be considered for Squeeze). The reasons I am making it available in my personal repository now is:
In the last few days, I found the time to spend some with KVM and libvirt. Unfortunately, there is a subject that I
haven t yet found a satisfying solution: Naming of block devices in guest instances.
This is surely a common issue, but solutions are rare. Neither an article on Usenet (in German) nor the German version
of this blog article has found solutions for the main question. I should have written this in English in the first place
and am thus translating from German to english, hoping that there will be some answers and suggestions.
KVM is quite inflexible when it coms to configure block devices. It is possible to define on the host, which files or
whole devices from the host should be visible in the guest. The documentation suggests that devices should be brought
into the guest with the virtio model, which needs suppport in the guest kernel. Importing a device as emulated ATA or
SCSI device brings a performance penalty.
The devices brought into the guest via virtio appear in the guest s dev as /dev/vd<x> and do also have their
corresponding entries in /dev/disk/by-uuid and /dev/disk/by-path. The vd<x> node is simply numbered in consecutive
order as hd<x> and sd<x>. /dev/disk/by-uuid is the correct UUID of the file system found on the device, at
least if it s a block device partitioned inside the guest and formatted with ext3 (I didn t try anything
else yet). The terminology of the /dev/disk/by-path node is not yet understood, and I am somewhat reluctant to assume
the PCI paths of emulated hardware as stable.
Looks like I am forced to configure inside the guest when I have changed the host s mass storage system (for
example, after migration to a different file system or after new block devices have been added) to accommodate for the
new order of the /dev/vd<x> or to have the UUID correctly configured. This is like calling for configuration
errors.
This is a reincarnation of the same issue that has been killed by LVM on Linuxes running on bare metal :
The block device itself has a mnemonic name which is constant even in migration and copy actions. This works without
file-system specific stuff like UUID or label, and wouldn t even be possible with a UUID (which won t be
unique in this case). The mnemonic names of LVs are also available when the data is directly written to the raw device
such as a CNFS buffer of a news server.
I would love to have something like a paravirtualized device mapper interface which would allow to say in
the host s configuration which of the host s LVs should be visible in the guest with which name in
/dev/mapper. That way, the guest s configuration could remain stable during data wrangling operations on the
host.
One solution is to have a single LV for each guest and import this LV as /dev/vda into the guest. /dev/vda would then
be partitioned like a real disk and have its own LVM installation. This would however need kpartx if one wants to access
the data from the host, and loses flexibility when resizing file systems.
These issues appear in every installation of KVM virtualization, and I would expect that there are gazillions of other
possible solutions. I am interested in knowing how other people have tackled this issue and whether there are more
possiblity that I haven t thought of before. Maybe there is a solution that doesn t leave me with the
feeling of having implemented something ugly. Does the interface between the host s KVM and the guest s
device mapper that I have been dreaming of maybe exist. Or is there any other possibility of configuring the device
node s name in the guest Linux on the host side?
Merry Christmas! Happy New Year! Yeah, it's that time of year again, I am writing a blog post 

