The Curious Engineer

All blogs / Software / engineering practice

The Buckblog

weblog.jamisbuck.org

assorted ramblings by Jamis Buck

Software / engineering practiceAlgorithms / data structuresGraphicsEngineering blogs

’05’10’15’20’25
Posts
406 from 6 Feb 2004 to 23 Dec 2016
Posting
quiet since 2016
Kind
personal blog
Feed
http://feeds.feedburner.com/buckblog

2016 33

  1. Process Roulette
  2. Weekly Programming Challenges -- Recap
  3. Weekly Programming Challenge #16
  4. Weekly Programming Challenge #15
  5. Weekly Programming Challenge #14
  6. Weekly Programming Challenge #13
  7. Weekly Programming Challenge #12
  8. Weekly Programming Challenge #11
  9. Weekly Programming Challenge #10
  10. Weekly Programming Challenge #9
  11. Weekly Programming Challenge #8
  12. Weekly Programming Challenge #7
  13. Weekly Programming Challenge #5
  14. Weekly Programming Challenges
  15. Truth: Generating Truth Tables
  16. Disrupting Your Comfort Zone
  17. Think You’re Failing? Look Around.
  18. The Minimalist Programmer
  19. Tapping ActiveRecord Relations
  20. Medium.com
  21. Introducing the Query Composer
  22. The Poverty of Constraints
  23. Variations on a Theme: "I Becomes We..."
  24. Being a Good Neighbor...
  25. Implementing a Bloom Effect with Swift+Metal
  26. Don't Feed the Hamster the Whole Stalk
  27. The weakly-flowing stream
  28. Living with Your Eyes Open
  29. Software Proverbs
  30. Mazes in Swift
  31. A Pretty-Printer for SQL
  32. Don't Assume It's Difficult until It Is
  33. Game Demonstration: Recover the Widgets

2015 32

  1. Checking In...
  2. Avoiding "Call Super" with Callbacks
  3. Little Things: Introspecting Block Parameters
  4. Integration API vs. Internal API
  5. Upsilon Mazes
  6. Representing a Toroidal Grid
  7. Little Things: Refactoring with Hashes
  8. Fifteen Minutes at a Time
  9. Mazes with Blockwise Geometry
  10. Testing What You Should Have Written
  11. The Dynamic Def
  12. Bulk Inserts in ActiveRecord
  13. Changing the Channel
  14. Generating Word Search Puzzles
  15. Default Scopes are an Anti-Pattern
  16. Little Things: Heredocs
  17. Little Things: Hashes & Procs
  18. Ideas are Cheap
  19. Reducing a Number to Its Sign
  20. Writing a Klondike Puzzle Solver
  21. Writing a Simple Recursive Descent Parser
  22. tar.gz in Ruby
  23. Mazes for Programmers
  24. Experimenting with L-Systems
  25. Playing with Constants, Methods, and Superclasses
  26. Task Tracking for Neurochemical Brains
  27. Mazes for Programmers: Beta!
  28. Lessons from the Kitchen
  29. Hanging Out a Shingle
  30. Getting Back in the Pool
  31. A Better Recursive Division Algorithm
  32. Winding Back Up

2011 18

  1. Winding down...
  2. Sharing the Inheritance Hierarchy
  3. Maze Generation: More weave mazes
  4. Maze Generation: Weave mazes
  5. Weave Mazes: Your Take?
  6. Programming Language Survey Results
  7. Kaleidoscope
  8. Mazes in CoffeeScript
  9. Maze Generation: Algorithm Recap
  10. Maze Generation: Sidewinder algorithm
  11. Maze Generation: Binary Tree algorithm
  12. Maze Generation: Growing Tree algorithm
  13. Maze Generation: Hunt-and-Kill algorithm
  14. Maze Generation: Wilson's algorithm
  15. Maze Generation: Aldous-Broder algorithm
  16. Maze Generation: Recursive Division
  17. Maze Generation: Prim's Algorithm
  18. Maze Generation: Kruskal's Algorithm

