<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Welcome! on hardwarehacks.org</title>
    <link>https://hardwarehacks.org/</link>
    <description>Recent content in Welcome! on hardwarehacks.org</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 21 Jul 2024 11:41:00 -0400</lastBuildDate><atom:link href="https://hardwarehacks.org/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Put applications and data through the same workflow: the CrowdStrike incident</title>
      <link>https://hardwarehacks.org/blog/put_applications_and_data_through_the_same_workflow/</link>
      <pubDate>Sun, 21 Jul 2024 11:41:00 -0400</pubDate>
      
      <guid>https://hardwarehacks.org/blog/put_applications_and_data_through_the_same_workflow/</guid>
      <description>I like to think I keep on top of Hacker News, and that I&amp;rsquo;m in the know that the world is on fire before most of my nontechnical peers. So imagine my surprise when my mother sends me this text message at 8:27am:
I immediately checked my usual sources - Boston DevOps, the AWS health portal, the Azure health portal, the GCP health portal - none of the major suspects were reporting anything&amp;rsquo;s wrong.</description>
    </item>
    
    <item>
      <title>Explaining my .bashrc</title>
      <link>https://hardwarehacks.org/blog/explaining_my_bashrc/</link>
      <pubDate>Sun, 10 Mar 2024 18:15:00 +0000</pubDate>
      
      <guid>https://hardwarehacks.org/blog/explaining_my_bashrc/</guid>
      <description>I have a number of tools in my .bashrc file that make my day-to-day activities fast. The ability to run commands like aws without needing to remember if I&amp;rsquo;ve SSOed or connected to the VPN, or to quickly change Kubernetes contexts and namespaces on a per-shell basis, are invaluable to me.
Some have pointed out that switching to zsh, with addons like powerlevel10k, would probably benefit me with these use cases.</description>
    </item>
    
    <item>
      <title>Installing AIX PS/2 v1.3 on a 486</title>
      <link>https://hardwarehacks.org/blog/installing_aix_ps2_13_on_a_486/</link>
      <pubDate>Sat, 27 Aug 2022 18:48:30 -0400</pubDate>
      
      <guid>https://hardwarehacks.org/blog/installing_aix_ps2_13_on_a_486/</guid>
      <description>In late August of 2022, after two years of remaining relatively healthy, COVID-19 finally caught up with me. Cut off from friendly gathering, working out, and even food that wasn&amp;rsquo;t protein bars, a completely normal thought occurred to me: &amp;ldquo;How about I install AIX on my old 486?&amp;rdquo;
