...e si può dividersi e non sparire...
se è così riabbracciami quando vuoi!

Domani, Pooh 2004

06/04/2012

Ho sbagliato

Mettere il proprio nome sulle cose riuscite va bene solo se si e’ disposti a metterlo anche sugli insuccessi e gli errori. E io ne ho commesso uno grosso e l’ho detto apertamente, su un foglio che sara’ domenica in mano di tutti quelli che andranno a Messa a Carpenedo. Ed essendo Messa di Pasqua ci andranno anche gli occasionali (come me).

Avrei potuto farne a meno e forse in un’ottica di promozione della propria immagine avrei dovuto, secondo il pensiero dell’epoca dei social network, ma se sono abituato a dire quel che penso anche andando contro l’opinione comune negli ambienti che frequento, e’ giusto che ammetta se sbaglio.

E ho sbagliato. Ho lasciato alcune directory (cartelle, per chi usa Windows) aperte in scrittura a tutti su favrin.net e sul sito della parrocchia. E quando s’e’ verificato un attacco massiccio agli account di Dreamhost un farabutto (persona? organizzazione? poco conta) ha trovato le mie cartelle aperte, ci ha inserito un bel PHP, l’ha eseguito e ha infettato per bene i siti, che rimandavano a postacci semplicemente aprendo le pagine.

Non e’ successo sui siti piu’ recenti, da quelli di don Armando al Gomitolo (dove sono iper paranoico e imposto tutto con l’accesso piu’ limitato possibile).

E’ successo sui siti che curo da quando era abitudine usare MOD_PHP e quindi alcune cartelle dovevano restare piu’ accessibili. Nel tempo li ho migrati a PHP sotto FastCGI ma ho scordato di mettere in sicurezza tutte le cartelle. E puff. Poco importa che sia successo anche a molti altri comprese aziende e studi di esperti.
Ho sbagliato. Dovevo essere piu’ attento e soprattutto piu’ umile: quando ai primi di marzo Dreamhost ha pubblicato questo avviso circa i permessi ho pensato “beh io sono a posto”. Avrei invece dovuto dire “Gabriele, controlla bene se davvero le hai protette tutte”.

Andata. Qualche lezione a volte serve. Ho scritto su Lettera Aperta e nel blog parrocchiale del grande aiuto avuto da Dreamhost. E lo confermo: il supporto tecnico mi ha risposto celermente, dato ogni indicazione, fatto uno scansioni per me e mi ha insegnato a farli. Ho avuto la sensazione di parlare con persone amiche e supportive, non con un help desk commerciale.

Ora mi impegnero’ perche’ non ricapiti.
Per cominciare ho scelto la strada della decrescita: oltre a mettere in sicurezza i siti, dal mio ho tolto tutto cio’ che non ho tempo di seguire o verificare. Ne ha fatto le spese per esempio la povera Ally Chat.
Mi spiace per i nostalgici (come me). In futuro la rifaro’ in base alle competenze che ho accumulato dal 2003 in poi. Per ora pero’ preferisco concentrarmi sul Gomitolo e gli altri progetti correnti. Meglio poco ma fatto bene che tanto col rischio di perdere qualcosa per strada.

16/03/2012

Firefox 11

Altro giro, altro aggiornamento di Firefox che arriva alla versione 11.

Di bello c’e’ l’integrazione dell’estensione tilt che permette di visualizzare le pagine web in 3d e analizzarne facilmente la struttura. Mostra fra le altre quanto codice integrino i vari pulsanti “like”, “share”, “+1″ e simili.

Interessante pure il nuovo editor di CSS in tempo reale, ma devo prenderci la mano per capire se mi puo’ facilitare la vita.

Apprezzo che le mie estensioni preferite (e per me indispensabili, come HTML Validator, Web developer e ColorZilla) continuino a funzionare e ho l’impressione, anche se nelle note brevi non mi e’ parso di vedere nulla al riguardo, che la nuova versione di Firefox sia piu’ veloce e usi un po’ meno memoria. Direi che la concorrenza di Chrome fa bene!