2010 13

  1. Maze Generation: Eller's Algorithm
  2. Maze Generation: Recursive Backtracking
  3. Theseus 1.0
  4. Ekawada: Approved for Sale!
  5. Design Forces in Ekawada, Part 5
  6. Ekawada: Submitted!
  7. Design Forces in Ekawada, Part 4
  8. Design Forces in Ekawada, Part 3
  9. Design Forces in Ekawada, Part 2
  10. A look inside Ekawada's design
  11. Still here...
  12. Unobtrusive, yet explicit
  13. There is no magic, there is only awesome (Part 4)

2009 11

  1. There is no magic, there is only awesome (Part 3)
  2. There is no magic, there is only awesome (Part 2)
  3. There is no magic, there is only awesome (Part 1)
  4. New Interview Online
  5. BucketWise v1.1.0
  6. BucketWise v1.0.0
  7. BucketWise: Preview #2
  8. Buckets: Preview
  9. Net::SSH, Capistrano, and Saying Goodbye
  10. Net::SSH and friends, update
  11. The future of FuzzyFinder-TextMate

2008 33

  1. SQlite3-Ruby Windows Builds
  2. "Recovering from Enterprise" video available
  3. Vim Follow-up
  4. LEGOs, Play-Doh, and Programming
  5. Coming home to Vim
  6. Capistrano 2.5.0
  7. SQLite3-Ruby 1.2.3
  8. Cap 1.4.1? Go 1.4.2. Now.
  9. Cloning Ubuntu Hardy image in VMWare Fusion
  10. Tutorial #2: Recap
  11. Online Capistrano Tutorial #2
  12. Call for (Capistrano) Links
  13. Online Capistrano Tutorial Session
  14. Net::SSH 2.0.3
  15. Capistrano 2.4.3
  16. Capistrano 2.4.0
  17. Net::SSH 2.0 (and friends)
  18. Capistrano 2.3.0
  19. Maintenance Releases: Capistrano, Net::SSH
  20. Preview Releases: Net::SSH, Net::SSH::Multi
  21. Net::SSH::Multi + Rake == Tasty Potential
  22. More preview releases from the Net::SSH family
  23. Preview Releases: Net::SSH and friends
  24. Net::SSH and Thread-safety
  25. Net::SFTP v2: done?!
  26. Magic 8ttp Ball
  27. When duplication is not duplication
  28. Capistrano 2.2.0
  29. Net::SFTP 1.1.1
  30. Capistrano 2.2.0 Preview
  31. Dealing with project overload
  32. Advanced Rails Recipes and Capistrano
  33. Never. Ever. Cargo-cult.

2007 68

  1. Documentation coordinator
  2. Call for help: Capistrano documentation
  3. Capistrano 2.1
  4. Two Interviews
  5. Child 3.0
  6. Capistrano 2.1 Preview #1
  7. Net::SSH 2.0 preview #1
  8. Interview at Akita On Rails
  9. Net::SSH revisited
  10. Capistrano: Multistage
  11. Capistrano 2.0
  12. Ostrava on Rails
  13. Capistrano 2.0 Preview 4
  14. Net::SSH 1.1.2
  15. Capistrano 2.0 Preview 3
  16. Capistrano and Leopard
  17. Jamis and Marcel at MountainWest RubyConf 2007
  18. Capistrano 2.0 Preview 2
  19. Net::SSH 1.1.1
  20. Net::SSH 1.1.0
  21. Capistrano 2.0 Preview 1
  22. Faking cursors in ActiveRecord
  23. ActiveRecord::Base#find shortcut
  24. Using Capistrano to manage EC2 instances
  25. Cyberbullying, over the top
  26. Raising the right exception
  27. Rendering empty responses
  28. Poor-man's pagination
  29. Vacationing
  30. Dereferencing fixtures
  31. Method visibility in Ruby
  32. Review: Build Your Own Ruby on Rails Web Applications
  33. Route#to_s
  34. Hiatus
  35. begin + else
  36. Infinity
  37. Overriding attributes in ActiveRecord
  38. Nesting resources
  39. Capistrano 1.4.0
  40. Introducing TzTime
  41. Per-developer configuration
  42. More on watching ActiveRecord
  43. Unit vs. Functional vs. Integration
  44. Testing your views
  45. Scaffolding's place
  46. Review: Beginning Ruby on Rails E-Commerce
  47. Object#with_options
  48. How would YOU do it?
  49. Named, explicit routes
  50. ShellScriptBuilder
  51. Blocks rock
  52. ActiveRecord association scoping pitfalls
  53. Managing Rails versions with Capistrano
  54. Dependency checking with Capistrano
  55. Concerns in ActiveRecord
  56. Extending render
  57. Refactoring RJS
  58. SQLite3/Ruby 1.2.0
  59. More inline RJS
  60. Moving associated creations to the model
  61. Inline RJS
  62. Extending ActiveRecord associations
  63. Watching ActiveRecord Do Its Thing
  64. Brevity vs. Clarity
  65. Custom maintenance pages
  66. assert_xml_select
  67. Rcov
  68. assert_select

