Monday, November 09, 2009

Google link soup: Back to WEB 0.1

Only recently I took a look at the Google reader / My Stuff page which is part of the iGoogle portal. And boy, is this a mess... (Screen-shot on the right->)
Fifteen Underlined links, one that is an image (the 'Google Reader' image and one in small print light blue at the bottom left.)
Seven buttons in two different heights, all different widths, one with an icon, one greyed and one button that is actually a dropdown box and a search box. Eight clickable menu items of which two have an icon in front of the text, two have it after the text, three have no icon and one is printed bold.And still they did not have enough ways to leave this page so there is a 'More' menu of which the last entry is the option 'Even More..'
Google apps on the web is a horrible UI nightmare. I really don't understand how they ever expect to take over the desktop from a browser centric OS if they continue on this path. Let's face it: it is already extremely hard to create serious office applications that run in the browser and meet even the minimum level of usability. I even dare to say it is impossible using the current state of the browser technology. I currently use a browser app myself on a daily basis and even though it's very well thought out, does everything we need and has a slick user interface, it makes me itch every time I use it. Every day I try at least ten times to move, copy or delete a file by clicking my right mouse button. Which brings up the browser context menu...
And when I move through the explorer-like files list it annoys me that every step through the tree just takes anything between two and ten seconds. So why did we spend the last decade in doubling computer performance every year to get faster interaction if we are now giving this all away because everything must run in the browser ?

Wednesday, September 23, 2009

Name your Number : Great Joy !


Recently I stumbled on site named WikiDump that loosely archives interesting but deleted items from Wikipedia. There I found an an entry on the 'Zuckerman number' that intrigued me.

A Zuckerman number is an integer that is divisible by the product of its digits in a given number base. All integers between 1 and the base number are Zuckerman numbers. No integer with a zero as one or more of its digits in base b can be a Zuckerman number in that base. In base 10, the first few Zuckerman numbers with more than one digit are 11, 12, 15, 24, 36, 111, 112, 115, 128, 132, 135, 144, 175, 212, 216, 224, 312, 315, 384.

And here is the Wikipedia entry that discusses the deletion.
What I considered strange about this is that the definition of this 'special numbers' seems quite valid. Although the usefulness of this (other than making it a programming exercise) seems arbitrary, I see no reason why mr. Zuckerman does not deserve his small area of fame for discovering it. So I decided to dig deeper...
The definition can also be found on PlanetMath, which claims to reference 'J. J. Tattersall, Elementary number theory in nine chapters, p. 86. Cambridge: Cambridge University Press (2005)'
Now this book is by no means a fake or in any way humorous collection of real mathematics. I briefly went over it and checked some facts and biographies, and it all seems pretty legit. The tricky part is that on 'Google Books' the referenced page 86 is not present. Mr Zuckerman himself though is present on several other pages, proving that he is in fact a significant mathematician. In fact he was co-author of 'An Introduction to the Theory of Numbers' (By Niven, Zuckerman and Montgomery) which is a book that is often referred to in math studies.
But when we search for the other author, Ivan Niven, we find that there is actually something called a 'Nivenmorphic' number. And the definition for this is ' an integer that is divisible by the sum of its digits when written in that base'. Which by now sounds familiar. To add a little confusion though, the official name for this seems to be a 'Harshad number'. And Harshad means 'great joy' in Sanskrit. So who said mathematics was no fun...?

Edit 2020: This has been on my blog quite some time, and only now I see my mistake: Zuckerman numbers are divisible by the PRODUCT, and Harshad numbers by the SUM of their digits ! So they are actually completely different. And if you google the 'Zuckerman Number' you will find it is well represented throughout the internet.

Sunday, September 06, 2009

Went over the world.

