Monday, 21 December 2015

Open Live Writer

I’ve been a fan of using Microsoft’s Windows Live Writer to compose blog posts for quite a few years now, so when it stopped working earlier this year due to Google changing the authentication requirements for Blogger, I was a bit disappointed. The good news was that Microsoft contacted Google and (for once) they extended Live Writer a lifeline to allow it to continue to use the old API until alternate arrangements could be made.

All was good just over a week ago, when a) Microsoft released an open source version of Live Writer – named Open Live Writer, and b) Google finally did switch off the old authentication API. Unfortunately the first new release of Open Live Writer didn’t have a working implementation of Google’s new authentication API, so there was a few days of inconvenience whilst that was finished off. Version 0.5.1.2 came out last Friday and I’m pleased to find that it does work again with Blogger!

The source code is on Github at https://github.com/OpenLiveWriter/OpenLiveWriter, and there’s already an active community contributing bug reports and pull requests.

It’s great to see such a useful application given a new lease on life (or should that be ‘new lease on live’ Smile )

Wednesday, 9 December 2015

Windows 10 Mobile on Lumia 920

(I wrote this post on 10th December, but was waiting for Open Live Writer to support Blogger)

So this happened.. Last week I reset my phone so that Narelle could use it for a day (hers had broken the previous day). Once I replaced hers and got my handset back, I reset it again and started re-installing all my apps. Windows Phone may not be the most popular phones around, but one of the nice things about them is that they do automatic backups, and by default save all your contacts to the cloud, so there isn’t much you can accidentally lose.

So after reinstalling everything I thought “hmm.. Maybe I should try out the Windows 10 update”. I’d resisted this urge previously as I’d read lots of reports of how unstable it was, but now the new 950/950XL handsets are out which come with Windows 10, and there’s just been an additional update since then too. Worst case I can use the support tool to reset my phone back to Windows Phone 8.1 again.

Phone Update screen installing Windows Phone 10Phone Update screen, install 10.0.10586.29

The install took a little while (maybe an hour?).

I did notice the battery seemed to run down a bit on the first day – admittedly that day included the update which would have used a bit of juice.

Windows Phone 10, Battery Status showing 23% left

The trouble is it’s hard to know if that is just Windows 10, or my handset – I’ve seen it occasionally do similar things with 8.1.

Windows 10 Mobile looks quite nice. The upgrade kept my icons on the start screen, though the layout needed tweaking as the size of the icons seemed to have changed slightly.

Windows Phone 10 Start Screen

Some of the apps are updated (eg. News, Mail, Calendar). Actually I think I prefer the 8.1 News app, but the new one is ok. I have two mail accounts on my phone, and they ended up being combined. Not sure if there’s a way to un-combine them.

Some pluses – they finally have an Australian keyboard option (Aussie! Aussie! Aussie! Oi! Oi! Oi!). The browser is also the latest Edge version.

Some minuses – possibly due to my older handset – I find the response time for various things quite slow. Even just turning the phone on and unlocking has a noticeable delay. The opposite is true of scrolling. It seems a bit too sensitive, and I often end up scrolling way further than I intended.

I’m going to stick with it for a little while and see how I go. If the battery does prove to be a problem then reverting back to 8.1 might be the best option.

Tuesday, 1 December 2015

Getting CA2213 warnings after installing Visual Studio 2015 Update 1

I installed Update 1 for Visual Studio 2015 this morning and then upon reopening an existing solution I noticed some new warnings/errors listed in the Error List panel:

Visual Studio Error List window showing CA2213 warning

The problem was that warning didn’t appear before the update, and inspecting the code revealed that in fact that class did implement IDisposable and did dispose the field in question. What’s going on here – surely this isn’t a bug in Update 1?

That was my original thought, but then I remembered that this project references the Microsoft.CodeAnalysis.FxCopAnalyzers Code Analyzer NuGet package. I wonder if that package needs an update?

Let’s fire up the NuGet Package Manager and make use of the new ‘Updates’ tab to find out..

NuGet Package Manager, showing 4 packages with updates

Yes, there are! A quick check of the Select all packages checkbox and click on the Update button, and tada – no more warnings Smile

Friday, 27 November 2015

