Galleon, un forum in Coldfusion

Si avete letto bene Coldfusion; benchè esso sia tecnologia proprietaria realizzata da Adobe, esistono diverse implementazioni libere e tra queste troviamo Railo.

Railo, come Adobe Coldfusion, è una applicazione Java che compila il codice coldfusion in classi java, la cui ultima versione 3.1 è rilasciata con licenza LGPL 2 come progetto di Jboss.

Railo può essere scaricato per i diversi sistemi operativi (Windows, Max, Linux), con Jetty o Resin o senza come un war file che deve essere copiato in un application server.

Io ho scaricato la versione 3.1.2 con Jetty per prova il che significa che dovete semplicemente eseguire il file start e recarvi all’indirizzo localhost:8888.

Una volta cambiata la password per motivi di sicurezza vi ritroverete nel pannello di amministrazione. Per installare Galleon dovete:

  1. creare un database MySQL che potete fare velocemente da Xampp
  2. andare nel pannello di amministrazione di Railo e sotto la voce Services -> Datasources creare un datasource di tipo mysql che si collega al database creato (utente e password sono quellli di MySQL)
  3. andare nel pannello di amministrazione di Railo e sotto la voce Extension – Applications spuntare la voce Galleon (forum hostato su RiaForge e creato da Raymond Camden) e cliccare sul pulsante install, il quale (dopo aver accettato la licenza Apache) vi redirige ad un form che dovete riempire (inserite il campo email che si trova nel mezzo del form anche se non richiesto altrimenti avrete una eccezione) e poi potete accedere al login di Galleon.

Una volta inseriti username/password (admin/admin) vi ritroverete di fronte al front-end, per il backend dovete andare su: http://localhost:8888/forum/admin/

Nel pannello di amministrazione di Galleon troverete un menu a sinistra dove potete:

  • creare Conferences, Forum, Thread, Messages
  • modificare i valori che avete inserito nella fase di installazione
  • gestire gruppi e utenti
  • consultare statistiche; se non avete configurato un server SMTP avrete un errore coldfusion per le statistiche generali, sono interessanti le stastitiche sulle parole cercate (magari si potrebbe connettere con Solr..)

Buona esplorazione !

Advertisements

MySQL Workbench 5.1.18

MySQL Workbench è un software multipiattaforma per la progettazione visuale e la generazione di database.

MySQL Workbench è rilasciato in due versioni, una chiamata Community OSS Edition e l’altra chiamata Standard Edition.

La versione Community è rilasciata con licenza GPL 2 mentre la Standard Edition è una versione commerciale che presenta una serie di funzionalità aggiuntive; sul sito del progetto troviamo una griglia comparativa delle funzionalità presenti nelle due versioni.

Dalla griglia comparativa delle versioni si nota che le funzionalità di generazione automatica della documentazione e di validazione degli schemi e dei modelli non sono disponibili nella versione Community ed è un peccato volevo provare almeno una delle due.

Nel momento in cui scrivo l’ultima versione stabile disponibile è la 5.1.18 Nella pagina per il download troviamo anche i pacchetti precompilati per Ubuntu 8.04 e 9.04 oltre che il codice sorgente, la versione per MacOs 10.5 X Intel e per windows.

Io personalmente l’ho scaricato e provato nella versione binaria per MacOs X.

Appena avviata l’applicazione, ci appare da subito un’area di lavoro con un progetto-schema nuovo e a cui possiamo prontamente modificare privilegi, aggiungere tabelle e viste, aggiungere diagrammi, scrivere script sql e tanto altro.

L’aspetto è molto amichevole e chiaro.

Visto che tra le funzionalità c’è quella di poter importare da script Sql e di esportare i diagrammi del db in formato immagine PNG ho deciso di cercare un progetto open che utilizza MySQL da cui prendere lo script ed importarlo.

