Baco solitario

Jul 7, 2009 - 0 comments - Archiviato in: #Cazzate #Windows

Le voci di corridoio online dicono che tra qualche giorno Windows 7 potrebbe essere rilasciato Urbis et Orbis in versione gold. Le voci ufficiali (seconda metà di Luglio) sono in linea con quelle di corridoio.

Gli ultimi giorni del rilascio non sono più come quelli di una volta a causa dell'evoluzione dei processi di sviluppo: il rilascio di Windows NT 3.1 seguì una vera e propria Death March, meglio ancora Death Marathon. L'aria che si respira nel building 26 (e 37) sembra invece surrealmente silenziosa. Ma tecnicamente cosa succede? Lo raccontano Larry Ostermann e Raymond Chen in queste tre storie:

  1. Last Checkin Chicken
  2. Losing the game of the Last Checkin Chicken
  3. Thinking about the Last Checkin Chicken

In Vista l'ultimo checkin spettò allo stack audio. Ma neanche questo bachino scherzava assolutamente. Stavolta sono io che ho trovato un baco, sempre nello stack audio, col mio netbook solamente pochi giorni fa. Un po' di analisi e la risposta è stata: There is an audio driver on WU that will fix this issue. Peccato! Ahem... volevo dire Great!

-quack

P.S. il post è stato scritto con il Blogoo Editor Online nuovo di zecca. La Beta sta arrivando.

Neologismi

Jul 6, 2009 - 0 comments - Archiviato in: #Cazzate

Altra storia ripescata dal repertorio scolastico, questa volta attingendo dagli anni del liceo.

Avevamo un professore di filosofia alquanto precisino e a tratti un po’ cattivo che si chiamava Don Luigi in quanto sacerdote part-time. Un giorno gli è toccata una supplenza per la quinta ora d’italiano. Di solito le supplenze, in quanto gestite da professori di altri corsi, erano considerate da sempre tempo semi-ricreativo. abbacalamentoUna supplenza alla quinta ora doveva esserlo ancor di più. Invece il prof aveva tutta l’aria di approfittarne e partire con una lezione extra rispetto a quella impartita durante la prima ora, ma ciò sollevò immediatamente un coro di proteste. Il professore questionò: ma figliuoli volete passare quest’ultima ora con le bocche aperte come fulminati da abbaccalamento da foto scultura? Mimando con il volto la posa della foto. La classe scoppiò in una fragorosa risata e ci si accordò per 20 minuti di lezione extra ed i rimanenti di free time.

L’abbaccalamento è descrivibile come quella sensazione a metà tra estasi e sorpresa di fronte ad un risultato (semi) inaspettato. Mi succede quando, scopiazzando tecniche di video-editing made in Hollywood sul filmino della comunione, si scopre che l’effetto calza come un guanto. O quando la combinazione di JavaScript + CSS + HTML funziona quasi come un WinForm. L’abbaccalamento purtroppo richiede più di qualche minuto per essere smaltito ed ha effetti negativi sulla produttività immediata ma molto positivi su quella a lungo termine. Il mio abbaccalamento è di solito accompagnato dall’espressione barese intraducibile Mò cè jè!

~quack

Regex & Lambda

Jul 2, 2009 - 0 comments - Archiviato in: #Codice

Prima della cura:

private static string FormatLinks(string input, bool insideLink)

{

    MatchCollection matches = inlineUrls.Matches(input);

    if (matches.Count == 0)

    {

        return input;

    }

 

    StringBuilder sb = new StringBuilder(input.Length * 2);

 

    int inputIndex = 0;

    foreach (Match tag in matches)

    {

        // add the normal text between the
        // current index and the index of the current tag

        if (inputIndex < tag.Index)

        {

            sb.Append(input.Substring(inputIndex, tag.Index - inputIndex));

        }

 

        string url = tag.Value;

 

        sb.AppendFormat(insideLink ? "{1}" :
         "<a target='blank' href='{0}'>{1}</a>", url,
         HtmlHelper.ReduceUrlLength(url, maxUrlLength));

        inputIndex = tag.Index + tag.Length;

    }

 

    // add remainder

    if (inputIndex < input.Length)

    {

        sb.Append(input.Substring(inputIndex));

    }

 

    return sb.ToString();

}

