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.

beyond culture

is an excellent book by Edward T Hall (isbn 0385124740). As usual I'm going to quote from a few pages...
The investigation of out-of-awareness culture can be accomplished only by actual observation of real events in normal settings and contexts.
Research with business groups, athletic teams, and even armies around the world has revealed there is an ideal size for a working group. The ideal size is between eight and twelve individuals.
All theoretical models are incomplete. By definition, they are abstractions and therfore leave things out. What they leave out is as important as, if not more important that what they do not, because it is what is left out that gives structure and form to the system.
Paradoxically, studying the models that men create to explain nature tells you more about the men than about the part of nature being studied.
All bureaucracies are oriented inward, but P-type are especially so.
High context actions are by definition rooted in the past, slow to change, and highly stable.
High context communications are frequently used as art forms. They act as a unifying, cohesive force, are long-lived, and are slow to change. Low context communications do not unify; however, they can be changed easily and rapidly.
Nothing happens in the world of human beings that is not deeply affected by linguistic forms.
If there is anything that can change the character of life, it is how time is handled.
M-time emphasizes schedules, segmentation, and promptness. P-time systems are characterized by several things happening at once. They stress involvement of people and completion of transactions rather than adherence to preset schedules.
By scheduling, we compartmentalize; this makes it possible to concentrate on one thing at a time, but it also denies us context.
In many forms, culture designates what we pay attention to and what we ignore.
The natural act of thinking is greatly modified by culture.
Low-context cultures seem to resist self-examination.
Alfred Korzybski and Wendell Johnson, founders of semantics, identified the Extention Transference factor in the use of words and published extensively on the profound effects of mistaking the symbol for the thing symbolized while endowing the symbol with properties it does not possess.
Environments are not behaviorally neutral.
For some reason, people reared in the European tradition feel more comfortable if they have a rule to fall back on, even if it doesn't fit.

my first Verdal salmon!

I'm extremely fortunate to fish for salmon in Norway for a week every June. I fish the River Verdal, at the Tingvoll Lodge, near Vuku, with four other anglers. The beat owner, John Olav Odren, and Gary Scott look after us all, and when I say he "look after us" I really mean it. Nothing is too much trouble and they help to make it an utterly fantastic week. This year I managed to catch a couple and lost one I never saw. I caught this one on a big snaelda from the middle section.