Head Body


So, I made a thing that auto-updates my Twitter avatar with my Klout score every day. I call it Twout. If you think that’s interesting and you’re a bit on the geeky side, follow along.

I recently fell over an article by Matthew Knight on .net magazine that explains how to make your Twitter avatar reflect the amount of emails in your Gmail inbox. That gave me an idea: How about showing your Klout score directly on your avatar?

I thought that would be a neat little project. I’ve only dabbled very little with PHP (some would probably say that is a good thing), but I wanted to give myself a little challenge. Get the Klout score from the Klout API, overlay the score on my profile image, and upload the new profile image to Twitter. How hard could that be?

Well, it took me a days work to get it done, but the “heureka” moment at the very end was very satisfying. I’m kind of a scrapyard coder. I’m not very good at starting from a blank canvas, but if I have some examples from around the web, I’m pretty good at combining them and getting them to work. So thanks to the article already mentioned, that’s what I set out to do. And this is the result:

As you can see, my Klout score could use a little boost. Let’s see if this post is enough to get it back up in the 50’s!

Below is a write-up of what I did. Please don’t judge my PHP skills, as I’m very far from being even slightly adept in the field.

What you will need

You’ll need a server that can run PHP and cron jobs. You’ll also need access to Twitter and Klout’s APIs, so you will want to create a developer account on their respective sites if you don’t have one already. After you’ve done so, create an app on both platforms to get the keys and secrets needed to access the APIs.

Twitter developer site

Klout developer site

Make sure your Twitter app has both read and write access, since we need write access to update the profile image.

For Klout you will just need an API Key. For Twitter you will ned a consumer key, a consumer secret, and an access token and access token secret to sign requests with your own Twitter account. You’ll find them all on your app page. You create your access token and secret by hitting a button on that page.

Keys and secrets and a magical mirror

With keys and secrets in hand (it’s like being in a fairy tale, grandma!), you’re almost all set. At the end of this post you’ll find a zip with all needed files. Edit the ‘twout.php’ file and put in your Twitter screenname and the keys and secrets for Klout and Twitter. 

Your profile image

Also make sure to overwrite the profile image at images/profileimage.jpg with your own. Use a 350x350 px image for optimal quality.

The helpers

Awesome people have made awesome helper tools for talking to Twitter and Klout. We’ll need these, so go ahead and download them and put them in the same folder as twout.php:

Twitter-async (PHP)


Updating once a day with cron

Now, upload the whole lot to your server. The last step you will need is to set up a cron job that hits ‘twout.php’ once a day and updates your Twitter avatar. This will work brilliantly:

0 0 * * * lynx -dump http://yourserver.com/twout.php

And that’s it! Once a day your Twitter avatar will be updated with your Klout score.

Link to the package:

Twout source files

How to get FDT 5/Eclipse to display properly on MacBook Pro with Retina display

I ordered a MacBook Pro with Retina display the day it was announced. The screen is a beauty! But unfortunately FDT 5 was not - upscaled text horribleness everywhere.

Brandon Hudgeons posted a simple solution to a bug report on eclipse.org:

  1. Do “Show package contents” on the FDT 5.app (or Eclipse.app).

  2. Edit Contents/Info.plist. Just above


    Place this:

    <key>NSHighResolutionCapable</key> <true/>

  3. Make a copy of FDT 5.app (option+drag the app, or simply copy/paste the app). A new app is created: FDT 6.

  4. Trash FDT 5.app and rename FDT 6.app to FDT 5.app (*)

  5. Launch FDT 5 app and revel in the magnificence of your code in Retina resolution.

(*) The reason you want to trash the app is that OS X caches the info.plist file.

New Name, New Site, New Focus: Presenting Wisekopf

2012 marks the 10th anniversary of madsb.com. What better way to celebrate than with an extreme makeover!

I’m excited to present Wisekopf, the new incorporation of my work identity. With Wisekopf, I will finally be dedicated to what has always had a special place in my heart: Mobile.

Since creating Albino Gorilla — the now defunct moblog* service — in 2003, I’ve known that the mobile space is where my passion lies. So I am extremely excited to finally be able to make that my primary focus: conceptualizing, wireframing, designing, building and marketing mobile apps. If you or your company need help with any part of the app development process, you now know who to call. No, not Instagram! They’re busy buying yachts. Me!


Making an app is tremendously different than making a website. What makes a great app? How can you combine your app with social media to let the user share his activity in the app on Facebook and Twitter, thereby indirectly spreading the word about your app? How can we use push notifications to keep your app top-of-mind? I’ve been there. I know.

Wireframing and designing

The concept is in place. You know what problem your app is going to solve for your users, now you need to find out how to solve it. This is one of the most exciting phases in the process: Transforming your concept into actual screens. This is where the final product begins to take form.


On iOS I primarily work in Objective-C building native apps, and utilizing years of expertise with Flash and Actionscript I’m also able to develop cross-platform (iOS/Android) apps with Adobe AIR.


Thinking that getting your app approved on the App Store is enough to get you noticed is like going to the airport and sit in the waiting lounge. You have to hop on a plane to get somewhere! Create a website, a press release, get buzz on Twitter and Facebook, get reviews; whatever it takes to get your app noticed. Did you know there are over 600.000 apps in the App Store? Most of them are crap, yes. But getting noticed in a pile of crap can be pretty difficult. I’ve been there. I know. Forgive me if I put disturbing images in your head right there.

