giovedì 16 ottobre 2008

Supporto del framework PHP Prado in Netbeans

Vedo sul blob della plugin di php per Netbeans alcune schermate che illustrano il prossimo rilascio di un supporto per il framework Prado.

Trovo Prado molto bello, credo sia l'unico framework per php stabile, MVC e con programmazione ad eventi. Tra l'altro è molto simile ad aspx di microsoft... che vuole dire meno fatica per chi ha esperienza di programmazione su visual studio ad usare anche php, magari su linux.


Netbeans poi è un IDE stupendo, anche meglio del tanto amato/odiato dai programmatori nostrani ms visual studio.

Bando alle ciance. Per facilitare lo sviluppo con il prado ho fatto anche io un piccolo script che uso in associazione con il netbeans e plugin php. Serve a "sincronizzare" la pagina di prado che descrive l'interfaccia (nome.page) e la pagina php con la logica associata agli eventi (nome.php). Cosa fa lo script:

1 - aggiunge commenti tipo "/** property Type name */" che consentono l'autocompletamento del codice php dei nomi delle componenti inserite nell'interfaccia page;

2 - aggiunge le dichiarazioni dei metodi che implementano gli eventi dichiarati nell'interfaccia .page.

Poco ma utile.

Ecco i link allo script:

http://web.tiscali.it/diegobazzanella/pageSync.php


e al progetto di modulo per netbeans che integra lo script php in netbeans attraverso un cmando del menu contestuale in una pagina .page:


http://web.tiscali.it/diegobazzanella/pageSync.zip



Leggi post intero...

mercoledì 17 settembre 2008

tn5250

'tn5250' è un software che si connette agli IBM iseries AS/400 con sistema operativo i5/OS ed emula il terminale 5250, quello con la schermata verde... sul mio Ubuntu (8.04) direi che 'tn5250' è molto meglio del client access ufficiale di IBM. Vediamo come configurarlo:

1 - per prima cosa va installato, quindi con privilegi di amministrazione da terminale dare il comando:

apt-get install tn5250

2 - nella propria home creare il file di configurazione di tn5250 che dovrà chiamarsi '.tn5250rc' con il comando ad esempio:

gedit ~/.tn5250rc

e digitare il seguente contenuto, sostituendo 'ip_as' con l'indirizzo della macchina AS/400:

mioas {
host = ip_as
env.TERM = IBM-3477-FC
env.DEVNAME = MYDISPLAY
map = 280
+underscores
+uninhibited
}

3 - infine risolvo un piccolo problema di encoding con un workaround buono per 'gli italiani'. Con diritti di amministrazione:

gedit /usr/bin/xt5250

nel file indicato verso la fine (righe 104-109) vado a sostituire il comando:

# Try to use xterm with our custom key mappings.
if command -v xterm >/dev/null 2>&1; then
XUSERFILESEARCHPATH="$pkgdatadir/%N" \
exec xterm -name "xt5250" -bg black -fg white -T "xt5250 - $XT5250_HOST" \
+sb -geometry 80x25 -e "$0" -BOOT "$@"
fi

con

# Try to use xterm with our custom key mappings.
if command -v xterm >/dev/null 2>&1; then
LANG=en_US.ISO-8859-1 \
XUSERFILESEARCHPATH="$pkgdatadir/%N" \
exec xterm -en ISO-9660-1 -name "xt5250" -bg black -fg white -T "xt5250 - $XT5250_HOST" \
+sb -geometry 80x25 -e "$0" -BOOT "$@"
fi

in pratica ho aggiunto due 'ISO-9660-1'. Ciò consente di vedere bene le lettere accentate (se poi si aggiunge dopo "xterm" anche "-fn 10x20" il terminale viene fuori con font huge, cioé caratteri molto grandi).

4 - ho finito, posso avviare la versione grafica del programma con

xt5250 mioas

