Jesse Storimer's Blog Archives

Grow Your Unix Beard Using Ruby - November 27, 2012

The video of my Rubyconf talk was posted this week by the fine folks over at Confreaks. The talk introduces basic concepts in Unix system programming, namely: fork+exec. It walks through examples that use these system calls in Ruby, at a high level, then how Unicorn uses them. If you don't time to watch the talk, just skip to 18:00 ...
Read more

Matz is not a threading guy - November 08, 2012

I attended my very first Rubyconf last week. There were certainly some common themes that I kept hearing over and over again throughout the course of the conference. Among other things, there was JRuby, threading, the GVL, and MRI 2.0. We got to see a few talks about the new features in MRI 2.0. One of the oft-discussed features was ...
Read more

Screencast: Ruby's Socket API From the Outside In - October 24, 2012

One of the reasons I love Ruby is the elegant DSLs and wrappers it provides around complex constructs. Socket programing is no exception. In fact, this becomes really apparent when you look at socket programming. The low-level details and intricacies of the Socket APIs can be complex, but Ruby provides nice high level wrappers on top of the hard stuff. ...
Read more

Lessons Learned Getting Other People to Sell My Ebook - October 15, 2012

Ten months ago I launched an ebook about Unix programming for Ruby developers. In the 6 months since my last ebook income report I've managed to double my revenue. This is despite taking a vacation, reducing marketing efforts to effectively zero, and working on a new ebook. This is mostly thanks to partnerships and new marketing mediums, such as publishing ...
Read more

Screencast: Ruby's IO Buffering And You! - September 25, 2012

Where I show you the difference between write() and syswrite(), explain what happens when you set sync = true, and dive into the Rubinius source code to bring it all together. I've been delving into Ruby's IO system lately and finding out lots of neat things. So I decided to share a few. The whole thing is less than 10 ...
Read more

Working With Unix Processes Now In Print! - September 24, 2012

About a year ago I started working on this little writing project. Originally it was an excuse to stay up late at night learning about fun programming techniques I had never used before. I found I kept coming back to the same topic: Unix Processes. To me it's a fascinating topic with so many practical applications. From working on infrastructure ...
Read more

5 Reasons You Should Use ri To Read Ruby Documentation - September 13, 2012

ri is a tool that ships with Ruby. It's a companion to rdoc, allowing you to 'display information about Ruby classes, modules, and methods' from your console. Despite its usefulness it's often overlooked in favour of searching Google. $ ri File $ ri Fil $ ri File.directory? $ ri Socket#accept $ ri ActiveRecord::Base.touch Over the last few months I've started ...
Read more

delayed_paperclip Needs a Maintainer - June 13, 2012

A few years back I released a library called delayed_paperclip. For those that don't know: delayed_paperclip is an 'add-on' for the paperclip gem from thoughtbot, it makes it dead easy to offload post-processing of attachments to your background queue. You're not actually resizing images while your user is waiting for a response are you? I stopped maintaining the library when ...
Read more

More Information About "Working With TCP Sockets" - June 12, 2012

Recently I annoucned that I'm working on a new book. This one's all about socket programming with Ruby. The website has some information about what the book covers. You can subscribe to the email list to stay updated and get a deal when it's launched. Why write this book? There was a time when learning the fundamentals of socket programming ...
Read more

Passing Open Files Between Processes with UNIX Sockets - May 07, 2012

I want to share with you today a neat little technique I learned involving UNIX sockets. In the land of Unix everything is a file. This is faithfully mirrored in Ruby with the IO class. The IO class models any so-called files on a Unix system. This includes stuff like File, TCPSocket, UDPSocket, all of which are subclasses of IO. ...
Read more

4 Months of ebook Sales - April 20, 2012

Four months ago, to the day, I launched an ebook about Unix programming for Ruby developers. Here I'll share how it came to be and some sales numbers. Backstory I've been interested in writing an ebook for a while. The first time I tried I didn't finish because I couldn't stay motivated. This time around I was able to stay ...
Read more

Daemon Processes in Ruby - April 19, 2012

This is a sample chapter from my book Working With Unix Processes. Learning how stuff works under the hood is one of the most important things you can do as a developer. If this article pushes you in that direction then I encourage you to learn more about the book. Daemon processes are processes that run in the background, rather ...
Read more

Introduction to IPC in Ruby - April 19, 2012

This is a sample chapter from my book Working With Unix Processes. Learning how stuff works under the hood is one of the most important things you can do as a developer. If this article pushes you in that direction then I encourage you to learn more about the book. Up until now we've looked at related processes that share ...
Read more

How to Give a Good Tech Talk - April 12, 2012

So I'm giving a talk next week. My first. It's an internal talk at Shopify, and I want it to be good. But I have no idea what I'm doing, I've never done this before. So what did I do? I turned to the internet and found a bunch of great resources. While preparing the talk this week I've been ...
Read more

Put Your Inbox in the Upstairs Bathroom - March 22, 2012

My house has two bathrooms. One is upstairs and one is downstairs. In order to understand the story you need to know that the bedroom and main bathroom are upstairs. Downstairs is just a half bath, as they say. I work from home and spend most of my day downstairs. When I have to use the bathroom, I use the ...
Read more