ClustrMaps

The roadrunner is back as never before! See also: My homepage or my very obsolete site
If by any means entries in my blog are considered to be harmful or damaging, please let me know (add comment) or just mail me. In this (unhopely) case I will remove or change the contents.

Monday, March 31, 2008

Emmertjesgeheugen

Ja, dit soort geheugen bestaat echt, zie:
http://www.logosfoundation.org/kursus/2050.html
Geheugen is geen exclusiviteit van digitale schakelingen! Ook in zuiver analoge technologie kunnen analoge waarden worden opgeslagen. In de eenvoudigste vorm noemt men een analoog geheugen element een 'sample and hold' schakeling . Het principe ervan berust op het feit dat een kondensator die geladen wordt, vanaf het ogenblik dat we het laadproces onderbreken, deze lading nog lange tijd kan behouden.

Of: http://nl.wikipedia.org/wiki/Schuifregister
Er bestaan ook analoge schuifregisters, hierbij worden geen digitale signalen opgeslagen en doorgegeven, maar analoge signalen. Dit is een zogenaamde bucket brigade, ook wel bekend als een emmertjesgeheugen, te vergelijken met het doorgeven van emmers met water door mensen in een rij.

Mijn desktop kreeg het de laatste tijd zwaar te verduren met 1GB aan boord, waarvan 128MB voor de video"kaart".
Voor 20 EUR blijk je tegenwoordig al 1GB geheugen met een snelheid van 533MHz te kunnen kopen!
Een emmertjes geheugen van dit formaat (en zeker niet met die snelheid), zou een flinke eetkamertafel beslaan en Al Gore zou de energie-consumptie zwaar veroordelen.

Waarom dan nog moeite doen om software te ontwerpen en te coderen, die vriendelijk met geheugen om gaat?
In de vorge eeuw bezuinigde men nog op 2 bytes door het eeuwtal niet op te slaan.
Nu worden talloze jarfiles in het geheugen geladen, zonder dat het ooit duidelijk is of men ze wel nodig heeft.

Tja, tijden veranderen ...

Uit de oude doos: http://www.cs.virginia.edu/brochure/museum.html

Northstar 16K memory card (S-100 bus), circa 1980. Contains 4 x 9 chips indicating the parity bit was included. Parameters are set with switches in DIP (Dual Inline Plastic) sockets at the upper right and with blue jumpers found to the right of the center of the board.

En uit de nog oudere doos: http://www.computerhistory.org/timeline/?category=cmptr

MIT´s Whirlwind debuted on Edward R. Murrow´s "See It Now" television series. Project director Jay Forrester described the computer as a "reliable operating system," running 35 hours a week at 90-percent utility using an electrostatic tube memory.
Start of project:1945
Completed:1951
Add time:.05 microseconds
Input/output:cathode ray tube, paper tape, magnetic tape
Memory size:2048 16-digit words
Memory type:cathode ray tube, magnetic drum, tape (1953 - core memory)
Technology:4,500 vacuum tubes, 14,800 diodes
Floor space:3,100 square feet
Project leaders:Jay Forrester and Robert Everett

En dan was er nog deze IBM doos:
http://www-03.ibm.com/ibm/history/exhibits/701/701_1415bx06.html


The IBM 706 was formally announced on May 21, 1954.

The banks of cathode ray tubes, similar in principle to television tubes, were the heart of the IBM 701 Data Processing System. They gave the machine much of its tremendous speed and flexibility. The 72 cathode ray tubes in the Electrostatic Storage Unit could store 10,240 digits, any of which could be obtained for processing at other points of the machine in 12 microseconds. The Model 1 of the 706 accommodated 2,048 full words of 36 bits or 4,096 half words of 18 bits. A maximum of 4,096 full words of 36 bits or 8,192 half words were available when both the Models 1 and 2 were installed.

The principal advantages of Electrostatic Storage was the short time required to refer to information at any given location and send it to the computing unit, and the random access to any 706 location afforded the programmer.

