Skip to main content

Apple's Single-Threaded

Last weekend we bought a new computer for my mother. Until then she had a 5 year old hand-me-down white MacBook whose battery was dead, still had a physical trackpad-button, the power-cable near the connector was completely ripped and the palmrest-edges weren't just cracked, they were gone.

Time for a new one we thought, so we got her Apple's entry-level notebook, the MacBook Air. A notebook no other computer manufacturer seems capable of matching in terms of price, build-quality or industrial-design finesse.


The problem was with setting the thing up. Apparently we got a model of MacBook Air which had been sitting on the shelf for a while as it did not come with OS X Mountain Lion and when running Software Update it had to pull in so much data, both software and firmware updates, that it choked when it tried to install them and just reported an error.

Running Software Update again triggered a re-download of the whole 1.6GB before failing again with the same error. Third time's a charm I thought but I went about it less... intuitive. I thought it'd be a good idea to download the firmware updates first (one by one) and apply those before trying the rest of the software updates. That eventually worked. So Apple, you have a problem when applying these two types of updates in one go.

This is not something "normal" people would be able to pull off. It was quite upsetting. Imagine having to take it back the next day because on day 1 something as simple as a software update kept failing, after having downloaded a huge amount of data, repeatedly.

After downloading 1.6GB of updates, three times, we got an up-to-date OS X Lion. It was getting late already and I didn't even dare mention anymore that another 4.3GB Mountain Lion download was in tow.

Anyway, the title of this post has to do with a single-threaded When we got to setting up her mail account, we found beach-balling all the time. Whatever got clicked it beach-balled a minute or two before we could click again. I had enough and said I'd take the MacBook Air home and bring it back the next day because I had had enough. (Why does Apple gear only ever works flawless with me, I don't know.)

That same evening I found out that a MobileMe account got pre-installed, probably after entering her iCloud credentials. OS X Lion's pre-populated itself with a MobileMe account. MobileMe, as we know, does not exist anymore. was constantly trying to reach MobileMe's mail server, couldn't find it and started timing out, taking the whole Mail application with it. I patiently beach-balled my way through's settings until I could hit the button that deleted the MobileMe account.

How could anyone ship a Mail application that completely hangs as soon as one mail account has problems connecting to the server? It's beyond me.

Fortis Fail

Recently Fortis started offering their "Easy Banking" application on iOS, which lets you do bank-transfers from your iPhone or iPad.

Before you can use "Easy Banking" you need to enable it on Fortis' website first where you have to choose a password. The problem I ran into was with their input validation on the password fields.

The default way of choosing a password is to type it twice, in separate input fields. One part of the validation is checking whether the two inputs are the same. Often it will also check the minimum length of the password. Or even the max-length, although I advise against that. You can't argue against longer passwords... Worse is when companies start checking your input and only allow certain character-sets. There's no point in this at all... People make their passwords more complex by adding in non-alphanumeric characters, they type them correctly, twice... and then the company says they have to simplify the password they're used to, or they won't take it. That is just ridiculous.

But with Fortis it's even worse. The problem is two-fold.

First, on the Fortis website where you choose your "Easy Banking" password, it does not allow non-alphanumeric characters in your password. That is silly in itself but the bigger problem is that they skip over input in their fields when a non-alphanumeric character is typed. Try to imagine... when you are hitting a '%' or '(' or '@' or any other non-alphanumeric character it just does not _type_ it in the field. This is so bad I can't even start describing it.

Thus, suppose your password has a '#' in it... let's say "p#ssword", without the quotes. If you type that in Fortis' input fields you will see this: ••••••• You tab to the next input field and repeat your password, again you see, without error: •••••••

You click OK and everything goes well. Fortis accepts the password because the passwords in both fields match. Cool, you think. I've got my password set up. Now let's get my iPhone and try out "Easy Banking"...

This is where we see the 2nd part to the problem.

In their iOS app's password field... unlike on their website, it does _not_ skip over non-alphanumeric characters. So when you type the above password in the app as you try to log in it will show: ••••••••

You hit "Login" and the application will fail to log you in because you provided wrong credentials. You then need to wait 2 minutes before trying again... With the same result, you can not log in. If you go back you'll see that on the website you only really typed 7 characters, Fortis took out the '#'... The iOS app takes 8 chars, as it should. No app should ever alter the password data you input in the field.

A user will not understand this… He did everything right, saw no error, but he cannot sign in.

I do not understand how BNP Paribas Fortis, a major bank, can be this outright ridiculous in the way they create their applications. Who do they think they're doing a favor by not allowing non-alphanumeric chars _and_ not telling their customers about it when they're just skipping over those characters. People effectively think they typed something twice but the password that is accepted by the website will be different from what you typed... You actually have to start counting the dots in the input fields to know if they match the amount of characters you have in your password.

Hopefully this will soon be fixed, but I'm afraid they don't even know about it themselves. This is a typical case of UX fail when companies try to validate too early and auto-correct input, definitely when dealing with people's passwords, on a banking website.

