December 10, 2012 georgebrock vim javascript Vimulator Demonstrating Vim Have you ever noticed that Vim demonstrations can sometimes feel a lot like watching a magic show? It’s very impressive, but if you want to work out how it was done you’re going to have to do some reading when yo...
November 29, 2012 cpytel thoughtbot Business Opening an office in Colorado We’re pleased to announce that we’re opening an office in Colorado. We’ll do the same work we do in Boston, San Francisco, and Stockholm: make web (Ruby on Rails) and mobile (iOS) apps for our clients. We’ll al...
November 28, 2012 georgebrock stockholm sweden drinkup Drinkup in Stockholm Chad Pytel (our CEO) is visiting thoughtbot Stockholm next week, which we thought would be an excellent excuse to host another drinkup. Come and enjoy a free beer on us, and meet Chad, the thoughtbot Stockholm...
November 27, 2012 thegrantovich rails serialization object-oriented programming Better serialization, less as_json Suppose you have the following in your Rails app: # app/models/user.rb class User < ActiveRecord::Base has_secure_password has_many :posts end # app/models/post.rb class ...
when the GPU is used for compositing and rendering graphics, such as the case for OpenGL and the Core Animation/UIKit implementations built on top of it. Until recently, hardware acceleration was a major advantage that iOS held over Android; most animations in the latter felt noticeab...
November 21, 2012 Learn More clients open source software as a service community Comments (View) Giving thanks Happy Thanksgiving! Here’s what thoughtbot is thankful for this year. Our clients and customers Thank you to our clients: America’s Test Kitchen, Awesome Foundation, AxisCamp...
Ben Orenstein is joined by Tammer Saleh and Randall Thomas, the founders of Thunderbolt Labs. In this episode, recorded at RubyConf 2012, they discuss their philosophy of running and building the company, how they differ from other consulting companies, and how they do much more than ...
November 14, 2012 Learn More ruby bundler Comments (View) A Healthy Bundle If you’re writing Rails applications today, then you’re probably enjoying Bundler when adding dependencies to your Rails applications. Bundler lets you declare your application’s dependencies clearly and concis...
Ben Orenstein is joined by Jim Gay, author of Clean Ruby, and Joe Ferris, CTO of thoughtbot, in the episode recorded at RubyConf 2012. Ben, Joe, and Jim discuss Data, Context and Interaction (DCI), what it is, whether it is at odds with Object-Oriented Programming, how it can be appli...
November 9, 2012 Tagged: programming Comments (View) Code that says why it does A new developer joins a project, and asks in Campfire: “what is the purpose of the can_refer_other_users flag?” The flag in question is a boolean column on User. Rails automatically created a query method ...
source 'https://rubygems.org' ruby '1.9.3' gem 'bootstrap-sass', '2.1.0.0' gem 'clearance', '1.0.0.rc1' gem 'delayed_job_active_record', '0.3.2' gem 'fog', '1.5.0' gem 'formtastic-bootstrap', '2.0.0' gem 'haml', '3.2.0.beta.3' gem 'high_voltage', '1.2.0' gem 'jquery-rails', '2.1.1' ge...
November 3, 2012 Tagged: ios xcode llvm Comments (View) Xcode Build Settings Part 1: Preprocessing for fun and profit! That screen. You know the one. The table of text. The one with scary sounding terms such as Mach-O Type and Rez Search Paths . The one you’re probably avoiding right ...
Ben Orenstein is joined by Aaron Patterson, Ruby Core team member, Rails Core team member, and a Señior Software Engineer at AT&T Interactive. Aaron and Ben discuss the upcoming features and excitement for Ruby 2.0 and some things Aaron would like to see in Ruby in the future that did...
Tools like WebMock are great, but when testing JavaScript, it’s a seperate browser process that loads the page, and not your Ruby test process. That means that the request to your build server isn’t going through Net::HTTP ; the requests are coming from Firefox or capybara-webkit , an...
source 'https://rubygems.org' ruby '1.9.3' gem 'bootstrap-sass', '2.1.0.0' gem 'clearance', '1.0.0.rc1' gem 'delayed_job_active_record', '0.3.2' gem 'fog', '1.5.0' gem 'formtastic-bootstrap', '2.0.0' gem 'haml', '3.2.0.beta.3' gem 'high_voltage', '1.2.0' gem 'jquery-rails', '2.1.1' ge...
describe FactoryGirl::EvaluatorClassDefiner do let(:simple_attribute) { stub("simple attribute", name: :simple, to_proc: -> { 1 }) } let(:relative_attribute) { stub("relative attribute", name: :relative, to_proc: -> { simple + 1 }) } let(:attribute_that_raises_a_second_time) { stub( "...
October 30, 2012 Tagged: neat bourbon design grids sass Comments (View) Neat Hits 1.0, Gets More Responsive and CLI-friendly When we released Neat—a semantic grid framework built on top of Sass and Bourbon—earlier this fall, it was welcomed with great enthusiasm in the Sass community....
October 29, 2012 Tagged: this-week-in-open-source high_voltage capybara_webkit Rails 4 qt 4.8 fugitive.vim dotfiles bourbon suspenders factory_girl bourne paul_revere appraisal Comments (View) This Week in Open Source High Voltage High Voltage is a Rails engine for static pages. You c...
May 25, 2011 Tagged: android scala mirah appcelerator phonegap java Comments (View) Scala: A Better Java for Android Stop writing Java for your Android apps! There are a slew of ways to build Android apps. The original Java way reigns supreme but some alternatives are C++ , Mirah , Py...
Instead of taking place in our office over two days, the online version takes place over the course of a month. You pick a project of your own. This can be anything from your personal site, to a side project, to something you’re working on at your job. Each week, we release a pre-reco...
October 24, 2012 Tagged: ruby on rails rails generators clean codebase Comments (View) Reduce application clutter, disable unwanted Rails generators Rails has some handy generators to help streamline the creation of models, views, controllers, and a bunch of other goodies. ~/dev/kitte...
October 23, 2012 Tagged: Typography spaces design Comments (View) Typography PSA: Stop putting two spaces after a period I have lots of typographic pet peeves. Lots. But the biggest one is when people put two spaces after a period. It leaves me looking like this: Every well-designed t...
Ben Orenstein is joined by Kyle Fiedler, a designer at thoughtbot, and one of the creators of Bourbon Neat. Ben and Kyle discuss responsive design, what it is, and how to implement it. They also discuss Bourbon (a library of Sass mixins) and Neat (a fluid grid framework based on Bourb...
October 18, 2012 Tagged: git ios xcode Comments (View) Xcode and git: bridging the gap Apple integrated git into Xcode 4 in 2011 much to the relief of iOS developers everywhere. Unfortunately when collaborating on projects with multiple developers, Xcode and git can still seem miles a...
October 17, 2012 Tagged: Integration testing RSpec Capybara Comments (View) End-to-end testing with RSpec integration tests and Capybara Stability can become an issue as web applications evolve and grow — integration tests provide a great way to perform end-to-end tests that validate ...
I recently upgraded Postgres on my development machine from 9.1.4 to 9.2.1. Things didn’t go smoothly, however, because I forgot to migrate all my data. Since I seem to forget how to do this every time I upgrade between minor versions of Postgres (and I’m sure other developers do as w...
October 15, 2012 Tagged: hiring thoughtbot Comments (View) Boston Office Manager About two years ago, I joined thoughtbot as our Office Assistant and now, Office Manager. I’ve decided to relocate to our new San Francisco location, so we are looking for a new Office Manager for our Bos...
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { // Set property _tapped = YES; // Force drawRect to be called (NEVER, EVER call drawRect directly) [self setNeedsDisplay]; // Superclass implementation [super touchesBegan:touches withEvent:event]; } -(void)touchesEnded...
October 11, 2012 Comments (View) Object-Oriented file importing and parsing The following is an example of file importing and parsing in Ruby using object-oriented techniques such as duck typing and dependency injection . Inject a CSVParser dependency into a the Importer # app/control...
October 10, 2012 Tagged: rails activemodel validations Comments (View) ActiveModel modules for all your non-persisted form data Submitting form data is a common feature of web applications — allowing users to submit their information and giving them feedback whether the information is...