martedì, gennaio 14, 2003

Spesso mi domandano come si trova un lavoro interessante in un'azienda di avanguardia. Ecco una possibile risposta. Green Card lottery registration, US immigration, Green Card L’organizzazione Usafis ti invita a partecipare al programma per ottenere la Green Card. Secondo la legge approvata dal congresso, se non sei cittadino americano puoi partecipare al sorteggio e vivere e lavorare legalmente negli Stati Uniti, grazie al programma “Diversity Green Card Lottery”.
Quando si deve prendere in mano codice creato da chi ha gusti diversi dai nostri e integrarlo con un corpo di codice con convenzioni e regole che spiace lasciar cadere, vale la pena di usare un beautifier, cioè un programma che riscrive il codice secondo regole (estetiche) di indentazione prefissate. L'ultimo che ho provato è Jalopy, un progetto open source ospitato su Sourceforge. Funziona molto bene e non è cascato nei punti in cui jacobe si va a impuntare. Contro: è scritto in Java, modulare oltre misura e complicato più del necessario. Invece di un singolo eseguibile bisogna installare molti file. Peri default Jalopy applica le regole di indentazione Sun. Jalopy Java Source Code Formatter Beautifier Pretty Printer Jalopy is a source code formatter for the Sun Java programming language. It layouts any valid Java source code according to some widely configurable rules; to meet a certain coding style without putting a formatting burden on individual developers.
Nelle pagine dedicate al Java Community Process possiamo trovare quattro miglioramenti al linguaggio che dovrebbero vedere la luce on la release di "Tiger", la versione 1.5 del Java SDK. The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 201 The proposal extends the Java programming language in four specific ways: 1. A syntax for defining enumerated types. This syntax provides linguistic support for the Typesafe Enumeration pattern. 2. An automatic conversion from primitive types to their corresponding reference type wrappers. This conversion facilitates the integration of generics into the language, and reduces inessential clutter. 3. Enhanced for loops allow convenient iteration over collections, without the need for an explicitly defined iterator. This reduces the need for boilerplate iteration code and the corresponding opportunities for errors. 4. Static import. A mechanism to allow the use of unqualified constants.
Ecco l'articolo che introduce i generatori in Python spiegando bene perché la loro introduzione può giovare alla soluzione di alcuni compiti applicativi. Quello che è straordinario in questa pagina è la chiarezza e la gradualità con cui vengono presentati i concetti. Dopo avere letto il testo si capisce e si è in grado di spiegare perché una esotica funzione del linguaggio ha uno scopo. Com'è diverso questo approccio da quello da manuale di riferimento, un testo che affronta con la neutrale attenzione per i dettagli dell'entomologo i temi più diversi per importanza e difficoltà, come "cose da illustrare". Una descrizione di un meccanismo da cui sia rimossa ogni causa che ha portato alla sua creazione non può essere comprensibile. Di più, va notato che anche quando l'intento è quello di farsi capire, solo pochi (purtroppo) ci riescono con la sfolgorante capacità didattica dell'autore di questa pagina. 2 PEP 255: Simple Generators

mercoledì, gennaio 08, 2003

La via che può essere indicata non è la vera via e il codice che può essere compilato non è il vero codice. Il Tao per programmatori è tutta una collezione di perle di saggezza, come questa. UDDF - Tao of Programming There was once a programmer who was attached to the court of the warlord of Wu. The warlord asked the programmer: ``Which is easier to design: an accounting package or an operating system?'' ``An operating system,'' replied the programmer. The warlord uttered an exclamation of disbelief. ``Surely an accounting package is trivial next to the complexity of an operating system,'' he said. ``Not so,'' said the programmer, ``when designing an accounting package, the programmer operates as a mediator between people having different ideas: how it must operate, how its reports must appear, and how it must conform to the tax laws. By contrast, an operating system is not limited by outside appearances. When designing an operating system, the programmer seeks the simplest harmony between machine and ideas. This is why an operating system is easier to design.'' The warlord of Wu nodded and smiled. ``That is all good and well, but which is easier to debug?'' The programmer made no reply. Per inciso, Tao è il nome di un'infrastruttura CORBA aperta.

venerdì, gennaio 03, 2003

Servlets.com Archives | jdom-interest Il DOM non è il modo più semplice di usare l'XML. In particolare il programmatore ha poche scelte oltre a lanciarsi nel parsing o creare una macchina a stati per rimediare all'assenza di contesto di SAX. C'è un modo più semplice e più intuitivo per i programmatori Java di usare XML ed è JDOM. Ecco una curiosa citazione dell'autore di JDOM presa da una conversazione fra Elliotte Rusty Harold, l'autore di una prima informale pagina di introduzione a Java e Jason Hunter, l'ideatore di JDOM. "I once heard Jason make an offhand comment, something like "The next time I dream up an open source project I'll pick somehting easier than an XML API, like an operating system maybe." Unfortunately I didn't write it down. :-( So, Jason, would you like to reporse whatever it is you actualkly said for the record?" I think your quote captures the thought fine. -jh-