-
Recent Posts
- Dobrý odhad vydá za tisíc přesných počtů
- Hořící křemík & násobení matic
- Jazyk D a radix sort
- Monoid
- Von Neumannovy lži
- Radix merge sort
- Kompaktní stringy
- Iterace křížem krážem
- Mikrobenchmarky jsou těžké
- Jak v Javě na náhledy obrázků, ze kterých si lidé nebudu chtít vydloubat oči a prázdné oční důlky vypláchnout kyselinou
- Lokalita v grafech a negrafech
- Vstříc řazení v lineárním čase
- Maximálně negativní
- 99.00000000000000009 problémů s floating point čísly
- Závislost je špatná (pro vaše programy i pro váš hardware)
- Od pohledu dobrý, aneb jak najít skoro stejné obrázky mezi dvěma miliony souborů za méně než deset minut
- Sketches – slajdy
- YOLO tree
- diff a stromy
- diff a komprese
- Mýtus o O(1) paměti
- Mergeselect
- Persistentní datové struktury
- Úvod do podivností moderního hardwaru, které vás budou budit ze spaní
- Escape analysis
- Jak rychle řadit a šetřit čas
- Čím více se věci mění, tím více zůstávají stejné
- How to sort out your life in O(n) time
- Jak řadit v lineárním čase, křísit mrtvé a dosáhnout osvícení
- Dualismus hardwaru a softwaru, strojů a virtuálních strojů
- Někdy je nejchytřejší nedělat nic chytrého (další kapitola nekonečného příběhu o optimalizaci)
- Kolize hashů pro mírně pokročilé
- Střeva databází
- I ve Scale se dá psát rychlý generický kód za použití typeclass
- Jaccardovo tajemství – jak počítat podobnost množin pomalu, jak ji počítat rychle a jak při výpočtu podvádět
- limit/offset stránkování nemusí být pomalé
- PHP compaction hell: Kdo neamortizuje, spláče nad O(n²)
- Inkluzivní cache, mnoho vláken a problémy
- Jak JVM volá virtuální metody, jaká temná božstva musí vzývat, aby to bylo aspoň trochu rychlé
- Grim hardware realities of functional programming
- Generování kódu za běhu (ve Scale)
- Pár poznámek k pár poznámkám o sloupcových databázích
- L1I cache a iTLB – když ani spekulace nepomůžou
- Za jak dlouho procesor vynásobí tisíc čísel
- Bez typů se obejdeme, ale…
- Jak optimalizovat deoptimalizací
- Hyper-threading aneb “Jak sakra může běžet víc vláken na jednom jádře?”
- XPath – co, proč a hlavně jak?
- Branch prediction moderních procesorů
- Procesory a jejich architektura (sebrané spisy)
- Types will carry you over the Monads
- PHP DOM, SimpleXML a Matcher
- Výsledky PHP kvízu
- PHP kvíz (aktualizováno)
- Haldy nejsou tak velké, jak se se zdají být
- Poznámka k Moorovu zákonu a rychlosti procesorů
- Tak jak je to s tou rychlostí procesorů a pamětí?
- Co je vůbec objektové a funckionální programování?
- Všechno, co jste kdy chtěli vědět o promise, yield a generátorech v PHP, ale báli jste se zeptat
- Jak vlastně psát asynchronní kód?
- Monády aneb Jak jsem se naučil nedělat si starosti a mít rád Haskell
- JVM: Epizoda V – Paměť vrací úder
- Paralelismus a asynchronnost
- Kolik paměti zabírají PHP pole a objekty?
- JVM – pohled objektům pod sukně
- Scala – novinky ve verzi 2.10
- Rekurzivní sizeOf pro JVM
- Async SQL
- Anorm
- Cost per element/entry in various well-known Java/Guava data structures
- What every programmer should know about memory
- Jak z funkcí implementovat objektový systém
- Velikost objektů na JVM – Scala a specialiazce polí
- Velikost objektů na JVM – Scala @specialized
- SLICK
- Velikost objektů v Javě – mapy
- Velikost objektů v Javě
- Fluent interface a funkcionální programování
- Play! framework
- Out of the Tar Pit
- Paperlog
Categories
Blogroll
Category Archives: DS
Od pohledu dobrý, aneb jak najít skoro stejné obrázky mezi dvěma miliony souborů za méně než deset minut
A tenhle znáte: „Proč je Pentium rychlejší než 486? 486 počítá, ale Pentium jen odhaduje.“ Přestože jde o nejapný vtip o chybě v prvních Pentiích z počítačového pravěku, má v sobě zrnko pravdy: Odhad může být mnohem rychlejší než přesný výpočet. Odhad, pokud chci, aby byl k něčemu … Continue reading
Posted in Algo, DS
Leave a comment
Persistentní datové struktury
Funkcionální programování je horké téma posledních let. Co to je, proč je to dobré, co to přináší a proč o tom všichni mluví právě teď? Odpovědi na tyto otázky jsou následující: Programování s referenčně transparentními funkcemi6, zlepšuje to možnosti kompozice, porozumění programům, … Continue reading
Posted in DS, Funkcionální programování
2 Comments
Kolize hashů pro mírně pokročilé
Hash tabulka je jedna ze základních datových struktur, byla vynalezena roku 1953 a všichni, kdo programování viděli aspoň z rychlíku, ji velice dobře znají. Hash tabulky (někdy také hashmapy nebo slovníky/dictionary) umí vyhledat, přidat nebo smazat hodnotu asociovanou s určitým klíčem v konstantním čase. … Continue reading
Střeva databází
Tenhle článek je mojí skromnou snahou si udělat pořádek v některých technikách a datových strukturách, které se používají uvnitř databází. Nejde o nijak kompletní nebo hluboký výčet, protože realita je vždycky mnohem komplikovanější a zdánlivé detaily (jako třeba konzistence) hrají vždycky větší … Continue reading
Posted in DB, DS
Leave a comment
Jaccardovo tajemství – jak počítat podobnost množin pomalu, jak ji počítat rychle a jak při výpočtu podvádět
Jaccardův index podobnosti je jednoduchá funkce, která udává míru podobnosti mezi dvěma množinami. Je definována jako velikost průniku vydělená velikostí sjednocení dvou množin. J(A, B) = |A ∩ B| / |A ∪ B| Funkce je to jednoduchá. Otázka je, jak … Continue reading
Posted in Algo, DS, Scala
3 Comments