Skip to content

Releases: matteoferrando/MyDiveLog

MyDiveLog 1.8.33

Choose a tag to compare

@matteoferrando matteoferrando released this 02 Oct 12:54

MyDiveLog 1.8.33 — su Android, le pagine di memoria da 16 KB

Un'altra versione per Android, il giorno stesso della 1.8.32. Su Mac, Windows,
Linux e iPhone non cambia niente
: chi la aggiorna ritrova la stessa
applicazione.

La parte nativa, allineata a 16 KB

La parte dell'app scritta in Rust e in C — quella che parla coi computer
subacquei — era allineata alle pagine di memoria da 4 KB. Google Play pretende 16
KB dalle app per Android 15 e successivi, e i telefoni che usano pagine da 16 KB
ne hanno bisogno: per questo Play ha fermato anche la 1.8.32. Adesso è allineata
a 16 KB, e prima che un pacchetto esca un controllo lo apre e lo verifica,
libreria per libreria.

Se arrivi da una versione prima della 1.8.32

La 1.8.32 ha messo su Android l'icona di MyDiveLog al posto di quella di Tauri. La
1.8.30 e la 1.8.31 portano il resto: dieci computer Bluetooth nuovi, le
correzioni allo scarico, la schermata che dice quante immersioni sono già salvate
se lo scarico si interrompe. Le note stanno nelle release
v1.8.32,
v1.8.31 e
v1.8.30.


Ogni correzione ha una prova, e ogni prova è stata rimessa alla prova rimettendo
il difetto: 3 024 controlli automatici in 197 file, più 187 sul motore
nativo. Nessuno saltato.

Impronte SHA-256

Calcolate sui file allegati a questa release, non su una compilazione
precedente: due compilazioni non danno lo stesso byte.

Pacchetto SHA-256 byte
MyDiveLog-macOS-arm64.dmg d2aeaf8c06337f82484680d688714ad311f6a4468e84ac15aa2c208a4fd1a1c4 4.540.953
MyDiveLog-Windows-setup.exe 54eaaa826f6b6a79fe7e7b5c4f9dcde0e9140fc07fb007e0f3d04668538717f4 3.268.899
MyDiveLog-Windows-portatile.exe b49ddfd9bc73d1505258db230e2b0cdddf68521a81f3851e23979041dee85b80 7.496.192
MyDiveLog-Android-arm64.apk ab741e0120879af88a64ed6bd34a186b5892cd5f06302aa99641f53b2597b555 11.044.258
MyDiveLog-Linux-amd64.deb 54cfc4bca01fd3716824174a47cc1b8e31e54a827de3c78bca53cd847c5bdaa3 3.834.048

MyDiveLog 1.8.32

Choose a tag to compare

@matteoferrando matteoferrando released this 02 Oct 10:59

MyDiveLog 1.8.32 — su Android, l'icona giusta

Una versione per Android. Su Mac, Windows, Linux e iPhone non cambia niente
rispetto alla 1.8.31: chi la aggiorna ritrova la stessa applicazione.

L'icona di MyDiveLog, al posto di quella di Tauri

Fino alla 1.8.31, installata su Android, l'app mostrava l'icona di fabbrica di
Tauri — il framework con cui è costruita — invece del profilo d'immersione di
MyDiveLog: dall'APK di questa pagina e da Google Play, che per questo ha fermato
la 1.8.31. Il pacchetto si costruiva senza che le nostre icone ci entrassero mai,
e nessun controllo guardava.

Adesso l'icona è quella del marchio, nella forma adattiva che Android ritaglia a
modo suo (cerchio, goccia, quadrato arrotondato) senza tagliare il profilo. E
prima che un pacchetto esca, un controllo lo apre e confronta l'icona che c'è
dentro con la nostra, pixel per pixel, a ogni densità.

Se arrivi da una versione prima della 1.8.30

La 1.8.30 e la 1.8.31 portano il resto: dieci computer Bluetooth nuovi (Perdix 3,
Quad 2, Sirius L, Puck Pro EZ e Ultra, Raffaello, Seac Tablet, OSTC 3, OSTC cR,
OSTC Nano), le correzioni allo scarico, la schermata che dice quante immersioni
sono già salvate se lo scarico si interrompe. Le loro note stanno nelle release
v1.8.30 e
v1.8.31.


Ogni correzione ha una prova, e ogni prova è stata rimessa alla prova rimettendo
il difetto: 3 017 controlli automatici in 196 file, più 187 sul motore
nativo. Nessuno saltato.

Impronte SHA-256

Calcolate sui file allegati a questa release, non su una compilazione
precedente: due compilazioni non danno lo stesso byte.

Pacchetto SHA-256 byte
MyDiveLog-macOS-arm64.dmg 54ab618e5286303a3b2d2ff84af77144d1309216862a56e783a70dcc8cdf6214 4.540.931
MyDiveLog-Windows-setup.exe e5d6df21a7eb38e266c227d6f3d1fb0f8f1fd29769d4559c161117e033be9cb9 3.267.981
MyDiveLog-Windows-portatile.exe ae709b18f26fcf44019fc38620ada2fed4f469dc39852ffcf91615dc8ea45519 7.496.192
MyDiveLog-Android-arm64.apk 17e14fe13448f0211865ec5438bf6a49c09aee12ecf53d6b765e71bbf6e06c47 11.044.258
MyDiveLog-Linux-amd64.deb 797191adc13d891c53d9c084175657ee0e39bafaf49fc2ad9afa3e4b352baa4f 3.834.142

MyDiveLog 1.8.31

Choose a tag to compare

@matteoferrando matteoferrando released this 24 Sep 07:44

MyDiveLog 1.8.31 — la schermata dice quello che è arrivato

Una versione piccola, nata da una segnalazione del giorno dopo la 1.8.30.

