A Ovest Di Paperino

Welcome to the dark side.

  • Fedex vs. UPS

    Tempo fa newegg è passata da Fedex a UPS come standard di spedizione gratuito su alcuni articoli. Nonostante entrambi i servizi sono pubblicizzati come “3 giorni garantiti” la differenza tra Fedex e UPS è abissale.

    1. per Fedex 3 giorni garantiti sono proporzionali alla distanza. Se un pacco dalla Florida a Seattle ci metterebbe 3 giorni, un pacco dalla California ce ne mette poco meno di due. Per UPS 3 giorni sono sempre tre giorni, anche se il pacco arriva da dietro l’angolo: magari lo tengono fermo un paio di giorni a destinazione pur di consegnarlo in tre giorni esatti (non sto scherzando)
    2. per Fedex il sabato è considerato giorno di consegna, per UPS no. Questo significa che se si ordina martedì 29 dicembre, si è sicuri di riceverlo entro sabato 2 gennaio. Per UPS i giorni festivi creano una massa gravitazionale che altera la durata del tempo per cui i “tre giorni” scadono il 5 gennaio (non sto scherzando)
    3. per Fedex le spedizioni in 3 giorni vengono chiamate “Express Saver”; per UPS invece si tratta di “UPS Ground”. Questo ha importanti implicazioni sul routing della posta in MS: la posta “ground” ha priorità bassissima e questo significa riceverla quasi sicuramente il giorno dopo, e se si tratta di un venerdì questo diventa automaticamente il lunedì successivo

    In molti hanno protestato ma è servito a ben poco, che vuol dire che il volume di vendita di newegg, tra i più convenienti geek-store online, non abbia avuto nessun calo significativo a seguito della protesta. Dalle mie parti, guardando i prezzi qui sotto, si direbbe che si mangia sempre per quanto si spende:

    image

    -quack

  • Scorrelazioni

    Se la correlazione di qualche giorno fa era puramente speculativa, quella tra il numero di poliziotti di Redmond/Bellevue/Kirkland in tenuta multa da pignolo e l’appropinquarsi della fine del mese e dell’anno è certa.

    Ieri ho incontrato 4 pattuglie con il laser puntato in meno di 15 minuti di tragitto. Oggi ne ho incontrate due a meno di un Km di distanza.

    Si consideri che dal punto di vista criminoso l’area in questione è praticamente pulita e tra le più grosse preoccupazioni della polizia di Bellevue sia l’impedire la sostituzione di qualche semaforo con rotonde per l’eventuale riduzione di multe.

    E si consideri che in altre zone i poliziotti vengono ammazzati come mosche con un infame record di sei poliziotti uccisi in meno di due mesi (fonte)

    crime map (fonte)

    Spero vivamente che nel 2010 la metà dei fondi destinati alle forze di polizia dei quartieri più “sereni” venga dirottata altrove, con buona pace di chi ne ha ben donde le siffatte ciufole di ricevere qualche reprimenda per motivi incredibilmente futili. Resterà un sogno e nel frattempo buon duemiladieci a tutti.

    -quack

  • Santa Fanc*lo

    Quest'anno l'auto-babbo-natale aveva deciso Angry Santadi fare un piccolo upgrade alla workstation nell'ottica di ridurre caos di fili e periferiche sulla scrivania a spazio estremamente limitato. Il monitor ideale avrebbe dovuto essere illuminato a LED, costare decentemente ed essere dotato di speaker e hub USB. Assodato che tale monitor oggi non esiste, son dovuto scendere a qualche compromesso. Ho trovato un AOC V22 con speaker, webcam e microfono integrati che in offerta aveva un prezzo davvero goloso. Unico appunto, oltre alla mancanza dell'hub USB, il fatto che tale modello non è provvisto di porta DVI ma solo HDMI. L'esperienza con il precedente in modalità HDMI non ml piaceva (a computer spento il monitor restava acceso con una bella scritta NO SIGNAL molto luminosa) e ho tentato la fortuna avendo come assicurazione le ottime policy di restituzione dei negozi locali ammerigani. E da quel punto di vista sono stato fortunato in quanto a differenza del precedente il nuovo monitor non presenta questo fastidioso difetto; pero questo era il peggio che ml aspettavo ed invece...

    ...fatti tutti i collegamenti, scopro che l'audio non ne vuole sapere di andare. Non volendo credere di essere davvero cosi sfortunato ho pensato a qualche setting del menga o a problemi di cavo. Patti tutti i test propedeutici, ho cominciato a pensare che la questione avesse a che fare con l'HDMI che supporta anche l'audio; alcuni monitor tra cui il mio danno all'audio digitale via HDMI una priorità più alta di quello più tradizionale analogico. E cosi era: ho trovato un setting della scheda NVidia che una volta disabilitato restituiva il controllo all’ingresso audio giusto, ma li è cominciato il calvario. Il setting viene apparentemente ignorato ad ogni riavvio e risveglio; decisamente insopportabile. Ho pensato di circumnavigare il problema usando un convertitore DVI->HDMI ma a quanto pare non è servito. Allora ho pensato che ci doveva essere un modo di portare l'audio sulla scheda grafica e incanalarlo via HDMI: detto fatto, ho aperto il computer (e mai avrei pensato che per installare un nuovo monitor sarei arrivato a tanto), installato cavettino in dotazione alla scheda madre, riavviato, riconfigurato e testato. Tutto funzionava, ma con una pseudo-latenza di qualche secondo sul volume del suono, ovvero se parte una canzone il volume va da zero a X in qualche secondo. Questo vuol dire che tutti i suoni più brevi di qualche secondo (notifiche di messenger, email, ecc.) sono destinati ad essere completamente muti.

    Intanto aperto il PC ho scoperto che la ventola più rumorosa era quella della scheda grafica, di gran lunga più assordante delle altre tre o quattro perennemente in funzione. Ho pensato a questo punto di installare la 7600GS raffreddata passivamente che tenevo di scorta da qualche parte e non credevo alle mie orecchie: purtroppo, seppur hackintosh compatibile, la scheda è stata “disabilitata” dall’ultimo aggiornamento di Snow Leopard e causa un Kernel Panic subito dopo il logon.

    A questo punto mi si son presentate davanti a me tre alternative, elencate in ordine di preferenza:

    1. sistemare il KP in Snow Leopard, ma non è stata trippa per gatti come me.
    2. trovare una soluzione per ridurre il delay audio via spdif. Purtroppo trovare qualcosa a riguardo è stato impossibile
    3. trovare un modo migliore per disabilitare definitivamente l’audio via HDMI

    La terza è stata quella che ha funzionato meglio. Ho trovato un tool ufficiale NVidia “garantito” ma non funzionante; alla fine sono finito in un forum che spiega come modificare una chiave del registro e far credere alla scheda grafica che il monitor non è dotato di HDMI ma solo di DVI. Ha funzionato!

    Prima della modifica:

    hdmi_before

    Dopo la modifica:

    AOCV22

    Unico aspetto negativo, il rumore della ventola. In cerca di una soluzione ho scoperto l’esistenza di schede el cheapo 8400GS raffreddate passivamente e coincidenza astrale avevo una 8400GS 1x con ventola come scheda di scorta in ufficio: giusto quello che mi serviva per testare la compatibilità e procedere con l’acquisto.

    Ovviamente Murphy da lassù ha fatto in modo che neanche il downgrade più semplice del mondo filasse liscio: la chiave di registro interessata, dopo la reinstallazione dei driver, è finita in un “folder” diverso, ma è bastata una mezz’oretta per individuarla e portare a casa capra e cavoli.

    Ricapitolando: un tizio compra un monitor e si trova a dover manovrare con tool di origine sconosciuta e modifiche nel registry, tutto questo per la non curanza di NVidia nel scrivere driver che funzionano. Come da titolo!

    -quack

    P.S. l’avventura è risultata estremamente educativa e mi ha permesso di ricablare l’uscita audio analogica anche sul mediacenter, cosa che desideravo fare da ere geologiche ma che mai avrei avuto così tanto tempo da dedicarci!

  • Correlazioni

    Senza fare dietrologia o cospirazionismo, secondo voi c’è correlazione tra gli episodi pseudo-terroristici di questi ultimi giorni e questo interessante articolo pubblicato l’anno scorso sull’Atlantic?

    Tra l’altro – posso garantire personalmente – che partire per gli USA da Amsterdam è una tremenda rottura di zebedei di security.

    Teoria cospirazionistica: qualcuno potrebbe avere interesse a vendere body scanner da un milione di dollari a pezzo e l’immagine del terrorista imbranato che si fa saltare i genitali mi sembra più comica che tragica. Un po’ come quella barzelletta che girava per email non molto tempo fa.

    -quack

  • Buone feste 2009

    path4948 Lettura consigliata se proprio qualcuno non si ritrova niente da fare…….

    Rock, Paper, Scissors: Game Theory in Everyday Life

    -quack

  • Scherzi da perfidus

    Puntate precedenti: scherzi da cracher e scherzi da accher.

    Da quando ho cambiato capo non è più come prima. Lo stile da carogna mi manca un po’ e non ci ho pensato due volte quando ho visto questa chiavetta USB recensita da qualche parte:

    perfidus

    Trattasi di una Phantom Keystroker 2. Interessante l’avvertenza d’uso sul sito:

    The Phantom Keystroker never hits the return key and it never clicks the mouse button. However you should not use it on anyone's system who is doing critical work where disruption could cause serious consequences. The Phantom Keystroker is a joke, like any joke you need to use prudence and judgement when executing it. You have been warned!

    Non so se il lavoro del mio ex-capo possa essere considerato critico, ma spero che la dongle mi arrivi prima del 2010 o prima che Ballmer venga licenziato. Girano certe voci

    -quack

  • L’Heisenbug perfetto

    Pochi giorni fa mi sono riscontrato nel cosidetto Heisenbug perfetto. Di solito gli Heisenbug hanno a che fare con il multi-threading circostanza per cui aggiungere qualche breakpoint al codice sfasa il timing dell’applicazione e per tanto potrebbe causare la scomparsa di un baco sotto osservazione. Nel mio caso non c’era nessun multithreading, ma bastava semplicemente “osservare” il comportamento dell’oggetto misterioso per deviarne il flusso di esecuzione. Ridotto al minimo l’Heisenbug è descritto qui sotto:

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

     

    namespace Heisenbug

    {

        class MyClass

        {

            bool here;

            public override string ToString()

            {

                string result = here.ToString();

                this.here = true;

                return result;

            }

     

            public MyClass()

            {

                this.here = false;

                // put a breakpoint on the following line

                // and add 'this' to the watch window and

                // then execute

                Console.WriteLine(this.ToString());

            }

        }

     

        class Program

        {

            static void Main(string[] args)

            {

                MyClass c = new MyClass();

                Console.WriteLine(c.ToString());

            }

        }

    }

    Normalmente l’applicazione scrive False-True sulla console. Se invece si aggiunge un breakpoint nella riga del costruttore indicata e si osserva appunto l’oggetto appena instanziato il risultato diventa True-True. La cosa non è stata banale da individuare perché il tutto era offuscato da qualche altro centinaio di righe di codice e parlandone con il collega pazzo con la capigliatura più caotica della mia ne è nata una questione filosofica: ma il debugger può permettersi davvero di invocare metodi mentre un oggetto è ancora in costruzione? Girerò la domanda a quelli del team di Visual Studio per sapere se il comportamento è documentato (prescritto) da qualche parte.

    -quack

    Update:

    image

    Dalla regia mi suggeriscono che questo comportamento può essere disabilitato ed il valore di default in effetti makes sense.

    VS – Developer 1-0 e palla al centro

  • Fryday

    Il Venerdì è considerato il giorno di Fry’s (vedasi) in quanto il negozio in questione pubblica sul giornale locale 4 pagine di offerte in genere tra il mediocre e l’eccezionale. Un esempio di offerta eccezionale era l’SSD Patriot da 32GB a 89$ con 30$ di rebates (in pratica 70$); oltre a questo gli annunci del Venerdì hanno un’altra interessante peculiarità e cioé che sono validi per un’intera settimana a differenza delle 24-48-72h delle inserzioni “normali”.

    La cosa buffa è che il giornale locale, dopo un esperimento durato pochi mesi, ha deciso di togliere le inserzioni pubblicitarie dalle pagine online nascondendosi dietro l’idiozia di voler vendere più abbonamenti. Nessuno ha mai capito chi è stato il genio dietro tale trovata, ma questo non ha mai fermato l’opera di uno stuolo di volontari che dietro compenso di Google Ads scannerizza, classifica e pubblica le pagine del Venerdì su un sito dedicato chiamato appunto Fry’s Electronic Ads.

    Un evento con probabilità non nulla è quello di scoprire che abbiano deciso di mettere in offerta un prodotto in vendita il Venerdì precedente a prezzo pieno, nel qual caso si è in presenza di un Black Fryday. Data la mia proverbiale sfiga, nomen omen, questa settimana tra rebate e sconto alla cassa hanno deciso di dimezzare il prezzo dello stesso switch KVM che ho comprato domenica scorsa. Teoricamente, data la loro politica, potrei restituire il prodotto e ricomprarlo o semplicemente presentarmi alla cassa per ricevere indietro almeno la quantità di sconto esclusa di rebate. Praticamente in alcuni casi come il mio non ne vale assolutamente la pena. A meno che…

    -quack

  • Tor exit node lookup in ASP.Net

    Potrebbe tornare utile a qualcun altro:

    using System.Web;

    using System.Net;

     

    namespace TorHelper

    {

        public class TorHelper

        {

            const string TOR_EXIT_IP = "127.0.0.2";

     

            private static string ResolveName(string name)

            {

                string ip = (string) HttpContext.Current.Cache[name];

                if (ip == null)

                {

                    ip = ResolveDNS(name);

                    HttpContext.Current.Cache[name] = ip;

                }

                return ip;

            }

     

            private static string ResolveDNS(string name)

            {

                try

                {

                    IPHostEntry host = Dns.GetHostEntry(name);

                    if (host.AddressList.Length == 0)

                    {

                        // this should never happen

                        // but throwing an exception is expensive.

                        return null;

                    }

                    return host.AddressList[0].ToString();

                }

                catch(SocketException)

                {

                    // this can happen when the DNS doesn't get resolve

                    // and it actually happens for all IP addresses
                    // that are
    not part of the TOR exit list

                    return String.Empty;

                }

            }

     

            public static bool IsTorExitNode(string ipAddress)

            {

     

                try

                {

                    string torExitEntry = String.Format(

                       "{0}.{1}.{2}.ip-port.exitlist.torproject.org",

                        ReverseIPOctet(ipAddress),

                       "80",

                        // Domain name is the running

                        // ASP.Net webSite

                        ReverseIPOctet(ResolveName(DomainName)) );

     

                    if (ResolveName(torExitEntry) == TOR_EXIT_IP)

                    {

                        return true;

                    }

                }

                catch (Exception e)

                {

                    // log the error

                }

     

                return false;

            }

     

            private static string ReverseIPOctet(string ipAddress)

            {

                string[] octets = ipAddress.Split('.');

                return String.Format("{3}.{2}.{1}.{0}",

                   octets[0],
                   octets[1],
                   octets[2],
                   octets[3]);

            }

     

        }

    }

    Su questo blog i commenti lasciati via Tor finiscono in coda di moderazione insieme a quelli che partono da una subnet ban list. Ed ora il giochino si fa più interessante.

    -quack

    P.S. il pezzo di codice di cui sopra è rilasciato al pubblico dominio con la licenza SQLite:

    May you do good and not evil
    May you find forgiveness for yourself and forgive others
    May you share freely, never taking more than you give.

  • Licenze

    Non pensavo mi sarebbe mai capitato di imbattermi in una licenza peggiore di quella GPL3 (*) ma invece...

    Parto dal presupposto che una possibile suddivisione del software sia quella di software per sviluppo vs. software per “utenti finali”, ove per software di sviluppo si intende tutta quella caterva di applicazioni che servono a generare altro software.

    Il software per “utenti finali” di solito ha licenze normali: nessuno si sognerebbe di non consentire all’utente di un Word Processor di stampare o di salvare i file (eccezione: il software shareware/trialware).

    Nel mondo dei programmatori invece esiste il concetto di “licenza per sviluppatore” anziché utente: la differenza è subdola ma in alcuni casi diabolica. Supponiamo che il tool sia un compilatore a riga di comando: se Pinco e Pallino scrivono codice, ma è solo Pallino ad usare il tool per compilare, Pinco potrebbe violare la licenza di [non]-uso. Sembra un paradosso ma mi sono imbattuto in una libreria (which shall remain nameless) “royalties free” ma licenziata “per sviluppatore” e che per sviluppatore si intendeva chiunque modificasse l’applicazione. Alla mia richiesta di delucidazioni su cosa significasse “sviluppatore di applicazione” nel contesto royalties free mi hanno risposto seccati chiedendomi se stessi cercando di circumnavigare la licenza; ho chiarito che non mi interessava circumnavigarla ma capire se fosse possibile che “non-sviluppatori” della mia applicazione potessero scriverne template o plugin o se invece tali interventi facessero figurare gli utenti finali come “sviluppatori della mia applicazione”.

    La risposta: il silenzio. Contenti loro…

    licenza

    (l’immagine è rubata da un post a tema di Coding Horror)

    -duh

    (*) ovviamente il metro di paragone è basato sul mio gusto personale.

  • Chiavetta USB multi boot per Windows

    Antefatto: ho deciso di fare l’upgrade a Windows 7 del mediacenter allettato dalla possibilità di installare un sintonizzatore CableCard e guardare anche qualche canale criptato. Avevo preso in considerazione anche di sostituire l’architettura attuale con un Atom per il surriscaldamento estivo e conseguente rumore di ventolame, ma poi ho pensato che i canali criptati hanno bisogno di una CPU robusta per poter essere fruibili normalmente. Ho deciso di visitare Fry’s per approfittare di due offerte “1 day only”: un sistema di raffreddamento liquido Corsair dal prezzo contenuto (56$) e con ottime review e un HD SSD da 32GB grande abbastanza per Windows 7 senza fronzoli ad un prezzo altrettanto decente (50$ dopo rebate), interessante non tanto per le prestazioni ma per il minor apporto di energia cinetica/termica/sonora nel sistema.

    L’HD è risultato probabilmente difettoso, in quanto è scomparso completamente dal radar nel mezzo dell’installazione dell’OS; il sistema di raffreddamento invece era abbastanza ingombrante per il case living room friendly della terza versione del mediacenter. È dovuto scattare il cosiddetto pellegrinaggio di ritorno per la restituzione del radiatorone e la sostituzione dell’HD. Ho approfittato per cercare una chiavetta da 4GB da rendere bootabile e verificare alcune teorie sulla lentezza di installazione di Windows su certi sistemi, ma quel giorno era in offerta irrifiutabile venticinquedollaripiùtasse una chiavetta da 16GB. Ho pensato: qualcuno si sarà già posto il problema di creare una chiavetta multiboot (x86, AMD64, se rver, client, ecc.) e che sarebbe tornata molto comoda al posto delle solite 3-4 chiavette per tutti gli OS. Per il raffreddamento ho trovato una soluzione molto più pratica e decisamente meno costosa.

    Tornando in topic: è stato un bagno di sangue ma alla fine ce l’ho fatta. In sintesi: bisogna creare più di una partizione usando uno di quei tool che flippa il “removable bit” e ingegnarsi con qualche bootloader abbastanza avanzato da starci nel Master Boot Record ed essere al tempo stesso in grado di giocare al gioco delle tre carte con le partizioni create.

    In dettaglio, anche per mia futura memoria, i passi seguiti.

    Ingredienti:

    Passi, da seguire in ordine religioso:

    1. Installare GRUB sull’MBR della chiavetta usando il GUI installer; la procedura è indicata in dettaglio nella sezione uno di questa guida (in inglese).
    2. Flippare il media bit usando il tool della Lexar (funziona anche su chiavette di marca diversa); rimuovere e reinserire la chiavetta
      Lexar-Flip-Removable-Bit
    3. Creare due o più partizioni a seconda del numero di OS da rendere installabili; nel mio caso 3 (WHS, Win7 x86/64) più una per i dati. La prima partizione va formattata come FAT o FAT32 mentre per le altre si può scegliere anche NTFS
    4. copiare il contenuto dei dischi di installazione su ogni partizione
    5. creare un file di testo con il “nome” della partizione in ogni partizione (es.: WHS.txt; Win7x86.txt; ecc.)
    6. copiare il file grldr nel root folder della prima partizione
    7. creare un file di testo con il nome di menu.lst nel root folder della prima partizione e editarlo usando questo template:

    title Windows Home Server
    find --set-root /win7x86.txt
    hide()
    […]
    find --set-root /WHS.txt
    unhide ()
    chainloader /bootmgr

    title Windows 7 x86
    find --set-root /WHS.txt
    hide ()
    […]
    find --set-root /win7x86.txt
    unhide ()
    chainloader /bootmgr

    In pratica: ogni voce di menu si occupa di nascondere tutte le partizioni non interessanti usando i tag file nel punto 5. e di rendere disponibile solo quella da cui fare il boot, che viene settato con il comando chainloader.

    L’installazione è stata avviata con successo per tutti i tre OS sul mio laptop e perciò, come sempre in questi casi è garantita:

    works-on-my-machine-starburst

    -quack

  • Tic-tac tic-tac…

    Come disse il Sinofsky, tic-tacuna volta che si “annuncia” una data, si è già in ritardo.

    Siòre e siòri, Windows 8 sarà “rilasciato” nel 2012. E se ritarda di più di qualche mese, chissenefrega, Giacobbo ha detto che la fine del mondo è prevista per Dicembre dello stesso anno.

    Esempio bonus tratto da “The Old New Thing” blog.

    La roadmap è pubblicata.

    Tic tac tic tac tic tac…

    -quack

  • Grandi Magazzini

    image

     

    Apple gets the opposite of what they intended: the version of an app currently available in the App Store tends to be an old and buggy one. One developer told me:

    As a result of their process, the App Store is full of half-baked applications. I make a new version almost every day that I release to beta users. The version on the App Store feels old and crappy. I'm sure that a lot of developers feel this way: One emotion is "I'm not really proud about what's in the App Store", and it's combined with the emotion "Really, it's Apple's fault."

    Another wrote:

    I believe that they think their approval process helps users by ensuring quality. In reality, bugs like ours get through all the time and then it can take 4-8 weeks to get that bug fix approved, leaving users to think that iPhone apps sometimes just don't work. Worse for Apple, these apps work just fine on other platforms that have immediate approval processes.

    […]

    I just bought a new 27" iMac a couple days ago. It's fabulous. The screen's too shiny, and the disk is surprisingly loud, but it's so beautiful that you can't make yourself care.
    So I bought it, but I bought it, for the first time, with misgivings. I felt the way I'd feel buying something made in a country with a bad human rights record. That was new. In the past when I bought things from Apple it was an unalloyed pleasure. […] They make such great stuff, but they're such assholes. Do I really want to support this company?

    (fonte, lo stesso Paul Graham che predicava l’avvento dei Mac)

    Se avessi Paul di fronte chiederei che cos’hanno di favoloso questi monitor da tenere i clienti in posizione supina.

    Alcuni developer rispettabili hanno cominciato a snobbare l’Apple Store.

    Schiller non la pensa ovviamente così: gli utenti sono a quanto pare contenti di usare applicazioni più bacate della media.

    Intanto posso definitivamente escludere l’X10 dalla lista dei telefoni interessanti; una rete intasata come quella di AT&T è davvero poco interessante.

    A questo punto rimane solo l’Acer Liquid MIA e qualche speranza nell’arrivo del Google Phone.

    -quack

  • Tre letture interessanti e due vincitori

    Il salto della quaglia. Don Dodge, 90 minuti dopo essere stato licenziato da Microsoft, viene assunto da google: questo post del fake Steve Jobs riassume in maniera eccellente il Dodge-pensiero. Qualcuno si diceva dispiaciuto per il fatto di aver perso un personaggio così, questo ovviamente prima del post di Don Dodge.

    Don dice che adora Android ma che prima non poteva dirlo. Le altre due letture interessanti riguardano un raffronto tra Android e iPhone e sono entrambe dello stesso tono. Sono le stesse considerazioni che ho fatto in privato con un collega che ha lavorato a versioni precedenti di Windows Mobile e che ora non si vergogna di andare in giro con un iPhone.

    Android's rapid growth has some developers worried
    The problem with iPhone killers

    Aggiungo un mio pensiero bonsai: quando è stato rilasciato il G1 l’hardware su cui girava Android era di fatto superiore al migliore iPhone disponibile e permetteva la creazione di applicazioni “interessanti” non disponibili su iPhone. A dodici mesi dal rilascio viene messo sul mercato un dispositivo nuovo al giorno basato su Android ma nessuno di questi, dal punto di vista dello schermo e del processore, compete veramente con l’iPhone. Se la musica non cambia radicalmente in pochi mesi le piattaforme concorrenti diventeranno sistemi di nicchia come lo sono OSX e Linux nel mercato desktop. Se Apple decide di lasciar perdere l’esclusiva con AT&T sul mercato americano, viste le prove generali negli altri paesi europei, per la concorrenza potrebbe essere il colpo di grazia.

    I Vincitori dello sConcorso:

    Al primo posto Vik, con il suo tema paper-desktop a cui va una copia di Windows 7 Ultimate
    Al secondo posto NickelGreen, a cui va una copia di Windows 7 Professional

    Bravi entrambi, ora mandatemi se possibile i PSD/CSS.
    Vi contatterò in privato non appena mi procuro i due premi, cosa che in questi ultimi giorni sembra essere più ardua del previsto (sold out la settimana scorsa, pochi minuti prima che raggiungessi il negozio; quando la sfiga si accanisce…)

    -quack

  • Istruzioni di non-uso per Windows 7

    È caldamente sconsigliato usare un portatile con Windows 7 come paracadute; nonostante le varie migliorie nel “settore” sicurezza, Windows 7 non può essere equiparato a dispositivi salva-vita come e non limitato a salvagenti, paracaduti, airbag, cinture di sicurezza, preservativi, mascherine anti-batteriche.

    È caldamente sconsigliato approfittare delle nuove caratteristiche di stabilità di Windows 7: per quanto se ne dica (bene) in giro Windows 7 non è resiliente a terremoti, intemperie, immersioni, martellate e forti stress di tipo chimico, fisico, elettrico o meccanico.

    mlss_luigi-hammer

    Sembra strano dover fare certe raccomandazioni, ma a leggere certe disinformazioni in giro non credo di esagerare. Ovviamente le disinformazioni di Sophos sono state subito riprese e ripubblicate con una certa enfasi dai siti disinformati di tutti il mondo: il sotto testo è sempre lo stesso, “io ho un mac e non ho di questi problemi”.

    A proposito di mela: tempo fa ho comprato Snow Leopard dal negozio fantascientifico con tanto di ricevuta via email. Senza chiedermi il permesso hanno deciso di aggiungermi alla loro mailing list di novità; dopo essermi cancellato hanno deciso che sono comunque interessato alle loro novità e continuano a spammarmi. Un po’ come succede per la nuova mirabolante versione di iTunes: vuoi abilitare l’autorun? No?? Allora te lo abilitiamo lo stesso in una maniera o un’altra buttando nel cesso anni e anni di evoluzione in termini di sicurezza. Un consiglio spassionato anche se inutile per chi mi segue: non comprate prodotti che richiedono software fogna per funzionare.

    -quack

  • Topolinia

    Il mouse secondo MS:

    MsMouse

    • carino
    • ergonomico
    • compatto
    • funzionale

    Il mouse secondo Apple:

    AppleMouse

    Il mouse secondo Open Office:

    OoMouse

    • 18 programmable mouse buttons with double-click functionality
    • Three different button modes: Key, Keypress, and Macro
    • 512k of flash memory, 63 on-mouse application profiles with hardware, software, and autoswitching capability, 1024-character macro support.
    • ….
    • Adjustable resolution from 400 to 1,600 CPI
    • Windows Toolbar Functionality (W.T.F.!)

    Giuro che appena l’ho visto mi è venuto in mente il Tron-maggiordomo.

    -quack

  • I miei guai con Windows 7

    In realtà non si tratta di guai con l’OS in sé per sé ma mi sembrava male non continuare la saga cominciata con i miei guai con il Dell (*) (nonno-copyright). Sono problemi che sto riscontrando solamente sulla workstation e molto probabilmente più a causa dell’arcana combinazione di HW/SW installato che di altro.

    1. Messenger Crash. Se messenger è impostato per l’avvio automatico al logon, in un buon 80% dei casi va in crash (access violation) immediatamente. Il mio sospetto è che il logon sia così veloce che non tutti le dipendenze sono caricate nell’ordine testato. Workaround temporaneo: evitare il caricamento automatico di messenger
    2. La SD card di Android si “smonta” immediatamente dopo la conferma. Sono in diversi a riportare questo problema che credo sia dovuto alla combinazione astrale “build del tabaccaio” + Workstation; sul laptop funziona tutto bene e prima della build taroccata sembrava funzionare alla perfezione. Workaround definitivo: aFile per Android, che crea un server WebDAV che funziona benino e mi permette di fare l’upload/download via WiFi. Sinceramente il workaround è meglio del problema e sfido i possessori di iPhone a fare altrettanto (please, non invidiatemi ) fixed con la nuova versione della build taroccata made in tobacco.
    3. Explorer freeza per circa un minuto se si clicca il tasto destro in un folder di rete: sembrerebbe un problema del menù di Mercurial; disabilitandolo tutto funziona come prima, ma per ora uso il condizionale in mancanza di controprova…
    4. Durante un risveglio mi son beccato questo errore atroce:
      The platform firmware has corrupted memory across the previous system power transition.  Please check for updated firmware for your system.
      Praticamente il BIOS ha corrotto la memoria durante l’accensione o lo spegnimento. Evento molto più unico, che raro…

    Altri guai a seguire (forse?)

    -quack

    (*) tutti scomparsi con l’installazione di Windows 7.

  • Perché Steve Ballmer non è Bill Gates

    Il 13 Gennaio 2000 Bill Gates lasciò le redini dell’azienda a Steve Ballmer.

    Il 13 Gennaio 2000, alla chiusura del mercato, le azioni MS valevano $53.905; i giorni successivi i mercati hanno preso la notizia come buona e le azioni raggiungevano, il 18 Gennaio, il valore di $57.655. Il massimo storico è stato $59.56, il 27 Dicembre 1999.

    Quasi dieci anni di carriera, e…

    grafico

    (nel momento in cui scrivo valgono $28.46, magra consolazione)

    Daniel Lyons, il famosissimo fake Steve Jobs, trae qualche conclusione in un articolo intitolato “The Lost Decade”.

    Bill Gates vs Steve Ballmer. Certo la MS di Bill Gates era quella “aggressiva”, che ancora attrae le antipatie di tanti a dieci anni e passa dalle violazioni (o presunte) più eclatanti. Però…

    -quack

  • Grandi manovre

    Oggi impacchetto l’arredamento del mio ufficio in una decina di scatole, è in atto “la reorg”. Un numero non precisato di uffici vera rimescolato: da un piano ad un altro, da un building all’altro e così via; si narra sia il più grande rimescolamento della storia di questa corporation, più del doppio del secondo in termini di grandezza. Per questo motivo, a partire da Venerdì p.v. sarò a casa per un’intera settimana. Di rimescole ne ho sopravissute tante, all’inizio della mia carriera era un continuo muoversi da un building all’altro: 24-10-8-4-42-35-26 e un paio di altri building di cui ora non mi sovviene ma questa sembra la più delicata. Il mio ufficio per questo “girone” verrà spostato nell’altra sotto-ala della stessa ala dello stesso building e siederò di fianco al mio mentor che per fortuna mi ha lasciato una caterva di libri da leggere per diventare produttivo in men che non si dica. Grandi Manovre

    In quanto allo Sconcorso do il via all’invio dei temi, che devono arrivarmi entro la mezzanotte italiana del 15 Novembre. Chi vuole può chiedere suggerimenti e fare modifiche anche all’ultimo momento, l’importante è che siano finalizzate entro la scadenza. Si possono inviare i temi in tanti modi: il più consigliato è hostarlo da qualche parte e mandare un link tramite commento o via email, ma in generale tutto fa brodo. Ai vincitori verrà richiesto il file con tutti i layer (Photoshop o Paint.Net) in modo tale che possa modificare qualche aspetto: il diavolo è nei CSS-dettagli. In bocca al lupo a tutti, anche ai miei pacchi…

    -quack

  • Installare un server Mercurial su WHS

    Dopo l’upgrade del serverozzo ho dovuto reinstallare il server Mercurial. Ho deciso di farlo da zero per segnarmi tutti i passi nel caso debba rifarlo su un altro (virtual) PC.

    La procedura che ho usato è quella indicata in questo post che spiega come installare e configurare Python, dove prelevare i file e come configurare IIS in modo tale che il server sia accessibile via HTTP.

    Dopo di che ci sono da notare un paio di cose: con la versione 1.3.1 di Mercurial va usata la versione 2.5.x di Python in quanto alcuni file binari sono compilati(*) con tale versione ed incompatibili con le successive.

    La seconda cosa importante da notare è il fatto che il client mercurial per Windows supporta solo la basic authentication, per cui la coppia utente/password viaggia in rete in chiaro. Per i paranoici ci sono due possibili soluzioni:

    1. creare un utente ad hoc su WHS solo per Mercurial
    2. installare un certificato SSL

    Io, avendo anche un’utenza DynDNS, ho voluto intraprendere la seconda strada. Se non ci si vuole procurare un certificato ufficiale che di solito costa un certo ammontare di $$ l’anno, si può usare un tool chiamato SelfSSL e che serve a generare un certificato SSL auto-certificante; il certificato va poi esportato su due file, uno contenente anche la chiave privata per future reinstallazioni del server, uno da installare su tutti i client in modo da evitare l’errore di “trusted root certificate authority” non riconosciuta.

    Allego un paio di schermate come promemoria di dove sono tutti i setting da cambiare:

    IIS management, right click sulle proprietà del sito, tab Directory Security:

    image

    Edit su Authentication and access control per abilitare la Basic Authentication e disabilitare l’accesso anonimo:

    image

    Cliccando “View Certificate” per esportare il certificato:

    image

    Il checkin completo di una nuova feature ha garantito che il tutto funziona a dovere come dovrebbe

    -quack

    (*) whatever it means.