I am still using my old blog on http://devrants.blog.com/
The performance of that had recovered so this is still a placeholder.
Random outpourings of a software developer
I am still using my old blog on http://devrants.blog.com/
The performance of that had recovered so this is still a placeholder.
As of the end of 2014 we have:
| Family | IsDefault | Version |
|---|---|---|
| 3 | False | WA-GUEST-OS-3.17_201407-01 |
| 3 | False | WA-GUEST-OS-3.20_201410-01 |
| 3 | True | WA-GUEST-OS-3.21_201411-01 |
| 4 | False | WA-GUEST-OS-4.10_201407-01 |
| 4 | False | WA-GUEST-OS-4.13_201410-01 |
| 4 | True | WA-GUEST-OS-4.14_201411-01 |
According to the documentation site (http://msdn.microsoft.com/en-us/library/azure/ee924680.aspx) the latest versions are due to expire on the 11th of January with the new versions being enabled on the 5th January. I guess that means a lot of people will have to spend their first week back at work testing the new os release in the 5 working days before the existing guest oses are retired.
Azure Guest OS List
| Family | IsDefault | Version |
|---|---|---|
| 1 | False | WA-GUEST-OS-1.37_201407-01 |
| 1 | False | WA-GUEST-OS-1.40_201410-01 |
| 1 | True | WA-GUEST-OS-1.41_201411-01 |
| 2 | False | WA-GUEST-OS-2.29_201407-01 |
| 2 | False | WA-GUEST-OS-2.32_201410-01 |
| 2 | True | WA-GUEST-OS-2.33_201411-01 |
| 3 | False | WA-GUEST-OS-3.17_201407-01 |
| 3 | False | WA-GUEST-OS-3.20_201410-01 |
| 3 | True | WA-GUEST-OS-3.21_201411-01 |
| 4 | False | WA-GUEST-OS-4.10_201407-01 |
| 4 | False | WA-GUEST-OS-4.13_201410-01 |
| 4 | True | WA-GUEST-OS-4.14_201411-01 |
The official update http://msdn.microsoft.com/en-us/library/azure/ee924680.aspx is a month old.
Some of the expiry dates are getting stale – it claims that items that are still active are already retired.
It should be updated weekly.
According to the source the most recent oses will become unavailable on the 11th January 2015.
This is great – straight back after new year on the 6th January and we will have less than a week to get the next os ready.
On any sufficiently complex team project you will eventually need to find a way to keep the developer machines (and the build servers) aligned.
The web platform installer is a great way of getting started on this.
Now the webpi also has a command line version that must be run as admin.
The following will list the software that you have installed:
webpicmd /list /listoption:installed
Then you can build a script similar to the following:
| #Install-WindowsUpdate -AcceptEula | |
| #Update-ExecutionPolicy Unrestricted | |
| #Set-ExplorerOptions -showHidenFilesFoldersDrives -showProtectedOSFiles -showFileExtensions | |
| #Enable-RemoteDesktop | |
| #Enable-MicrosoftUpdate | |
| #Set-TaskbarSmall | |
| # install Visual Studio instances, SQL Server first | |
| # Web Platform Installer (get a full list of packages you can install from webpi using "clist -source webpi") | |
| #cinst webpi | |
| #choco webpi IISExpress_ByPlatform | |
| #choco webpi SQLLocalDB | |
| #choco webpi WIF | |
| #choco webpi WDeploy | |
| # Web Platform Installer : Specific Versions – need to update to latest if newer exists | |
| #choco webpi WindowsAzureSDK_2_2 | |
| # Visual Studio Extensions | |
| #Install-ChocolateyVsixPackage "VsVim" http://visualstudiogallery.msdn.microsoft.com/59ca71b3-a4a3-46ca-8fe1-0e90e3f79329/file/6390/46/VsVim.vsix | |
| #Install-ChocolateyVsixPackage "IndentGuides" http://visualstudiogallery.msdn.microsoft.com/e792686d-542b-474a-8c55-630980e72c30/file/48932/19/IndentGuide%20v14.vsix | |
| #Install-ChocolateyVsixPackage "SpellChecker" http://visualstudiogallery.msdn.microsoft.com/a23de100-31a1-405c-b4b7-d6be40c3dfff/file/104494/2/VSSpellCheckerPackage.vsix | |
| #Install-ChocolateyVsixPackage "VSCommands2013" http://visualstudiogallery.msdn.microsoft.com/c6d1c265-7007-405c-a68b-5606af238ece/file/106247/15/SquaredInfinity.VSCommands.VS12.vsix 12 | |
| #Install-ChocolateyVsixPackage "ProductivityPowerTools2013" http://visualstudiogallery.msdn.microsoft.com/dbcb8670-889e-4a54-a226-a48a15e4cace/file/117115/3/ProPowerTools.vsix 12 | |
| #Install-ChocolateyVsixPackage "WebEssentials2013" http://visualstudiogallery.msdn.microsoft.com/56633663-6799-41d7-9df7-0f2a504ca361/file/105627/31/WebEssentials2013.vsix 12 | |
| #Install-ChocolateyVsixPackage "SlowCheetahXmlTransforms" http://visualstudiogallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5/file/55948/22/SlowCheetah.vsix | |
| #Install-ChocolateyVsixPackage "AngularJsSpaTemplate" http://visualstudiogallery.msdn.microsoft.com/5af151b2-9ed2-4809-bfe8-27566bfe7d83/file/119298/2/Extension.vsix | |
| #Install-ChocolateyVsixPackage "VSColorOutput2013" http://visualstudiogallery.msdn.microsoft.com/f4d9c2b5-d6d7-4543-a7a5-2d7ebabc2496/file/63103/7/VSColorOutput.vsix 12 | |
| #Install-ChocolateyVsixPackage "HotTowelSpa2013" http://visualstudiogallery.msdn.microsoft.com/1eb8780d-d522-4dcf-bf56-56f0eab305c2/file/111219/4/HotTowelSpa.2013.vsix 12 | |
| # Browsers | |
| #cinst GoogleChrome | |
| #cinst GoogleChrome.Dev | |
| #cinst GoogleChrome.Canary | |
| cinst Firefox | |
| cinst Opera | |
| # Source Control | |
| cinst git.install | |
| cinst git-credential-manager-for-windows | |
| cinst SourceTree | |
| #cinst Post-GIT-HG | |
| cinst github | |
| #cinst hg | |
| #cinst svn | |
| #cinst tortoisehg | |
| #cinst tortoisesvn | |
| #cinst tortoisegit | |
| #cinst visualsvn | |
| #cinst VisualHG | |
| #cinst tfsSidekicks2012 | |
| # Editors | |
| cinst vim | |
| #cinst sublimetext2 | |
| #cinst markpad | |
| cinst visualstudiocode | |
| cinst atom | |
| cinst brackets | |
| # JetBrains (PhpStorm has everthing that WebStorm does and more) | |
| #cinst dotpeek | |
| #cinst dotTrace | |
| #cinst resharper | |
| #cinst PhpStorm | |
| # RegGate | |
| #cinst reflector | |
| # Web / Internet / Network | |
| #cinst nginx | |
| #cinst curl | |
| #cinst nmap | |
| cinst wireshark | |
| #cinst OwinHost | |
| #cinst Wget | |
| # Social | |
| cinst skype | |
| cinst slack | |
| # Languages | |
| cinst nodejs.install | |
| #cinst ruby | |
| #cinst ruby.devkit | |
| #cinst Lua | |
| #cinst clojure | |
| #cinst HaskellPlatform | |
| #cinst groovy | |
| #cinst golang | |
| #cinst scala | |
| #cinst python | |
| #cinst php | |
| #cinst erlang | |
| # development utilities | |
| cinst yeoman | |
| cinst fiddler4 | |
| cinst linqpad | |
| cinst kdiff3 | |
| #cinst beyondcompare | |
| #cinst mysql.workbench | |
| #cinst GnuWin | |
| cinst dependencywalker | |
| cinst typescript | |
| cinst HxD | |
| #cinst snoop | |
| cinst stylecop | |
| #cinst ScriptCs | |
| cinst ilmerge | |
| cinst postman | |
| # general utilities | |
| #cinst 7zip.install | |
| cinst sysinternals | |
| #cinst pstools | |
| cinst putty | |
| cinst filezilla | |
| #Install-ChocolateyPinnedTaskBarItem "$env:programfiles\filezilla\filezilla.exe" | |
| cinst rdcman | |
| cinst greenshot | |
| cinst hashcheck | |
| #cinst AzureStorageExplorer | |
| cinst lockhunter | |
| #cinst sharpkeys | |
| #cinst f.lux | |
| # end user | |
| cinst treesizefree | |
| cinst iTunes | |
| #cinst kindle | |
| cinst vlc | |
| # Environment | |
| #cinst Microsoft-Hyper-V-All -source windowsFeatures | |
| #cinst IIS-WebServerRole -source windowsfeatures | |
| # cloud | |
| cinst dropbox | |
| cinst googledrive | |
| #cinst OneDrive | |
| #cinst sugarsync | |
| # graphics, games, audio | |
| cinst OpenCV | |
| #cinst openal | |
| #cinst unity | |
| cinst blender | |
| cinst freecad | |
| cinst inkscape | |
| cinst audacity | |
| # testing | |
| #cinst specflow | |
| #cinst nunit | |
| # Continuous Integration | |
| #cinst NAnt | |
| #cinst jenkins | |
| #cinst cruisecontrol.net | |
| # Android Development | |
| #cinst android-sdk | |
| #cinst AndroidStudio |
Then in a powershell prompt:
START http://boxstarter.org/package/nr/url?https://path/to/myfile.txt This with a bit of testing can give you a full machine setup for say your CI servers without requiring complex maintenance. This is before you have to write a single script!
The iTunes application is probably the most counter intuitive software on the planet. This seems to cotradict the claim that Apple software is intuitive.
I have an iPod suffle – the only way to remove a single track was to remove all music and reload it. The UI has entirely from random elements with no clue as to how to navigate between them.
The following is the current active Azure Guest OS Version as at 16:40 gmt 1st November 2014
| Family | IsActive | IsDefault | Version |
|---|---|---|---|
| 1 | True | False | WA-GUEST-OS-1.36_201406-01 |
| 1 | True | False | WA-GUEST-OS-1.37_201407-01 |
| 1 | True | True | WA-GUEST-OS-1.40_201410-01 |
| 2 | True | False | WA-GUEST-OS-2.26_201404-01 |
| 2 | True | False | WA-GUEST-OS-2.28_201406-01 |
| 2 | True | False | WA-GUEST-OS-2.29_201407-01 |
| 2 | True | True | WA-GUEST-OS-2.32_201410-01 |
| 3 | True | False | WA-GUEST-OS-3.16_201406-01 |
| 3 | True | False | WA-GUEST-OS-3.17_201407-01 |
| 3 | True | True | WA-GUEST-OS-3.20_201410-01 |
| 4 | True | False | WA-GUEST-OS-4.10_201407-01 |
| 4 | True | True | WA-GUEST-OS-4.13_201410-01 |
| 4 | True | False | WA-GUEST-OS-4.9_201406-01 |
It can be assumed that the current N-1 will be disabled on the 1st December 2014 according to http://msdn.microsoft.com/en-us/library/azure/ee924680.aspxhttp://msdn.microsoft.com/en-us/library/azure/ee924680.aspx
This does mean that we currently have three available OS version rather than the normal two.
The Azure team do not seem to understand that peak uses of cloud software are likely to be at weekends and overnight.
Cloud environments at large scale ups are likely to be entertainment or advertising based which spike when consumers are at home.
The best time to patch a cloud platform is 8 am GMT on a tuesday morning, preferably after informing your customers that you are going to do so at least a week in adavnce.
I am going to post an update of this whenever I notice a change in the deployed environments.
### check-code.ps1 ###
# Run this in the Package Manager Console first – a solution must be open.
#Install-Package StudioShell.Provider
#The following should be run in the Package Manager Console in the form . pathtofilecheck-code.ps1 | out-gridview
#This is a great way of finding code entities where the filename does not match the elements name.
dir dte:/solution/codemodel -recurse | where Kind -Match ‘vs.*(Class|Enum|Interface)’ |select PSPath, Fullname, Name, Kind | % {
$toMatch = “$($_.Name).cs”;
if ($_.PSPath -NotMatch $toMatch) {
return $_
}
}
I am not sure what is currently going on with the Azure Guest OS Availability.
Currently 3.17 is the default active one, and 3.16 is the non-default inactive one.
There are however two versions of each of 3.18 and 3.19 waiting in an inactive state.
The only source of dates for the expiry of these is:
http://msdn.microsoft.com/en-us/library/azure/ee924680.aspx
3.16 is listed as expiring yesterday (Oct 10 2014) and 3.17 is due to expire on monday (Oct 13 2014).
3.18 has already expired and 3.19 has a TBD release date.
Given that I work with a product that we like to test on an os before we actually deploy it we are in a rather difficult position. We can deploy what we have to test but will at some undefined point we will need to move to the newly released versions and retest them.
This is not a very satisfactory poisition to be in.
The package manger console in visual studio is capable of far more than just adding and removing nuget packages.
It is in fact a full powershell scripting environment with direct access to the Visual Studio IDE Management Api.
This is not just read-only:
$dte.StatusBar.Text = “Hello”
You can find out about the dte’s properties here:
$dte | get-member | out-gridview
The following is a great way of finding what commands are available to visual studio
$dte.Commands | Out-GridView
And this shows the local environment variables:
gci variable:* | out-gridview
I am wondering if this could be used to add command-line refactoring to visual studio.
Given that the officicial documentation (http://msdn.microsoft.com/en-us/library/azure/ee924680.aspx) I have prepared the following powershell script:
Add-AzureAccount
#Enter username and password
Get-AzureOSVersion | where IsActive -eq $true | Out-GridView
This tells you what is actually live, not just planned.