Estado d'elmar

Spanish for "the weather at sea". With bad punning, could be read as "the current state of the guy writing this blog"

What the ipad is good for – a real-life review after a year of owning one

This is not an ipad review – there’s little doubt the ipad  is the best tablet on the market.
Rather, I’m trying to answer the question “Do I need or want a tablet at all?”, a.k.a. “Is there really a gap between smartphone and laptop?”.

The answer:
It’s the two-seater convertible sportscar of computers: It cannot do everything my laptop does, and there is nothing it does that the laptop could not. But the things it does do are just more fun with it.

Text entry is really annoying. Even if you split the keyboard, so you can actually reach all the keys with your thumbs while holding it at the edges. Forget answering emails; just entering a url when browsing the web is annoying enough that I use bookmarks heavily, something I don’t do on any other machine. I’m pretty sure I even type faster on my iphone. A note-taking machine the ipad is not, to the point of seriously considering getting a stylus and handwriting app.

It’s heavy (note: speaking of my ipad 3 here – the new air is much better in this regard), and has sharp edges, both of which makes it uncomfortable to hold for longer reading sessions. The screen size is nice for letter-sized pdfs, but it’s not a kindle replacement.

It’s unusable in direct sunlight. Well, not entirely unusable, but definitely unpleasant. Even on the highest brightness setting, the screen looks washed out in bright sunlight. Combined with the glare of the glass cover, forget about websurfing on the balcony.

It’s large, heavy, fragile and expensive. Not really a mobile device, in the sense of using it on the go. More like a mobile device in the sense of a computer that’s easy to take along to use somewhere else.

I expected to use it as a second display for my laptop, using the AirDisplay/DisplayPad app. Unfortunately, it’s a really cool idea, but it doesnt really work. The ipad display looks weird next to my Macbook pro, with different brightness and color temperature; the screen looks fuzzy at non-retina 1024×768 resolution, and it’s just small enough that I have to resize most windows before moving them over. And it’s relly laggy – I never expected to play video, but just dragging or scrolling a window is juttery and laggy to the point of being usable, but no fun.

File transfer sucks. I don’t want to open itunes and sync the ipad just to transfer a file from my laptop to an ipad app. It needs a usb port for transferring files from a usb stick yesterday. Unfortunately, apple’s philosophy of “never let the end user see the evil filesystem” guarantees that will never happen. App developers deal in two ways: either access the user’s dropbox account, or add an FTP-via-Wifi server mode to the app. Both works, but it feels hacky to jump through that kind of hoops just to transfer files from my laptop to the ipad lying next to it.

The display looks great. Really, really great. Photos look awesome, coming much closer to showing full details than a regular computer screen, and text looks perfectly sharp.

Battery life is long enough not to worry about it.

It retains the feeling of the iphone, of not being a computer, but an appliance that just works. No crashes, no spinning beach ball, no drivers, no installers, no nagging update messages.

It’s not a big iphone. The set of apps I use on the iphone and on the ipad barely overlaps. On the iphone it’s mostly real mobile apps – things you need quickly, use for a short moment, and that depend on your location – like finding the nearest ATM, looking up a subway timetable, or whiling away the train ride with a few quick levels of a puzzle game like cut the rope. On the ipad, it’s much more of a sit down and take your time mode, I’m more likely to edit the pictures from the latest trip in iphoto, or play monkey island for an hour.

It’s one of those products that computer-illiterate people somehow manage to use. To an IT professional, it’s a little more pleasant to use than Windows or Android. To a non-geek, it’s the difference between being able to use it instantly, and maybe being able to use it, with lots of learning and worrying. I couldn’t even say why, but some tech products just have that effect. Take facebook, for example – to me, it’s just another mediocre website, but to any airhead teenager it’s somehow possible to use facebook, while being lost on any other website. All I know is that if some random guest needs to access the internet at my place, they’ll be stumped by my mac, but be able to use the ipad. And even my father, who’s as far from a tech enthusiast as you can get, took naturally to swiping through an album of pictures, without even realizing that he was holding a computer.

So what is it actually good for?

A really mobile computer.
My MBP is more like a desktop – powerful, full-featured, but heavy, and cumbersome to pack or unpack, needing a power supply, mouse, etc. The ipad is something you just grab and go, and it’s small and light enough to just throw it into any bag you’re carrying, rather than needing a dedicated laptop bag. It’s great for taking along on trips, surfing at the local coffeeshop, keeping yourself entertained on train rides and the like.

A video player
The girlfriend and me like to watch tvshows at night, which we miss when, say, we’re on vacation in a foreign city, and looking to relax after a day of sightseeing. I’m not gonna pack a heavy, expensive laptop just for that, but an ipad is just fine. Note that if what you’re looking to watch is not on itunes, you’ll have to go against the grain of apple’s world. AvPlayer is really good at playing anything without having to re-encode it for ipad, and comes with it’s own ftp server, so you can upload any file directly without having to got the add to itunes library/add to files/sync/delete from library route.

