Once again in January I headed to the Excel centre in London to attend NDC. NDC (the conference formally known as Norweign Developers Conference) has been my conference of choice for the last few years, I feel it provides a great mix of technical and soft skills sessions, great networking and the best conference food going.
The conference organisers go to the fantastic effort of recording every presentation and making these freely available on Vimeo. So below is my list of attended sessions and the links to the recordings, I’ll try to update these as the videos come up. In my list below are a few sessions I missed in person but heard good things about or spotted on the talk rating board (yes, there is a board in the vendor hall showing the best rated talks).
IoT and Cortana Analytics – a winning combination – Chris Hewitt Outline
Pragmatic development at Stack Overflow – Marco Cecconi Outline
A system is not a tree – Kevlin Henney Outline
How to deal with culture divide – Internal Advocacy with Distributed Teams – Laura Czajkowski Outline
Shall I Compare Thee to a Line of Code – Lauren Scott Outline
Analyzing GitHub commits with R – Barbara Fusinska Outline
Autonomy, Connection and Excellence: The Building Blocks of a Knowledge Work Culture – Michael “Doc” Norton Outline
Ship it! How to do what not to do – Ed Blackburn Outline
Introduction to IdentityServer – Brock Allen VideoOutline
Learn. Reflect. Repeat – Melinda Seckington Outline
Acceptance Testing for Continuous Delivery- Dave Farley Outline
Test Automation without a headache: Five key patterns – Gojko Adzic VideoOutline
50 Shades of AppSec – Troy Hunt VideoOutline
Testing with No Harm – Enrico Campidoglio VideoOutline
Don’t Make Me Feel Stupid – A. User – Liam Westley Outline
The Quest for the Next Evolution of Infrastructure Management – Paul Stack Outline
Cryptography in .NET – Stephen Haunts Outline
.NET Rocks Live (containers and microservices) VideoOutline
What’s next? How we use feedback to decide what to build – David Simner Outline
5 Anti-Patterns in designing APIs – Ali Kheyrollahi Outline
Business Mapping: turning the lights on – Dan North Outline
No excuse user research – Lily Dart Outline
Beyond Features – Dan North Outline
IoT: Gold Rush or Wild West – Niall Cooling Outline
Making Hacking Child’s Play – Troy Hunt VideoOutline
Everything i know about computers, I learned from the movies – Mark Rendl VideoOutline
While looking for the videos for this post I saw that the session videos from ProgramUtvikling Security Day have also started making an appearance on their channel so I’ll be making my way through those also.
Yesterday saw a second defeat for the snoopers charter this time as a late set of amendments to a counter-terrorism bill. There is more detail from the EFF here and the Open Rights Group here. Yesterday’s session served as a reminder that why due process and debate is needed; while we saw points from lords with little understand of what they were trying to legislate such as Lord King we also saw solid counter argument for balance from others such as Baroness Lane-Fox of Soho.
While watching the back and forth on twitter during the debate the John Perry Barlow Declaration of Independence of Cyberspace crossed my mind. While the language is a little dated it’s still very relevant to the issues being discussed.
One of my Christmas presents this year was the Lego kit of the DeLorean from Back to the Future (obviously because 2015 is when Marty McFly arrives in Back to the Future II). Last year when I built the Millennium Falcon I really regretted not getting a timelaspe of the build process. This year with a little preparation I did and it came out rather well.
The kit was great fun to build the manual that comes with it has a number of nice little facts, such as the time drive on the model is set for 28/01/1958 the date the LEGO brick was patented.
Its been a nice restful Christmas and I’ve had some time to go through and sort out lots of my photos from the last year. Since I started taking a lot more photographs I’ve been categorising them by year then into sub-folders of when and what we were doing, so for 2014 that was about twenty folders. This barely scratches the surface of the photos I take because most are actually taken with my phone. It goes everywhere with me, so from quick little things that make me laugh, to views when I wish I had a full camera, there’s probably a shot on my phone. All of those images are automatically backed up to Google Plus’ Photo service, which is great as my photographs are on all my devices and it does a nice job of auto correcting some of the limitations of a camera phone. However one thing that is seriously lacking is the ability to get those photographs back out directly from the photo service.
Google offers a TakeOut facility to let you retrieve any of the data Google holds on you. Go to google.com/settings/takeout from there you can de-select everything and pick only photos and press next to create a series of archives. I have two problems with the TakeOut download first it creates a directory for each day of uploads, so potentially that 365 subdirectories for the year. Secondly every uploaded file can be auto-edited potentially several times and each edit is included in the download. Ideally what I wanted was a single directory with just the photographs I’ve taken, PowerShell makes this kind of operation incredibly simple. A quick script later and we are down from 4 Gb to 2.5 Gb and all in one directory. I’ve uploaded the script to do this to a Gist here.
A couple of weeks back I got the opportunity to attend NDC London organised by the team between the Norwegian Developers Conference. They’ve branded this event to “new DevelopersConference() London” as Norwegian Developers Conference obviously limits their reach a little bit (to steal a joke from @markrendle‘s stand-up) . I went out to NDC Oslo last year to attend their dedicated security track and was really impressed by the quality of the event and the speakers they lined up so once the registration opened for their London event this year I knew I wanted to attend as much as I could.
Like any conference there are the fantastic talks and the ones where you wonder if you’ve walked into the wrong room. Probably my favourite talk from this years event was Coding Culture by Sven Peters, talking about what makes great engineering team and how to inject enthusiasm and passion into development. His slides and a recording of this talk are here, if you can only watch one this is it.
A few of the other highlights for me were:
Jon Skeet demonstrating the scary amount he knows about the Hebrew calendar and confirming date and time is still a pain in the neck. link
“Code is like humour, if you have to explain it it’s bad”. A crowd driven refactoring session with Cory House. link
“SAML is the Windows XP of online identity”. Dominick Baier talking about OpenID Connect. link
Reviewing a year of security howlers and CSI Cyber with Niall Merrigan. link
Learning how to count potatoes with drones and how machine learning can optimize farming with Gary Short. link
If you are doing exactly what your IDE tells you which of you is writing the code? Along with other pause for thought moments with Kevlin Henney. link
“Does your home audio set-up really need an external IP address? Who is adjusting their speakers on the bus?” Looking at the “Fragile Internet of Things” with Erlend Oftedal and Einar Otto Stangvik. link
Videos of all the talks are already available to attendees here and will apparently be made public some time early in the new year.
Went down to Somerset for a short break last weekend, on the way back we stopped in at Salisbury as we seem to be rapidly working our way round the cathedrals of England (this was the second of the weekend).
Caught a nice bit of setting winter sun through the branches of this tree in the cloisters, I wasn’t thrilled with the shot when I took it but have managed to clean it up quite a bit with Lightroom to the point I think its one of my favourite recent photographs.
I’ve been spending some time over the last month or so migrating our git server at work. Our old environment was starting to show the signs of age and just was not suited to having multiple developers checking in on several large projects at a time meaning we frequently ran into file permissions problems needing one of the team to ssh to the server a manually chmod the directory.
There are a lot of alternatives out there for git hosting including GitLab, Bonobo, Stash and the 800 pound guerilla of GitHub enterprise. In the end Stash from Atlassian won out, on premise hosting, great Jira integration and finally low license cost for small teams (which is in fact a donation to Room to Read).
Now we have a shiny new server all set up and running how best to migrate all our existing repositories over without losing history, tags, branches or living in a half and half state while we do so? One of the nicest things about distributed version control systems like git is that this process is much simplier than with large centralised version control systems of old, below are a couple of scripts for making this easier still.
The other weekend a few old friends invited me down to our local paintball field, Campaign, to spend the day training with them. It was awesome to see the guys again and play some nice relaxed paintball. The new field Tony and his guys have built is truly impressive. For a few points we strapped the GoPro on to see how well it worked strapped to the barrel, other than showing just how much I need to practice the footage came out quite well.
For the last month or so I have been playing with WordPress themes and bootstrap with the intent of finally replacing the slightly tweaked standard theme that I’ve been running for the last four years or so. It’s finally at a point where I am happy to leave it up permanently, there is definitely a couple of bits I need to tweak but as a whole I’m happy with how it has turned out. Bootstrap made working with dynamic re-sizing an absolute breeze, go on scale it up and down a couple of times.
The image above is just a part of one my favorite photographs. I took this at Reculver in Kent at sunset with my Sony NEX5. On the to-do list is a better photo plug-in so I can post a few more of these photos until I get that sorted here is a link to the full image.
Reculver at sunset
If you fancy having a look around the theme code it’s all on GitHub.
Visual Studio 2012 marks a change in cycle for the development tools team as they are changing pace to incorporate regular updates to the product rather than the big bang of a new release every couple of years. Update 1 came out back in November (read more about that here) and I had been running it in the RC without issue. However with my fresh install of Express I had forgotten this update, launching VS this morning to make a couple of changes I saw the update available reminder. Couple of quick clicks later the download is on its way. Code change done I fired off the update and all seems fine, progress bars, coffee, reboot. Reopen Visual Studio, open solution, none of the projects will load on hitting reload for a single project and you are greeted with an alert with the text:
The composition produced a single composition error. The root cause is provided below. Review the CompositionException.Errors property for more detailed information.
1) No exports were found that match the constraint:
Resulting in: Cannot set import ‘Microsoft.VisualStudio.Project.VS.Implementation.VSUnconfiguredProjectIntegrationService.IVsHierarchy (ContractName=”Microsoft.VisualStudio.Shell.Interop.IVsHierarchy”)’ on part ‘Microsoft.VisualStudio.Project.VS.Implementation.VSUnconfiguredProjectIntegrationService’.
Resulting in: Cannot get export ‘Microsoft.VisualStudio.Project.VS.Implementation.VSUnconfiguredProjectIntegrationService (ContractName=”Microsoft.VisualStudio.Project.Designers.IVsUnconfiguredProjectIntegrationService”)’ from part ‘Microsoft.VisualStudio.Project.VS.Implementation.VSUnconfiguredProjectIntegrationService’.
Resulting in: Cannot set import ‘Microsoft.VisualStudio.Project.UnconfiguredProjectServices.vsUnconfiguredProjectIntegrationService (ContractName=”Microsoft.VisualStudio.Project.Designers.IVsUnconfiguredProjectIntegrationService”)’ on part ‘Microsoft.VisualStudio.Project.UnconfiguredProjectServices’.
Resulting in: Cannot get export ‘Microsoft.VisualStudio.Project.UnconfiguredProjectServices (ContractName=”Microsoft.VisualStudio.Project.IUnconfiguredProjectServices”)’ from part ‘Microsoft.VisualStudio.Project.UnconfiguredProjectServices’.
That’s one very large dialog with just the less than helpful OK button. Visual Studio does occasionally glitch out but its been a while since I’ve seen one quite so spectacular and consistent. A quick search for the issue above yields pages and pages of connect.microsoft.com reports of people facing the exact same issue, always with C++ projects always after update 1.
So I’m not alone that’s always a good start, less good is that all are closed and none contain any answers. At this point I thought I’d check for more updates in Visual Studio, no joy automatic update checking is on but no update. Okay how about a repair? More progress bars, more coffee and another reboot later still the same error. Digging through the bug reports I found one report of user with a fix, wipe and reinstall OS.
After spending the best part of an hour searching, repairing and patching, Windows update kicked in on our schedule and prompted to check for yet more updates. Sitting right at the top of the list was KB2781514. Now that looks a little more helpful than a disk format.
The additional information doesn’t hint at a cause or even mention the issue shown in the short description above, instead it only states that it improves the stability of Visual Studio. With the patch applied normality is restored and projects once more load successfully.
It seems an unusual choice to offer the update pack of software via one mechanism but to offer patches by a different approach, especially one which may be tightly controlled within a corporate environment. It is a shame the sheer volume of reports on connect.microsoft.com prevent them from updating the report with the resolution when a cause has been found.