Le immersioni arrivate si vedono anche quando lo scarico si interrompe

Un Aqualung i330R aveva portato settantuno immersioni nel logbook prima che il
collegamento cadesse; l’applicazione aveva riprovato da sola, e il tentativo
dopo non si era più collegato. In cima alla schermata c’era scritto «Non è
stata salvata nessuna immersione»: vero per l’ultimo tentativo, falso per lo
scarico. Chi l’ha letto ha creduto di non avere niente, con settantuno
immersioni in archivio.

Adesso, quando un tentativo precedente ha già salvato delle immersioni, la
frase in cima lo dice — «Il logbook ha ricevuto e salvato 71 immersioni prima
che il collegamento si interrompesse»
— e poi come fare per le altre.

L’Aqualung i330R è fra i modelli provati

Settantuno immersioni arrivate davvero, da un i330R in uso: sotto il suo nome,
nel selettore, adesso c’è scritto «provato su questo modello».

Se arrivi dalla 1.8.29

La 1.8.30, uscita ieri, porta il resto: la libreria che legge i computer
aggiornata, dieci modelli Bluetooth nuovi (Perdix 3, Quad 2, Sirius L, Puck Pro
EZ e Ultra, Raffaello, Seac Tablet, OSTC 3, OSTC cR, OSTC Nano), l’i330R che non
si blocca più dopo uno scarico interrotto e chiede da sé il PIN nuovo, le
immersioni lette col modello che il computer dichiara, il ruolo «bailout» col
circuito chiuso. Le sue note stanno nella release
v1.8.30.


Ogni correzione ha una prova, e ogni prova è stata rimessa alla prova rimettendo
il difetto: 2 977 controlli automatici in 194 file, più 187 sul motore
nativo. Nessuno saltato.

Impronte SHA-256

Calcolate sui file allegati a questa release, non su una compilazione
precedente: due compilazioni non danno lo stesso byte.

Pacchetto SHA-256 byte
MyDiveLog-macOS-arm64.dmg a518f1066bbd6e9676a8529292065e65a040641299d6a2865644268a1259eab3 4.541.351
MyDiveLog-Windows-setup.exe c5e056321106ad1561e8a82cde39b6d58a78fa1c21022b068542aea67f763959 3.269.551
MyDiveLog-Windows-portatile.exe 91cca47808729a555602ff01a306974b8ae9d1fbd95db10c3aeab34dd9129aad 7.537.664
MyDiveLog-Android-arm64.apk a2200aa3854cf98694e656021b0c6d18730f026a377915bfad675d84cb3fc9e3 11.148.342
MyDiveLog-Linux-amd64.deb 591b141b1f0d44259c170ad8e67b56c5aea6eab6be74d8bed28dccca5fa08ca4 3.834.048

MyDiveLog 1.8.30

Choose a tag to compare

@matteoferrando matteoferrando released this 23 Sep 07:20

MyDiveLog 1.8.30 — i computer subacquei, uno per uno

Una notte su una domanda sola: ogni computer che l’elenco promette si scarica
davvero?
Non si risponde provandoli tutti — qui ce n’è uno — ma leggendo, per
ciascuno, che cosa la libreria si aspetta da noi e che cosa noi le davamo.

La libreria che legge i computer è aggiornata

libdivecomputer passa dalla 0.9.0 al suo ramo principale: ottantanove modifiche
in più di un anno. Dieci modelli nuovi si collegano via Bluetooth — Perdix 3,
Quad 2, Sirius L, Puck Pro EZ, Puck Pro Ultra, Raffaello, Seac Tablet, OSTC 3,
OSTC cR, OSTC Nano — e ci sono correzioni per computer che già si scaricavano:
l’Halcyon col protocollo Bluetooth 1.30 veniva rifiutato per la lunghezza di
una risposta, e i Mares potevano fermarsi su un puntatore di fine profilo
storto.

Aqualung i330R

La coda di una lettura vecchia. Se uno scarico si era interrotto a metà, al
collegamento dopo il computer mandava il resto di quella lettura prima di
rispondere — un millisecondo dopo la prima domanda, cioè prima che la domanda
potesse arrivargli — e la libreria lo prendeva per la risposta e si fermava.
Adesso, prima del primo comando, si ascolta e si butta quello che non può essere
una risposta.

Un codice che non vale più. Se il computer è stato azzerato o accoppiato
con un altro telefono, risponde col codice d’errore 13 e mostra un PIN nuovo:
adesso l’applicazione lo chiede da sola e riparte, invece di fermarsi a ogni
tentativo.

E la chiave conservata non si butta più per sbaglio. La regola che la
dimenticava scattava solo per i guasti di prima dello scarico, quelli in cui la
chiave non era mai stata presentata. Adesso si butta quando il computer, per
due volte di fila, non l’ha accettata.

Le immersioni si leggono col modello che il computer dichiara

Per molte marche il modello decide come si leggono i byte: la disposizione dei
campioni dei Mares, hwOS 3 o hwOS 4 negli OSTC, la memoria dei Pelagic.
Fino a oggi valeva il modello scelto dall’elenco; adesso vale quello che il
computer dichiara quando si collega, come in Subsurface. Se la scelta era
un’altra, il diario lo dice e il nome sulle immersioni si corregge — quando
il numero del modello porta a un nome solo.

Il Mares giusto, e il Perdix 3 alla strada giusta

Per un Mares il modello scelto decide anche come arrivano i pacchetti, fissi
o variabili: proporre quello sbagliato non è un’etichetta storta, è uno scarico
che non parte. «Puck Pro U», il nome del Puck Pro Ultra, conteneva «Puck Pro», il
Puck della generazione prima. Adesso chi annuncia l’adattatore BlueLink sceglie
fra i Mares dell’adattatore, chi ha il Bluetooth dentro fra i suoi, e un nome
troncato trova il modello di cui è l’inizio.

