Category Archives: Linguaggi

8 strumenti per la compressione di script e CSS

Pubblicato da

8 strumenti per la compressione di script e CSS

Ci sono molti servizi online che aiutano nella compressione degli script (Javascript nella quasi totalità) e dei fogli di stile CSS.
Spesso, nelle pagine di questi servizi, è anche presente il codice sorgente in svariati linguaggi. Codice che è possibile riutilizzare per i nostri progetti.
La compressione serve per aumentare la velocità con cui una pagina viene visualizzata, riducendo il peso di file CSS o di lunghi script.
Ecco una lista di quei servizi con cui mi trovo meglio.

  1. shrinksafe – compressione javascript. E’ sia un servizio online che uno script completamente scaricabile
  2. JSMin – compressione javascript. Si può scaricare l’eseguibile o gli script in moltissimi linguaggi
  3. Packer – compressione javascript. Online, con copia e incolla dello script, oppure disponibile in .NET, Perl e PHP
  4. CompressorRater – comparazione tra i vari tipi di compressione. Ottimo per decidere quale compressore può fare al nostro caso
  5. YUI compressor – compressione CSS e Javascript. Scritto in Java
  6. CSS Compressor – compressione CSS online con nessuna opzione
  7. CSS Compressor by Antarius –  compressione CSS online con qualche opzione
  8. CSS Compressor by CSS Drive – compressione CSS con tre livelli di compressione

Formee il framework per i form

Pubblicato da

Formee il framework per i form

I form possono essere dei veri grattacapi per gli sviluppatori web.
In primis c’è il problema della visualizzazione omogenea nei vari browser.
Poi ci sono le difficoltà nel rendere un form gradevole dal punto di vista estetico ma anche accessibile e usabile.

Formee è un framework orientato ai form basato su Fluid 960 Grid System (a sua volta basato 960 Grid System) che permette di non sbattere la testa con allineamenti,larghezze e font.
Infatti le larghezze di tutti i campi di testo, le aree sono espresse in percentuale in modo da potersi adattare a qualsiasi tipo di layout.
Dopo aver incluso i due css del framework il nostro unico cruccio sarà solo quello della costruzione del form.

Link: Formee

Menù orizzontali con originale effetto hover

Pubblicato da

Menù orizzontali con originale effetto hover

Se vogliamo creare un menù orizzontale con un simpatico ed originale effetto hover, possiamo prendere in considerazione questo menù realizzato con jQuery e CSS.
I pulsanti sembrano salire e cambiare colore. In realtà si tratta di un livello invisibile che solo nell’area del menù diventa visibile sovrapponendosi al primo.
L’effetto è semplice  ma ben documentato. Una demo è presente qui mentre il tutorial completo lo potete leggere qui

Menù orizzontali con originale effetto hover

Sulla stessa stregua un effetto in cui i pulsanti “scendono” dall’alto.
Anche qui è presente una demo e un archivio zip con l’esempio completo

Errore PHP: Cannot modify header information – headers already sent

Pubblicato da

Errore PHP: Cannot modify header information – headers already sent

E’ stato scritto tantissimo su questo comune errore PHP ma, in giro, ho notato che non c’è quasi mai una trattazione completa.

In primis diciamo che è un problema che sorge quando si usano funzioni di sessione del tipo session_start(), oppure funzioni di modifica delle intestazioni come header(), oppure ancora quando settiamo i cookie con setcookie().
Le cause:

  • Abbiamo usato una delle sopra citate funzioni dopo il tag <html> o comunque dopo aver impostato un output
  • Una linea bianca prima del tag di apertura <?php , anche un semplice spazio bianco, rappresenta un output
  • Nel file è incluso un BOM. Una piccola sequenza di byte che viene posizionata all’inizio di un flusso di dati di puro testo per indicarne il tipo di codifica Unicode

Soluzioni:

  • Le funzioni sopra citate vanno messe in testa al file PHP. Prima di qualsiasi altro codice.
  • Cancellare qualsiasi spazio bianco prima del tag di apertura. Potrebbe non essere uno spazio vuoto ma venire codificato dall’interprete PHP
  • Salvare il file con codifica UTF-8 senza BOM. Un buon editor come Notepad++ permette di farlo con semplicità.
  • Settare in php.ini il valore output_buffering=4096 (usarlo solo se necessario in quanto si rallenta il processo di output)
  • Iniziare lo script PHP con la funzione ob_start() (alternativo alla soluzione precedente) che attiva l’output_buffering senza stabilirne la grandezza

Link: funzioni di controllo del output in PHP

Comparazione framework

Pubblicato da

Comparazione framework

La necessità di “non inventare la ruota” ogni volta che si mette mano ad un progetto ha dato impulso alla nascita e allo sviluppo dei framework.
Esistono framework per quasi tutti i linguaggi e settori della programmazione.
Quelli più famosi ed utilizzati riguardano PHP, Ruby, Javascript e CSS (di meno quelli per Python e Java).

Per comparare i framework e scegliere quello che meglio risponde alle esigenze dello sviluppatore possiamo dare un’occhiata a Bestwebframeworks.
In una sola schermata è possibile comparare le caratteristiche più importanti dei vari framework.
Cliccando sui nomi si accede ad una scheda con maggiori dettagli.

