Hope you all have a wonderful Christmas and a fantastic 2015
I will be back blogging in 2015 … on the wonderful world of embedded software development using C and C#. Yep I changed company in September and joined www.analox.net to “retrain” into an embedded software engineer doing cool stuff for submarines. It has been huge fun… but I have been heads down on work and let this blog gather some dust.
Check out my “side project” – an STM32-discovery board powering the Xmas lights 🙂
Visual Studio 2013… installed
NDepend 5 … installed
Balsamiq 2 …installed
Next up ReSharper 9. However I have chosen to go for superbly priced ReSharper Ultimate which gives you oodles of tools for .NET and the promise of ReSharper for C++ in the future.
And comes with a rather nifty new installer… which hopefully is going to leave my environment working for Visual Studio 2008 for some Windows CE projects we are advancing in 2015…
When you use GIT branching becomes… attractive, maybe even addictive. Which is fine… then (as happened yesterday) you find that a branch really didn’t help in any way and you would like to delete that branch and pretend it never happened 🙂
I’m using the GIT capability of Visual Studio Online and was stumped with how to delete the branch. I managed to remove it from my local repository with ease – but not from Visual Studio Online.
The solution turned out to be very simple but (to me anyway) was not obvious.
Install GIT for Windows. Fire up the GIT Gui and then select the Delete Branch option from the Remote menu. Simple.
Well, it was for me. Specifically I wanted it to exclude the nuget packages folder which in theory should have been as simple as uncommenting a single line in .gitignore.
Except… VS2013 (with update 2) insisted on still checking in the packages folder. Odd.
Turns out various folks have hit the same problem and the answer turns out to be pretty simple.
- Close Visual Studio.
- Navigate to your .git folder
- Delete ms-persist.xml
- Restart Visual Studio
And hey presto, all is well.
If you exclude the packages folder then you also need to enable nuget package restore – check out this great walkthrough.
I was discussing effective stand-ups this week and shared some things I had seen which separated “the good” from “the bad”. Which made me go off and re-read “It’s Not Just Standing Up: Patterns for Daily Standup Meetings” over on martinfowler.com.
Even better on a second read (3 years apart)… enjoy 🙂
ReSharper is awesome … but it also likes plenty of CPU and memory.
If you find yourself struggling on a virtual machine, then it is worth knowing that you can very easily suspend ReSharper.
There are nifty commands you can use from the Command window such as ReSharper_Suspend (or map them to keys) as well as a big button under Tools.Options.
Recently I have been looking at the area of Peer Code Reviews and where and when they may help my team produce better quality software (lets just skip over defining quality software for the moment).
I think Peer Code Reviews have an important role to play in producing quality software. As do Code Guidelines, Automated Tests, Architecture, Tools, Pair Programming, Multiple Monitors, Training, VCS and Free Pizza.
Yet many companies don’t do Peer Code Reviews. I suspect more do Free Pizza than Peer Code Reviews. That puzzles me. Perhaps even scares me.
Uncle Bob recently blogged on “Where is the Foreman?” (and follow-up) – “the guy who makes sure everything is done right”. This is the guy who would decide if Peer Code Reviews would help a team or project and if they feel they would help, make damn sure they happen.
I would recommend you give it a read and then look at your own team and see if that person exists…and if not, then either:
- You don’t need a foreman. Well done. Not all teams need Foreman.
- You need a foreman. Well done. Get one.
Either way, give yourself a big pat on the back for considering it. But remember – to ask this question again in three months. You never know…
As an aside, I think the Foreman idea overlaps a lot with the original idea of a Scrum Master aka guardian of the process.
- I always encourage folks to read the for and against arguments – so also give this a whirl We don’t need a foreman (against the Foreman)
- and We Need More Foremen (everyone should be a Foreman but perhaps a Referee is needed)
Back in 2010 I dabbled with Ruby (remember when Microsoft was still doing stuff with IronRuby) and during that period I attended the Scottish Ruby Conference – and thoroughly enjoyed it! I was surrounded by a see of Apple products wherever I sat and stared at very little GUI IDE on the stage (I recall a lot of VIM and Emacs). It was so different from my “day job” and I left with huge respect for the then small but passionate community.
Well, my twitter #scotruby tells me it is on again today. It looks like a beautiful day in Scotland and a big part of me wishes I was there.
I like C#. I like the .NET Framework.
Pretty much every software challenge a client throws at you can be solved using C# and the .NET Framework. Which is marvellous. It gives you confidence that you can deliver solutions.
However I also know that a for a lot of those challenges, they can be more swiftly solved using … Visual Basic 6.
Somehow at work we got onto this topic today. My own view is “getting stuff done” is still harder today than it once was with languages such as Visual Basic 6 (or indeed others from the era such as SQL Windows). That chat lead me to have a quick look at the “state of Visual Basic 6” in 2014:
Interesting isn’t it?
A lot has been written about the strengths (and weaknesses) of Visual Basic 6 but for me it really boils down to:
- It is simple to learn and to master
- It is an early example of opinionated software (think Rails but for Client/Server and desktop)
- It was “powerful enough” to solve a large class of problems (pre-Web)
- It didn’t get between you and the problem
I also recalled that Scott H had posted something on this before I left Microsoft end of Dec 2012. Here is his take.
It has a great line in it:
The things that Visual Basic 6 did still need doing. – David Platt
…can be found at http://our.umbraco.org/projects/developer-tools/umbraco-v6-mvc-razor-cheatsheets
Very handy when you are living in a world of dynamic expressions and google results which span v4, v5, v6 and v7.
Currently “enjoying” a spot of tree traversal from @CurrentPage in a PartialViewMacroPage