Il Perdix 3 è della famiglia del Peregrine ma parla un protocollo nuovo: va
alla libreria, che lo conosce, e non al lettore Shearwater scritto in casa.

Il pianificatore

Col circuito chiuso ogni gas tranne il diluente si può dichiarare «bailout»:
il pianificatore sapeva già cosa farne, la pagina non lo lasciava scegliere.
Sotto il consumo della bombola di bailout compariva il nome del gas sbagliato.
Uno stato salvato incompleto — livelli vuoti, gas mancanti, tessuti troncati a
metà — non rompe più la pagina né sottostima il carico di una ripetitiva.

E ancora

  • Il cursore dei gradient factor era l’ultimo controllo sotto misura: ora è
    alto 36 col mouse e 44 col dito, con la pallina da 20 e da 28.
  • Su iPhone e sul Mac i pezzi che il sistema disegna dentro l’app —
    Annulla, Fine, Copia, Incolla — parlano la lingua del telefono, e l’App Store
    elenca l’italiano.
  • La velocità verticale e la linea della decompressione si disegnano giuste
    anche quando i campioni del file non sono in ordine di tempo.
  • Un file di Shearwater Cloud troncato viene rifiutato con un messaggio,
    invece di produrre colonne vuote inventate.
  • Se il computer non conferma subito l’attivazione delle notifiche, si
    riprova, come si riprova il collegamento: fino a oggi lo scarico finiva lì.
  • Il McLean Extreme, che alla prima domanda risponde dopo qualche secondo,
    non si vede più rimandare la domanda mentre pensa.

Ogni correzione ha una prova, e ogni prova è stata rimessa alla prova rimettendo
il difetto: 2 972 controlli automatici in 193 file, più 187 sul motore
nativo. Nessuno saltato.

Hai uno dei modelli nuovi? Collegalo e raccontaci com’è andata dalla
pagina delle segnalazioni del sito: da lì il modello entra nell’elenco dei
provati, e l’applicazione lo scrive sotto il suo nome.

Impronte SHA-256

Calcolate sui file allegati a questa release, non su una compilazione
precedente: due compilazioni non danno lo stesso byte.

Pacchetto SHA-256 byte
MyDiveLog-macOS-arm64.dmg 8318f169460d2bcef6d6e9dab1ebf8b0ab34d3216f5fd8aef8faf8fbb01722a7 4.540.909
MyDiveLog-Windows-setup.exe 04b0180090bba9c20ea2d588e3d26e78cbf2f741cd10fe223b63b5d51a380b3a 3.269.848
MyDiveLog-Windows-portatile.exe 283329917dadef66d53bb4f9476da5d68e7f09ed650c56ec9b89452fa1018274 7.537.664
MyDiveLog-Android-arm64.apk bcbf5fce8bffab01d0d063f644eafdaff9b2d0172cfa870233fcb2bd597b9526 11.148.038
MyDiveLog-Linux-amd64.deb 5dbf5c297da8f7f01c97f5d543ff7b6248b87e9157924daf3a5e4d6e43e1053c 3.833.928

MyDiveLog 1.8.29

Choose a tag to compare

@matteoferrando matteoferrando released this 18 Sep 07:31

MyDiveLog 1.8.29 — le proporzioni, contate invece che guardate

Due notti di lavoro su una domanda sola: l’applicazione è bella? Non si
risponde guardandola, perché l’occhio si abitua. Si risponde contando — centoventi
viste, dodici larghezze (dall’iPhone SE da 320 px al Linux da 1920), dieci
schede, tema chiaro e scuro, italiano e inglese. Poi un debug a tappeto su
tutto il resto.

Ogni controllo ha la stessa altezza, e sul telefono si preme davvero

Misurato a 1280 px: un pulsante era alto 35,5 px, un campo di testo 33,5, un
menu a tendina 31. Tre altezze per tre cose che stanno nella stessa riga di
filtri
— nessuna sbagliata di suo, ognuna nata dal proprio riempimento, e
proprio per questo mai viste.

Sul telefono la differenza cambiava di segno e diventava un problema vero: i
campi salivano a 38 px e i pulsanti restavano a 35,5, cioè sotto i 44 px che
iOS chiede a un bersaglio da premere col dito
, nella stessa schermata dove la
barra in basso era già a 44.

Adesso è una misura dichiarata: 36 col puntatore, 44 col dito, per ogni
pulsante, campo e menu dell’applicazione. Anche i riquadri apribili
(«Avanzate», «3 esercizi», «Risalita, soste e limite di PPO2»), che erano
bersagli alti diciotto pixel.

Il pianificatore non scrive più numeri impossibili

Con una bombola da zero litri la tabella dei gas diceva «EAN32 1.719
Infinity 220»
. E sotto il campo della bombola si leggeva «3982.0000000000005
L di gas»
: il valore era giusto — in binario 220 × 18,1 fa esattamente
quello — ma chi legge non vede i binari, vede un’applicazione che non sa
contare il gas che si porta sott’acqua.

Quattordici punti di disegno passano ora da un arrotondamento che vale solo per
quello che si legge; i conti dentro restano esatti.

Su Android l’applicazione parlava di un’altra piattaforma

Nella schermata di importazione c’era scritto «Trascina qui i file, o scegli
dal disco»
: un gesto impossibile e un posto che sul telefono non esiste. La
correzione per iPhone c’era da tre settimane; Android è un telefono esattamente
quanto l’altro, e lì era rimasta la frase del computer.

E quando la ricerca Bluetooth non trova niente, l’applicazione dice dove si
concede il permesso: su Android dava il percorso di macOS, che lì non esiste —
e il permesso non si chiama nemmeno Bluetooth, da Android 12 il gruppo è
Dispositivi nelle vicinanze.

