Asymptotic Notation and Performance
If you've ever heard the phrase "premature optimization is the root of all evil" in programming and wondered, "How do I know if I am optimizing prematurely?", then this article is for you! The main way the subject of optimization is usually explained in a computer science way is through Big O notation. There are two things generally optimized and looked at with Big O notation at that is typically the memory and runtime constraints of the program.
Solved games, Poison Positions, and the Game of Nim
I remember learning all these three concepts back in my High School Computer Science class, but over time I have come to see a bit more about them. A solved game is one in which the outcome is known from the beggining win, lose, or draw as long as the players are playing optimally. Say we have the classic game of nim although a simplified version of it. Where you have some number of objects and your target is either to take the last item or to not take it, but on the condition...
Applications of the Multiplicative and Additive Principle of Combinatorics in Programming.
I'm going to give a run through of two basic (though possibly not simple) combinatorics principles and their applications to programming. You probably have seen these principles before if you have taken a college algebra class. So, first I'll answer what is combinatorics: Combinatorics is a branch of Mathematics that teaches you how to count the total number of "things" in some given situation usually these "things" are elements and they make up what is called a set, but we'll get to know more about that in a bit. It comes in handy in fields such as computer science and areas like probability. For example I could tell you that the number of different permutations of a deck of face-cards (think of this as all the different ways the deck could be shuffled) is which can be written out as: ;
Long-Division Proof
I read a comment on Hacker News somewhat recently about long division being unintuitive ... I feel a proof is the best way to see something intuitively. Here is my attempt at proving the long division algorithm.
Getting your Mac to Speak Large Texts
An intro to say, pandoc, homebrew, ffmpeg and more.
How to Quickly Create Your Own Feature Rich Bookmarklets
A guide on bookmarklets and why they are still pretty cool after all these years.