Co je nového
Historie aktualizací SQL Arena. Nejnovější verze nahoře.
Every task is now solved by writing SQL — new task formats and catalog filters, plus new task packs.
- New task types: debugging, data-quality checks, index design, query rewriting, schema design with constraints, transactions & locking, and access permissions (GRANT/REVOKE).
- New catalog filters: by task format, difficulty, solved status, dialect (PostgreSQL/MySQL) and favorites.
- Permissions tasks are graded by the resulting privilege set (least privilege enforced).
- Transaction tasks are graded under real concurrency: safe debits, atomic transfers, idempotency, isolation levels and row locks.
- New task packs: ride-hailing analytics, data modification, schema design, recursive hierarchies and product events.
- Your chosen SQL dialect (PostgreSQL/MySQL) now persists across tasks.
- Most tasks now show a preview of the expected output.
- Hundreds of new step-by-step hints, plus an AI mentor that explains the errors in your query.
- Every format is now code-writing: you write real SQL instead of picking an answer.
- Task descriptions are living business scenarios in Russian and English; difficulty levels recalibrated.
- AI task generation: descriptions now read as a real business scenario and no longer give away the solution — formulas, SQL function names and dry table listings are kept out of the text.
- Company examples on the home page and in Premium are now locale-aware: the Russian site shows Russian employers, every other locale shows international ones (Tesla, Uber, Microsoft, Spotify, Meta) whose tasks we carry.
- Removed a stray privacy notice banner on the user profile page.
Rozhraní teď mluví všemi jazyky EU — 21 nových jazyků.
- Přidáno 21 jazyků EU: němčina, francouzština, italština, nizozemština, polština, rumunština, řečtina, čeština, maďarština, švédština, dánština, finština, slovenština, bulharština, chorvatština, litevština, slovinština, lotyština, estonština, irština a maltština. Jazyk vyberte v přepínači, nebo se automaticky určí podle vaší země a jazyka prohlížeče.
- Stránka „Nahlásit chybu“ je teď „Zpětná vazba“ (na /feedback) se dvěma kartami: „Nahlásit chybu“ a „Navrhnout vylepšení“. Návrhy na vylepšení se k týmu dostanou stejně jako hlášení chyb.
- V nastavení profilu je nyní vidět datum konce předplatného a formulace „jednorázová platba“ byla odstraněna.
- Rozbalovací nabídka přepínače jazyků je nyní kompaktnější.
- Profily se přihlášeným uživatelům znovu otevírají ze žebříčku — soukromí skryje profil jen před anonymními návštěvníky. Identifikátor URL profilu už nelze smazat, takže každý profil zůstává dostupný přes odkaz.
- Platba zahraniční kartou (záložka Visa/MC) na ruském webu se teď správně účtuje v USD a zpracovává přes Paddle, místo aby otevírala YooKassa s částkou v rublech.
Certifikace: složte exam s časovým limitem a získejte ověřitelný certifikát úrovně.
- Certifikační examy: tři úrovně (Foundations / Practitioner / Expert), po 8 úlohách, časovač na každou úlohu, hranice úspěchu 7 z 8. Každý pokus dostane vlastní dataset, takže odpovědi nelze naučit dopředu.
- Ověřitelný certifikát s QR kódem, který odkazuje na váš veřejný profil; na profilu se teď objevila sekce certifikátů.
- Smazání účtu přímo z nastavení profilu.
- Nastavení profilu jsme přepracovali do čistého stylu sekcí seznamu; uživatelé s Premium dostávají animovaný prstenec kolem avataru.
- Vyhodnocování zpřísněno u 324 úloh: teď běží na skrytém datasetu, takže už neprojdete přizpůsobením řešení viditelnému příkladu.
- Automatické dokončování v editoru teď při psaní FROM/JOIN navrhuje názvy CTE deklarovaných přes WITH.
- AI Mentor teď vidí vaši chybu a aktuální dotaz i po spuštění (Run) — nové tlačítko „Vysvětlit mou chybu“ umožní probrat libovolnou chybu, včetně syntaktických.
- Úloha #91: vyhodnocování teď běží na skrytém datasetu — už neprojdete přizpůsobením viditelnému příkladu (např. přes LIMIT nebo natvrdo zapsanou délku).
- Úloha #13: ze zadání jsme odstranili prozrazující nápovědu s filtrem — řešení teď odvodíte sami.
- Skill Map teď pokrývá všechny kategorie úloh (přidány CTE, DDL, transakce, optimalizace) a je větší a čitelnější.
- Nápověda „co zlepšit“ ve Skill Map teď ukazuje na téma s nejvíce nevyřešenými úlohami, ne na náhodné.
- Roční graf aktivity zase zobrazuje plné názvy měsíců, místo aby je zkracoval na jedno písmeno.
- Řešení vracející časový interval (např. rozdíl dvou časů) už při odeslání nepadají s chybou.
- Úloha #88: data opravena — odlety z Paříže teď mají různé délky trvání místo tří identických řádků.
- Zpět (Ctrl+Z) v editoru teď udržuje samostatnou historii pro každou záložku dotazu.
- Úloha #624: zadání teď uvádí, že průměrná cena musí být zaokrouhlena na 2 desetinná místa.
- Návrhy v SQL editoru se po přechodu mezi úlohami už neduplikují.
- Úloha #621: kluby bez členů se teď ve výsledku objevují s nulovými tržbami.
- Úloze #831 byla změněna obtížnost z EXPERT na MEDIUM.
SQL Arena je teď vícejazyčná: angličtina, španělština a portugalština, každá s vlastními URL stránek a automatickou detekcí regionu.
- Přepínač jazyků: ruština, angličtina, španělština (Španělsko a Latinská Amerika) a portugalština.
- Při první návštěvě se web otevře v jazyce vašeho regionu a vaše volba se zapamatuje.
- Každý jazyk má vlastní URL stránek (/en, /es, /es-419, /pt-br), které lze bezpečně sdílet.
- Platba za Premium v místní měně: RUB, USD, EUR nebo BRL podle regionu.
- Anglická verze webu je plně podporována; španělské a portugalské překlady se postupně zavádějí.
Úlohy na vytváření tabulek přijímají libovolnou platnou formu, nápovědy při chybě jsou teď relevantní a jedna úloha s nejednoznačnou odpovědí byla opravena.
- Úloha „nejoblíbenější dvojice kurzů“: ukázková data umožňovala několik stejně platných odpovědí, zatímco kontrola přijímala jen jednu. Úloha teď má jedinou správnou odpověď.
- Úlohy na CREATE TABLE odmítaly správné řešení, když student pojmenoval omezení (např.
CONSTRAINT ... PRIMARY KEY). Vyhodnocování teď porovnává strukturu tabulky — názvy omezení se ignorují. - Neúspěšná úloha na vytvoření tabulky zobrazovala irelevantní nápovědu „přidejte ORDER BY“. Nápověda je teď k věci — o sloupcích, typech, NOT NULL a klíčích.
Úlohy na úpravu dat se řeší přesně tak, jak říká zadání — bez nedokumentovaného ověřovacího SELECTu.
- Úlohy na INSERT/UPDATE/DELETE a transakce (včetně UPSERT, MERGE, SKIP LOCKED) už nevyžadovaly nedokumentovaný ověřovací SELECT. Teď se vyhodnocují podle výsledného stavu tabulky a stránka úlohy zobrazuje poznámku „závěrečný SELECT není potřeba“.
- Top řešení: služební účty se už v seznamu neobjevují — v souladu s veřejným žebříčkem.
Úlohy na vytváření tabulek a indexů se teď řeší přesně tak, jak říká zadání — bez nedokumentovaného SELECTu; živé obnovování žebříčku zase funguje.
- DDL úlohy (CREATE TABLE, ALTER, CREATE INDEX, cizí klíče) už nevyžadovaly nedokumentovaný ověřovací SELECT. Teď se vyhodnocují podle výsledného schématu databáze a stránka úlohy zobrazuje poznámku „závěrečný SELECT není potřeba“.
- Stránka žebříčku: živé obnovování obnoveno — WebSocket připojení žebříčku už nepadá.
- Diagram schématu: u některých úloh se nezobrazovaly vazby mezi tabulkami — šipky cizích klíčů se teď na diagramu objevují.
- Dialog „Správně!“ už nezobrazuje pokles v pořadí jako posun nahoru — odznak pozice se objeví jen při skutečném povýšení.
Úlohy na CREATE / ALTER TABLE a další vícekrokové řešení lze zase odeslat — limit příkazů na odeslání byl příliš přísný.
- Limit příkazů na jedno odeslání byl zvýšen z 3 na 20: DDL úlohy (CREATE TABLE, ALTER, indexy, triggery) a vícekrokové DML už nejsou odmítány s chybou „příliš mnoho příkazů“.
MySQL varianta úloh z katalogu je zase synchronizovaná s PostgreSQL — některé MySQL úlohy se vyhodnocovaly proti zastaralým datům.
- MySQL varianta stovek úloh běžela na zastaralém datasetu — seedy resynchronizovány, odpověď v MySQL se zase shoduje s PostgreSQL.
- Šest úloh, které fungovaly jen v PostgreSQL, má teď funkční MySQL variantu.
- Úlohy na CREATE TABLE / CREATE INDEX / ALTER se vyhodnocují podle výsledného schématu tabulky — chybná struktura už není uznána jako správná.
- Úlohy na INSERT používající CURRENT_TIMESTAMP / NOW() už neodmítají správnou odpověď kvůli rozdílu v čase běhu.
- Ukázkové výstupy, které omylem prozrazovaly přesnou odpověď, jsou nahrazeny vzorky bez spoileru; pořadí řádků se vynucuje tam, kde to úloha vyžaduje.
- Audit napříč celým katalogem srovnal zadání, vyhodnocovací data a referenční řešení u několika desítek úloh, kde se od sebe rozešly.
Opraveno vyhodnocování řešení s více příkazy — DELETE/UPDATE se závěrečným SELECTem se teď vyhodnocuje správně.
- Data a časy ve výsledcích dotazů se teď zobrazují čistě jako
2024-01-15 08:00:00místo technického ISO formátu.
- DML úlohy (DELETE, UPDATE, INSERT) s ověřovacím SELECTem už neodmítají správnou odpověď jako „sloupce navíc“.
- Úloha #768: zadání teď odpovídá vyhodnocované odpovědi.
- Nápověda při chybné odpovědi už nenavrhuje porovnání s ukázkovým blokem, který je záměrně nepřesný.
- Čisté úlohy na UPDATE / DELETE / INSERT se teď vyhodnocují podle výsledného stavu tabulky — chybná mutace už není uznána jako správná.
Opraveno pět úloh, kde text zadání neodpovídal schématu a odpovědi.
- Úlohy #762, #763, #764, #765, #809: zadání přepsáno tak, aby odpovídalo skutečnému schématu a očekávané odpovědi.
- AI generování úloh, AI Mentor a formulář pro nahlášení chyby: při překročení limitu teď zobrazí „zkuste to znovu za N sekund“ místo „ThrottlerException“.
Opravena úloha #17 — vyhodnocovač vracel NULL kvůli chybě ve schématu.
- Úloha #17 (
average-post-hiatus): schéma srovnáno se seedem, vyhodnocovač zase funguje.
U úlohy „Přesuňte staré řádky do archivu jedním tahem — bez race conditions“ (#789) zadání žádalo sloupec customer_id, který ve schématu neexistuje. Formulace je teď v souladu se skutečným schématem a vyhodnocovačem: id, status, amount.
- Úloha #789 (
hard-cte-atomic-archive): popis zmiňoval neexistující sloupeccustomer_id. Formulace teď odpovídá schématuorders/orders_archivea očekávaným sloupcůmid, status, amount.
Zpráva „Příliš mnoho požadavků“ teď zobrazuje přesný limit a počet sekund do resetu místo záhadného „ThrottlerException“. Serverový rate-limit byl zvýšen, takže rychlá navigace v tracku už nenaráží na strop.
- Serverový rate-limit na běžné API požadavky zvýšen 5×. Rychlé přepínání mezi úlohami v rámci tracku (10+ paralelních fetchů při mountu) už nenaráží na strop a nehází 429.
- Při překročení limitu na Odeslat nebo Spustit teď zpráva zobrazuje skutečný limit a přesný počet sekund do opakování. Dříve se objevovalo jen záhadné „ThrottlerException: Too Many Requests“ bez nápovědy, jak dlouho čekat.
Tlačítko „Začít“ na kartě tracku zase track skutečně spustí — neviditelný překryv odkazu karty pohlcoval kliknutí a směroval ho na detail tracku.
- Na
/trainer/trackstlačítko „Začít“ na kartě tracku už nenaviguje na detail tracku místo jeho spuštění. Klik kdekoli na kartě → detail zůstává zachován.
SQL sandbox: přineste si vlastní tabulky a dotazy — bez úlohy, bez vyhodnocování. Plus jednotné široké rozvržení bento napříč žebříčkem, progressem, tracky, úlohami a sezeními.
- Nová stránka
/sandbox— Monaco editor, panel schématu, panel výsledků, datové záložky podle tabulek, rozcvičovací úryvky. Anonymní sezení vyprší po 30 min nečinnosti, přihlášení uživatelé dostanou 7 dní. - Uložené fiddly: až 5 v rámci free, neomezeně na Premium. Knihovna s vyhledáváním, kopírováním odkazu, mazáním a přepínačem soukromí.
- Jednotné široké rozvržení napříč stránkami osobního prostoru — Moje fiddly, Progress, Žebříček, Sezení, Úlohy, Tracky a stránka detailu tracku teď sdílí jeden shell s gradientovým hero a konzistentní mřížkou karet.
Šipky změny pozice na žebříčku jsou zpět — dříve byl sloupec prázdný, protože nebyl žádný výchozí snapshot pro porovnání.
- Indikátor „postoupil / klesl / beze změny“ je zpět vedle každého řádku žebříčku. Výchozí snapshot předchozího týdne byl naseedován; pravidelný týdenní cron ho bude dál obnovovat.
Opravena chyba, kdy opětovné odeslání již vyřešené úlohy tiše odebíralo Power — bonus „na první pokus“ se vymazal. Všem dotčeným uživatelům byl Power přepočítán.
- Opětovné odeslání řešení k již vyřešené úloze už nesmaže bonus „na první pokus“ — Power za danou úlohu zůstává stejný jako hned po prvním úspěšném odeslání.
- Úloha #107 (rozpis útrat podle žánru knih za rok 2005) už nevyžaduje konkrétní pořadí řádků — teď se přijímá libovolné řazení, v souladu s formulací zadání.
Opraven panel schématu DB u několika úloh — oranžové vazební čáry mezi propojenými tabulkami se nevykreslovaly.
- U některých úloh panel „Schéma“ nezobrazoval vazby mezi tabulkami (oranžové šipky 1:N) — chybějící vazby byly přidány do datasetů.
Opravena úloha „Rozdělte zákazníky na málo / středně / hodně utrácející“: ukázková odpověď a referenční řešení se rozešly se zadáním — teď všude figuruje id zákazníka a segmenty low / mid / high.
- Úloha „Rozdělte zákazníky na málo / středně / hodně utrácející“ (#757): ukázková odpověď a referenční řešení teď odpovídají zadání — sloupce
customer_id,segment, segmentylow/mid/high, seřazeno podlecustomer_id.
Velký rebranding na „Arena“: nová domovská stránka, žebříček postavený od základu s podiem a živými aktualizacemi, body přejmenovány na „Power“ se značkou bojové sekery, přestavěné learning tracky a adaptivní AI generování úloh, které skutečně čte vaše poslední odeslání.
- Nová záložka „League“ — 30 uživatelů nejbližších vám podle Power. Filtry obtížnosti na globální záložce (Power přepočítán pro každý žebřík). Šipky postupu / poklesu vedle každé pozice — pohyb týden po týdnu.
- Úspěchy: emoji nahrazeny vektorovými ikonami obarvenými podle kategorie, tooltipy prohlížeče zobrazují lokalizované názvy; na
/statsje to mřížka s popovery na klepnutí na mobilu. Nový úspěch „10 Expert“. - Najetí na jméno na žebříčku zobrazí mini kartu uživatele. Tlačítko „Sdílet pozici“ — odkaz vede na váš veřejný profil s OG náhledem.
- Domovská stránka přepsána pod značku „Arena“: úderný nadpis „Sharpen SQL. Take the offer.“, živá výsledková tabule v hero sekci, žebřík pozic s připínáčkem „You“, sekce o traineru / trackách / AI / Mock Interview módu / progressu a závěrečný pruh „The axe is in your hand. Swing.“. Připraveno pro mobil.
- Body přejmenovány na „Power“. Blesk je nahrazen bojovou sekerou — teď je v logu, faviconě i náhledu při sdílení odkazu.
- Stránka žebříčku byla přepsána od základu: podium pro top 3 (zlato / stříbro / bronz), osobní karta progressu s pruhem do další pozice, jeden přilepený panel filtrů, žebřík pozic hned pod hlavičkou, připnutý řádek „you“, když jste mimo top 50, a živé aktualizace — tabulka plynule reaguje na řešení ostatních bez načítání stránky.
- Learning tracky přestavěny. Analyst / Backend / QA / Data Engineering — každý ~50 kurátorovaných úloh: pár zástupců na buňku téma×obtížnost, od rozcvičky po EXPERT, s důrazem na úlohy z reálných pohovorů. Přidán track Data Engineering plus samostatný track přípravy na pohovor.
- Tlačítko „Vygeneruj mi“ je teď skutečně adaptivní: čte vašich posledních 40 odeslání, vybere téma s nejhorší aktuální úspěšností a kalibruje obtížnost na vaši úroveň — když váznete, další bude o stupeň jednodušší, série ji posune výš.
- Noví návštěvníci přistanou ve výchozím nastavení na tématu „Night“ (dříve „Evening“). Pokud jste si téma již vybrali, vaše volba zůstává.
- Úloha „Řekni jedním číslem: kolik je aktivních zákazníků“ — kanonické řešení vyžadovalo zákazníky s ≥2 zaplacenými objednávkami, zatímco popis říká „alespoň jednou“. Opraveno, aby odpovídalo popisu.
EXPERT úlohy teď za vyřešení udělují skutečných 75 power (až 281 s bonusy) místo 10 z úrovně EASY. Celoživotní power uživatelů, kteří už nějaký EXPERT zvládli, byl zpětně přepočítán.
- Tabulka odměn neměla řádek pro EXPERT, takže vyhodnocovač spadl na výchozí hodnotu 10 a každá EXPERT úloha platila stejně jako EASY. Základ EXPERT je teď 75 power, se stejnými násobiteli navrch (na první pokus ×2, úspěch v Mock Interview ×1.25, řešení s premiem ×1.5) — až 281 power za EXPERT úlohu. Migrace přehrála
xp_totalu každého profilu podle opravených pravidel, takže komukoli, kdo už nějaký EXPERT vyřešil, se chybějící power doplní automaticky.
Uzavřena skulina, kdy bylo možné úlohu „vyřešit“ natvrdo zapsáním ukázkového výstupu: u 25 datasetů teď vyhodnocovač kontroluje váš dotaz proti skrytým řádkům, které se liší od těch zobrazených v popisu úlohy.
- Řešení stále běží proti stejným tabulkám a sloupcům jako dříve, ale řádky uvnitř vyhodnocovacího seedu se liší od viditelného vzorku. Jakákoli skutečná odpověď založená na dotazu dál prochází, zatímco natvrdo zapsaný
SELECT … UNION ALL …, který kopíroval literály z ukázky, se teď vyhodnotí jako „wrong“. Pokryto je 25 datasetů z poslední dávky katalogu (seznamy, CTE, window, pivot, DML, expert).
Opraveny dva problémy úloh nahlášené uživateli: špatně seřazený vzorek v „Studenti podle regionu“ a popis, který se rozešel se schématem v úloze na čisté tržby.
- Úloha „Studenti podle regionu“ (#357): vzorek teď stoupá podle
rn(Jack / Kim / Lars v prvním řádku) a referenční řešení obsahuje explicitníORDER BY rn, aby produkovalo stejné pořadí. - Úloha „Uživatelé s čistými tržbami alespoň 100“ (#783): název a popis teď odpovídají skutečným datům — uživatelé a události
purchase/refund, ne produkty asale/refund, s prahem 100, ne 1000.
Šest pokročilých úloh teď přichází s předem naseedovanou tabulkou — řešení už nezačínají preambulí CREATE TABLE.
- Šest úloh Hard / Expert (UPSERT podle jednoho a více sloupců, CTE s
RETURNING, hromadnýINSERT … RETURNING, frontaSKIP LOCKED, rozbalení pole přesUNNEST) se připojilo ke zbytku pokročilého katalogu: tabulka je vytvořena a naseedována v datasetu a řešení obsahuje jen testovanou operaci plus závěrečnýSELECTpro vyhodnocení.
- Popis úlohy „Počítadlo zobrazení“ se už nerozchází s očekávaným výstupem: oba teď popisují stejnou tabulku
counters(id, count)a pět běhů téhož řádku.
DDL úlohy už v bočním panelu schématu nezobrazují nesouvisející tabulky.
- U 10 úloh na
CREATE TABLE(od easy po expert) boční panel schématu vykresloval tabulky z nesouvisejícího datasetu — např. úloha o článcích zobrazovalaorders. Panel je teď prázdný, jak by měl být, když úloha žádá vytvořit tabulku od nuly.
115 nových úloh, trojrežimový přepínač tématu Day / Evening / Night a jemnější tmavá paleta.
- Katalog narostl o 115 úloh: 20 easy, 35 medium, 45 hard a 15 expert — poddotazy, CTE, okenní funkce, DML/DDL, MERGE, optimalizace dotazů, transakce, JSONB, rekurze a
LATERAL. - Nová úroveň obtížnosti «Expert» s fialovým odznakem a vlastním filtrem v katalogu.
- Trojrežimový přepínač tématu: Day (světlé), Evening (jemné tmavé) a Night (hluboké) — vyberte podle okolního světla, ať se oči méně unaví.
- Tmavé téma zjemněno: plátno se posunulo na šedomodrou ve stylu Linear (
#1B1B1F) místo dosavadní téměř černé, hlavní text klesl na zinc-300 — méně halace při dlouhých sezeních. - V režimu «Night» sedí panel SQL editoru tři stupně hlouběji než plátno s mírným posunem k pravé černé — čte se jako zapuštěný panel ze stejné rodiny.
- Tahák tématu v úloze teď respektuje obtížnost: na úrovních Hard / Expert skrývá základní
SELECT/WHERE/ORDER BY/LIMITa místo toho zobrazuje pokročilé vzory —STRING_AGG,ARRAY_AGG,GROUPING SETS,LATERAL, JSONB, částečné indexy a tak dále. - Aktivní pilulky filtru obtížnosti přešly na měkkou výplň s akcentem značky místo plné černé — už nenarušují vzhled světlého tématu.
- Ruské popisky obtížnosti: «Лёгкое» → «Лёгкий», «Среднее» → «Средний», «Сложное» → «Сложный».
24 nových článků na blogu pro začátečníky.
- Pokrytí témat rozšířeno: DML (
INSERT/UPDATE/DELETE), DDL (CREATE TABLE/ALTER TABLE), agregace,DISTINCT, práce s NULL (CASE WHEN/COALESCE/NULLIF), CTE a poddotazy, okenní funkce, řetězce a data.
- Tahák traineru: každá položka teď odkazuje na vlastní článek. Dříve čtyři položky okenních funkcí odkazovaly na jediný přehled —
ROW_NUMBER,RANK/DENSE_RANK,PARTITION BYaLAG/LEADteď mají každá svůj.
- Úloha #114 „Kolik kardiologických oddělení“ — přejmenovali jsme očekávaný výstupní sloupec z
countnawards_count, aby vizuálně nekolidoval s rezervovaným klíčovým slovem.
Uzavřena skulina s přizpůsobováním odpovědí příkladu: úlohy se teď vyhodnocují proti skrytému datasetu.
- Vyhodnocovač teď umí spustit úlohu proti skrytému datasetu. Kanonický referenční výsledek se přepočítá na stejných datech, takže správná řešení dál procházejí, zatímco konstanty převzaté z viditelného vzorku propadnou.
- Úloha „Nejstarší člen klubu“ už nepřijímá natvrdo zapsaný
LIMITpřizpůsobený viditelnému vzorku — projde jen dotaz, který vyjadřuje „všechny řádky s minimálním datem narození“.
Vyladění karet cen a oprava tlačítka „Přihlásit se a předplatit“ hned po v2.2.0.
- Cena a CTA tlačítko na kartách Free a Premium jsou teď zarovnány na stejné Y.
- Zkráceny poznámky pod cenou pro Crypto a Visa/MC — zůstává jen název platební cesty.
- Tlačítko „Přihlásit se a předplatit“ je zase klikatelné pro nepřihlášené uživatele.
Přidány platby kryptem a mezinárodními kartami Visa/Mastercard, plus zpřísněna anti-bot ochrana v autentizačním toku.
- Platby kryptem přes NowPayments — BTC, ETH, USDT a další. $21 čtvrtletně / $28 pololetně.
- Mezinárodní Visa/Mastercard přes Paddle s automatickým výpočtem VAT/sales tax. $21 / $28.
- Výběr platební metody na kartě Premium: RU karta, Crypto, Visa/MC. Měna se přepíná podle metody.
- Cloudflare Turnstile na přihlášení a registraci — pro lidi neviditelný, boty blokuje.
- Účet se po 5 chybných heslech uzamkne na 15 min (exponenciálně až na 24 h) s explicitním odpočtem.
- Chyby přihlášení a registrace jsou polidštěny — žádné syrové „Forbidden“ nebo „Invalid credentials“.
- Rate limit odesílání: 5/min, 30/15min na uživatele. Skutečná řešitelská sezení neovlivňuje.
- Po přihlášení se vrátíme na stránku, ze které jste přišli — včetně OAuth (Google, GitHub, Yandex).
- Odhlášení z veřejné stránky vás už neodhodí na domovskou stránku.
Dokončili jsme opravu ukládání Telegramu, GitHubu a LinkedInu na stránce profilu. Předchozí vydání opravilo normalizér uživatelského jména na backendu, ale frontendová komponenta zkratovala onBlur — PATCH se nikdy ve skutečnosti neodeslal. Pole vizuálně přijalo vstup, na serveru zůstalo prázdno a po načtení bylo pole prázdné. Teď porovnání při blur používá hodnotu zachycenou v okamžiku focusu, ne probíhající vstup.
- Pole Telegram, GitHub a LinkedIn na stránce profilu se zase ukládají. useEffect přepisoval referenci „naposledy uloženo“ při každém stisku klávesy, takže kontrola onBlur porovnávala aktuální hodnotu samu se sebou a PATCH přeskočila. Kontrola při blur teď porovnává proti snapshotu pořízenému v okamžiku focusu.
Opraveno ukládání handles Telegramu, GitHubu a LinkedInu na stránce profilu: zadání formátu jako v placeholderu t.me/username se osekávalo na nesmysl jako t.me. Teď se libovolný vstup — holý handle, @handle, t.me/handle nebo https://t.me/handle — normalizuje na čisté uživatelské jméno.
- Pole Telegram, GitHub a LinkedIn na stránce profilu se teď ukládají správně, i když je adresa zadána bez
https://. Dříve set.me/durovuložil jakot.me,github.com/octocatjakogithub.com, protože normalizér vyžadoval schémahttp(s)://a jinak hodnotu osekal u prvního lomítka.
Odstraněn falešně pozitivní upsell banner Premium v panelu výsledku řešení: spouštěl se u free úloh, a dokonce i u premium uživatelů. Šlo o mrtvé UI od začátku — premium úlohy jsou blokovány už při otevření, takže je editor nikdy nevidí.
- V oslavném modálu „Správně!“ má pilulka „+50% Power per solve — go Premium“ teď správný horizontální padding — koruna a šipka už se nedotýkají okrajů pilulky.
- AI Mentor teď dostává kompaktní kontext úlohy: aktivní SQL dialekt, tabulky, vazby, očekávané sloupce, ukázkový výstup a poslední vyhodnocovací diff. Referenční SQL se používá jen jako soukromý kontext pro vysvětlení chyb a pozdější úrovně nápověd.
- Upsell banner „Pohovorové úlohy — Premium“ z panelu zpětné vazby zmizel. Dříve jakákoli serverová chyba obsahující ve stack trace slovo
premium(např. chybějící sloupecsolved_as_premiumhned po migraci) spustila shodu podřetězce a vykreslila upsell — i u free úloh a dokonce i u premium uživatelů.
Premium teď uděluje +50% Power za každou vyřešenou úlohu — boost se k úloze přilepí navždy, i po vypršení předplatného. AI Mentor už nevyklopí řešení při první nápovědě a teď eskaluje pomoc podle jednotlivých úloh. Také jsme z editoru první úlohy odstranili úvodní komentář -- Click ▶ Run.
- Předplatné Premium uděluje násobitel Power ×1.5 za každou vyřešenou úlohu. Boost se zamkne v okamžiku vyřešení, takže zůstane ve vašem součtu, i kdyby předplatné později vypršelo.
- Oslavný modál „Správně!“ teď zobrazuje free uživatelům pobídku k upgradu hned pod čipem +Power: „Get +50% Power per solve — go Premium“, s odkazem na /pricing.
- AI Mentor teď eskaluje nápovědy podle úlohy. První požadavek dostane jen nasměrování bez názvů operátorů; požadavky 2–4 přidají koncept a kategorii; od požadavku 5 může mentor pojmenovat
LIKE/WHERE/GROUP BYpřímo. Počítadlo se resetuje každých 24 hodin. - Vysvětlení chybných odpovědí teď dodržuje stejné úrovně nápověd jako běžné nápovědy — už neprozrazují konkrétní operátory hned při prvním neúspěšném odeslání.
- Uzavřeny zbývající nálezy auditu SQL úloh: opraven referenční výsledek v Tournament Winners, srovnány náhledy TIMESTAMP u několika úloh a obnovena PostgreSQL varianta jedné AI úlohy.
- Odstraněn úvodní komentář
-- Click ▶ Run — see what's in this tablez editoru první úlohy. Otevřené úlohy teď začínají s prázdným editorem.
Přepracovány filtry katalogu úloh: stav se stal 3stavovým segmentovým ovladačem (Vše / Nevyřešené / Vyřešené) s výchozím Nevyřešené, přidán filtr dialektu, čipy témat a firem teď zobrazují aktuální počet úloh, aktivní filtry se objevují jako odstranitelné pilulky s možností „Resetovat vše“.
- Filtr dialektu v katalogu: All / PG / MySQL — vlastní segment vedle ovladače stavu.
- Čipy témat a firem teď zobrazují, kolik úloh odpovídá: „Windows (43)“, „Tinkoff (5)“. Čipy s nulou úloh blednou.
- Řádek pilulek aktivních filtrů: každý použitý filtr (vyhledávání, obtížnost, stav, dialekt, oblíbené, téma, tag, firma, region) se vykreslí jako odstranitelná pilulka; „Resetovat vše“ vrátí vše do výchozího stavu.
- Filtr stavu úlohy je teď 3stavový segmentový ovladač (Vše / Nevyřešené / Vyřešené) s výchozím Nevyřešené. Nahrazuje jediný přepínač „Skrýt vyřešené“.
- Ovladač řazení přesunut do horní lišty — dříve byl zahrabaný dole a skrytý za posuvníkem.
- Přepínač oblíbených přesunut do horní lišty filtrů — teď sedí vedle ostatních binárních přepínačů.
- Odznak filtrů už při startu neukazuje „1“ — výchozí zobrazení „Nevyřešené“ se nepočítá jako použitý filtr.
Audit napříč katalogem: vyhodnocovač už neodmítá správné odpovědi kvůli serializaci DATE vs TIMESTAMP, ukázkové náhledy u 60+ úloh teď odpovídají tomu, co referenční řešení skutečně vrací, a 5 úloh používajících CURRENT_DATE / NOW() je připnuto k pevnému referenčnímu času, aby náhledy den ode dne neplavaly. Plus oprava popisu u úlohy s měsíčními transakcemi z uživatelského hlášení.
- Vyhodnocovač: přidána normalizace data jako timestamp (
2024-01-01T00:00:00.000Z↔2024-01-01) — správné odpovědi už nedostávají „počet řádků sedí, obsah se liší“ kvůli formátování návratového typu. - Úloha „Měsíční transakce a chargebacky“: popis teď upřesňuje, že chargeback patří do měsíce původní transakce, ne k datu refundu; náhled zobrazuje data prvního dne v měsíci místo ISO timestampů posunutých o TZ.
- Přegenerovány ukázkové náhledy u 60+ úloh: číselné formátování (
100→100.00), zobrazení časového pásma (+03→+00), DATE jako TIMESTAMP, INTERVAL jako objekt — náhled teď odpovídá tomu, co vrací živý runner. - Pět úloh používajících
CURRENT_DATE/NOW()/CURRENT_TIMESTAMPve svém seedu (#170, #601, #602, #668, #693) je teď připnuto k2026-05-05 12:00:00 UTC. Náhledy přestaly plavat.
Přepracovaný blog: vyhledávání, navigace podle 10 sekcí, prvních 7 tutoriálů pro začátečníky. Názvy příkazů v taháku úlohy jsou teď klikatelné odkazy na články. Stránka vydání dostala strom verzí se scroll-spy.
- Blog: vyhledávání napříč názvy, obsahem a tagy + levý postranní panel sekcí. Aktivní sekce se zvýrazní při posunu.
- Blog: 7 prvních tutoriálů pro začátečníky —
SELECT … FROM,WHERE,ORDER BY,LIMIT,INNER JOIN,LEFT JOIN, aliasy. - Tahák tématu v úloze: názvy příkazů jsou teď modré odkazy na odpovídající tutoriál na blogu — otevírají se v nové záložce.
- Stránka vydání: levostranný strom verzí seskupený podle
major.minor; kliknutí posune k verzi a aktualizuje kotvu v hashi. - Tlačítko „Kopírovat SQL“ na každém řádku záložky Odeslání.
- Ruské skloňování číslovek všude: „221 задача“, „2 задачи“, „5 задач“ místo dřívějšího „221 задач“.
- Tahák tématu v úloze už při rozbalení neposkakuje — místo pro posuvník je teď rezervováno.
- Markdownové tabulky v článcích na blogu se teď vykreslují jako HTML tabulky místo jediného řádku prostého textu.
Plošná kontrola kvality napříč katalogem: opraveno 23 neřešitelných úloh, přepsáno 66 anglických popisů, srovnány popisy a ukázkové náhledy u dalších několika desítek. Plus jedna oprava nahlášená uživatelem.
- Ukázkové náhledy u 50+ úloh teď odpovídají tomu, co referenční řešení vrací.
- Sloučeny duplicitní tagy firem v čipech filtru úloh.
- Opraveno 23 úloh (pharma-*, loyal-*, hotel-*, qa-*), které nešlo vyřešit kvůli nesouladu schématu a seedu.
- Přepsány anglické popisy u 66 úloh lc-* / lc2-*, které dříve obsahovaly stub nebo fragment.
- Úloha „Pokoje rezervované 2. září 2019“ už nepřijímá špatnou odpověď.
- Deset úloh, kde popis nesouhlasil s referenčním řešením, je teď konzistentních.
- Sedm úloh Tochka přicházelo s cizím zadáním — přepsali jsme je.
69 nových úloh z reálných pracovních pohovorů na ruském trhu (Yandex, Tinkoff, Sber, VTB, Alfa, VK, Ozon, Avito, Magnit, Samokat a dalších 23 firem) — postaveny kolem širšího vesmíru typů PostgreSQL: UUID, JSONB, ENUM, INTERVAL, TSTZRANGE, INET, NUMERIC a POINT. Plus klíčové opravy z uživatelských hlášení a indikátor „Co je nového“ s červenou tečkou v postranním panelu.
- 69 nových úloh převzatých z reálných pohovorů v ruských firmách. 33 zaměstnavatelů: Yandex, Tinkoff / T-Bank, Sber / SberMarket, VTB, Alfa-Bank, Gazprombank, Rosbank, Sovcombank, MTS / MTS Bank, Otkritie, Renaissance Bank, Megafon, VK, Ozon, Avito, Magnit, Lenta, Wildberries, Cian, ivi, Delimobil, Aviasales, Samokat, Domclick, Lesta, Skypro, Uchi.ru, Sravni.ru, Vizor, CloudReports a Yandex Practicum. Všechny označeny jako Interview, dostupné pro Premium.
- Bohaté typy PostgreSQL ve schématech úloh. Většina úloh dříve používala
INT+VARCHAR(100)— vhodné pro učebnicové příklady, daleko od produkce. Nové úlohy zavádějíUUIDpro PK klientů a objednávek,NUMERIC(15,2)pro peníze aNUMERIC(12,4)pro směnné kurzy,TIMESTAMPTZpro události,INTERVALpro délky hovorů a sezení,TSTZRANGE/DATERANGE/NUMRANGEpro SCD2 historie a okna platnosti,JSONBpro metadata a payloady událostí,ENUM(s explicitnímCREATE TYPE) pro stavy a kategorie,INETpro IP v antifraud úlohách,POINTpro GPS souřadnice,TEXT[]/INTEGER[]pro tagy a pole ID. Trainer vás tak vystaví stejným typům, jaké potkáte v produkci. - Indikátor s červenou tečkou u položky „Co je nového“ v postranním panelu — objeví se, když vyšlo nové vydání, které jste ještě neotevřeli. Tečka zmizí po jedné návštěvě
/releases(příznak žije v localStorage tohoto prohlížeče). Dříve indikátor existoval jen v horní navigační liště; v rozvrženích jen s postranním panelem nebyl dosažitelný.
- Správné vykreslování nových typů v tabulce výsledků dotazu. Dříve se sloupce
JSONB,INTERVALaPOINTvykreslovaly jako „[object Object]“ a pole (TEXT[],INTEGER[]) se sbalovala na řetězce spojené čárkami — struktura byla neviditelná. Teď se JSONB a pole vykreslují jako čitelný JSON, INTERVAL jako1d 02:30:00, POINT jako(x, y). Booleany a UUID si zachovávají textové vykreslení. - ER diagramy na stránce úlohy dostaly do palety položky pro nové typy: UUID fialová, JSONB žlutá, INTERVAL purpurová (stejná rodina jako ostatní datum/čas typy), TSTZRANGE / DATERANGE / NUMRANGE růžová, INET azurová, POINT růžová, vlastní ENUM rosé. Dříve tyto typy propadly do výchozí šedé a nedaly se odlišit od prostého INT / VARCHAR.
- Šest opravených úloh výše také dostalo obohacené schéma ve stejném stylu jako nová sada pohovorových úloh:
UUIDprimární klíče,JSONBpayloady,ENUMtypy pro pohlaví / kategorie / stavy,NUMERIC(15,2)místoINTpro platy a ceny,INTERVALpro délky trvání. Formulace úloh byla mírně upravena, aby nové typy zdůvodnila, ale podkladový problém zůstává nezměněn. Je to první krok v upgradu starších úloh — víc v nadcházejících vydáních.
- Opravena hrstka starších úloh nahlášených uživateli. „Project Employees II“ — ER diagram zobrazoval Employee + Department místo Project + Employee, zatímco podkladové schéma bylo správné; diagram jsme srovnali. „Reported Posts“ — popis neuváděl, že důvod nahlášení žije ve sloupci
extra: teď uvádí. „Sales Analysis I“ — referenční řešení používaloSUM(price), ačkoli schéma má sloupecquantity, což bylo matoucí; přeformulováno jakoSUM(quantity * price), blíž reálným tržbám. „Swap Salary“ — úloha byla napojena na špatný dataset (Employee + Department místoSalary(id, name, sex, salary)), což ji činilo neřešitelnou; přepojena na kanonický dataset. Stejný tichý posun ER v „Project Employees III“ a „Reported Posts II“ dostal stejnou opravu.
Velké vydání: nová navigace v levém postranním panelu, přísný režim Mock Interview s bonusem +25% Power, veřejné profily a přátelé, e-mailová upozornění, firemní tagy v barvách značky, další filtry a blok partnerských kurzů. Plus důležitá oprava soukromí mezi účty a desítky vyladění UX.
- Blok partnerských kurzů. Na stránce úloh (širší obrazovky) zobrazuje pravý sloupec kurátorovanou sadu partnerských kurzů; na mobilu je to horizontální karusel nad seznamem. Karty odkazují na landing pages partnerů s UTM tagy — pro nás způsob, jak udržet cenu předplatného nízkou pokrytím nákladů na infrastrukturu.
- Nový režim Mock Interview — přísná simulace skutečného pohovoru. Jakékoli jediné porušení (přepnutí záložky, vložení, opuštění fullscreenu, ztráta fokusu okna > 1 sekundu) automaticky způsobí neúspěch sezení. Nápovědy, AI Mentor a tahák jsou skryté a uzamčené. Délky: 5 / 10 / 15 / 30 / 60 minut. Free úroveň — 1 pokus denně; Premium — neomezeně. Po dobu živého sezení je okolní navigace (postranní panel, „Úlohy“, „Top řešení“, „Další úloha“, „Opustit track“, Prev/Next/Random) uzamčena — jediná cesta ven je explicitní tlačítko „Ukončit“ nebo zavření záložky (což sezení automaticky opustí).
- +25% Power za každou úlohu vyřešenou v režimu Mock Interview — bonus je per-úloha a označený v reportu po sezení. Žebříček teď má informační sloupec „Mock“ (stejný počet zobrazený na kartě profilu a na
/u/<username>); na řazení podle Power nemá vliv. - Veřejné profily na
/u/<username>: vyberte krátký handle a přepněte přepínač veřejnosti — jakýkoli anonymní návštěvník uvidí vaši pozici, Power, aktuální sérii, počet úspěchů, heatmapu aktivity a odkazy na GitHub / Telegram / LinkedIn. Žádná soukromá data nejsou odhalena. - Přátelé: přidávejte uživatele podle jejich veřejného handle, spravujte příchozí a odchozí žádosti, sledujte vyhrazenou záložku žebříčku přátel s jejich Power, sérií a počtem vyřešených úloh.
- Oblíbené: každá karta úlohy má teď hvězdičku — kliknutím se úloha dostane do filtru „Pouze oblíbené“. Seznam žije na serveru navázán na váš účet a přečká přepnutí prohlížeče.
- E-mailová upozornění (přepínače v profilu). „Zachraňte svou sérii“ — večerní připomínka, když je vaše série ≥ 3 dny a dnes jste nic nevyřešili. „Týdenní souhrn“ — sobotní ranní rekapitulace s úlohami vyřešenými minulý týden, aktuální sérií a nejslabší kategorií.
- Premium uživatelé jsou vizuálně označeni všude, kde se objevují avatary: holografický gradientový prstenec (žebříček, přátelé, profil, postranní panel, veřejná stránka
/u/<username>); malý odznak Crown v rohu na velkých avatarech. Na řazení nemá vliv. - Firemní tagy v barvách značky na kartách úloh: žlutá pro Yandex / Tinkoff / Beeline, zelená pro Sberbank / Spotify / OpenAI, modrá pro VK / Ozon / Google / Meta, červená pro MTS / Alfa / Tesla, fialová pro Stripe / Skypro / Wayfair, oranžová pro Amazon / Alibaba a tak dále. Dříve byl každý tag jednotně fialový.
- Další čipy SQL klauzulí ve filtru „Téma“ na stránce úloh: vedle 8 širokých kategorií (SELECT, JOIN, poddotazy, window, agregace, CTE, DML, DDL) můžete teď přepnout
GROUP BY,COUNT,HAVING. Kombinujte je s kategoriemi pro přesnější filtrování. - Panel „Schéma DB“ na stránce úlohy lze teď sbalit. Přepínač vedle názvu úlohy skryje sloupec a uvolní šířku pro editor a tabulku výsledků. Stav sbalení se pamatuje na prohlížeč, takže schéma se v další úloze otevře stejně.
- 8 nových pohovorových úloh od Tochka — od EASY po HARD. CRM scénáře (najít klienty s aktivní žádostí), portfoliové výpočty (struktura, vážený průměr splatnosti, dynamika hodnoty), dotazy na dluhopisy s okenními funkcemi. Řešení pro PostgreSQL i MySQL.
- Sekce blogu na
/blog. Dlouhé tutoriály — startujeme hlubokým ponorem do okenních funkcí. Dvojjazyčný obsah, slug URL, OG karty pro sdílení na sociálních sítích. Dostupné z patičky a ze spodní části postranního panelu. - Vlastní stránka 404. Stará výchozí Next.js vykreslovala černý text na bílém — v tmavém režimu neviditelný. Nová stránka používá tokeny tématu a žije uvnitř sdíleného shellu, takže navigace zůstává na dosah.
- Navigace přepracována. Pro přihlášené uživatele uvnitř aplikace se hlavní navigace přesunula do levého postranního panelu — Trainer, Progress, Žebříček a další sekce žijí tam, s Power + sérií pod vaším avatarem a přepínači jazyka/tématu dole. Landing page, ceník a autentizační toky si ponechávají tenkou horní lištu. Pomocné stránky (Co je nového / Nahlásit chybu / Blog) zdědí to chrome, ze kterého jste přišli.
- Premium gradientový prstenec kolem avatarů se teď zobrazuje na každé záložce žebříčku — dříve se prstenec objevoval jen na záložce „Za celou dobu“ a tiše mizel na „Týden“ a „Měsíc“, protože backend pro periodické žebříčky nevydával příznak předplatného.
- Úpravy jména a avataru ve vašem profilu se teď okamžitě promítnou do postranního panelu — bez nutnosti načtení stránky. Dříve mohla stará uživatelská karta zůstat až do plného obnovení.
- Úniky dat mezi účty při přepínání uživatelů ve stejném prohlížeči. Dříve mohly po odhlášení / přihlášení s jiným účtem přetrvávat: vlákna chatu s AI Mentorem, koncepty SQL v editoru, příznaky „vyřešeno“ u jednotlivých úloh, aktivní sezení Mock Interview, počítadlo AI generování, cache oblíbených. Teď odhlášení a každá cesta přihlášení (formulář, OAuth, ověření e-mailu) smaže vše navázané na předchozího uživatele.
- Odkaz „Žebříček přátel“ z profilu teď přistane přímo na záložce Přátelé — dříve vás odhodil na globální žebříček. Začátečnický pruh „Začněte zde“ se už po odmítnutí nevrací; dříve se odmítnutí resetovalo při každém odhlášení / přihlášení.
- Desítky vyladění mobilního rozvržení a interakce: kompaktnější modál reportu po sezení, správné rozestupy filtrů na úzkých obrazovkách, banner zpětné vazby už nepřekrývá boční panel při 1024px, pole jméno + e-mail na stránce nahlášení chyby pro anonymní odesílatele.
Hotfix UX editoru na úzkých obrazovkách: vyskakovací okno „Nastavení editoru“ už neořezává panel kódu a na mobilu už nepřetéká přes okraj viewportu. Stejné tlačítko ozubeného kola, jaké má desktop, teď žije i v mobilním panelu nástrojů a nastavení velikosti písma se konečně použije na mobilní editor.
- Vyskakovací okno „Nastavení editoru“ se mohlo ořezat o okraje stránky a nemělo vnitřní posuvník — na úzkém notebooku nebo telefonu byla polovina nastavení prostě neviditelná. Okno se teď vykresluje nad celou stránkou (přes portál), automaticky se přimkne k viditelné oblasti a vyroste mu vnitřní posuvník, když jeho obsah přesahuje výšku viewportu. Hlavička s názvem a tlačítkem zavření zůstává při posunu přilepená.
- V mobilním zobrazení editoru (≤1024px) v panelu nástrojů chybělo ozubené kolo nastavení editoru — „Velikost písma“ byla dosažitelná jen z desktopu. Ozubené kolo teď sedí vedle PG/MySQL a Format a nastavení velikosti písma skutečně škáluje vstup mobilního editoru.
Hotfix z hlášení chyby: úloha #240 („Staff Bonuses“) vykreslovala špatné schéma — zobrazovala Employee + Department místo skutečného Employee + Bonus, čímž bylo zadání nečitelné.
- Úloha #240 „Staff Bonuses“: prohlížeč schématu vykresloval zastaralé tabulky
Employee + Department(s polidepartment_id,manager_id) a prázdnou záložkuDepartment. Sandbox a referenční řešení byly celou dobu správné — chybná byla jen metadata prohlížeče. Teď schéma zobrazuje skutečné tabulkyEmployee + Bonuss vazbouBonus.empId → Employee.empId.
Obohaceny datasety u 268 z 339 úloh — plnější zdrojové tabulky, smysluplnější řádky v očekávaném výstupu, úlohy už nepůsobí rozbitě.
- Hromadné obohacení datasetů: 268 z 339 úloh dostalo plnější seed data — typicky 6–12 řádků v primárních tabulkách místo 2–4, s rozmanitostí podél os filtr/JOIN/GROUP BY, které referenční řešení procvičuje. Dotčeno 137 unikátních datasetů. Referenční řešení a schémata jsou beze změny. Pokrok uživatelů je zachován — již vyřešené úlohy zůstávají vyřešené, Power a úspěchy se nepřepočítávají.
- Každá obohacená úloha byla zvalidována: referenční řešení bylo spuštěno proti novému seedu přes executor, sample_output přegenerován ze skutečného výsledku.
- Úloha #38 (
well-paid-employees) — původně hotfix v1.2.4, teď součást širšího průchodu.
Hotfix z hlášení chyby: panel „Ukázka očekávaného výstupu“ teď objasňuje, že počet řádků tam nemusí odpovídat tabulkám ve schématu.
- Přidáno upozornění nad panel „Ukázka očekávaného výstupu“: „takto vypadá správná odpověď — počet jejích řádků je vlastní, nemusí odpovídat tabulkám ve schématu“. Dříve uživatelé počítali řádky v jedné z tabulek schématu a předpokládali, že úloha je rozbitá, když se čísla lišila.
Hotfix z hlášení chyby: úloha #38 „Plat vyšší než u manažera“ teď běží na pořádném datasetu se třemi skutečnými případy. Plus malá oranžová tečka u „Co je nového?“, když vyjde čerstvé vydání.
- Malá oranžová tečka se objeví u navigační položky „Co je nového?“, když vyjde čerstvé vydání. Jedna návštěva
/releasesji vymaže až do dalšího vydání.
- Úloha #38 (
well-paid-employees): dataset byl příliš řídký — 6 zaměstnanců a jediný případ „podřízený vydělává víc než manažer“, což budilo dojem, že data jsou chybná. Rozšířeno na 9 zaměstnanců ve dvou odděleních se třemi jasnými případy (Eve > Alice, Frank > Dave, Henry > Bob).
Nová stránka „Nahlásit chybu“ s přílohami snímků obrazovky, sekundární navigační skupina a kompaktnější pruh „Začněte zde“ na mobilu.
- Nová stránka „Nahlásit chybu“ v navigační liště: formulář s předmětem + popisem a až 5 snímky obrazovky / krátkými klipy (drag-and-drop podporován). Hlášení přistávají v naší schránce pro rychlé třídění.
- Navigační lišta dostává sekundární skupinu — „Co je nového?“ a „Nahlásit chybu“ — oddělenou od primárních záložek tenkým svislým oddělovačem.
- Začátečnický pruh „Začněte zde“ je na mobilu kompaktnější — kratší název, skrytý popis, užší karty. Uvolňuje místo pro samotný seznam úloh.
- Začátečnický pruh „Začněte zde“ už při otevírání stránky úloh nebliká na zlomek sekundy — teď se vykreslí až po vyřešení
/progress. - Highlight poznámek k vydání (horní jednořádkový) teď správně vykresluje zpětné apostrofy — dříve zobrazoval doslovné „
?lang=“ místo stylizované code pilulky. - Fantomový svislý posuvník na stránce „Learning Tracks“ je pryč —
min-h-screenspárované s navigační lištou vynucovalo ~60px výšky navíc, i když se obsah vešel.
UX vyladění napříč trainerem plus URL parametr ?lang= pro reklamu a přímé odkazy na konkrétní lokalitu.
- Přistaňte na konkrétním jazyce přes
?lang=ennebo?lang=ruv URL:https://sql.coderang.dev/?lang=en. Praktické pro reklamu a sdílení odkazů na konkrétní lokalitu; volba se pamatuje rok.
- Když denní AI nápovědy dojdou, tlačítko „Vysvětlit“ se změní na „Tahák“ a otevře referenci tématu.
- Hvězdička oblíbených je teď viditelná na mobilu a slabě viditelná na desktopu, místo aby byla skrytá až do najetí myší.
- Popis úlohy už při rozbalení taháku neposkakuje. Hvězdička je při najetí jasnější.
- U DDL úloh panel schématu zobrazuje „žádné výchozí tabulky; vytvořte je“ místo prázdného plátna.
- AI tlačítko teď skutečně pulzuje jen při chybách (animační třída dříve nebyla nikdy definovaná).
- Power a Streak v navigační liště se naseedují z localStorage před načtením ze serveru — žádný záblesk „0 ⚡“.
- Počítadlo AI generování se už po přesměrování na vygenerovanou úlohu neresetuje na 0.
- Mobilní detaily: odznaky obtížnosti stejné šířky (Star zarovnán), text spodních záložek se vejde, animace škálování denního počítadla, tooltip ikony série, ruská pravidla skloňování.
- Názvy ruských firem (Сбербанк, Яндекс, Авито…) se teď v anglickém UI vykreslují latinkou v přepisu (Sberbank, Yandex, Avito); v ruštině zůstává azbuka.
- Názvy položek taháku (Aliasy, Skalární poddotaz atd.) se teď při přepnutí jazyka správně překládají.
- Týdenní/měsíční žebříček teď aplikuje bonus na první pokus ×2 a ignoruje opakovaná odeslání, v souladu s tím, jak se počítá celoživotní Power. Dříve periodické zobrazení ukazovalo zhruba polovinu celoživotního — chyba v matematice, ne v datech.
- Odstraněna mrtvá záložka Solutions — žádné tlačítko ji neaktivovalo, ale duplikovala načítání.
- Zpětné apostrofy už nenechávají mezeru před koncovou interpunkcí („
Action.“). - Prázdné stavy panelu výsledků se teď správně překládají do angličtiny.
Vyladění úloh na úpravu dat a celkového vykreslování popisů.
- Upozornění pro DDL/DML úlohy: úlohy s UPDATE/INSERT/DELETE a CREATE/ALTER/DROP teď zobrazují krátkou poznámku „závěrečný SELECT není potřeba“ — už žádné hádání, co vypsat.
- Tahák tématu teď respektuje typ úlohy: DML úlohy už nezobrazují SELECT/ORDER BY/LIMIT, DDL úlohy zobrazují jen příkazy úpravy schématu.
- Tokeny v zpětných apostrofech v popisech úloh (\
id = 4\, \users.email\) se teď vykreslují jako akcentní code pilulky místo syrového textu — popisy se čtou přesně tak, jak je autoři píší. - Bloky kódu v taháku teď mají akcentní levou lištu a jemné ohraničení — čtou se jako skutečné úryvky kódu místo šedých placek.
Onboarding nováčků: pruh „Začněte zde“, úvodní SQL u vaší první úlohy a tahák tématu uvnitř každé úlohy. Nápovědy při chybné odpovědi jsou teď konkrétní a nespotřebovávají vaši AI kvótu.
- Pruh „Začněte zde“ v horní části stránky úloh — 8 jednoduchých SELECT úloh pro začátečníky. Zobrazí se, dokud něco nevyřešíte; posun tažením s kurzorem ruky.
- Úvodní SQL v editoru. Úplně první úloha, kterou otevřete, předvyplní
SELECT * FROM <first_table> LIMIT 5;, takže můžete hned stisknout ▶ a podívat se, jak data vypadají. - Tahák tématu. Panel úlohy teď má sbalitelný referenční blok s relevantními SQL příkazy, syntaxí a jednořádkovým vysvětlením — přizpůsobený podle tématu: SELECT, JOIN, agregace, poddotazy, window, CTE, DML, DDL.
- Banner chybné odpovědi je teď konkrétní: pojmenuje sloupce navíc/chybějící, rozdíly v řádcích, problémy s řazením a běžné SQL chyby. Běží lokálně, bez spotřeby AI kvóty.
Automatické dokončování v SQL editoru s respektem k aliasům a velká zlepšení mobilního rozvržení.
- Stránka vydání: historie aktualizací je teď viditelná na /releases.
- Automatické dokončování s respektem k aliasům. Po
<alias>.jsou návrhy omezeny na sloupce té jediné tabulky. Samotné aliasy se dokončují klávesou Tab. .je teď spouštěcí znak: návrhy se po ní objeví automaticky, bez nutnosti Ctrl+Space.
- Mobilní menu teď překrývá obsah místo posouvání stránky dolů. Zavře se klepnutím mimo.
- Přepsáno 300+ popisů úloh: přidán obchodní kontext, vypsány výstupní sloupce, explicitně uvedeno řazení a zaokrouhlování.
- Mobilní popis úlohy se teď při dlouhém textu správně posouvá. Dříve se zasekl a blokoval přístup k záložkám dole.
- Spodní panel záložek traineru je teď vždy viditelný v jakémkoli mobilním prohlížeči (Yandex Browser, MIUI, Samsung Internet). Dříve se ořezával pod viewportem.
- Mobilní menu je teď plně neprůhledné. Dříve prosvítalo 5 % obsahu pozadí v prohlížečích bez podpory backdrop-filter.
- Na úzkých obrazovkách (320px a méně) rozbalovací nabídka řazení úloh už nepřetéká přes pravý okraj.
- Starý bug automatického dokončování: psaní
t.epoFROM employee tvkládalot.employee.salary(nevalidní SQL). Alias je teď respektován.
První stabilní vydání SQL Arena.
- 259 kurátorovaných SQL úloh napříč 6 kategoriemi: SELECT, JOIN, agregace, poddotaz, window, DML.
- 96 pohovorových úloh od špičkových tech firem (Google, Meta, Amazon, Stripe atd.).
- Podpora dvou SQL dialektů — PostgreSQL a MySQL s okamžitým přepínáním.
- AI generování úloh: unikátní úlohy přizpůsobené vaší úrovni dovedností.
- AI Mentor: kontextové nápovědy bez prozrazení odpovědi.
- 3 learning tracky: strukturované cesty od základů po pokročilé SQL.
- Spouštění SQL v reálném čase v izolovaném prostředí s vyhodnocováním výsledku (diff sloupců/řádků/pořadí).
- OAuth autentizace přes GitHub, Google, Yandex plus registrace e-mailem/heslem.
- Žebříček založený na XP (Power), uživatelské profily, úspěchy, tmavé a světlé téma.
- Předplatné Premium s integrací YooKassa a anti-bot rate limitingem.
- Interaktivní ER diagramy schémat, Monaco editor se zvýrazňováním a formátováním SQL.
- Dvojjazyčné rozhraní: ruština a angličtina.