Location Of my.cnf With MAMP

"How on earth do I tell MAMP to use my own MySQL configuration?"

Chances are you've heard this question one too many times if you're a web-developer... It's also been driving me crazy for about an hour.

Turns out MAMP isn't that bad after all, good thing I refrained from tweeting angry things about them. Granted, they do still suck (their little UI that never disappears is horrid, as well as the incapability of restarting one service, and, they should put their stuff in System Preferences as a PreferencePane, just like the official MySQL has)

In any case, here's what to do if you can't figure out where to put your my.cnf when working with MAMP. To have MySQL print out its help, listing the different paths in which it will look for a my.cnf configuration file, sorted by order of preference, type the following on the command line:

mysql --help | grep cnf

Part of the output should be the following line:

/etc/my.cnf /etc/mysql/my.cnf /Applications/MAMP/conf/my.cnf ~/.my.cnf

Perfect, a couple of locations MAMP's MySQL will look for the my.cnf for and /etc/my.cnf is the first location it will try.

If you were like me you didn't even consider putting it in /etc and tried figuring out where to put it under MAMP's folder. Turns out it's not necessary as /etc/my.cnf will do. But, as an added bonus, it tells you where to put it should you want the my.cnf file under MAMP's folder anyway.

Another tip: in case you've got multiple MySQLs installed make sure you're using MAMP's MySQL by entering the following command: which mysql

We Should Not Use Azerty In Flanders.

Opmerking: Dit hele artikel is in het Engels, wat raar is want ik spreek hier tot Vlamingen. Wie snel wil zijn scrollt naar de onderste lijn van het artikel om de synopsis te lezen.

There is no reason at all why the people in Flanders (northern part of Belgium) should type on computers with azerty keyboard layout. Azerty is for optimized for people who speak, and thus write, French.

Here in Flanders we speak Dutch. Dutch is our mother tongue. It's all we hear, speak and write. The reason why Belgium has azerty keyboards is historical. The french-speaking used to reign over Belgium and so it became the standard keyboard layout, because it fitted the ones in control best. Our country is indeed bilingual, but its regions where each language is spoken are so well-defined that it's absurd to force one keyboard layout upon the whole country. There are even more people who speak Dutch than there are who speak French!

The less-populated southern part of Belgium speaks French, they benefit from having azerty keyboards, but not many people in Flanders speak French well enough (let alone need to write in French a lot) to warrant the optimized-for-French azerty keyboard layout, the country wide standard, while all they'll ever do is type in Dutch or English. English is far better known among young flemish people than French these days.

In The Netherlands, bordering Flanders, they also speak Dutch. We share the same language. Guess what keyboard layout they use in a country where everyone speaks Dutch... Right. Qwerty. Qwerty is the keyboard layout for people that speak Dutch. The second language in The Netherlands is English, and if we're honest it is in Flanders as well. French has withered away to being a course-subject in school.

So, the Flemish would be way better off typing on qwerty keyboards. They're also far more convenient on notebooks than azerty. Plus you won't freak foreigners out when they quickly want to show you something on your computer. People say that they're used to typing on azerty and it would be difficult for them to switch to qwerty. That's not true. It's not difficult but you'll only see the azerty-drawbacks once you type qwerty. The Flemish are typing on azerty out of habit. Well if it's a habit it's a bad one. Nothing that can't be unlearned.

These are the main disadvantages of azerty:

  • The 'a', a vowel, is not under your finger, but in the worst possible location.
  • You need to hold shift for every digit you want to type.
  • You need a special key (Alt+Gr) just to type an '@' or a backslash.

For programmers there are extra disadvantages:

  • The placement of the parentheses and curly/straight brackets is horrible.
  • You need shift for every dot ('.') you type.

It's even worse on Apple keyboards. I would definitely advise against buying an Apple notebook with an azerty keyboard layout because it makes you miss out on basic OS X functionality.

Switching between apps in OS X is done with cmd+tab. Switching between windows of the same application in OS X is done with cmd+backquote, where backquote is conveniently placed right above the tab-key on a US Qwerty Apple keyboard. Guess what, the backquote isn't even on an Apple azerty keyboard.

For programmers on Macs it gets downright ridiculous, it's not even funny anymore. Here's the list of keys you don't have on an azerty Apple keyboard, but are indispensable for programmers:

  • No backquote:`
  • No tilde: ~
  • No backslash: \
  • No pipe: |
  • No curly brackets: { and }
  • No square brackets: [ and ]

You then ask yourself, but what if I do have to type French characters on my qwerty keyboard in Belgium? Well, if you're using a Mac there's no problem at all, because that got fixed in software. You can type any variation of a vowel by holding down that key and a pop-up dialog will appear where you can choose the variation, or you can learn the very logical keyboard shortcuts for the french vowel-variatons. To be complete I'll sum them up:

  • alt+e e = é
  • alt+` e = è
  • alt+u e = ë
  • alt+i e = ê
  • alt+c = ç

