A review of the HTC Touch Pro 2

by Matthew Noonan 22. September 2009 00:04

This is a follow up post to my last article reviewing the Palm Pre.

As I explained previously, I was not a huge fan of the Pre. It was an ok platform, but it didn’t knock my socks off and it really didn’t measure up to the iPhone, in my opinion. In fact, even though it did some things very well, making phone calls wasn’t one of them (that is the reason most people buy a phone, after all!).

So at the end of my 30 day trial with the Pre, I told Sprint I wanted to upgrade my phone to the HTC Touch Pro 2. I previously owned a HTC Touch Dual with Cincinnati Bell, so I had a feeling I was going to like the Pro.

I was wrong. I LOVE IT!!!

The Good

The Pro 2, as well as some of the other HTC models, comes with the TouchFlo 3D interface that sits on top of the Windows Mobile 6 platform. While it takes some getting used to, after only one week I find myself much more productive with the TouchFlo than I was with the Palm OS. Here is the good stuff, point by point.

  • The Pro 2 has an “application slider” across the bottom, displaying icons for your Home, Email, Messaging and Calendar by default (you can see it in action on the Touch Pro here). You can also drag and slide your finger to the right to go to other areas such as Internet, Music and Weather. There are about a dozen in all. While on the Home screen, if you have any emails or text messages, the number of each appears on top of the associated icon. This is a nice improvement over the Palm Pre, which displayed notifications at the bottom of the screen by reducing the top part of the display. And the Palm only had 5 launch icons, one of which was the phone keypad (which underscored, to me, that the phone functions were thought of as an application rather than the primary purpose of the phone). In all, I find that both launching applications as well as  “eyeballing” the current status is much better on the Pro than the Pre.
  • What can I say about the Home screen? In short, genius. With the large clock display and statuses for missed phone calls, voicemails, and upcoming appointments (in addition to the application slider), I can easily glance at the screen to figure out what action to take, or anything I may have missed. The Palm was a little less informative, and the clock display was only large while the phone was locked (the eyes aren’t what they used to be, you know?).
  • The People page is where you set up your favorite contacts, or you can display all contacts. This is where the Palm really fell flat, IMHO. Setting favorite contacts just wasn’t the Palm’s strength, again underscoring that it is an app platform and not a phone.
  • Email and texting, which I associate as similar applications, are about the same on the Pro and the Pre. When texting, I do prefer the “instant message” type of view that the Pro gives you, where the Palm would insert a line break every time the clock moved more than a minute. That’s minor, though.
  • Web browsing I would also call a draw with the Pre. The Pro uses Opera Mobile 9.5, which seems to be about even with the Palm browser. And both take good advantage of the auto-tilt feature that is becoming very common. One minor complaint about the Pre was that I always had to drill-down one folder to get to a bookmark, which seems like an unnecessary burden.
  • The keyboard – hands down winner is the Pro over the Pre. Both have full QWERTY-style keyboards, but as you can see in the picture above, the Pro’s keyboard covers the entire length of the phone. The Pre condenses the keyboard to the width of the phone, which is considerably smaller. For a guy with big hands, the Pre was a little annoying to type out long messages.
  • The “App Store” – I’d have to say the edge goes to the Pro here, but that may simply be because Windows Mobile has been around longer than the Palm Pre. But both are sadly trailing the iPhone in this area. Microsoft has legions of developers, you’d think they would get on the ball here. I have no forecast for the Pre.
  • Bluetooth features – again the winner is the Pro. While wearing your headset, not only does the Pro announce your incoming calls by reading out loud (yes, you read that right) the contact name, but you can also perform voice dialing without pre-recording the names in your own voice. Just say “Call Matt Noonan mobile” and the phone will confirm your choice, then dial the number. This was also a feature on the Touch Dual, and I loved it then (actually, I think it is a Windows Mobile 6 feature). My previous phone was a Motorola Razr V3, and if you wanted voice dialing you had to record each and every voice entry in your own voice. And somehow the Razr could never truly distinguish between “Home” and “Mom”. The Pro handles this with ease. There are also some other voice commands you can use, such as “What time is it?” and “When is my next appointment?”. If you don’t have a headset, you can hold down the Talk button and get the same function. Cool.
  • And the coolest feature of all? While on a call, simply lay the Touch Pro 2 face-down on the table and it turns into a speaker phone automatically. Very, very cool.