ed usare il menu che viene fuori facendo 'ctrl+tasto destro del mouse' magari per ingrandire un po' il carattere (consiglio LARGE). Ci sono anche altri due menu su 'ctrl+tasto centrale del mouse' e 'ctrl+tasto sinistro del mouse'.

Buon lavoro!




Leggi post intero...

martedì 16 settembre 2008

LAMP su ubuntu che usa DB2 su AS400

Scenario: AS/400 con OS/400 V5.4 con DB2 + Ubuntu linux 8.04 con Apache e php

Cosa fare per usare da PHP il database DB2 utilizzando il PDO via ODBC? Per prima cosa bisogna installare l'iseries access su ubuntu come descritto in un post precedente. Quindi:

1 - da terminale installo unix-odbc:

apt-get install unix-odbc

2 - configuro unix-odbc, apro/creo il file /etc/odbc.ini come di seguito, sostituendo la riga in grassetto con l'ip del server AS/400:


[AS400]
Description = iSeries Access ODBC Driver
Driver = iSeries Access ODBC Driver
System = 192.168.0.7
Naming = 0
DefaultLibraries = QGPL
Database =
ConnectionType = 0
CommitMode = 2
ExtendedDynamic = 1
DefaultPkgLibrary = QGPL
DefaultPackage = A/DEFAULT(IBM),2,0,1,0,512
AllowDataCompression = 1
LibraryView = 0
AllowUnsupportedChar = 0
ForceTranslation = 0
Trace = 0

NB: il contenuto del file sopra è scopiazzato dal blog di Matteo Moro. Thanks.

Ora da php sul linux si dovrebbe poter accedere al database DB2 su AS/400 via PDO. Vediamo un po' di codice PHP:

infophp();

Con questo si vede la schermata delle info relative al php. Dovrei fra l'altro trovare la voce PDO con indicati vari driver, fra questi deve esserci ODBC (se no va installato il pacchetto php_odbc).
Un'altra voce che devo trovare è PDO_ODBC (che dovrebbe comparire dato che ho messo UnixODBC).

foreach(PDO::getAvailableDrivers() as $driver)
{
echo $driver . " ";
}

Così dovrebbe apparire la lista dei driver che dava anche infophp().
Di seguito proviamo a fare una query, quanto scritto in grassetto va adattato con il nome dell'utente e la password, il nome del database, della tabella su cui fare la query di prova ed il nome di un paio di colonne:

try
{
$db=new TDbConnection("odbc:DSN=AS400;UID=user;PWD=password;","user","password");
echo "Connessione riuscita";
}
catch(PDOExeption $e)
{
echo $e->getMessage();
}

$sql = "SELECT * FROM NOMEDB.NOMETBL";

foreach ($db->query($sql) as $row)
{
print $row['COL1'] .' - '. $row['COL2'] . '
';
}

Fine. Ciao.


Leggi post intero...

Installare iseries acces su ubuntu

Iseries Acces (o Client Access) di IBM serve per accede alla "schermata verde" degli AS/400. Da Ubuntu (uso la 8.04) è molto meglio usare tn5250, open source e presente nei pacchetti di ubuntu (e personalizzarlo un po'... farò un altro post su questo...).

1 - scaricare da IBM l'iseries acces per linux, è necessaria iscrizione al sito IBM, ma il download 'dovrebbe' essere gratuito. Una volta scaricato si dovrebbe avere un file con un nome tipo: 'iSeriesAccess-5.4.0-1.6.i386.rpm';

2 - convertire il pacchetto rpm in pacchetto debian; per fare ciò bisogna avere installato 'alien' sul ubuntu, da terminale:

apt-get install alien (se non è già installato)
alien -d --scripts pacchetto_scaricato.rpm

3 - installare il pacchetto generato da alien:

apt-get install pacchetto_prodotto_da_alien.deb

Fatto, l'iseries access è installato, ma non funge! Per farlo partire serve ancora installare un paio di pacchetti:

apt-get install libmotif3 libxaw6

Ora (a me) parte con:

ibm5250


Leggi post intero...