Software developer and writer

Themes I’m Interested In

December 11th, 2017

The inevitable forward march of technology Deconstructionism Humanism Paradox Word play and wit Musical counterpoint Oppressive government/surveillance Feeling alone Self-deprecation Sarcasm Sincerity Social criticism Consciousness Economic theory (simple enough for a layman) Capitalism Mormonism The effects of religion How culture forms China and Chinese culture Education Theoretical computer science research Software development The Internet White-collar […]

Potential Future Computing Materials

November 2nd, 2017

I woke up yesterday morning feeling dizzy. I don’t know if there’s a name for this condition,  but every now and then I experience mild vertigo after spending too much time looking at TV and computer screens. Maybe it’s my fault for spending such a huge amount of time in front of a screen. I […]

The Future of Smart Phones

October 23rd, 2017

Recently I’ve been asking my friends what they thought smart phones would look like in a hundred years.  So far I’ve received three categories of responses: They’ll become a flat sheet of glass with a holographic screen (something like this). They’ll be replaced by a microchip implanted in our bodies. They won’t exist. Number one […]

What is possible?

October 19th, 2017

Any arrangement of any letters on any medium that conveys any idea, evokes any emotion, details any process, and describes any story, among other things. Any sequence of of any collection of any sounds coming from any instruments of any type that hit any eardrums and inspire any minds to think any collage of any […]

Making a Snake game with Phaser

September 18th, 2017

Don’t want to read? Play the game online or view the source on GitHub. I remember a lot of lunch periods in junior high playing games on MiniClip and Kongregate with my friends. Browser games were the best thing ever back then — I wasn’t allowed more than twenty minutes of computer time at home […]

My thoughts on some popular iOS games

September 10th, 2017

For the last couple of weeks, I’ve been downloading games on my iPhone and dumping my thoughts in a Google Doc. I’m posting them here to start a conversation with the independent iOS dev community about what differentiates successful games from unsuccessful ones. The questions I tried to answer with my informal analysis so far […]

Decoupled Drupal

September 1st, 2017

“Decoupled Drupal” is the Drupal community’s buzzword of 2017. There’s lots of blog posts about why you would want it (basically, in the same cases where you would want Service Oriented Architecture), just like there are myriad posts about why you should switch to microservices/etc., but I wanted to see how hard it would be […]

Thoughts on Drupal + D8 Kernel 101

August 18th, 2017

This post assumes basic familiarity with Drupal development. It’s mostly a brain dump after working with Drupal for a long time without connecting with the online community. Leave me a message or a comment with your thoughts! My experience with Drupal I have used Drupal at my part-time day job for almost one year. I’m […]

Scraping Google Search Results with Python

August 5th, 2017

HTTP Requests Requesting an HTML page is easy, but what do you do once you’ve caught it? Parsing HTML is difficult and obsessively page-specific. XML? That’s a cakewalk, but HTML pages can’t be treated the same way as XML documents, because HTML pages aren’t always well-formed. Python’s well known BeautifulSoup library makes getting data form […]

Hello World for Clojure and AWS

August 1st, 2017

You want: to make a web site, to use Clojure for the backend, and to use AWS for the infrastructure. Here’s how you do it: Make an AWS account, enter your billing information, etc. Make an Elastic Beanstalk instance. Save your access id and secret access key somewhere secure. (You may have to make an […]

How to dissoc a keyword from a nested map

July 28th, 2017

One solution, using clojure.walk: You can use reduce to do this with a list of keywords: This was useful in the case of my AST tool, where I had to remove unnecessary/duplicate values from a large map.

How to get the AST of a ClojureScript form

July 26th, 2017

See this page for a live demo: URL shortened: Full link: Code on Github: Basic function to get the full AST of a string of CLJS: The above code returns an EXTREMELY long data structure. Ex. ((fn [a b] (+ a b)) 5 7) returns a map with almost 3,000 lines. I asked on […]

How to prevent the browser from caching your fetch requests

July 17th, 2017

Python script to graph Apache logfile

July 14th, 2017

This bash file: And this Python file: Drawbacks: 1. It dumps straight to your server’s document root. 2. A single page view could result in 50+ entries in the access log (JS/CSS/img loads each get a unique entry). 3. It makes a request to for each unique ip address in your log. 4. I […]