The Bad

As I said in my last post, every cell phone platform has something about it you aren’t going to like. I think the complaint I have heard the most about the iPhone, which I think we can all agree is the category leader here, is that there is no physical keyboard. The question is always, does the phone have more features that you like vs. what you don’t like. So here are some of the things I don’t like about the Pro 2.

  • TouchFlo vs. Windows – While the Touch Dual let Windows Mobile menus invade it’s interface, the Pro tries to hide the standard Windows look and feel. In fact, the only hint that the Pro is based in Windows Mobile on the Home screen is the Start menu at the top left. However, clicking on Start does not produce the standard menu, but instead takes you to the application list (this is a nod to the iPhone’s app list). And other WinMobile functions are similarly buried. The problem is that the TouchFlo interface cannot get past the fact that Windows is under there, somewhere. And sometimes, TouchFlo gives way to Windows when it shouldn’t. For example, there are TouchFlo screens that duplicate Windows screens (email and texting are two), and sometimes you get one version and sometimes you get the other. It’s a little schizophrenic, but it’s a minor complaint. Clearly, phones like the Pre and iPhone benefit from having a “from the ground up” operating system, and all the apps inherit this benefit. It seems to me that Microsoft should get with the TouchFlo people and come up with an integrated OS.
  • The Auto-Tilt – well, it isn’t always “auto”. Like the Palm, the tilt works great in some applications (particularly the browser), but seems oddly absent in others. However, Windows Mobile to the rescue, you can force a change to landscape mode, and on the Pro this is easily accomplished by sliding out the keyboard (push the keyboard back in to force portrait mode). Still, not as slick as the iPhone.
  • HTML mail – I have seen the first Pro (not the 2) handle HTML formatted mail, so I know it is possible, but for some reason the option is disabled on my phone (as it was on the Dual). Google did not help with a solution, saying basically that you need Exchange 2007 to enable this feature, but I know this is not true. If I figure it out, I will post the solution so that others may benefit.
  • No IE Mobile – While Opera is an excellent browser, sometimes it is nice to have an alternate (especially if you develop mobile web applications, as I do). It seems weird to me that the HTC folks removed this option.

Summary

Do I love my new Touch Pro 2? An emphatic yes. Is it better than the Palm Pre? For me, and for how I work, another yes. Is it the iPhone killer? No, probably not. The Touch Pro 2 is far and away the best Windows Mobile phone I have encountered to date, but the TouchFlo 3D is a (great!) bolt-on interface and will always trail integrated platforms like the iPhone and the Palm until the integration factor is overcome.

All 3 are good phones, the Palm Pre, the HTC Touch Pro 2 and the iPhone. I don’t think you would be unhappy with any of them if you are in the market for a smart phone. All I know is…

Unlike the Pre, I won’t be returning this phone after the 30 day trial period.  :)

Tags:

Why I won’t be keeping my Palm Pre

by Matthew Noonan 7. September 2009 17:43

Recently, I traded in my beloved HTC Touch Dual for the new and much hyped Palm Pre.

It was a really difficult decision, because I really liked my Touch. It had a Windows Mobile OS and a really inventive interface on top of it, and I was hooked almost right away. Sure, there were some quirks I didn’t like, what cell phone doesn’t have those? But my main reason was that my Touch was tied to Cincinnati Bell and therefore the Edge network. In other words, no 3G broadband. To make matters worse, CB informed me that 3G would not be around until Q4 (which really means next year), and in any case the Touch doesn’t support 3G so I would have to buy a new phone to boot.  Grrrrr…

So I decided to give Sprint a try. I had been using the Novatel MiFi 2200 card (which I absolutely love, btw) on Sprint, and I had a friend with an HTC Touch Pro, so maybe I could stay with HTC. No such luck. Sprint stopped selling the Touch Pro in advance of the upcoming HTC Touch Pro 2 (rumored around Sept. 8). Because I have had enough of CinciBell, I decided to give the Palm Pre a go, since I had 30 days to decide and I was within that window for the HTC release.

