My name is Andrew Stine. I'm a software developer and freelance philosopher currently based out of Northern Virginia and this is my website. It's partly a blog, and partly a showcase for different projects on which I may be working.
You can get in touch with me through firstname.lastname@example.org
My public key: Public Key
You can peruse more of my projects on Github.
Nota bene: If you wish to contact me directly, I strongly prefer email to phone calls, especially during working hours. Thanks.
Web applications have come a long way in the past decade or so. Back in the 90s a ‘web application’ was basically a group of web forms and web pages hidden behind some CGI scripts. In 2004, the same thing was basically still true though people were maybe using servlets rather than CGI. Nowadays however, web applications can be very similar to native applications in terms of functionality and usage. Over the years, the web has transformed from a document delivery system to an application delivery system and we’ve succeeded in replicating just about every native application in web form to some degree or another. This is kind of wild.
Yet, to a large degree, web applications still suck… Read More
I just finished reading Michael Lewis’s book Flash Boys. Its the first Michael Lewis book I’ve read and I’m not yet certain what I think of him as an author or a journalist. I’ll probably read a few more before I’m certain.
What I am certain of is that Flash Boys is a very interesting book. It’s about high frequency trading and its effects on the stock market. It mainly details the less ethical tactics of high frequency traders as well as the creation of IEX, a stock exchange designed to counter those tactics. It raises some very interesting questions about the effects of technology not just on the stock market but in general, and for me, also raises questions about what constitutes fair-play in a free market… Read More
Recently I was writing some code to ingest new entries for my church search website. The application is written in Clojure, but the downloading is done with an external script that downloads new entries and saves them as files in a directory, but at a slow rate. I wanted to be able to specify a range of entries to download, and have the script run and then have my application ingest the files that the script generates. I wanted this to work concurrently, with multiple downloaders and multiple ingesters running at the same time. And I wanted all of this to be triggered from Clojure.
This is basically a concurrency problem so it’s a good thing I was trying to do it in using Clojure. The most obvious solution would be to launch multiple downloaders, and then have a thread which watches the directory, feeding filepaths to ingester threads using channels and core.async. Unfortunately, I’m stuck using an older version of Clojure for this project for the moment and core.async is not available. Thankfully, lazy sequences can be used as a substitute for channels in a pinch… Read More
An evening alarm clock for undisciplined insomniacssource
A trivial Facebook bot which wishes a users friends happy birthday on their birthdays.source
A Common Lisp command line parser.source download
An tool for finding nearby Catholic masses and sacraments.
Some extensions to eh cl-fad pathname library.source
A simple command line client for swank. This client is written in Clojure and targets Clojure Swank specifically.source