Archive for the ‘Microsoft’ Category

Minimal GPS for a Motorbike

June 30, 2018

As a motorcyclist I often need a GPS to help get somewhere. I don’t want or need a dedicated unit because (a) they’re expensive and (b) Google Maps, Waze, or Here on my phone are rock solid and why would I want to pay for something that doesn’t do as good a job. Yes, I know they need phone coverage for live traffic routing, and apart from Here they don’t have a good download/off-line solution, but its rare that I have no coverage with my riding (YMMV of course).

What I don’t like though is clunky phone mounts that leave my expensive pocket computer at the mercy of the weather, stone chips, and taking a tumble if I don’t get it properly secured. And to be honest, while the mapping apps have great UX for a car driver or pedestrian, as a motorcyclist I really want a very focussed, minimalistic UI so minimize distraction.

I think my ideal solution would be a small waterproof/shockproof device, that has versatile mounting options (to cater for everything from pushbikes, to scooters, to Cruisers, Tourers, or Street Bikes), can be powered from the bike and/or contain a rechargeable battery, that supports Bluetooth (4.x/LE) to be driven from the phone and has an eInk display with a photocell and backlight for automatically providing good visibility in any lighting condition.

The display would show just the basics of what I need to navigate – the turn I’m coming up to (and how far away it is, and ideally an indication of what comes after that if it’s going to be in close proximity), what lane I need to be in (especially helpful for roundabouts or complex junctions) and not much else. Speed limit reminders, clock, time to destination, and other notifications would be handy but optional (my bike has a clock so I’d be happy to have the screen real estate optimized to not show that, but as my previous bike didn’t have one I would have liked it, so let the rider decide).

While I’m not a fan of notifications about text messages, emails, snapchats etc I can see the benefit of a non-obtrusive icon to allow filtered notifications (eg let me know my family is trying to get hold of me).

Sadly I think we’re stuck with a catch-22. Without a hardware device to display this information there’s no incentive for Google, Apple, or Here to add support for a minimal external display to their Maps apps, and without the APIs or support in the apps to pipe minimal directions and graphics then it’s hard to see anyone going to the expense of creating the device.

As we slowly get to a future where HUD displays become more of a reality for motorcyclists (I always wanted to try Google Glass in that scenario) having this minimal UX available to project in that limited space would be a great way for a mapping provider to win hearts and minds of a sizable community…

Update: Looks like there’s a possible solution in the Beeline Moto … pledged for one of these so maybe it’ll answer my need (though not sure if the single arrow display is too minimal)

Data Science (Machine Learning) 101

June 12, 2016

Date Science, or Machine Learning, is a scary topic. It’s hard to know where to get started. It’s hard to even find a good definition of what it does and what you have to do. And there’s always the risk of unleashing the singularity or Skynet by mistake.

As I’ve given a few ad hoc presentations on Machine Learning (and though focused on implementing it with Azure, the basics are applicable to other platforms) I thought I’d take my random notes and present them as a primer. You don’t need to be a Rocket Scientist to get started, but having a basic understanding of Linear Algebra will be helpful. As this isn’t focused purely on Azure Machine Learning (AML), and there are good tutorials on getting started there, this isn’t a step-by-step guide for AML Studio.

The first thing to understand is that there are two main types of machine learning model: (more…)

Could Skype be the one communications client to rule them all?

June 23, 2014

Google has Google Voice (soon to be part of Hangouts, expanding their footprint for the ailing – or morphing – Google+ by forcing users to switch), Facebook has their Messenger client, there’s Viber and Line in the Voice space and WhatsApp and SnapChat delivering text and image messaging. The iPhone has Visual Voicemail and iMessage. Where is Microsoft fit in all of this? (more…)

Mobile Browsers getting better

December 14, 2011

After struggling for years with sub-par browsers on small screen devices Apple did a good job raising the bar with Safari on the iPhone and now iPad. Google for some reason stumbled a little out of the gate with the browser on Android – rather than take their existing and proven Chrome they delivered an older and less capable core and it looks like only now with the 4.x generation devices that they’re finally starting to improve things (though that doesn’t help the 80-90% of their existing user base who will never get an upgrade to the latest goodness)

With the initial release of Windows Phone 7 it seemed like Microsoft had fallen into the trap of not treating mobile browsing as a first class experience and they shipped an IE7-like browser. That changed however with the release of v7.5 “Mango” which brought the full capabilities of IE9 (arguably the most standard adherent HTML5 browser) to the platform.

With people paying more attention to the mobile browser evolution and digging into capabilities (such as this review from Sencha) and arguing that the mobile web is not going away any time soon it would be great to see how the "Mango" with IE9 stacks up in these tests against the other two… Would be great to see Sencha or similar run their tests against all three? So far playing around with IE9 in Mango, it seems to do a really good job in most situations but I’ve not drilled down to quite the level of detail that they have yet.