Coraggio, andate nel menu aiuto, scegliete “Informazioni su Firefox” e aggiornate che piu’ gente ha un browser moderno con un buon supporto ad HTML5 e CSS3 piu’ e’ semplice la vita chi crea pagine web ;)

06/02/2012

L’Italia del “ma si’ dai…”

Ma si’ dai, facciamo il sito poi penseremo a cosa scrivere;
ma si’ dai, mettiamo WordPress (o Joomla o…) che cosi’ se lo aggiornano loro;
ma si’ dai, apriamo la pagina su Facebook;
ma si’ dai, anche se le foto sono poco professionali mettiamole che sono contenti;
ma si’ dai, anche se la pagina e’ piena di errori pubblichiamola nessuno se ne accorge;
ma si’ dai, in pochi fanno lo zoom solo del testo;
ma si’ dai…

E cosi’ vedi siti che usano tantissime risorse (migliaia di righe di codice PHP, database, ecc) per ospitare 4 pagine aggiornate una volta al mese se va bene (o all’anno, se va male). Vedi pagine Facebook (in calando, la nuova moda e’ Twitter) con qualche contenuto e nessuno che risponde agli utenti. Vedi pure siti con decine di stock image che poi vai sul posto e trovi un negozio normalissimo oppure siti con foto francamente improponibili che ti passa la voglia di andare e se invece vai scopri il buono oltre la facciata.

Mi hanno insegnato che e’ giusto cosi’, che questo e’ il mondo dei professionisti e confesso che a volte sono tentato anch’io dal “ma si’, dai…”. Solo che da qualche tempo ho iniziato a chiedermi se avviene cosi’ anche all’estero o quello del “ma si’, dai…” e’ un vizio tutto italiano.
Esiste una terra promessa dove chi lavora non dice quasi mai “ma si’, dai…”?

Comunque attenti a non dirlo proprio mai, che in Italia ci perdete. Pero’ ogni tanto e’ bello non dirlo. Fa sentire ancora giovani e idealisti.

02/02/2011

PHP e SQLite

Con grande gioia ho migrato uno dei miei progetti piu’ importanti (che per altro fa da fondamenta a uno ancora piu’ bello) a PHP5.3 e SQLite 3.7.x
Risultato: e’ tutto piu’ veloce, dispongo di funzioni native migliori per il PHP, e nell’ambito SQL posso avvalermi delle chiavi esterne (foreign keys), di un ottimizzatore di query piu’ intelligente e del modulo Full Text Search3 per offrire funzioni di ricerca evolute con una sintassi simile a quella di Google (termine +termine_obbligatorio -termine_non_voluto, ecc).

Dal 2011 avevo portato il mio ambiente di lavoro locale sul PHP 5.3 che, giunto alla revisione .5, mi pare piu’ che maturo ormai. Verificata la compatibilita’ dei miei programmi, ho iniziato a migrarli sfruttando le nuove caratteristiche e sono ampiamente soddisfatto dei risultati!

L’aggiornamento della libreria SQLite, che ricordo essere integrata in PHP dalla versione 5 del linguaggio, e’ sempre stata una questione annosa anche perche’ i cicli di sviluppo dei due prodotti non sono coincidenti ne’ i tempi di aggiornamento degli hosting sono fulminei.

PHP5.2 era rimasto bloccato alla libreria 3.3.7 risalente ormai al 2006. Ora pero’ le cose vanno meglio tanto che nella prossima revisione del linguaggio sara’ presente la libreria 3.7.4 uscita due mesi fa e che offre il nuovo modulo Full Text Search4 (FTS) piu’ efficiente del 3. Anzi incrocio le dita circa il fatto che possano inserire la 3.7.5 di ieri che porta ulteriori miglioramenti.