I had already seen all the commercials seemingly hyping the Pre as an “iPhone killer”. Well, it isn’t… at least not for me.

  • For starters, it’s a battery hog (so is the iPhone, but that’s another story). A day to a day and a half was about the max I got out of it. That was a big change from the 3-4 days I got from the Touch.
  • The app store… really isn’t much of one. This is understandable since the Pre is so new, but I have to believe that Apple has cornered the mind share on custom phone apps (for now). If you were going to write your own custom app right now, which platform would you target first? And since all of that work is probably throw away outside of Apple, are you going to invest in and support another proprietary code base? Probably not…
    Update (9/28/09): For a different take on this item, read this developer’s experience with trying to get his apps published to the Palm App Store.
    http://jwz.livejournal.com/1096401.html
  • While I like the touch screen overall, the ability to copy and paste seems like an afterthought. There are too many times I want to copy some text from a web page and send it via email or SMS, but you simply can’t do it with the Pre. And for the few situations where you can select text, good luck if the text sits against the left or right edge of the screen.
  • I’m sure this is the case with some of the iPhone apps as well, but why don’t all the built-in apps take advantage of the screen tilting mechanism? Email and texting seem to be  an especially odd omission for this feature. I also hoped that Tweed would take advantage, but it doesn’t. Only the web browser seems to be aware that the feature exists at all. The one nice feature I have not seen before: the screen shuts off during a call, so you don’t accidentally hit any buttons while you hold the phone to your ear. When you swing the phone away from your, say to hang up the call, the screen pops back on. Nice, but not a killer feature.
  • The keyboard is too small. I think a full keyboard spanning the length of the phone rather than the width would have been better. But I have big hands. In a way I miss the predictive typing that I had on the HTC. Sometimes its nice not to have to type the entire word.
  • Opening PDFs seems to darn near impossible. There is an app included to read PDFs, but only from the file system. You can’t open PDFs from the web, and there doesn’t seem to be any way to save the PDF from the browser to the file system. Pretty big oversight, if you ask me…
  • And will somebody please explain to me why all these next generation phones can’t display email in HTML format? I know you guys can do better than this…

When the dislikes add up to more than the likes, and in this case they do, the phone is going back. I enjoyed my time with the Pre, and it is good to get experience with different platforms so you can develop a feel for which ones you like and which ones you don’t. But my sense is that I am going to stick with the Windows Mobile platform for now.

Next up for me, a report on how much I like the HTC Touch Pro 2…

Tags:

General

Blog software updated to BlogEngine 1.5

by Matthew Noonan 31. May 2009 02:03

It has been some time since I have blogged, or indeed, payed any attention whatsoever to the EasyObjects web site. Hopefully, that is now about to change.

I have updated the blog to the latest build of BlogEngine.NET, which adds a few new features and bug fixes. Of course, one must actually post to the blog in order to make use of these enhancements…  :-)

Seriously, I know that I have been away, and it has been far too long, so rather than make a long list of promises about “what is to come” or “what changes are in store”, I’d rather just get busy and make the changes happen. Actions speak louder, eh?

I will just leave you with this thought: Just because I have been away, does not mean I haven’t been busy.

Data Migration and EasyObjects

by Matthew Noonan 20. February 2008 00:33

I just wanted to post this code, because sometimes I find it hard to believe that things can go so smoothly when using EasyObjects and MyGeneration. Quite simply, they rock!

I needed to migrate the Comments from the old DNN blog to the BlogEngine database. Although I could have done it using T-SQL, the code would have been unwieldy and hard to debug. So instead I chose to whip up some code using EasyObjects. It literally took 20 minutes and worked on the first try, no debugging required. I can't promise you exactly the same results with your project, of course, but it is a good example of how quickly you can develop database applications once you become comfortable with the tools you use.

By request, I can make the code available for download, although I doubt it would be of much use to anyone because it is very specific (DNN to BlogEngine). Sorry for the lack of comments in the code, but I don't plan on using the code ever again, so why take the time?