Dopo la cura

private static string FormatLinks(string input, bool insideLink)

{

    return inlineUrls.Replace(input, m =>

        {

 

            return String.Format(insideLink ?
           "{1}" : "<a target='blank' href='{0}'>{1}</a>",
             m.Value,
            HtmlHelper.ReduceUrlLength(m.Value, maxUrlLength));

        }

    );

}

Interessante anche il fatto che, sebbene normalmente le lambda siano meno leggibili, nel caso specifico la riduzione di codice ridondante rende l’intenzione più evidente.

-quack

P.S. è un periodo in cui sniffo RegEx da mattina a sera; dienticavo: grazie all’enorme lavoro di refactoring i link nella nuvoletta sono ora cliccabili, per la gioia di Dovella

Anti-pattern: pausa caffè

Jul 2, 2009 - 0 comments - Archiviato in: #Cazzate #Codice

Durante i miei trascorsi universitari ho potuto notare che le “materie” che mi hanno arricchito di più sono sempre state quelle più orientate alla teoria che alla pratica. La cosa si è rivelata lampante durante la preparazione dell’esame di “Sistemi II” che richiedeva la presentazione di un caso di studio dall’analisi al codice finale. L’esame ha avuto risvolti tragicomici così eclatanti che sebbene abbia difficoltà a ricordare la data della seduta di laurea, non ho alcuna difficoltà a ricordare quel maledetto 28 Maggio 1993. Da allora ho sempre guardato con occhio estremamente critico a tutto quanto recepito durante quel corso e mi son ritrovato più che spesso a fare cose e riflettere: “quanto aveva torto quel professorone”. Insomma, la mia è diventata una vera e propria malattia, per fortuna ne sono conscio e penso di essere in via di superamento del trauma. Un episodio però mi ha colpito in maniera positiva ed è ritornato alla mente ieri. Assistevo all’esposizione di un collega (quanto ci piaceva appellarci così) e al fatto che volesse difendere l’implementazione estremamente criptica quanto esageratamente performante di un pezzo di codice. Implementazione anche molto curata rispetto a quasi tutto il resto del lavoro. Al che il professorone esordisce: “immagino che questo pezzo di codice per essere così intenso debba essere fondamentale…”. Il malcapitato però ammette che si trattava di un pezzo di codice non critico al funzionamento dell’applicazione sul modello di “codice di rigenerazione degli indici” che fa tanto figo a pronunciare ma poco utile alla prova dell’atto pratico, tant’è che “il cliente è supposto di rigenerare gli indici al massimo una volta al giorno per garantire prestazioni adeguate all’uso normale dell’applicazione”. Fu lì, durante la seduta d’esame, che il professorone espose l’anti-pattern della pausa caffè (nome ‘inventato’ da me in quanto la Gang of Four ha pubblicato il mitico lavoro solo nel 1995). Il professorone sosteneva che pezzi di codice lento e scarsamente ottimizzato, se accoppiati con funzionalità di uso molto raro in applicazioni di carattere produttivo (leggasi: destinate agli uffici), sono fondamentali per la soddisfazione dei clienti che – nei momenti più noiosi della giornata – possono giocare la carta “lancio la rigenerazione degli indici e vado a fare un caffè”. Il professorone faceva altresì notare che il fatto che tale funzionalità sia non-fondamentale all’uso della applicazione è conditio sine qua non per l’introduzione dell’anti-pattern. Se un pezzo di codice di uso molto frequente richiedesse lunghe pause caffè si avrebbe l’effetto collaterale di produrre clienti impazienti, insoddisfatti o magari epilettici. Osservazioni come queste meritano un solo tipo di aggettivo: geniali.

A questa storia sono così affezionato che la riciclo spesso quando vedo qualche collega combattere con l’ottimizzazione esagerata di pezzi di codice di scarsa utilità. Cosa buffa ieri, mentre ero in preda ad un piccolo attacco di insonnia che mi ostinavo a combattere con un po’ di refactoring domino (*), mi sono accorto che stavo facendomi pippe mentali davanti ad un pezzo di codice perfetto o quasi per l’anti-pattern pausa caffè generalizzato. È stato un lampo e pienamente soddisfatto della scelta “strategica” sono tornato a nanna. Certe volte funziona così.

