I was looking to buy speaker stands for my KEF LS50 Metas and the DIY KEF LS50 Clone I use as my center channel speaker. KEF’s matching extruded aluminum S2 stands were a natural choice. Unfortunately, they were quite expensive, and I’m not really a fan of single column stands anyway, so I decided to build a few dual column stands myself…

Continue reading

One Function Per Line

Is it possible to make code easier to read than to write? After all, code is read more often than it is written when multiple developers work on the same codebase. If developers spend less time to understand how the existing code works, they can start writing code faster…

Continue reading

One of the most effective methods for detecting invalid types is to validate function arguments in runtime. Instead of using an all-purpose validation library designed for validating a wide range of data types, it might make more sense to use a library tailor-made to validate function arguments. With that idea in mind, I’ve created a lightweight JavaScript function argument validation library called fn-arg-validator…

Continue reading

Making a KEF LS50 Clone

Since you can buy two to three pairs of KEF Q150 for the price of one pair of LS50 Meta depending on whether there’s a sale or not, I decided to build an LS50 clone using a Q150 driver to see if they would sound similar after equalization. The clone wouldn’t have the beautiful curved front baffle and better crossover of LS50 Meta, but it would otherwise be very similar in construction….

Continue reading

When Design Patterns first got published, the year was 1994, a rather primitive time when functional programming languages that support first class functions were rarely used outside academia. These days, though, we have mainstream languages such as JavaScript and Python that can be used to trivially implement many of the design patterns described in the book with only a few lines of code…

Continue reading

Aycan Gulez