Steve Klabnik's Blog
Home
Blog
This is my blog.
2024
Against Names
How Does BlueSky Work?
Using the Oxide Console
2023
Memory Safety is a Red Herring
Updating Buck
Using Crates.io with Buck
Using buck to build Rust projects
Rust's Golden Rule
You're probably learning a technology in its seventh season, not its pilot
Too many words about Rust's function syntax
2022
Ten Years of Ru...ewriting my website
2020
Are out parameters idiomatic in Rust?
The CXX Debate
Today is my first day at Oxide Computer Company
The next iteration of my blogs
How often does Rust change?
"C is how the computer works" is a dangerous mindset for C programmers
A sad day for Rust
2019
"C is not how the computer works" can lead to inefficient code
Porting steveklabnik.com to Workers Sites and Zola
The culture war at the heart of open source
I'm joining Cloudflare
What comes after open source
Rust has finally outgrown me
Learning Ada
What's next for SemVer
thank u, next
2018
Thoughts on Rust in 2019
Six years with Rust
Why is Clojure so stable?
Borrow checking, escape analysis, and the generational hypothesis
Should you learn C to "learn how the computer works"?
You can't "turn off the borrow checker" in Rust
Is WebAssembly the return of Java Applets & Flash?
WebAssembly is more than just the web
"The Expressive C++17 Coding Challenge (in Rust)" revisited
0b100000
Looking back at Rust in 2018
2017
Five years with Rust
User-Agent: moz://a
"The Expressive C++17 Coding Challenge" in Rust
Want to join the Rust docs team?
An overview of macros in Rust
Announcing Rust Contributors
2016
Fire Mario not fire flowers
Rust is more than safety
Four years with Rust
What's new with "The Rust Programming Language"
Structure literals vs. constructors in Rust
A eulogy for my 20s
2015
Docember
Rescuing Resque (again)
"The Rust Programming Language" will be published by No Starch Press
Community Versions for Rust
Ember Data: ‘DS’ is not defined
The language strangeness budget
Ouroboros
Hope
An introduction to economics under capitalism
A new introduction to Rust
2014
Update GitHub Pages with Travis CI
I'm going writeonly on Twitter for a while
Rust's documentation is about to drastically improve
SF
Hypermedia FizzBuzz
How to be an open source gardener
Is npm worth 26MM?
Announcing Emoji 1.0
A 30 minute introduction to Rust
2013
2013: year in review
Rust is surprisingly expressive
How Dogecoin changed my perspective on cryptocurrency
git, history modification, and libuv
Why I'm partnering with Balanced
On leftist infighting
Abstract vs concrete
Pointers in Rust, a guide
New Beginnings
Keep Saturdays sacred
Thankfulness
The CLOSURE companion
Resque 1.25.0 has been released
Just the regularly scheduled apocalypse
Emoji licensing
redis-namespace 1.3.1 security release
Beware subclassing Ruby core classes
Resque 1.25.0.pre has been released
Removing Turbolinks from Rails 4
Twitter ghosts
Returning to Free Software, a guide
Rust-y Scraps: iterating with a step
Rails 4.0.0-beta1 to Rails 4.0.0-rc1
Ditching Google Chat with XMPP
The profile link relation and you
Closure
Upgrading from Rust 0.5 to 0.6
Deleuze for Developers: will smooth space/open source suffice to save us?
Travis build matrix for Rails
Announcing security_release_practice
Going vimgan
Using puma on Heroku
I'm writing "Rails 4 in Action"!
The next iteration of "Designing Hypermedia APIs"
Ruby on Rails maintenance policy
Ember.js and accessibility
How to not rely on rubygems.org for development
Node
_why is a role, not a person
Draper 1.0.0 released
Rails has two default stacks
2012
2012: year in review
Most things I do are interconnected
I invented hypermedia APIs by accident
An early Christmas present for you
Announcing request_store
Getting started with chruby
Deleuze for developers: deterritorialization
Deleuze for developers: assemblages
Draper 1.0.0.beta2 release
Draper 1.0.0.beta1 release
Introducing the rails-api project
Narratives
How to squash commits in a GitHub pull request
Theory and practice
I got hit by a car today
Living with a terrible taste in music
Run Rails with custom patches
How do you find the time?
Seriously: numbers: use them!
Resque: let's do this
Software and community
Random Ruby Tricks: Class.new
Protocol and language
Random Ruby Tricks: Struct.new
New blog: Words
Protological Control: an introduction
DayZ
Sparrow
Why I don't like factory_girl
How can I contribute to Ruby on Rails?
Introducing issue2pr
Show solidarity to all who resist
Finale
Shoes 4 work is starting: get involved!
Mixins: a refactoring anti-pattern
On the eve of #m1gs
Cards for dad - follow-up
Building StoreEngine
About antisocialne.ws
Anti-capitalism 101
Birthday cards for Dad
Transmuting Philosophy into Machinery
Hypermedia API reading list
REST is over
An API ontology
Introducing metadown
Moving from Sinatra to Rails
Implementing HATEOS with presenters
2011
ActiveRecord considered harmful
Devise: ActionController::RoutingError (No Route Matches [GET] /users/sign_out)
Redcarpet is awesome
Write better cukes with the rel attribute
Marx, anarchism, and web standards
Fast Rails tests with CanCan
Book review: New Programmer's Survival Manual
Burnout
Your startup is not a platform
For science: I'm killing my cell phone
Matz is nice so we are nice
Rubinius is awesome
GitHub is anarchy for programmers
Real, modern Ruby development
I'm deleting my Facebook tonight
More rstat.us refactoring
Extracting domain models: a practical example
We forget that open source is made of people
Better Ruby Presenters
The secret to Rails OO design
The self improvement pomodoro
I'm making it dead simple to contribute to Ruby's documentation
Some people understand REST and HTTP
Twitter is too important to be owned by Twitter
Nobody understands REST or HTTP
Single text, many masters
Contributing to Ruby's documentation
The next iteration of my blog
The first week of rstat.us: users, press, and scaling, oh my!
Announcing rstat.us
Did you hear? I'm Ruby Mendicant University's first visiting teacher
I'm quitting Hacker News
Living in the cloud
A few notes on Foucault
Goals for 2011
2010
Hackety Hack v1.0
The hardest decision I've ever made
Trolling is a art
80% of success is showing up
Trouble with Diaspora
A word about _why, Whyday, and Hackety Hack
A blip in time
A case study in being excellent: Divvy
Productivity Waves
A Declaration of the Independence of Cyberspace
A break with the past
Book review: Rework
Create a more compelling experience for your users through game mechanics
Writing a su feature with Authlogic
Reddit drama: an interesting look at community values
2009
The Hackety Manifesto
The Little Coder's Predicament
About Crows