Wednesday, November 28, 2012

If you're a #Microsoft #MSBI Pro, it's time to learn about #BigData and #Hadoop: Here's how!

Lately I've been speaking on the topic of Big Data from a Microsoft SQL Data Warehouse perspective in various venues like SQL Saturday events in various cities.  On December 10th I'll be covering the topic again (with some new content based on Microsoft's recent announcements) at a free event in Chicago -- just a few blocks from Miracle Mile Christmas shopping, in case you need another reason to attend!  

These sessions have been well attended--often overfilling the room. Everyone in the Business Intelligence space (in general) and the Microsoft BI space (in particular) seems to have a heightened awareness that the sphere of technologies we work with is expanding to include Big Data technologies like Hadoop this year.  The challenge is that so many of us don't really understand what's about to hit us!

I admit that I'm often skeptical when new buzzwords enter our industry.  So often new technologies seem injected into our collective consciousness more as a way to generate vendor revenue than to solve customer problems.

And while I was initially skeptical when Hadoop started hitting the headlines, the last 12 months have made me a believer that this is more than just a technology looking for a problem to solve.  True enough that Big Data is still emerging, and perhaps hasn't evolved into the robust, vendor supported technology we in the commercial DW/BI space prefer, but when fully understood, its potential benefits become undeniable.

Of particular interest to me is the promise that unstructured and variable data may finally find their way toward providing insights.  You know the data I'm talking about: log files, call center notes, Excel and XML files with loosely defined schema that changes over time.  

The sad truth is that the technologies we use in Data Warehouse and Business Intelligence systems were designed to analyze perfectly defined and cleansed transactional data.  Yet the majority of the most interesting information about our customers and our business environment is stored in semi or unstructured data formats that are too difficult (or expensive) to transform into formats that our structured analysis systems can handle.

Big Data technologies are quickly evolving to become more accessible for commercial analytics solutions.  Much sooner than I ever expected, we may well finally reach the promised land where we really can make decisions using all of the information (structured and unstructured) that we have at our fingertips.

Want to learn more?   Take a look at a series of sixteen short videos I recently posted covering the basic why's and hows of Big Data+Data Warehouse integration.  And let's talk about it more in Chicago.




Data Warehousing and Big DataBig Data 101: MPP Made EasyIs NoSQL a misnomer?
SQL vs. Hadoop: Acid vs. BaseSchema on Write vs. Schema on ReadWhere did Hadoop come from?
Introduction to HDFSDemo: HDFSHow MapReduce Works
Demo: Hadoop MapReduceIntroduction to HiveDemo: Hive
Introduction to SqoopDemo: Sqoop ExportDemo: Sqoop Import
DW + Hadoop Reference Architecture
 

Friday, November 9, 2012

Developing for #windowsphone 8 on Mac OSX

The Windows Phone 8 SDK includes a new emulator architecture that uses the Hyper-V role, rather than the more conventional application simulator used in previous versions (and used by other mobile platforms).

So if you happen to be a developer who's doing work on both the Windows Phone and iPhone platforms, one question is whether you can easily do both with only one development machine or do you need two?

Well of course using two different machines altogether (one Mac and one PC) might be the most straightforward solution (and is what I do in my office). Yet it doesn't work as well for highly mobile  folks, who need to keep the number of pieces of equipment to shove through airport scanners to a minimum.

One solution is to use BootCamp to boot the MacBook into native Windows when working/demonstrating Windows Phone 8 solutions, and boot back to OSX to use the iOS simulator.  The problem is that this makes demo flow tough when demonstrating a solution targeting both mobile platforms.

Running a Windows VM on top of OSX is another solution, but you may have some trouble getting that to work since it requires a virtualization product that supports hypervisors running within hypervisors.  The good news is that it's supported (at least by VMWare Fusion 5...probably others but I don't have experience with them). Luckily it isn't difficult to setup if you know how to do it.

First, install your Windows 8 VM as usual.  Make sure to use the x64 edition so you can enable the Hyper-V role used by the Windows Phone 8 emulator.  Now there's good and bad news about enabling that Hyper-V role within the VM.

