Impressioni di Settembre

È passato più di un mese dal mio arrivo in Big G e volevo raccogliere un po' di impressioni in questo post. Mi ritengo una persona fortunata perché ho fatto di una delle mie passioni un lavoro felicemente retribuito. Quando ho lasciato la precedente "grossa azienda" sapevo di perdere 'qualcosa' in cambio di avventure sicuramente meno stressanti, qualcosa che non riuscivo a definire con chiarezza. Per raccontare meglio devo però necessariamente fare un piccolo passo indietro agli ultimi tre o più anni lavorativi e chiedo scusa se questo post possa essere letto come troppo "comparativo".
Ho lasciato l'astronave madre nel 2012, sicuramente in uno dei momenti più bui della storia di Microsoft, secondo solo ai vari giri di licenziamenti più recenti: Sinofsky all'apice del potere, le policy del personale al massimo dei danni, Windows sull'orlo di una crisi di nervi. Passare ad Intentional, azienda che sviluppa in C#, è stato il modo migliore per minimizzare l'ansia da rientro pluridecennale nel mercato del lavoro: noi italiani, culturalmente parlando, non siamo molto affini con l'idea di una carriera improntata e supportata dal cambio di azienda. Intentional mi ha lasciato la possibilità di avere un ufficio da arredare, Windows come piattaforma di sviluppo e l'accoppiata fantastica C#/Visual Studio.
Ho perso il comfort di questa familiarità quando ho fatto il passo successivo: un'offerta di lavoro molto interessante, ricevuta nel momento perfetto, per fare qualcosa in Java che sapevo fare anche "appeso bendato a testa in giù e con le mani legate dietro la schiena". Non più un ufficio, ma un openspace; non più VS ma un dover scegliere tra NetBeans e IntelliJ (di Eclipse non se ne parlava neanche). Ho reimparato in fretta Java non senza sentirmi spesso ammanettato dalla mancanza di alcuni costrutti molto pratici disponibili in C#. A questo punto ho pensato di essere pronto a tutto tranne al panico.
Quando ho deciso di lasciare l'azienda precedente ho pensato di prendere in considerazione le tre classiche "big corporation" dell'informatica con una forte presenza locale ovvero Amazon, Facebook e Google. L'esperienza di tornare a fare colloqui è stata in parte elettrizzante, tra siti che raccolgono questo tipo di domande, colloqui telefonici, screening, pre-screening e loop "dal vivo". Tra le tre, anche per motivi logistici (Amazon e Facebook hanno la sede in Seattle: bisogna macinare miglia, attraversare il tratto di autostrada più costoso al mondo, ingiacchiarsi per il parcheggio, ecc.), avevo forti preferenze per Google ed alla fine - il destino - ha voluto così e oggi sono qui.
Com'è Google? Gli aspetti positivi sono tanti e dal punto di vista della mia carriera un paio sono quelli che mi hanno convinto che in questo momento sono nel posto giusto:

  • i manager fanno i manager; si occupano semplicemente di rendere gli sviluppatori produttivi; la guida tecnica è delegata agli sviluppatori senior (technical lead o technical lead manager). Un manager viene giudicato dalla sua abilità di promuovere gli sviluppatori che lavorano per lui; più il manager riesce a promuovere, più il manager viene premiato/promosso a sua volta. Per evidenziare meglio questo il metro per un manager in Microsoft, quando ho lasciato, era nella sua abilità nell'applicare la curva che tradotto in soldoni significa avere a disposizione un 10% di sottoposti da mazzulare (in Amazon è anche peggio). In due parole in Google un buon manager è semplicemente un ottimo leader e al servizio degli sviluppatori
  • la valutazione delle performance non dipende dal manager, che ha un ruolo di coordinatore/guida per la carriera, ma dal feedback dei propri pari. Se sei un testa di pazzo che pugnala a le spalle i colleghi in modo da dare al tuo manager la testa da mettere sul vassoio qui fai una brutta fine. Mi è stato ripetuto più volte che il modo più facile di fare carriera è di essere un fantastico team player
  • la promozione è un processo estremamente formale che può essere avviato senza l'intervento del manager; durante i periodi in cui è aperta la fase di valutazione, basta mettere un check su una box per attivare tutti i meccanismi necessari
    Dal punto di vista tecnico l'articolo su Wired è molto puntuale (le motivazioni descritte in questo video). Sinceramente devo dire che sono rimasto estremamente sorpreso dai tool di sviluppo che a confronto di quanto era a mia disposizione nel 2012, nell'azienda software più grande del mondo, sono fantascientifici: non sono perfetti, dal punto di vista del debug le limitazioni sono molto forti, ma per il resto davvero chapeau. Scrivere codice che gira in maniera trasparente su più datacenter distribuiti geograficamente è ovviamente complicato.