The Model 1 had a monthly rental charge of approximately $2,600, and the Model 2 was rented at $3,500 a month. Customers could specify the IBM 737 Magnetic Core Storage Unit in lieu of the 706 at a monthly charge of $6,100.

The 706 was withdrawn from marketing on June 6, 1956.

Friday, March 28, 2008

Not done



Dit is een ernstige vorm van censuur.
Als dit de trend gaat worden, zie je mij ook voor het laatst op het internet.
Als mijn blog om wat voor reden dan ook als aanstootgevend wordt ervaren,
komt deze vorm van censuur op mij af.

http://www.networksolutions.com/legal/aup.jsp
Quote:
This Acceptable Use Policy encourages the responsible use of Network Solutions' services and delineates the relatively narrow range of uses of Network Solutions services that are contrary to Network Solutions' mission, generally because such uses either pose an unacceptable risk to the stability, integrity, or quality of Network Solutions' systems or the systems of its vendors, or harm (or threaten to harm) the rights and interests of third parties. This Acceptable Use Policy supplements your Service Agreement with us. Uses of the Network Solutions services described below are prohibited.

Tuesday, March 25, 2008

Het dagelijks leed dat file heet (part III)

http://www.brabantsdagblad.nl/algemeen/bdbinnenland/2869698/Vrachtwagencabine-over-de-reling-op-Maasbrug-A2.ece


De brug was glad en te smal.
Catweazle - van holbewoner tot digimens


De jeugd kent hem niet: Catweazle.
Zie de grote betweter: http://nl.wikipedia.org/wiki/Catweazle
Quote:
Erg onder de indruk van de moderne gemakken van de twintigste eeuw, maken Catweazle en Edward samen spannende avonturen mee. Aan het eind van de serie reist Catweazle terug naar zijn eigen tijd. De naam van Catweazle's pad is Touchwood.

De vraag rijst op: waaarom wilde Catweazle ondanks al die moderne gemaaken terug naar zijn eigen tijd?
Een pad is natuurlijk geen computermuis.

Toegegeven, Catweazle was excentriek te noemen.
Wellicht paste hij daarom niet in deze moderne tijd.
Waar de grijze muizen het best overleven.

Op YouTube is genoeg te vinden, zie dit fragment:

Friday, March 21, 2008

Cumbersome, error-prone, mysteries
Image:Java Logo.svg
Coding can be cumbersome.
The language does not realy matter.
Whether it's good old legacy RPG, ILERPG, SQLRPG or Java.
Handcrafted code is, see Van Dale : "sheer drudgery" or "donkey work" (in Dutch monikkenwerk).
Hard to code, hard to debug and almost never always bugfree.

See this definition of error-prone http://www.wordreference.com/definition/error-prone:
capable of making an error; "all men are error-prone"

As programmer and end-user of this software you are often puzzled by mysteries:
  1. The mystery of the disappearing database transactions
  2. The mystery of the disappearing database records.
  3. The mystery of the disappearing values in a simple list of values.
  4. The mystery of the NullPointerException.
  5. and so on ...
In RPGIII the scope of the variables (all global) is the absolute pain in the ass.

In ILEPRG you can declare procedures (having the possibility for local variables),
but you will be bothered by the datastructures to pass arguments.
And beware of the pass by reference of the procedure.
As in Java it always is pass by value.

SQLRPG seems to be a nice option, but do not make coding errors: you will be puzzled by the stuff the (pre-)compiler will spit out.
See http://forums.systeminetwork.com/isnetforums/archive/index.php?t-43004.html:
Too close to Thanksgiving, I think my brain has slowed - possibly someone can point out the obvious that I am overlooking currently.

Last but not least, there is Java, having a number of annoyances and limitations.

In a hybrid environment where Java (web)applications have to communicate with legacy systems, you will definitely end up in an argument: is the bug in the Java code or in the RPG code, or somewehere in between (???).
Then you have to debug, or System.out.println() or DSPLY (RPG opcode) to bring some light in this discussion.

