Categorie
Esperienze Guide News Risorse

Sviluppo di un bot per Twitter

La scintilla mi è scoccata leggendo questo tweet:

Al che mi sono detto: “che problema c’è? Basta cercare i tweet italiani che hanno avuto molto successo in rapporto al numero di follower che ha l’utente”.

Categorie
Esperienze

“Dammi un tuo parere”: it’s a trap!

Quante volte vi siete sentiti chiedere:

“Ho questo sito, dammi un tuo parere professionale così lo miglioro”?

La risposta giusta sarebbe “E io che ci guadagno? Ti pare che io lavori gratis?“, tuttavia siccome non è carino rispondere ad una domanda con un’altra domanda (anzi, due per l’esattezza) e che una risposta va comunque data (magari qualcuno con meno scrupoli di me semplicemente ha un killfile per persone del genere), questa mattina ho cercato di elaborare una risposta tipo per queste richieste, e ne ho trovata una che mi ha particolarmente soddisfatto.

La trappola che si cela dietro ad una simile richiesta è in realtà doppia:

  1. Dando un parere negativo, si rischia di passare per gente che deve vendere a prescindere
  2. Dando un parere positivo, si rischia di perdere una possibile speranza di collaborazione

Volevo dribblare elegantemente questi pitfall, e così mi sono inventato un “non parere positivo”:

Ti ringrazio per la stima, tuttavia non rientra nella mia etica dare giudizi sul lavoro di un collega, a meno che non mi si richieda un intervento professionale sul sito in questione. In bocca al lupo per tutto 🙂

Il concetto è semplice: innanzitutto anche un semplice parere che noi possiamo formulare è frutto di anni di studio e di pratica, quindi non siamo tenuto a regalarlo. Ultimo, ma non meno importante, è il cliente che deve cercare il professionista, e non viceversa.

 

Categorie
Esperienze

Trovare le differenze fra due immagini

Avete presente com’è lavorare con i grafici? A me chiaramente capita spesso quando devo convertire le loro grafiche in HTML+CSS. Nel loro lavoro tendono ad accumulare cataste di file, in cui ci sono piccole differenze sia nel nome che nel contenuto.

Il primo passo è difficile capire qual’è il template definitivo in mezzo ad una selva di “prova“, “ok definitivo“, “variante bis“, “copia di“, “approvato“, “modifica di mia cugina“, il tutto replicato in tutti i formati grafici che la mente umana ha concepito, e spesso anche con lo stesso formato declinato nelle varie versioni del software che lo ha prodotto. Questo problema è di difficile soluzione, bisognerebbe far adottare uno standard e formattare in FAT16 l’hard disk del nostro amico grafico, ma sono entrambe cose su cui non abbiamo il controllo (purtroppo).

In secondo luogo, come dicevamo, bisogna capire quali sono le differenze di contenuto. Siccome io non ho sempre voglia di giocare alla Settimana Enigmistica, questa mattina mi sono messo alla ricerca di uno strumento che facesse le veci del classico diff per i testi. E l’ho pure trovato: perceptual diff (noto una volta come pdiff e rinominato per conflitto di nome con “pretty diff”).

E’ un programma da riga di comando, di cui sono disponibili i sorgenti nonché i binari per Windows e Vista, e secondo me merita di stare nella mia cassetta degli attrezzi. Si passano come argomenti le due immagini e si sceglie un’immagine PPM (che Gimp apre tranquillamente) da usare come output:

perceptualdiff a.jpg b.jpg -verbose -output differenze.ppm

Io poi ci aggiungo anche la verbosità che non guasta mai. Così se non sapete trovare le differenze potete barare finalmente!

Categorie
Esperienze

Ancora su WordPress e Lighttpd: la cache è controproducente?

Ci sono dei limiti che bisognerebbe conoscere e che non devono essere superati: questo vale in tutti i campi compreso quello dell’ottimizzazione di WordPress. Oggi ho fatto un piccolo passo indietro e ho disinstallato il plugin W3 Total Cache, ma non perché ce n’è uno migliore nel suo settore, anzi. Io avevo installato APC sul mio VPS proprio per permettere al plugin di sfruttare la RAM come cache anziché il disco, pensando di guadagnare in prestazioni.

Fortunatamente oggi il mio fornitore di hosting mi ha trasmesso un articolo che mi ha fatto ricredere: nella mia configurazione di Lighttpd e PHP (CGI), che è quella creata da Kloxo, ad ogni richiesta viene fatto partire un nuovo processo PHP, il quale con APC crea una cache che però non può essere utilizzata dagli altri processi. A questo punto la conclusione è logica: si perde solo tempo e si spreca RAM nel creare tante cache quanti sono i processi. Usare il disco come cache su un VPS è allo stesso modo poco furbo, quindi ho preferito togliere il plugin e recuperare DB Cache Reloaded per eseguire il caching delle sole query MySQL.

Tuttavia non è detto che uno si debba rassegnare a rinunciare ad una Opcode Cache: basta limitare il numero dei processi PHP-CGI ad uno e lasciare gestire a PHP i propri workers. Anche se non è la stessa cosa in termini di prestazioni, ci sarà un solo processo e una sola cache. Non penso però di fare esperimenti a breve.

no limits

Categorie
Esperienze

Il segreto per capire il design

[Quello che segue è un articolo di Thomas Baekdal, intitolato originariamente The secret to understanding design e da me tradotto con il permesso dell’autore. L’articolo è del 2007 e quindi i tempi vanno rapportati a quell’epoca]

Parliamo spesso di design, se deve essere semplice o complesso, pieno di colori o in bianco e nero, non tecnologico o multimediale. La risposta va cercata nel ciclo di “respirazione” del design.

