Icona dell'app Calíope

Roadmap

Cosa sto costruendo, cosa sto valutando, cosa ho deciso di non fare e cosa è appena arrivato.

Questa pagina descrive Calíope 1.5. È la versione che sto costruendo adesso; la 1.4 è sull'App Store su tutti i dispositivi, Mac compreso, quindi ciò che appartiene alla 1.5 compare sotto come pubblicato perché è finito nella versione che sto costruendo, ma non si può scaricare finché la 1.5 non arriva sull'App Store.

Calíope cresce da tre cose: ciò che arriva dal supporto, i report di diagnostica che le persone scelgono di condividere e il lavoro quotidiano su database reali. Questa pagina dice a che punto è ogni voce — comprese quelle che ho deciso di non fare, con il loro motivo, perché una roadmap che elenca solo promesse dice ben poco. Manca qualcosa? Suggerisci una funzione.

Legenda degli stati · vai a una sezione

🟡 In valutazione — valuto ambito, fattibilità tecnica e domanda. Nessuna data implicita

Più motori: la cucitura è già posata

In valutazione

Aggiungere un motore a Calíope significa implementare dei protocolli, non modificare gli strumenti. Quel lavoro è fatto e collaudato: il motore di backup, il comparatore di schemi e il catalogo degli errori ci passano già, e nessun nome di motore è scritto fuori dalla propria cartella — nemmeno nei cinque file di traduzione. PostgreSQL è stato il primo motore ad arrivare così, nella 1.3, senza riscrivere un solo strumento. SQL Server è arrivato allo stesso modo nella 1.5; quale motore verrà dopo è ancora in valutazione.

Fondamenta in 1.2 · primo motore nuovo in 1.3

Redis

In valutazione

Un archivio chiave-valore in memoria, che ha una forma diversa da una tabella: un esploratore di chiavi con i pattern che si scrivono davvero, il tempo di vita di ogni chiave visibile e modificabile, una vista che disegna ogni valore secondo il suo tipo — stringa, lista, set, sorted set, hash, stream — e un pannello del server con memoria, keyspace e client. Qui non c'è SQL, quindi arriverebbe come strumento a sé, come è arrivato MongoDB.

ClickHouse

In valutazione

Analitica colonnare su server, tramite la sua interfaccia HTTP. Ciò che aggiunge è la scala che un motore per righe non raggiunge: aggregazioni su miliardi di righe e viste materializzate che tengono precalcolata la parte costosa. Riusa l'editor SQL e l'albero dello schema, con il proprio dialetto e il proprio vocabolario per ciò di cui è fatta una tabella. L'analitica colonnare in un file locale è arrivata con l'Editor DuckDB nella 1.5; ClickHouse porterebbe la stessa forma su un server, e Redis aggiungerebbe il chiave-valore.

Altre lingue dell'interfaccia

In valutazione

Calíope esiste in cinque lingue: inglese, spagnolo, francese, tedesco e italiano. Sono emersi il portoghese e il giapponese. Dimmi quale vorresti come prossima — l'app è tradotta davvero, non localizzata a macchina, quindi ogni nuova lingua è lavoro reale e preferisco azzeccarla.

🔴 Scartato — deciso di no, con il motivo. Restano visibili di proposito

Database SQLite cifrati (SQLCipher)

Scartato

L'Editor SQLite apre solo database non cifrati. Supportare SQLCipher significa distribuire e mantenere un fork di SQLite dentro un'app in sandbox dell'App Store, e lo strumento è pensato per ispezionare archivi Core Data e database incorporati nelle applicazioni, che non sono cifrati.

Motivo: ambito e manutenzione

La tua posizione sulla mappa spaziale

Scartato

Mostrare dove sei richiederebbe un permesso di localizzazione e la relativa voce nell'etichetta privacy dell'App Store, in cambio di qualcosa di cui questo strumento non ha bisogno: sulla mappa conta dove sono i tuoi dati, non dove sei tu.

Motivo: costo di privacy senza beneficio

Sondare entrambi gli indirizzi prima di connettersi

Scartato

Sarebbe allettante provare host principale e alternativo in parallelo e tenere il più veloce. Aprire e chiudere connessioni TCP senza completare l'handshake aumenta aborted_connects sul server e può finire in Host is blocked because of many connection errors. Il failover avviene nel tentativo reale.

Motivo: danneggia il server che vuoi raggiungere

MongoDB attraverso il livello relazionale

Scartato

MongoDB è uno strumento autonomo, con la propria sessione e il proprio insieme di schede, non un motore in più dietro a quelli esistenti. L'astrazione relazionale modella chiavi esterne, binlog, replica ed EXPLAIN; un database documentale lascerebbe quasi tutto vuoto, e ogni strumento dovrebbe iniziare a chiedersi che tipo di sessione sta guardando.

Motivo: sarebbe la forma sbagliata
🟢 Pubblicato di recente — le tre più recenti; l'elenco completo è nel changelog

SQL Server

Pubblicato

Microsoft SQL Server, attraverso la stessa cucitura da cui è entrato PostgreSQL e con un driver che ho scritto a partire dal protocollo che pubblica Microsoft. Profili di connessione, esploratore dello schema con i suoi schemi, editor SQL con i suoi snippet, parole chiave e schede delle funzioni, EXPLAIN visuale, backup e ripristino, manutenzione, login e permessi con il DENY mostrato come tale, e monitoraggio del server. Versione 2022 o successiva, sempre cifrato. La replica resta una faccenda di MySQL e MariaDB, e ciò che il motore non ha viene nascosto invece di essere mostrato spento.

Versione 1.5

Editor DuckDB

Pubblicato

Un secondo motore locale compilato dentro l'app, accanto all'Editor SQLite e senza connessioni da configurare. Apri un file .duckdb senza alcun server da installare, oppure interroga un Parquet, CSV o JSON dove già si trova — non si importa e non si copia nulla. Albero dello schema con sequenze, tipi e macro, griglia dati, SQL con tetto di righe e Ferma, SUMMARIZE, esportazione e importazione dell'intero database, allegarne un altro in sola lettura, e i file DuckDB come sorgente dei Report.

Versione 1.5

Calíope sul tuo iPhone

Pubblicato

Calíope si dispone per il telefono e si installa dalla stessa pagina dell'App Store del Mac e dell'iPad. È il client intero, non un visualizzatore: si connette ai tuoi server ed esegue le tue query, con gli stessi strumenti dell'iPad e senza una sola verifica del dispositivo in tutto l'albero. I tuoi profili, gli snippet, la cronologia e le conversazioni con l'assistente arrivano dal tuo iCloud, e quando quell'interruttore è chiuso lo nomina invece di mostrare una schermata vuota lasciandoti concludere che non c'è nulla che non va.

Versione 1.4

Come funziona questa roadmap

In corso significa che è preso in carico e il lavoro è in corso.

In valutazione significa che sto valutando ambito, fattibilità tecnica e domanda. Non implica una data di consegna.

Scartato significa che ho deciso di non farlo. La voce resta visibile con il suo motivo, perché la decisione sia trasparente e non silenziosa.

Pubblicato significa che oggi è nell'app. La versione di arrivo è indicata in ogni voce — e tieni presente che la più recente può non essere ancora sull'App Store; l'avviso in alto dice quale.

Cerchi l'elenco completo di ciò che è stato pubblicato? Vedi il changelog →