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 [...]
QR Codes e la Google Chart API
Piccola intro: i QR Codes sono analoghi ai “normali” codici a barre, ma rappresentano un’evoluzione: possono contenere più dati (a parità di dimensione) e possono essere letti da una serie più ampia di dispositivi, come gli smartphone (su iOS segnalo l’ottima e gratuita i-nigma). Dopo aver scaricato un lettore di QR Codes per il vostro smartphone, [...]
Scambiare il contenuto di due variabili int senza utilizzare una variabile temporanea: XOR swap
Una domanda interessante che mi è stata posta è: “com’è possibile scambiare il contenuto di due variabili senza utilizzare una variabile temporanea?”. Infatti, per scambiare il contenuto di due variabili, di solito si utilizza una variabile temporanea (vediamo un esempio in Python): Ora, per scambiare due variabili senza una variabile temporanea (nel nostro caso l’abbiamo [...]
Python e il metodo setdefault
Note to self (pun intended): questo post rappresenta una sorta di appunto mentale per ricordarmi il funzionamento di setdefault in Python, visto che puntualmente mi trovo ad utilizzarlo. setdefault è utilizzato sui dizionari (dict) e permette di impostare una chiave di default durante una set. Mi spiego meglio con un esempio: Vediamo come funziona il [...]
Python: scriviamo un quine
Una sfida che intriga molti programmatori è quella di scrivere un quine, ovvero quello di scrivere un programma che stampi il proprio sorgente. Partiamo con la definizione più semplice, e man mano aggiungiamo i vincoli necessari. Un programmatore furbo potrebbe stampare il contenuto del sorgente semplicemente aprendolo e stampando il contenuto: Per agevolare il compito [...]
Social media