Adam Ralph

A blog about how software development fills in the gaps between snowboarding


No Tech Lead

Vote on HN

I’ve had many discussions about the notion of a ‘tech lead’ in a team of developers. It’s something I feel passionate about as it affects both me personally and the entire software development industry.

Yesterday, I read the blog post Good Tech Lead, Bad Tech Lead by Jason Liszka. Jason’s post offers me an ideal reference to argue my views and has prompted me to write this post, for which I’m grateful. This post is at least partially formed as a reaction to Jason’s post, which I think is very good and highlights some very important points for a tech lead, assuming a tech lead exists.

I challenge the ‘tech lead’ model and propose that a ‘no tech lead’ model with a complete focus on teams opposed to individuals is way more productive and a lot more rewarding not just for team members who would otherwise be followers, but for the team member who would otherwise be leading.

Read more...


Continuously Losing Internet Connectivity in Windows 8.1

Vote on HN

TL;DR

  1. Execute netsh winsock reset
  2. Restart machine

The excruciating story behind this

This has been driving me nuts recently. On my two Windows 8.1 machines, I’ll be happily using the internet. You know browsing, pushing to GitHub, Tweeting, that kind of thing. Then all of a sudden everything would blow up. Browser tabs would hang trying to load pages. JabbR would go red. GitHub fetches would fail. On my one remaining Windows 7 machine all was good.

Read more...


Decoupling Apps from Config with ConfigR

Vote on HN

ConfigR is a NuGet package based on scriptcs and Roslyn which allows writing configuration files in C# instead of XML.

For example, the stringy XML soup:

    <?xml version="1.0"?>
    <!-- app.config or web.config -->
    <configuration>
      <appSettings>
        <add key="Uri" value="http://tempuri.org/myservice"/>
        <add key="Timeout" value ="10000"/>
      <appSettings>
    </configuration>

can become

// MyApp.exe.csx or Web.csx 
Add("Uri", new Uri("http://tempuri.org/myservice"));
Add("Timeout", 10000);

In the real world configuration is often more complex than this, e.g. multiple dev, test and production environments, per machine configuration, etc.

Read more...


NDC Diary - Day 3

Vote on HN

The incrementation of hangover severity continued this morning after @stack72 dragged everyone to Shoreditch last night and @JakeGinnivan introduced me to 35% beer. A great night all round.

Nancy stickers... everywhere

The prize for sticker bombing goes to @randompunter (@NancyFx) with @roysvork (Superscribe) the runner up.

Recording a .NET Rocks! show with Glenn Block and Justin Rusbatch

Glenn and Justin were kind enough to invite me to join them this morning in recording a show about scriptcs for .NET Rocks! with Richard Campbell and Carl Franklin. We had a lot of fun recording the show and I hope I managed to add something useful. Look out for the show at .NET Rocks! in early January.

Read more...


NDC Diary - Day 2

Vote on HN

I woke up this morning with a slightly larger hangover than yesterday and a nasty lack of sleep but it was offset with the fond memory of pwning @DamianEdwards and @davidfowl on the pool table.

Cloud Apps on Azure with Scott Guthrie

Azure is an interesting one for me. Whilst I can see that cool stuff is being done on Azure, I’m still reluctant to treat Azure as anything other than ‘yet another service provider’. The reason for this is the maintenance of portability and, ultimately, choice. I use an Azure VM as a build server. I might use one to host a blog. I might use one to host some windows services. I might use Azure websites to host an IIS website. All of these things I could potentially pick up and move elsewhere should I become dissatisfied with Azure for some reason. If I wrote my code against Azure specific SDK’s then I would lose this portability. I’d be locking myself into Azure. Somehow this just doesn’t sit right with me and I can’t bring myself to do it. This is a shame, because there’s so much cool stuff in Azure and I’d like to be able to use it. But the platform and vendor lock in just scares me off. The awesome content which the red-shirted maestro presented today makes the two opposing considerations pull at me even harder.

Read more...


NDC Diary - Day 1

Vote on HN

After nursing a slight hangover inflicted by @serialseb’s drinks night in Soho, I somehow managed to drag myself in well before 09:00 to finish off and push yesterday’s diary entry before proceedings began.

Keynote - Jackstones: the Journey to Mastery with Dan North

I really enjoyed Dan’s talk. Although I’d commonly heard the term ‘journeyman’ before I’d never really known what it meant and today I found out. I also found out that the vast majority of people I deal with in the software development world (including myself), are themselves journeymen with, thankfully, a few apprentices thrown in here and there. I’d like to think I work with some masters too but my suspicion is that they are very few and far between. A really well delivered talk from Dan.

Read more...


NDC Diary - Pre-Conference Workshop Day 2

Vote on HN

Yesterday I attended the NDC London ‘Continuous Delivery’ workshop with Jez Humble. Continuous delivery is a stated goal for my team so this workshop was an obvious choice for me.

To kick off, Jez asked us to write what we wanted to get from the day on post-it notes. My three notes were:

  1. How do I convince people that CD is a good idea and worth paying for?
  2. How do I introduce CD in an organisation that opposes it?
  3. How do I make the transition to CD with a project with a huge cycle time?

The first two questions are particularly relevant to my current job since these are real challenges we face. The last question was also applicable, even though our current cycle time isn’t huge. We want to shrink our 2 week cycle time down to days or even hours and I’m quite sure I’ll face projects with bigger cycle times in the future.

Read more...


NDC Diary - Pre-Conference Workshop Day 1

Vote on HN

The NDC London pre-conference workshops kicked off today. After being recognised as NDC’s first ever London delegate, I headed over to ‘JavaScript: Getting your feet wet’ with Venkat Subramaniam.

Although I’ve necessarily tinkered with JavaScript over the years, my focus has been on .NET and C# for a while and I’ve let my JS fundamentals get rusty, to put it mildly. Venkat’s workshop was exactly what I needed to give my JS knowledge a badly needed refresher and teach me a few things I’d never known. We covered everything from syntax basics and quirks through to functions, functional composition, classes and prototypal inheritance. The assumed level of knowledge and pace of learning was just right.

Read more...


Announcing xBehave.net 1.0

Vote on HN

It gives me great pleasure to announce the release of xBehave.net 1.0.

This is the first stable release of xBehave.net after more than 18 months of (sporadic) initial development. Extensive documentation is also now available on the xBehave.net wiki.

Read more...


Extract Pages from a PDF Using Scriptcs

Vote on HN

Today I needed to extract some pages from a large PDF file. One way of doing this would be to pay for a commercial PDF app (free versions don’t have this feature).

I discovered a much nicer way.

Read more...