Call al this a challenge!

By the way, that's a nice word, whether, see http://www.wsu.edu/~brians/errors/weather.html:
The climate is made up of “weather”; whether it is nice out depends on whether it is raining or not. A wether is just a castrated sheep.

Monday, March 17, 2008

Mispoes

De roadrunner staat erom bekend dat hij erg nieuwsgierig is.
Hij wilde die spraakmakende film van Wilders weleens zien.
Om zich een eigen oordeel (op inhoud) te kunnen vormen.
En jawel er bleek een bittorrent te zijn: Fitna Wilders Anti-Koran Movie.torrent
Na een urenlange download van 735 MB, blijkt het niet de beruchte film te zijn,
maar Soylent Green

Toch maar gewoon afwachten, wat Wilders voor ons in petto heeft ...

Sunday, March 16, 2008

Wilders gaat te ver

Wednesday, March 12, 2008

Nep blogs

Het internet is een prima medium.
Maar zoals met zoveel mooie dingen, er zijn altijd sujetten die het weten te verzieken.
Zo krijgt deze blog recentelijk comments, die verwijzen naar http://i-myblog-9w3.blogspot.com/
onder het profiel Akinol.
Nu dit is geen gewone blogger!
Er wordt vrijwel geredirect naar http://xpantivirus.com/2008/2/_freescan.php?aid=880187
Stink hier niet in.
Het lijkt een virusscanner, maar is in feite een virus.

Download niets wat vanaf deze site wordt aangeboden.
Zie http://www.bleepingcomputer.com/forums/topic111715.html
Quote:
XPAntiVirus is a rogue antivirus software that, when runs, display false results as a tactic to scare you into purchasing the software. When XPAntivirus is first installed it will create 9 entries in your Windows Registry that impersonate infections on your machine. In reality, though, these registry entries are harmless and have absolutely no effect on your computer. Instead, these entries are set so that XP AntiVirus can find them when scanning your computer and report them as infections. In order to remove these fake infections you need to purchase the software as the trial does not allow you to remove them.

Voor mij zit er niets anders op dan regelmatig deze nep comments te verwijderen.

Saturday, March 08, 2008

Collateral damage
http://en.wikipedia.org/wiki/Collateral_damage

Deze blog en alle andere op blogspot waren down:

Het succes van gratis bloggen, veroorzaakt een behoorlijke drukte op de servers van www.blogspot.com
Noem dat collateral damage: ten onder gaan aan het eigen succes.
En dan de reacties van die bloggers:
http://groups.google.com/group/blogger-help-troubleshoot/browse_thread/thread/c308c8e291bd5177/d402ad2af8c0e660?lnk=raot
Quote:
While there have been no offical response from Google, the owner of
Blogger.com, one technician was overheard to say, "Blogs, does anyone
REALLY read this stuff?"

Als alternatief dan maar de nieuwste betas gedownload:
FireFox 3.0Beta3 en IE 8Beta
Het risico van een beta is dat er nog bugs inzitten.
Deze blog editor geeft serieuze scriptfouten in IE8.

En lees deze eens:
http://today.java.net/pub/a/today/2004/02/06/davenandy1.html
Quotes:
Taking Responsibility
In a very structured environment, people tend to abdicate responsibility. People say, "It's not my job anymore. My boss is telling me what to do. A big master plan is given to me. I just have to do this module, and this module, and this module."


Fixing broken windows
The researchers did a test. They took a nice car, like a Jaguar, and parked it in the South Bronx in New York. They retreated back to a duck blind, and watched to see what would happen. They left the car parked there for something like four days, and nothing happened. It wasn't touched. So they went up and broke a little window on the side, and went back to the blind. In something like four hours, the car was turned upside down, torched, and stripped — the whole works.


Of: http://www.codethinked.com/post/2008/03/Reality-Driven-Development---Why-do-good-programmers-produce-bad-software.aspx
Quotes:
It's the fun part!
For most of us we started off hacking away at software in our younger years before we ever knew what specs or customers were.

