Virtualismi avanzati di ordine superiore

Dall’ultima volta che ho messo mani al Cray-1 un sacco di novità positive:

  • l’ultima LTS supporta ZFS nativamente
  • il boot della Workstation pseudo-virtuale spara direttamente sul monitor ergo è possibile guardare anche le fasi antecedenti all’avvio di sistema; un po’ arzigogolato ma funziona
  • la nuova versione di libvirt supporta molto bene il boot di OSX

Ci sono solo un paio di fastidi:

  • se il boot della Workstation non è completo con tanto di caricamento dei driver da parte del guest OS (Windows), la scheda grafica si inceppa in uno stato di limbo che previene l’avvio della macchina virtuale fino al riavvio completo dell’host
  • il bios della macchina virtuale (Seabios) non supporta l’emulazione PS/2 della tastiera USB. Se c’è bisogno di pigiare qualche tasto, ad esempio premere F8 prima dell’avvio di Windows, la tastiera collegata all’hub USB assegnato non funziona

Entrambi i problemi però sono risolvibili con un’unica operazione: sostituire il BIOS tradizionale della macchina virtuale, che parla alle schede grafiche secondo un protocollo inventato 30 anni fa, con uno basato su UEFI, praticamente il futuro.

Affinché le fasi di pre-boot siano visibili sul monitor con questa modalità, la scheda grafica necessita del supporto UEFI. Ho provato ad aggiornare il BIOS della mia vetusta Quadro 2000 con una versione che aggiunge tale supporto ma non sono stato in grado di osservare le fasi di pre-boot. Presumo che una scheda di nuova generazione come la K2200 faccia tutto ciò: me ne sono procurata una e presto sperimenterò direttamente questo tipo di configurazione.

Nel frattempo ho giochicchiato un po’ con il boot di OSX. Un po’ di cose sono cambiate con El Capitan a rendere il tutto non proprio liscio come l’olio. Ad esempio i nuovi driver USB di Apple si fidano ciecamente della configurazione del DSDT e se questo non è proprio allineato alla configurazione della macchina virtuale, l’USB passthrough non funziona. Per fortuna ci sono un paio di soluzioni per questo specifico problema e qualche ora fa ho digitato i primi tasti attraverso un adattatore PCI-express –> USB 3.0.

Adesso mi chiedo:

  • è possibile creare una macchina virtuale UEFI e fare il boot di Windows 7? Windows 7 supporta UEFI, ma bisogna magheggiare un po’
  • è possibile creare una tale macchina virtuale capace di fare il dual boot di Windows 7 e OSX?

Credo di sì. Roba da virtualismi avanzati di ordine superiore, per l’appunto.

-quack

P.S. l’interesse per OSX virtualizzato i.e. vacchintosh, ora che possiedo un MacBook, è puramente accademico.

Pubblicato sabato 3 dicembre 2016 alle 5:32 AM - 4 commenti so far
Archiviato in: Virtualizzazione

Live Services

Diversi mesi fa mi è stato assegnato un nuovo task: spostare due campi, dei timestamp, da un servizio di storage ad un altro, con API diverse e allineamenti astrali incompatibili. Un lavoro descrivibile in maniera semplice, come sostituire una ruota forata con quella di scorta ma con qualche piccola complicazione:

  • le ruote forate sono due
  • la macchina è in corsa
  • le ruote di scorta vanno testate
  • il motore ha preso fuoco
  • le ruote forate si autodistruggeranno in meno di un anno

Piccola vittoria giornaliera, mi hanno permesso di sostituire una ruota di scorta per volta, non senza aver paventato il rischio del danneggiamento del telaio se la seconda ruota di scorta fosse riscontrata difettosa.

Come si raggiunge l’obiettivo? Progettando tutto nei dettagli, mantenendo una calma Zen e accontentarsi di un passo alla volta. Fatti i calcoli dovrei poter dichiarare vittoria a Marzo 2017 e celebrare con una torta spaziale.

-quack

P.S. e non è neanche l’unico task a cui sto lavorando. Mi sto divertendo un mondo.

Pubblicato giovedì 24 novembre 2016 alle 1:48 AM - 3 commenti so far
Archiviato in: Google

Activity Tracking Follow-up

Sono passati quasi due anni e la mia fissa non è ancora passata.

Nel frattempo ho:

  • capito come funziona il protocollo delle notifiche del Fitbit Charge a livello bluetooth con tanto di PoC per Android, buttato giù in qualche ora (la versione per iOS richiederebbe giorni)
  • perso il mio Fitbit Charge HR, di cui ero molto soddisfatto, dopo una visita in spiaggia la scorsa estate
  • sostituito il suddetto con un VivoSmart HR, resistente a doccia, nuoto e svariate intemperie
  • sostituito l’app per Android che parlava con il mio fitbit con un’app per iOS che parla con il mio VivoSmart
  • completato un interessante progetto di interoperabilità (e mi fermo qui)

Ma la voglia di un dispositivo migliore resta. Il Charge 2, uscito da poco, sarebbe perfetto se:

  • fosse resistente all’acqua (lo è diventato persino l’iWatch!!), così da doverlo rimuovere dal polso solo per ricaricarlo
  • supportasse le notifiche di terze parti (lo fanno tutti i prodotti della concorrenza, comprese le cineserie da 10$ o più)
  • avesse una durata della batteria che fosse “5 giorni o più” e non “5 giorni sicuramente meno”

