GAMP

Amenità informatiche sottocosto

Creare thumbnail con ImageMagick

con un commento

GD (con la sua estensione per PHP) è un tool utilissimo per creare thumbnail “al volo”.

Ma nel caso avessimo necessità di ridimensionare un gran quantitativo di immagini e di creare le miniature prima della pubblicazione risulterebbe sicuramente più utile usare ImageMagick e in particolare il comando convert.

convert -colorspace RGB -thumbnail x200 file_di_partenza.tif thumbnail.jpg

Il comando è quasi auto-esplicatvo:

  • -colorspace serve a specificare il colorspace del thumbnail che vogliamo creare, RGB, GRAY, CMYK, etc. Se vogliamo creare delle miniature per il web partendo da delle immagini ad alta definizione che fanno uso della cromia CMYK ricordiamoci di specificare RGB come colorspace altrimenti risulteranno illeggibili con alcuni browser.
  • -thumbnail x200 crea un miniatura di 200px di altezza. Per specificare la larghezza al posto dell’altezza basta togliere la x da davanti. Se vogliamo specificare sia altezza che altezza basta fare così: 200×100 (immagine larga 200 e alta 100)
  • gli ultimi due parametri sono il file di partenza e il file di destinazione.

Se invece volessimo creare un thumbnail di dimensioni fisse prendendo la regione più ampia possibile?

Leggi il seguito di questo post »

Written by Andrea Giardina

Giugno 19, 2007 alle 12:30 pm

Pubblicato in ImageMagick

Mono-Tasking? Mylyn!

con 2 commenti

La mia ragazza mi definisce gentilmente come essere mono-tasking. Sostiene che ho persino difficoltà a camminare telefonando. Be’, ha ragione!

Fatto questo assunto probabilmente non sono il solo programmatore sulla faccia della Terra a difettare in multi-tasking (in verità penso che la percentuale dei mono-tasking sia uguale al 100%, ma non ditelo alla mia ragazza che poi se la prende ;) ) e soprattutto non solo il solo utilizzatore di Eclipse :)

Leggi il seguito di questo post »

Written by Andrea Giardina

Giugno 12, 2007 alle 12:38 pm

Lo vuoi? yes!

lascia un commento »

Lo ammetto, ogni tanto la shell Unix mi commuove :)

Ci sono delle “chicche” fantastiche, come ad esempio il comando yes. E’ un comandino semplice semplice che non fa altro che stampare a schermo all’infinito il carattere y. A cosa serve? Si combina molto bene tramite il comando | con qualsiasi altro programma che abbia bisogno di conferme da parte dell’utente. Ad esempio il comando

rm -i test.txt

resterebbe in attesa di conferma da parte dell’utente prima di eliminare il file text.txt.

Lanciando

yes | rm -i test.txt

è yes a rispondere “sì, lo voglio” in vece nostra :)

Written by Andrea Giardina

Giugno 6, 2007 alle 10:35 am

Pubblicato in Uncategorized

Sei un programmatore?

con 59 commenti

Dimostralo!

Sembra che questo quesito* semplice semplice in realtà sia di facile soluzione solo per i programmatori (e i matematici). Divertitevi :)

Ci sono 7 carte sul tavolo. Ogni carta da un lato ha un numero e dall’altro una lettera. Quali carte dovete girare per verificare che sia vera l’affermazione

Se da un lato c’è la lettera D dall’altro lato c’è un 3

D234EF - 3

* tratto dal “Piccolo manuale di autodifesa intellettuale” (Apogeo)

Written by Andrea Giardina

Giugno 4, 2007 alle 8:01 am

Pubblicato in Amenità

:before :after

lascia un commento »

Con questo post potrebbe partire la speciale rubrica “css che passione” :)

Cosa sono :before e :after? Due pseudo-elementi grazie ai quali si può generare contenuto al volo prima e dopo un elemento all’interno del DOM HTML (e se ne può anche impostare lo stile). Quasi quasi non mi sono capito neanch’io quindi ecco un esempio: immaginiamo di avere un pezzo di codice html come questo:

<cite>Questa è una citazione!!!!</cite>

e di applicarvi questo css:

cite:before {
content:open-quote;
}
cite:after {
content:close-quote;
}

Il risultato ottenuto assomiglierebbe a qualcosa del genere:

cite1.png

