Tag: Programming

  • How TikTok’s Algorithm Works: A Technical Explanation

    Ever wondered how TikTok’s For You Page seems to know exactly which kinds of videos you’ll be most interested in? I’ll explain how recommendation systems, like TikTok’s algorithm, work under the hood. Quick disclaimer – I don’t work at TikTok, so I’m open to corrections and disagreement. However, I know a lot about programming, and…

  • 6 Side Hustle Ideas For Programmers – NO Money Needed

    I’m gonna show you how to make money outside your programming job, with no investment required. None of these ideas I’m about to list require you to spend a dime, but you will have to invest a lot of time. Each of these ideas also provides a way to generate passive income for you. You…

  • Writing Your Second Operating System

    With any skill for which there exist Internet tutorials, there are bound to be hundreds of tutorials covering the very basics. This is especially true for computer programming. The problem, though, is that once you get past the basics, the amount of resources available tends to thin out dramatically. The world is full of “your…

  • What’s New – January 27th, 2020

    As January winds down, I figured it would be a good time to continue my “What’s New” series. (I’ve actually posted one this month already, so this will also cover early February.) What’s Dead (or rather, completed) sumo – I spent the winter break finally completing a compiler. It’s a pretty unsurprising language, but there…

  • Things I Hate About Python

    Everything.

  • Contribute, Or Die: An Open Source Mantra

    I originally wrote a draft of this in December, but was inspired to finish it by recent events (i.e. actix-web). We’ve all heard the trope that the “free” in “free software” does not necessarily mean “without cost” (source). In fact, it really almost never does. Even if a unit of software is available without monetary…

  • How Many Types Is Too Many?

    Position: Type annotations are ultimately undesirable when working with sufficiently-complex type systems, but there is no better solution. There is a point where a formally-verified compiler becomes indistinguishable from an automated theorem prover. Such a compiler can deduce a lot of information from a given language. Take, for example, a hypothetical, C-like language: int array_nth(arr,…

  • A First Look at the Manda Language

    It’s still not public yet, but here’s a little bit about my current project. If you’ve read any of my “What’s New” posts, you’ll recall hearing about me working on the “Manda” language for the past two months. This isn’t true – I actually started in early 2018. class Tobe { fn complain -> print("I…

  • First Thoughts on GNU Guile

    Synopsis: Baby’s first Lisp I had my first encounter with Lisp this week. In the third lecture of the COP4020 (Programming Languages) class  I’m taking, our professor ran through demonstrations of multiple languages and runtimes, including Perl 5, C++, D, and… GNU Guile, an implementation of Scheme. I had heard of it before, and actually…

  • AOT Compilation, Kernel, and other Dart Hackery

    Tinkering around with kernel, Dart’s intermediate format… And more. Discuss on Hacker News: https://news.ycombinator.com/item?id=19844762 The continued development of Dart’s unified frontend (shared across the VM, dev compiler, dart2js, etc.) has made it possible for changes to be made to the language much more quickly. The common IR that Dart now compiles to is called kernel.…