<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>junctionbox.ca</title>
    <link>http://junctionbox.ca/</link>
    <atom:link href="http://junctionbox.ca/rss.xml" rel="self" type="application/rss+xml" />
    <description>JunctionBox.ca - Nathan Fisher's DevOps blog</description>
    <language>en-us</language>
    <pubDate>Thu, 05 Jun 2025 01:59:47 +0000</pubDate>
    <lastBuildDate>Thu, 05 Jun 2025 01:59:47 +0000</lastBuildDate>
    
    <item>
      <title>Matrix Multiplication</title>
      <link>http://junctionbox.ca/2023/03/25/algebra-matrix-multiplication.html</link>
      <pubDate>Sat, 25 Mar 2023 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2023/03/25/algebra-matrix-multiplication</guid>
      <description>Matrix multiplication is part of a series of calculations that lead into the fundamentals of machine learning. This article gives an overview of the properties of a matrix multiplication and provides an example function in Go.</description>
    </item>
    
    <item>
      <title>Dot Product</title>
      <link>http://junctionbox.ca/2023/03/25/algebra-dot-product.html</link>
      <pubDate>Sat, 25 Mar 2023 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2023/03/25/algebra-dot-product</guid>
      <description>A dot product is part of a series of calculations that lead into the fundamentals of machine learning. This article gives an overview of the properties of a dot product calculation and provides an example function in Go.</description>
    </item>
    
    <item>
      <title>Golang Testing Helper</title>
      <link>http://junctionbox.ca/2022/07/06/golang-testing-helper.html</link>
      <pubDate>Wed, 06 Jul 2022 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2022/07/06/golang-testing-helper</guid>
      <description>The receiver (*Testing).Helper was added back in 2017 but is an underrated tool in writing helper functions.</description>
    </item>
    
    <item>
      <title>Git Stacked Commits</title>
      <link>http://junctionbox.ca/2022/06/22/stacked-commits.html</link>
      <pubDate>Wed, 22 Jun 2022 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2022/06/22/stacked-commits</guid>
      <description>Ruminations on Git stacked commits.</description>
    </item>
    
    <item>
      <title>React Tabular Data</title>
      <link>http://junctionbox.ca/2022/05/30/react-tabular-data.html</link>
      <pubDate>Mon, 30 May 2022 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2022/05/30/react-tabular-data</guid>
      <description>React tabular components are often developed in what feels like a strange inversion of the rendering flow.</description>
    </item>
    
    <item>
      <title>Petit Parser for fun</title>
      <link>http://junctionbox.ca/2022/05/18/petit-parser.html</link>
      <pubDate>Wed, 18 May 2022 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2022/05/18/petit-parser</guid>
      <description>Petit parser is a small lightweight parser that I recently gave a spin to write a PromQL API.</description>
    </item>
    
    <item>
      <title>The Docker Hubpocalypse</title>
      <link>http://junctionbox.ca/2020/11/06/docker-hubocalypse.html</link>
      <pubDate>Fri, 06 Nov 2020 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2020/11/06/docker-hubocalypse</guid>
      <description>Docker is understandably changing it's terms of service for pull requests by anonymous accounts. This will have a big impact on many companies but there are a few approaches you can take to minimise the impact on your Kubernetes clusters.</description>
    </item>
    
    <item>
      <title>New Java Project With Bazel</title>
      <link>http://junctionbox.ca/2020/06/19/bazel-java-starter.html</link>
      <pubDate>Fri, 19 Jun 2020 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2020/06/19/bazel-java-starter</guid>
      <description>Bazel can be daunting to setup for your first project this series of posts aims to provide an approach to setting up a new Java project with Bazel.</description>
    </item>
    
    <item>
      <title>State of HTTP2</title>
      <link>http://junctionbox.ca/2020/06/13/state-of-http2.html</link>
      <pubDate>Sat, 13 Jun 2020 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2020/06/13/state-of-http2</guid>
      <description>The HTTP2 spec was published as an Internet Draft May 30th, 2015. Five years later and the capabilities seem to vary wildly across libraries. With HTTP3 fast approaching I was curious the current state of play for some of the bigger libraries I encounter regularly.</description>
    </item>
    
    <item>
      <title>Maven to Bazel Preparation</title>
      <link>http://junctionbox.ca/2019/06/20/Maven-to-bazel-prep.html</link>
      <pubDate>Thu, 20 Jun 2019 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2019/06/20/Maven-to-bazel-prep</guid>
      <description>Bazel is a fast build tool that works well with a monorepo. This post aims to provide some quick guidelines when migrating from maven to Bazel.</description>
    </item>
    
    <item>
      <title>Docker for Development</title>
      <link>http://junctionbox.ca/2018/04/06/Docker-for-Development.html</link>
      <pubDate>Fri, 06 Apr 2018 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2018/04/06/Docker-for-Development</guid>
      <description>Containers as a concept seem here to stay but there’s a lot of smart cookies exploring “what is the best utility of it for daily development” in particular the reason for this post was “what is the best practise for using security credentials in a container”. This post is my naive attempt at cracking that nut with the hope of getting some healthy feedback.</description>
    </item>
    
    <item>
      <title>Recreational GraphQL use</title>
      <link>http://junctionbox.ca/2018/03/01/Recreational-GraphQL-use.html</link>
      <pubDate>Thu, 01 Mar 2018 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2018/03/01/Recreational-GraphQL-use</guid>
      <description>GraphQLs hype seems to have hit a fever pitch in my tech circle. Like any new technology I figured it’s utility was somewhere between nil and unicorn pixie dust that will “revolutionise” the way I code.  The only way to find out was to roll up my sleeves and start coding.</description>
    </item>
    
    <item>
      <title>Clojure Speedup - Class Prefetching</title>
      <link>http://junctionbox.ca/2018/01/04/clojure-class-prefetching.html</link>
      <pubDate>Thu, 04 Jan 2018 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2018/01/04/clojure-class-prefetching</guid>
      <description>This is my second article in a series on Clojure start-up timings. The focus for this article is Class Prefetching.</description>
    </item>
    
    <item>
      <title>Clojure Start-up Timings</title>
      <link>http://junctionbox.ca/2017/12/26/clojure-startup-walkthrough.html</link>
      <pubDate>Tue, 26 Dec 2017 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2017/12/26/clojure-startup-walkthrough</guid>
      <description>Clojure start-up is sometimes painful. There's lots of methods to amortise the cost such as execution of commands in REPLs, and stand-by JVM's using nail servers and the like. This article aims to illustrate where that time is being spent.</description>
    </item>
    
    <item>
      <title>Buck on Travis CI</title>
      <link>http://junctionbox.ca/2017/10/01/buck-on-travis-ci.html</link>
      <pubDate>Sun, 01 Oct 2017 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2017/10/01/buck-on-travis-ci</guid>
      <description>Lightspeed is too slow. We'll have to go directly to ludicrous speed!! Buck is a ludicrously fast build tool but is not a widely available default on many of the OSS CI services. Here's how I got it up and running for Java.</description>
    </item>
    
    <item>
      <title>Joys of Java Logging</title>
      <link>http://junctionbox.ca/2017/01/20/java.util.logging-properties.html</link>
      <pubDate>Fri, 20 Jan 2017 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2017/01/20/java.util.logging-properties</guid>
      <description>I like to minimise my dependencies. Sadly the java.util.logging library is rather sparse on documentation when it comes to Uberjars. Read on for how I tamed this particular beast (more of a rabbit than a big cat).</description>
    </item>
    
    <item>
      <title>ARC Analysis using Pandas</title>
      <link>http://junctionbox.ca/2017/01/14/analysis-of-arc-2016.html</link>
      <pubDate>Sat, 14 Jan 2017 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2017/01/14/analysis-of-arc-2016</guid>
      <description>I've been intrigued about the idea of an Atlantic crossing by sailboat since I've lived in London. I used to race on friends boats back in Toronto for a number of years and I rather miss it in London.</description>
    </item>
    
    <item>
      <title>One REPL to Rule Them All</title>
      <link>http://junctionbox.ca/2016/09/11/clojure-one-repl-to-rule-them-all.html</link>
      <pubDate>Sun, 11 Sep 2016 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2016/09/11/clojure-one-repl-to-rule-them-all</guid>
      <description>A typical clojure invocation will gobble up close to 500MB. If you're running a ClojureScript project that'll be 1G for figwheel and a Clojure nREPL. I think I've found an improved workflow that reduces that memory pressure.</description>
    </item>
    
    <item>
      <title>Reagent Container Components</title>
      <link>http://junctionbox.ca/2016/09/03/clojurescript-reagent-reframe.html</link>
      <pubDate>Sat, 03 Sep 2016 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2016/09/03/clojurescript-reagent-reframe</guid>
      <description>In this article I cover off how I've adapted the React/Redux Presentational and Container Component pattern to ClojureScript using Reagent and Re-Frame.</description>
    </item>
    
    <item>
      <title>Clojure/Bitbucket Pipelines</title>
      <link>http://junctionbox.ca/2016/08/19/clojure-builds-bitbucket-pipelines.html</link>
      <pubDate>Fri, 19 Aug 2016 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2016/08/19/clojure-builds-bitbucket-pipelines</guid>
      <description>Bitbucket Pipelines is out and in Beta. I recently received an account but with so many distractions I didn't have an opportunity to dig into the offering until recently. Bitbucket Pipelines only supports a handful of languages directly but I'll show you how to quickly get Leiningen building your project using the Clojure Docker image.</description>
    </item>
    
    <item>
      <title>Clojure Testing</title>
      <link>http://junctionbox.ca/2016/08/02/clojure-testing.html</link>
      <pubDate>Tue, 02 Aug 2016 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2016/08/02/clojure-testing</guid>
      <description>Clojure start-up time can be expensive especially when using ClojureScript. This article is a quick post to aggregate what I use to improve the testing feedback cycle in Clojure.</description>
    </item>
    
    <item>
      <title>Uniquely Identify Me</title>
      <link>http://junctionbox.ca/2015/09/23/uniquely-identify-me.html</link>
      <pubDate>Wed, 23 Sep 2015 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2015/09/23/uniquely-identify-me</guid>
      <description>I recently revisited the landscape for autonomous and uncoordinated identity generation. I came across a couple of criticisms on the use of UUID's and I wanted to explore and validate those criticisms.</description>
    </item>
    
    <item>
      <title>Go(ing) to the Clouds</title>
      <link>http://junctionbox.ca/2015/05/02/golang-aws-cloudformation.html</link>
      <pubDate>Sat, 02 May 2015 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2015/05/02/golang-aws-cloudformation</guid>
      <description>AWS is one of the top cloud providers. Amazon CloudFormation makes it easier to manage an entire environment and Golang is an efficient language to develop that tooling in. Combining the two and you have an efficient tool to manage an environments life-cycle.</description>
    </item>
    
    <item>
      <title>R Simple Data Analysis</title>
      <link>http://junctionbox.ca/2013/06/27/R-data-analysis.html</link>
      <pubDate>Thu, 27 Jun 2013 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2013/06/27/R-data-analysis</guid>
      <description>R is a great tool for statistical analysis. It particularly comes in handy when you want to load and normalise data as illustrated here.</description>
    </item>
    
    <item>
      <title>Dropwizard Database Migrations</title>
      <link>http://junctionbox.ca/2013/05/10/dropwizard-liquibase-migrations.html</link>
      <pubDate>Fri, 10 May 2013 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2013/05/10/dropwizard-liquibase-migrations</guid>
      <description>Database migrations are a way to programmatically manage, apply and track changes to a databases schema.</description>
    </item>
    
    <item>
      <title>Calendar Tables in PostgreSQL</title>
      <link>http://junctionbox.ca/2013/04/09/calendar-tables-for-postgresql-data-warehousing.html</link>
      <pubDate>Tue, 09 Apr 2013 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2013/04/09/calendar-tables-for-postgresql-data-warehousing</guid>
      <description>Hadoop and MapReduce has made data warehousing all the rage but, don't give up on the trusty old RDBMS. Learn how to populate a calendar table using only PostgreSQL built-in features.</description>
    </item>
    
    <item>
      <title>Evolving Capsitrano Deployments</title>
      <link>http://junctionbox.ca/2013/03/21/evolving-capistrano-deployments.html</link>
      <pubDate>Thu, 21 Mar 2013 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2013/03/21/evolving-capistrano-deployments</guid>
      <description>Is capistrano the best way to handle your deployments? You may want to consider an alternative approach for modern rails apps.</description>
    </item>
    
    <item>
      <title>Puppet Guidelines</title>
      <link>http://junctionbox.ca/2013/01/26/puppet-configuration-management-guidelines.html</link>
      <pubDate>Sat, 26 Jan 2013 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2013/01/26/puppet-configuration-management-guidelines</guid>
      <description>Puppet is a configuration management tool that induces a love/hate relationship in many delivery teams. This guideline provides some practises that I've found beneficial for maintaining manifests.</description>
    </item>
    
    <item>
      <title>S3 Rewrite Rule Limit</title>
      <link>http://junctionbox.ca/2013/01/09/s3-rewrite-rule-limit.html</link>
      <pubDate>Wed, 09 Jan 2013 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2013/01/09/s3-rewrite-rule-limit</guid>
      <description>Amazon S3 rewrite rules are limited and not explicitly defined in the documentation where you would expect. Find out the limit in this article.</description>
    </item>
    
    <item>
      <title>DevOps Applied</title>
      <link>http://junctionbox.ca/2012/11/14/devops-geeknight.html</link>
      <pubDate>Wed, 14 Nov 2012 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2012/11/14/devops-geeknight</guid>
      <description>A 45m talk on the tools and practises used in DevOps from build to deployment to monitoring.</description>
    </item>
    
    <item>
      <title>Hidden Cost of the Internet</title>
      <link>http://junctionbox.ca/2012/08/18/energy-cost-of-the-internet.html</link>
      <pubDate>Sat, 18 Aug 2012 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2012/08/18/energy-cost-of-the-internet</guid>
      <description>Servers are power hungry, this article explores just how hungry those 33m servers that run the internet are.</description>
    </item>
    
    <item>
      <title>Kings College, Cambridge</title>
      <link>http://junctionbox.ca/2012/08/04/kings-college-and-the-power-of-play.html</link>
      <pubDate>Sat, 04 Aug 2012 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2012/08/04/kings-college-and-the-power-of-play</guid>
      <description>A brief post with with photos from Kings College in Cambridge.</description>
    </item>
    
    <item>
      <title>Branching by Abstraction</title>
      <link>http://junctionbox.ca/2011/06/18/branching-by-abstraction.html</link>
      <pubDate>Sat, 18 Jun 2011 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2011/06/18/branching-by-abstraction</guid>
      <description>Branching by Abstraction is like milk and honey for Continuous Delivery. This article discusses some of the issues and motivation for using it.</description>
    </item>
    
    <item>
      <title>Feature Flags 101</title>
      <link>http://junctionbox.ca/2011/05/28/feature-flags-101.html</link>
      <pubDate>Sat, 28 May 2011 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2011/05/28/feature-flags-101</guid>
      <description>Feature Flags aid Continuous Delivery by allowing the release of incomplete or untested features. See the simple example in this post.</description>
    </item>
    
    <item>
      <title>Bootstrapping Windows</title>
      <link>http://junctionbox.ca/2011/02/10/bootstrapping-windows.html</link>
      <pubDate>Thu, 10 Feb 2011 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2011/02/10/bootstrapping-windows</guid>
      <description></description>
    </item>
    
    <item>
      <title>Initial Configuration of Puppetd on OS X</title>
      <link>http://junctionbox.ca/2010/10/05/initial-configuration-of-puppetd-on-os-x.html</link>
      <pubDate>Tue, 05 Oct 2010 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2010/10/05/initial-configuration-of-puppetd-on-os-x</guid>
      <description></description>
    </item>
    
    <item>
      <title>Dance and Pivot SQL Style</title>
      <link>http://junctionbox.ca/2010/08/01/dance-and-pivot-sql-style.html</link>
      <pubDate>Sun, 01 Aug 2010 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2010/08/01/dance-and-pivot-sql-style</guid>
      <description></description>
    </item>
    
    <item>
      <title>Simplified TDD with Sinatra autotest</title>
      <link>http://junctionbox.ca/2010/04/17/simplified-tdd-with-sinatra-autotest.html</link>
      <pubDate>Sat, 17 Apr 2010 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2010/04/17/simplified-tdd-with-sinatra-autotest</guid>
      <description></description>
    </item>
    
    <item>
      <title>Dom A Regato, My Tests Are Auto</title>
      <link>http://junctionbox.ca/2010/03/24/dom-a-regato-my-tests-are-auto.html</link>
      <pubDate>Wed, 24 Mar 2010 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2010/03/24/dom-a-regato--my-tests-are-auto</guid>
      <description></description>
    </item>
    
    <item>
      <title>Fresh Book It</title>
      <link>http://junctionbox.ca/2010/02/23/fresh-book-it.html</link>
      <pubDate>Tue, 23 Feb 2010 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2010/02/23/fresh-book-it</guid>
      <description></description>
    </item>
    
    <item>
      <title>Approaching bliss; TDD+PHP+MVC</title>
      <link>http://junctionbox.ca/2009/12/12/approaching-bliss-tdd+php+mvc.html</link>
      <pubDate>Sat, 12 Dec 2009 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2009/12/12/approaching-bliss--tdd+php+mvc</guid>
      <description></description>
    </item>
    
    <item>
      <title>Kick dependence, here's an injection</title>
      <link>http://junctionbox.ca/2009/11/03/kick-dependence-here-s-an-injection.html</link>
      <pubDate>Tue, 03 Nov 2009 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2009/11/03/kick-dependence--here-s-an-injection</guid>
      <description></description>
    </item>
    
    <item>
      <title>Tripping over Rubies while Camping</title>
      <link>http://junctionbox.ca/2009/06/17/tripping-over-rubies-while-camping.html</link>
      <pubDate>Wed, 17 Jun 2009 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2009/06/17/tripping-over-rubies-while-camping</guid>
      <description></description>
    </item>
    
    <item>
      <title>REST + less weekend while Camping</title>
      <link>http://junctionbox.ca/2008/09/23/rest-+-less-weekend-while-camping.html</link>
      <pubDate>Tue, 23 Sep 2008 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2008/09/23/rest-+-less-weekend-while-camping</guid>
      <description></description>
    </item>
    
    <item>
      <title>Sprout an AsWing</title>
      <link>http://junctionbox.ca/2008/09/19/sprout-an-aswing.html</link>
      <pubDate>Fri, 19 Sep 2008 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2008/09/19/sprout-an-aswing</guid>
      <description></description>
    </item>
    
    <item>
      <title>Ruby be nimble, Ruby be SWF...</title>
      <link>http://junctionbox.ca/2008/09/04/ruby-be-nimble-ruby-be-swf.html</link>
      <pubDate>Thu, 04 Sep 2008 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2008/09/04/ruby-be-nimble--ruby-be-swf---</guid>
      <description></description>
    </item>
    
    <item>
      <title>Watch for Flying Bitmaps</title>
      <link>http://junctionbox.ca/2008/08/26/watch-for-flying-bitmaps.html</link>
      <pubDate>Tue, 26 Aug 2008 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2008/08/26/watch-for-flying-bitmaps</guid>
      <description></description>
    </item>
    
    <item>
      <title>Beware the Garbage Man's Scope</title>
      <link>http://junctionbox.ca/2008/07/25/beware-the-garbage-man-s-scope.html</link>
      <pubDate>Fri, 25 Jul 2008 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2008/07/25/beware-the-garbage-man-s-scope</guid>
      <description></description>
    </item>
    
    <item>
      <title>Regular Expression &amp; Parsed Elation</title>
      <link>http://junctionbox.ca/2008/07/04/regular-expression-parsed-elation.html</link>
      <pubDate>Fri, 04 Jul 2008 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2008/07/04/regular-expression---parsed-elation</guid>
      <description></description>
    </item>
    
    <item>
      <title>Subversive Lyrics with Subversion</title>
      <link>http://junctionbox.ca/2008/06/26/subversive-lyrics-with-subversion.html</link>
      <pubDate>Thu, 26 Jun 2008 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2008/06/26/subversive-lyrics-with-subversion</guid>
      <description></description>
    </item>
    
    <item>
      <title>Scrollpane Woes to Fix the Flow</title>
      <link>http://junctionbox.ca/2008/06/26/scrollpane-woes-to-fix-the-flow.html</link>
      <pubDate>Thu, 26 Jun 2008 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2008/06/26/scrollpane-woes-to-fix-the-flow</guid>
      <description></description>
    </item>
    
    <item>
      <title>Rsync Daily Snapshots</title>
      <link>http://junctionbox.ca/2006/04/17/rsync-daily-snapshots.html</link>
      <pubDate>Mon, 17 Apr 2006 00:00:00 +0000</pubDate>
      <guid>http://junctionbox.ca/2006/04/17/rsync-daily-snapshots</guid>
      <description></description>
    </item>
    
  </channel> 
</rss>