La scheda dell’immersione, sul telefono

«Esporta PDF» e «Modifica dati» stavano su metà schermo, con il secondo che
andava a capo dentro il pulsante. Adesso prendono metà larghezza ciascuno, alti
uguale, e il ritorno al logbook sta sulla sua riga.

La scelta del periodo si vede

I quattro pulsanti — 6, 12, 24 mesi, tutto l’archivio — a schermo stretto
andavano a capo due e due, allineati a destra e sfrangiati a sinistra in mezzo a
una carta allineata a sinistra. Adesso sono una griglia due per due a tutta
larghezza, e quello acceso si distingue per il bordo blu invece che per tre
punti di grigio.

Quattro etichette dentro i grafici venivano tagliate

«54:00» sull’asse dei tempi del confronto, «obiettivo» sulla linea di
riferimento, il nome del sito più frequentato, l’unità sotto l’asse. Un testo
dentro un disegno non ha i puntini di sospensione: o ci sta, o sparisce un
pezzo, e non lo segnala niente. E «sosta di sicurezza 2.5–7.5 m» perdeva
l’ultima parola sotto la riga della risalita, che passa per quella fascia per
costruzione: adesso è disegnata sopra la curva, con l’alone, come le quote di
una carta nautica.

In inglese ne uscivano altre due, perché le frasi cambiano lunghezza. Misurare
in una lingua sola è misurare mezza applicazione.

Sotto il cofano

Il controllo dei tipi non guardava il servizio dell’accesso. Gli otto file
che scambiano il codice con Apple e con Google, tengono le sessioni e parlano
col database non erano dentro tsconfig.json: nessun controllo li aveva mai
letti. Adesso ci sono, insieme ai nove programmi di supporto e alla
configurazione della build — e in uno di quelli c’era un errore vero.

La catena di rilascio misurava il pacchetto di ieri. I controlli sul peso e
sulla divisione della build leggono la cartella costruita, e la catena non
costruiva: su una copia pulita non giravano affatto, e altrove giravano sulla
build della versione precedente. Adesso si costruisce per prima cosa, e cinque
controlli che non partivano partono.

Le prestazioni, misurate fino a diecimila immersioni — il doppio di quante
ne avevamo mai contate: tutto resta sotto il decimo di secondo tranne il
ricalcolo completo delle metriche (0,6 s) e l’import di cinquanta immersioni in
un archivio da diecimila (0,3 s).

E sul motore nativo: una costante misurata sul campo — l’intervallo della radio
Bluetooth — che serviva a giustificare un’attesa e che nessuno leggeva.
Adesso il compilatore controlla la relazione fra i due numeri.


Ogni correzione ha una prova, e ogni prova è stata rimessa alla prova rimettendo
il difetto: 2 884 controlli automatici in 183 file, più 149 sul motore
nativo. Nessuno saltato.

Impronte SHA-256

Calcolate sui file allegati a questa release, non su una compilazione
precedente: due compilazioni non danno lo stesso byte.

Pacchetto SHA-256 byte
MyDiveLog-macOS-arm64.dmg ac7293ac4b7599b786d7a50683b7b19bfe77aeeb41f1395214a2a5648a164923 4.531.066
MyDiveLog-Windows-setup.exe 2da3e25e58aa9188f9239e3dd2059a691b247390d0049f46caf09b9261df3c69 3.263.728
MyDiveLog-Windows-portatile.exe abfb84640db7dae5b1ad260f2c2dfac91f84b3d015d745f0c9dd7343ba06632f 7.523.840
MyDiveLog-Android-arm64.apk 209da036138535b63049357680e3df2a0419dde9a637a6f72f42f085c5545ecb 11.133.158
MyDiveLog-Linux-amd64.deb f04c9e30b06b1283965f12d4fd42216950e1cdc30c562f7c4c5f92f60b55310f 3.827.112

MyDiveLog 1.8.28

Choose a tag to compare

@matteoferrando matteoferrando released this 17 Sep 08:28

MyDiveLog 1.8.28 — l'interfaccia del computer, guardata invece che immaginata

Questa versione non nasce da una segnalazione ma da una frase detta davanti allo
schermo: «chiediamo il menu della lingua in due parti». Bastava guardare. Da lì
è venuto fuori il resto, misurando l'applicazione vera con un browser senza
testa invece di rileggere il codice: novantuno schermate, l'inventario dei
comandi di ogni pagina, le geometrie a sei larghezze diverse e il contrasto di
ogni testo, chiaro e scuro.

I campi avevano il vestito di fabbrica, e da tre settimane

Ogni casella di testo e ogni menu a tendina — la ricerca del logbook, i filtri,
il modulo della nuova immersione, il pianificatore, le impostazioni — era
disegnato dal motore e non dall'applicazione: bordo grigio incassato, angoli
vivi, e sul computer un'altezza di 19 pixel accanto a pulsanti alti 36.

Colpa nostra, e databile: nella 1.8.23 una regola di stile è stata infilata
dentro l'elenco di un'altra, e una virgola si è portata via le dichiarazioni di
tutti i campi. Il foglio restava valido, nessun errore da nessuna parte. Sul
telefono si notava meno — lì il testo dei campi resta grande per un'altra regola,
e i riquadri di sistema sembrano quasi a posto — ed è il motivo per cui è
passata inosservata per tre settimane.

Adesso i campi hanno il bordo, gli angoli e il fondo del resto
dell'applicazione — anche in tema scuro — e sul computer sono alti 34 pixel
invece di 19.

I bersagli erano a norma solo sul telefono