We think we already know what needs to be written.
By the time that most programmers hear about a new piece of software that needs to be written they are already designing it in their head.

We aren't agile.
We think that specs and requirements are something that you only get before you build software.


Dat zet je wel aan het denken!


Klik op onderstaande afbeelding (moving gif):

Wednesday, March 05, 2008

Java is dead!

At least this is what some people tend to say now.
See: http://andersnoras.com/blogs/anoras/archive/2008/02/18/save-java-dead-or-alive.aspx

Whatever language you write in, your task as a programmer is to do the best you can with the tools at hand. A good programmer can overcome a poor language or a clumsy operating system, but even a great programming environment will not rescue a bad programmer.

Kernighan and Pike

Is it the language or the mess some people build with it?
Meaning the over-usage of patterns, inheritance, interfaces and layering.
While the performance and the object to relational database mapping is kind of "forgotten".
For batch programs good old procedural Java code can be written.
And a good database design to start with is a garantee for good performance.

Pragmatic code guidelines can help the coders in writing maintainable code.
The language does not really matter.
If an application grows bigger complexity will grow exponential.
It is too cheap to blame the programming language.

To me it is evident that Java is not dead.
Programs written in Java can be stable and perform well.
Crucial is good testing with realistic amounts of data.
At the moment I do not see any better alternative.

Introducing yet another language, introduces more problems then solutions:
maintain legacy code, maintain Java code and maintain this new language.
This new language will also have a steep learning curve.
So children diseases will pop-up again.
Please explain this to customers!


See: http://www.learningandteaching.info/learning/lerncrv.htm

Don't shoot the Java programmer!

Monday, March 03, 2008

Hell to Pay

Jeff Healey is er niet meer:
http://www.nos.nl/nosjournaal/artikelen/2008/3/3/030308_healey.html
Deze blinde rock en blues zanger en -gitarist behoort tot een van mijn favorieten.

En laat ik nu altijd gedacht hebben dat het was: Hell to Play.
Voor Jeff was niets te moeilijk om te spelen.

Nee, Jeff had het in deze song over het feit dat veel mensen vandaag moeite hebben om de touwtjes aan elkaar te knopen, om debet en credit in balans te brengen.

Hoewel Jeff veel covers speelt, doet hij dat vooral op zijn eigen manier.
Veel mensen zijn ziende blind.

Saturday, March 01, 2008

yet another "new" language, EGL
EGL means Enterprise Generation Language:
http://www.ibm.com/developerworks/rational/products/egl/

See: http://www.itjungle.com/tfh/tfh092407-story03.html
And read it well, RPG is a dead language.
And it's Rational wearing the pants!
See: http://www.itjungle.com/tfh/tfh091707-story01.html
EGL generaties Java or Cobel code, not RPG.

See: http://www.ibm.com/developerworks/rational/library/may07/sergi/index.html
Quote:
Web applications. Tight integration of EGL with Java Server Faces framework and tooling allows creation of Web applications in a simple and productive way, without the need to know neither java nor the details of the JSF framework.

So EGL is a RationalProgramGenerator, yet another RPG.

Quote:
The following non-IBM 4GLs can be transformed into EGL using third party tools and services: Natural, CA (COOL-Gen, COOL-Enterprise, Ideal), HPSeer.

Lucky guys, the formerly known Synon coders!

Quote:
Organizations using System i and System z
In-house development teams typically fall into two fairly distinct camps: the legacy developers working with RPG, COBOL, 4GLs, etc., and the "new" developers working with GUIs, Windows, Java, the Web, etc. If legacy development is large and there is mounting pressure to deliver new solutions to the business, the EGL value proposition will be attractive.

No word of really migrating legacy RPG to EGL?