static void Main(string[] args)
{
    Blog_Comments oldComment = new Blog_Comments();
    oldComment.Where.Title.Value = "Cialis";
    oldComment.Where.Title.Operator = WhereParameter.Operand.NotContains;
    oldComment.Query.AddOrderBy(Blog_CommentsSchema.EntryID);
    
    oldComment.Query.Load();

    PostComment newComment = new PostComment();
    do
    {
        Blog_Entries oldEntry = new Blog_Entries();
        oldEntry.LoadByPrimaryKey(oldComment.EntryID);

        Posts newEntry = new Posts();
        newEntry.Where.Title.Value = oldEntry.s_Title;
        newEntry.Query.Load();

        newComment.AddNew();
        newComment.s_Author = oldComment.s_Author;
        newComment.s_Comment = oldComment.s_Comment;
        newComment.s_CommentDate = oldComment.s_AddedDate;
        newComment.s_Country = "us";
        newComment.s_Email = "noreply@noonanconsultinginc.com";
        newComment.s_Ip = "127.0.0.1";
        newComment.IsApproved = true;
        newComment.s_PostID = newEntry.s_PostID;
        newComment.s_Website = "http://www.easyobjects.net";

    } while (oldComment.MoveNext());

    Console.WriteLine(newComment.ToXml());
    newComment.Save();

    Console.WriteLine("\n\nPress <Enter> to continue...");
    Console.ReadLine();
}

 

And here is the complete list of files:

BlogCommentXfer

Remember, that's going from a blank project to a fully-functional table migration in 20 minutes, including dynamic SELECT queries, table-to-table column mapping, null-value handling, looping through results and a batch INSERT at the end (by calling Save()). If I had thought of it, I could have added a transaction wrapper around the whole thing in another minute. In fact, it has almost taken me as long to write this blog post as it did to write the code and migrate the data.

Pretty damn cool.

kick it on DotNetKicks.com

When your WCF service stops responding

by Matthew Noonan 19. February 2008 00:00

