Short takes: Grabbing streaming video; and installing troublesome Chrome apps

This content is 10 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

A few more snippets from my recent brushes with technology…

Grabbing a local copy of a Windows Media stream

I found myself watching a streaming video that I thought would be nice to take a copy of for posterity and it turns out it’s rather easy to grab a local copy of a Windows Media (WMV) stream using my old friend, wget.exe.

Simply download one of the many Windows-compiled versions of wget.exe, and supply the HTTP link as the source… a few minutes later you should have a copy of the file on your local hard disk.

Installing NPAPI plugins on Windows 8

I also needed to install BitTorrent Surf in Chrome on my Windows 8 machine (using BitTorrent is not illegal – using it to download copyrighted materials would be very naughty though).  Unfortunately the Chrome Web Store told me to get lost as BitTorrent Surf uses the Netscape Plugin Application Programming Interface (NPAPI), which is deprecated.  Thankfully, there is a workaround, as described by John Bruer and you can run Chrome in Windows 7 compatibility mode to install the app with no intervention at all (although I used John’s blog post, I later found the same advice directly from BitTorrent).

Geeking out at Microsoft Research

This content is 10 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

A couple of weeks ago, I was invited to join the Microsoft Technical Community Council (MTCC), which is described as “a group of external IT professionals influential in the IT Pro world, who are engaged and interested in sharing their opinions and meet once a month via a Lync call”.  Basically, the Council is an opportunity for Microsoft to gain feedback from IT Pros with real-world experience of implementing Microsoft technologies and for those involved to understand a little more about the road ahead.

After some frantic NDA-signing, I was privileged to join the MTCC for a face-to-face meeting yesterday at Microsoft Research in Cambridge.  Last time I visited Microsoft Research, they were on a different site, on the outskirts of the city, and some of the stuff I heard about, quite frankly, blew my mind.  I was under NDA than (as an MVP) and under NDA again yesterday, so still can’t talk about what was discussed but the Microsoft Research website showcases some of the projects that have made it from the labs into the real world and describes the current areas of research.

We didn’t just learn about Microsoft’s Research operations though – there were other sessions – and the day also gave me a chance for me to meet with some of the people I’ve known for years but sort of lost touch with whilst my work was focused less on Microsoft and more on IT strategy – as well as to connect some faces to names – either from Twitter or, in once case, from my customers!

We also had rather a lot of fun, geeking out with Microsoft .NET Gadgeteer – a former Microsoft Research project described as:

“A rapid prototyping platform for small electronic gadgets and embedded hardware devices. It combines the advantages of object-oriented programming, solderless assembly of electronics using a kit of hardware modules, and quick physical enclosure fabrication using computer-aided design.”

Paul Foster (@PaulFo), whose antics I’ve written about before (on a home-made Surface table, among other things – and on PhotoSynth and Community Games) led us through an exercise more commonly carried out with school children, using Visual Studio with Visual C# Express and .NET Gadgeteer.  Using modular kits we were soon building simple digital cameras, before going on to add LED indicators, current sensors, motion detection, etc. – with a drag and drop design surface and a few lines of C#.  Even though I left it to the guys from Content and Code to crack out the code (I’ll do the infrastructure piece and plug things together!), I would confidently say that even I could have written the code that was required and it’s a very accessible way to get children doing something real with electronics.

Sadly, whilst the software is free, the hardware is a little on the pricey side, with an FEZ Spider starter kit coming in at around £200 (which is almost Lego Mindstorms EV3 money).  Compared with an Arduino and some raw electronics components, that’s quite a lot more money but it should be said that the graphical design surface provided in the Visual Studio IDE is easier to use and the modular electronic components do make the Gadgeteer-compatible kit easier to work with.  So, on balance, where the Arduino is great for “makers”, the Gadgeteer-compatible kit is probably a better solution for teaching kids the basics of controlling components with code.

Either way, it’s a lot of fun – and inspired me to start playing with electronics again… maybe I’ll even let my kids have a go…

Messing around with maps

This content is 10 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

