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).