The good news is that the VMWare Fusion GUI has a checkbox to enable a hypervisor running under the VMWare hypervisor. You simply check the "Enable hypervisor applications in this virtual machine". How could it be easier than that?


The bad news is that it doesn't work!  At least with Windows 8 x64 at the time of this post it doesn't.  For whatever reason, just checking that option doesn't allow the Windows 8 Hyper-V role to be enabled. You'll get an error that a hypervisor is already in use when you try.  But there is a solution.

First, shut down your VM so you can make additional configuration changes directly in the .vmx file.

Next, navigate using Finder to your VM package (by default in your user profile Documents/Virtual Machines folder).  Right-click on the VM package and select the "Show package contents" option from the menu:

Next find the .vmx file inside the package, and open it up in your favorite text editor.  Assuming you clicked the "Enable Hypervisor" setting when creating the VM, you'll find the line "vhv.enable=TRUE" in the .vmx file.  Below that line, add two more lines:

hypervisor.cpuid.v0 = "FALSE"
mce.enable = "TRUE"

When complete, your .vmx file should include these three settings looking like this:


Save the .vmx file, and restart the VM.  Now you can enable Hyper-V, and run the Windows Phone 8 Emulator VM within your VM as you normally would.





Monday, November 5, 2012

After the honeymoon: from iPad to #Surface one week later

Last week I wrote about my initial impressions of the Microsoft Surface. Most of my thoughts then were about the hardware build and form factor.

 I rightly received questions about my lack of commentary on the software--after all, a computer is a combination of hardware and software! But while evaluating hardware and form factor is pretty straightforward, I didn’t want to get too caught up in my excitement about certain features, or negative reactions I would have as I switched from my iPad after three years of using it.
I’m happy I waited, because truth be told I initially had a tough time getting over the change from the iPad. But over the last week I’ve really warmed up to the device and software, and grown to appreciate the design intent of the Surface.

Overall
To give away the ending: I love the Surface and Windows RT as a tablet OS.  Is it still missing a few of the things I had with my iPad?  Yes.  Does the software still need some improvement? Yes.  But while there are some gaps and rough edges, there are many more “net new” benefits that win me over.
The overall “experience” – what I can do with the Surface, how well those things work and how well it fits my needs – is great. Is it better in all respects than the much more mature iPad?  Of course not.  But on balance, the Surface enables 90% of what I could do with my iPad, and adds 30% new things I couldn’t do before.  In the final analysis, it’s just a better fit for me.
Is it better for everyone then?  Maybe not. For someone who uses a MacBook as his or her daily driver, the iPad may still feel more natural. And for those who don’t need a computer at all except for e-mail, web browsing and reading the news (my father, for example)—the iPad is more mature and has a more fully developed consumer application ecosystem.
But for mobile professionals like me who use Windows every day and need a convenient on-the-go computing plus media consumption device, the Windows 8 tablet product is almost a no-brainer.  It has the fundamental capabilities that pushed me to buy an iPad, and has more cohesion with everything I do on my windows machines.   
There are a couple rough edges that need smoothing out, and the application ecosystem is still in the early stages. But Microsoft managed to go from nowhere to a product that compares favorably to the venerable iPad--in one ambitious release.  That’s a big accomplishment, and gives me confidence that being an early adopter in the platform is a safe bet. 

The Operating System
The completely redesigned Windows UI wasn’t the shocker for me that it will be for most. I’ve been using Windows 8 since Developer Preview early this year.  Still, I’ve not used a Windows 8 tablet beyond short test drives, so it was a new experience to need to rely on the tablet experience entirely.
Overall I find the touch OS experience quite satisfying.  It’s fluid and easy to use, and the responsiveness is great. 
Perhaps a negative to the touch experience is that there’s a learning curve to it.  There are many gestures to learn, and with some of them I really had to work hard to get them right (e.g. to move a tile on the home screen, I find I need to kind of press and then pull down, which took some trial and error to figure out).  I don’t know how to achieve so much functionality without a lot of different gestures, but the learning curve is a bit higher than iOS in this respect.
I really like the device compatibility I’ve found with Windows RT.  Printing is one example.  I’ve never been able to print on my home printers using my iPad—when AirPrint became available I was quickly disappointed to find out I’d need to buy new printers for it to work (I didn’t make that purchase).  With the Surface I was able to setup a new printer to my existing laser printer in a minute or two and it worked great. 