Over the last few weeks, I’ve found myself making quite a few conversions of maps between different formats, for different uses (mostly cycling-related).  The things I’ve found might, or might not, be useful to others… so I’m writing them down anyway!

Firstly, I wanted to see what the profile of a route was like. I had a GPX file for the route and used the excellent GPS Visualizer site to create an elevation profile.  And then quickly decided it had far too many bumps!

Next up, one of my fellow riders wanted to be able to view the route in Google Maps (not Google Earth).  This wasn’t quite as straightforward but, again GPS Visualizer comes to the rescue. Using that site, it’s possible to convert to a KML file that Google Maps can work with.  Unfortunately, the “new” Google Maps doesn’t have an import option so you need to switch back to the “classic” Google Maps (it might be enough to use this version of the URI: https://www.google.com/maps?output=classic), after which you can use the Google Maps Engine to create a map (like this one, which was stage 1 of my recent London to Paris ride):

Finally, I bought a Garmin Edge 810 (cycle computer).  After months of saying “I don’t need a Garmin, I have Strava on my iPhone”), I gave in.  And I’ve been pretty glad of it too – already it’s been great to monitor my stats as I climbed Holme Moss last week (does 98% maximum heart rate mean I’m 2% off a heart attack? </joke>) and last weekend I decided I was 20-odd miles from home and bored of my ride, so the sat-nav could show me the best way back to my starting point (even if it did mean cycling along some trunk routes…). Added to that, Mrs W has been glad to track my rides using the Garmin 810’s Live Tracking (although it didn’t work last time I was out…).

The Garmin comes with “base maps” but these are really just the main roads.  As they’re probably not the ones you want to use for cycling, it’s handy to load on some more detail. Ordnance Survey 1:50K maps (GB Discoverer) may be great (the 3D view in particular) but at a penny shy of £200 I wasn’t prepared to pay that much, with Open Street Maps available for free.  ScarletFire Cycling has made a video with an interesting comparison of the OSM and OS map options:

Downloading the Open Street Maps to a Garmin Edge 705/800/810 is brilliantly described by DC Rainmaker and Forgot has a write-up for getting turn-by-turn navigation working on the Edge 800, as does ScarletFire.  It can take a couple of days for the maps to be generated though and I did find a direct download link with maps that had been generated fairly recently (July 2013), so I used that.

Using the Lync 2013 client with an OCS server

This content is 10 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

I have to admit that this one is not something I found myself: one of my team alerted me to the fact that I could use the Lync client against an Office Communications Server (OCS) 2007 back-end with a few configuration changes and it’s been very handy. It’s not always smooth, but it does the job and might be useful for others:

First step is to make the following registry change:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Office\15.0\Lync]
"DisableServerCheck"=dword:00000001

Then, in the advanced connection settings, set the OCS pool manually.  The value there will depend on your organisation’s infrastructure.

Finally gave in and bought a Garmin

This content is 10 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

Many of my cycling buddies tell me how great their Garmins are and I just didn’t “get it” but, after having to neuter my iPhone to get through a day’s riding, I decided that it was time to take the plunge.  Actually, there were a few reasons…

Increasingly, I live by the stats.  If it’s not on Strava, it didn’t happen. And I want to work on my cadence and on training in particular heart rate zones.  I can use a dongle to get ANT+ connectivity on an iPhone, but I decided to buy a dedicated cycle computer instead.

Secondly, my wife worries when I’m out and about on my bike.  Some of the recent Garmin cycle computers have a connected features like live tracking, using a Bluetooth-connected phone with the Garmin Connect app (iOS or Android, not Windows) and, after watching this video (yes, I’m a sucker for marketing), I thought that it might be just the thing to give her the peace of mind from knowing where I am (Find my iPhone was just a little too much of a pain with a complex password set on my Apple account):

There are some good deals around on the Garmin Edge 800 at the moment but that doesn’t have the connected features found in the 510, 810, and the new 1000.

Finally, I decided that, as my distances increase, riding in unfamiliar places means a map can be useful.  Whereas in the car I have a £9.99 map-book and a good sense of direction, the time had come to get myself a sat-nav for the bike.

