Skip to main content

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 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 macOS functionality.

Switching between apps in macOS is done with cmd+tab. Switching between windows of the same application in macOS 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 braces: { 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 [ http://www.apple.com/ios/ ] 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 google.com page in sight. When I did the search the first link to google.com 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.

Upgraded bensch.be to Drupal 7

Today I upgraded the website to Drupal 7. Drupal 7 has been out for a couple of months now so the time seemed right. That, and the yearly skiing holiday in which Dries and I usually do "something" for our website.

Somehow the first upgrade went bad with a failing database upgrade. I think it might have been related to not actually uninstalling the Drupal 6 Mollom module. All I did was disable it.

I put a backup of the previous version of bensch.be back. This involved cursing a bit as I hadn't taken a backup of the database after my last story. In short I can say bensch.be is hosted at DreamHost now after a very short stint at iPage (turns out they only give you 250MB per inbox, which isn't advertised anywhere on the website)

In any case, the 2nd upgrade worked except for some time zone warnings. Drupal 7 went from time zone "numbers" to actual time zones and it sort of warns you about it in a scary way. It cannot pick a default time zone so all that needs to be done is set it again.

The other errors I got were when trying to create this story:

Notice: Undefined index: description in field_multiple_value_form() (line 156 of bensch/modules/field/field.form.inc).

Apparantly, the Internet says, this is fixed by visiting Administrator -> Structure -> Content types, click "manage fields" for each content type defined and just save the settings again. It worked.

The last error appeared on top of the page was when I visited Administrator -> Appearance to find out about Drupal's new default theme. It had not been able to select a theme so I had to set one and save. I chose Bartik as default theme.

One other strange thing is that I had lost the "Administer" link in the menu as I logged in after the upgrade... So I couldn't actually "click" on anything to get into the administrator section. At first I freaked and thought the upgrade had erased my admin flag leaving the website without admin and no way of getting it back without some SQL magic. A lucky guess for http://bensch.be/admin did the trick. *phew*

Reinstalling Mollom for Drupal 7 was a no-brainer. Nothing to report there.

I could've gone for drupalgardens.com which I actually suggest if you want to get a website up in no time and have a great choice of default themes and color schemes.

But I decided not to.

Upgraded bensch.be to Drupal 6.20.

One of my main gripes with Drupal has always been the upgrade process. I still think there are too many manual actions involved. These have always held me back from upgrading, also because they didn't bring anything "new" to the table except for security. Everyone knows it's hard selling "security" upgrades, even when they're free. But now that Drupal 7's been out for a month it was time for me to consider upgrading again because new features _did_ get added to Drupal 7.

In order to upgrade between major versions you need to first upgrade to the latest minor version of your current Drupal release, after which you upgrade to the new major version. The first step is now done, I've uprgraded my Drupal 6.ancient (it was 6.5 actually) to 6.20. Because I'm superlazy I didn't make a backup of the database. Or is it because I trust the product, Drupal, and its community? So I copied the download link to Drupal 6.20. `ssh`ed into the server where my Drupal installation runs,`wget`ted the Drupal 6.20 link, `gunzip`ped and extracted it. Then the upgrade.

I ran the Drupal crontab from within the administration section first to see if there weren't any problems with the current setup. Then I put the site in maintenance mode in the administration section. Next, all there's to it is moving out the files/ and sites/ folders of the running Drupal installation, copy the new files and folders from Drupal 6.20 in, overwriting everything and then moving files/ and sites/ back into the new Drupal folder. Lastly the UPGRADE.txt told me to browse to http://bensch.be/update.php to run the database upgrade scripts, no errors got logged and I was good to go!

It was so easy that I even remembered to move the site back into normal mode from maintenance mode. Imagine that.

The upgrade process went so smooth that I bet none of you even noticed it!

Tell Mac OS X 10.6's QuickTime X about .mkv files. [Deprecate]

As of Mac OS X 10.6 (Snow Leopard) the way OS X decides what application opens which files has changed. Many people complained about this, just google for UTI (Uniform Type Identifier) and Snow Leopard, you'll see Gruber and Dilger have their say about it.

Fact is: QuickTime does not open .mkv files anymore, it's not in its list of UTIs it handles. For those who relied upon Perian for playing Matroska video files poses a problem. A work-around is installing NicePlayer which tells QuickTime to add .mkv files to its list, this means installing a new QuickTime front-end, or you can run this little application that I've compiled from Perian's Subversion repository (build 1168) which is basically what Perian's installer will run when they finally decide to release a new version. Just like NicePlayer it will tell QuickTime about some extra movie types.

With the release of Perian 1.2 it tells QuickTime about .mkv files in the way I described. I removed the download link.