Come faccio a sapere queste cose?
Beh, PHP e’ open source e io sono un curiosone, quindi son andato a curiosare nel repository (deposito) automatizzato del codice! ;-)

Per chi non lo conoscesse ecco il motto dell’autore di SQLite, che ha donato il proprio codice all’umanita’ e che mi vede molto vicino alle sue idee:

May you do good and not evil.
May you find forgiveness for yourself and forgive others.
May you share freely, never taking more than you give.

Per chi invece non capisse di cosa sto parlando, consiglio di leggere la pagina di Wikipedia in italiano dedicata a SQLite alla cui manutenzione collaboro anch’io, non foss’altro che per onorare il motto di cui sopra.

Dunque… lunga vita a SQLite, che un database SQL e’ senz’altro utile ma sono dell’idea che non tutti i siti abbiano per forza bisogno di appoggiarsi a un database esterno come MySQL o MS SQL. Certo con taluni progetti sono indispensabili, ma e’ utile avere un’alternativa integrata in PHP (nonche’ in mille altri ambienti: probabilmente gia’ usate SQLite senza saperlo).

07/04/2010

Ouch! Aruba, MySQL e InnoDB!

20/7/2012: rispetto a quanto scritto in questo post di due anni fa e’ giusto dire che da dicembre 2011 Aruba supporta le tabelle InnoDB: leggi qui.

Aruba non supporta le tabelle di tipo InnoDB per i database MySQL.
Un poveraccio che deve fare un programma che usa un db da mettere su un sito ospitato da Aruba non puo’ quindi usare ne’ transazioni ne’ tabelle con chiavi esterne.

A questo punto se uno non prevede grossi carichi di lavoro e soprattutto si aspetta molte consultazioni e pochi update concorrenziali, quasi gli conviene usare SQLite che e’ integrato in PHP5 e dalla 3.6.22, presente in PHP 5.3.2, gestisce le chiavi esterne.

Come sono contento di essere su DreamHost…
Intanto pero’, devo fare salti mortali extra…
Intanto googlo e vedo se trovo alternative per usare le chiavi esterne senza InnoDB (si’ lo so, i trigger, ma un altro motore che le offre e che e’ disponibile su Aruba ci sara’…)

Edit del 16 aprile: no, MySQL5 richiede il privilegio SuperUser quindi niente Trigger…

20/11/2009

Le chat di notte, luoghi di perdizione…

Ecco la prova. Dialogo di pochi istanti fa:

[Gabriele] notizia: uscito php5.3.1
[Gabriele] che comprende sqlite3.6.19
[Gabriele] che supporta le foreign keys e la fts3 (ricerca stile google :)
[Gabriele] e che mi ha fatto dire SLURP!!!

(trattasi di un linguaggio di programmazione e un database relazionale, per chi non lo sapesse ;-)

06/07/2009

SEO, SEO delle mie brame…

- Ciao, come e’ andato lo stage?
- Bene, ho fatto web marketing.
- Cioe’?
- Posizionamento dei siti nei motori di ricerca e scrittura articoli con le keywork giuste.

Tradotto: SEO (Search Engine Optimization)

Al che mi e’ scappato un “oh mamma” e giustamente l’interlocutore, giovanotto informatico di grandi speranze (che merita perche’ s’impegna) mi ha chiesto perche’. E gli ho spiegato come esistano due tipi di sviluppatori di siti: quelli che creano il sito pensando fin dall’inizio anche ai motori di ricerca e quelli che ci pensano dopo. Ho poi cercato di non buttargli in faccia la mia opinione spesso radicale sulle cose dicendogli che pero’ i secondi sono quelli che di solito fanno piu’ soldi.

Quello che mi chiedo e’ come si faccia a far fare SEO a una persona che non ha ancora mai creato una pagina (x)HTML+CSS.