Batch converting .wav to .mp3

The band I play in (Sevenfold) uses Dropbox to share recordings and song words between band members. We ended up maxing out Dropbox’s free level, so I needed to consolidate some of the files. I found a bunch of .wav files that would save a bit of space if they were converted down to .mp3.

Step 1. Install ffmpeg

FFmpeg is a cross-platform tool for manipulating MPEG audio and video files. I’d previously installed it as part of supporting MP3 with Audacity by installing FFmpeg v2.2.2. If you don’t use Audacity then you could probably install the latest version instead.

Step 2. Use PowerShell

PowerShell is a nice choice to enumerate through the .wav files. It also lets me reset the file LastWriteTime (Modified) so the new files look similar to the old ones.


$files = Get-ChildItem *.wav
foreach ($f in $files) {     
& "C:\Program Files (x86)\FFmpeg for Audacity\ffmpeg.exe" -i $f.FullName -id3v2_version 3 -write_id3v1 1 C:\Users\David\Music\Sevenfold\$($f.BaseName).mp3 -y    
$destFile = Get-Item C:\Users\David\Music\Sevenfold\$($f.BaseName).mp3    
$destFile.LastWriteTimeUtc = $f.LastWriteTimeUtc }

Jon Hall has some good info about transferring the metadata as part of the conversion process (and making the metadata compatible with Windows file properties).

Thursday, 19 November 2015

Connect(); // 2015 Summary

Microsoft have just held their second Connect(); virtual event with quite a few product announcements. If you didn’t get up in the middle of the night to watch it live, you can see all the videos from the event on Channel 9. Here’s my personal highlights:

Visual Studio Code open sourced and extensible

VS Code has now reached ‘beta’, which includes support for extensions. VS Code is now being developed in a public repo on GitHub.

ASP.NET 5 RC1

The rewrite of ASP.NET build to run on .NET Core is getting closer to final release. Some nice new tooling additions (Bower support), and early support for “.NET Platform Standard” as a way of indicating binary compatibility between packages.

Entity Framework 7 RC1

The rewrite of Entity Framework that runs on .NET Core (as well as full .NET Framework etc). Consider using it only if you don’t need features that it doesn’t have (kind of obvious advice really!)

Glimpse v2 Beta1

The re-architected version of the ASP.NET diagnostics dashboard that (for the moment) runs only on ASP.NET 5. If you’re (like most people) still using earlier versions of ASP.NET then stick with Glimpse v1 for now.

Visual Studio Dev Essentials

A one-stop shop to get free access to training, tooling and access to services.

Visual Studio 2015 Update 1

Due out on November 30th (so no link yet)

Windows Server 2016

Pretty sure this wasn’t a Connect() announcement but is just as interesting. Windows Server 2016 Technical Preview 4 is now available, which includes support for Hyper-V Containers (a more isolated container technology than the lighter-weight Windows Server Containers that were introduced in preview 3).

North America Trip–SEA to ADL

WP_20151106_022_thumbFriday was another chance to do some final sight-seeing back in down-town Seattle. I went on the Seattle Underground Tour, which was fantastic. A hilarious and entertaining tour guide made for a very enjoyable and educational history tour of the beginnings of the town of Seattle.

WP_20151106_042_thumbI also managed to get back for another look at the Pike Place Markets, which I’d briefly seen the previous Sunday, though Friday’s weather was an improvement. It was nice to look around and having something yummy for lunch whilst the sun poked through the clouds.

On the recommendation of Scott Hanselman I saw (but tried to avoid smelling!) the ‘great wall of gum’. Good timing, as a week later they started cleaning it all off for the first time in 20 years.

Then off to the airport for my flight down to San Francisco. The train from downtown Seattle to the airport only cost $US3 – what a bargain!

I was a bit concerned about the relatively short time to make my connecting flight to Sydney, but I need not have worried. San Francisco airport is relatively small (possibly similar size to Adelaide), so it was literally a 5 minute walk from gate to gate. What a relief – and much less stressful than going through Los Angeles again.

WP_20151106_068_thumb

The flight back to Sydney went well (there’s something about flying overnight that makes it easier to go to sleep, or maybe I was just exhausted after a full on fortnight!)

