Joshua

engineering leadership

Automating and Modernizing My Site

Posted on June 28, 2019

Recently I set out to replace the infrastructure behind my personal website. I had a few goals when I started the project a few days back… I want to write articles in vim, press a button and have them show up on the internet. I want to control the build pipeline - I want minified html, css (written in sass), and javascript. I don’t want to be forced into using javascript, even though I’m deeply invested in React!

Why I Dumped Ghost

Posted on June 28, 2019

Coming back to my personal site after a few years has traditionally been a painful process of trying to figure out how things are glued together. Prior to my introduction to containerization and infrastructure as code, typically for my own personal site, I’ve been very ad-hoc about adminitstration. I manually set up a digital ocean droplet, select an operating system, install packages, modify systemd, install a package or two, including my own codebase and forget about it.

Stanford Compilers: Bison Parser for Cool

Posted on June 11, 2016

Completed assignment #2, which is a Bison Parser for cool. I posted this project on github (here), which includes a makefile for OSX. Honestly, there weren’t too many gotchas to this project. The most difficult things to figure out were the required AST (abstract syntax tree) operations that were expected given the library provided by the course. I got most of this just by examining the cool-tree.aps file directly. In fact, this file acts as a decent outline for how to approach each non-terminal expression you need to develop.

Stanford Compilers: gdb with myparser

Posted on June 08, 2016

Still working on the actual parser, but I did run into a situation where I actually needed to debug the parser in gdb. Not immediately obvious how to get this working, so I modified the myparser shell script with my findings.

Stanford Compilers: Flex lexer for Cool

Posted on June 06, 2016

I just finished the first programming assignment for the Stanford Compilers course, which was to implement a lexer for the Cool (classroom object oriented language) using Flex. Flex is a C-language based lexical analyzer generator. It generates a valid c source file for the lexical rules you put together. The .flex file format is basically a c file with some special syntax. The bulk of this assignment was hunting for implementation details.