-quack

(*) materiale per un’altra storia.

Me vs. Firefox 3.5

Jun 30, 2009 - 0 comments - Archiviato in: #Cazzate

Ho appena installato la 3.5 sul mio netbook e la mia workstation in ufficio. me-firefoxLe nuove feature non mi fanno assolutamente rimpiangere Chrome. Per tutto il resto mi sono attrezzato con 2 o 3 estensioni che lo rendono quasi indistinguibile dal browser californiano. Ho deciso di ridurre al minimo quelle installate e le elenco qui per futura memoria.

  1. Extended Statusbar
  2. Firebug
  3. Fission
  4. Hide Menubar
  5. Omnibar
  6. ShowIP
  7. Total ReChrome
  8. TwitterFox
  9. User Agent Switcher

Grandi assenti Adblock Plus e NoScript, decisamente irritante per le mie abitudini di navigazione quotidiane. Grandi presenti Total ReChrome che nell’ultima reincarnazione è pressoché perfeto e Omnibar, che sostituisce la Awesome bar con quella ancora più Awesome di Chrome. Qualche microscopica customizzazione ha fatto il resto. La differenza di prestazione è ancora a sensibile vantaggio di Chrome, ma niente ancora da strapparsi i capelli. Manca ancora una sandbox e sarebbe perfetto. D’altra parte però Chrome non supporta i lettori di impronte. Tirando le somme, per una funzionalità che va (sandbox) una più importante che viene (password manager). Nella mia personale classifica FF si piazza al primo posto previa installazione delle estensioni indicate. Segue IE8 il cui privacy mode è una spanna sopra gli altri e Chrome ormai superato. Non qualificati Opera e Safari, quest’ultimo definirlo un browser è pure troppo.

-quack

Delle cicale e delle formiche

Jun 29, 2009 - 0 comments - Archiviato in: #Cazzate #Linux

È arrivata l’estate e il crì crì estivo delle cicale si fa assordante.

Le formiche invece sono al lavoro per prepararsi per l’inverno.

Per fortuna le formiche hanno ottimo sense of humor:delle cicale

RMS claims that:

1) it’s good to write C# implementations like Mono, to encourage people to run their C# on a free platform like Debian; but

2) we should discourage people from writing C# software by making it hard to run, so Mono shouldn’t be on the default Debian install.

So it should be possible but not easy to run C# programs. Yep, sounds like Linux.

Complimenti a bluegrama, l’autore del commento per il nuovo motto: Linux, everything is possible but just not easy.

E come diceva Confucio, a 20 milioni di sviluppatori .Net di RMS non frega assolutamente una mazza.

-quack

P.S. sia chiaro, mi sento formica anche io. Potrei sbagliarmi?

Addio BOB

Jun 29, 2009 - 0 comments - Archiviato in: #Cazzate

BOB

Bob è stato uno di quei progetti dal punto di vista tecnico/commerciale molto sfortunati e morto subito dopo il rilascio. Da altri punti di vista ha cementato il fidanzamento tra Bill e Melinda; quest’ultima – all’epoca semplice girlfriend – è stata messa a capo dell’intero progetto da Bill in persona.

Una delle legacy di Bob è l’icona dello smiley nerd in MSN Messenger, a cui il set di smiley di questo si ispira. Sfortuna ha voluto che per Bob io abbia scelto una combinazione di caratteri che in alcuni casi ha anche un significato: 8) è un punto tra 7) e 9), raro ma pur sempre possibile, tanto da scombinare una decina di commenti in tutto. Deciso ad impratichirmi dell’uso delle RegEx, e forte della lettura del testo raccomandato in precedenza, ho abolito l’iconcina dalla lista degli smiley disponibili nei commenti. In fondo era [quasi] totalmente inutile.

