.: HosiriS :.

Informatica e non solo

Archive for febbraio 2011

Testiamo i codici CSS al volo

Posted by hosiris su febbraio 28, 2011

Gli strumenti per lo sviluppo web non sono mai sufficienti… solo se non si cerca abbastanza. E’ sempre molto rognoso testare le definizioni dei CSS soprattuto quando si fanno operazioni minute.
Ci viene in aiuto CSSDesk:

E’ possibile definire l’html su cui applicare il CSS e poi i vari stili da utilizzare, visualizzando direttamente il risultato.

Buon divertimento

Annunci

Posted in Programmazione | Leave a Comment »

Lista di strumenti utili per la programmazione in PHP

Posted by hosiris su febbraio 26, 2011

Con questo post vorrei presentare una carrellata dei principali strumenti che possono aiutare un novizio o un esperto nello sviluppo di un software.

Acceleratori

  • eAccelerator: acceleratore, ottimizzatore e sistema di caching PHP open-source. Aumenta le prestazioni degli script PHP creando una cache della sua versione compilata in modo da non dover ricompilare la pagina ogni volta. Questo strumento permette di ridurre il carico del server di 1-10 volte.
  • ionCube PHP Accelerator: è una estensione dello Zend Framework che fornisce una cache PHP

Build System

  • Phing: un sistema di costruzione progetti basato su Apache Ant. E’ possibile fare ogni operazione che è permessa da sistemi come GNU make. Tra le caratteristiche troviamo la possibilità di usare PHPUnit e SimpleTest per test unitari, esecuzione di codice SQL, operazioni CVS/SVN, tool per creare pacchetti PEAR, e molto altro…

Codice

  • BeautifyPHP: permette di formattare correttamente il codice PHP in accordo agli standard PEAR
  • PHP Beautifier: formatta il codice automaticamente. E’ un programma open-source, è scritto in PHP5 ed ha un tool da linea di comando
  • PHP OBject Generator: generatore di codice PHP open-source che permette di generare e testare codice Object Oriented per applicazioni PHP5 CRUD.
  • UML2PHP5: è un plugin per DIA. Genera automaticamente codice PHP seguendo il diagramma delle classi.
  • Instant SQL Formatter: è un tool libero per il coding SQL. PUò anche tradurre il codice SQL in C#, Java, PHP e altri linguaggi di programmazione.
  • phpMyEdit: editor per tabelle MySQL e generatore di codice PHP. Tra le importanti caratteristiche di questo programma troviamo: generazione di codice per la manipolazione delle tabelle; paginazione delle tabelle; gestione delle relazioni 1:M; ed altro…
  • PHP Obfuscator: rende l’output difficile da studiare con metodi di reverse engineering.

Database

  • Propel: è un ORM framework per PHP5. Permette l’accesso al database attraverso l’uso di oggetti.
  • Doctrine: miglior ORM per PHP5.

Debugging

  • Xdebug: fornisce varie informazioni sul debug degli script tra cui: tracciamento dello stack e delle funzioni, allocazione della memoria e protezione da cicli infiniti.
  • DBG: tool interattivo per il debug del codice.

Sviluppo

  • PHP CodeSniffer: è uno script PHP5 che permette di rilevare inconsistenze nel codice. Aiuta a prevenire i più comuni errori semantici.
  • phpDocumentor: simile a JavaDoc, può essere utilizzato per creare una documentazione del codice PHP
  • PHP Depend: è un software di analisi che aiuta a fornire molte informazioni su specifici progetti PHP.

IDE & Editors

Security

  • PHP Intrusion Detection System: permette di monitorare le applicazioni web in modo da riconoscere quando un malintenzionato cerca di forzare il server.
  • PhpSecInfo: fornisce l’equivalente di phpinfo() riportando informazioni di sicurezza sull’ambiente PHP e fornisce suggerimenti sul modo di migliorare l’ambiente

Testing

  • PHPUnit: membro di xUnit che permette di eseguire dei test
  • SimpleTest: simile a PHPUnit

Posted in PHP, Programmazione | Leave a Comment »

DVDisaster

Posted by hosiris su febbraio 24, 2011

In questo articolo viene proposto un metodo per poter storare dati importanti su DVD diminuendo il rischio di perdita dei dati.

Posted in Informatica | Leave a Comment »

Localizzazione in CakePHP

Posted by hosiris su febbraio 24, 2011

Oggi voglio consigliare due articoli scritti dal buon Blackout.

