Episode #407 – October 1st, 2013

Posted 7 months back at Ruby5

Aimee and Gregg do Ruby together for the first time, covering Ruby 2.1, pairing with tmux, closures, gem config, executable web apps, a simple git branching model, and CI with sphero.

Listen to this episode on Ruby5

This episode is sponsored by Top Ruby Jobs
If you're looking for a top Ruby job or for top Ruby talent, then you should check out Top Ruby Jobs. Top Ruby Jobs is a website dedicated to the best jobs available in the Ruby community.

Ruby 2.1 Walkthrough
With the release of the first Ruby 2.1 preview last week, Konstantin Haase wrote up a great overview of what’s new.

Remote pairing and browser sharing with tmux
We do a lot of pair-programming here at Envy Labs, and recently one of our developers, Matthew Closson, wrote up a blog post about remote pairing and browser sharing with tmux.

Closures in Ruby: Blocks, Procs and Lambdas
This weekend I stumbled upon a great blog post by Ahsan Sharafuddin which has a thorough guide to Closures in Ruby: covering Blocks, Procs, and Lambdas.

Config and Generators in Gems
If you’ve ever been interested in writing your own gem, Lindsey Bieda wrote up a great introduction to writing configuration generators.

Creating executable web applications with ruby
Do you ever wish you could run a command line which runs a web application? Alexander Shvets shows you how to get it setup.

A simple git branching model
If you’ve ever collaborated on a project using git, you have probably run into some not-so-great workflows. Fortunately, Juan Batiz-Benet has written up a simple git branching model that’s pretty easy to follow.

Check your build status by Sphero
You may have heard of Sphero. It’s that small spherical ball that you can control with your iPhone, and play games with it. Alexey Vasiliev wrote a script to show you how to check you build status and have your Sphero react accordingly.

Episode #406 – September 27th, 2013

Posted 7 months back at Ruby5

Well, better late than never! The podcast was recorded, but the lack of bandwidth at a campsite delayed the publication. Still, we have interesting news on a/b testing tools, encryption with Snowden, poking fun at Canada, and other news in this RubyLoco-powered Ruby5.

Listen to this episode on Ruby5

This episode is sponsored by New Relic
You should be using New Relic by now, but don't forget to regularly check out their blog! We recently saw their infographic where they take stats from hundreds of thousands of iphone app users and torture the numbers to confess to some pretty interesting stuff. You should check it out!

Lambdas in Case
Bozhidar Batsov wrote a blog post with some examples of using procs and lambdas as the conditions for when branches. Its an option for expressive code that you might nt be using, so you should check it out!

Rocker-Box
Rocker-Box is a gem by Nick Esposito that lets you a/b test static pages.

Snowden
Snowden is a gem published by cambridge healthcare for managing encrypted search indices. It can do fuzzy search on the encrypted indices and supports pluggable backends. they got the idea from the published paper “Fuzzy Keyword Search over Encrypted Data in Cloud Computing”

Canada Gem
Don't blame us, we just report the news. If you know anyone from Canada, poke some fun at them with this little doozy.

Our Community's Future
A little bit of a soapbox rant on where to look for new ideas to continue to breathe new life into our community. Interesting, but the Clojure community should be on the short list he mentions!

Retrospective: High Performance Browser Networking

Posted 7 months back at igvita.com

This past Friday the first print copies of High Performance Browser Networking landed on my desk. After carrying it in my head for the past year, it was an interesting feeling to finally hold something tangible: a sense of relief, excitement, and "man, I hope they like it."

With the book in hand, I could finally put a mental checkmark on it, which also prompted a retrospective into the entire process from start to finish. A self-professed quantified self geek that I am, it should not surprise you to know that I've kept a detailed log along the way. Not knowing what I was getting myself into when I first started, it's interesting to now look back at the lessons learned and patterns that emerged. Let's take a look...

Writing HPBN by the numbers

Chapter Writing (hours) Research + Review (hours) Words
41250690,056
Preface21900
Primer on Latency and Bandwidth752,930
Building Blocks of TCP25155,533
Building Blocks of UDP1282,759
Transport Layer Security (TLS)27387,362
Introduction to Wireless Networks10162,763
WiFi7212,590
Mobile Networks6414311,133
Optimizing for Mobile Networks9214,015
Brief History of HTTP762,475
Primer on Web Performance37164,943
HTTP 1.X28155,156
HTTP 2.X37466,464
Optimizing Application Delivery23154,776
Primer on Browser Networking531,618
XMLHttpRequest16145,109
Server-Sent Events (SSE)6111,681
WebSocket38255,583
WebRTC528712,266

In total, I've spent 412 hours staring into my text editor. This number is exact and based on RescueTime logging the foreground window. The research and review time was a harder one to track, since that involved online and offline time (e.g., reading books, research papers, etc.), but I'm confident of the data: writing time resolution is down to minutes, research and review are down to hours, with a total of 918 hours and 90,056 words.

