Spencer Turner's avatar

Craftsmanship Task – Lessons (Part2)

by: Spencer Turner

1 month to the day after my first post, a quick follow-up with some more thoughts I’ve had doing and (kinda) completing my first task.

When is something done?

Never! For me at least, MVP is harder to stick to that I’d thought it was. I added colours to NanoTest as I wanted to see red and green - which wasn’t really necessary, however, it made me happy! I also have a delete action in scwiki which I don’t think is technically a requirement, again, I wanted it as I felt it was a requirement.

I can achieve far more than I thought I could

If you’d told me a year ago, I could write even the most basic (as NanoTest is) testing framework, I’d probably have laughed out loud…

Enrique set me and Aimee a great task, I learned so much about testing…

I am so bad at TDD.

Although I totally get the ethos of TDD, and ascribe to it, I found it really hard to test drive the wiki. That’s not to say it isn’t tested, it is, but maybe 10% of it was truly test-driven. All the guys at work have been great, helping me improve at BDD/TDD. I had an excellent couple of days on Thursday/Friday, when it really clicked for me.

I will get better

Everyday I learn a little (sometimes a lot) more. It’s sometimes demoralising when you can’t crack something, it feels a lot like you never will. Usually walking away and coming back to it fresh seems to have been a catalyst for solving the problem for me. You have to keep your self belief through out these moments.

Passive mentoring

One of the many things I love about Eden, is the passive mentoring. Generally, people offer really constructive active mentoring or input, but the standard of conversation and technical capabilities are so high, that I feel driven to do each thing better.I’ve found I often refactor what I’d thought was OK code, once someone has looked at it and said “Oooh, maybe that would be better if…”

I’ve come to feel that possibly this passive mentoring is more immediately apparent in raising my standards in a day to day way, than the higher level ‘official’ mentoring, which I feel will deliver a more detailed knowledge over a much longer period.

Enough for now

More to follow as I feel inspired

Chris Parsons's avatar

Archivey the Robot

by: Chris Parsons

Following hot on the heels of Pushy, I’ve implemented the companion application Archivey. This will delete all but the last five messages on a wave, excepting the top message. It’s meant to be used in conjunction with Pushy and any other chatty robots to keep the number of messages in a wave down to a manageable level.

Potential other uses would be in a chatting context: you don’t always want to see the complete history of a chat session and this could be a way to hide the noise. Remember that you can always see the complete history by clicking Playback on the wave, so the messages aren’t lost: they’re just archived.

To use, add archiveyrobot@appspot.com to a wave. Be warned, as soon as a new message is added it will merrily start deleting messages, so be careful!

Source code on github. Hope you like it: let me know if you find it useful.

Chris Parsons's avatar

Introducing Pushy – github notifications to google wave

by: Chris Parsons

I’ve been having a bit of a love affair with Google Wave recently. Like most people I watched the long introductory video, then tried out the sandbox last July and didn’t really get it. I then read this interesting post which spurred me on to try using it for actual work.

Guess what? It works. Our conversations have become more structured and organised. We’re finding that it does help with keeping everything together in one place, and is more ‘alive’ somehow than a traditional wiki.

So I thought: “Wouldn’t it be cool if you could have your github messages popping up in wave?”

So here’s the results of my handiwork: Pushy.

In simple terms, it’s a robot which accepts any form of HTTP post and adds the content as a new message on the wave. It has special handling for github post-receive hooks: it formats them nicely using a gadget.

How to use it

Log on to wave.google.com and add pushyrobot@appspot.com to a new wave. The robot will add a message giving you the URL to post to:

Pushys receive message

Then, when you post to this url (here I’m using curl):

$ curl -d "testing pushy" http://pushyrobot.appspot.com/push/googlewave.com/fjWFoDWkf

It will add the message to the wave:

The message appears

If you’re using the github notifications, simply add the URL verbatim to your project’s service hooks as a Post-Receive hook:

Github service hook configuration page

Click “Test Hook” and the wave will update. Any new commits to this project should now appear.

Here’s what the commit messages for github commits look like:

Github commit message view

Source code

The source code is at github.com/chrismdp/pushy. It’s my first Python project and first App Engine deployment, so be gentle :) I’d welcome forks and patches: especially if you extend the special formatting for other services.

Enjoy! Do let me know if you use it for anything useful.

UPDATE: The wave forum post discussing the robot is here.

UPDATE: Pushy now supports google code’s PostCommitWebHooks and formats them in a similar way to github commits.

Enrique Comba Riepenhausen's avatar

Michael DiBernardo in the Wandering Book

by: Enrique Comba Riepenhausen

The new entry of The Wandering Book by Michael DiBernardo is a very interesting one. In the first part of it he praises the Software Craftsmanship community (our strive to learn and improve, the way we try to make our software as simple as possible, etc), but it is actually the part “under the line” that caught my attention.

Michael DiBernardo's entry in the Wandering Book

My concern is the conflict between what we are preaching and how that is interpreted in the context of how we appear to others. Because seriously – if someone is pontificating to me about simplicity, elegance in design, attention to detail – how much can I appreciate what he is saying if he is wearing a 6 year old ironic t-shirt and khakis that are several sizes too big for him?

Michael has a very valid point there!

Software Developers are notorious for their out of the norm (to be diplomatically correct here) dressing habits. If we are to raise the bar in software development and try to be professionals we have to think of all the aspects of it. The little things, that our customers can see from us as professionals will surely reflect on how we interact with them. I am not saying we should wear suits and ties, but we surely need to work on our presence.

Imagine going to the doctors and he is wearing a think geek t-shirt about some sort of zombie rights and khakis… Would you let him perform open heart surgery on you?

Steve Tooke's avatar

Exploring Harmony for javascript BDD with RSpec

by: Steve Tooke

2nd March 2010

We try to BDD all of our production code, but the one area we always seem to struggle with is our javascript. There are various test/spec frameworks for javascript, but we’ve never quite found one we’ve been totally happy with.

There’s been a fair amount of interest lately in a new ruby gem which allows you to execute javascript against a DOM from within a ruby process. Harmony uses Johnson a ruby wrapper for the Mozilla SpiderMonkey javascript runtime.

To get started figuring out how I might be able to integrate harmony into my workflow, I’ve created a very simple project which uses rspec to make some very simple assertions about javascript behaviour.