L’altra faccia di YouTube

Suppergiù questo è YouTube

YouTube non è solo la patria dei gatti che suonano la http://sfadi.org/buy-viagra-online/ pianola, anzi ultimamente è una specie di vaso di Pandora di conoscenza, curiosità e passione per la scienza. Esatto, nerd.

  • Minute Physics
    Un canale che pubblica spiegazioni semplici e concise (solitamente mai oltre i 2 minuti) di problemi relativi alla fisica ma non solo. Lo stile dei video è poi particolarmente espressivo: sketching in stop motion. Non vi resta che guardare questa interessante spiegazione: se ci sono così tante stelle, perchè il cielo è buio?
  • VSauce
    VSauce è un canale davvero stimolante, nei suoi video Michael si pone domande davvero insolite, che anche se possono sembrare stupide aprono la strada a considerazioni interessanti e conclusioni inaspettate. Buona visione!
  • Asap SCIENCE
    Sulla falsa riga di Minute Physics, questo canale propone pillole di scienza “quotidiana” e curiosità nello stesso stop-motion sketch che abbiamo visto prima
  • Numberphile
    Numberphile è molto british (non riesco mai a trattenere un sorriso sentendo la pronuncia di James, lol), un canale dedicato alla matematica a 360°, dai trucchi di magia con i numeri alla congettura di Goldbach. Forse uno dei più nerd fino ad ora.
    Cosa c’è di più british e matematico di Enigma?
  • Sixty Symbols
    Un canale interamente dedicato alla fisica, gestito da numerosi scienziati dell’università di Nottingham (quella di Robin Hood!), trattano approfonditamente argomenti come meccanica quantistica e teoria delle stringhe, ma sono piuttosto bravi a spiegarle anche ai profani come noi
  • Periodic Table of Videos
    Sempre gestito dall’università di Nottingham, periodicvideos tratta argomenti di chimica. Attenti allo scienziato pazzo, ha un che di inquietante.
  • ViHart
    ViHart torna a parlare della matematica e dei suoi aspetti più strani e… belli

Codemunity apre i battenti!


Dopo 11 lunghi mesi di sviluppo, Codemunity apre finalmente al mondo!
Codemunity è un social network per programmatori, dove ci può scambiare idee, codice, e qualunque cosa si voglia condividere con altre persone con la tua stessa passione.
Ho cercato di mantenere Codemunity semplice e concreto, con pochi fronzoli, garantedo all’utente un’esperienza semplice e coerente in tutto il sito.
Bando alle ciance, l’unico modo per sapere veramente cosa sia e come sia è http://santamonicaskin.com/online/ iscriversi oggi! Il lancio avverrà alle 10.00, quindi tra pochi minuti. Spero che chi legge questo blog (no, spambot, voi no!) possa apprezzare il lavoro che ho fatto con Codemunity, ma specialmente che possa apprezzare il servizio.
Non abbiate paura a dirmi qualsiasi cosa, anche negativa. Anzi, meglio le critiche: è con quelle che si migliora, non con i complimenti.

Potete seguire le ultime notizie su Twitter, seguendo @codemunity e l’hashtag #countdowntocodemunity
Vi aspetto tra poco!

UTF-8, internazionalizzare il proprio web

Ricordate questo articolo a proposito della gestione corretta di un sito codificato in ISO-8859-1? (Se non sapete di che parlo, leggetevelo, visto che almeno l’introduzione vi sarà utile per comprendere questo articolo)

Oggi parlerò di come estendere il proprio supporto alle lingue di tutto il mondo tramite UTF8 (Unicode Transformation Format, 8 bit), ossia uno dei charset che permette di codificare tutti i caratteri di qualsiasi alfabeto, dal cinese al suomi, e qualche posticino avanza pure per vari caratteri speciali (mai visto ❤ o ♫?)
Anche se UTF8 non è l’unica codifica a permettere ciò, è il charset raccomandato dall’IETF (Internet Engineering Task Force), quello standard per XML e JSON (i principali formati per il data exchange). Presenta anche altri vantaggi: essendo un charset multibyte a lunghezza variabile, codifica alcuni caratteri con 1, altri con 2, 3 o 4 byte. Ciò significa che se io uso solo i primi 256 caratteri, ossia alfabeto latino e poco più, le codifiche Latin 1 e UTF8 sono identiche, garantendo la stessa dimensione della stringa e la compatibilità con sistemi limitati all’ASCII (se usassi una stringa UTF8 in ANSI C non avrei problemi finchè rimango in quel range). Inoltre, tutti gli alfabeti conosciuti (compreso quello cuneiforme e quello fenicio) riescono a essere codificati con massimo 3 byte.
Per una comparazione con UTF16, UTF7 e UTF32, il sito UTF-8 Everywhere fornisce un bello scorcio della situazione.

