martedì 27 marzo 2018

Come godo!! Corsair K63 power in my hands!

Ho comprato una spettacolosa tastiera Corsair K63.

Riepilogo ultime tastiere comprate:
  • giugno 2005: set mouse+tastiera Logitech Cordless Desktop EX-110 a infrarossi;
  • maggio 2015: Logitech K480 bluetooth;
  • marzo 2018: Corsair K63 USB.

Le Logitech sono "a membrana". La K480 è particolarmente rumorosa. Ho abbandonato Logitech e sono passato a Corsair perché volevo:
  • una tastiera meccanica, cioè comoda e veloce;
  • con connessione USB, perché da un bel po' non ho più bisogno di spostarla dalla scrivania;
  • ma non me ne importa quasi un fico secco del ghèmingh.
Ho scelto la Corsair K63 perché:
  • prezzo più abbordabile rispetto alle Wasd Ergodox Atreus etc;
  • tasti "lineari" Cherry MX Red (non sono quelli con lo "schiocco" troppo rumorosi da usare di notte);
  • senza il ridicolo tastierino numerico (del quale praticamente usavo solo il tasto Invio).
Caratteristiche dei tasti della Corsair K63:
  • l'evento "premuto un tasto" non richiede di schiacciare fino in fondo, ma solo fino a metà circa ("acchiappando" così anche le cliccate frettolose);
  • la forza di attuazione di un tasto è 45 centiNewton, cioè moderatamente leggera; sembra un pochino più riposante delle sopracitate Logitech;
  • dicono tutti che è "più veloce", per "dattilografi veloci", ma senza precisare in che senso; la velocità dipende da quanti errori di battitura la tastiera riesce a far evitare (e quindi, in secondo luogo, da quanto è effettivamente comoda da usare in tempi lunghi).
Caratteristiche generali:
  • è effettivamente più rumorosa della EX-110;
  • è molto pesante (1050 grammi senza contare il cavo USB) e ben piantata sulla scrivania;
  • layout italiano e tasto Invio verticale;
  • tasti multimediali in formato più piccolo (a membrana);
  • tastino "imposta retroilluminazione" (spento, 30%, 60%, 100%);
  • tastino "switch disattivazione tasto Windows";
  • LED caps lock e scroll lock (non avendo il tastierino numerico, è inutile avere num lock);
  • la retroilluminazione dei singoli tasti è programmabile con l'utility CUE per Windows (da scaricare dal sito ufficiale Corsair) oppure ckb-next per Linux e Mac (è un sorgente da compilare).
Dopo qualche giorno di utilizzo penso di poter già mandare in pensione le tastiere Logitech che avevo apprezzato da tanti anni, poiché la comodità dei tasti Cherry MX si fa sentire.