Le caselle di spunta del logbook misuravano 13×13 pixel con il mouse, e la
data che apre l'immersione 58×20: sotto il minimo che le linee guida chiedono,
nella stessa applicazione dove sul telefono erano a posto da settimane. Le
misure stavano dentro una condizione che descriveva solo lo schermo piccolo.

Adesso la data è 62×28 per tutti e la casella cresce a 18 pixel con il mouse e a
24 con il dito, senza rubare righe all'elenco.

La lingua si cambia in un posto solo

C'erano due comandi per la stessa cosa, visibili insieme sul computer: la coppia
IT/EN nella barra in alto e la riga «Lingua» in Impostazioni. Resta la seconda,
che è dove chiunque va a cercarla — e dove stava già l'unica copia sul telefono.

FIAS fra le didattiche dei brevetti

Su richiesta di un istruttore: nel catalogo c'era una sola federazione italiana.
Adesso c'è anche la Federazione Italiana Attività Subacquee, con 17 brevetti
— dalla linea ARA (Minisub, Junior, Dodicimetri, Base, ARA, ARA Estensione) alle
specializzazioni, alla linea didattica, alla linea tecnica fino al Trimix 90.

I numeri vengono dalle pagine ufficiali della federazione: non è un alias di
FIPSAS
, perché le due scale non coincidono — il primo livello autonomo
dichiara 20 metri contro 18, il gradino profondo 40 contro 42.

E la scheda del brevetto non mostra più due profondità

Scegliendo un corso, sotto la tendina si leggeva «Primo livello (fino a 18 m) ·
20 m»
: il tipico del livello e quello che dichiara la didattica, uno accanto
all'altro. Due fatti veri che insieme sembrano un errore. Adesso, dove la
didattica il suo numero lo dichiara, il numero è uno solo. Capitava anche a CMAS
e a FIPSAS: si è visto solo mettendo davanti agli occhi una didattica nuova.

Sotto il cofano

Tre file del progetto contenevano un byte di controllo dentro una stringa, e per
questo grep e git diff li trattavano come binari: erano invisibili a ogni
ricerca e illeggibili in ogni revisione — fra questi il cuore della deduplica.
Il valore che producono non cambia di un bit: cambia come è scritto.

Corrette anche ventuno date sbagliate di un giorno, sparse fra documenti e
commenti, e tolte due regole di stile che vestivano una funzione che non esiste
più.

Ogni correzione ha una prova, e ogni prova è stata rimessa alla prova rimettendo
il difetto: 2 865 controlli automatici in 179 file, più 149 sul motore
nativo.

Impronte SHA-256

Calcolate sui file allegati a questa release, non su una compilazione
precedente: due compilazioni non danno lo stesso byte.

Pacchetto SHA-256 byte
MyDiveLog-macOS-arm64.dmg 4ccef33701196c75bbb396a9bf70d6265ff6ecc2e8c4aecebb3b260eba945e1b 4.531.560
MyDiveLog-Windows-setup.exe 81b4285ae7473356dca3fa66abe0f37004fadcb0509ce53a686d01e6ccd402e6 3.263.877
MyDiveLog-Windows-portatile.exe 106b3d9263a0c7b5fa0c133907b800700f96afe63418d358ae5498e962efd5e4 7.523.840
MyDiveLog-Android-arm64.apk 450e84fd1ff514b3f33aacccd49a86274299d7a929c9b7762d18f2ecece62fc8 11.133.366
MyDiveLog-Linux-amd64.deb 3427db8bd787d8dfeed91aabb1d8846c7b862a10bfabdd100e71cf3e1775dddc 3.827.384

MyDiveLog 1.8.27

Choose a tag to compare

@matteoferrando matteoferrando released this 16 Sep 17:06

MyDiveLog 1.8.27 — il primo computer vero, e il secondo che si è fermato

Il 17 settembre 2026, nello stesso messaggio, due notizie.

Un Mares Quad Ci ha scaricato davvero

«Su Mares Quad Ci funziona adesso.»

È il primo computer subacqueo di terzi che consegna immersioni attraverso
libdivecomputer in questa applicazione. Fino a ieri, sotto ogni modello di
quella strada, il selettore scriveva «mai provato su questo modello» — ed era
la verità, scritta apposta perché lo era.

Adesso sotto il Quad Ci c'è scritto «provato su questo modello», e sotto
tutti gli altri no. L'etichetta si toglie un modello per volta, quando
qualcuno lo accende e racconta com'è andata: un modello provato non è una
famiglia provata, e la seconda metà dello stesso messaggio lo dimostra.

Un Aqualung i330R si fermava a metà, e il difetto era nostro

Quaranta immersioni arrivate, poi «errore di protocollo». Nel diario:

libdivecomputer, errore: Invalid packet length (96).

Il computer manda pacchetti che dichiarano la propria lunghezza. Uno di quelli —
101 byte in tutto — era stato spezzato in due dalla radio, e l'applicazione ne
consegnava solo il primo pezzo: leggeva una notifica per volta e non aveva modo
di sapere che il pacchetto continuava.

Adesso la lunghezza si legge dal pacchetto invece di indovinarla dalla
dimensione delle notifiche. Vale per Aqualung i330R, i330R Console e Apeks DSX,
che parlano tutti lo stesso inquadramento.

Nello stesso giro: due pacchetti arrivati attaccati non vengono più incollati
insieme — era il difetto peggiore dei due, perché non dava nessun errore e si
vedeva solo molto dopo, come dati che non si tengono insieme.

E una chiave che veniva buttata per niente

Quando uno scarico fallisce, il codice di accoppiamento conservato si dimentica:
se quella chiave non valesse più, terrebbe quel computer bloccato per sempre.

Ma nel diario del 17 settembre il secondo tentativo non era nemmeno arrivato a
collegarsi — tre volte «tempo scaduto» sulla radio — e la chiave, che si usa
dopo il collegamento, è stata buttata lo stesso. Sei cifre da ridigitare in
cambio di niente.

