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.

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.

Saturday, February 09, 2008

De vloek van de diacrieten (part II)

Zie ook: http://joscoenen.blogspot.com/2007/09/de-vloek-van-de-diacrieten-blijft-op-de.html
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ

En in web-applicaties ligt het ook moeilijk.
Het gebruik van een Filter om van een windows characterset naar UTF-8 encoding te komen is een oplossing, immers de queryString is daarvoor te gebruiken.
De parameterMap is immers al verkeerd gecodeerd (ISO8859-1)!

Zie: http://www.ibm.com/developerworks/java/library/j-tomcat/
In de web.xml staat dan:


Om het Filter de parameterMap van het request te laten wijzigen is een HttpServletRequestWrapper nodig: MutableHttpServletRequest
Het filter geeft deze wrapper terug in plaats van het oorspronkelijke ServletRequest.

Zie ook: http://forum.java.sun.com/thread.jspa?threadID=682565&messageID=9793595
En: http://weblogs.java.net/blog/felipegaucho/archive/2005/11/cleaning_the_se.html

The interface javax.servlet.http.HttpServletRequest is primary implemented through the class javax.servlet.http.HttpServletRequestWrapper and the map of parameters used by this class is locked, i.e., non-mutable. My filter was designed to replace the dangerous parameters by the clean ones, but the map doesn´t allow me to change the contents of the original parameters map. After some posts into discussion lists, I developed a request wrapper. I called that as MutableHttpServletRequest due to its mutable map of parameters.
See: http://64.233.183.104/search?q=cache:HLaJDX6FhvoJ:fisheye5.cenqua.com/browse/cejug-classifieds/web-app/JavaSource/net/java/dev/cejug/classifieds/util/MutableHttpServletRequest.java%3Fr%3D1.2+classifieds/util/MutableHttpServletRequest&hl=nl&ct=clnk&cd=1&gl=nl&client=firefox-a

En dit is kennelijk allemaal nodig om het EURO teken (€) intact te laten!
Dus niet: %E2%82%AC (dit is dan UTF-8)
http://www.eki.ee/letter/chardata.cgi?ucode=20a0-20cf

Wednesday, February 06, 2008

Notes from the underbelly

Ik denk dat ik een juiste naam voor mijn blog heb gevonden:
Notes from the underbelly.
Zie http://en.wikipedia.org/wiki/Notes_from_the_Underbelly


Hoewel volgens Wikipedia heeft onderbuikgevoel een negatieve lading:
http://nl.wikipedia.org/wiki/Onderbuikgevoel
Het begrip onderbuikgevoel (meervoud: onderbuikgevoelens) wordt in negatieve gezin gebruikt voor gevoelens en emoties die men als negatief ervaart. Het woord is in die zin een pejoratief

Let hierbij op de fraze "in negatieve gezin" !!!

Maar er is niets mis met een gezonde vorm van intuïtie.
Of noem het fingerspitzengevoel.
Het leggen van verbanden en het doorzien van de samenhang.

Tuesday, February 05, 2008

Rava

Ever heard of Rava?
It's a kind of a practical joke:
it means an odd combination of RPG and Java.
This language is ILE RPG, see this code sample:
PReadNext B
DReadNext PI
/free
exec sql fetch next from trCursor into :transrec:indNull;
/end-free
PReadNext E

Partially free format and semicolon at the line end, like Java.
Partially strict formatted, like good old RPGIII.
If you think Java is complex, then Rava really hits the fan!


Java for RPG Programmers:
http://www.mc-store.com/5234.html

The following links provide access to the manuals,
so nobody can ever blame you of not reading the manuals (RTFM):
http://en.wikipedia.org/wiki/RTFM

All manuals:
http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp

ILE RPG Reference:
http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/books/sc092508.pdf

Stories about SQLRPG:
http://www.itjungle.com/fhg/fhg030205-story01.html
http://www.itjungle.com/fhg/fhg081005-story01.html

And a nice document describing select/fetch:
http://developer.mimer.com/documentation/Mimer_SQL_Programmers_Manual/Accessing_Dbase_objects2.html
Note: It is advisable always to use an explicit list of items in the SELECT statement of the cursor declaration. The shorthand notations "SELECT *" and "SELECT table.*" are useful in interactive SQL, but can cause conflicts in the variable lists of FETCH statements if the table definition is changed.

And:
Host variables in the variable list correspond in order to the column names specified in the SELECT clause of the cursor declaration. The number of variables in the FETCH statement may not be more than the number of columns selected. The number of variables may be less than the number of columns selected, but a "success with warning"-code is then returned in SQLSTATE.

If the Rava seems to work, you still expect (indeed):
success with warning

Also the indicator variables are explained:
http://developer.mimer.com/documentation/Mimer_SQL_Programmers_Manual/Communicating_with_app2.html#1112516
In embedded SQL, indicator variables associated with main variables are used to handle NULL values in database tables.

See also this blog-entry:
http://joscoenen.blogspot.com/2008/01/much-ado-about-nothing-interesting.html

Sunday, February 03, 2008

Het dagelijks leed dat file heet (part II)

A2 urenlang gestremd na kettingbotsingen
Gepost door Redactie - Bron: ANP
Gepubliceerd: zaterdag 2 februari 2008 @ 18:16
Icoon File De A2 (Utrecht - Den Bosch) is vandaag tussen Waardenburg en Zaltbommel urenlang gestremd geweest na kettingbotsingen waarbij in totaal 35 voertuigen waren betrokken. Vier mensen zijn met verwondingen naar het ziekenhuis gebracht.

Twintig anderen zijn ter plaatse door medisch personeel van hulpdiensten nagekeken, aldus een woordvoerster van de politie.

De eerste botsing had rond 11 uur plaats vlak voor de Waalbrug bij Zaltbommel in de richting Den Bosch. Wat de oorzaak voor die botsing was, moet uit nader onderzoek blijken. Bij de eerste botsing waren zestien auto's en twee vrachtwagens betrokken. Daarna volgden nog vier botsingen tussen in totaal zeventien auto's. De weg was over een lengte van 1100 meter bezaaid met autowrakken volgens de politie.

De brandweer moest een aantal mensen uit hun auto's bevrijden, maar niemand raakte zwaargewond. In de brandweerkazerne van Waardenburg was een noodopvang ingericht. Hulpdiensten zijn uren bezig geweest om alle autowrakken van de weg te takelen.

De politie sloot de A2 in zuidelijke richting helemaal af. In noordelijke richting ging een rijstrook dicht om de hulpdiensten doorgang te verlenen. Die afsluiting leidde tot lange files in de wijde omgeving van Zaltbommel. Ook op de snelweg A15 (Nijmegen-Rotterdam) liep het verkeer vast. Pas toen de A2 kort voor vier uur weer helemaal open was, begon het verkeer weer door te stromen.

Blog Archive