Tag Archives: Win8Dev

Why it is Windows vs. Mobile OS(es) and how OEMs are killing Windows

Sometime back I read an awesome story on how Microsoft turned it’s first OS licensing deal around and owned the PC market right under from IBM’s nose! It was a history of OS/2!

Flashback! In the last 3 years I’ve bought 4-5 laptops for friends/family and on each occasion I have ensured I remove all crapware and set them up with Microsoft Security Essentials/Windows Defender before handing it over. No one has had Virus/Instability or any typical ‘Windows’ issues (couple had hardware failures, yup, the title says it all).

Cut to beginning of the year, I am a friend’s place and he’s cribbing about his Windows 8 laptop bought last year running slowly. Curious, I offer to investigate! True enough, the 8GB Core 3rd Gen i5  laptop is working worse than my 4Gb Win8.1 VM running on Core 2 Duo! I end up spending 2+ hours removing crapware installed by Acer! Couldn’t remove three pieces for crapware because something has finally broken Windows Installer. Thankfully I was able to get rid of FSecure and put Defender back which seemed to have restored most of the laptop’s lost performance.

Let me go out on a limb and say this:

Windows is an awesome operating system!

It is more user friendly and capable than any other consumer OS (and most server OSes too probably), period! Nope, I am not taking arguments, just STFU!

How come you haven’t seen Windows that way, you ask? Well, you probably don’t assemble your own desktop, cleanup a new Laptop before using it the first time, use pristine Windows VMs that don’t have an iota of crapware and are not aware that spinning disks in a laptop can get easily damaged (hard drive crash) if the cheapo OEM who assembled your laptop didn’t build in sufficient shock protection.

But you say, you are just buying a device that’s supposed you work, why should you care about all this? Correct! Very Correct! That’s exactly the point of this article.

OEMs, Decline of Laptop and Desktop sales, and how iOS/Android is the real threat to Windows

Note the heading doesn’t say ‘Decline of PCs’, because PCs mean Personal Computing devices period. The Mac Vs. PC war was a Media war (okay maybe a bit of an ego war between Jobs and Bill) more than anything else. There is no decline in Personal Computing device usage, if anything it’s skyrocketing.

Anyway, in the last decade and half, Personal Computers or Personal Computing devices have become an increasingly important part of life pretty much because of internet and how it has enabled people and made their lives easier. Internet is now a pervasive medium of communication and getting work done. For the ordinary person reason for having a device that connects to internet is to get work done, make life simpler. In the past the ‘simplest’ device has been a PC. First it was hulking desktops, then it was hulking laptops till Apple threw a spanner in the works with the iPhone. From my own experience I was spellbound by what the iPhone could do when I bought the 3GS on launch day (yes I queued up for it)!

Anyway, back to the discussion, for the person on the street, Operating System is means to an end, in fact, the ‘device’ on which the OS runs is in fact the means to an end. As long as the device can do what the person on the street wants, they couldn’t care less. In the past the lowest common denominator was the cheapest Desktop or Laptop around, that happened to run a flavor of Windows. They would use it till it stopped working and then buy another one. The problem with ‘lowest common denominator’ approach was, OEMs cobbled together devices with nary a thought about the ‘experience’. Essentially Microsoft and OEMs were running on parallel tracks and meeting only on ‘stations’ where MS would hand over a new version of it’s OS and be on its way! It was a great way to drive down costs, increase market presence and make personal computing devices affordable. But for the person on the street a desktop/laptop was something they would use when they only HAD to, not because they wanted to.

Microsoft, unfortunately due to it’s history, overlooked this. It was busy wearing “90% desktop OS ownership” blinkers to notice that the person on street didn’t care about a hulking laptop as their goto ‘personal computing’ device when 70% of what they wanted could be done on their mobile devices. So when the common man, the end users, the person on street, shifted their computing allegiances from their hulking laptops to sleek black slabs that could be carried in pockets, what did MS think?

Hey we need to make an OPERATING SYSTEM for those black slabs!!!!

All wasn’t lost at that point if MS had continued with a razor sharp focus on besting the ‘sleek black slab’ OS. But no, it wanted to boil the oceans! Pffftttt… when the world isn’t sure it wants 3 competing mobile eco systems, MS went out and built 3 F*ING OSes of their own!!! Thus Windows RT, Windows Phone 8 and Windows 8 Desktop were born!!! Thank you Microsoft, but you forgot the person on the street! They couldn’t give a rats ass about how many OSes you have if it doesn’t get the work done!

Along with the person on street, MS kicked a sizable chunk of the developer community in the nuts too. But again, ‘blinkers mode’ was still on so who cares if a few developers crib.

Windows OS, is it down to the last roll of the dice?

Earlier this month @JayKannan tweeted this:

Before that @sacca tweeted the same image as follows

I responded to Jay saying

If you read it in context of the beginning of this article you’ll get the fact that I am terribly pissed at what OEMs are dishing out and Windows taking all the blame. The latest CES is a disaster for Windows according to me. If OEM keep coming out with bullshit like Android/Windows hybrid, it’s curtains for Windows.