Con questo articolo scopriremo come localizzare la lingua della nostra applicazione web.

Posted in CakePHP, CMS&MVC, Programmazione | Leave a Comment »

CakePHP su AppServ!

Posted by hosiris su febbraio 22, 2011

Eccoci di nuovo davanti il solito Windows 😀 sempre a creare problemi!
Mi si è presentata la necessità di dover installare un server web ad un amico… e, dovendo puntare sulla semplicità, ho deciso di installare AppServ. Per fare in modo che CakePHP funzioni su questo servizio è necessario abilitare il mod_rewrite, inoltre per evitare problemi sulla scrittura degli indirizzi sarebbe utile poter configurare i virtual host.
Bene, date le specifiche, cominciamo a lavorare.
Apriamo il file “http.conf” che troviamo sotto c:\AppServ\Apache2.2\conf\ e cerchiamo le seguenti linee:

#LoadModule vhost_alias_module module/mod_vhost_alias.so
#LoadModule rewrite_module modules/mod_rewrite.so

e togliamo i commenti ad entrambi, ottenendo:

LoadModule vhost_alias_module module/mod_vhost_alias.so
LoadModule rewrite_module modules/mod_rewrite.so

Poi diciamo al file di configurazione dove andare a prendere le configurazioni dei virtual host, quindi cerchiamo:

#Include conf/extra/httpd-vhosts.conf

e togliamo il commento, così:

#Include conf/extra/httpd-vhosts.conf

salviamo e chiudiamo, quindi possiamo aprire il file “extra/httpd-vhosts.conf”. Calcelliamo tutto ed inseriamo il seguente:

    ServerAdmin webmaster@project
    DocumentRoot "C:/AppServ/www/project/app/webroot/"
    ServerName project
    ErrorLog "logs/project-error.log"
    CustomLog "logs/project-access.log" common

In questa configurazione ipotizziamo che il progetto CakePHP si trovi sotto la cartella “project” e che nel file “hosts” (posizionato sotto c:\windows\system32\drivers\etc) sia presente la seguente linea:

127.0.0.1 project

Riavviamo i servizi… e adesso potremmo coderci la nostra opera 😀

Posted in CakePHP, Programmazione | 2 Comments »

Cominciare ad utilizzare l’Android SDK su Maverick Meerkat

Posted by hosiris su febbraio 20, 2011

Il mondo sta puntando il suo interesse verso dispositivi sempre più portatili… vedi tablet, smartphone… tutti oggetti reputati inutili fino a pochissimi anni fa (nel 2003 HP aveva già prodotto un primo tablet facendo un enorme buco nell’acqua).
Ecco perchè ho deciso di dare uno sguardo al mondo delle applicazioni per dispositivi “mobili”, cominciando da quello che per lo meno permette un inizio a chiunque: possessore o no di un dispositivo Android.
L’SDK è scaricabile da qui.
Una volta prelevato il pacchetto, posizionamolo nella cartella /opt e scompattiamolo:

$ sudo mv android-sdk-{version}.tgz /opt
$ sudo tar xvzf android-sdk-{version}.tgz
$ sudo chown -R user:user android-sdk-{version}
$ sudo ln -s /opt/android-sdk-{version}/tools/android /usr/bin/android

In questo modo siamo pronti a lanciare l’sdk:

$ android

La prima operazione da compiere è quella di installare i vari componenti, altrimenti avremmo degli errori. Quindi andiamo nella sezione “Available packages”, selezioniamo tutto e poi clicchiamo su “Install selected”.
Attendiamo i tempi di installazione, nel frattempo scaricate Eclipse ed installatelo.
Al termine dell’installazione sarà necessario aggiungere il plugin ADT (Android Development Tools), quindi andiamo in “help->install new software” e aggiungiamo il seguente indirizzo: https://dl-ssl.google.com/android/eclipse/. Attendiamo che vengano caricati i pacchetti, selezioniamo tutto e confermiamo l’installazione.

Riavviamo Eclipse. Nel frattempo l’sdk avrebbe dovuto finire (dipende dal tipo di connessione che avete). Chiudete l’interfaccia e da terminale digitiamo:

$ android create avd --target 2 --name first_avd

Abbiamo quasi finito. A questo punto abbiamo un dispositivo virtuale pronto e l’ambiente di sviluppo installato, manca solo l’integrazione tra i due, quindi apriamo Eclipse e sotto “Window->Preferences” selezioniamo Android. Impostiamo la directory in cui si trova l’sdk e diamo l’ok. Con questo è tutto pronto, non rimane che avviare il primo progetto.