A one-man band?

I was wondering, like probably most one-man companies do, whether to use “we” or “I” when describing Wisekopf. The thing is, I don’t work alone. I have an extensive network of skilled people that I can pull in on any project that requires it, be it designers, information architects, back-end coders etc. The fact that I don’t have any employees just makes me more agile, not to mention able to keep costs down. And that benefits my clients in the end. As you know, there is no “I” in “awesome app”. Or… never mind.


I’m also extremely proud to present iBeThere, Wisekopf’s first independently developed app. iBeThere helps you and your friends let each other know when you leave, when you arrive and where you are in-between. Version 1.0 is available on the App Store right now, and version 1.1 is currently in the works with even more goodies.

So, two things you should do right now:

  1. Download iBeThere (it’s free - spend your money on cortados and mojitos instead, but notify your friends with iBeThere before you do)
  2. Go visit wisekopf.com

And then, if you feel like it, give me call - or use iBeThere to let me know you’re en route to my office!

(*)Think Instagram for Nokia and SonyEricsson camera phones anno 2003

The Mac, the Lion, the Spotify and the tale of the dead mouse clicks

This one was driving me nuts. On occasion it seemed that my Magic Mouse was malfunctioning. If the mouse had been left in one position for a couple of seconds, the first mouse click thereafter would not register. If I clicked a second time, it would work. The built-in trackpad exhibited the same problem, so it had to be a software issue.

OK, off google-hunting for an answer, which led me to various suggestions:

  • It could be JiTouch, so I tried disabling that. Didn’t help.

  • Could be a nearby Bluetooth mouse with a nearly dead battery that was causing the issue. I actually had a Magic Trackpad with a dying battery connected to a Mac Mini downstairs, so I had high hopes for this solution. Changed the battery on the trackpad - clicks still didn’t register.

  • A suggestion of sleeping the Mac and waking it back up didn’t work either. I was getting quite desperate by now, fearing that I might have to reinstall Lion.

  • Finally, I found this. Turns out, Spotify can eat left clicks! Quitting Spotify did the trick.

After a bit more testing, it seems that the problem only arises if Spotify starts up when you log in to your computer (say, if you had Spotify running when you restarted). Quitting and restarting Spotify fixes the click problem.

Hopefully this post will help out others with this issue. Took a bit of hunting to fix this one!

Go the F--k to Sleep

Academy Award nominee Samuel L. Jackson (Pulp Fiction) rocks this mock bedtime story, capturing a hilarious range of emotions as the voice of a father struggling to get his child to sleep.

If this isn’t linkworthy, I don’t know what is. Short audiobook from Audible, free for a limited time.

The Art of Endless Upgrades

Kevin Kelly on maintenance and upgrading:

I used to upgrade begrudgingly (why upgrade if it still works?), and at the last possible moment. The trouble is familiar. Upgrade this and suddenly you need to upgrade that, which triggers upgrades everywhere. A “tiny” upgrade of even a minor part can be hugely disruptive. But as our personal technology became more complex, more co-dependent, more like a personal ecosystem, delaying upgrading is even more disruptive. So I now see upgrading as a type of maintenance: you do it to survive.

(via Shawn Blanc)

Tweetbot is here

Let me join the chorus: The best Twitter client so far – Tweetbot – has arrived. Thumbs up from Daring Fireball, Shawn Blanc and all the other guys that know what they’re talking about (and have been betatesting it for a while), so you really can’t go wrong.

So do we need another Twitter client? Nopes. Do we need a better Twitter client? Always.

Oh, and if you’re like me who initially thought it didn’t have Instapaper support, it’s just buried pretty deep in the settings: Go to Accounts, Settings, Account Settings, Read Later, and select Instapaper.

Go buy it on the App Store now.

GoPano micro - Capture 360º videos from an iPhone 4

The Kickstarter concept and many of the ideas that are posted on the site are absolutely mindblowing. Take a look at this project (which has already raised 4+ times the goal): A lens for the iPhone 4 to make 360º panoramic videos.

(via TUAW)

Backblaze/mds CPU spike problem in OS X

I had an annying problem with the fans on my Macbook Pro running constantly. Checking my CPU usage (with the excellent iStats Menus 3) revealed that the ‘mds’ and ‘mdworker’ processes were the culprits, which basically meant that Spotlight was constantly indexing my hard drive.

Knowing that my hard drive probably didn’t need that amount of indexing, I figured something had to be wrong. A little detective work with a terminal command (sudo fs_usage -w -f filesys mdworker | egrep “open” - thanks to this thread on SuperUser), and it turned out that Backblaze was constantly changing some files which Spotlight then figured it had to index, resulting in a Backblaze/Spotlight cat and mouse game.

So - Spotlight Privacy tab to the rescue:

Add /Library/Backblaze to your Spotlight Privacy list, and you should be all set. Immediately after I did this, my CPU usage dropped and my fans stopped running at full speed. Success!

The Cosmonaut

The Glif guys are at it again, this time with a wide-grip stylus for touch-screens.

I backed the Glif - as I have the Cosmonaut - and I must say these guys come off as a couple of really nice, genuine entrepreneurs. They tried something new this time, giving the first 3000 backers the option of selecting their own price. Those 3000 slots were filled in 48 hours.

Since they (disappointingly) came somewhat under the $50,000 that was their goal, they’ve added two more tiers of $25 and $50, which secures you one or two Cosmonauts respectively.