Quando ne creera’ una scoprira’ che alla fine la cosiddetta SEO diventa un processo naturale strettamente collegato alla strutturazione del sito stesso.
E scoprira’ anche che i motori di ricerca non sono cosi’ diversi dai disabili quindi creare un sito aperto a questi ultimi da’ vantaggi anche per il posizionamento nei motori.
Questo in tanti devono ancora capirlo, purtroppo…
Confidiamo nelle nuove leve!

17/06/2008

Fai da te o fai per me?

In occasione del mio compleanno (domani) volevo regalarmi una galleria di immagini online in cui pubblicare le foto che ormai da piu’ di un anno realizzo, nonche’ le mie piccole (sicuramente indegne) opere di ritocco con Photoshop.

Ho ceduto alla tentazione: invece di migliorare un mio precedente programma ho installato ZenPhoto, una galleria abbastanza famosa e fra l’altro apprezzata per l’efficienza con cui e’ progettata.
In fondo avrei avuto un sistema “chiavi in mano”, senza fatica, potendomi concentrare sulla realizzazione delle foto. Il programma infatti supporta di tutto: commenti, feed RSS, geotagging, archivio basato su database con ricerche per tag, cronologia, dati, ecc… e’ piu’ di quel che penso serva in una galleria ma lo stile con cui e’ implementato mi piace.

Ho configurato il nuovo sotto-dominio e nel giro di 10 minuti stavo gia’ inviando alcune immagini.
Tutto funzionava bene, tutto era carino. 4 secondi per visualizzare una pagina piuttosto piena. Non e’ tanto (anche contando che si passa per l’Atlantico), pero’… il mio software di galleria, pur essendo piu’ semplice, impiega 0.4secondi e ha il pregio di essere molto ma molto piu’ personalizzabile, nel senso che posso adattarlo per fare qualsiasi cosa.
Certo, Zenphoto e’ ancora li e posso installare il plugin per fare in modo che le pagine restino nella cache del browser dell’utente, nonche’ altri trucchi per velocizzare il tutto (chissa’ se esiste qualcosa come wp-cache), pero’ dipendere dai programmi scritti da altri mi fa sentire con le mani legate e sebbene Zenphoto sia GPL, mettere le mani su programmi altrui resta forse piu’ complesso che scriverseli da zero.

A differenza del passato oggi non sono contrario per principio all’uso nei miei siti di software gia’ fatti, per esempio WordPress, il programma con cui gestisco questo blog, e’ un prodotto eccellente, potente e complesso: se l’avessi dovuto scrivere da solo avrei perso piu’ tempo a programmare che a… bloggare.

D’altra parte una galleria, almeno come la intendo io, richiede un programma meno complicato e che in parte ho gia’ realizzato. Installare Zenphoto mi ha aperto gli occhi su come risolvere alcuni problemi e quindi penso che in questo caso mi concentrero’ sul mio programma (gia’ in uso per un sotto-sito della Girandola), aggiungendo il supporto a SQLite (del resto ormai PHP5 -che lo integra di serie- e’ il presente e il futuro e non ho speso tre mesi della mia vita a imparare i DB per niente, no?). Il risultato magari tardera’ un po’ e non sara’ pieno di funzioni come Zenphoto, pero’ rispondera’ alle mie necessita’ e lo potro’ usare anche in altri siti senza impazzire per adattarlo alle specifiche necessita’.

Detto questo, nel futuro di due siti con cui ho a che fare ci sono WordPress e Joomla, proprio a dimostrazione che in questo ambito non si devono prendere decisioni assolute ma bisogna scegliere caso per caso. Almeno quando se ne ha la possibilita’… e sono contento di conoscere PHP e SQL (oltre a varie altre cose) e quindi poter decidere.

Comunque grazie a Zenphoto ho scoperto la magnifica Exifixer Library per estrarre in modo corretto le tag EXIF dalle foto. E’ rilasciata sotto GPL quindi la usero’ nel mio programma, tanto e’ scontato che quando (se) lo rilascero’ al pubblico usero’ la stessa licenza.
Direi che e’ valsa la pena provarlo!

