Saturday, January 12, 2013

Why I'm taking my SIM out of my Windows Mobile 8 Phone

I blog rarely, but have mentioned a small annoyance with Windows Phone 7 previously. It was a minor API annoyance. Since then I really enjoyed my HTC HD7. It was different, looked gorgeous, and was generally a joy to use. Zune for Windows is a great music player, it looks stunning and made synchronizing music a breeze. It made iTunes feel like a toy.

I, with a very small select group of friends, were excited for Windows 8 and obviously Windows Phone 8. We spoke at length on how we looked forward to the Surface and which WP8 phone we would pick.

Windows 8 dropped and I installed it on my PC that night thinking "hey if WP7 was so fun to use with the tiles, surely Windows 8 will be great". Sadly... it is not.
I was initially keen. I learnt all the new shortcuts and carefully crafted my Start screen (its not a menu anymore). But after about day 2 or 3... every time I press the Start button I cringe. Why do I have to get smacked in the face with a full screen bunch of non-sense.

The Metro style (I know we aren't supposed to call it that, but thats what it is) apps are frustrating at best and I find my self installing the desktop version of any app. As a multi-monitor user, I have daily frustrations with how Windows 8 deals with my screen. It just feels wrong. Windows 7 was nice, but with Metro glued on it feels oddly different.

There are problems in the small details too. I thought I'd be all cool and use the Metro Skype while I played Starcraft. I had the screen real-estate for it, yay. Would you believe that the biggest issue I had with the application is that Windows 8 Metro apps don't get their own Volume Mixer controls! WHO FORGOT TO PROGRAM THAT IN?? If I wanted to adjust the Skype volume, the system volume went with it. Not good enough Microsoft.

As a developer, I was getting pumped for Visual Studio 2012 and to learn how to make my own Metro apps. I'm not going to bother. In fact, uninstalling Windows 8 is on the cards. I hate to "go backwards", but the naysayers were all correct.

I looked the other way and went and got a Telsta 4G HTC 8X. One of the flagship Windows Phone 8 devices along with the Lumia 920. I picked it up and had smiles from ear to ear. It was light, felt great and was extremely fast compared to my HD7. I enjoyed arranging my home screen and although there wasn't a lot that was new that I needed out of Windows Phone 8 it was fast and fresh enough that I was happy.
Mind you, I was disappointed that Skype support is still mostly beta... Microsoft have had more than enough time to get this right and it should have been shipped with wonderful integration.

I get home and start to load up all my music and photos from my HD7 to the 8X. Zune wouldn't recognise the device for some reason. I Google (not Bing...) for the reason only to discover that it is no longer supported. Really? The best part about the Windows Desktop to Phone experience is crippled? grrrr
So I start the Windows Phone 8 Metro application ... there was almost a tear. It is boring, and not at all intuitive. Sure it was functional, so I pushed through it. I still use Zune to play music...

It wasn't until I started poking around the operating system that something occurred to me. Weren't we promised Nokia Drive? Oh well, Bing Maps wasn't too bad on the HD7 and I used it quite regularly to get directions via my Bluetooth headset. I jumped in my car and went to get navigation instructions and was told "Hey, you don't have an app for that. Want to go to the marketplace?"
Did I press the wrong button? No... no I did not. Directions were removed? You crippled a critical feature?
I thought maybe it doesn't matter, Telstra bundled Garmin Navigator... I start it up and am told about the $7 per month fee for Navigator. I almost threw the thing at a wall. With all the battle going on with Apple Maps, did Microsoft fail to see how critical maps applications are? Did they notice and still chose to remove direction capability? 
I know of the 3rd party crappy add-ons for $5-$50. They are all terrible. 
This was almost reason enough to take it back, but I kept up with it.

Over the next week there were frequent random reboots, for no apparent reason while it was sitting there by itself. There weren't updates, they were bugs. There was an OTA update that fixed them in November apparently, but my phone was getting them regularly.

I used my Bluetooth headset to command my phone a lot. Especially for receiving texts while I am on the road. The speech from the device was mostly garbled or speckled with random moments of silence. There are no excuses for this, I have a top end Jawbone that was flawless with my HTC HD7 and my BB Torch 9800.... 

It was about day 7 when I realised several dead pixels on the screen, and to top it off the the plastic on the case was peeling. After poking around the internet I realised I was not alone.
Telstra were nice enough to replace it in store one day. 
While in store we actually went through 3 more devices that obvious dead pixels straight out of the box. Not just 1, but sometimes 2 or 3. WTF is with the build quality.
We found one that seemed good and I took it home. 7 days later I have feeling on most of the edges of the freaking thing. 
I have yet another appointment with Telstra to get rid of this piece of junk.

The device hardware faults aren't Microsofts fault.. but as flagship devices and that fact that these things don't last a week without obvious physical wear is nothing short of disgraceful. 

However, there are absolutely no excuses for the crippling of Maps. I'm also going to be losing support for syncing with my Google contacts and calendar shortly.

The result... My SIM card is now in my old Google/Samsung Nexus S and I'll probably walk out of Telstra with an Android device when I get rid of this thing.

I walked tall and talked in great length with fellow gadget nerds with the hope that the Microsoft Windows 8 products were going to bring the company back from brink of boredom that people were experiencing. I talked up WP8 and assured friends Windows 8 was going to be a lot of fun.

I was wrong... 

Wednesday, October 19, 2011

Anti-trust and closed mobile platforms

I initially started thinking about this (on the table during acupuncture) in the context of the iPhone... but the same can also be said of pretty much all mobile platforms excluding Android.

What ever happened to the idea of anti-trust in software platforms?

Remember the days of Internet Explorer / Windows anti-trust issues, particularly in Europe.
I believe the whole idea was that by having Internet Explorer shipped with Windows that you are limiting market-share that can be gained by other competing browsers on your platform.

First thing is first, I'm not sure how I felt about this initially. Sure, I hated IE as much as the next person, I still do... it is terrible. It is a battle Microsoft should give up fighting (*cough* along with search *cough*).
But my partial stance was: "hey, Microsoft built the whole freaking platform... leave them alone. Without Windows, there was no where to run Netscape, Firefox, Opera anyway... so quit your bitching. If people thought IE was crap enough, they'll leave"

Leave they did... latest statistics show that not a lot of people actually stick around with IE.
Funny enough (I haven't looked at the details) there seems to be some debate about who is using what. Here and here are some differing stats. Also remember that IE ships inside Windows still in pretty much every other country other than a few in EU.

Side-note: Really interesting to see Firefox usage drop off and Chrome usage pick up. Mozilla did this to themselves with terribly slow start up times back in versions 4 & 5 compared to Chrome.

Back to the main topic of interest now that we are on the same page: the real problem that was unsurfaced is that platform developers have such intimate knowledge of their platforms and can make sweeping changes to their platforms that allow them a significant advantage.

Some that come to mind:
  • Features of third party applications can be adopted in to the operating system/platform, hence cutting the market for the original application (Spotlight & Dashboard for OS X were born like this, as were many features of most Operating Systems these days)
  • Platform developers have access to closed API's not available to third parties, giving them capabilities that others can't get to (well, easilly.... without hacking and warranty voiding)
  • Platforms be altered in a way to cripple third-party applications not preferred by the platform developer
As an example, this is RAMPANT in iOS (and to some degree also in WP7, but I haven't done a lot of investigation).

Examples that have annoyed me in the past, or continue to annoy me today:
  1. Up until iOS 4, the iPod was the only application that was allowed to run in the background to play music. What if I was Pandora and was trying to get my music application to get in to people's pockets... the limitation by the platform developer gives a hard limitation to competing music players and stores.
  2. Platform developers (again, excluding for Android) don't allow other marketplaces in their application deployment life cycle.
  3. I wanted an application like that operations like Siri since I got my hands on the iPhone SDK (even before my first iPhone arrived). I wanted the ability to hold down the home button that would allow me to send speech to a server box (because the MS speech recognition was good) to process. Couldn't do it. We are talking about an application I started to make 3 years ago. The limitation in it's useful was entirely based on the fact that you had to turn on your phone, unlock it, start an app, and then press a button. EWWWW.
    Without access to special API's that the platform developer had/has, I can't compete.
  4. Access to underlying databases (in the name of security) is limited, meaning applications cannot do interesting things with peoples calendars, contacts, or anything like that. Refer to my earlier post about trying to make an ICS reader for Windows Mobile 7.
Let's have another think about what could have been done with the original implementation for Siri (which was an app released quite a while ago that ran on anything > iPhone 3G, and possibly other platforms?).
The thing holding the original Siri back, IMHO, was that you couldn't easily access it (like the one click it is now) and that it had no ability to write to information databases (again, contacts and calendars) on the iOS platform.

What actually ended up happening was that Apple bought the technology from the original developers... and they, of course, have access to all the nuts & bolts needed to make it better. But who is to say that the makers of Siri (had they had access to the underlying APIs that Apple do) may have made a wonderful application that they could have sold to users of iPhones of all breeds from 3G to 4S and made a lot more money than they did selling the technology to Apple (lol, Apple get 30% anyway).
Better yet, they may have also been able to get ports to Windows Phone, Android, PC, Mac, the freaking web/cloud... those guys could be rolling in the coin (more so than they are).

I'm sure there's a whole load of developers out there that are held back by the restrictions of the underlying mobile platform to really letting some of their amazing concepts and ideas shine through. Mobile computing is still in its infancy (coming from someone that once owned a Windows CE 1.0 device). We're only scratching the surface of what is possible.

In the case of Adobe and their concerns about this same problem, I tend to sit on the fence of "go away Flash... stop slowing down my browser and wasting my battery life". (As a Macbook Air user, trying to watch Starcraft 2 streams in flash players makes a 5hr battery last 1hr... I cant wait for more HTML5 adoption!!!). But thumbs up to Adobe for having the right idea.

The only place that we can really show off our freedom is jail breaking, or Android.
Or have tonnes of money and start your own mobile platform?
Smells to me like a form of monopolization that we all have to just put up with... because we don't have the choice.

This comes from someone who loves his iPhone and Windows Mobile 7... and didn't actually take much love to Android's user experience.

Maybe Steve was right, maybe I shouldn't have an opinion?
I'd at least like the choice on whether I am allowed to have an opinion...

Applications are what makes the iOS platform so great... and I actually believe that the tight user interaction guidelines Apple impose make the applications for iOS some of the best available. Imagine what is possible if the chains are taken off the developers...

The other option is to just hope Apple buys up all you're shit... but it still feels a little but like wrong-town to me.

Monday, September 26, 2011

My first disappointment in Windows Phone 7

I was relatively late to the Windows Phone 7 game...
I've been using the portable versions of Windows since Windows CE 1.0 (I had a Casio Cassiopeia A-10) up to and including Windows Mobile 6.0. I got over it all.

I've had a tonne of iPhones, and have been insanely comfortable with them. They did EVERYTHING I wanted to... (or so I'd pretend).
I do love open source, so I picked myself up a Nexus S to explore the apparent bliss that is Android, but it just didn't feel right to me (yet).

So pretty much because my brother in law had this massive beautiful screen on the HD7, and a mate (you Phil) had been talking it up, I eBay'd myself a HTC HD7.
I got it post NoDo (yay, cut & paste) and pretty much jumped straight on to the Mango (I call it Mangoat) Beta. Everything has been pretty freaking awesome with it... its pretty, its well organised.


Ahhh, calendar support for invitations. Balls.
Who doesn't support ICS files natively on the device? :-(
Turns out lots of people.
I get people to send invitations to my Gmail now instead of my MobileMe, but nothing works nicely together. I want my phone to see the ICS and magically work it out for me.
I'm not asking for too much.

So I figure, "hey, screw it, I know C#... I will fix this gaping hole in calendar support by making an app that can load ICS files and populate a new appointment dialog for me. That's close enough"

It wasn't until I started reading through API documentation and reading through StackOverflow questions similar to the ones I had asked that I realised that Microsoft didn't get around to exposing the API's for writing to the calendar or calendar dialogs.

To quote from the Whats new for 7.1 RC on MSDN:
"The Windows Phone SDK 7.1 RC now gives you read-only access to the user’s contacts and calendar data. You can now differentiate your applications by querying and interacting with the user’s data in ways such as letting the user choose from a list of their contacts and sending them emails, searching for contacts’ birthdays, and others."

Makes me sad... I'll still have to keep hacking through event invitations through dodgy web interfaces until then.

Ok two more things I hate. IE9 mobile is terrible (or maybe just that it identifies itself as IE is bad, NO one makes their websites look nice for it. e.g. All the Google stuff doesnt work half as nicely as it should)

And BING... dont get me started on how terrible Bing is.

Thursday, June 26, 2008

Windows Media Player (and Center) library interface for .NET

I have had a few problems learning how to do stuff with Windows Media Center.
The API is ok, but its by no means complete and as such really restricts the amount you can do with it.
Its a start, and somewhere somehow the tools are there to let you do what you want with Windows, its just a matter of how hard you want to work.

I wanted a way to programmatically access the music library for Windows Media Center for an application I am developing. After crawling through forums and API's I soon worked out it just wasnt going to happen... but something obvious occured to me: The Media Center library is just freaking Media Player! Media Center is just a glorified (and pretty sweet) front end for WMP.

So I spent some time medling with getting access to the WMP SDK from Visual Studio Express 2008 in C#. It was REALLY easy, but here is a crash course.

Grab your self some Windows Media Player SDK if you want, but I am really not sure that you need it anymore.

Make a new C# (or what ever language you like) project. Right click on the References and Add Reference. We want a COM object, and its quite simple Windows Media Player which links right to the wmp.dll.
All you need in code then is a "using WMPLib" or what ever the include work is for your language.

Let me point out here that I am UBER impressed with how easy it is to include COM objects in to managed code. Really very cool.

Forgive me, at this moment I have no idea how to put code into the blog with styles so its going to be a bit crappy to look at.

You are going to need a few objects to do work with. First is a WindowsMediaPlayer object.

WindowsMediaPlayer player = new WindowsMediaPlayer();

So you want access to all your music? Ok, easy.

IWMPPlaylist playList = Player.mediaCollection.getByAttribute("MediaType", "audio");

Simple! Just bounce through that big list of music and do what you want. All the properties and attributes of the files are accessed through the IWMPMedia class by invoking a getItemInfo.

IWMPMedia = playList.get_item(i); // i am obviously doing this in a loop arent I :-)
string artist = currentMedia.getItemInfo("DisplayArtist");

I cant remember how I worked out what the item tags were called, but I think I just looked at the inside of the IWMPMedia through the debugger.
"Title" is another useful attribute you might want to query.

What if I wanted to play this song in Media Center you ask? Easy. I won't go through the in's and out's of the Media Center API, but just get the location of the song via "currentMedia.sourceURL" and pass that to WMC's PlayMedia method.

I hope I have helped someone out with this info

Wednesday, June 18, 2008

Oops, thats what a Flog is

I just learnt of this: Fake Blog

Flog is also a Fake Blog... this is not one of those.


Tuesday, June 17, 2008

Intel Storage Matrix FTL

Intel Storage Matrix For The Lose....
I have had limited experience with Intel Storage Matrix... I started off thinking I was impressed but now not so much.

The setup was 2 x 1Tb Samsung's in RAID 1 using the ISM RAID on a Gigabyte X48T-DQ8 motherboard. The tools that built the computer had installed Vista already even though I asked them not to... boo. But I got into the ISM setup at boot and had it create me a RAID 1 across the drive. This was cool...

Vista recognised it without the need for adding disks, drivers etc (as I expected to be honest). OS installed and all was well until we ran Ubuntu 8.04 from another drive. It came up as two drives...

"WHAT?", I asked. I quickly learnt there was such thing as "Fake RAID". Windows looked after fixing up the accidental change I had made to the drive in Ubuntu, but I really hated this idea.

Anyhoo... since then we have taken Vista off the "RAID" drives and instead used them for Media storage only. What annoys me the most now is every second or third boot for no apparent reason the ISM boot screen shows both drives as "Offline members".

"WTF?", I proclaimed. Nothing in the ISM menus really helped (options are Create or Delete RAID, wow!). This gets SILLY annoying because when the drives come back the Motherboard BIOS decides to set it as the main boot drive which of course fails.

So to you Intel Storage Matrix I say "GO AWAY". Going to see if the Gigabyte is more reliable. But I am disappointed first of all with the existence of this "fake RAID" business, my lack of prior research, but the fact that even then it seems so flakey.

Any one who ever reads this and has any ideas drop me a comment... but I have a feeling a firmware update or a drive format will help me. I shouldn't need that help though.

Monday, June 16, 2008

Welcome nobody

Hello nobody,

Nobody is going to read this (probably) except the people who I link it to. But hopefully one day a tid bit here can help somebody. I am going to try and keep this technical related. I am an Electrical Design Engineer in the Defence industry and run in to a whole range of weird things in the hardware and software world on a day to day basis.
I also dabble in some random things in my own time.

So this is my world:

Home time
What do I play with when I am home alone?
  • My machine is a Macbook from the very first generation with Mac OS 10.5 (+ a lovely Dell 24"er )
  • I code in Eclipse because its the same as what I use at work, and I love Java!
  • I am doing some coding under Vista including work with Media Center, Microsoft Speech SDK and the Media Player SDK. Mash all those things together and you'll work out what I am doing.
  • Occasionally I dabble in UAV related computer vision when I get the time, but that is pretty rare.
Work time
  • I do a bit of software work in a few different languages. I mainly code in C++, but regularly interface/work with Java, C#, Ada and Python.
  • I have played a bit with the Mono framework for C#, and interfacing that to C/C++.
  • Cross platform building plagues my (and Andrew's) poor little worlds. Day to day building (and coding) in Windows, Linux and QNX .
  • I use Eclipse for EVERYTHING at work. Every language (excluding any Matlab work) I have a plug-in for. Its a lovely central place to work and it means I only have to get to know one tool. The most efficient way for me to work is Eclipse for Windows, and I rely heavily on Samba to glue me to the *NX OS's.
  • Most of my electronics work revolves around data acquisition and control.
  • Embedded work I do usually revolves around the Microchip PIC's.
So thats me... and thats some of the stuff I might talk about. I wont really get into project specifics, but things that I run into that are interesting and worth talking about. The first two things I want to talk about are problems I have seen with my girlfriends Intel Storage Matrix RAID set up (on her new pretty freakin sweet PC), and also a little nuisance problem with GTK# and the Embedded Mono API. Boo.