Live Tiles 
Live Tiles are a distinctive feature of Windows 8 and Windows Phone, and are brilliant.  Often I have look at my Apple i-devices and wonder why nobody thought of this-or-that feature before Apple did.  Live Tiles are a similarly disruptive feature. Now I look at my iPhone screen and wonder why I need to tap into all the applications to see what’s new. It’s hard to imagine other platforms not trying to duplicate what Microsoft has done with Live Tiles (assuming no patent protection prevents imitation).   

No Start Menu
Many complain about the lack of a start menu.  Yet the start screen is so much better.  Why have a menu of icons when you can have a dashboard full of information instead? By glancing at my home screen I can see whether I have new mail, how the stock market’s doing, what the latest news is, what the weather is outside, and click into these apps if I want to see more.  I can still search for apps I don't see--only it takes fewer clicks than it used to on Windows 7 to do that.  I don’t miss the start menu at all. 

RT vs Pro
There’s a lot of controversy about RT vs. Pro tablets right now.  If you’re not familiar with the difference between them, the Surface RT uses a lightweight version of Windows 8 designed for low power CPUs like those used in the iPad. The Surface Pro (and other Windows 8 tablets sporting the “Pro” moniker) are essentially 10” Windows 8 Ultrabooks without keyboards. Their pricing is also expected to be similar to their fully-featured Ultrabook cousins! 
For someone who would otherwise purchase an Ultrabook to run Office applications, email, web browsing, and perhaps a business application or two, the Pro may make a lot of sense to use instead of a traditional laptop—especially if their lifestyle is a highly mobile one where the small form factor will lead to more convenience.
But for users like me who buy a device to use as a companion tablet (not as their primary computer), Windows RT makes more sense. The attributes that made the original iPad successful are: low cost; instant-on; super thin and light; long battery life; no fan noise; no heating up of the device when it's operated; and software designed for touch.  The Pro tablets will compromise on these attributes to varying degrees to get legacy software compatibility.  Since those legacy apps won’t work well without a mouse and keyboard, I expect many users who switch to “Pro” devices primarily to run older, non-touch applications will feel their overall experience is worse than if they had just stuck with an Ultrabook. I think they’ll be right.

What’s “not to like” about the OS?
In this initial release, Windows 8 still relies too much on legacy desktop functionality.  Windows RT is like a person with two personalities.  You have to change the way you communicate with it depending on which half of the brain you need to talk to get something done. Luckily most of the “legacy desktop” communication is when making configuration changes, and not things one must do every day.
For example, to connect to a WiFi network, you use a touch interface—and it’s drop dead easy to do with your fingers alone.  Want to setup a PPTP VPN connection over that WiFi connection?  Now you switch to the traditional Windows control panel where that functionality still lives (and where you need razor-sharp fingers--or a mouse--to complete the task successfully).  I assume somewhere there’s a prioritized to-do list that eventually moves the rest OS functions like these into a touch interface.  But for now end-users will need to speak to two personalities.  Sure, it works, but it's not as polished as iOS, where these functions have a consistent touch interface.

Touch Applications
Microsoft (and all of us) learned by Apple’s example how to really do touch applications right.  For the most part the application techniques that makes touch apps great on iPads are in Windows Store apps too.  But it didn’t end at that—there are elegant extensions that I don’t think iOS has. 
One of my favorites is the way settings and search are implemented as charms.  When using iOS, if I need to switch wireless networks I have to exit the current application, open the settings app, change the active connection and then task switch back.  On Windows 8, Settings (including wireless selection) are instantly available via charms (much like the way they can be called up over an app on an Android device). Changing wireless connections can be done without losing sight of the current application, and just feels much more intuitive. 
3rd-Party App Ecosystem
It may be true that Windows 8 had more apps available on launch date than the iPad version 1—but that comparison would only be relevant if the two products were released at the same time.  Consumers make decisions in absolute terms—i.e. how many of the apps that I want are available right now on each platform?
How is it then? Actually I was impressed at the number of apps available within a few days of Windows 8 launch.  I was shocked that my bank (Bank of America) had an app almost immediately.  But there's still a ways to go.  I don’t use Facebook (so I don’t care that there’s not a FB app).  But I do use LinkedIn--for which there is no Windows Store app.  The one I’m really dying not having, though, is Zite (a news aggregator I’m absolutely addicted to).  I’m sure anyone switching to the Windows 8 tablet from something they’re using now will have gaps as well.  For me, the added benefits are big enough that I’m willing to be patient (for a while).  But it takes a little faith to buy a Surface now with only the assumption that your favorite apps will come along soon.

