elmarschraml.com

Occasionally updated personal site and blog

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.

Advertisements

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.
Wow.
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”.

HTML5
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.

Javascript
Seriously. There’s a lot more to it than window.open, 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.

Write-offs:

Silverlight
Even Microsoft says Html5 is the future.

Symbian
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.
Flash
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?
Soap/Schema/WS-*
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:

Erlang
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.

Closure
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.

Go
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.

NoSQL
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.

Git
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 SomeApplication.app 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      https://elmar.wordpress.com
// @include        google*
// @require       http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js
// ==/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 http://www.aaronsw.com/weblog/books2010 )

Tech:

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 diveintohtml5.org

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.

Novels:

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

Non-fiction:

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 randsinrepose.com 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 😉

Amazon Kindle review

I’ve been using a kindle for most of my reading for the last 4 months, and since the kindle is still kind of early-adopterish in Germany, thought it might be of interest to do a full review.

The kindle device

Form factor
With the third version, the kindle finally doesn’t look goofy anymore, and became small enough to fit into a jacket pocket. Build quality is solid, and the dark gray plastic looks good. it feels very thin, and is easily light enough to comfortably hold in one hand for long periods of time. The screen is large enough, but I wish they would get rid of the qwerty keyboard in favor of a slightly taller screen. The keyboard works pretty well, but I just don’t need it. I use it maybe once a week to search for a word inside a book. Amazon seems strangely reluctant to kill the keyboard, though – maybe they think people will buy more books if they can impulse shop right on the kindle itself?

The kindle's size compared to a magazine

The kindle's size compared to a magazine

Screen
The screen quality is good, text is dark and very sharp (though the background is still a light gray rather than real white). It has sufficient grayscales that images look good, too. You never really miss color when reading a book. Page turns are plenty fast enough for turning a page while reading – though flipping through lots of pages to search for a chapter is still slow. The screen is perfectly usable in sunlight, though it does reflect a little, about as much as a glossy magazine. Overall, reading on the kindle screen is much, much better than on an LCD, and about 90% as enjoyable as on paper.
The screen can update small regions pretty fast, so e.g. moving the cursor through a menu works almost as fast as on an LCD screen.

The kindle's screen, with some glare when shining a table lamp directly on it

The kindle's screen, with some glare when shining a table lamp directly on it

User interface
To generalize: easy to use if you’re computer-literate. But not quite mom-friendly yet. Overall quite simple and straightforward, but there are some non-intuitive things. Like the fact that while reading, moving the cursor by going up and down on the D-pad is quite frequently used for notes, highlights and dictionary access, but if you press the D-pad to the left or right, it will suddenly and unexpectedly make you jump by a whole chapter. Or the back-button, whose action is sometimes predictable, and sometimes not. Or the fact that the list of books does not scroll, but is advanced by turning the page – which fits the book metaphor well, but throws me for a second every time. But most of the time, the user interface doesn’t matter much, because it really is a book-reading device – once you’ve opened a book, all you do is flip pages, and the computer part drops out of the way.

Features

Browser
Free 3G browsing anywhere in the world? Sounds great! Except you won’t use it, because the browser is pretty much unusable. Website rendering is quite good, but the slow screen refresh rate, akward zooming (no touchscreen means no two-finger pinching), and akward scrolling/selecting links (no mouse means navigating purely with the D-pad) make web browsing on the kindle definitely less than enjoyable. Tried it once, never used it again.

MP3-Player
Can play MP3 files you drop into the music folder of the kindle, but has no folders, playlists or fixed order of songs. Nice to have, though, if only to drown out other peoples’ chatter while reading on the subway.

3G
Not necessary, get the cheaper Wifi version instead. The two advantages of 3G are that you can buy books on your kindle anytime, and it automatically syncs which page you were on for every book to other devices. But I prefer to use a PC to buy books anyway, and don’t really use kindle apps on other devices. And having wireless (either 3G or Wifi) enabled kills battery life – with the wireless on, you recharge every day; whereas with the wireless off you never have to worry about battery life and recharge once every couple of weeks.

Extras

PDF support
There are two ways to read PDFs on the kindle: Drop them in the books folder as-is, or have them converted by amazon to the kindle format. For A4/letter-sized PDFs, reading them in the original size is clunky enough that you probably won’t do it – the screen is way too small to read the whole page, and zooming and scrolling is pretty annoying. Conversion to kindle format works pretty well for PDFs that are mostly text. In short, if you were hoping to read your pdf-formatted technical books on it, forget it (or get the larger kindle DX).

