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. 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.
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.
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.
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?
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.
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).
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.
I’ve been using C for my classes and I can’t help but be really really happy about that. I’ve played with C before. Well, actually, C was my first language. I tried learning it as a stepping stone to Objective C and iOS development, but I quickly gave it up after getting to pointers and arrays. Granted, I was like 11. After that, I’ve played with C in various places. First, I had to use C++ in an internship, where I got to play around with performance optimization and profiling.
I’m a huge fan of Ruby on Rails. I’ve used it for numerous hackathons and various other projects. The Stuyvesant Spectator website is built with a Rails back end and the previous iteration of this blog was my first Rails project. However, as a shameless advocate of Rails, I get to hear a lot of inaccurate ideas about Rails, such as:
Isn’t Rails dead? I don’t know anybody who uses it Rails is too confusing Why should I use Rails when I can use Node?