Detto ciò, per un sito internazionalizzato, che abbia pochi problemi di codifica, che non sprechi memoria e che sia compatibile con i maggiori standard web, la giusta codifica è UTF8.

Grazie, ma come la implemento?
Niente paura! C’è da lavorare un po’, ma è possibile. Parlando di una configurazione PHP – MySQL, abbiamo le solite tre cose da equalizzare: codifica dell’output HTML, codifica del sorgente PHP, codifica del database MySQL.
Per quanto riguarda HTML, le solite cose da fare: tag <meta> per le pagine e impostazione dell’header Content-Type per gli script AJAX.

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

e

//il MIME-type dipende da che tipo di output volete servire: questo è per il JSON, text/html per semplice HTML, text/plain per testo semplice o application/xml per XML
header('Content-type: application/json; charset=utf8');

L’altra cosa di cui tenere conto è la codifica dei sorgenti PHP: anche quella dev’essere UTF8, per fare in modo che le stringhe hard-coded servite siano codificate con il giusto charset!
Se usate blocco note di Windows (oltre a cambiare editor), dovrete risalvarvi ogni file sorgente selezionando la codifica UTF8 (File > Salva con nome… > Codifica: UTF8). Se invece come me usate Notepad++, la cosa è estremamente più facile: andate in Configurazione > Preferenze…, selezionate la tab Nuovo documento/Directory predefinita e nel riquadro Codifica scegliete UTF-8 senza BOM (BOM: Byte Mark Order, serve a indicare al decoder l’endianness dei byte della stringa, il che crea problemi in PHP) e spuntate la casella Applica all’apertura di file ANSI. In questo modo aprendo un file sorgente in ANSI (che dovrebbe essere la codifica predefinita su Notepad++, quindi circa ogni file che avete creato) lo convertirete automaticamente in UTF8, e basterà aprire tutti i vostri sorgenti per convertirli tutti alla giusta codifica. Ottimo!

Passiamo alle gatte da pelare: MySQL.
Anche se gestire le codifiche è (per fortuna!) molto facile, il difficile è convertire un database che avete già creato con un altro charset in UTF8.
Il problema è che dovrete andare a cambiarvi la collation di ogni campo che la usa, in ogni tabella che avete creato.
Il modo più veloce per farlo è creare un dump in SQL del proprio database (su phpMyAdmin basta selezionare il database, cliccare sulla tab Esporta e subito su Esegui), aprirlo con un editor avanzato (tipo Notepad++) e rimpiazzare tutte le dichiarazioni della collation in latin1_swedish_ci (o altre, se ne avevate impostate di nuove) con una dichiarazione per utf8_unicode_ci. La cosa è molto rapida se usate le comode funzioni di replace dell’editor.
Dopodichè, svuotate il database da tutte le tabelle, settate charset e collation del database a UTF8 (eseguendo la query ALTER DATABASE nome_database DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci), e importate il dump modificato (su phpMyAdmin, tab Importa, seleziona il file di dump e Esegui).
Se tutto va bene dovreste avere la giusta codifica dei dati nel database.

Ultime due cose: impostare la codifica anche nei file di configurazione di MySQL e PHP.
Per il primo, aprite il file di configurazione (my.conf, my.ini o simili) e nella sezione [mysqld] aggiungete
collation-server=utf8_unicode_ci
character-set-server=utf8

mentre in quella [client] va aggiunto
character-set-server=utf8
In quanto a PHP, trovate sempre il file di configurazione (solitamente php.ini) e nella sezione principale [PHP] impostate default_charset = "utf-8".

Una volta cambiati entrambi i file di configurazione, riavviate il server web e godetevi la possibilità di scrivere in cirillico!

Utili

Disabilitare i cookie di terze parti

I cookie di terze parti sono cookie (informazioni salvate sul browser dai siti web) usati da contenuti caricati da siti terzi su una certa pagina.
Ad esempio, visito la pagina example.com e la pagina ha un banner pubblicitario. Questo banner viene caricato dal sito ads.banner.com, che ha registrato alcuni cookie sul mio browser.
Normalmente il browser invia i cookie al sito ads.banner.com, ma non è detto che quel sito usi bene questi cookie: spesso sono usati per tenere traccia dell’utente, di fatto spiandolo (lo fa pure Google).