Ho cercato tra l’elenco tra “l’elenco di programmi open source” di Wikipedia un progetto a caso e ne ho scelto uno chiamato Gestione Aziendale Libera perchè ha abbastanza e non troppe tabelle e diverse chiavi esterne definite; lo scopo è di vedere come appare il diagramma dopo l’importazione.

Ho scaricato lo script del progetto gal.sql.

Una volta scelto uno script da imporatare basta cliccare nella barra dei menu su File -> Import -> Reverse Engineer MySQL Sript ed appare una finestra in cui ci viene chiesto di selezionare lo script sql da importare, la codifica che usiamo e se vogliamo o meno che lo schema venga riportato su diagramma relazionale.

Importato il file magicamente appare il diagramma relazionale.

Ad essere sincero prima di trovare un uno script sql utile a questa prova ne ho provato più di qualcuno ed effettuando più importazioni una dietro l’altra, neanche troppe a dir la verità, è successo che l’appilcazione è crashata più di una volta. Tra l’altro non è dipeso nemmeno dal contenuto dello script perchè se eseguivo nuovamente l’applicazione e subito importavo lo stesso file tutto proseguiva normalmente.

Il diagramma risultato dall’importazione appare un pò confuso, molte tabelle sono sovrapposte una sull’altra e bisogna tirarle qui e lì con il mouse per chiarirlo ma  è possibile fino a un certo punto perchè l’area dedicata al diagramma sembra limitata o comunque non estendibile intuitivamente e dimensionata per una visione chiara del diagramma.

Passiamo ad esporatare in immagine PNG il diagramma EER ottenuto, e lo facciamo cliccando nella barra dei menu su File -> Export -> Export as PNG.

Immagine PNG ottenuta dall’esportazione.

Nell’esportare in formato immagine PNG tutto fila liscio e il diagramma ERR che era rappresentato nell’applicazione è bello e pronto per essere inserito magari nella documentazione di un progetto.

Magari quando avrò tempo cercherò e provero qualche altro strumento di progettazione e generazione visuale.

Ricordandovi di provare voi stessi queste funzioni poichè queste sono solo prime impressioni, vi saluto e vi auguro di trovare utile per la vostra produzione MySQL Workbench.

Andrea Stani

TCExam: applicazione web per test on line

Sono stato alla ConfSL è ho assistito ad un software per fare test/quiz on line chiamato TCExam, realizzato in PHP e rilasciato con GPL 3 a cura di Nicola Asuni che ho conosciuto personalmente. Nicola, già autore di TCPDF, si è concentrato sull’aderenza agli standard (XHTML 1.0, CSS 2.0 e WAI-AAA) che all’uso di AJAX che eventualmente potete aggiungere (concordo con lui anche perchè questo tipo di software è generalmente inglobato in altri ed è preferibile avere l’aderenza agli standard).

L’installazione, la versione attuale è 9.0.017, è semplice basta estrarre il file zip e copiarlo ad esempio nella cartella htdocs di Xampp e andare all’indirizzo:

http://localhost/TCexam/install/install.php

dove dovrete mettere i parametri di connessione al vostro database MySQL (default) o PostgreSQL. La procedura creerà un database con una 15 di tabelle.

Fatto ciò finite nella schermata di login. Dovete sapere però che esiste sia il lato pubblico che quello amministrativo che trovate all’indirizzo:

http://localhost/TCexam/admin/code/

e inserire le credenziali di amministratore admin/1234.

Occorre dire che il sistema di autenticazione si può basare su CAS, LDAP, Radius; i file di configurazione li trovate nella cartella shared/config.

La cosa interessante è che il software è multilingua ed è disponibile in Arabo, Bulgaro, Portoghese brasiliano, Cinese, Tedesco, Greco, Inglese, Spagnolo, Francese, Hindi, Ebreo, Ungherese, Indonesiano, Italiano, Giapponese,Marathi, Malese, Olandese, Polacco, Russo, Turco, Vietnamita.
Le lingue sono in un unico file che trovate nel path shared/config/lang/language_tmx.xml