Some time ago I bought a AC/DC power adapter for my notebook. It's an amazing little device that takes anything from 12 Volt DC to or 110-240 VAC as input and supplies anything from 12 to 24 VDC to a laptop. It came complete with a 12 V car plug, a mains lead and a set of adapter plugs for only 20 Euro. It was made in the People's Republic of China, where the percentage of people that speak English is probably negligible. But the packing-designers assume that there should be some English on the box to give it something like a professional look.
So here it is:

'In My Mind Do Not Forget You Even'
'Went Over The World'

(note that the last sentence is technically correct...)

It looks like they brought in some random phrases. Just like European companies sometimes copied Chinese symbols from the window of the nearest Chinese restaurant to give their products an oriental look. But where do you find texts like this? Or is this an image of a typical 'European Pub' in Peking...

Friday, August 28, 2009

Multi-Multi Tasking

Multi tasking is not my thing. Apart maybe from listening to music while ironing, any other combination just does not work for me. When I'm doing 'serious' work (like writing software, design electronics, create a report, just anything that requires a significant level of concentration) it takes a while to get started. And any interruption, no matter how short, will cause my mind to reset and start all over. It's even worse when there are two or more tasks at hand that have equal priority. Anything (e-mail, phone, colleague bringing coffee..) can trigger me to shift my attention from one to the other and if this happens often enough none of the tasks get finished at all. And I'm not sure having many arms ( like this Indian god) would help. It's in the mind.
Well, a lengthy intro to the real reason for this post. Someone pointed me to this video on YouTube. How nice it would be if you could replace Guitar Hero with Visual Studio and the Rubiks cube with some kitchen gear so you could prepare fresh pizza while you are coding...

Monday, August 17, 2009

Criss Cross Platforming Speedup


I've written a lot so far about my fascination for cross platform development. Unfortunately my time is limited so I do not spend as much time on it as I would like. And every time I find a little time to pick it up I find to my surprise that others are proceeding down the multi platform road at a much larger pace. Like the Mono team, lead by the the brilliant Miguel de Icaza . Check out StackOverflow podcast #61 to find out he's also a amusing speaker (which is a well known rarity among good programmers...)
Here he also announces the introduction of Mono tools for Visual Studio. This will allow simultaneous development on Linux an Windows. And since Mono is also working towards iPhone application development it is getting really interesting. I believe that we are now slowly working towards the real future of software development. It will not be long before it is relatively easy to create applications that run on Windows, Windows Mobile, Mac, Linux and the iPhone. Something I would not have thought possible two years ago.

Wednesday, July 08, 2009

Hardware vendors should NOT make software

Hardware and software manufacturing are two different professions. Really. Believe me. Trust me. And if your good at one of these stay away from the other (unless you are Apple.)
The best example is a piece of software that is made by one of the largest and most successful manufacturer of everyday hardware: The 'Nokia PC Suite'.
It is definitely the worst piece of software I have used in years. First it's the only Windows program I've ever seen that somehow tries to render it's own fonts. Look at the image on the right, showing the barely readable menu. And believe me: this image is not compressed or manipulated...
Nice detail is that the Settings menu first item is 'Settings..' which almost sounds like there is way to change Settings like font or fontsize. Well, it's not. You can select where you want your popup when your phone is ringing or if you want to send 'Diagnostic information'. Exactly the two things I could care less. I want to switch off automatic updates ! Thes updates come on regular basis and you get this annoying balloontip warning every time you switch your PC on, so in the end you just have to agree.
Upgrading however has a totally different meaning to Nokia then for example Microsoft. A Nokia 'Upgrade' means downloading a complete 35 MB installation file which leads you through the complete installation every time like it was the first time. It decompresses itself to a giant 290 Megabytes and you cannot leave it in the background since you have to agree to the license, answer the standard installation questions and click to finish. Finally it even wants you to RESTART your computer ! The only funny thing about this is that this is the only window in the suite that uses a clearly readable font.
So the question that really bothers me is 'Why ?' Why can't a company like Nokia, known for it's high level of engineering produce a decent piece of software to support over a billion phones ?
I suppose they just have it developed by trainees that dropped out of the hardware engineering course...