Short takes: hosts files; C#; Azure VMs; sleuthing around Exchange; closing Windows 8 apps; and managing tabs in Google Chrome

This content is 10 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

Another dump of my open browser tabs to the web…

Unable to edit hosts file in Windows

One of the tools (read Excel and lots of macros) that I use for financial forecasting said it couldn’t find a server.  Of course the network’s never broken – it must be the end users’s fault – so, faced with the prospect of telling an angry admin that there is a DNS mis-configuration, I decided to hack my hosts file instead…

Windows doesn’t make that easy (even as a local administrator) – so I ran Notepad as Administrator instead… being an old skool kind of command line guy it was an elevated cmd prompt  from Start, cmd, then shift and click (which dumps me into C:\Windows\System32), followed by the cd drivers/etc and notepad hosts commands.

What versions of C# are out there?

One thing I wanted to know whilst teaching myself to write in C# a few months back (i.e. to select a course that was up-to-date!) was which versions of C# are out there. Of course, Stack Overflow has the answer.

And, one day, I really must have a play with CShell, the open source C# read-eval-print-loop (REPL) IDE

What Microsoft server software is supported in an Azure VM?

Ever wondered what can be run up (and supported) in a Microsoft Azure VM? Quite a lot, but also some big omissions (Exchange, obviously) and some caveats (like no DHCP).  The formal list is in Microsoft knowledge base article 2721672.

Finding the Exchange Server that actually hosts my email

Exchange AutoDiscover means that, most of the time, end users don’t need to know where their email is – just the single address that lets the email client find the server – but several times recently I’ve found myself needing to know which server hosts my email.  One time I was diagnosing intermittent issues with out of office replies and access to colleagues’ calendars.  Another time I wanted to use PowerShell to list members of a distribution group programmatically (and later to rename a distribution group after the IT department said it wasn’t possible). Unfortunately, I didn’t have access to run PowerShell commands against our servers (but that’s probably a good thing)!

Anyway, it seems that the details I needed were available via Outlook Web Access:

  1. Logon to OWA
  2. Click options
  3. Click About
  4. And find the line that reads “Client access server name” – that’s your connection point.  There’s also a line for “Mailbox server name”.

I tested this with Exchange 2007.  It may vary for other releases and I haven’t checked.

By the way, a couple of links that looked hopeful for my distribution group issues (the ones I had to find another way to resolve):

Closing applications in Windows 8

Our family PC runs Windows 8.1 but, as my work PC runs Windows 7, I have to admit sometimes there are things I haven’t got used to.  One of those is closing full-screen apps.  I usually resort to Alt-F4 but if the kids have left the computer in touch format, then it seems that a simple top to bottom drag is what I need (there should also be a close button if I touch the top of the screen).

Managing tabs in Google Chrome

As I go through my work, I often come across things I’d like to go back to later, or leave side projects part-done, blog posts half-researched (and half-written), etc. Over time, they build up to hundreds of tabs and I my bookmarks folder is a plethora of In Progress yyyymmdd folders (another job to sort out one day).  It also means that, every now and again, my PC slows right down and I need to reboot because Google Chrome is using 14 gazillion GBs of RAM and a Flash plugin (probably serving ads on a website) has gone haywire again. Add Symantec EndPoint Prevention and BeCrypt DiskPrevent into the mix and a reboot could be a half-hour inconvenience.

Last night, I spent hours working through the various open tabs, closing some, pasting some to blog posts (this one… and others still work in progress) and I happened to post a little tweetette, to which Garry Martin (@GarryMartin) happened to respond:

Awesome indeed. Less than 5 seconds to install and the remaining handful of tabs are now under control.

Consumer banking security: two (or three) tales of farce

This content is 10 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

I’ve written before about the nonsensical nature of UK banking websites, with security theatre that’s supposed to make us feel that a sequence of restrictive usernames, passwords, passcodes and memorable words (all passwords of one form or another) linked with publicly available information (date and place of birth, etc.) is somehow keeping us safe.

Unfortunately, that farce looks set to continue for some time to come…

Second factor authentication