Dal pannello potete creare utenti e assegnare loro dei gruppi. Potete importare/esportare utenti in formato XML o CSV e vedere lo stato dei risultati.

Le domande sono strutturare in moduli e argomenti e possono essere di tipo a risposta singola, multipla, libera e ordinamento delle risposte.
L’editing delle domande e risposte è basato su un editor che permette l’aggiunta di formule e immagini in Latex (cosa ottima) tramite tag quindi non visuale, tuttavia si può vedere la preview. Le domande possono essere importate/esportare in XML mentre la lista si può esportare anche in PDF.

La creazione dei test è anch’essa semplice. Per ogni test potete specificare la data di inizio e fine (fa fede quella del server), i gruppi di utenti che possono partecipare, i punti da assegnare per risposta corretta, sbagliata o non data, i punti minimi per passare l’esame e che tipo di domande aggiungere.

E’ possibile esportare il test in PDF così magari da stamparlo. Sul PDF generato compare un logo e un’intestazione specificati nel file shared/config/tce_pdf.php mentre l’immagine si trova nella cartella images.

A questo punto non vi resta che augurarvi buon test e se avete bisogno di aiuto chiedete direttamente a lui che è molto disponibile !

Installazione veloce di Alfresco su Glassfish

Ho cominciato a valutare l’idea di installare un Document Management System per un progetto a cui sto lavorando e poichè  in un altro progetto ho notato che hanno installato Liferay che si appoggia su Alfresco ho pensato di cominciare con Alfresco appunto.

Avendo Glassfish 2.1 installato in locale, ho scaricato il file war di Alfresco dal seguente link:

http://process.alfresco.com/ccdl/?file=release/labs/build-1526/alfresco-labs-war-3Stable.tar.gz&a=y&s=n&t=y

che permette di scaricare la versione stabile di Alfresco Labs 3.1. Fate il deploy dell’applicazione da Glassfish ma non lo lanciate perchè altrimenti ricevete errore HTTP Status 503.

Come difatti spiegato nel wiki e in questo post che ho trovato, dovete creare manualmente il database su cui Alfresco si poggia altrimenti avete l’errore che vi ho detto.

Di default Alfresco si basa su MySQL e, sempre di default, il suo database è alfresco con username alfresco e password alfresco, tutto questo lo potete vedere nel file /alfresco/WEB-INF/classes/alfresco/repository.properties perciò usando PHPMyAdmin potete creare velocemente database e utente, fatto cio’ troverete alfresco all’indirizzo:

http://localhost:8080/alfresco

L’amministratore per default ha username admin e password admin (potete cambiarla una volta loggati oppure prima di creare il database andate nel file /alfresco/WEB-INF/classes/alfresco/web-client-config.xml ).

Buona esplorazione !

PS: ora sarei curioso come funziona l’integrazione con Drupal.

PS2: alternativamente stavo pensando a KnowledgeTree che si può integrare con Process Maker.

XWiki 1.8.3 su Glassfish 2.1 e MySQL 5.1

Fino ad ora ho sempre avuto un debole per mediawiki (anche se non ha mai brillato per la sua interfaccia utente), ho provato oggi ad installare XWiki, un wiki realizzato in Java e rilasciato con licenza LGPL e quindi ne ho approfittato per installarlo su Glassfish.

Per un progetto avevo già provato Twiki che in complesso mi era piaciuto ma non sono stato completamente soddisfatto (alcuni problemi con la stampa pdf e editing parallelo) perciò stamani ho provato ad installare XWiki che vanta diverse caratteristiche, tra cui il fatto di scrivere applicazioni integrabili; ho notato tra l’altro che esiste anche la versione client che si può integrare con Eclipse (ok anche per Mediawiki e Twiki ho visto che esiste l’integrazione con Eclipse ma non ho mai provato).

