Archive
The blog, page 3
-
Mac: keyboard shortcut to enable and disable function keys
I work a lot with visual studio in a virtual machine, and on a mac, the function keys just get in the way of debugging and what not. I needed a way to quickly enable and disable the mac function keys. Found my solution…
-
Tests and Builds are Made to be Broken
Many agile teams seem to be very focused on not breaking the build. I myself used to jokingly say that your team should have a “I Broke the Build” T-Shirt, to switch between team members. That was a mistake. I think…
-
Build Pattern: Gated Commit
Other names: Pre-tested commit Gated Check-in Private Build Delayed Commit Symptoms: The build keeps breaking for trivial problems. Problem: Developers do not know what are the outcomes of committing their source code…
-
Build Pattern: Extract Script
This is a variation of Fill in the blanks and will become part of the Builds Book. Symptoms: You have multiple build scripts that contain parts that execute the same set of complicated actions, differing only by path…
-
Build Pattern: Fill In the Blanks
Other names: DRY Build Scripts (Don’t Repeat Yourself) Infrastructure agnostic scripts Parameterized Scripts Fill In the Blanks Symptoms: You find yourself having to change the script in many places, because a single…
-
Build Pattern: Location Agnostic Script
Symptoms: Running the build script on a machine where it was never run before requires extra pre-work to make the machine ready, such as mapping drives, creating a special build script folder etc. Problem: The build…
-
Elastic, Agile, Adaptive Leadership Workshop, January 31 2013, Oslo
This January, the 31st, I will be giving a two day Workshop for team leaders, architects, and scrum masters, titled Elastic, Agile, Adaptive Leadership. If you’re interested in joining, please contact me directly (or…
-
When I have to support an old vb6 project
When I try to read Prolog When devops do their thing The first time I logged into realtime chat in a BBS every company party ever When everything works beautifully
-
Upcoming Courses (C#, Java, Ruby, IOS, MVC and more) (Q1 2013)
So, I have lots of new courses that I am doing in Oslo . If you are interested, or if you want me to teach these course in your place, or organize public courses like these in your country, ping me directly by emailing…
-
Build Pattern: Shipping Skeleton
I am slowly realizing that perhaps my concepts for the build book could be better serving as reusable patterns for creating builds, solving specific problems. Pattern: Shipping Skeleton other names: “Hello World”,…
-
Build Patterns: Script Injection
I am slowly realizing that perhaps my concepts for the build book could be better serving as reusable patterns for creating builds, solving specific problems. This is a test to see how well this idea holds up in…
-
When they tell me I have to use MSBuild to automate our CI Process
When they tell me I have to use MSBuild to automate our CI Process When I see a terminal keyboard junkie doing their thing When we are starting a brand new green field project When they approve the budget for…
-
Build Bullet #5– How to make your builds FAST using DRY and SRP Principles
(this will become part of my upcoming booklet on beautiful builds ) One of the things that kept frustrating me when I was working on various types of build configurations in our CI server, was that each build in a…
-
Build Bullet #4: Rolling Builds and the Plane of Confidence
When I check in code I have been working on, I feel: 1. I want to wait for the build result 2. I don’t want to waste time waiting for the build results, doing nothing 3. But I fear doing something in the code until I’m…
-
Build Bullet #3– Start Products with an Empty Build and Deploy Pipeline
Builds can be nasty beasts when It’s finally time to organize and do them. There are so many things you did not think about, that it can take days or weeks to come up with a build for an existing system. To avoid the…
-
Build Bullets #2–Avoid XML Facing Build Tools
Having your build scripts in XML is one of the worst things you can do for maintainability and readability. Treat your build scripts like you treat your source code (or, how developers should treat their source code) –…
-
Build Bullet #1 - Use Version Aware Build Scripts
I am thinking of writing a small booklet about better builds . this blog post might end up as a part of it . Let me know if you’re interested by taking a look here. While I do love to use Continuous Integration Servers…
-
The Three Values of a Good Isolation Framework
I’m working on the 2nd edition of “ The Art of Unit Testing ” and this is one of the topics I plan to cover. A good isolation framework(mocking framework… but that is a horrible name for it. the word mock is overloaded…
-
Polite Code, News Articles, And Pulling Out Early
Christine Gorman gave a talk about getting rid of unneeded complexity in code, but removing ideas many of us (me too) find make it more readable. I couldn’t explain why I disagreed with her, except that I like the…
-
Readable, Maintainable, Trustworthy Unit Tests in Java
While in JavaZone, I adapted my talk about good unit tests to Java. Here you go
-
protip: How to have a very good panel debate at your conference
I was part of this panel about “making the programming pain stop” along with Kevlin Henney and others. It was such fun! One of the things that helped it succeed was the fact that Johannes (the panel moderator) asked the…
-
Video: Discussing Evolutionary Value Delivery with Tom Gilb
During JavaZone yesterday in Oslo, I got to meet with Tom Gilb and his son - Kai. I don’t know much about what they teach relating to Evolutionary Value Delivery (EVO for short) so i was intrigued to find out more. Tom…
-
Update on foocafe courses in sweden (tdd and elastic leadership)
My links were wrong. here are the links for the sweden courses Stockholm, October 19, 2012 - Advanced TDD Subjects in .NET Malmo, October 15, 2012 - Advanced TDD Subjects in .NET Stockholm, November 2. 2012 - Essential…
-
A view of the books in my bouvet office
Here’s a short video I took reviewing the old and new books in my bouvet shared office. Its interesting to look at, just like watching the rings on a cut down tree. You can tell what things the team is interested in (or…
-
Book me for consulting,courses in Norway and scandinavia - I live here now
Hi Folks. My move to Norway is now almost complete (should be getting my id number mid September.) Bærum Kummune, I am in you. Yeah. And I have the norwegian keyboard to prøve it. Now that I’m here I plan to do a lot…
-
Video: (part 8 - The big Refactoring) TDD Pairing a Go Game Engine
In this video (all the sessions are here ), Raymond and I do a refactoring of the code, to something we like much more. We end up with code we can be more proud of, and the comtinued feedback of the tests helps us do…
-
Video: (part 7 - The bug that wouldn't die) Go Game Engine with TDD and Pair Programming
In our continuing series of TDD pairing videos , Raymond and I meet again to continue where we left off. Where we left off was not a good place - we had bugs in the logic of our test code that we hunted down in the last…
-
Faking static methods in Moq, FakeItEasy and NSubstitute might be closer than imagined
Update : the version that works with .net 4.0 is here (link to InjecttionExample3.zip in that page). the examples from the link below work in .net 3.5 and under. While I was doing my TDD course at Soluto this week, One…
-
Video: (part 6 - Total n00b mistakes) Go Game Engine with TDD and Pair Programming
If you calculate by hours, this might be called “the first session of the 2nd day” of Raymond and me working together. This was by far the most frustrating one of the 6 we’ve had so far. all the other sessions are here…
-
Video: (part 5 - A Test DSL) Go Game Engine with TDD and Pair Programming
In this session we start writing some tests that don’t fail first, and we don’t understand why. So we take some time to make a testing DSL, so that our tests will be more readable, and also easier to write. We also…