A really, really big list of books I’ve heard of from friends, social media/booktok, jumped out at me at a bookstore, or came to me in a very vivid dream. A lot of these are LitRPG or Progression Fantasy , genres I’ve been enjoying for pure entertainment reading recently. If there are little quotes along with the book, it’s usually something that came along with the…
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?
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.
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 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.)
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.
Setting up a custom new tab page for your browser is a great way to make your most frequently accessed pages, and useful contextual information, a simple click away. This post explores a simple framework to turn fragments of markdown and HTML into a useful new tab experience.
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.
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 is a powerful cloud infrastructure tool, and it’s very extensible via gRPC sidecars. This post walks through building and connecting rate limiting and custom authentication/authorization services to Envoy in edge router mode.
This post provides an overview of a method I’m calling ‘The Magic Box’ – a thinking tool to help understand true system requirements, and help drive better system design and better documentation.
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.
I used Go to generate a custom SendGrid-themed sticker for my MacBook. And then, just for fun, used gopherjs to make that something you can play with online.
This is a crazy thought experiment – what if you embedded a database inside a lambda function? It turns out, it’s really useful for some use cases!
In most modern organizations, essential logs will be sent to an internal or hosted log management service. However, that may not yet be the case, or it may not be the case for 💯 of the logs. Over the last few years, I’ve found a tool called GoAccess incredibly useful in a variety of the more edge case scenarios, or for environments where full scale log infrastructure wasn’t needed. At…
When trying to make scalable computer systems, it’s almost impossible to fully simulate all the ways things can break. However, it’s very easy to simulate some of sorts of things that may break you – and it’s well worth learning at least the easy lessons early and often. (Especially if it prevents a late night freaked out phone call 😴). I speak to a lot of people who want…
Visualizing weeks with a Grid Heat Map I’ve often been a part of, or responsible for some kind of 24x7 team coverage, or an application or platform’s performance which needs to be solid 24x7. For example, imagine an operations team running a product out of multiple facilities in different countries. Are there certain times of day or week where we may have a coverage gap that needs to…
As previously discussed, this site is now being built with Hugo. The final chapter in the Epic Tale of the Blog Migration is where the site is actually hosted. These days I work with Amazon Web Services a lot, helping customers build scalable/available/“Cloudy” infrastructures for their projects, so it was a natural fit for me to use them for hosting the static site. There are many,…
In the design of my site, I decided to put a small block at the bottom of each page with links to the most 5 recent posts. Unfortunately, that choice had a bad side effect; every time I wrote a new post, it meant regenerating every single post page, and uploading them all. This lead to an interesting chain of ideas. Hm, what if I just injected that with Javascript after the page render? It’s…
As part of my recent Move to Hugo I wrote a few small tools that may be useful (with tweaking) for someone else doing the same, or moving from a similar static hosting platform. Basic configuration I was extremely happy to find that I could keep my existing permalink structure just by editing config.toml : [ permalinks ] post = "/:year/:month/:title/" Importing content The first part of content…
Well, I have once more decided to switch site creation engines, this time to Hugo . The source is all up in my serialized-hugo repository. Up until this point, I’ve been using Nikola , and it’s still truly excellent software. However, I wanted to give my theme a refresh to something very minimal, and I really liked a lot of the ideas on Hugo’s website, so I gave it a try.…
About me My name is Josh Barratt. serialized.net is my personal blog, which has taken too many forms over the years. The current incaration is running a very minimalist theme, and is powered by the Hugo static site generator. I’ve worked in a variety of companies in tech and entertainment, and I love to mix hands on work, leadership, strategy, and architecture. About the site The name…
I haven’t needed dynamic DNS service for a while, but I have a new use case that calls for it. I looked around at the existing free options, and had a flash of that “if you’re not paying for it, you’re the product” feeling. Suddenly, it hit me. I have DNS hosted somewhere that I can update via API. (AWS Route 53). This is easy! The only dependency is that your…
I’m a big fan of the recent rise of “Serverless” computing, spearheaded by AWS’s Lambda. Many people have pointed out that “Serverless is made of servers”, which is a fair point. (“Functions as a Service” is probably better.) But they aren’t servers that I have to pay for when I’m not using, keep patched, manage runtimes for, and so on.…
My favorite small appliance, bar none, is my Electric Pressure Cooker. I have the Instant Pot , but most modern electric cookers have the same properties that got me so excited. I was an early adopter of the pressure cooker, largely prompted by seeing them used on Iron Chef (the original Japanese version.) If they helped these chefs put world class food out in record time, surely they could be…
I have tried worryingly many methods for tracking my personal and professional projects, some of which I have written about here before. I finally boiled down what I wanted to: The ability to edit things with Vim. I feel so much more productive when writing in Vim, and even more productive when reorganizing things in Vim, that using another tool always felt frustrating. The ability to capture…
I previously blogged about being frustrated enough with slow docker stop times that I figured out how to speed them up. I ran into that issue while using docker-compose to build an application which used several AWS services. While it’s easy enough to develop ’live’ against AWS, if it was possible to do it locally, it seemed worth doing. I’ve uploaded a small ‘hello…
I’ve been working with docker-compose a lot, and it’s a really great tool. I can’t wait to see what they do with it! However, I found myself doing a lot of docker compose stop , docker compose start . Shutting down each container was taking approximately 10 seconds each, which, with my setup, meant waiting about a minute for a shutdown. This was certainly manageable, but also…
I’ve recently been working on a set of internal tools for automating common processes. It’s leveraging some great open source projects ( Fabric , Ansible , Docker , Vagrant , and more) but the core functionality is in a python package which we’re deploying to a private PyPi repo. (Not devpi yet, but hopefully soon.) There are quite a few internal users of our package, so we were…
In my role at Media Temple , I end up doing a lot of ad-hoc analysis, looking at things a diverse as how our infrastructures are growing, to changes in the market, to trying to figure out how we can help our customers better, and so on. As I discussed in the talk, it was becoming a more and more frustrating process. I’d increasingly seen people mentioning something called the IPython…
One of the things I like most about IPython Notebook is right there in the name – it’s a great notebook. Often I’ll figure out how to do something, be it talk to a certain API, format a graph in a particular way, parse a certain kind of file, and so on, in one of my notebooks. The problem is this: I have notebooks in lots directories around my machine. Each data…
During a time in my life when I was spending around 3 hours a day in a car, I developed a big appreciation for podcasts. Now that I don’t travel as much, I tend to listen to them when I’m doing otherwise rote chores or driving long distances. There’s a lot to love about the medium. Hosts aren’t constrained by trying to fit things in a few minute segments, or the need to…
I’ve recently been using IPython Notebook a lot. Enough that, if it was a chemical substance, people might be thinking about staging an intervention. It’s the ideal tool for a lot of the work I end up doing – ad-hoc data analysis (and conversion), illustrated examples of techniques, coaching/training, and so on. One issue that it currently has (at least in the stable v1 series)…
I was invited to speak at the All Things Open 2013 conference in Raleigh, NC, and took the opportunity to talk about a project I’ve been researching and experimenting with a lot recently: Docker . For a first year conference, it was fantastic. My hearty thanks to the organizers for taking such great care of us and curating a solid, interesting lineup. I got a lot of nice feedback about the…
note The author of Nikola liked this approach enough to integrate it into nikola core, so if you’re running a recent version you can just run nikola auto . I’m keeping the post up in case the approach is useful for others. I’ve blogged about using python-livereload before. It’s a great little tool which given a tree of directories and files, watches them for changes, then…
My brother got me a Raspberry Pi for my birthday (thanks!) – a device I’d wanted to get for some time, but hadn’t quite yet been able to justify. I think those sorts of things make the best gifts. You need just a few things to get a Pi up and running, but 2 things on the list (an HDMI-speaking display and an Ethernet port) don’t appear in the same room in my house.…
note If you are looking for the Octopress to Nikola migration script, Mike McCracken has improved it and moved it to it’s own repository . I updated my guide to migrating from Octopress to Nikola to reflect a new feature I submitted to Nikola, which is available in the latest release. Given a file on the disk like posts/coolstory.rst `PRETTY_URLS=False` `PRETTY_URLS=True` Output File…
I’ve really been enjoying using Ansible for my personal sysadmin tasks. Puppet is still great, and it’s what I still use in our large infrastructures, but for one-offs and personal services Ansible seems to really fit what I need. But today’s quick tip is something that took me a bit of time to track down – making a simple self-signed SSL certficate for a node. And,…
note Updated 2014-06-09 If you are looking for the Octopress to Nikola migration script, Mike McCracken has improved it and moved it to it’s own repository . Updated 2013-04-17 to reflect new nikola capabilities like PRETTY_URLS=True As I mention in the About page, I’ve moved blog engines quite a few times. Probably too many times. So I’ve learned from experience not to say that…
For the last 10 years, there’s been a pretty incredible live comedy show happening in Los Angeles, called Comedy Death-Ray, then Comedy Bang! Bang!. The live show recently ended, though a Podcast and an IFC Show live on. The show’s creator, Scott Aukerman, posted an almost-complete set list of every live show, and I was compelled to crunch it. I made a list of the number of different…
Update ( 2015-06-11 ) : There is now a nice installable package to make this even easier, sphinx-autobuild . All you have to do is $ pip install sphinx-autobuild $ sphinx-autobuild . _build/html Update ( 2013-04-23 ): livereload now has a ‘shell’ compiler, which simplifies the Guardfile . The post has been modified to reflect this. The big idea I’ve been working with Middleman…
At work we’re working on a new project made up of a number of python packages, but they’re all (for convenience) in the same repo. repo/ package1/ package2/ package3/ These are a group of modules and services which can be consumed by each other, and we’re rapidly adding functionality across all of them. (Putting meat on the walking skeleton .) This means that it can be easy for a…
The plugin I recently wrote about using Taskwarrior for tracking my tasks. One of the things I’d really liked about Omnifocus was the quick entry , which allowed (with a hotkey) for capturing tasks – even setting projects, contexts, priorities, due dates, etc. Even though I love working with Taskwarrior on the command line, I’m not always at the command line – and in fact…