07/06/2008

Mettere sotto (c) HTML e CSS?

C’e’ un’autrice di template per i blog su Splinder che si rifa’ alla legge sul diritto d’autore (quella del ’41, 1941, e successive modifiche) per dire che nessuno puo’ toccare le sue opere, nemmeno per cambiare i colori o la dimensione dei font.

Se avessi un blog su Splinder la prima cosa che farei sarebbe prendere un suo template e sistemare tutti gli ostacoli alla piena accessibilita’ che dovessi mai trovare. ;)

In un mondo di software libero, condivisione della conoscenza e dell’esperienza, trovo assurdo attaccarsi al diritto d’autore per difendere cose come la dimensione dei font dei propri template.

Invece consigliero’ agli amici di stare alla larga da template rilasciati con simili pretese (perfino un pomposo messaggio di copyright), non importa quanto belli possano essere.

23/08/2007

SQLite in JavaScript

Porca miseria, non mi ero mica reso conto che di fatto Google Gears permette di usare SQLite da JavaScript!

In effetti ha senso… e’ che lo presentano come sistema per rendere utilizzabili offline applicazioni online e leggendo questa definizione non mi ero soffermato molto sull’architettura del tutto. In realta’ penso ci si possano fare davvero delle belle cose…

Intanto comunque ho ripreso in mano la gestione di SQLite da PHP, che avevo iniziato a marzo e poi un po’ abbandonato. Voglio andare approfondirla a sufficienza e utilizzarlo per alcuni progetti…

12/06/2007

Safari per Windows: meglio evitare, per ora…

Dopo aver appreso delle gravissime falle di sicurezza di Safari per Windows ne consiglio la disinstallazione senza se e senza ma.

Non e’ il caso di utilizzarlo neppure per testare le proprie pagine: un clic distratto e si finisce nella grande Rete dove si puo’ trovare di tutto… e con i difetti di questo prodotto non c’e’ da scherzare: aprendo una pagina web si espone tutto il proprio OS ad aggressori, quasi peggio di Internet Explorer…

Ma i prodotti Apple non erano belli e stabili?

Prima lo sistemano, poi eventualmente lo reinstallero’ per testare le mie pagine a beneficio degli utenti Mac.

A proposito di Safari per Windows…

Sono andato a nanna poco dopo aver appreso la notizia di Safari per Windows e la notte ha portato alcune riflessioni che ho condiviso su un noto blog per sviluppatori web…

Un’altra cosa che la notte ha portato e’ un’umidita’ del 54%. Qualcuno puo’ passarmi weather_fix.exe? :)

14/05/2007

Siamo quello con cui programmiamo ;)

16/02/2007

SecurePHP

Segnalazione lampo per SecurePHP, un Wiki sulla sicurezza delle applicazioni PHP che ho trovato questa sera mentre cercavo risorse al riguardo per aiutare un amico.

Ne consegue che…
“se i vostri amici vi chiedono aiuto… datevi da fare, ne guadagnerete anche voi!” ;-)

15/01/2007

Il primo traguardo del 2007…

… era imparare SQL quanto basta per iniziare a usarlo (con giudizio) in alcune applicazioni.

Traguardo raggiunto :)

Anche piu’ d’uno in verita’, qua sotto ci sono:

1) Far coesistere php4 e php5 nello stesso sito, sia sul server di sviluppo (Apache su Win) che su quello di produzione (Apache su Linux).

2) Imparare SQL, SQLite e l’uso dell’oggetto PDO su PHP5 (driver di astrazione dei db).

3) Superare l’incompatibilita’ dei db binari fra SQLite 3.2.8 (server di produzione con PHP5.1.2) e SQLite 3.3.x (server di sviluppo con PHP5.2.0)

Si comincia con cose piccole per poi costruire le cose piu’ grandi, magari senza demolire tutto il resto ;p