Wednesday, July 01, 2009

I'm not alone in .NET Cross Platform land


So I'm not the only one to work on cross platform .NET applocations (how come I'm not really surprised..?) The Banshee Project is a cross-platform multi media player based on .NET and Mono. Though my only experience with the Banshee player is not positive ( It could not play MP3 without hickups on my EEEPC ) it is a great project to show the power of cross platform development. And I'm sure one of these 95 developeres working on it will eventually solve the EEEPC problem.
Banshee creator Aaron Bockover talks about it in a recent Hanselminutes Podcast. Both the show and the shownotes mention that it will run on Windows, but I actually could not find it on the Banshee homepage. On his Blog he mentions working on it, (despite of his aversion to Windows programming) but the status of it is not really obvious.

Tuesday, June 16, 2009

Fun with acoustics


Usually it's about computing, but this this XKDC Comic suddenly comes very close to my professional interests. Though not for marking sharks I'm currently part of a team that develops an intelligent acoustic tag for monitoring instruments that are on the seafloor.
As far as I know it's the only really trace of humor I've ever found regarding underwater acoustics...

Thursday, June 04, 2009

And we call it 'Low cost small notebook PC' !


So Microsoft wants to rename the 'Netbook' to 'Low cost small notebook PC'. Great idea. (maybe also since Netbook is actually a copyrighted trademark from Psion..) I think everybody will be happy that this clumsy word will now be replaced by a much more descriptive term ;-) Maybe an abbreviated version ('LoCSNoP') could be used to make this new initiative a huge success like the previous smash-hit 'UMPC'
But why did they not take the opportunity when introducing Windows 7 to rename it to 'Mid priced GUI based operating system for personal computers and laptops, version 7' ?

Wednesday, May 27, 2009

Blog or advertorial ?


Being a long time fan of Jeff Atwoods Coding Horror I recently found myself annoyed for the very first time. Not by the content of his writing but by the way he uses links to books. Actually he discusses books a lot, and in general each book title is also a link. But it's a link to Amazon so I can immediately BUY the book. But that is seldom what I want. Unless the blog contains a thorough review of the book itself so the only thing left to do is read it yourself. But if you just mention a phrase and the title the link should lead to the book or authors website so you can find some additional info.
I know advertising is the main (only) source of income for professional bloggers but you should be aware that your are walking a thin line when balancing between credibility and commercial benefits.
And yes, that's the reason why there are no ads on this blog ;-)

Monday, May 11, 2009

User friendly, or friendly users ?


