php_curl.dll in PHP 7.0.21 e 7.1.7 su Windows x64

Se come me avete passato un pomeriggio della vostra vita a cercare di capire perche’ in PHP 7.0.21 su Windows x64 non funziona cURL, mentre funzionava senza problemi nelle versioni precedenti, sappiate che il problema non e’ di DLL da spostare qua o la’. Il problema e’ che con le nuove versioni del ramo 7.0.x (e su PHP 7.1.x a partire dalla 7.1.4) e’ richiesta una versione recente della libreria libeay32.dll e sicuramente nel vostro sistema ce ne sono decine di copie anche antiche.

Che fare dunque?
Se usate PHP solo per sviluppare in locale in un ambiente protetto da ogni accesso esterno e poi caricate le vostre pagine su un server gestito da altri, potete installare una versione meno recente della php_curl.dll nella cartella ext di php. Per PHP 7.0.x va bene quella della 7.0.7, per PHP 7.1.x potete usare quella della 7.1.3.

Tuttavia questa non e’ la vera soluzione e non funzionera’ quando arrivera’ PHP 7.2.

La soluzione e’ risolvere le ragioni per cui PHP non riesce a caricare la php_curl.dll: avete copie anteguerra della libeay32.dll in giro per il sistema che vengono trovate prima di quella giusta, magari perche’ le usa qualche programma caricato prima di Apache.

Ecco come risolvere:

  1. fate un backup del vostro disco di sistema con Acronis o altro software che usate.
  2. controllate nella variabile PATH che la cartella di PHP ci sia e sia prima di tutte le altre, in modo che quando viene cercata la dll venga caricata da li.
  3. fate una ricerca di libeay32.dll e guardate la versione di ogni copia che trovate. Se e’ precedente a quella nella cartella di PHP, rimuovetela.

L’operazione al punto 3 potrebbe far smettere di funzionare qualche programma, quindi fate il backup di sistema prima di iniziare! Se non sapete farlo, forse non dovreste fare le cose scritte in questo post e vi conviene installare una distribuzione WAMP preconfigurata come XAMPP.

Io ho fatto pulizia delle vecchie versioni della DLL e adesso l’estensione cURL di PHP 7.1.7 funziona. Devo ancora verificare se i programmi dalle cui cartelle ho rimosso vecchie versioni di libeay32.dll ne risentono o trovano una copia piu’ recente (32 o 64 bit, a seconda del software) fra le altre presenti. Di volta in volta gestiro’ la cosa. Ma ripeto io so cio’ che sto facendo, se avete paura di fare guai, non fate niente.

In ogni caso prima di procedere fate un backup di sistema!

Ovviamente non mi assumo responsabilita’ per eventuali guai che poteste avere anche seguendo tutto alla lettera. In questo post riporto solo la mia esperienza… e il gran sospiro di sollievo quando ho visto il modulo cURL 7.1.7 attivo in phpinfo() ;)

 

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.

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 ;)

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.

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).

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…

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 ;-)

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!

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!

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.

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…

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.

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!” ;-)

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

Web Developer 1.1: meravigliosa!

Quasi a sorpresa Chris Pederick ha rilasciato la versione 1.1 della sua meravigliosa Web Developer Toolbar per Firefox.

A dispetto del nome questa toolbar non e’ solo uno strumento indispensabile per gli sviluppatori ma si rivela utilissima anche per la navigazione degli utenti, viste tutte le funzioni avanzate che aggiunge a Firefox.

La lista delle novita’ e’ corposa ma non rende giustizia al lavoro fatto: bisogna provarlo per credere a quanto oggi sia diventato facile, per esempio, analizzare/studiare/modificare l CSS di una pagina, vedere la struttura di un documento e via dicendo…

In una parola: ha migliorato cio’ che era gia’ perfetto. Grazie!

NB: un “bugghino” c’e’, ma e’ piccolo (non si possono riattivare gli stili una volta disabilitati da tastiera) ed e’ gia’ stato corretto, come informa l’autore in un thread sul suo forum. Sta aspettando per vedere se ce ne sono altri e poi pubblichera’ il bug fix.

A proposito di blog…

A proposito di blog mi permetto un piccolo sfogo… ;)

E’ bello che ci siano piattaforme che supportano i template, e’ bello che ci siano siti con risorse gratuite che permettono a chiunque di “raccattare” grafica professionale e appiccicarla a qualche layout, ma per favore… cerchiamo di fare le cose “a modo” e ricordarci su che media stiamo lavorando!

