A Ovest Di Paperino

Welcome to the dark side.

  • tamocnaB

    Oggi ho usato per la prima volta – e quasi mi vergogno al dirlo – un bancomat… al contrario… cioè per fare un deposito.

    Sono stato incoraggiato dal fatto che nella sede della banca che ho visitato c’era una signorina che seguiva il deposito in assegni di un altro cliente. Dovendo depositare cash ed essendo la macchinetta di ultima generazione mi sono buttato.

    La precedente generazione richiedeva che i depositi venissero effettuati in busta chiusa e la disponibilità del liquido doveva passare per la via di un controllo ‘manuale’ che veniva effettuato parecchie ore dopo il deposito; col rischio aggiunto – che per la mia sfiga è pure molto elevato – che qualcosa andasse storto e via di telefonate col telefono e col disco premi uno premi due… but I digress.

    La nuova macchinetta mi ha fatto un paio di domande, ha aperto un bocchettone in cui ho depositato le banconote mentre sul video andavano chiare le istruzioni d’uso ed ha processato il deposito chiedendo una conferma sul totale dell’importo. Geniale. Preso dalla foga ho depositato 40$ extra oltre quello che mi serviva. Riavuti dopo un giro più classico di Bancomat standard.

    -quack

  • Ask The CEO

    Opera: Mamma, MS fa i browser non compliant
    MS: Ok, la versione 8 è compliant
    Opera: Mamma, MS dà il browser in bundle
    MS: Ok, lo togliamo da Windows 7
    Opera: Mamma, perché MS è cattiva e non vuole il mio bellissimo (*) browser?

    Sono stupidi quelli di Opera? Non credo. Fino a quando alla commissione europea antitrust continueranno ad assumere “Premi Nobel” del calibro di Neelie Kroes, l’andazzo rischia di essere lo stesso. Quelli di Opera poi mi ricordano il lupo nella famosa barzelletta.

    Se fossi il CEO di Microsoft comprerei Opera (l’azienda, non il browser), terrei il marchio e butterei tutto il resto. Sarebbe sicuramente meno costoso che una multa ogni sei mesi.

    -quack

    (*) ogni browser è bello a mamma sua.

  • Debugging

    Ho deciso di dare un’occhiata ad un pezzo di codice di Blogoo che aveva ricevuto la migliore benedizione possibile, quella di ore ed ore di volo. L’ho fatto dopo aver letto la recensione di Jeff di un libro dedicato alle Regular Expression. A differenza del recensore le RegEx mi stanno sempre un po’ indigeste, ma avevo un pezzo di codice in decadimento in attesa di essere sistemato con qualche botta di refactoring (e non intendo refuctoring).

    Da fortunato possessore di un abbonamento aziendale su SafariBooksOnline, che ho scoperto avere una caterva di titoli non solo “informatici”, ho dato subito uno sguardo al testo e messo in ordine una copia cartacea. Ho trovato un sacco di materiale già pronto per la manipolazione di stringhe HTML ma ho fatto l’errore madornale di fidarmi di un’analisi superficiale ed il risultato è stato quello di una trentina di commenti a doppia spaziatura involontaria che sicuramente qualcuno avrà notato. Per auto-punizione me li son editati tutti a mano… sistema quà e sistema là ha fatto capolino qualche pulce.

    Ho deciso di andare a fondo della questione, in un pezzo di codice che sapevo di aver documentato malissimo, ed ad una semplice scorsa i bachi son diventati vistosi come i nei al neon di Bruno Vespa. Per evitare svarioni ho deciso di creare una buona quantità di commenti campione da usare come baseline in rispetto alla regola 0 del refactoring: dose massiccia di unit test. Ho avuto anche l’occasione di giochicchiare con le feature di unit test di Visual Studio Galactic Edition e sono rimasto davvero allucinato.

    Ovviamente, l’onnipresente angelo custode Murphy in persona, ha fatto sì che nel momento in cui ho completato l’upload di qualche patch, il server che ospita questo blog andasse in crisi esistenziale. Per un attimo ho avuto qualche dubbio.

    -quack

    P.S. ulteriore sorpresa positiva: il pupo è dotato di scheda wireless draft-n. Ormai sono diventato un convinto zelota di questo fichissimo strumento di cazzeggio. Ho ceduto il mio Dell Studio alla formichina e ri-messo in vendita il vecchio INSPIRON, ormai giunto quasi al terzo anno di servizio. Ho pure trovato il lettore di impronte USB per portatili, ma misteri fitti sulla compatibilità di quest’ultimo con Windows 7 ne impediscono un acquisto immediato.

    P.P.S.S. l’analisi degli indirizzi IP dei commentatori di passaggio porta a risultati alquanto interessanti. Sto pensando ad un modo simpatico per condividerla.

  • I void warranties

    Non credo di averlo fatto per davvero, penso infatti che l’upgrade della RAM sia una di quelle manipolazioni tollerate dai produttori, ma mi piaceva tanto per un giorno indossare virtualmente la t-shirt.

    Ricapitolando: ieri è arrivato a destinazione il netbook perfetto (almeno secondo la mia visione del mondo informatico). Non sono feticista abbastanza da farmi inquadrare mentre spacchetto: potevano pure incartarlo in carta igienica non usata e sarei stato felice lo stesso purché imballato correttamente. Né il mio olfatto poco delicato mi permette di giudicare se il profumo di un netbook nuovo è all’altezza dei prodotti marchiati con la mela. Fatto sta che ho scattato qualche foto.

    La scocca è in alluminio: preferisco di gran lunga una plastica meno delicata ma l’alluminio fa la sua scena e mi ci abituerò presto (leggasi: compro un altro Gelaskin):DSC_6311

    Lo schermo è pressoché perfetto:

    DSC_6308Il trackpad un po’ meno a causa della disposizione dei due tasti, ma l’odiosissimo tap-2-click sembra essere calibrato perfettamente. In più – genialissimo – c’è un pulsantino che serve a disattivare completamente il trackpad, ottimo per lunghe sessioni di digitazione:

    DSC_6310

    L’upgrade di HD e memoria richiede di smontare la tastiera: ma il tutto si risolve svitando tre piccole viti da un millimetro. Sollevata la suddetta si accede al vano contenente il banco di RAM e l’HD (160GB a 5400RPM che vorrei sostituire con un SSD):

    DSC_6318Unico neo sembra essere il BIOS che oggi era intenzionato a darmi non pochi problemi:

    DSC_6320

    I valori “USB Legacy Support” sono incastrati e non è possibile modificarli. Ci sono finito mentre cercavo di cambiare l’ordine di boot. A questo punto spero sia disponibile un aggiornamento: per fortuna tutto questo è successo dopo l’installazione di Windows 7 RC. Un altro difetto di questo giocattolo è il peso: la batteria da sei celle non è l’esempio della leggerezza, ma la prova murse è tutto sommata superata.DSC00200 Più in la la vera e propria prova sul campo.

    -quack

    P.S. last but not least: dopo anni di usato, assemblati e refurbished, questo è il mio secondo computer che ho comprato nuovo. Il primo – se computer si può definire – è stato un Vic 20.

  • Svendo link – Giugno 2009

    Un po’ di link interessanti che ho accumulato in questi giorni mesi.vendesi

    1. Mastering IIS FTP – Redirecting Users; pensavo fosse più semplice ed invece… dedicato a tutti quelli che ci hanno buttato diverse ore. (IIS 6, col 7 le cose potrebbero essere migliorate di molto)
    2. iPhone users angry over AT&T upgrade policy: di solito le upgrade policy sono pensate per far risparmiare soldi a chi è un cliente fedele e non si vuol perdere una release. Per AT&T la mandria iPhone è tutta da mungere (staremo a vedere cosa succederà con i nuovi HTC e T-Mobile)
    3. Apple remove nearly all reference to ZFS: sposto ZFS dalla 10.5 alla 10.6, dalla client alla server, dov’è ZFS in Leopard? Sembrerebbe vaporizzato…
    4. Linux Kernel 2.6.30 released: blah blah blah, blah blah blah …. DRM support for the Radeon R6xx/R7xx graphic cards … blah blah blah. Defective by design? No, it’s not made in Redmond (corretto per segnalazione di Edward & DiPassaggio)
    5. Google Chrome FFMpeg vs. LGPL: Big Open Source of Headaches
    6. Google’s Android to Challenge Windows? Quando qualcuno non riesce a capire i pregi di un’ottima piattaforma per piccoli dispositivi. gFart per tutti?
    7. Come aggiungere un Search Provider personalizzato su Windows 7: occhio che i tip di Scott sono pericolosissimi
    8. Un developer realizza un mio sogno segreto: sviluppare una CPU da zero usando i chip logici 74xx
    9. Thoughts about trusted computing? Quanto è facile inserire una backdoor in una CPU? Fin troppo…
    10. [BONUS] Come si installa il software su Ubuntu vs. Windows. A parte la cazzata di imbastire un discorso filosofico sui massimi sistemi partendo dalla premessa sbagliata che su Windows XP Hearts va installato, perché non un confronto realistico su come si installa Premiere Elements vs. Cinelerra? O meglio Tor vs. Tor?

    Occhio al trollometro (virtuale per ora!)

    -enjoy

  • Fenomenologia di Gianni Ciardo

    Son sceso giù in caffetteria e pranzavo con una pseudo piadina caprese con aggiunta di tacchino.

    Guardo il sole fuori che splende come non è mai... splenduto. Spleso? Whatever. Pensavo sorridendo:

    Moooh, che caz’ di giornata. Che non va confusa assolutamente l’espressione opposta che giornata di ca...

    Seguono spiegazioni:

    Buona visione.

    -quack

  • Alla ricerca del netbook perfetto

    Mi son “liberato”, con un po’ di rammarico, del mio Dell Mini 9. Venduto in appena quattro ore su Craigslist ad un appassionato di Hackintosh. A quanto pare la compatibilità del Dell Mini 9 con OSX è davvero unica.

    Me ne son liberato perché ho scoperto che – per quello che mi serve – il Dell Mini 9 è stato un mezzo pacco, per tre semplici motivi:

    1. l’interfaccia dell’HD: la half Mini-PciE e per di più PATA only è una tragedia e gli upgrade al disco in dotazione presentano poche alternative e pertanto costano un sacco.
    2. La tastiera ha un layout insolito. Ho provato a creare un layout software compatibile ma non è servito a molto. Molto meglio una tastiera “92%”
    3. Lo schermo da 1024x600 è troppo piccolo in altezza. MSN messenger non ci sta tutto, Google reader diventa una pena da usare e stessa cosa dicasi di qualsiasi client email. Un netbook serve a cazzeggiare se non si cazzeggia bene che razza di netbook è?

    Mi son messo alla ricerca del cosiddetto netbook perfetto. Il nuovo Acer D150, al prezzo di appena 329$ spedito, sembrerebbe davvero ottimo. Pare che a differenza di altri modelli della stessa casa sia facilmente upgradabile. Però sono deciso a guadagnare quei 168-200 pixel in più. Quasi tutti i modelli ad alta risoluzione vanno dai 12” in su: ma per me 12” vuol dire sub-notebook e certamente non entrerebbe elegantemente nella mia invidiabile murse (suggerimento del mio capo: compra una murse più grande; risposta: non sarebbe più una murse ma una mini samsonite).

    Restano due opzioni: un Dell Mini 10 e un HP 2410, gli unici due netbook ad offrire la fantastica risoluzione di 1366x768. Ho provato a cercare un refurbished, non tanto per il risparmio che è comunque notevole quanto per i tempi di spedizione immediati, ma il sito di Dell non prevede la possibilità di filtrare sulla risoluzione dello schermo. Chattando con il rappresentante pare che tali modelli non siano neanche in stock. L’HP invece non ha neanche un sito per modelli refurbished. Tra sconti e paparazzi un modello nuovo mi costerebbe 449$ + tasse + spedizione per la bellezza di 550$ e passa. Il costo del display hi-res avrebbe un incidenza del 40% sul prezzo del giocattolo ed è assurdo. Neanche giocare con le configurazioni è servito a niente: un dell con Ubuntu costa uguale ma è meno “rivendibile”, un HP con FreeDOS per mancanza degli sconti “smart-buy” (configurazioni pre-definite superscontate) verrebbe a costare un centinaio di dollari in più.

    Bingolando in giro ho però notato che a differenza di DELL, per i modelli HP c’è un mercato di terze parti e – cosa molto importante – la maggiorparte di essi è out-of-state: questo si traduce in un risparmio immediato sulle tasse che al 10% non è davvero male e cosa più importante in spedizione immediata.

    Con tali caratteristiche – e magari un HD SATA SSD “decente” – il netbook si candiderebbe automaticamente al rimpiazzo del mio Dell Studio; visto che ormai la mia workstation è ad un tiro di schioppo, finirei per non sentire la necessità di una macchina intermedia.

    Oggi però è il WWDC e la probabilità che sia annunciato un netbook(*) Apple, seppur in forma vaporware, è poco più grande che nulla (iPhone nano: certezza). A questo punto tocca pazientare per qualche ora. La ricerca prosegue…

    -quack

    (*) non mi interesserebbe un altro mac, ma l’eventuale calo di prezzi che ciò comporterebbe sui modelli di fascia medio alta

  • Me, myself and Javascript

    Con l’intenzione di capire un po’ meglio il fantastico mondo di Javascript ho cominciato a giocherellare in maniera più intensa col dietro le quinte di questo website. Sono partito dall’idea di cercare un modo più elegante per implementare il Throbbler in modo che il cablaggio fosse quanto più possibile template agnostico.

    Questo concetto è condensato egregiamente dall’espressione di Javascript non-intrusivo (? In inglese Unobtrusive JavaScript) spiegata in maniera chiarissima in un paragrafo del libro “jQuery in action”. Leggendo i pro ed i contro di ogni tecnica mi son reso conto che la maniera più trasparente possibile per implementarlo è l’uso dell’evento ready di jQuery.

    Felice come una pasqua ho aggiunto questa comoda libreria anche al mio blog. Il risultato è stato abominevole: conflitto con la libreria scriptaculous che serve a far funziona Lightbox; scriptaculous a sua volta dipende da un’altra libreria chiamata prototype anche questa con qualche non minore problema di compatibilità con jQuery.

    Il tentativo successivo è stato cercare di sostituire Lightbox con una libreria basata su jQuery. Bingolando è venuto fuori un plugin chiamato “jQuery Lightbox” che dopo svariate ripercussioni ha cominciato a funzionare come doveva ma con la metà delle funzionalità offerte dall’originale.

    Ulteriore bingolamento e ho scoperto FancyBox: tutte le feature di Lightbox, estetica secondo me superiore e dipendente solamente su jQuery. Il test successivo è stato verificare che l’ordine di apparizione sulla pagina non creasse conflitti con i video di YouTube e la libreria TinyMCE. Tutto sembra essere andato per il verso giusto, ma mi ci son volute un paio d’ore per afferrare il toro per le corna.

    Conclusione personale: per fare le cose in maniera corretta l’uso di un framework è indispensabile viste le notevoli differenze di implementazione tra tutti i browser. I problemi cominciano quando le librerie si accavallano in virtù del fatto che in Javascript non esiste il concetto di namespace. Per fortuna per quello che mi serve tutto ciò ci può stare: Javascript – come ribadito già in precedenza – è OTTIMO per arricchire la funzionalità di un sito Web; davvero mi sforzo ma non capisco chi pensa che con un po’ di AJAX si possano sostituire completamente le funzionalità del desktop

    -quack

  • Un paio di cose, forse tre

    1. Il mistero dell’opacità e dei problemi di compatibilità di IE8 si va praticamente dipanando. Quest’articolo spiega che la realtà delle cose è molto meglio di come l’avevo descritta. Se la sintassi usata è quella corretta, non c’è bisogno di apici e i vecchi fogli stile continueranno a funzionare. Il motivo per cui la sintassi (nuova e vecchia) è diversa da quella “standard” sta nel fatto che anche l’implementazione differisce, probabilmente per motivi storici visto che i filtri sono stati aggiunti nella versione 4.x di IE e che il focus di IE8 era la compatibilità con CSS 2.1. Bocche cucite sul futuro
    2. In questi giorni si era malignato tantissimo sul fatto che Windows Update installasse silenziosamente un’estensione per FireFox, che non si potesse disinstallare, ecc. ecc. Quest’articolo spiega un po’ meglio come sono andate le cose. È stata una scelta maldestra, anche secondo me, ma se la scelta maldestra la fa il monopolista il cospiravistometro va a fondo scala. La lista delle applicazioni che installano plugin/estensioni in maniera silente ha dell’incredibile: Java-VLC-Acrobat-Hulu-iTunes ecc. ma in passato non ho mai letto nessuno malignare, anche se capisco che un Windows Update possa sembrare più malignabile. Ottima la possibile scelta di pubblicare l’estensione sul sito ufficiale di Mozilla
    3. L’Unione Europea vuole forzare la possibilità di chiedere all’utente quale browser scaricare. Mi chiedo perché mai limitarsi al browser. È un’idea politicamente geniale. Rilasciare Windows con IE/FF/Opera/Chrome, WMP/WinAmp/ecc.
      Tecnicamente non ho sentito mai niente di così stupido negli ultimi vent’anni.
      * in base a quale criterio scegliere il software da mettere in bundle? Diffusione percentuale? E se volessi scrivere il mio browser, perché dovrei essere svantaggiato rispetto agli altri?
      * e tali aggiornamenti vanno considerati parte di Windows Update? E se la casa produttrice non volesse? In passato il bundle di software di terze parti si è rivelato catastrofico sia sotto il punto di vista tecnico che legale. Qualcuno dovrebbe chiedersi come mai Adobe Flash è stato “rimosso” da Windows Vista (era in XP)
    4. Comminare multe: è facile, ma i miei piccoli studi di economia mostrano chiaramente che una multa è una forma di tassazione e tutte le tassazioni danneggiano più o meno l’utente in proporzione all’elasticità della domanda. La domanda per un prodotto che detiene il monopolio è estremamente inelastica e questo vuol dire che il costo viene trasferito sull’utente finale in maniera esagerata. Questo è vero anche per la multa comminata ad Intel in base al principio di voler difendere i consumatori. Però si prende un provvedimento che con certezza matematica danneggia i consumatori senza avere nessuna certezza che il danno ci fosse stato. Anche perché vedo un certo tipo di accordi come vere e proprie vendite di diritti in esclusiva: in base a quale ragione il fatto che Asus venda il diritto di esclusiva della sua linea ad Intel in cambio di sconti sui processori si deduce che tale operazione danneggia gli utenti? Lo sconto sui processori finisce per raggiungere il cliente finale, no?

    Ecco, ho finito per dirne quattro. L’intento è di sollevare una discussione, su alcuni punti ho bisogno di vedere motivazioni “opposte”. Sperando di tenere il trollometro a fondo scala verso il basso.

    -quack

  • Thanks God for YouTube

    Guardavo Training Day sul mio MediaCenter, uno dei tanti film registrati dalla TV “tradizionale” e la registrazione era tagliata nel mezzo del monologo finale di Alonzo. Sono rimasto come un pesce lesso: la colpa è soltanto mia che mi son fidato della precisione della guida tv ‘mmerigana che evidentemente non è ugualmente precisa per tutti i canali; rispetto però ai palinsesti italiani, dotati di variabilità che a volte supera l’intero giorno solare, sono orologi svizzeri. Il film è già stato uno strazio da guardare per tutti i F*CK audio censurati: che ci metti un po’ a capire che sta succedendo perché non sono coperti dal solito biiip ma ridotti a mero silenzio. Motherf*cker diventa semplicemente mother e la comprensione va letteralmente a *biiip*. Il finale tagliato è stato un colpo di grazia inaspettato e tremendo.

    Per fortuna c’è su youtube, in versione non censurata; e diciamolo: il film ne è valsa la pena. King Kong aint got shit on me!

    -quack

  • Standard e trasparenza

    Ieri giochicchiavo con una piccola feature da inserire in Blogoo che avevo stimato in mezz’ora di research and development (ma poi è andata a finire in leggera contro-tendenza). Volevo fare in modo che nel momento in cui si invia un commento comparisse una finestra trasparente con una ruota che gira stile boot loader di OS X. La parte più difficile dell’impresa è stata trovare la gif animata: l’avevo vista in giro usata come avatar in diversi forum, ma non ne ho mai annotato la URL e ritrovarla è stata una missione quasi impossibile. Come vuole Murphy oggi ho notato una GIF molto simile e a tratti meglio indicata navigando per caso.

    Trovata la GIF è stato abbastanza semplice generare il codice JavaScript che implementasse la funzionalità voluta: un bel DIV in primo piano ma nascosto che diventa visibile con il click del pulsante, roba che si trova in giro al primo secondo colpo ravanando su stackoverflow.com.

    Le ultime difficoltà le ho trovate implementando il livello di trasparenza in maniera tale che funzionasse con i tre motori di rendering principali e le varie sub-version. Il browser più problematico è stato – manco a dirlo – IE8, che nella modalità di rendering di default non ne voleva proprio sapere di gestire la direttiva. Bingolando tra i forum si trova solo gente incazzata e poca razionalità: se ci penso mi sono incazzato anche io pensando quanto fosse stupido scegliere di non supportare l’opacità così come era disponibile in IE7. La realtà invece è molto più pragmatica: la vecchia sintassi non è “conforme” e lo standard dice chiaramente cosa fare in presenza di tag non conformi e cioè vanno ignorati. I dettagli sono racchiusi in questo post. La cosa che mi ha fatto più riflettere è che la totalità delle lamentele di cui ho letto era critica nei confronti di tale scelta giustificando l’astio con qualche pregiudizio. E mi son reso conto che quanto avevo letto in passato e cioè che molti hanno chiesto a gran voce il supporto agli standard non sapendo neanche quanto di ciò che usassero lo fosse davvero; chi scriveva faceva l’esempio dei bordi arrotondati che “tutti gli altri browser” supportano tranne IE. Esempi che poi sono alla base di test suites come gli (in)famosi Acid Test v. 3.

    Morale della favola: non sempre quello che si desidera è quello che si dice di voler desiderare. Si è desiderato a gran voce il pieno supporto degli standard quando in realtà si voleva “un rendering che fosse compatibile quanto più possibile tra i vari browser”.

    L’ultimo ostacolo era la mancata animazione della GIF in IE8 su Win7/RC; ho notato subito che era un problema legato al caching delle GIF ed è bastato aggiungere un parametro casuale fasullo alla fine della URL per risolverlo. Questo ad ulteriore supporto del fatto che non ritengo che questo sia il miglior mondo possibile dal punto di vista dell’HTML e dintorni bachi inclusi. Come ci si muove da questo al prossimo (HTML 5? Flash/Gears/SL vNext?) è un problema per niente banale.

    -quack

    P.S. funziona?

  • iPhone 3.0 vs. cupcake

    Ho già ceduto alla tentazione di un raffronto della versione precedente dei due smart-telefonininini.

    È tempo di aggiornare un po’ le cose visto che sono un po’ di giorni che ho fatto l’upgrade a Cupcake, versione 1.5 (ma più simile ad una 2.0) del sistema Android.

    Si vocifera che la nuova versione hardware dell’iPhone porterà anche la bussola e una fotocamera con auto-focus; se sia vero o vaporware lo si saprà solo fra qualche giorno. Sta di fatto che l’HTC Dream, già al rilascio della versione 1.0 possedeva queste caratteristiche. Che hanno anche il loro perché: la bussola è indispensabile per applicazioni come Google-Sky utile a chi ha avuto sempre difficoltà a distinguere Venere da Mizar. L’applicazione, l’ho provata, svolge in maniera egregia il suo dovere. La camera con auto-focus è conditio sine qua non per la creazione della mia applicazione preferita, ShopSavvy in grado di scannerizzare un codice a barre, effettuare automaticamente una ricerca ed elencare i risultati in ordine di prezzo.

    Cosa manca a Cupcake (oggi) che sarà presente in iPhone 3.0 (domani?)? Niente che _mi_ interessi. Phone wide search che non include il contenuto dei messaggi email? Poco interessante. Peer to peer BlueTooth? Non saprei, non mi sono ancora trovato in una situazione in cui questo fosse indispensabile.

    Cosa mancherà all’iPhone 3.0 che è disponibile oggi con Cupcake? Oltre a tutto quello che mancava già 4 mesi fa (la totale indipendenza da crapware come iTunes sia per gli update che per la gestione dei contenuti, la libertà di poter sbloccare l’operatore telefonico gratuitamente, il customer service al servizio clienti, fotocamera e bussola) va aggiunto ora anche il supporto per la registrazione video.

    Accetterei 2 iPhone in cambio del mio G1?

    imageAd oggi no (salvo motivi di ordine economico).

    -quack

  • Bing

    Il nuovo motore di ricerca aiuto alle decisioni made in Redmond si chiamerà Bing (Bing Is Not Google).

    bing

    Finalmente un namespace separato visto che per anni si predicava di voler far concorrenza a Google e si è razzolato molto male, a cominciare da un branding molto confuso (Search . Live . Decche). Roba da suscitare in alcuni la classica domanda che faceva BillG quando si imbufaliva durante le review: ma chi li paga questi?

    In tema di search, una immagine molto esplicita dei rapporti tra donne, uomini e Google.

    Donne Uomini e Google-enjoy

  • L’arte del repro

    Qualcuno si ricorderà il baco che causava il crash di IE8 con le pagine del mio blog contenenti il video di YouTube:

    Operazione terminata

    (apropò, grazie a tutti per la segnalazione!)

    Dopo un paio di settimane di dialogo via email con quelli di IE8 mi son deciso ad alzare la cornetta e parlare con uno dei capoccia a voce. Gira e rigira mi son riproposto di dimostrare la mia tesi, ovvero che il crash fosse dovuto a YouTube + TinyMCE, con una pagina HTML creata ad hoc. Ovviamente, come succede in questi casi, il baco non voleva saperne di manifestarsi. Ho dovuto indagare ancora un altro po’ e scoprire per tentativi che per mandare in crash IE8 in maniera semi-catastrofica bastano questi tre elementi:

    1. Gli script di lightbox all’inizio della pagina
    2. Un video di YouTube
    3. Una textarea con TinyMCE alla fine della pagina

    Se si spostano gli script di lightbox alla fine dell’intera pagina il problema sparisce e tutto funziona come dovrebbe. In gergo questo viene definito minimal repro ed è una vera arte che solo i più smaliziati sanno apprezzare.

    Ed è proprio spostando gli script lightbox a fondo pagina che ho risolto (e salvato l’onore?) con il mio blog. In compenso mi aspetto una citazione o una statua per i 1144 byte capaci di portare IE8 alla semi catastrofe. Per la catastrofe vera e propria serve qualcosa di più, ma a questo punto lascio ai professionisti il compito di capire e sistemare il perché.

    -quack

  • Autogestione

    La discussione degenerata sugli alimentatori mi ha fatto riflettere un po’ sui limiti di questo blog. uncle-samÈ facile farsi trascinare in loop polemici che di fatto portano scarso valore aggiunto a qualsiasi conversazione. Ho pensato a come implementare una soluzione che rientri tuttavia nella natura semi-seriosa del luogo di perdizione. Butto giù un paio di idee ma questo post, più che altri, è aperto ai contributi di chi vuole partecipare.

    • istituire un sistema di cartellini da visualizzare accanto al nome di chi commenta. L’idea è quella di una piccola gogna mediatica basata sul comportamento tenuto negli ultimi X giorni di conversazioni; il cartellino rosso segnala a chi lo riceve, ma anche e soprattutto agli altri coinvolti, che la discussione sta rapidamente decadendo
    • un’alternativa potrebbe essere un trollometro che misura la percentuale di trollaggio che tutta la conversazione ha raggiunto. Se il trollometro supera una certa percentuale/valore, il thread viene sospeso per qualche ora/giorno; interventi “calmieranti” porterebbero ad abbassare il trollometro portando ad un circolo si spera virtuoso
    • altro?

    A supporto di un proseguimento imparziale ci vorrebbe un gruppo di co-moderatori (3 o 5) da eleggere a furor di popolo. I co-moderatori non devono essere necessariamente imparziali ma il gruppo da essi costituito essenzialmente bilanciato. Pensavo a vere e proprie elezioni “popolari” da effettuare in un giorno preciso nelle prossime settimane.

    Sono aperto ad idee ed invito, per la seconda volta in pochi giorni, la maggioranza silenziosa a partecipare al dibattito.

    -quack

    P.S. ovviamente queste idee non sono tutte farina del mio sacco e cosa più importante occorroni candidati moderatori!!

  • Opinioni

    Scena (allegorica) e cazzata della domenica tratta da un viaggio in treno. Un avventore siede a sua insaputa accanto a Del Piero. Arriva il controllore che controlla i biglietti quando…

    Avventore: Mi scusi sa dirmi quanto è finita la partita della Juventus?

    Controllore: Ha pareggiato zero a zero, pessima partita

    Del Piero: Ehm, a dir la verità la partita è terminata due a zero per la Juve, i gol sono stati segnati negli ultimi 3 minuti, forse il controllore si è perso il finale

    Avventore: Ah davvero?

    Controllore: Ma non lo stia a sentire… ma come non l’ha riconosciuto? Ma è Del Piero, è ovvio che sia di parte…

    Del Piero: Eh, ma a dir la verità io riportavo solo un fatto accaduto…

    Controllore: Ma si vergogni, parlare così senza qualificarsi della squadra per cui lei gioca… ma che mondo!

    Opinioni. Il saggio diceva che come per gli attributi sessuali ognuno ha le sue. Ma i fatti?

    -quack

  • Pass the pigs

    Un paio di settimane fa, in una serata sociale, mi è stato mostrato questo semplicissimo gioco da tavolo molto simpatico. Si gioca con due maialini che si lanciano come dadi e si acquisiscono punti in base all’esito del lancio. Esito che dipende dalla posizione dei singoli maialini: ogni combinazione è associata a dei punti e alla fine di ogni lancio si può decidere se proseguire o incassare i punti accumulati. Il rischio è quello di sortire una combinazione che fa perdere tutti i punti accumulati nella stessa mano o – nel caso peggiore in cui i due porcellini si toccano – di perdere tutti i punti della partita. In tali casi il passaggio di mano al giocatore successivo è obbligato.

    Sembrerebbe un gioco completamente basato sulla fortuna se si prescinde dal fatto che ci sono esseri umani in grado di controllare il lancio di dadi non truccati (Steve Forte, Claudio Facilla, ecc.). Condizionale d’obbligo perché vince chi accumula più punti ma l’ultimo “giro” viene invocato dal primo giocatore che supera i 100 punti accumulati. Una volta finito il suo turno, tale giocatore deve lasciare a tutti gli altri la possibilità di completare il loro ed è a questo punto che le sorti della partita posso essere rovesciate anche in maniera estrema da serie ininterrotte di lanci fortunati dettate dalla disperazione finale. pass da pigs

    Tutto chiaro? Se non lo fosse si può provare la versione flash based gratuita online. La bellezza è che la confezione può essere ridotta a dimensioni subtascabili. Ciascuno dei due porcellini non è più grande di 2 cm di lunghezza.

    Qui in america sembra famoso come il nostro “gioco dell’oca” e non mi risulta di averlo mai visto in giro in Italia. Da aggiungere che i porcellini sono immuni alla recentemente famosa influenza suina.

    -enjoy

  • Sono un Mac

    Versione riveduta e corretta Made in Paperopoli:

    Sono un Mac

    P.S. realizzata in 5 minuti usando solo software free as in beer (Pinnacle VideoSpin).

    -quack

  • MouseRug

    Nell’era dei mouse a sfera antecedente a quella laser attuale (che dire gran comodità), il tappetino per mouse era un accessorio fondamentale. La qualità della superficie faceva molta differenza per chi aveva record di topometro da guiness dei primati.

    Al giorno d’oggi tale necessità è andata scemando ed i tappetini sono diventati pezzi da PC-arredamento. In ufficio ancora conservo un mousepad con la forma ed il disegno del casco di Michael Schumacher ricevuto in regalo alla vigilia della partenza per gli Stati Uniti. Da pochi giorni invece ho “riscoperto” il mondo dei mouserug. Tappetini per mouse che imitano alla perfezione i disegni dei più pregiati tappeti persiani e non solo.

    Alla fine ho comprato questo, di ispirazione Kazaka (?):

    eaglema ravanando ravanando ho scoperto un mondo. Ci sono alcuni “modelli” che hanno disegni bellissimi come questa tigre tibetana:

    TigerMouseRug

    ed un negozio vero e proprio dedicati a questi piccoli oggetti di decoro su Yahoo che spedisce anche in Europa. Fossi un po’ più debole di spirito, mi farei venire la voglia di collezionarli tutti. Mi sforzerò di accontentarmi di questi due.

    -quack

  • Il pericolo è il mio mestiere

    Il numero di Giugno della rivista Technet disponibile online dedica ampio spazio all’Application Compatibility Toolkit giunto da pochi giorni alla versione 5.5. La seguente figura è tratta dal primo articolo introduttivo in cui Chris Jackson parla di quali acrobazie un Data Collection Package (DCP) debba fare per poter essere eseguito sui PC da inventariare:

    Data Collection PackageLa parte tratteggiata in verde rappresenta il DCP così come era concepito nelle versioni precedenti alla 5.02 e tutto l’ambaradan a sinistra è stato introdotto per dare la possibilità agli amministratori di dominio di usare un pacchetto MSI anziché un EXE per distribuire il DCP sulle macchine target (gli MSI sono più semplici da distribuire per un sacco di ragioni che non ci stanno a margine di questo post).

    I vincoli alla soluzione del problema erano tanti:

    • chi ha scritto il codice tratteggiato non lavorava più al nostro progetto
    • l’ambaradan deve girare anche su Windows 2000 (con qualche limitazione)
    • testare l’ambaradan è complicatissimo
    • i tempi di consegna come al solito rivolti con uno sguardo al passato
    • gli MSI non sono disegnati per “eseguire codice” ma per installare
    • si può eseguire un solo MSI per volta, almeno su alcune versioni di Windows
    • cercare di lasciare quanto meno tracce possibili: non perché si tenta di nascondere chissà che ma in quanto per osservare correttamente lo stato del sistema bisogna modificarlo il meno possibile

    Il primo tentativo è stato quello di riscrivere la logica all’interno di AFSetup in una custom action ma dopo 2 mesi di prove e riprove, con risultati di test davvero poco confortanti, abbiamo capito che era un’operazione impossibile. L’ideale sarebbe stato fare in modo di creare un MSI che lanciasse AFSetup.exe senza lasciar traccia, ma gli MSI non sono fatti per operazioni stealth. La prima cosa che fanno è aggiungere una voce alla lista di “Add/Remove Programs”.

    La soluzione è balenata poco dopo: un MSI il cui unico scopo è di installare una finta voce di registro (!) e che per farlo lancia una custom action allo scopo di disinstallare l’MSI e proseguire…. tentativo naufragato perché la custom action viene “uccisa” non appena parte la disinstallazione.

    Siamo giunti quindi alla soluzione definitiva: la custom action estrae un eseguibile (il secondo msi5.tmp in figura, prontamente battezzato “The Entity”) che si mette in attesa dell’avvenuta “disinstallazione”. Dopo di che la custom action invoca la disinstallazione e il primo MSI muore senza lasciare nessuna traccia. Questo segnala a “The Entity” di entrare in azione estraendo un altro eseguibile (il mitico afsetup.exe) e suicidandosi; a questo punto afsetup.exe è in esecuzione come se fosse stato lanciato direttamente (tranne per “The Entity” che verrà cancellato il prima possibile) riconducendoci allo stesso scenario ampiamente testato nella versione 5.01 (di cui sapevamo benissimo pro e contro).

    L’idea di “The Entity” ce l’ho messa io, il mio collega ha velocemente buttato giù un prototipo ed ha funzionato quasi al primo colpo. In tutto questo ambaradan c’è da passare dei parametri ad AFSetup.exe in maniera “sicura”. Non tanto per paranoia ma per evitare ulteriori domande durante i meeting dell’SDL prima del rilascio. Il mio collega ha pensato dapprima a salvare i valori nel registry in modo tale che “The Entity” li recuperasse e li passasse ad AFSetup; poi abbiamo pensato al file system. C’è voluta una doccia, da sempre fonte ispiratrice di idee brillanti, per trovare la soluzione di Colombo: le variabili di ambiente! Si propagano “gratuitamente” di processo padre in processo figlio e sono più scarsamente accessibili all’esterno della genealogia dei processi.

    Tutto questo me lo sarei dimenticato o tenuto in serbo per qualche racconto avventuroso ai nipoti se non fosse stato per Chris Jackson che si è preso la briga di ficcanasare nei dettagli implementativi e facendo per un breve attimo rivivere in me l’emozione di mettere al mondo “The Entity”. Chris è uno dei tuttologi dell’AppCompat e il suo ultimo blog post parla di un’altra storia basata stavolta su ACT 5.5; materiale per un altro post forse un po’ più divertente di questo.

    -quack