A photo album
Want to show pictures to someone, without him having to be at his computer? The iphone screen is too small, a laptop to cumbersome, printing the pictures too annoying – the ipad is perfect as a photo screen.

A web appliance
Want to quickly look up the weather? It’s available the instant you open the cover, no booting necessary, or even sitting down. And wasting some time on hacker news is much more pleasant with an ipad on the couch, than a laptop at a table.

A games console
I didnt really want to get an ipad to play games – I really don’t need a new and better way to waste time. But it’s really great at playing games that are not just quick 5-minute-games as on the iphone. Genres that requires a joystick or d-pad still don’t work well (I really wonder why nobody has produced a gamepad accessory for the ipod connector?), but for adventures, RPGs or board games it’s pretty perfect. For someone like me, who does not like to play games sitting at the desk (feels too much like work), and doesnt own or want a dedicated console, it’s great to play the occasional game. Playing, e.g. a traditional RPG like Avadon using your fingers while sitting on the couch is pretty great.

An ereader for tech books
It’s too large, heavy and expensive to use it the way I use the kindle, i.e. the always-with-me library. But it’s great for reading letter-sized PDF files of tech books. O’reilly sells some cheap ebooks, but reading them on the screen is not so comfortable. On the ipad, I can now read them on the couch.

Paper replacement
Anything that is basically a stack of paper can be replicated by the ipad. Think sheet music, real/fakebook for musicians, recipes, etc. So if you have the ipad with you, you’ll never again think “If only I had that with me”. It does not seem useful at first, but the advantage is that “paper” on the ipad takes up no space or weight, so if you have your ipad with you, you have all paper-pased resources with you. I remember a trip to Amsterdam to see friends, where we were sitting round a campfire, had a guitar, and felt like singing some songs, but nobody knew any by heart, and nobody had lyrics or chords with him. Now I have. It’s also great for board games. My girlfriend and me like to play boardgames, but since we don’t live together yet, it seems like the game we want to play is always at the other’s flat. If I take the ipad, I have Settlers, Chess and Carcassonne always with me. It’s not that it’s better to play there, it’s more like I’m gonna have the ipad with me anyway, so I’ll have Carcassonne with me too, without having to carry anything extra.

Bite-size information
As mentioned, it’s too uncomfortable for reading novels, but it’s pretty much the perfect client for Instapaper. Or looking through that presentation from last week’s conference. Or even reviewing your own slides while on the subway to the venue where you’re about to give a talk.

How to compete with Google in Search

To google something has become a verb. Google search is the overwhelmingly largest source of traffic for many sites. Google’s market share in most markets is higher than its competitors combined.
Google has brand identity, search quality, technological quality, and page speed down pat.

So how would you compete with Google search? (Not that google search is bad, but a little friendly competition is always a good thing, and it’s interesting from as a thought experiment).
Frontal assauls (doing the same thing as google, but trying to be better) like yahoo and MSN have hugely failed. In fact, dominant market positions are seldom eroded by frontat assaults, but rather by changes in market demand. The reason why Microsoft has lost so much influence to Apple is not that Macs have replaced windows (globally, Mac OS still has a tiny, if profitable, niche of the PC market), it’s that the market demand shifted so that the whole category of PCs became less relevant since the introduction of smartphones and tablets. Likewise, if ebay sales decline, it won’t be because somebody builds a better auction site (network effects are just too strong for that), but because somebody invents a better way to sell stuff than auctions (like the ability to sell used books back to amazon).

So what are Google’s weak points?
- google does not trust humans -> it cannot use e.g. a human-generated catalog
- google is the no.1 target for spammers, the same way windows is the no.1 target for malware -> a smaller rival might be unnoticed/not worthwhile for spammers, and therefor be able to offer better quality, at least for a while
- google sucks at / has no customer service. That is a good thing, cost-wise, but also keeps people away that require more hand-holding.
- google is run by engineers, so it under-values things like design, and other emotional, touchy-feely topics.
- google is huge, so serving small niches is not interesting.
- google does not understand multiple meanings of a word (for eample, “go” could mean the game, verb, or programming language) – although that is probably the kind of hard compsci problem that google is best at solving