Ecco una lista di orrori che mi capita sovente di vedere:

Font minuscoli
OK, io non faccio testo perche’ ci vedo poco e imposto un font minimo bello grande, ma il pregio del web non dovrebbe essere che l’utente puo’ decidere nel browser cosa vedere e come vederlo? E allora se uno nel browser imposta i font a X, perche’ tu web designer decidi che i font devono essere alti 4 pixel? Perche’ i caratteri piccini sono piu’ carini? Se ti piacciono tanto mettili piccini nel tuo browser… nel template mettili normal e lascia che sia l’utente a scegliere come vederli. Quel che per te puo’ essere ottimale per altri puo’ essere piccolo, magari perche’ ci vedono poco o leggono il tuo sito con un portatile…

Layout grafici
Belli, fatti con Photoshop e simili. Perfetti per un manifesto ma non per un media fluido. In un giornale, un poster, un disegno, gli elementi resteranno immutati e quindi si possono calcolare al millimetro larghezze, altezze e quant’altro. Sul web i testi possono essere allargati, allungati, messi su due righe, tutto a discrezione sia dell’utente sia del browser. Ragion per cui mettere i testi dentro immagini o altri effetti simili va bene se e solo se chi guarda il sito ha il nostro stesso sistema operativo, il nostro stesso browser (stesso programma E revisione), i nostri stessi font, le nostre stesse dimensioni… insomma possiamo essere certi che noi vedremo bene un sito/blog/altro se non tocchiamo niente. Per quanto riguarda gli altri non v’e’ certezza.

Contrasti
Si stima che la maggioranza della popolazione mondiale abbia problemi di vista piu’ o meno accentuati legati soprattutto alla messa a fuoco e alla percezione dei colori. Siccome i siti (in particolare i blog) sono fatti per essere letti, scegliere “allegre combinazioni” come blu su nero (ciao lar), verde scuro su nero (ciao gi0), nero su sfondo con gattino in trasparenza (ciao ned ;p) significa semplicemente rinunciare a potenziali lettori. Rispondere a simili obiezioni con “… ma si vede benissimo” significa aver rinunciato ad altro, ma non entriamo nei dettagli ;p

Colonne
OK, questo e’ soggettivo ma ingabbiare il testo in una colonna larga 80 pixel o peggio in un rettangolino a pie’ pagina incastonato in un magnifico sfondo con scene epiche ispirate a qualche delirio grafico significa spingere il lettore a cambiare pagine. Once again, il web non e’ un poster o un quadro statico!

Cursori (puntatori)
E infine la perla: i puntatori. Ci siamo abituati a vedere la freccia diventare una manina se passa su un link, una maniglia se passa su una finestra ridimensionabile, un cursore se si trova sul testo editabile. Amorini miei, ok, avete scoperto la proprieta’ CSS cursor ma non e’ che perche’ esiste siete moralmente tenuti a usarla e a trasfoirmarmi il pubntatore del mouse nell’iconcina che vedio su una finestra ridimensionabile quando passo su un link (che gia’ che c’eravate avete mimetizzato togliendogli la sottolineatura e mettendolo dello stesso colore del testo normale).

Con questo cosa voglio dire? Che solo i bravi esperti dovrebbero fare template? Assolutamente! Il media e’ libero, sbagliando si impara, c’e’ spazio per tutti e fra orrori di usabilita’ e esagerazioni grafiche si trovano cose veramente valide. Dico solo che sarebbe bene cercare di conoscere il media prima e distinguere fra cio’ che e’ buono, cio’ che e’ utile e cio’ che e’ semplicemente sbagliato.

Siamo di fronte a un media versatile, che puo’ offrire soddisfazioni ma che e’ diverso dagli altri. Cerchiamo di usarlo bene.
E chi fruisce di template altrui, scelga ricordando che un blog e’ fatto per essere letto, non ammirato.

PHP e JavaScript in sintesi

Un amico mi preannuncia che vuole imparare i linguaggi di cui in oggetto. Ecco come dargli il via:

La sintassi e’ la stessa, entrambi hanno gli oggetti, uno gira prima che la pagina venga inviata all’utente, l’altro dopo.

Vi faro’ sapere cosa mi dira’ fra qualche mese :)