WP_20151107_003_thumbLanding in Sydney early Sunday morning I managed to get on an earlier flight back to Adelaide than I’d originally booked. It was so great to get home and see my family again Smile.

Wednesday, 18 November 2015

Web Essentials 2015 extension keeps being disabled

I noticed recently that Visual Studio 2015 wasn’t loading the Web Essentials extension. Checking in the Extensions and Updates dialog revealed the problem – it was disabled.

Visual Studio Extensions and Updates dialog, showing disabled extension

But I hadn’t disabled it! So I re-enabled it, restarted Visual Studio and got on with my life…. Until I next started Visual Studio and it was disabled again. Grrr.

Next stop, “Captain Google” – which brought me to a closed issue on GitHub. So it isn’t just me, but no reliable solutions to the problem (yet).

What about running Visual Studio with logging? I did this, re-enabled the extension and chose Restart. Looking at the second log file revealed the following interesting lines:

511 ERROR Extension will not be loaded because an extension with the same ID 'Microsoft.Dev14.VsixTemplatesPackage.443cca91-ec20-41e5-a165-f28e56b89650' is already loaded at C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO 14.0\COMMON7\IDE\EXTENSIONS\DSDWKUM5.2Y2\...
          C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO 14.0\COMMON7\IDE\EXTENSIONS\NUGETIFIEDEXTENSIBILITYTEMPLATES\
Extension Manager 2015/11/17 23:55:46.703
512 ERROR Extension will not be loaded because an extension with the same ID 'Microsoft.VisualStudio.TeamFoundation.TeamExplorer.Extensions' is already loaded at C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO 14.0\COMMON7\IDE\EXTENSIONS\H0JHYFM3.2KP\...
          C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO 14.0\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\TEAMFOUNDATION\TEAM EXPLORER\
Extension Manager 2015/11/17 23:55:46.703
513 ERROR Extension will not be loaded because an extension with the same ID '3c61cbb3-7795-4afc-981b-34ea36a333fa' is already loaded at C:\USERS\DAVID\APPDATA\LOCAL\MICROSOFT\VISUALSTUDIO\14.0\EXTENSIONS\YKUJN0FP.3MY\...
          C:\USERS\DAVID\APPDATA\LOCAL\MICROSOFT\VISUALSTUDIO\14.0\EXTENSIONS\OVNEVZLB.FXP\
Extension Manager 2015/11/17 23:55:46.703
514 ERROR Extension will not be loaded because an extension with the same ID '5fb7364d-2e8c-44a4-95eb-2a382e30fec9' is already loaded at C:\USERS\DAVID\APPDATA\LOCAL\MICROSOFT\VISUALSTUDIO\14.0\EXTENSIONS\LG5OBJ45.EKL\...
          C:\USERS\DAVID\APPDATA\LOCAL\MICROSOFT\VISUALSTUDIO\14.0\EXTENSIONS\PMHVMCOV.BWZ\
Extension Manager 2015/11/17 23:55:46.703

Checking the folders above maps to the following extensions:

  1. Visual Studio Extensibility Templates
  2. Team Foundation Team Explorer Extensions
  3. Cloud Explorer for Visual Studio 2015
  4. Web Essentials 2015

The first two are interesting in that they’re both under C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE. A closer look here reveals that in both cases, the second folder is actually a shortcut that points back to the first folder, so there isn’t really a conflict here – just Visual Studio having to process the same exact folder twice.

The 3rd item is interesting in that I hadn’t notice a problem with Cloud Explorer, but that’s probably because I hardly ever use it. But sure enough, checking back in Extensions and Updates showed that it too was disabled.

Ok. So I selected both Cloud Explorer and Web Essentials, chose Uninstall and restarted Visual Studio. And they were still there! (Zombie Extensions?!!). But I can see how this would be. The duplicates did get removed, but this left the other extensions still there.

Extensions and Updates 2

Righto.. Once more with feeling! Select each extension, choose Uninstall and restart Visual Studio.

Check Extensions and Updates again. Hooray – they’re really gone now.

Now re-install both extensions and really get on with life Smile

Tuesday, 17 November 2015

North America Trip - MVP Summit 2015

