41554 blogs · [ { "id": "01a0873d-d12b-7303-b3a6-65aa08e76058", "title": "Testing Claude Code Harnesses with Plugins", "url": "https://berry.sh/posts/testing-code-harnesses-with-plugins/", "published_at": "2026-06-03T07:00:00+00:00" }, { "id": "01a0873d-d12c-7382-a794-66c0d4ddae06", "title": "A Simple Guide to Managing and Publishing Articles with Obsidian", "url": "https://berry.sh/posts/obsidian-publishing-guide/", "published_at": "2026-06-02T07:00:00+00:00" }, { "id": "01a0873d-d12c-7382-a794-66c0d5abce98", "title": "Codex + git worktrees: avoiding index.lock in multi-agent workflows", "url": "https://berry.sh/posts/codex-worktrees-git-locking/", "published_at": "2026-05-29T16:51:28+00:00" }, { "id": "01a0873d-d12c-7382-a794-66c0d6546d3b", "title": "Build & Maintain Sitemap for Sitepress", "url": "https://berry.sh/posts/build-and-maintain-sitemap-for-sitepress/", "published_at": "2024-03-19T17:26:34+00:00" }, { "id": "01a0873d-d12c-7382-a794-66c0d662a0fa", "title": "Awesome Hotwire", "url": "https://berry.sh/posts/awesome-hotwire/", "published_at": "2024-03-19T06:00:00+00:00" }, { "id": "01a0873d-d12c-7382-a794-66c0d7134d9e", "title": "Welcome to my playground", "url": "https://berry.sh/posts/intro-berry-sh/", "published_at": "2024-03-17T15:28:10+00:00" }, { "id": "01a0873d-d12c-7382-a794-66c0d79a2f73", "title": "The Rails SaaS Conference", "url": "https://berry.sh/posts/rails-saas-conference/", "published_at": "2023-03-07T06:00:00+00:00" }, { "id": "01a0873d-d12c-7382-a794-66c0d7c9780a", "title": "Instructure: The Best Job I Ever Left", "url": "https://berry.sh/posts/instructure-the-best-job-i-ever-left/", "published_at": "2015-01-28T16:29:18+00:00" }, { "id": "01a0873d-d12c-7382-a794-66c0d7d49d92", "title": "Useful Ember Code Examples", "url": "https://berry.sh/posts/useful-ember-code-examples/", "published_at": "2013-08-07T14:14:00+00:00" }, { "id": "01a0873d-d12c-7382-a794-66c0d8bd0fae", "title": "GitHub's Copy to Clipboard With Ember", "url": "https://berry.sh/posts/githubs-copy-to-clipboard-with-ember/", "published_at": "2013-07-19T17:36:00+00:00" }, { "id": "01a0873d-d12c-7382-a794-66c0d98d3d65", "title": "Authentication With EmberJS - Part 3", "url": "https://berry.sh/posts/authentication-with-emberjs-part-3/", "published_at": "2013-07-09T02:39:00+00:00" }, { "id": "01a0873d-d12c-7382-a794-66c0da4dd5a1", "title": "Authentication With EmberJS - Part 2", "url": "https://berry.sh/posts/authentication-with-emberjs-part-2/", "published_at": "2013-07-09T00:36:00+00:00" }, { "id": "01a0873d-d12c-7382-a794-66c0da7389ba", "title": "Authentication With EmberJS - Part 1", "url": "https://berry.sh/posts/authentication-with-emberjs-part-1/", "published_at": "2013-07-08T22:24:00+00:00" }, { "id": "01a0873d-d12c-7382-a794-66c0db5be150", "title": "Useful Functions in the Ember Namespace", "url": "https://berry.sh/posts/useful-functions-in-the-ember-namespace/", "published_at": "2013-07-07T17:28:00+00:00" }, { "id": "01a0873d-d12c-7382-a794-66c0dc2c114b", "title": "Using Flash Messages With EmberJS", "url": "https://berry.sh/posts/using-flash-messages-with-emberjs/", "published_at": "2013-06-20T22:12:00+00:00" }, { "id": "01a0873d-d12c-7382-a794-66c0dcfd3616", "title": "AngularJS on Rails 4 - Part 2", "url": "https://berry.sh/posts/angularjs-on-rails-4-part-2/", "published_at": "2013-04-23T14:35:00+00:00" }, { "id": "01a0873d-d12c-7382-a794-66c0ddb40512", "title": "AngularJS on Rails 4 - Part 1", "url": "https://berry.sh/posts/angularjs-on-rails-4-part-1/", "published_at": "2013-04-23T05:28:00+00:00" }, { "id": "01a0873d-d12c-7382-a794-66c0ddcc15e0", "title": "What Is the Best Memory Config for RubyMine?", "url": "https://berry.sh/posts/rubymine-memory-config-vmoptions/", "published_at": "2013-02-20T16:30:00+00:00" }, { "id": "01a0873d-d12c-7382-a794-66c0de668aee", "title": "Bootstrapping AngularJS With Yeoman", "url": "https://berry.sh/posts/bootstrapping-angularjs-with-yeoman/", "published_at": "2013-02-14T00:13:00+00:00" }, { "id": "01a0873d-d12e-7202-b3fb-1109b796c1b6", "title": "Simple Fix for Pagination With Twitter Bootstrap", "url": "https://berry.sh/posts/simple-fix-for-pagination-with-twitter-bootstrap/", "published_at": "2012-10-09T23:40:00+00:00" }, { "id": "01a0873d-d12e-7202-b3fb-1109b85248aa", "title": "Airbrake Exception Logging in Your Grails Application", "url": "https://berry.sh/posts/airbrake-exception-logging-in-your-grails-application/", "published_at": "2012-09-11T21:34:00+00:00" }, { "id": "01a0873d-d12e-7202-b3fb-1109b899d995", "title": "Tools I Use as a Developer", "url": "https://berry.sh/posts/tools-i-use-as-a-developer/", "published_at": "2012-05-24T22:48:00+00:00" }, { "id": "01a0873d-d12e-7202-b3fb-1109b97be0af", "title": "Stupid Simple POST/GET With Groovy HTTPBuilder", "url": "https://berry.sh/posts/stupid-simple-post-slash-get-with-groovy-httpbuilder/", "published_at": "2012-05-07T23:57:00+00:00" }, { "id": "01a0873d-d12e-7202-b3fb-1109b9817032", "title": "Grails Authentication With Shiro", "url": "https://berry.sh/posts/grails-authentication-with-shiro/", "published_at": "2012-04-27T01:03:00+00:00" }, { "id": "01a0873d-d12e-7202-b3fb-1109b9d64bce", "title": "Asset Pipeline for Dummies", "url": "https://berry.sh/posts/asset-pipeline-for-dummies/", "published_at": "2012-04-24T15:41:00+00:00" }, { "id": "01a0873d-d12e-7202-b3fb-1109b9f02d93", "title": "Grails Domain Classes and Enums", "url": "https://berry.sh/posts/grails-domain-classes-and-enums/", "published_at": "2012-04-23T07:00:00+00:00" }, { "id": "01a0873d-d12e-7202-b3fb-1109ba47cc9f", "title": "Groovy & Grails - Want to Know More?", "url": "https://berry.sh/posts/groovy-and-grails-want-to-know-more/", "published_at": "2011-10-18T07:00:00+00:00" }, { "id": "01a0873d-d12e-7202-b3fb-1109bab0b714", "title": "Bunny RabbitMQ", "url": "https://berry.sh/posts/bunny-rabbitmq/", "published_at": "2011-08-09T07:00:00+00:00" }, { "id": "01a0873d-d12e-7202-b3fb-1109bb1388f5", "title": "Google+ for the Facebook User", "url": "https://berry.sh/posts/google-plus-for-the-facebook-user/", "published_at": "2011-07-17T06:00:00+00:00" }, { "id": "01a0873d-d12e-7202-b3fb-1109bbb763a7", "title": "How to Fix the Iconv Require Error in Ruby 1.9 and RVM", "url": "https://berry.sh/posts/how-to-fix-the-iconv-require-error-in-ruby-1-dot-9-and-rvm/", "published_at": "2011-05-17T07:00:00+00:00" }, { "id": "01a0873d-d12e-7202-b3fb-1109bc505b66", "title": "Multi-Associative GORM Criteria With Projections", "url": "https://berry.sh/posts/multi-associative-gorm-criteria-with-projections/", "published_at": "2011-03-29T07:00:00+00:00" }, { "id": "01a0873d-d12e-7202-b3fb-1109bd0865d7", "title": "Paginator for Those Suffering From PostgreSQL Count( ) Speed Issues", "url": "https://berry.sh/posts/paginator-for-those-suffering-from-postgresql-count-star-speed-issues/", "published_at": "2010-11-24T08:00:00+00:00" }, { "id": "01a0873d-d12e-7202-b3fb-1109bdf85d63", "title": "Grails Screencasts", "url": "https://berry.sh/posts/grails-screencasts/", "published_at": "2010-11-12T07:00:00+00:00" }, { "id": "01a0873d-d12e-7202-b3fb-1109bec7eb8a", "title": "Roll Your Own Ajax-Based Captcha in Grails", "url": "https://berry.sh/posts/roll-your-own-ajax-based-captcha-in-grails/", "published_at": "2010-10-28T07:00:00+00:00" }, { "id": "01a0873d-d12e-7202-b3fb-1109bfb0d3b3", "title": "Uploading Files in Grails", "url": "https://berry.sh/posts/uploading-files-in-grails/", "published_at": "2010-10-12T07:00:00+00:00" }, { "id": "01a0873d-d12e-7202-b3fb-1109c0378ed8", "title": "Passing Data From View to Layout via pageProperty", "url": "https://berry.sh/posts/passing-data-from-view-to-layout-via-pageproperty/", "published_at": "2010-10-08T07:00:00+00:00" }, { "id": "01a0873d-d12e-7202-b3fb-1109c086a84c", "title": "Using Tag Lib Within Controllers and Services", "url": "https://berry.sh/posts/using-tag-lib-within-controllers-and-services/", "published_at": "2010-10-07T07:00:00+00:00" }, { "id": "01a0873d-d12e-7202-b3fb-1109c185545b", "title": "Using Criteria Builder With Projections", "url": "https://berry.sh/posts/using-criteria-builder-with-projections/", "published_at": "2010-10-06T07:00:00+00:00" }, { "id": "01a0873d-d12e-7202-b3fb-1109c23e9f2f", "title": "Multi-Line Rails Logger Trick", "url": "https://berry.sh/posts/multi-line-rails-logger-trick/", "published_at": "2010-05-27T07:00:00+00:00" }, { "id": "01a0873d-d12e-7202-b3fb-1109c30d6a99", "title": "Using Multiple SMTP Accounts With Rails & ActionMailer", "url": "https://berry.sh/posts/using-multiple-smtp-accounts-with-rails-and-actionmailer/", "published_at": "2009-03-30T07:00:00+00:00" }, { "id": "01a0873d-d12e-7202-b3fb-1109c388d5da", "title": "Creating Custom SOAP Requests With Ruby and Net::HTTP", "url": "https://berry.sh/posts/creating-custom-soap-requests-with-ruby-and-net-http/", "published_at": "2008-12-19T08:00:00+00:00" }, { "id": "01a0873d-d12e-7202-b3fb-1109c4802fcc", "title": "RubyCocoa and NSTables De-Mystified", "url": "https://berry.sh/posts/rubycocoa-and-nstables-de-mystified/", "published_at": "2008-10-16T07:00:00+00:00" }, { "id": "01a0873d-d12e-7202-b3fb-1109c535e163", "title": "How to Create Tabs With CSS and jQuery From Scratch", "url": "https://berry.sh/posts/how-to-create-tabs-with-css-and-jquery-from-scratch/", "published_at": "2008-10-11T07:00:00+00:00" } ] posts Claim your blog
Back to berry.sh
Blog · corpus.blog/blogs/berry.sh/posts

berry.sh

berry.sh

2026

2024

2023

2015

2013

2012

2011

2010

2009

2008