Office 2013 RT
When it comes to the Office RT apps, I’m of two minds.  On one hand, running what’s essentially the same Excel and Word as I do on the desktop is convenient.  All the commands are in the same places, everything works exactly the same way as my Ultrabook, and I needn’t worry about features not available (except ones delivered via add-ins, like PowerPivot, Power View, etc.).
On the other hand, Office still runs over on the legacy desktop, while everything else I do is on the touch interface side.  I feel the way I used to when I had to run DOS apps under Windows 3.1.  It “just feels weird” switching between touch and non-touch applications.  I miss the true touch versions of Pages, Numbers and Keynote on the iPad.  Even though they do a bit less than their full-featured counterparts, they do "enough", and feel more natural and integrated with the touch device. 
Not that the Office RT implementations are bad--they’re good! Microsoft has done a nice job making Office 2013 more touch compatible--mainly by putting more padding around commands so your finger is less likely to hit two or more at the same time. 
I hope that’s the Office roadmap includes a true Touch version.

Conclusion
Since I gave up the conclusion in the beginning, I don’t need to repeat all of it.
But I will say in closing that I’m duly impressed with both the hardware and the software.  I never thought I’d be switching from the iPad to a Windows Tablet. But a after a week of daily use, I have no inclination to go back to the iPad.

Sunday, October 28, 2012

My first two days with the Microsoft #Surface

I'm sitting in my hotel in Charlotte, NC doing something I never thought I'd do: I'm writing this post on a tablet. It's a new Microsoft Surface RT 64GB, and I'm using the touch cover. 

What makes it even more amazing (to me, at least) is that the laptop I brought on he trip is currently powered off in my computer bag.  It's within easy reach, but hasn't been turned on since I used it to present at the SQL Saturday BI edition this morning.


My expectations