Microsoft signI arrived in Seattle on Saturday night. I caught a shuttle-bus to my hotel in Bellevue, and not surprising that my fellow bus-travellers were also MVPs. One of those turned out to be Glenn Henriksen who was the first of many MVPs to make me feel welcome and included in my first Summit. (More about Glenn later!)
View of Seattle Space Needle tower from baseSunday morning I took the opportunity to travel by bus back to downtown Seattle and see some of the sights. It was still a bit cloudy with some rain about, but I gather that’s pretty normal for Seattle. I went up the Space Needle, though the view was limited to to lots of low cloud and a bit of rain.
Microsoft Store at BellevueGetting back to Bellevue later in the afternoon, I registered for the Summit and bumped into a few familiar faces before attending the “1st Time MVP Event” (which was food & drinks with a mix of fellow first-time MVPs along with a bunch of ‘old hands’), followed by an Australia/New Zealand MVP Dinner, where again I was made to feel welcome by even more familiar faces.
In fact the best compliment I received was along the lines of, “Dave, we thought you already were an MVP!”
Monday morning things started in earnest with well-organised buses providing transport from our hotels to Microsoft’s Redmond campus. And ‘campus’ is a good term as it is in many ways like a University campus. Microsoft almost takes up the whole of the suburb of Redmond. I only got to see a tiny part of it, but I was very impressed with what I saw. A beautiful location with impressive buildings, landscaping, gardens and playing fields.
Microsoft Conference Centre at RedmondMost of my time was spent in the Microsoft Conference Centre (yes, they have their own conference centre on campus!). It’s big enough that I reckon they could fit in the entire Australian TechEd/Ignite conference.
You aren’t meant to take photos inside, but I can show a few outside shots I took on an early morning walk around part of the campus.
WP_20151103_007
WP_20151103_009
WP_20151103_016
Because more and more of Microsoft’s ASP.NET development (and .NET in general) is now being done as open-source on Github, many of the sessions I took part in were not under NDA. Look out for recordings of these on MSDN’s Channel 9 soon.
Not surprisingly, the Summit is a bit of a “who’s who” of Microsoft technologies – there were a lot of names I recognised from blogs that I follow, or who I’ve heard on various podcasts over the years. The nice thing is that all the “big names” that I encountered turn out to be just nice friendly regular people who are more than happy to chat and welcome a “New MVP”. I also made a point of inviting everyone to come and visit Australia (and this was made more enticing by reminding them that NDC Sydney is on next year).
Dan Wahlin and Glenn Henriksen holding popcornWednesday night I caught a late session of the movie “The Martian” with a few fellow MVPs, including Glenn. As you can see, Glenn and Dan realised that it was more efficient to get the free popcorn refills before we went into the theatre. Smart thinking!
One of the benefits of attending the summit is direct contact with product teams. Both giving feedback but also being able to pick their brains. Thursday was ‘hackathon day’. I know I was really encouraged from meeting the Glimpse developers Anthony and Nik and getting some feedback on an open source Glimpse plugin I’m working on.
And at the end of Thursday afternoon, that was the end of the summit. A final bus ride back to the hotel at Bellevue for my last night in Seattle.

Sunday, 15 November 2015

North America Trip–YYZ to SEA

So I’ve actually been home for a week, but I’ve only now had a chance to sit down and work on the remaining posts for this series!

Toronto skyline, including CN TowerI had a fantastic time in Toronto. It was great getting to know all the wonderful people who work for RL Solutions there. There’s nothing like sitting down face to face to get to know people better. Well except maybe doing that over a meal – and there was certainly a few of those!

RL Solutions signI did feel the effects of jet-lag kick on on the Monday, so managed to get a little rest in the afternoon before catching up with the Metro Toronto .NET group, where I was the guest speaker. Great to share with them.

View from Toronto shore looking across the lakeToronto is a big city, but quite beautiful too. The weather was cooling – a definite chill in the air, and the leaves were turning to wonderful autumn colours.

NBA Basketball game with Toronto Raptors playing Indiana PacersAnother highlight was going to my first NBA game – a bonus that the Toronto Raptors won their season opener over the Indiana Pacers.

Sunrise view from apartment