Alas, writing, research, and review are not the end of it. RescueTime tells me that I've spent 46 hours iterating on feedback from early release iterations - discussions, followup, and so on. I've also logged 29 hours in OmniGraffle, creating and adjusting all the diagrams. Finally, I've spent 9 hours fiddling with the tooling - waiting for builds, configuration, debugging errors, etc. All said and done the grand total adds up to just north of 1,000 hours.

Taking it a day at a time

The whole process from getting the nod from the O'Reilly team, to handing off the content to the production crew took 381 days. In that time, my Git repository tells me that I've had 239 days with at least one commit, plus another 32 days where I didn't touch the repo but still spent time working on the book: 271 active days.

I wouldn't call myself a morning person, but writing in the evenings after a full day at work didn't yield the results I wanted. Instead, as the Git commit log shows, I've tried to carve out a dedicated chunk of time each morning. Typically, that meant 7-9AM on weekdays, and 8-noon on weekends (hence the commit spikes between 12-2PM). The drop in number of commits on Tuesday/Thursday is interesting as that was not intentional - looking back it seems to coincide with higher amount of time spent on research and review.

  • 1.72 hours (writing) / day
  • 1.59 pages / day or 0.92 pages / hour
  • 377 words / day or 219 words / hour

Reminding myself that a "shitty first draft" should be the initial goal was a continuous struggle - 200 words/hour is not a fast clip. Then again, seeing another page or two appear at the end of the PDF was a great reward and all I was aiming for each day. My best day ever was 11 pages — a full weeks work in one day! Of course, then I had to rewrite most of it. Conversely, there were plenty of days where all I managed was a paragraph or two.

Lessons learned along the way

Collecting above data along the way proved to be a valuable feedback mechanism - e.g. focusing on working in the mornings, setting realistic expectations, and tracking progress. Case in point, my early delivery estimates were off by months and by the end I could project down to a week. Also, a few other interesting lessons learned:

  • Consistency is key - things get in the way (e.g. work, travel, etc.), but showing up is key.
  • Getting early feedback is invaluable - O'Reilly's Atlas toolchain worked really well.
  • Incremental milestones and deadlines are a necessary forcing function.
  • Nothing helps clarify your thinking and expose the flaws and inconsistencies than attempting to put it down on paper in simple terms.

Last point in particular is one of the reasons I keep this blog - writing helps me understand the topic in a way that reading and talking about it never does. Working on HPBN forced me to clarify a lot of important details I've overlooked before; relearn topics I thought I understood but really didn't; learn a lot of new material.

With all that said, ultimately you'll have to be the judge on whether the book actually delivers - hope you learn a useful thing or two as well! Speaking of which, do check it out, and if you do, please leave a review!

New thoughtbot.com

Posted 7 months back at GIANT ROBOTS SMASHING INTO OTHER GIANT ROBOTS - Home

We’re pleased to announce the redesign of thoughtbot.com!

People generally know us as a Ruby on Rails consultancy. While true, we are a well-balanced team of designers, web (Rails) developers, and mobile (iOS) developers.

Therefore, we redesigned the site with a focus on aesthetics to better provide future clients an accurate view of our capabilities by:

  • providing a profound visual experience
  • maintaining exceptionally smooth interactions
  • featuring our mobile work

As with the previous version, the primary purpose of our website is to offer an efficient way for prospective clients to hire us. We chose a single-page site to easily afford that action even if the user is reviewing other aspects of the company such as our people or offices.

Like any project, we have ideas for future improvements such as more in-depth case studies. However, we released once we were proud of the core workflow, quality of visual and interaction design, and had tested multiple browsers and devices.

Enjoy the new thoughtbot.com! I hope to hear from you in via the sales or hiring forms.

New thoughtbot.com

Posted 7 months back at GIANT ROBOTS SMASHING INTO OTHER GIANT ROBOTS - Home

We’re pleased to announce the redesign of thoughtbot.com!

People generally know us as a Ruby on Rails consultancy. While true, we are a well-balanced team of designers, web (Rails) developers, and mobile (iOS) developers.

Therefore, we redesigned the site with a focus on aesthetics to better provide future clients an accurate view of our capabilities by:

  • providing a profound visual experience
  • maintaining exceptionally smooth interactions
  • featuring our mobile work

As with the previous version, the primary purpose of our website is to offer an efficient way for prospective clients to hire us. We chose a single-page site to easily afford that action even if the user is reviewing other aspects of the company such as our people or offices.

Like any project, we have ideas for future improvements such as more in-depth case studies. However, we released once we were proud of the core workflow, quality of visual and interaction design, and had tested multiple browsers and devices.

Enjoy the new thoughtbot.com! I hope to hear from you in via the sales or hiring forms.

Build Phase Podcast Episode 9: Don't Call Me Shirley

Posted 7 months back at GIANT ROBOTS SMASHING INTO OTHER GIANT ROBOTS - Home

Build Phase Podcast Episode 9: Don't Call Me Shirley:

Gordon Fontenot and Mark Adams talk about iOS7 aftermath and Airplane!