Back up a little...I pre-ordered the surface the first day of pre-orders mostly out of curiosity.  After all, I thought, it's Microsoft's first ever computer--a truly historic product.  I reasoned that having either "Microsoft's first successful iPad challenger" or "Microsoft's Newton" would make for a good conversation piece (for the younger of readers, the Newton was Apple's first, hilariously awful attempt at a PDA, and is best known for providing source material for some of the funniest Doonsbury comics ever). 

In any event I thought it highly likely I wouldn't like the Surface enough to switch over from the iPad, and I'd end up replacing the iPad2 I just sold on eBay with an iPad4 or an iPad Mini.  After all, I've been using iPads since V1 and just love them.  How could a new challenger's V1 product sway me?

Fate deals interesting cards

As luck would have it, the delivery date for pre-ordered Surface RTs was the exact date I had a flight to Charlotte to speak at the Charlotte SQL Saturday BI Edition.  In fact, FedEx dropped off the Surface 90 minutes before I had to head out the door to catch a flight.  I guess I was meant to experience the Surface as a true road warrior, and not in the comfort of my office with many other computers and devices close at hand.

Furthermore, fate dealt that the Type Cover (the cover with mechanical keys) would arrive via UPS after I left, so I wouldn't have that luxury as I first used the Surface.  As a high speed touch typist I knew this would doom my experience!

My first experience with the Surface was poetic for a mobile device: using it to connect to the Satellite WiFi at 30,000 feet.

Likes & Dislikes

First, I have to eat crow on he keyboard.  When I first saw it, all I could think about was how much it reminded me of an Atari 400 -- the first computer I used with keys that had no travel.  For those that missed out--a truly awful experience!

I'm not saying the touch cover is a great keyboard when compared to something like a Thinkpad laptop's keyboard.  It's just doesn't compare to a "real" keyboard.  But it works, and it works well.  When you need a keyboard, it's there;  when you don't, you just forget that it's there.  It's the perfect solution for the age old question: "do I need pack the keyboard in my bag, or can I get by without it today?"  The keyboard cover is as big a deal as the hype.  While some may think the keyboard just a gimmick, it makes Surface so much more useful than a simple media consumption tablet. 

Other "likes":
  • The build quality is an obvious like. Microsoft has clearly accepted the importance of the tactile relationship between human and machine.
  • Love the kickstand. It takes the iPad cover inclination idea to completion.  
  • Live Tiles.  Anyone that uses apps with Live Tiles for a week will wonder how they ever lived without them!
  • Magnetic power supply connection. Forever have I wondered why my MacBook has this and no other devices do. How many motherboard repairs could have been avoided in the last 20 years?
  • No fan, no heat.  You shouldn't know where the CPUs and radios are located in your tablet based on feeling hot spots on the case and hearing cooling fan noise.  The Surface RT is always silent and always cool to the touch.  Fantastic!
  • Long, long battery life. The 10 hour battery life is essential for a tablet, and Microsoft delivered it on he first release! 
Not so likes:
  • Screen.  I know others may disagree, but the screen is "meh".  The Surface RT screen is as good as a midrange laptop LCD--but not better than that.
  • No Cellular Option. I went cold turkey off my iPad 2 3G to switch to the Surface.  And, boy, am I having major withdrawals about the lack of cellular! With the emphasis on SkyDrive in Windows 8 and Office 2013 and no SkyDrive Sync in RT, constant Internet access is assumed.  Why can't I buy a Surface that can maintain a constant Internet connection?    
  • Magnetic power connection. The Surface power connector requires the user to put it in a nearly perfect alignment before the magnets attach.  The device that I assume inspired this feature (MacBook) works much better.           

Overall

The Surface is a truly innovative and revolutionary wonder.  Sure, I have a few "not so likes", but none of them dissuade me from being a raving fan of this product and amazed at how well its ideas have been executed.

Further, the Surface clearly demonstrates that Microsoft can bring new, innovative ideas to the tablet space and brilliantly execute them. That's the most exciting thing about the Surface. Microsoft is the company best positioned to lead the evolution of the personal computing model into the future. Surface and Windows 8 proves the company has the capability to do so.

Tuesday, October 9, 2012

ACID vs BASE: How SQL And Hadoop are fundamentally different

Hadoop and other Big Data technologies are a hot topic, and part of the discussion around them is whether they're a replacement for traditional SQL databases.  Does Hadoop replace SQL Server? Can it?

I'm working through a series of videos on msbiacademy.com to explore this and other questions about the technology.  Today I published one that that talks through one of the fundamental
differences between Relational SQL technologies and Hadoop.  In the video I cover one of the underlying differences between SQL and Hadoop that almost certainly guarantees that a technology like Hadoop is a complementary technology, and isn't ready to replace SQL altogether anytime soon.

The basis of this conclusion is measuring the two architectures (SQL and Hadoop) according to Brewer's CAP Theorem.  The theorem is a little bookish, but if you study it for a few minutes and realize the implications it becomes obvious why SQL has nothing to fear from Hadoop in the foreseeable future.  Conversely, Hadoop probably has little to fear from SQL for processing the workloads Hadoop was designed for!


The video has a lot more detail, but in a nutshell the differences boil down to scalability versus consistency.  SQL is built for consistency--transactions complete entirely or they roll back.  Subsequent queries should never see the state of a database with only part of a transaction applied.  This is an absolute requirement in many business record-keeping scenarios, but also impedes traditional SQL's ability to match the massive scale-out Hadoop is well known for.

Hadoop doesn't worry about such things as completed transactions.  Why not? Well you have to go back to what these technologies were originally designed to do.  In the case of SQL, it was designed for accurate record-keeping.  Money comes out of one account and goes into another.  It's never OK to report the same $100 bill in two accounts at the same time!

Hadoop, though, was built to store massive amounts of web content for searching.  If a search index is a little out of sync with the Internet, is it still useful?  Sure it is!  So it's not really necessary to wait until the entire catalog of pages in Google's or Bing's search engine is up-to-date before allowing queries.  What's more important is that all that content can be stored and effectively indexed. 

Of course, each technology can be forced to do the other's job.  Relational SQL databases can enable "dirty reads", or not use transactions during updates.  And pseudo consistent database layers have been built on Hadoop. 

But the original design intent of a technology matters.  Original design intent shows through no matter how many tweaks are added in order to achieve something that's inconsistent with the original design.  For this reason traditional SQL and Hadoop are unlikely to replace each other's original design intent anytime soon.

Monday, October 1, 2012

Big Data and Data Warehousing: Two sides of the same coin

I've started producing a series of lessons for msbiacademy.com exploring the relevance and implementation of big data technologies -- more specifically the Hadoop ecosystem of projects.

In the first of these recorded lessons, I setup the business case for why big data technologies like Hadoop will eventually become an essential part of a data warehouse strategy, and the four trends I believe will lead us in that direction. 

What are the trends?

#1 - Expanding Data Volumes

Everyone seems to agree on this first trend.  The volume of data in the world--and in our data warehouse environment--is expanding.  Often at an exponential rate.  Sure, our traditional relational data warehouses can handle large volumes of information.  But what about when those volumes go beyond large and become HUGE?  Big data technologies--by that I mean of the Map/Reduce variety, not just servers with a lot of storage--were designed for virtually unlimited expansion.

#2 - Expanding Data Variety

But it's more than just expansion that gives us unique challenges.  Variety of data can challenge the relational database paradigm.  Relational was designed to efficiently store and access business transactions that have well defined structure.  In the "schema on write" world of relational we can pre-optimize designs and achieve highly performant solutions.

But what happens when the data structure either isn't well defined--or worse--changes over time?  Can we easily store and analyze data such as call center notes and video in a relational data warehouse?  Well, of course we can store just about anything, but the access and query model is a poor fit for some of these data types.  Big data provides the flexibility and "schema on read" paradigms that make analyzing large volumes of loosely structured data much more achievable.

#3 - Economics of high-volume data processing

Most database installations today run on SMP hardware.  That is to say, monolithic servers that scale up by adding more storage, memory and processing power.  These system scale well to moderate data loads, but data growth in many organizations is exponential.  Ultimately SMP can't keep up with exponential growth.  MPP is inevitable for the most demanding deployments. When the data shape is structured and transactional, SQL-based MPP is the path.  For unstructured, schema on read orientated processing systems will pickup the baton.

#4 - Hype

Well, there's no question that hype plays a part in driving interest in the big data topic.  But is it all hype as some suggest? I don't think so.  As organizations mature in their use of information, high volumes of loosely structured data will hit the radar.  The question is whether we in the DW/BI space will dig in our heels and dismiss problems that don't fit our traditional processing systems as unsolvable--or whether we'll take advantage of the R&D done by web properties and adopt big data processing technologies.  Extracting value from the loosely structured information our businesses generate every day is finally achievable--if only we look beyond the hype and properly leverage these new technologies.

Visit msbiacademy.com for a more detailed video on this topic.  And stay tuned for more video lessons showing how to integrate Hadoop with Microsoft BI technologies.

Monday, September 17, 2012

#windowsphone user spends 6 weeks with an Android

I've been an avid Windows Phone since it shipped (and the iPhone before that), yet I've only been a spectator of the Android platform.  I've heard wildly conflicting opinions from my friends and associates about the good and bad of Android, but haven't been able to form an opinion. So this summer I decided to try it for myself--so I spent six weeks drinking Android's cool-aid to see if it tasted better than the Windows Phone variety.  Here is my tale.

Picking a phone

Android phones are all about choices.  So many choices...good golly maybe too many choices!  I found it overwhelming, to be honest. 

In the end I chose the HTC One X, HTC's flagship Android device, running Ice Cream Sandwich.  As a fan of Nokia's polycarbonate/Gorilla Glass materials and superb build quality, I thought this was a device that would similarly impress me, and give me a better apples-to-apples experience compared to my Nokia Lumia 800.

So I bought a One X and started using it as my primary phone--an extended "Cold Turkey" experience is the only way to really get a full sense of a new product.

Thoughts and Impressions

Fast forward to six weeks later. How did it work?  Let me consider it from a few different perspectives. 

Hardware

How is the One X?  Well, in a word--beautiful!  The screen is huge (more on that to come), but at the same time the device is so thin, light and sleek that it doesn't feel huge.  Build quality is right on par with my Nokia 800. It feels solid and as premium as a plastic thing can feel.  I just love the hardware!

My big fear of such a large screen phone was that I'd have trouble fitting it comfortably in the front pocket of my Levi 501's.  But since it's so razor thin, actually it's no problem at all--a pleasant surprise! 

But there is a problem with it (or me?).  I love the wide and tall screen when I use it with two hands to read web content.  But while it's great with two hands, I just can't use it with one hand without nearly dropping it!  Your mileage may vary (especially if you have basketball player hands), but in my case I can't easily hit controls on the opposite side of the screen with my thumb when holding the phone with one hand.  Maybe Apple's decision to keep the iPhone width within an average person's palm dimension was a good call?

Android OS

I found Android both amazing and perplexing all at once.

This version of Android feels fast and fluid, and it's a pleasure to use. Most things you want to find are easy to locate (after a few days of practice, anyway).  Almost every feature I want in a phone is there, as well as a bunch of features I never thought I would want (and still don't think I need!).

