Hello

My name is Danny Berger.

Technology intrigues me. Pretty much any sort, but I enjoy web-oriented tech the most. I like innovating, technical challenges, and learning new concepts. This is a place to remember some of those experiences. Maybe you’ll find something interesting.

Latest posts…

Metalink Repositories: Stability Channels on January 23, 2019
Continuing on the topic of metalink repositories, one of the biggest advantages I have found is that I no longer need to worry about complicated rules for when products should be published and what downstream components might be affected. Instead, I can focus on defining what “alpha” vs “rc” vs “stable” mean, and then downstream components consume however it’s appropriate for them. That may sound sound trivial and obvious. However, I have found implementing those workflows in a product to be difficult before using metalink repositories (see Motivations for more details).

Metalink Repositories: Mirroring Third-Party Dependencies on December 30, 2018
When managing project dependencies which are outside of your control, it is often best practice to assume those artifacts may disappear (e.g. they may move, disappear, or become corrupt). For this reason, you may want to be mirroring your assets which, with metalink repositories, provides the functionality of: Multiple URLs can be configured for where to find an artifact. This allows for documenting where files were originally discovered, but also supports retrying download from mirrors if one location fails.

Metalink Repositories: Background and Motivation on December 28, 2018

A while ago I started standardizing on using metalinks to record information about blobs. In my original post about metalinks, I briefly touched on the idea of querying directories of metalinks, treating it as a lightweight database. This post starts a short series discussing what shortcomings motivated my interest in something like “metalink repositories” and how I have been building on the concept in several ways.

New Concourse Resource for BOSH Releases on December 23, 2018

As a “continuous thing-doer” Concourse is great for documenting workflows and making sure they run. One of the workflows I frequently automate is consuming and publishing BOSH releases. Existing resources had some shortcomings for my needs, so I created the bosh-release resource to support those workflows. This post discusses more of the background and decisions that went into the resource.

Watching Upstream Binaries with Concourse on December 2, 2018

When building software packages, it’s easy to accumulate dependencies on dozens of other, upstream software components. When building the first version of something, it’s easy to blindly download the source of the latest version off the packages’ website. However, once you’re past prototypes and need to deal with auditing or maintenance, it becomes important to have some [automated] processes in place.

Switching from Jekyll to Hugo on November 23, 2018

It has been a while since I spent any time on my personal website here, but, recently, I have a few projects and ideas looking for a place to be recorded. As part of revisiting the site, I decided it might be a good opportunity to switch from using Jekyll as the static site generator to using Hugo. Here are some of the motivations and small learnings from that process.

Documenting Blobs with Metalink Files on October 9, 2017

There are many blobs around the web, with different organizations and teams publishing artifacts through different channels and with varying security. Often a single project will have many dependencies from multiple different sources, and developers need to know specifics about where to download blobs and how to verify them. I started looking for a solution to help unify the way I was both consuming and sharing blobs across my own projects. Eventually I found my way to something called “metalink” files, and it has become a very useful method for managing blobs (and resources) in my projects.