2006 55

  1. Under the hood: ActiveRecord::Base.find, Part 3
  2. Under the hood: ActiveRecord::Base.find, Part 2
  3. Y, N, Z!
  4. Under the hood: ActiveRecord::Base.find, Part 1
  5. Getting Things Done with Tracks
  6. Mini-API's
  7. Designing a DSL
  8. Just say "no" to certification
  9. Don't be afraid of harnessing SQL
  10. A Rubyish DSL for Logic Programming
  11. The Rails Way
  12. Prolog in Ruby
  13. Mining ActiveSupport: Object#returning
  14. Monkey-patching Rails: Extending Routes #2
  15. Indexing for DB performance
  16. Monkey-patching Rails: Extending Routes #1
  17. Rake deploy with multiple staging targets
  18. Skinny Controller, Fat Model
  19. Under the hood: route generation in Rails
  20. Vacationing
  21. Helping ActiveRecord finders help you
  22. Running tests on deploy
  23. Under the hood: route recognition in Rails
  24. Mongrel, SSL, and Apache 1.3
  25. Under the hood: Rails' routing DSL
  26. Capistrano cheat sheet
  27. D&D, Knowledge bases, and Prolog (oh, my!)
  28. Inside Capistrano: the Command abstraction
  29. 1d6 more reasons to love Ruby
  30. Inside Capistrano: the Gateway implementation
  31. GDB wrapper for Ruby
  32. Inspecting a live Ruby process: Day 2
  33. Inspecting a live Ruby process
  34. Capistrano: Not just for Rails
  35. Introducing the Capistrano Shell
  36. Enter Mephisto
  37. The Future of Capistrano
  38. Capistrano 1.1.9 (beta)
  39. Quick Update
  40. Moving to Idaho
  41. Writing Domain Specific Languages
  42. Web services, Rails-style
  43. Got a Snazzy Capistrano Recipe?
  44. Integration Testing in Rails 1.1
  45. Capistrano 1.1
  46. SwitchTower: Renamed
  47. "Kestrel" is taken...and how!
  48. SwitchTower C&D
  49. TestUnit Inheritance Hierarchies
  50. Tip: TextDrive and Lighttpd
  51. Wait Until it Hurts
  52. Beyond Rails with SwitchTower
  53. Separate passwords for svn/ssh via SwitchTower
  54. Using SwitchTower with multiple deployment stages
  55. SwitchTower 0.10.0

