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 Feb 25, 2018)

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

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

Installing PHP Composer with Docker



What is slf4j?

There are several commonly used logging frameworks in Java: log4j, java.util.logging, logback.  Because different projects may have dependencies on one or another of these frameworks, linking more than one project together can cause more than one logging framework to be linked.  SLF4J is an abstraction layer for these different logging frameworks.

Logging in Flink with Apache Beam

Logging in Flink is implemented using the slf4j logging interface on top of log4j. This means that the most flexible approach you can take in your user pipeline code is to depend on slf4j instead of depending on log4j directly.


Subscribe to Wesley Tanaka RSS