Nel frattempo ho rivisto un po’ di codice di sanitizzazione (??) disinfestazione dei commenti: quello che gira adesso è preso in prestito da altre piattaforme e non soddisfa i bisogni di questa piattaforma al 100%, inclusa la possibilità di un attacco XSS scoperto durante il processo di revisione. Ed ho cominciato ad apprezzare le RegEx che “se le conosci non ti uccidono”. How funny.

-quack

I miei guai con Android

Jun 25, 2009 - 0 comments - Archiviato in: #Google

Ormai son passati diversi mesi da quando son corso a comprare il primo smartphone made in Mountain View (parlo del software). Da allora è stato rilasciato più di qualche aggiornamento, l’ultimo risalente a pochi giorni fa con il codename di cupcake. I miei guai con il G1 non sono diminuiti di molto.GuaiAndroid

  1. Prima di cupcake lo streaming bluetooth non era abilitato. Cupcake ha aggiunto anche questa feature ma purtroppo funziona molto molto male, almeno in abbinamento con la mia autoradio.  Ogni volta che accendo la radio il bluetooth si sincronizza. Poi in maniera totalmente casuale inizia lo streaming. Casuale vuol dire un sacco di cose: certe volte lo streaming si attiva dopo qualche secondo; certe volte dopo parecchi (10-15) minuti. Quasi sempre lo streaming dura meno di un secondo e si ferma in pausa: alcune volte basta passare alla canzone successiva, altre volte neanche questo funziona. La cosa antipatica è che una volta che lo streaming va in pausa l’autoradio diventa silenziosa
  2. Quando Android è di ottimo umore e decide di suonare una canzone in streaming va in modalità di shuffle automatica.
  3. Il client di posta elettronica ancora non funziona come dovrebbe. Certe volte segnala nuova posta in arrivo anche se non è arrivato un fico secco; con gli account Hotmail poi è impossibile marcare un messaggio come già letto.
  4. La navigazione alle volte è a dir poco confusa. Se nell’applicazione X c’è un schermata A e da A si naviga alla schermata B, con il pulsante BACK si torna alla schermata A. Tranne quando si switcha da un’altra applicazione (Y) per cui BACK potrebbe navigare da B ad Y o da B ad A. Tutto ciò non avviene in maniera casuale, ma all’utOnto medio (IO!!) sembra così. Se l’applicazione è incasinata di suo (tipo Touchdown, il client Exchange) è davvero la fine.
  5. La trackball del G1, tanto comoda per la navigazione ad una mano, è un po’ piccola ed ogni tanto causa qualche sfasamento. Siccome agisce anche come pulsante, nel momento in cui si preme si crea abbastanza coppia per spostare il cursore al link successivo
  6. L’autofocus della fotocamera, essendo puramente software, è lento come una processione: una foto può richiedere qualche secondo.
  7. Raramente la connessione USB via cavo è instabile.
  8. [update 28/6/2009] L’applicazione Google Maps è stata aggiornata. Aggiornamento non vuol dire sempre miglioramento: è il caso di Google Maps che ha perso diversi punti usabilità. È sparita la possibilità di mappare un elemento della history ed è diventato più complicato chiedere le indicazioni per raggiungere una destinazione partendo dalla posizione attuale

Ovviamente questo post tenderà ad allungarsi col passare del tempo; magari pure ad accorciarsi. Però nonostante tutto il G1 ha cambiato le mie abitudini in positivo (a parte i bestemmioni in macchina quando “parte” lo streaming).

-quack

Ninna nanna

Jun 24, 2009 - 0 comments - Archiviato in: #Cazzate

Ormai con i problemi di sleep di Windows ci sto prendendo estrema confidenza e non è cosa bella. Il primo era venuto fuori scambiando accidentalmente il cavo SATA di due hard-disk: il PC non ne voleva sapere di ibernarsi e neanche lo sleep, qualora lo sleep ibrido fosse attivo, riusciva ad attivarsi. Il sintomo era l’accensione immediata appena dopo lo sleep.

Sintomi identici per i problemi di insonnia con il Dell Studio: ma in questo caso non c’erano cavi SATA da scambiare. Alla fine è automagicamente scomparso con qualche aggiornamento. Stessa (buona) fine per quello del coma profondo: compare ormai solo occasionalmente (una volte al mese o meno) ed è un risveglio che richiede circa 2-3 minuti per completarsi durante il quale lo schermo è completamente spento.

