About this weblog

Edward Vielmetti has been writing the Vacuum weblog since 1999 from Ann Arbor, Michigan. The topics vary widely, with over 2000 entries in the whole collection. As much as possible, the first page has the current focus, but if you dig deep enough you’ll find lots of things that were interesting once and may be interesting again. The current set of systems that are an area of focus - and the places I draw from for inspiration on each - are as follows. »

Edward Vielmetti

Mad libs biography

Some insprirations: Alexandra Franzen, Need to write a bio? Use this. Molly Gordon, How to write an artist’s statement. DJ Bio, Resident Advisor. Tinder Bio Mad Libs, GQ. How to write a thank you note, Leslie Harpold, The Morning News. »

Edward Vielmetti

Upgrade to Hugo 0.20

I’ve upgraded this weblog to Hugo 0.20, which is available by Homebrew on the Mac and with a series of prebuilt binaries for many systems. Hugo in this 0.20 new release promises a lot of new features, including but not limited to support for rendering calendars. I’ll give it a try. One of my goals of Hugo is getting it to run on linux/arm64. It should be easy, since it’s written in Go, and golang ports are absurdly easy. »

Edward Vielmetti

Learning Terraform

Terraform is a provisioning tool from Hashicorp. It manages the process of setting up and tearing down and updating your computing infrastructure. Commands necessary to set up your machines are stored in files, with just enough language features in that configuration description language to accomplish simple automation efforts and to keep secrets out of common config files. Terraform lives in the same computational universe as other packages like Vagrant, Puppet, Chef, Ansible, and Salt. »

Edward Vielmetti

Everything depends on the latest version of everything else

This seems to be the state of the software development world, where you really only have two states of affairs: State one is really old, stable, standardized, “legacy” code, well documented, portable, runs everywhere, easy to port to new systems and architectures. The “curl” library is probably the archetype of this, written in C. State two is really new, unstable, exciting, “modern” code, always changing, designed largely for a 64-bit Intel architecture, and unpredictably hard or easy to port to new systems and architectures. »

Edward Vielmetti

Oblique strategies as a service

In 1975, Brian Eno and Peter Schmidt collaborated on a card deck of strategies for overcoming creative blocks. This was produced in limited and somewhat varying editions, and when it escaped into the computing world at slightly later date, various electronic versions were produced (including one in FORTRAN). Prentiss Riddle noted some of this history in 2004. The ‘oblique’ code is simple; a file with strategies, one per line, and a function to return a random line from that file. »

Edward Vielmetti

Templated issue reporting in Github

A well-managed software project will inevitably have issues come up that need discussion and resolution. These might be out-and-out bugs, but more often than not they are also difficulties that people have getting started running something complex, or issues that arise when building for an environment that is not the same as what the developers have experienced. The best projects I’ve seen have used the ability for Github to provide a template for the issue report. »

Edward Vielmetti

DTE power outage is worst in company history due to high winds

High winds hit southeastern Michigan on Wednesday, March 8 2017. As a result, many DTE customers lost power. Exact numbers are hard to come by, but DTE’s estimate is that about 800,000 customers were affected, making this the worst storm in company history. Even before the peak of the storm, the DTE infrastructure for notifying customers of outage status and gathering incident information from its customers failed. DTE’s web site was down for the better part of Wednesdsay, and when it came back up it only had the bare minimum of information, with no outage restoration times available and no public-facing map detail of outages. »

Edward Vielmetti

February 28, 2017 AWS S3 downtime

Amazon Web Services had downtime yesterday. Their S3 storage service had what was described as elevated error rates in the US-East zone, and as a result failures started in other AWS services in US-East that depended on S3. The failures were reminiscent of the DynamoDB downtime of September 20, 2015, in that seemingly unrelated services share a common failure mode because of unforeseen interdependencies. A distributed system is one in which the failure of a computer you didn’t even know existed can render your own computer unusable. »

Edward Vielmetti

Dogfooding

To “dogfood” comes from the phrase “to eat your own dogfood”, giving the sense that you are not only producing a product but also consuming it as well. This is intended to show that you care so much about your customers success in using that product that you are willing to use it the way they are intended to use it. “Dogfooding” is thus shorthand for actually depending on something that you make yourself for sale. »

Edward Vielmetti

Every day

Once upon a time I had a daily deadline to write 500 words. Anything was fair game as long as it was spelled correctly and included the two words “Ann Arbor” prominently in the lead paragraph. Those days are gone, but the memory of them reminds me of just how much hard work it is to have something new to say every day that’s worthy of publication. There’s a certain rhythm to writing every day. »

Edward Vielmetti

Abandoning analytics

I’ve stopped for the most part watching and caring about how many people view the various bits of writing I do. The analytical tools out there for measuring the net have their primary impetus the selling of advertising, and as such they have slowly but surely morphed to be less and less useful for the discovery of non-commerical intent. It used to be that Google Analytics would tell you the exact search terms that someone used to get to your page. »

Edward Vielmetti

That new system smell

That new system smell is what you smell when there’s a brand new blank page and you have a ready approach to fill it up. It’s the well-worked out technique just waiting for some new set of tasks to tackle. Some times new systems present as “greenfield” opportunities, with brand-new things to do that don’t require much in the way of adherence to what’s gone on in the past. Others show up as “brownfields”, with their fair share of underground surprises and an acrid or pungent smell of previous toxins or old tailings. »

