ATTENZIONE! Questo sito si è trasferito all'indirizzo stm.sottosuolo.org, e presumibilmente non riceverà più aggiornamenti!

Ultimo Aggiornamento di questa pagina: 4/07/2006 - 18:36

Torna alla homepage

Programmazione

Giacché programmatore sono, di programmazione conto di parlare.


Indice


Post del mio blog relativi alla programmazione

La beltà di Visual Basic 6

Scala JKL di gravità dei bug

GradoGravità del bacoEffetti
INessun baco visibile, compilazione ed esecuzione perfette out-of-the-box.Sorriso a 32 denti.
IIQualche svista sintattica, niente che non si risolva in frazioni di secondo.Ampio sorriso.
IIIIl baco si lascia correggere solo dopo una breve riflessione.Fugace aggrottamento di ciglia.
IVUn accavallamento di bachi minori rende necessarie varie prove in sequenza.Si sbuffa e si borbotta.
VUn baco bastardo tiene impegnati per diversi minuti.Bestemmie sussurrate, minacce di violenze alle periferiche.
VIUn baco laido si annida in un posto dove non si era pensato di guardare. Si può raggiungere e superare l'ora di ricerca per neutralizzarlo.Le periferiche di interfaccia con l'umano cominciano a subire moderate violenze.
VIIDopo numerose ore di sviluppo, si scopre che il design era difettoso fin dal principio, e bisognerebbe rifare tutto da capo. La soluzione di ogni errore porta via tempi inumani.S'irraggia odio per il calcolatore. Chi staziona nei pressi assiste a quelli che appaiono come incontri di pugilato.
VIIIUn baco bastardamente laido, difficile da risolvere di per sé, nel frattempo vi ha eliminato dati preziosi, magari altri sorgenti.Ostentando indifferenza introducete in ufficio un maglio da mezza tonnellata e punite il calcolatore per la sua sfrontatezza.
IXIl vostro progetto è pronto, terminato. Fate solo quell'ultima modifica e... e scompare tutto dal vostro hard disk, senza che capiate il perché; l'ultimo backup valido risale a un mese prima.I calendari si staccano dalle pareti e vanno a nascondersi negli angoli turandosi le orecchie per non sentire; le vibrazioni prodotte dall'incazzatura cominciano a essere misurabili in gradi della scala Richter.
XIn seguito a un baco di grado inferiore, tirate una capocciata al monitor in preda alla disperazione; quando rinvenite, vi accorgete di aver perso la memoria, e che l'unico linguaggio di programmazione che vi ricordate è la guida TV.La tastiera viene proiettata fuori dalla finestra a velocità Mach 1.5; il bang sonico generato provoca l'esplosione del monitor. L'unità di elaborazione centrale viene assorbita in un buco nero.
XIChiedete ai vostri compagni di sventura se possono farvi il piacere di testare il vostro software tutti in contemporanea. Sfortunatamente, le chiamate di sistema a basso livello che avete incluso nel software e un paio di stack overflow generano l'istantaneo azzeramento di tutti i dati su tutti i dischi di tutti i computer su cui era eseguito e relative reti locali.Emigrate e vi fate una plastica facciale, ma a causa delle macumbe morirete giovani, visualizzando una schermata blu poco prima di spegnervi.
XIIPer qualche oscuro motivo mistico, il vostro software spalanca le porte dell'Inferno.Bestemmiate, ma solo per ingraziarvi i nuovi padroni della Terra.

Cose di utilità

Fare il backup rapido dei vostri progetti (in windows)

Supponendo che teniate tutti i vostri progetti nella cartella C:\Progetti, create lì dentro un file .bat e copiateci queste righe:

Modificate il contenuto delle variabili "backupdir" e "whereProjectsAre" in base a dove volete far finire il file di backup e a dove tenete tutti i vostri progetti; poi procuratevi un'applicazione di compressione - io ho usato lo zip.exe incluso in cygwin (di cui potete trovare una versione windows-nativa qui), che avere installato è cosa buona e giusta, ma voi potete usare la vostra preferita - modificando il batch di conseguenza.