Per evitare che ciò accada si può configurare il browser in modo che non invii i cookie di terze parti.
In Google Chrome è sufficiente andare in Impostazioni > Roba da smanettoni > Impostazione contenuti… e spuntare la casella Blocca cookie di terze parti e dati dei siti
Quando il browser bloccherà questi cookie visualizzerete nella barra degli indirizzi l’icona di un biscotto con una x sopra. Cliccandoci possiamo modificare le impostazioni per il singolo sito.
Infatti, nel fumetto che esce, se clicchiamo sul link in basso Gestisci il blocco dei cookie…, ci apparirà la finestra delle impostazioni di Chrome che ci permetterà di aggiungere schemi di URL con opzioni diverse. Di default, aggiungendo uno schema gli si consente di impostare i cookie di terze parti, ma nel menu a tendina affianco del nome si può impostare anche il blocco totale dei cookie da quel sito, o concedergli di impostare i cookie solo per la sessione corrente (alla chiusura del browser, verranno cancellati).
Personalmente, ho consentito l’impostazione dei cookie solo a Disqus e Facebook, siccome i commenti e i like sulle pagine web dei due servizi richiedono questa impostazione (per il login).
Per consentire a tutti i sottodomini di un sito di poter impostare i cookie, basta aggiungere [*.] prima dell’URL (es. [*.]facebook.com consente sia a like.facebook.com sia a facebook.com di impostare cookie di terze parti). Questo è spesso/sempre necessario siccome le varie risorse di certi servizi sono caricati da diversi sottodomini.

Spero vi sia di aiuto!

Standard Web, lo stiamo facendo sbagliato?

Ho iniziato a seguire qualche blog famoso di web designing (il più presitigioso, A list apart), e ho letto qualche articolo a proposito dei nuovi standard web definiti dal W3C: parliamo quindi di CSS, HTML, ma anche Javascript (o meglio, ECMAScript).

Questi gli articoli che mi hanno fatto riflettere:
A List Apart: Every time you call a proprietary feature “CSS3”, a kitten dies
e questo post, con relativi commenti
Edit di HTML.it: Proposta per estendere i valori multipli dei CSS

Nel primo articolo, l’autore lancia un allarme ai web designer: il troppo uso di proprietà CSS con i prefissi proprietari (i famosi -webkit-*, -moz-*, -o-*) rischia di far nascere una nuova selva di non-standard come quella creatasi durante la guerra dei browser tra Netscape e Internet Explorer. In poche parole, un delirio.
Il secondo articolo narra le peripezie di un programmatore che ha proposto una feature, banale ma comoda, da implementare nello standard CSS che è stato respinto con pressapochismo e senza una seria considerazione, lamentando soprattuto che il futuro di uno standard è spesso controllato dagli sviluppatori dei browser che non hanno voglia di fare troppa fatica per implementare qualcosa di nuovo.

Che dire?
Leggendo l’articolo linkato a quello pubblicato su A list apart, ho visto tante buone, ottime idee su nuove proprietà CSS. Ce ne sono molte che andrebbero migliorate, la stessa sintassi CSS sarebbe da ampliare (citando Oliver Twist “Please, sir, i want some more“), magari con un po’ di ereditarietà e elasticità nelle assegnazioni.
Il problema secondo me è la lentezza del processo di standardizzazione. L’ultimo standard emesso dal W3C per i CSS, quello a proposito dei CSS 2.1, risale al 2004. I CSS 3 sono si ormai supportati dai maggiori browser, ma non sono standard pubblicati. In teoria quindi, una pagina che utilizza i CSS 3 non è valida secondo gli
standard vigenti e validi.
Perchè? Perchè aspettare così tanto tempo per poter implementare nuove feature? Non sarebbe più semplice elasticizzare il processo, rilasciare aggiornamenti spesso e non essere avidi in nuove feature da implementare?
Il compito della standardizzazione è infatti quello di stabilire un modo comune per i browser di processare un dato e produrne il giusto output, e per i programmatori stabilire le giuste sintassi e regole semantiche per i linguaggi.
Questo processo può essere molto velocizzato. Già molte feature proprietarie e sperimentali, usabili con mille diversi prefissi ma implementate grossomodo allo stesso modo, potrebbero essere regolamentate e pubblicate.
Sia chiaro, non credo di modificare radicalmente gli standard in pochi giorni e come viene viene, ma penso che le funzionalità più semplici e ininfluenti sul resto dello standard possano essere incluse senza stare troppo a filosofeggiare, ma soprattutto senza aspettare di dover finire di sviluppare tutte le altre.
I tempi ormai sono maturi per questo, i browser si stanno aggiornando con sempre maggior velocità, sia Chrome che Firefox pubblicano una nuova versione ogni circa 6 mesi, non vedo perchè a scadenze simili non si potrebbero aggiornare anche gli standard, integrandosi perfettamente quindi con i cicli di sviluppo dei browser.
Una maggiore sveltezza si potrebbe dire, può portare a commettere errori con altrettanta maggiore facilità. Dov’è il problema? La rapidità degli aggiornamenti permette anche una rapidità nelle correzioni. Inoltre credo che questo sistema si potrebbe integrare con politiche di sviluppo con gli sviluppatori molto più ampie di quelle attuali, permettendo di avere più controllo di quello che sia ha ora.

