Info:

twitter

Ultimi commenti: Comment feed

Tags:

Sponsor:

Archivio 2018:

Feb Gen

Archivio 2017:

Dic Nov Ott Mag Apr Mar Feb Gen

Archivio 2016:

Dic Nov Ott Ago Mag Mar Feb Gen

Archivio 2015:

Nov Ott Set Mar Gen

Archivio 2014:

Dic Nov Ott Set Lug Giu Mag Apr Gen

Archivio 2013:

Dic Nov Set Ago Lug Giu Mag Apr Feb Gen

Archivio 2012:

Dic Nov Ott Set Ago Giu Mag Apr Mar Feb Gen

Archivio 2011:

Dic Nov Ott Set Ago Lug Giu Mag Apr Mar Feb Gen

Archivio 2010:

Dic Nov Ott Set Ago Lug Giu Mag Apr Mar Feb Gen

Archivio 2009:

Dic Nov Ott Set Ago Lug Giu Mag Apr Mar Feb Gen

Archivio 2008:

Dic Nov Ott Set Ago Lug Giu Mag Apr Mar Feb Gen

Archivio 2007:

Dic Nov Ott Set Ago Lug Giu Mag Apr Mar Feb Gen

Archivio 2006:

Dic Nov Ott Set Ago Lug Giu Mag Apr Mar Feb Gen
Dov’è Gutmann?

Da un ricercatore che scrive un paper mastodontico sugli effetti del DRM in Vista mi aspetterei due righe su questo fenomeno:

Apple HDCP

(fonte)

Circa 19 mesi fa dicevo:

Introdurranno una nuova linea di Mac con il supporto dell'HDCP; probabile anche che alcuni Mac tra i più recenti già supportino - in sordina, stile Apple - l'HDCP ma niente trapelerà fino al rilascio del nuovo OS

Notevole come il supporto HDCP sia appunto avvenuto in sordina (niente sbandieramenti, nessuna indicazione tra le feature, ecc.)

Ora la cosa buffa non è tanto il supporto all’HDCP che è praticamente obbligatorio se si vuole distribuire un certo tipo di contenuti multimediali; ma che a differenza di Windows, che in assenza di display HDCP, ne consente la fruizione in 800x600 attraverso le comuni uscite VGA, sui nuovi notebook Apple… l’uscita VGA non esiste! STUPENDO!

-quack

Pubblicato martedì 18 novembre 2008 alle 7:15 PM - 89 commenti so far
Archiviato in: DRM, Apple

Nickel and dime

In inglese americano si usa questa definizione per le aziende di servizi intente a spennare i loro clienti anche per importi da 10 (dime) o 5 centesimi (nickel).

È una compagnia nickel&dime quella che prova a fatturarti 2.50$ di mora per un importo di .52cents. È una compagnia nickel&dime quella che ti fa pagare poco meno di 100$ al mese per un piano telefonico/dati ed ha il coraggio di chiederne altri 30$ per il privilegio di fare tethering in maniera ufficiale e limitato a 5GB al mese.

Le reazioni non mancano:

Sooner or later people will learn that an iPhone doesn't really cost 199. (fonte)

I love how AT&T and Apple work together to find a way to charge us for something that costs them nothing. Jerks. (fonte)

Dear AT&T, Stop being fucking douchebags. (fonte)

Pubblicato martedì 18 novembre 2008 alle 12:05 AM - 7 commenti so far
Archiviato in: Cazzate

Recensioni della domenica

Venerdì è arrivato l’ “USB Security Foot Pedal”. La prova dei driver è andata benissimo… Vista lo riconosce come uno Human Interaction Device, quindi si tratta solo di capire l’evento generato dalla pressione del pulsante e confezionare un piccolo servizio server che faccia quello che mi serve quando premo il pedale. Questo vuol dire che probabilmente, per tenere a bada i colleghi impiccioni, mi toccherà comprarne un altro al più presto: l’offerta speciale 8$ e rotti spese di spedizione incluse dovrebbe terminare entro pochissimi giorni.