Edward Vielmetti

Small wins

I am reminded again of Karl Weick’s work on “small wins”, the observation that large problems are so large that we are overwhelmed just in thinking about them. It can be incredibly powerful to have a series of small wins that provide some momentum and that set you up for increasing confidence and capability to tackle bigger issues. My small win of the moment is getting this blog post up, reminding myself that once upon a time I met a writing deadline every day for publication, and knowing that it’s not necessary for every single post to be a big thing. »

Edward Vielmetti

ISO 8601 date format and keeping track of weeks

Warning: objects in calendar are closer than they appear. I can never keep track of the day of the month, it seems. The watch on my wrist has a day marker, but it wants to have a 31 day month, and when we have 30 or 28 day months the day has to be manually adjusted. On the other hand, I have a keen sense for what day of the week it is. »

Edward Vielmetti

Happy leap second (or mostly happy) and happy new year for 2017

Happy new year, and from a technology perspective, also happy leap second. [image: timekeeping for the leap second, from FSM Labs] Here's a complete picture of #leapsecond 2016. pic.twitter.com/DFp6XgnPig — FSMLabs (@FSMLabs) January 1, 2017 As always, when there’s a leap second, people get a chance to debug their timekeeping code. I guess if they happen frequently enough the code will get better exercise and some bugs will be shaken out. »

Watching containers with Portainer and Sysdig

[screen capture: csysdig running inside Portainer] Run @sysdig CLI tool "csysdig" inside of a @portainerio console window. Nice way to watch @docker and @coreos cc @mckartha pic.twitter.com/hJGiHuJwKs — Edward Vielmetti (@vielmetti) December 29, 2016 The question to be answered is how to manage Docker containers - not just how to get them running, but also how to poke inside them while they are running to see what they are doing and make sure that you can make sense of what is happening while you develop or run in production. »

Trip report, Tectonic 2016.

The Tectonic Summit was a conference in New York City in December 2016, hosted by CoreOS, with the theme Enterprise Kubernetes. Mohan Kartha and Edward Vielmetti went there as a guest of Packet, a bare-metal hosting provider in the city. This report details highlights of the presentations at the event as well as accounts from attendees of what they thought was missing from the presentation and discussions. Kubernetes Kubernetes is an orchestration system that runs on top of a container system like Docker. »

Optimal Opera

I’m testing out using Opera instead of Chrome as my browser of choice, as recommended by Ernie Smith. So far so good. He notes that Opera is “basically Chrome (same engine) minus the battery drain”. My experience to date bears that out, though it’s in the early stages yet. The first thing I noticed is that memory usage for Opera is way less than for Chrome. That’s a big deal for me because I’m often noticing that this MacBook Air is in the red zone for memory with Chrome. »

Derp Learning

“Derp Learning” is a categorization of the mistakes that “deep learning” techniques in artificial intelligence tend to make. It’s a typo, but also a deep insight into how complex systems fail. Some examples to illustrate: Deep Neural Networks are Easily Fooled: High Confidence Predictions for Unrecognizable Images, 2014. Nguyen describes “fooling images” that deep neural networks misclassify after being trained with a training set. These images are straightforward to construct and will fool the network with high confidence. »

Static vulnerability analysis tools for Docker containers

You’re developing in Docker, and you have a container with a lot of layers when you’re done. How do you make sure that you don’t have security vulnerabilities hiding somewhere inside there, especially if you are running a container that depends on something that depends on something that depends on something else? The first step is to understand your own application, so that you can have some sense for how the dependencies that you have control over are impacted. »

Using SDR.HU to listen to AM radio sports

The Cubs won the pennant, and the Buckeyes lost to Penn State. I was able to listen to the radio calls of both of these through recievers connected to sdr.hu. The Cubs radio call was from WMVP-AM, ESPN Chicago 1000. I had some practice listening to them through the Farmington Hills, MI SDR run by KB8SPI. That system is a KiwiSDR with a PA0RDT Mini-Whip, and it tunes from 0-30 Mhz including all of the longwave (broadcast AM) band. »

More 96 core benchmarks

Yesterday I spent some time with a 96 core ARMv8 server. On day two I figured out a couple more things about that server. First and foremost, the extended path of installing Docker on the server I chronicled yesterday ended up being much easier today. A simple apt-get install docker.io did the right thing to bring Docker 1.12.1 into the system. Don’t do apt-get install docker on Ubuntu; you’ll get “docker - System tray for KDE3/GNOME2 docklet applications” instead. »

96 cores hot with ARMv8 and Docker

I had early access to a 96 core, 128 gigabyte ARMv8 server today. Here’s what I did to get all of the CPUs and all of the memory in use at the same time. The system: a bare-metal hosting company is working on general availability of these ARMv8 (aarch64) servers. I got early access for beta testing. Talk to me if you’d like to know more. The software: These systems boot with Ubuntu 16. »

AWS Lambda for Python with "Chalice"

Chalice is a microframework for Python for AWS Lambda, similar in spirit to Flask. What does that even mean? A framework is a set of libraries and coding conventions that makes development in a specific language for a specific task easier. That usually involves making some simplifying assumptions about the task you are trying to solve, and embedding those assumptions in your code so that you don’t have to spell out quite as much detail to get a task done. »