2005 63

  1. SwitchTower progress
  2. Seasons Greetings
  3. Christmas wish
  4. SwitchTower wishlist
  5. Rails 1.0
  6. Two tips for working with databases in Rails
  7. The Lion, the Witch, and the Wardrobe
  8. The best things happen while you're coding....
  9. Returning to Firefox
  10. Phonewords
  11. Revealing hidden assumptions in estimation
  12. Enter the Bumblelog
  13. aMAZE yourself with Haskell
  14. Haskell bundle for TextMate
  15. Learning Haskell
  16. RubyConf 2005
  17. Plugging into Rails
  18. Writeboard
  19. Easy ActiveRecord Scripts
  20. Getting Started With ActiveRecord Migrations
  21. SwitchTower on OSX
  22. Conditional SwitchTower Configuration
  23. SwitchTower Haiku
  24. Fun with SwitchTower
  25. Enumerated types in Ruby
  26. Introducing SwitchTower
  27. Application Deployment with Rails
  28. 1,000th Wedding Anniversary
  29. Rails 0.13, Basecamp 2, Backpack
  30. Singing the Praises of Benchmark
  31. IE is teh 3v1l
  32. URUG Meeting
  33. Backpack in WSJ
  34. SQL query dependencies in Rails apps
  35. Confessions
  36. The Sad State of Mac Genealogy Software
  37. Moved
  38. Switching to Typo
  39. Backpack is now available
  40. This is me, coming up for some air
  41. Text Editing Dilemma
  42. RDoc Template
  43. Test-First Development
  44. Syntax 0.7
  45. Challenges of Parenthood
  46. To sync or not to sync
  47. The Pragmatic Programmer
  48. The perils of programming while sick
  49. On the job
  50. Usage scenarios for BudgetWise
  51. Ajax
  52. Step Three: HTML Mockups
  53. Rails Presentation
  54. Look at me, I'm a Signal!
  55. Java SDK 1.5 Beta -- Tiger
  56. Step Two: Paper Sketches
  57. Taking 37signals' Process for a Spin
  58. Building of Basecamp
  59. 34 Reasons Why I Will Never Use Debian
  60. Introducing Rails to Java Users
  61. Making CGI Rails Faster
  62. Busiest. Day. Ever.
  63. The Cat's Out of the Bag

2004 80

  1. Disappointments in Ruby Land
  2. SQLite3 Bindings for Ruby
  3. Vim, Ruby, and Family History
  4. Muttifying my Mail
  5. Net::SFTP
  6. Net::SSH: checked in
  7. Refactoring Net::SSH: Part 7
  8. Even better
  9. Now that's cool
  10. Recent Writings
  11. Refactoring Net::SSH: Part 6
  12. The Pinball Number Count
  13. Too Many Distractions
  14. Needle 0.9
  15. Refactoring Net::SSH: Part 5
  16. Refactoring Net::SSH: Part 4
  17. Thoughts on Service Models
  18. Refactoring Net::SSH: Part 3
  19. Needle on RubyForge
  20. Refactoring Net::SSH: Part 2
  21. Reloading Dependencies
  22. Net::SSH Refactoring Adventure
  23. On the Road to a New DI Container
  24. Rubyish Dependency Injection
  25. RubyConf: Day Three
  26. RubyConf: Day Two
  27. RubyConf: Day One
  28. Getting Ready!
  29. RubyConf Presentation: Dry Run
  30. Projects I'd Love to Have Time For
  31. Uses for Copland
  32. RubyConf Presentation: Rough Draft
  33. Katie's Crawling!
  34. Blogging with Vim
  35. Back to Blogging
  36. Copland Progress
  37. Jelly: Scripting for the Soulless
  38. Fish
  39. Project Overload
  40. Frameworks as Deliverables
  41. Vade Mecum and YanceyWare Reader
  42. Down With XML!
  43. Racing Simulation for Linux
  44. The Horror of Blimps
  45. Side Effects of Deferred Instantiation
  46. New Wheels
  47. Car Shopping
  48. Copland
  49. IDE's and You
  50. Funeral Cookies
  51. ReiserFS vs. ext3
  52. Rotating nVidia in Linux
  53. Dual Monitor Fun
  54. Reflections on Linux
  55. Up and Running
  56. Progress Update
  57. Gentoo-ing Away
  58. Just When You Think You Know it All...
  59. Dialectical Fun
  60. Fanfare for the Common Programmer
  61. Real Ultimate Power!
  62. Sex and Tattoos
  63. Ah, Utah
  64. Bitten by OpenSource
  65. Current Projects
  66. Two Great Books
  67. To All the Books I've Loved Before
  68. Java Good, Java Bad
  69. A Shadowed Land Called the "Twilight Zone"
  70. Blogs Blogs Blogs
  71. Move Completed
  72. Neverwinter Nights
  73. Being a Dad...
  74. More Klingon Programmers
  75. Klingon Programmers
  76. Generators and Timelines
  77. Thus it Begins...
  78. NPC Generator
  79. Dragon
  80. Orkut.com