Switching from RVM to chruby

2016 Apr 23


I switched from RVM to Chruby last week. The switch was mostly smooth. I’ll write more about that after I go into why I made the switch.

A few years late to the boat

A few years ago, rbenv came out and Hacker News threads were flaming with opinions...

Working with Poor Internet Connections

2015 Nov 22

I write this post from Shanghai, where my attempts at starting a normal workday hit a brick wall. That should actually be “brick walls”: a corporate firewall in front of the Great Firewall. Over the last few months of traveling in Thailand and China...

A Conversation with my Former Self on Pair Programming

2015 Aug 5

pair programming

I spent approximately the last two years pair programming full time. In any interaction between two people, information surfaces about both participants, whether or not they’re trying to reveal anything. There were many pairings when I got frustrated...

Setting up a blog on S3 with a Namecheap domain

2015 Jul 13

blog DNS AWS

Today, I set up my first domain: eric-hu.io. It’s a little crazy to me that I’ve been working in web development for several years and yet this is the first time I’ve done this. I’m a bit humbled to see just how diverse the technical responsibilities...

Thoughts from Learning Clojure

2014 May 26

I invested about 10 hours this weekend learning Clojure. It feels like a solid chunk of time. Between working on my Bittorrent client learning project and doing some reading of Chas Emerick’s Clojure book, I feel like I understand Clojure just tiniest...

minitest and mocha, mocks and stubs

2013 Nov 18

Debugger, an open-source project I’m working on has both Minitest and Mocha in its gemspec. For the last few months, I tried to only use Minitest until today, when I hit a limitation.

My goal was to test one method on RdebugOptionParser, a class...

Company Values

2013 Nov 16

One of my current company’s stated values is “Do the right thing”, which I’m starting to see the value in. It’s not that I avoided the right thing before, nor do I think that my coworkers and I never do things with improper motivations.


Fun with Multi-Threading

2013 Aug 29

Today I tried to improve upon a hacky test I wrote for rdebug, a tool within debugger. The particular hack I’m trying to remove from the test is polling one thread until it’s ready to respond to work.

This code is necessary because occasionally ...


2013 Aug 28

Today I uninstalled YouCompleteMe, a vim plugin. I used it for about 8 months, but it added significant pain to my software upgrading process. Once it was fully set up, it was somewhat helpful and very sexy. That sexiness just wasn’t worth the cost...

Direction for This Week

2013 Aug 4

I enjoyed how my 7/27/2013 post set a direction for last week. I’d like to make another post like that for the coming week. So here are some topics I’d like myself to research:

  1. Building basic data structures in Ruby. This is one item from last...

Extend vs Include

2013 Aug 2

This is a follow up to my July 27th post. I’m going to try to make this a short, concise blog post. The closer this is to a Stack Overflow answer, the more likely I am to re-read this post as a reference.

include: mixin a module’s methods into a...

Javascript Classes

2013 Jul 29

I reviewed Javascript classes by reading a blog post by Pivotal Labs. In it, the author explains how Javascript works behind the scenes when a new keyword is used. The post is a nice bullet-point explanation, but based on one of the comments, it appears...

Programming Weaknesses

2013 Jul 27

This past week, I finished an interview with a company. I fumbled in many ways, including showing up terribly late. I’ll focus this blog post just on my technical shortcomings, or as I perceived them. Learn from your mistakes, right?

  1. Object Oriented...

Hack Day Reflection

2013 Jul 20

In the Hacker School Manual, reflection is listed as a trait of an awesome hacker. I seem to recall another blog post of theirs mentioning that it’s part of their daily recommended structure. I can’t find that post right now, so I’ll save that for...

I don't like hacky Ruby class definitions

2013 Jul 14

I’ve seen a class definition pattern in Ruby (generally not Rails) and finally found a use for it while working on project Euler problems. It looks like this:

class MatrixPosition < Struct.new(:row, :column) end

This gives me a 2-line class definition...

~ won't expand to user folder

2013 Jun 28


If you’ve used bash before, then the tilde (~) is probably familiar to you. It’s a shortcut for your home folder in the terminal. Thus, cd ~ on my system works as follows:

$ cd / $ pwd / $ cd ~ $ pwd /Users/erichu

This is great, but I’ve run...

learn by teaching

2013 Jun 14

This is just a quick note for the day, but I learned something new today because of a comment on an answer I posted on Stackoverflow yesterday.

A Schwartzian Transform is a technique used for sorting objects that’s useful when the sort key on objects...


2013 May 12

With a technical blog already set up on blogger, I have to ask myself why I want to set this one up. The answer is that blogger isn’t customizable enough. I’d like this blog to also be a playground of ideas.

If there’s some library I want to try...

First Post

2013 Apr 24

By Eric

I finally got the basics of this blog set up. It was fairly simple, involving 3 main steps.

  • Set up Middleman and generate this post
  • Hook up Flatstrap, the basic styling for this blog
  • Set up S3 to host static sites
  • Hook up Middleman Sync...