Skip to main content

People Suck at Email

Just because someone has not responded to an email in a few days doesn’t mean they’re angry at you. It doesn’t mean they don’t like you. It doesn’t mean they want to stop talking to you. They most likely forgot. Expect to send at least a couple follow up emails. If the person you are emailing is famous or important or a leader of some sorts, expect to send even more emails.

Surviving CSO

Computer Systems Organization, or CSO, is the third class in NYU CAS’s computer science program. I’ve noticed that a lot of people have trouble in CSO. This is for good reasons. The class covers a lot of ground, from the C language to systems architecture to concurrency. This is especially tricky because students face a massive paradigm shift from the relatively high level bubble of Python and Java with its managed memory and forgiving error messages, to the raw, bare metal of C and x86 assembly.

Assuming Stupidity

We’ve all heard of the term mansplaining—when a man condescendingly explains something to a person, often female, who already knows it. It’s quite terrible and unfortunately too common on tech. While I don’t want to discredit the phenomenon of mansplaining, what I’ve noticed is that this situation of a person assuming another person’s stupidity and using it to condescend or treat them badly is far more common than just the cases of mansplaining.

Stop Using So Many Damn Ternaries

A ternary operator, for those of you who don’t know, is an operator with three parts—hence ternary operator instead of binary operator. They look like this: cond ? a : b If cond is true, then the expression evaluates to a, otherwise it evaluates to b. They’re very useful in some situations, such as when you want to conditionally assign to a variable. Contrast this let a; if (cond) { a = foo(); } else { b = bar(); } With this

Endurance Traveling

When I started solo traveling a couple years ago, I became obsessed with techwear. Techwear is clothing that is “optimized” in some fashion. It uses fabrics that dry faster, breathe better, offer more stretch, more durability, etc. The brand that I became enamored with was Outlier. They offer Merino wool t-shirts that could be worn for days on end, shorts that can be used as swimming trunks, specialty button ups that are lighter than linen.

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.