mirror of
https://github.com/olehomelchenko/astrolabe.git
synced 2026-08-08 02:02:33 +00:00
Docs: why-astrolabe origin drafts (uk + en)
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
# Why Astrolabe exists
|
||||
|
||||
I've worked with visualization tools for close to a decade, and for the last few years
|
||||
I've also taught data work in most of its forms — SQL, Python, spreadsheets, Power BI,
|
||||
Tableau, the list goes on.
|
||||
|
||||
Out of everything I've used in that time, Vega-Lite is one of my favorite ways to make a
|
||||
chart. It combines things that almost never come together in one tool:
|
||||
|
||||
- **It's an open standard.** A chart is a plain JSON file. No registration, no account,
|
||||
no service that can be discontinued out from under it. Specs I wrote years ago still
|
||||
render today, and I have every reason to believe they'll render in ten.
|
||||
- **It's web-native.** Most popular tools have to be installed (Tableau, Power BI) or run
|
||||
inside a particular environment (Altair, ggplot). For teaching, that raises the floor
|
||||
twice: technically — students on Linux can't install most BI suites at all — and
|
||||
conceptually. I want to teach _visualization_, not programming.
|
||||
- **It's declarative.** This point is really an ode to the Grammar of Graphics that
|
||||
ggplot popularized: you describe what the chart is, not how to draw it. My favorite
|
||||
tool for preparing data is SQL, another declarative language, and Vega-Lite scratches
|
||||
exactly the same itch.
|
||||
- **It's interactive.** This is what sets it apart from workhorses like matplotlib and
|
||||
ggplot: cross-filtering, tooltips, and brushing are a few lines of JSON, not an
|
||||
afternoon of event-handler code. Interactivity multiplies one chart into dozens — a
|
||||
different view for every filter state a reader can choose.
|
||||
|
||||
And yet, when I went looking for a comfortable place to write and keep these charts, I
|
||||
couldn't settle on anything. Vega-Lite came buried inside heavier BI tools, or in the
|
||||
official editor — a scratchpad that holds one spec at a time and keeps nothing. And using
|
||||
the full power of the format was fiddly in practice: to attach a custom font to a chart,
|
||||
you had to be handy with web development first. The low floor I praise to my students
|
||||
wasn't there for me either.
|
||||
|
||||
So I decided to build my ideal tool for Vega-Lite charts :)
|
||||
|
||||
At first it was just a snippet editor: a list of specs, and clicking one opens an editor
|
||||
with a live preview. Then datasets wanted to be their own thing — stored once, referenced
|
||||
by name from any chart, instead of pasted into every spec. Then a visual chart builder,
|
||||
for the days when you'd rather click than type. And then custom themes with your own
|
||||
fonts — the exact itch that used to require a web developer, now a file-upload away.
|
||||
|
||||
Somewhere along the way the tool also acquired a stance. Everything stays in your
|
||||
browser: no account, no server, and no AI model reading your charts. Part of that is
|
||||
principle. Most of it is the plain reality that the data I chart at work is confidential,
|
||||
and I wanted a tool where that question simply never comes up.
|
||||
|
||||
If you make charts with Vega-Lite — or you've been looking for a reason to start —
|
||||
[Astrolabe](/) is where mine live now.
|
||||
@@ -0,0 +1,16 @@
|
||||
## Що надихнуло на цей проєкт
|
||||
|
||||
Я використовую інструменти візуалізації в роботі вже майже десятиліття, а також вже декілька років викладаю роботу з даними та візуалізацію в багатьох аспектах - SQL, Python, Google SHeets, Power BI Tableau - список не вичерпний.
|
||||
|
||||
Маючи доволі широкий досвід як в інструментах, так і в оточеннях візуалізації, можу сказати що Vega-Lite - це один із моїх найулюбленіших інструментів з створення візуалізації. Він поєднує багато речей, які складаються в ідеальний інструмент для багатьох цілей:
|
||||
|
||||
- опенсорс. Відсутність необхідності реєструватись є сильним аргументом на користь того, що мої візуалізації будуть доступні довгий час та не поламаються, або для сервісу, в якому я їх створив, буде припинена підтримка.
|
||||
- крос-платформеність та веб-орієнтованість. Більшість популярних засобів з візуалізації мають бути інстальовані (Tableau, Power BI) або запускатись в певному оточенні (Altair, ggplot) - відповідно, якщо ми говоримо про використання їх для навчання, це підіймає поріг входу як технічно (студенти з Linux не можуть встановити більшість BI систем), так і концептуально (я хочу викладати _візуалізацію_ а не _програмування_).
|
||||
- декларативність. Цей пункт - скоріше ода до Grammar of Graphics, популяризований пакетами типу ggplot. Також моїм улюбленим інструментом для аналізу/підготовки даних є SQL, що теж є декларативною мовою.
|
||||
- інтерактивність. Те, що вигідно відрізняє Vega-Lite від популярних мастодонтів типу Matplotlib або ggplot - те, що я можу доволі легко і невимушено створювати інтерактивні графіки з крос-фільтрацією., додавати тултіпи тощо. Це посилює можливості інструменту візуалізації на порядки, адже інтерактивність одразу "помножує" один графік на десятки чи сотні залежно від обраного фільтру.
|
||||
|
||||
Разом з тим, коли я шукав зручний інструмент для створення та редагування візуалізацій, було доволі складно зупинитись на чомусь конкретному. Vega-Lite або був частиною якогось більш складного BI-інструменту, або мав надто скорочене застосування (Vega-Editor), або було недостатньо зручно користуватись всіма можливостями інструменту (щоб підключити кастомний шрифт, треба було бути підкованим в веб-розробці).
|
||||
|
||||
Отже, я вирішив створити свій ідеальний інструмент для створення графіків в Vega-Lite :)
|
||||
|
||||
Спершу це була ідея просто редактор "сніппетів" - список специфікацій, по вибору відкривається редактор і превʼю. Потім зʼявилась ідея додавати/витягувати набори даних в окремі сутності. Згодом виникла і ідея побудувати візуальний редактор, а ще згодом - можливість створення та збереження кастомних тем
|
||||
Reference in New Issue
Block a user