Building a Binary Tree with Enumerable
I believe that the Enumerable module is the most important thing to understand if you want to go from a beginner to intermediate Rubyist. It requires you to understand two fundamental parts of Ruby:...
View ArticleGo 1.4 runtime visualized
Go 1.4 is out! I won’t reiterate the changes, read the release notes for that. But it’s one thing to read that things have improved – what if I could show you the improvement?These snapshots are from...
View ArticleThe expvar package - Metrics for Go
Last week I discovered a mysterious package in the Go standard library, expvar. A google search turned up little content on it. Undiscovered APIs for exploring? How exciting! I immediately dove in and...
View ArticleCGI: Ruby's Bare Metal
How simple can you make a web request?Happy 2015 everyone! For 2015, I wanted to spend some time documenting and automating my business as much as possible. Ezra Z’s and James Golick’s recent passing...
View ArticleInspeqtor 0.8.0 released
Inspeqtor 0.8.0 is now available for your monitoring needs. If you are using Monit, bluepill, god, eye or any other process monitoring system, I hope you’ll check out Inspeqtor. It’s different because...
View ArticleIndie Developers in Ruby, 2015 Ed.
image sourceRuby is great for programmers: you can download the source for so many different libraries to solve many different problems. But there’s a dark side: there’s no incentive for the library...
View ArticleSidekiq Pro 2.0!
I’m happy to announce that Sidekiq Pro 2.0 is ready for general use. There’s two major features and some refactoring you need to know about.BatchesSidekiq allows you to fire off a set of jobs to...
View ArticleTimeout: Ruby's Most Dangerous API
In the last 3 months, I’ve worked with a half dozen Sidekiq users plagued with mysterious stability problems. All were caused by the same thing: Ruby’s terrible Timeout module. I strongly urge everyone...
View ArticleSidekiq Pro Gem Server Outage
On Friday 6:30 PM PST, the Sidekiq Pro gem server became unavailable due to a Linode data center outage in Fremont, CA. Connectivity was restored after 15 hours at Saturday 9:30 AM PST. I’m terribly...
View ArticleInspeqtor Pro now Open Source
Last year I created Inspeqtor as a fresh take on process monitoring, to improve upon monit and similar tools. Part of that process was creating a commercial version, Inspeqtor Pro, to provide long-term...
View ArticleSidekiq and Upstart
The best and most reliable way to manage multiple Sidekiq processes is with Upstart. Many developers know little to nothing about Upstart so I wanted to write up how to integrate Sidekiq with Upstart....
View ArticleSidekiq Enterprise
After many months of development and preparation, I’m proud to announce the newest member of the Sidekiq family: Sidekiq Enterprise. Sidekiq Enteprise is targeted at large companies and businesses...
View ArticleStoring Data with Redis
Would you stuff all of your data into one database table? That’s crazy, Mike, don’t be silly! What if I told you most people do just that with Redis?Redis users often have several distinct datasets in...
View ArticleOptimizing Sidekiq
Sidekiq has a reputation for being much faster than its competition but there’s always room for improvement. I recently rewrote its internals and made it six times faster. Here’s how!It’s been quite a...
View ArticleShould you use Celluloid?
I’ve used Celluloid from day one. More importantly I’ve evanglized Celluloid and advised Rubyists to use it. So it came as a shock to several people that I recently overhauled Sidekiq to remove...
View ArticleAdvanced Data Structures in Ruby
Ruby provides several complex data structures out of the box; hash, array, set, and queue are all I need 99% of the time. However knowing about more advanced data structures means you know when to...
View ArticleSidekiq 4.0!
I’m happy to announce that Sidekiq 4.0 is now available!I’m happy to announce that Sidekiq Pro 3.0 is now available!!I’m happy to announce that Sidekiq Enterprise 1.0 is now available!!!SidekiqSidekiq...
View ArticleHow to Charge for your Open Source
Every month or so we hear of another high profile open source developer who flips the table and rages about open source because of burnout, most recently Ian Cordasco and Ryan Bigg. Does this sound...
View ArticleHow to Test Multithreaded Code
Multithreaded code is hard to write and even harder to test. Since much of my work is dedicated to making Ruby threading easier for my users and customers, I thought some might be interested in the...
View ArticleContributed Systems: the 2015 wrapup
In July 2014 I started my company Contributed Systems and work on Sidekiq full-time. Let’s review how 2015 went. The end of January will be Sidekiq’s 4th birthday so here’s some birthday numbers: table...
View Article