Ideas for competition:
- give me LESS, not more, results (but probably not from a huge human-generated index – that idea failed with the first iteration of yahoo…). E.g. when searching for reviews, google gives me spam and shops (yuck) and reviews from the big newspapers, what I want is 5 blog posts from people like me who have bought and used it, or a link to a great site like kenrockwell or dpreview for cameras)
- serving a single, canonical result. A lot of times, when I search google, I’m looking for something specific – say, the download link for a certain program, or the website of a known organization. Google is pretty good at finding that, but also gives me a lot of results I do not want, which sometimes leads to unwanted results (for example, there were some cases where, due to clever SEO, people looking to download the VLC video player got sent to sites that charged for the download). Finding those canonical links would be labor-intensive, but maybe you could farm it out on the cheap on amazon’s mechanical turk?
- serve a niche very well (flight search or weather are separate category from general internet search, what else can be served by a non-general search site? (technorati for blogs failed…)
- do something sales/service-intensive, e.g. a service where you need to sign up local small businesses. Needs a large salesforce, and therefor large investment, but e.g. yelp has done that successfully.
- rank pages by reputation / social links. For example, when evaluating some product or technology, it would be great if, instead of wading through a sea of marketing drivel, I could get all the links posted by people who follow people who I also follow on twitter, or articles written by somebody whose writing I previously flattered or saved to instapaper. Sort of the holy grail of the internet, apart from being a massive privacy headache.
- better, complex tools for slicing and dicing data, not just finding facts (cf. Wolfram Alpha – which launched hugely mispositioned as a google search competitor, but is actually great at certain specialized tasks)

My experience with pair programming

It spreads knowledge about the codebase
Since two people worked on the code, two people know intricately how it works, and can fix bugs in it without first having to spend time to learn the inner workings. Yeah, I know, in theory everybody should be familiar with everything, but in time-constrained practice you often have the same people fix bugs who wrote the code, keeping the others from getting to know the code of a feature. But even if only the people who wrote it know the code, if it was created by a pair, you already have two people who know it.

It spreads good practices
Even if you keep up with news about tools and practices, you can never know everything. Almost every time I pair, I learn something new – e.g. some eclipse keyboard shortcuts, a firefox add-ons for debugging, or a useful library class.

The code is better
You rarely write sloppy, “good enough for this one time” code – after all, the other guy will see what kind of code you write, and you don’t want to be embarrassed. And if you do, the other guy will point it out and correct it.

The design is better.
Two people have more ideas than a single person. If both are competent, they will agree to throw away the bad ideas, and combine only the good ideas of two people. As for APIs, two programmers think of different use cases, and make sure the API can handle them.

It avoids being stuck.
A lot of time is wasted when you’re stuck – situations where you’ve tried pretty much everything, and still can’t get your design or implementation to work. A second person will bring a fresh pair of eyes (and brain) and often think of exactly those things that you forgot. Or, in a case where you painted yourself into a corner, and have secretly felt that you should throw your efforts away as sunk costs and try a different approach, he will prod you to finally do just that.

It’s exhausting
I can program solo for long stretches of time, but when doing pair programming I usually take a break after two hours max. Paired sessions are much more intense, since they move faster, since (see above) you’re never stuck.

It’ only suitable for certain occasions
It’s a total waste to use two highly-qualified programmers to do simple, well-defined and understood tasks – examples: Defining a web form, setting up the base configuration for a project, or fixing selenium tests. It’s great, in short, for anything that is hard and new.

It’s expensive
A pair of programmers does move faster than a single programmer, but not twice as fast, so you spend more programmer time on a piece of code when doing pair programming. You do gain all the advantages mentioned above, though – so if it’s worth it really depends on the kind of work you do. In my experience, it’s best for integrating new developers in a team, and for anything that involves designing/implementing an API.

How to get hosted when couchsurfing

It’s Oktoberfest season in Munich, so I´ve been getting a lot of couchsurfing requests lately, way more than I can, or want to, host.
Also, couchsurfing has gained a lot of popularity and attention lately, so there`s an influx of a huge number of cs newbies, which, unfortunately, leads to a rising percentage of lame requests.

So here’s some tips on how to get hosted – that is, hosted by me, according to my subjective critieria.

1) References, references, references. There’s no better way to show me that you’re a nice guest than having positive previous references. Of course, everybody has to start somewhere, with no references, that is – but why not host people at your place, before asking others to host you? If you have no references at all, I might still host you, but you’ll have to overcome pretty long odds.

2) Read my profile, and show me that you’ve done so. Usually you’ll have to send a few requests until you find a hosts, so it’s perfectly OK to copy-and-paste the same request to multiple hosts – but add a little something that refers to my profile, to show me that you’ve read it. This assures me both that you’ve read and understand what you’re getting into in terms of location, couch and “house rules”, and that you’re not only looking to save money, but also to make a local connection, which makes hosting you more fun for me.

3) Show me who you are. Again, references help a lot here. Getting verified is also good for showing me that you’re a safe guest. At the very least, have a few recognizable pictures, and fill out your profile in a way that shows me what kind of person you are, and what kind of things you like to do. A couchsurfing request that’s a bit longer than two lines also helps. For example, if you’re into good food, experiencing local culture, interested in art or history, or a science nerd, we’ll almost definitely find a common interest, whereas if you want to mostly go out and party, you’re much better off with a different host, because I’ll neither be interested in joing you, nor can I tell you which clubs are good to go to.

4) Show some interest in couchsurfing. I’m happy to help you save hotel money, but I don’t want to be used as a free hotel. Couchsurfing is based on reciprocity and making international connection. Not everybody has the space to host, and you don’t have to get terribly involved, but you should couchsurf because you want to support a good idea and community, not because you heard it’s cheaper than hostels.

Game development, 1986

Found a fascinating read: Jordan mechners development journal from 1986.

Some excerpts:

He spent most of a day trying to get vhs video (taken on a $2000 video camera) into the computer. He ended up photographing every single frame with a photo camera, waiting for the prints to be developed, and then scanning the stills.
Today: $150 Flip camcorder, 5 minute usb transfer, done.

Orignially, he planned to have no enemies in the game, since there wasnt enough memory for two figures with different animations.
The enemy was created by xor-ing the hero’s animation, so it was black with a white outline

When he started on it, nobody was sure if by the time it came out there would even be a video games market. Likewise, by the time he was about to finish, the original platform it ran on, the Apple II, was declining, so he needed to port to DOS immediately.

He alternated between goofing off for weeks, and doing nothing but work and sleep.

Back then, games were expected to sell for years, not weeks like now. That prince of persia only started to sell well a few months after its release was perfectly normal back then. By the time he made real money from it, he had already moved on to other projects, switched careers and written it off as a learning experience.

Technology radar, fall 2011 edition

Rising stars:

iOS Development
The iphone is still hot, the iPad is hot and established by now, plus now the mac app store gets Joe Sixpack buying applications on the mac. What’s news is that due to the success of the iphone, even large conservative companies are really starting to realize they need to “do something with mobile”.

Android development
The phones still suck, but it gets used on tablets, ebookreaders,and all kinds of other devices. Two years ago it was “cool, we have an iphone app”, last year it was “of course we have an iphone app”, now it’s increasingly “of course we also have an android app”.

Most people talking about HTML5 actually mean ajax web apps. Or “by now we can actually replace desktop apps with web apps”. The most important factor are probably not the new javascript and media APIs, but simply the fact that with IE9, MS finally mostly gets their shit together.

Amazon Web Services
Spot instances, cheaper S3, beanstalk, aws for government – it’s hard to even keep track of all the innovations coming out of amazon. Most enterprises are still extremely suspicious of cloud hosting, but for a start-up it seems almost more unusual not to run on EC2.

Seriously. There’s a lot more to it than, and libraries like jquery or extjs make it non-painful to use. It’s not like you have a choice when it comes to client-side scripting (except, more or less, for coffeescript). And the browser is only the most widely deployed platform in the world. Also: quasi-native mobile web apps. Also: node.js for js on the server. Also: Rhino, and, in Java7, invokedynamic, to run js on the JVM. Also: couchdb for js within databases.


Even Microsoft says Html5 is the future.

Duh. Kind of kept alive with government funds, but Nokia finally realized it’s dead.

Google Wave
Already pretty much killed by google by now. Too bad, I kinda liked it.
In the short run, not going anywhere. But what does the fact that Adobe published an animation tool for Html5 tell you about the long-term future chances of Flash?
A very long way from dead, since it’s used everywhere in the enterprise. But very few people would willingly use it over REST, and new deployments or standardizations on SOAP are rare. Strange for me to say, since I do a lot of work with Soap, but good riddance.

Question marks:

It looked like the next Rails for a moment in 2008 or so, then was not really heard from again. Rule of thumb: languages with weird-looking syntax rarely go mainstream (see also: Lisp). Also: really sucky string handling. But the concurrency stuff is still super neat.

Finally a Lisp that will spread beyond Lisp fans? I wouldn’t bet on it. Still too many parenthesis for my taste. But seems to gain a lot of traction lately.

Finally a new systems language. Too bad there’s not a whole lot of new OSs being written right now. But seems to spread into non-system applications, like AppEngine web apps.

Is there any web startup that does not use it? But it’s not clear yet if a single one, and which one, and which kind, will dominate.

By far the most prominent DVCS, and the most pure implementation of the DVCS concepts. There’s a lot of submarine projects, like single developers using it locally as a subverson proxy. But will a tool designed by and for kernel hackers go mainstream? I like Git, but it’s using up too much complexity-handling brainpower that I’d rather spend on the code itself.

Windows switcher’s guide to Mac OS X

One way to measure the return of the Mac: the rising number of friends who have either bought macs, or are toying with the idea of getting one, and are now pestering me with their switcher questions giving me an opportunity to talk about the mac way of doing things.

So here’s my short list of questions I had when switching from Windows to the mac a few years ago (not yet updated for Lion):

Q: Only one mouse button, no right click, seriously?
A: Mac OS X actually supports right clicks in lots of places, by bringing up a useful context menu in lots of places.So how do you make a right-click hapen? Either attach any non-Apple mouse – Mac OS X  will happily use the second mouse button of a plugged-in non-Apple mouse. Alternatively, to “right-click”, you can double-tap (i.e. tap with two fingers at the same time) a macbook trackpad, or hold down the Ctrl key while clicking, or click-and-hold the mouse button.

Q: Where’s the start menu?
A: There is no start menu.

Q: So how do I get to my applications?
Q: The dock has quick launch icons, and shows your running applications (the icons in the dock with a dot “light” under them). If you want to see all installed applications, they can be found in the Applications folder.

Q: How do I install applications?
A: Some few applications (usually the bigger ones like Office or Photoshop) have installers. For those, double-click the installer (which on the Mac is usually called setup.pkg), just like on Windows.
Most applications, though, are simply one big file called When installing from a CD, just copy the .app file to your application folder.
Internet downloads come packaged in a .dmg file disk image. Double-click the .dmg to mount the disk image, and drag the .app file inside to your applications folder.Then unmount and trash the .dmg file (the .dmg file is just a download container; launching the .app file straight from within the dmg disk image will not work).
When using Safari, some applications will hide the whole .dmg file process from you, by just dropping an .app file into your downloads folder.
You could theoretically keep the .app file anywhere, but it’s customary, and good practice, to keep them all in the Applications folder.

Q: Where is the uninstaller for an app? How do I delete applications?
A: There is no uninstaller. Simply put the .app file in the trash. Behind the scenes, the .app file is actually a folder that contains all contents of the application, so you can delete everything in one go by just trashing the .app file.

Q: Where’s the task manager? How do I kill a hanging application?
A: The shortcut to show hanging apps is Cmd + Alt + Esc. Alternatively, you can also click-and-hold the app icon in the dock – if it really is hanging, the menu entry “Quit” will change to “Force Quit”. For the unix aficionados, you can also do ps aux and kill -9 in the terminal.

Q: Where is the control panel?
A: It’s called “System preferences”, is launched just like a regular application, and can be found in the applications folder. Alternatively, the apple menu in the menu bar also has an entry to launch System preferences.

Q: How do I go to standby / hibernate?
A: Closing the lid will automatically put your macbook to sleep. There is no explicit hibernate – if you leave it in sleep long enough for the battery to drain, it will automatically go into hibernation.

Q: Where’s my command line?
A: It’s called “Terminal”, and is a regular application found in the applications folder. Many people also like iterm2 as a free, improved replacement for Terminal.

Q: No delete key on the keyboard, wtf?
A: The delete key works like backspace by default. Hold down Fn and press delete to have it delete the current, rather than the last, character. To delete files in the finder, press Cmd + Delete.

Q: I closed an application, and changed to another one, but keyboard shortcuts still activate the old application ?! What happend here?
A: An example of this situation: you close your Mail inbox window, now the Firefox window that was in the background is visible, but hitting Cmd+T brings up Mail’s formatting dialog, instead of a new firefox tab.
The explanation is that unlike Window, OS X does NOT quit an application when you close the last window; it will still be running (as you can see by the dot under it in the dock) and active (as you can see by the fact that its name still apears in the menu bar to the right of the apple icon).
To switch to a background applications, you have to actually click into the window of that application.
Of course, not all applications keep to that, and actually quit as soon as you close their window (usually badly ported windows applications. Or iphoto).

Q: So how do I quit applications? 
A: The quit command is always in the “application menu” (i.e. the menu entry in the menu bar that is labeled with the application’s name).Alternatively, press Cmd + Q, or right-click the dock icon, and choose quit from the pop-up menu.

Q: How do I resize a window?
A: Unlike on Windows, only the bottom-right edge of a window is draggable to resize it. No good reason, just the way it its. The advantage is that you can use all edges to drag, rather than resize, a window.

Q: Why does clicking the green window button not maximize my window?
A: The idea is that the green button will resize the window to the optimal necessary size. In practice, results will be pretty arbitrary, and seldom useful. Just drag the bottom-right corner to resize as needed. Unlike on windows, most apps are not necessarily or even customarily run maximized on the whole screen.

Q: How do I make a screenshot?
Press Alt+Shift+2 for a screenshot of the whole screen, Alt+Shift+3 for the active window, and Alt+Shift+4 for a selectable region. The screenshot will not be put in the clipboard, but land on your desktop as a file called “screenshot <date>.png”.

Q: How do I put apps into the  dock?
A: The easiest way is to start the application, and once it’s running, right-click and choose “Options/Keep in dock”. Alternatively, you can drag an application from the finder to the dock, and drop it there (only on part left of the divider close the the trash can, though – the right half only takes documents or folders)

Q: How do I remove an app from the dock?
A: Simply drag it off the dock, and drop it anywhere else to see it vanish in a puff of smoke.

Q: I want to open <some file type> with <some program> when double-clicking it in the finder!
A: Right-click a file of that type in the finder, choose “Get Info”. In the file properties window that will appear, click on “Open with”. Select a program, and click on “change for all”.

Q: Autostarts: How can I have a program automatically start when my mac is booted? Or keep it from starting automatically?
A: This one is really not intuitive at all: Autostarts are connected to your account, so look in System Preferences /Accounts/Login items.

Q: How to I burn a CD/DVD?
A: For data discs, insert a blank disc, and it will appear in the finder. Drop stuff on it and burn by clicking on the radioactive icon.For audio CDs, use iTunes: make a playlist and right-click on it, select burn to disk.For video DVDs, use iDVD.

Q: My <favorite windows program> does not run on a mac! What can I use instead?
A: A lot of things can be handled with applications that come with your mac:
Default browser: Safari (preinstalled)
Music player: iTunes (preinstalled)
Video player: Quicktime (preinstalled)
Pdf Viewer: Preview  (preinstalled)
DVD Player: DVD Player app (preinstalled)
Messenger/IM: iChat is preinstalled, or adium is a free download that supports all major IM protocols
Digital Photo viewer/editor/library: iphoto (preinstalled)
Email: Apple mail (preinstalled)
Image editor: nothing preinstalled, Acorn has a free trial, with basic functionality keeping working after the trial
Image viewer: QuickLook feature built into OS X:  in the finder, just hit space to view a selected file, go through the directory with cursor keys
File packer like winzip: built into the finder: to zip, right-click one or more selected files, and choose “add to zipfile”. To unzip, simply double-click in finder.

Q: What are some cool Mac-specific programs?
A: Some applications to check out:
Quicksilver (fast program launcher, and does a million things more, free)
iterm (better command line, free)
Transmit (well-respected client for S/FTP, S3 etc)
Textmate (THE programmer’s text editor for the mac), or TextWrangler (free, lite version of the classic BBedit)
Acorn (cheap, easy image editor) or Pixelmator (pretty good Photoshop clone)
Aperture (pro-level photo management, iphoto’s bigger brother)
OmniGraffle (useful like Visio, but neither ugly nor annoying)

Q: Tell me some cool Mac features i should check out!
A: For a start, how about:
Time Machine: automatic versioned backups, super-simple restores
Spotlight: full-disk file search that actually works
Expose: see all your open windows at once
Spaces: virtual desktops

Q: OS X Lion is out, when will you update this guide for Lion?
A: Hey, I just wrote this thing, soon as I get round to it, okthxby

Don’t like Google’s redesign? Greasemonkey to the rescue

So Google redesigned their search homepage, to include a black highlight bar for their other service offerings on top of the page.

I think it looks pretty good, but my girlfriend, who is a more visual person than I am, and has better aesthetic sense too, absolutely hated the fact that she was greeted by an imposing, dark bar on top of every new browser window.

What’s a good boyfriend to do? Never one to turn down an opportunity for geekery, I installed Greasemonkey on Firefox, and whippe up a little script to set a different color.

Here’s the script, if you want it:

// ==UserScript==
// @name           google in farbe statt schwarz
// @namespace
// @include        google*
// @require
// ==/UserScript==

var lovelyPink = '#A167E4';
$("div #gbx4").css('background-color',lovelyPink);
$("div #gbx3").css('background-color',lovelyPink);

Eh, voila, here’s Google search in a lovely (?) pink:

Google search page with pink top bar

On a less playful note, this kind of thing is also useful to change color of admin interfaces depending on the server’s url. For example, when developing hybris-based online shops, I use a similar script to color the management console green on test servers, and red on production systems.

Couchsurfer’s guide to Munich

After living in Munich for a few years, I’ve collected quite a few favorite spots in Munich. And since I host couchsurfers pretty frequently, I’ve finally made the effort to put together a little booklet collecting some personal recommendations for things to eat, do and see in Munich. With, so far, quite the emphasis on “eat”…

Anyway, I’ve put it up on the “Stuff” page, or download it directly here.

Every book I read in 2010: 46 Mini-reviews

(Inspired by )


Stefan Tilkov: REST und HTTP

I was introduced to REST in a talk that the author gave at the local Java user group, and was really impressed by the concise, logical and entetaining way in which he presented the REST concept, and decided to get the book to go further. It’s not terribly thick, but manages to cover both the concepts of REST as well as examples of real-world solutions. The best book about the topic I know. Definitely recommended.

J.Chris Anderson, Jan Lehnardt, Noah Slater: CouchDB – the definitive guide

The definitive book about CouchDB, written by some of CouchDBs core developers. It’s well written, easily digestible, and is exactly what you need if you are new to NoSQL and CouchDB. One cavat is that some of the newest features (especially CouchApp) could do with a more extensive treatment, and CouchDB moves pretty fast, so there are some changes and new features in the current version that the book does not yet cover. Nevertheless the best collection of info about CouchDB currently available. Definitely recommended. There is also a free online version.

Aaron Erickson: The nomadic developer – IT consulting career guide

Bought it because I found some blog posts by the author that were good. The book contains some good ideas and valuable insights into the inner workings of an IT consulting firm. Would have made a great essay or a series of blog posts, as a book the signal-to-noise ratio is not great.

Jeffrey Fox: How to become a rainmaker

One of the most frequently recommended books about sales. Good for motivation, or to get into the mindset of a salesperson. Not much specific information, or applicable tips, though. Verdict: mediocre.

Andy Hunt: Pragmatic thinking and learning – refactor your wetware

Strategies to improve learning and creativity. Teaches analytical, left-brained techies to get in touch with their right-brain side. Some of the techniques are a little wacky, others are great. Not a book you read once for the info, but rather a collections of tools you might want to try. I should re-read this. Recommended.

Thord Daniel Hedengren: Smashing WordPress

It’s hard to find a good book on wordpress, since most are oriented at a non-techical audience, and don’t really go deep. This one is also aimed at designers, but is not dumbed down, but intended for people who want to really get into the guts of their wordpress installation. If you want to do things like build your own themes or plug-ins, or use wordpress as a full-blown CMS, this on is the book to get. Recommended.

Dierk Konig et al. : Groovy in Action

The definitive book on Groovy. Aimed at peopl coming from Java, so if you already know the concepts of dynamic languages from e.g. Ruby, the first chapters can be a little long-winded. Later chapters are rather domain-specific, but you’ll probably find a few neat new tricks to do with groovy. Recommended, even if a new edition is overdue (when I saw a conference talk by the author in 2009, he estimated the second edition to come out mid-2010…).

Mark Pilgrim: HTML5 Up and Running

A comprehensive tutorial teaching how to use all the new features of Html 5, while also referencing current browser compatibility and technological fallbacks. Hands-on, straightforward and fun. Highly recommended. Also freely available online at

Robert C. Martin: Clean code

A classic, no idea how it could have escaped me until now. The title says it all, really – everything you’ve ever heard about how to write clean, readable, understandable code in one book. I don’t agree with everything Martin prescribes, and in some cases I’d have liked to see not just what to do, but also how to get there from originally un-clean code. Still great, highly recommended, and should be required reading for anybody who wants to share a repository with me ;-)

Frank Müller: Systemprogrammierung in Google Go

I had the honor of doing a technical review of this one before it came out. It’s a thorough, well-written and acessible book to learn the go language. Recommended (though I’m obviously biased about this one).

Yasmine Limberger: IT survival guide

You know the kind of book that’s full of hard-won, real-world experience? This is not one of them. It reads rather like the author bought a book on each topic’s chapter and summarized it. Not recommended.


Stiegg Larsson: The girl who played with fire
Stieg Larsson: The girl who kicked the hornet’s nest

Stuffed with feminism, leftist politics, hollywood-style “hacking” and gross crime scenes. As to its writing style, to quote a story from the new yorker: “there are blatant violations of logic and consistency. Loose ends dangle. There are vast dumps of unnecessary detail. When Lisbeth goes to IKEA, we get a list of every single thing she buys. The jokes aren’t funny. The dialogue could not be worse. The phrasing and the vocabulary are consistently banal.” And yet it’s a gripping yarn; I found myself not being able to put those suckers down, and read the two huge volumes over the christmas break. Not a highlight of literature, but perfect for that next vacation or long train ride.

John Burdett: The godfather of kathmandu

John Burdett is the author of several novels set in Bangkok, and manages to mix murder mysteries, intracultural insights and zen buddhism. This newest one is a little weirder, and not as good, as his previous novels, but still enjoyable.

Cory Doctorov: Somebody comes to town, someone leaves town

If a novel about a guy whose father is a mountain and whose mother is a washing machine sound strange to you, that’s because it is. The book is very well written, and just sucks you into the story. Unfortunately, it ends rather apruptly, without bothering to explain any of its mysteries.

Robert Parker: Early Autumn
Rober Parker: High Profile

Hard-boiled private detective? Check. Heinous crimes? Check. Mysterious sexy women? Check. Robert Parker is like a modern-day Raymond Chandler, and just like him not afraid to write pulp ficition. I wouldn’t necessarily admit liking his novels, and you won’t miss out on any great literature if you skip them, but they make for great airport reading.

Jhumpa Lahiri: Interpreter of Maladies

Short stories about the lifes of Indians, both those caught in poverty in India, and those trying to bridge tradition and modernity as NRIs. A little artsy, a little sad, but masterfully crafted little tales.

David Gilmour : Film Club

The story about a father reconnecting with his son over watching classic movies is just an excuse for the author to praise his favorite filmmakers’ technique. Not worth reading for the story, but made me want to watch the movies mentioned.

Frank McCourt: Angela’s Ashes
Frank McCourt: ‘Tis

If you ever feel bad, read this. Will put your problems in perspective. McCourt describes his childhood growing up in a dirt-poor family in Ireland. Warm, funny, like listening to a buddy telling you his life stories.

Ronald Reng: Mein Leben als Engländer

Kind of autobiographic story of guy from Hungary trying to start a new life in Germany.

Cory Doctorov: Eastern Standard Tribe

Since Cory Doctorov publishes all his novels CC-licensed on his website, no reason to get them all, right? The first novel in my Doctorov reading-spree, Eastern Standard Tribe is more mature and more polished than his earlier novels, while still kind of half-baked, and a little weird. Not his best work, but enjoyable reading.

Cory Doctorov: Makers

Another Doctorov novels, and a really good one. If you’ve ever built something just to see what it can turn into, this novel will give you a warm fuzzy feeling.

Peter Watts: Blindsight

Mediocre science fiction. Some interesting ideas, but never really goes deep on anything, and ends at a point where you feel the story has not even started.

Mario Puzo: Omerta

If you liked the godfather, this is more of the same. A little cheesy.

Dan Simmons: Hyperion

A remake of the decameron (classic collection of short stoires, wrapped into a surrounding tale of travelers telling each other stories) as science fiction. The surrounding story is kind of weak, but the individual stories are gripping and imaginative.

Cory Doctorov: Little Brother

This is the book to give to your relatives when discussing issues like online privacy, patents, DRM or anti-terrorist laws. And a damn good story to boot. In my opinion, the best of Doctorov’s novels. Highly recommended.

Kurt Vonnegut: Slaughterhouse 5

Supposedly a great classic, all I can say is I found it strange, incoherent and rambling.

Joseph Heller: Catch-22

Supposed to be a great classic, but I found it boring. Or maybe I’m just not compatible with books that are considered great literature, i.e. books where nothing much happens, because it’s all about the internal psychological developments of the characters.

John burdett: the last six million seconds

A murder mystery set in Hong Kong shortly before the handover to from Britain to China. Light reading for long train rides, but at the same time a good, athmospheric look into the intersection of Western and Asian culture.

Jane Austen: Pride and prejudice

Pride and prejudice is for novels what Sunny is for pop songs: a classic that has been covered, updated, interpreted or ripped-off a million times. The original is quite readable, and a nice insight into old-fashioned English society. Which unfortunately means that at least half the book is concerned with the characters worrying and discussing whether what they’d like to do will be socially acceptable, so I had to put it down before finishing it.

Cory Doctorov: Overclocked

A collection of short stories. Did I mention that I was on a doctorov-reading spree?

George Martin: A game of thrones

As mediocre, run-of-the-mill fantasy, a guilty pleasure. Better, and less formulaic, than most other books of its kind, with the good guys losing as often as not. Still, the characters are a little flat, and after a while you notice that the story is not really going forward that much (*cough* wheel of ti


Tiziano Terzani: In Asien

A collection of Spiegel magazine’s longtime Asian correspondent, spanning the decades from the vietnam war to present times. Makes you realize how far south-east Asia has come from a civil-war ridden basket case to booming tiger economies.

Richard Thaler: Nudge

Psychological studies about how small changes in an environment can influence seemingly rational choices. Interesting, and potentially helpful. But also one of those books you don’t really have to read once you’ve read an interview with its author about it.

Wolf Schneider: Deutsch für Profis

A kind of Strunk&White-like style guide for writing in German. More entertaining, but less deatiled and thorough than S&W, though.

Craig Storti: Speaking of India

Intercultural communication is something that cannot be learnt from books, only practiced. But this book comes as close as possible to teaching westerners how to relate to Indians in a business setting. If you’ve ever wondered why your Indian contractors never told you that they would miss a deadline, or why they never implemented those suggestions they had agreed to, read this book. Even having previously spent time in India, I found quite a few things in it I had not realized before.

Jason Fried: Rework

Contains 37signals’ business philosophy, love it or hate it. Some of it sounds a little smug, some is obvious, and some probably works well, but only if you are 37signals. Still there is enough thought-provoking material in here to make it worth the short read. Not much new stuff, though, if you’ve been following their blog for a while.

Bill Bryson: At home

Following in the vein of his “a short history of nearly everything”, Bryson this time looks at everyday things around us. Basically, a history of western civilization, as evidenced by the things we keep around us in our houses to make life more comfortable. Way less boring than it sounds, in fact I found it quite fascinating to read about why things are and developed the way they are. Would be even better if it was written by a geek rathen than a social scientist, i.e. I would have preferred less focus on history and culture, and more on science and economics. Still, highly recommended.

Michael Lewis: The big short

One of the better books about the financial crises. Accessible, entertaining, yet contains enough financial details to occupy the MBAs among its readers. Not really an analysis of the crises, more a kind of biography of some characters that had the guts to bet against real estate-based derivatives. Thankfully mostly avoids sensationalism, and gives a good insider’s perspective about the wheelings and dealing of the financial derivatives trade.

Michael Lopp: Being Geek

The book version of the popular programmer blog Essays on careers, life, technology, management and nerdism.

Jeremy Haft: All the tea in china

Could be called “mistakes to be avoided when doing business in china”. Good antidote when you’ve read one too many article in the buiness press with nothing but hype about China.

Malcolm Gladwell: What the dog saw

Gladwell is an author I hate to love. Definitely more entertainment than science, and more thought-provoking than thought through. Still, damn well written, and interesting. This book contains some of his articles from the new yorker magazine – good choice, since Gladwell definitely works better in essay- rather than book-size.

Bill Bryson: Neither here nor there

Another travelogue by Bill Bryson. Not bad, but not his best book.

Eike Adler: Texas Hold’em

Self-defense for the next poker session with my buddies from work ;-)


Get every new post delivered to your Inbox.

Join 50 other followers