12 days of ACCU

ACCU is currently running the 12 days of ACCU where people who've attended the ACCU conference write about why it is so excellent. Up today is Olve Maudal and myself. Here's what I wrote...

It's hard to pick just one reason why I love the accu conference. There are lots of reasons. I'll try to pick something perhaps a bit different. I love the accu conference because of its culture. Let me give you an example.

At most software conferences around the world the speakers are treated specially. For example, speakers get access to a separate area where they can work in private. Not at the accu conference! At the accu conference we don't provide a special speakers lounge. We want everyone to mingle together, speakers most definitely included.

At most software conferences around the world the speakers are treated specially. For example, speakers get a special lanyard in a different colour. Not at the accu conference! At the accu conference speakers don't get a special lanyard. We want everyone to mingle together, speakers most definitely included.

pair programming presentation at XP Kiev

It was my pleasure to speak at the XP Kiev conference recently. I spoke about Pair Programming, or more accurately, about not programming alone. It really is about Pair Programming despite the picture of me fishing at the beginning! Here's the video :-)

17lb salmon at Newtyle

Today I caught a new personal best salmon, 17lb, 38 inches long, from "the boil" on the Newtyle beat on the River Tay :-) Caught on a tiny black and orange tube fly. What a kype! Huge thanks to Andy Gunn who is a super helpful Gillie and to Gary Scott who taught me to spey cast. Some days you'll remember all your life :-) Wooooohooooo.


BCPL, by Martin Richards and Colin Whitby-Strevens is an excellent book by (isbn 0-521-21965-5). As usual I'm going to quote from a few pages:
The most important feature of the idealized object machine is its store, which consists of a set of numbered storage cells arranged so that the numbers labelling adjacent cells differ by one. All storage cells are the same size (a constant of the implementation, which is usually between 16 and 36 bits).
The readability of a program largely depends on the skill and style of the programmer; however his task is simplified if he is using a language with a rich set of expressive but concise constructions.
The philosophy of BCPL is not one of the tyrant who thinks he knows best and lays down the law on what is and what is not allowed; rather BCPL acts more as a servant offering his services to the best of his ability without complaint, even when confronted with apparent nonsense. The programmer is always assumed to know what he is doing and is not hemmed in by petty restrictions.
A procedure is invoked by writing its name, followed by the list of arguments in brackets. There is no call statement as in Fortran or PL/I.
The section brackets $( and $) enclose the statements of a procedure, and are, in many respects, like begin and end in Algol.
As a matter of style, they [spaces] should be used frequently to enhance readability.
Comments are introduced by the character pair //.
The BCPL input/output system is based on the idea of a stream. A BCPL stream should be regarded as a sequence of characters.
One of the most useful features of BCPL is that one form of command is a set of statements enclosed in a $( $) pair. As a general rule in BCPL, anywhere you can write a simple command, you can use a compound command or a block. The set of statements enclosed in $( $) is called a compound command unless the statements starts with declarations, in which case the whole thing is called a block.
BCPL has been carefully designed so that function and routine calls bring little overhead.
You know know enough to write quite substantial programs, and it would be a good idea if you paused long enough to do so.

cyber-dojo@KGISL Coimbatore

It was an honour and a pleasure to be invited to spend the day at KGISL Institute of Technology in Coimbatore, India. After a presentation on Software Professionalism: How to do deliberate practice (skip to slide 33 if you know how cyber-dojo runs) I helped run a cyber-dojo using a custom server KGISL had built supporting more than sixteen participants - using famous computer scientists as avatars instead of animals. Fantastic! Youngsters from the local community also participated, encouraged by Sudharsan who has been running a local CoderDojo. I was hugely impressed to see Ashok, a founder of KGISL Group roll his sleeves up, literally, and participate in the practice. A terrific example of leadership. Then lunch, and another cyber-dojo, and some more consulting. I look forward to returning. Thank you KGISL.

The Aesthetics of Change

Is an excellent book by Bradford Keeney. This is its second set of book snippets. Here's the first. As usual I'm going to quote from a few pages...
Whenever there is feedback, mental characteristics will be evident.
To adopt a cybernetic view is to enter a radically different world of description.
Symptoms are a sort of "escalating sameness." Symptoms indicate a system's effort to maximize or minimize a particular behavior or experience.
A paradox in ecology is that the most flexible species are the dullest.
A necessary ingredient of effective sociofeedback in therapy involves the introduction of random "noise."
Cybernetics is the appropriate science for studying mental and living processes.
A graduate student at Yale in the days when they were all running rats in mazes said, "Why do we run rats? Why don't we get an animal which lives in mazes. Like a ferret." A ferret is a small pole cat, a weasel type which is a parasite on rabbits. It lives underground most of the time in rabbit quarters which are mazes. And it bites like hell! So he got himself a couple of ferrets, some gloves and a sack. And he built what seemed to him a suitable maze for ferrets. He put a piece of rabbit in the reward chamber and started the ferret off from the entrance. The ferret systematically went down every blind alley until he got to the reward chamber where he ate the rabbit. He was put back to the beginning and the experimenter put another piece of rabbit in the reward chamber. The ferret systematically went down eveery blind alley until he came to the one going to the reward chamber which he did not go down, because he had eaten that rabbit.
When two people interact, each member punctuates the flow of interaction. If an observer combines the views of both individuals, a sense of the whole system will begin to emerge.
As two eyes can derived depth, two descriptions can derive pattern and relationship.
Stability and change, as cybernetics puts it, represent two different facets of the same systemic coin.
Cybernetics proposes that change cannot be found without a roof of stability over its head. Similarly, stability will always be rooted to underlying processes of change.
The cybernetic view is to see all requests for change as requests for change and stability.
Change within the system leads to stability of the whole system.
It should not be surprising that experimental epistemology discovered that the nervous system closes on itself. This is operationally necessary for an organism to be able to think about its thinking.
The whole is greater than the sum of its parts. The whole is the organizational closure of its parts.