Doug's Dabblings | Quick thoughts on stuff I'm playing with https://hunleyd.github.io/ Recent content on Doug's Dabblings | Quick thoughts on stuff I'm playing with Hugo en-us Sun, 16 Mar 2025 16:44:03 +0000 The End Is Nigh https://hunleyd.github.io/posts/the-end-is-nigh/ Sun, 16 Mar 2025 16:44:03 +0000 https://hunleyd.github.io/posts/the-end-is-nigh/ <p>Six years ago, on January 2, 2019, we tagged the 1.0 release of <a href="https://www.crunchydata.com/products/crunchy-high-availability-postgresql">Crunchy Postgres via Automation</a> (then known as Crunchy HA). Originally a set of Ansible roles, the product grew and morphed into the Ansible collection that it is <a href="https://hunleyd.github.io/tags/cpa">today</a> over the course of fourteen major releases (in the 1.x line) with contributions from a dozen individuals. And now, with the release of 1.15-17 on Mar 7th, the 1.x line is officially on life support as we phase it out and move customers to our 2.x line.</p> I Heard You Like Releases in Your Releases https://hunleyd.github.io/posts/i-heard-you-like-releases-in-your-releases/ Sat, 01 Mar 2025 16:03:48 +0000 https://hunleyd.github.io/posts/i-heard-you-like-releases-in-your-releases/ <p>On Thursday, Feb 13th, the PostgreSQL Global Development Group (PGDG) released their regularly scheduled minor releases of <a href="https://www.postgresql.org">PostgreSQL</a>: 17.3, 16.7, 15.11, 14.16, and 13.19. These releases, among other bugfixes, resolved a CVE within PostgreSQL, so a sense of urgency in releasing them to our customers was bred. This, in turn, kicked off a flurry of activity within <a href="https://www.crunchydata.com/">Crunchy</a> as we readied <a href="https://www.crunchydata.com/products/crunchy-high-availability-postgresql">Crunchy Postgres via Automation</a> (CPA) for release to ship these new PostgreSQL releases. As we dove into the release process and began our internal testing, word came down from PGDG that the CVE fix was flawed and new PostgreSQL releases would be forthcoming.</p> Coming Soon to CPA - Patroni 3.x https://hunleyd.github.io/posts/coming-soon-to-cpa---patroni-3.x/ Sat, 22 Feb 2025 16:17:04 +0000 https://hunleyd.github.io/posts/coming-soon-to-cpa---patroni-3.x/ <p>Up next on the list of changes coming soon to <a href="https://www.crunchydata.com/products/crunchy-high-availability-postgresql">Crunchy Postgres via Automation</a> (CPA), <a href="https://github.com/patroni/patroni/">Patroni</a> 3.x! If you want to know what else is &lsquo;coming soon&rsquo;, you can catch up <a href="https://hunleyd.github.io/tags/cpa">here</a>.</p> Coming Soon to CPA - HAProxy 3.0.x https://hunleyd.github.io/posts/coming-soon-to-cpa---haproxy-3.0.x/ Sat, 15 Feb 2025 18:58:38 +0000 https://hunleyd.github.io/posts/coming-soon-to-cpa---haproxy-3.0.x/ <p>We&rsquo;re back today with more &lsquo;insider info&rsquo; on upcoming changes to <a href="https://www.crunchydata.com/products/crunchy-high-availability-postgresql">Crunchy Postgres via Automation</a> (CPA). If you missed any of the prior posts, you can catch up <a href="https://hunleyd.github.io/tags/cpa">here</a>. We recently committed support for <a href="https://www.haproxy.org/">HAProxy</a> 3.0.x into <code>development</code> and changed our default HAProxy configuration around to accommodate the version bump.</p> Coming Soon to CPA - Updated OSes and Ansible https://hunleyd.github.io/posts/coming-soon-to-cpa---updated-oses-and-ansible/ Sun, 19 Jan 2025 21:10:27 +0000 https://hunleyd.github.io/posts/coming-soon-to-cpa---updated-oses-and-ansible/ <p>Continuing the <a href="https://www.crunchydata.com/products/crunchy-high-availability-postgresql">Crunchy Postgres via Automation</a> (CPA) blog <a href="https://hunleyd.github.io/tags/cpa">series</a>, we&rsquo;re back today with another &lsquo;Coming Soon&rsquo; entry, where we discuss items that have been merged into <code>development</code> and will appear in a future release. This time around, we&rsquo;re adding a new supported OS platform, dropping an existing OS platform, and raising the minimal version of ansible-core.</p> Coming Soon to CPA - Package Pinning https://hunleyd.github.io/posts/coming-soon-to-cpa---package-pinning/ Sat, 11 Jan 2025 16:50:29 +0000 https://hunleyd.github.io/posts/coming-soon-to-cpa---package-pinning/ <p>Welcome back to this blog <a href="https://hunleyd.github.io/tags/cpa">series</a> on <a href="https://www.crunchydata.com/products/crunchy-high-availability-postgresql">Crunchy Postgres via Automation</a> (CPA). We&rsquo;re doing something a little different today; we&rsquo;re going to discuss something that is merged in <code>development</code> but isn&rsquo;t released yet: package pinning.</p> Anatomy of a Collection; Dissecting CPA https://hunleyd.github.io/posts/anatomy-of-a-collection-dissecting-cpa/ Sat, 23 Nov 2024 17:49:32 +0000 https://hunleyd.github.io/posts/anatomy-of-a-collection-dissecting-cpa/ <p>Prior posts in this <a href="https://hunleyd.github.io/tags/cpa">series</a> have discussed the <a href="https://www.crunchydata.com/products/crunchy-high-availability-postgresql">Crunchy Postgres via Automation</a> product, the team behind it, and some of our processes and tooling. This week, we&rsquo;re going to dive into the collection itself.</p> On CVEs, BoMs, and Releases https://hunleyd.github.io/posts/on-cves--boms--and-releases/ Fri, 15 Nov 2024 17:10:07 +0000 https://hunleyd.github.io/posts/on-cves--boms--and-releases/ <p>As previously mentioned in this <a href="https://www.crunchydata.com/products/crunchy-high-availability-postgresql">Crunchy Postgres via Automation</a> <a href="https://hunleyd.github.io/tags/cpa">series</a>, we now use a Bill of Materials (BoM) to ship tested-together versions of the components that comprise the CPA product. Accordingly, when the PostgreSQL Global Development Group (PGDG) releases new versions of PostgreSQL as they did <a href="https://www.postgresql.org/about/news/postgresql-171-165-159-1414-1317-and-1221-released-2955/">yesterday</a>, we have to iterate our BoMs to include these releases.</p> Crunchy Postgres via Automation V2.2 https://hunleyd.github.io/posts/crunchy-postgres-via-automation-v2.2/ Fri, 08 Nov 2024 17:23:23 +0000 https://hunleyd.github.io/posts/crunchy-postgres-via-automation-v2.2/ <p>Continuing our <a href="https://hunleyd.github.io/tags/cpa/">series</a> on <a href="https://www.crunchydata.com/products/crunchy-high-availability-postgresql">Crunchy Postgres via Automation</a>, we&rsquo;re here this week to discuss the highlights of our latest release line, v2.2. If you haven&rsquo;t already, you can catch up on <a href="https://hunleyd.github.io/posts/crunchy-postgres-via-automation-what-s-new-in-v2/">the differences between v1 and v2</a> and then come back, we&rsquo;ll wait for you.</p> Sometimes You Should Blame Your Tools https://hunleyd.github.io/posts/sometimes-you-should-blame-your-tools/ Fri, 01 Nov 2024 17:06:35 +0000 https://hunleyd.github.io/posts/sometimes-you-should-blame-your-tools/ <p>Welcome back to our blog <a href="https://hunleyd.github.io/tags/cpa/">series</a> discussing <a href="https://hunleyd.github.io/posts/crunchy-postgres-via-automation-what-s-new-in-v2/">Crunchy Postgres via Automation</a> (CPA) and the team behind it. This week, we&rsquo;re going to talk about the tooling used by the team and discuss some of the agile-lite processes we&rsquo;ve adopted.</p> Reconstructing a Development Team https://hunleyd.github.io/posts/reconstructing-a-development-team/ Fri, 18 Oct 2024 14:29:47 +0000 https://hunleyd.github.io/posts/reconstructing-a-development-team/ <p>Welcome to our third installment in this blog <a href="https://hunleyd.github.io/tags/cpa/">series</a> discussing <a href="https://hunleyd.github.io/posts/crunchy-postgres-via-automation-what-s-new-in-v2/">Crunchy Postgres via Automation</a>(CPA). This week, we&rsquo;re going to talk about the team that I work with, it&rsquo;s membership, its structure, the responsibilities, etc.</p> Crunchy Postgres via Automation: What's new in V2 https://hunleyd.github.io/posts/crunchy-postgres-via-automation-what-s-new-in-v2/ Fri, 11 Oct 2024 14:07:29 +0000 https://hunleyd.github.io/posts/crunchy-postgres-via-automation-what-s-new-in-v2/ <p>As discussed <a href="https://hunleyd.github.io/posts/automating-highly-available-postgresql-clusters/">last week</a>, I&rsquo;m back today to highlight the major differences between the 1.x and 2.x lines of <a href="https://www.crunchydata.com/products/crunchy-high-availability-postgresql">Crunchy Postgres via Automation</a>(CPA).</p> Automating Highly Available PostgreSQL Clusters https://hunleyd.github.io/posts/automating-highly-available-postgresql-clusters/ Fri, 04 Oct 2024 14:07:29 +0000 https://hunleyd.github.io/posts/automating-highly-available-postgresql-clusters/ <p>In March of &lsquo;23, I took over as the Lead Architect of my employer&rsquo;s Ansible-based automation for creating highly-available PostgreSQL clusters.<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> Since then, I&rsquo;ve been responsible for advancing the product: refactoring the code, adding functionality, rethinking some of its core attributes, etc. I&rsquo;ve also taken some steps to informally restructure the team that works on things to better divide up responsibilities and make everyone more productive.</p> Meetings, menu bars, and focus modes https://hunleyd.github.io/posts/meetings--menu-bars--and-focus-modes/ Sat, 25 Mar 2023 17:23:08 -0400 https://hunleyd.github.io/posts/meetings--menu-bars--and-focus-modes/ <p>We recently moved all our issue tracking at work from <a href="https://github.com">GitHub Issues</a> to <a href="https://linear.app">Linear</a> for one of the products that I work on. While playing around with Linear, I stumbled upon their <a href="https://reclaim.ai">Reclaim.AI</a> integration and immediately fell in love. I quickly set about connecting the two tools, tweaking my settings, and even opened some issues w/ the Support teams of both products. After about a week, I finally had everything up and running exactly how I wanted it. During our sprint planning meeting, I simply pulled whatever Linear issues I wanted to work on into the cycle, and then let Reclaim schedule my work based on priority and points. While I could probably write an entire blog post about these two apps, these tools are really just the &lsquo;setting&rsquo; for this post. You see, now that I had all my work being scheduled for me by a AI, I found that I needed to have my calendar open at all times to see what I was supposed to be working on. I <em>hate</em> having apps open (or extra tabs in a browser) when I can have the info presented to me in some other fashion. Thankfully, I had previously discovered <a href="https://github.com/leits/MeetingBar">MeetingBar</a> and was already a huge fan. So now I have MeetingBar running in my OSX menu bar showing me (via Reclaim) exactly what I&rsquo;m supposed to be working on (or what I&rsquo;m about to start working on). I was living the dream.</p> Introducing gwt https://hunleyd.github.io/posts/introducing-gwt/ Sun, 22 Jan 2023 11:11:56 +0000 https://hunleyd.github.io/posts/introducing-gwt/ <p>After working on it for a bit, and convincing a coworker to use it and provide feedback, I&rsquo;ve finally made <a href="https://github.com/hunleyd/gwt">gwt</a> an actual thing. I expect no one will actually use it, but whatever, it&rsquo;s up for the world to critique.</p> I said brr it's cold in here https://hunleyd.github.io/posts/i-said-brr-it-s-cold-in-here/ Wed, 25 Aug 2021 15:33:18 +0000 https://hunleyd.github.io/posts/i-said-brr-it-s-cold-in-here/ <p>I don&rsquo;t like the heat. I hate being hot. Always have. I&rsquo;m the guy who will leave the windows open when others have already turned on the furnace. And I used to be guy who ran the AC all the time and ran it at a very low temp. Recently though, I&rsquo;ve come to realize that as long as it&rsquo;s colder in here than it is out there, it&rsquo;s all good. However, the delta has be more than just a few degrees. And I need the fan on.</p> Automations, timers, and you https://hunleyd.github.io/posts/automations--timers--and-you/ Mon, 16 Aug 2021 13:48:35 +0000 https://hunleyd.github.io/posts/automations--timers--and-you/ <p>For a while now, I&rsquo;ve been automating my apartment using the <a href="https://www.home-assistant.io/docs/automation/basics/">automations</a> component of <a href="https://www.home-assistant.io">Home Assistant</a>. In fact, I had amassed quite the collection of automations and was starting to have a problem keeping track of them all and their various interactions (intentional or otherwise). So earlier this year when Home Assistant introduced <a href="https://www.home-assistant.io/blog/2021/04/07/release-20214/#automation-debugging">automation debugging</a> I decided to sit down and refactor the whole thing.</p> Generating DNS noise https://hunleyd.github.io/posts/generating-dns-noise/ Sat, 14 Aug 2021 16:27:09 +0000 https://hunleyd.github.io/posts/generating-dns-noise/ <p><a href="https://en.wikipedia.org/wiki/Domain_Name_System">DNS</a> is one of those thing most people never think about. It&rsquo;s one of those things in the background that quietly does its job and no one pays it no mind. Which is why it&rsquo;s surprising to people when they discover that if their DNS traffic can be logged, a very informative picture of them can be created.</p> Ricing it up https://hunleyd.github.io/posts/ricing-it-up/ Sat, 31 Jul 2021 09:12:54 +0000 https://hunleyd.github.io/posts/ricing-it-up/ <p>One of the reasons that I find myself going back to Gentoo is that you compile the entire system <em>for your hardware</em> which, in theory, leads to the best performance possible. So the first task that I undertook when switching the NUC over to it was to figure out what compile options ClearLinux uses. Once I had figured those settings out, I then decided to use LTO optimization for all packages that support it. However, I didn&rsquo;t want to use the <a href="https://github.com/gentoo-mirror/lto-overlay">LTO overlay</a>.</p> I'm blue da ba dee da ba di https://hunleyd.github.io/posts/i-m-blue-da-ba-dee-da-ba-di/ Mon, 26 Jul 2021 12:47:03 +0000 https://hunleyd.github.io/posts/i-m-blue-da-ba-dee-da-ba-di/ <p>An update on my use <a href="https://www.home-assistant.io/">Home Assistant</a>, I&rsquo;m no longer running it inside Podman as detailed <a href="https://hunleyd.github.io/posts/It-s-Podman-man/">here</a>. In fact, I&rsquo;m no longer running it on the NUC at all. Instead, I bought myself a <a href="https://www.home-assistant.io/blue">Home Assistant Blue</a>. I bought the &lsquo;dev mode&rsquo; version just in case I want to tinker with things further, but I could have gone with the &lsquo;Zen mode&rsquo; version just as easily.</p> Hello again old friend https://hunleyd.github.io/posts/hello-again-old-friend/ Sat, 24 Jul 2021 10:04:49 +0000 https://hunleyd.github.io/posts/hello-again-old-friend/ <p>I <a href="https://hunleyd.github.io/posts/Bye-Pi-Hello-NUC">posted</a> a year ago about dropping ClearLinux and switching to Ubuntu Server on my NUC. While that little experiment was fun, it didn&rsquo;t last long. I&rsquo;m not entirely sure what it is about my brain/personality, but I just do not like any of the binary Linux distros out there for my own long-term use so I went back to my old friend, Gentoo.</p> It's Podman, man https://hunleyd.github.io/posts/it-s-podman-man/ Thu, 30 Jul 2020 12:44:51 +0000 https://hunleyd.github.io/posts/it-s-podman-man/ <p>As mentioned (very) briefly in other posts, I run <a href="https://www.home-assistant.io/">Home Assistant</a> as the &lsquo;control hub&rsquo; for all my &ldquo;smart&rdquo; devices in my home. I originally ran it via their &lsquo;HASSOS&rsquo; Docker image but was never really happy with it. So when I most recently rebuilt my NUC, I decided to give this Podman thing a look. And so far, I seem to like it better. I&rsquo;m still not entirely sold on this whole container bullshit, but whatever ;)</p> Bye Pi, Hello NUC https://hunleyd.github.io/posts/bye-pi-hello-nuc/ Sun, 19 Jul 2020 12:14:03 +0000 https://hunleyd.github.io/posts/bye-pi-hello-nuc/ <p>About a year ago (Sep 2019 to be precise) I decided to end my Raspberry Pi experiment and begin a new experiment with an Intel NUC. It&rsquo;s not that the Pi is incapable or anything. I really like the platform and will probably find something else to use it for. But my computing needs/desires had changed and I was looking at having a small fleet of them (I already had 2 and was contemplating more) and I really didn&rsquo;t want to go that route. So I looked around, did some research, saved up some money and ended up with:</p> tuned, PG, and you https://hunleyd.github.io/posts/tuned-pg-and-you/ Tue, 23 Jun 2020 18:22:44 +0000 https://hunleyd.github.io/posts/tuned-pg-and-you/ <p>We&rsquo;ve had a small flurry of customers asking about tuning their OS for the best PostgreSQL performance. While the answer to this question is always &rsquo;that depends on your hardware and workload&rsquo; and involves a lot of iteration between changing a setting and benchmarking, I thought I&rsquo;d take a moment to point out that once you do manage to dial-in the settings, you should be writing a profile and deploying to your systems for <code>tuned</code> to make use of. Please, for the love of $diety, stop editing <code>sysctl.conf</code> and friends!</p> The continuing adventures of Mom cutting the cord https://hunleyd.github.io/posts/the-continuing-adventures-of-mom-cutting-the-cord/ Thu, 07 Feb 2019 07:24:43 +0000 https://hunleyd.github.io/posts/the-continuing-adventures-of-mom-cutting-the-cord/ <p>As a belated update to <a href="https://hunleyd.github.io/posts/Mom-cuts-the-cord/">this</a> post, Mom has told DirecTV to completely go screw and she’s moved over to <a href="https://www.philo.com">Philo</a> where she’s currently loving life.</p> pgBackRest 2.08 and macOS Mojave https://hunleyd.github.io/posts/pgbackrest-2.08-and-macos-mojave/ Fri, 04 Jan 2019 08:30:44 +0000 https://hunleyd.github.io/posts/pgbackrest-2.08-and-macos-mojave/ <p>UPDATE: My reasoning was incorrect below. It wasn’t the moving of some of the lock code to C that caused the issue. It was moving <code>-D_POSIX_C_SOURCE</code> up to the <code>Makefile</code> that caused the problem. The solution below is still the same though.</p> pgBackRest 2.07 and macOS Mojave https://hunleyd.github.io/posts/pgbackrest-2.07-and-macos-mojave/ Fri, 16 Nov 2018 06:12:31 +0000 https://hunleyd.github.io/posts/pgbackrest-2.07-and-macos-mojave/ <p>pgBackRest 2.07 was <a href="https://twitter.com/pgBackRest/status/1063458495700320258">announced</a> today. As usual, I immediately downloaded it and tried to get it up and running on my MacBook (currently running Mojave). It wasn’t as straightforward as one might hope, and the online instructions assume a <em>Linux</em> system, so I figured I’d write this up for anyone else attempting the same.</p> Monitoring pgBackRest with tail_n_mail https://hunleyd.github.io/posts/monitoring-pgbackrest-with-tail_n_mail/ Mon, 24 Sep 2018 10:58:22 +0000 https://hunleyd.github.io/posts/monitoring-pgbackrest-with-tail_n_mail/ <p>After a lively discussion at work today about monitoring tools and use cases, I decided to see if I could use <a href="https://bucardo.org/tail_n_mail/">tail_n_mail</a>, which I already use to monitor my PostgreSQL logs, to monitor my pgBackRest logs. It turns out that it can, and can do so fairly trivially.</p> pgBouncer and auth pass-through https://hunleyd.github.io/posts/pgbouncer-and-auth-pass-thru/ Tue, 07 Aug 2018 12:53:28 +0000 https://hunleyd.github.io/posts/pgbouncer-and-auth-pass-thru/ <p>I&rsquo;ve noticed several individuals inquiring lately about pgBouncer and how they can avoid putting all users and their passwords in it&rsquo;s <code>auth_file</code>. After the most recent such inquiry (hi Richard!) I decided I&rsquo;d write this&quot;post&quot;to hopefully make it clearer how to use &lsquo;pass-through auth&rsquo; and avoid maintaining your users and their passwords in an external file. So let&rsquo;s see what this takes, shall we?</p> Locking it down https://hunleyd.github.io/posts/locking-it-down/ Mon, 18 Jun 2018 12:45:02 +0000 https://hunleyd.github.io/posts/locking-it-down/ <p>I finally saved up and bought myself a smart lock at the end of April. I ended up getting the <a href="https://smile.amazon.com/gp/product/B0752V8D8D">August Smart Lock Pro</a> with the Connect module. Now that I&rsquo;ve used it for a month and a half, I feel like I can finally review it.</p> Mom cuts the cord https://hunleyd.github.io/posts/mom-cuts-the-cord/ Thu, 31 May 2018 11:12:06 +0000 https://hunleyd.github.io/posts/mom-cuts-the-cord/ <p>OK folks, it finally happened. My mother has cut the cord and now gets all her TV needs satisfied via OTA and OTT. Yes, you heard right. My mother. The same woman who spent the better part of a decade (I cut the cord in late 2008) saying how she didn&rsquo;t understand how I could not have cable. Someone check the temperature in Hell will ya? :)</p> Upgrading PostgreSQL from 9.4 to 10.3 with pglogical https://hunleyd.github.io/posts/upgrading-postgresql-from-9.4-to-10.3-with-pglogical/ Thu, 05 Apr 2018 13:15:46 +0000 https://hunleyd.github.io/posts/upgrading-postgresql-from-9.4-to-10.3-with-pglogical/ <p>I recently helped a customer upgrade their PostgreSQL instance from 9.4.x on RHEL to 10.x on Ubuntu. While it initially sounded daunting, the use of <code>pglogical</code> and some planning actually made it rather straightforward. While there&rsquo;s nothing new or original in this post, I still felt compelled to write it up both for posterity&rsquo;s sake and for anyone else that might find the info useful as an example in their own endeavors.</p> Car(e) free in Columbus https://hunleyd.github.io/posts/car-free-in-columbus/ Mon, 05 Mar 2018 15:55:32 +0000 https://hunleyd.github.io/posts/car-free-in-columbus/ <p>Last year, at the beginning of March, I turned in my <a href="http://www.autoguide.com/blog/wp-content/uploads/2013/09/2014-kia-optima.jpg">2014 Kia Optima LX</a> at the end of its lease and decided to go &lsquo;car free&rsquo;. I wanted to see exactly how much of a PITA it would be, how many services I&rsquo;d need to subscribe to to get things done, and how much money it would actually save me. It&rsquo;s now been a year, and I can definitively answer these questions.</p> updated PostgreSQL homebrew script https://hunleyd.github.io/posts/updated-postgresql-homebrew-script/ Mon, 16 Oct 2017 13:09:23 +0000 https://hunleyd.github.io/posts/updated-postgresql-homebrew-script/ <p>With the release of PostgreSQL 10, I&rsquo;ve updated my <code>pg</code> script. You might recall from previous posts that this script is for Homebrew users that have tapped Peter&rsquo;s brew recipes. It allows for installing and switching between multiple version of PostgreSQL seemlessly. While I was in there adding v10 support, I tweaked and tuned the code a bit and tidyied up the output significantly. I&rsquo;m pretty pleased with the new version actually.</p> When you cannot get there from here https://hunleyd.github.io/posts/when-you-cannot-get-there-from-here/ Tue, 25 Jul 2017 11:42:47 +0000 https://hunleyd.github.io/posts/when-you-cannot-get-there-from-here/ <p>Connecting to a PostgreSQL instance isn&rsquo;t hard generally, but sometimes you can run into issues. Sometimes a port isn&rsquo;t open on a firewall, or the server is in a VLAN that you can&rsquo;t get to, or perhaps the server isn&rsquo;t running on the network interface you think it is. More commonly, you can reach the PostgreSQL instance but you&rsquo;re connection isn&rsquo;t authorized (which is not the same as being unable to <em>authenticate</em>). Fortunately, the error messages returned in these different failure scenarios are fairly verbose and distinct so you can easily tell which scenario you&rsquo;re facing. Let&rsquo;s dive into each scenario and see what the error looks like, shall we?</p> Installing pgBackRest on OSX https://hunleyd.github.io/posts/installing-pgbackrest-on-osx/ Wed, 14 Jun 2017 12:40:30 +0000 https://hunleyd.github.io/posts/installing-pgbackrest-on-osx/ <p>If you&rsquo;ve followed my previous posts (<a href="https://hunleyd.github.io/posts/PostgreSQL-Homebrew-and-You/">here</a> and <a href="https://hunleyd.github.io/posts/Getting-fancy-with-PostgreSQL-and-Homebrew/">here</a>), then you already have one or more versions of PostgreSQL installed on your Mac. Maybe these are solely for test or dev purposes and you don&rsquo;t really care about any of the data therein, but if you do, let me guide you to <a href="http://www.pgbackrest.org/">pgBackRest</a>.</p> Goodbye, Loui boy https://hunleyd.github.io/posts/goodbye-loui-boy/ Thu, 16 Feb 2017 08:35:19 +0000 https://hunleyd.github.io/posts/goodbye-loui-boy/ <p><img src="https://hunleyd.github.io/images/posts/loui.jpg" class="rleader">Thank you, Loui, for bringing so much joy and happiness to our lives these past ten years. <em>I will miss you.</em></p> New look, same content https://hunleyd.github.io/posts/new-look-same-content/ Tue, 17 Jan 2017 14:26:51 +0000 https://hunleyd.github.io/posts/new-look-same-content/ <p>UPDATE: I&rsquo;ve switched out the theme entirely (again) so the CSS issues should no longer be present. The rest of this post still sands.</p> Changes to the blog https://hunleyd.github.io/posts/changes-to-the-blog/ Fri, 02 Dec 2016 13:48:42 +0000 https://hunleyd.github.io/posts/changes-to-the-blog/ <p><img class="rleader" src="https://www.pngitem.com/pimgs/m/197-1971115_blog-symbol-blogging-icon-hd-png-download.png" />In case you haven&rsquo;t already noticed, I&rsquo;ve made some changes to my blog recently. Nothing really significant or drastic, but things that have been on the TODO list for a while.</p> EXPLAINing intermittent perf problems https://hunleyd.github.io/posts/explaining-intermittent-perf-problems/ Mon, 28 Nov 2016 12:24:12 +0000 https://hunleyd.github.io/posts/explaining-intermittent-perf-problems/ <img src="http://i0.kym-cdn.com/entries/icons/original/000/010/997/35s7cv.jpg" class="lleader"> <p>We&rsquo;ve all gotten the dreaded email/call from a user stating that a query is &ldquo;slow sometimes&rdquo;. If you&rsquo;re lucky, the &ldquo;sometimes&rdquo; actually ends up being fairly consistent and you can fairly easily determine what&rsquo;s happening (an errant cron job, for example). All too often though, the issue really is sporadic, fleeting, and indeterministic. So how do you track these down? And more importantly what do you do about them once found?</p> PostgreSQL logging, strftime, and you https://hunleyd.github.io/posts/postgresql-logging-strftime-and-you/ Mon, 21 Nov 2016 12:17:03 +0000 https://hunleyd.github.io/posts/postgresql-logging-strftime-and-you/ <p>PostgreSQL has a pretty extensive logging facility. I&rsquo;ve talked briefly about configuring it to get the most out of pgBadger before, but today I&rsquo;m gonna talk a bit about the naming of the log file itself. The chosen filename doesn&rsquo;t have to be static. You can, in fact, have the name dynamically created by using <code>strftime()</code> escapes. But what exactly are those?</p> Upgrading PostgreSQL 5x faster https://hunleyd.github.io/posts/upgrading-postgresql-5x-faster/ Fri, 18 Nov 2016 12:18:28 +0000 https://hunleyd.github.io/posts/upgrading-postgresql-5x-faster/ <img src="https://cdn.shopify.com/s/files/1/0946/8552/files/5xFaster.png" class="lleader" /> <p>Upgrading your PostgreSQL database from one major version (e.g. 9.4.x) to another major version (e.g. 9.5.x) used to a painful and exceedingly slow process. You essentially had two options: dump / reload the data or use one of the complex logical replication tools.</p> Managing multiple PostgreSQL installs via Homebrew https://hunleyd.github.io/posts/managing-multiple-postgresql-installs-via-homebrew/ Wed, 16 Nov 2016 13:45:27 +0000 https://hunleyd.github.io/posts/managing-multiple-postgresql-installs-via-homebrew/ <img src="https://upload.wikimedia.org/wikipedia/commons/3/34/Homebrew_logo.png" class="rleader" /> <p>Following on from <a href="https://hunleyd.github.io/Getting-fancy-with-PostgreSQL-and-Homebrew/">this</a> post, you probably have multiple versions of PostgreSQL installed on your Mac. In that post, I added an example function to help you manage all these concurrent installs. Today, I&rsquo;m back with a full-fledged shell script to help manage all this. Without further ado, the script:</p> Routing email through GMail on OSX https://hunleyd.github.io/posts/routing-email-through-gmail-on-osx/ Tue, 15 Nov 2016 10:51:00 +0000 https://hunleyd.github.io/posts/routing-email-through-gmail-on-osx/ <img src="http://www.postfix.org/mysza.gif" class="lleader" /> <p>Like most geeks, I have scripts that I&rsquo;ve written that I like to have run from cron on a regular basis. And since the running of these scripts might be in the middle of the night, I like for them to email their output to me so I know if they succeeded or failed. As such, I need an MTA on my computer that can actually deliver these emails to GMail. For me, this is trivial using Sendmail or SSMTP on a Linux box, but I can never remember how to do this using Postfix on OSX. So after having to Google everything to get this running once more, I&rsquo;m going to commit the steps here for my future self to reference :)</p> Getting fancy with PostgreSQL and Homebrew https://hunleyd.github.io/posts/getting-fancy-with-postgresql-and-homebrew/ Thu, 10 Nov 2016 14:58:15 +0000 https://hunleyd.github.io/posts/getting-fancy-with-postgresql-and-homebrew/ <img src="https://upload.wikimedia.org/wikipedia/commons/3/34/Homebrew_logo.png" class="rleader" /> <p>In our <a href="https://hunleyd.github.io/PostgreSQL-Homebrew-and-You/">previous</a> post, we installed PostgreSQL via Homebrew and got our own little cluster up and running under our userid. That is probably good enough for 90% of the users out there who just want to play with or devel on PostgreSQL, but for those of us who need a little more flexibility in our installs, we&rsquo;re going to take the next step.</p> PostgreSQL, Homebrew, and You https://hunleyd.github.io/posts/postgresql-homebrew-and-you/ Fri, 04 Nov 2016 13:30:09 +0000 https://hunleyd.github.io/posts/postgresql-homebrew-and-you/ <img src="https://upload.wikimedia.org/wikipedia/commons/3/34/Homebrew_logo.png" class="lleader" /> <p>If you need to install <a href="http://www.posatgresql.org">PostgreSQL</a> onto your Macbook, you have several options available to you nowadays. You could use the <a href="https://bigsql.com/postgresql/installers.jsp">BigSQL</a> package, or you could use <a href="http://postgresapp.com">Postgres.app</a>, or several others. However, if you&rsquo;re a geek running OSX, you&rsquo;ve probably already installed <a href="http://brew.sh">Homebrew</a> and it has a wonderful PostgreSQL package. So let&rsquo;s use it, shall we?</p> Inaugural pgCMH mtg scheduled https://hunleyd.github.io/posts/inaugural-pgcmh-mtg/ Thu, 03 Nov 2016 11:45:32 +0000 https://hunleyd.github.io/posts/inaugural-pgcmh-mtg/ <img src="https://hunleyd.github.io/images/posts/pgCMH.png" class="rleader" /> <p>As announced on our <a href="http://www.twitter.com/pgCMH">Twitter</a>, we&rsquo;ve scheduled our inaugural meeting for Jan 24, 2017 at 1800 hrs. The folks at CoverMyMeds will graciously provide the meeting space (and parking garage) while OpenSCG is buying the pizza!</p> Mi Box https://hunleyd.github.io/posts/mi-box/ Wed, 02 Nov 2016 10:27:55 +0000 https://hunleyd.github.io/posts/mi-box/ <p>I&rsquo;m a fan of Android TV. While I didn&rsquo;t blog about it, I ran out and bought a Nexus Player on day 1. And I loved it! OK, I loved it <em>more</em> after the upgrade to Android 6.x, but still.</p> Announcing pgCMH https://hunleyd.github.io/posts/announcing-pgcmh/ Mon, 31 Oct 2016 11:35:22 +0000 https://hunleyd.github.io/posts/announcing-pgcmh/ <img src="https://hunleyd.github.io/images/posts/pgCMH.png" class="rleader" /> <p>I&rsquo;ve been kicking around the idea of founding a Columbus-based PostgreSQL User Group for a while now. I even went so far as to float the idea to people at <a href="http://www.ohiolinux.org">OLF</a> in &lsquo;14. After much hemming and hawing (and no one else stepping up in the interim), I&rsquo;ve finally gone and done it.</p> Incremental pgBadger https://hunleyd.github.io/posts/incremental-pgbadger/ Wed, 26 Oct 2016 14:46:09 +0000 https://hunleyd.github.io/posts/incremental-pgbadger/ <img src="http://www.darold.net/img/pgbadger_logo.png" class="lleader" /> <p>You&rsquo;re probably already running <a href="https://dalibo.github.io/pgbadger/index.html">pgBadger</a> to monitor your PostgreSQL logs. However, you&rsquo;re probably <em>not</em> running it incrementally throughout the day. Most likely, you&rsquo;ve setup a <code>cron.daily</code> job that runs pgBadger against yesterday&rsquo;s log(s). And that&rsquo;s great. Except when you get the dreaded &ldquo;what just happened on the db?&rdquo; email. Are you going to wait until tonight&rsquo;s normal run of pgBadger to see what happened? Are you going to run a &lsquo;one off&rsquo; pgBadger against today&rsquo;s logfile and wait for it to process the <em>entire</em> log? Or are you going to copy the log off somewhere, edit it to cut it down, and <em>then</em> run pgBadger against this cut-down version (hoping you left enough in the log to see proper trending)?</p> I'm syndicated https://hunleyd.github.io/posts/im-syndicated/ Sat, 08 Oct 2016 15:19:57 +0000 https://hunleyd.github.io/posts/im-syndicated/ <p>Someone at work thought it would be a good idea to give me access to the corporate blog so that I might <a href="http://www.openscg.com/category/postgresql-blogs/doug-postgresql/">post</a> PostgreSQL-related things there and have them syndicated to <a href="http://planet.postgresql.org/">Planet PostgreSQL</a>. So my PostgreSQL ramblings will show up there now instead of here. This should be fun!</p> Linka https://hunleyd.github.io/posts/linka/ Mon, 03 Oct 2016 13:30:58 +0000 https://hunleyd.github.io/posts/linka/ <p><img src="https://cdn.shopify.com/s/files/1/1496/1314/t/2/assets/lock-ani-rev.gif?7613491084476583766" class="rleader" />My <a href="http://www.linkalock.com">Linka</a> smart bike lock from Kickstarter showed up today. Holy Hell is this thing solid and hefty! Like for reals, this is gonna throw the balance of the bike off :)</p> Welcome to Cypheri https://hunleyd.github.io/posts/welcome-to-cypheri/ Sat, 01 Oct 2016 11:23:56 +0000 https://hunleyd.github.io/posts/welcome-to-cypheri/ <img src="https://www.nationstates.net/images/flags/uploads/cypheri__755901.jpg" class="lleader" /> <p>I recently discovered the online game <a href="https://www.nationstates.net">NationStates</a> thanks to a Reddit thread and was intrigued. So I logged in, created the nation of Cypheri and then used <a href="https://blogtrottr.com">BlogTrottr</a> to feed the RSS feed into my inbox (which allows me offline play essentially. I ignore it until I get a notice). So far, it&rsquo;s been a neat little experience. I&rsquo;m pretty sure if you know me well enough to be reading this blog that I know you well enough to say you&rsquo;ll enjoy it too.</p> Functional Blog Archives https://hunleyd.github.io/posts/functional-blog-archives/ Fri, 30 Sep 2016 23:30:19 +0000 https://hunleyd.github.io/posts/functional-blog-archives/ <p>After an afternoon dicking around with Jekyll templates and Google searching, I&rsquo;ve fixed up this site&rsquo;s archive pages and tag cloud pages. I now have functional archive pages for everything, each year, each month of said year, and each day of said month. And they should all continue to function perfectly well on their own as time progresses (unless I bork something up later trying to be clever). I&rsquo;ve also modified the tag cloud page to fit in the archive pages&rsquo; look an feel. It&rsquo;s not a true tag cloud in that I don&rsquo;t increase the weight or height of the font based on frequency, but the cloud does contain every tag used across the blog and each tag has it&rsquo;s own page showing all posts tagged as such.</p> Where Not To Put Your Tablespaces https://hunleyd.github.io/posts/where-not-to-put-your-tablespaces/ Wed, 24 Aug 2016 11:55:12 +0000 https://hunleyd.github.io/posts/where-not-to-put-your-tablespaces/ <p>From the PostgreSQL <a href="https://www.postgresql.org/docs/current/static/manage-ag-tablespaces.html">docs</a>:</p> <blockquote> <p>Tablespaces in PostgreSQL allow database administrators to define locations in the file system where the files representing database objects can be stored. Once created, a tablespace can be referred to by name when creating database objects.</p> Making use of gists https://hunleyd.github.io/posts/making-use-of-gists/ Sun, 19 Jun 2016 15:42:19 +0000 https://hunleyd.github.io/posts/making-use-of-gists/ <p><img src="https://2.bp.blogspot.com/-5yjV3rrAvHk/U6Gm4-prTPI/AAAAAAAAJf4/7HXcjGxXGxI/s1600/logo_github_gist.png" class="rleader" /> After stumbling upon an example of how to do so, I&rsquo;ve converted all my existing blog posts to use GitHub Gists instead of inline code blocks. It gives me added functionality, and reduces the size of the blog pages as well. Might as well use every GitHub feature I can since I&rsquo;ve chosen that platform for hosting my blog, right? :)</p> Happy 20th Birthday, PostgreSQL https://hunleyd.github.io/posts/happy-20th-postgresql/ Thu, 12 May 2016 10:11:31 +0000 https://hunleyd.github.io/posts/happy-20th-postgresql/ <img src="https://hunleyd.github.io/images/posts/pgsql_20th.png" class="lleader" /> <p>Just a quick shout out to PostgreSQL, the world&rsquo;s most advanced open source database, as it celebrates it&rsquo;s 20<sup>th</sup> year in existence. Happy birthday, y&rsquo;all!</p> Smart Lock on Android N DP2 https://hunleyd.github.io/posts/smart-lock-on-android-n-dp2/ Sun, 24 Apr 2016 22:18:56 +0000 https://hunleyd.github.io/posts/smart-lock-on-android-n-dp2/ <img src="http://pre13.deviantart.net/ba29/th/pre/i/2016/070/a/f/android_n_logo_by_stayka007-d9untw2.png" class="rleader" /> <p>As mentioned in my previous <a href="https://hunleyd.github.io/Now-on-Tap-Android-N-DP2/">post</a> I&rsquo;ve stumbled across two issues with the 2<sup>nd</sup> Developer Preview of Android N. The latter of these issues is discussed here. For reasons I won&rsquo;t get into, I had need to wipe and reset my Huawei Watch, and after doing so I attempted to setup Smart Lock such that when the watch was connected, the phone would stay unlocked.</p> Now on Tap on Android N DP2 https://hunleyd.github.io/posts/now-on-tap-android-n-dp2/ Sun, 24 Apr 2016 21:53:06 +0000 https://hunleyd.github.io/posts/now-on-tap-android-n-dp2/ <p><img src="http://pre13.deviantart.net/ba29/th/pre/i/2016/070/a/f/android_n_logo_by_stayka007-d9untw2.png" class="lleader" />Like any good geek, I jumped at the opportunity to enroll my Nexus 5x into the Android N Beta Program. And for the most part, it&rsquo;s worked really well for me. I <em>really</em> like Android N so far and can&rsquo;t wait for the final release. However, after updating from Developer Preview 1 (DP1) to Developer Preview 2 (DP2) via OTA, I noticed two small issues. The first issue is that I could not, for the life of me, get Now On Tap to enable even though it was previously enabled on DP1.</p> PostgreSQL Partitioning Quick Tip https://hunleyd.github.io/posts/postgresql-partitioning-quick-tip/ Thu, 21 Apr 2016 09:25:32 +0000 https://hunleyd.github.io/posts/postgresql-partitioning-quick-tip/ <img src="http://www.habitsofmind.org/sites/default/files/helpful-tips-image-web-design-sydney.jpg" class="rleader" /> <p>Partitioning in PostgreSQL can be a little daunting at times. In fact, you should probably just use <a href="https://github.com/keithf4/pg_partman">pg_partman</a> and be done with it. However, if you&rsquo;re trying to learn, can&rsquo;t use <code>pg_partman</code>, or are a masochist you&rsquo;ll probably be following the <a href="http://www.postgresql.org/docs/current/static/ddl-partitioning.html">docs</a> and thinking &lsquo;seriously? i have to create indexes on each child? why don&rsquo;t they copy the indexes of the parent? why isn&rsquo;t this easier?&rsquo;. Here&rsquo;s a little tip to make things slightly easier:</p> Logical Replication with Skytools3 https://hunleyd.github.io/posts/logical-replication-with-skytool3/ Tue, 19 Apr 2016 13:55:11 +0000 https://hunleyd.github.io/posts/logical-replication-with-skytool3/ <img src="https://cdn2.iconfinder.com/data/icons/color-svg-cloud-icons/512/cloud_refresh-512.png" class="lleader" /> <p>UPDATE: My coworker Richard liked this write up, and Skytools, so much he threw together a demo script. You can get it <a href="https://github.com/richyen/toolbox/blob/master/pg/londiste/londiste_demo.sh">here</a>.</p> PostgreSQL Streaming Replication in 10 Minutes https://hunleyd.github.io/posts/postgresql-streaming-replication-in-10-minutes/ Mon, 18 Apr 2016 14:47:10 +0000 https://hunleyd.github.io/posts/postgresql-streaming-replication-in-10-minutes/ <img src="https://hunleyd.github.io/images/posts/database-replication.png" class="rleader" /> <p>While there&rsquo;s absolutely nothing new in this blog&quot;post&quot;that isn&rsquo;t covered by the wonderful <a href="http://www.postgresql.org/docs/current/static/index.html">docs</a> I&rsquo;ve been asked multiple times now by customers if we had some kind of &lsquo;crib notes&rsquo; format for how to get replication up and running. And since I just had to set this up and document it for a customer, I figured I might as well&quot;post&quot;it so that I can simply point people to it in the future. So here we are.</p> Hello, eero https://hunleyd.github.io/posts/hello_eero/ Wed, 30 Mar 2016 14:00:25 +0000 https://hunleyd.github.io/posts/hello_eero/ <p><a href="https://www.eero.com"><img src="https://d2vw57jh8139vw.cloudfront.net/abb56b35841139f06625b173a8bb8936.jpg" class="lleader" /></a>I don&rsquo;t normally back things on Indiegogo (I&rsquo;m a Kickstarter snob), but I jumped <em>all over</em> the eero. I have always had issues with the wifi coverage in my home. I&rsquo;ve tried everything I can think of to alleviate the issues; differernt brands of routers, flashing different OSS firmwares, &lsquo;upgrading&rsquo; to SOHO equipment instead of consumer equipment, moving them all over the damn house, etc. Nothing solved all the issues. Until now.</p> Glutton for Punishment https://hunleyd.github.io/posts/glutton-for-punishment/ Mon, 29 Feb 2016 10:14:50 +0000 https://hunleyd.github.io/posts/glutton-for-punishment/ <img src="http://www.theshell.guru/wp-content/uploads/2015/12/osx-logo3.png" class="rleader" /> <p>I recently got a new Macbook Pro from work as my old one was having keyboard issues and since it was 3+ yrs old they deemed it not worth fixing. As you probably know, I spent a lot of time and effort on the previous mbp to get <a href="http://www.gentoo.org">Gentoo</a> up and running on it. I chose <em>not</em> to do so with this one.</p> Flyover State https://hunleyd.github.io/posts/flyover-state/ Tue, 09 Feb 2016 16:59:24 +0000 https://hunleyd.github.io/posts/flyover-state/ <p><a href="http://howmuch.net/content/images/1600/cost-of-driving-from-Columbus-49c5.png"><img src="http://howmuch.net/content/images/1600/cost-of-driving-from-Columbus-49c5.png" class="lleader" /></a></a></p> <p>Being a native of Ohio, I can assure you that I&rsquo;ve heard every form of &lsquo;flyover state&rsquo; insult you could care to level at me. And while I won&rsquo;t debate the merits of Ohio in this post, I will take a minute to point out something that I&rsquo;ve been saying for quite some time.</p> Efficient, yet Creepy https://hunleyd.github.io/posts/efficient-yet-creepy/ Thu, 21 Jan 2016 18:30:00 +0000 https://hunleyd.github.io/posts/efficient-yet-creepy/ <p>So I&rsquo;m sitting here seting up a new Internet connected device I bought recently (more on it later) and I can&rsquo;t seem to get it to setup properly. I can create an account on their site, I can login to said account, I can power on said device and connect to it using the app and configure it to use my home wifi, but the device just won&rsquo;t ever finish connecting and syncing w/ my account on the site.</p> Huawei Watch Review https://hunleyd.github.io/posts/huawei-watch-review/ Thu, 21 Jan 2016 17:00:00 +0000 https://hunleyd.github.io/posts/huawei-watch-review/ <p><a href="http://www.gethuawei.com/buy-huawei-watch"><img src="https://www.androidpolice.com/wp-content/uploads/2015/09/nexus2cee_DSC09617-728x485.jpg" class="lleader"/></a></p> <p>A couple of my mates wanted me to let them know what I thought of the <a href="http://www.huawei.com/en/">Huawei</a> Watch (hereafter, &lsquo;H&rsquo;) after upgrading from the <a href="https://www.motorola.com/us/products/moto-360">Moto 360</a> (hereafter, 360) and spending some time getting to know the &lsquo;H&rsquo;. So here&rsquo;s my thoughts.</p> I Have The Power https://hunleyd.github.io/posts/i-have-the-power/ Sun, 17 Jan 2016 00:00:00 +0000 https://hunleyd.github.io/posts/i-have-the-power/ <p><a href="https://www.snappower.com/snaprays-guidelight/"><img src="https://cdn.shopify.com/s/files/1/0336/9049/products/Single_GL2_white_07d7acd0-a697-4d12-8cd0-7bfbfd26d969_900x.jpg?v=1564168251" class="lleader" /></a></p> <p>A while back, I ran across a little project on <a href="http://www.kickstarter.com">Kickstarter</a> from a company called <a href="http://www.snappower.com">SnapPower</a>. The project was for a product called Guidelights.</p> More Bloggy Goodness https://hunleyd.github.io/posts/more-bloggy-goodness/ Sat, 16 Jan 2016 01:00:00 +0000 https://hunleyd.github.io/posts/more-bloggy-goodness/ <p>It&rsquo;s been a bit of a busy day for me and my blog. I&rsquo;ve added:</p> Once More, With Feeling https://hunleyd.github.io/posts/once-more-with-feeling/ Sat, 16 Jan 2016 00:00:00 +0000 https://hunleyd.github.io/posts/once-more-with-feeling/ <p>Welcome to the new blog.</p> <p>That&rsquo;s right, I&rsquo;m running my own blog <em>once again</em>. I know, I know. It&rsquo;s been a while. And I&rsquo;ve picked <em>yet another</em> platform for hosting my blog. But you know what? You&rsquo;re just going to have to suck it up. I&rsquo;ve been itching to make some new posts for a while now, and the platforms at my disposal, <em>cough</em> <em>G+</em> <em>cough</em>, just haven&rsquo;t really cut it. Sure, they sorta worked, but with the recent direction that platform is headed? Forget it.</p> Doug Hunley https://hunleyd.github.io/author/hunleyd/ Mon, 01 Jan 0001 00:00:00 +0000 https://hunleyd.github.io/author/hunleyd/ <p>Born at the ass end of 1973, Douglas lived a (mostly) quiet life in and around the village of <a href="https://en.wikipedia.org/wiki/Weston,_Ohio">Weston, OH</a> until moving to <a href="https://en.wikipedia.org/wiki/Columbus,_Ohio">Columbus, OH</a> to attend college in 1993. He acquired a taste for ‘city life’ during this time and has remained in the Greater Columbus Metro Area ever since.</p>