41554 blogs · [ { "id": "01a087a0-0bed-70bc-bf57-18e73e00029b", "title": "Get the current database connection information with Ecto and Phoenix", "url": "http://markcampbell.me/2025/01/10/get-current-database-connection-information-with-ecto-and-phoenix.html", "published_at": "2025-01-10T00:00:00+00:00" }, { "id": "01a087a0-0bed-70bc-bf57-18e73efef01f", "title": "csv_to_gsheet command released!", "url": "http://markcampbell.me/2019/06/06/csv_to_gsheet.html", "published_at": "2019-06-06T00:00:00+00:00" }, { "id": "01a087a0-0bed-70bc-bf57-18e73f3b903c", "title": "Terrible zsh profiling", "url": "http://markcampbell.me/2019/03/28/terrible-zsh-profiling.html", "published_at": "2019-03-28T00:00:00+00:00" }, { "id": "01a087a0-0bed-70bc-bf57-18e73f9eefe4", "title": "A lesson in logging: never hide behavior", "url": "http://markcampbell.me/2016/10/19/a-lesson-in-logging-never-hide-behavior.html", "published_at": "2016-10-19T00:00:00+00:00" }, { "id": "01a087a0-0bed-70bc-bf57-18e740809c52", "title": "Escape double quotes in Postgres with COPY", "url": "http://markcampbell.me/2016/05/12/escape-double-quotes-in-postgres-with-copy.html", "published_at": "2016-05-12T00:00:00+00:00" }, { "id": "01a087a0-0bed-70bc-bf57-18e740a6f96d", "title": "Decoding the Ruby on Rails signed session cookie", "url": "http://markcampbell.me/2016/04/18/decoding-the-ruby-on-rails-signed-session-cookie.html", "published_at": "2016-04-18T00:00:00+00:00" }, { "id": "01a087a0-0bed-70bc-bf57-18e7414a47b7", "title": "Setting up Vim to yank to clipboard on Mac OS X", "url": "http://markcampbell.me/2016/04/12/setting-up-yank-to-clipboard-on-a-mac-with-vim.html", "published_at": "2016-04-12T00:00:00+00:00" }, { "id": "01a087a0-0bed-70bc-bf57-18e74191f7e6", "title": "BSides Winnipeg 2015 Coin CTF Writeup", "url": "http://markcampbell.me/2015/11/18/bsides-winnipeg-2015-coin-ctf.html", "published_at": "2015-11-18T00:00:00+00:00" }, { "id": "01a087a0-0bed-70bc-bf57-18e741c1fefd", "title": "Database Transactions With pytest", "url": "http://markcampbell.me/2015/06/14/database-transactions-with-pytest.html", "published_at": "2015-06-14T00:00:00+00:00" }, { "id": "01a087a0-0bed-70bc-bf57-18e741e778d1", "title": "Mutate your Rack middleware's env!", "url": "http://markcampbell.me/2014/12/04/modify-your-racks-env-hash.html", "published_at": "2014-12-04T00:00:00+00:00" }, { "id": "01a087a0-0bed-70bc-bf57-18e7429d2a7c", "title": "The Toiling Programmer: Succeeding as a Developer", "url": "http://markcampbell.me/advice/2014/10/22/succeeding-as-a-developer.html", "published_at": "2014-10-22T11:00:00+00:00" }, { "id": "01a087a0-0bed-70bc-bf57-18e7436f61a9", "title": "Using Airbrake with Rake and not Rails", "url": "http://markcampbell.me/tutorial/2014/05/12/using-airbrake-with-rake-and-not-rails.html", "published_at": "2014-05-12T18:00:00+00:00" }, { "id": "01a087a0-0bed-70bc-bf57-18e743890989", "title": "Logging Airbrake Error IDs in Rack or Sinatra", "url": "http://markcampbell.me/tutorial/2014/05/02/logging-airbrake-error-ids-in-rack-or-sinatra.html", "published_at": "2014-05-02T08:00:00+00:00" }, { "id": "01a087a0-0bed-70bc-bf57-18e743e8812b", "title": "Daily stand-ups as a mechanism for knowledge transfer", "url": "http://markcampbell.me/daily-meetings/2013/10/16/daily-standups-as-a-mechanism-for-knowledge-transfer.html", "published_at": "2013-10-16T09:00:00+00:00" }, { "id": "01a087a0-0bed-70bc-bf57-18e744a2a2b7", "title": "Preventing Navigation in an AngularJS Project", "url": "http://markcampbell.me/tutorial/2013/10/08/preventing-navigation-in-an-angularjs-project.html", "published_at": "2013-10-08T19:00:00+00:00" }, { "id": "01a087a0-0bed-70bc-bf57-18e7452cf0ca", "title": "The Ideal Web Application Development Cycle", "url": "http://markcampbell.me/tutorial/2013/08/19/ideal-web-application-development-cycle.html", "published_at": "2013-08-19T08:00:00+00:00" }, { "id": "01a087a0-0bed-70bc-bf57-18e7462ca7da", "title": "How to Work Remotely as a Software Developer", "url": "http://markcampbell.me/tutorial/2013/05/23/how-to-work-remotely.html", "published_at": "2013-05-23T08:00:00+00:00" }, { "id": "01a087a0-0bed-70bc-bf57-18e7465b3594", "title": "How to set up a Jekyll blog on Heroku", "url": "http://markcampbell.me/jekyll/heroku/2013/05/18/how-to-set-up-jekyll-on-heroku.html", "published_at": "2013-05-18T16:00:00+00:00" }, { "id": "01a087a0-0bed-70bc-bf57-18e746675e7d", "title": "Using ColorBox with Dirty Forms", "url": "http://markcampbell.me/tutorial/2011/12/22/using-colorbox-with-dirtyforms.html", "published_at": "2011-12-22T11:00:00+00:00" }, { "id": "01a087a0-0bed-70bc-bf57-18e7474494e8", "title": "Typhoeus talk at Winnipeg.rb User Group", "url": "http://markcampbell.me/talks/speaking/demo/2011/12/12/winnipeg-rb-slides-are-up.html", "published_at": "2011-12-12T17:00:00+00:00" } ] posts Claim your blog
Back to markcampbell.me
Blog · corpus.blog/blogs/markcampbell.me/posts

markcampbell.me

markcampbell.me

2025

2019

2016

2015

2014

2013

2011