I Like Big Bits
# Blog
#### [2019-07-08: Programming in 1969](2019_07_08_programming_in_1969.html)
An interview with my mom about how she got into programming 50 years ago. Translated from Swedish.
#### [2019-07-08: Programmering in 1969 (In Swedish)](2019_07_08_programmering_1969.html)
An interview with my mom about how she got into programming 50 years ago.
#### [2018-10-20: Estimating the risk of a hash collision](2018_10_20_estimating_hash_collisions.html)
Say you store 32-bit hashes of a thousand items – what is the probability that you will have a collision? Can you name a number off the top of you head? After reading this article you will be able to!
#### [2017-09-25: Fitting a plane to noisy points in 3D](2017_09_25_plane_from_points_2.html)
A continuation of my 2015 article, with improved accuracy when the points are noisy (do not exactly lie on a plane).
#### [2017-07-19: Hitting the bullseye: Adventures in computer vision](2017_07_19_hitting_the_bullseye.html)
A description of a novel circle detection algorithm.
#### [2017-06-01: Float or double?](2017_06_01_float_or_double.html)
A guide to selecting the floating point representation that makes the most sense for you.
#### [2017-04-23: Abstractions: a cautionary tale](2017_04_23_abstractions.html)
A parable and moral lesson inspired by true events.
#### [2016-11-22: The Unfixable Bug](2016_11_22_unfixable_bug.html)
A short story about a hard-to-find graphics bug, with a twist ending.
#### [2016-10-12: Stick to UTF-8 and these three character sets](2016_10_12_character_sets.html)
A suggestion that the programmer profession to stick to exactly three characters sets.
#### [2016-08-28: Designing a fast Hash Table](2016_08_28_hash_table.html)
Design choices for writing a fast hash table implementation, including benchmarks.
#### [2016-03-20: Simple coroutines for games in C++](2016_03_20_coroutines.html)
An introduction to using coroutines in game development, and how you can emulate them using threads in C++ using a small library of mine.
#### [2016-02-28: Error Context – a stack trace for data](2016_02_28_error_context.html)
This article describes an idea for producing code that is more easily debugged using *Error contexts*.
#### [2016-01-26: Introducing Configuru – the user friendly config library for C++](2016_01_26_configuru.html)
An introduction to my C++ config library which arguably gives better error messages than any other JSON library in the world.
#### [2016-01-25: You deserve great error messages!](2016_01_25_error_messages.html)
A call to action for better error messages for configuration files (e.g. JSON parsers).
#### [2015-12-06: The fastest code is the code that never runs](2015_12_06_gauntlet.html)
A story of how I optimized the light culling in the game Gauntlet.
#### [2015-11-07: Introducing Loguru – the user friendly logging library for C++](2015_11_07_loguru.html)
An introduction to my C++ logging library *Loguru* and some of its interesting features.
#### [2015-03-04: Fitting a plane to many points in 3D](2015_03_04_plane_from_points.html)
The mathematics of fitting a plane to three or more points in three dimensions, including code.
#### [2015-02-09: The Myth of RAM, part IV](2015_02_09_myth_of_ram_4.html)
An FAQ for my "Myth of RAM" series.
#### [2015-02-05: What a difference a function makes](2015_02_05_remap.html)
Wherein I tell a story of how I made my code much more readable with a simple abstraction.
#### [2014-12-07: Lessons after a year with Lua](2014_12_07_lessons_from_lua.html)
Some comparisons between compiled, statically typed languages and dynamically typed scripting languages.
#### [2014-05-13: Responsiveness](2014_05_13_responsiveness.html)
A short introduction to responsiveness and why it matters.
#### [2014-05-06: Type safe handles in C++](2014_05_06_type_safe_handles.html)
How to write more type-safe code in C++ using *type tags*.
#### [2014-04-29: The Myth of RAM, part III](2014_04_29_myth_of_ram_3.html)
Implications of the *O(√N)* memory access rule.
#### [2014-04-28: The Myth of RAM, part II](2014_04_28_myth_of_ram_2.html)
A theoretical argument for the *O(√N)* rule.
#### [2014-04-21: The Myth of RAM, part I](2014_04_21_myth_of_ram_1.html)
An article wherein I argue that the abstraction of constant-time random access memory is wrong, and that we should be using *O(√N)* as a rule of thumb for modeling the time it takes to fetch a random piece of memory.