AJAX per applicazioni web: la mia recensione
Nell’epoca del Web 3.0 ho letto questo libro che tratta (a grandi linee, come vi spiegherò tra poco) di AJAX, la enabling technology del Web 2.0. Ma cos’è AJAX? È un insieme di tecnologie (tra cui Javascript e XML) che permettono lo scambio di dati tra client e server in modo asincrono, permettendo di realizzare [...]
Linguaggio C, seconda edizione (K&R): la mia recensione
In pochi giorni ho letto una pietra miliare dei libri della programmazione, il famoso K&R (dagli autori Kernighan & Ritchie); si tratta del libro più famoso per quanto riguarda la programmazione C. In libro è molto breve (in totale 340 pagine, ma le ultime ~100 pagine di appendice sono una reference manual condensata). Il libro [...]
require_relative in ruby 1.9 e la retrocompatibilità con ruby 1.8
A partire da ruby 1.9 è obbligatorio utilizzare l’istruzione: require_relative ‘pkg’ affinché venga importato il modulo ‘pkg’ presente nella stessa directory in cui è presente il modulo che stiamo scrivendo. Mi spiego meglio: dato un modulo ruby detto ‘pkg’, se vogliamo importarlo in un altro file (chiamiamolo ‘foo’ per semplicità), dobbiamo scrivere: in ruby 1.8: require [...]
gitignore: un filtro per escludere i file da non versionare in un repository git
Prima di fare un push su un repository git è importante avere configurato il gitignore, ovvero specificare quali files non devono essere versionati in un repository git. A titolo di esempio: i file .pyc, o più in generale i prodotti della compilazione di un qualsiasi file di sorgente; versionare questi files, infatti, non ha senso. [...]
PHP5 e MySQL, la guida: la mia recensione
Per ripassare le mie nozioni di PHP5, ho deciso di leggere il libro di McGraw-Hill, “PHP5 e MySQL, la guida“, composto da circa 1100 (!) pagine. Perché proprio PHP? Peché, PHP è un linguaggio di successo, sebbene non venga presentato nei migliori dei modi (“è un linguaggio per principianti”). Ecco almeno 4 ragioni per cui [...]
Java: come scrivere un build.xml di ant per compilare e pacchettizzare (WAR/EAR)
Come sapete, tutti i Java application server (come ad es. Tomcat) richiedono il deploy di un applicativo sottoforma di un pacchetto EAR. Ma come è composto un pacchetto EAR? Un pacchetto EAR non è altro che un file jar (che a sua volta è un file zip) che contiene al suo interno: un descrittore di [...]
Pressman – “Principi di Ingegneria del Software” – quarta edizione: la mia recensione
Ad un paio di anni di distanza dal corso di “Ingegneria del Software” frequentato all’università, ho deciso di rileggere il libro di Roger Pressman, “Principi di Ingegneria del Software”, che nel frattempo era avanzato fino alla quarta edizione. Il libro è voluminoso (circa 700 pagine) e piuttosto costoso (49 euro), ma rappresenta una pietra miliare [...]
Online JavaScript Deminifier
Se vi trovate a dover debuggare del codice JavaScript che è minified (per ottimizzare il trasferimento viene applicato il minifying, ovvero vengono tolti tutti gli spazi inutili nel codice), dovete passare per un deminifier/unminified (o beautifier). In ogni caso, un tool che vi permetta di leggere il codice JavaScript senza “incrociare gli occhi“. A tal [...]
Python: scriviamo un HTTPS downloader simile a wget (con urllib2, optparse e getpass)
Per ragioni di semplicità di utilizzo e immediatezza (e anche per imparare qualcosa di nuovo), la settimana scorsa ho dovuto scrivere un downloader da linea di comando simile a GNU wget, ma con alcuni requisiti personalizzati: l’accesso alla pagina di download è protetto da userid e password (autenticazione HTTPDigestAuth); il protocollo di accesso è HTTPS; una [...]
Misurare la quantità di codice di un progetto
In questo post affronto un argomento abbastanza delicato: come si misura la quantità di codice di un progetto? La soluzione più immediata è quella di contare le linee di codice (Source Lines of Code, SLOC). Un esempio che ho personalmente applicato per contare le righe di codice di un progetto Java a partire dalla root [...]
Social media