I’ve been using Windows Mobile phones since the early days of the MPX-200 and have used just about every phone that was released. For software testing, I’ve had to acquire the latest WM6 devices and have used them as my daily phone for minimum of several days. Here are my observations:
1) T-Mobile Shadow
Pros:
Excellent form factor - thin and light
Large, bright display
Good ergonomic keypad
Slide-up keyboard good for answering/hanging up
Cons:
Terrible battery life
Strange keypad layout causes slower text entry
Terrible camera
So-so phone reception
2) Motorola Q9H
Pros:
Built-in GPS
Large, bright display
Good phone reception
Fast CPU
Comes with extended battery
Decent keyboard
Cons:
TERRIBLE voice quality (sounds like talking to Darth Vader through a paper towel tube)
Heavy, bulky device
GPRS/EDGE data worked slowly and unreliably
Custom USB connector requires special cable or dongle
3) HTC Vox (S710)
Pros:
Good form factor for full-keyboard+keypad device
Large, bright display
Excellent numeric keypad
Excellent slide-out keyboard
Excellent voice quality
Excellent phone reception
Good GPRS/EDGE connectivity
Decent camera
Cons:
Little rubber covers warp and stick out (USB + MicroSD)
Conclusion:
The HTC Vox wins by a landslide. The only thing that kept me holding on to the Q9H for a few extra days was experimenting with the GPS, but since the EDGE connectivity was so hit or miss, I couldn’t get Google Maps to work because it kept timing out when receiving data. I guess the next phone for me will be the 3G successor of the Vox.
April 13, 2008
Posted by
bitbank |
pocket pc, smartphone, wince |
|
2 Comments
I’ve been thinking more about JPEG decode optimization and have come up with some new ideas. My latest goal is a fast image preview which works with EXIF thumbnail images. I’ve been targeting Desktop Windows and so far, all of the code is written in C. The latest experiment was on a Core 2 Duo T7250 (2.0Ghz) laptop. The results of decompressing 500 EXIF (160×120) thumbnail images into 16bpp flat bitmaps resulted in an average decode time of 0.7 milliseconds per thumbnail image. That works out to about 35 nanoseconds per pixel. I used my same optimized C code from before, but this time I made better use of memory. Maybe some good x86 asm can get it to go even faster…
March 22, 2008
Posted by
bitbank |
tech |
jpeg, optimization |
No Comments
On a whim, I stopped at a local T-Mobile kiosk the other day and wanted to see what I could get for a 2-year contract extension. I’ve been happy with T-Mobile for a long time, so another 2-year commitment is no issue. The new device they had to offer is the Shadow. It cost $159, but has a $50 mail-in-rebate, so $109 is not bad for the latest Windows Mobile standard device. My overall impression of the device is positive. It’s the thinest, lightest QVGA Windows Mobile phone I’ve seen. It’s got a slide up keyboard. The keyboard is both good and bad at the same time. I really like having a slide open/close device for answering/hanging up calls. The phone feels a bit fragile, but the slider mechanism feels like it will work for a while. The keyboard is sort of between a numeric and full querty keyboard. Each key has 2 letters on it and it uses a strange variation of T9 input for guessing what word you want to type. For typing normal English text, the word prediction works quite well, but if you need to type in unique words such as email addresses or web URLs, the keyboard can be slow and painful.
The device is completely T-Mobile branded, but HTC has started to exert more effort to make their branding known; there’s a small HTC symbol on the back of the phone.
I’ve read other reviewers criticize the new GUI, but I find it to be quite useful and a real time saver. The “today” screen is a rotating icon list which allows quick access to functions such as messaging, web, calendar, alerts, and settings. What’s missing from this interface is access to the last used programs, but a hardware button can be assigned to bring up that list. I find the GUI to be quick to do the things that I want to do (email, web, calendar). This device is the first I’ve seen to include a small rotating wheel on the d-pad. I don’t particularly like the wheel because it seems to be inconsistent at times. It takes a 1/4 rotation to register a change.
For now, this is the phone I carry in my pocket (temporarily retiring the HTC Vox), but it will take a few weeks to determine if it’s really my favorite phone.
For gaming, the phone has a nice 2.6″ LCD, but the buttons are not ideal. The off-hook and on-hook buttons don’t do anything on a press, only a release. This makes them useful as Start/Select, but not much more.