Anyway, we got into a good natured banter on Twitter on how MS has lost so much time in misdirected efforts like building Windows RT ground up, releasing the botch-up abomination called WinRT (APIs) and the time it’s now losing to merge that into Windows Phone OS! Whether WP will be rolled into Windows RT or RT will subset of WP is not the question, the time lost in this bickering is sickeningly familiar to the OS/2 story and how IBM lost the entire PC market and eventually sold it off to Lenovo!!!

Eitherways, a few more people joined our conversation and we argued for a bit on Windows and it’s place in the universe in the future. Twitter is an awfully hackneyed medium for presenting your complete thoughts, so I took a break from it and wrote this blog down.

To sum up, from a Developer AND person on the street perspective, the following is what I think MS can do to showcase Windows and hope it stays relevant:

  1. Produce reference devices like Surface across the spectrum: All in ones, Laptops, Tablets and Phones. They have to showcase what Windows can do, not how OEMs can butcher the experience!
  2. Separate Windows out into Consumer and Pro.

      Consumer == Windows RT, kill the desktop there and get a Metro Office out of the door ASAP! Pull up all the Metro/Modern apps to the feature parity with their desktop counterparts like Mail/Picture/Skype/Browser. Don’t sell Windows RT laptops, instead sell it as a Tablet OS, Keyboards for tablets are an afterthought and lastly Consumer devices sell cheap! Really cheap!

      Pro == Windows 8.1++ without Modern Apps getting in the way. I personally hate running Modern apps windowed as one third part enables today so that’s NOT the way I would like to see Modern apps go. But Modern Apps could adopt OSX’s approach of fullscreen where fullscreen is a separate virtual desktop. Make the Modern App Start screen into an App Launcher instead! Keep the desktop front and center for all the so called ‘power users’.

      Find a way to bring in Windows App Isolation model into legacy apps.

      Build for touch but don’t expect touch.

    1. Most Important: Stop re-inventing the API Wheel! Lock down on a kernel design and API (stop F*ING around with separate WinRT/WP/.NET/C++/WinJS bullshit). I don’t care about syntactic sugar – Give developers a COMPLETE .Net API that helps them showcase your OS in the best light!!! Your OSes App Ecosystem will decide it’s relevance, if you make it difficult to build apps then you are doomed!

    Why making Windows XP obsolete won’t pull up Windows numbers

    Last but not least, if Microsoft thinks making Windows XP obsolete is going to automatically bump up Windows 8 numbers, that’s false. Large corporates are already considering Linux/Windows 7 and non-Windows devices for current users of XP. In other words they are using XP for a reason – They couldn’t care less about the OS! They will move to a device that is better/easier to use. If one of the incarnations of Windows doesn’t seem right, it will be discarded! Rest of the XP numbers are probably pirated copies and will vanish from the blimp once those devices die.

    Conclusion

    I have put a lot of money on Windows 8 devices/eco system and their success, so I am not writing this as a detractor or a hater. I would love for the Windows 8/Modern App ecosystem to flourish. For that to happen lots of things have to change and that makes me jittery, because change takes time and Windows has just about run out of all the time it had!!! I am afraid Windows 9 might not be in ‘good time’ and other Mobile OSes will be too far ahead by then and Windows will be delegated to Back offices, Server Rooms much like how Linux WAS till it was reborn as Android!!!

    Advertisements
    Tagged , ,

    The Story behind Kalliope Media Player

    image

    I am happy that Kalliope Media Player for Windows 8.1 is live on the Windows 8.1 App Store. While features and other details are coming up on the official website I wanted to write down the story behind why I built it in the first place. Specially since there are about 600 odd ‘Media Player’ apps in the App Store already!

    It was around early 2013 when I realized how half baked Window’s default media player was for Windows RT. On Windows x86/x64 you could always download VLC and be done with it, but Windows RT was a real problem. It frustrated me no end that the default media player couldn’t prevent the device from going to sleep and when it went to sleep it would resume when awakened. Instead it would crash and I would have to start all over again! It couldn’t play properly over network shares, and when I finally setup a UPnP server just for it, it still provided subpar usability.

    After much searching I found PressPlay media player that overcame some of the issues but lack of Playlists were still a pain in the butt and prevented me from using Windows RT as a true consumption device that I wanted it to be.

    So finally I threw in the towel and decided to spend resources of my own company to build something I wanted. I assumed it to be about 3-4 weeks (part-time) worth of effort and had assumed I would easily make the Windows 8.1 launch (Boy, I was wrong!).

    Features we wanted were:

    1. Play Videos without interruption (not worry about touching screen/moving mouse to prevent it from going to sleep mode).
    2. Resume from last Paused or Last Stopped
    3. Good ol’ Playlists (front and center not some obliquely hidden feature)
    4. Audio/Video and Pictures support
    5. Works on Windows 8+
    6. A paid app because
      1. A free App provides very little incentive for support
      2. I am not a fan of advertising as a revenue model (yeah I know old school)
      3. I didn’t want to go down to the level where I would have to show ads during playback to make money.
      4. We don’t want to sell our users or their data down the river!!! NEVER!

    Start, Stop, Stutter…

    After development started on July 18, 2013 (date when Repository was created), we started with the experience of a few articles I had already written for DotNetCurry! So getting the basic functionality wasn’t a big deal. However, priorities soon shifted and work stopped until Windows 8.1 was almost released.

    We had a 8.1 Preview VM ever since it was made available, so one day I decided to try out the build on 8.1 and got stumped

    You cannot target Windows 8 using Visual Studio 2013 Express on Windows 8.1. You have to retarget your project to Windows 8.1 and there is no going back (and no way to maintain common solution)! And by cannot target I mean it doesn’t load the projects unless you retarget. So if you want to build an App for Windows 8 and 8.1 using Visual Studio Express tooling you need both Visual Studio Express for Windows 8 2012 and 2013 on a System running Windows 8.1.

    If you don’t want this pain you have to bump up a couple of SKUs in Visual Studio 2013!

    This was a massive fiasco, at least for us since we use the Express Editions! Went back to Windows 8 and continued development till I had a working prototype with the UI flow. At the same time I went through the improvements made for better Media support in 8.1, mostly by working through the //BUILD 2013 sessions. By the time Windows 8.1 went GA it became quite clear that 8.1 would be the quicker platform to wrap this up. As soon as we got our hands on 8.1, we branched the code out and moved development to 8.1.

    Bulk of the work happened in November 2013, with the aim to go live before Thanksgiving and Holiday Season fervor, but alas!

    Pivoting the UI Flow

    Towards the end of November I remember doing some A/B testing with friends and family and the overall reaction was ‘ahem’. So all the three main pages Home/Browser and Player underwent an overhaul. The color palette, information density and UI flow was all modified to make it ‘easier’ and more conformat with Windows 8 aesthetics!

    I had a fairly unimaginative name lined up for it ‘Modern Multimedia Player’.

    Credit for the Name, Logo Inspiration and Color Scheme goes to the volunteer work done by Praji, Thank you dear!

    The name ‘Kalliope Media Player’

    Kalliope is derived from the word Calliope which is name of a Steam Powered Musical instrument of the yesteryears. It’s also the name of a tiny Humming Bird.

    So if you look at your Logo it’s a 2D representation of a Calliope’s Musical pipes.

    All the Graphics and artwork was done using Paint.NET in house. I like to think they came out well, but do let us know what you think.

    Framework Curveball

    Once we were happy with Video playback performance, we moved to testing Audio, we were smacked by a Curveball produced by WinRT. As an Audio player I expected my WinRT device to play audio even though it went into connected standby, that’s what all the Sessions said, but it just wouldn’t work! After searching high and low, tucked away in the Developer forums was this gem of a ‘recommended hack workaround’.

    Unfortunately for us, it took a lot of hit-n-try to realize that the workaround works ONLY for local files and not for DLNA shares. All our test music/video was on my Raspberry Pi powered ‘Media Server’, and we inanely worked on lots of permutations and combinations of the above ‘workaround’ till it occurred to us that it could be a Windows Bug

    Lesson #1: Don’t have implicit faith in an API. If it doesn’t behave the way you expect it, ask around.

    Lesson #2: Have test data to support all your scenarios, don’t pigeon hole yourself in one scenario only!

    Anyway, by the time I reached the forum, Thanksgiving had come and gone!

    The target for a Christmas release was December 16th but we missed that too. Finally in a bid to get the release out, I took out the Picture Viewer functionality all together.

    WACK Testing and Submission

    The application was primarily built on a VM running on MacBook Pro. DirectX doesn’t work properly on it (thanks VMWare Fusion for your extortion racket) so WACK always fails on it. We ran WACK on my Surface RT and it passed the first time!

    The process is much improved from Windows 8 and now you can sit at your desk and remotely initiate WACK on your devices as long as you have the Remote Debugger working. Enabling WACK involves the first time on on a Surface RT will initiate required s/w download and a change to the Surface RT’s bootloader and you need a physical USB keyboard for it. More on this in a separate article. But overall if you are looking at all the Popup messages carefully, you will go through it without problem.

    We finally submitted the app on December 31st (around midnight PST). To our surprise the app had cleared the app store by 2nd Jan (speed of certification was the Surprise, not that it passed, we knew it would pass Winking smile), and we had Kalliope Media Player live!

    Next Steps…

    Currently we are working on a Windows 8 port. Once done, we’ll wrap up the Picture Viewer. Overall, building Kalliope Media Player was a good experience in building Consumer Software. We already have a ‘no reason’ 1 Star rating, so I am sure you’ll tell us where we went wrong, and we fully intend to adapt it to consumer wishes as far as possible (just don’t ask us to offer it for free).

    Only hope Consumers care to ‘say’ instead of just providing 1* ratings that give us no clue to the reason.

    Rate us 1 if you hate it, it but do tell us why!

    There are lots of features swimming around in my head like Closed Captioning Support, “Play to” support, language support (if video has multiple audio tracks) and so on! The launch was only the beginning, a lot more is yet to come…

    Tagged , , ,
    %d bloggers like this: