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.
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
Parsing a website used to be rather straightforward affair: You download the webpages and then you poke through the HTML with regular expressions until you find what you’re looking for. You could set up a pretty good data extractor going in Perl rather quickly. Later e replaced the regular expressions with proper HTML parsers, but on the whole the process remained rather simple.
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