Ogni cosa respira. Tu inspiri ed espiri, o sei pieno d’aria o non lo sei: un movimento continuo fra due estremi. La stessa cosa vale tra la semplicità e la complessità: un momento vogliamo le cose in un modo, un’altro momento le vogliamo in un altro modo.

Come si contrappongono semplicità e complessità nel design?

Secondo te, perché l’iPhone dell’Apple ha un design (specialmente nell’interfaccia) più complesso dell’iPod? Perché non l’hanno fatto semplice? Perché non ne potevamo più del “semplice”, in quel momento volevamo di più. Ci stavamo muovendo verso una direzione diversa, fatta di ambienti più ricchi e complessi. Dopo 12-18 mesi ci siamo di nuovo stancati della complessità e siamo entrati in un nuovo periodo all’insegna della semplicità, e così il movimento continua seguendo eternamente il suo ciclo.

Nota: ogni curva è diversa e ci sono diverse durate fra i picchi. “Semplice vs. Complesso” segue solo in parte questo diagramma. Altre curve, per esempio “Colore vs. B/N” appaiono in maniera leggermente diversa. Le tendenze possono anche differire in altre parti del mondo e in diverse professioni (le tendenze del web design non seguono necessariamente quelle del design delle automobili).

Il segreto è imparare a sfruttare questi cicli a nostro vantaggio.

Non tutti fanno tendenza

Innanzitutto bisogna capire che non siamo tutti nello stesso punto. Chi fa tendenza (trendsetter) è più avanti, subito seguito da chi vuole essere il primo a seguire le mode (early adopter). Queste persone trainano il resto della massa e trascinano tutti verso il futuro.

La maggior parte delle persone (majority) però è in ritardo anche di un anno rispetto al trend, e in più ci sono i ritardari (laggards) che non si rassegnano al cambiamento fino a quando non cessa l’assistenza per i vecchi prodotti.

Nota: i visionari spesso sono molto più avanti di tutti gli altri, e per questo sono in grado di creare cose incredibili che però non vengono comprate da nessuno perché il mercato non è ancora pronto

Dove dobbiamo posizionarci?

In secondo luogo bisogna sapere quanto bisogna essere in avanti rispetto agli altri.

Devi puntare sulle zone cool, quando i tuoi prodotti sono vicini agli estremi, quando i tuoi prodotti sono vicini agli estremismi. Se la gente si sta spostando dalla semplicità alla complessità, devi realizzare qualcosa di veramente complesso per colpire il pubblico, come hanno fatto alla Microsoft quando hanno svelato la loro tecnologia Surface.

Allo stesso modo, quando ci stanchiamo della complessità e vogliamo qualcosa di semplice, dobbiamo fare qualcosa in stile minimale per poter avere un impatto. E’ quello che ha fatto 37Signals qualche anno fa con il loro strumento per gestire progetti, Basecamp. La gente si stava stufando della ricchezza di funzionalità di Microsoft Project e voleva qualcosa di più immediato. Basecamp ha colto al volo l’opportunità.

Nota: Se 37Signals avesse rilasciato Basecamp oggi avrebbe avuto molto meno successo perché ora stiamo lasciando la semplicità alle spalle.

Lascia perdere le vie di mezzo. In questo caso sono semplicemente vie mediocri. Fare prodotti che non sono nè carne nè pesce è noioso e inutile. Non danno emozioni e non hanno energia.

Ma soprattutto, mai uscire con nuovi prodotti quando le pendenze delle curve cambiano drasticamente. Fare qualcosa che è solo leggermente più semplice è una pessima idea se la gente vuole invece più complessità.

Quando è sbagliato lanciare un prodotto?

L’ultimo accorgimento da prendere è sapere quando è ora di lanciare un prodotto e quando invece è meglio aspettare.

Il miglior momento è quando stiamo lasciando un estremo per un altro (le zone in verde). E’ il momento in cui la gente si rende conto che vuole qualcos’altro. Sono suscettibili al cambiamento. E’ il momento di agire!

Le zone in giallo sono quelle ci stiamo avvicinando agli estremi e conviene fare attenzione. Le aziende più cool hanno già pubblicizzato i loro prodotti e i trendsetters stanno guardando in una nuova direzione. Puoi ancora avere un impatto se realizzi qualcosa di veramente eccezionale, ma non sarai visto come un innovatore.

Una volta raggiunti gli estremi, è meglio lasciar perdere. E’ il momento in cui la massa si è stancata del trend (zona rossa). Devi aspettare fino a quando gli early adopters non hanno deciso che è il momento di abbracciare una nuova tendenza. Lascia perdere la massa, devi metterti in linea con chi è all’avanguardia.

A questo punto devi solo capire quali binomi del design sono rilevanti per te. Ecco altri esempi:

  • Tecnologia nascosta o in bella vista
  • Presentazioni con testi e immagini o anche con altri media
  • Efficienza o esplorazione
  • Manuale o automatico
  • Grande o piccolo
  • Arrotondato o spigoloso
  • Una pagina o tante pagine
  • Animazioni o rigidità
  • Sociale o isolato
  • Lavoro o divertimento
  • Lungo o corto
  • Sportivo o elegante
  • Forte o fragile
  • Maschio o femmina
  • Libero professionista o azienda
  • Etc.

E ricorda sempre che il mondo non torna mai sui suoi passi. Il tipo di design che abbiamo avuto in passato non è quello che vedremo in futuro. Il design semplice degli anni ’80 fa un po’ pena rispetto all’iPod. Le TV complesse degli scorsi anni sono comunque vecchie se messe vicino a Microsoft Surface.