Adesso, quando il collegamento non si apre, la chiave resta dov'è.


Grazie a chi ha scaricato, ha letto il diario e l'ha mandato. Da qui i computer
degli altri non si vedono: si vedono solo quando qualcuno li accende e racconta
cosa è successo.

Ogni correzione ha una prova, e ogni prova è stata rimessa alla prova rimettendo
il difetto: sette mutazioni, sette guardie rosse. In tutto 2 839 controlli
automatici in 173 file
, più 149 sul motore nativo.

Impronte SHA-256

Pacchetto SHA-256 byte
MyDiveLog-macOS-arm64.dmg cd834d784890651d31ec510ac9361ce177fc06c58a8fa3e5bcbb58ef7661fddc 4.531.589
MyDiveLog-Windows-setup.exe ed4f42409244bbc4bbc0486065abf81d765e5bc637f66ba555806ec9943d4272 3.264.192
MyDiveLog-Windows-portatile.exe a5b0068a011cf639bcc24a1bd608fdab2b0bf87be6c7ee8b5245498e9f10a2dc 7.523.840
MyDiveLog-Android-arm64.apk 4184045ff776b9de02e380c66d18d9bc71b8be611cc8db311fbc2efdcea97e9d 11.133.302
MyDiveLog-Linux-amd64.deb 58d484188aaecc41bc2f4d120d3ed525018b70880f65e959b9ebda8d7402c60f 3.827.242

Calcolate sui file allegati a questa release, non su una compilazione
precedente.

Quello che non è stato provato su un apparecchio. La correzione dell'i330R
è verde sulle prove, che riproducono il pacchetto spezzato con i numeri esatti
del diario — 96 byte di carico, 101 in tutto — ma qui un i330R non c'è. La
conferma vera è il prossimo messaggio di chi l'ha segnalato.

Lo stesso vale, come sempre, per il giro completo su Windows e Android:
finestra, Bluetooth, archivio e stampa su quelle due piattaforme non sono mai
stati percorsi a mano. Su Linux sì, meno il Bluetooth.

MyDiveLog 1.8.26

Choose a tag to compare

@matteoferrando matteoferrando released this 16 Sep 13:20

MyDiveLog 1.8.26 — quattro difetti che non si vedevano

Una revisione indipendente ha letto il progetto alla 1.8.24 e ha riprodotto nove
problemi. Cinque sono stati chiusi in giornata; questi sono gli ultimi
quattro
, e hanno in comune una cosa sola: nessuno di loro dava un errore.

«Tutte o nessuna» era scritto e non era vero

Ogni immersione che entra in archivio sono tre scritture: il riepilogo, il
profilo e l'eventuale secondo profilo. Dovevano essere una cosa sola — o tutte o
nessuna — e c'era scritto che lo fossero.

Non lo erano. Il motore di database dell'applicazione non tiene una connessione
sola: ne tiene un gruppo, e il comando che apriva la transazione finiva su una
connessione diversa da quello che scriveva. Tre risposte «fatto» e niente di
indivisibile.

Cosa cambia per chi la usa. Se l'applicazione viene chiusa dal sistema
mentre sta salvando — su un telefono succede quando serve memoria — adesso o
l'immersione è in archivio intera, col suo profilo, o non c'è affatto. Prima
poteva restare un'immersione senza il suo profilo, e su un dispositivo senza
account quel profilo non tornava più.

Vale anche per la cancellazione e per lo svuotamento dell'archivio, che avevano
lo stesso difetto.

La sincronizzazione poteva accorciare un profilo già salvato

Quando la stessa immersione è stata scaricata da due computer, l'applicazione
tiene due profili. I due viaggiavano insieme: se il principale doveva salire,
saliva anche il secondo — sopra a un secondo profilo più ricco già presente
sull'altro dispositivo
.

Misurato: un profilo alternativo di 100 campioni ridotto a 5 da una
sincronizzazione. In silenzio, senza un avviso.

Adesso i due profili si decidono da soli, ognuno per conto suo, e possono
benissimo andare in direzioni opposte. E il secondo profilo scende anche
quando è l'unico che c'è
: prima, su un'immersione senza profilo principale,
non arrivava mai.

Dopo un'importazione il carico di azoto mancava fino al riavvio

Subito dopo aver importato, la scheda della saturazione diceva «serve un
profilo campionato»
accanto a un profilo che c'era. Bastava chiudere e riaprire
l'applicazione e compariva il numero, senza aver aggiunto niente.

Il carico residuo di azoto, il GF99 e l'intervallo di superficie non si
calcolano da una sola immersione: nascono dalla catena, che va da
un'immersione all'altra in ordine di tempo. Quel passaggio c'era all'avvio,
dopo l'inserimento a mano e dopo un ripristino — e mancava proprio nelle due
strade dell'importazione, cioè dove le immersioni arrivano a decine.

Il numero non era sbagliato: era assente, e il messaggio ne dava la colpa alla
cosa sbagliata.


Ogni correzione ha una prova, e ogni prova è stata rimessa alla prova rimettendo
il difetto: dieci mutazioni, dieci guardie rosse. Più un'undicesima che è
rimasta verde — e quella ha fatto correggere la prova, non il codice.

In tutto 2 829 controlli automatici in 170 file, più 140 sul motore
nativo.

Impronte SHA-256