Recently, my bank (First Direct) went a step further in an attempt to introduce a second factor to its logon process (i.e. something I have, in addition to something I know).

“Bravo”, I thought, “at last, similar security measures for consumer banking, to those that are used on the back-end by employees”… except I was wrong.  At least, I hope I was.

First Direct gave me three options:

  1. Send me a device to generate a secure key.
  2. Use an app to generate a digital secure code.
  3. Continue using the old methods for Internet Banking logon, with reduced functionality.

On the basis that any device sent to me is unlikely to be where I am when I need it, I elected for the app option and, after upgrading the First Direct app on my phone, I went through a registration process.  I don’t recall the details of the process but the end result is that I now have a “Digital Secure Key password” (oh goody, another password!) in the mobile banking app, that can be used to generate a code to log on to the full website via my browser.

And how complex is this “Digital Secure Key”? Just 6-9 alphanumeric characters – no better than a very simple password – and as that’s now the only level of security between a mobile phone thief and my bank account (aside from a PIN on the phone), the app on my phone actually less secure than it was previously with the username/memorable data combination!

Still, at least there is some kind of second factor for website access…

Never write down your PIN (except when the bank does that for you…)

We all know that we shouldn’t write down the PIN for our cards, yes?

Ever.

It’s in the terms and conditions for your account – and if the bank suspects you have compromised security in this way they are unlikely to be able to help if there is fraud.

I have a Hilton Hhonors Visa card, provided by Barclaycard and, a few weeks ago, they sent me a new card as part of the rollout for Visa payWave (contactless) functionality.  The card had a sticker attached, telling me to use it from 23 June – and in the meantime I could use my old card. Separately, they sent a new PIN (quite why my new card couldn’t use my old PIN is beyond me) and, as soon as I received it, I went to an ATM to change the PIN to one I would remember.  Except I couldn’t – because the card wouldn’t work until 23 June!  I even tried using a Barclays ATM.

In the end, I had to keep the card and the PIN in my house for a few weeks until they were both valid.  Doesn’t seem very secure to me… and I wonder who would be liable if the card and the letter had both been stolen in the meantime?

And don’t get me started about 3-D secure

Verified By Visa.  Mastercard SecureCode. Just another password to remember – and as far as I can tell just a way for the banks to pass fraud risk on to merchants!

Improving iPhone battery life for use as a cycle computer

This content is 10 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

One of the uses for my iPhone is as a cycle computer.  I don’t have a Garmin (many people who do tell me that the Garmin Connect website is a pain) and I prefer to log my rides on Strava, with the iPhone in a Topeak Ride Case.  The downside of this is that the iPhone will sometimes run out of juice on a long ride.

For that reason, on my recent London to Paris cycle ride, I needed to do everything possible to boost the battery life.  Here’s a few of the things I did – and they seemed to get me through the day:

  1. Turn (almost) everything off. 3G. Wi-Fi. Bluetooth. Roaming data (especially on the continent).  Some people say to use flight mode and, whilst that may work on some operating systems, on iOS it will also turn off the GPS, which would make the iPhone a pretty useless cycle computer!
  2. Buy a battery booster. £4.95 on eBay got me a little battery booster that will give something between a third and half a charge to my phone.  Using that at lunch, or on the afternoon break, gave a little extra power to keep the phone alive for a few hours.
  3. Try to avoid the temptation to constantly look at the screen and mionitor your stats.  The screen is the big power drain and I even wore a watch on this trip so I wasn’t tempted to look at the phone for the time!