Azure Dynamic Compression

April 9, 2011

On a normal Windows IIS installation it’s pretty easy to turn on dynamic compression for WFC and other served content to reduce the amount of bandwidth you need to consume (important when you are charged by the byte) – you just change the server properties to enable dynamic as well as the more common static compression.

With Windows Azure though it’s a little more interesting because with roles dynamically assigned and started from a standard instance you don’t have much control … unless you’re used to doing everything from the command line …

Luckily one of the nice things that you can do with an Azure role is script actions to take place as part of the initialization. The process is as simple as adding the commands you need to execute to a batch script that gets deployed as part of your project and calling it at the relevant time.

The first thing you script needs to do is to turn dynamic compression on for the server in that role:

·         “%SystemDrive%WindowsSystem32inetsrvappcmd.exe” set config -section:urlCompression /doDynamicCompression:true /commit:apphost

You then want to set the minimum size for files to be compressed (in bytes)

·         “%SystemDrive%WindowsSystem32inetsrvappcmd.exe” set config -section:system.webServer/httpCompression -minFileSizeForComp:50 /commit:apphost

Finally your script should specify the MIME types that you want to enable compression for

·         “%SystemDrive%WindowsSystem32inetsrvappcmd.exe” set config /section:httpCompression /+dynamicTypes.[mimeType=’application/xml’,enabled=’true’] /commit:apphost

·         “%SystemDrive%WindowsSystem32inetsrvappcmd.exe” set config /section:httpCompression /+dynamicTypes.[mimeType=’application/atom+xml’,enabled=’true’] /commit:apphost

·         “%SystemDrive%WindowsSystem32inetsrvappcmd.exe” set config /section:httpCompression /+dynamicTypes.[mimeType=’application/json’,enabled=’true’] /commit:apphost

If you have a problem with MIME types like atom+xml not registering properly you may need to escape the plus sign and replace the string with ‘atom%u002bxml’ – I’ve had success with both methods

You can add as many MIME types as you need to the list, and remember that sometimes you also need to specify the characterset you are using

·         “%SystemDrive%WindowsSystem32inetsrvappcmd.exe” set config /section:httpCompression /+dynamicTypes.[mimeType=’application/xml;charset=utf-8′,enabled=’true’] /commit:apphost

And then when you’re done exit the script to tidy up gracefully

·         exit /b 0

Once you have combined those steps together in a script and saved it as (eg) EnableDynamicCompression.cmd you should add the script to your Visual Studio project and make sure you select “Copy Always” in the properties for the file to ensure it gets correctly deployed.

Finally you need to add a reference to that startup script in your project’s ServiceDefinition.csdef file and then deploy your project as normal.

        <Task commandLine=”EnableDynamicCompression.cmd” executionContext=”elevated” taskType=”simple”></Task>

Finally… how do you know if it’s working or not? The thing that tricks people a lot of the time and makes them think it’s broken is that if they are behind a corporate proxy server that often un-compresses the data for you on the way past. You can check yourself using a tool like Fiddler to examine the response and make sure it has been gzipped or you can visit and test that way (the latter is good if you are behind a proxy which interferes with the compression).

More toys for my MCE

January 9, 2006

My Media Centre (Windows XP MCE edition) has been ticking along quite nicely for the last couple of months…. in fact so well that there are only a couple of issues… too many remotes and not enough space to store stuff.To solve the problem with the remotes I’ve got a Logitech Harmony 880 – it’s a very clever bit of hardware able to do a lot more than your average ‘learning’ remote… for

More toys for my MCE

January 9, 2006

My Media Centre (Windows XP MCE edition) has been ticking along quite nicely for the last couple of months…. in fact so well that there are only a couple of issues… too many remotes and not enough space to store stuff.

To solve the problem with the remotes I’ve got a Logitech Harmony 880 – it’s a very clever bit of hardware able to do a lot more than your average ‘learning’ remote… for instance, press one button to watch TV and it turns on the TV, Media Centre and AMP, sets the right channel on the TV and gets MCE to the right screen. Watching a recorded show or turning it all off again is just as easy. Initially the only real hiccup with setting up the remote was that the amp wasn’t recognised (so a few extra seconds of learning) and the TV doesn’t start up as quickly as the remote would like (so needed to tweak some settings to give it some more time)

The other new toy was storage… a pair of 7200rpm 300GB Maxtor 6L300SO SATA drives configured as a single Windows XP Dynamic drive – should keep the family happy for a short while at least 😉

There is only one little niggle remaining… not enough tuners (why do the networks deliberatly overlap the good shows?!)