A PDF file converted from letter-size

A PDF file converted from letter-size

Highlights
Anything you highlight in a book gets extracted and stored in a file spanning all books you read, so you can build up a file with your favorite quotes from your library. Sweet. You can also have kindle show you which passages got highlighted by other people, although I found that quite distracting and turned it off.

Dictionary
This is definitely a killer feature for me, since it’s so well integrated: Move the cursor to any word, and the kindle will pop up the definition from the dictionary. Insanely great for people whose first language is not english – for example, my girlfriend was reading Aravind Adiga’s The white tiger as a paperback, but found it hard to get through all the Indian English slang. So I got it for her on kindle, where she could easily look those up in the dictionary, and she enjoyed reading it this way a lot more.

Even better: you can also buy dictionaries for other languages (or roll your own, more on that in a later post). I don’t use the dictionary much for English, but when reading a French or Spanish novel, where I am proficient enough to read the original, but not proficient enough to get by without frequently looking up words, the fast dictionary lookup is a real killer feature.

Storage
Enough that you will never worry about it. Having my whole library of books that I currently plan to read always with me in a single small and lightweight package is maybe the greatest advantage of an ebook reader over books on paper.

The kindle store

Since the kindle handles no DRM system except Amazon’s own, the kindle store had better be good. Luckily, it is good. Or at least as good as publishers allow an ebook store to be for now. The catalog is huge; large enough that you will find almost anything. But it’s not as complete as Amazon’s paper book catalog. Out of 10 books on my (rather eclectic) wish list, I bought 6 on the kindle, 2 were available as a paper book, but not available for kindle,  and 2 were available as both paper and ebook, but happened to be cheaper as a paperback.

Which brings us to pricing. Prices are higher in Europe than in the U.S. – a novel priced at 10 USD in the US will cost German customers 13 or 14 dollars. Ultimately prices come to about the same as a paperback, most are a little cheaper. Compared to hardcover books, kindle prices are a steal, but not all books are 10-15 bucks – expensive professional books are expensive on kindle as well.

Production value of some percentage of books is rather disappointing. While the “print quality” is obviously not an issue, and the fonts are customizable, extras like the cover, the table of contents, or scanned images often look quite shoddy, almost like the publisher deliberately tried to make the ebook version uglier than the paper book.
One great thing about the kindle store is that you can get a free sample (typically the first chapter)  of almost anything. 

Collections allow you to organize your books into tag buckets
Ebooks vs. paper books

For music, the transition from physical media to digital files, from CDs to an MP3 player, was quite natural. You could convert music both ways, ripping CDs to MP3s, or burning MP3s on CDs. Digital files had the added advantage that, unlike with CDs, you could now buy single tracks instead of having to buy whole albums.

None of these advantages exist with ebooks. Unlike physical books, ebooks cannot be traded secondhand, cannot be rented from a library, and cannot be easily printed out. Besides, paper books have infinite battery life, great resolution and contrast, are immune to being dropped, and are cheap to replace if you should lose them.

So why would someone buy ebooks? For me, the one killer advantage of ebooks is that I take along one single “book”, i.e. the kindle reader, and have everything I am currently planning to read with me. I can read anything, anytime, and don’t have to carry anything havier than a single paperback.Price is less of an advantage than you’d think. If you take into account that amazon sells paperbacks really cheaply, but prices kindle books higher for non-U.S. customers, the price advantage of kindle books comes down to about 20% on average.

In handling and usage, the kindle is much closer to a book than to a computer. Which is good, since compared to e.g. an iPad, learning curve and distractions are kept to a minimum. But it also means it sticks surprisingly, and unnecessarily, close to the mental model of a paper book.There are some innovations that go beyond what is possible with a paper book – the dictionary, the notes file etc. I also like the idea of “Kindle singles” that was recently announced – publishing documents of a length between blog post and paper book – perfect for those cases where an idea that would make a wonderful 20-page essay previously needed to be blown up into a 250-page book just to have something substantial to sell on the shelf of a bookstore.
But we are currently just scratching the surface of what is possible with ebooks. The whole market still feels a lot like digital music before Apple – the needlessly restrictive DRM, publishers’ reluctance to publish their content, innovation killed by the media companies…

The verdict

So should you buy a kindle today?
If you want to get an e-reader anyway: get one – it’s definitely the best device in its class.
If you’ve been holding out, waiting for e-readers to mature: get one, it’s a marked improvement over the previous generations, and the first one that’s worth buying as a non-early adopter
If you want to save money, hate DRM, need a complete catalogs of books to buy, or see no reason to buy another gadget: stick to paper books, and wait for publishers to change. Also, the display technology and usability  is pretty good today, but likely to improve further.

