git-cc: a TUI for creating conventional commits
git-cchelps write conventional commits inside your existing workflow:
- you can use
git-ccto interactively guide your commit-writing or invoke it to validate your commits.
git-ccships as a standalone binary for Linux, Mac, and Windows.
- you can invoke it as git cc with similar flags as
$EDITORand the editor configured for
While it’s free for personal use, you can buy licences for commercial use for $5 on strictEq.
- you can use
prebuilt HTML man pages for each version of the linux man pages
how can POSIX be real if manpages aren’t real
– Jaden Smith, probably
Someone told me to RTFM. I wanted to, but since this is software engineering, you can’t just “read the manual”, that’d be too simple. Either you open twenty Stack Overflow tabs searching for a magical flag or you compile every linux man page from source into HTML. I’ve been informed that there might be an easier way to RTFM but I’m pretty sure that’d be illegal. These same imformants told me that “writing everything in
bashwasn’t neccessary” and they’re right, but it’s too late for that. Far too late.
Anyway, if you want a dataset of HTML versions of the man pages, you can get ‘em here. The dataset might be useful for building tools like explainshell or doing interesting analyses like “The growth of command line options, 1979-Present” by Dan Luu.
2019 holiday card: canvas pixel-art snow
My 2019 holiday card. I took inspiration from pixel art such as the Living Worlds series. The view is of my apartment.
Writing this card was a bucket of fun, especially learning the HTML canvas api and figuring out how to get the snowfall to wrap around when it hit the edge. My favorite part of building this card was probably working with Zeit
now’s immutable deployments.
A set of jekyll
_includesthat allow you to use hashed assets from webpack or another asset wrangler in Jekyll without a plugin. Since Github pages don’t allow custom plugins, this is the closest you’ll get to using
rails-webpackerin Jekyll. Get a license on License Zero:
A tool to help my team incrementally adopt consistent python style.
It might be a character flaw, but I can’t stand inconsistent style. To avoid wasting time in code review talking about style, I initially proposed using
black. My team was hesitant to lose all the blame on our thousands of lines of python, so I wrote a YAPF style guide and this command-line tool to format only what was changed in a PR.
Webpack and compilers can produce hashed asset bundles ( like
index.bundle.md5h4sh3d.js). Flask-Webpack provides global jinja2 templates that look up your your hashed bundles by name in an asset map.
Scraping Mozilla Developer Network compatibility tables
BackgroundComing into 2018-19, Mozilla Developer Network (MDN) had crowdsourced HTML tables of compatibility between browsers and features of web standards. They then crowdsourced the conversion of these tables into JSON.
I wrote a bookmarklet to scrape MDN’s old browser compatibility tables. To use it,
- go to a MDN documentation page which needs modernization
- click the bookmarklet in your bookmarks menu/bar.
- Check the scraped data in the JS console, including where you should submit it as a PR.
UPDATE 2019-08-01: as far as I know, the conversion to JSON compatibility tables is past the point of needing this tool.
Slicing geojson into
I wrote a tool that transforms geojson to filesystem pyramids of mapbox vector tiles (
.mvt). This involves tranforming geojson → sliced JSON tiles → protobuf (.pbf) → serialized pbf (now .mvt) arranged as directory/x/y/z. The benefit to using this over other tools is that it doesn’t require leaving node.js. In the future, I’d like to allow it to produce complete
.mbtilesentirely within the browser.
Writing a WFS-T library in 2.6kb min+gz of js
OpenLayers and Leaflet-WFST can translate GeoJSON to GML. Both are full-fledged web GIS tools. This is only a string formatting library to translate GeoJSON to GML so that it should plug-and-play in any context.
GeoJSON to GML-2 Git Repo NPM package GeoJSON to GML-3 Git Repo NPM package
Relationships between univariate probability distributions
In 1985, Leemis and McQueston published an article “Univariate Distribution Relationships” in the American Statistician, an update in 2008, and in 2012 they published an interactive version of the chart using
areatags. In 2017, I wrote a short python script to scrape the data contained in the
areatags and produce a reuseable and extendable dataset. You can see the result here and the full script and data may be retrieved and reused from this github repo. If you do reuse the data, please use the citation below for Leemis et al.’s 2008 or 2012 paper and avoid running the scraper unless neccessary.
Leemis, Lawrence M, and Jacquelyn T McQueston. 2008. “Univariate Distribution Relationships.” The American Statistician 62 (1): 45–53. doi:10.1198/000313008X270448