A Ovest Di Paperino

Welcome to the dark side.

  • 10775870

    Quizzillo del weekend come da semi-consolidata tradizione: niente aiutini, niente domande e vediamo che esce fuori.

    La risposta lunedì.

    -quack

  • Malware e architettura

    Da tempo speravo di dedicare un post alla questione malware, la cui definizione è più fumosa di quanto si possa immaginare. Si è trovato in difficoltà persino il grande Mark Russinovich quando ha dovuto decidere se la protezione usata da Sony fosse un rootkit o meno. L’approccio generale su cui una buona maggioranza di persone sembra essere d’accordo è una questione praticamente tecnica.

    Ad esempio se una applicazione nasconde dei file al sistema è di fatto un rootkit, indipendentemente dal fatto che l’applicazione lo faccia per il bene dell’ubatteriofagotente o meno. Notare la sottile differenza tra “nascondere dei file al sistema” e “nascondere dei file all’utente”.

    La stessa cosa si potrebbe fare per definire malware: tutto ciò che gira di “nascosto” rispetto all’utente. Wikipedia è molto chiara:

    Malware, a portmanteau from the words malicious and software, is software designed to infiltrate or damage a computer system without the owner's informed consent.

    Una volta definito cos’è il malware possiamo cominciare a fare una distinzione tra due tipi fondamentali di malware:

    • malware che richiede l’interazione dell’utente con un inganno (clicca qui per vedere il porno)
    • malware che non richiede nessuna interazione dell’utente

    Questo va combinato con un’altra distinzione:

    • malware che si replica
    • malware “statico”

    Ed infine un’altra ancora, molto artificiale ma valida:

    • malware che richiede permessi amministrativi per portare a compimento la sua opera
    • malware che non richiede nessun permesso speciale
    • malware in grado di fare escalation di privilegi

    Combinando tutte le possibili permutazioni si ottengono 12 tipi diversi di malware. Però con l’espediente della suddivisione si tratterà di capire cosa si può fare discutendo un numero inferiore di casi.

    Nel caso della prima distinzione, un OS può fare ben poco. Di fronte all’intenzione dell’utente di eseguire un “free porn” il sistema non ha nessun’altra scelta che eseguire. Questo indipendentemente dal sistema. Quindi qualsiasi affermazione che *nix sia sotto questo aspetto migliore di Windows è palesemente falsa. Per il malware che non richiede nessuna interazione dell’utente (worm) si può fare qualcosa (ad esempio usando un processo di scrittura del software che riduca la possibilità di bachi wormable) ma l’utente ha ancora un grosso peso nell’ecosistema. Se non installa tutte le patch disponibili in maniera tempestiva la battaglia è persa. TUTTE le più grandi pandemie informatiche degli ultimi anni sono state causate da bachi già sistemati diverse settimane prima delle prime avvisaglie di problemi.

    Anche nel secondo caso un OS può fare molto poco. L’unica strategia è quella di contenere in qualche modo l’infezione riducendo in qualche modo la superficie di attacco. In questo senso Vista/*nix è molto meglio di XP nella configurazione “standard”. Vale la pena notare che “configurazione standard” non ha niente a che vedere con le “capacità del sistema” (le tanto fomentate fondamenta). Ovvero loggarsi sotto Linux come root ha gli stessi effetti di loggarsi sotto XP come amministratore, ma con una fondamentale differenza: per XP loggarsi come amministratore è l’impostazione di default per motivi totalmente irrilevanti al contenuto di questo post. Un esempio lampante dell’impossibilità dell’OS nel limitare i danni è tutto quel malware che sfrutta le macro di Office/OpenOffice per diffondersi ad altri documenti.

    Nel terzo caso però un OS ed i setting di default possono fare tutta la differenza del caso. Perché nel caso in cui il malware arrivi sul PC con l’inganno o quasi (bachi nel browser) il sistema può limitare i danni di parecchio. L’idea va all’uso di UAC (Vista/OSX/Linux) e di sandbox (IE7 su Vista, Chrome) quando si opera con applicazioni che si interfacciano con Internet, browser in primis.

    Pertanto la seguente affermazione è palesemente falsa:

    The Mac is designed with built-in technologies that provide protection against malicious software and security threats right out of the box.

    Non solo il design di MacOS non ha niente di speciale rispetto a qualsiasi Windows/Unix/OS moderno. Ma alcuni setting di default sono molto spostati verso il massimo dell’usabilità rispetto alla sicurezza e il pensiero va a Safari in primis per svariati motivi:

    • decisione di scaricare automaticamente i file sul desktop; basta scaricare una applicazione con l’icona di “My Computer” per gabbare alcuni utOnti
    • decisione di scompattare automaticamente i file compressi scaricati. Basta un file .zip malizioso ed un baco nel codice di scompattamento e la remote execute è servita
    • decisione di montare automaticamente i file immagine (ISO, DMG, ecc.) per lo stesso motivo di cui sopra

    Questo atteggiamento ricorda tanto la funzionalità AUTORUN introdotta con Windows95: basta inserire un CD appositamente preparato per far partire l’applicazione designata. Molto comodo per gli utOnti (inserisci il CD e segui le istruzioni) ma molto molto comodo per gli scrittori di malware. Nel frattempo sono passati 13 anni e dal rilascio di Windows XP SP2 l’applicazione non parte più automaticamente senza l’intervento dell’utente. Apple con i setting di default di Safari fa quasi[1] la stessa cosa di Windows 95.

    Un’ultima nota storica: il malware è cambiato tantissimo negli ultimi 25 anni. Parlare di 160 milioni di miliardi di virus oltre ad essere storicamente irrilevante è perlomeno inaccurato. Però vorrei spezzare una lancia in favore della piattaforma Apple: qualcuno dice che scrivere malware per MacOS è tecnicamente più difficile. Tale affermazione – per le mie impressioni personali – pecca per difetto. In generale scrivere software per Mac è tecnicamente più difficile e quindi lo è anche scrivere malware. Ho provato a cercare informazioni su come scrivere un Keyboard hook per Mac ed i risultati sono desolanti: non un singolo pezzo di codice che si possa copia/incollare, ma forse sono solo incapace di cercare nella maniera giusta

    Rimango dell’idea che un antivirus sia inutile sia su Mac che su Windows se e solo se si usa la testa. Se si passa a Mac per smettere di usarla è un altro paio di maniche.

    -quack


    [1] Non ho ancora esplorato le possibilità di AutoRun di MacOS però questo sembra promettente: MacOSX does allow you to set a background image (you can even use a pdf) so you could create a nice welcome screen at least. (fonte)

  • Marketing 101

    La storia dell’antivirus per Mac sta suscitando così tanto clamore che sta facendo passare in secondo piano una dichiarazione ancora più stupefacente made in Cupertino:

    Plaintiff's claims, and those of the purported class, are barred by the fact that the alleged deceptive statements were such that no reasonable person in Plaintiff's position could have reasonably relied on or misunderstood Apple's statements as claims of fact.

    Traduco in Italiano: nessuna persona ragionevole (leggasi: solo uno stupido) può scambiare gli spot Apple per realtà. Bingo! (via)

    -quack

  • Intruso

    Ca**ata del martedì: chi è l’intruso in questa classifica Wikio dei top 10 blog per Linux?

    image Risposte anticipate ad eventuali FAQ:

    1. non so come ci sia finito, a giudicare dagli indizi sarei nella top ten addirittura da un paio di mesi
    2. l’ho scoperto grazie ad un referral molto strano proveniente appunto dalla classifica
    3. sono perplesso dalla categorizzazione e mi sento “circondato” Forse bisognerebbe proporre la categoria “Windows” (o per lo meno Microsoft), dove incidentalmente potrei anche primeggiare.

    -quack

  • 3 Blue screen e un coccolone

    Aaaaargh! Sono incazzato, furioso e arrabbiato. Dopo essermi convinto che sì Vista64 vale la pena, fatto analisi e contro-analisi per scoprire l’origine dei miei guai con il Dell, aver formattato per l’ultima volta e cominciato a pensare al piano di backup come quello definitivo, 3 BSOD[a] in meno di una settimana mi hanno lasciato per lo meno perplesso. Indossati i panni scomodi da Sherlock Holmes ho cominciato a pensare al peggio (guasto hardware): uno dei tre, che poi era quello che si è manifestato due volte, era chiaramente amputabile imputabile ad un driver specifico. Gli altri due puzzavano di casualità così tanto che ho cominciato a pensare di dovermi staccare dal laptop per un paio di settimane mentre tornava al deposito per eventuali ispezioni.

    Ovviamente ho invocato l’aiuto di qualche collega-comare, di quelli che pur di farsi quattro risate alle spalle di qualcuno, si farebbero in quattro per analizzare i peli del naso del BSOD. La prima domanda che mi hanno fatto è stata: hai aggiornato il driver all’ultima versione? Certo, of course, ma per scrupolo vado volentieri a ricontrollare. E così scopro che un driver datato Ottobre è disponibile dal 21 Novembre sul sito della Dell. Nella sezione fixes and enhancements recita: Improved compatibility with blah blah blah and Vista 64 stability.

    BSOD

    Poi è venuto il momento del verdetto sugli altri due BSOD: morale della favola, troppo, decisamente troppo strani ed in qualche modo probabilmente correlati al driver bacato. Anche perché dopo 5 giorni d’uso “normale” di un BSOD neanche l’ombra. La novità del giorno è stato un coccolone: l’icona nella tray-area di Windows Home Server mi segnala un problema grave, uno dei dischi potrebbe essere difettoso. Mi collego al Server e mi viene proposta la “riparazione” del File System, ma vengo avvertito che qualche file potrebbe risultarne danneggiato. Poco importa mi son detto, ho ancora il backup del Server sparpagliato su più hard-disk che saggiamente avevo preparato prima dell’ultimo upgrade. Anche stavolta, paranoia a palla e già pensavo alla restituzione del mio primo Tera e come “sopravvivere” nel frattempo. Alla fine scopro l’arcano: avevo temporaneamente collegato via USB il vecchio HD primario e siccome poco mi importava del suo contenuto invece che “smontarlo” secondo le cautele del caso, l’ho spento a crudo. Windows se ne è accorto, ha pensato che il drive giustamente fosse morto e ha deciso di avvisarmi con un messaggio coccolone.

    Come al solito, tutto è bene ciò che finisce (quasi) bene.

    -quack


    [a] In realtà le occorrenze sono state 4, ma due dei blue-screen erano gemelli separati alla nascita causati da un singolo byte di codice malevolo

  • Citazione Citabile #2

    Tratta da Il ciclone:

    ¡El paraíso no es un lugar donde ir,
    si no una sensacion para vivir!
    Ecco!

    Col mio Spagnolo maccheronico non so se ci sono andato giusto col taglia e cuci.

     

    -quack

    P.S.: è finito un weekend extra-lungo e lavorativo. Domani scopriremo se i due lati del ponte convergono o se toccherà smartellare ancora a lungo. Me ne torno a casa notando una certa contro-tendenza tra quello che scrivo e gli articoli del supporto tecnico Apple. Vabbè…

  • Caching

    Come promesso in precedenza eccomi a parlare di codice e di come ho implementato il sistema di cache in blogoo. È diventato necessario quando il numero di commenti per post ha cominciato a superare una certa soglia: il mio ISP è molto generoso ma prevenire resta sempre meglio che curare. Senza la cache la pagina viene renderizzata ad-hoc ogni volta che viene invocata. Questo è un peccato perché buona parte dell’output restituito al browser è ‘facilmente’ sistemabile in una cache. Facilmente è tra virgolette perché gli elementi della sfida sono tanti:

    1. è interessante fare tenere nella cache sia le pagine che puntano ad un singolo post, sia le pagine che contengono più di un post (la home-page, gli archivi, le pagine per tag, ecc.), sia dei “pezzi di pagina” (gli ultimi commenti, tag-cloud, archivio, ecc.) 
    2. la cache deve gestire correttamente sia le pagine visibili solo dall’editor del blog, sia quelle visibili dagli utenti cercando di non fare confusione
    3. la cache deve essere invalidata solo quando necessario; nel dubbio se sia necessario o meno è meglio invalidare che servire contenuto “scaduto”.
    4. Se possibile è meglio invalidare solo lo stretto necessario: ad esempio la tag-cloud dovrebbe essere invalidata solo in caso di modifica/aggiunta di post o di categorie
    5. la cache deve essere invalidata quando del contenuto “post-datato” diventa automaticamente visibile

    Analizzando la questione a tavolino sono emerse un paio di cose. Gli eventi invalidanti sono in generale 2: l’aggiunta/modifica di un commento, l’aggiunta/modifica di un post. Tutto il resto, ad esempio il punto 5., può essere ricondotto ad uno dei due casi. L’aggiunta/modifica di un post poi può a sua volta generare due tipi diversi di eventi: un evento che invalida la “collezione dei post” ed un evento che invalida il singolo post. Ad esempio un commento sul post X invaliderà la collezione dei post (in quanto tale collezione potrebbe mostrare il numero di commenti per quel post), invaliderà il post X ma non il post Y. Per cui se un utente clicca sul post Y dopo che è stato scritto un commento su un altro post, si ritroverà il post servito dalla cache.

    L’invalidazione poi tiene conto di diversi fattori. Ad esempio cancellare un commento moderato non deve avere effetti sulla cache in quanto non visibile a priori. Stessa cosa per la pubblicazione di un draft e così via.

    Fatto questo, il resto diventa un gioco da ragazzi: ogni elemento inserito nella cache porta in dote la sua lista di dipendenze. Un componente separato da me battezzato CacheManager si mette in ascolto dei vari eventi (creazione/modifica/cancellazione dei post/commenti) e in base allo stato della cache, al tipo di evento e le condizioni a contorno (era un draft? è diventato un draft? c’è qualche articolo postdatato in coda?) invalida zero, una o più dipendenze causando la rimozione a cascata di tutti gli elementi da esso dipendenti. L’unica accortezza è gestire correttamente la “scadenza” della cache: nel momento in cui del contenuto viene prelevato dalla cache va confrontata la data di “prelievo” con la data di "scadenza" e se la cache è scaduta la data di scadenza viene ricalcolata, ciò che va invalidato viene invalidato, e tutto il resto prosegue come prima.

    Infine un’ultima nota: avrei potuto tenere una cache separata per gli editor, però mi è sembrato più saggio fare in modo che il contenuto fosse manipolato a posteriori.

    I risultati sono sorprendenti: il post da quattro mucche caroline e 428 (!) commenti viene renderizzato in 5 secondi senza cache, appena 192 millisecondi se il post è già presente in cache. Considerato il tempo sprecato (mezza giornata circa) ed i risultati ottenuti, direi che ne è valsa davvero la pena.

    Nota aneddotica: il baco più antipatico, l’Heisenbug che faceva sparire i commenti di Daniele B. dalla cache, era dovuto al fatto che il mio ISP usa un sistema arcano di load-balancing per cui le richieste al sito www finivano solo alcune volte per essere eseguite dallo stesso server che gestisce il sito senza www. Che poi non ho ancora capito perché a livello di hosting, visto che i due siti puntano allo stessissimo contenuto, sono configurati come due siti separati: individuato il problema, la soluzione è stata semplice e immediata. Redirect 301 di tutte le richieste www al sito principale. La cache è sempre sincronizzata e tutti i paperi (?) vissero felici e contenti.

    -quack

  • Il paese dei cachi

    Certe volte essere italiani è davvero umiliante. Un esempio eclatante è andare alle poste e trovare il commesso simpatico che ti dice: «Lo manda in Italia? Sa che l’Italia è il paese con il più alto numero di pacchi mai arrivati a destinazione?». Verissimo anche se devo ritenermi fortunato con 2 pacchi “scomparsi” ed uno semplicemente “manomesso” in dieci anni. Senza poi contare il servizio doganale che applica dazi e tasse in maniera totalmente casuale.

    Oggi stavo cercando un carica-batterie da tavolo per il mio G1: la batteria si scarica molto velocemente e leggevo in vari forum che alcuni telefonini sono stati venduti con batterie difettose e T-Mobile prontamente mi ha mandato una batteria di rimpiazzo. Il mio fornitore preferito per accessori per cellulare rimane ebay, con prezzi assurdamente bassi e consegna a domicilio per pochi soldi davvero. Nella mia ricerca oggi mi sono imbattuto in un venditore in Hong Kong che spedisce in tutto il mondo, Italia compresa. Ma con un avvertimento molto chiaro per chi acquista da e solo dal Belpaese:

    ATTENTION! To all Italian Buyers

    THIS IS A SERIOUS MATTER AND IT IS FOR MUTUAL BENEFIT. PLEASE READ IT CAREFULLY.
    We DO NOT ship to Italy UNLESS all buyers from Italy agree to receive their ordered items LATE. As far as we are selling, it takes over one month to Italy. Please kindly do not bid any items from us unless you are patience enough. If you are not and open a dispute for complaining non-receipt, I have no other ways to do except leaving negative feedback to you. PLEASE THINK TWICE BEFORE YOU ARE GOING TO BUY. Thank you very much for your attention.

    Il venditore ha una reputazione con il 99.2% di feedback positivi. Sono pronto a scommettere che buona parte del 0.8% dei compratori che ha avuto da ridire provenga dal natìo suolo.

    Perché il paese dei cachi è il paese dei cachi.

    -quack

  • I want to believe

    believeChe ci crediate o no, ieri sera a mezzanotte scoccava l’ora X di un malefico e pianificato attacco alieno massiccio alla terra. Come ne sia venuto a conoscenza è davvero irrilevante per il resto della storia che si è conclusa con un bellissimo lieto fine: ho terrorizzato gli alieni dopo essere salito sul tetto e mentre coi loro fari si avvicinavano alla mia abitazione ho spernacchiazzato con tutte le mie forze. Impauriti sono fuggiti a chele levate.

    So che è una storia difficilmente credibile e proprio per questo mi son creato un alibi di ferro, l’ultimate proof che quello che ho scritto è vero come il sole: come ben visibile sotto gli occhi di tutti la terra è salva; se gli alieni fossero riusciti nel loro intento nessuno sarebbe qui a scrivere e meno che mai nessuno sarebbe qui a leggere.

    Storia buffa, vero? Certo solo perché si parla di alieni. Però la sindrome di “I want to believe” è molto più comune di quanto si immagini, solo che è una tanticchia più difficile da riconoscere.

    Delle idiozie di Randall ne ha parlato in precedenza Enrico, in un post intitolato fenomenologia di un fabbricante di FUD. Ma che oggi tornasse alla cara con un’idiozia ancora più grossa del mio incontro di terzo tipo non me lo sarei mai aspettato:

    Microsoft is so concerned by the overwhelming response to our groundbreaking expose, "Windows 7 unmasked," that it's pulling back on the delivery reins so that it can retool the product to address the myriad performance and compatibility issues we identified. (fonte)

    Secondo Randall la sua recensione (de’ recensori) di Win7 avrebbe spaventato Microsoft a tal punto da ritardare la beta agli inizi del 2009. Peccato che la beta sia in linea con le tabelle di marcia che prevedevano il rilascio pubblico per i primi del 2009:

    I'm here today to tell you we're going to deliver the beta early next year as well ... We're going to open up the beta broadly, and stay-tuned on Microsoft.com/Windows for how you'll be able to download the beta just if you're interested in it. (fonte)

    Stando a Paul Thurrott, tramite il cui post son venuto a sapere di tale idiozia, l’atteggiamento acido di Randall nei confronti di Win7 è dovuto al fatto che abbia provato ad intrufolarsi senza successo al Reviewer Workshop durante il PDC e che non sia neanche riuscito a mettere le mani su un laptop con Win7.

    Qualcosa di simile è avvenuto durante il lancio di Vista. Qualcuno, da no1984 se ben ricordo, predicava la fine del computing come lo conosciamo oggi. Di fronte alle prime smentite furono introdotte voci che il DRM sarebbe scattato con il rilascio del SP1; e di fronte all’innocuo rilascio del SP1 fu tirata fuori la storia che la forte propaganda di no1984 avrebbe salvato il mondo come lo conosciamo.

    Detto fra me e me la storia degli alieni a confronto sembra molto più credibile. Nevvero?

    -quack

  • Exchange on the G1

    Da diversi giorni stavo testando una Alpha di TouchDown apparso da pochissimo anche sulle pagine di GizModo:

    TouchDown

    Devo dire che l’applicazione fa il suo dovere molto egregiamente. Il developer mi ha assicurato che sta lavorando ad un paio di bachi ma la sincronizzazione OTA, merito più del piano dati che della piattaforma, ha per me il feeling di un grosso upgrade. Touchdown per funzionare ha bisogno di Exchange 2007 con gli EWS attivati, quindi è per molti ma non per tutti. Però visto che si può provare gratuitamente per 5 giorni tentar non nuoce.

    Nel frattempo sono venuto a conoscenza di altri prodotti che verranno lanciati il primo trimestre del 2009 tra cui Aardvark. Nessuno di questi supporta ActiveSync ma considerando le lamentele di alcuni colleghi dotati di iPhone non è detto che un’implementazione basata su ActiveSync sia automagicamente migliore di altre. TouchDown è per ora scaricabile solamente dal sito di Nitrodesk, quindi tocca abilitare l’installazione di prodotti non presenti sul Market.

    Giudizio finale: ancora non perfettamente rifinito, ma per quel che mi serve funziona alla grande!!

    -quack

    Technorati Tags: ,

  • Space upgrade

    Giorni fa ero preoccupato che nel momento in cui avessi attivato il backup di tutti i PC di casa sull’HOME Server lo spazio a disposizione sarebbe diventato troppo stretto. L’avevo configurato con due HD per sfruttare il meccanismo di RAID “software” per un totale di 820GB divisi in 320-500. Ho deciso di approfittare dell’offerta del giorno su NewEgg per comprare un TB intero al prezzo di 10c/GB: in tutto 99$ spese di spedizione incluse.

    La complicazione più grossa era relativa al fatto che il drive da sostituire è quello di sistema. Dato il fatto che WHS implementa una estensione del FS proprietaria (?) ho pensato di non rischiare con l’uso di tool di imaging come Ghost/CloneZilla/ecc. Ho seguito la procedura “standard” che è quella di reinstallare l’OS in modalità di “recover”. Ovviamente ho fatto il backup di tutto il backuppabile su una pila di microHD ma l’installazione ha funzionato in maniera egregia. Il fatto che WHS tiene la copia primaria dei dati sul Drive Secondario comunque aiuta di molto il processo: l’unico step aggiuntivo rispetto ad una installazione normale è la ricreazione delle pietre tombali (tombstones) necessaria per i meccanismi di duplicazione dei folder. In giro avevo letto che durava davvero parecchio ma a quanto pare con il power pack 1 anche questa operazione è stata migliorata sotto tutti i profili: in pochissimi minuti tutti i file erano di nuovo accessibili. Per sfizio farò un confronto tra il contenuto dei backup e le share, giusto per essere sicuro che tutto fosse come descritto.

    Unica cappellata che ho fatto è stato accidentalmente zappare il backup storico del laptop: l’avevo messo in conto e non ci ho dato molto peso. La cappella è nata da una cattiva interpretazione delle specifiche tecniche del WHS (o magari sono semplicemente “outdated”). Al momento della ricostruzione dei tombstones mi sono infatti accorto che anche i PC backup sembravano intatti. ServerStorageDalla documentazione però mi sembrava chiaro che i PC backup fossero sempre tenuti sul drive primario: ho collegato il vecchio drive primario alla USB e il folder era lì ma non riuscivo a copiarne i file. Pensando che fosse dovuto a problemi con i permessi sul nuovo drive, ho zappato ciò che mi sembrava un falso database di backup per poi accorgermi che sul vecchio primario non si trattava di file ma di tombstones. Poco male perché l’archivio “storico” tanto storico non era visto che conteneva solo pochi giorni di backup in seguito all’ultima riformattazione del laptop. La situazione ora mi pare mooolto allegra dal punto di vista dello spazio libero su server come si può vedere nell’immagine a destra.

    In quasi contemporanea ad un certo punto sul laptop si è riverificato il problema del risveglio immediato: poi ho scoperto che la cosa si manifesta in presenza di Update critici come quello per Office che avevo da poco installato e lanciato.

    Tutto è bene quel che finisce (quasi) bene: oggi è lunedì ma la settimana è cortissima; il thanksgiving è alle porte.

    %quack

  • Presente

    Super cazzata trovata in giro chissà dove e rimbalzatami agli occhi mentre pulivo un HD previo backup/upgrade/che casino c’è sul mio server.

    presente

    Anche in versione riunione.

    Perché il weekend va preso alla leggera.

    ~quack

    P.S. se qualcuno non ha pace comunque invece consiglio:
    MacBook and MacBookPro suffer performance anxiety once the battery is removed
    Kernel vulnerability found in Vista

  • SkyCity

    L’esperienza turistica inevitabile del brunch allo SpaceNeedle restaurant è riassumibile in una vignetta:

    SpaceNeedle

    (fonte)

    -quack

  • Accaddicippì

    La gaffe di Apple sull’uscita video dei nuovi Mac ha causato più can-can di quanto avessi potuto immaginare.

    I soliti grilli parlanti, quelli che all’annunciato supporto dell’HDCP in Vista consigliavano prontamente Get a Mac, hanno cominciato a consigliare l’uso della pirateria (Get a PC with VGA-out? giammai!). Dell’incongruenza di certe argomentazioni ho già parlato in passato: come si fa solamente a pensare di passare a Mac portando a supporto le tesi di Gutmann che spiega come il costo dell’HDCP si rifletta su tutti gli utenti quando per l’utOnto qualsiasi comprare un Mac significa prestarsi ad upgrade che costano 10 volte tanto? Alla faccia dei costi per gli utenti: a Roma si suoleva dire che certa gente ha una faccia con la riga in mezzo.

    Sto deviando… mi interessava spiegare un po’ cos’è l’HDCP. Perché è più innocuo di quanto qualcuno vuol far sembrare per tirare acqua verso certi mulini. E perché penso sia la più grande tro*ata che Hollywood potesse concepire.

    Lo scopo dell’HDCP è di impedire che l’uscita digitale di un video ad alta definizione protetto sia fruibile – e quindi copiabile – su dispositivi non compatibili.

    L’idea [idiota] di base è che se qualcuno volesse piratare Rocky potrebbe collegare un dispositivo digitale in grado di registrare tutti i fotogrammi ad altissima risoluzione, ricomprimerli e ridistribuirli in giro. Fatti i calcoli approssimativi solo per il video c’è bisogno di capacità di 1TB per ora che per un film medio significa circa 1.5-2TB di storage. Poi c’è la faccenda della ricompressione per ridurre alla meglio il tutto in un .AVI da 1GB o meno. Comprimere 90 minuti di video “grezzo” in MPEG2 partendo da circa 30-40GB per arrivare a 4GB in tutto richiede 3-4 ore di rendering su un Q6600. Fatti i dovuti calcoli la ricompressione di un film HD potrebbe richiedere mesi. Certo con l’HW che sarà disponibile fra 2 anni il tutto potrebbe ridursi ad un paio di giorni. Il procedimento alla fine è molto simile a quello che il DRM audio musicale tanto in voga permette di fare con i CD: da AAC/WMA protetto a CD (sprotetto) a MP3 (sprotetto). Per questo le major hanno fatto in modo che questo buco fosse tappato.

    Il tutto si basa sull’assunzione che i bit sul supporto siano completamente “sigillati”. Assunzione che come AnyDVD HD dimostra è ingenuamente infondata. Se il contenuto per essere fruito ha bisogno di decriptazione, qualcuno riuscirà prima o poi a fare il reverse engineering del processo. Perché per un limite della tecnologia contenuto e chiavi di decriptazione viaggiano sullo stesso supporto, l’unica incognita è l’algoritmo.

    (ovviamente sto semplificando il discorso al massimo e commettendo qualche errore di approssimazione)

    Or bene questa grande tro*ata dell’HDCP ha fomentato le finte paure di chi si schiera contro a priori. Infatti in giro sono state dette cose molto false come ad esempio:

    • tutti i contenuti ad alta definizione anche non protetti sono soggetti a tali forme di restrizione. FALSISSIMO: i contenuti autoprodotti e in generale non protetti (leggasi: pirata) resteranno sempre fruibilissimi su tutti i dispositivi (che strano vero che quando si parlava di DRM in Vista si faceva la gara a chi la sparava più grossa?); questo punto palesemente falso era uno dei punti cardini del paper di Gutmann: infatti faceva l’esempio del dottore con la radiografia ad alta risoluzione incapace di poterla vedere su un monitor non compliant
    • che l’HDCP grazie alla cospirazione di aziende nere (in primis MS) e aziende di contenuti sarebbe diventato pressoché ubiquo; quasi-FALSO: primo perché ci sono produttori di dispositivi a basso costo Made in China che pur di risparmiare qualche centesimo ridurrebbero le dipendenze all’osso; secondo perché se un giorno sarà difficile trovare monitor non-compliant dipenderà molto dai costi di differenziazione, che è il motivo per cui non è vero che un NetBook con Windows costa “parecchio di più” di un NetBook con Linux[1], semmai leggermente il contrario
    • che i dispositivi che supportino l’HDCP siano “handicappati” rispetto a quelli non compliant e vanno evitati come la peste. E questa, delle tre, è la menzogna più grossa.

    Il perché è molto semplice e banale: perché i contenuti sprotetti saranno sempre fruibili su tutti i dispositivi[2]. Quelli protetti sono fruibili solo su dispositivi compliant. Poi c’è la questione “filosofica” di chi dice che comprando dispositivi/software/contenuti compliant si supporti direttamente il DRM e questo è un male a priori. Io che sono pragmatico e poco filosofo penso una cosa: se per vedere i mondiali di calcio del 2010 in altissima risoluzione devo pagare pegno verso il DRM, che me ne frega? Che farebbero i grilli parlanti e filosofi, quelli che cercano accuratamente televisori LCD non compliant, se i mondiali di calcio fossero solo disponibili in HDCP? Andrebbero a casa di amici?

    Due parole sulle ultime due tro*ate di Apple: ovvero la scelta di DisplayPort vs. HDMI (la prima supporta una forma di encription ancora più pesante) e la scelta di non includere una porta VGA. Nessuna cospiracy theory alle spalle: semplicemente l’uscita DP in versione mini è più piccola e bella a vedersi di quella HDMI; l’uscita VGA (come pure la firewire e i vari lettori multimediali) è davvero orribile.

    DisplayPort HDMI_port VGA

    I mac-book sono fatti per le sfilate di D&G, mica per farci quello che si pare.

    Tant’è.

    -quack

    P.S.: Noto con molto dispiacere che l’incongruenza di certi “blogger” esperti sull’argomento diventa sempre più manifestazione di ipocrisia allo stato puro e cristallizzato. As usual, non mi piace far nomi.


    [1] Incidentalmente ero interessato a comprare un NetBook con Linux per via del fatto che sono gli unici venduti con SSD; però nella stragrande maggioranza dei casi configurazioni più “complete” dotate di Windows (es. 1GB di RAM) costavano alla pari di configurazioni meno dotate con Linux preinstallato (es. 512MB di RAM). Ora aspetto che i costi delle SSD calino.

    [2] Oddio, c’è qualcuno super-maxi-paranoico che va dicendo in giro che questi dispositivi di “protezione” nascondo meccanismi in grado di riconoscere la pirateria e distruggerla “a contatto”; in passato è già successo che qualche previsione catastrofica del genere fosse fatta ed immediatamente smer*ata.

  • Obbedisco

    Quando una analisi è così accurata e completa come quella di Coding Horror sulle stop words, non resta che congedarsi come Garibaldi a Teano.

    Per fortuna si è trattato di cambiare 4 righe in croce e rigenerare l’indice con Lucene.Net.

    Anche la lista dei gadget di Ed Bott rientra nello spirito. Un paio di quelli indicati non sono niente male… ed infatti li avevo già installati

    -quack

  • Antivirus

    Visto che l’argomento è caldo, esprimo il mio umile pensiero su quale sia il miglior antivirus; meglio ancora anti-malware.

    Io uso una virtual machine ad hoc con XP ridotto all’osso. Usando gli Hard Disk differenziali di Virtual PC di cui ho già parlato in passato posso avere 2 installazioni separate, una chiamata appunto paranoia.

    Sul PC non installo niente che non mi serva. Se mi serve me lo procuro se possibile gratis/donationware (Paint.Net), altrimenti lo pago volentieri. Evito di installare plugin, perché un plugin viene eseguito nello stesso spazio di indirizzamento del processo ospite, mi limito ai minimi indispensabili (Photoshop import per Paint.Net; qualche effetto grafico per Premiere elements; ecc.)

    Sono immune al phishing perché grande e vaccinato: se la mia banca mi scrive, ci deve essere il mio nome e cognome per intero. E se pure ci fosse aprirei il browser e digiterei a mano l’indirizzo della mia banca.

    Sono immune ai worm per tanti motivi:

    1. a casa ho un firewall/router che funziona decentemente
    2. su Vista in aggiunta c’è il firewall di default che quando sono fuori casa diventa più cattivo
    3. quando c’è un aggiornamento che può causare la diffusione di un worm lo installo immediatamente nonostante la cosa sia ampiamente mitigata dai punti 1. e 2.
    4. uso Internet Explorer e me ne vanto. Se qualcuno riuscisse come in passato a distribuire malware via Repubblica.it, il massimo che succederebbe sarebbe mandare in crash IE
    5. tengo UAC attivato quasi ai massimi livelli: se una applicazione anche per sbaglio volesse scrivere in folder che non gli competono, voglio saperlo

    Sono immune ai virus/trojan perché non clicco allegati di dubbie origini e se dovessi farlo lo farei in una virtual machine.

    Detto questo sono felice comunque che una versione gratuita di OneCare, che dal punto di vista di impatto sul sistema è risultato ottimo, sarà disponibile già dal prossimo anno per tutti gli utenti Windows. Io sul mio laptop l’ho disinstallato già diversi mesi fa quando mi son costruito il mio Home Server: già allora la funzionalità più importante per me di OneCare era il backup; sostituita quella con una soluzione migliore sono passato prima ad Avira e poi ho definitivamente abbandonato. Questo è stato l’ultimo virus che io ricordi. Bei ricordi.

    -quack

    P.S. ho provato VirtualBox e l’ho trovato troppo macchinoso.

  • 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

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

  • 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:

  • 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