My venture into WCF is proving to be quite educational, in some ways more stressful than others. Today I had a client trying to run a demo, but their service calls were routinely locking up and they kept having to restart the web server. So much for having a day off...  :-(

So I drove to the client, fired up my WCF test harness, ran a couple of tests and everything seemed to be working just fine. So I loaded up the AJAX-driven web site, and sure enough I could make the service lock up after just a few callbacks to the server. Back to my test harness, only this time I decided to add some looping in order to simulate the multiple calls made by the web browser. This time, I was able to lock up the service in my test harness as well.

So what was the solution?

It turns out that when you create the proxy for the service call, it is very important that you also call Dispose(). I guess I got a little lazy and tried to count on the garbage collection to take care of it, but my code was actually starving the service pool of available threads, and so it stops responding until the web server is restarted or the application pool cycles.

So I'm posting this here hoping that others will learn from my mistake: make sure you call Dispose() directly on your service proxy object, or use the "using" statement which will do it for you automatically.

 

HelloServiceClient proxy = new HelloServiceClient();
string result = proxy.HelloWorld(textBox1.Text);
proxy.Close();
proxy.Dispose();
 

-- OR --

 

using (HelloServiceClient proxy = new HelloServiceClient()) 
{ 
    string result = proxy.HelloWorld(textBox1.Text); 
}

 

In my next post, I will review the WCF support now in EasyObjects. Way cool.

kick it on DotNetKicks.com

 

Tags:

WCF

EasyObjects.NET Roadmap for 2008

by Matthew Noonan 12. February 2008 23:43

As I said in my last post, it's time to stop waiting around and move on to something better. And 2008 should be a great year, so it's time to get going!

First things first, and that's to get going on the beta testing for Access, MySql and Firebird I announced last year. There have been a few volunteers, but not as many as I hoped. I attributed this to the fact that I chose the holiday season to make the announcement, but it's February now. So I am emailing the people who asked to test and sending them a full copy of the current build of EO2 (not the free build) and the associated database modules.

Once that is underway, my next crucial task is to get the EasyObjects Store up and running. I have the basic web site ready, an SSL certificate and PayPal integration set to go. So after some testing, my goal is to have the store online before the end of Q1. The initial version of EO2 available for purchase will be a beta, but any purchases will entitle the user to free upgrades to all beta releases and the full EO2 once it becomes finalized. There will be no support levels available until after release, because that is all still under consideration.

The next big enhancement for EO2 is coming from a project I am working on, and that is WCF. I have modified the templates to generate the Operation and Data Contracts, as well as some lightweight, serialize-friendly classes to help EO work with WCF. It's still in the early stages, but WCF is too cool a technology not to support in EO. Target for a beta release is Q2.

For Q3 and beyond, there will probably be a new release of the Enterprise Library to deal with, we will finalize support for the new database modules, and finally a full release of EO2 in the Store.

That's my current plan, which will promptly go to shit faster than I can blink an eye, but at least it gives us some goals to shoot for.

I welcome your feedback.

Switching to BlogEngine.NET

by Matthew Noonan 12. February 2008 22:51

I've been waiting and waiting for the DNN Blog project to get "up to speed" with some new features and functionality, and now that I have a moment to catch my breath, I realize I am done waiting. The DNN Blog is a nice, quick plug-in to the DNN web site that allowed me to setup a blog with relative ease. And time being a precious commodity for me, quick sometimes overrides better.

Well, it's time to move away from something quick and towards something better.

I had hoped that the DNN Blog project would be adding support for things like Live Writer, Pingbacks, social bookmarks and tag clouds. But alas, the project seems as mired in a slowdown as EasyObjects...  :-p

So after a brief search, and trying to decide whether I wanted to host my own (as I do currently) or move to one of the public blog hosting providers, I decided to give BlogEngine.NET a try. In addition to self hosting, I can probably migrate my existing entries without having to re-type everything, which is a plus. And it supports most of the features I was looking for. And more importantly, the project seems to be moving forward with active development. (I know, more on the EO plan in a sec!)

But this change doesn't come without cost, either, and I don't mean just setup and migration time. One key feature of the DNN Blog is the integration with the DNN Search engine. By moving to a separate engine, so too will the search capability for blog posts. No longer will you be able to use the search box on the home page to search the blogs, you will have to go to the blog page and use the search engine there.

Then there are the URL changes, but those will pass over time. I have yet to figure out how to make the new engine so that it will co-exist peacefully under the DNN EasyObjects web site, so for the time being I have placed it under a new URL and host header in IIS. There are too many httpmodules and httphandlers to figure out quickly.  :-(

Update (2/13/08): Man, Windows Live Writer makes posting soooooo much easier. I think I'm going to like this switch. All the prior posts have now been migrated, although you may notice that the HTML markup is now a part of the post. I will correct this over the next few days. Also, comments haven't been migrated yet. More changes are on the way!

Next post: The EasyObjects Road Map for 2008.

Tags:

General

WANTED: Beta testers for EO2

by Matthew Noonan 10. December 2007 23:43

OK, enough excuses and delays, I'm tired of sitting on this code! It's time to get some beta testers for EO2 and the various databases that I have added into the mix. Specifically, I am looking for beta testers for the following platforms:

  • MySQL 5
  • Microsoft Access
  • Firebird 2

I have a good grip on SQL Server and Oracle, so I'm not asking anybody to test those. These libraries are not yet ready for release, so do not sign up to be a beta tester hoping to get your current project completed. Only apply if you are serious about doing some testing, both of the full EO2 and one of the other drivers. I will probably limit the number of testers so as not to become an administrative burden, but we'll see what the response rate is.

There are some quirks to running these libraries, which I will go over in detail with each of the testers. There is a source code change to the Enterprise Library as well, which will no doubt make things interesting.

Contact me through the EasyObjects site to sign up to be a tester, and be sure to include which databases you are interested in testing.

Note: these libraries will not work with the EO2 Free download.

Updated EO2 download for the Enterprise Library 3.1

by Matthew Noonan 8. December 2007 23:35

I know, I know, I promised more updates, but life has conspired to keep me away from EasyObjects lately, and I'm paying the price for it.

But I did finally get a moment between projects to catch my breath (and some sleep!) and I was able to cross one thing off my list: updating the EO2 download for the Enterprise Library 3.1. I left the old EL 2.0 download as well, so users can choose which version to download.

The new download also includes a fix to the C# Business View template, which was generating some incorrect code for columns of type Byte. The fix is also available for download from the MyGeneration template library. You can use the web update feature in MyGen to get the latest.

Now, if I can motivate myself this weekend, I will get the tutorials updated for EO2, since they are way, way, WAY out of date!

New look for the website

by Matthew Noonan 9. July 2007 06:43
Check it out. It's a new update to a DotNetNuke skin by Evan O'Neil (who makes awesome skins, btw).

Tags:

General