Pacchetto SHA-256 byte
MyDiveLog-macOS-arm64.dmg 42590d6d2d6b86cf0f753dbf6e8935c7f561491d9fbb0e3614cce981aa95c140 4.530.771
MyDiveLog-Windows-setup.exe 6a8669cd89778ff60c9d24fa546f977769178430ff3e8babd0e911249f03932c 3.262.484
MyDiveLog-Windows-portatile.exe a28036d9c502bd6e2b9fe89ae9634a2e0ae61bf6b2b56e8c270315aae1914ac1 7.522.816
MyDiveLog-Android-arm64.apk 53af341d11741d3dbfcd02a1bae5d32a5b9e702d62340123dbe1f94457e953da 11.131.966
MyDiveLog-Linux-amd64.deb a7f49a58f22b08cd1b4bfde5c31f4895cb387327c8c05120c238b49ec4eb798b 3.826.114

Calcolate sui file allegati a questa release, non su una compilazione
precedente. Il .deb e l'.apk vengono dal workflow, e i loro due controlli
hanno risposto giusto.

Su Windows e Android il giro completo non l'ha provato nessuno. Il codice
del motore è lo stesso del Mac e dell'iPhone, con tutte le prove dietro, ma
finestra, Bluetooth, archivio e stampa su quelle due piattaforme non sono mai
stati percorsi a mano. Su Linux sì, meno il Bluetooth, che vuole un
adattatore.

Vale anche per il selettore di destinazione arrivato con la 1.8.25: la
compilazione per Android è verde e dentro l'APK ci sono le classi che servono,
ma il selettore che si apre su un telefono non l'ha visto nessuno.

MyDiveLog 1.8.25

Choose a tag to compare

@matteoferrando matteoferrando released this 16 Sep 12:11

MyDiveLog 1.8.25 — il file che c'era e non si trovava

Due cose, tutte e due arrivate da chi usa l'applicazione. La prima è la coda di
un difetto che la 1.8.24 aveva chiuso a metà.

Su Android il file adesso lo scegli tu

Ieri «Esporta PDF» diceva «PDF salvato» e non salvava niente. La 1.8.24 ha
smesso di mentire e ha cominciato a scrivere il file davvero — ma lo scriveva
dentro la cartella privata dell'applicazione, che da Android 11 nessun
gestore di file può aprire
e che la disinstallazione porta via.

«Purtroppo il pdf non si genera ancora anche se è cambiato il messaggio.
Forse perché si genera in una cartella che non risulta visibile se non da
pc.»

La diagnosi è di chi l'ha segnalato, ed era giusta. Il file c'era, e non era
raggiungibile.

Adesso l'applicazione apre il selettore di sistema e chiede dove: Download,
Drive, la scheda SD, quello che vuoi. Il file finisce in una cartella vera,
sopravvive alla disinstallazione, e sai dov'è perché l'hai scelto tu. Se chiudi
il selettore senza scegliere, non viene scritto niente e l'applicazione lo
dice — annullare non è né riuscire né fallire.

Vale per tutte le esportazioni: PDF della scheda, PDF del piano, backup JSON,
UDDF, CSV, KML, byte grezzi del computer subacqueo.

Su iPhone non cambia niente: là la cartella dell'applicazione si vede già
nell'app File, sotto «Sul mio iPhone → MyDiveLog».

La numerazione riparte da dove finisce il tuo logbook di carta

«Ho scaricato dal mio computer 148 immersioni e l'ultima mi compare
immersione #148 ma in realtà sarebbe la #183.»

In Profilo → Dati per il LogBook c'è una casella nuova: «Immersioni fatte
prima di questo archivio»
. Ci si scrive quante ne contiene il logbook di
carta, e sotto compare subito il risultato — «In archivio ci sono 148
immersioni: numerate dalla #36 alla #183»
— così non c'è da indovinare se
scrivere 35 o 36.

Il numero nuovo vale ovunque: elenco, scheda, PDF, libretto, CSV, UDDF. E
viaggia con la sincronizzazione, perché è un fatto su di te e non su un
dispositivo: il telefono e il computer numerano allo stesso modo.

Chi ha registrato tutto da sempre non deve toccare niente.


Grazie a chi ha segnalato tutte e due le cose, e ha avuto la pazienza di
riprovare e di dirmi che la prima correzione non bastava. Una segnalazione che
arriva due volte vale più di dieci riletture: la seconda diceva esattamente
dove guardare.


Ogni correzione ha una prova, e ogni prova è stata rimessa alla prova
rimettendo il difetto — sei mutazioni, sei guardie rosse. In tutto
2 805 controlli automatici in 168 file, più 135 sul motore di lettura
dei computer subacquei.

Impronte SHA-256

Pacchetto SHA-256 byte
MyDiveLog-macOS-arm64.dmg 0b7341a2d60666262882afb298867ae72dc76da99a1739dbc4aa0b6ded33c19b 4.521.110
MyDiveLog-Windows-setup.exe b4c6534c1f36b2a4a872ed2154d42b46bb004259e663ede2ecc8dd9818eab8ad 3.257.536
MyDiveLog-Windows-portatile.exe 9346417db466a856d15164f5e7b64d12774c8cfa8b9a05e948d12b57a6f4b951 7.507.456
MyDiveLog-Android-arm64.apk f854306877d4fb0e395bf097964f87a690e64245c6c14edc3d02bb25a4008c36 11.112.006
MyDiveLog-Linux-amd64.deb 424d1423b581f518d7276a07a730b5a56758d3c648b6f2ac9bb49470ce013549 3.818.044

Calcolate sui file allegati a questa release, non su una compilazione
precedente. Il .deb e l'.apk non li ha costruiti nessun Mac: vengono dal
workflow, e i loro due controlli hanno risposto giusto — «nessuna traccia
dell'aggiornatore nel binario» per Linux, l'APK firmato con la chiave del
proprietario per Android.

