humility, assertiveness and sense of humour

Laziness, impatience and hubris, the 3 perlprogrammer virtues may have their source in these3 critical personality traits from the Psychologyof Computer Programming (1971) by GeraldWeinberg, apparently one of the first 'people'people in programming.

Assertiveness is the other side of the coin ofhumility, and both are necessary. Withouthumility, success leads to overconfidence(hubris), which leads to blind self-destruction.On the other hand, assertiveness is like a steamboiler without a safety valve. And on thegripping hand, a spirit of self-criticism is likea safety valve without a steam boiler.

This collusion of opposites is a reason for thehumour of the 3 perl virtues.

The other necessary traits: ability to toleratestressful situations, adaptability to rapidchange, and neatness.

This book seems to have got under the radar here.I wonder why I have heard more about acontemporary at IBM, Brooks and his MythicalMan-Month, which appears to have come out 4 yearslater in 1975, when essentially the sameobservation is made by Weinberg.

It appears like Brooks he escaped from IBM intoacademia. It appears the suits sent him back todo a PhD in psychology. The experience seems tohave only changed him superficially. I wouldn'tcall the book scientific, despite the inclusionof some experiments he did teaching programming.

He tells stories about life as a programmer inrelation to some ideas of academic psychology.One funny one is about 'a military project thatinvolved the creating of a world-wide network.'The government was getting completely fictionalaccounts of the progress being made. He also saysthat when programmers don't get feedback abouttheir work, 'they start to vary the input inarbitrary ways to see the effect--to get somefeedback, even at the risk of a poor evaluation.'

Some interesting hairshirt views about learning:'When our program does not run correctly, we havethe opportunity to learn more specific lessons.Quite often, under the pressure of production,the programmer is tempted to bypass a troublespot with a fix that he knows will work, since itdoes not use some new technique which he wastrying to master... [But] he will have missed agolden opportunity for learning. No time will bemore propitious for learning than that time atwhich the need for learning is felt moststrongly--the very moment when we detect anerror.'

Some principles for language design: Uniformityor 'If a programmer asks, Can I write...? Theanswer should be yes. Just like the child who istold, No, too often, the programmer working in anonuniform language will tend to be discouragedfrom trying new things.' This is close to DWIM. Ithought I saw something close to TIMTOWTDI too,but perhaps what I remember was my looking forit.

Saturday December 31, 2005

02:37 AM

perl attack by Amazon programmer

A disturbing read by someone apparently
involved in language wars at Amazon.
Apart from list flattening and clunky
references, his main problem seems to be
Larry Wall. But because he may have been
drunk at the time, perhaps the style
hides a plea to Amazon management not to
head in perl's direction. Larry Wall,
over my dead body.
http://opal.cabochon.com/~stevey/blog-rants/blog-ancient-perl.html

The issue of whether your personal atttitude to the
language is determined or not by your
attitude to Larry Wall is an interesting
one, however. A lot of prominent perl
people seem to have a zany sense of
humor, zanier than that of other
language proponents. But perhaps they
acquired it as they learned the
language. Perhaps proponents of other
languages have a sense of humor too, but
are funny in private, rather than in
public.

The skeptical Scottish philosopher's
account of The English Civil War of the
17th century, fought over religion,
warns of the dangers of sectarianism.
It's fascinating. Never again will you
ridicule Third World political
developments, having read this.

Friday December 23, 2005

12:20 AM

Dan 'Independent Donator' Kogai on open source sponsorship

He blogs (in Japanese) about the difficultsituation, starting from O'Reilly's laying off ofLarry Wall and ruby's Matsumoto Yukihiro'spossibly getting hit by a bus.http://blog.livedoor.jp/dankogai/archives/50280082.html

Sunday November 06, 2005

05:06 AM

Design Patterns

I found Design Patterns in the library whilelooking for a Haskell book and had to read it,because I had read so much about it.It's quite a different sort of book than DamianConway's Object-Oriented Perl. I haven't actuallyread that book, but judging from the downloadablechapters, it's a nuts-and-bolts book. Perlprovides you some object-oriented jigsaw puzzlepieces and Object-Oriented Perl helps you workout which pieces fit together to get things done.

