56,966 blogs · [ { "id": "01a08c62-d8ce-715b-999e-80184cbd3979", "title": "Fixing errors installing the charlock_holmes ruby gem redux", "url": "https://willj.net/posts/fixing-errors-installing-the-charlock_holmes-ruby-gem-redux/", "published_at": "2025-05-29T10:50:00+00:00" }, { "id": "01a08c62-d8ce-715b-999e-80184cf8ca39", "title": "Final robot photos", "url": "https://willj.net/posts/final-robot-photos/", "published_at": "2024-08-06T09:00:00+00:00" }, { "id": "01a08c62-d8ce-715b-999e-80184df65077", "title": "You should use the Ruby on Rails logger block syntax", "url": "https://willj.net/posts/you-should-use-the-rails-logger-block-syntax/", "published_at": "2024-07-31T16:00:00+00:00" }, { "id": "01a08c62-d8ce-715b-999e-80184ef27cab", "title": "Finding Postgres rows too large for BTree indexes", "url": "https://willj.net/posts/finding-postgres-rows-too-large-for-btree-indexes/", "published_at": "2024-02-17T17:25:00+00:00" }, { "id": "01a08c62-d8ce-715b-999e-80184f03d4ca", "title": "Measuring IO timings when using EXPLAIN ANALYSE in Postgres", "url": "https://willj.net/posts/measuring-io-timing-for-postgres-explain-analyse/", "published_at": "2023-09-19T22:21:00+00:00" }, { "id": "01a08c62-d8ce-715b-999e-80184fb675a4", "title": "Buffer analysis when using EXPLAIN ANALYSE in Postgres", "url": "https://willj.net/posts/buffer-analysis-when-using-explain-analyse-in-postgres/", "published_at": "2023-09-15T22:49:00+00:00" }, { "id": "01a08c62-d8ce-715b-999e-80185069568d", "title": "Converting a wordpress.com dump to Hugo, including images", "url": "https://willj.net/posts/converting-a-wordpress.com_dump_to_hugo/", "published_at": "2023-09-12T12:30:00+00:00" }, { "id": "01a08c62-d8ce-715b-999e-801851053f6c", "title": "Reverting Firefox's recent URL bar suggestion order change", "url": "https://willj.net/posts/revert-firefox-url-bar-suggestion-order-change/", "published_at": "2023-09-11T16:27:00+00:00" }, { "id": "01a08c62-d8ce-715b-999e-801851e3db28", "title": "Fitting two hard drives and an SSD in a Dell OptiPlex 7010 SFF", "url": "https://willj.net/posts/fitting-two-hard-drives-and-an-ssd-in-a-dell-optiplex-7010-usff/", "published_at": "2023-05-28T00:00:00+00:00" }, { "id": "01a08c62-d8ce-715b-999e-80185235397f", "title": "Running a specific knapsack test set locally", "url": "https://willj.net/posts/running-a-specific-knapsack-test-set-locally/", "published_at": "2023-04-26T15:00:00+00:00" }, { "id": "01a08c62-d8ce-715b-999e-80185331998e", "title": "Will's YouTube sailing channel recommendations", "url": "https://willj.net/posts/youtube-sailing-channel-recommendations/", "published_at": "2022-09-15T00:00:00+00:00" }, { "id": "01a08c62-d8ce-715b-999e-8018541bee12", "title": "Full-height Github \"checks\" box in Firefox", "url": "https://willj.net/posts/full-height-github-checks-box-in-firefox/", "published_at": "2022-08-16T12:00:00+00:00" }, { "id": "01a08c62-d8ce-715b-999e-801854749ece", "title": "Effective Github Notifications", "url": "https://willj.net/posts/effective-github-notifications/", "published_at": "2022-08-16T00:00:00+00:00" }, { "id": "01a08c62-d8ce-715b-999e-8018556e4997", "title": "Simple Sourdough Bread", "url": "https://willj.net/posts/simple-sourdough-bread/", "published_at": "2021-01-13T02:53:53+00:00" }, { "id": "01a08c62-d8ce-715b-999e-8018559c434c", "title": "Making a Sourdough Starter", "url": "https://willj.net/posts/making-a-sourdough-starter/", "published_at": "2021-01-13T02:53:52+00:00" }, { "id": "01a08c62-d8ce-715b-999e-801855ecfab9", "title": "Using the T67XX CO₂ Sensor Module in Go", "url": "https://willj.net/posts/using-the-t67xx-co2-sensor-module-in-go/", "published_at": "2020-11-30T11:24:00+00:00" }, { "id": "01a08c62-d8ce-715b-999e-80185683258a", "title": "Custom 3D printed Blue Snowball desk stand", "url": "https://willj.net/posts/custom-blue-snowball-microphone-desk-stand/", "published_at": "2020-11-25T04:59:00+00:00" }, { "id": "01a08c62-d8ce-715b-999e-80185718c7e3", "title": "Welcome to My New Blog", "url": "https://willj.net/posts/welcome-to-my-new-blog/", "published_at": "2020-06-24T22:30:40+00:00" }, { "id": "01a08c62-d8ce-715b-999e-80185793a867", "title": "Writing to an Lcd Panel Using Go and a Raspberry Pi", "url": "https://willj.net/posts/writing-to-an-lcd-panel-using-go-and-a-raspberry-pi/", "published_at": "2020-06-24T01:09:43+00:00" }, { "id": "01a08c62-d8ce-715b-999e-801857d3bae6", "title": "Humidity, Temperature and Pressure Sensing on a Raspberry Pi With Go", "url": "https://willj.net/posts/humidity-temperature-and-pressure-sensing-on-a-raspberry-pi-with-go/", "published_at": "2020-06-23T19:26:10+00:00" }, { "id": "01a08c62-d8ce-715b-999e-8018580b7bf8", "title": "Error installing libv8 on Mac OS Catalina", "url": "https://willj.net/posts/error-installing-libv8-on-mac-os-catalina/", "published_at": "2020-02-17T16:23:53+00:00" }, { "id": "01a08c62-d8ce-715b-999e-80185889c348", "title": "Fixing the ruby 'CoreFoundation/CFString.h' file not found install error", "url": "https://willj.net/posts/fixing-the-ruby-corefoundationcfstring.h-file-not-found-install-error/", "published_at": "2019-05-01T15:00:33+00:00" }, { "id": "01a08c62-d8ce-715b-999e-8018598020fd", "title": "Fixing errors installing the charlock_holmes ruby gem", "url": "https://willj.net/posts/fixing-errors-installing-the-charlock_holmes-ruby-gem/", "published_at": "2019-02-13T05:50:52+00:00" }, { "id": "01a08c62-d8ce-715b-999e-80185989a201", "title": "Basic pasta sauce", "url": "https://willj.net/posts/basic-pasta-sauce/", "published_at": "2017-02-14T00:56:16+00:00" }, { "id": "01a08c62-d8ce-715b-999e-801859c65295", "title": "The security of a system is as strong as it's weakest component", "url": "https://willj.net/posts/the-security-of-a-system-is-as-strong-as-its-weakest-component/", "published_at": "2016-04-15T12:47:57+00:00" }, { "id": "01a08c62-d8ce-715b-999e-80185a7f6c10", "title": "Random graph", "url": "https://willj.net/posts/random-graph/", "published_at": "2015-09-25T22:27:43+00:00" }, { "id": "01a08c62-d8ce-715b-999e-80185ab32bf7", "title": "How to find if two nodes are connected in an RGL graph", "url": "https://willj.net/posts/how-to-find-if-two-nodes-are-connected-in-an-rgl-graph/", "published_at": "2015-09-25T16:39:53+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c8824acd7016", "title": "I got my pan tilt servos working", "url": "https://willj.net/posts/i-got-my-pan-tilt-servos-working/", "published_at": "2014-07-29T22:59:02+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c8824ba986ca", "title": "Testing Github commit hook one liners", "url": "https://willj.net/posts/testing-github-commit-hook-one-liners/", "published_at": "2014-06-09T13:24:11+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c8824c221c33", "title": "AWS IAM Policy for allowing s3cmd to sync to an S3 bucket", "url": "https://willj.net/posts/aws-iam-policy-for-allowing-s3cmd-to-sync-to-an-s3-bucket/", "published_at": "2014-04-18T17:41:47+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c8824d108cba", "title": "Ping-Pong Press!", "url": "https://willj.net/posts/ping-pong-press/", "published_at": "2013-12-16T18:24:25+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c8824dcfb13e", "title": "Robot at RubyConf", "url": "https://willj.net/posts/robot-at-rubyconf/", "published_at": "2013-12-09T14:14:11+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c8824e3a2452", "title": "Prototype lifter arm", "url": "https://willj.net/posts/prototype-lifter-arm/", "published_at": "2013-11-02T22:04:05+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c8824e902f2d", "title": "First robot remote driving test", "url": "https://willj.net/posts/first-robot-remote-driving-test/", "published_at": "2013-11-01T02:16:09+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c8824ebc8423", "title": "Rejects and prototypes", "url": "https://willj.net/posts/rejects-and-prototypes/", "published_at": "2013-10-31T13:25:19+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c8824f00c9b4", "title": "New robot base design and completed prototype arm assembly", "url": "https://willj.net/posts/new-robot-base-design-and-completed-prototype-arm-assembly/", "published_at": "2013-10-31T13:16:49+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c8824f4ba585", "title": "Testing the new battery + lifter arm circuit", "url": "https://willj.net/posts/testing-the-new-battery-and-lifter-arm-circuit/", "published_at": "2013-10-28T23:02:01+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c8824fa27942", "title": "An assembled ping-pong robot hopper", "url": "https://willj.net/posts/an-assembled-hopper/", "published_at": "2013-10-24T01:27:44+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c8824fb5d859", "title": "Testing new motor mounts", "url": "https://willj.net/posts/testing-new-motor-mounts/", "published_at": "2013-10-24T01:22:00+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c882509c0a23", "title": "Raspberry Pi camera mount + lens holder", "url": "https://willj.net/posts/raspberry-pi-camera-mount-and-lens-holder/", "published_at": "2013-10-24T01:15:37+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c88251829798", "title": "New Pi mount, and testing the power requirements", "url": "https://willj.net/posts/new-pi-mount-and-testing-the-power-requirements/", "published_at": "2013-10-20T00:06:46+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c882518e1899", "title": "Lenses", "url": "https://willj.net/posts/lenses/", "published_at": "2013-10-18T16:17:20+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c8825240a9fc", "title": "First prototype robot base", "url": "https://willj.net/posts/prototype-robot-base/", "published_at": "2013-09-30T20:08:56+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c8825338d4ac", "title": "OpenSCAD robot base design", "url": "https://willj.net/posts/openscad-robot-base-design/", "published_at": "2013-09-24T01:23:15+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c8825362baf9", "title": "Trying out the prototype caterpillar track mount", "url": "https://willj.net/posts/trying-out-the-prototype-caterpillar-track-mount/", "published_at": "2013-09-23T18:09:32+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c882544b77b8", "title": "Printing out a test caterpillar track and motor mount", "url": "https://willj.net/posts/printing-out-a-test-caterpillar-track-and-motor-mount/", "published_at": "2013-09-23T14:38:44+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c8825513018a", "title": "Designing a track mount", "url": "https://willj.net/posts/designing-a-track-mount/", "published_at": "2013-09-21T22:42:44+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c882559c8e8f", "title": "Secret project - MotorPiTX motor board", "url": "https://willj.net/posts/secret-project-motorpitx-motor-board/", "published_at": "2013-09-08T00:51:32+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c8825625fd34", "title": "Secret project", "url": "https://willj.net/posts/secret-project/", "published_at": "2013-09-07T12:41:02+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c882562ac308", "title": "go-piglow, a lib for controlling the piglow in Golang", "url": "https://willj.net/posts/go-piglow-a-lib-for-controlling-the-piglow-in-golang/", "published_at": "2013-09-03T23:26:43+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c882571f7086", "title": "Creating BERT dicts in Go", "url": "https://willj.net/posts/creating-bert-dicts-in-go/", "published_at": "2013-02-10T02:09:06+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c882577a9472", "title": "Creating animated gifs with imagemagick", "url": "https://willj.net/posts/creating-animated-gifs-with-imagemagick/", "published_at": "2012-04-24T10:49:42+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c8825851a068", "title": "Railsberry animated gifs", "url": "https://willj.net/posts/railsberry-animated-gifs/", "published_at": "2012-04-23T16:05:30+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c88259403f3d", "title": "Paula Deen riding things", "url": "https://willj.net/posts/paula-deen-riding-things/", "published_at": "2012-02-02T22:00:10+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c8825a120f2c", "title": "Testing http over socket connections with socat", "url": "https://willj.net/posts/testing-http-over-socket-connections-with-socat/", "published_at": "2011-12-02T22:00:55+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c8825aa1ebbe", "title": "Cloud email service price comparison", "url": "https://willj.net/posts/cloud-email-service-price-comparison/", "published_at": "2011-11-30T21:27:42+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c8825ade2a34", "title": "Should I switch from Sendgrid to Amazon SES?", "url": "https://willj.net/posts/should-i-switch-from-sendgrid-to-amazon-ses/", "published_at": "2011-01-25T21:53:07+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c8825b243133", "title": "Rewriting URL params in nginx", "url": "https://willj.net/posts/rewriting-url-params-in-nginx/", "published_at": "2009-03-07T14:30:37+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c8825bee4277", "title": "Tricks of the Trade", "url": "https://willj.net/posts/tricks-of-the-trade/", "published_at": "2007-04-12T19:04:33+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c8825c587796", "title": "A great 'site unavailable' message", "url": "https://willj.net/posts/a-great-site-unavailable-message/", "published_at": "2006-07-14T16:49:02+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c8825cb3baf1", "title": "99 bottles of Ruby beer on the wall", "url": "https://willj.net/posts/99-bottles-of-ruby-beer-on-the-wall/", "published_at": "2006-07-05T18:32:24+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c8825da0c055", "title": "Fixing the 'Memory card error' on the Canon IXUS 400 / S3", "url": "https://willj.net/posts/fixing-the-memory-card-error-on-the-canon-ixus-400/", "published_at": "2006-02-12T16:29:42+00:00" }, { "id": "01a08c62-d8cf-7246-ae3e-c8825e38bbcf", "title": "New hard disc", "url": "https://willj.net/posts/new-hard-disc/", "published_at": "2005-11-09T21:24:40+00:00" } ] posts Claim your blog
Back to willj.net
Blog · corpus.blog/blogs/willj.net/posts

willj.net

willj.net

2025

2024

2023

2022

2021

2020

2019

2017

2016

2015

2014

2013

2012

2011

2009

2007

2006

2005