Repository navigation
Releases: matteoferrando/MyDiveLog
Release list
MyDiveLog 1.8.33
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
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
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
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
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
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
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
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
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
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.