Design Patterns, on the other hand, is a top-downkind of book. Its focus is on what sorts ofthings get done in object-oriented programming,and although there is C++ and Smalltalk code, Ithink it is as an example. The book is not justfor users of those languages.The impact of the book was because of thissuper-language level, I think. It wasconceptualizing (naming and framing) designstructures which existed but hadn't beenrecognized and which couldn't be captured in justa discussion of language syntax.The role of Christopher Alexander in the book isinteresting. He may have been inspirational, butthere is hardly anything in it that depends onhis ideas, I think.If he read it, I think he would have feltdisappointed, because of the lack of real use ofhis ideas. Peter Gabriel has written stuff whichputs Alexander's ideas to work better, I think.

Actually, I get the feeling that the esteem inwhich Alexander's ideas are held is littleconsolation to Alexander for his inability to getarchitects to take him seriously.A better metaphor than architecture is genreanalysis. It fits in with the language metaphor.On the first page they use the analogy of plotstructure and OO design decisions.The book is kind of repetitive. It looks likethey wrote parts separately, and then put themtogether. The motivations for each pattern areoften repetitions of the discussion in the Lexicase study, which seems not to be a real program,but a made-up example.I've been reading the book in the kitchen, ratherthan in front of the computer, and although I'mdoing something with iterators at the moment, Idon't think the discussion of Iterator pattern isgoing to have much effect on what I'm doing.

Perhaps I'll regret not reading more carefullywhen the book is back in the library and I'mstruggling with code.Actually, they do a good job of teaching. Theproblem is that the real work is done by thelearner.In their brief history of the writing of thebook, they say in the final year they put agreater emphasis on the problem a pattern solves.This was connected to the difficulty of learningthe patterns. The only ones who could understandthe patterns were the ones who already used them.

This is an important observation. I can't reallyconnect my problems with the problems they aresolving, so I am not going to learn theirsolutions.For more serious learners, perhaps end-of-chapterexercises will not help very much. The only wayfor learners to learn the patterns is toconceptualize everything as a nail and try to hitit on the head with a hammer.Only when they get a better feeling for what isand isn't a nail will they have really learnedthe patterns. Until then, they are trying themout.This is the reason for the complaint byexperienced programmers about the rigidity ofpeople who have just read the book. They arestill learning.This is a higher-level learning than the learningof how to code the patterns, but connected tothis lower-level learning.

Saturday May 28, 2005

12:30 AM

G in GNU: Silent or pronounced?

Yesterday in Taiwan, Richard Stallman said it is
pronounced, but I disagree. He talked about the
etymology of the name. There had been a series of
FINE, SINE programs, meaning this program Is Not
Emacs. So he started working down the alphabet
looking for Something Not Unix and found GNU.

There apparently had previously been pop culture
plays on the pronunciation of gnu and seeing it's
20 years since the platform got going it is not
'new' anymore. That was basically his case.

My argument for not pronouncing the G is that we
need to stop an infinite regress. Or is it Gs all
the way down?

What does the G in GNU stand for? If it doesn't
stand for anything, then silence is the
appropriate pronunciation. If it stands for gnu,
a gnu, or anything else, ie if the name really
means A gnu (Entity X) is not Unix, the joke
isn't so funny.

Sunday May 08, 2005

05:37 AM

use.perl.org/search.pl?op=journals for recent journals41

I was frustrated by not being able to see a listof the most recent journals while logged in, thesame way that you can when not logged in, so Ifelt quite pleased with myself, realizinghttp://use.perl.org/search.pl?op=journals givesyou that list, logged in or not.

At the same time, I wondered why it took me solong to realize that I could enter by hand theURL, looking at it from the link on the frontpage.

I thought that may apply only when there are
agencies competing for the donor's money. If
there is only one way to contribute to a worthy
cause, then your mind is on the worthiness of the
cause and less on the efficiency of the cause's
agent.

But if such is not the case, why not bring the
YAS back into existence, and have it compete with
the TPF in the form of a race to fund developers
and reach milestones? People might be excited by
the prospect of an easy expression of their views
about perl6 in the form of a choice of whether to
give their money to the YAS or the TPF.

