# Josh Barratt's Blog > Josh Barratt's personal site, writing about tech, food, and everything else fascinating to me This is the personal website of Joshua Barratt. It contains blog posts about technology, software engineering, food, travel, and other interests. ## About - [About Me](https://serialized.net/about/index.md): Background and bio ## Recent Posts - [Car Camping Loadout: 2026 Edition](https://serialized.net/2026/03/carcamping/index.md): Current gear and hacks to make car camping simple, fun, and comfortable - [Forming and Evolving Teams with TeamOS](https://serialized.net/2021/06/teamos/index.md): A collection of practices and ideas for organizing technical teams around their work. - [What are the limits of serverless for online gaming?](https://serialized.net/2021/03/serverless_gaming_limits/index.md): A previous post looked at using Lambda, API Gateway+Websockets and DynamoDB for multiplayer gaming. However, it used an almost trivial example. Can the same stack be used for more games or other apps with more demanding state? How much state is too much? - [Minecraft Server in Docker: Adulting Made Easy](https://serialized.net/2021/02/minecraft_server_docker/index.md): Docker makes it easy to not just get started running a minecraft server, but to run all kinds of different servers, backups to the cloud, and more. - [Two Years with the Oculus Quest](https://serialized.net/2021/01/two_year_quest/index.md): My favorite things to do with the Oculus Quest (and Quest 2), after having it for 2 years -- and some thoughts about the future of VR - [Monitoring Power with Prometheus](https://serialized.net/2021/01/prompower/index.md): A quick guide to setting up Prometheus for monitoring your home. As an example, it's used to start monitoring a home solar system, and a Sonnen Solar battery. - [Building a Multiplayer Game with API Gateway+Websockets, Go and DynamoDB](https://serialized.net/2020/09/multiplayer/index.md): A simple end to end demonstration of building a multiplayer brower-based game with a Javascript frontend, API Gateway's support for serverless websockets, Go code running in Lambdas, DynamoDB for storing state, and SAM for managing the infrastructure. - [A Pen Plotter at STEAM night](https://serialized.net/2020/03/steam_plotter/index.md): A STEAM night at our elementary school was just the reason I needed to finally decide to get a pen plotter, the perfect combination of Technology, Engineering, Art and Math. Here's the story of that night (and the code for the activity.) - [Effective Technical Diagrams](https://serialized.net/2020/02/effective_technical_diagrams/index.md): When communicating about technical systems, diagrams are one of the most powerful tools in your toolbox. However, some diagrams leave your readers even more confused than when they started. It's worth spending some time thinking about how to do them well. This post explores traits good diagrams typically have, and goes through a catalog of common diagram types. - [Taking Back New Tabs](https://serialized.net/2019/09/taking-back-new-tabs/index.md): New tab real estate is precious, and most of us let the browser maker pick what goes there. It's time to take it back! - [Make-ing Mermaid](https://serialized.net/2019/08/mermaid/index.md): Sequence Diagrams and Flowcharts are very useful tools. Mermaid is an excellent library to create them which can be driven from the command line, and therefore improved with some unixy magic. - [Making a Smarter Smart Thermostat with Go, Lambda, and SAM](https://serialized.net/2019/06/smarter-smart/index.md): The Sensibo Sky improved the temperature control in my office, and almost worked the way I wanted. This is the story of getting it the rest of the way, with a little extra help from Go and Serverless technologies. - [Envoy + Custom Auth + Ratelimiter Example](https://serialized.net/2019/05/envoy-ratelimits/index.md): Using Envoy with external authorizer and a ratelimit service to implement custom logic. - [Designing Systems with The Magic Box](https://serialized.net/2019/02/magic_box/index.md): Designing better software with magic boxes - [Experimenting with AWS's new a1 instances, using awless](https://serialized.net/2018/12/tinkering-with-a1-and-awless/index.md): AWS recently released ARM-core based servers. I wanted to see how they performed, and also demonstrate awless, a favorite tool for ad-hoc AWS experimentation. - [A workflow for sharing Markdown (with images!)](https://serialized.net/2018/11/a-workflow-for-sharing-markdown-with-images/index.md): Making markdown notetaking a little richer - [Generative Laptop Skin](https://serialized.net/2018/07/generative-laptop-skin/index.md): Generative Art as a laptop skin - [Making Bacon with Golang](https://serialized.net/2018/07/making-bacon-with-golang/index.md): Using Go to build out an embeddable and high performance Oracle of Bacon - [Really Serverless Databases](https://serialized.net/2018/07/serverless_db/index.md): Making serverless databases even more serverless - [Finding Feeds 3 Ways](https://serialized.net/2018/06/finding-feeds-3-ways/index.md): Using Pinboard bookmarks to populate a Feed Reader, Overengineering Edition ## All Posts ### 2026 - [Car Camping Loadout: 2026 Edition](https://serialized.net/2026/03/carcamping/index.md) ### 2021 - [Forming and Evolving Teams with TeamOS](https://serialized.net/2021/06/teamos/index.md) - [What are the limits of serverless for online gaming?](https://serialized.net/2021/03/serverless_gaming_limits/index.md) - [Minecraft Server in Docker: Adulting Made Easy](https://serialized.net/2021/02/minecraft_server_docker/index.md) - [Two Years with the Oculus Quest](https://serialized.net/2021/01/two_year_quest/index.md) - [Monitoring Power with Prometheus](https://serialized.net/2021/01/prompower/index.md) ### 2020 - [Building a Multiplayer Game with API Gateway+Websockets, Go and DynamoDB](https://serialized.net/2020/09/multiplayer/index.md) - [A Pen Plotter at STEAM night](https://serialized.net/2020/03/steam_plotter/index.md) - [Effective Technical Diagrams](https://serialized.net/2020/02/effective_technical_diagrams/index.md) ### 2019 - [Taking Back New Tabs](https://serialized.net/2019/09/taking-back-new-tabs/index.md) - [Make-ing Mermaid](https://serialized.net/2019/08/mermaid/index.md) - [Making a Smarter Smart Thermostat with Go, Lambda, and SAM](https://serialized.net/2019/06/smarter-smart/index.md) - [Envoy + Custom Auth + Ratelimiter Example](https://serialized.net/2019/05/envoy-ratelimits/index.md) - [Designing Systems with The Magic Box](https://serialized.net/2019/02/magic_box/index.md) ### 2018 - [Experimenting with AWS's new a1 instances, using awless](https://serialized.net/2018/12/tinkering-with-a1-and-awless/index.md) - [A workflow for sharing Markdown (with images!)](https://serialized.net/2018/11/a-workflow-for-sharing-markdown-with-images/index.md) - [Generative Laptop Skin](https://serialized.net/2018/07/generative-laptop-skin/index.md) - [Making Bacon with Golang](https://serialized.net/2018/07/making-bacon-with-golang/index.md) - [Really Serverless Databases](https://serialized.net/2018/07/serverless_db/index.md) - [Finding Feeds 3 Ways](https://serialized.net/2018/06/finding-feeds-3-ways/index.md) ### 2017 - [DIY Analytics with GoAccess](https://serialized.net/2017/07/diy-goaccess-analytics/index.md) - [HTTP Load Testing with Vegeta (and a dash of Python)](https://serialized.net/2017/06/load-testing-with-vegeta-and-python/index.md) - [Improving 24x7 coverage through visualization](https://serialized.net/2017/06/visualizing_24x7/index.md) - [Maximizing Performance with Cloudfront, S3 and Hugo](https://serialized.net/2017/06/maximizing-performance-with-cloudfront-s3-and-hugo/index.md) - [JSON Feed, and an even more static blog](https://serialized.net/2017/06/json-feed-and-an-even-more-static-blog/index.md) - [Moving from Nikola to Hugo](https://serialized.net/2017/06/moving-from-nikola-to-hugo/index.md) - [This blog now powered by Hugo](https://serialized.net/2017/06/this-blog-now-powered-by-hugo/index.md) ### 2016 - [DIY Dynamic DNS with Route 53](https://serialized.net/2016/08/diy-dynamic-dns-with-route-53/index.md) - [The Serverless Tool Nobody Talks About](https://serialized.net/2016/07/the-serverless-tool-nobody-talks-about/index.md) - [How I Use an Electric Pressure Cooker](https://serialized.net/2016/07/how-i-use-an-electric-pressure-cooker/index.md) - [TaskPaper + Vim + Dropbox + Editorial = GTD & Checklist Perfection](https://serialized.net/2016/07/taskpaper--vim--dropbox--editorial-checklist-perfection/index.md) ### 2015 - [Using docker-compose for local development with AWS services](https://serialized.net/2015/05/using-docker-compose-for-local-development-with-aws-services/index.md) - [Stopping Docker Containers in a hurry](https://serialized.net/2015/05/stopping-docker-containers-in-a-hurry/index.md) ### 2014 - [Fully Automated Python Package Releases](https://serialized.net/2014/09/fully-automated-python-package-releases/index.md) - [Telling Technology Stories with IPython Notebook](https://serialized.net/2014/09/ipython-notebook-storytelling/index.md) - [Mining your IPython Notebooks with nbgrep](https://serialized.net/2014/07/mining-your-ipython-notebooks-with-nbgrep/index.md) - [Quick Curated Podcasts](https://serialized.net/2014/07/quick-curated-podcasts/index.md) - [Herding IPython Notebooks](https://serialized.net/2014/02/herding-ipython-notebooks/index.md) ### 2013 - [An Argument for Containers, featuring Docker](https://serialized.net/2013/10/an-argument-for-containers-featuring-docker/index.md) - [Nikola and Livereload, dynamically editing a static site](https://serialized.net/2013/04/nikola-and-livereload-ftw/index.md) - [Instantly finding a headless Raspberry Pi](https://serialized.net/2013/04/headless_rpi/index.md) - [Updated Octopress to Nikola guide and tool](https://serialized.net/2013/04/updated-octopress-to-nikola-guide-and-tool/index.md) - [Simply generating self-signed SSL Certs with Ansible](https://serialized.net/2013/04/simply-generating-self-signed-ssl-certs-with-ansible/index.md) - [Moving from Octopress to Nikola](https://serialized.net/2013/03/moving-from-octopress-to-nikola/index.md) - [10 Years of Comedy ... Something Or Other](https://serialized.net/2013/03/10-years-of-comedy-somethingorother/index.md) - [Live Sphinx Documentation Preview](https://serialized.net/2013/01/live-sphinx-documentation-preview/index.md) ### 2012 - [Local Python CI with Watchdog and Nose](https://serialized.net/2012/09/local-python-ci-with-watchdog-and-nose/index.md) - [A simple Taskwarrior Alfred Plugin](https://serialized.net/2012/09/a-simple-taskwarrior-alfred-plugin/index.md) - [Migrating from Trello to Taskwarrior](https://serialized.net/2012/09/migrating-from-trello-to-taskwarrior/index.md) - [Debugging Python Tests](https://serialized.net/2012/08/debugging-python-tests/index.md) - [Using R and `ggplot2` to Contemplate Relocation](https://serialized.net/2012/02/using-r-and-ggplot2-to-contemplate-relocation/index.md) ### 2011 - [Screencasting Presentations With Screenflow](https://serialized.net/2011/11/screencasting-presentations-with-screenflow/index.md) - [Going Fast With GMail's Keyboard Shortcuts](https://serialized.net/2011/11/going-fast-with-gmails-keyboard-shortcuts/index.md) - [Using Ogres to Improve Your Designs](https://serialized.net/2011/10/using-ogres-to-improve-your-designs/index.md) - [An Iteration of the Lean Meetings Concept](https://serialized.net/2011/09/an-iteration-of-the-lean-meetings-concept/index.md) - [Getting more Signal from your Noise](https://serialized.net/2011/02/getting-more-signal-from-your-noise/index.md) ### 2010 - [Testing Perl code that runs commands](https://serialized.net/2010/09/testing-perl-code-that-runs-commands/index.md) - [Up-Up-Updated 'Inbox Zero with Mail.app' Technique](https://serialized.net/2010/09/up-up-updated-inbox-zero-with-mail-app-technique/index.md) - [Why using packages makes sense in a configuration management world](https://serialized.net/2010/09/why-using-packages-makes-sense-in-a-configuration-management-world/index.md) - [Deploying self-contained Perl Dancer applications](https://serialized.net/2010/08/deploying-self-contained-perl-dancer-applications/index.md) - [Relaunched blog, sorry for any dust.](https://serialized.net/2010/08/relaunched-blog-sorry-for-any-dust/index.md) - [Notes from my Jekyll Migration](https://serialized.net/2010/08/notes-from-my-jekyll-migration/index.md) - [Capturing short-lived programs on Linux](https://serialized.net/2010/06/capturing-short-lived-programs-on-linux/index.md) - [Instantly share local directories with 2 command lines](https://serialized.net/2010/06/instantly-share-local-directories-with-2-command-lines/index.md) - [Optimal web-sized identifiers](https://serialized.net/2010/05/optimal-web-sized-identifiers/index.md) - [Quickie: Keeping my OSX downloads folder clean](https://serialized.net/2010/05/quickie-keeping-my-osx-downloads-folder-clean/index.md) - [Getting around tmpfs 'noexec' problems](https://serialized.net/2010/03/getting-around-tmpfs-noexec-problems/index.md) - [Adding iSCSI exports to OpenSolaris for remote Time Machine](https://serialized.net/2010/03/adding-iscsi-exports-to-opensolaris-for-remote-time-machine/index.md) - [Using custom functions in Puppet templates](https://serialized.net/2010/01/using-custom-functions-in-puppet-templates/index.md) ### 2009 - [Updated "Inbox Zero with Mail.app" technique](https://serialized.net/2009/12/updated-inbox-zero-with-mail-app-technique/index.md) - [Standard Deviation with Arduino](https://serialized.net/2009/10/standard-deviation-with-arduino/index.md) - [Great WordPress Plugin: WP Widget Cache](https://serialized.net/2009/10/great-wordpress-plugin-wp-widget-cache/index.md) - [Questioning Coffee Geeks with Science](https://serialized.net/2009/10/questioning-coffee-geeks-with-science/index.md) - [local::lib: Better perl when you don't have root.](https://serialized.net/2009/10/locallib-better-perl-when-you-dont-have-root/index.md) - [FlickrPress now available: Turns Flickr RSS to Wordpress Posts](https://serialized.net/2009/10/flickrpress-now-available-turns-flickr-rss-to-wordpress-posts/index.md) - [Testing perl system interactions](https://serialized.net/2009/10/testing-perl-system-interactions/index.md) - [Help me suffer for charity!](https://serialized.net/2009/09/help-me-suffer-for-charity/index.md) - [Puppet Module Patterns](https://serialized.net/2009/07/puppet-module-patterns/index.md) - [So much to say, so little time to say it!](https://serialized.net/2009/06/so-much-to-say-so-little-time-to-say-it/index.md) - [Great meal at Providence](https://serialized.net/2009/04/great-meal-at-providence/index.md) - [Wordpress Plugins and external services](https://serialized.net/2009/04/wordpress-plugins-and-external-services/index.md) - [Managing volatile files with puppet](https://serialized.net/2009/04/managing-volatile-files-with-puppet/index.md) - [Handy cooking technique: the supersweat](https://serialized.net/2009/04/handy-cooking-technique-the-supersweat/index.md) - [So sick of keys](https://serialized.net/2009/04/so-sick-of-keys/index.md) - [Embroidered lab coat fun](https://serialized.net/2009/04/embroidered-lab-coat-fun/index.md) - [Editing puppet files with vim: now with 'quickfix' support.](https://serialized.net/2009/03/editing-puppet-files-with-vim-now-with-quickfix-support/index.md) - [DTrace on OSX: incredibly useful.](https://serialized.net/2009/03/dtrace-on-osx-incredibly-useful/index.md) - [No pullup bar](https://serialized.net/2009/03/when-you-dont-even-have-a-pullup-bar/index.md) - [My approach to Inbox Zero with Mail.app](https://serialized.net/2009/03/my-approach-to-inbox-zero-with-mailapp/index.md) - [The littlest Thumper: OpenSolaris NAS on an MSI Wind PC](https://serialized.net/2009/02/the-littlest-thumper-opensolaris-nas-on-an-msi-wind-pc/index.md) - [Getting an OpenSolaris bootable USB drive](https://serialized.net/2009/02/getting-an-opensolaris-bootable-usb-drive/index.md) - [Useful Electronics: Cat Accident Preventer](https://serialized.net/2009/02/useful-electronics-cat-accident-preventer/index.md) - [Useful Firefox Addon: Tree Style Tab](https://serialized.net/2009/02/useful-firefox-addon-tree-style-tab/index.md) - [How to catch up on a 100-something-challenge](https://serialized.net/2009/01/how-to-catch-up-on-a-100-something-challenge/index.md) - [At the hospital, waiting to become a dad!](https://serialized.net/2009/01/at-the-hospital-waiting-to-become-a-dad/index.md) - [100 Burpee Challenge: PDF Calendar](https://serialized.net/2009/01/100-burpee-challenge-pdf-calendar/index.md) - [Permanently converting from textile markup](https://serialized.net/2009/01/permanently-converting-from-textile-markup/index.md) ### 2008 - [Everybody's blogging it so why can't I: Frequently used Mac Apps](https://serialized.net/2008/06/everybodys-blogging-it-so-why-cant-i-frequently-used-mac-apps/index.md) - [Slowing down songs on the Mac](https://serialized.net/2008/05/slowing-down-songs-on-the-mac/index.md) - [Scootering to work is awesome.](https://serialized.net/2008/05/scootering-to-work-is-awesome/index.md) - [Transparently rating iTunes tracks with Quicksilver](https://serialized.net/2008/04/transparently-rating-itunes-tracks-with-quicksilver/index.md) - [So much to learn, so little time.](https://serialized.net/2008/04/so-much-to-learn-so-little-time/index.md) - [I try to tell myself this won't be me someday.](https://serialized.net/2008/04/i-try-to-tell-myself-this-wont-be-me-someday/index.md) - [The most 'are you serious' moment of the year](https://serialized.net/2008/01/the-most-are-you-serious-moment-of-the-year/index.md) - [Interesting hacking around in python, OSX, and the iTunes Library](https://serialized.net/2008/01/interesting-hacking-around-in-python-osx-and-the-itunes-library/index.md) ### 2007 - [Scary times with my mac (and a fix!)](https://serialized.net/2007/12/scary-times-with-my-mac-and-a-fix/index.md) - [Awesome perl module for sending mail](https://serialized.net/2007/11/awesome-perl-module-for-sending-mail/index.md) - [Quick LAME tip: concatenate mp3's](https://serialized.net/2007/09/quick-lame-tip-concatenate-mp3s/index.md) - [Great looking Data Mining course](https://serialized.net/2007/08/great-looking-data-mining-course/index.md) - [Final trip stats](https://serialized.net/2007/07/final-trip-stats/index.md) - [Eastern Vacation Journal, Monday July 23rd](https://serialized.net/2007/07/eastern-vacation-journal-monday-july-23rd/index.md) - [Eastern Vacation Journal, July 24 - July 26](https://serialized.net/2007/07/eastern-vacation-journal-july-24-july-26/index.md) - [Eastern Vacation Journal, Stats Update](https://serialized.net/2007/07/eastern-vacation-journal-stats-update/index.md) - [Eastern Vacation Journal, Wednesday, July 18](https://serialized.net/2007/07/eastern-vacation-journal-wednesday-july-18/index.md) - [Eastern Vacation Journal, Tuesday, July 17](https://serialized.net/2007/07/eastern-vacation-journal-tuesday-july-17/index.md) - [Eastern Vacation Journal, Sunday, July 22](https://serialized.net/2007/07/eastern-vacation-journal-sunday-july-22/index.md) - [Eastern Vacation Journal, Monday, July 16](https://serialized.net/2007/07/eastern-vacation-journal-monday-july-16/index.md) - [Eastern Vacation Journal, Sunday, July 15](https://serialized.net/2007/07/eastern-vacation-journal-sunday-july-15/index.md) - [Eastern Vacation Journal, Saturday, July 14](https://serialized.net/2007/07/eastern-vacation-journal-saturday-july-14/index.md) ### 2006 - [Migrating live filesystems to LVM](https://serialized.net/2006/04/migrating-live-filesystems-to-lvm/index.md) - [strfry()](https://serialized.net/2006/03/strfry/index.md) - [WiFi Madness](https://serialized.net/2006/03/wifi-madness/index.md) - [Smoky Caramel Quesadilla](https://serialized.net/2006/03/smoky-caramel-quesadilla/index.md) - [Cat Logic](https://serialized.net/2006/02/cat-logic/index.md) - [Quick Hack: Charge-only USB Cable](https://serialized.net/2006/01/quick-hack-charge-only-usb-cable/index.md) ### 2005 - [Fighting Cholesterol](https://serialized.net/2005/12/fighting-cholesterol/index.md) - [Carbonasia](https://serialized.net/2005/11/carbonasia/index.md) - [1,000,000 calories](https://serialized.net/2005/10/1000000-calories/index.md) - [First meal in a new kitchen](https://serialized.net/2005/09/first-meal-in-a-new-kitchen/index.md) - [Quick iced coffee](https://serialized.net/2005/08/quick-iced-coffee/index.md) - [Exploring the world with GPS](https://serialized.net/2005/08/exploring-the-world-with-gps/index.md) - [Breakfast of Champions](https://serialized.net/2005/07/breakfast-of-champions/index.md) - [Britannia Rules](https://serialized.net/2005/07/britannia-rules/index.md) - [Recent Food Notes](https://serialized.net/2005/07/recent-food-notes/index.md) - [I love you Viking, but goodbye.](https://serialized.net/2005/07/i-love-you-viking-but-goodbye/index.md) - [Upgrading from FC1->FC4](https://serialized.net/2005/06/upgrading-from-fc1-fc4/index.md) - [Changing Gears](https://serialized.net/2005/05/changing-gears/index.md) - [Oak Tree in our Apartment](https://serialized.net/2005/05/oak-tree-in-our-apartment/index.md) - [vim and CVS todo lists](https://serialized.net/2005/04/vim-and-cvs-todo-lists/index.md) - [perl one-liner; 'randline'](https://serialized.net/2005/04/perl-one-liner-randline/index.md) - [The new 'comic book' thing](https://serialized.net/2005/04/the-new-comic-book-thing/index.md) - [Private RSS Feeds](https://serialized.net/2005/04/private-rss-feeds/index.md) - [features, features, features](https://serialized.net/2005/04/features-features-features/index.md) - [You can learn from my mistakes! (Peanut Meatballs)](https://serialized.net/2005/04/you-can-learn-from-my-mistakes-peanut-meatballs/index.md) - [Home-based hard drive recovery success story](https://serialized.net/2005/04/home-based-hard-drive-recovery-success-story/index.md) - [w00t, mammoth!](https://serialized.net/2005/03/w00t-mammoth/index.md) - [Neat idea: Tracking Packages with RSS](https://serialized.net/2005/03/neat-idea-tracking-packages-with-rss/index.md) - [Great Cookbook: Eric Gower's "The Breakaway Japanese Kitchen"](https://serialized.net/2005/03/great-cookbook-eric-gowers-the-breakaway-japanese-kitchen/index.md) - [Dear Feed On Feeds: I love you.](https://serialized.net/2005/03/dear-feed-on-feeds-i-love-you/index.md) - [Better Kitten Portrait](https://serialized.net/2005/03/better-kitten-portrait/index.md) - [Xnest remote KDE desktop](https://serialized.net/2005/02/xnest-remote-kde-desktop/index.md) - [Audio Van Eck Phreaking](https://serialized.net/2005/02/audio-van-eck-phreaking/index.md) ### 2004 - [Stephenson Google Memewatch](https://serialized.net/2004/12/stephenson-google-memewatch/index.md) - [Serious rsync timesaver](https://serialized.net/2004/11/serious-rsync-timesaver/index.md) - [Forget Pumpkin Pie.](https://serialized.net/2004/11/forget-pumpkin-pie/index.md) - [Lazy Perl stopwatch](https://serialized.net/2004/11/lazy-perl-stopwatch/index.md) - [Why do I get spam from Zombies?](https://serialized.net/2004/11/why-do-i-get-spam-from-zombies/index.md) - [Zaurus Woes](https://serialized.net/2004/09/zaurus-woes/index.md) - [Awesome Salad: Butternut/Feta/Arugula](https://serialized.net/2004/09/awesome-salad-butternutfetaarugula/index.md) - [Outbound SMTP blocks](https://serialized.net/2004/06/outbound-smtp-blocks/index.md) - [Espresso and Coke](https://serialized.net/2004/05/espresso-and-coke/index.md) - [xnee screwing up your X session?](https://serialized.net/2004/05/xnee-screwing-up-your-x-session/index.md)