A Ovest Di Paperino

Welcome to the dark side.

  • Riflessione

    cn_image.size.s-ballmerRileggendo l’articolo di Vanity Fair per intero mi son soffermato su questo splendido pensiero:

    Ballmer’s key business philosophy for Microsoft was so antiquated as to be irrelevant. The Microsoft C.E.O. used to proclaim that it would not be first to be cool, but would be first to profit—in other words, it would be the first to make money by selling its own version of new technologies. But that depended on one fact: Microsoft could buy its way into the lead, because it always had so much more cash on hand than any of its competitors.

    No more. The advantage that Ballmer relied on for so long is now nonexistent. Google has almost the same amount of cash on its books as Microsoft—$50 billion to Microsoft’s $58 billion. Apple, on the other hand, started the year with about $100 billion. Using superior financial muscle to take over a market won’t work for Microsoft or Ballmer anymore.

    Credo che rappresenti la sintesi del fallimento di Ballmer. Lui che aveva detto ai suoi luogotenenti che il search business “non vale neanche un miliardo di dollari”. Lui che aveva detto che l’iPhone è così costoso che sarà un prodotto di nicchia: lo stesso iPhone che ora fattura più di tutta la Microsoft messa insieme.

    Dieci anni fa era possibile essere in leggero ritardo e recuperare a suon di milioni il terreno perduto. Adesso invece non lo è più: se anche Surface & Co. facessero il botto, ad Apple basterebbe buttare qualche miliardo di dollari in marketing o riduzione del prezzo per far scomparire surface dalla superficie della terra. Un tecnico al comando non avrebbe fatto la stupida scenata di Ballmer con l’iPhone al Company Meeting, ma si sarebbe chiesto perché il 90% dei dev di Windows Mobile se ne era comprato uno.

    Qualcuno può pensare che stiano correndo ai ripari, le voci di corridoio invece impongono ben altri facepalm.

    Ragazzi, mala tempora currunt.

  • A futura memoria

    ThingsChange

    Giusto perché, prima o poi, questa immagine tornerà utile (fonte).

    -quack

  • Fanboi$

    In ufficio ho un collega che ieri a pranzo mi ha detto: “ho comprato un MacBook Pro Retina configurato al massimo ma non ho deciso cosa farne”. L’ha ordinato il giorno stesso in cui il prodotto era disponibile sul sito Apple. Lui, e tanti altri, mi ricordano questo estratto da un episodio dei Simpsons:
     

    -quack

  • HTC One X: il buono, il brutto, il cattivo

    Recensione del nuovo smartphone made in HTC e basato su Android ICS. Come tutte le recensioni, segue prettamente i miei gusti e le mie modalità d’uso.image

    Il buono:

    1. Android. Un cellulare con Android significa che, se il “Tabaccaio dietro l’angolo” decide di scrivere un’app, lo farà per iOS e per Android. Ergo le App – buone, brutte o cattive – non mancano, soprattutto quelle che servono.
    2. Skype funziona! Intendo come dovrebbe, per chiamare, ricevere, chattare. D’altra parte è l’OS più “aperto” di tutti, un po’ come la casa delle Libertà dove ognuno può fare quello che gli pare, senza limitazioni.
    3. Durata della batteria: quasi comparabile con il Focus, nonostante lo schermo più grande. All’inizio c’è stata qualche pena per via del baco del Wi-Fi, però l’aggiornamento è arrivato in pochi giorni. Non mi aspettavo certamente un’esperienza perfetta, bachi come questo capitano su tutti i device e piattaforme (uno simile anche per Nokia Lumia 900)
    4. La fotocamera: mi piace e supporta il burst mode. Tantissimi scatti in sequenza veloce per poter scegliere quello migliore.
    5. Il bluetooth per la prima volta l’ho trovato perfetto. Causa incidente ho dovuto cambiare veicolo (la seconda volta in meno di nove mesi, che diamine!) ed il nuovo supporta bluetooth con riconoscimento vocale in maniera nativa. “Call casa” fa effetto Star Trek ed una parte del merito va al telefono che fa l’upload della rubrica senza nessun problema.
    6. Tastiera e HTC Sense: niente da dire, funziona come un gioiello
    7. Il browser: tutto funziona come dovrebbe, compreso youtube embedded.

    Il brutto:

    1. Le performance a tratti, devo dire molto raramente ma non tanto, lasciano a desiderare. Non posso aspettare 5 secondi per vedere comparire l’home screen su un dispositivo del genere
    2. Lo schermo: è un po’ troppo grande per i miei gusti, sicuramente ci avrei pensato due volte se avessi letto le specifiche prima di avventurarmi. Ed è il principale consumatore di batteria comunque.
    3. L’interfaccia è un po’ “affollata”; ci sono i widget ma le tile risolvono qualche problema in più.
    4. Il playstore lascia desiderare, ma in compenso posso facilmente scaricare tutte le applicazioni che ho già installato sul tablet o comprato in precedenza con il mio account.

    Il cattivo:

    1. la quantità di Crapware è fenomenale. La colpa non va tanto ai vendor (HTC e AT&T) quanto a Google che permette che i vendor possano installare applicazioni che non siano disinstallabili. Che me ne faccio di tre contact manager (uno Google, uno HTC e uno AT&T)?? Che me ne faccio di quattro o cinque applicazioni “Pandora Style”? Perché se dico che voglio usare il navigatore di Google tutte le volte mi si propone la scelta di quello di AT&T che mi chiede 10$ al mese indipendentemente dall’uso? E che dire di un popup che mi appare quando ricevo una telefonata e mi chiede se voglio abbonarmi al servizio pagine pianche per 3$ al mese???
      In parole povere Android sembra il Windows (quello OEM, quello brutto) dei telefonini. Il problema non va minimizzato perché a differenza di Windows, per cui Dell prende un ammontare fisso in base alla quantità e qualità di crapware installato, AT&T and company sono incentivate a creare “servizi in abbonamento mensile” del tutto inutili. Tra l’altro ho il sospetto che le peggiori tecniche usate in ambiente Windows (per intenderci quello che faceva Apple con iTunes che installava un servizio il cui scopo era di intercettare se qualcuno cambiava l’app di default per gli MP3 e la risostituiva) sono la norma su Android.
      Forse tocca fare il rooting, però è antipaticissima questa cosa.
    2. l’abuso della privacy: mi ritrovo le password Wi-Fi memorizzate nel cloud di Google in base ad una risposta del tipo si/no (vuoi fare il backup del dispositivo); la sincronizzazione dei bookmark, che a qualcuno può piacere, è abilitata in automatico. Insomma ho l’impressione di essere costantemente spiato

    Voto finale, soggetto a cambiamenti: 7.5

    UPDATE. Il pessimo:

    A quanto pare, lo stesso aggiornamento che ha sistemato il baco wi-fi, ha anche bloccato il tethering. Credo che ci sia intenzionalità: si lascia “provare” il dispositivo e poi con un aggiornamento si serve la fregatura. Vedrò a questo punto di provare una versione internazionale (se mi capita) e capire se la questione crapware/tethering è diversa.

    A quanto pare è una prassi consolidata presso tutti i gestori qui in USA. La differenza è che con il Samsung Focus era possibile fare il rooting senza invalidare la garanzia, ma non è una qualità voluta né da Samsung, né da Microsoft. Resto molto irritato però dal fatto che la rimozione di crapware (la maggior parte che gira come servizio) richieda l’invalidazione della garanzia. Tocca aspettare il prossimo Nexus?

  • Congruenze

    Piccole grandi formule interessanti. Da giovane ero in grado di calcolare la prima grazie ad un aiuto mnemonico per la parte più difficile relativa al mese e semplificando il calcolo limitandolo al secolo allora in corso e già passato. Raccolte qui per un piacere puramente estetico.

    La congruenza di Zeller:

    h = \left(q + \left\lfloor\frac{13(m+1)}{5}\right\rfloor + K + \left\lfloor\frac{K}{4}\right\rfloor + \left\lfloor\frac{J}{4}\right\rfloor - 2J\right) \mod 7,

    (Analisi)

    La luna nuova:

    d = 5.597661 + 29.5305888610 \times N + (102.026 \times 10^{-12})\times N^2

    (Spiegazione)

    Formula di Oudin:

    image

    (spiegazione)

    -quack

  • I will not upgrade

    Per la prima volta, per motivi puramente tecnici, non farò l’upgrade alla prossima versione di Windows.

    Nonostante sotto il cofano ci siano diverse feature interessanti e come diceva il mio sommo maestro, è la somma che fa il totale.

    Non ho un touch screen ed – escluso l’acquisto di un tablet ARM/x86 in futuro – non ne vedo di nuovi all’orizzonte.

    I tre miei PC resteranno per un bel po’ fermi a Windows 7: la mia workstation, per motivi ovvi; il media center – per motivi più che ovvi, che chissà come sarà l’esperienza tra codec pack e feature aggiuntive – ed il laptop della formichina.

    Diciamocelo: windows 8 di buono porterebbe solo le nuove applicazioni metro; che tra l’altro almeno per quanto riguarda la suite live, non sono altro che versioni fortemente decurtate di quelle disponibili oggi. Pare che il mantra sia consistency prima di tutto, ovvero un’esperienza quanto più simile tra dispositivi ARM e Corei11SuperPompati. Che siccome non ci si può far girare bene la roba per Corei11 sugli ARM, il tutto si traduce in portare l’esperienza ARM su PC.

    No grazie; salvo miracoli dell’ultim’ora.

    -quack

  • Review Process

    Non è un segreto l’esistenza del cosiddetto review process in quasi tutte le grandi aziende e non solo quelle “tecnologiche”. Anzi: tale processo di valutazione è nato molto lontano. Si basa sull’idea di poter differenziare la work force in tre classi e di valutare e remunerare i dipendenti in base ad una “distribuzione” a priori 20%/70%/10%. Ovvero in base ad una legge universale che stabilisce che in una popolazione abbastanza grande gli elementi di prim’ordine ne costituiscono il 20%, quelli di secondo ordine ne costituiscono il 70% e quelli di terz’ordine, possibilmente da scartare, il dieci percento.

    In base a tali principi si racconta che tale Jack Welch sia riuscito a moltiplicare i pani ed i pesci come CEO della General Eletrics.

    In MS il modello, già alla base estremamente discutibile, è stato implementato quasi pari-pari. È discutibile in quanto, seppur la statistica fosse corretta, la scienza statistica ci dice che un modello può essere applicato solo a posteriori e per descrivere un fenomeno, non certamente per plasmarlo.

    Poi c’è un altro problema: probabilmente in GE ci saranno centinaia di operai che producono viti e bulloni, per cui alla fine della fiera è chiaro che quelli che ne producono 100, stabiliti parametri di qualità uniformi, lavorano e vanno premiati meglio di quelli che ne producono 90 e questi meglio di quelli che ne producono 50. Ma in una azienda dove si producono idee e righe di codice? 50 righe di MS Office sono uguali a 50 righe di Windows? E l’idea che è finita nell’implementazione di Bing vale quanto un’idea buona solo per un brevetto?

    Questo è solo il punto di partenza se vogliamo piuttosto distorto; la parte più esilarante è il processo in cui meriti e demeriti vengono assegnati ad essere persino più fragile della bacatissima teoria pseudostatistica che c’è dietro; e che sia bacatissima, se mi fosse mai servita una dimostrazione più lampante, lo dimostra il completo dietro-front di un mio amico ed ora ex-collega assunto come manager: all’inizio difendeva il “sistema” a spada tratta come processo “giusto ed equo”; dopo qualche anno ha espresso – ovviamente  in maniera privatissima – forti dubbi e scetticismi. Il tutto avviene tramite “calibrazione”, un meeting dove i manager si incontrano e discutono una forma preventiva di distribuzione; tale proposta si propaga verso l’alto ove i manager superiori controllano che la distribuzione di più team sia conforme, correggono e propagano a loro volta; le correzioni scendono verso il basso in meeting di calibrazione successive che prendono atto di tali correzioni, ovviamente sempre al ribasso, e vengono implementate in maniera estremamente brutale. In alcuni casi ci sono veri e propri scambi tra team e la moneta di scambio può essere una promozione o una scalata positiva/negativa di ranking. Per dare una forma “umana” a questa distribuzione, viene chiesto al singolo individuo di “misurarsi” e produrre esempi in cui sono chiari gli obiettivi assegnati nel periodo che si sta valutando con esempi di quali e quanti obiettivi sono stati completati, super-completati o mancati. Il manager poi commenterà, con frasi che sono puramente di circostanza, basando i suoi commenti sul numerillo (venti, settanta o dieci) che il processo ha stabilito come valore finale. Il tutto viene discusso, due volte l’anno, in un meeting a quattrocchi con il proprio manager.

    Un paio di punti che l’astuto lettore avrà già osservato: al meeting di calibrazione partecipano solo i manager; gli individual contributors hanno un’unica arma a disposizione, fare cose che abbiano una visibilità accecante altrimenti finiranno per essere alla mercé dei propri manager; i manager non sono incoraggiati nell’essere giusti in quanto ciò comporta diverse grane durante la calibrazione, ma nel saper dispensare brutte notizie nel miglior modo possibile; se si applica la teoria dei giochi una strategia vincente è quella di “coltivare” i 10%, ovvero fare in modo che ci siano persone che non possano sfuggire qualunque cosa facciano; e che per la proprietà della visibilità accecante capita molto spesso di vedere developer scrivere lunghe noiosissime ed inutili email con in “to:” il mondo intero.

    Fin qui ce ne sarebbe da far rivoltare lo stomaco, ma Ballmer ha “modificato” questo porcellum peggiorandolo in due modi:

    • cambiando le percentuali da 20-70-10 in 20-60-20 raddoppiando di fatto gli scontenti (da l’anno scorso)
    • rendendo praticamente impossibile il cambiare team a chi finisce in classe “C”; volendo si può fare ma il team di destinazione ha bisogno di chiedere il permesso di un VP per cui è più conveniente “assumere” qualcuno meno adatto di classe “A/B” che qualcuno che sia perfetto ma di classe “C”

    In base a quest’ultimo punto può succedere qualcosa di interessante: si finisce in un team sfigato (nel senso che non corrisponde in maniera ottimale ai propri interessi o ai propri skill); il nuovo manager ti classifica come “C” e non c’è possibilità di sfuggire. La casistica peggiore, di cui ho osservato già diverse istanze, è la schiavizzazione: si promette all’individuo un’uscita dal purgatorio in cambio di ore ed ore di straordinario (che non è retribuito) e nel caso peggiore si inventa una scusa per non onorare la promessa.

    Un ulteriore arma a disposizione del bad manager, che purtroppo è il tipo di manager più comune in quanto favorito dalla strategia migliore del giochino, è la promozione o meglio la non promozione; ci si aspetterebbe che una permanenza di almeno tre anni in classe A sia un’indicazione che l’individuo è pronto a nuove sfide, ma viene più che spesso usata come arma per trattenere i migliori employee soprattutto i delusi ed i delusi classe A sono una tipologia particolare; in quanto sono i primi a cambiare team non appena ottenuto l’agognato salto. Ma il bad manager sa che l’A-deluso non vorrà cambiare team in quanto tale operazione comporta un reset del timer legato alla promozione stessa, per cui la strategia migliore è l’attesa.

    Probabile che il goal di Ballmer sia di ridurre drasticamente il numero di employee (cresciuto poi a dismisura proprio durante il suo regno); sta di fatto che il giochino non garantisce la segatura dei mediocri che per una serie di possibilità incrociate tendono ad essere favoriti mentre quelli che hanno la possibilità di ricevere offerte migliori altrove vanno via. In Windows poi, dove i Senior IC sono considerati dei piantagrane visto che la vision è strettamente imposta dall’alto in stile Apple, la situazione è ancora peggiore.

    La notizia pessima? Le cose stanno “rapidamente” deteriorandosi.

    -quack

    P.S. il post è scritto in maniera più oggettiva possibile, usando i numeri e la matematica laddove disponibili; è per tanto probabile che seguirà qualche ulteriore approfondimento; last but not least: la mia scelta di lasciare l’azienda è stata solo in minima parte influenzata da quanto sopra e se mi capitasse, conoscendo benissimo le regole del gioco, non avrei nessuna difficoltà nell’accettare un’offerta globalmente migliore di quella che ho accetta chiudendo la porta.

  • Virus e teoria dei giochi

    Tempo fa pubblicai un link di Adam J. O’Donnell che applicava la Teoria dei Giochi all’analisi del Malware su piattaforma. Il ricercatore aveva prodotto una formula:

    (1-p)fv = (1-f)v

    p e’ la probabilita’ che un attacco su Windows riesca e chiamiamola efficacia del sistema che comprende difese builtin (ASLR, firewall, valori di default) e aggiuntive (antivirus).

    Gli attacchi su Mac sarebbero cominciati quando f (il market share di OSX) avrebbe risolto l’equazione. Il ricercatore all’epoca aveva considerato un valore di efficacia pari all’80% sentenziando che i Mac sarebbero diventati bersagli interessanti qualora la percentuale di market share avesse superato il 16%.

    Qualcuno ha provato a giocare con questo valore usando i risultati di un test comparativo di antivirus e pigliando il risultato peggiore (Microsoft Security Essentials, ovvero 93.1%). Viene fuori una percentuale diversa, in grado di giustificare quanto sta accadendo ultimamente. Ovviamente il modello e’ estremamente semplificato (si da lo stesso valore al PC della nonna e a quello delle centrifughe iraniane; non si tiene conto dei costi di acquisizione di conoscenza per bersagliare una piattaforma diversa; ecc.). Ma se la correlazione continuasse ad essere rinforzata, sarebbe la fine per l’ingrediente segreto alla base della sicurezza dei Mac: la polvere magica.

    -quack

  • Storia di ordinaria arronganza

    Un ragazzo compra un laptop Apple con l’infame NVidia 8600GT. Scoperto l’inghippo il ragazzo cerca di farsi rimborsare l’acquisto ma in cambio riceve una garanzia di 4 anni sulla GPU.

    La GPU dopo tre anni frigge, ma Apple, mentendo spudoratamente, si rifiuta di effettuare l’intervento in garanzia promesso.

    Il ragazzo dopo diversi tentativi fa causa.

    Apple manda due avvocati a Seattle. I due avvocati vengono subito colti in frangrante menzogna quando cercano di spiegare che, a causa di una differenza di clock pagata con 300$ sonanti, il PC non sarebbe in garanzia; cosa non vera perche’ l’HW e’ lo stesso di quello comperto dalla garazia.

    Durante il processo, con grande sorpresa del giudice e di tutti i presenti, gli avvocati spiegano che il costo di riparazione per Apple e’ zero in quanto sarebbe assorbito da NVidia.

    Quello che segue merita il migliore grassetto: Apple paga la trasferta di due avvocati col permesso aziendale di mentire pur di non cedere – a costo zero visto che il tutto sarebbe rimborsato da NVidia – sulla riparazione di un PC promesso in garanzia. L’azienda che macina in assoluto i piu’ grandi profitti in America spende migliaia e migliaia di dollari solo per pura arroganza.

    Il ragazzo intanto vince la causa anche se non e’ detta l’ultima parola perche’ deve passare all’incasso.

    Al ragazzo auguro buona fortuna, a tutti gli altri un invito a spend different.

    -quack

  • Il dettaglio

    Ho notato che quando si parla della faccenda di Apple e del prezzo degli e-book gonfiati in generale viene sempre ignorato un dettaglio; purtroppo il dettaglio è fondamentale per capire la faccenda perché è il motivo centrale per il quale il DoJ ha intentato causa.

    La difesa di Apple verte intorno al fatto che, secondo loro, hanno lasciato la libertà agli editori di fissare qualsiasi prezzo. Questo però non è vero perché, in una clausola, su tale prezzo è stabilito un limite superiore. Ovvero il prezzo al dettaglio non deve superare il prezzo a dettaglio presso un altro store.

    Per cui se l’editore X vende un libro sia su Amazon che su iTunes, il prezzo fatto da Amazon non può essere più basso di quello su iTunes. In barba alla “libertà per gli editori di fissare qualsiasi prezzo”. Un altro dettaglio è il fatto che i modelli di vendita su iTunes (a percentuale) sono diversi da quelli tradizionali (su prezzo all’ingrosso). Terzo dettaglio, la percentuale che va in tasca ad Apple è fissa e più alta rispetto a quanto va in generale in tasca ad Amazon.

    Quindi se io editore volessi ricavare 7$ per la vendita di ogni copia potrei venderlo ad Amazon al prezzo di 7$/copia oppure su iTunes al prezzo finale di 10$. Ma se Amazon decidesse di vendere il libro a soli 8$? La clausola di Apple spinge di fatto gli editori a chiedere da Amazon un prezzo più alto. Ed il libro magicamente passerà da costare 8$ a costarne 10$.

    Fin qui la matematica.

    Le obiezioni alla mossa del DoJ, provenienti ovviamente dai fan più sfegatati e cioé quelli che sono addirittura contenti di pagare di più per lo stesso contenuto, sono sintetizzabili in:

    1. Apple non ha costretto nessuno. Ovviamente per costringere si intende chiaramente “puntare la pistola”. La contro-obiezione è che per clausole vessatorie non si intendono solo quelle che prevedono punizioni corporali. L’esempio tipico è che il DoJ è intervenuto nel caso Windows/IE nonostante MS non abbia mai venduto una copia di Windows puntando le pistole (la contro-contro-obiezione è che MS si è fatta pagare “licenze a priori”.
    2. Apple ci sta difendendo dal monopolio di Amazon. Se anche quello di Amazon fosse un monopolio, sarebbe un monopolio di fatto, qualcosa che capita quando una azienda vende più degli altri per manifesta superiorità tecnica. Ed il monopolio in sé, come più volte spiegato, non è punibile a colpi di legge. Quello che è illegale è farne uso per farsi strada in un altro mercato: che guarda caso è quello che Apple sembra stia facendo.

    La questione poi diventa completamente irritante quando viene considerato irrilevante il parallelo Windows/IE dimenticando che:

    1. la distinzione tra mercato del software di base e quello applicativo è estremamente più artificiale di quella tra iPad e eBook; infatti al giorno d’oggi un browser è considerato parte del sistema operativo sotto quasi tutti i punti di vista
    2. MS regalava IE; questo ha portato a ridurre il prezzo che si pagava per questo prodotto portandolo quasi a zero; invece grazie all’intervento di Apple, anche se io non sono cliente iCoso, vedo aumentare il prezzo dei libri che mi interessano

    Ovviamente con questo post non mi faccio assolutamente l’illusione di far cambiare idea chi è convinto che la colpa di 600mila e passa infezioni di Trojan sia di Oracle (ma una bella sandbox nel browser toccherà aspettare il 2032?). Spero tuttavia che la loro magnanimità nei confronti delle casse di Apple li spinga a contribuire alle perdite di noi altri; suggerisco magari con un bel gesto di auto-paypal-tassazione, sono disposto a devolvere tali proventi in beneficienza.

    -quack

    P.S. Despite Denial, Apple Dictated E-Book Pricing at iBookstore

  • Carrierz

    AT&T dixit:

    I got some news about the Windows Phone 8107 update and wanted to share it with you all.

    We are not currently planning to offer the Windows 8107 update.

    Io aggiungo: e perché mai dovrebbero farlo? AT&T non si è degnata neanche di aggiungere il supporto ad una segreteria telefonica da XXI secolo. Gli operatori telefonici in USA non lavorano per i loro clienti, soprattutto grazie al fatto che il GSM come standard è implementato a livello quasi caricaturale (mi dicono dalla regia che questo è uno dei pochissimi paesi al mondo – terzo mondo incluso – in cui non è possibile acquistare un piano prepagato).

    Quindi quando si tratta di scegliere se favorire gli utenti di una piattaforma (iOS, Android, WPx) e i propri interessi, gli operatori non hanno mai sostenuto i primi. Apple ci è riuscita in quanto ha obbligato AT&T in maniera contrattuale. Google non obbliga per cui gli update via operatore non arrivano quasi mai.

    Joe Belfiore di WP7 aveva però detto che per Windows Phone gli operatori si erano accordati su una via di mezzo e a me le vie di mezzo di solito piacciono abbastanza perché acconentando tutti si crea abbastanza motivazione: gli operatori avrebbero potuto bloccare solo un’update, ma il secondo sarebbe arrivato giù con la forza.

    Tutto ciò però si scontra con la realtà di oggi; allora Belfiore ha detto una balla? Oppure visto lo scarso successo commerciale gli accordi sono cambiati? E cosa succederà con WP8 visto che voci di corridoio parlano di piattaforma completamente diversa?

    Apple è estremamente irritante quando tratta (alcuni) suoi clienti come deficienti, ma una cosa riesce a fare molto bene: quando media fa propendere sempre la bilancia sempre verso i loro clienti.

    Ho detto in passato che questo potrebbe essere l’anno dell’iPhone o del ritorno ad Android: da Venerdì avere accesso al server Exchange sul telefono, feature numero uno di WP7, non sarà più una necessità neppur secondaria; era primaria diversi mesi prima che scoprissi gli effetti deleteri del wiping aziendale. Oggi il richiamo del lato oscuro della forza diventa sempre più irresistibile….

    -quack

  • Movin’ on

    badgeVenerdì 30 Marzo sarà il mio ultimo giorno di lavoro in un bunker nel darkside.

    Sono stati tredici anni di montagne russe, tra momenti bellissimi e orribili. Tra decisioni sofferte e gioiose. Mi consola che neanche Trapattoni ha cavalcato un ciclo così lungo. Mi demoralizza un po’ l’andare via prima di lui. A quasi quarant’anni (this is the last of enta) cambiare è un obbligo ed assomiglia al sapore di acchiappare una delle ultime possibilità per i capelli.

    Quello che vado a fare è molto eccitante e – per ora – segreto quanto basta per stimolare la curiosità del lettore.

    -quack

  • A capocchia

    9 Marzo 2012, Gian Antonio Stella, parlando di disparità di stipendio tra commessi parlamentari e direttori di musei, dice:

    Che senso ha che lo Stato tratti con tanta disparità, a capocchia, figli e figliastri?

    1994, comune di Gravina in Puglia, elezioni Comunali. 220px-Macro_of_a_matchSi lavorava con Luca alla prima versione di “Elezioni Comunali per Windows”, una applicazione che predatava quanto oggi si può fare in quattro righe con Adobe Flash. Ci si barcamenava con la calcolatrice nell’individuare le “sezioni campione” e Berlusconi (in persona?) inviava da Milano una “signora esperta in sondaggi” che aveva determinato, tramite pochissime interviste telefoniche, una netta vittoria del candidato del centro destra. Ci chiesero se potessero generare “la grafica” per quei dati e Luca stizzito disse che non voleva metterci la faccia e il nome su dati ottenuti con il “metodo a capocchia”. Ora c’è da precisare che la parola capocchia, in gravinese, ha un significato occulto designante una parte ben precisa del membro maschile. E “metodo a capocchia” aveva una accezione molto diversa da quello che aveva “captato” la signora milanese a cui la locuzione “a capocchia” suonava talmente bene da ripeterla almeno quattro o cinque volte in diretta tivvì (e la TV era locale!).

    Mi piace credere che l’espressione atterrata sulle pagine del corriere di oggi sia in un certo senso nata in quella precisa occasione; ed io c’ero.

    -quack

  • Xen recipes #4: Xen Cloud Platform 1.5 beta

    XCP è una versione standalone di Xen basata su CentOS. Ovvero da usare out-of-the-box invece di installare l’OS, poi Xen, poi configurare, bestemmiare, inveire, ecc.

    È basata su XenServer allo stesso modo in cui CentOS è basato su Red Hat: ovvero siccome il sorgente è pressoché pubblico, non è altro che una ricompilazione accurata di quanto disponibile al punto che è possibile installare il “client” di XenServer per farlo parlare con XCP. XenServer 6.0 a sua volta è una ridistribuzione minima di CentOS + Xen4.1 + altri tool interessanti per la virtualizzazione + client abbastanza carino + preconfigurazione no-nonsense (infatti SELinux non mi pare sia neanche installato).

    L’unica noia è che non so per quale motivo, ufficialmente si parla di stabilità ma io non ci credo, alcune feature di Xen non sono disponibili direttamente ma sono attivabili con workaround non ufficialmente supportati.

    Quando ho cominciato l’esperimentòn la versione di XCP disponibile era la 1.1 basata su XenServer 5.6 basato a sua volta su Xen 3.0. Poche settimane fa invece è stata rilasciata la beta della versione 1.5 che ho installato su un disco di sistema separato, onde evitare rimpianti. Applicando tutti i workaround del caso XCP 1.5 offre tutto quello che mi ha finora offerto Fedora+Xen e anche qualcosina in più.

    I workadound servono a:

    1. supportare il passaggio di dischi fisici direttamente al guest. È incredibile XS6 permetta di farlo solo con dischi rimuovibili: la “scusa” è che i dischi fisici non permettono la migrazione, ma questo cozza con il fatto che c’è il supporto del passthrough della scheda grafica che impedisce migrazioni.
      Il trucco è di aggiungere due regole al file /etc/udev/rules.d/50-udev.rules come spiegato in questo post. Le mie ad esempio:
      ACTION=="add", 
      ID=="1:0:0:0|3:0:0:0|6:0:0:0|7:0:0:0|8:0:0:0|9:0:0:0",
      SYMLINK+="xapi/block/%k", RUN+="/bin/sh -c
      '/opt/xensource/libexec/local-device-change
      %k 2>&1 >/dev/null&'"
      ACTION=="remove",
      ID=="1:0:0:0|3:0:0:0|6:0:0:0|7:0:0:0|8:0:0:0|9:0:0:0",
      RUN+="/bin/sh -c '/opt/xensource/libexec/local-device-change
      %k 2>&1 >/dev/null&'"
    2. supportare il PCI passthrough, per la stessa stupida scusa accampata al punto 1.
      Per farlo bisogna editare il file /boot/extlinux.conf e “nascondere” i dispositivi da passare ai guest:
      append /boot/xen.gz dom0_mem=752M lowmem_emergency_pool=1M
      crashkernel=64M@32M console= vga=mode-0x0311 ---
      /boot/vmlinuz-2.6-xen root=LABEL=root-ogqzyliv ro
      xencons=hvc console=hvc0 console=tty0 quiet vga=785 splash
      pciback.hide=(00:1a.0)(00:1b.0)(00:1d.0)
      --- /boot/initrd-2.6-xen.img

      Una volta riavviato e verificato che i dispositivi sono disponibili al pass-through (xl pci-list-assignable-devices), bisogna assegnarli alle macchine virtuali con il comando:
      xe vm-param-set 
      other-config:pci=0/0000:00:1a.0,0/0000:00:1b.0 uuid=...
      dove lo uuid della macchina virtuale che interessa si ottiene con:
      xe vm-list
    3. Manipolare il numero di versione in modo tale che il client riconosca il server come XenServer 6.0.99. P
    4. UPDATE: se ci si vuole connettere alle VM senza usare XenCenter (ad esempio su un Mac) è necessario creare dei tunnel SSH in quanto VNC non è esposto ad ip esterni. Per farlo ci sono un paio di tutorial:
      Using VNC to Connect to a XenServer VM’s Console
      How to Set Up VNC Channels Using PuTTY

    In aggiunta ho trovato anche molto utile questo post in cui viene presentato uno script che faccia partire una serie di macchine virtuali in automatico.  UPDATE: un’alternativa è quella di creare una vApp chiamata “autostart” e lanciare la vApp tramite rc.local con:

    sleep 10 && UUID=`/opt/xensource/bin/xe appliance-list 
    name-label="autostart" | /bin/grep uuid | /bin/awk '{ print $5 }'`
    && /opt/xensource/bin/xe appliance-start uuid=$UUID

    (su unica riga)

    Questa seconda alternativa presenta il vantaggio che tramite la configurazione della vApp è possibile determinare l’ordine di lancio e il delay di ogni VM.

    Last but not least da linea di comando è possibile settare la priorità delle singole VM con i comandi:

    xe vm-param-set uuid=<Template UUID> VCPUs-params:weight=100
    xe vm-param-set uuid=<Template UUID> VCPUs-params:cap=100

    Per ora, a differenza di Fedora, non mi sembra che si sia presentata la necessità di modificare le priorità di default di ogni singola VM se non tramite l’aggiustamento di numero di VCPU assegnatele.

    Fatto un calcolo finale il “costo” dei workaround è simile al “costo” di tutta una serie di configurazioni aggiuntive da fare in Xen puro. In cambio XenServer/XCP offre la possibilità di creare snapshot delle macchine virtuali, cosa non disponibile in Xen se non tramite artifici non proprio perfetti.

    Il mio giudizio finale è che XCP competa molto bene con VmWare ESXi: quest’ultimo è ricchissimo di feature non tutte decisamente utili a patto di un costo abbastanza elevato e il mancato supporto al VGA passthrough, indispensabile per il Cray1. E che sia una beta non lo si sente affatto.

    UPDATE: un paio di altre informazioni utili su XCP/XenServer.

    PARAVIRTUALIZZAZIONE: questi sono i comandi utili per configurare le macchine para-virtuali ed in particolare Solaris

    xe vm-param-set uuid=... PV-kernel=<host path to 'unix'>
    xe vm-param-set uuid=... PV-ramdisk=<host path to 'boot_archive'>
    xe vm-param-set uuid=...
    PV-args='/platform/i86xpv/kernel/amd64/unix -B console=ttya'
    xe vm-param-set uuid=... HVM-boot-policy=
    xe vm-param-set uuid=... PV-bootloader=

    PCI/VGA-PASSTHROUGH: se si sceglie di configurare la scheda grafica virtuale tramite l’interfaccia grafica del client, i setting relativi al PCI-Passthrough verranno sovrascritti. Per supportare il passthrough di dispositivi PCI in combinazione con la scheda grafica è importante usare la riga di comando come specificato sopra.

    UPDATE 2:

    Una delle ultime cose che ho fatto è stata la personalizzazione degli splash screen (ce ne sono due). Il primo è embedded nel ramdisk. Per modificarlo basta editare il file /usr/share/citrix-splash/background.png, fare un backup di /boot/initrd-2.6.-xen.img e ricrearlo con il comandone:

    mkinitrd --theme=/usr/share/citrix-splash --builtin=dm-mirror 
    --builtin=dm-snapshot --builtin=dm-zero
    --builtin=scsi_trasnport_fc –f /boot/initrd-2.6-xen.img `uname -r`

    Il secondo splash screen, animato, è più abbordabile ed è contenuto nel folder /usr/share/splashy/themes/default. Una volta editato lo si setta come splash screen attivo tramite:

    splashy_config -s default

    L’immagine che mi son scelto l’è carina:

    background

    E questa dovrebbe essere l’ultima noiosissima ricetta della serie, serie che somiglia tantissimo al Cray 1 deployment document.

    -quack

  • Xen recipes #3: guest OpenIndiana 151 para-virtualizzato

    Questo post è obsoleto. 

    Per installare Solaris (o qualsiasi derivato come Nexenta/OpenIndiana/ecc.) c’è bisogno di fare ricorso alla para-virtualizzazione. In questo caso il sistema operativo guest viene fornito di un kernel appropriato e il tutto si trasforma in un piccolo esercizio di ricorsione.XenFu

    Sotto questa modalità l’hypervisore lancia ed esegue direttamente il kernel para-virtualizzato ed il problema è quello di estrarlo e copiarlo sul sistema operativo host insieme a qualche altro pezzo di sistema (nel caso di Solaris c’è bisogno anche del boot_archive). Ergo occorre:

    1. estrarre e copiare i file platform/i86xpv/kernel/amd64/unix e /platform/i86pc/amd64/boot_archive dall’iso in una directory sul sistema operativo host (ad es.: /xen/openindiana)
    2. creare un file di configurazione usando il seguente template:
      name='openindiana'
      memory = "2048"
      vif = [ "mac=FF:FF:FF:FF:FF:FF, bridge=br0” ]
      disk =  [
              "file:/xen/openindiana/oi.img,xvda,w",
              ]
      vcpus=2
      kernel = "/xen/openindiana/unix"
      ramdisk = "/xen/openindiana/boot_archive"
      extra = "/platform/i86xpv/kernel/amd64/unix -B console=ttya"
    3. lanciare la macchina virtuale ed eseguire l’installazione.

    Terminata l’installazione, prima di spengere la macchina virtuale, vanno annotati il root dataset (comando “zfs list”; valore di ‘default’ rpool/ROOT/openindiana) e il nome del disco di avvio così come identificato dal sistema (comando “echo format”, dovrebbe restituire qualcosa come xdf@51712).

    Successivamente, prima del primo riavvio, va modificata la linea evidenziata in modo da indirizzare il kernel appena installato verso il file system appena creato con la seguente:

    extra = "/platform/i86xpv/kernel/amd64/unix -B zfs- 
    bootfs=rpool/ROOT/openindiana,bootpath=/xpvd/xdf@51712:a"

    (unica riga)

    A questo punto il sistema guest si avvierà e comincerà a funzionare come da aspettative. Se si vuole usare openindiana come server SMB, bisogna avere l’accortenza di aggiungere questa riga al file di configurazione /etc/pam.conf altrimenti l’autenticazione SMB non funzionerà come ci si aspetta:

    other [TAB] password required [TAB] pam_smb_passwd.so.1 [TAB] nowarn

    ([TAB] rappresenta il carattere di tabulazione).

    Un’ultima importante osservazione è che alcune operazioni, come l’import di pool esistenti, tendono a modificare il file di ramdisk. Per cui, prima di riavviare per l’ultima volta potrebbe essere necessario forzare l’aggiornamento del ramdisk (che solitamente avviene durante l’operazione di shutdown) con:

    bootadm update-archive -f

    e sovrascrivere il ramdisk presente sul sistema operativo host con:

    scp /platform/i86pc/amd64/boot_archive 
    root@ip_host:/xen/openindiana

    (unica riga)

    Teoricamente si può bypassare questa necessità di tenere copie aggiornate di kernel e ramdisk sul sistema operativo host usando dei bootloader di guest alternativi come pygrub, però purtroppo l’ultima versione di pygrub non supporta l’ultima versione di ZFS per cui, fino a patch definitiva, quella di sincronizzare i file sull’host è una pratica necessaria.

    Le performance di una macchina para-virtualizzata su XEN tendono ad essere significativamente superiori a quelle di una macchina fully virtualized; c’è infine da aggiungere che purtroppo le ultime versioni di Solaris non girano correttamente in maniera fully virtualized e pertanto la para-virtualizzazione rappresenta l’unica via di uscita.

    -quack

    Linkografia utile:

    http://www.gossamer-threads.com/lists/xen/users/200909
    http://docs.oracle.com/cd/E19082-01/820-2429/smbservertasks/index.html
    http://tinyurl.com/89m4j8s
    http://360is.blogspot.com/2010/03/paravirtualized-opensolaris-solaris-on.html

    Prossima puntata le variazioni sul tema XCP 1.5, versione opensource di XenServer 6

  • LunedìQuìz–serie 2012 #2

    Implementare la seguente funzione:

    bool SumExists(int[] data, int sum)

    che restituisce true se esistono due elementi nell’array data la cui somma è sum e definirne la complessita in notazione O.

    -quack

    P.S. titolo leggermente alterato per arginare l’eventuale ondata spam

  • Inactive memory

    Una delle feature più chiacchierate e meno comprese di Windows, addirittura sin dai tempi di Vista, è quella di SuperFetch, una cache predittiva abbastanza evoluta. Usata anche a sproposito per spalare cacca su Windows.

    In Apple hanno pensato di fare una cosa simile inventando la inactive memory:

    Inactive memory

    This information in memory is not actively being used, but was recently used.

    For example, if you've been using Mail and then quit it, the RAM that Mail was using is marked as Inactive memory. This Inactive memory is available for use by another application, just like Free memory.  However, if you open Mail before its Inactive memory is used by a different application, Mail will open quicker because its Inactive memory is converted to Active memory, instead of loading Mail from the slower hard disk.

    Bella pentola, ma come al solito si sono scordati il coperchio:

    that this memory may be freed at any moment. However in practice, it just keeps on accumulating until you run out of free memory. In this case a sane option for the OS would be freeing the inactive memory. Instead the OS X decides toswap the inactive memory on the disk. So when running out of free memory and having a 1,5 gigabytes of inactive memory left, your OS starts paging the unused inactive memory to disk instead of freeing it for applications to use. Not only this causes your computer to slow down, it also is counter-intuitive in the terms of the original idea of inactive memory: when it's on disk, it definitely is not made active quickly.

    Interessante.

    -quack

  • Beware of the doghouse

    Visto che siamo ufficialmente a S. Valentino, un consiglio per i lettori che stanno ancora pensando al regalo per la morosa/fidanzata/moglie:

    -quack

  • Lunedì quiz - serie 2012 #1

    Dato un albero binario (vedasi esempio figura)

    image

    si implementi la funzione:

    TrovaAntenatoComune(node root, node first, node second)

    che restituisce l’antenato comune più “vicino” ai due nodi o sollevi un’eccezione se uno dei due nodi non è raggiungibile dalla radice.

    Esempio:

    TrovaAntenatoComune(A, D, I) = B
    TrovaAntenatoComune(A, P, F) = E

    -quack

  • Creare un disco di installazione di Win7 UEFI

    Teoricamente su un sistema UEFI il disco di installazione di Windows 7 dovrebbe installarsi automaticamente in modalità UEFI; praticamente è anche molto probabile che qualche baco nel BIOS pregiudichi questa possibilità.

    A che serve lanciare l’installazione di Win7 in modalità UEFI? A poter installare il sistema su un disco partizionato GPT anziché MBR (necessario ad esempio per dischi >2 TiB).

    Ho provato ad utilizzare una delle tantissime guide che spiegano come installare TianoCore (un emulatore UEFI) ma non sono arrivato da nessuna parte.

    La soluzione che funziona è questa:

    1. scaricare oscdimg.exe (sarà parte di qualche DDK, WWF, ecc.)
    2. inserire il disco di installazione nel lettore DVD-ROM (supponiamo D:)
    3. lanciare da riga di comando:
      oscdimg -w4 -os -lWin_7_x64_UEFI_ISO9660 -m -o -n -pEF –e 
      -bd:\efi\microsoft\boot\efisys.bin d:\ win7uefi.iso

    Il risultato è un file ISO masterizzabile che, in presenza di una scheda madre che supporti UEFI, avvierà l’installazione in tale modalità senza passare dal BIOS.

    -quack