And yes, you can download some Code snippets.
See: http://www.ibm.com/developerworks/rational/products/egl/egldoc.html?S_TACT=105AGX15&S_CMP=edge#sec6
Like this one:
How to set the cursor focus to a specific control or data field within a page
//Two parts to this Code Snippet:
// 1. Add this code to the header area of your page
// Notes:
// a. Change the [n] with an integer representing nth field on your form you wish to set focus to:
// Example: [0] setFocus to the 1st field, [1], setFocus to the 2nd, and so forth
// b. Your form name must be: form1 (default using Page Editor, but check)
//-------------------------------------------------------------------------------

function setFocus() {
document.getElementById('form1').elements[n].select();
document.getElementById('form1').elements[n].focus();
}

// 2. Replace the <body> tag in your page with the following... (remove the comments)
// Example: <body onload="setFocus();">

This has nothing todo with EGL, this is JavaScript on a html page!
And this script does not only set the focus, but overstrikes too.

And again the famous Petstore comes around:
I want to build serious business applications, not a Cola vending machine or a Petstore.
Did Rational measure performance with this simplified example?
Oh, just wait, this Petstore is a download of 18MB.

This is more then the Java application I am building now (12MB).
Too bad, this link is dead:
ftp://www6.software.ibm.com/software/developer/library/rational/zip/petstorezip.zip
And a Google search showed many Petstores (Oracle) but not the EGL Petstore.
IBM drives us into proprietary solutions.
The i-Series deserves better!
By the way, the other links to file downloads will fail too!
ftp://www6.software.ibm.com/software/developer/library/rational/zip/
is dead!
Call this a bad sign!
This link downloads a PowerPoint describing SOAP:
ftp://www6.software.ibm.com/software/BuildingSoapApplications.ppt
But no word of EGL in this document.

Maybe I should attend their workshop:
http://www.ibm.com/developerworks/offers/lp/r/rbdetws/#eglbd

EGL/Business Developer technical workshop

This is the first of two workshops dedicated to making you productive using the EGL language and Rational Business Developer Extension rapid development tools. This workshop will take 5 business days. When you finish, you will be able to use the Business Developer tools, create services, and code EGL and SQL at a near-production ready level.

Prerequisites

  • At least two years of experience using a software programming language, for example, RPG, COBOL, PL/1, Visual Basic, or PowerBuilder.
  • A working knowledge of SQL, computer skills, and a basic understanding of Web technologies is assumed.

Agenda

  • Rational Business Developer Extension Workbench development
  • Introduction to a deep-dive into the EGL language
  • Creating, consuming, and using 3rd party WSDLs
  • EGL database and sequential file access - "A to Z"
  • EGL calling Java programs, and System i and System z resources
What a pitty, I don't want "A to Z", but the complete UTF-8 characterset:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ

Lucky me, I found this link:
http://www.ibm.com/developerworks/rational/library/05/barosa-one/

Missing in action, indeed, are the goold old RPG's.
Another vendor lock-in.
This time it's Rationals solution.
The same Rational as in Rational Rose, now called XDE.
A UML modelling tool.
The same Rational of RUP.
Bloated pigs is my Pavlov reaction.


My underbelly remembers me of San Francisco, the SF (Shareable Frameworks) project of IBM.
See this dated article of Rob van der Salm:
http://www.research.ibm.com/journal/sj/372/vandersalm.html

How to convience the board of directors to invest in yet another technology,
with the big change that it is betting on the wrong horse.
But we humans are no donkeys, we hit the same stone more then twice.

I am a bit ashamed: I never heard of the GlassFish project:
https://glassfish.dev.java.net/
This is Sun (and Oracle) and it's open source.
In there is also a Petstore: https://blueprints.dev.java.net/petstore/
After following many instructions and downloading a glassfish.jar I got this working:


Indeed yet another Hello World example
An now for the Petstore ...
After struggling with PATH and creating a silly passwordfile the web application worked:

Looking at my system resources:
2 Java jobs of 20 (Database) and 100MB(Webserver).
And some pages of this Petstore did not load properly in FireFox.
Where is this world going to?

Wednesday, February 27, 2008

Software problemen(part II)

