A Ovest Di Paperino

Welcome to the dark side.

  • Apple languages

    Da "iOS Programming: The Big Nerd Ranch Guide” terza edizione.

    In general, when you have a property that points to an instance of a class that has a mutable subclass (like NSString or NSArray), it is safer to make a copy of the object to point to rather than pointing to an existing object that could have other owners.

    Agli arguti lettori il compito di segnalare cosa c’è di grave nella frase di cui sopra. Suggerimento: ci si metta nei panni dello sviluppatore di una libreria.

    -quack

  • Keyboard upgrade

    Premessa: mi piacerebbe avere un altro slot PCI-express per aggiungere un’altra scheda grafica da dedicare ad una nuova macchina virtuale aggiuntiva, ma la mia scheda madre non ha più slot disponibili. Visto che il Cray-1 comincia a mostrare i segni dell’età, essendo nato circa sei anni fa e pensato per uno spazio molto più ristretto dell’ufficietto che ora ho a disposizione, avevo cominciato a guardarmi intorno e chiedermi se semplicemente fare l’upgrade della scheda madre (cambiando case e passando al raffreddamento liquido) o più semplicemente fare un upgrade più sostanzioso grazie ai nuovi processori Intel Xeon W.

    In attesa spasmodica che il primo Xeon W-2123 arrivi sul mercato e decidere se fare o no il super upgrade, ho cominciato a fare piccoli miglioramenti: un monitor da 27” IPS e – da oggi – una nuova tastiera ergonomica. Al momento il Cray-1 è controllato da una tastiera tradizionale ma retroilluminata, compromesso accettabile in quanto non ci passo molto tempo collegato via terminale.

    Sul lavoro è diverso.

    Fino a ieri, l’unica opzione era LA tastiera. Recentemente ho cambiato team e scrivania e il nuovo porta-tastiera è un po’ piccolo per la Ergo-4000. Ho deciso di capitolare e passare alla Ergo Sculpt:

    ErgoSculpt

    Sono solo poche ore e devo dire che, nonostante la corsa dei tasti sia più breve, la migliore posizione ergonomica dovuta alle dimensioni più contenute non mi dispiace affatto. Al mouse ergonomico però devo ancora abituarmici.

    Tre dei miei colleghi ci si trovano benissimo, cosa alquanto rara per qualcuno che passa da una tastiera tradizionale e ciò mi ha convinto a fare il salto.

    Questo post in fin dei conti è un test di battitura e posso dire che finora non ho nessun rammarico.

    -quack

  • Fitbit ionic: il buono, il brutto, il cattivo

    Ho recuperato un Fitbit Ionic, al momento il dispositivo supportato (*) di questo tipo più allineato alle mie esigenze di utente e utilizzatore di iPhone.IMG_2386 Piccola recensione nel solito e familiare formato BBC, buono/brutto/cattivo

    Buono

    • È il primo device Fitbit di questa categoria ad essere completamente impermeabile e subacqueo
    • È molto meno brutto di quanto sembri in foto
    • È più piccolo di quanto sembri in foto, cioè non è un televisore da 56”
    • La durata della batteria, per il mio utilizzo, è più che decente e va facilmente oltre i cinque giorni
    • È dotato di wi-fi e propriamente configurato questo è un piccolo plus
    • È dotato di storage on board e tecnicamente potrei correre musicalmente attorno al mio isolato senza bisogno di portarmi appresso il telefono; all’atto pratico inutile in quanto senza telefono non andrei da nessuna parte
    • Il display è luminoso e fatto molto bene
    • Qualità Fitbit, credo i migliori nel campo per accuratezza e rilevamento gesture: alzo il polso e il dispositivo si illumina
    • Il cinturino si sgancia facilmente quando serve; l’ho sostituito con un affare del genere

    Brutto

    • Costicchia
    • Niente smart-alarm, una figata di Pebble a cui mi ero facilmente abituato
    • Il cavetto di caricamento costringe a tenere il dispositivo in maniera angolata. Sarebbe stato meglio un supporto piatto

    Cattivo

    • SDK

    Sull’SDK, che non merita certo questo titolo, ci sarebbe parecchio da ridire. L’unico alibi che posso immaginare è che abbiano rilasciato un qualcosa di piccolo e ben curato in attesa di migliorare e perfezionare il resto. Però mi sarei immaginato che l’acquisto dell’IP di Pebble portasse più cartucce nel paniere degli sviluppatori. Siccome manca ancora un App Store e la competizione nel settore tra Apple e Android watch è serrata mi aspetto un’evoluzione molto rapida in tempi brevi. Al momento ad esempio non è possibile creare applicazioni native iOS che abbiano una controparte nell’orologio, lacuna che a me sembra molto grave; lo dimostra il fatto di essere una delle feature più richieste dai dev. Devo però osservare che gli sviluppatori Fitbit sembrano essere in ascolto e nel frattempo spero di aver trovato il dispositivo definitivo.

    -quack

    (*) Un’app Fitbit per Pebble sarebbe stato il massimo. Non capisco perché fare un passo avanti e tre indietro.

  • I perboli

    Il più grande repository Git del pianeta, con 3 milioni di file. Ovviamente se si esclude quello di Google, che ne ha 2 miliardi. Tre milioni vs. due miliardi, in tutto tre ordini di grandezza.

    Per non parlare della tecnologia avanzatissima di GVFS, che fa girare git status sulla grandissima code base di Windows in meno di 11 secondi! Wow.

    Effettivamente oggi si può dire che la Microsoft che ho lasciato 5 anni fa è definitivamente morta: allora sono stato quasi cazziato perché volevo usare il codice prodotto da TinyPG, dopo aver ovviamente ricevuto l’OK dall’avvocato del team, in Windows Performance Analyzer (*) tacciandomi di aver messo in pericolo la code-base di Windows.

    Oggi dopo SLiMe (fatto in casa), Visual Source Safe (fatto in casa), TFS (fatto in casa) e Source Depot (comprato via codice sorgente) è la volta della conversione a Git, come un San Paolo qualsiasi sulla via di Damasco.

    -quack

    (*) questo l’ho inventato io: flexible precision on float literals for equality operations is supported. Precision is based on the number of decimal digits that the query contains.

  • I wannacry

    La mia opinione per quanto possa fregare sull'accaduto.
    L'NSA (CIA, KGB, PdP) fa la raccolta differenziata di exploit.
    Gli exploit finiscono pubblicati su WikiLeaks, alla costante ricerca giornaliera del premio Pulitzer.
    Microsoft, come tutti gli altri vendor coinvolti, si fa in quattro per produrre una patch nel minor tempo possibile.
    Qualcuno con poco lavoro impacchetta uno di questi exploit in un ransomware pronto per essere distribuito ai quattro angoli del pianeta.
    L'attacco comincia ad andare a segno. Microsoft, nella persona di Brad Smith, rilascia un comunicato, da cui cito:

    The governments of the world should treat this attack as a wake-up call. They need to take a different approach and adhere in cyberspace to the same rules applied to weapons in the physical world.

    Caro Brad, fermati un istante (cit).
    Nel 2017, nonostante l'hotpatching sia una realtà tangibile, patchare un FOTTUTISSIMO SERVIZIO(*) CHE NON SERVE AD UNA CIPPA TRANNE AGLI ESALTATI COME ME CHE HANNO IN CASA UN SERVER SMB CHE GIRA SU LINUX CON PERSONALITÀ MULTIPLE, c'è bisogno di riavviare il PC?
    Nel 2017, nonostante l'ubiquità dell'Internet of Shit, testare le patch di Windows è ancora un terno a lotto?

    E la colpa è dei governi che fanno la raccolta differenziata? MAVAFFANCULO!
    -quack

    P.S. sono un esaltato ma non un co****ne, quindi ho provveduto già da qualche settimana a circumnavigare il problema diversamente. Materiale per un altro post.

    (*) un servizio, a differenza di una DLL come ad esempio GDI32 che è mappata in un milione di processi, davvero non richiede un reboot. Non nel duemiladiciassette.

  • User hostility

    Contesto: stavo leggendo una recensione di Windows 10S, che secondo alcuni dovrebbe essere il prodotto pensato per competere con Chrome OS nel settore education. Mi son soffermato sulle parole “this is clearly user hostile” in riferimento alla simpatica uscita di bloccare Edge/Bing come default.

    Ho cominciato a riflettere sul quando questo tipo di politica ha cominciato a prendere piede in azienda. Credo che le prime avvisaglie siano arrivate con Windows 8 e la miriade di bachi “by design”. Poi con Windows Mobile-Phone-Mobile e i suoi reboot che lo hanno praticamente accompagnato alla tomba. Alla decisione di XBOX di non supportare il mercato dell’usato e al successivo cambio di direzione.

    Credo che anche in questo caso l’inversione ad U sarà inevitabile.

    L’amaro in bocca rimane.

    -quack

  • Pebbling

    Non è un segreto che FitBit si sia data allo shopping motivata dalla paura di scomparire a mezzo di iWatch & Android Wear. Vector prima, Pebble dopo. Per mia umilissima opinione, stando a leggere le recenti defaillance, FitBit sta imboccando la strada sbagliata: il bello di questi dispositivi focalizzati sul fitness è che hanno bisogno di poca cura. Così mentre la concorrenza rilascia dispositivi resistenti all’acqua e con durata di batteria praticamente eterna (vedasi) FitBit continua – parrebbe – a focalizzarsi su un prodotto che, se rilasciato con GPS, molto probabilmente andrà a competere con i dispositivi caricami-ogni-sera della concorrenza. Ovviamente trattasi di speculazioni personali e mi farebbe piacere, tra qualche mese, scoprire di essermi sbagliato nel momento in cui FitBit rilascerà il dispositivo “perfetto”.

    Nel frattempo…

    Il mercato dei Pebble watch è praticamente crollato. Un Pebble Classic ricondizionato si trova per 25-30$ al supermercato più grande del mondo. Un Pebble 2 HR per circa 70$. Questi giocattoli hanno un vero e proprio SDK con tanto di market e, per quelli dotati di accelerometro, API adatte alla misurazione dei passi. App che fanno da pedometro ce ne sono già un tanto al Kg su github, compresa una che fa l’upload dei dati su un server a piacere. Mi sono detto perché no e ho pensato ad un piano in tre fasi per sostituire il demone che sincronizza i dati via polling tra Servizio A e Servizio B con una WebApp che lo faccia on demand.PebbleTime

    1. Fase 1: scrittura di un client abbastanza robusto e di un server basato su SqlCE con pochissime pretese; il vantaggio è di avere la possibilità di scaricare il file DB in locale e poter semplificare l’eventuale debugging. In questa fase ci sarà una WebAPI a fornire le statistiche giornaliere
    2. Fase 2 (opzionale): modificare il demone in modo da leggere i dati dalla mia WebAPP e testare la sincronizzazione
    3. Fase 3: effettuare la sincronizzazione direttamente sul server appena subito dopo l’upload dei dati

    Al momento ho quasi terminato la fase 1, il client dovrebbe essere pronto e abbastanza robusto e resiliente ai problemi occasionali dovuti alla connessione. Il server, ad occhio e croce, dovrebbe trattarsi di quattro o cinque SQL statement, quindi roba fattibile tra un caffé e un cornetto.

    Intanto ho osservato che il numero di passi conteggiati sul Pebble parrebbe essere addirittura più accurato di quelli del dispositivo corrente.

    Now, let the fun (hacking) begin. 

    -quack

    P.S. alla fin dei conti si tratta, comunque, di un dispositivo FitBit.

  • I miei guai con Windows 10

    Come da tradizione iniziata ormai un decennio fa dal nonno, la lista dei miei personalissimi “guai” con Windows 10, nonostante l’ultimo aggiornamento. Post in continua evoluzione.

    1. SMB/NetBios: non c’è verso di forzare Windows 10 a parlare SMB/NetBios sulla porta 139 (anziché la 445 di default), il che significa un po’ di casini con l’implementazione Linux di SMB. Si risolve disabilitando SMB2/SMB3 su Windows 10 oppure forzando sul server un protocollo antico (pericoloso?)
    2. ho eseguito l’aggiornamento al Creators Update a mano, lanciando l’eseguibile scaricabile dal sito di Microsoft. Persi un po’ di setting come lo sfondo del desktop, alcune impostazioni di rete, browser preferito, ecc. Si può fare l’upgrade passo passo da Windows 3.1 a Windows 7 senza perdere molte impostazioni, ma da Windows 10.1 a Windows 10.2 sembrerebbe una tragedia.

    to be continued.

  • Scacciapensieri

    Operazione nostalgia: negli anni ‘80, l’intrattenimento ludico portatile era affidato agli scacciapensieri, video-giochi con schermo LCD con funzionalità di orologio e sveglia, Alcuni modelli erano alquanto introvabili in Italia e un mio amico aveva stabilito un piccolissimo canale di importazione parallelo dalla Svizzera per i parenti più stretti.

    Il suo preferito personale era il mitico Donkey Kong II a doppio schermo, originale Nintendo e quindi con giocabilità e dettagli incredibili:

    Donkey Kong II

    Alcuni produttori terzi si erano spinti anche oltre il doppio schermo, come nel caso di Diamond Hunt:

    Diamond Hunt

    Erano però gli anni a ridosso della vittoria ai mondiali dell’82 e non potevano mancare schacciapensieri dedicati allo sport nazionale, come Gakken Soccer, distribuito in Italia da Duracell e reperibile anche in un paese di 40mila anime.

    Gakken-SoccerLCDDiff

    Il gioco è abbastanza semplice, si vince segnando 100 goal e non prendendone 3 altrimenti è gameover (gara di ritorno di un’andata piuttosto bizzarra). L’AI è piuttosto inesistente ma per quei tempi un vero e proprio miracolo e seppur in assenza di guardalinee l’implementazione del fuori-gioco è estremante accurata. Si segna facendo correre la palla lateralmente tramite passaggio, perché il portiere è perfettamente allineato con il giocatore che porta palla ed evitando il fuorigioco. La modalità più difficile è resa tale rendendo il comportamento del compagno di squadra senza possesso palla aleatorio e imprevedibile.

    Oggigiorno disponibile agli stessi prezzi originali aggiustati di inflazione, sul distributore ufficiale di nostalgia: ebay.

    -quack

  • Nirvana 2017

    NIRVANA

    7 Aprile 2017, raggiunto il Nirvana della virtualizzazione spinta. Avessi immaginato gli incredibili benefici di passare da BIOS a UEFI, l’avrei fatto il prima possibile: il supporto in KVM/libvirt/QEMU/virt-manager è novità recente, ma non ha mai ispirato tanta fiducia.

    Ebbene sì, il Cray-1 è rinato al punto che ho messo da parte l’idea di ricostruire il PC con ferraglia più recente, solo magari per avere accesso ad una porta PCI-e x16 in più. Grazie a UEFI sono riuscito a recuperare l’utilizzo della scheda grafica integrata nello Xeon, che in modalità BIOS grazie ai bachi di Intel era inaccessibile. Mi è anche venuto il pallino di provare a vedere lo stato delle cose dal punto di vista vhackintosh: il proliferare di guide su come fare a creare una macchina virtuale KVM con tanto di hardware assegnato mi ha fatto ben sperare. Il fiorire di booloader basati non più su BIOS ma su EFI è incredibilmente incoraggiante. C’è persino qualcuno che sta implementando il parsing di HFS+ in TianoCore, il firmware UEFI open source utilizzato per far girare questo tipo di macchine virtuali.

    Qualche piccolo ostacolo: l’ultimo aggiornamento di MacOS è incompatibile con l’implementazione corrente del pezzo di software virtuale che emula il chippettino proprietario di Apple, ma c’è già una patch che coinvolge un singolo file in tutto QEMU. Come si fa a non provare?

    Armato di tantissima pazienza ho persino imparato un paio di cose su Ubuntu/Linux: ad esempio una volta configurato il file del repository è possibile scaricare il sorgente di qualsiasi app di sistema con un paio di comandi. Ricompilare, una volta ravanata la configurazione dei flag di compilazione, è stato un gioco da ragazzi. E se poi si volesse prevenire l’aggiornamento dell’app patchata ad hoc, c’è sempre il pinning.

    La grana successiva: Apple non riconosce i controller USB dei chipset intel onnipresenti. È bastato comprare un controller PCI-e dedicato con supporto OSX nativo basato sui chip Fresco Logic per risolverla. L’ultimo corpo estraneo nella configurazione della macchina virtuale è rimasto il boot-loader. Se si volesse fare a meno di virt-manager/libvirt e accontentarsi di lanciare la macchina virtuale da riga di comando, la soluzione persino c’è. Last but not least, le versioni di Kernel successive alla 4.7 (e per fortuna per Ubuntu 16.04 LTS è disponibile la 4.8), rendono inutili un altro piccolo pezzo di configurazione da fare a mano. Insomma in tre parole: si può fare. Fine dell’esperimento.

    Cos’è quindi il Nirvana? Sapere che il Cray-1 a livello SW non è più un accrocchio di patch e ricami per supportare questo e quell’altro (Solaris, il passthrough della scheda grafica con supporto al boot, ZFS, SMB, ecc. ecc.), ma qualcosa che funziona sempre più completamente out-of-the-box, oggi giorno una rarità. Peccato solo aver dovuto abbandonare Windows 7: i suoi ultimi bit sono stati sparsi al vento un paio di ore fa.

    -quack

    P.S. KVM/libvirt/qemu è una figata.

  • Hello Windows 10

    È stato un weekend lungo, in tutti i sensi: venerdì giornata premio libera e ho pensato di spendere “qualche ora” facendo l’upgrade della scheda grafica sul Cray-1. La nuova supporterebbe UEFI nativamente e mi son chiesto se fosse possibile semplificare ulteriormente le cose nel dipartimento configurazioni complicate.

    La parte HW è andata liscia come l’olio, quasi surreale. Assegnata la scheda grafica alla workstation è partito quasi tutto tranne la parte di pre-boot (BIOS e splash screen) tornata a funzionare male come ai tempi di Xen. Mi son preposto di passare ad una configurazione basata su UEFI e leggendo un po’ di guide qua e là sembrava una passeggiata. Ho convertito lo schema di partizione da MBR a GPT, fatto i giusti incantesimi, osservato Windows 7 fare il boot: e dopo lo splash screen resettarsi.

    Mi è sembrato il caso di reinstallare l’OS daccapo, usando persino una guida messa insieme su queste pagine per generare un’immagine ISO bootabile con UEFI. Ma non sono riuscito neanche ad arrivare alla fase di inizio installazione. Freeze e reboot a manetta.

    Ho deciso di tentare l’esperienza UEFI con Windows 10, che per fortuna si può provare senza dover avere a disposizione una licenza (ennesima inversione ad U rispetto a Windows 8). L’installazione è stata completamente indolore, nessun magheggio strano per configurare la scheda grafica e la procedura è stata portata a termine “in locale”, cosa praticamente infattibile con Windows 7. Una feature che, purtroppo, per me vale la pena dell’upgrade.

    Finita l’installazione, son cominciati i problemi. Il più antipatico è stato l’accesso alle share SAMBA. A quanto pare l’handshake con il server SMB, se si lascia aperta solo la porta 139, non viene eseguito correttamente. Aprire la porta 445 risolve il problema ma manda all’aria tutta la configurazione fatta e spiegata in questa pagina.

    Alla fine son riuscito a trovare una pezza: disabilitare SMBv2 su Windows 10 oppure forzare un protocollo anzianotto direttamente sul server attraverso la linea di configurazione in smb.conf:

    server max protocol = NT1

    Problema numero due, installare Windows Live Writer (non più supportato e quindi nisba) e rimpiazzato con la versione “open”. Dovrò pertanto sistemare un paio di cose.

    Spero di non pentirmi di questa scelta. Per cautela ho installato Windows 10 su un disco fisico diverso con l’intenzione di preservare il vecchio OS in caso di emergenza.

    Nota di disgusto per la schermata di boot identica a quella monocolore/insapore di Windows 8. Tra tutte le versioni che ho installato in vita mia (praticamente tutte da Windows 3.1 in poi) decisamente la più brutta in assoluto.

    E ora auguratemi buona fortuna.

    -quack

  • NAS Chronicles Extended

    Ad Agosto era cominciata una brutta tribolazione.

    Uno dei dischi continuava a dare errore.

    Ho sostituito tutti i dischi cogliendo l’occasione di passare da un 4x3 ad un 4x4.
    E niente. L’errore era ancora lì. Un disco a caso del pool, resilvering, yadda-yadda-yadda.

    Brividi.

    Ho sostituito il controller, cogliendo l’occasione per passare da un PCI ad un PCIe e guadagnare in velocità.

    L’errore è ancora lì, seppur adesso uno scrub mi richiede 10 ore anziché due giorni.

    Ho sostituito i quattro cavetti SATA.

    Niente.

    A questo punto l’ipotesi più probabile mi sembrava un problema software, possibile visto il passaggio da Solaris a Ubuntu come Host ZFS. Brividi ancora peggiori. Ipotesi però smentita dall’osservazione che in presenza di errori anche il reboot dava problemi.

    Ho pensato che uno dei nuovi HD avesse problemi. Sudori freddi.

    E invece… ho scambiato i cavetti di alimentazione. Gli errori son passati dall’HD del pool soprannominato RICKY a quello accanto.

    Sostituisco tutti i cavetti di alimentazione. Son passate 3 settimane e fatti i dovuti scongiuri, più nessun problema.

    Ma che diavolo, alla fine è sempre colpa del cavo e sempre quello meno sospetto.

    -quack

  • Nesting up

    È notizia recente che Nest abbia deciso di aprire le vendite anche in Italia: il caso ha voluto che, grazie alle solite promozioni natalizie ed un incentivo dell’equivalente locale Enel, abbia ordinato un termostato proprio la settimana scorsa, che ho poi prontamente installato. Versione 2 ricondizionata, basta e avanza per le esigenze di casa. Ovviamente solo dopo aver controllato la compatibilità, che per il modello 2 e seguenti è praticamente totale, con l’impianto di casa. Ero anche molto seccato del fatto che non sono mai riuscito a far funzionare correttamente quello pre-esistente: nessun modo per fare un override tombale della temperatura che, passato un determinato intervallo, torna ad essere quella decisa a caso dal produttore del vecchio termostato.

    Controllare la compatibilità è stato abbastanza facile, smontato il frontalino del vecchio termostato con due viti mi son ritrovato di fronte a questo:

    IMG_6218

    Praticamente tre fili: neutro, ventola e riscaldamento. Cosa buffa è che la parte più difficile di tutta l’operazione, che avrebbe potuto fare anche mio nonno, è risultata la carpenteria: non è stato proprio semplice attaccare la base di supporto al muro di cartongesso tipicamente americano ma ce l’ho fatta in pochi minuti e senza bisogno di tool elettrici.

    È seguita una brevissima fase di configurazione, creazione di un account e adesso è possibile controllare la temperatura di casa da remoto. Può sembrare un eccesso ma in realtà la cosa ha risvolti molto pratici. In più è il termostato che impara le nostre abitudini e non io che imparo come usare il termostato e ciò mi sembra la direzione giusta da intraprendere.

    Morale della favola: una operazione che avrei dovuto e voluto fare tempo fa, ma il backlog degli aggiusti casalinghi era abbastanza lungo. L’offerta però a questo giro non si poteva davvero rifiutare:

    IMG_6243

    -quack

  • Comprare un windows laptop nel 2017

    La formichina mi ha chiesto di fare l’upgrade del suo laptop, un Celeron di cinque e più anni fa che a far girare Chrome proprio non je la fa più. Neanche il formattone-installo-solo-chrome ha ridato indietro abbastanza cicli CPU per rendere la macchina sufficientemente scattante.

    Ho cercato quindi un laptop altrettanto decente e il primo tentativo è stato un Inspiron 5000 da 15”. Devo dire che negli ultimi 5-6 anni questa classe di laptop è cambiata tantissimo ed è tipico trovarci una tastiera da 5 ottave di serie. Il mostro è arrivato con un HD da 5400RPM previa intenzione di sostituirlo con un SSD a riposo. L’ho fatto partire e dal momento della pressione del power buttòn all’arrivo col desktop usabile (Windows 7) sono passati 21 minuti e qualche secondo! Morale: gli HD meccanici da 5400RPM dovrebbero essere dichiarati illegali come dischi di sistema. Ci ho montato l’SSD, reinstallato Windows 7 via USB generata dal tool incluso e niente… il trackpad è risultato praticamente inusabile; dopo l’aggiornamento del BIOS/driver le cose sono migliorate parecchio ma sempre inusabile è rimasto e il laptop ha preso la via del ritorno. A corredo c’era un DVD per l’installazione di Windows 10 che non ho neanche aperto.

    Ho ordinato e ricevuto quindi un Latitude E5270 in super offerta. L’hardware appartiene ad una categoria superiore a quello dell’Inspiron essendo mirato all’utenza professionale. 12.5” invece di 15” per soli 10$ in più. Il software, Windows 10 preinstallato, invece no. Sostituito l’HD meccanico con un SSD adatto da 7mm, sono cominciate le difficoltà. Fosse stato destinato a me forse Windows 10 l’avrei pure riprovato, ma nel caso specifico Windows 7 è praticamente una necessità. Il problema è installarcelo: il portatile ha dei nuovi chipset per l’USB3 non riconosciuti da Windows 7. Questo dopo l’ovvio smanettamento nel BIOS per disabilitare il secure boot (ricordo quando i folli ci dicevano che non sarebbe stato possibile) e reimpostazione di qualche setting. Tutto normale e pacifico ma mi chiedo ad esempio perché la compatibilità all’indietro con i driver per USB2 non è stata nemmeno considerata (bad Intel!) o perché Dell non abbia deciso di aggiungere un piccolo controller USB2 aggiuntivo ad uopo (bad Dell). Insomma, per installare Windows bisogna aggiungere i driver di Intel all’immagine di installazione, operazione per la quale è disponibile un tool di Intel scritto da qualche stagista in una tabaccheria: alla fine ho fatto a mano e l’installazione è partita. Devo però aver sbagliato qualcosa visto che i driver USB3 non sono stati installati sul sistema di destinazione: ergo niente accesso alla USB, rete wired o wireless. Un vero PC a prova di hacker! Ovviamente potrei rismontare l’HD (sono solo dieci viti), attaccarlo ad un altro PC e copiarvici i driver offline, ma non riesco a trovare il mio adattatore SATA-USB. Al momento il laptop è perciò in limbo mentre mi appresto a tentare la via distro-live su USB seguita da copia offline.

    Quel che è certo è che la quantità di tempo investita nel downgrade è davvero notevole se si assomma un tentativo abbastanza naif di tirare su un server PXE, materia abbastanza interessante da dover essere necessariamente approfondita. E se Sparta piange, Atene non è che se la stia spassando.

    Probabilmente questo sarà l’ultimo e definitivo PC acquistato; PC inteso come discendente da quell’IBM XT rilasciato al mercato 30 e passa anni fa, fatto salvo il ciclo di refresh per il Cray-1 che intravedo all’orizzonte. Traghetterà la formichina fino alla morte naturale del laptop stimata a qualche anno oltre la fine del supporto di Windows 7; considerando che ci gira un Core i5 e non un Celeron qualsiasi. Quasi sicuramente sarà sostituito da qualche forma di tablet/chromebook + servizio (a là Office365) che oggi ancora – purtroppo – non esiste. O chissà.

    -quack

    UPDATE: sono riuscito a piazzare i driver tramite Ubuntu e da li ho fatto il bootstrap. Dopo aver installato tutti i driver dal sito Dell (ben fatto!) Windows Update non ne voleva sapere, neanche dopo aver installato a mano il roll-up.
    Riformatto, installo i driver wi-fi e Windows Update è ancora incragnato.
    Scopro che il setup di tali driver sembra corrompere il DB di WU. Allora scompatto tutto e mi limito ad installare tramite Device Manager e ora sta scaricando circa un GB di updates… che sofferenza.

    UPDATE 2: mentre facevo totalmente altro, mi son imbattuto in questo link: Windows 7 Fast Update. Davvero prezioso.

  • 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.

  • 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.

  • 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

  • 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

  • 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

  • iPhone 6s: il buono, il brutto e il cattivo.

    Sono un paio di settimane che il mio iPhone 6S è diventato “il” cellulare che mi porto appresso e volevo fare un paio di considerazioni soprattutto quando confrontato con il mio cellulare precedente.

    Stiamo parlando di due telefoni appartenenti a fasce diverse visto che, sconto aziendale incluso, un Nexus 5X oggi costa meno della metà dell’iPhone 6S.

    Cominciamo allora con…

    …il buono
    Le prestazioni sono da favola. Apple usa alcuni trucchetti tipo tenere in cache l’ultima schermata dell’applicazione per dare l’impressione che il dispositivo sia più responsive. Nonostante la quantità di RAM sia la stessa quando lancio Facebook non mi tocca mai aspettare meno di qualche secondo, nella maggior parte dei casi si tratta di decimi. Sinceramente non so se la qualità della RAM e del processore possa avere un tale impatto, resta il fatto che i display hanno risoluzioni diverse e questo potrebbe incidere. Sarei stato felice se il Nexus 5X avesse avuto la stessa risoluzione se le prestazioni fossero state paragonabili, ma così non è.
    Per riflesso questo si traduce anche in una foto-camera eccellente. Per il tipo di foto che faccio il burst mode funzionante (no, Camera X non ne ha uno) è altrettanto importante. Sono pure parecchio sorpreso che il buon vecchio HTC OneX ne avesse uno eccellente già anni fa mentre nel 2016 si è ancora legati troppo alla CPU. Devo dire però che in alcuni casi la fotocamera del Nexus 5X, tipo in condizioni di luce fioca, si comporta molto meglio. Mi sarei aspettato l’eccellenza ma è chiaro che la concorrenza sia parecchio agguerrita.
    Ho osservato sprazzi di usabilità superiore, tipo quando si cambia una SIM e il sistema chiede di riconfigurare automaticamente il tutto: splendido.
    Lo schermo è ottimo, mi piace molto la tonalità dei colori.
    Il lettore di impronte funziona esattamente come dovrebbe ma essendo standard da un bel po’ ha un supporto migliore da parte delle applicazioni: tipo potrei loggarmi in banca semplicemente cliccando sul pulsante.
    Infine tra le cose buone ho potuto osservare un’ottima durata della batteria: col mio Nexus 5X ci finivo spesso la sera sotto il 15%, per ora invece con l’iPhone mi ritrovo quasi sempre oltre il 50%.

    Il brutto
    L’ecosistema è piuttosto odioso e questo mi costringe ad utilizzare app di terzi: outlook per gli indirizzi hotmail e Gmail per quelli Google. Stessa cosa per il calendario e il player (l’app musicale di Apple non l’ho praticamente mai aperta). Considero l’ecosistema dei servizi Google parecchio superiore.
    Siri: una piccola delusione che fa capire quanto l’AI di Google sia diversi ordini di grandezza migliore della concorrenza. Usare Bing per le ricerche poi è di una tristezza incredibile.
    Sistema piuttosto ingessato: così ingessato che certe cose, tipo installare una tastiera, richiedono arzi-gogoli incredibili. La fatica poi per installare due suonerie personalizzate è a livello marziale. Mi dispiace davvero per chi non ha avuto modo di conoscere la libertà che offre Android.
    Il launcher modello 3.1 (vs. quello win95 di Android dove il desktop non è il repositorio delle app ma un modo per accedere a quelle più interessanti) è molto primitivo. Se un app non interessa e non è disinstallabile bisogna relegarla in un folder che però non può contenere più di 9 app altrimenti le icone in miniatura non sono visibili. Scelta davvero del piffero che mi ha portato ad avere un folder propriamente chiamato “Apple Crap”.
    Lo standard cavettistico proprietario che impone di avere il cavetto benedetto da Apple: tristezza infinita.

    Il cattivo
    Non ho trovato praticamente niente di cattivo anche se quasi tutto ciò che è brutto è quasi a livello di cattivo.

    Spero che il prossimo Nexus, possibilmente basato sul nuovo Snapdragon, valga la pena di farmi tornare indietro. Usare le Google Apps su iOS fa sentire un po’ pesci fuor d’acqua.

    -quack