Buon divertimento

Posted in Mobile, Programmazione | Leave a Comment »

Eventi: Codemotion

Posted by hosiris su febbraio 18, 2011

Codemotion è un evento sulla nuove tecnologie che si svolgerà a Roma il 5 Marzo prossimo. Saranno presentati numerosi talk su vari argomenti. Credo proprio che sarà un ottima giornata da sfruttare per apprendere nuovi concetti.

Posted in Informatica | 1 Comment »

text2wave: errore nella creazione del file

Posted by hosiris su febbraio 16, 2011

text2wave è un programma che ci permette di creare dei file audio a partire da un file di testo. Un esempio di uso è il seguente:

$ echo "ciao" | text2wave -scale 50 -o ciao.wav

Può capitare che durante la generazione del file venga restituito il seguente errore:

wrong type of argument to get_c_val

La risoluzione è molto semplice, apriamo il file /usr/bin/text2wave e cerchiamo la seguente riga:

(let ((wholeutt (utt.synth (Utterance Text ""))))

modifichiamola in modo che divenga:

(let ((wholeutt (Utterance Text "")))

Adesso riproviamo e vedremo che il file verrà generato nella maniera corretta.
Se utilizzate questa utility, vi consiglio di utilizzare lame per trasformare il file wave in mp3, avrete dei vantaggi a livello di spazio occupato.

Buon divertimento!

Posted in Informatica, Linux, Sistemi, Ubuntu | Leave a Comment »

Facciamo parlare il nostro PC: Festival text-to-speech

Posted by hosiris su febbraio 14, 2011

I programmi text-to-speech, come Festival, sono dei programmi di sintesi vocale tramite cui è possibile far leggere un testo da una voce sintetica.

Vediamo come installarlo e come usarlo sulla nostra piattaforma GNU/Linux:

$ sudo apt-get install festival festvox-italp16k festvox-itapc16k

in questo modo abbiamo installato anche le voci per la lingua italiana.
Nella home creiamo un file di nome .festivalvarsrc e scriviamo:

(set! main-path "/usr/share/festival")
(set! load-path (cons main-path load-path))

Adesso apriamo il file .festivalrc e aggiungiamo:

(set! main-path "/usr/share/festival")
(set! libdir main-path)
(set! lexdir (path-append libdir "dicts"))
(set! voice_default voice_lp_diphone)

Festival è pronto per essere utilizzato, avviamolo tramite il comando “festival” e vedremo comparire il prompt di festival. Digitiamo:

(SayText "Ciao sono Festival e so parlare!");

Non stupitevi della bruttezza della voce 😀 dopotutto è sempre una voce sintetica! Vedremo più avanti come migliorarla.
Ma perchè installare un programma come festival? Oltre alla voglia di imparare cose nuove, questo programma certamente può essere sfruttato per aumentare l’accessibilità di molti sistemi, ma non solo, può essere usato per una serie di applicazioni di utilità comune.

Buon divertimento

Posted in Informatica, Linux, Sistemi, Ubuntu | 2 Comments »

Usiamo l’user-agent per il controllo degli accessi

Posted by hosiris su febbraio 12, 2011

Quando si scrivono le direttive per apache, non si è mai certi del fatto che si stia facendo il massimo per aumentare la sicurezza.
Il piccolo tip che propongo permette di utilizzare le informazioni che il browser invia ai web server, in particolare lo user-agent, come parametro di controllo.
All’interno delle direttive delle directory che vogliamo rendere sicure aggiungiamo le seguenti righe:

SetEnvIf User-Agent some ok=1
Order deny,allow
Deny from all
Allow from env=ok

In pratica stiamo dicendo ad apache di controllare lo user-agent… se corrisponde a “some” allora imposta una variabile (ok).
Ma adesso vi chiederete: come può un browser modificare questa informazione?
Firefox ha una estensione molto interessante che si chiama “user-agent switcher” che ci permette di creare degli header appropriati, permettendoci di sfruttare questa funzione.
Attenzione, non credete che con questo siete al sicuro. E’ un piccolo scoglio, ma può essere evitato, quindi usatelo con cautela e soprattutto evitate di usare user-agent prevedibili (ad esempio Pippo).
Anche wget permette di cambiare lo user-agent tramite il parametro “-U”.

Buon divertimento!

Posted in Apache, Sicurezza, Sistemi | Leave a Comment »