The phone makes calls just fine, has all the apps I needed available in its app store and was pretty easy to setup against my Exchange and outlook.com accounts.  Curiously, though, when I receive an Exchange e-mail, the Android always notifies me significantly after the Windows Phone does.  If I didn't have both, maybe I wouldn't notice, but still....

I find Android has far more configurability than Windows Phone.  Is this a good thing?  I suppose in some ways it definitely is.  You can organize your seven (yes seven!) desktops with all kinds of widgets, creating mini dashboards and so on.  I think I spent two days trying all kinds of organization ideas before realizing how much time I was wasting doing that.

But I do find all this customization a bit distracting at the same time. Windows Phone provides minimal customization to the navigation experience, but I like the way it works out-of-the-box.  After days of trying different layouts and gadget organization schemes on the Android...well I don't think I created a user experience that I like better than what Windows Phone provides out of the box, to be honest.  Maybe I'm not typical, but I don't rearrange the way my car works, and I don't really need to re-engineer the way my phone works either...

Performance is good...

My performance experience was great. The HTC One X feels snappy and fluid.  I never felt it was slow. 

Battery life is just about like my Windows Phone.  I didn't make any scientific measurements (I'll leave that to others).  But most days I can get through on one charge.  Some days I don't.  YMMV, but I wouldn't say this phone has significantly better or worse battery life than other smart phones I've used.