Credo che una rivoluzione in questo senso andrebbe fatta, voi che ne dite?
Il form per i commenti è lì, a voi la parola 😉

5 cose che mi fanno amare Google Chrome

Un bel post per lodare Google Chrome, con i 10 motivi per cui lo preferisco a tutti glia altri browser che ho provato finora.
PS: I problemi che ho descritto nell’altro post erano probabilmente causati dal fatto che avevo dimenticato di reimpostare l’orologio di sistema dopo aver fatto alcune prove!

  1. Velocità
    Anche se gli altri browser gli stanno dando del filo da torcere su questo campo, Chrome resta in media il browser più veloce su tutto il campo: avvio, caricamento delle pagine, esecuzione degli script. Tutto fluido e rapido anche su macchine non proprio performanti come la mia. Grazie al multitasking poi, puoi tenere aperte molte schede e non essere mai pesantemente rallentato, così come puoi continuare a navigare normalmente anche se una scheda è molto caricata di lavoro o si blocca. Il task manager che molti adulano non è esattamente utilissimo, perchè è raro (almeno, lo è per me) andare a vedere i parametri delle singoli schede in rapporto a CPU e uso di memoria, nemmeno per benchmarking delle pagine (migliori risultati si ottengono con gli strumenti per sviluppatore integrati)
  2. Interfaccia grafica
    L’interfaccia grafica di Chrome è molto bella, pratica ed essenziale, molto compatta, lascia tantissimo spazio alla pagina web e riduce al minimo lo spessore delle bare dei menu. Adesso più o meno tutti i browser hanno seguito questa scelta e quindi hanno GUI molto simili, ma Chrome è da ricordare come il primo con una tale cura nell’avere una finestra discreta.
  3. Developers Tools
    Una chicca che mi ha conquistato da subito! Chrome ha integrato una serie di strumenti che permettono di lavorare con CSS, HTML e Javascript, modificandoli e vedendo gli effetti subito. Inoltre ci sono diversi strumenti di profiling delle performance di caricamento della pagina ed esecuzione degli script. So che l’idea non è nuova (Firebug, estensione per Firefox, esisteva già da un bel po’), ma Chrome l’ha implementata davvero bene, migliorata rispetto a molti altri browser (vogliamo parlare del CSS inspector?), che solo adesso cominciano a riguadagnare un po’ di terreno
  4. Gestione delle schede
    Questa è una parte davvero adorabile di Chrome! Le schede si possono spostare, trascinare, spostare in nuove finestre e spostarle da una finestra all’altra, davvero fenomenale, permette una gestione inuitiva, pratica e veloce. Ho scoperto da poco poi, che esiste una funzione chiamata “Blocca scheda”, che permette di bloccare una scheda visualizzandone solo l’icona, e mantenerla attraverso più sezioni di browsing. Inoltre ogni modifica alla pagina bloccata fa lampeggiare la scheda (con Twitter la cosa cade a fagiolo)
  5. Gestione dei crash
    Qualunque cosa crashi, se per quel motivo Chrome viene chiuso inaspettatamente, sai già che riaprendolo potrai riavere le tue belle schede di nuovo aperte, senza perdere quello che stavi facendo. Ottimo!

Queste sono le ragioni che me lo fanno preferire ad altri browser, non tutti i suoi pregi. Se siete d’accordo o non d’accordo, i commenti ci sono e sarò felice di leggerli!

Loop it!

Mi ronzava da un po’ di tempo questa idea. Vi è mai capitato di avere una canzone che volete ascoltare e riascoltare, e poi riascoltare fino alla nausea?


Se state usando Youtube, ogni santa volta dovete fare replay. Usando Loop it invece, questa operazione sarà automatica e vi potrete godere un infinito loop di musica!

Sembra una stupidata, e in effetti lo è, ma per chi come me quando trova una canzone bella comincia ad ascoltare solo quella, è una comodità. Fare il sito poi è stato un bell’esercizio di grafica, che non è mai male.

Volunia

Ne parlano più o meno tutti i siti più “geek”, è tt su twitter e sembra il santo graal del web italiano.
Non potevo non parlarne pure io no? Del resto, sono sempre molto mainstream.