Ho notato tra l’altro che quelli di XWiki hanno trovato hosting sulla Forge di OW2 e contemporaneamente diversi progetti dell’OW2 Consortium fanno uso di XWiki per i loro progetti come Bonita, JASMINe, JOnAS, ObjectWeb, Orchestra, Petals ma anche Exo Platform, Mandriva Club, Nuxeo.

Tornando all’installazione, tramite il pannello di Amministrazione di Glassfish effettuate il deploy del file war che scaricate da qui. Il deploy pero’ non basta, una volta fatto il deploy non potete lanciarlo subito altrimenti avete un errore del genere:

javax.servlet.ServletException: com.xpn.xwiki.XWikiException: Error number 3 in 0: Could not initialize main XWiki context
Wrapped Exception: Error number 3001 in 3: Cannot load class com.xpn.xwiki.store.migration.hibernate.XWikiHibernateMigrationManager from param xwiki.store.migration.manager.class
Wrapped Exception: Error number 0 in 3: Exception while hibernate execute
Wrapped Exception: Could not parse mapping document from resource xwiki.hbm.xml
Ciò significa che dovete configurare il file hibernate.cfg.xml dove si trovano i parametri per il database da usare. Questo file lo trovate in /domains/domain1/applications/j2ee-modules/xwiki/WEB-INF.

Io ho abilitato la configurazione di MySQL ma esistono le configurazioni di HSQLDB, PostgreSQL, Oracle e Derby e ho inoltre copiato all’interno della cartella xwiki/WEB-INF/lib il mysql connector ma non sono sicuro che sia servito.

Tuttavia ho ancora avuto il medesimo errore perchè XWiki ha creato il database xwiki con utente xwiki ma senza la password che dovrebbe essere xwiki, dunque seguendo le istruzioni, ho scritto:

mysql -u root -e “grant all privileges on xwiki.* to xwiki@localhost identified by ‘xwiki'”

e difatti connettendomi con l’utente xwiki (con la password questa volta) su MySql son riuscito a vedere il database e andando finalmente all’url:

http://localhost:8080/xwiki/bin/view/Main/

sono riuscito finalmente a vedere XWiki però non potete ancora loggarvi e dal menu in alto a destra (administration) dovete scaricare ed importare il file xar per la configurazione e così potete loggarvi con utente Admin e password admin.

Ora potete lavorare su XWiki, unica cosa non riesco ad esportare le pagine in PDF e RTF ed ho eccezioni di Xalan e Xerces, speriamo di risolvere subito.

Gestione fatture con Invoicex

Invoicex è un programma multipiattaforma grazie al fatto che è realizzato in Java quindi si puo’ installare per Win, Linux e Mac.

Invoicex è rilasciato con licenza GPL 2 dalla società TNX la quale, in collaborazione con Bios Informatica, ha realizzato ClientManager un software, non libero, per la gestione di interventi tecnici che si puo’ integrare con Invoicex.

Invoicex, tra l’altro, usa MySQL come database, infatti all’avvio dell’installazione, vi viene chiesto se volete usare il suo database interno o dargli un database remoto (che puo’ risiedere sul vostro pc), se non esiste il database verrà creato con una 50 di tabelle, io ho usato MySQL avviandolo da Xampp e ho lasciato creare il database.

Finita la fase di creazione del database vi vengono chiesti i dati dell’azienda: ragione sociale, partita iva, codice fiscale e recapito. I dati vengono salvati nella tabella dati_azienda del database.

Vi viene chiesto tra l’altro se volete che questi dati siano trasmessi a TNX per uso statistico, potete dire di no ovviamente.

Finito il tutto potete, tramite una interfaccia semplice e pulita (solo un menu e una barra orizzontale), gestire preventivi/ordini, ddt, fatture, clienti/fornitori e loro situazione, articoli, fatture acquisto.

