41554 blogs · [ { "id": "01a087e6-27b4-7318-8d23-b030fa14745d", "title": "The CLOSURE companion", "url": "https://steveklabnik.com/writing/the-closure-companion/", "published_at": "2013-09-19T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b030fa8e2f27", "title": "Resque 1.25.0 has been released", "url": "https://steveklabnik.com/writing/resque-1-25-0-has-been-released/", "published_at": "2013-09-16T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b030faae5351", "title": "Just the regularly scheduled apocalypse", "url": "https://steveklabnik.com/writing/just-the-regularly-scheduled-apocalypse/", "published_at": "2013-09-10T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b030fb1efbca", "title": "Emoji licensing", "url": "https://steveklabnik.com/writing/emoji-licensing/", "published_at": "2013-08-06T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b030fba37882", "title": "redis-namespace 1.3.1 security release", "url": "https://steveklabnik.com/writing/redis-namespace-1-3-1--security-release/", "published_at": "2013-08-03T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b030fc471378", "title": "Beware subclassing Ruby core classes", "url": "https://steveklabnik.com/writing/beware-subclassing-ruby-core-classes/", "published_at": "2013-07-24T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b030fccc8554", "title": "Resque 1.25.0.pre has been released", "url": "https://steveklabnik.com/writing/resque-1-25-0-pre-has-been-released/", "published_at": "2013-07-23T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b030fd0a8881", "title": "Removing Turbolinks from Rails 4", "url": "https://steveklabnik.com/writing/removing-turbolinks-from-rails-4/", "published_at": "2013-06-25T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b030fdb31c20", "title": "Twitter ghosts", "url": "https://steveklabnik.com/writing/twitter-ghosts/", "published_at": "2013-06-22T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b030fe1baf4b", "title": "Returning to Free Software, a guide", "url": "https://steveklabnik.com/writing/returning-to-free-software-a-guide/", "published_at": "2013-06-15T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b030fef8d238", "title": "Rust-y Scraps: iterating with a step", "url": "https://steveklabnik.com/writing/rust--y-scraps--iterating-with-a-step/", "published_at": "2013-05-30T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b030ff144f38", "title": "Rails 4.0.0-beta1 to Rails 4.0.0-rc1", "url": "https://steveklabnik.com/writing/rails-4-0-0-beta1-to-rails-4-0-0-rc1/", "published_at": "2013-05-21T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b030ff82a7ac", "title": "Ditching Google Chat with XMPP", "url": "https://steveklabnik.com/writing/ditching-google--chat-with-xmpp/", "published_at": "2013-05-16T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03100030e67", "title": "The profile link relation and you", "url": "https://steveklabnik.com/writing/the-profile-link-relation-and-you/", "published_at": "2013-05-06T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03100ff6132", "title": "Closure", "url": "https://steveklabnik.com/writing/closure/", "published_at": "2013-04-19T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03101a1715c", "title": "Upgrading from Rust 0.5 to 0.6", "url": "https://steveklabnik.com/writing/upgrading-from-rust-0-5-to-0-6/", "published_at": "2013-04-07T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0310215d761", "title": "Deleuze for Developers: will smooth space/open source suffice to save us?", "url": "https://steveklabnik.com/writing/deleuze-for-developers-will-smooth-spaceopen-source-suffice-to-save-us/", "published_at": "2013-03-14T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03102cfed06", "title": "Travis build matrix for Rails", "url": "https://steveklabnik.com/writing/travis-build-matrix-for-rails/", "published_at": "2013-03-10T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0310371c96e", "title": "Announcing security_release_practice", "url": "https://steveklabnik.com/writing/announcing-securityreleasepractice/", "published_at": "2013-03-08T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03103d1fd30", "title": "Going vimgan", "url": "https://steveklabnik.com/writing/going-vimgan/", "published_at": "2013-03-06T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03103d79eb7", "title": "Using puma on Heroku", "url": "https://steveklabnik.com/writing/using-puma-on-heroku/", "published_at": "2013-02-24T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03104ca4695", "title": "I'm writing \"Rails 4 in Action\"!", "url": "https://steveklabnik.com/writing/i-m-writing--rails-4-in-action--/", "published_at": "2013-02-13T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b031055b21f4", "title": "The next iteration of \"Designing Hypermedia APIs\"", "url": "https://steveklabnik.com/writing/the-next-iteration-of-designing-hypermedia-apis/", "published_at": "2013-02-12T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0310561d40c", "title": "Ruby on Rails maintenance policy", "url": "https://steveklabnik.com/writing/ruby-on-rails-maintenance-policy/", "published_at": "2013-02-11T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03106544d37", "title": "Ember.js and accessibility", "url": "https://steveklabnik.com/writing/emberjs-and-accessibility/", "published_at": "2013-02-07T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03106e674a6", "title": "How to not rely on rubygems.org for development", "url": "https://steveklabnik.com/writing/how-to-not-rely-on-rubygemsorg-for-deployment/", "published_at": "2013-01-31T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03107e24247", "title": "Node", "url": "https://steveklabnik.com/writing/node/", "published_at": "2013-01-23T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03108151ece", "title": "_why is a role, not a person", "url": "https://steveklabnik.com/writing/why-is-a-role-not-a-person/", "published_at": "2013-01-16T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03108f0ad38", "title": "Draper 1.0.0 released", "url": "https://steveklabnik.com/writing/draper-1-0-0-released/", "published_at": "2013-01-14T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03109b0f7cb", "title": "Rails has two default stacks", "url": "https://steveklabnik.com/writing/rails-has-two-default-stacks/", "published_at": "2013-01-14T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0310a891680", "title": "2012: year in review", "url": "https://steveklabnik.com/writing/2012-year-in-review/", "published_at": "2012-12-29T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0310a9e5a10", "title": "Most things I do are interconnected", "url": "https://steveklabnik.com/writing/most-things-i-do-are-interconnected/", "published_at": "2012-12-28T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0310aeec0c1", "title": "I invented hypermedia APIs by accident", "url": "https://steveklabnik.com/writing/i-invented-hypermedia-apis-by-accident/", "published_at": "2012-12-21T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0310b70a996", "title": "An early Christmas present for you", "url": "https://steveklabnik.com/writing/an-early-christmas-present-for-you/", "published_at": "2012-12-19T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0310c23aba6", "title": "Announcing request_store", "url": "https://steveklabnik.com/writing/announcing-requeststore/", "published_at": "2012-12-17T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0310c2b3065", "title": "Getting started with chruby", "url": "https://steveklabnik.com/writing/getting-started-with-chruby/", "published_at": "2012-12-13T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0310ca8a31e", "title": "Deleuze for developers: deterritorialization", "url": "https://steveklabnik.com/writing/deleuze-for-developers-deterritorialization/", "published_at": "2012-12-07T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0310d350063", "title": "Deleuze for developers: assemblages", "url": "https://steveklabnik.com/writing/deleuze-for-developers-assemblages/", "published_at": "2012-12-03T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0310dc42196", "title": "Draper 1.0.0.beta2 release", "url": "https://steveklabnik.com/writing/draper-1-0-0-beta2-release/", "published_at": "2012-12-03T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0310e007833", "title": "Draper 1.0.0.beta1 release", "url": "https://steveklabnik.com/writing/draper-1-0-0-beta1-release/", "published_at": "2012-11-30T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0310e637069", "title": "Introducing the rails-api project", "url": "https://steveklabnik.com/writing/introducing-the-rails-api-project/", "published_at": "2012-11-22T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0310f4c722c", "title": "Narratives", "url": "https://steveklabnik.com/writing/narratives/", "published_at": "2012-11-18T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0310f52b1e0", "title": "How to squash commits in a GitHub pull request", "url": "https://steveklabnik.com/writing/how-to-squash-commits-in-a-github-pull-request/", "published_at": "2012-11-08T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0310ffebdb2", "title": "Theory and practice", "url": "https://steveklabnik.com/writing/theory-and-practice/", "published_at": "2012-11-06T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0311055ca29", "title": "I got hit by a car today", "url": "https://steveklabnik.com/writing/i-got-hit-by-a-car-today/", "published_at": "2012-10-25T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03110866bb6", "title": "Living with a terrible taste in music", "url": "https://steveklabnik.com/writing/living-with-a-terrible-taste-in-music/", "published_at": "2012-10-12T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0311133518c", "title": "Run Rails with custom patches", "url": "https://steveklabnik.com/writing/run-rails-with-custom-patches/", "published_at": "2012-10-04T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03111e8d6df", "title": "How do you find the time?", "url": "https://steveklabnik.com/writing/how-do-you-find-the-time/", "published_at": "2012-09-27T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03112b684a1", "title": "Seriously: numbers: use them!", "url": "https://steveklabnik.com/writing/seriously--numbers--use-them-/", "published_at": "2012-09-27T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03113a2dcf8", "title": "Resque: let's do this", "url": "https://steveklabnik.com/writing/resque--let-s-do-this/", "published_at": "2012-09-22T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b031146ea066", "title": "Software and community", "url": "https://steveklabnik.com/writing/software-and-community/", "published_at": "2012-09-18T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b031148a1f50", "title": "Random Ruby Tricks: Class.new", "url": "https://steveklabnik.com/writing/random-ruby-tricks--class-new/", "published_at": "2012-09-09T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03114b6ae3b", "title": "Protocol and language", "url": "https://steveklabnik.com/writing/protocol-and-language/", "published_at": "2012-09-03T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0311583e700", "title": "Random Ruby Tricks: Struct.new", "url": "https://steveklabnik.com/writing/random-ruby-tricks--struct-new/", "published_at": "2012-09-01T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03116057c20", "title": "New blog: Words", "url": "https://steveklabnik.com/writing/new-blog--words/", "published_at": "2012-08-31T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03116c5cc46", "title": "Protological Control: an introduction", "url": "https://steveklabnik.com/writing/protological-control-an-introduction/", "published_at": "2012-08-13T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03116cfc775", "title": "DayZ", "url": "https://steveklabnik.com/writing/dayz/", "published_at": "2012-07-25T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03117c3d0c1", "title": "Sparrow", "url": "https://steveklabnik.com/writing/sparrow/", "published_at": "2012-07-21T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03118be5307", "title": "Why I don't like factory_girl", "url": "https://steveklabnik.com/writing/why-i-don-t-like-factory_girl/", "published_at": "2012-07-14T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b031194ec6ab", "title": "How can I contribute to Ruby on Rails?", "url": "https://steveklabnik.com/writing/how-can-i-contribute-to-ruby-on-rails-/", "published_at": "2012-07-05T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0311a2ea6b8", "title": "Introducing issue2pr", "url": "https://steveklabnik.com/writing/introducing-issue2pr/", "published_at": "2012-06-29T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0311a9b2eff", "title": "Show solidarity to all who resist", "url": "https://steveklabnik.com/writing/show-solidarity-to-all-who-resist/", "published_at": "2012-05-31T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0311b3aef25", "title": "Finale", "url": "https://steveklabnik.com/writing/finale/", "published_at": "2012-05-30T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0311c388ae4", "title": "Shoes 4 work is starting: get involved!", "url": "https://steveklabnik.com/writing/shoes-4-work-is-starting--get-involved/", "published_at": "2012-05-25T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0311cd8fd39", "title": "Mixins: a refactoring anti-pattern", "url": "https://steveklabnik.com/writing/mixins--a-refactoring-anti-pattern/", "published_at": "2012-05-07T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0311ce86ec8", "title": "On the eve of #m1gs", "url": "https://steveklabnik.com/writing/on-the-eve-of--m1gs/", "published_at": "2012-04-30T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0311d1ed9f2", "title": "Cards for dad - follow-up", "url": "https://steveklabnik.com/writing/cards-for-dad--follow-up/", "published_at": "2012-04-22T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0311dbb5e3a", "title": "Building StoreEngine", "url": "https://steveklabnik.com/writing/building-storeengine/", "published_at": "2012-04-05T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0311df23b1a", "title": "About antisocialne.ws", "url": "https://steveklabnik.com/writing/about-antisocialne-ws/", "published_at": "2012-04-03T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0311e19ce55", "title": "Anti-capitalism 101", "url": "https://steveklabnik.com/writing/anti-capitalism-101/", "published_at": "2012-03-31T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0311ed54c2f", "title": "Birthday cards for Dad", "url": "https://steveklabnik.com/writing/birthday-cards-for-dad/", "published_at": "2012-03-26T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0311f465de0", "title": "Transmuting Philosophy into Machinery", "url": "https://steveklabnik.com/writing/transmuting-philosophy-into-machinery/", "published_at": "2012-03-08T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0311f500c8d", "title": "Hypermedia API reading list", "url": "https://steveklabnik.com/writing/hypermedia-api-reading-list/", "published_at": "2012-02-27T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0312032dd4d", "title": "REST is over", "url": "https://steveklabnik.com/writing/rest-is-over/", "published_at": "2012-02-23T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0312051756a", "title": "Two pomodoros", "url": "https://steveklabnik.com/writing/two-pomodoros/", "published_at": "2012-02-22T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b031211b6532", "title": "An API ontology", "url": "https://steveklabnik.com/writing/an-api-ontology/", "published_at": "2012-02-13T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b031211c64ee", "title": "Introducing metadown", "url": "https://steveklabnik.com/writing/introducing-metadown/", "published_at": "2012-01-23T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b031211c88b2", "title": "Moving from Sinatra to Rails", "url": "https://steveklabnik.com/writing/moving-from-sinatra-to-rails/", "published_at": "2012-01-17T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03121ce4232", "title": "Implementing HATEOS with presenters", "url": "https://steveklabnik.com/writing/implementing-hateoas-with-presenters/", "published_at": "2012-01-06T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03121d1d079", "title": "ActiveRecord considered harmful", "url": "https://steveklabnik.com/writing/active-record-considered-harmful/", "published_at": "2011-12-30T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b031225881e2", "title": "Redcarpet is awesome", "url": "https://steveklabnik.com/writing/redcarpet-is-awesome/", "published_at": "2011-12-21T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b031230b09a5", "title": "Write better cukes with the rel attribute", "url": "https://steveklabnik.com/writing/write-better-cukes-with-the-rel-attribute/", "published_at": "2011-12-20T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03123cd3bfa", "title": "Marx, anarchism, and web standards", "url": "https://steveklabnik.com/writing/marx-anarchism-and-web-standards/", "published_at": "2011-12-15T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b031245cb289", "title": "Fast Rails tests with CanCan", "url": "https://steveklabnik.com/writing/fast-rails-tests-with-cancan/", "published_at": "2011-12-12T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b031248eb89c", "title": "Devise: ActionController::RoutingError (No Route Matches [GET] /users/sign_out)", "url": "https://steveklabnik.com/writing/devise-actioncontroller-routingerror-no-route-matches-get-slash-users-slash-sign-out/", "published_at": "2011-12-11T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b031258a0ea1", "title": "Book review: New Programmer's Survival Manual", "url": "https://steveklabnik.com/writing/book-review-new-programmers-survival-manual/", "published_at": "2011-11-28T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0312672686e", "title": "Burnout", "url": "https://steveklabnik.com/writing/burnout/", "published_at": "2011-11-17T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03126b0fb2b", "title": "Your startup is not a platform", "url": "https://steveklabnik.com/writing/your-startup-is-not-a-platform/", "published_at": "2011-10-25T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b031279efd7f", "title": "For science: I'm killing my cell phone", "url": "https://steveklabnik.com/writing/for-science-im-killing-my-cell-phone/", "published_at": "2011-10-19T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03127cb9b4e", "title": "Rubinius is awesome", "url": "https://steveklabnik.com/writing/rubinius-is-awesome/", "published_at": "2011-10-04T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03128198320", "title": "GitHub is anarchy for programmers", "url": "https://steveklabnik.com/writing/github-is-anarchy-for-programmers/", "published_at": "2011-10-01T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03128ebc757", "title": "Real, modern Ruby development", "url": "https://steveklabnik.com/writing/real-modern-ruby-development/", "published_at": "2011-09-28T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b03129b8ae04", "title": "I'm deleting my Facebook tonight", "url": "https://steveklabnik.com/writing/im-deleting-my-facebook-tonight/", "published_at": "2011-09-26T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0312a5804e2", "title": "More rstat.us refactoring", "url": "https://steveklabnik.com/writing/more-rstat-dot-us-refactoring/", "published_at": "2011-09-23T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0312aa6b416", "title": "Extracting domain models: a practical example", "url": "https://steveklabnik.com/writing/extracting-domain-models-a-practical-example/", "published_at": "2011-09-22T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0312b79a20b", "title": "Better Ruby Presenters", "url": "https://steveklabnik.com/writing/better-ruby-presenters/", "published_at": "2011-09-09T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0312c00c788", "title": "The secret to Rails OO design", "url": "https://steveklabnik.com/writing/the-secret-to-rails-oo-design/", "published_at": "2011-09-06T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0312c0fe716", "title": "The self improvement pomodoro", "url": "https://steveklabnik.com/writing/the-self-improvement-pomodoro/", "published_at": "2011-09-04T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0312c203663", "title": "I'm making it dead simple to contribute to Ruby's documentation", "url": "https://steveklabnik.com/writing/im-making-it-dead-simple-to-contribute-to-ruby-s-documentation/", "published_at": "2011-08-22T00:00:00+00:00" }, { "id": "01a087e6-27b4-7318-8d23-b0312ccad86e", "title": "Matz is nice so we are nice", "url": "https://steveklabnik.com/writing/matz-is-nice-so-we-are-nice/", "published_at": "2011-08-19T00:00:00+00:00" } ] posts Claim your blog
Back to Steve Klabnik
Blog · corpus.blog/blogs/steveklabnik.com/posts

Steve Klabnik

steveklabnik.com

2013

23 Jan 2013

2012

25 Jul 2012

2011