My 486 is, as I assume most extant 486es are today, a franken-486: a hodgepodge of pieces collected over the course of thirty years, ultimately a Ship of Theseus of opportunity (yard sales!</description>
    </item>
    
    <item>
      <title>DevOpsDays Boston 2021: We&#39;re getting the hang of this!</title>
      <link>https://hardwarehacks.org/blog/devopsdays_boston_2021_were_getting_the_hang_of_this/</link>
      <pubDate>Mon, 01 Nov 2021 20:19:12 -0400</pubDate>
      
      <guid>https://hardwarehacks.org/blog/devopsdays_boston_2021_were_getting_the_hang_of_this/</guid>
      <description>I&amp;rsquo;ve been helping organize DevOpsDays Boston since 2017. In that time, our organizing community has changed considerably, yet been resilient to the many faces of change - from organizer turnover, to vendor relationships changing, to a worldwide pandemic that stopped many similar events in their tracks. Change, however, is not necessarily something that only goes in the forward direction. In this blog post, I&amp;rsquo;ll explain some of the ways, as well as some of the reasons, we progressed, backtracked, or kept the course for our 2021 event.</description>
    </item>
    
    <item>
      <title>Compiling a custom Terraform provider</title>
      <link>https://hardwarehacks.org/blog/compiling_a_patched_terraform_provider/</link>
      <pubDate>Sat, 16 Oct 2021 23:23:25 -0400</pubDate>
      
      <guid>https://hardwarehacks.org/blog/compiling_a_patched_terraform_provider/</guid>
      <description>Several times now, I&amp;rsquo;ve been presented with provider bugs in Terraform - specifically the AWS provider - that are fixed in PRs that have sat unmerged for months, if not years. While Hashicorp has now codified that community pull requests aren&amp;rsquo;t being reviewed, I&amp;rsquo;ve had a dirty trick up my sleeve for about two years now: in some projects, I don&amp;rsquo;t use the upstream provider anymore. Instead, I run a fork, where I&amp;rsquo;ve cherry-picked in any fixes I&amp;rsquo;ve needed.</description>
    </item>
    
    <item>
      <title>Raspberry Pi Connectivity Alert</title>
      <link>https://hardwarehacks.org/projects/raspberry_pi_connectivity_alert/</link>
      <pubDate>Mon, 18 Jan 2021 08:09:17 -0500</pubDate>
      
      <guid>https://hardwarehacks.org/projects/raspberry_pi_connectivity_alert/</guid>
      <description>I have a recurring issue where I&amp;rsquo;ll walk by my shelf of Raspberry Pi&amp;rsquo;s and knock the cord out of something. Many times, I won&amp;rsquo;t know about it for days. So I made them blink when I do this.
My original solution deployed TICK Stack, with each individual Pi feeding stats into InfluxDB, and Kapacitor configured to alert on sudden loss of metrics from a host. This worked, until I knocked the cord out of the Pi running TICK Stack.</description>
    </item>
    
    <item>
      <title>Networked ATSC DVR</title>
      <link>https://hardwarehacks.org/projects/networked_atsc_dvr/</link>
      <pubDate>Sun, 17 Jan 2021 17:21:52 -0500</pubDate>
      
      <guid>https://hardwarehacks.org/projects/networked_atsc_dvr/</guid>
      <description>Some time ago, I bought a standalone ATSC tuner so that I could watch TV at my desk, without having to depend on the setup or state of any other &amp;ldquo;things&amp;rdquo; on my desk. Watching the news shouldn&amp;rsquo;t depend on the desk being in any particular configuration - say, if I&amp;rsquo;ve still got my work computer hooked up at 10pm, or am in the process of an OS reinstall on my laptop.</description>
    </item>
    
    <item>
      <title>Thoughts on Disconnecting</title>
      <link>https://hardwarehacks.org/blog/thoughts_on_disconnecting/</link>
      <pubDate>Wed, 30 Dec 2020 23:53:31 -0500</pubDate>
      
      <guid>https://hardwarehacks.org/blog/thoughts_on_disconnecting/</guid>
      <description>Like many, I found myself ending 2020 without having taken any time off. After all, travel itself wasn&amp;rsquo;t exactly advisable, and I&amp;rsquo;d fruitlessly hoped that by delaying as long as possible, I might better my chances of getting a vacation. Little did I know, delaying until the end of the year actually put me directly in second surge territory – Christmas and New Year&amp;rsquo;s were straight out.
I&amp;rsquo;ve never taken a staycation, and my last attempt at disconnecting was cut short a mere two days in by my place of work being bought out, so I figured now was high time to give it another try.</description>
    </item>
    
    <item>
      <title>Saint Johnsbury, Vermont</title>
      <link>https://hardwarehacks.org/gallery/st-johnsbury-vt/</link>
      <pubDate>Sat, 08 Aug 2020 00:00:00 +0000</pubDate>
      
      <guid>https://hardwarehacks.org/gallery/st-johnsbury-vt/</guid>
      <description>A friend had his bachelor party in the early days of the COVID-19 pandemic. Since destinations all became off-limits, we stayed the weekend in a beautiful farmhouse in St. Johnsbury, Vermont.
Dsc09523
Dsc09526
Dsc09530
Dsc09536
Dsc09540
Dsc09554
Dsc09567
Dsc09572
Dsc09602</description>
    </item>
    
    <item>
      <title>Alton, New Hampshire (Mount Major)</title>
      <link>https://hardwarehacks.org/gallery/alton-nh/</link>
      <pubDate>Sat, 04 May 2019 00:00:00 +0000</pubDate>
      
      <guid>https://hardwarehacks.org/gallery/alton-nh/</guid>
      <description>I hiked Mount Major in Alton, NH in 2019. Though the summit was quite crowded, I managed to get a few shots of Lake Winnipesaukee and the neighboring mountains.
Dsc08433
Dsc08434
Dsc08441
Dsc08444
Dsc08462</description>
    </item>
    
    <item>
      <title>Chicago, Illinois</title>
      <link>https://hardwarehacks.org/gallery/chicago-il/</link>
      <pubDate>Fri, 19 Aug 2016 00:00:00 +0000</pubDate>
      
      <guid>https://hardwarehacks.org/gallery/chicago-il/</guid>
      <description>I met up with some friends in Chicago back in the summer of 2016. By happy coincidence and no planning whatsoever on our part, the Blue Angels were flying over while we were at the top of the Willis (formerly Sears) Tower - they feature prominently here.
Pict4057
Pict4059
Pict4099
Pict4103
Pict4105
Pict4115
Pict4117
Pict4137
Pict4223
Pict4249
Pict4255
Pict4267
Pict4268
Pict4293
Pict4301
Pict4304
Pict4309
Pict4319
Pict4330
Pict4333
Pict4363
Pict4379
Pict4383</description>
    </item>
    
    <item>
      <title>The Java classpath, shading, and Amazon EMR</title>
      <link>https://hardwarehacks.org/blog/the_java_classpath_shading_and_amazon_emr/</link>
      <pubDate>Sun, 24 Jul 2016 23:50:00 +0000</pubDate>
      
      <guid>https://hardwarehacks.org/blog/the_java_classpath_shading_and_amazon_emr/</guid>
      <description>The Java classpath allows dependencies to be brought in from various locations at runtime. However, if an environment already defines a classpath, it can override classpath resources specified downstream, as only one version of a particular named class can be loaded by the Java classloader at the same time. This can cause difficulties working in an environment with provided libraries, such as Amazon EMR&amp;rsquo;s ability to run an arbitrary JAR as a job.</description>
    </item>
    
    <item>
      <title>Jenkins Job DSL and Jenkins as IaC</title>
      <link>https://hardwarehacks.org/blog/jenkins_job_dsl_and_jenkins_as_iac/</link>
      <pubDate>Sun, 24 Apr 2016 03:58:50 +0000</pubDate>
      
      <guid>https://hardwarehacks.org/blog/jenkins_job_dsl_and_jenkins_as_iac/</guid>
      <description>Note: this blog post is adapted from a talk give at a meeting of the Boston Jenkins Area Meetup on Thursday, April 21st, 2016.
Jenkins and IaC A tool like Jenkins often is the cornerstone of a CI/CD pipeline: it brings together disparate tools like Git, Maven, Packer, and Terraform, providing the &amp;ldquo;glue&amp;rdquo; to automate processes and build deployment and testing pipelines. Eventually, the Jenkins server becomes a custom application in its own right, but unfortunately Jenkins does not inherently lend itself to being treated as an application.</description>
    </item>
    
    <item>
      <title>Designing a Project Lifecycle with Contracts and Constraints</title>
      <link>https://hardwarehacks.org/blog/designing_a_project_lifecycle_with_contracts_and_constraints/</link>
      <pubDate>Sun, 27 Mar 2016 03:14:00 +0000</pubDate>
      
      <guid>https://hardwarehacks.org/blog/designing_a_project_lifecycle_with_contracts_and_constraints/</guid>
      <description>Note: this blog post is adapted from a lightning talk given at a meeting of Boston Devops on Thursday, March 24th, 2016, the slides from which are available.
Why contracts and constraints? Put simply, it&amp;rsquo;s possible to deliver software in a rapid, predictable manner by establishing contracts with developers, and constraining what projects should look like to be considered supportable. This blog post talks primarily about a design pattern, and implementation of that design pattern using several common DevOps tools which each fit into a different stage of a continuously deployable workflow.</description>
    </item>
    
    <item>
      <title>Setting up Tomcat with a Let&#39;s Encrypt certificate</title>
      <link>https://hardwarehacks.org/blog/setting_up_tomcat_with_a_lets_encrypt_certificate/</link>
      <pubDate>Sun, 13 Mar 2016 23:38:00 +0000</pubDate>
      
      <guid>https://hardwarehacks.org/blog/setting_up_tomcat_with_a_lets_encrypt_certificate/</guid>
      <description>Let&amp;rsquo;s Encrypt, the free and automated certificate registrar, by default provides certificates in PEM format. This guide details how to set up an output certificate from the Let&amp;rsquo;s Encrypt client in the Tomcat application server. It assumes that certificates have already been obtained using the client, independent of what method was used (e.g. --webonlyg or &amp;ndash;standalone`) to obtain it.
The workflow for doing so is:
Requesting a certificate from Let&amp;rsquo;s Encrypt.</description>
    </item>
    
    <item>
      <title>Setting up LVM to join EC2 instance store volumes as one disk</title>
      <link>https://hardwarehacks.org/blog/setting_up_lvm_to_join_ec2_instance_store_volumes_as_one_disk/</link>
      <pubDate>Sun, 24 Jan 2016 03:34:17 +0000</pubDate>
      
      <guid>https://hardwarehacks.org/blog/setting_up_lvm_to_join_ec2_instance_store_volumes_as_one_disk/</guid>
      <description>Some types of Amazon EC2 instances come with multiple instance store volumes - for instance, the c3.xlarge instance type comes with two 40GB SSD volumes. This guide shows how to utilize them as one large 80GB volume via LVM, should this be more desirable for any particular application.
Note that instance store is ephemeral. When an instance is stopped or rebooted, the contents of both volumes will be lost, including the partition configuration set up in this document.</description>
    </item>
    
    <item>
      <title>Unexpected HTTP 504 errors from AWS Elastic Load Balancers (ELBs)</title>
      <link>https://hardwarehacks.org/blog/unexpected_http_504_errors_from_aws_elastic_load_balancers/</link>
      <pubDate>Tue, 29 Dec 2015 19:22:21 +0000</pubDate>
      
      <guid>https://hardwarehacks.org/blog/unexpected_http_504_errors_from_aws_elastic_load_balancers/</guid>
      <description>Introduction Elastic Load Balancers (ELBs) make use of multiple concurrent connections to backend applications to improve throughput, and will also attempt to make use of HTTP keepalives to mitigate reconnection overhead. These performance gains introduce multiple points where timeouts must be configured.
A misconfigured application / ELB pair can cause an HTTP 504 status code to be returned from an ELB to the client. Additionally, the request may not register in the application&amp;rsquo;s logs, or on a packet capture against the application.</description>
    </item>
    
    <item>
      <title>HTTPS upgrades behind an AWS Elastic Load Balancer (ELB)</title>
      <link>https://hardwarehacks.org/blog/https_upgrades_behind_an_aws_elastic_load_balancer/</link>
      <pubDate>Tue, 17 Nov 2015 04:10:00 +0000</pubDate>
      
      <guid>https://hardwarehacks.org/blog/https_upgrades_behind_an_aws_elastic_load_balancer/</guid>
      <description>Introduction Users of Amazon Web Services can elect to terminate SSL using an Elastic Load Balancer (ELB), rather than at the application level. This centeralizes management of certificates, and removes the burden of implementing SSL across multiple technologies in a stack.
In general, it is a good idea to force an HTTPS upgrade. This greatly enhances the integrity and privacy of users&amp;rsquo; data in flight, and prevents against a downgrade attack.</description>
    </item>
    
    <item>
      <title>Erie, Pennsylvania</title>
      <link>https://hardwarehacks.org/gallery/erie-pa/</link>
      <pubDate>Sun, 06 Sep 2015 00:00:00 +0000</pubDate>
      
      <guid>https://hardwarehacks.org/gallery/erie-pa/</guid>
      <description>I found myself in Erie, PA back in 2015. The weather was quite hazy and humid, but I&amp;rsquo;d just recently purchased my first telephoto lens, and decided to try it out at the Erie Zoo. In addition to colorful birds, they had the firefoxes positioned right next to the spidermonkies, and I deeply trust that someone knew exactly what they were doing.
Pict2638
Pict2645
Pict2649
Pict2678
Pict2682
Pict2700
Pict2712
Pict2732</description>
    </item>
    
    <item>
      <title>Avoiding inline versioning of code when using an SCM</title>
      <link>https://hardwarehacks.org/blog/avoiding_inline_versioning_of_code_when_using_an_scm/</link>
      <pubDate>Sat, 08 Aug 2015 04:31:44 +0000</pubDate>
      
      <guid>https://hardwarehacks.org/blog/avoiding_inline_versioning_of_code_when_using_an_scm/</guid>
      <description>An SCM tool such as Git, Mercurial, Subversion, or even the venerable CVS makes it easy to keep a working history of an application. An added bonus of using such a tool is the ability to see what changed in a particular commit (e.g. git diff), who changed a particular block of code and when (e.g. git blame), and so on.
This, of course, makes the assumption that developers are letting the SCM do the versioning.</description>
    </item>
    
    <item>
      <title>Double-indexed application logs in Splunk and other log indexers</title>
      <link>https://hardwarehacks.org/blog/double_indexed_application_logs_in_splunk_and_other_log_indexers/</link>
      <pubDate>Sun, 26 Jul 2015 02:38:00 +0000</pubDate>
      
      <guid>https://hardwarehacks.org/blog/double_indexed_application_logs_in_splunk_and_other_log_indexers/</guid>
      <description>Introduction A well-behaved application should output reasonably verbose logs. Disk is cheap, and hierarchical datastores make it possible to store large volumes of log data at near-negligible cost. Factor in the benefit of the insight acquired (in which developers can leave a metaphorical trail of breadcrumbs for issues down the road), and the cost-benefit of even the first issue will begin to speak for itself.
As highly-available applications mean that logging may be distributed among several distinct data sources (VMs, partitioned logs, or containers, for instance), use of Splunk or Logstash as a log indexer likewise becomes a no-brainer.</description>
    </item>
    
    <item>
      <title>Deploying from multiple Maven repositories with Chef</title>
      <link>https://hardwarehacks.org/blog/deploying_from_multiple_maven_repositories_with_chef/</link>
      <pubDate>Sun, 19 Jul 2015 02:48:25 +0000</pubDate>
      
      <guid>https://hardwarehacks.org/blog/deploying_from_multiple_maven_repositories_with_chef/</guid>
      <description>Introduction A typical Git branching model will somehow link the contents of the &amp;lsquo;master&amp;rsquo; branch with released-to-manufacturing code. For a project deploying builds to a binary repository such as Archiva, Artifactory, or similar, the branch-to-version map for a project using feature branches, Git Flow, or something else entirely might look similar to the following:
Branch Name Software Version Binary Repository ID master 1.0.0 internal feature-branch-1 1.0.1-feature-branch-1-SNAPSHOT snapshots feature-branch-2 1.0.1-feature-branch-2-SNAPSHOT snapshots Because active development happens in feature branches, it&amp;rsquo;s a good idea to make such branches build SNAPSHOT builds, and to have a separate repository for snapshots to which they are deployed.</description>
    </item>
    
    <item>
      <title>Seattle, Washington</title>
      <link>https://hardwarehacks.org/gallery/seattle-wa/</link>
      <pubDate>Sat, 04 Oct 2014 00:00:00 +0000</pubDate>
      
      <guid>https://hardwarehacks.org/gallery/seattle-wa/</guid>
      <description>I attended the 2014 Chef Community Summit. My first &amp;ldquo;business trip&amp;rdquo;, I stayed the weekend as a tourist.
1st
2nd
3rd
4th
5th
6th
7th</description>
    </item>
    
    <item>
      <title>Stowe, Vermont</title>
      <link>https://hardwarehacks.org/gallery/stowe-vt/</link>
      <pubDate>Sat, 04 Jan 2014 00:00:00 +0000</pubDate>
      
      <guid>https://hardwarehacks.org/gallery/stowe-vt/</guid>
      <description>I took a weekend vacation to Stowe, Vermont in 2014. I&amp;rsquo;d been there once before in 2006 and was looking to go back. Somehow I managed to do so on the coldest day of the year - a balmy -20 degrees Fahrenheit.
Pict1386
Pict1398
Pict1410
Pict1414
Pict1419
Pict1459</description>
    </item>
    
    <item>
      <title>About Don and This Site</title>
      <link>https://hardwarehacks.org/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://hardwarehacks.org/about/</guid>
      <description>I&#39;m a Boston-based DevOps engineer with a passion for automation, teaching, learning, presentation, and community outreach. I&#39;m one of the organizers of DevOpsDays Boston and am also involved with the monthly Boston DevOps meetup. I&#39;ve presented at a variety of local meetups, like Boston Python, Boston Kubernetes Meetup, Boston Jenkins Area Meetup and the Inclusive Tech Hub, as well as some non-locals like DevOpsDays Austin and ONUG. Tangential to my day job, I&#39;ve been a maker since the mid-2000s.</description>
    </item>
    
    <item>
      <title>Contact Don</title>
      <link>https://hardwarehacks.org/contact/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://hardwarehacks.org/contact/</guid>
      <description>The best way to reach me is by e-mail. To prevent spam, use the next lowest letter in each of the letters in the following name (e.g. e becomes d): epo@hardwarehacks.org.
I’m also active on the Boston DevOps Slack group and, can be reached on Signal (reach out by one of the above means first).
You can also download my PGP public key to send me encrypted mail, and verify that messages have come from me.</description>
    </item>
    
  </channel>
</rss>
