Archive for March, 2008

March 23, 2008: 7:52 pm: DanGadgets

It’s been a couple of months since the Nokia N800 became my main handheld squeeze, so I’ve had time to grow accustomed to its charms and come to terms with its limitations. I thought I’d list some the not-so-obvious strengths and weaknesses, for the benefit of anyone considering buying the N800 or its big brother, the N810.

Strengths

  1. Button interface. In addition to the standard 4-way pad that you’ll find on pretty much any handheld gadget, the N800 has several clever buttons that I haven’t come across on other devices:
    i. task switch (roughly the equivalent of a Windows Alt-bar)
    ii. menu bar (for a dropdown menu of options)
    iii. full screen
    iv. zoom in
    v. zoom outThe first 2 buttons are handy because they make it possible to navigate through many applications without touching the stylus. At first I completely ignored the other 3 buttons, partly because they are hidden out of sight on edge of the N800, but mainly because the other handhelds I had used before didn’t have a zoom feature. It turns out that the ability to zoom in on the text you’re readying is pretty useful when you’re peering at a 4″ screen, something which somehow never occurred to me before (or to Microsoft).
  2. E-mail. My e-mail experience with the N800 was a roller coaster. I was delighted to find that its browser supported the full GMail interface, as opposed to the sparse mobile version of GMail used by most PDAs. Unfortunately, it was painfully slow. So I tried pointing the N800’s built-in e-mail client at GMail’s MAPI interface, and was delighted to find that it was much faster. Unfortunately, it has intermittent connection problems with GMail, a known problem which is, as of this date, without a fix. So I tried one of the more popular add-on applications for the N800, an e-mail client named Claws, and I was delighted to find that had solid support for GMail’s flavour of MAPI, including folder synchronization. I’m still delighted — Claws is one of the best e-mail clients that I’ve seen on any platform.
  3. HTML Notes. Like the button interface, this is a simple feature that I didn’t appreciate at first. I was somewhat impressed that the built-in text editor (called Notes) supported simple formatting like fonts and bullet lists, but I avoided using them because I didn’t want my notes to be saved in some oddball file format that couldn’t be opened on my other devices. It took me awhile to realize that the file format it uses is, in fact, HTML — the most widely support file format under the sun. An HTML-based Notepad is a great idea, and yet another feature that I wish my other handhelds supported.

Weaknesses

  1. Power management. This is the opposite situation to HTML Notes — a feature that works great in other handhelds but Nokia somehow managed to screw up. Palm got this right about 10 years ago — a Power button that immediately saves the device’s state and powers it off. I don’t know if Nokia had trouble getting Linux to support this, or they thought they had a better idea, but instead of pressing the power button you simply leave the device alone and it automatically goes to sleep. Unfortunately, it’s a restless sleeper, and when you turn it back on hours later you often find the battery has been drained.
  2. Video. Right now, the N800 can’t handle most video files without using a PC to transcode them to a proper resolution and frame rate. The built-in media player is hopelessly slow with any video file that hasn’t been transcoded, and (to my surprise) the usually reliable MPlayer stutters its way through many video files. This problem may simply be an unavoidable downside of the N800’s generous 800×400 screen resolution. For me this isn’t a big deal — Nokia provides a transcoder that makes the process relatively quick and easy — but some might find the process cumbersome.
  3. Application support. The problem here is actually the new operating system that is available for the N800 (and standard on the N810), OS 2008. It isn’t binary compatible with its predecessor, OS 2007, and a lot of applications either haven’t been ported to the new OS or haven’t been as well tweaked. This problem will presumably be solved over the next few months.
  4. On screen keyboard. This is another simple thing that works fine on all my other handheld gadgets, yet Nokia managed to mess up. The keyboard only pops up when you are in an input field, meaning you can’t use keyboard shortcuts for things like selecting files or copying text. What’s worse, the standard keyboard shortcuts wouldn’t be usable anyway, since there is no Ctrl key.

