apr 16 2010

PHP Day 2010

PHP Day 2010 (Banner)

Anche quest'anno si svolgerà il consueto PHP Day che vedrà come location la ridente cittadina Abruzzese di Corropoli (TE) come sede dell'evento che si diramerà sulle tre giornate del 13, 14 e 15 maggio 2010 con speakers nazionali ed internazionali.

L'evento, per quest'anno, è stato suddiviso in tre distinte aree: Keynote, Talk e Workshop e occuperanno ben 3 sale dell'ex sede del Corso di Laurea in Informatica.

Per partecipare è obbligatorio iscriversi e pagare la quota prevista che varia in base alle giornate a cui si intende partecipare.

Un evento, questo, unico in Italia ed a cui non si può non partecipare se si sviluppa in PHP.


mag 13 2009

Rilasciate le Zend Framework 1.8.1

Finalmente sono state rilasciate le nuove librerie dello Zend Framework che giungono alla versione 1.8.1.

L'elenco delle novità e dei bugfix è possibile reperirla qui mentre i pacchetti con le librerie sono disponibili sulla pagina dedicata al download.

Inoltre, è stato rilasciato anche un aggiornamento per lo Zend Server che, anche nella versione Community Edition (free), include le nuove features della 1.8.


gen 20 2009

Annunciato il phpDay 2009

E' stato pubblicato sul sito del phpDay l'annuncio della nuova edizione annuale del phpDay 2009.
Quest'anno l'evento si articolerà su due giorni, il 15 e 16 maggio, ed avrà come location la città di Verona.

Diverse sono le novità che quest'anno sono state messe in atto a partire dal fatto che sarà a pagamento.
Ricordo che su questa cosa avevano aperto un sondaggio a cui io, essendo membro del GrUSP, ho risposto che sì, anche a pagamento, sarei stato interessato a partecipare.

Al momento non sono ancora disponibili programmi e/o maggiori informazioni sui talk ma, per chi fosse interessato, è aperto il call for paper.

L'unica cosa, al momento, che forse non condivido, è la scelta della location.
Sarà perché ci sono stato una sola volta e l'unica impressione che ho avuto, da parte della gente del posto, è che essendo quasi meridionale (e sicuramente un "terrone" rispetto a loro) è stato quello di essere visto e trattato con sospetto e circospezione.


nov 14 2008

Perché il software fa schifo…

Perché il software fa schifo...
Bellissimo.

Questo è stato il primo commento che ho espresso quando ho finito di leggere (con le lacrime agli occhi ;-) ) questo libro.
Scritto da uno dei massimi esperti a livello internazionale di software (David Platt) snocciola quelli che sono i maggiori problemi di usabilità legati al software e quello che gli "utenti normali" possono fare per aiutare i programmatori a migliorare i prodotti che, in fin dei conti, vengono usufruiti dagli utenti stessi e non dagli sviluppatori del software stesso.

Ed è questo il punto fondamentale che ogni programmatore e analista/progettista deve mettersi in testa prima ancora di iniziare a mettere mano ad un software che dovrà essere prodotto:

CHI ANDRA' AD USARE IL SOFTWARE NON SARANNO LORO BENSI' DEGLI UTENTI NORMALI!!!

Ritengo che ogni programmatore, analista, progettista ed ogni soggetto che opera nello svilippo software dovrebbe leggere ed applicare.

Il libro su IBS:
Perché il software fa schifo...


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.


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 :-D

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


feb 1 2008

Eseguire un programma da riga di comando con i privilegi di amministratore su Windows Vista

Molti che avranno a che fare con Windows Vista si saranno imbattuti, prima o poi, con l'UAC (User Account Control).
Questa interessante funzionalità blocca tout-court qualunque cosa si tenti di eseguire e ne controlla se può essere eseguito come utente normale o deve essere eseguito come amministratore.

Il problema è che, a volte, capita di dover eseguire un programma (in particolare utility) con i diritti di amministratore. Fin qui, poco male.
Questo perché possiamo fare tasto destro sull'icona del programma stesso e eseguirlo come amministratore.

Ma se avessimo la necessità di eseguire un programma da riga di comando con i diritti di ammistratore?
Ufficialmente non è possibile.

Tuttavia, è possibile ricorrere ad un'interessante utilty scritta in Visual Basic Script da John Robbins che utilizzando la sintassi elevate programma consente di eseguire programma con i diritti di amministratore (previo, naturalmente, l'inserimento della password dell'account stesso).

Certo, è un tool da utilizzare con molta cautela ma conoscere che esiste (e funziona!) può sempre tornare utile.

Il tool è scaricabile gratuitamente sia dal Microsoft TechNet che dal sito dell'autore.

Per maggiori informazioni si può fare riferimento oltre che ai link precedentemente riportati anche alla documentazione inclusa nello script stesso.