UI development has been a source for discussion. Books have been written, entire blogs are dedicated to it and when you start reading and digging deeper you'll just get to a point where you will become completely stuck. You'll think weeks about every single menu item, background colour gradient angle and button placement.
Yet I've written an application that has a UI that would not even pass the basic test for usability and I never had a single complaint about the interface! The menu structure is not really logical nor standard, dialog boxes for similar functions vary widely in appearance and their buttons are placed almost at random. And when you click 'Help' it just opens a .pdf document that contains only the very basic instructions.
All this happened because it started as an 'internal use only' application and grew by demand through the years. Functionality was added on the fly if someone required it to get a specific job done and often I just 'plugged in' a windows form from a different app just because that already contained most of the functionality of what I needed at that time.
And then suddenly the application was 'promoted' to end user software and supplied with an expensive piece of hardware and used by a slowly expanding group of people around the world. So on regular intervals I get feedback and requests for change but it's always about the functionality. A calculation is found incorrect, export functions should export more values, graphs should show more details and so forth. Never ever did somebody complain about the arcane data editing function, the strange menu structure or the crippled help.
The users are certainly not computer specialists. They are people whose main job is just to do measurements. They just need that software as an additional tool in a similar way they need a four wheel drive, rubber boots and ropes. And it seems they don't really care how it works, as long as it gets the work done.
"So I have to press the left mouse button three times while holding control, shift and F4 to get a printout ? Al right. I'll write it down."
And they will always do it like that. And if they have to instruct their new colleague it will give them a good feeling that they know this awkward combination by heart. My feeling is that they treat it like any other professional tool. You have to learn how to master it and it becomes part of your professional skills. I suppose that is the reason why Linux adepts stay enthusiastic about their operating system, even though they have to get to the command line and type their cryptic commands for anything but the most trivial tasks.
"So you can operate the LHC ? Big deal, I know how to get connected to my bluetooth phone from my Linux powered laptop !"
(Don't mail me about this last remark. I have no idea..;-)

Tuesday, April 21, 2009

Finally: One language, three worlds.

Eureka. At last. With the release of the System.Windows.Forms assembly for Mono a dream comes true. Well, this sounds a little over the top but it felt like that the first time I got my 'SimpleTerm' application running on Ubuntu. SimpleTerm is C# application for serial port (RS232) communication that I originally created for the PocketPC using SharpDevelop. By using only CLR functions that are available in the Compact Framework I could build an application that runs on a PDA and a desktop, unchanged!. So it was exactly the same bytecode on both platforms. Now this does not work on the Mono platform (although there seems to be a way to patch the bytecode itself) but after I imported the project into MonoDevelop and just compiled it, it actually worked ! Which could be considered as a breakthrough merely for the fact that it supports serial communication !. So it's not just a 'Hello World window' with an OK button but its a real application that even supports the most underappreciated form of digital communication. And I say 'underappreciated' because the RS232 specification was established in 1969 and it has been the main form of communication between computers for over 35 years. But it is only since the release of System.IO.Serialport in version 2 of the CLR that serial communication is really supported out of the box in a mainstream development framework. I know this is not an issue for most people, but if you are working with instruments and microcontrollers whose only means of communication is still plain RS232 it is a real revelation.
The image shown here is a combination of three screenshots, one of a PocketPC emulator, one from an Ubuntu system running within a virtual machine and one from a 'standard' Windows XP computer. The text in the main window of the application shows the result of a call to 'Environment.OSVersion' which indeed reports the operating system and version on all three systems.

Saturday, March 14, 2009

Creative AdWords


Usually I feel the 'intelligence' of Google is impressive. Almost every search I do leads me to the right pages within the first two or three results. And the ads shown on the right of the search pages are also often remarkably relevant. That's why the WTF page shown here really surprised me. (Yes, you hae to click on it to see the details). I saved it as a screendump, since it is unlikely that you would get the same results if you visited the original article now.
On the other hand, the WTF site is definitely a site for real nerds, so the first ad ('How To Pick Up Girls ?') might be in the right place after all.
For those of you that do not master the Dutch language: ad 3 and 5 both lead to shops that sell underwear. Clearly AdWords got mislead by the multiple occurrence of the word 'String' in the source code Which is strange if you realise that Google programmers are probably among the 0.001% of people whose first association to this word is 'string of characters'.

Friday, January 16, 2009

Is a €550,- Netbook still a Netbook?


With the introduction of the ASUS PC S101 you start wondering what the definition of a Netbook is. The S101 has a larger screen and a bigger keyboard and this of course is reflected in the price of approximately €550,-. Well, maybe I see it wrong, but for €550,- I can already choose from a myriad of different 'normal' laptops that already have a larger screen and keyboard. And way more storage capacity than the internal 32 GB SSD of the s101.
ZDNet defines a Netbook as 'A subnotebook computer that costs less than US$400 and incorporates an Intel Atom microprocessor'.
I would add to that the following:
- Weight less than 1.5 kg
- Runs from batteries for at least 4 hours
- Wifi
- Solid state disk
- Maximum 10 Inch screen

That's a netbook, or else it should just be referred to as portable computer.