Zie ook: http://joscoenen.blogspot.com/2007/08/software-problemen-wie-kent-ze-niet-de.html
En alweer is het mis bij de belastingdienst:
http://www.volkskrant.nl/binnenland/article507967.ece/Digitale_belastingaangiften_moeten_opnieuw
De 730.000 digitale belastingaangiften die inmiddels zijn ingediend zijn door een fout in het computersysteem onbruikbaar geworden. De aangiften moeten opnieuw worden worden gedaan.
...
De fiscus rekent erop dat de eerder ingestuurde aangifte nog op de computer van de belastingplichtige staat.


De belastingdienst gaat er dus vanuit dat die computer wel betrouwbaar is of een backup heeft.
Bij de loodgieter thuis lekt de kraan
Kent u deze uitdrukking? De loodgieter is dagelijks bezig om de mooiste badkamers te maken maar om thuis dat ene lekkende kraanleertje te vervangen, dat komt er maar niet van. In alle beroepen komt dit voor, in alle varianten weliswaar.
Of ook niet leuk: Een elektricien die niet meer tegen de spanning kan.

Sunday, February 24, 2008

Anti Patterns

Learning of your own or others mistakes:
Yet Another Fucking Layer, see:
http://en.wikipedia.org/wiki/Anti-pattern#Object-oriented_design_anti-patterns

Object-oriented design anti-patterns



Friday, February 22, 2008

Java license


Zie: http://www.goldb.org/goldblog/2006/12/12/JavaInNuclearReactors.aspx
En de link die daar genoemd wordt: http://www.java.com/en/download/license.jsp

You acknowledge that Licensed Software is not designed or intended for use in the design, construction, operation or maintenance of any nuclear facility.

Tja, je zal een NullPointerException hebben in een nucleaire reactor!

En er kan veel mis met Java: http://www.cigital.com/hostile-applets/deviant1.html


0xCAFEBABE
Managers die programmeren (part II)

Deze blog blinkt uit in het quoten van andemans pennenvruchten.
Maar deze zijn vaak zo treffend dat ze zeker aangehaald mogen worden.

Zie deze url: http://tolido.blogspot.com/2008/02/it-executive-column-codeklopper.html

IT Executive column: Codeklopper

Ik heb het van horen zeggen, maar toen een verbeterde versie van de programmeertaal COBOL in 1968 op de markt werd gebracht, was de consensus dat het vak van programmeur nog maar weinig toekomst had. COBOL leek ondertussen zoveel op natuurlijke taal dat managers vanaf nu zelf konden programmeren.

Vooruit, het zal de hippietijd zijn geweest en de wereld zag er roze uit. Maar wat is er in die 40 jaar eigenlijk gruwelijk weinig bereikt. Ik ben deze week op een conferentie in San Francisco die de toekomst van de IT-specialist als onderwerp heeft. En als je zo in de wandelgangen eens wat navraagt, klinkt al snel het bekende verhaal. We zijn namelijk nog steeds zo’n beetje klaar met programmeren. De moeilijke dingen zitten steeds meer ingebakken in standaardpakketten. Voor de rest is het een kwestie van het slim aan elkaar lijmen van herbruikbare componenten, flexibele processen modelleren en vooral veel business intelligence toepassingen. En daar komt weinig programmeren meer bij kijken. Andermaal schuiven we – of we willen of niet – op in de richting van meer kennis van de bedrijfsvoering.

Nu nog kijken of er werkelijk wat van komt.

In het vakgebied lijken we nog niet echt door het rouwproces heen te zijn. Zo waren er kortgeleden twee professoren van de Universiteit van New York die stelden dat Java ongeschikt is om mee te leren programmeren. Ik had gelijk herkenning. Java is namelijk een dikdoenerige, complexe programmeertaal die veel te veel kan. Een beetje alles in huis hebben om een marslander of een kerncentrale aan te sturen en er dan de zoveelste voorraad-, polis- of klantenadministratie mee uitpersen. Overbemeten spierballenvertoon dat bijna uitnodigt tot het maken van fouten en improductiviteit.

