A Ovest Di Paperino

Welcome to the dark side.
ARCHIVED

  • Metodi dinamici di delegazione

    Questi giorni sto giochicchiando con i DynamicMethod di .Net e ho pensato di condividere. Lo scopo di tali classi - conosciute anche come lightweight code generation - è di generare codice IL (il P-code di .Net) dinamicamente. Accoppiandoli con i metodi delegate (puntatori a funzione) si possono fare cose veramente interessanti. Gli esempi che seguono sono alquanto banali (il classico "Hello World"), ma con la LCG si possono fare cose moooolto deliziose: esempio 1, esempio 2.

    Altrettanto interessante è il funzionamento della Virtual Machine stack based di .Net: il set di istruzioni è documentato qui ma se si vuole giocare seriamente a questo tipo di giochi pericolosissimi (roba impossibile da debuggare capace di creare codice a fungo atomico in men che non si dica) consiglio _IL_ testo di riferimento che è "Compiling for the .Net Language Runtime" il cui unico neo è quello di essere basato sulla CLR 1.0 (niente template e altre corbellerie "moderne"). Volendo, la via più breve per capire l'IL da generare, è l'uso "a posteriori" di reflector.

    Ed ora gli esempi, giusto per stimolare l'appetito:

    using System;
    using System.Reflection;
    using System.Reflection.Emit;
    
    public class TestClass
    {
        string message;
        public delegate void TestMethod();
        TestMethod myTestMethod;
    
        public TestMethod MyTestMethod
        {
            get { return myTestMethod; }
        }
    
        public TestClass(string aMessage)
        {
            this.message = aMessage;
        }
    
        public void RealTestMethod()
        {
            Console.WriteLine(this.message);
        }
    
        public void CreateMethod()
        {
            /*
             * this is equivalent to:
             * Console.WriteLine("Hello world!");
             * there is no access to object members 
             * so the method can be declared as 'static'
             * 
             */
              
            // declare the method signature as void HelloWorld()
            //
            DynamicMethod dm = 
                new DynamicMethod("HelloWorld",  // name of the method
                typeof(void),           // return type
                new Type[] { },         // input types
                typeof(TestClass)); // class to 'attach the method to
            ILGenerator il = dm.GetILGenerator();
    
            // create a constanst string using the 
            // message and put it on the stack
            il.Emit(OpCodes.Ldstr, this.message);
    
            // invoke Console.WriteLine(string)
            // since it's a static method it only 
            // requires a string (the one on the stack)
            il.Emit(OpCodes.Call, 
                typeof(Console).GetMethod("WriteLine", 
                new Type[] { typeof(string) }));
    
            // return
            il.Emit(OpCodes.Ret);
    
            // create a delegate
            this.myTestMethod = 
                (TestMethod) dm.CreateDelegate(
                typeof(TestMethod)
                );
        }
    
    
        public void CreateMethod2()
        {
            /*
             * this is equivalent to:
             * Console.WriteLine(this.message);
             * there is access to object members 
             * so the method cannot be declared as 'static'
             * 
             */
    
            // declare the method signature as 
            // void HelloWorld(TestClass implicitThis)
            // it will be mapped to 
            // TestClass.HelloWorld() as instance method
            //
            DynamicMethod dm = new DynamicMethod(
                "HelloWorld",                      // name of the method
                typeof(void),                      // return type
                new Type[] { typeof(TestClass) },  // input types
                typeof(TestClass));     // class to 'attach' the method to
            ILGenerator il = dm.GetILGenerator();
    
            // puts the arg_o (this) on the stack
            il.Emit(OpCodes.Ldarg_0);
    
            // puts (POP)->message on the stack
            il.Emit(OpCodes.Ldfld, typeof(TestClass).GetField("message", 
                BindingFlags.NonPublic | BindingFlags.Instance));
    
            // invoke Console.WriteLine(string)
            // since it's a static method it only 
            // requires a string (the one on the stack)
            il.Emit(OpCodes.Call, 
                typeof(Console).GetMethod(
                    "WriteLine", new Type[] { typeof(string) }
                    )
                );
    
            // return
            il.Emit(OpCodes.Ret);
    
            // create a delegate
            this.myTestMethod = 
                (TestMethod)dm.CreateDelegate(typeof(TestMethod), this);
        }
    }
    
    
    public class HelloWorld
    {
     
        public static void Main(string[] args)
        {
            TestClass myTestClass = new TestClass("Hello World!");
            myTestClass.CreateMethod();
            myTestClass.MyTestMethod();
    
            myTestClass.CreateMethod2();
            myTestClass.MyTestMethod();
        }
    
    }
    

    -quack

  • Burocrazie

    Oggi nella casella della posta ho trovato una simpatica sorpresa: la patente americana rinnovata. Non che sia una patente grande sorpresa perché il "rinnovo" - per la prima volta - l'ho fatto online alcuni giorni fa. Però mi ha portato a riflettere della differente burocrazia tra il paese che mi ospita e l'Italia.

    Innanzitutto non so neanche se la mia patente italiana è scaduta o meno: questo perché la scadenza del documento italiano è legata alla data di rilascio e di quella data mi ricordo a malapena l'anno. Il documento americano invece, intelligentemente, scade il giorno del proprio compleanno. Vuoi mettere tra le due date quale sia la più facile da ricordare?

    Poi ci sono i costi: 25$ tutto compreso pagabili via carta di credito. Da aggiungere la completa informalità della lettera che mi invita a rinnovare il documento con tanto di torta con le candeline e scritta con un linguaggio ultra-semplice. In Italia, tutte le comunicazioni ufficiali, sono seriose e scritte in gergo burocratico.

    Infine la comodità: tra rinnovare online e fare 30-40 minuti di fila allo sportello non c'è proprio paragone. Tanto in tutti e due i casi la patente verrà comunque spedita a casa per verificare l'indirizzo fornito. Una delle tante cazzate geniali!!

    -quack

    Technorati tags:

  • Venerdì nero

    Il giorno dopo il Thanksgiving (che appunto è il quarto Giovedì di Novembre) si chiama Venerdì Nero. È un giorno in cui tutti i commercianti fanno sconti pazzeschi su alcuni articoli molto appetibili come regalo di Natale. La teoria più accreditata su tale nome fa coincidere con il Venerdì nero, sia per gli sconti che per la posizione strategica nel calendario, il giorno in cui le attività commerciali raggiungono "la parità". Tutti i giorni precedenti sono considerati "rossi" quelli successivi "verdi". I negozi aprono molto presto (Fry's apriva i battenti alle 5 e mezza) e la gente fa ore ed ore di fila per accaparrarsi gli articoli più convenienti. Dietro questa manovra molto consumer friendly parrebbe nascondersi un interesse molto subdolo dei commercianti: pare che in base ad una legge ammerigana, se si restituisce un prodotto senza essere provvisti di scontrino, il commerciante ha il diritto di restituire il prezzo storicamente più basso durante i 30 giorni precedenti alla restituzione; con un paio di giorni di supersaldi strategicamente piazzati (come appunto il Venerdì Nero) è possibile garantirsi un interesse economico non trascurabile su tutti i regali di Natale - ovviamente senza scontrini - non perfettamente azzeccati! Quanto sia vera questa storia, non lo so neanche io: mi è stata raccontata da Forrest - mio collega quasi-onnisciente - tanto, troppo tempo fa

    Questo è il primo anno in cui ufficialmente ho deciso di fare shopping. Attirato a Fry's come una allodola allo specchietto da un paio di offerte molto interessanti: combo Intel QuadCore (Q6600) + scheda madre SiS (di quelle che danno i problemi coi mouse su Ubuntu Big Smile) a 200$, prezzo di molto inferiore al costo del processore soltanto; drive USB da 8GB a 30$ (con rebate!); drive da 4GB a 13$ (sempre con rebate). Purtroppo siamo arrivati tardi (circa 10AM): l'affare più goloso (il processore) era andato già esaurito. La fila alle casse, che si estendeva labirinticamente per tutto il negozio, stimabile in circa 120 minuti di attesa non è valsa la pena per gli altri deal (sono un freddo e cinico calcolatore).

    E così io e Beppe, anche lui alla prima esperienza di VN, abbiamo abbandonato sconsolati il paradiso di Fry's alla ricerca di altri lidi. Siamo approdati da Circuit City che aveva una super offerta su Guitar Hero II + chitarra per XBOX 360 a 60$.

    GuitarHero2

    Ormai scettici ci siamo avventurati lo stesso ma per fortuna, vuoi perché tutti magari erano da Fry's, ne abbiamo trovata una (ce n'erano diverse). Per par condicio abbiamo pensato anche alla formichina, ormai dietologa iscritta all'albo, con una confezione di Dance Dance Universe corredata di tappeto sensore allo stesso prezzo nonostante l'adesivino indicasse 20$ in più. Per la prossima stagione festiva siamo ormai ben attrezzati. A questo punto, la foto commemorativa di Beppe in versione rock-star, non poteva mancare:

    BeppeRockStar

    Un paio di canzoni ed il dolore del mancato (?) affare sul processore è sfilato via.

    Enjoy!

    Technorati tags:

  • Happy turkey weekend

    turkey

    No c'è un refuso. Parlo di questo "turkey":

    turkey

    P.S. il weekend comincia oggi.

    -quack

  • Brevetto ep287578

    Il brevetto ep287578, non so se sia un numero ufficiale ma come titolo fa figo, è quello considerato come il "brevetto base MP3".musical_note
    Mai più che mai vale il disclaimer quello che segue è farina del mio sacco personale.

    La mia microanalisi che segue si basa su una voce wikipedia per un motivo semplice: se wikipedia su questi articoli fosse di parte penderebbe dal lato della "fondazione". Cominciamo dal LAME. In passato è stato detto che il codec LAME è "brevettualmente pulito" in quanto non usa l'implementazione di Fraunhofer. Wikipedia è abbastanza chiara, nonostante l'uso del condizionale:

    Like most (if not all) MP3 encoders, LAME may implement technology covered by patents owned by the Fraunhofer Society and other entities. The developers of LAME do not license themselves the technology described by these patents. Distributing compiled binaries of LAME, its libraries, or programs which are derivative works of LAME in countries which recognize those patents, may be considered infringing on the relevant patents.

    Il codec LAME potrebbe infrangere il brevetto e gli sviluppatori non ne hanno mai comprato la licenza che lo ricopre. Gli sviluppatori di LAME, ignari su tale infrazione, danno però un consiglio abbastanza chiaro:

    they advise obtaining a patent license for any relevant technologies that LAME may implement before including a compiled version of the encoder into a product

    In poche parole, se volete compilare e ridistribuire il codec, compratevene una licenza (come hanno fatto quelli di Linspire). Ma perché secondo tali sviluppatori non c'è nessuna infrazione? Semplice. I brevetti sono considerati documenti pubblici e come tali consultabili e - immagino - ripubblicabili liberamente. Probabilmente nessuno mi vieta di prendere un brevetto scritto in Inglese, tradurlo in Ostrogoto, e pubblicarlo sul mio blog. Quello che hanno fatto gli sviluppatori del codec LAME è altrettanto semplice, solo che invece dell'Ostrogoto, è stato scelto un linguaggio di programmazione e la "traduzione" pubblicata sul loro sito. Geniale vero? Per gli increduli, la stessa fonte recita:

    The LAME developers state that since their code is only released in source code form, it should only be considered as a description of an MP3 encoder, and thus does not infringe any patent by itself when released as source code only.

    Una ulteriore nota: i brevetti - in quanto pubblici - non impediscono assolutamente la libera circolazione della conoscenza come qualche crociato vuole far credere. Chiunque può scegliere un brevetto e implementarselo per uso personale (o compilarsi il codec a piacimento). Quello che non si può fare con i brevetti - e qualcuno mi corregga se sbaglio - è ridistribuire commercialmente prodotti che ne fanno uso nei paesi che riconoscono tali brevetti senza pagare la licenza all'intestatario del brevetto. Ops.

    Ora gli sviluppatori di LAME hanno un senso dell'ironia formidabile (al mio paese si userebbe una espressione colorita che coinvolge due parti anatomiche ben distinte): hanno protetto la loro "traduzione" di qualcosa che non gli è mai appartenuto con la licenza LGPL. Per cui Sony, che del brevetto sugli MP3 avrà licenziato milioni e milioni di copie ma ha deciso di usare l'implementazione LAME, è stata chiamata in causa per adempiere agli obblighi della licenza LGPL:

    In November, 2005 there were reports that the Extended Copy Protection software included on some SONY Compact Discs includes portions of the LAME library without complying with the terms of the LGPL.

    Morale della favola: scherza con i santi brevetti, ma lascia stare i fanti le licenze. Aggiungo: nel frattempo occhio a coloro che si professano "maestri di etica".

    -quack

    P.S. scusate le eventuali ripetizioni; spero che questo sia il post tombale sulla questione "brevetto MP3" e sul perché penso la scelta di Canonical sia filosoficamente ma anche pragmaticamente sbagliata.

  • Sparalink #3

    buona settimana, ne parliamo presto!

    Technorati tags: ,

  • Picchio De Sisti

    Domani (lunedì) lo faccio: gli spezzo anch'io la noce del capocollo Big Smile. In "attesa dell'allenatore del pallone 2"

    -quack

    P.S. il mio De Sisti è qualcuno che ha bruciato una settimana di lavoro di due persone. Big Smile

  • Convegno Net&System Security

    Se la sicurezza informatica vi appassiona e siete a Pisa e dintorni (con dintorni = raggio di 500 km!), non perdetevi assolutamente il V Convegno Net&System Security.

    Il programma è davvero da leccarsi i baffi.

    -quack

    Technorati tags:

  • Seattle skyline

    Turista per caso, mi son concesso diversi giorni fa qualche foto dello skyline di Seattle al crepuscolo, scattata con una piccola compatta (la Exilim Z-60 rosso Ferrari della formichina).
    Sarò pure di parte, ma mi sembra tra i più belli del mondo. A sinistra campeggia lo Space Needle, a destra in estrema lontananza si intravede la maestosità del Mount Rainer.

    SeattleSkyline

    Ci sarebbe da mostrare davvero tanto di queste parti: il main campus (per il nonno: sapevi che ora si è aggiunto "Alcatraz"?), le cascate, il Puget Sound. Per questo tanto vale una categoria apposita: "Seattle e dintorni".

    -quack

    Technorati tags:

  • Google sussidiaria di Microsoft

    MSGOOGLE

    Tempo fa, quasi un mese per l'esattezza, mi veniva riportato questo illuminante pezzo di informazione (sono masochista, lo ammetto):

    Microsoft, attraverso una sua sussidiaria, avrebbe fatto causa a Linux(*) per violazione di brevetti.

    Qualcuno l'aveva addirittura definita "SCO 2 la vendetta".

    I fatti sono questi: Acacia, la summenzionata "sussidiaria" di Microsoft, avrebbe fatto causa ad un paio di vendor Linux (Red Hat, Novell) per il brevetto sui "Virtual Desktop". Apple, che nella nuova versione di MacOS include tale tecnologia, aveva a riguardo capitolato e raggiunto un accordo extra-giudiziario (fonte).

    Il ragionamento fatto per stabilire che Acacia è sussidiaria di Microsoft è semplice. Alcuni pezzi grossi di Microsoft (tra cui Brad Brunnell, fonte) avrebbero lasciato l'azienda per andare a lavorare in Acacia giusto qualche giorno prima che Acacia intentasse causa ai vendor Linux (tra cui Novell; facilissimo immaginare il flaming seguito dal fatto che Novell avesse per di più firmato l'accordo brevettuale con MS). Quindi se il VIE (very important employee) "X" lascia di tronco l'azienda "Y" per passare all'azienda "Z", allora si può affermare con "certezza" che l'azienda "Z" è sussidiaria dell'azienda "Y".

    Sostituendo "X" con Kai-Fu Lee, "Y" con Microsoft e "Z" con Google, si ottiene appunto che "Google è sussidiaria di Microsoft", cvd.

    La realtà, come al solito, è molto diversa: le due aziende, a parte qualche VIP transfugo, non hanno niente tra cui spartirsi tant'è vero che Acacia ha fatto precedentemente causa a Microsoft per quanto riguarda SuperFetch e una non ben specifica feature di encryption (fonte, seconda fonte)

    A dirla tutta il sillogismo (?) banale in tutti i sensi ha tratto in inganno tanti Giornalisti. Molti - correttamente - hanno poi rettificato. Dopo un mese qualcuno invece ha ritenuto lasciare le cose come stanno, vuoi mettere la spettacolarità di un titolo sul genere "Microsoft contro Linux"? Alla luce delle discussioni di questi giorni mi sembrerebbe corretto un buon uso della netiquette e notificare l'autore via commento. Trattandosi di un Savonarola, tra l'altro pure precedentemente ingrato, mi auto-confesso che non mi sento in colpa se stavolta passo: per l'autore un'ennesima occasione persa per stare zitto. E scusate se sono "cattivok"!

    -quack


    (*) Ci sarebbe da notare la sottigliezza dell'uso di Linux al posto del nome dei vendor per far sembrare la cosa ancora più cattiva.

  • L'amico invisibile

    invisible_manParlando di interviste, mi è venuto in mente un altro aneddoto. Non so quanto sia leggenda e quanto sia realtà e siccome è molto buffo ma verosimile lo racconto.

    Una volta pare che sia stato "intervistato" una persona che rispondeva alle domande dopo essersi consultato con un amico invisibile. La cosa strabiliante è che le risposte fossero eccellenti: impossibile sospettare un imbroglio wireless in quanto accaduto tanto tempo fa. Ma la cosa più buffa è stato il finale della storia: ha rifiutato la proposta di lavoro perché il suo amico invisibile non era d'accordo.

    Ancora oggi, quando mi viene in mente, rido da solo come un cretino.

    -quack

    Technorati Tags:

  • Interviste moderne

    Accadde veramente, in quale punto dello spazio-tempo è poco rilevante:

    Intervistatore: mi spiegheresti come districarsi con la concurrency nel caso di una WebApp che accede ad un DB in scrittura (tipo accenni alla optimistic e pessimistic concurrency)?
    Addetto: [blateramento di 5 minuti, nessun accenno alle due strategie, una menzione del locking del codice nel middle-tier]
    Intervistatore: vabbé, io avrei fatto così (mostra un SQL UPDATE statement alla lavagna).
    Addetto: {faccia perplessa}
    Intervistatore: ok, sei familiare con gli alberi binari?
    Addetto: veramente no...
    Intervistatore: {faccia perplessa} vabbé te ne disegno uno io, scrivimi un algoritmo che fa blablabla
    Addetto: veramente non sono familiare con gli alberi binari
    Intervistatore: {faccia perplessa} vabbé passiamo alle liste linkate. Data questa lista mi scriveresti un algoritmo che fa blablabla?
    Addetto: ecco però mi manca questa informazione
    Intervistatore: ti dico che non serve, infatti potresti {suggerimento 1}
    Addetto: ecco però mi manca questa informazione (quella di prima)
    Intervistatore: ma potresti {suggerimento 2}
    Addetto: ecco però mi manca questa informazione (sempre quella di prima)
    Intervistatore: ma potresti {suggerimento 3, ormai soluzione completa}
    Addetto: si ma mi manca questa informazione (ancora quella di prima)
    Intervistatore: ma potresti {scrive l'implementazione della soluzione completa - in tutto tre righe tre di codice - alla lavagna}
    Addetto: {faccia perplessa} eh ma non so se funziona...

    -quack

  • It's alive

    Frankenstein (fonte dell'immagine)

    È finalmente stata rilasciata la versione 5.0.2 (o meglio 5.0.5428.1056) del Microsoft Application Compatibility Toolkit, mirata a risolvere alcuni piccoli ostacoli per la customer adoption (pare che il PM nel momento della presentazione delle 10 top feature della nuova versione sia stato interrotto da tre fragorosi applausi prima che arrivasse a parlare della feature numero 4).

    Motivo d'orgoglio è anche il fatto che questa versione, come un po' anche la precedente, l'ho shippata da lead visto che - dopo 9 anni - mi hanno quasi convinto a fare il grande passo; e che il codice ora giri su .Net 2.0 anziché 1.1

    Se mi capita mi farebbe piacere parlare di qualche dettaglio tecnico interessante che riguarda il C# e l'accesso ai dati o sulle pene del dev-lead (caporale) confrontate con quelle del soldato semplice: roba da geek. Purtroppo sono ancora in arretrato con le conversazioni sul TPM, ma per fortuna ho buone notizie: uno dei libri di bibliografia è in arrivo. Eureka!

    -quack

  • Lost in translation

    Ovvero: se colleghi Vista ad una macchina fotografica ti esplode il PC e ti becchi sette anni di sfiga nera.

    Innanzitutto mi scuso preventivamente con Christian se non proseguo la "discussione" sul suo blog. Chiedo scusa a chi mi legge se uso un post per fare un reply. I motivi saranno chiari fra poco. E passiamo al tema caldo della discussione.

    Nella mia pagina sulle bufale (dal nome poco fantasioso "bufale in Vista") è incluso un link ad un commento di Luca che spiega come un baco davvero di poco conto, in un codec scritto dalla Nikon, sia diventato un post intitolato "Vista distrugge le foto".

    Doxaliber giustamente si chiede perché il suo post è una bufala minimizzando:

    Alla fine la "bufala" sarebbe un titolo poco felice che però racconta un BUG che esiste(va) davvero, segnalato dalla stessa Microsoft.

    E allora visto che il senso reale del "baco" si è perso nella traduzione, da anglofono mi tocca fare un po' di luce. Il post summenzionato contiene la fonte in Inglese (Gizmodo) che recita:

    Windows Vista Destroys Photo Metadata
    A bit of bad news about Vista if you're a photographer. Apparently if you tag a photo's metadata in Vista, it destroys other important metadata used by image editing apps such as Photoshop. Microsoft's gotten reports of RAW files generated by Nikon cameras being unreadable after being tagged with Vista or Microsoft's Photo Info tool.

    What can you do? Well, Microsoft's asking camera vendors to make processing plugins for Vista that don't make images unreadable, but for the mean time we'd just recommend not updating to Vista until everything's fixed. Or just not tagging your stuff in Vista.

    Qui di sotto la traduzione "accademica" (sulla sinistra) e la versione di Doxaliber (sulla destra)

    Vista distrugge i metadati delle foto

    Una notizia un po' bruttina se siete fotografi. A quanto pare "taggare" i metadati di una foto in Vista, può causare la distruzione di metadati importanti usati da altre applicazioni come Photoshop. Microsoft ha ricevuto segnalazioni che i file RAW generati da macchine fotografiche Nikon diventano illeggibili se vengono taggati con Vista o tramite il tool Microsoft Photo Info.
    Cosa si può fare? Microsoft sta chiedendo ai produttori di plugin di sistemare il baco, ma nel frattempo vi consigliamo di non fare l'upgrade a Vista fino a quando la questione è sistemata. O per lo meno di evitare di taggare le foto con Vista.

    Vista distrugge le fotografie

    Piccola segnalazione per gli appassionati di fotografia che visitano questo sito.

    Chi usa il tool Photo Info di Vista per visualizzare una fotografia potrebbe avere brutte sorprese e non riuscire più a leggere i dati associati alla fotografia. Con le immagini di tipo RAW il rischio è che l’intero file non sia più leggibile!

    Quindi evitate di utilizzare tale programma per visualizzare le fotografie, meglio ancora, evitate di installare Vista, perché questo è solo uno dei tanti “piccoli inconvenienti” a cui andrete incontro!

    Qualcosa si è perso nella traduzione dell'articolo dall'inglese all'italiano.

    Si è perso il fatto che ad andare persi sono alcuni metadati delle foto, non le foto. Quindi "Vista distrugge i metadati delle foto" è diventato "Vista distrugge le foto". Certamente fa più paura.

    È stato tradotto il termine fotografi (che sono gli utenti più hanno a che fare con immagini RAW) con "appassionati di fotografia": sono appassionato di fotografia anche io e perciò il post fa più paura.

    È stato tradotto "taggare" - operazione attiva che richiede l'intervento dell'utente - con "visualizzare": certo che se basta visualizzare le foto per "distruggerle", la questione fa più paura. Coincidentalmente anche l'immagine allegata, che su Gizmodo raffigura appunto l'operazione di "taggamento", è stata sostituita da una immagine generica.

    Si è perso che il problema è relativo alle immagini generate con le macchinette Nikon: chiaramente se si presenta il problema come un problema che affligge tutte le macchine fotografiche, il post fa più paura.

    Si è perso il fatto che Microsoft sta lavorando con i vendor per sistemare al più presto la questione: una questione irrisolta fa più paura.

    Infine mentre l'autore consiglia di posticipare l'update a Vista o per lo meno evitare di taggare le foto, il traduttore è più drastico e avvisa: questo “piccolo inconveniente” (l'ironia del traduttore è usata per far capire che Vista ha ben altri problemi che la “semplice distruzione delle foto”) basta e avanza per stare lontani da Vista forever and ever.

    A occhio e croce la traduzione mi sembra una bufala e come tale archiviata nell'apposita pagina. Come si può vedere non è solo una questione di "titolo poco felice". È tutto il contenuto ad essere una traduzione molto approssimata con l'involontario (?) effetto super drammatico.

    Ma non è finita: Luca ha fatto ancora di più ed ha risalito la catena dei link. Per arrivare a questo documento firmato Microsoft da cui estrapolo il paragrafo interessante:

    Important note to users of the Nikon RAW Codec for Windows:  Microsoft has received reports of compatibility issues with Nikon NEF files after installing version 1.0 of Nikon’s RAW codec posted in January 2007.  Tagging the RAW files through Windows Vista or the Microsoft Photo Info tool after the codec is installed appears to cause these files to become unreadable in other applications, such as Adobe Photoshop. We have confirmed that these files can still be opened with Nikon Capture.
    Nikon and Microsoft are investigating the issue, and we will post an update when we have more information. In the meantime, Microsoft suggests that you exercise caution with your Nikon RAW files. If you plan on tagging them using Nikon’s codec, make a backup of the file first, and verify that the tagged file continues to work with your other applications before proceeding.
    Tagging the file using Photo Info without the Nikon NEF codec installed appears to be safe.

    traduzione:

    Notizia importante per gli utenti del codec Nikon RAW per Windows: Microsoft ha ricevuto segnalazioni di compatibilità con i file Nikon NEF se si installa la versione 1.0 del codec Nikon RAW pubblicata a Gennaio 2007. Taggare i file RAW tramite Windows Vista o Microsoft Photo Info sembrerebbe causare l'illeggibilità dei file in altre applicazioni come Adobe Photoshop. Possiamo confermare che i file rimangono tuttavia leggibili tramite il software Nikon Capture.

    Nikon e Microsot stanno analizzando la questione e sarà pubblicato un update quando maggiori informazioni saranno disponibili, nel frattempo Microsoft suggerisce cautela nel manipolare i file Nikon RAW. Se pensate di taggarli tramite il codec Nikon, fatene prima un backup e verificate che il file taggato continui a funzionare con le altre applicazioni prima di procedere.
    Taggare i file usando Photo Info senza installare il codec Nikon NEF sembra essere "safe".

    Come si può notare anche Gizmodo - che ha riportato la notizia di quarta mano (prima mano Microsoft, seconda mano News.com, terza mano LifeHacker) - ha calcato un po' la mano (pun intended): l'illegibilità del file in altre applicazioni, se si usa il codec Nikon, è diventata "distruggere i metadata delle foto" (in terza e seconda mano era "mangles", letteralmente "scompiglia"). Un problema molto specifico e circoscritto, come Luca aveva già notato, che riguarda le foto RAW di Nikon taggate con la versione 1.0 del codec Nikon (ad oggi è già disponibile la versione 1.0.2 in cui immagino il problema sia stato risolto) che diventano incompatibili con Photoshop è diventato - in quinta passata - "se visualizzate foto RAW con Vista, verranno irrimediabilmente distrutte".

    Ed ora passiamo al punto numero due, quello di Ubuntu e dei bachi PS/2.

    Doxaliber scrive:

    Tra l'altro se io sono "partigiano" non vedo come si possa considerare "neutrale" Paperino, che insiste sempre sugli stessi argomenti, che tra l'altro spesso non altro che "mezze verità" (ad esempio il mouse ps2 su Ubuntu non funziona a LUI, probabilmente con pochi specifici modelli e magari in virtualizzazione, non su un linux installato).

    Sul partigiano e sul neutrale ci torno dopo. Sul problema dei mouse (spiacente: non è vero che "non funziona solo a me") sono stati aperti diversi bachi/segnalazioni in bugzilla, Ubuntu Forum, RedHat forum e immagino anche altri. In questo post ne ho segnalati ben sei. Un po' tanti se il problema fosse limitato alla virtualizzazione e al mio PC, considerando che non c'è la mia mano in nessuna delle sei segnalazioni. C'è dell'altro: siccome mi interessa di più capire la questione che sconsigliare di usare Ubuntu alla prima occasione, ho fatto qualche extra e ho dedicato un intero post a come by-passare il problema (ricevendo pure un link di complimenti; spero lo siano, non capisco la lingua).

    Doxaliber si giustifica:

    Secondo me essere di parte non è limitativo, basta non perdere l'obbiettività.

    Mi dispiace ma non mi resta che osservare che - se si fanno errori così grossolani semplicemente riportando fatti - l'obbiettività s'è persa per strada, tanto tanto tempo fa.

    Sull'essere partigiano: ho già detto in varie altre occasioni che dare del fazioso a me è come dare dello Juventino a Del Piero. D'altra parte sono fazioso, antipatico e ho pure altri mille difetti: ma ciò non toglie che sulla questione io abbia ragione.

    -quack

    Technorati Tags:

  • Campi minati

    Innanzitutto un trailer, molto divertente.

    E poi una versione sadica e colorita (state avvisati, contiene linguaggio inappropriato) di campo minato.

    -Enjoy

  • Post di servizio

    Ho aggiunto anche io un plugin per ridurre lo spam basato sull'idea Hiddy (non è proprio un plugin, mi è toccato modificare il codice della piattaforma Sad)

    Se qualche commento non dovesse mai apparire, mandatemelo via mail. Prometto che non cambio più niente di funzionale Wink

    -quack

  • Payback day

    Sarò cattivok.

    Premessa: è un periodo un po' loffo che segue il ritorno dalle vacanze. Che ha raggiunto l'apice della loffaggine quando la formichina ha avuto un paio di settimane fa un incidente mortale con la FormiCarTM[1] #1: loffo ma non tragico perché il danno è stato per fortuna solo materiale e ci ha dato la possibilità di fare l'upgrade alla FormiCarTM #2 ad un prezzo di molto inferiore a quello di mercato con la complicità della dea bendata. Ed oggi, ascoltando i versi del Liga (cosa vuoi che sia? Passa tutto quanto, basta un po' di tempo e ci riderai su), quasi mi son commosso. Per fortuna è arrivato Beppe a portare un po' di buon umore! Premessa finita, un po' di sana meritata cattiveria.

    cattivik

    Sul lavoro le cose volgono finalmente per il meglio, seguirà un post più dettagliato a riguardo. Ma oggi gioisco perché la legge del contrappasso esiste e non è un'esclusiva dell'oltretomba dantesco: lo so, avevo promesso di non parlarne nel post precedente, ma alcune discussioni lette su altri blog mi hanno fatto davvero rivoltare sulla sedia dalle risate. Su tali luoghi di perdizione mi ha più che sconvolto leggere post di gente pronta a minimizzare un baco di "data loss" (a tal gente vorrei caldamente consigliare una lettura: Oh my bug!). Ho letto - incredulo e commosso - persino che la colpa è del protocollo SAMBA; a cui a questo punto c'è da aggiungere la colpa degli HDD esterni, delle chiavette USB e non per ultimo Turing stesso. Invece a quanto pare,  un'analisi delle API del File System fa sospettare anche me che siamo davanti alla piccolissima punta di un iceberg. Questo paragrafo la dice tutta:

    Cutler's system - like all systems worthy of the name - performs a lugubrious number of 'sanity checks' on operation requests. It can't allow 'cyclical' operations which would end up consuming the entire hard drive; it can't allow files and directory hives to be copied into/onto themselves; and so forth.

    Try any of that on a Windows box and Cutler tells you where to get off. But in the world of Apple there is no sanity checking whatsoever: any line of rogue code in any program written by any programmer in the world can contain a bug that hoses the entire system. And that bug can be prevalent or latent and only once in a great while manifest itself. And users can go on for the longest time blissfully unaware.

    Non posso verificare direttamente, mi piacerebbe tanto farlo, ma se fosse vero altro che baco, altro che showstopper! Ad occhio e croce mi sembra una ingenuità ben peggiore di quanto affliggeva Windows NT 4.0 pre-SP1, quando invocare una API con parametri invalidi generava un BSOD (nessuna distruzione di dati): peccato che da allora siano passati "solamente 12 anni"!
    Per non parlare poi di quanta tenerezza (sento una lacrimuccia rigare il mio viso) mi ha suscitato leggere questo commento:

    ora sposto sempre con copia, poi cancello a mano

    E a questo punto perché fidarsi del comando "copia"? Meglio aprire due editor esadecimali e copiare a mano il contenuto!!

    Evito di infierire sul fatto che qualcun altro abbia pubblicamente sostenuto che - siccome nonostante la dicitura "blocca tutte le connessioni" - il firewall lasci passare connessioni a "servizi di sistema", il baco sia nella "dicitura" e non nel firewall stesso. Come se - una richiesta di password che accettasse qualsiasi input come buono - sia un «baco nella dicitura "password"».

    Roba da cabaret, ha ragione Mary Jo.

    -quack

    Technorati Tags: ,

    P.S. domanda: ma non sarebbe stato meglio se i soldi spesi nella più stupida campagna di marketing che abbia mai visto fossero stati investiti in «software engineering»?


    [1] Nome inventato da Beppe

  • Sparalink #2

    1. Scegli il tuo slogan, di Mary Jo Foley. Molto divertente e pieno di link interessanti.
    2. Hypervisor sottili come rasoi, di Joanna. Quote:

      Well, 32MB of code is definitely not a "razor-thin" hypervisor in my opinion and it’s not even close to a thin hypervisor...

      Se Joanna pensa che si possa scrivere un hypervisor sottilissimo prevedo che prima o poi qualche rootkit serio basato sulla virtualizzazione verrà fuori.

    3. La mela coi vermi. Nessun link, non è difficile trovarne (pericoloso spostare i file, time machine che non funziona, firewall che dice di "bloccare tutto" ma non lo fa, hard disk difettosi, ecc.). Qualcuno dei soliti ha provato a minimizzare salvandosi però in calcio d'angolo.

    -quack

    1. Sparalink #1

      Finalmente il mio ISP si è assestato. Ne racconterei delle belle, ma a caval donato non si guarda in bocca... soprattutto se ha la bocca chiusa. Smilecavaldonato

      Mentre sono piacevolmente busy (leggi meno al computer del solito) per la visita di Beppe, che devo dire porta molta fortuna visto che il tempo si sta mantenendo clemente e le azioni continuano a salire quasi ogni giorno, volevo approfittare per sparare un po' di «link di riflessione»TM su alcuni argomenti:

      • L'amico del leopardo, Tre link tutti da leggere:
        Due pesi due misure, da cui quoto:
        Today will be no exception. The blogosphere will praise Leopard as the next best thing ever and use it as more proof why Vista sucks (It doesn't). Meanwhile, there will be little good said about Microsoft's colossal 2008 fiscal first quarter results. Those people acknowledging the earnings results will blame Microsoft for trying to kill Linux and babies in Africa as reasons for its success. The perception: When Microsoft competes, it cheats.
        Arroganza, da cui quoto:
        To be honest, there's really only room for mocking everybody else if you're absolutely flawless.
        Infine sull'essere flawless, una delle nuove 300 nuove features è il firewall a livello di applicazione. Heise security (thanks Luca!) ha dato un'occhiata al firewall nuovo 'fiammante' ed ha concluso:
        The Mac OS X Leopard firewall failed every test. It is not activated by default and, even when activated, it does not behave as expected. Network connections to non-authorised services can still be established and even under the most restrictive setting, "Block all incoming connections," it allows access to system services from the internet. Although the problems and peculiarities described here are not security vulnerabilities in the sense that they can be exploited to break into a Mac, Apple would be well advised to sort them out pronto. Apple is showing here a casual attitude with regard to security questions which strongly recalls that of Microsoft four years ago.
        Insomma, un firewall fiammante simile a quello di XP pre-SP2, in pieno rispetto della security by minority.
      • SPAM:
        Via Giovy ho scoperto Hiddy, plugin per wordpress che a quanto pare funziona a meraviglia. Se solo avessi il tempo di "portarlo" sulla piattaforma che uso! Ai lettori utenti di Community Server lì fuori: any help? Smile
      • TPM:
        Per il prossimo post sull'argomento sono ancora nella fase di raccolta bibliografica. Mi piace accompagnare quello che scrivo con link più diretti possibili alle fonti tecniche.

      -enjoy

    2. Beppe for USA

      Dopo nove anni (un numero magico a quanto pare) anche Beppe ha varcato la frontiera ammerigana. E ci sono pure le prove!!

      IMG_2346

      Neanche il battesimo - prima uscita in pub - è andato così male:

      IMG_2341

      MWAHAHAHAHAHAHA