Di cosa potrei lamentarmi:
  • alcune grosse tastiere Corsair hanno una porta USB aggiuntiva per attaccarci il mouse o qualcosa di poco esoso in termini di corrente: la K63 non ce l'ha;
  • il cavo USB è in posizione centrale ed esce perpendicolare al lato lungo, non si può staccare. L'ostacolo più vicino deve stargli ad almeno 25mm dal bordo;
  • la confezione non conteneva altro che la tastiera e il micro-manualino cartaceo (in alcune offerte danno anche l'estrattore, pinzetta utile a scoperchiare i tasti per far pulizia);
  • non mi lamenterò del fatto che su questo modello la retroilluminazione è solo in rosso (non RGB come le Corsair più costose);
  • posso invece lamentarmi che il ckb-next ha ancora qualche bug (e il daemon si mangia il 4-5% di CPU del Core i5 anche quando non c'è niente da fare, più un altro 5-6% quando gli effetti speciali sono attivi), ma ogni tanto può essere utile per spararsi le pose in caso di visite di amici e parenti mettendo l'effetto Trippy (la tastiera serve per scrivere , non per guardarsela come un idiota e dire "uùuh!!").
Nelle prime ore di utilizzo mi accorgo dei vizi che avevo acquisito con la vecchia tastiera:
  • ero abituato a lasciare talvolta riposare qualche dito su un tasto senza premerlo (anche il pollice sulla barra spaziatrice)... se il dito è troppo pesante, il tasto viene attuato (!);
  • ero abituato a un corridoio di discesa più lungo quando da est la mano destra cercava di atterrare su PgUp/PgDown;
  • nei primissimi dieci minuti di utilizzo ho istintivamente cercato tre volte il tasto Invio dall'inesistente tastierino numerico.
Ecco il video di unboxing e prova - nel video non sto correndo sul serio - la velocità la potrò verificare solo dopo un po' di settimane di familiarizzazione. L'effetto vrasèra che si vede nel video è il "Trippy" del ckb-next.

domenica 25 marzo 2018

N900 con Maemo-Leste torna a ruggire!

Il bello di un "telefonino Linux open source" è che dopo oltre otto anni dall'acquisto c'è ancora gente che ci sviluppa. Il mio caro vecchio Nokia N900 torna a ruggire, alla faccia del suicidio della Nokia.

La distribuzione Maemo Leste si basa su una Debian moderna permettendo di usare anche i repository originali Maemo. Se è installato il pacchetto u-boot, può partire direttamente dalla memory card microSD senza toccare il filesystem originale su NAND-Flash.

Fase 1: recuperare una batteria ancora carica:


Fase 2: boot di Linux e quindi dell'ambiente grafico:


Fase 3: lancio il terminale e... ma guarda: kernel Linux 4.7.15 (gran bel salto rispetto al 2.6.28 del firmware originale):


Schermo graffiato, porta USB sfasciata, vari difettucci secondari, ma kernel Linux uscito questo mese! Non vedo l'ora che cresca.

sabato 24 marzo 2018

Rylo

Da tempo sono in circolazione videocamere "a 360 gradi". Prendo in considerazione qui sotto la Rylo, perché il software di controllo e visualizzazione (solo per alcuni Android e alcuni iPhone) è fatto bene. Qui sotto spiego perché.
Costa cinquecento dollari.

Vista dall'alto


Una videocamera a 360° consiste di due videocamere con visuale fish-eye di poco più di 180 gradi ciascuna. I due stream video vengono concettualmente fusi in un unico file dal firmware di bordo (insieme ai dati istantanei degli accelerometri e ai dati audio dei vari microfoni).

Il software di controllo e visualizzazione (per ora solo per Android e IOS) unisce una fetta di uno e dell'altro stream per mostrare una "vista" all'interno di quei 360° (con la corrispondente parte di audio).

Questo significa che mentre si guarda il video (cioè una sottofinestra di quanto registrato), si può "cambiare punto di vista" (cioè cambiare coordinate e le dimensioni della sottofinestra).

I dati degli accelerometri permettono la stabilizzazione dell'immagine (la sottofinestra viene adeguata per bilanciare le oscillazioni maggiori). Si può anche scegliere un soggetto e "seguirlo" (cioè la sottofinestra viene adeguata per tenere il soggetto al centro).

Il tipico workflow sarà:
  • registrare video 360°, configurando col telefonino
  • rientrati a casa, fare il post-processing e video editing scegliendo i "punti di vista" scena per scena, e spedire su Youtube
  • in alternativa, lasciare il video in formato 360° permettendo, a chi lo visualizzerà, di scegliersi momento per momento i punti di vista.
Caratteristiche tecniche:
  • le ottiche hanno una visuale da 208°, sia per ridurre al minimo l'ovale del "punto cieco", sia per "incollare" meglio i bordi in fase di post-processing 
  • le lenti hanno apertura F/2.8, andranno maluccio solo in condizioni di scarsa illuminazione
  • i due stream video sono 4k (entrambi sensori da 3840×2160 pixel), ma la resa è 4k perché i bordi sono usati solo per "cucire" una "vista"; le "foto panoramiche" hanno avere risoluzione limitata a 6k (6000×3000) perché non contengono le parti sovrapposte;
  • i video vengono girati a 30 frame al secondo (questo sarà limitante per chi gira video "sportivi", cioè con ottima illuminazione e parecchio movimento);
  • la batteria viene garantita per 60 minuti di registrazione; dato che questo parametro dipende da diversi fattori (temperatura ambiente, percentuale di pixel che cambiano continuamente, quantità di cicli carica/scarica già fatti, ecc.) vale la solita regola del considerare la metà di ciò che dice il produttore, cioè sui 30 minuti;
  • la microSD in dotazione è di 16 Gb, grosso modo 80-160 minuti di registrazione, ovviamente supporta quelle fino a 256 Gb;
  • pesa 108 grammi (meno di uno smartphone).

Come tecnologia non è niente di veramente rivoluzionario:
  • l'hardware consiste di due telecamere 4k combinate, con microfoni e accelerometri; il firmware si limita a raccogliere comandi dallo smartphone e a servirgli il video, l'audio, i sensori;
  • il software di controllo e visualizzazione su smartphone fa solo un po' di postprocessing e di video editing, oltre che le solite funzionalità di anteprime, setup, time-lapse, panorama, etc;
  • il sito web ufficiale adopera un mucchio di Elegant Words (cinematic stabilization, dynamic dual lenses, instantly intuitive, maremma carrettera) per impressionare il pubblico (ci vuole un bel coraggio a mollare cinquecento bigliettoni)

Tutto sommato è stata realizzata bene:
  • promette "una nuova prospettiva" e delivera davvero, grazie al software, che è il suo pregio maggiore; è proprio un altro pianeta rispetto a una telecamera singola; eccellente è anche la "stabilizzazione" (rispetto ad altre telecamere 360°), comparabile alla Fusion;
  • per i video meglio riusciti, dev'essere una vera soddisfazione poter rivederne uno cambiando punto di vista;
  • peso, forma, dimensioni, accessori (come la mazzarella per tenerla senza affaticare la mano), funzionalità del software, è tutto pensato abbastanza bene;
  • dà onestamente filo da torcere alla Kodak SP360 4K;
  • non sembra avere i glitch strani della GoPro Fusion.
Al di là delle recensioni che lamentano un audio non proprio perfetto e una tendenza all'arancione nelle immagini, il suo punto debole è nelle caratteristiche tecniche:
  • "solo" 30 frame per secondo; sufficientemente fluida per la maggioranza dei video, ma non esaltante per quelli "sportivi"; sarebbe bello avere almeno i 60 fps per fare "moviola" (rivedere rallentata a 30 fps una scena catturata a 60);
  • "solo" 4k di risoluzione (per giunta ridotta dalla "cucitura" della "vista", come spiegato sopra); con più risoluzione si perderebbero meno dettagli fini (e magari si potrebbe fare anche uno zoom software senza interpolare). Al momento solo la GoPro Fusion e la non esaltante Yi 360 vanno a più di 4k.
Per il momento il mercato non offre sensori 8k/120fps a prezzi ragionevoli
E comunque bisogna ricordare che un conto è guardare un video su un grosso televisore 4k/60, altra storia è guardarlo su un cellulare - che potrà anche avere fantastilioni di pixel, ma è talmente piccolo da non far notare le sbavature sui dettagli fini e la minor fluidità di un 30fps rispetto a un pari risoluzione ma 60fps (tranne ai cretini che credono che le leggi della fisica siano vincibili dalle leggi del marketing).
  • Da amazon.com viene 654 dollari incluse tasse "stimate" e global shipping in Italia. Per stavolta mi sa che passo. 
  • Sarebbe invece interessante realizzare l'equivalente della Rylo con le vere videocamere ultra 8k/120fps e girarci qualche film d'azione. In alternativa, stamparsi in 3D un aggeggio come il 360Rize e poi scriversi il software come quello Rylo per estrarre i singoli stream e comporre le "viste".

sabato 10 marzo 2018

Italian Military Area Radiation Levels

Dal momento in cui sono entrato (circa le 17:15) fino al momento in cui sono uscito (circa alle 18:55) da una certa zona militare, la radioattività era sopra la media, un pochino sotto la soglia dell'«high level, closely watch the reading, find out why». Non è preoccupante, ma è significativo.

Cliccare per ingrandire


Software per creare il grafico: gmc-geiger-data
CPM massimo rilevato dal mio lettore Geiger: 98.
"Clicks" massimi in un secondo: 7.
microSievert/ora: sotto gli 0,65 uSv/hr.

Promemoria:
  • fino a 50 CPM (clicks per minuto): normale radioattività ambientale 
  • da 51 a 100 CPM: livello medio, controllare regolarmente
  • oltre i 100 CPM (cioè oltre gli 0,65 microSievert/ora): livello alto, controllare continuamente, cercare di capire il motivo
  • oltre i 1000 CPM: livello molto alto: lasciare la zona subito, e cercare di capire il motivo.

giovedì 8 marzo 2018

Ispezione felina

«Umano, devi rabboccare il liquido lavavetri».


mercoledì 7 marzo 2018

Configurare Wireguard

Per la serie: "perché non ci hanno pensato prima?"

Con le versioni più recenti del kernel Linux si può configurare un'interfaccia virtuale che crittografa point-to-point tutto il traffico in entrata e uscita incanalandolo in pacchetti UDP da far transitare su un'interfaccia reale.

Questa feature si chiama Wireguard, è open source scritto da cinesi stufi di essere spiati (e milioni di occhi già stanno scrutando da anni a caccia di vulnerabilità: lavoro facile, l'implementazione è appena quattromila righe di codice), è stata scritta per essere veloce e leggera ("consuma" solo un 5-8% in più di banda a parità di traffico) e interna al kernel. Presto manderà in pensione le darknet e le Vuppi Enne (VPN), notoriamente complicate da configurare, lente, e talvolta dipendenti da un servizio esterno non sempre onesto.

L'unico requisito di due sistemi connessi attraverso Wireguard è che nell'attivare le rispettive interfacce virtuali usino la stessa password (più esattamente, coppie di chiavi crittografiche). Funzionalmente simili a un tunnel TLS/SSL, anche se virtuali, in qualità di interfacce di rete sono utilizzabili con tutte le facility del kernel: routing, firewalling, traffic shaping, forwarding, etc. Per ora nelle maggiori distribuzioni il modulo Wireguard è fornito attraverso il DKMS ma verrà presto integrato nel kernel.

Esempio: ho due board Beagleboard xM sulla rete locale (rispettivamente 192.168.1.121 e 192.168.1.122) che parlano tra di loro usando servizi "in chiaro" (tipo http e ftp). Creo una rete Wireguard tra le due board inventando indirizzi 192.168.6.xyz sui quali far transitare quei servizi (che così non saranno più "sniffabili" dal resto della rete locale 192.168.1.xyz), mostrando che il traffico non vi transita in chiaro. Sulle board c'è Arch Linux ARM con systemd per cui su ognuna di loro ho fatto come segue.
Esatto, nel seguente esempio due board saranno connesse tra loro sullo stesso cavo fisico sia attraverso la rete locale 192.168.1.xyz, sia attraverso la nuova rete Wireguard 192.168.6.xyz. Dato che systemd è ormai ovunque (temuto solo da coloro che credono che le cose vecchie sono sempre migliori di quelle nuove, tipo quelli che leggono i libri al lume di candela), non vale la pena seguire i vecchi esempi che costringono a una battaglia frenetica coi vari comandi ip, ifconfig, route, ecc.
Non è necessario che le due board siano sulla stessa rete locale o che siano strettamente IPv4, è sufficiente che siano raggiungibili a vicenda - ad avere un indirizzo IP statico si possono fare cose simpatiche...

Prerequisiti: systemd versione 237, modulo wireguard e relativi tools.

Esempio di installazione pacchetti con ArchLinux: sudo pacman -S wireguard-dkms wireguard-tools

Generazione di una chiave crittografica casuale: wg genkey
Tale comando restituisce una "chiave privata" (da usare nella configurazione locale).
Esempio: OLu2pvKIOVYeJErLacH0iqYdMeOZwbv6SCcNL9AlMHE=
In ambito Wireguard, la "chiave privata" contiene anche la "chiave pubblica": quest'ultima, da usare nella configurazione del sistema remoto, va estratta dandola in pasto al tool wg:
echo OLu2pvKIOVYeJErLacH0iqYdMeOZwbv6SCcNL9AlMHE= | wg pubkey

Anche la "chiave pubblica" ha una codifica base64, qui per esempio ci ha restituito:
XmQUASiyksa2O//CY3NM0/p9UbT8+jWwlyyQptQaeU8=
A questo punto creo il file /etc/systemd/network/wg0.netdev per indicare al systemd che l'interfaccia wg0 vale per gli indirizzi 192.168.6.xyz e deve appoggiarsi all'indirizzo preesistente 192.168.1.xxx dell'altra board sulla porta UDP 51820 (la porta tipicamente utilizzata per Wireguard, ma va grosso modo va bene qualsiasi porta tra 1024 e 60000), e ci aggiungo la "chiave pubblica" dell'altra board:
[NetDev]
Name=wg0
Kind=wireguard
Description=interfaccia protetta

[WireGuard]
PrivateKey=OLu2pvKIOVYeJErLacH0iqYdMeOZwbv6SCcNL9AlMHE=
ListenPort=51820

[WireGuardPeer]
PublicKey=HIVoNJ3CdpjGFg2eDGTbkH/JewfmiB6wThIzqwiq9yc=
AllowedIPs=192.168.6.0/24
Endpoint=192.168.1.121:51820
Il file di configurazione va protetto per evitare che qualcuno dei tools consideri compromessa la chiave privata: chown root.systemd-network /etc/systemd/network/wg0.netdev ; chmod 640 /etc/systemd/network/wg0.netdev

Dopodiché creo il file /etc/systemd/network/wg0.network per descrivere al systemd la configurazione di rete - ci basterà solo l'indirizzo (abbiamo deciso 192.168.6.1 per la prima board e 192.168.6.2 per la seconda) e la classe (24 bit, cioè "192.168.6.xyz"):
[Match]
Name=wg0

[Network]
Address=192.168.6.1/24
Dal prossimo reboot l'interfaccia verrà attivata (che funzionerà solo se anche sull'altra board sono stati fatti i passaggi).

Dopo il reboot, per verificare che i moduli kernel sono stati caricati: lsmod | grep wireguard

Per verificare che l'interfaccia wg0 è stata configurata, è attiva ed ha il suo indirizzo di rete: networkctl; ip link; ifconfig; wg

Per verificare che le interfacce comunichino è sufficiente il ping attraverso il loro Wireguard; secondo l'esempio di cui sopra, dalla board configurata con 192.168.6.1 eseguire ping 192.168.6.2

Per verificare che il traffico transita crittografato al punto di sembrare munnezza si può eseguire sulla board che riceve i ping un tcpdump della sua interfaccia di rete reale (per esempio, come detto sopra, eth0) riguardo ai pacchetti remoti UDP. Il tcpdump può anche mostrare il contenuto dei pacchetti in esadecimale: tcpdump -x -i eth0 host 192.168.1.122 and udp port 51820
(e dall'altra parte effettuare il ping attraverso il Wireguard)
La seconda board manda i ping alla prima attraverso la Wireguard (192.168.6.xyz). Quei ping vengono criptati e fatti transitare sull'interfaccia di rete eth0 (per cui "sul cavo" risulteranno originati dall'host 192.168.1.122 come da esempio sopra citato, e perciò sulla board 121 occorre ascoltare i pacchetti ufficialmente provenienti dalla 122, ignorando quelli di altri protocolli e indirizzi). Indipendentemente dal protocollo, verranno trasmessi in UDP (non sto qui a spiegare i motivi per cui i progettisti di Wireguard hanno preferito la trasmissione stateless via UDP).

Il contenuto dei ping dopo l'header è riconoscibilmente criptato. Si può fare una prova più convincente con altri protocolli che trasmettono in chiaro.

Sulla prima board lanciamo un webserver e un tcpdump:
tcpdump -A -i eth0 host 192.168.1.122 &
ruby -run -ehttpd /tmp -p8000 &

Dalla seconda board lanciamo una normale richiesta:
curl 192.168.1.121:8000

Dal tcpdump vediamo in chiaro le stringhe HTTP (GET, headers, contenuto) nei pacchetti TCP.

Dalla seconda board lanciamo la stessa richiesta ma attraverso il Wireguard:
curl 192.168.6.1:8000

Dallo stesso tcpdump vediamo che non c'è nulla di leggibile, che è tutto transitato via UDP, e che sono cambiate anche le dimensioni dei pacchetti.

Se per analizzare il traffico si usa il Wireshark sulla eth0 si vedranno dei bizzarri pacchetti "DCERPC" con numeretti indecifrabili:



A titolo di curiosità (non lo consiglio in ambienti di lavoro), aggiungiamo una terza board che avrà come endpoint la prima e come chiavi le stesse della seconda.
Il suo wg0.netdev sarà uguale a quello della seconda (endpoint e chiavi), mentre il suo wg0.network avrà un altro indirizzo (diciamo 192.168.6.3). Ovviamente la seconda e la terza, avendo scambiato le chiavi solo con la prima, potranno comunicare solo con la prima (la prima avrà un singolo peer consistente in... due board diverse).
Si lascia come esercizio al lettore la configurazione di una rete wifi senza password in cui gli unici client che riescono a navigare sono quelli connessi via wireguard al nodo che fa forwarding, mentre i furbacchioni tutti contenti di sniffare il traffico si ritrovano nel Wireshark una immane catasta di munnezza googlando a tutta forza DCERPC decriptare DCERPC sproteggere DCERPC.

martedì 6 marzo 2018

Poi dicono che c'è traffico

La cinquecentona della Fiat non è poi così grande, ma fra parcheggio selvaggio, strada piccola, e impazienza (notate le loro ruote sterzate)...


domenica 4 marzo 2018

Fiat 127

Una delle ultime Fiat 127 "prima serie" (del 1977).
Lunghezza: 360 cm
Peso a vuoto: 705 kg
Motore: 903cc 45cv 4 cilindri in linea, motore e trazione anteriori
Prestazioni: 135 km/h, da 0 a 100 in 19,1 secondi
Consumo medio (urbano): 13,7 litri ogni 100 km
Serbatoio: 30 litri


venerdì 2 marzo 2018

Sto ancora pensando di comprarmi una tastiera seria...

La sindrome delle scarpe rotte int'à casa rò scarpàro in campo informatico consiste nello spendere bazillioni su processore e scheda grafica e poi prendere una tastiera da sei euro e un mouse da tre euro.

Tastiera e mouse sono essenziali per lavorare e sopravvivono agli upgrade hardware.

Le mie preferenze sono:
  • silenziosa, ci devo lavorare anche di mattina presto
  • tasto Enter verticale, ci devo scrivere, non fare gaming
  • senza tastierino numerico, ho poco spazio sulla scrivania
  • USB via cavo, ho già troppi aggeggi wireless sparsi in giro
La mia prima scelta è la Code Keyboards WASD CODE 87-Key MX Clear ($150.00, più $30 di sound dampeners, più $30 di keycaps set "Italian", più $55 di spedizione), ordinabile solo in USA. Aspetto professionale e tradizionale, disponibile con tasto Enter verticale, tasti Cherry MX Clear lineari e silenziosi.
Ci sarebbe anche la Corsair K63 a prezzo più ragionevole e ordinabile in Italia, ma i tasti sono Cherry MX Red (lineari ma senza dampening) e la retroilluminazione è un po' bizzarra:


La scelta alternativa, meno tradizionale ma stranamente interessante, è la Ergodox EZ ($265 con tasti Cherry MX Silent Red e appoggi metallici + $30 di spedizione),



C'era quindi la Keyed Up Labs ma tragicamente il distributore europeo pare aver chiuso i battenti.

Le Majestouch vengono oltre 170 euro.

La Massdrop sono costretto a scartarla perché è solo per "gruppi di acquisto", vadano a cagare in modalità turbo boost e zero wait states.

Come variazione sul tema ci sarebbe la Atreus ma per risparmiare qualche dollaro bisogna montarsela da soli:


Per chi si accontenta di una tastiera di dimensioni normali c'è più ampia scelta, per esempio le Corsair K70, le K95, ecc., o addirittura le tastiere Microsoft Sculpt.

giovedì 1 marzo 2018