Build Phase Podcast Episode 9: Don't Call Me Shirley

Posted 7 months back at GIANT ROBOTS SMASHING INTO OTHER GIANT ROBOTS - Home

Build Phase Podcast Episode 9: Don't Call Me Shirley:

Gordon Fontenot and Mark Adams talk about iOS7 aftermath and Airplane!

High-Performance Ruby Editing with Vim

Posted 7 months back at GIANT ROBOTS SMASHING INTO OTHER GIANT ROBOTS - Home

Announcing our newest screencast series: Navigating Ruby Files with Vim.

This 3-part series was created by vim superstar Drew Neil (author of Practical Vim and creator of vimcasts.org).

With his famously-soothing accent, Drew will teach you ultra-efficient navigation through Ruby files. Rather than typing out long pathnames or searching for method definitions, you’ll learn to jump directly to the code in which you’re interested. You’ll also learn about a powerful set of plugins that let you edit Ruby at a higher level of abstraction. Finally, Drew covers Vim’s powerful use of ctags.

Once you’ve mastered these super powers, you’re likely to find yourself relying on documentation less and less, preferring to go right to the source. Over time, you’ll gain a better understanding of how the gems you use each day are put together.

I’ve been editing Ruby with Vim for six years, and I learned an immense amount from the videos.

If you’re ready to push your Vim accelerator to the floor, check out Navigating Ruby Files with Vim.

High-Performance Ruby Editing with Vim

Posted 7 months back at GIANT ROBOTS SMASHING INTO OTHER GIANT ROBOTS - Home

Announcing our newest screencast series: Navigating Ruby Files with Vim.

This 3-part series was created by vim superstar Drew Neil (author of Practical Vim and creator of vimcasts.org).

With his famously-soothing accent, Drew will teach you ultra-efficient navigation through Ruby files. Rather than typing out long pathnames or searching for method definitions, you’ll learn to jump directly to the code in which you’re interested. You’ll also learn about a powerful set of plugins that let you edit Ruby at a higher level of abstraction. Finally, Drew covers Vim’s powerful use of ctags.

Once you’ve mastered these super powers, you’re likely to find yourself relying on documentation less and less, preferring to go right to the source. Over time, you’ll gain a better understanding of how the gems you use each day are put together.

I’ve been editing Ruby with Vim for six years, and I learned an immense amount from the videos.

If you’re ready to push your Vim accelerator to the floor, check out Navigating Ruby Files with Vim.

thoughtbot at Rocky Mountain Ruby

Posted 7 months back at GIANT ROBOTS SMASHING INTO OTHER GIANT ROBOTS - Home

We’re in Boulder this week!

Our Denver office, along with representatives from San Francisco and Boston, will be at Rocky Mountain Ruby, a Ruby conference taking place at the beautiful Boulder Theater in the heart of the downtown area. Here are the events that some of us will be involved with:

If you see anyone wearing a thoughtbot logo on their shirt, please feel free to say hello. We’d love to talk about Ruby, our Learn offerings, our open source projects, the best local hiking trails, or anything else!

thoughtbot at Rocky Mountain Ruby

Posted 7 months back at GIANT ROBOTS SMASHING INTO OTHER GIANT ROBOTS - Home

We’re in Boulder this week!

Our Denver office, along with representatives from San Francisco and Boston, will be at Rocky Mountain Ruby, a Ruby conference taking place at the beautiful Boulder Theater in the heart of the downtown area. Here are the events that some of us will be involved with:

If you see anyone wearing a thoughtbot logo on their shirt, please feel free to say hello. We’d love to talk about Ruby, our Learn offerings, our open source projects, the best local hiking trails, or anything else!

Build Phase Podcast Episode 8: The Levy Has Broken

Posted 7 months back at GIANT ROBOTS SMASHING INTO OTHER GIANT ROBOTS - Home

Build Phase Podcast Episode 8: The Levy Has Broken:

On this episode Mark and Gordon talk about everything iOS7.

Build Phase Podcast Episode 8: The Levy Has Broken

Posted 7 months back at GIANT ROBOTS SMASHING INTO OTHER GIANT ROBOTS - Home

Build Phase Podcast Episode 8: The Levy Has Broken:

On this episode Mark and Gordon talk about everything iOS7.

Giant Robots Podcast Episode 67: The Data Optimist

Posted 7 months back at GIANT ROBOTS SMASHING INTO OTHER GIANT ROBOTS - Home

Giant Robots Podcast Episode 67: The Data Optimist :

Ben Orenstein and Hilary Mason, Data Scientist in Residence at Accel Partners, talk about Data Science, Bitly and Cheeseburgers.

Giant Robots Podcast Episode 67: The Data Optimist

Posted 7 months back at GIANT ROBOTS SMASHING INTO OTHER GIANT ROBOTS - Home

Giant Robots Podcast Episode 67: The Data Optimist :

Ben Orenstein and Hilary Mason, Data Scientist in Residence at Accel Partners, talk about Data Science, Bitly and Cheeseburgers.