A parte questo, nelle cose di tutti i giorni relative allo svolgere il proprio lavoro, devo dire che in alcuni aspetti questo posto è meglio dell'altro: ogni sviluppatore è dotato di laptop (a scelta tra Windows/Linux/OSX) (in MS-2012 era un 'lusso' solo per dev lead); le policy di acquisto/ordine di materiale e di viaggio sono completamente liberali; e oltre a tutto questo cibo e snack gratis secondo l'imperativo che tra ogni scrivania e un chioschetto con gli snack ci devono essere non più di venti metri.
Concludendo: le mie impressioni sono molto positive, quello che faccio mi diverte: sono in una fase in cui sto imparando un sacco di cose e mi ritengo circondato da ingegneri estremamente talentuosi. Mi sarei aspettato un ambiente di sviluppo un po' più arcaico (trattandosi di Java) ma mi son subito dovuto ricredere. Ne riparliamo tra qualche mese per scoprire se si tratta di una luna di miele oppure no (*).
-quack
(*) a giudicare dalla serenità gestuale dei miei colleghi credo proprio di no.

Pubblicato martedì 22 settembre 2015 alle 7:34 PM - 9 commenti so far
Archiviato in: Google, Cazzate

Upgrading Cray-1

È passato un bel po’ di tempo dal momento in cui “ho chiuso i giochi” su Cray-1. Credo ferventemente nella legge 0 dell’informatica per cui “se qualcosa funziona non si tocca”.

Ma se qualcosa comincia a non funzionare… Ad esempio la strategia di backup si basa su CrashPlan che gira su Windows Home Server. I file però risiedono su un pool RAID-Z gestito da una macchina OpenIndiana para-virtualizzata a cui WHS vi ci accede usando una modalità poco ortodossa. Un paio di volte è già capitato che il mount delle share non è partito in tempo causando un backup parziale. In poche parole ci sono troppi ingranaggi in moto anche se tendenzialmente “tutto funziona”.

Poi mi è capitato di leggere che KVM nel frattempo è migliorato parecchio e il VGA passthrough pare superiore anche a quello di XEN.

E poi ho provato ZFSONLINUX, migrando un pool da Nexenta 3.0 (stessa versione usata per creare il mio pool) a Ubuntu senza tanto dolore; scoprendo che è possibile usare un server SAMBA decente e anche le ACL Posix con ZFS con semplicemente:

# zfs set acltype=posixacl <dataset>

E allora fatti due conti… un nuovo setup basato su Ubuntu eliminerebbe la necessità di una VM per Solaris. Eliminerebbe la necessità di far girare CrashPlan su Windows Home Server, che eliminerei completamente affidandone i due ultimi compiti rimasti ad altri PC già esistenti. Risulterebbe in una virtualizzazione di Windows 7 migliore. E possibilmente in una virtualizzazione di OSX, magari in dual boot con Windows ora possibile visto che il BIOS viene sparato sull’uscita della VGA anziché in maniera cieca.

La tentazione è forte.

-quack

Pubblicato mercoledì 25 marzo 2015 alle 6:19 PM - 2 commenti so far
Archiviato in: Virtualizzazione

Accesso Fisico

Siore e siori, Thunderstrike (notizia non molto fresca, ma da reazioni alquanto inquietanti).

Un paio di simpatiche citazioni:

"Since the boot ROM is independent of the operating system, reinstallation of OS X will not remove it. Nor does it depend on anything stored on the disk, so replacing the hard drive has no effect. A hardware in-system-programming device is the only way to restore the stock firmware."

e

"There are neither hardware nor software cryptographic checks at boot time of firmware validity, so once the malicious code has been flashed to the ROM, it controls the system from the very first instruction," Trammell Hudson said. "It could use SMM and other techniques to hide from attempts to detect it."

I soliti “apologisti” sono già al lavoro per spiegarci che Apple ci metterà una pezza, dimenticano – o forse non comprendendo – che si può sempre fare un downgrade attack sui laptop già esistenti (quelli futuri pure, conoscendo i signori di Cupertino).