3/22/08 Update: After using it for a week, I really like it. The size and feel of it is quite good. I like the slider for answering calls and locking the device. There have only been two negatives so far: 1) The battery life. I highly doubt that it could get 5 hours of continuous talk time. On a day of heavy usage (maybe 1 hour of talking, and 30 minutes of PDA usage), the battery was down to 1 bar. I usually don’t talk much and use the PDA functions for about 1/2 hour a day, so it’s acceptable, but someone using their phone for long periods will need to find another device. 2) The cell reception is a little bit worse than my HTC S710. In a weak signal area where my S710 works fine, the Shadow drops calls.
March 17, 2008
Posted by
bitbank |
tech |
smartphone, t-mobile, wince |
1 Comment
I’ve decided to release the source code to my SN76496 sound chip emulator. It’s not the most accurate, but it sounds good to my ears. Perhaps someone in the programming community will make improvements to it. This is really an experiment to see how well it’s received and see if it’s worth releasing other source code. The sound code rarely takes much of the CPU time in most games, but I wanted to have some fun optimizing this code. The zip file includes the C code as well as the hand-written ARM assembly language.
Enjoy,
L.B.
sn76496.zip
March 6, 2008
Posted by
bitbank |
tech |
emulator, sn76496, sound |
1 Comment
I purchased a copy of Intel VTune in its earliest days and found that it was a useful program and a reasonable value at the time (I forget what the original price was). For those of you unfamiliar with it, it’s a performance analysis tool which allows you to see where the time is spent in the execution of your software so that you can spend your time optimizing the right parts. A few years later, I had switched operating systems, and computers and wanted to use VTune on the new computer. I had lost the original serial number, but had registered it with Intel. Their policy was that I would have to buy it all over again. At that time, the version I purchased was 7.2 and I did need it for a project, so I spent $600 and got the newest version. Now I find myself wanting to use it again on a new computer with Windows Vista. Version 7.2 doesn’t install/work properly on Vista, so I went back to Intel looking for a patch/upgrade. Again, their policy is that I have to spend $700 to get the newest version so that it works properly on my new equipment. If I had paid $280 per year to “maintain” my support, I could receive the latest version, but because it expired, I would have to spend the big money all over again.
Luckily I don’t really need to use the tool, so I’m not going to spend $700. I’m a small developer and $700 is a lot of money to me. I really don’t appreciate having to pay for the same program again and again. Since I write software for a living, I can set my own policies on upgrades of my software. Normally I sell software with an unlimited free upgrade path, but in the case where I might want to charge for it, I’ll make sure it’s a reasonable amount and not force the user to pay for the same thing all over again.
Looking at it another way, Intel is basically renting me the software for $280 per year and if I decided to skip the “rent” one year and want to use it at a later time, they’re penalizing me $700 for that privilege. No thanks. When I buy something it should be my property and not come with an annual cost. No thanks Intel, I’ll take my business elsewhere.
February 28, 2008
Posted by
bitbank |
tech |
Intel, software, VTune |
No Comments
Over the next few days (weeks), I’m going to profile various graphics routines running on the ARM to see which gives the best performance. Specifically, I’m going to compare the speed of converting planar data into chunky data with lookup tables versus brute force calculations. Also I will examine the time to render graphics from planar (e.g. 2/4 bpp) sources versus pre-converted 8bpp chunky sources (which use 2 or 4 times the memory). The relevance of this is to help speed up Nintendo game emulation. The GBC, NES, and SNES all store their sprite and tile data in planar format, but this must be converted to chunky format to work with most display memory. If anyone already has some insight on this, please feel free to comment.
February 14, 2008
Posted by
bitbank |
tech |
arm, gbc, graphics, nes, performance, snes |
2 Comments
I’m not sure the exact number of days, but starting last week and up until Monday, my HTC Vox acted as if the battery was fried and had a life of about 2 hours of standby and a few minutes of talk time. Many thoughts went through my mind such as a firmware bug, MicroSD card bug, battery fried, and so on. I had never seen a battery deteriorate so quickly. My wife’s phone was doing the same thing, but since it’s battery is more than a year old, I thought that was the problem. Well…starting yesterday I noticed that the battery life was back to normal and the same with my wife’s phone. The only conclusion I can come to is that T-Mobile did something strange with their towers that caused my phone to waste lots of energy. Has anyone else seen this (in S. Florida)?
February 14, 2008
Posted by
bitbank |
tech |
battery, t-mobile, wince |
1 Comment
In case you haven’t read about it earlier, CompUSA is going out of business. I never frequented that store before because their prices were terrible, but I was in the area and figured it would be worth a look to see if any bargains could be had in their liquidation sale. My local store looked like it had been picked clean by vultures, but there were still a few useful items to be found. I was able to snag a XBox 360 wireless gaming receiver and controller for 30% off ($41). I have the XBox and could use an extra controller, but the fun part of this purchase was the USB dongle which allows you to use your XBox 360 wireless controllers on your PC. The XBox 360 controllers are very well designed and seem to run forever on a pair of AA batteries. It was very satisfying to run my game emulators with some decent controls.
I also found some cheap mice, keyboards and printer paper there, so it’s worth a look before they close for good next week.
Here’s a link to the product I got:Amazon Product Link
Update: I visited their West Palm Beach store and it was a complete waste of time. Their prices are still terrible, but in that store, they add insult to injury by charging high prices for broken, open-box, junk. Rest in peace, we won’t miss you.
February 7, 2008
Posted by
bitbank |
tech |
compusa, receiver, wireless, xbox |
No Comments
I just started using Google AdWords to advertise my software products. It seems to be attracting more business and it’s a reasonable model. What I’m discovering is that it’s really an arms race between you and your competitors to get control of keywords. You specify a maximum “bid” for each keyword or phrase and that determines it’s placement in the advertising column of Google’s search results. Typical keywords can go for between 10 cents and a dollar. The problem is that Google pits you against your competitors when you are using the same keywords. e.g. I placed a bunch of words/phrases into my “campaign” at a certain price point and they were all active. When I came back the next day to check on them, they had all been de-activated and it was asking me to offer more money to re-activate them. Some of the words which started out at 10 cents are now asking me for $5 (that’s the cost to me of a single click) to re-activate them. So it’s basically like ebay where the craziest person wins. I obviously can’t afford to pay $5 per click for software products that cost $10 each and probably only generate a single sale for every 20 or so clicks. So by creating an ad campaign against my competition with those keywords, I’ve pushed up the price of those words to the point where I can’t use them any more and I’ve probably made it rather uncomfortable for my competitors as well. Google uses the same ad campaign for some other advertising activity which doesn’t seem to be affected by these minimum bids, but it’s certainly disappointing to see most of my advertising get expensive or disabled within a matter of days.
Now I see how Google earns all of their billions 
February 2, 2008
Posted by
bitbank |
tech |
adwords, google |
No Comments
I bought 20 of these nightlights a few months ago and have been using them throughout my house. I’ve been happy with the way they work, but now they are starting to fail. The lights are supposed to have a “100,000+ hour” lifetime, but out of the 20, five have failed already. I disassembled one to see if the failure occurred in the power supply, control circuit or the LED’s. To my surprise, the LED’s were the point of failure. Both white LED’s were fried. Either the LEDs are being overdriven to the point of early death, or the inexpensive power supply is very sensitive to voltage spikes. Either way, this is a big disappointment and I will be looking for another brand of light to replace them. Anyone have similar experiences? Is there an inexpensive replacement with the same brightness?
February 2, 2008
Posted by
bitbank |
tech |
maxlite |
No Comments