► LA PARTE ANDROID NON È STATA PROVATA SU UN TELEFONO. Qui non ce n'è
uno, e sul Mac non c'è l'NDK. Quello che è stato misurato: la compilazione
per Android sulla CI, e il fatto che dentro l'APK ci siano davvero le classi
dei due plugin (DialogPlugin, FsPlugin, saveFileDialog,
getFileDescriptor) e il comando nel binario nativo. Il selettore che si
apre davvero, no.
Se lo provi e qualcosa non va, scrivilo dal modulo di
segnalazione dentro l'applicazione: è così che sono arrivate tutte e due le
cose corrette qui.

Su Windows e Android il giro completo non l'ha provato nessuno. Il codice
del motore è lo stesso del Mac e dell'iPhone, con tutte le prove dietro, ma
finestra, Bluetooth, archivio e stampa su quelle due piattaforme non sono mai
stati percorsi a mano. Su Linux sì, meno il Bluetooth, che vuole un
adattatore.

MyDiveLog 1.8.24

Choose a tag to compare

@matteoferrando matteoferrando released this 16 Sep 10:40

MyDiveLog 1.8.24 — diciotto numeri che mentivano

Questa versione non aggiunge niente e non tocca l'interfaccia. Chiude
diciotto difetti: sedici trovati in due giorni di riletture avversariali,
uno saltato fuori rigenerando il sito, e uno segnalato da chi usa
l'applicazione
.

Hanno tutti la stessa forma — un dato plausibile e falso. Non errori che si
vedono, non schermate vuote: numeri giusti nella loro casella e sbagliati
rispetto alla realtà.

I numeri che decidono

prima adesso
Consumo con una pressione di superficie impossibile in archivio 18.8 L/min 12.3
PPO2 di picco quando il computer non consegna una miscela 1.62 1.06
Punti del profilo stampato fuori dal riquadro, coi campioni fuori ordine 15 su 31 0
31 febbraio data certa, spostata al 3 marzo «senza data»
Stesso tuffo scaricato in due fusi orari due immersioni su ogni dispositivo una
  • Il consumo in litri al minuto usciva gonfiato fino al 53% quando un file
    dichiara una pressione di superficie impossibile — uno zero che quattro
    lettori possono produrre. Quel valore finisce nel pianificatore.
  • Sulla stessa immersione i sedici compartimenti di Bühlmann uscivano tutti
    oltre il valore M, il primo al 248%: un grafico rosso su un'uscita tranquilla
    a venti metri.
  • L'esposizione CNS decideva su un numero e ne mostrava un altro: «80%»
    senza nessun avviso, «100%» classificato come semplice prudenza.
  • La MOD del gas analizzato ignorava acqua e quota: in un lago a 2000 m
    diceva 29.6 m dove sono 33.3.

Il profilo, le date, la sincronizzazione

  • Il profilo stampato sul libretto poteva essere un disegno credibile e
    sbagliato quando i campioni arrivano fuori ordine. Vale anche per il grafico
    a schermo, per gli otto grafici sotto di lui e per la descrizione che uno
    screen reader legge al posto del grafico.
  • Il numero progressivo dell'immersione poteva cambiare da un avvio
    all'altro con una data illeggibile in archivio.
  • Un campo svuotato a mano e una bombola tolta a mano tornavano indietro
    dall'altro dispositivo, per sempre.
  • Un profilo illeggibile sul server spariva in silenzio mentre la
    sincronizzazione si dichiarava riuscita.
  • «La chiave del tuo database è scaduta» compariva anche quando il problema era
    tutt'altro: bastava che il messaggio della libreria contenesse la parola
    «token», e un JSON malformato la contiene.

E una segnalata da chi la usa

Su Android «Esporta PDF» diceva «PDF salvato» e non salvava niente. Dentro
la finestra dell'applicazione il download del browser non funziona e non dà
errore, quindi la conferma compariva su un file che non esisteva — ed era
proprio il difetto che questa applicazione aveva già chiuso una volta, sui
telefoni di Apple soltanto. Adesso il file si scrive davvero, e il messaggio
dice in che cartella.

Grazie a chi l'ha segnalato. Una falsa conferma su un'esportazione non perde
un file: costruisce fiducia in un file che non c'è.


Ogni correzione ha una prova che è stata rimessa alla prova rimettendo il
difetto: 2 769 controlli automatici in 165 file, più 135 sul motore di
lettura dei computer subacquei, verdi anche con l'orologio a UTC+14 e a UTC−11.

Impronte SHA-256

Pacchetto SHA-256 byte
MyDiveLog-macOS-arm64.dmg c3fe424977a8b747dc00e542b20d98c7660011c89976c3f411da691439b4e0f8 4.521.208
MyDiveLog-Windows-setup.exe 5f37b051918181bd5b3796577a94414930e52e112160e9c23df9fb4bf817409c 3.257.539
MyDiveLog-Windows-portatile.exe d40e564f345cdb03f436cc4a8311ac85c4200c772446ed15e74cb87277aa2fb1 7.507.968
MyDiveLog-Android-arm64.apk ed5be25bd47d0870244271ab4971a725c3540d7a19bb2a96607a5c321d68debf 10.376.618
MyDiveLog-Linux-amd64.deb 83bdda81334637f5109dc8557971c07403cb9c7ca1cd841fcb64edaf66f7863d 3.816.910

Calcolate sui file allegati a questa release, non su una compilazione
precedente. Il .deb e l'.apk non li ha costruiti nessun Mac: vengono dal
workflow, e i loro due controlli hanno risposto giusto — «nessuna traccia
dell'aggiornatore nel binario» per Linux, «firmati: 1 apk, 1 aab» per Android.

Su Windows e Android il giro completo non l'ha provato nessuno. Il codice
del motore è lo stesso del Mac e dell'iPhone, con tutte le prove dietro, ma
finestra, Bluetooth, archivio e stampa su quelle due piattaforme non sono mai
stati percorsi a mano. Su Linux sì, meno il Bluetooth, che vuole un
adattatore.