Benvenuti su "Just a Bit of.. Entropy!".
Questo blog tratta di Free Software e programmazione.
L'autore è un di membro di Guru@Work
e studente del corso di laurea specialistica in
Tecnologie Informatiche all'università di Pisa.
XSLT: Extensible Stylesheet Language Transformation
XSLT è un linguaggio che consente di effettuare trasformazioni, tramite la manipolazione di un file xml di partenza e secondo uno schema scelto, di documenti xml in altri formati (xml con diversa strutturazione, file di testo semplice, HTML, PDF, RTF.. e chi più ne ha più ne metta).
Detta così sembra una cosa da nulla. Lo pensavo anche io inizialmente ma mi sono ricreduto negli ultimi giorni quando mi è venuto in mente come utilizzare tale linguaggio per semplificarmi la vita.
Dopo averlo usato per generare codice Java da un file XML per il progetto di Programmazione Avanzata mi sono reso conto che la strada della programmazione generativa tramite XSLT si presta in modo particolare per la automazione di compiti particolarmente ripetitivi e monotoni.
Da buon programmatore pigro (e sviluppatore Java soprattutto in ambito Enterprise) ci sono 2 cose in particolare che mi caratterizzano:
- Odio scrivere interfacce grafiche usando Swing et similia;
- Ho una netta propensione per definire dati e grafica usando XML (e naturalmente HTML come suo sottoinsieme).
Bene sull’esempio di XAML per WPF (una delle poche cose che veramente invidio a .NET) mi son detto: “Perché non descrivere anche in Java le interfaccie con un simpatico documento xml?”.
Risposta: “Inventiamoci un insieme di tag che effettuino il wrap dei principali componenti Swing e creiamo delle regole con XSLT per generare il codice che dovremo altrimenti scrivere a manina!!”.
Si esistono anche gli ambienti RAD (Matisse per NetBeans e VisualDesigner per Eclipse sono alcuni..) ma a me piace vedere le cose con mano e poi il mio fine ultimo non è esattamente la fase di Wrapping
Al momento, in circa 2 giorni, ho reso funzionali gli oggetti: JPane, JButton, JFrame, JLabel, JTextField, JPasswordField, JComboBox, BorderLayout e BoxLayout.
Non ci ho lavorato moltissimo ma già in questo modo devo dire che il risparmio di tempo per scrivere un interfaccia è abbastanza alto.
Accennavo prima al fine ultimo.. bene avete presente sempre in XAML (ma anche in JavaFX) il simpaticissimo Pad che consente di visualizzare on-the-fly l’interfaccia mentre viene descritta senza necessità di avviare l’applicazione? Bene il passo ultimo sarà quello. Per ora l’idea è di realizzarlo utilizzando un browser e delle append di condice javascript ma prima di arrivare a ciò voglio avere una buona traduzione dei componenti e dei layout principali nel mio nuovo “linguaggio di descrizione”.
Naturalmente il linguaggio al momento non consente il bind tra eventi e componenti, questa parte sarà una delle ultime affrontate, ma in linea di principio l’intenzione è di lavorare a livello di View non di Controller: il mini-framework non voglio che si disperda perdendo organicità al momento.
Stay Tuned!
Continua a leggere
[Programmazione Generica] Java, C++ e C#: Una chiacchierata con Anders Hejlsberg, Bruce Eckel e Bill Venners
Per tutti coloro che sono in ricerca di qualche spunto per l’ultima parte del Final di Programmazione Avanzata, o che semplicemente sono interessati alle differenze implementative della programmazione generica in C++, C# e Java vi consiglio il seguante link.
E’ una chiacchierata tra Anders Hejlsberg, Bruce Eckel e Bill Venners su C# e Java generics e C++ templates.
Molto interessanti le note implementative, semplificate per rederle facilmente comprensibili al lettore anche meno smaliziato (ok ora esagero.. ma se avete almeno le basi relativamente all’argomento programmazione generica siete più che pronti per leggere e comprendere queste tre paginette).
Detto questo, buona lettura!
Continua a leggere
[Java] Dynamic Loading

Programmando molto spesso si sente la necessità di poter inserire parti di codice aggiuntive in un sistema durante il suo uso (si pensi ad esempio alla possibilità di includere plugin, in una qualsivoglia applicazione, che debbano essere utilizzabili subito dopo la loro “installazione”) vediamo come, e con che limiti, questo è realizzabile con il linguaggio della Sun.
Continua a leggere
XML Well-Formed

Perché mai un post sulla “formattazione” corretta di un documento XML?
Perché alle volte è bene avere presenti questi particolari, soprattutto per non farsi male quando si vanno ad utilizzare parser vari ed eventuali..
Un documento XML si dice well-formed (ed è quindi analizzabile da un parser) se:
“
- Non-empty elements are delimited by both a start-tag and an end-tag.
- Empty elements may be marked with an empty-element (self-closing) tag, such as
<IAmEmpty />. This is equal to<IAmEmpty></IAmEmpty>. - All attribute values are quoted with either single (’) or double (”) quotes. Single quotes close a single quote and double quotes close a double quote.
- Tags may be nested but must not overlap. Each non-root element must be completely contained in another element.
- The document complies with its declared character encoding. The encoding may be declared or implied externally, such as in “Content-Type” headers when a document is transported via HTTP, or internally, using explicit markup at the very beginning of the document. When no such declaration exists, a Unicode encoding is assumed, as defined by a Unicode Byte Order Mark before the document’s first character. If the mark does not exist, UTF-8 encoding is assumed.
- Element names are case-sensitive.
“
(Tratto da Wikipedia)







