The bottom line — I still love it, warts and all. I’m amazed that for $200 the N800 gives you a bundle of features that costs $500 in smartphones and PDAs . (The N810 adds GPS and a slideout keyboard, but at steeper cost). My notebook PC now goes for weeks without being used at home. If it wasn’t for the power management problems I’d consider ditching my Windows Mobile device for the N800 too. Kiitos, Nokia!

March 8, 2008: 2:19 pm: Dan.Net, Programming

I just wrote my first certification exam for the Microsoft Certified Technology Specialist program. After devoting about 50 hours of study over the course of about 4 months I passed the exam, so I’m on my way to getting the certification (1 down, 2 to go). Woo hoo. However, rather than giving me a sense of accomplishment, the experience has left me disillusioned and very disappointed with Microsoft.

Four months ago, I began down this path a starry-eyed optimist. One of my favourite rants (I have many) is the fact that, unlike pretty much any other profession that requires technical skills — doctors, pilots, mechanics, bus drivers, etc. — anybody can declare themselves a software developer and enter the trade. The idea of a doctor, pilot, or bus driver learning on the job is laughable, but developers do this all the time, generally without great success. I’m convinced that this is one of the reasons why there is such a wide range of skill levels among developers, and few widely practised standards used to design and write software. It’s hurting the industry, and has been for many, many years.

So, I felt like somewhat of a hypocrite for not having written the .Net certification exams. The main thing holding me back was the investment of time it would require — the .Net 2.0 Framework contains over 100 classes, and I had first-hand experience with less than a quarter of them. I had a lot of catching up to do.

Fortunately, Microsoft has published something specifically for this purpose: the “MCTS Self-Paced Training Kit (Exam 70-536): Microsoft® .NET Framework 2.0—Application Development Foundation”. Unfortunately, it is 1000 pages and as dryly written as the title would suggest. But, hey, this stuff isn’t supposed to be easy or we really could learn it on the job. So, I dove in and devoted a few hours per weekend to exploring the .Net Framework, including its dimly lit back alleys.

Three months later I gratefully turned the last page of the kit, equipped with all the knowledge that Microsoft felt necessary to write their exam. But I was now glassy-eyed, not starry-eyed, and felt it advisable to get a second opinion by buying what is called a “practice exam”. Back in August I was a little surprised when a local .Net user group leader told us that he felt a practice exam was a mandatory investment for anyone for anyone who wasn’t blessed with a photographic memory. Until then I had looked upon those things as cheats used by blaguards and other men of low character. If so, call me low. On my first attempt at the practice exam, I scored a woeful 46%.

My mistake was to focus on learning concepts, rather than details, when I read through the Training Kit. I thought it would be useful to learn what options the .Net Framework offers for things like making applications more secure, or encrypting data. I didn’t think it would be useful, or even feasible, to memorize the exact syntax for doing so. Apparently, Microsoft feels otherwise. The exam questions (both practice and real) don’t test your knowledge of the relative advantages and disadvantages of the various methods of, say, encryption, but they do test your ability to select the correct syntax for encrypting a string from among several very similar blocks of code. Passing the exam won’t necessarily mean you are a knowledgeable .Net developer, but you’ll be a pretty reliable .Net code parser.

But this story has a happy ending. The practice exam turned out to be a much more effective tutor than the Training Kit, by focusing on quality rather than quantity. (Based on others’ recommendations I chose to use MeasureUp’s practice exam, but several similar products are available.) The software consisted of 170 multiple choice questions, with explanations offered of what was wrong with each of the incorrect choices. As it turns out, they’ve done a good job of selecting questions and answers which teach you what you need to know to pass the exam. They don’t give you the real exam’s questions, of course, but I found that pretty much everything on the real exam dealt with a method, property or setting that appeared on the MeasureUp practice exam. If you read and fully understand the explanations that accompany each of the questions, then you should do OK on the certification exam.

But, of course, 8 hours of working with the practice exam isn’t going to teach you all about the .Net Framework. This is the reason why I’m so disillusioned with the certification exam: it’s a lousy way to gauge your knowledge of .Net. Instead, it tests your ability to memorize the exact wording of a relatively small and (in my opinion) not particularly important subset of classes, methods and properties. I can’t imagine why any developer would memorize those things when you can look them up (or, if you are using Visual Studio, have Intellisense fill them in for you).

