Up to Interpretation

What Do You Want (Instead)?

A lot of virtual ink has been spilled about dependency hell and left-pad and how NPM is hell incarnate. Medium posts moan about how NPM is insecure, is full of bad packages and is emblematic of developers' laziness. They’re not wrong. However, when one raises an issue with a service, there is always the inevitable follow up: what do you want instead? There’s no clear answer to this question for package management.

Mirror Shining

One of my earliest programming projects was for my Intro to Computer Science class in high school. The assignment was to create a game in NetLogo. NetLogo, for those who are not familiar, is a program where users can control “turtles” and “patches”, basically agents and the squares they move on. Users can move the turtles, which can in turn paint the patches they traverse. I decided to make a simple platformer with a twist—the map was to be encased in darkness except for a bubble of light.

Create Your Own Reality

I’ve been thinking about closures recently. Closures are really neat. And they’re not particularly hard to understand, at least at a summary level. But they’re often misunderstood because it’s hard to understand why they’re so powerful and why they’re so useful. For that, you need context. So let’s get into some Γ1! Closures stem from a simple problem: How do I hide information, while still providing some form of access to it?

Free Startup Ideas

Free Startup Ideas. Success not guaranteed Printing: Make a better printer. Make ink cheap and printers reliable. Make the UI easy and connecting simple. College Chooser: Help kids find the right college. Help them wade through the marketing and bullshit Benchmarking: Benchmark people’s products for them and help determine optimizations. Basically Google Pagespeed but for everything.

Google Summer of Code 2018: Ruby

My Google Summer of Code project for Ruby is coming to an end. In a nutshell, the project was to add type annotations to Ruby. When I first approached this problem, my thoughts were “this is just a syntatical change, this shouldn’t be hard”. Haha, yeah, that wasn’t quite true. While I did end up adding type annotations, I didn’t manage to complete all of my goals, and the ones that I did complete, I did by the skin of my teeth.

Stackoverflow Isnt Everything

There’s a lot of memes and jokes online about developers' dependency on StackOverflow. And to an extent it’s true. StackOverflow is a pretty essential tool in a modern developer’s kit. I’ve used it a lot, for everything from iOS code signing issues to Rails bugs. However, as I’ve progressed in my projects, I’ve started to use StackOverflow less and less. There’s a few reasons for this. For one, there are problems where StackOverflow straight up doesn’t help.

Racket School

I’m waiting for my flight back from Racket School 2018, so I figured I might as well recommend the event while it’s still fresh. Basically, Racket School is a week long conference/workshop about Racket, the programming language. It’s run by the creators of Racket: Matthias Felleisen, Robby Findler, and Matthew Flatt. For anybody who learned Racket in school, that may seem a little odd–“Racket, you mean that language I used in Intro CS five million years ago?

Wtf Ruby Pt 1: DSL Dyslexia

Preface This summer I’ve been working on the Ruby language adding type annotations to the grammar. However, the Ruby codebase is rather challenging. There’s not a whole lot of documentation (at least in English), there’s a fair amount of C preprocessor hacking, and there’s a few tricky scripts attached. I’ve decided to document these challenges in this blog. I hope that they’re useful to anybody who decides to work on the Ruby codebase, and I also hope that I can use these notes to improve the codebase myself.

Graphql APIs

I’ve been using GraphQL for almost a year now. I’ve used it in a few small hackathon projects, along with the Stuyvesant Spectator site. I like using GraphQL because it’s rather easy to query complicated relations, especially for React components. On StuySpec it allowed us to split the fetching logic into smaller, more granular queries, which got rid of the large up front fetch that we previously had (not that you need GraphQL to solve that, you can easily use query params).

Boring Ass Classes

Let’s imagine you’re a first year physics student. You’ve never taken a physics class in your life. You’ve never even conducted a simple physics experiment in your life. The only thing you know about physics is that it’s used to make bridges and it has something to do with electricity, motion, and gravity. You like the idea of making bridges, so you decided to become a physics major. So you take your first class and you realize that your professor doesn’t know the first thing about bridges.