The talk was, Kwiki, the Ritalin and Everything.
It seemed he wanted to look within and explain
why he was different. What did he say about
Autrijus, Ritalin and himself? Autrijus
suggested he take some Ritalin? He suggested
Autrijus take some Ritalin? He took some of
Autrijus' Ritalin. Autrijus asked him if he was
taking Ritalin?

The second slide was of 'Republican rocker' Ted
Nugent (http://en.wikipedia.org/wiki/Ted_Nugent),
who played at the first rock show he ever went to
at the age of 16 in high school.

The third one was of Barry Manilow
(http://en.wikipedia.org/wiki/
Barry_Manilow), who they apparently beat up. But
the song, Mandy, was a good song, I think.

So Kwiki Sucks Rocks, but to get back to
self-analysis, he said he was a slow typist. I
can't remember him saying it at the talk, but on
the slide he says he is easily distracted. On
the other hand, one of his strengths is strong
legs, and sticking to a theme. Being easily
distracted seems the opposite of sticking to a
theme, but perhaps being distracted happens from
moment to moment, and sticking to a theme
happens over long periods. I think he was
referring to his work with perl.

Reinventing everything was both a strength and a
weakness.

Anyway he likes Kwiki, because it social and
distributive. And life is a video game, the only
way out of which is to hack, hack, hack,
collaboratively.

On the Six, Drugs and Larry Wall slide, he says
he has ADD. A different explanation of
his unconventionality might be the influences on
him like Nugent and Wall.

In a recent p6-l message, Larry Wall says an
important part of his psychology was being
subjected to a lot of 'I'm not offended by what
you do, but others might be, so don't do it'
teaching, in other words, Be Conventional, which
he had to work through. Ingy captures this Larry
Wall spirit.

He also needed an acoustic guitar, and apparently
was going to sing at the end of the conference,
but was prevented by Autrijus going overtime on
his perl6 introduction.

On the weekend at the conference at the
backpackers hostel I was at there was a terrible
Hugh Grant movie on TV where the kid wants to get
through to his mother by singing at a school
event, Killing Me Softly with Your Song, but the
other kids start making fun of his bad singing,
so Hugh Grant saves the kid by coming out with
his guitar and helping the kid sing the song, and
give us a happy ending.

Just sing the stupid song, stupid kid! They're
making fun of you is part of the deal, I was
thinking.

So, the fact we DIDN'T get to be embarrassed by
Ingy taking his clothes off and doing Ted Nugent
impressions was funny.

He is also apparently working on Cog with Ward
Cunningham, sort of like Kwiki from a shell. It
appears to be somewhere in between vaporware and
releasable.

Back to ADD, just as Autrijus was starting his
2-hour intro to Perl6 and releasing
pugs-6.0.13 at the same time, ingy wanted him to
install a new Spork::S5Theme. Autrijus
installed it, but immediately uninstalled it.
Perhaps he didn't like the pug picture.

I wonder why Ingy was doing this. Was he offering
Autrijus another hoop to keep in the air? Did he
think the pug picture was important for the
presentation? Was this ADD in action?
His other
presentation was about FreePAN, also among the
slides at http://yapc. elixus.org/slides.html. It
is like CPAN, but with subversion and all
revisions are available. It looks like it would
spread out from the Taiwan Academica Sinica's
Open Foundry.

I was interested in who he was competing with
with FreePAN. Afterwards, I tried to ask Leon
Brocard about the application of the ideas of his
talk about APIs into the Yahoo and Google search
engines to a CPAN shifting more of the load to
clients, but he didn't think they had much
application.

Then I asked him how he would develop new CPAN.
He asked me what's wrong with h the old one. I
said handling perl6 and distributing 2 versions
of one module. I mentioned the problems with
modperl 2. He and Sam Vilain didn't have much
good to say about modperl 2.

Anyway, Ingy seems to be firmly on the subversion
and svk bandwagon. Although there may be
something on the slides about Kwid, he didn't
talk about it at the conference, I think. He and
Sam Vilain are apparently working on Perldoc now,
however.