ZZyVOP4d ago · 10 min readBuilt-in Data Structures: Lists, Dicts, Sets, and TuplesIn the last post you stored single values: a name, a number, a piece of text. Real programs deal with collections. A list of chat messages. A dictionary of settings. A pile of documents where you needblog.zyvop.com
DDoogal SimpsonOct 8 · 5 min readHow to Build a Java LRU Cache in 5 LinesTo build a simple Least Recently Used (LRU) cache in Java, extend the standard LinkedHashMap with accessOrder set to true and override the removeEldestEntry method. While this standard library approacdoogal.dev
DDoogal SimpsonOct 5 · 5 min readHow Java HashMap Prevents Hash Collision DoS AttacksJava's HashMap mitigates Hash Collision Denial of Service (DoS) attacks by automatically converting congested linked list buckets into Red-Black trees once a bucket exceeds 8 entries and the total mapdoogal.dev
DDoogal SimpsonOct 3 · 5 min readHow Structural Sharing Makes Immutability FastIf you need to update a single element in an immutable list containing one million items, you do not have to copy all one million elements. Instead, functional ecosystems like Scala, Clojure, and Immudoogal.dev
ZZyVOPSep 27 · 11 min readBig-O Notation Explained: The Regex That Took Down Cloudflare for 27 MinutesAt 13:42 UTC on July 2, 2019, Cloudflare's network stopped answering requests. Not slow. Down. For 27 minutes, a huge slice of the web returned 502 errors instead of loading. The cause wasn't a DDoS ablog.zyvop.com
ZZyVOPSep 27 · 10 min readArrays Explained from Memory to Big O (With Real Benchmarks)This Loop Should Delete Three Items. It Deletes Two. scores = [45, 30, 88, 92, 15, 67] for score in scores: if score < 50: scores.remove(score) print(scores) Read that and guess the outblog.zyvop.com
ZZyVOPSep 23 · 6 min readBloom Filters: The Data Structure That's Allowed to Lie (A Little)Chrome checks every URL you visit against a list of millions of known malicious sites, before the page loads, without a network round trip for most of them, and without storing a multi-gigabyte blocklblog.zyvop.com
DDoogal SimpsonSep 20 · 5 min readHow Gap Buffers Optimize Text Editor PerformanceGap buffers optimize text editor performance by placing a dynamic, invisible block of empty space (a gap) directly at the cursor's location. Instead of shifting subsequent characters on every keystrokdoogal.dev
DDoogal SimpsonSep 19 · 5 min readHow Ring Buffers Work: Low-Latency Circular QueuesA ring buffer (or circular queue) prevents media stuttering by managing data streams inside a fixed-size array using two pointers (read and write). By wrapping pointers back to the start when they readoogal.dev
DDoogal SimpsonSep 17 · 5 min readSkip Lists: The O(log n) Alternative to Balanced TreesTL;DR: A skip list is a probabilistic data structure that upgrades a standard linked list's O(n) search time to O(log n). By layering multiple sorted "express lane" linked lists on top of each other, doogal.dev