Grazie alla proprietà content si può in realtà specificare qualsiasi contenuto; tornando all’esempio precedente, applicando questo stile:

cite:before {
content:”Citazione: “;
font-size:smaller;
}

il risultato dovrebbe essere:

cite2.png

Fantasmagorico vero? Peccato che si tratti di uno standard e non è quindi implementato da Internet Explorer (neanche nella versione 7 per quanto ne so).

Tuttavia rimane utile per abbellimenti grafici (ad uso dei soli eletti) e in generale per incrementare l’usabilità di un sito.

Per tutti i dettagli rimando alla documentazione ufficiale:

http://www.w3.org/TR/CSS2/generate.html#before-after-content

Written by Andrea Giardina

Giugno 1, 2007 alle 9:58 am

Pubblicato in CSS, Explorer, HTML, Standard

La workstation perfetta per il perfetto web developer…

con 17 commenti

… non esiste :D

A parte questa massima che lascia il tempo che trova dopo 7 anni passati a programmare in ambiente LAMP da professionista un’idea di quale sia la migliore combinazione di software e amenità da utilizzare me la sono ben fatta.

Ed ecco quindi la mia personale ricetta, ingredienti nuovi e suggerimenti sono sempre ben accetti :D

Passo numero 1 installare Ubuntu. A parte le motivazioni “etiche” legate alle scelta di un ambiente GNU/Linux, che in questo momento comunque non ci interessano, la scelta è tutta volta all’insegna della produttività: la grande disponibilità di software già pronto, la maggiore sicurezza, una shell potente sarebbero già da soli motivo più che sufficiente per escludere qualsiasi alternativa; il cercare poi un ambiente il più simile possibile a quello di produzione dà il colpo di grazia. A chi si sta chiedendo perché Ubuntu e non un’altra distribuzione od un altro sistema Unix Like rispondo con due semplici motivazioni in ordine di importanza:

  • gusti personali
  • miglior trinomio potenza / stabilità / funzionamento “out of the box”

L’ambiente desktop di riferimento l’avrete già capito è Gnome sia per gusti personali (lo trovo decisamente più coerente ed usabile delle alternative) sia perché la maggior parte dei software che uso si integra meglio con Gnome che con KDE o XFCE.

Passiamo al software per fare il vero lavoro “sporco” partendo dall’editor:

EasyEclipse for PHP non si tratta d’altro che di un Eclipse bello e pronto da scaricare con un tot di plugin già configurati per chi come me sviluppa in PHP. Si può anche partire dall’Eclipse disponibile direttamente nei repository di Ubuntu ma qui trovate una serie di utilità (il supporto svn ad esempio, o l’editor HTML) già installate. Comunque per le mie esigenze non è ancora perfetto e quindi ecco come “speziare” la ricetta: installo il plugin Clay per il modelling del database e infine ranzo via il plugin PHP Eclipse per installare il plugin PDT

Fatto l’editor passiamo al browser: il browser principale non può che essere Firefox non tanto perché lo ami follemente ma perché non potrei mai fare a meno della Web Developer Toolbar e della Google Toolbar. Non manco comunque mai di installare Epiphany e un bel armamentario di browser da testing (anche detta carne da macello): Opera, Konqueror e l’indispensabile IE4Linux (consiglio la versione beta per poter testare anche Explorer 7).

Passando alla questione gestione immagini il primo eroe della serie è GQview, un visualizzatore di immagini che appartiene alla nota categoria brutti ma funzionali. Leggero ed estremamente configurabile è l’ideale per visualizzare tante foto di grandi dimensioni senza incredibili rallentamenti e crash. Chicca del programma la possibilità di inviare l’immagine all’editor grafico preferito tra cui non può mancare ovviamente GIMP. Nel reparto immagini è anche necessario citare un’applicazione QT based per la generazione delle mappe HTML: KImageMapEditor (unico vero oggetto indispensabile della categoria HTML wysiwyg). Concludo la carrellata dedicata alle immagini con una prelibatezza che forse servirà a pochi ma che mi ha semplificato la vita non poche volte: kruler; trattasi di un semplice righello a schermo, grande amico quando si devono prendere dimensioni al volo dai layout più disparati.