If, in order to pass the certification exam, you memorized the exact name of every class, method and property mentioned in the 1000 page Training Kit, then you are a) a certified genius and b) probably still not going to pass the exam, since a significant percentage of the exam questions are not sufficiently covered in the Training Kit. (Microsoft makes you sign an NDA before writing the exam so I would be unwise to list examples, but hopefully I can get away with suggesting that you research XML serialization to a greater extent than is covered in the Kit).

Next up for me is the 2nd exam in the MCTS trilogy: “Windows-Based Client Development”.. Microsoft Press offers an 800-page Training Kit for this. But what’s the point of devoting the next 3 months to it, when 8 hours of working with a practice exam will likely be all I need? In theory, the point of the time spent training is to build up my skills as a .Net developer so that I can prove them by passing the exam. In practice, the exam does a lousy job of proving this.

Sorry, Microsoft, but I’m giving you a failing grade. I wish you’d take advantage of your own “Second Shot” program and write this exam again!

March 2, 2008: 6:35 pm: DanGadgets

On February 21st, Nokia quietly released a new version of the firmware for their N800 and N810 Internet Tablets. (So quietly that I can’t find an appropriate Nokia page to link to). The new version, officially “Software Edition 2008 version 2.2007.51-3″ is about 140M in size, but oddly just 259 bytes larger than the previous version. What do those extra 259 bytes get you? Not much, based on Nokia’s brief description: “This release fixes the power on (boot) problem only.”

And so ended what is commonly referred to as the “N800 power-on enigma“, a problem experienced by many, many users (including yours truly) who bought their Nokia N800 or N810 in late 2007 or early 2008. It made for a rude introduction to the device: bring it home, charge it up, and stab futilely at various buttons wondering where the Finns hid the power switch. It turned out that the device wasn’t dead-on-arrival, just playing hard-to-get, as users found that if they ignored it for awhile it would happily power on later. While it was up and running the device showed no indications of problems with the battery — it would discharge normally, recharge normally, and keep chugging along faithfully until the user powered it off. Then it would play dead for a bit.

As far as I know, the problem was never formally acknowledged or documented by Nokia support. Even the above one-line description is nowhere to be found on Nokia’s web site, though it is displayed briefly by Nokia’s “Update Wizard” Windows software that you can use to update the firmware. If it wasn’t for 3rd party web sites I wouldn’t have known that this fix was available.

Like others who bought a flaky device, I found Nokia technical support less than forthcoming. I suppose I shouldn’t have expected much, since Nokia is probably used to letting cellular providers deal with customer technical problems. In response to the support problem I submitted to Nokia Canada Customer Care, I received an e-mail which, along with the inevitable “Thank you for choosing Nokia” niceties, contained a couple of sentences specific to the problem: “Dan, if your Nokia N800 Internet Tablet does not power on, we recommend contacting Dell to see if they offer any replacement, repair, or refund options. If Dell are unable to assist, we recommend having it evaluated by a trained Nokia technician.”

Fortunately, I already had a handle on this problem thanks to various Internet forums and blogs. The consensus seemed to be that 1) the defect was limited to a power-on problem — the units were otherwise fine, 2) there was no fix other than returning the unit. Since the N800 has a sleep mode which is generally preferable to powering it off, I decided to live with the problem rather than letting a “trained Nokia technician” have a go at it.

So, after letting us dangle for a few months, and presumably footing the bill for a lot of returned units, Nokia proved our 2nd assumption wrong and quietly fixed the problem. I’ve been powering down my N800 a regular basis for the past week to confirm that the fix works, and it does. I haven’t decided whether I’m more impressed with Nokia’s programmers for fixing what was almost certainly a flaw in a supplier’s hardware component, or annoyed with Nokia’s tech support for abandoning their users to devise their own explanation for the problem. No, wait, I’ve decided. I’m annoyed!