Se al primo aspetto si potrebbe ovviare con una soluzione ad-hoc seppur con un costo sostanziale (waterfi.com) e al secondo con un po’ di hacking (davvero non mi spaventa più niente), per il terzo non c’è proprio niente da fare. Resta il fatto che, visto che la concorrenza non sta a guardare, dovermi sbattere per risolvere problemi già risolti altrove sia un’idea molto in perdita, seppur consideri l’hacking una attività ricreazionale.

Non mi sorprende quindi che le aspettative finanziarie di FitBit siano state tremendamente disattese: tra saturazione del mercato, esaurimento dell’aspetto novità della questione e concorrenza agguerrita c’era per me ben poco da sorprendersi.

Intanto due prodotti interessanti sono all’orizzonte: il Pebble 2, smartwatch per gli acari duri e puri e il Withings Steel HR, 25 giorni con una singola carica ed un look davvero niente male.

Stay tuned.

-quack

Pubblicato giovedì 3 novembre 2016 alle 9:34 PM - 0 commenti so far
Archiviato in: Hardware

Dentist experience

Con la migrazione ad iOS ho deciso di tentare un’operazione spericolata: scrivere un’app personale per iOS, ad uso ed esclusivo consumo personale. Su Android, praticamente una faccenda da cinque minuti, che diventano sei se nel frattempo si vuol bere un espresso. Su iOS invece come da titolo. Il processo:

  • scaricare la versione giusta di XCode. Perché se l’aggeggio è aggiornato all’ultima versione, lasciate ogni speranza o voi che tentate
  • installare certificati e contro-certificati. In uno slancio di generosità è possibile sviluppare su iOS senza dover pagare l’obolo richiesto, $99 l’anno. Ci sono limitazioni (ad esempio niente push notification) ma è l’account che fa per me. Non ho infatti nessuna intenzione di distribuire la mia app, è un esperimento personale
  • usare documentazione scaduta. Hanno rilasciato una nuova versione del linguaggio (Swift 3) che è incompatibile con il codice precedente che va riscritto. La documentazione però non è stata aggiornata altrettanto velocemente. Quel che è peggio, gli esempi in giro, tutti ormai inutili quando sono buoni così come sono
  • farsi torturare dai cambiamenti di iOS. In questa versione hanno deciso che quei pochi stronzi come me a cui piaceva raggruppare le notifiche per app, debbano andarselo a pigliare in saccoccia. Niente raggruppamento per app e modifiche sostanziali all’intera feature, che è la parte più rilevante della mia stupida, fottuttissima app

Ciliegina sulla torta: hanno ridotto la vita dei certificati per i free developer da 90 a 7 giorni. Cioè non solo l’applicazione, a differenza di Android, “scade” ma adesso per tenerla in vita dovrei compilarla ogni settimana. Uno penserebbe che, pagando l’obolo, potrebbe tenere in vita l’app in maniera perpetua, ma scaduta la licenza annuale punto e a capo: non solo, il certificato andrebbe rinnovato ogni 90 giorni… eccezion fatta per lo sviluppo enterprise ($$$$, improponibile).

L’unica vera alternativa è la pubblicazione nell’App Store con distribuzione dell’app a cani e porci.

A questo punto il Google Pixel comincia a sembrare davvero un ottimo investimento.

-quack

Pubblicato lunedì 17 ottobre 2016 alle 8:51 PM - 17 commenti so far
Archiviato in: Apple

NAS Chronicles

Sono un po’ di giorni che il mio Cray-1 riporta errori sul Pool. Quando vado poi a controllare a mano uno degli HD non è online e comincia il panico. In un’occasione mi è bastato riavviare.

Ieri dopo alcuni minuti interminabili di resilvering il Pool era di nuovo online. Ma per quanto? In attesa di stabilire un piano di attacco ho preferito spegnere tutto.

Forse a causa delle temperature, forse semplicemente usura di uno di 4HD Hitachi comprati a Maggio 2011, è cominciata l’operazione salvataggio. Ho comprato 4 dischi da 4TB, stavolta modelli WD RED; per NAS. Probabile sia un marchingegno del marketing, ma almeno hanno una garanzia di 3 anni.

Ho comprato i dischi da Newegg che, per via dall’esenzione dalle tasse, è risultata essere più conveniente di Amazon. E cercando nello storico ho scoperto di aver pagato un prezzo per TB identico, anche se la qualità - si suppone - sia leggermente migliore.

Il piano:

  1. creare uno snapshot per ogni file system
  2. collegare i 4 nuovi HD in parallelo e lanciare un massiccio copy from to.
  3. staccare i vecchi
  4. rinominare il pool
  5. incrociare le dita

Una volta che tutto è a regime e funziona come prima, si può passare alla fase 2: NAS di backup. A questo punto è diventato una necessità per tutto quello che non è gia backuppato online.

-quack

Pubblicato venerdì 26 agosto 2016 alle 12:13 AM - 1 commento so far
Archiviato in: Hardware