Poi ci spiegano che purtroppo di fronte all’accesso fisico e l’attacco della evil maid, non si può fare niente. Peccato eh, sono quasi dieci anni che è stato rilasciato Windows Vista e coi computer con TPM è possibile sigillare il sistema quasi completamente (*). Però il TPM era quell’aggeggio che avrebbe consentito a MS la dominazione globale garantendo al tempo stesso che gli utenti sarebbero stati colpiti da un pianoforte entro 30 giorni dall’acquisto.

-quack

(*) La cameriera cattiva potrebbe sostituire il disco di boot, con un disco che emula la schermata del PIN di bitlocker permettendo di memorizzare il segreto da qualche parte, per poi riavviare il PC “normalmente”. Questo assumendo che l’utonto non si accorga della procedura di avvio stranamente insolita… sì, vabbè, come no…

Pubblicato venerdì 23 gennaio 2015 alle 7:22 PM - 8 commenti so far
Archiviato in: Apple, Security

Activity tracking

Recentemente mi è venuta la fissa di misurare l’attività fisica giornaliera nel tentativo di raggiungere e mantenere l’obiettivo standard “americano” di 10mila passi al giorno.

È un periodo decisamente interessante per quanto riguarda i dispositivi da polso con l’iWatch in dirittura di arrivo e tanta roba interessante, rilasciata nell’arco di un paio di settimane appena trascorse: Fitibit Charge, Sony SWR30, Basis Peak ma anche Striiv Touch, Garmin Vivosmart, ecc. Ne ho provati quattro ed i criteri che mi interessavano sono:

  1. che sia abbastanza accurato e misuri quello che mi interessa (passi, minuti attivi, qualità del sonno)
  2. un dispositivo che somiglia più ad un braccialetto che ad una pacchianata (questo esclude i vari Android Wear, iWatch, Microsoft Band, ecc.). Le pacchianate purtroppo consumano parecchio in termini di batteria e ricaricare un altro gadget con frequenza giornaliera o quasi non è entusiasmante
  3. che sia possibile leggere lo stato direttamente dal dispositivo senza dover necessariamente passare dal cellulare
  4. che ufficialmente (o meno) sia possibile leggere qualche notifica sul dispositivo (non mi interessano i vari twitter/mail/facebook ecc.)
  5. che dia la possibilità di accedere ad una comunità che permetta di confrontare statistiche, cosa che di persona personalmente trovo estremamente motivante
  6. che sia economico, spendere cifre che si aggirano intorno ai 200$ per un cassillo del genere mi sembrano esagerate visto il tipo di attività prevalentemente hobbistica
  7. che non richieda molta “manutenzione”

I quattro che ho provato, e le return policies in america sono una figata per questo, sono in ordine cronologico:

Fitbit Flex, è stato il primo e mi ha aiutato a capire cosa veramente mi interessa. La comunità di Fitbit è fatta benissimo, ho agganciato una decina di amici particolarmente attivi. Purtroppo però ho capito che mi sarebbe piaciuto avere un dispositivo con un display che supporti le notifiche e quindi possa mostrare il progresso ottenuto usando numeri anziché LED. Il fatto che abbiano annunciato nuovi modelli poco tempo dopo il mio acquisto non ha neanche aiutato tanto a digerire il Flex.

Il secondo cassillo è stato un dispositivo che sulla carta sembrava avesse tutte le carte in regole, lo Striiv Touch. Purtroppo all’atto pratico il software sul lato Android era molto scarso (hanno rilasciato da pochissimo un aggiornamento quindi qualcosa potrebbe essere cambiato). Si aggiunga pure qualche vistosa cappella, come ad esempio il fatto che nella modalità sleep non è possibile leggere l’ora e una durata della batteria alquanto scarsa e… anche lo Striiv Touch ha intrapreso la via del ritorno. Ero riuscito a raggiungere l’obiettivo di inviare notifiche personalizzate al dispositivo, che di suo sulla carta doveva essere in grado di mostrare tutte le notifiche di Android, ma con un’affidabilità molto bassa. L’assenza di una controparte cloud, e con essa una qualsiasi forma di comunità, è stato il colpo di grazia.