And then, again Apple specific, if you are convinced you don't need to type on azerty, a keyboard not fit for your primary languages, and you decide to go with qwerty, buy a US QWERTY keyboard and not Apple's hideous International Qwerty. I don't know why they ever even came up with this aberration. But unless you want your backquote, tilde, backslash and pipe in other-than-the-default locations, and a ridiculously small vertical return key to boot, you should buy US QWERTY, the only standard qwerty keyboard layout on an Apple computer.

To sum it all up, people of Flanders:

Koop geen azerty, het is niet gemaakt voor onze taal. Wij spreken geen Frans. Wij spreken Nederlands, zoals Nederlanders. Dus koop qwerty, en als je een Mac koopt, koop US QWERTY.

Nexus S ICS Update... Clarity?

Some people at work have Nexus S phones. Last month in December Google announced those devices would get Android 4.0 (ICS) via an Over The Air (OTA) update. The guys at work are still waiting. Apparently with Android updates you just have to wait indefinitely until an update notification pops up and then you'll get to download the new software update. Such uncertainty would drive me nuts.

To illustrate "Android Clarity" just google for iPhone iOS 5 update. The very first result at iPhone's company website [ ] explains how to do it. It says:

"Update to iOS 5. Just connect your device to your Mac or PC and follow the onscreen instructions in iTunes."

Now google Nexus S ICS update. All you get are lots of shady tech-blogs without real answers. No page in sight. When I did the search the first link to was the 17th result. It was a forum post from someone who was clearly very angry with how his update process had gone.

Google has stopped the OTA update in "certain regions" but they're not saying which regions. From searching around the Internet it seems everyone (read: a vocal minority) is having problems with Google's OTA ICS update on Nexus S phones.

Is anyone still getting ICS updates on Nexus S or has Google completely halted the rollout? And if you look around the Internet for what ICS is doing to your Nexus S, would you still want to update?

If You Can't Log In To OS X After Restoring From A Time Machine Backup...

The explanation here works on OS X versions prior to Mountain Lion. If you have Mountain Lion reboot by holding cmd+r instead of cmd+s to go into Recovery Mode and change your password using the Graphical User Interface.

This has happened to me twice since I started taking Time Machine backups. Something went horribly wrong, you want to restore from a Time Machine backup and after all those hours of waiting for everything to be transferred over you're presented with the login screen...

But you can't log in. You type your password 3 times to make sure it's right but it doesn't let you log in. Here's how to fix it:

  1. Reboot the Mac and hold down cmd+s -- This will boot into single user mode. Black screen, white text.
  2. Mount the hard drive as explained at the prompt. -- Most likely: mount -uw /
  3. Type: passwd [your user name] -- For example: passwd jeroen (jeroen is my username on the machine). If you don't know your username, type: ls /Users
    This will list the usernames on your computer.
  4. Enter your password, and confirm it by entering it again. Notice you do not "see" what you type, this is normal.
  5. Type: exit

The machine will reboot and you'll be able to log in again. *phew*

The 4 easy steps to enable Clean URLs in OS X Lion using ~/Sites/

I've been scratching my head over this, and I've seen much conflicting "help" online... So I'm just posting it here and hope people will find it.

On OS X Lion Apache comes with mod_rewrite enabled by default, but the AllowOverride directives are still set to None.
You're also installing Drupal into ~/Sites/[username]/drupal

Here's how to change it:

1) Edit /etc/apache2/httpd.conf and look for:

# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
AllowOverride None

Change "AllowOverride None" to:

AllowOverride All

2) Edit /etc/apache2/users/[username].conf and look for:

AllowOverride None

Change it to:

AllowOverride All

3) Go to System Preferences->Sharing, uncheck "Web Sharing" and check it again to restart OS X's Apache.

4) In your Drupal install at /Users/[username]/Sites/drupal/ edit .htaccess and look for:

# RewriteBase /

Uncomment (remove the hash '#') and change it to:

RewriteBase /~[username]/drupal

That's it.

How To Delete Boot Camp Partition Apps From OS X's "Open With" Menu.

Long time ago I had a Boot Camp partition and VMWare Fusion installed to see what it was all about. Then one time I deleted it by moving VMware Fusion to the Trash. I have reinstalled my machine at least once since then, getting rid of the Boot Camp partition, and restoring from Time Machine backups but one thing never really left the system and that was "Boot Camp partition" applications showing up in my "Open With" menu.

For example if I'd secondary-tap a file that was playable with iTunes it would also show: iTunes –– Boot Camp partition in the menu. This freaked me out a little but never enough, until now. I got sick of it had to get rid of them. Here's how:

1) Open Finder
2) Go to your home folder, into Library and then into "Application Support"
3) Delete the folder "VMware Fusion"

Turns out this "VMware Fusion" folder got backed up by Time Machine and put back when I reinstalled, unnecessarily lingering around. In the VMware Fusion folder there was a folder Applications containing the "Boot Camp partition" apps which OS X merged into its "Open With" menu.