Abbonamenti che non fanno perdere soldi a nessuno
Chi passa a un piano superiore lo ottiene subito e vede il conguaglio prima di confermare. Chi scende di piano lo fa a fine periodo, così usa fino in fondo quello che ha già pagato. La disdetta non è mai immediata, e se Stripe manda due volte la stessa notifica la seconda viene ignorata.
Un bug silenzioso dopo un aggiornamento
Dopo l’aggiornamento di Livewire un tipo di campo aveva smesso di inviare il suo valore al server, senza nessun errore a video. Il risultato erano importi sbagliati. L’ho trovato e corretto in tutti i 23 punti in cui compariva.
In locale funziona, sul server no
Sul server di prova alcuni importi da 650 € venivano azzerati, mentre in locale tutto filava liscio. La causa erano dati reali sporchi, che in sviluppo non esistevano.
Da allora ho una regola fissa: prima scrivo un test che riproduce lo stato del server, poi correggo. E per i dati già rovinati preparo un comando che li risana.
L’import che andava in timeout
Ho misurato 21 query al database per ogni riga importata e le ho portate a 10. Un test fallisce se si supera quota 12, così il problema non può tornare. I file vengono lavorati a blocchi da 250 righe, e il sistema riconosce anche i file di Apple Numbers travestiti da .xlsx.
Privacy anche nei dettagli
Il codice di accesso via email risponde sempre nello stesso tempo, così nessuno può scoprire chi ha un account. Lo stesso vale per il recupero password, che non rivela quali email esistono. E l’app degli assicurati non salva mai pagine riservate sul dispositivo, perché un telefono può essere condiviso.
Il limite del 2038
Una proroga al 2050 falliva senza motivo apparente. Il tipo di campo usato per le date non va oltre il 2038: l’ho sostituito dove serviva.