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"

Why Apple bought Beats? Beats me.

So the long-rumored acquisition of Beats by Apple has been confirmed, with press release and all. Which tells us precious little, except “Beats is awesome” and “Music is really important to us”.

So why did Apple buy Beats?

Let’s look at possible reasons why companies buy other companies, and see if the beats deal makes sense if looked at it this way, and makes sense specifically for Apple

 

Growth

Ben Thompson at Stratechery  thinks that Apple’s share price can only be justified by growth, and they need to buy a cool line of high-margin accessories. Which is interesting, but in my not-so-humble opinion wrong:

Apple’s stock has a P/E ratio of 15 – i.e. the company is valued at 15 times their current annual profit. Which is not terribly low, but definitely not a level where you need crazy growth to justify it. For comparison: Google’s P/E is 30, Facebook is at 80, and Amazon is at a whopping 500. In other words: nobody would buy Facebook’s or Amazon’s stock if it promised to make as much profit as it’s making now forever. But Apple? They return a solid 6.7% of profit on the invested capital – that’s more than e.g. super-high-risk (that country that just went broke and stiffed it’s lenders, remember?) long-term greek government bonds . And Apple’s valuation is more in line with some steadily profitable, but not exactly growing, companies like IBM (P/E of 12.5 ) or Microsoft (P/E of 15). In other words, in order to justify its stock price, Apple has to grow as much as Microsoft. No need to buy a headphone maker for that.

 

Price

If a company is up for sale at a good price, it can be worth buying it just to take advantage of the low price, and possibly sell or IPO it later.

Since beats was not a public company, i.e. not traded on a stock exchange, we don’t know how much other companies would have paid for it. Luckily there were some publicly announced financial transactions around Beats: HTC bought a significant stake in beats  in August 2011 at a valuation of 600m, then sold half of that stake again  in Jul 2013 at roughly same valuation, and sold the other half in September 2013 at a valuation about $1 billion. There’s also some quasi-official information about an investment by Vivendi in 2013 Vivendi which valued the beats company at $1.6 billion.

Which would point to a reasonable valuation somewhere around $2 billion – which means the beats aquisition was definitely not a bargain.

 

Profit

Gruber at daringfireball thinks it’s a straightforward combination of profits, assets and people. Let’s start with profits.

In 2011, beats had about  $50 million of revenues. They “tripled revenue” in 2012, but while switching to manufacturing the headphones themselves (before that, beats was a pure brand – they did not actually make anything, just promoted the beats brand. The beats headphones were made and sold by Monster cable (yup, that company behind ridiculously overpriced cables), and Monster cable paid beats a percentage of sales for the right to put the beats logo on their headphones).

According to privco.com, in 2012 beats made a$67 million profit on $1.1 billion of revenue, which would point to a fair value somewhere around $1 billion. Fastcompany thinks they might have had $ 1.5 billion revenues in 2013 – good growth, but not the kind of exponential growth possible with software companies. Manufacturing means that growing revenues also require more capital, and lead to higher risks, so privco.com thinks beats was overvalued.

And the streaming service? It’sreally young – beats only bought it as “Mog” in 2012 for a price somewhere around $10 million, and apparently has only about 100,000 registered users, so it’s not a significant source of revenues or profits. Even if every single one of those subscribers was paying 10 bucks a month, and continue to do so for 10 years in the future, the total lifetime value would be less than 5% of the purchase price of beats.

Overall, the beats aquisition would have been expensive for anybody – and Apple definitely does not need the cash flow. Neither are they desperate to invest – they have shown to be quite happy sitting on a huge pile of cash.

 

Assets

Another possible reason to buy a company is to get into a new line of business, to buy instead of building your own.

Now Apple certainly does not need to enter the headphone business, and headphones make little sense as an adjacent business. In fact, with the ipod hi-fi, Apple has shown in the past that they are perfectly capable of making audio gear, but at the same time that it’s not a good business for them. And while Apple has frequently bought companies for their technology, skills or as add-ons to their existing business lines, they have never bought a company for their brand, or to get into a new business.