Sono passato a provare il Garmin Vivosmart che dei quattro considero la migliore implementazione hardware in assoluto. Anche questo dispositivo sembrava potesse farcela: purtroppo come spesso accade ad hardware eccellente viene accoppiato software scritto con i piedi. Il Vivosmart fa intenzionalmente l’unpair – e quindi richiede il pair – ogni volta che deve connettersi al cellulare. La cosa incredibile è questo non avviene quando il dispositivo va fuori range o si spegne il bluetooth, il pairing rimane attivo fino a quando si decide di far parlare fra di loro i due oggetti. Garmin giustifica la cosa con la necessità di bilanciare l’uso con la sicurezza, facendomi credere che temino lo spoofing. L’app dovrebbe fare il pairing automaticamente in background, ma con il Nexus 4/5 questo non funziona. Peccato perché il sito online è fatto abbastanza bene, anche se nella community non vi ci ho trovato praticamente nessuno; e peccato perché si tratta dell’unico bracciale che si può portare sotto la doccia (lo Striiv promette la stessa cosa ma non mi è sembrato “robusto”).  Ultima pecca abbastanza antipatica è il fatto che lo sleep tracking sia mostrato male, con un grafico sull’intensità del movimento che dice poco sulla qualità del sonno in generale. Anche in questo caso, un aggiornamento di qualche giorno fa parebbe aver migliorato il pairing, ma non ho avuto modo ovviamente di provarlo.

Finalmente è arrivato il turno di parlare del mio acquisto più recente e si spera permanente: il Fitbit Charge. Comprato ad una svendita durante il Gray Thursday (*). Offre tutti i vantaggi della comunità numerosa di amici su Fitbit e l’accesso, tramite hackeraggio alquanto istruttivo, al sistema di notifica piuttosto discreto. Durata della batteria stimata intorno alla settimana, connessione BT che funziona SEMPRE quando deve (**), statistiche accurate con la possibilità di calcolare il dislivello in piani grazie all’altimetro e possibilità di misurare la qualità del sonno SENZA DOVER FAR NIENTE a parte indossare il cassillo come un comune orologio. Unica pecca è il non poter indossare il dispositivo durante una doccia o una nuotata, ma per me non sembra un grande problema.

L’hackeraggio dell’app è stato molto divertente per chi come me si diverte a guardare, in casi estremamente circoscritti, il codice di altri. Nello specifico ho notato che una classe incaricata di osservare le notifiche di telefonate in arrivo avesse già la predisposizione nel fare altro. Mi è bastato modificare il manifest dell’app, reimpacchettarla propriamente et voilá la mia app Android può notificare il mio FitBit mandado un messaggio chiamato spiritosamente CAZZABUBBOLA.

Nella mia ricerca mi sono imbattuto ed ho studiato – a livello di visione del codice – anche altri prodotti interessanti:

  • Timex X20/Soleus Go (stesso HW, software leggermente diverso; affetto da gravi problemi di connettività BT e mancanza di Community)
  • Vidonn X5, interessante solo per via dell’esistenza di un’app parallela completamente open source
  • Razer Nabu, appena uscito fresco ma molto aperto a sviluppo esterno con tanto di SDK
  • Pivotal, alquanto interessante visto il prezzo estremamente contenuto; ma ha funzionalità piuttosto limitate

Per ora sono più che soddisfatto, ma il rilascio della versione con Heart Rate monitor del FitBit Charge potrebbe rendere il tutto ancora più interessante.

-quack

(*) Gray Thursday è il nome che i telegiornali hanno dato alle svendite del Black Friday nei negozi fisici che aprono già nella serata del Thanksgiving; pratica purtroppo orribile ma necessaria a contrastare il fatto che i negozi online, data la loro peculiarità di non richiedere personale aggiuntivo, cominciano le svendite un giorno in anticipo

(**) in realtà il primo pairing mi ha dato qualche problema al punto che ho dovuto resettare completamente il mio android. Per fortuna non avevo niente da backuppare a causa di un reset precedente di qualche giorno prima.

Pubblicato sabato 27 dicembre 2014 alle 6:02 AM - 75 commenti so far
Archiviato in: Hardware

Post di servizio - Dicembre 2014

Chiedo venia per il post Out Of Band.

Mi piacerebbe sapere, tra i lettori che seguono via RSS feed, quale reader online/offline usate.

Grazie per la cortesia.

-quack

Pubblicato lunedì 1 dicembre 2014 alle 11:59 PM - 33 commenti so far
Archiviato in: Blog-Tech