Analyzing writing in LaTeX documents.

I maintain a collection of LaTeX templates at bamos/latex-templates and have recently added [btford/write-good][write-good] to the Makefile’s. write-good is a native linter for English prose and works well on LaTeX documents. The following Makefile will output a list of warnings and tips for improving writing after building the LaTeX documents. SRC=$(wildcard *.tex) PDF=$(SRC:.tex=.pdf) all: $(PDF) %.pdf: %.tex latexmk --pdf $<...   read more

26 Oct 2014 | LaTeX

Merging PDF's for printing by adding blank pages with Python.

The printers in my office print a cover page before every job, and I don’t like printing many cover pages if I want to submit multiple papers separately so that the papers don’t overlap. To overcome this, I use the merge-pdfs-printable.py script in my bamos/python-scripts GitHub repo. This script will merge PDF documents and insert blank pages so that the...   read more

17 Oct 2014 | Python

Prefixed multi-hop SSH wildcard configurations.

SSH client configuration files are useful to define aliases and options for servers when using ssh so that you don’t have to specify them manually. Take a look at Joël Perras’ blog post for a practical overview. The ProxyCommand option provides transparent multi-hop SSH, as described in this post. Furthermore, the PATTERNS section in the man page describes how *...   read more

06 Oct 2014 | Linux

Using network block device on Android.

This post describes how to create a network block device on Android to use storage on a remote server. Linux uses block devices to provide reads and writes to hardware technology without exposing the hardware characteristics of the devices. For example, the first registered hard drive block device is located at /dev/sda. A network block device enables a remote machine...   read more

08 Sep 2014 | Android, Linux

Concluding my Adobe Research internship.

I’ve had a great experience interning with Adobe Research in San Jose, California this summer. I’ve met a lot of interesting people and have built distributed systems to split computations of large data sets between many computers in synchrony using Scala, Apache Spark, Spray, and Parquet. We have open sourced all of my work as 3 projects on the Adobe...   read more

15 Aug 2014 | News

Older Posts