Running awscli inside of Docker

If you have docker, you can run Amazon's awscli inside a docker container using wtanaka/alpine-37-uid-awscli (source). To use it:

  1. Download it, e.g. with:

    curl > aws

    or alternatively:

Using docker to replace all command line programs

Sometimes you want to run the same version of a command line program across many operating systems. Maybe your development environment is in Mac OSX and your CI system or production environment is Ubuntu. In these cases you can use Docker to package the command line program into a container which will then be consistent everywhere.

Wesley's Software Philosophy v1

  • Immutability and referential transparency enable simplicity.  Achieve them when possible.
  • Shared state increases complexity and reduces parallelism.  Avoid it.
  • Fail as fast as possible.  The earlier you detect buggy code or invalid data, the less complicated the fix.
    • Use as much static analysis as you can, including linting and static type checking.
    • Prevent bad data from propagating forward through your software, instead of writing unboundedly complex software to handle it. 

Airtable vs Google Spreadsheets

For the past few years, I've used Google Spreadsheets when I wanted to create a small database quickly. Database concepts can be implemented using spreadsheet formulas. Each spreadsheet tab represents a database table; Joins and queries use VLOOKUP (or MATCH/INDEX to optimize); GROUP BY queries are either pivot tables or other formulas. As VLOOKUP count increases, performance goes down, but it's worked reasonably well and Google Spreadsheets is free!

However, there are a few issues:


Hosted CI services are becoming more popular. Each service runs your build and tests inside a different operating system with different software pre-installed. If the environment doesn't have the right dependencies installed, you are often encouraged to install them using that CI service's configuration system.

Comparison of Free hosted CI services for open source or public repositories

Many free hosted contiuous integration (CI) services exist. These services will automatically compile code, run tests, against commits or pull requests against your source code repositories, and are even able to deploy the new code to your production servers if all of the tests pass. Some offer free builds for open source or public repositories, giving free compute resources to these projects.

App launch checklist

Stock photos

Unsplash is a repository of free photographs that can be used for stock photography or any other purpose including commercial purposes.

Configuring email notifications in TravisCI

By default, TravisCI notifies the committer and author about build results if they have access to the repository the commit was pushed to. However, this does not work well when using the email address in GitHub, because emails to that address do not get delivered. To enable build notifications for yourself, you can add an explicit override to .travis.yml with:

Running LaTeX inside Docker

(Updated Aug 15, 2020)

This docker image has LaTeX installed. To use it, you can run:

  • docker run -e "HOSTUID=`id -u`" -v `pwd`:/work -i -t --rm cliwrap/latex latex myfile.latex
  • docker run -e "HOSTUID=`id -u`" -v `pwd`:/work -i -t --rm cliwrap/latex dvips myfile.dvi


Subscribe to Wesley Tanaka RSS