lunedì 21 gennaio 2019

Geolocalizzazione di SSID/ESSID/BSSID

Hai dimenticato il suo indirizzo di casa, ma ricordi il suo SSID del wifi? Niente paura: basta cercarlo su wigle.net (notare come sulle arterie più trafficate hanno spottato un'enormità di reti wifi):


domenica 20 gennaio 2019

Nintendo Switch:

Finalmente comincio a vedere qualche buon motivo per comprarmi una Nintendo Switch (più la custodia glamour):
  • Grid Autosport (trailer, in uscita nel 2019) per la pista 
  • Gear Club Unlimited 2 (gameplay) per l'asfalto
  • V-Rally 4 (gameplay) per il fuori strada
(Non valeva la pena comprarla solo per il buon vecchio Grip (gameplay) per il fantascientifico)
 

sabato 19 gennaio 2019

Alle cinque del pomeriggio...


1/200 F4.5 ISO100 FOV~0.6°, contrasto esaltato,
niente aggeggi cinesi in vista (sono sul lato nascosto).


Distanza in quel momento: quasi 360.000 km
Diametro apparente: 0° 33' 11"
Diametro reale: 3474 km
https://astrocuriosity.blogspot.com/2011/06/cose-la-magnitudine.htmlMagnitudine apparente ("quanta luce arriva a noi"): -12,37

martedì 15 gennaio 2019

RadioLab power in my hands!

Aaah, un bel paio di amplificatori broadcast che montano valvole 4cx250, originariamente nati per gli 88-108 MHz ma con qualche modifichina possono dare 800 watt sui 144 MHz.






domenica 13 gennaio 2019

sabato 12 gennaio 2019

"Dove posso infilarmi?"

"Allora? La togli o no? Devo passare!"


"C'è mica un sottopassaggio?"


"Trovato! C'è un sopra-passaggio!"


ZOMP!

venerdì 11 gennaio 2019

Nuova costruzione abusiva

Stavolta è sull'albero dei mandarini, in posizione talmente alta che non avendo un drone ho dovuto arrampicarmi e fotografare alla cieca.


mercoledì 9 gennaio 2019

Bison CPG-808

Potente scheda multifunzione (per PC/XT compatibili con slot ISA 8 bit) Bison CPG-808, che comprammo da Unidata a febbraio 1989:
  • video CGA con uscita RGB Cannon 9 poli femmina, più uscita per monitor composito
  • interfaccia parallela compatibile Centronics (connettore Cannon 25 poli femmina)
  • interfaccia joystick (non popolata)



martedì 8 gennaio 2019

Altri scorci

Per la serie: "quando hai un blog, e chissenefrega di Feis Buch!


Epica cioccolata calda con scaglie di cocco al bar



Siccome avevo già cenato, anziché una pizza ho preso qualcosa di più leggero, un primo, un'arrabbiata (doveva essere davvero furiosa vista la quantità di forte)... Ovviamente Mariano non ha mancato di dire alla cameriera che il sottoscritto aveva già cenato!


sabato 5 gennaio 2019

Adattatori non più urgenti

Ora sì che posso adattare! Da sinistra a destra:
  1. adattatore da mouse PS/2 a porta seriale RS232 Cannon 9 poli
  2. idem, più anziano
  3. adattatore da tastiera PC/AT a tastiera PS/2
  4. idem, più anziano
  5. adattatore da mouse USB a porta PS/2
  6. idem, più giovane
  7. adattatore da tastiera USB a porta PS/2

venerdì 4 gennaio 2019

Compile and use Dropbear on a '486 machine

Well, I was able to compile and run latest dropbear-2018.76 on an i486 machine running stock RedHat 6.0 "Hedwig" featuring:
  • kernel Linux 2.2.5 released March 1999
  • gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
  • libc-2.1.1
  • fun fact: there were no ssh packages in RedHat 6.0 install CD
  • very fun fact: I can now ssh to a ~24 years old machine sporting a ~20 years old Linux kernel and libc.
Steps:
  • login as root, because the default RedHat 6 installation does not create an unprivileged user (if you want to access it via telnet you need first to create an user; then you can switch to root using su);
  • wget --verbose http://matt.ucc.asn.au/dropbear/releases/dropbear-2018.76.tar.bz2
    (note the "http" instead of usual "https")
  • bunzip2 dropbear-*.bz2
    tar xf dropbear-*.tar
    cd dropbear-2018.76
  • vi ifndef_wrapper.sh
    (remove the "-E" flag from "sed" command)
  • ./configure --prefix=/usr OLDCFLAGS=-O2
    (using "-O2" because "-Os" optimizes for size: this is an AMD 486 and I need speed over size;
    also ignore those "mkdir -v" warning; mkdir shipped in 1999 did not have verbose flag;will take more than 8 minutes)
  • vi Makefile
    (remove the "-pie" from "LDFLAGS=" line; it was detected but the compiler does not like it)
  • vi libtommath/makefile_include.mk
    (remove the "-Wextra" from the "CFLAGS +=" line and remove the "-Wsystem-headers -Wdeclaration-after-statement" in the following "CFLAGS +=" additional warnings line; these flags are not supported by egcs
  • vi libtomcrypt/makefile_include.mk
    (in the "LTC_CFLAGS +=" lines, remove the "-Wextra" and the "-Wsystem-headers" and the "-Wdeclaration-after-statement")
  • vi common-channel.c
    libc-2.1.1 does not define SHUT_* constants in its header files; just add at the top:
    #define SHUT_RD 0
    #define SHUT_WR 1
    #define SHUT_RDWR 2
  • vi netio.c
  • egcs doesn't support variable declarations in the middle of a function; move these two lines just before TRACE(("enter dropbear_listen")):
    u_int16_t *allocated_lport_p = NULL;
    int allocated_lport = 0;
  • vi cli-main.c
    same as above: move this declaration at the start of cli_main():
    pid_t proxy_cmd_pid = 0;
  • make
    it will take less than 25 minutes if "-Os" (37 minutes if "-O2");
    note: ignore these compiler warnings:
    • "...tomcrypt_prng.h:76: warning: unnamed struct/union that defines no instances"
    • "...bignum.h:32: warning: `sentinel' attribute directive ignored"
  • make install
    mkdir /etc/dropbear
    dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key
    dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key
    dropbearkey -t ecdsa -f /etc/dropbear/dropbear_ecdsa_host_key
  • usage: you have to explicitly tell the ethernet interface IP address and port because that ancient libc will crash if defaulting to "all interfaces". This is the line I added to /etc/rc.d/rc.local file:
  •  /usr/sbin/dropbear -p 192.168.1.17:22
  • also added my ssh key into ~/ssh/.authorized_keys for a passwordless login
  • note: if you want some Superb Security you should disable all the other services, including telnet
Bleeding edge security !! ('486 processor doesn't have Spectre/Meltdown/etc vulnerabilities).
Now I can ssh into a real '486. Wow!

giovedì 3 gennaio 2019

Siamo nel 2019 e il mio AMD 486 ruggisce come un fringuello!


Riallestito come server casalingo il mio potente '486 comprato nel 1995:
  • processore Amd 486 DX/4-WB a 120 MHz, 256k cache
  • motherboard California Graphics, chipset SiS496/497, 4 slot ISA (di cui uno con estensione VESA) e 4 slot PCI, controller 2xIDE+floppy+2xRS232 integrati
  • RAM: 24 Mb in quattro banchi table-free (2+2+4+16), DIMM 72 pin
  • hard disk IBM DJNA 8693 Mb (CHS = 1108/255/63)
  • cdrom 32x anche DVD-RAM e CD-RW 8x
  • floppy disk drive Teac 3.5" 1.44 Mb 
  • scheda video ATI Rage 3D su slot PCI
  • scheda di rete NE2000-compatibile su slot ISA 16 bit
  • due porte RS232, rispettivamente a 9 e a 25 pin, entrambe 16550A
  • connettore tastiera DIN tipo IBM AT
  • bios Award 4.50 datato aprile 1995
  • Linux RedHat 6.0 "Hedwig" (giugno 1999) con kernel Linux 2.2.5, bash 1.14.7, php 3.0.7, python 1.5.1, Qt 1.44, KDE 1.1.1, Gnome 1.0.4, PostgreSQL 6.4.1, Dosemu 0.99, ImageMagick 4.2.2, Vim 5.3.7, XFree86 3.3.3.1, Netscape 4.51...
  • accesso con telnet perché ssh 1.x non era nella distribuzione
Problema tecnico 1: l'ardisco manifesta dei bad sector all'inizio e alla fine, per cui la prima partizione è inutilizzabile (errore del superblock) e lo spazio originariamente destinato allo swap era imbottito di bad sectors. Meglio non rischiare: configurazione impostata così, con delle partizioni DOS (inutilizzate) che contengono le due aree dove si trovavano i bad sectors (il partizionamento esteso sda5 sda6 ecc. lo ha preteso l'installer perché l'ardisco era più di 1024 cilindri):


Nota: formattato manualmente la partizione di root, c'era solo ext2 e pochi altri filesystem, ed ext2 era limitato a 8 Gb. La formattazione di default avrebbe usato blocchi da 1024 e due milioni di i-node; formattando invece con blocchi da 4096 e solo 192000 i-node ho guadagnato più del 10% di velocità (misurato!).

Lancio startx e quindi Netscape Navigator, e ovviamente non riesce ad aprire sessioni HTTPS perché dal 1999 ad oggi è passata parecchia acqua sotto i ponti della sicurezza...


...ma per fortuna esiste ancora qualche sito web in HTTP in chiaro. Che però utilizza funzioni moderne del Javascript: notare l'errorino erroruccio e le parti del sito non visualizzate:


Tento quindi il buon vecchio retro hackaday che però ha un'immagine BMP in testa e le immagini JPEG poste invece su un server HTTPS:


Insomma, ruggisce come un fringuello!


Il /proc/cpuinfo mi dice:
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 4
model           : 9
model name      : 486 DX/4-WB
stepping        : 4
fdiv_bug        : no
hlt_bug         : no
sep_bug         : no
f00f_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu
bogomips        : 59.80


Invece il comando lsdev mi dice:
Device            DMA   IRQ  I/O Ports
------------------------------------------------
cascade             4     2
dma                          0080-008f
dma1                         0000-001f
dma2                         00c0-00df
fpu                      13  00f0-00ff
ide0                     14  01f0-01f7 03f6-03f6
keyboard                  1  0060-006f
NE2000                    5  0300-031f
pic1                         0020-003f
pic2                         00a0-00bf
rtc                       8  0070-007f
serial                       02f8-02ff 03f8-03ff
timer                     0  0040-005f
vga+                         03c0-03df

Caso notevole, i consumi sembrano bassissimi rispetto ai mammoni di oggi: con solo VGA ed Ethernet e hard disk, i consumi sono dai 23-24 watt in idle ai 27-28 watt con la CPU 486 al 100% durante la compilazione.

Nota importante: i processori 486 non soffrono di vulnerabilità Spectre-Meltdown-eccetera.

mercoledì 2 gennaio 2019

La primavera è in arrivo...

...e quindi devo collaudare gli spettacolosi pattini in linea Roces che comprai qualche tempo fa (e quasi quasi me ne compro un paio nuovo, ovviamente Roces!!).




martedì 1 gennaio 2019

Pronto a saltare

Nel mentre che staccavo un mandarino, s'è appollaiato un ospite imprevisto...



domenica 30 dicembre 2018

Righa

E la maestrina ha corretto con la penna rossa.


"Mario Panta COLLAN C/MAre Ti Ha Messo in RIGHA."

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.