Tramite form è poi possibile segnalare ai gestori del sito nuovi framework da comparare.

Link: Bestwebframeworks

Creare PDF da pagina web e RSS

Pubblicato da

Creare PDF da pagina web e RSS

Un progetto interessante in PHP5 per convertire all’istante pagine web in file in formato PDF.
Si potrebbe dire che per fare lo stesso basta stampare in PDF con la stampante virtuale.
Tutta via questo script fa di più formattando e convertendo anche i contenuti del feed RSS direttamente in un file, lo sappiamo, facilmente trasportabile e leggibile anche off-line.

In aggiunta, si possono creare bookmarklet come pulsanti per la creazione al volo di PDF indipendentemente dalla pagina web che stiamo visitando.
Ad esempio questo è il link per convertire l’RSS di questo blog in PDF (c’è qualche problema con i feed creati al volo come con WordPress).

Link: RSS to PDF Newspaper

Il miglior file manager in PHP

Pubblicato da

Il miglior file manager in PHP

Può capitare di non poter utilizzare il proprio client FTP o una shell di comando per operare su file e cartelle di un server Apache.
Normalmente, però, l’utente www-data ha diritti simili a quelli amministratore e, soprattutto, riesce a effettuare operazioni su file e cartelle come: cambio dei permessi, rinomina, spostamento, cancellazione ecc.

In questi casi si può installare un manager di file in PHP in modo che si possa agire sui file tramite l’utente www-data.
Ho provato diversi manager in PHP dotati di interfacce e  fuzionalità più o meno avanzate.
Quello che mi ha convinto di più è però PHPFileNavigator arrivato alla versione 2.

Veramente completo e semplice da installare, è dotato di un’interfaccia intuitiva con navigazione ad albero che imita l’organizzazione del server.
Le opzioni per ogni file sono veramente tante e ricoprono ogni possibile esigenza di un amministratore di server web.
E’ possibile anche effettuare upload e modificare online il file stesso tramite un text editor.
Ottimo.

Link:  PHPFileNavigator

Ebook gratis: costruire siti web con Plone

Pubblicato da

Ebook gratis: costruire siti web con Plone

L’ascesa di Python come linguaggio di programmazione è dovuta anche alla realizzazione di solidi e potenti application server come Zope e di prodotti come il cms Plone.
Plone, nella sua completezza,può però generare una curva di apprendimento abbastanza ripida. Per ovviare a questo problema possiamo farci guidare da un esperto del settore come Cameron Cooper.
Da oggi è disponibile un ebook gratuito in inglese che ci aiuta, passo dopo passo, nella realizzazione di un sito web completo, usabile e sicuro con Plone.
E’ necessario avere un account su Packt.
N.B. Il libro è stato scritto nel novembre 2004. Qualcosa, ovviamente, è cambiata ma la base è ancora valida

Link: Building Websites with Plone

Aggiungere funzionalità a Google Maps con Geocubes

Pubblicato da

Le mappe di Google sono una grande risorsa per gli sviluppatori. Sono utilizzate per i più svariati motivi: dai siti di agenzie immobiliari a quelli di segnalazione ristoranti.
La personalizzazione tramite API (Application Programming Interface) permette di aggiungere nuovi modi di utilizzo. I marker, ad esempio, permettono di individuare geograficamente punti di interesse (o geo-punti), fornendo anche informazioni aggiuntive.
Ma se questi iniziano a diventare numerosi? Il rischio è quello di creare confusione e di non fornire più un servizio utile.
Geocubes permette di risolvere questo problema suddividendo le macroaree in quadrati che indicano il numero di geo-punti inclusi.

Tramite javascript Geocubes sovrappone un layer sulla mappa di Google modificando visivamente le informazioni sui marker

Aggiungere funzionalità a Google Maps con Geocubes

Il layer di Geocubes e la mappa di Google si caricano in parallelo evitando lentezze di sorta. L’unica condizione è quella di mantenere le coordinate sui punti di interesse sui server di Geocubes.
A disposizione degli sviluppatori ci sono le API dell’applicazione e una libreria PHP che permette di inserire, modificare e eliminare i geo-punti.
Fino al 28 febbraio 2009 tutto è completamente gratuito. Poi la gratuità rimarrà fino a 10.000 geo- punti.

Link: Geocubes

Javascript per raccogliere indirizzi e visualizzare mappe

Pubblicato da

Javascript per raccogliere indirizzi e visualizzare mappe

Mapeed.AddressChooser è uno script in Javascript utile per creare accattivanti form finalizzati a raccogliere indirizzi.
L’utilizzo combinato di Prototype (ma è possibile utilizzare anche altri framework) e delle mappe di Google (anche il sistema di mappe può essere cambiato) permette di visualizzare al volo la mappa dell’indirizzo che stiamo digitando.

E’ possibile utilizzare lo script in due modi.

  • Basic: permette di vedere aggiornata la mappa ad ogni nostra digitazione.
  • Autocomplete: vengono visualizzati suggerimenti per completare più rapidamente l’inserimento dell’indirizzo.

Lo script è leggerissimo (6KB nella versione compatta) e semplice da usare perchè ampiamente documentato.

Link: Mapeed.AddressChooser