How about the streaming service?

Music streaming is booming, and the larger players like Spotify would probably be crazy expensive to take over at current tech valuations. On the high side, Beats is thought to have only 200.000 subscribers  (compared to, say, Spotify’s 10 million), and most of those come from a marketing deal with a major provider. Which might still be a good base for another company wanting to get into the music streaming business.

But of all the world’s companies that might want to get into streaming, Apple is probably the least in need of buying an existing streaming service – they already have the tech tech experience, the distribution and the record label deals. Now a successful streaming service would probably have to support Android, and using the beats brand might be a convenient way to not have to support Android with anything Apple-branded – but Apple has shown in the past (think iTunes on windows) that they are perfectly willing to be on rival platforms if it makes business sense.

 

People(“Aqui-hire”)

Another reason to buy a company is to get the founders on board, for their unique talent or connections. Now Dre and Jimmy Iovine certainly are industry insiders. But again, Apple does not need an in with the music industry. And an aqui-hire is usually something along the lines of “really large signing bonus”, not several billions. The deal is simply way too expensive to make sense this way.

 

Synergies

Another common justification for a merger is “synergies” – i.e the combination of two companies being worth more together than separately. Which is usually about fixed cost overheads (needing e.g. only a single accounting department) or market power – not something that’s applicable to beats.

Are beats and Apples as a combined company worth more than separately? Maybe a little bit – there are opportunities for joit marketing, distribution integrated into apple stores, hardware bundles, and the like – but nothing you couldn’t do as a limited-area partnership without having to buy the company outright.

German site neumusik.com thinks it’s about industry contacts, the streaming service, and “wearables”.  Again, those are nice things to have (except headphones as a prototype for wearable computer thingies? come on.), but nowhere close to being worth that much money.

 

Financial shenanigans
Sometimes a deal seems to not make sense, until you notice some completely unrelated financial fundamentals. E.g. for a while Yahoo’s stake in Alibaba was worth more than the whole of Yahoo, or Pfizer wanting to buy AstraZeneca simply in order to invest money outside the US for tax reasons.
So maybe beats has better licensing deals with the music labels? That would certainly move the needle for Apple, seeing how they pay more than $3 billion a year to the record labels. If beats has a licensing deal that is only 10% cheaper, that would nicely amortize the purchase price.  Well, it’s possible, but unlikely. It’s unlikely that the much smaller beats would get a better deal than Apple with its huge, market-dominating iTunes store. Plus, record labels have non-stupid lawyers – most likely any licensing deal beats has would have a takeover clause that voids exactly the advantages mentioned in the event of a sale.

 

Desperation

It happens that a company is bought because it has something another company desperately needs at any price. Think e.g. Google having to buy the whole of Motorola just to get some ammunition for the mobile phone patent wars. Or Instagram threatening Facebook’s hold on its target demographic to the point where it safer to bascially throw money at them to make the threat go away.

The only thing like that beats has I can think of is “coolness with young people”. Apple is old, mainstream and established by now, and in danger of losing it’s counter-culture underdog coolness. Whereas beats has massive brand presence with teenagers.

That might be a factor, but I sorely hope it’s not. For me, beats represents everything negative Apple is frequently falsely accused of. Beats is a  lifestyle fashion fad instead of offering premium products, is using distribution and advertising instead of making a better product. The beats brand is built on glamour and celebrities, rather than standing for something.

Now there are some signs that Apple is starting to think about the lifestyle, luxury and fashion aspects of its brand – things like hiring people from the fashion and luxury industry. But I’m hoping that that’s about some specific aspects, like the retail experience. Overall, if Apple should have bought beats in order to become more like beats, it would be a quite radical departure for them.

 

Stupidity

Sometimes mergers happen for the simple need to do something, and the inability to find any other good way to invest profits. But Apple management is simply too smart to throw money away just to do anything. And if they wanted to get rid of  excess cash, all they’d have to do is increase dividens, or put more money into the already existing huge share buyback program (essentially distributing profits to the shareholders).