Content, typography and geeky stuff (#MKGN)

This content is 10 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

As another Milton Keynes Geek Night approaches, I’ve realised what a terrible blogger I’ve been lately… heck, maybe I don’t even qualify as a geek any more! I thought I’d try and make amends with these notes from the last event – which was, as always, an enjoyable evening with a real mix of speakers providing plenty of food for thought.  If these little tasters leave you wanting more, check out the audio on Soundcloud:

Future Perfect Tense

The first talk was from Relly Annette-Baker (@RellyAB) – bursting with energy as she blasted through her talk on “Future Perfect Tense” – or creating content for in imperfect web. The talk is worth another listen but, effectively, Relly spoke of the separation of content and design so that websites can evolve as technology moves on.

Taking a physical world example, every piece of Lego is built to combine with every piece of past and future Lego, whereas Playmobil have hard-cast mounds.

On the web, our content needs to be structured chunks that build packages (screen sizes, needs, requirements, points). Once we understand what the content is, it can be put in the CMS, and we need to understand how people are using that content.

Additionally, we shouldn’t fork content – pragmatically there are times when we may need a separate mobile site but that’s short term – long term we need to cope with a plethora of devices (from a 1″ watch to a 50″ smart TV – we can’t have a new site for each one). We need to have a plan to move content to new sites.

Netflix is on 100s of devices but only has 3 content formats – short, medium and long.  And, as for the next big thing – Google “iPhone will fail” to see how, in 2006/2007, people were seeing an expensive smartphone, not a cheap portable computer.

None of us know the next cool thing but we don’t need to. Build teams, tools and content that adapt whatever the conduit. Create chunks that can move around and be repurposed. The rest will look after itself…

Knowing you know nothing

Knowing you know nothing was a short talk from James Bavington (@JamesBavington) who started out with a quote, from Socrates no less:

“The only true wisdom is knowing you know nothing” [Socrates]

Or, to paraphrase:

“You’re stupid if you think you know everything” [James Bavington]

There are many, many tools available to help us in creating websites (thankfully we don’t have to know them all) but web design concepts can be limited by our technical knowledge and ability:

James used an analogy about how he started investigating the Google Maps API to push his skillset and improve the user experience in a site he was creating.  This led him to a side project using the Google Maps API and experimenting with many features.

James takes the view that expanding your technical awareness (not necessarily ability) gives your creativity more to play with.  As someone who struggles with seeing loads of interesting “stuff” that I rarely investigate as fully as I’d like, I may try James’ advice for expanding my knowledge:

  1. Little and often.
  2. Set project challenges.
  3. Have a side project.
  4. Know that I know nothing.

Distributing the future more evenly, with JavaScript

Jeremy Taylor (@jdt_me) was next up – talking about distributing the future more evenly, with JavaScript.  The gist of Jeremy’s talk was that we’re not using the “slab of glass in our pocket” (i.e. smartphone) properly and that, instead of collaborating and solving the grand challenges of our age, corporations are in battle.

Many socially-ethical businesses will use “free” services that rely on ads – it’s just not healthy, Jeremy believes.

Browser is no longer a document browser but is effectively a hypervisor with each tab running in its own sandbox, and WebRTC peer connections to connect them, making the entire web a giant playground.

Citing the examples of Browserify (introduction) leading to WebTorrent, Jeremy suggests that we need simpler tools to create distributed systems and that JavaScript provides new ways to integrate and collaborate.

Sass: a whistle stop tour

Stuart Robson (@StuRobson) gave another 5 minute talk – about a CSS extension language called Sass (Syntactically Awesome Style Sheets).  Stu’s slides are on SpeakerDeck and he describes the talk as “a quick blast through what makes Sass an awesome extension of CSS that you should use no matter how marginally”.  It certainly looks useful to me – with variables, nesting, code snippets and more…

One minute talks

Then, there were the one minute talks with the usual bunch of recruitment pitches, conference plugs, and two that made me sit up and listen:

  • A new TechHub co-working space coming to Milton Keynes (although I can’t find any details on the web).
  • Fibe (sp?) are a young startup of school kids who understand they can only do so much (having said that, the speaker was really confident and came across really well). They are looking for an HTML hermit, a JavaScript genius or a database [demon] to work with and help them…

Take your stinking paws off my design you damn dirty developers

Finally, Andrew Clarke (@Malarkey) gave a provocatively-titled but fascinating talk that is intended to help developers udnerstand design issues.  Andrew’s talk normally takes an hour, so he cut it down to just typography (the full set of slides is on SpeakerDeck) and I could have listened for hours. whoever thought that the finer details of lettering could be so interesting?

I learned how it’s important to understand the size of type to be fused and how the measure (the width of the body of type) can be controlled for comfortable reading by reducing column widths or increasing font sizing (2-3 alphabets, i.e. 56-78 characters is ideal). I learned how adjustments to the measure need to be accompanied by changes to line hight and how different styles should be used for reversed out content to improve readability. I learned that the tracking (word-spacing in CSS) can be used to improve readability and that san serif typefaces need looser line heights.

Then there’s the area of typographically-correct glyphs:

  • Hyphens break words over multiple lines, or join-words.
  • En dashes are longer and denote a range (equivalent to the work “to”), for example 1–10 or Earth–Mars.
  • An em dash is even longer — for a pause — or a separate train of thought in the same sentence. Either use no space or a hair space. And two adjacent em dashes can indicate a missing letter in a w——rd.
  • Single and double primes should be used for feet and inches or minutes and seconds. Never for quotations!
  • Quotations use curly quotes: “ ” or ‘ ’.
  • And an ellipsis is not just 3 dots — it’s one entity… which marks a continuation.

[Related reading: 10 HTML entity crimes you really shouldn’t commit]

Moving on, Andrew spoke of markers and margins in lists, and of using CSS relative positioning to place © close to the baseline – and adjusting parentheses too!

In summary: designers and developers need a better understanding of each other’s work. They need to know how to work together!

When’s the next one?

If you think this sounds good, follow @MKGeekNight or check out the MK Geek Night website – MKGN number 9 is coming up on 12 June 2014 and speakers are:

  • Rachel Andrew (@RachelAndrew): Your own definition of success – choosing a profitable side project idea.
  • Dan Donald (@hereinthehive): Designing evolution.
  • Robert Bavington (@RobertBavington): Responsive Web Design Today.
  • Ben MacGowan (@BenMacGowan): The era of gratuitous animations.
  • Mark McCulloch (@wearespectaculr): Are you speaking Scottish in Tokyo?

There’s usually free beer and pizza too… so what’s not to like! 

Code dojo for test-driven development

This content is 10 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

Every now and again, I think it would be great to do some coding, to give up this infrastructure stuff (or at least to give up the management stuff) and solve problems programmatically for a living.  Unfortunately, I also have a mortgage to pay, and certain expectations on living standards, so rewinding my career 20 years and starting again is probably not an option right now…

Even so, I took a C# course on PluralSight and, last month, I attended the Code Dojo that my colleague Steve Morgan (@smorgo) was running for some of the developers in Fujitsu’s UK Microsoft Practice.

Dojo is a Japanese word that means “a place of the way” with various explanations including a place where a group of people stay to discipline themselves.  So, it follows that a Code Dojo is a place where a group of software developers come together to be enlightened.

Our Code Dojo focused on a Kata, which is another Japanese term that literally means “form” – i.e. describing patterns of movements practiced solo or in pairs.  In this case, the pattern that we followed was one of Test Driven Development (TDD).  We used TDD to implement a software solution to a given set of requirements but, like all projects, the requirements start off incomplete and there are new requirements received at each stage of the project.

We each took it in turns to write code (even me), with the rest of the group observing and offering help where necessary.  The principle of TDD was used to write unit tests that are machine-executable expressions of requirements.

First, we wrote a test for a single requirement and then attempt to run it.  It should fail because the requirement isn’t implemented so we wrote just enough code to satisfy the requirement (and no more).  The next step is to run all tests and, if any fail, fix the failing tests or the implementation until everything works.  Finally, we refactored the code to make it more maintainable and supportable.

Very quickly, we had grasped the TDD mantra of “red, green, refactor” – i.e. at least one test fails, fix the code to pass the tests, then improve the code but tests must still pass.

The event was over all too quickly, and we ran out of time, but it was certainly worthwhile – and a great education for me.  we used C# and Visual Studio but really you could use any language to apply the principles and I really should give it another go at home.

Steve’s next Code Dojo is today but I can’t be there as I’ll be cycling to Paris as you read this (and, even if I wasn’t, I’d need to be at a management meeting!). Hopefully there will be more soon and I can continue my education…