La versione attuale del programma (1.7.7 del 28/01/2009) ha poi 5 plugin che, se abiltati sono gratuiti per 30 giorni, dopo di che devono essere acquistati, i plugin in questione sono:

  • Backup/Restore su server remoto TNX
  • Integrazione con Client Manager
  • Aggiornamento automatico del programma
  • Gestione ritenuta d’acconto
  • Ricerca globale

I report di preventivi/ordini, ddt, fatture, clienti/fornitori vengono di solito stampati/salvati in PDF, in particolare ho notato che quanto si stampano i preventivi/ordini viene usato JasperViewer mentre quando si stampa l’elenco degli articoli questo puo’ esser salvato in PDF, HTML e Excel.

JasperViewer viene usato anche quando si genera il report su Ordini/Bolle/Fatture dal menu Statistiche.

E’ possibile infine chiedere assistenza, a pagamento, annuale o per ticket.

Cliccando sul menu Aiuto -> Informazioni si scopre che il programma si basa sulle seguenti librerie:

Buona fatturazione !

Glassfish 2.1, Quercus 3.2.1 e WordPress 2.7.1

Talvolta avevo pensato di migrare da PHP a JSP poichè Tomcat supporta nativamente JSP ma Tomcat non è un application server.

Ultimamente sto valutando di usare Glassfish o Jboss come application server per usarli come base per Hudson un continuous integration engine (vedete articolo precedente) invece di usare Winstone integrato al suo interno.

In particolar modo, siccome quelli di Glassifish con Metro affermano l’interoperabilità con .NET per i web service (a partire da Jax-WS più le implementazione degli stessi standard con .NET cosa che Axis2 fa ma più lentamente a mio parere), ho pensato di concentrarmi su Glassfish.

Per caso ho scoperto che esiste Quercus che è una libreria java che è una implementazione java di PHP, in pratica il codice PHP viene trasformato in Java, in pratica potete far girare le vostre applicazioni PHP.

Quercus viene rilasciato con licenza GPL 2 da Caucho Technology una azienda che ha realizzato Resin un java/php application server e Hessian un protocollo binario per web services che avevo già sentito nominare quando lavoravo sui web services.

Quelli di Caucho affermano che le prestazioni si vedono.

Presto detto quello che avete bisogno quindi è GlassFish, Quercus e i driver JDBC che dovete installare nel vostro application server e che Quercus farà uso e la vostra applicazione PHP ovviamente.

Ho scelto WordPress perchè ho trovato un tutorial e di conseguenza ho installato i driver JDBC per Mysql e Mysql stesso.

I tutorial che ho seguito sono:

  • http://blogs.steeplesoft.com/glassfish-php-and-wordpress/ (ma non spiega che bisogna creare un connection pool su glassfish ovvero la connessione tramite i driver JDBC). Dovete prima di tutto estrarre i 3 file (quercus.jar, resin-util.jar, javamail-141.jar) che si trovano nel file war di Quercus nella cartella lib di Glassfish o nella cartella di lib del vostro dominio (domain1 nel mio caso)  a seconda della visibilità che volete dare. Poi in pratica nella cartella del vostro dominio trovate il file config/default-web.xml e dovete inserirci la seguente configurazione:

<servlet>
<servlet-name>Quercus Servlet</servlet-name>
<servlet-class>com.caucho.quercus.servlet.QuercusServlet</servlet-class>
<init-param>
<param-name>ini-file</param-name>
<param-value>WEB-INF/php.ini</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Quercus Servlet</servlet-name>
<url-pattern>*.php</url-pattern>
</servlet-mapping>

Dovete poi estrarre WordPress nella cartella docroot del vostro dominio.

Poi oggi rivedendo Quercus ho visto che la procedura è spiegata nel file readme :-) che trovate nel pacchetto e che vi consiglio a questo punto di leggere per prima.

Ora mi concentro anche su Jboss e vedo per qualche applicazione in PostGres.

Nota: vedere anche Php-Java bridge.