Eindelijk werden man en paard eens genoemd!

Jammer dan dat de heren vervolgens aan de andere kant van het spectrum blijken te verkeren. Vanuit hun perspectief is Java juist een lichtgewicht middel waarmee je schaterend van het lachen snel wat geinige Internetdingetjes in elkaar zet. Als het zo eenvoudig wordt om te programmeren, dan hoeft straks niemand meer verstand te hebben van formele methoden en complexe algoritmen, daar komt hun beklag op neer. Als alternatief bevelen ze Ada aan: een nagenoeg onbegrijpelijke taal waarmee zelden een serieus programma is geschreven.

Wel geruststellend, de houding van zo’n universiteit. En een knappe prestatie om zo compromisloos afstand te nemen van de dagelijkse realiteit. Programmeren mag niet makkelijk worden: dit vak houdt zichzelf de komende 40 jaar moeiteloos in stand.


Gepubliceerd in IT Executive 6 februari 2008

Thursday, February 21, 2008

Managers die programmeren

Zie deze url: http://dutch.joelonsoftware.com/PainlessSpecs/3.html

Wie schrijft specs?

Ik zal je wat Microsoft geschiedenis vertellen. Toen Microsoft serieus ben te groeien in de laat 80-er jaren, had iedereen daar De Mythische Man-Maand (The Mythical Man-Month) gelezen, een klassieker op het gebied van software management. (Als je die niet gelezen hebt beveel ik je die van harte aan.) Het grote punt van dat boek is dat wanner je meer programmeurs aan een al uitlopend project toevoegd, het nog later klaar zal zijn. Dat is omdat waneer je n programmeurs in een team hebt, het aantal communicatie-paden n(n-1)/2 is, en dit groeit met O(n2).

De programmeurs bij Microsoft waren bezorgd hoe nu grotere en grotere programma's te schrijven, als de algemene stelling van die tijd was dat programmeurs toevoegen het alleen maar slechter maakt.

Charles Simonyi, lange tijd "chief architect" bij Microsoft, stelde het meester programmeur concept voor. Het idee was zo ongeveer dat één programmeur verantwoordelijk was om alle code te schrijven, maar dat hij kon terugvallen op een team van junior programmeur als "code slaven". In plaats van zich zorgen te maken over het debuggen van elke fuctie hoefde de meester programmeur slechts de prototype van elke functie te schrijven plus een beschrijving wat deze functie moet doen, en dan kon een van de junior programmeurs deze implementeren. (Simonyi was dan uiteraard de meester meester programmeur.) De term "meester programmeur" was een beetje te middeleeuws, dus Microsoft noemde zoiemand "programma manager".

Dit was dus bedoeld om het mytische man-maand probleem op te lossen, omdat niemand meer met iemand anders moest spreken -- elke junior programmeur sprak alleen met de programma manager, en dus groeide de communicatie met de snelheid O(n) inplaats van O(n2).

Nu, Simonyi kent wellicht de Hongaarse Notatie maar hij kent Peopleware niet. Niemand wil een code slaaf zijn. Het systeem werkte in het geheel niet. Uiteindelijk ontdekte Microsoft dat, ondanks die mytische man-maand, je toch nog slimme mensen aan een team kan toevoegen en sneller kan werken, alhoewel met verminderde marginale waarde. het Excel team had 50 programmeurs toen ik daar werkte, en het was marginaal meer productief dan een team van 25 zou zijn geweest -- maar niet twee keer zo productief.

Het idee van meester/slaaf programmeren werd afgebouwd, maar Microsoft had nu al die mensen rondlopen met de titel "programma manager". Een slimme man met de naam Jabe Blumenthal vond toen de functie van de programma manager opnieuw uit. Vanaf toen zou de programma manager eigenaar zijn van het ontwerp en de spec van het produkt.