Una volta creato e modificato appropriatamente il file, vi sarà sufficiente, da Esplora Risorse, trascinare sul .bat le cartelle dei vostri progetti (una alla volta) per avere la creazione istantanea e automatica di un file C:\Backup\NomeCartella_AAAA_MM_GG_hHHMM.zip.


Java

Installare Java

Java è un linguaggio di programmazione creato da Sun, ma le sue specifiche sono aperte: ne esistono quindi implementazioni sviluppate indipendentemente, ad esempio da IBM o dal Progetto GNU. In questa mini panoramica considereremo tuttavia principalmente le release di Sun, per ridurre la (comunque presente) confusione.

J2RE, J2SE, J2EE

La maggior parte delle persone ha al piú a che fare con il J2RE, Java Runtime Environment. Questo pacchetto contiene eseguibili e librerie sufficienti a eseguire qualsiasi applicazione Java, a patto che sia stata sviluppata su una versione di java compatibile - può infatti succedere che tra una release e l'altra nascano nuove funzionalità non presenti nelle release precedenti; la soluzione è ovviamente tenersi sempre aggiornati.

Gli sviluppatori java hanno forzatamente a che fare con J2SE, Java 2 Standard Edition, altrimenti detto J2SDK (Java 2 Software Development Kit). Questo pacchetto contiene un J2RE completo (solitamente nella sottocartella \jre), e vi aggiunge intorno librerie ed eseguibili utili allo sviluppo (per compilare, creare documentazione, creare archivi, ecc.).

Per chi poi debba sviluppare in ambito web (lato server), potrebbe essere necessario l'utilizzo di J2EE, Java 2 Enterprise Edition. Qui tuttavia Sun molla un po' le briglie: la sua implementazione del J2EE è qualcosa di utilizzabile in produzione, ma al contempo quasi un "Proof of concept". La cosa è comprensibile, poiché sappiamo come la rete sia la frusta del programmatore, sia a livello di complessità che a quello di sicurezza - e in questo campo la varietà è un bene.

L'implementazione di Sun del suo J2EE si chiama Application Server, ma altre implementazioni complete delle specifiche sono, per fare esempi, Geronimo e JBoss. Per chi si accontenta di un server web con supporto a java, che però non implementa per intero J2EE, c'è Tomcat.

Casomai abbiate deciso di installare il pacchetto J2EE tutto-compreso di Sun, probabilmente troverete anche J2SE nella sottocartella \jdk (e quindi troverete il J2RE nella sottocartella \jdk\jre). Potete tuttavia scaricare e installare Application Server separatamente, o non installarlo per nulla e usare una delle alternative - la scelta sta a voi.