Lo stesso giorno sono arrivate anche le cuffiette di rimpiazzo a quelle in dotazione al T-Mobile G1. Ho preso le Sony MDR-EX90LP sia per le caratteristiche di potenza (più di 100 mW) che per frequenze supportate (5 – 25000 Hz). Valore di mercato circa 60$, ma disponibili su EBay nuove per la metà spese di spedizione incluse. I Love Ebay. Ricordo ancora 15 anni orsono quando provai scettico gli auricolari dell’Aiwa da 50mW con supporto dei bassi: un’esperienza illuminante. La qualità audio di queste Sony sembra decente, il packaging di plastica pessimo: sto ascoltando lo stesso disco che ascoltai 15 anni fa orsono via PC e l’esperienza mi sembra una tanticchia peggio di quella di allora. Sarà l’età che ha notevolmente invecchiato mi mio apparato uditivo, sarà il fatto che il suono è ulteriormente filtrato da altri speaker. Staremo a vedere con il G1 come andrà quando ne trasferirò gli MP3 diligentemente rippati.

E a proposito di G1: mi è arrivata la pellicola di plastica di protezione Invisishield. L’esperienza touch è migliorata di parecchio anche se appiccicarla allo schermo non è proprio una passeggiata. Per quanto riguarda l’aggiornamento software alcuni bachi atroci con il POP3 non sono stati ancora sistemati. L’interfaccia grafica dopo qualche settimana mi sembra davvero molto buona anche se in alcuni tratti inconsistente: condividere una foto diventa un gioco da ragazzi, qualsiasi applicazione può registrarsi come fonte di condivisione che diventa disponibile cliccando sul menù contestuale. Pubblicare una foto su Facebook via Statusinator diventa davvero un gioco da ragazzi. Qualsiasi tentativo di sincronizzazione OTA con Exchange è fallito miseramente e penso sia dovuto al dominio associato con il mio utente: ho provato un paio di applicazioni, una addirittura in alpha e mentre qualche collega riesce allegramente a sincronizzare, la mia esperienza si blocca davanti ad un messaggio di “Access Denied”. Questo vuol dire che ActiveSync non è facilmente bypassabile sperando di farla franca con una connessione agli Exchange Web Services.

Di più in seguito

-quack

Technorati Tags:

Pubblicato domenica 16 novembre 2008 alle 8:41 PM - 2 commenti so far
Archiviato in: Cazzate

Commenti

[pippone semi-tecnico che un giorno ospiterò su un altro blog]

I commenti sono la parte più delicata ed importante di un blog. Importante perché un blog senza commenti è come il sale senza la pasta; delicata perché si può finire vittima di attacchi XSS: non che per me sia importante, ma visto che ho colto l’occasione per imparare a sviluppare un CMS quasi da zero tanto vale cercare di essere quanto più diligente possibile.

Nelle passate due settimane ho speso un sacco di tempo nel cercare una soluzione bilanciata per l’editing dei commenti: mi sono sempre meravigliato perché piattaforme di blogging importanti anche come Wordpress non supportassero l’editing in modalità Rich Text in maniera nativa anche se supportano un set limitato di tag HTML in maniera egregia. Pensavo, a dir la verità in maniera piuttosto naive, che bastasse includere un JavaScript (TinyMCE, FCKEditor o qualsiasi altro) per rendere la textarea magicamente user friedly. Fino a quando non ho provato l’esperimento in maniera diretta. Lo scopo di tutto questo spremermi di meningi era volto non solo nel rendere il sistema di commenti pratico e semplice, ma anche ridurre al minimo i miei interventi di post-editing necessari per un tag non chiuso o una sostituzione andata a male (:) –> ).

Un commento dal momento in cui viene premuto il tasto pubblica, al momento in cui viene “rivisualizzato indietro” subisce così tanti passaggi che alla fine la questione cresce di complessità in maniera geometrica: supporto degli smiley, supporto della creazione/accorciamento automatico dei link, supporto per alcuni tag (grassetto, corsivo, sottolineato e barrato; citazione e link), lettere accentate, varie ed eventuali.

Pensare che un search/replace/regex possa sistemare tutto tutto tutto si è dimostrato totalmente scorretto. Ad esempio l’accorciamento delle URL va fatto nel testo “normale” ma non all’interno di <A href>; la sostituzione degli smiley va fatta fuori dai tag; i tag invalidi vanno eliminati anziché essere HTML-codificati.

In seguito mi è venuto anche il pallino di rendere l’editor RichText configurabile come opzionale e supportare quello che io chiamo il semi HTML, ovvero l’ibrido tra HTML e plain text che quasi tutte le piattaforme supportano. Esempio:

Se l’input è HTML full il seguente HTML <b> &amp; </b> deve essere la rappresentazione di ciò che va renderizzato come &; se l’input è in semi HTML lo stesso diventa la rappresentazione di &amp; i line break (\r\n) vanno convertiti in <p> e <br/>, ecc. Ovvero tutto quello che c’è all’interno dei tag HTML va considerato plain text e come tale va passato attraverso un bel HTMLEncode/LineBrake.Convert. Ho considerato che tale pallino avesse costo limitato in quanto questo era esattamente il modo in cui operava la TextArea prima del lifting. Visto che c’ero ho voluto pure fare in modo che il backend fosse aware se il plugin Javascript fosse stato lanciato con successo o meno (JS magari disabilitato o altro): se il plugin non risulta inizializzato il backend tratterà l’input come semi-HTML anziché HTML full.

Infine ho anche cercato di evitare che il copia-incolla desse la falsa illusione di supportare anche tag non supportati, tipo le immagini. Il primo tentativo è stato quello di abilitare il cut-paste in modalità plain-text only. Con FCKEditor la cosa è supportata out-of-the-box, con TinyMCE ho dovuto fare qualche giro di troppo alla fine mi sono arreso.

Nel provare TinyMCE e FCKEditor mi sono reso conto dei limiti dell’uno e dell’altro. FCKEditor – prima che mi si accendesse la lampadina del distinguere completamente il semi-HTML dall’HTML full – era stato problematico per la sua estrema fedeltà all’HTML. Se si digitano due spazi consecutivi il secondo verrà giustamente e automaticamente convertito in &nbsp;. E questo creava non pochi grattacapi nella gestione degli smiley (o delle URL) che per essere interpretati correttamente hanno bisogno di essere “staccati” dal testo tramite uno spazio o equivalente (inizio riga, fine riga). TinyMCE invece mi ha dato non pochi problemi con il cut&paste, ma in compenso è stato abbastanza semplice fare in modo che prima di “pubblica” l’editor ci prefissasse una stringa nota per segnalare al backend che il JS era stato inizializzato correttamente. Tornando ad FCKEditor ho avuto molte difficoltà nell’editare il contenuto del testo e alla fine ho cercato una soluzione altrettanto pratica.

Alla fine il risultato è sintetizzabile nei seguenti passaggi:

  • filtrare tutti i tag HTML non presenti nella whitelist
  • iterare su tutto il contenuto che non è un tag HTML e fare le sostituzioni del caso (in realtà alcune sostituzioni sono applicabili anche all’interno di alcuni tag)

Questi due compiti non sono così semplici come si può immaginare, basta un esempio più banale per rendersi conto di quanti trabocchetti ci sono per la via. Io mi sono affidato a buona parte del codice di gestione dei commenti di DasBlog, anche se date le drastiche modifiche richieste sono in preda ad una tentazione di refactoring.

Se occorre ampi pezzi di codice C# sono a disposizione. Oltre al classico feedback per critiche, osservazioni, ecc.

Il prossimo post sull’argomento riguarderà i pericoli intrinseci del fare caching dei risultati.

-quack

Pubblicato venerdì 14 novembre 2008 alle 1:30 AM - 22 commenti so far
Archiviato in: Blog-Tech

Italian 101

Il mio italiano scritto non è perfetto né mai sognerei di raggiungere la perfezione: per me risulterebbe più facile scrivere codice senza errori. Però fino ad oggi non ho mai avuto la sensazione di avere gravi problemi di comprensione. Per stabilire se è colpa mia o di chi ha scritto, faccio una domanda “tecnica”.

Cosa significa “XYZ costa parecchio di più di ABC”:

  1. XYZ costa almeno il doppio di ABC
  2. XYZ costa tra il 50-100% in più di ABC
  3. XYZ costa tra il 10-50% in più di ABC
  4. XYZ costa meno del 10% in più di ABC
  5. XYZ costa meno di ABC

Da “expat” sarei dell’avviso che la risposta giusta sia la 2. La prima in italiano credo si scriva “costa esageratamente di più”. Mentre la terza in italiano dovrebbe essere “costa un bel po’ di più”. Ovviamente è tutto molto fuzzy.

-quack

P.S. non si vince niente.

Pubblicato giovedì 13 novembre 2008 alle 5:35 PM - 15 commenti so far
Archiviato in: Cazzate