Bash + Git

A tale in two parts today. Quick bash admin and git woes. Bash Admin Today I was faced with a real sysadmin task. I had 32 nodes I needed to configure all with just a bare bones Ubuntu install. Typically I fallback on ansible as my provisioning and configuration tool of choice. Unfortunately the machines did not even have python installed so we couldn't jump right there. To make matters worse, the single user on the machine was not configured with an ssh key, so password based authentication was all that was available. [Read More]

Github Pages

Today I learned about GitHub Pages. This was similar in many ways to when I learned about Gitlab Page but there where some differences. The most substantive are: No integrated CI requires a manual deploy step More complex HTTPS setup The guide I followed for SSL was the aptly named Secure and fast GitHub Pages with Cloudflare. The guide I followed for hugo was also appropriately Host on GitHub and in particular the organization pages portion. [Read More]
web  github  gitlab 

Hugo Content Layout

Today I worked on another static site and learned more about Hugo's content management organization. Specifically, I learned much more about the distinction between sections, types, and taxonomies. These concepts are all related, and can all produce aggregate lists, but have very different degrees and mechanisms to configure. sections are opinionated, unchangeable, attributes that are determined by where a file is placed. Seemingly the documentation indicates they are the top level directories under content, however there does appear to be some support for nested sections, including an open issue related to their documentation. [Read More]
hugo 

Outlook + http.Client

First day back at work since the new baby, so it will be interesting to see how this log changes when I am not just doing hobby projects. Outlook Unfortunately, it wouldn't be a true work day if it didn't involve digging out from under a pile of emails. In the spirit of efficiency I looked up some hotkeys and lo and behold (courtesy of lifewire, you can move a message to a folder with: [Read More]
hotkeys  go 

Webpack + CORS

webpack Today I learned about webpack, a way to “bundle your site”. As I would summarize it webpack allows you to write your web application across multiple files, with multiple dependencies, and it takes care of resolving (and bundling) everything into a functional output that can be served. I had heard of webpack before but specifically came across it while reading the Vue.js tooling documentation. One thing that was really helpful to wrap my head around webpack's functionality was the Concepts documentation. [Read More]
web  npm  security 

Vue.js

Today I read some of the documentation for Vue.js. My web chops are relatively weak and are an area I would like to improve upon. As far as things go Vue seems like a relatively well respected and thriving library/framework. No code or demo to speak of just reading today. In reference to yesterdays bonus section on time tracking, I've decided to go back to using TagTime and perhaps setting up some structure around Watson. [Read More]

Beeminder API

Today I learned about the Beeminder API. Beeminder is a goal tracking tool backed by commitment contracts. Roughly that means you make a commitment to make progress towards a goal and you track it. If you stick to it then you get a nice graph, and reminders of what you need to make progress on. If you fail then you cough up a pre-committed amount of money. Since this explanation hardly does it justice I highly recommend checking out the site. [Read More]
beeminder  web  cli 

Code reloading with Docker

Short post today but I spent sometime converting a Vagrant based development environment over to Docker. One of the most magical features of this is the increased feedback speed. One pattern I found that seems to work really well, is to use: A docker-compose configuration that mounts the source into the container. Overriding the command that is run to watch/reload For example Flask has Debug Mode. Gunicorn has –reload. [Read More]
python  gulp 

Cracklib + Safe

Cracklib Today I was working on a flask web application that had a dependency on cracklib. This seemed like an oddly named and surprising inclusion and so I investigated. It turns out that it is a tool for checking passwords in order to prevent users from choosing passwords that could be guessed by “crack” by filtering them out, at source The application was using the python library in a very similar way to that described by Gary Wilson Jr. [Read More]

The installation failed...

A tragedy in 3 parts: Windows Spent my dev time today fighting to upgrade a Windows VM. The quick version is that I was making an epic journey from old boot media all the way from Windows XP to Windows 10. All was well until the final leap from Windows 7 -> 10 when I was struck down with a dreaded: The installation failed in the SAFE_OS phase with an error during BOOT operation [Read More]