Per il reparto desktop ancore due citazioni da coltellino svizzero: gFTP client ftp agevole per spostare file in modalità grafica tra workstation e server (o tra server a server) e ancora i mitici MDB Tools indispensabili per leggere database MsAccess (prima o poi capiterà anche a voi il cliente che vi getta addosso tutta la propria storia in un bel file mdb).

Per concludere la lieta novella il reparto server/shell della nostra workstation.

Stiamo parlando di LAMP quindi Apache, MySQL e PHP mi sembra sia quasi inutile citarli :) Tra gli indispensabili del reparto non dimentichiamo mai il modulo gd per PHP e il mod_rewrite per Apache. Al tutto si possono aggiungere i sempre ben accetti PEAR e phpMyAdmin.

Lato shell oltre ai soliti noti (svn, scp, cvs, lftp, wget, etc) non mi faccio mai mancare php-cli, l’interfaccia a linea di comando di PHP, e ImageMagick vero grande risolutore per tutti i problemi di immagini (come ad esempio trasformare giga e giga di foto ad alta risoluzione in jpeg da pubblicare sul web).

Bene, ecco la mia ricetta… e la vostra? :)

Written by Andrea Giardina

Maggio 30, 2007 alle 11:06 am

Pubblicato in Apache, Desktop, Linux, MySQL, PHP

Informatica a risparmio energetico

lascia un commento »

L’informatica è uno dei fattori determinanti nella grande corsa verso un “mondo migliore”, un ingrediente fondamentale di ciò che chiamiamo progresso. Senza spingerci ad analizzare il ruolo importante assunto dall’informatica nei campi più specialistici, si pensi alla medicina o all’areonautica, ce ne si può facilmente rendere conto nella vita di tutti i giorni confrontando le possibilità di comunicazione, di cultura, di espressione di oggi (da Skype a Wikipedia, da WordPress a Flickr) con quelle di solo qualche anno fa.

Eppure, nonostante i vantaggi prodotti dall’informatica siano evidenti a tutti (o perlomeno a tutti i non “apocalittici”), c’è almeno un campo nel quale, a mio avviso, l’informatica non ha prodotto sostanziali miglioramenti: un campo che potremmo definire per semplicità, e forse con una retorica un po’ troppo marxista, di “liberazione dal lavoro”.

Il discorso è sin troppo semplice: i vantaggi offerti dall’informatica (e più generale dalla tecnica) sono andati tutti a favore di una maggiore produttività, a discapito invece di un possibile guadagno in termini di ore lavoro risparmiate: per essere banali chi potrebbe fare in 10 ciò che in un’era pre-informatizzata faceva in 30, non lavora 10 ma continua a lavorare 30 “rendendo” 3 volte tanto.

Forse, e sottolineo forse, non c’è un’altra strada percorribile. Ed è per questo che lancio una provocazione in due semplici passi:

  1. Definire una licenza software che reciti nel suo punto fondamentale “Ogni 3 ore di lavoro svolto con questo software l’utente guadagnerà un’ora di ferie retribuite
  2. Produrre un gestionale gratuito da distribuire con questa licenza.

A volte per raggiungere obiettivi anche piuttosto modesti è necessario puntare molto in alto. E puntare molto in alto in questo caso significa riuscire a produrre un gestionale che riesca nel tempo ad avere un TCO (comprensivo delle ore lavoro “regalate”) inferiore a qualsiasi alternativa commerciale e non. Il dado è tratto, chi gioca?

Written by Andrea Giardina

Maggio 28, 2007 alle 9:19 pm

Pubblicato in Uncategorized

Da una query MySQL ad un file csv?

lascia un commento »

PHP, BASH, Python… chi offre di più?

Ma no, lasciamo che sia MySQL stesso a fare il lavoro sporco per noi, son sicuro che la SELECT… INTO OUTFILE tornerà preziosa a molti.

Ed ecco un bel copia e incolla direttamente dalla documentazione ufficiale di MySQL:

SELECT a,b,a+b INTO OUTFILE '/tmp/result.txt'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM test_table;

Written by Andrea Giardina

Maggio 24, 2007 alle 1:14 pm

Pubblicato in MySQL

GAMP… si parte

con un commento

“What is GAMP?” Solo un’altra occasione di parlare di (L)AMP in “salsa Giardina” :D

Written by Andrea Giardina

Maggio 24, 2007 alle 12:55 pm

Pubblicato in Uncategorized