TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
Oddiy klaviaturada yozing — töğri özbekça oling.
Translation pending
ProductivityPython · JavaScriptGitHub @maqsudjon-cellOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Type plain ASCII, get correct Uzbek — new Latin (Ş Ç Ö Ğ), old Latin or Cyrillic. Zero-dependency engine, offline web demo.
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Type plain ASCII on an ordinary keyboard. Get correct Uzbek — new Latin, old Latin or Cyrillic. Every line above is real output of engine/ with data/lexicon-lite.bin. Try it: chertma.maqsudjon.com — works offline after the first visit, sends nothing anywhere. Uzbekistan is moving its Latin alphabet from sh ch oʻ gʻ to ş ç ö ğ. For years people will write in three scripts, and no phone keyboard has the new letters. Chertma restores what a keyboard destroyed — and nothing else.Read the full README ↗
Type plain ASCII on an ordinary keyboard. Get correct Uzbek — new Latin, old Latin or Cyrillic.
input: togri gap, ozbekcha yozish oson
output: töğri gap, özbekça yoziş oson (new Latin)
toʻgʻri gap, oʻzbekcha yozish oson (old Latin)
тўғри гап, ўзбекча ёзиш осон (Cyrillic)
input: хозир келаман, рахмат (typed on a Russian layout)
output: hozir kelaman, rahmat
input: kelaslar qisela balu kettik
output: kelaslar qisela balu kettik (dialect is not touched)
Every line above is real output of engine/ with data/lexicon-lite.bin.
Try it: chertma.maqsudjon.com — works offline after the first visit, sends nothing anywhere.
Uzbekistan is moving its Latin alphabet from sh ch oʻ gʻ to ş ç ö ğ. For
years people will write in three scripts, and no phone keyboard has the new
letters. Chertma restores what a keyboard destroyed — and nothing else.
The one rule: a correction is allowed only if the input and the corrected word
have the same skeleton — the word with every distinction a keyboard could
lose (ş/sh/s/w, ö/oʻ/o, ğ/gʻ/g, apostrophes, Cyrillic vs Latin) folded
away. If no real word shares the skeleton, the input comes back byte for byte.
We correct orthography. We never touch morphology, dialect, or voice.
Details: docs/SPEC.md.
Plain ES modules, zero dependencies, no DOM, no network access.
import { Chertma } from './engine/index.js';
const c = new Chertma({ script: 'new' }); // 'new' | 'old' | 'cyrillic'
await c.load(bytesOfLexiconLiteBin); // or load(url) with a `loader` option
c.autocorrect('togri gap'); // 'töğri gap'
c.suggest('ozbe', null); // [{ word: 'özbekiston', score, source: 'lexicon' }, …]
c.convert('Тошкент', 'cyrillic', 'new'); // 'Toşkent'
c.learn('qisela'); // on-device only
c.export(); // user model for backup
c.stats(); // { lexiconSize, memoryBytes, loadMs }
| Budget | Measured | |
|---|---|---|
engine/ gzipped | ≤ 30 KB | 12.0 KB |
lexicon-lite.bin gzipped (50 000 words, 200 000 bigrams) | ≤ 2 MB | 0.74 MB |
lexicon-full.bin gzipped (400 000 words, 2 000 000 bigrams) | ≤ 8 MB | 7.34 MB |
load() lite | < 400 ms | 24 ms |
suggest() p95, cold V8, 10 000 real prefixes | < 5 ms | 0.8 ms |
| Heap growth with lite loaded | ≤ 25 MB | 0.8 MB with forced GC (engine's own estimate 4 MB) |
Lexicon built from 1.75 billion word tokens of
tahrirchi/uz-books-v2 (MIT) and
tahrirchi/uz-crawl (Apache-2.0);
see data/SOURCES.md and docs/CHECKPOINT-2.md.
Quality, measured on an unfiltered sample of real text (npm test, golden suite; full run in docs/TEST-OUTPUT.txt):
Chertma is conservative on purpose — a missed correction is a minor loss, a wrong one is the failure it exists to avoid.
sosib pisib togri
becomes şoşib pisib töğri: pisib ("sneaking up") is a real word, so it
stays, even though şoşib pişib is the idiom. Open question Q19.Sunday, Elon stay as they are).Every open question and every default taken is in docs/OPEN-QUESTIONS.md.
engine/ the product — plain ES modules
web/ the demo site and PWA (tools/build_site.py → _site/ → gh-pages)
tests/ node:test suites, golden file, fixtures npm test
tools/ Python corpus pipeline and build scripts (build time only)
data/ lexicons, sources, build report
bench/ uz-alphabet-bench draft — not published, awaiting review
docs/ SPEC, open questions, status
The engine and site code have no licence chosen yet. Data licences are in
data/SOURCES.md; the JetBrains Mono font is under the SIL Open
Font License (web/fonts/OFL.txt).
Maqsudjon Polatov · maqsudjon.com