One method declaration; two Zig annoyancesNov 20 2024
Zig's new declaration literalsNov 14 2024
Zig's (.{}){} syntaxNov 05 2024
TCP Server in Zig - Part 8 - Epoll & KqueueOct 30 2024
TCP Server in Zig - Part 7 - KqueueOct 27 2024
TCP Server in Zig - Part 6 - EpollOct 23 2024
TCP Server in Zig - Part 5b - Poll Oct 17 2024
TCP Server in Zig - Part 5a - Poll Oct 15 2024
TCP Server in Zig - Part 4 - MultithreadingOct 11 2024
TCP Server in Zig - Part 3 - Minimizing Writes & ReadsOct 08 2024
TCP Server in Zig - Part 2 - Message BoundariesOct 05 2024
TCP Server in Zig - Part 1 - Single ThreadedOct 02 2024
Creating enums at comptimeSep 19 2024
Closures in ZigSep 10 2024
Zig's @memcpy, copyForwards and copyBackwardsSep 03 2024
Zig's BoundedArrayAug 27 2024
Custom String Formatting and JSON [De]Serializing in ZigAug 23 2024
Basic MetaProgramming in ZigAug 14 2024
Zig's HashMap - Part 3Aug 07 2024
Zig's Temporary Variable are ConstJul 23 2024
Using a custom test runner in ZigJul 15 2024
Zig's @constCastJul 06 2024
Be Careful When Assigning ArenaAllocatorsJun 26 2024
Zig's std.json.parseFormSlice and std.json.Parsed(T)Jun 18 2024
Leveraging Zig's AllocatorsJun 05 2024
Zig: Freeing resources referenced in multiple threadsMay 21 2024
Writing a task scheduler in ZigMay 09 2024
Zig: Use The Heap to Know A Value's AddressMar 15 2024
Being Mindful of Memory AllocationsFeb 20 2024
Compile-Time Configuration For Zig LibrariesFeb 05 2024
Why is Simple Code So Often Bad?Jan 30 2024
Zig's HashMap - Part 2Jan 22 2024
Zig's HashMap - Part 1Jan 16 2024
Your Website Search Hurts My FeelingsDec 26 2023
Zig's MemoryPool AllocatorDec 22 2023
Zig: Tiptoeing Around @ptrCastDec 11 2023
Performance of reading a file line by line in ZigNov 27 2023
Zig's std.json.Parsed(T)Nov 17 2023
Fast Path to Burnout - Delaying DeploysOct 27 2023
Zig InterfacesOct 08 2023
Learning Zig - ConclusionSep 08 2023
Learning Zig - Coding in ZigSep 08 2023
Learning Zig - GenericsSep 08 2023
Learning Zig - Heap Memory & AllocatorsSep 08 2023
Learning Zig - Stack MemorySep 08 2023
Learning Zig - PointersSep 08 2023
Learning Zig - Style GuideSep 08 2023
Learning Zig - Language Overview - Part 2Sep 08 2023
Learning Zig - Language Overview - Part 1Sep 08 2023
Learning ZigSep 08 2023
Error Handling In ZigAug 07 2023
The IRC protocolAug 03 2023
Try installing from source firstAug 02 2023
Database paging: offset vs cursorJul 29 2023
Custom JSON serialization in ZigJul 26 2023
Parsing timestamps and generating RFC3339 dates in ZigJul 25 2023
Systemd hardening is frustrating and depressingJul 25 2023
Hello from aoliumJul 24 2023
String binary search in ZigJul 23 2023
Zig dangling pointers and segfaultsJun 10 2023
SIMD with ZigMay 02 2023
Regular Expressions in ZigApr 23 2023
ValidationApr 21 2023
Zig QuirksMar 27 2023
Writing JSON to a custom output in ZigMar 17 2023
Reading a JSON config in ZigMar 06 2023
Writing a Custom SQLite Function (in C) - Part 2Feb 14 2023
Writing a Custom SQLite Function (in C) - Part 1Feb 02 2023
ASCII String to Lowercase in GoJan 19 2023
String to Integer (atoi) in GoJan 11 2023
Building a Cache in ElixirJul 11 2022
WebSocket Framing: Masking, Fragmentation and MoreMay 29 2022
Exhausting Exhaustive TestingMar 18 2022
Basic observations of Generics in GoMar 03 2022
Server Hardening Tools (As An Amateur)Feb 16 2022
Elixir Without Ecto - Dynamic QueriesFeb 11 2022
Elixir Without EctoFeb 05 2022
Using Process Dictionaries in ElixirJan 07 2022
Queue Despair: Ordering and Poison MessagesDec 08 2021
Rust StringsNov 27 2021
Rust Ownership, Move and Borrow - Part 3Nov 22 2021
Rust Ownership, Move and Borrow - Part 2Nov 13 2021
Rust Ownership, Move and Borrow - Part 1Nov 06 2021
Elixir, A Little Beyond The Basics - Part 9: erlangOct 25 2021
Elixir, A Little Beyond The Basics - Part 8: genserversOct 23 2021
Elixir, A Little Beyond The Basics - Part 7: supervisorsOct 22 2021
Elixir, A Little Beyond The Basics - Part 6: processesOct 20 2021
Elixir, A Little Beyond The Basics - Part 5: tuples and recordsOct 14 2021
Elixir, A Little Beyond The Basics - Part 4: structuresOct 09 2021
Elixir, A Little Beyond The Basics - Part 3: mapsOct 06 2021
Elixir, A Little Beyond The Basics - Part 2: iolistOct 04 2021
Elixir, A Little Beyond The BasicsOct 02 2021
Elixir, A Little Beyond The Basics - Part 1: listsOct 01 2021
Elegant TCP with Elixir - Part 2 - Message BoundariesApr 13 2020
Elegant TCP with Elixir - Part 1 - TCP as MessagesApr 08 2020
An Awful Introduction to MakeFeb 23 2020
Action-Specific Plug Pipelines for PhoenixFeb 13 2020
Migrating to CockroachDBFeb 05 2020
Using Messages In Elixir To Avoid PollingJan 30 2020
Consistent Database and Message Queue WritesJan 22 2020
Basic Brain Dump On Dealing With ErrorsOct 13 2018
Elixir: Which Modules Are Using My ModuleJun 24 2018
The Benefits of Pair ProgrammingMar 15 2018
Test Private Functions and Implementation DetailsJan 02 2018
The Beauty of Elixir and BeamNov 07 2017
Elixir Tips and TricksOct 27 2017
Testing Asynchronous Code in ElixirSep 25 2017
Learning Elixir's SupervisorsSep 16 2017
Elixir's Binary Matching PerformanceAug 15 2017
Learning Elixir's ETS - Part 2Jul 22 2017
Learning Elixir's ETS - Part 1May 28 2017
Learning Elixir's AgentMar 28 2017
Learning Elixir's GenServer - Part 2Mar 23 2017
Learning Elixir's GenServer - Part 1Mar 22 2017
Dependency Injection in Elixir is a Beautiful ThingJan 06 2017
Tests Are About DesignDec 11 2016
Elixir's With StatementNov 07 2016
Concatenation in ElixirSep 22 2016
Pattern Matching in ElixirAug 01 2016
Interfaces In NimMay 14 2016
Software Craftsmanship: TestingJan 10 2016
An Introduction To OpenResty - Part 3Jan 04 2016
An Introduction To OpenResty - Part 2 - ConceptsDec 26 2015
An Introduction To OpenResty (nginx + lua) - Part 1Dec 19 2015
RESTful routing in GoMay 05 2015
Go actions responsesMay 02 2015
Go's error handling: good and badApr 23 2015
Project OrganisationApr 16 2015
Prematurely Blocking Producers in GoApr 04 2015
Basic Micro-Optimizations Part 3Mar 24 2015
Writing And Using C Code From GoMar 20 2015
An efficient integer setMar 19 2015
Building A Queue - Part 4Mar 18 2015
Leaking GoroutinesMar 16 2015
Building A Queue - Part 3Mar 12 2015
Building A Queue - Part 2Mar 11 2015
Building A Queue - Part 1Mar 10 2015
Using Javascript GeneratorsFeb 24 2015
I'm Not Sold On High AvailabilityFeb 12 2015
Unordered QueuesFeb 04 2015
A decade of unit testingJan 30 2015
Nearest Neighbour Over Small AreasJan 13 2015
Framework Agnostic Zero Downtime Deployment with NGINXJan 06 2015
Introduction to PostgreSQL ArraysDec 08 2014
Basic Micro-Optimizations Part 2Nov 28 2014
Basic Micro-OptimizationsNov 27 2014
Condition VariablesNov 03 2014
Buying Concurrency with MemoryOct 29 2014
Using Small Arrays Instead Of Small DictionariesOct 22 2014
The Little Go BookOct 21 2014
Practical SOA / microservices - Hydration - Part 2Oct 18 2014
How unreliable is UDP?Oct 16 2014
Practical SOA / microservices - Typed RequestsOct 10 2014
Practical SOA / microservices - Hydration - Part 1Oct 01 2014
Controlling Array Growth in GolangAug 26 2014
Cancelling Long Promise ChainsJul 02 2014
Pools: So You Think You're Smarter Than Your GCJun 12 2014
Space Efficient Percentile CalculationsJun 07 2014
Understanding PoolsApr 28 2014
Understanding Javascript PromisesApr 26 2014
Grow Up. Use Queues.Mar 05 2014
Client-Side vs. Server-Side Rendering Redux (Sorta)Feb 22 2014
The Deceptive Nature Of AveragesFeb 10 2014
Why Premature Optimizations Are Rarely A Waste Of TimeJan 13 2014
Fast Large Offsets With An Indexed SkiplistDec 09 2013
Building A SkiplistDec 06 2013
The Minimum You Need To Know About Arrays and Slices in GolangNov 25 2013
Concurrent Reads with Serialized WritesNov 20 2013
Filtering My Blog Posts By TagsNov 12 2013
Building Technology Agnostic Globally Distributed SystemsNov 05 2013
Back To Basics: Hashtables Part 2 (And A Peek Inside Redis)Nov 02 2013
Back To Basics: HashtablesOct 31 2013
High Concurrency LRU CachingOct 19 2013
Growth PlanningOct 03 2013
"Dependency Injection" in GolangSep 18 2013
Scaling? Focus On Raw SpeedSep 11 2013
Own A System Beyond Its Childhood, Or Stay A Bad ProgrammerSep 04 2013
SOA Lessons LearnedAug 27 2013
On Sharing InfrastructureAug 22 2013
Caching: Your Worst Best FriendJul 25 2013
Reading too much into String.SplitJul 17 2013
Golang Slices And The Case Of The Missing MemoryJul 10 2013
Your Buffer Is LeakingJul 08 2013
Shard Your Hash Table To Reduce Write LocksJul 03 2013
Golang hot configuration reloadJul 01 2013
How Meaningful Do You Find Github's Punchcard?Jun 21 2013
Concurrent-Friendly Logging with GolangJun 20 2013
Background Driven DevelopmentJun 12 2013
Why I Dislike EC2Jun 04 2013
How Good Is Amazon's Route 53 Latency Based Routing?May 29 2013
Do More In-Process CachingMay 23 2013
Building SearchMay 13 2013
Redis' slowlog and DEL's surprisingly bad performanceMay 10 2013
Lua's JSON turns empty arrays into empty hashesMay 07 2013
Achieving 5ms Response TimeMay 03 2013
Writing an LRU CacheMay 02 2013
Appendix C - Our Simple AutoCompleteApr 30 2013
Appendix B - I Love Premature OptimizationsApr 30 2013
Appendix A - Why Node?Apr 30 2013
Chapter 7 - ConclusionApr 30 2013
Chapter 6 - Writes, Bloat and QueuesApr 30 2013
Chapter 5 - Surprisingly ReusableApr 30 2013
Chapter 4 - TweaksApr 30 2013
Chapter 3 - HoldbacksApr 30 2013
Chapter 2 - The CoreApr 30 2013
Chapter 1 - IntroductionApr 30 2013
Scaling VikiApr 30 2013
Introduction To Golang: Buffered ChannelsApr 27 2013
An Interview Question Too Many Developers Get WrongApr 24 2013
Things I Wish Someone Had Told Me About GolangMar 11 2013
Testing In GolangMar 10 2013
Getting an Images Type and Size in Golang (or any other language)Feb 10 2013
You can't rollback Redis transactionsFeb 05 2013
Introduction To Golang: Channels (Again)Jan 20 2013
Introduction To Golang: ChannelsJan 17 2013
Introduction To Golang: Arrays, Maps, Slices And MakeJan 14 2013
Introduction To Golang: InterfacesJan 10 2013
Introduction To Golang: Structures, Data and InstancesJan 07 2013
Custom Redis Command: Performance of C vs LuaDec 24 2012
Writing a Custom Redis Command In C - Part 2Dec 23 2012
Writing a Custom Redis Command In C - Part 1Dec 20 2012
No Shit StylesheetsJul 12 2012
Data Modeling In RedisJun 28 2012
Three Must-Have Redis Configuration Options For ProductionJun 27 2012
Node.js, Module.Exports and Organizing Express.js RoutesJun 26 2012
Paging & Ranking With Large Offsets: MongoDB vs Redis vs PostgreSQLJun 25 2012
Why Are You Linking To 404s?Jun 18 2012
What I Learned Building MogadeJun 13 2012
Redis Is The Most Important Tool In My ToolbeltJun 12 2012
Azure's Website Lacks Organization and DetailsJun 11 2012
The Little Introduction To ProgrammingJun 08 2012
I Blog To LearnJun 07 2012
Redis' Watch Command: Making Sure A Process Doesn't Run When Already RunningJun 05 2012
Minimalist MarkupJun 01 2012
Can You Make My Home Page Smaller?May 31 2012
Client-Side vs. Server-Side RenderingMay 30 2012
Ten Features I Like About CoffeeScriptMay 16 2012
Mock Expectations in .NET vs RubyMay 14 2012
Let's Increment i, Logic Gate StyleMay 07 2012
Let's Increment i, Assembly StyleMay 03 2012
Measuring Time Spent Between Steps In A FunnelMay 01 2012
How I'd Change Riak's DocumentationApr 28 2012
I Rather Have Silly Tests Than Silly CodeApr 24 2012
Using MapReduce to Measure FunnelsApr 20 2012
Arrays and Memory, Part 2Apr 19 2012
Learning Is More Important Than KnowingApr 18 2012
I'm a bad chef, but I still cook a lotApr 18 2012
Piping BasicsApr 13 2012
Let's Talk About LoggingApr 11 2012
You Really Should Log Client-Side ErrorsApr 04 2012
Malloc and FreeMar 31 2012
Why Arrays Normally Start At ZeroMar 30 2012
Recommending Distant ItemsMar 27 2012
Let's Build Something Using Amazon's DynamoDBFeb 06 2012
Node.js, Require and ExportsFeb 03 2012
The Little Redis BookJan 23 2012
Refactoring Common API Functionality Into A Node.js ProxyJan 17 2012
Understanding CoffeeScript ComprehensionsJan 15 2012
Reading from TCP streamsJan 12 2012
Does My Replica Set Need An ArbiterJan 07 2012
I Just Don't Like Object MappersNov 18 2011
Redis: Zero to Master in 30 minutes - Part 2Nov 08 2011
Redis: Zero to Master in 30 minutes - Part 1Nov 08 2011
Rethink Your DataNov 07 2011
CouchDB And MongoDB PerformanceOct 28 2011
A MongoDB Guy Learns CouchDBOct 27 2011
Demystifying Write DurabilityOct 16 2011
ObjectIds Are PredictableOct 15 2011
Speeding Up Queries: Re-Imagining Your DataOct 14 2011
Speeding Up Queries: Understanding Query PlansOct 12 2011
What's A Padding Factor?Oct 10 2011
Multiple Collections vs Embedded DocumentsOct 10 2011
The MongoDB CollectionOct 09 2011
MongoSpy, MongoWatch and Compressed BlobsSep 23 2011
The Little Things Add UpSep 17 2011
How You Should Go About Learning NoSQLAug 15 2011
Someone is selling my Foundations of Programming ebook on Amazon.com (and it isn't me)Aug 12 2011
Yesterday I Quit My JobAug 03 2011
RoR Testing - One Thing To Do (I think) And One Thing Not To Do (I'm Sure)Jul 19 2011
Learning Golang By Benchmarking Set ImplementationsJul 15 2011
Error Handling In Asynchronous Code With Callbacks and Return CodesJul 14 2011
The Only Thing I Think I Know About Proper CSS UsageJul 06 2011
Rethink your Data ModelJul 05 2011
MongoDB, OpenStreetMap and a Little DemoJun 20 2011
Factories Make Testing EasierMay 17 2011
Making our MongoDB Code Run FasterMay 09 2011
Practical NoSQL - Solving a Real Problem with MongoDB and RedisMay 08 2011
Fighting the FrameworkMay 04 2011
Dealing with Now and why I'm almost done with C# and JavaMay 03 2011
Automatically Processing EmailsApr 29 2011
The Little MongoDB Book epubApr 20 2011
Algorithm TutorialsApr 15 2011
Video is a poor medium for learning to programApr 12 2011
Markdown and MeApr 05 2011
Why I'd Never Charge For A Tech BookMar 31 2011
tracking hits with load.io, a sunday projectMar 29 2011
The Little MongoDB BookMar 28 2011
Stop Using MocksMar 23 2011
Foundations of Programming 2 - Appendix B - Advanced jQueryMar 21 2011
Foundations of Programming 2 - Appendix A - jQuery BasicsMar 16 2011
Side Projects - MonglyMar 14 2011
Foundations of Programming 2 - Chapter 5 - Effective TestingFeb 23 2011
Regular Expressions: Positive/Negative Look-Ahead/BehindFeb 16 2011
Validation: Hong Kong Doesn't Have Zip/Postal CodesFeb 15 2011
Do Relational Database Vendors Care About Developers?Feb 10 2011
Foundations of Programming 2 - Chapter 4 - Unit TestingJan 31 2011
jQuery DateRange PickerJan 25 2011
Understanding Map ReduceJan 20 2011
Foundations of Programming: Why Markdown? (And why not Word?)Jan 10 2011
Foundations of Programming 2 - Chapter 3 - IoC 180Jan 06 2011
Foundations of Programming 2 - Chapter 2 - Yet Another IoC IntroductionDec 29 2010
Visual Studio's Most Unusable FeaturesDec 28 2010
Foundations of Programming 2 - Chapter 1 - Quality and EfficiencyDec 20 2010
Paypal's logo designed to look like a recommendation?Dec 15 2010
Foundations of Programming 2 Will Need Your HelpDec 13 2010
Does Anyone Know What Silverlight Is?Dec 03 2010
How Optimized Are High Traffic Websites?Nov 16 2010
How to Test Against an External HTTP DependencyNov 12 2010
mogade: a free platform for casual game developersNov 09 2010
An Introduction To HostingOct 26 2010
My Slow Transition Away From Mocks/Oct 20 2010
Weekend .NET Pains - Why I Prefer RubyOct 18 2010
Programmer Passion: An Enterprises Most Useful Yet Repressed AdvantageOct 07 2010
My Programming Sins - 2. Manually Managing ReferencesOct 07 2010
Introducing jstubSep 27 2010
Javascript Mocking - Damn, That's Easy.Sep 21 2010
My Programming Sins - 1. [Not] Testing JavascriptSep 20 2010
A different (for me) way to pageSep 06 2010
How I would fix ASP.NETAug 30 2010
My .NET ICacheAug 24 2010
HttpHandlerWrapperAug 19 2010
Design Through Testability - An ExampleAug 19 2010
Write testable code even if you don't write testsAug 17 2010
Website Performance : Crossing the T's and dotting the I'sJul 22 2010
Using PostMark To Send MailJul 21 2010
noobgaming : my rails and gaming passions combinedJul 20 2010
Installing Nginx with Passenger on Linux (from source)Jul 01 2010
Learning Ruby : Class methods != Static MethodsJun 26 2010
Learning Ruby : class << selfJun 25 2010
Rails does Mail Right. ASP.NET, not so much.Jun 24 2010
My Rails Journey - The Expected Speed BumpsJun 23 2010
Its time to start againJun 13 2010