Lug 14 2009

Oggi Sciopero

Sciopero dei Blogger

Adesione all'appello di Diritto alla Rete contro il DDl alfano che imbavaglia la Internet italiana


Dic 16 2008

Sondaggio: Aiuta Mozilla a conoscere la penetrazione di Firefox nel tuo paese

Mozilla intende analizzare meglio la diffusione di Firefox in alcuni paesi (tra cui l'Italia).
Percui ha messo in piedi un sondaggio on-line, reperibile a questo indirizzo, che sarà attivo fino al 26 dicembre.

Invito tutti (compressi quelli che Firefox non lo usa o lo usano saltuariamente) a partecipare al sondaggio. Bastano pochi minuti, che ce vo'!?


Ott 21 2008

Come verificare le espressioni regolari on-line

Espressioni Regolari: croce e delizia di ogni programmatore!

Alzi la mano chi, tra i programmatori, almeno una volta nella propria vita non si è imbattuto in quest'inferno delle regular expression.

Esistono svariati documenti, cheat sheet e tool che spiegano come funzionano e consentono
di provarle al volo.
Tra questi ultimi sono rimasto particolarmente colpito dal RegExr: Online Regular Expression Testing Tool che con delle funzionalità Web2.0 consentono rapidamente, anche per chi è alle prime armi su quest'argomento, di crearsi la propria regex su misura alle proprie esigenze.


Ott 14 2008

MySQL – Importare dati da riga di comando

Quante volte è capitato di dover caricare una quantità enorme di dati in formato CSV su un database MySQL e phpMyAdmin & C pensano che il file sia troppo grande per essere caricato e non vuole proprio in nessun modo prenderselo in carico?

Solitamente in questi casi si procede allo split dei dati presenti su più file avendo l'accortezza di fare attenzione a riportare tutto correttamente.
Tuttavia, esiste anche un'altra strada che si può seguire ed è quella di caricare il file tramite la consolle a riga di comando di MySQL.

Certo, è necessario l'accesso in shell alla macchina, però se la quantità di dati è enorme credo proprio che sia una macchina a cui possiamo, in qualche modo, accedere.

Una guida dettagliata che spiega tutti i procedimenti è reperibile sul Blog Ethecs su questo post.

Fonte: Etechs.


Ott 7 2008

7 consigli per scrivere applicazioni PHP in sicurezza

Oggi è passato sulla ml del GrUSP un interessante articolo targato IBM che riporta alcune regole (ovviamente non esaustive) per evitare alcuni problemi di sicurezza nelle applicazioni scritte in PHP.

Ringrazio Maurizio Cavalletti di Akabit per l'interessante link.


Mag 30 2008

Il Contest che non ti regala una ceppa

Assurdo che ci siano (ancora) persone che non abbiano niente da fare e si inventino le cose più assurde.

Un certo ILROCK si è inventanto il Contest che non ti regala niente:

ILROCK :: Contest

Ma la cosa più assurda, è che ne parlo 😀


Mar 14 2008

Stanno lavorando per noi

Grafico utilizzo RAM

Quello qui sopra riportato è il grafico di utilizzo della RAM della nuova versione 3.0 (ancora in beta) di Firefox confrontato con l'utilizzo di Firefox 2.x e IE7.
Che dire, stanno lavorando per noi alacremente per migliorarci la vita 😀

Fonte: pavlon.net tramite DElyMyth.


Feb 15 2008

Il Bignami per le Espressioni Regolari

Regular Expressions Cheat Sheet

Quante volte è capitato di dover mettere mano a quella diavoleria delle espressioni regolari!
E, soprattutto, quante volte, dopo aver tirato giù tutto il calendario cinese, abbiamo pensato che: "ma una guida a portata di mano, no è!?"

Beh, il problema è stato risolto da ILoveJackDaniel's che ha creato un bignami con le principali regole delle espressioni regolari che è possibile scaricare e stampare (sul sito dell'autore è disponibile sia in pdf che in png).
Il bignami è inglese.

Per chi, invece, preferisce qualcosa scritto in italiano, lo può trovare qui.

Fonte: DElyMyth.


Feb 8 2008

Creare un’applet firmata in Java

Nei giorni scorsi ho ripreso un pò di programmazione in Java, così, per fare due prove e vedere se finalmente riuscivo a creare un'applet in Java.

Anche se alcuni potrebbero pensare che creare applet in Java da utilizzare sul Web faccia molto web 1.0 posso solo dire che, in taluni casi, è l'unico modo per fare delle operazioni automatizzate sul client su cui girerà l'applet stessa 🙂

Tralascio di descrivere che cosa sia un'applet Java (per cui rimando alla relativa voce su Wikipedia) per soffermarmi, innanzi tutto, sulle (giuste) limitazioni.

Quando un'applet viene eseguita all'interno di un Web Browser questi avrà a accesso ad un'area ben delimitata definita sandbox in modo che un (eventuale) malintenzionato non possa accedere alla macchina in locale, non possa effettuare chiamate a procedure che non risiedano sul dominio stesso da cui è stato eseguito, ecc.