...but a bit glitchy

This will be a controversial statement.  Some will say I'm misinformed or I'm just picking nits.  Flame me if you like but I find Android quite a bit more "glitchy" than Windows Phone.

For example, when using voice command from the Android phone, it almost never works as I expect.  On my Windows Phone I can say something like "Call John Smith, Mobile", and it will just start dialing the phone.  I just keep driving, or walking or whatever...and the phone connects. 

On the Android, when I use the voice command built into the phone app, instead of understanding me and dialing the phone...I get a list of possible interpretations of what I'd said, and if I work with the phone a bit I *might* get it to dial the desired number...or not.  Does it work as easily and accurately as voice dialing on Windows Phone?  Nope. Not even close.  (I even tried the 3rd-party "Jeannie" app.  It was better...but still recognized my speech much worse than Windows Phone).

I don't know why the glitches...but it feels like the patchwork of software that makes up this phone just hasn't had the same care taken with it as with Windows Phone. Again, you may disagree, but this is my experience with it.

Summary

So I reach the end of my dating experience with Android, and I have to decide whether to get married, or just part as friends.  What to do?

It's certainly not an easy call, because I just love the HTC hardware. And the OS is a pleasure to work with, and has a depth of technical sophistication you can see as you use it.  I can understand why so many people fall in love with this OS.

But I think Android and I will part company.  The customization and tweaking and explosion of features was at first quite fascinating to me. But when it comes to my smart phone, that's not what I'm looking for.  I really want an appliance--something that works well as delivered and is 100% consistent and reliable, and doesn't just have lots of great components--but has everything tightly integrated together. For that I prefer the Windows Phone.