Da un paio di giorni invece si è presentato un altro caso completamente diverso nei sintomi da tutti i precedenti, vittima designata la Workstation. Se lo sleep è forzato via menù o via pulsante power, tutto funziona. Lo sleep da timeout invece non funziona. Il problema assume dimensioni grottesche quando si considerano i casi in cui il PC si risveglia automaticamente per sbrigare alcune faccende, come ad esempio il backup giornaliero sul server. Il risultato è di ritrovare il PC acceso ma inattivo: chiuso nello sgabuzzino e magari pure sofferente. La cosa buffa, che mi ha dato qualche indizio per cercare la soluzione, è stato il fatto che il timeout affligge anche lo spegnimento dello schermo: neanche lo schermo, passato il tempo dovuto, va in stand-by come ci si aspetterebbe in questi casi.sleepless

Deciso ad andare a fondo della questione e forte delle indagini precedenti, mi sono imbattuto in quella che sembra la guida più completa ai disturbi del sonno di Vista. Ho seguito tutti i passi saltando quelli che mi sembravano più insignificanti, ma non ne sono venuto a capo. A questo punto ho deciso di provare davvero tutto: la guida parlava di rari casi in cui alcune periferiche sono in grado di interferire con il sonno. Bingo! Il colpevole nel mio caso è questo aggeggio. L’indizio dello schermo mi avrebbe dovuto mettere sulla buona strada visto che l’aggeggio emula la pressione di alcuni tasti e con certezza quasi assoluta genera qualche interrupt periodico che il driver ritrasmette come azione eseguita da un utente interattivo. Incredulo mi son preso la briga di fare diverse prove con l’aggeggio attaccato e staccato: prove su prove e alla fine è volato via più di qualche multiplo di mezzoretta e sereni, come per l’effetto di una ninna-nanna, ce ne siamo andati a dormire ognuno a proprio modo.

Morale della favola: MAI, MAI, sottostimare il potere dell’hardware.

-quack

Projects

Jun 22, 2009 - 0 comments - Archiviato in: #Cazzate

Se c’è un prodotto Microsoft che ispira sentimenti esacerbati di odio e di amore è MS Project.

ProjectLo scopo del prodotto è di aiutare a gestire lo schedule di un progetto: task, risorse, costi, dipendenze e scadenze. Il problema è che l’uso di base del prodotto richiede training avanzato. Quelli che come me il training avanzato non se lo possono permettere campano di workaround. Un workaround tipico è l’introduzione di dipendenze artificiali al solo scopo di assicurarsi che una persona non sia assegnata a due task contemporaneamente: MS Project se ne accorge e ti dice guarda che Tizio è impegnato per più di 8 ore al giorno (se i task sono due si arriva alla schiavitù da 16 ore al giorno; se i task sono tre o più si arriva all’effetto Matrix: cavo di rete pluggato direttamente in quella parte anatomica). C’è ovviamente l’opzione di normalizzare lo schedule sulla base delle otto ore giornaliere ma vederla all’opera da la stessa impressione di dire a Word con un singolo comando “correggi tutti gli errori che ci sono nel documento come meglio credi”. Letteralmente pauroso, al punto tale che il progetto non si riconosce più: qualcuno, prima di premere tale tasto, fa una copia di backup come si usava fare a mano con i Word Processor nell’era precedente all’AutoSave.

Oggi mi è stata chiesta una data che era ovviamente documentata in un file project. La mia risposta: MS Project afferma che è il 26 Giugno. La risposta di tutti: OK, abbiamo capito.

Vabbé è ora che trasformi l’energia negativa di questo lamento in uno studio approfondito di come funziona MS Project. Chissà che diventi uno di quei convertiti che quando passa da un prodotto alla concorrenza si traveste in venditore porta a porta di nuove Verità.

-quack

DL Cops

Jun 19, 2009 - 0 comments - Archiviato in: #Cazzate