Sindsdien verzamelen programma managers bij Microsoft de requirements, zoeken uit wat de code moet gaan dien, en schrijven de specs. Er zijn gewoonlijk ongeveer 5 programmeurs per programma manager; deze zijn verantwoordelijk voor de implementatie die de programma manager als spec heeft uitgeschreven. Een programma manager moet ook de marketing, documentatie, het testen, de localisatie, en alle andere vervelende details coördineren, iets wat een programmeur zich niet mee bezig moet houden. Daarbij moeten programma managers bij Microsoft de "big picture" van de firma in het hoofd heben, terwijl de programmeurs vrij zijn om zich op de bits en de bytes te concentreren.

Programma managers zijn van onschatbare waarde. Als je al eens geklaagd hebt over hoe de programmeurs meer geïnteresseerd zijn in de techniek dan in de marketability, dan heb je een programma manager nodig. Als je al eens geklaagd hebt over het feit dat mensen die goede code kunnen schrijven niet behoorlijke Nederlandse zinnen kunnen bouwen, dan heb je een programma manager nodig. Als je al een geklaagd hebt over hoe je produkt alle kanten opdrijft zonder een klare visie, dan heb je een programma manager nodig.

Sunday, February 17, 2008

Just enough to be dangerous

http://onlineaspect.com/2007/09/27/when-you-know-just-enough-to-be-dangerous/

I’ve always been amazed by the number of books that promise to teach you how to program in just a few days or weeks. I recently stumbled across a book at Amazon entitled: Sams Teach Yourself PHP in 10 Minutes. 10 minutes!!!

Why do we think it is possible to learn JAVA in the same time it takes to make a pot of coffee?

It has taken me years to learn how to program and I am still learning new things every day. Imagine if we applied this same thinking to other skills. I’ve never seen a book on how to learn to play the piano in 10 minutes. That’s because everyone knows that learning to play the piano takes countless hours and years of practice. No one should expect to become an expert overnight.

Why are people in such a rush?

Let’s stop spreading this lie that you can learn everything you need to know about programming just by reading a $20 book. You can’t. Sure, you might be able to gain a superficial familiarity, but not the deep understanding that is required to build a real application. Books like this are a great way to explore your interests. Just realize that by the time you finish the last page, you probably know just enough to be dangerous.

Tuesday, February 12, 2008

Onze excuses

Klik op dit plaatje voor de grotere versie:
Die Zweden toch!

Zweden is eindelijk web-enabled.
Het is immers www en niet vvv.

Zie: http://www.depers.nl/algemeen/?ID=160618

In Zweden is het afgelopen jaar iets bijzonders gebeurd: er is een letter toegevoegd aan het alfabet. Nederlanders zullen vreemd opkijken als ze horen om welke letter het gaat, want het is de voor ons zo normale w. Ze noemen hem in Zweden overigens, letterlijk vertaald, de dubbele v, wat een beetje lijkt op het Engels dat spreekt van double-u.

Waarom stond de w nog niet in het Zweedse alfabet? Dat heeft ermee te maken dat de Zweden de letter v net zo uitspreken als de letter w. In oorspronkelijk Zweedse woorden wordt die w-klank altijd geschreven als een v. De w komt eigenlijk alleen maar voor in namen; een bekende is bijvoorbeeld Raoul Wallenberg. Maar het Zweeds wordt net als het Nederlands beïnvloed door het Engels en dat levert een groot aantal leenwoorden op, zoals watt, wc, weekend, whisky en workout. Die worden ook in het Zweeds met een w geschreven. Tot voor kort werden die Engelse leenwoorden echter in woordenboeken onder de v geplaatst. Daaraan is nu een einde gekomen. De Zweedse Academie, die niet alleen de Nobelprijs uitreikt, maar ook het Zweedse groene boekje opstelt en daarmee dus de spelling bepaalt, heeft besloten van de w nu toch eindelijk een zelfstandige letter te maken. Met de komst van internet, dat veel leenwoorden opleverde die beginnen met web-, is het aantal woorden dat begint met een w zo gestegen dat men dit een logische stap heeft gevonden.