Installare Java e impostare il sistema operativo (variabili d'ambiente)

L'installazione in sé dei vari pacchetti è piuttosto lineare. Scegliete quale versione è di vostro interesse (solo il runtime, il developer's kit, application server), scegliete al limite dove posizionarla (in windows attualmente ho java in queste cartelle: C:\Java\j2eesdk-1_4_03\jdk\jre). E' possibile che l'installazione vi aggiorni automaticamente la variabile di sistema PATH (verificate se lo faccia solo per l'utente corrente o per tutti); in caso contrario dovrete impostarla voi.

Impostarla come?

Perché le applicazioni java si avviino, è necessario che java.exe e javaw.exe siano nel path. Per far questo, bisogna modificare la variabile relativa (%PATH% in Windows, $PATH in linux e parenti) e aggiungere alla sua lista (fatta di cartelle inframezzate da un separatore, ";" in windows e ":" in linux) la cartella \jre\bin (jre è dove avete installato il vostro Java Runtime Environment). Se siete sviluppatori e avete installato J2SE, risparmiatevi la fatica e mettete invece nel path la cartella \jdk\bin, che oltre a java.exe e javaw.exe conterrà javac.exe, jar.exe e tante altre utilities interessanti. Per J2EE non sono necessarie altre modifiche del PATH.

Nota: la variabile PATH viene letta dal sistema operativo da sinistra a destra. Sarebbe a dire che se ci sono 3 cartelle, PATH="cartella1:cartella2:cartella3", e la prima e l'ultima contengono entrambe un eseguibile "java.exe", sarà l'eseguibile presente nella prima cartella ad essere richiamato se proverete a lanciare java.exe da una posizione arbitraria. Tenetene conto, se installate piú JVM (Java Virtual Machine) sulla stessa macchina.

Rimane solo da modificare, o creare, la variabile CLASSPATH (%CLASSPATH% o $CLASSPATH). Mentre in release passate di Java era necessario inserire nel CLASSPATH la posizione del J2SDK, ora questa è riconosciuta automaticamente; rimane però da aggiungere, se non presente nella variabile, ".", sarebbe a dire "la cartella corrente".

Se avete fatto tutto bene, ora dovreste avere un'installazione di java funzionante!


Installare e configurare Eclipse per usare J2EE

Questa guida passo passo spiega come installare eclipse, usare l'update online e installare la Web Tools Platform per sviluppare applicazioni J2EE.

Saltate al punto 6 se avete già una installazione funzionante di Eclipse.

  1. Scaricare lo .zip di Eclipse

         http://www.eclipse.org/downloads/

  2. Unzippare lo zip da qualche parte, per esempio C:\Java (verrà creata una cartella C:\Java\eclipse)

  3. Si suppone che sia già installato un JDK (Java Developer's Kit - quello che in genere è etichettato come J2SE) da qualche parte, ad esempio in C:\Java\j2ee\jdk, e che la sottocartella "bin" sia nel path di sistema. Per la sola esecuzione di eclipse, senza voler compilare nulla, è comunque sufficiente la presenza un JRE (Java Runtime Environment), se proprio vogliamo. Fatta questa premessa, possiamo avviare Eclipse facendo doppio click sul file eclipse.exe presente nella cartella appena creata.

  4. Verrà richiesto di impostare un ambiente di lavoro (di default, %HOME%\workspace). Impostarlo, per esempio, in C:\Java\Progetti, e specificare a Eclipse di memorizzare l'impostazione in modo che non venga richiesta al riavvio.

  5. Se viene richiesto di impostare un jdk, si inserisca il path dove questo si trova installato - sinceramente non ricordo di preciso se Eclipse qui se la sappia cavare sempre da solo o no :o)

  6. A questo punto si dovrebbe avere un ambiente di sviluppo funzionante per la versione *standard* del JDK (J2SE). Senza scendere nel dettaglio di specifiche implementazioni di J2EE (il j2ee di Sun, JBoss, Geronimo, o implementazioni parziali come Tomcat), occorre ora installare "il plugin" WebTools Platform di Eclipse per usarne al meglio una qualsiasi. Per procedere all'installazione tramite l'update online, puntare a questa pagina e/o seguire le istruzioni dei prossimi punti di questa guida:

    http://download.eclipse.org/webtools/updates/

    Per l'installazione manuale (consigliata, almeno finché l'update online non funzionerà a dovere), saltare al punto 11.

  7. Per installare un plugin in eclipse, selezionare nel menu:

         Help -> Software Updates -> Find and Install...

    selezionare quindi

         Search for new features to install -> Next

    e il bottone

         New Remote Site

    Nella finestrella appena aperta, inserire (il campo "Name" è arbitrario - e alla fine dell'update sarà probabilmente possibile eliminare il sito aggiunto, in quanto replicato durante l'update con il nome "ufficiale")

         Name: WTP - Temp

         URL: http://download.eclipse.org/webtools/updates/

    Premere OK, selezionare il sito appena aggiunto, lasciare spuntato il campo "Ignore features not applicable for this environment" e clickare su "Finish"

  8. Nella finestra successiva verrà richiesto il mirror che volete usare; può darsi che sceglierne uno buono aumenti le probabilità di riuscita dell'installazione, ma non contateci troppo.

  9. In "Select the features to install", selezionate brutalmente tutto il contenuto di "Web Tools Platform (WTP)" (anche se basterebbero i primi due, a dire il vero: "Web Standard Tools (WST) SDK" e J2EE Standard Tools (JST)"), e clickate a destra su "Select Required" per risolvere le dipendenze. Questo probabilmente NON risolverà tutte le dipendenze; in tal caso selezionate anche "EMF SDK".

  10. Clickate su Next, e date la manciata di conferme necessarie per completare l'installazione. Al riavvio, Eclipse dovrebbe avere una nuova prospettiva, "J2EE", poter creare nuovi tipi di progetti, e gestire altre cose come i server. Nel caso in cui l'installazione invece sia fallita... riprovate del punto 9, magari selezionando prima i pacchetti di base e via via gli altri, in installazioni successive.

  11. Per fare l'installazione manuale, invece, chiudete Eclipse e andate a questa pagina:

         http://www.eclipse.org/webtools/

    Selezionate la build che preferite (direi di orientarsi su quelle "released", l'ultima disponibile), scaricate il pacchetto "WebTools Platform; All-in-one", unzippatelo nello stesso posto in cui avevate unzippato eclipse. Avviate eclipse, e automagicamente funzionerà tutto quanto. Avete anche la scelta di scaricare solo il pacchetto "WebTools Platform; Runtime" e risolvere da soli le dipendenze - fate come preferite!


Utility Ant per lo sviluppatore Java

Ant, tra gli strumenti di aiuto per lo sviluppo, è forse uno dei più divertenti. Per chi si diverte con queste cose, ovvio. Esso permette di automatizzare facilmente operazioni come la sincronizzazione di file, la compilazione di sorgenti, la creazione di archivi .jar, di documentazione javadoc, e molte altre cose. Vedere il manuale per maggiori dettagli.

Sviluppando principalmente Servlet Java, ho trovato comodo crearmi un buildfile Ant che, posizionato in una cartella C:\Progetti\NomeProgetto, automaticamente eseguisse queste operazioni:

  1. ottenere i sorgenti del progetto dal workspace di eclipse e copiarli in una cartella di destinazione (C:\Progetti\NomeProgetto\NomeProgettoSource)
  2. compilare i sorgenti in una seconda cartella (C:\Progetti\NomeProgetto\NomeProgettoBuild)
  3. creare un .jar e tutto ciò che andrà messo in produzione in una terza cartella (C:\Progetti\NomeProgetto\NomeProgetto)
  4. creare la javadoc in una quarta cartella (C:\Progetti\NomeProgetto\NomeProgettoDoc)

Listato per web applications (servlet):

Perchè il buildfile funzioni, devono esistere i file esterni indicati nei tag "loadfile". Il buildfile ant viene eseguito all'interno della cartella del progetto, e pertanto dovrebbe essere lì presente, ma una buona idea è crearsi un file .bat che come prima cosa copi il buildfile da un posto specifico (ad esempio dalla cartella padre), in modo che tutti i progetti possano sempre beneficiare di ogni eventuale nuova modifica fatta.

Ricordo che ant si invoca con:

ant -f buildfile.xml

Per facilitarvi le cose, potete scaricare lo scheletro di una mia tipica cartella di progetti:

Progetti.zip (ultima modifica: 4/07/2006 - 18:31; dimensione: 5 kB).


Links

HOWTO CVS Server
La guida sul Gentoo Wiki per creare un repository cvs.
Bruce Eckel's Mindview
La homepage di Bruce Eckel, il prolifico e generoso scrittore di "Thinking in Java", "Thinking in C++" e compagnia pensando.
Windows XP Commands
Non sarà la bash, ma la linea di comando di windows vi permette di fare molte cose lo stesso.



Torna alla homepage


Il titolare del sito stmsat.altervista.org (sarebbe a dire StM) magnanimamente incoraggia la consultazione e distribuzione dei contenuti di queste pagine, ma si arrabbia come una biscia se non ne citate l'autore o la fonte (sarebbe a dire egli stesso medesimo, di nuovo).