Development On The Go
Fitting your open source side hustle into a busy schedule can be really hard. It seems like every time you get started on a new feature, doing issue triage, writing documentation, or any of the other multitude of activities that keep an OSS project healthy you're pulled away by family, work, or other personal obligations. I've always had a family-first mentality, so for me creating a healthy balance means making the most of every minute. More often than not, that means doing whatever work I can wherever I happen to get a free moment to do it. Not everything requires Visual Studio and a compiler. Creating documentation, responding to issues, reviewing pull requests, and writing blog posts can all be performed from your phone. In fact, I'm writing this blog post from my phone right now. Here's the tools I use to enable this kind of mobile open source workflow. Before I begin though, it's worth noting that both my phone and tablet are iOS so that's what I'm going to be writing about. There are probably very good counterparts on Android and Windows Phone, I'm just not aware of them.
Synchronizing Files With Azure Web Apps Over FTP
I've recently been experimenting with Azure for static site hosting. While there are lots of great static site hosts (my personal favorite still remains Netlify), Azure Web Apps offer some attractive features to enterprises or organizations already invested in Azure. One would think that easily deploying a static site to Azure would be relatively straightforward. Unfortunately, I found that this wasn't the case at all. While Azure Web Apps have some advanced deployment options like Kudu for git deployments and Web Deploy for deployments from Visual Studio, both require some setup and configuration, are designed with "application" scenarios in mind, and aren't as straightforward as a simple FTP upload. Unfortunately, even FTP uploads to Azure Web Apps have some issues that I'll discuss below. To address this scenario, I ended up writing a little bit of code to automatically synchronize a local static site with an Azure Web App FTP server that ignores unchanged files.
Announcing A New Documentation Experience
When I started working on Wyam about 2 years ago, a primary design goal (probably the primary goal) was to create a general-purpose static generator that could be easily adapted to any sort of content, from the most complicated web site to output that isn't web-based at all. I was frustrated with both the lack of a popular and robust generator in the .NET ecosystem (why should Ruby and Node get all the fun?) and also with the limitations of the generators that do exist on other platforms. Nearly all of them favor strong conventions and patterns and while many are extensible, creating experiences that differ too greatly from what's expected becomes challenging fast (a notable exception to this is Metalsmith, which is similar in spirit to Wyam).