My accommodation in Toronto was “down-town”. Right next to the Air Canada Stadium in fact (where the basketball and ice-hockey is played). It was also just a short walk to the office each day. Most days the weather was overcast and cold, though one day it was quite stormy and wet, so I made good use of the Toronto PATH underground and covered walkways


Cakes and slices in bakery display

Friday (being the day before Halloween) was a bit of a crazy day in the office. Everyone dressed up and decorated all the work areas. This culminated in a company lunch and staff meeting. Definitely great timing to be in town to be a part of these.

But eventually my time in Toronto was at an end, and the flight to Seattle began, via a stop-over in Minneapolis. Nice bakery in the airport there by the way Smile

Tuesday, 10 November 2015

Windows 10 and dodgy ATI Mobility Radeon HD 4670 drivers

My old Dell XPS 1645 laptop is still kicking along. Sure, I might have nick-named it “Big Iron” due to the fact that it single-handedly technically put me over the carry-on baggage weight limit on my recent trip overseas, but it does the job, and runs Windows 10 quite well.

Except that earlier this year Microsoft (or AMD/ATI) updated the video drivers (15.200.1060.0 [15/07/2015]) and introduced a bug that causes the maximum resolution to change to 1280x1024, which looks ridiculous. The only solution I’ve found is to revert back to the older driver.

  1. Open Device Manager
    Windows Device Manager
  2. Right-click on the ATI Mobility Radeon HD 4670
  3. Choose Update Driver Software
  4. Select Browse my computer for driver software
  5. Select Let me pick from a list of device drivers on my computer
  6. In the list, select the older version (8.970.100.9001)
    Update Driver Software dialog
  7. Click Next
  8. The screen will flash a few times, and a few beeps later you should be returned to your regularly scheduled 1920x1080 resolution again.

The Windows Feedback tool shows that this error has been reported by a number of people, but unfortunately I suspect it hasn’t registered as a high enough priority to fix (and may not be considering the age of the video hardware).

Sunday, 25 October 2015

North America Trip–LAX to YYZ

Looking back over Los Angeles beachesI had a few hours break at LAX before my connecting flight to Toronto. Just as well, as I forgot that it was actually a code-share with Air Canada and had to walk to a different terminal (fortunately not too far).

I didn’t sleep very much at all on the flight from Sydney, and I tried not to doze too much in the waiting lounge at LAX in case I missed my flight! I slept a little more on the Toronto flight. Probably being quite tall doesn’t help matters. I remember the last time I few to the USA, I got seats next to the galley, so we could stretch out – but maybe they don’t have seating in that configuration anymore.


Flying over Los Angeles

Leaving Los Angeles. Looks very dry – don’t seem to have many parks or gardens in the suburbs I flew over. Just the occasional golf course. Quite a contrast from home.

Sunset on cloudsA pretty sight of the setting sun lighting up the clouds on the way to Toronto.


Our flight arrived into Toronto right on time. Unlike LAX, clearing customs & immigration was a breeze (I guess it isn’t quite as busy). Always a relief when your bag shows up on the baggage carousel too. Tom (who’s also over from Adelaide) met me at the airport and drove me back into town to where I am staying. We then went out for some tea and a chat (had some nice burgers). I’ll see Tom (and the rest of the RL Toronto crew) at the office first thing Monday morning.

North America Trip–ADL to LAX

United Airlines plane at terminalMy trip to Canada and USA has begun. My alarm went of at the early time of 3.45am, left me enough time to get ready for my ride. My sister and brother-in-law very kindly offered to give me a lift to the airport. My sister is doing a travel agent course at the moment, so she’s been able to use me as a bit of a case study and look up my flight details, which has been fun. It was also nice that I got to give my youngest daughter a final hug goodbye as I managed to wake her up in my tromping around the house. Not sure if she went back to sleep, or made the most of being up before her big brother and sister.

I discovered when checking in at Adelaide that my bags would indeed be checked through to LAX. I wasn’t sure about this when booking. Also no dramas with carry-on bags. I was worried that my (quite old) laptop might push me over the weight limit.