Nella stragrande maggioranza dei casi quanto messo a disposizione basta e avanza.
Il problema sorge, però, se si debba effettuare legittimamente delle operazioni sulla macchina client che ha mandato in esecuzione l'applet stessa.
Poniamo, ad esempio, di voler mandare in esecuzione un programma sulla macchina client.

Innanzi tutto dobbiamo preoccuparci di scrivere il codice per l'applet:

  1. <title>Prova applet</title>
  2. </head>
  3. <applet code=applet.class
  4. archive=applet.jar width=300 height=150></applet>
  5. </body>
  6. </html>

Lo salviamo come applet.java e lo compiliamo con il comando:

javac applet.java

cosi da avere a disposizione il bytecode (applet.class).

A questo punto creiamo il file JAR contenente i vari componenti necessari con il seguente comando:

jar cvf applet.jar applet.class

Scriviamo una semplice pagina HTML con, ad esempio, questo codice:

A questo punto se tentiamo di accedere al file da un qualunque browser che supporti Java otteremo, nel riquadro dove dovrebbe essere visualizzata l'applet, una laconica "pagina morta"

Errore esecuzione applet

Il perché è presto detto.

Infatti basta andare a vedere cosa ci ha scritto il JRE sulla console:
java.security.AccessControlException: access denied (java.io.FilePermission c:\windows\notepad.exe execute)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkExec(Unknown Source)
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at applet.init(applet.java:16)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Giustamente si è incavolato perché abbiamo tentato di accedere al sistema in locale!

Per ovviare, abbiamo necessità di firmare digitalmente il file JAR che abbiamo creato.
A questo punto si presentano due possibilità:

  1. Acquistiamo un certificato ufficiale e provvediamo a firmare il nostro applet;
  2. Generiamo un certificato generico auto-firmato a costo zero.

Per non appesantire questo post, per la generazione del certificato rimando a quest'altro mio articolo.

Provvediamo, a questo punto, a firmare il nostro file JAR eseguendo il seguente comando:

jarsigner applet.jar nomedellachiave -signedjar applet.jar.sign

Ci verrà richiesto di inserire la password della chiave che prontamente faremo confermando con un bel invio.

A questo punto provvediamo a modificare il codice della pagina HTML sostituendo applet.jar con applet.jar.sign.

Apriamo nuovamente il file HTML con un browser web.
Questa volta verrò visualizzato un messaggio con il quale veniamo avvisati che il certificato digitale utilizzato per firmare l'applet non viene riconosciuto come attendibile:

Notifica certificato applet

Confermiamo comunque e, dopo qualche istante, vedremo aprirsi magicamente il Notepad 😀

Per maggiori informazioni è possibile far riferimento alla guida della Sun sulle Applet reperibile a questo indirizzo.


Gen 30 2008

Generare un certificato per firmare applet Java

Avendo la necessità di fare delle prove con delle applet Java che devono accedere alle risorse del sistema locale su cui vengono eseguite è sorta la necessità di doverle firmare digitalmente in quanto solo così possono "uscire" dalla sandbox in cui vengo rinchiuse quando sono in esecuzione.

Facendo un pò di ricerche su Internet ho trovato diversi documenti in inglese e pochissimi (tanto per cambiare) in italiano percui, a mia futura memoria, riporto di seguito i procedimenti per creare un certificato digitale auto-generato per firmare le proprie applet scritte in Java.

I comandi da eseguire sono i seguenti:

keytool -genkey -alias nomeDellaChiave

Verrà richiesto di inserire alcune informazioni (le cui spiegazioni esulano dallo scopo di questo articolo). Vediamo cosa inserire:

Enter keystore password:

Inserire una password di almeno 6 caratteri. Per le necessità va bene anche 123456

What is your first and last name?
[Unknown]:

Inserire il proprio nome e cognome. Esempio Mario Rossi

What is the name of your organizational unit?
[Unknown]:

Inserire il nome del servizio. Esempio Divisione Assistenza

What is the name of your organization?
[Unknown]:

Inserire il nome dell'azienda. Esempio Banca del Sapone S.p.A.

What is the name of your City or Locality?
[Unknown]:

Inserire il nome della città. Esempio Roma

What is the name of your State or Province?
[Unknown]:

Inserire le due lettere della provincia. Esempio RM

What is the two-letter country code for this unit?
[Unknown]:

Inserire le due lettere della nazione secondo la notazione ISO-3166. Esempio IT

Is CN= Mario Rossi, OU=, O=Banca del Sapone S.p.A., L=Roma, ST=RM, C=IT correct?
[no]:

Inserire yes (nella versione italiana del JDK bisognona inserire si) e confermare con invio.
Verrà visualizzato:

Enter key password for <nomeDellaChiave>
(RETURN if same as keystore password):

Si può confermare direttamente con invio.

Giunti a questo punto conviene memorizzarsi anche su un file separato la chiave generata (ed archiviarla in un posto "sicuro") con il comando:

keytool -export -alias nomeDellaChiave -file nomeDelFile.crt

Ora è possibile firmare digitalmente i nostri progetti con il certificato appena creato.