Uno dei ruoli all’interno di un’organizzazione sociale che mi affascina di più è il Distribution List Cop, ovvero la persona che si legge tutte le mail che arrivano ad una distribution list e in caso di violazione di qualche policy replica con un richiamo più o meno velato. In alcuni casi le policy sono importanti e vanno rispettate, in altri casi mi sembra più un esercizio blando di potere. Per fortuna c’è sempre qualcuno che prende la missione con lo spirito giusto e replica usando immagini che valgono più di mille parole.

Segue una selezione di tali immagini tratta da una delle distribution list più sceriffate a cui mi sia mai iscritto.

clip_image001[18]clip_image001[34]

clip_image001[30]clip_image001[36]clip_image001[42]clip_image001[24]

clip_image001[26]

È il caso di dire che sono senza parole.

-quack

P.S. AUP sta per Acceptable use policy

Bone Nove

Jun 17, 2009 - 0 comments - Archiviato in: #Cazzate

Avevo detto che se il lettore di impronte Eikon To Go avesse supportato Windows 7, l’avrei ordinato immediatamente.

Risposta del supporto tecnico:

Eikon Digital Privacy Manager comes with Protector Suite QL 5.8.2 which works flawlessly on all current operating systems including Windows XP, Vista and Windows 7 (RC as well the final release). This version doesn't support the W7 Biometric Framework, but it doesn't affect the functionality in any way - logon, Application Launcher, PasswordBank as well the file encryption will work just fine.
The new Protector Suite QL 5.9 (2009) for Windows 7 isn't released yet, but once it is out, we will provide it to our customers at a discount price ($4.99). All further updates will be managed via the new autoupdate feature.

Interessante. Ieri intanto è arrivata la nuova skin per il mio nuovo NetBook. Non è una Gelaskin, ma l’ho comprata direttamente dal produttore pubblicizzato su Ebay, ove offre una selezione minore ad un prezzo più “leggero”. Quella che piaceva a me purtroppo fa parte del set “custom” non disponibile su Ebay:

Matrix Rain Cover

Ho comprato la versione con gli sticker interni per vedere come sembra…

matrix rain cover … ma ho avuto la leggera impressione che fosse un po’ tamarro.

La qualità della skin è eccellente. Sembra “stampata” anche se applicarla ha richiesto un odioso lavoro da certosino per l’allineamento causa perfezionismo.

Il vecchio portatile della formichina, il glorioso INSPIRON, dopo qualche giro su Craigslist ho deciso che finirà su Ebay. Mi ha telefonato un tipo dicendo di volerlo pagare 170$ perché aveva trovato un modello migliore del mio ad un prezzo più basso e stavo chiedendo troppo. Ho risposto di richiamarmi quando di “questo modello migliore” ne avesse trovato un altro perché a quel punto lo avrei voluto comprare IO. Non deve averla presa bene perché non si è fatto più sentire.

Intanto ho scoperto un flaw concettuale con la paginazione dei commenti di Blogoo. I permalink ai commenti funzionano solo se il commento è tra gli ultimi N commenti visualizzati. Il problema è interessante sotto diversi punti di vista e non ha ancora una soluzione. Di sicuro, se voglio tenere la paginazione dei commenti così com’è, devo cambiare il formato dei permalink e a quel punto rivedere (forse) anche la paginazione. Ho una soluzione sottomano ma non mi sembra granché elegante. È molto concisa che di per sé ha comunque un certo fascino.

I sudati tasti (oddio che schifo) mi aspettano…

-quack

P.S. dimenticavo una cosa importante. Cosa fa una cozza quando è felice? Balla. Il ballo della cozza.

Il ballo della cozza

tamocnaB

Jun 16, 2009 - 0 comments - Archiviato in: #Cazzate

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

Jun 15, 2009 - 0 comments - Archiviato in: #Cazzate

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

Jun 15, 2009 - 0 comments - Archiviato in: #Cazzate #Codice

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

Jun 11, 2009 - 0 comments - Archiviato in: #Hardware

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

Jun 10, 2009 - 0 comments - Archiviato in: #Link

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

Jun 9, 2009 - 0 comments - Archiviato in: #Cazzate #Video

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

Jun 8, 2009 - 0 comments - Archiviato in: #Cazzate #Hardware

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

Jun 7, 2009 - 0 comments - Archiviato in:

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