Solving for multiple variables in brute-force search Earlier, we added a few abstractions to brute-force search. Now, we add yet another abstraction and unlock a wide range of possibilities.
Solving different types of problems with brute-force search In part 2, we test our initial abstraction with a few additional problems. In the process, we figure out a few more useful abstractions.
Finding multiples of a number using brute-force search Writing simple but powerful abstractions is a necessary skill in software. We start with a simple abstraction that solves a few problems.
Implementing a custom collection type in clojure — the leftist heap, a persistent priority queue While I’m usually very happy with the powerful abstractions in clojure, what happens when we want more? How do these hold up? Let’s find…
Generating tickets for tambola — or bingo, or housie, or whatever Recently, I’ve been fiddling with clojure and having some fun. It has some pretty powerful abstractions that allow neatly expressing ideas…
Using TypeScript to write compile-time-safe enumeration type handlers Well written types enforce compile-time guarantees in your code that needs no tests to guarantee functional correctness. At the very least…
4 simple things that will help you handle enumeration types better in a rapidly evolving… Enums are compile-time constants. They don’t respond well to change — they weren’t meant to. I have a few recommendations to make it…
What you risk when using Number() to parse an integer from a string in TypeScript Using Number constructor function to parse a number from an input in TypeScript entails a couple of risks. It’s better to be aware of them.
Expanding upon the Single Responsibility Principle (Part 2) The Single Responsibility Principle, sometimes referred to as SRP, is the first of the five SOLID principles. In our last post we…
Expanding upon the Single Responsibility Principle (Part 1) Almost every techie I come across who has worked with writing object oriented code, seems to be proud that they write SOLID code. Not…