I wish I could say my flight from Adelaide to Sydney was uneventful, but that would be ignoring the friendly, but slightly inebriated passenger who had trouble picking up his cup of hot coffee off of the tray being offered by the flight attendant, and promptly spilled it down my leg. A small scald mark on my shin – just glad it didn’t land in my lap. Spent the rest of the flight with cold compresses on the burn area, and it’s settling down a bit now.

Arriving at Sydney, then transferring to the international terminal. Wow, is that a crazy place. Managed to find the United desk (right up the other end from where we were dropped off), and sailed through check-in and the border control/security stuff. Got to my departure gate with time to spare, so was able to make a couple of calls home.

Looking back over Sydney HarbourBoarding United Airlines was straight forward. I ended up in “Economy Plus’ somehow – not complaining! My sister again was able to do some digging and informed me that I was the only one booked in my three seats. That didn’t last, as another traveller decided he’d move to the seat across from me to share some of my elbow room. That’s ok, there’s still an empty seat in between.

I’d heard that some United planes didn’t have individual entertainment/tv consoles, but I’m pleased to find that I must have one of the more modern ones – my own screen on the seat in front, and there’s also power under the seat (and the other guy doesn’t seem to need to use it – bonus).

So now another 12 odd hours until we land at LAX (Los Angeles International Airport). I hope that goes as smoothly (if not with less coffee precipitation) as everything else has gone so far.

Sunday, 18 October 2015

When you’re a koala..

Koala looking back through rose bush

take some time to smell the roses.

Yes, never a dull moment in our backyard. Not just lizard fights, but the odd koala passing through too. Not to mention Narelle had a baby brown snake trying to come in through the sliding door on Friday. It’s all happening!

Saturday, 17 October 2015

Blue-tongue battle

A bit of excitement in the Gardiner backyard this afternoon, when two blue-tongue lizards had a bit of a ‘rumble in the jungle’.

I assume it was a bit of a territory thing. I’d seen what I thought was one lizard sunning itself on our back steps, and noticed another one across the other side of our yard near our lemonade tree.

The latter one must have decided to go visiting because all of a sudden it was also near the steps and the first lizard wasn’t too happy about unexpected guests.

Two lizards facing off

Two lizards entangled while fighting

Two lizards tumbling down steps while fighting

After a bit of biting and hissing, the visitor made a quick getaway – but not before attracting the attention of our 3 bantam chooks (enjoying some ‘free run of the backyard’ time), who were most intrigued by the lizard and “escorted” it back across the back lawn to the garden near the lemonade tree.

Chooks look on as lizard runs away

The “steps” blue-tongue then retreated back to its spot, upon which we noticed that there was actually another lizard there too. This one must have been friendly as they both then slid behind a rock without any concerns being raised.

Blue-tongue lizard heading back to steps

Glad to say that our backyard has now returned to relative peace – that is unless you’re a worm or slater, in which case I think you’d be a bit stressed that the chooks are out to eat you Smile

Saturday, 10 October 2015

4,500 kms later

Last night we finished a two week driving holiday to the eastern states (Victoria, New South Wales and Queensland). It’s trips like this that make you realise how vast the continent of Australia is (and how nice it would be to be able to fly everywhere instead of driving!).

Map showing route from Adelaide to Brisbane and back again

It also reinforces my respect for those who choose to live and work in these remote regions.

Sunset on horizon

Highlights of the trip were the Pioneer Settlement in Swan Hill,

Pioneer Village, Swan HillBlacksmith, Swan Hill

a paddle-steamer ride in Echuca,

Paddle steamer Canberra, EchucaEchuca WharfMurray River, Echuca

more driving,

Roadside forest, NSW

a few days in a Bed and Breakfast in Grafton, NSW,

WP_20151005_005

Some fun at Dreamworld in Queensland (yes, the kids are in there with me),

DSC_8428

more driving down through the Gold Coast (No, we’re not racing),

WP_20151007_001

Before heading back home again. Our final day was from Parkes, NSW back to Adelaide – at 1,000 kms the longest distance we did in a single day.

Sunset driving back to Adelaide

It is good to be home again. Needless to say, I’m glad I’ve got a couple more days to recover before I go back to work.

It isn’t the end of my travels though. I’m off again in a couple of weeks to visit RL Solution’s Toronto office for a week, before going to my first MVP Summit at Microsoft’s campus in Seattle.