Amazon almost learns from Apple

— inspired by my new favorite blog, littlebigdetails.com —

In a lot of ways, Amazon’d kindle feels like an Apple product: thin, lightweight, easy to use. And yet in a lot of others, its early adopter / geek toy nature still shines through.

Case in point: The changes to the status line in the latest kindle software update.

Previously, the very bottom of the display would show your progress through the book using a thin line, with dots for chapters. Above it, you would see the current percentage read, the current “location” (kindle’s page number substitute), and the total number of locations in the book.

kindle statusbar, old firmware version

With the new software update, amazon introduced real page numbers.

Besides the kindle-esque location, they now show you the real page number, i.e. the page you would be on if this was the physical book, and the total number of pages (see image below).

kindle status bar, new firmware, with menu activated

But now, somebody started thinking about usability. Doesn’t the bottom of the screen look a little busy now? Do we really need all this information? After all, the kindle is supposed to be about reading, not showing metadata.

So the image above is actually only shown if you press the menu button, and have the kindle’s system menu on screen. Which is great – you can see the information when you want it, but it stays out of your way otherwise. And pressing the menu button is already established on the kindle as a means of calling up additional data, since the title bar with book title, battery indicator and time is also only shown when the menu is on screen. Pretty sweet.

So what do you have on screen when the menu is NOT activated?

Well, they got rid of the page numbers, and the location numbers, thereby freeing up more space for actual book text, while the shaded bar still gives you an indication of where about in the book you are.

Unfortunately, the kindle UI team managed to snatch defeat from the jaws of victory. Because there actually is no space freed up, since while the pages and locations are gone, the percentage is still there (see below). Which is utterly pointless, since the shaded bar at the very bottom contains the same information (About where in the book am I?). Granted, the percentage is a little more exact – but not exact enough to find your place again – for that you would need the location number…

kindle statusbar, latest firmware version

To add insult to injury, now that the percentage is the only text left in the status bar, it’s stands out even more, and is probably more distracting than the combined information shown before.

So the good news is amazon thinks about usability, and strives for clean, distractionless design. The bad news is, they are not yet quite as good at it as Apple.

Sorry to nitpick like this, the kindle is a great product in general (full review to come), I just found it a neat little example of making UI decisions.

Martin Odersky’s Scala talk in Munich

TNG, a Munich-based consulting company, had a Scala training this week by Martin Odersky himself, and was generous enough to also host a free talk by Odersky about Scala. Of course, I couldn’t pass up my first opportunity to meet a language inventor in person.

Odersky’s talk was one of the rare events where you listen to someone speak for two hours, and still  feel like you want to hear more. He merged an introductory talk about the why and how of Scala, with a few more advanced topics like Scala’s collections and higher-order functions. On my personal list of technology to watch, it definitely moved Scala from a “maybe interesting” to “pretty cool, will check it out”.

Some tidbits from the talk:

– Scala, or functional languages in general, want you to think in space, not time. Instead of thinking about the order in which things happen, you think about which abstractions to build on top of each other.

– Shared mutable state is the devil. The combination of shared mutable state and concurrency will inevitably lead to heisenbugs.

– Working on collections with methods like map or filter can lead to impressively concise code. A tailor-made example (mapping phone numbers to mnemonic words from a dictionary) that typically takes 100-200 lines of code in other languages was solved in Scala in about a dozen lines.

– Parallelization is mind-blowingly easy. Basically, if you already program in a functional style, all you need to to is tell the compiler to parallelize by using certain keywords, and it will happen automatically. I need to look further into this, but it looks amazingly powerful. It reminded me a bit of garbage collectors – just like managing memory, multi-threaded code is inherently hard and error-prone, so the right way to fix this is not to have better tools to do it, but to not have to do it manually at all.

– IDE support is the biggest headache for using Scala at the moment. The new version 2.9 of Scala, and the accompanying Eclipse plug-in, should come out in a few weeks, and pretty much fix this. Scala support in IntelliJ will probably progress slower, since they write their own compiler for the languages they support.

As a not-so-serious aside, if you want to quickly get a feel of another developer, invite them to a technology event, like that talk. Good, expected answer: “Cool, sounds interesting”. Bad answer: “What is Scala?”. Worse: “You mean, like, talk about programming when I don’t have to?”. Worst, slightly paraphrased: “I fear I might have to learn Java soon, and you tell me that there’s something even newer already?”. All, sadly, encountered in the wild…