Why is Apple Software Considered Intuitive

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.

Azure Guest OS Updated at Last

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.

Example of code analysis from StudioShell.Provider

### 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 $_
}
}

Azure Guest OS – We Need Accurate Documentation

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.

More to Package Manger Console than Packages…

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.

Beyond Bugs

A developers life can consist of new features, change requests and bugs.

The basic approach to bugs is to fix them in priority order.

A more sophisticated technique is to identify that cause of the bug, and introduce a change in the process to prevent it from happening again.

For example, if you are using mvc you may have a convention based set of images.
A simple powershell script can check that the images exist in the correct location from a simple list of pages.
This list could be hardcoded in the tests, but will probably be available from somewhere else in the system.

A similar approach can be taken with logs. It can be assumed at minimum that you are logging errors.

If you only look at the logs when you have a specific error then you are missing out on a lot of data.

Simple analysis of the logs data, such as obtaining counts of each of the types of errors within an hour, will provide massive benefits.
Firstly you will be able to find the most frequent errors – even if the users are not reporting them.
If the error is not a real problem, downgrade it to a warning. If it is a real problem then it should become a priority to resolve.
Secondly it will show you areas where there are missing errors, especially if the users are reporting errors that the logs do not show.

7digital and powershell

The following shows how to query the 7digital api from powershell.

[xml]$data = (invoke-webrequest -uri http://api.7digital.com/1.2/release/details?releaseid=951886`&country=gb`&oauth_consumer_key=$my7digitalKey | select -ExpandProperty Content)

This provides an in memory object that you can walk the tree.

This is how I investiagate most xml/json feeds.

I am not publishing my key so get your own and set it in your profile:

ii $profile

Views and Beyond – Templates

Views and Beyond are a set of architecture patterns for documenting a software system.

They have three categories of view styles:

  1. Module
    • Decomposition
    • Uses
    • Generalization
    • Layered
    • Aspects
    • Data Model
  2. Component & Connector
    • Call-Return
    • Data Flow
    • Event-Based
    • Repository
  3. Allocation View
    • Deployment
    • Install
    • Work Assignment
    • Other Allocation

The following link provides a word template for views and beyond documentation:

http://www.sei.cmu.edu/architecture/tools/document/viewsandbeyond.cfm