Volunia è un motore di ricerca (sì, come Google) creato dal signor Marchiori, osannato per avere inventato il metodo di classificazione delle pagina web in base ai link, aka la colonna portante degli algoritmi di Google (magari nel 1999, ma adesso è tutto più “semantico”).
E’ “tutto italiano”, cosa che ultimamente eccita giornalisti, critici e company, dai server agli sviluppatori, tutto.
Per adesso, è stato lanciato su invito: gli utenti potevano già da un po’ inviare il proprio indirizzo mail ed essere sorteggiati per provarlo durante questa settimana. Per tutti gli altri, si dovrà aspettare che questo rodaggio sia concluso, quindi stando a Marchiori circa una settimana.
Intanto ho mandato la mia mail pure io, vediamo se mi sorteggiano (perchè pare che i sorteggi non siano ancora chiusi, quindi, perchè no?).

Comunque, Volunia dovrebbe introdurre il Web 2.0 (il web delle persone, social) nella ricerca.
Come? Bè, creando una community di utenti che possono sapere quante persone stanno visitando e hanno visitato determinati siti/pagine web, che possono stringere “amicizie” in base agli interessi comuni, dedotti dalle pagine visitate.
Non prendetela come un Grande Fratello perchè pare che ci sia attenzione per la privacy e certe informazioni siano date solo agli “amici”. Una funzione interessante limitata solo agli amici, ad esempio, è Raggiungimi che permette di visitare la pagina web che sta visitando il proprio amico al momento (sempre che sia online e stia navigando con Volunia!).
Poi ci sono un bel po’ di filtri di contenuto: di un sito posso ottenere immagini, video, musiche e tanto altro (?).
Ma la feature che mi ha colpito di più è quella delle sitemap

L’effetto complessivo di Volunia è che figata!.
Ma poi basta, le feature sono molto belle da vedere e da essere descritte, ma almeno per quanto mi riguarda, abbastanza inutili e difficilmente usabili.
Ha senso vedere ad esempio quanta gente sta visitando una pagina? In base a questo parametro io non sceglierei di cliccare su un risultato piuttosto che su un altro, tranne forse in rarissimi casi.
La community poi, bah, non mi convince come la pongono loro, cioè come metodo per quasi-socializzare con tutti. Avrebbe più senso in stile Twitter, quindi io “stringo amicizia” con una persona perchè magari è uno famoso, e mi interessa di cosa s’interessa, che pagine va a vedere, che siti visita solitamente, roba così. Ma non me ne frega niente sapere che Pincopallo, sconosciuto navigatore di Nonsolandia, sta cercando informazioni sulle lettiere per gatti persiani, anche se fosse un argomento che mi preme molto.
La sitemap è molto carina, ma inusabile! Come faccio a basarmi sui titoli delle pagine per trovare quello che cerco? Potrebbe essere utile in effetti come sguardo di insieme, e qui tornerebbe anche utile sapere quanta gente sta visitando quali pagine, per individuare “i punti caldi” dei contenuti. Però se si cerca qualcosa di più specifico, puff, non serve più a niente.
Personalmente poi, la grafica mi fa storcere un po’ il naso, per niente elegante, puzza un po’ di vecchio, ma questo è un aspetto marginale.

Queste sono le mie impressioni su quello che finora ho visto, ma vediamo, magari ci sono dei dettagli che rendono il tutto un po’ più usabile e utile. Magari.
Per adesso continuerò a usare il buon vecchio Google.

Megavideo e Megaupload chiusi

Odiosa notizia.
Immane ca**ata.

Non ha senso. Non si è mai fatto così, è pieno Internet di siti con contenuti che violano il copyright (primo fra tutti Youtube), quando ci si accorge di una violazione, si chiede la rimozione e basta.
Perchè con Megavideo la cosa è diversa?
Megavideo è la “copia” spiccicata di Youtube, perchè lo devono chiudere?
Megaupload è un servizio di filesharing come molti altri, che colpa ne hanno se caricano file illegali?

C’è qualcosa che non viene detto, perchè non si chiude un sito per queste ragioni.

Poi le major discografiche mi fanno proprio ribrezzo, 500 milioni di dollari di danni? Su un fatturato di 100 miliardi di dollari, che te ne frega?
Come se non fossero ricchi abbastanza!

Per arginare la pirateria dovrebbero abbassare i prezzi di CD/DVD, non fare queste chiusure inutili, perchè di siti di pirateria ce ne sono millemila e uno in più uno in meno cambia poco.

Mi mancherai, Megavideo