E la maestrina ha corretto con la penna rossa.
"Mario Panta COLLAN C/MAre Ti Ha Messo in RIGHA."
domenica 30 dicembre 2018
mercoledì 26 dicembre 2018
Mandatory "my Rust 2018" post
I first heard about Rust on August 2014. I gave a serious try in late 2016 when Rust 1.13 was released. By early 2017 I built an in-car diagnostic system, 100% Rust code including my OBD and graphics libraries, still working today.
It's been a while I have Rust in production on company servers. Lucky me, I didn't have to bother learning tokio, because mpsc was just perfect for every scenario. Also, I don't like to waste my time on "next releases may break compatibility" things.
I used to have a daily fight with the Borrow Checker. Sometimes it won, sometimes I won. When Rust 2018 was released, I had two fights in the same day. I won twice. That is, I am getting more and more familiar with Rust. And NLL is a boon.
Rust is providing me value. I really hope those developers get paid because they definitely deserve it.
Rust switching to edition = "2018" was flawless. Every project I cargo fix'ed had no issues.
I'm so addicted to the combination of rustup/cargo (and clippy and fmt and helpful error messages) I just can't imagine how I was able to write any software before.
What do I wish for "Rust 2019"? I only need people stop whining about "my crate only works with nightly Rust". Rust 2018 Edition is mature. If your crate requires more than a single unsafe or demands a nightly, then you are the problem.
It's been a while I have Rust in production on company servers. Lucky me, I didn't have to bother learning tokio, because mpsc was just perfect for every scenario. Also, I don't like to waste my time on "next releases may break compatibility" things.
I used to have a daily fight with the Borrow Checker. Sometimes it won, sometimes I won. When Rust 2018 was released, I had two fights in the same day. I won twice. That is, I am getting more and more familiar with Rust. And NLL is a boon.
Rust is providing me value. I really hope those developers get paid because they definitely deserve it.
Rust switching to edition = "2018" was flawless. Every project I cargo fix'ed had no issues.
I'm so addicted to the combination of rustup/cargo (and clippy and fmt and helpful error messages) I just can't imagine how I was able to write any software before.
What do I wish for "Rust 2019"? I only need people stop whining about "my crate only works with nightly Rust". Rust 2018 Edition is mature. If your crate requires more than a single unsafe or demands a nightly, then you are the problem.
martedì 25 dicembre 2018
domenica 23 dicembre 2018
Il C++ sempre più assurdo
Per lo standard 2020 del C++ ("C++20") hanno aggiunto nientemeno che... i Range!
Proprio ad imitazione di tutti gli altri linguaggi che già li hanno (Rust, Ruby, ecc.). Ormai il C++ soffre di complesso d'inferiorità e la steering committee del C++ arranca nel voler imitare le feature altrui, inventando sintassi sempre più caotiche e squinternate.
E pensare che le due idee di base del C++ (classi ed ereditarietà) bastavano e avanzavano, poiché coprono il 99% delle necessità. Tutte le altre feature inventate dagli anni '90 ad oggi (eccezioni, polimorfismo, namespace, allocatori, ecc.) e ancor più la libreria standard (a cominciare da cin cout cerr) è stato un immane, gigantesco, mostruoso pasticcio. Se uno vuol farsi venire i crampi al fegato ed un quadruplo esaurimento nervoso, cominci ad imparare a utilizzare il "C++20" dicendo: "questo è il futuro, si capisce".
Nota: un linguaggio di programmazione deve permetterti di scrivere senza diventare scemo un software che funzioni senza imprevisti e che il tuo codice sorgente a distanza di tempo sia comprensibile a chi intende fare correzioni o modifiche.
Proprio ad imitazione di tutti gli altri linguaggi che già li hanno (Rust, Ruby, ecc.). Ormai il C++ soffre di complesso d'inferiorità e la steering committee del C++ arranca nel voler imitare le feature altrui, inventando sintassi sempre più caotiche e squinternate.
E pensare che le due idee di base del C++ (classi ed ereditarietà) bastavano e avanzavano, poiché coprono il 99% delle necessità. Tutte le altre feature inventate dagli anni '90 ad oggi (eccezioni, polimorfismo, namespace, allocatori, ecc.) e ancor più la libreria standard (a cominciare da cin cout cerr) è stato un immane, gigantesco, mostruoso pasticcio. Se uno vuol farsi venire i crampi al fegato ed un quadruplo esaurimento nervoso, cominci ad imparare a utilizzare il "C++20" dicendo: "questo è il futuro, si capisce".
Nota: un linguaggio di programmazione deve permetterti di scrivere senza diventare scemo un software che funzioni senza imprevisti e che il tuo codice sorgente a distanza di tempo sia comprensibile a chi intende fare correzioni o modifiche.
giovedì 20 dicembre 2018
Come godo!! Pipo power in my hands!
Mi sono fatto un regalo di Natale: un Pipo X8-Pro, da usare come server casalingo aggiuntivo.
Tecnologia vecchia (è uscito nel 2015) ma è piccolo quanto basta (i vari X9, X10, ecc. hanno schermi più grandi e più memoria, ma anche ventole di raffreddamento) ed economico. Caratteristiche base:
Dopo aver installato Ubuntu e un po' di ammennicoli, restano 23 giga effettivamente liberi. Funziona tutto tranne:
Sì, concettualmente è come una Beagleboard/Raspberry, ma con processore Intel anziché ARM. Anche la sudcoreana Hardkernel ha tirato fuori una board Intel con caratteristiche più moderne, l'Odroid H2.
Tecnologia vecchia (è uscito nel 2015) ma è piccolo quanto basta (i vari X9, X10, ecc. hanno schermi più grandi e più memoria, ma anche ventole di raffreddamento) ed economico. Caratteristiche base:
- processore Intel Atom x5-Z8350 a 1.44 GHz (64 bit, dual core, 4 threads), chipset Cherry Trail, fanless (senza ventole)
- touchscreen 7" (150x95mm) a risoluzione 1280x800 multitouch 5 dita con "tastone touch Windows"
- 2 Gb RAM DDR3 1066, 32 Gb MMC flash (29.4 Gib), entrambi non espandibili
- slot microSD (comicamente posto sottosopra)
- quattro porte USB (tre 2.0 e una 3.0)
- altre interfacce: ethernet, wifi+antenna, HDMI-out, jack 3.5mm cuffie, bluetooth, tasti volume up/down e power off, due mini-speaker, tasto di reset accessibile solo con uno spillo.
- Pipo X8
- alimentatore 5V 3A
Dopo aver installato Ubuntu e un po' di ammennicoli, restano 23 giga effettivamente liberi. Funziona tutto tranne:
- la scheda audio. È una intel_sst_acpi 808622A8:00 supportata solo a partire dal kernel 4.18, ma anche installando il 4.18 occorre aggiungere qualcos'altro per attivare mixer e canali e non ci sono riuscito (ma tanto deve funzionare da server); in compenso l'audio sulla porta HDMI funziona;
- il modulo bluetooth. È un merdoso rtl8723bs di quelli che si pilotano attraverso una porta seriale a 115200 (ttyS4) e richiede dei firmware aggiuntivi e un programmino di inizializzazione a parte da lanciare prima del servizio BlueZ;
- il modulo wifi, dello stesso rtl8723bs, comincia a funzionare solo dopo aver completato l'installazione (che contiene il firmware wifi tra i pacchetti restricted extras);
- lo slot microSD non supporta le SDXC da 64 Gb e superiori ("errore 110"), ma solo le vecchie memory card fino a 32 Gb;
- il sensore di orientamento (portrait/landscape) non viene proprio riconosciuto;
- non c'è modo di regolare l'intensità della luminosità (pwm_setup_backlight [i915]), che dall'accensione resta sempre fissata al massimo.
- la porta ethernet on-board dipende dal chipset DM9621A (sul bus USB) ed è solo 10/100 Mbit;
- il touchscreen è sensibile su tutto lo schermo tranne 9 pixel sui bordi orizzontali e 12 sui bordi verticali;
- il tasto power, benché leggibile da software al pari di volume up/down... fa lanciare lo shutdown del sistema; peccato, sarebbe stato comodissimo avere un tasto hardware in più;
- il kernel Linux "vede" anche altre periferiche (porte seriali, tasto Home, ecc.) ma non è hardware fisicamente collegato.
- sulla sinistra: batteria memoria tampone, interfaccetta touchscreen e relative "piattine" tenute in sede da con nastro adesivo giallognolo
- in alto verso destra: board con due porte USB e chipset wifi
- al centro, la motherboard: il lato connettori (sotto) è praticamente spoglio, mentre tutta la circuiteria (SMD) è coperta dalla grossa aletta di raffreddamento, che disperde sul coperchio metallico (non visibile nella foto):
Sì, concettualmente è come una Beagleboard/Raspberry, ma con processore Intel anziché ARM. Anche la sudcoreana Hardkernel ha tirato fuori una board Intel con caratteristiche più moderne, l'Odroid H2.
sabato 15 dicembre 2018
Piccole vittorie personali
Dopo un po' di smanettamento con le apposite librerie finalmente riesco a fare il rendering di un font Truetype (TTF) con calcolo della bounding box consegnando i pixel non necessariamente allo schermo. Però per fare la foto occorreva uno schermo...
Bisognerebbe prendere a pedate chi ha inventato lo standard: doveva essere un vecchio docente universitario che non aveva mai scritto una riga di codice. Per la serie: uffico complicazioni affari semplici. Immagino la vita da girone dantesco di tutti i programmatori di Microsoft e altre aziende, che fin dai tempi di Windows 3.1 hanno dovuto fare letteralmente salti mortali per produrre risultati decenti a velocità ragionevoli e consumo di memoria accettabile.
p.s.: anche lo standard UTF-8 passerà alla storia dell'imbecillità grazie al supporto di alfabeti vulcaniani e emerite cagate dello stesso genere (più le lettere ripetute: prima aggiungono N, Z, Q, R per i matematici, e poi tre versioni dopo dicono: perché non tutto l'alfabeto? quello americano, s'intende - e compaiono di qua i buchi e in un'altra pagina le lettere: ed è il caos per fare l'ordinamento...)
Bisognerebbe prendere a pedate chi ha inventato lo standard: doveva essere un vecchio docente universitario che non aveva mai scritto una riga di codice. Per la serie: uffico complicazioni affari semplici. Immagino la vita da girone dantesco di tutti i programmatori di Microsoft e altre aziende, che fin dai tempi di Windows 3.1 hanno dovuto fare letteralmente salti mortali per produrre risultati decenti a velocità ragionevoli e consumo di memoria accettabile.
p.s.: anche lo standard UTF-8 passerà alla storia dell'imbecillità grazie al supporto di alfabeti vulcaniani e emerite cagate dello stesso genere (più le lettere ripetute: prima aggiungono N, Z, Q, R per i matematici, e poi tre versioni dopo dicono: perché non tutto l'alfabeto? quello americano, s'intende - e compaiono di qua i buchi e in un'altra pagina le lettere: ed è il caos per fare l'ordinamento...)
giovedì 13 dicembre 2018
Ultimi selvaggi acquisti
Come godo!! Da sinistra a destra:
- quattro interruttori anti-vandalo Alpha Elettronica 330-066-5-N1 con led blu
- due interruttori anti-vandalo Alpha Elettronica 330-062-1
- un interruttore a chiave Zadi
domenica 9 dicembre 2018
sabato 8 dicembre 2018
venerdì 7 dicembre 2018
giovedì 6 dicembre 2018
mercoledì 5 dicembre 2018
Blue Chip DataRadio WinTuner
Scheda per ricezione Teletext/Televideo (da segnale TV analogico 625 linee) basata su ricevitore Philips e memory controller SAA5249P, su slot PC ISA 8 bit, con uscita di un singolo bit (da far decifrare a software), venduta dalla Sinesis alla megaditta nella seconda metà degli anni '80. Il progetto interno fu però accantonato perché la sede della megaditta a piazza Vittorio aveva una pessima ricezione TV.
Oltre all'ingresso antenna TV c'è un connettore DB-9 Cannon femmina e, sulla sinistra in alto, un header da 8 pin.
Oltre all'ingresso antenna TV c'è un connettore DB-9 Cannon femmina e, sulla sinistra in alto, un header da 8 pin.
martedì 4 dicembre 2018
O-hoo!! I' che configurazione!
Ripristinato e riequipaggiato megapotente server Ubuntu 10.04.4:
Per entrare ho dovuto esplicitamente chiedere al client ssh di usare il buon vecchio HMAC-SHA1 che i nuovi ssh non supportano più (ssh -m hmac-sha1 utente@catorcio).
- CPU: Pentium-S a 166 MHz
- RAM: 256 Mb PC 133 (occupando entrambi i banchi)
- HDD primario: Quantum Fireball A35, 20.5 Gb UDMA/66
- HDD storage: Quantum Fireball APL, 30 Gb UDMA/100
- FDD primario: 5.25" 1.2 Mb
- FDD secondario: 3.5" 1.44 Mb
- DVD/RW 24x
- VGA AGP
- USB: due porte USB 1.1
- BIOS: Award Modular Bios 4.51PG (1999)
- tastiera: Unidata Cherry Brand XT-AT compatibile (comprata nel 1989)
Per entrare ho dovuto esplicitamente chiedere al client ssh di usare il buon vecchio HMAC-SHA1 che i nuovi ssh non supportano più (ssh -m hmac-sha1 utente@catorcio).
lunedì 3 dicembre 2018
domenica 2 dicembre 2018
Microsoft Surface Pro 2: Unboxing again!
A dicembre 2013 ho comprato un portentoso Microsoft Surface Pro 2, nell'indovinatissima configurazione Core i5 4200U, 8 Gb RAM, 256 Gb SSD, un vero cavallo di battaglia.
Dopo esattamente cinque anni di lavoro (l'ho usato principalmente per lavorare, specialmente in movimento), festeggio con un lussuoso nuovo video di unboxing:
Purtroppo dopo cinque anni non è più in piena forma:
Dopo esattamente cinque anni di lavoro (l'ho usato principalmente per lavorare, specialmente in movimento), festeggio con un lussuoso nuovo video di unboxing:
Purtroppo dopo cinque anni non è più in piena forma:
- la porta USB 3.0 è schiattata, cioè non ha energia elettrica. Posso risolvere collegando un hub USB 3.0 iniettandovi corrente dalla 5V dell'alimentatore originale (stessa massa);
- la batteria si è gonfiata sollevando parte dello schermo (l'ha scollato). Ha comunque ancora una buona ora abbondante di autonomia;
- la vernice su alcuni bordi si è grattata via;
- la ventolina (che si sente solo d'estate e solo quando la CPU va a palla) è un pochino più rumorosa a causa di polvere e peli impossibili da togliere;
- la Type Cover 2 (tastiera-cover retroilluminata) ha una bolla d'aria e qualche scoloritura;
- i cinque pin del connettore alimentazione sono un po' più sprofondati, ma finora non danno problemi;
- il kick-stand posteriore, a due posizioni, appare più morbido di quando era nuovo ma è ancora operativo.
- le Lifecam anteriore e posteriore, entrambe da 1.2Mp 720p: in totale avranno scattato 4-5 foto e un solo video di prova, e qualche videochiamata Skype;
- giroscopio/accelerometro/magnetometro: è vero che sono andato parecchio in giro, ma non l'ho praticamente mai utilizzato come navigatore GPS;
- ho usato spesso la stylus Wacom per disegnare, raramente come alternativa al mouse, ma in tante occasioni è rimasta a casa perché il touchpad della TypeCover 2 bastava e avanzava;
- accelerometri e giroscopio servivano solo per cambiare modalità portrait/landscape (e raramente ho avuto bisogno del modo portrait);
- doppio microfono, solo per qualche videochiamata Skype; ugualmente gli speakers Dolby Digital Plus, poco usati perché lavoro in silenzio (o con le cuffie)
- touchscreen ClearType Full HD, ovviamente! sebbene per lunghi periodi, grazie alla DisplayPort, ho usato un display 27";
- 2x2 MIMO WiFi, ma raramente viste punte di più di 3,5 Mb/sec di throughput a causa degli Access Point Ciofeca™;
- bluetooth 4.0, usato soprattutto per mouse, tastiera, e per pilotare i trenini LEGO e gli NXT;
- lo slot MicroSDXC, praticamente l'unico card reader che ho a disposizione!
- il kickstand, usato quasi sempre all'inclinazione 55° e raramente a quella 22°.
sabato 1 dicembre 2018
venerdì 30 novembre 2018
Fascisti su Mart... no, su THE MARTIAN !!
Ispirato dal film di fantascemenza The Martian avevo seminato patate (circa 1,49 metri quadrati). Raccolto totale: poco più di 1400 grammi, con una resa del 24% rispetto ai canonici 4 kg/mq previsti.
giovedì 29 novembre 2018
Troppo tempo!
Venticinque secondi e mezzo dal power-on al momento in cui comincia a girare il mio programmino (servizio systemd con dipendenza basic.target in modo da lanciarlo appena dopo il montaggio dei filesystem e delle inizializzazioni essenziali, ancor prima della disponibilità di una connessione ethernet). Ahimé, è ancora troppo!
(Sì, si tratta di /proc/uptime e di /proc/loadavg)
(Sì, si tratta di /proc/uptime e di /proc/loadavg)
domenica 25 novembre 2018
sabato 24 novembre 2018
NZ & AU music: Compilation CD
Riemerge da un remoto cassetto un CD di vecchia data. Per fortuna c'è Wikipedia per cercare i nomi...
domenica 18 novembre 2018
sabato 17 novembre 2018
Iscriviti a:
Post (Atom)