My name is Andrew Stine. I'm a soft­ware devel­oper and free­lance philoso­pher cur­rently based out of North­ern Vir­ginia and this is my web­site. It's partly a blog, and partly a show­case for dif­fer­ent projects on which I may be work­ing.

You can get in touch with me through

My pub­lic key: Public Key

You can peruse more of my projects on Github.

I also have a Twitter Feed that you can fol­low and I'm on LinkedIn.

Nota bene: If you wish to con­tact me direct­ly, I strongly pre­fer email to phone calls, espe­cially dur­ing work­ing hours. Thanks.


Latest Blog Posts

Universals and the Game of Life

January 19, 2023

The Problem of Universals

In this world we are sur­rounded by par­tic­u­lar things. A table, a chair, a house, a per­son… these are all indi­vid­ual par­tic­u­lar things. But, many of the par­tic­u­lar things around us have some­thing in com­mon. An apple is red and so might be a fire hydrant. A horse is fast and so is a race car. Napoleon was a per­son and so was his wife. Philoso­phers often use the term universals to describe these things that dif­fer­ent par­tic­u­lar objects have in com­mon, or in other words, any word that can be pred­i­cat­ed, or said, of mul­ti­ple things is a universal. That means just about any­thing, “Horse” in a uni­ver­sal, because it refers to a cat­e­gory of things called “hors­es”. “Hu­man” is a uni­ver­sal because it refers to a cat­e­gory of things called “hu­man­s”. “Red­ness” is a uni­ver­sal because it’s pos­si­ble for more than one thing to be the color red. “Large”, “short”, “white”, “table”, etc… just about any adjec­tive or noun that isn’t a proper noun is arguably a uni­ver­sal… Read More

Civilizations are complex systems

May 20, 2016

There is an inter­est­ing paper called How Com­plex Sys­tems Fail. It’s a col­lec­tion of 18 related obser­va­tions about com­plex sys­tems and about when and how they fail. The obser­va­tions are as follows:

  1. Complex systems are intrinsically hazardous systems.
  2. Complex systems are heavily and successfully defended against failure.
  3. Catastrophe requires multiple failures – single point failures are not enough.
  4. Complex systems contain changing mixtures of failures latent within them.
  5. Complex systems run in degraded mode.
  6. Catastrophe is always just around the corner.
  7. Post - accident attribution accident to a ‘root cause’ is fundamentally wrong.
  8. Hindsight biases post - accident assessments of human performance.
  9. Human operators have dual roles: as producers & as defenders against failure.
  10. All practitioner actions are gambles.
  11. Actions at the sharp end resolve all ambiguity.
  12. Human practitioners are the adaptable element of complex systems.
  13. Human expertise in complex systems is constantly changing.
  14. Change introduces new forms of failure.
  15. Views of ‘cause’ limit the effectiveness of defenses against future events.
  16. Safety is a characteristic of systems and not of their components.
  17. People continuously create safety.
  18. Failure free operations require experience with failure… Read More

Using a Parallax 28340 RFID reader on the Raspberry Pi

January 11, 2016

Recent­ly, a fried told me he was hav­ing trou­ble get­ting a Par­al­lax RFID reader work­ing on a Rasp­berry Pi for a project he was work­ing on. I won­dered how hard it could be so I got one of the read­ers for myself and hooked it up to a Pi. It turns out that it was harder than I thought it would be, but only because I did­n’t know what I was doing.

When the reader is con­nected to the com­put­er, it is auto-­mounted as a ser­ial port at /dev/ttyUSB0. You might think that because the let­ters ‘tty’ are in the device name that this is a TTY device, but it turns out that TTY devices are just con­nected over ser­ial ports. This was not actu­ally a TTY device. Once I under­stood that, it turns out that con­nected to a ser­ial port on Linux though Python is actu­ally rather sim­ple. One just needs the pyserial library.

Here are some instruc­tions and sam­ple code to get this device work­ing with a Rasp­berry Pi… Read More

Some of my work:
Nighttime Alert

An evening alarm clock for undis­­­­­ci­­­plined insom­ni­acs

Swank Client

A sim­­­ple com­­­mand line client for swank. This client is writ­ten in Clo­jure and tar­gets Clo­jure Swank specif­i­­cal­­ly.


Some exten­­­sions to eh cl-­­­fad path­­­name library.


A triv­ial Face­­­book bot which wishes a users friends happy birth­­­day on their birth­­days.

Mass On Time

An tool for find­­­ing nearby Catholic masses and sacra­­ments.

Unix Options

A Com­­­mon Lisp com­­­mand line parser.

source download