They do need a new product line – but compared to, say, reinventing the cell phone industry, headphones are boring, and not a big enough market to move the needle. And streaming? Well, it’s 2014 – it would be pretty crayz to want to get into the content distribution industry at a price tag of §3Billion

 

Summary

Usually there is one big reason for buying a company. In the case of Apple buying beats, I simply don’t see it. Forced to come up with a reason, I’d have to go with “for the cool brand” – but as previously mentioned, I would hate for that to be right. Or maybe there is some financial result that is worth more than 3 billion – I can’t see that, and if that should be the case, quite possible nobody outside Apple knows.

Javascript I love you, but you need to clean up your mess

We are finally reaching the point where dropping support for IE7 is pretty much a given, and the time when IE8 support can be dropped for even conservative audiences draws nearer. So we can finally join the brave new world of fully dynamic rich client applications written in cross-browser supported standard javascript. Well, not quite so fast…

Modules

Too many global functions pollute the global namespace, and your code becomes a mess, so after coming up with an only slightly less messy object structure, you decide to use a module system. Except javascript has no module system. Luckily, some people created substitutes. There’s AMD/require.js, or commonjs on node which you can use on the browser using browserify. Or you roll your own. Or the language itself will introduce a module system with the next version. Of course, any library you use may use either of those solutions, or none at all, and may or may not play nice with your choice. Anybody reminded of the Java logging situation, and what a joy that is?

Language

JS is a mess. So everybody clean it up and extends it in his own way. Until ES6, which might clean that up once it’s ratified and widely supported, some time in 2016 or 2017. In the meantime, you can use some ES6 features, and transpile to ES5 using Traceur. Or use Coffeescript and compile to JS. Or TypeScript, which is almost like some parts of ES6.

Templating

How many ways does one need to say “Take this text file, add code/params/data according to the keywords present in the text, and have the outcome be HTML”? According to the javascript world, at a minimum a choice of Jade, Handlebars, Mustache, Underscore templates, EJS,… – and those are just the ones most frequently seen in the wild.

JQuery

I love Jquery, and so does anybody who ever had to do DOM manipulation without it. And at least DOM manipulation is an area where everybody seems to have come to the same conclusion, which is to use JQuery rather than Prototype, Dojo or whatever else was briefly popular. So since everybody uses JQuery, you might also use it for utility functions, handling Ajax calls, providing UI components, and so one. Or not, or just for some of those. So for every kitchen sink query adds, any project might now do it the standard javascript way, the jquery way, or use some other library.

New Flavors of the month

So you found out that Jquery makes it really easy to add cool effects and do dynamic changes, and all was good. Then you added so many of them, that pages had several hundred lines of spaghetti code, and that was unmaintainable. So people came up with Backbone as a way to structure applications, and you rewrote your site, which was a lot of work, but was good. And then other people became more ambitious, and created Ember and Knockout and Angular, and now you’re tempted to throw away your 6 months old rewrite, and rewrite again.

It’s hard to promote Javascript (and when I say Javascript, I really mean the whole JS/HTML5/CSS/Client-sideMVC/browser-as-real-application-platform shebang) as a valid development platform as long as the platform is a rapidly moving target.

In the long term, betting against Javascript is usually an error, and I look forward to using cross-browser EcmaScript6 with a common stack of stable libraries. In the meantime: learn, experiment, prototype, promote and use the brave new Javascript world for the most compelling use cases.

(Post was inspired by somebody else’s decision to needlessly re-implement an existing, pretty conservative web application with AngularJS – something which the techie imp sitting on my left shoulder would just love to do, while the business imp sitting on my right shoulder cries…)

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.

Disappointments:
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.

Pleasing:
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.

Surprising:
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.

Usage:
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.
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      http://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.

Follow

Get every new post delivered to your Inbox.

Join 51 other followers