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

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


October 22, 2015

So, the other week I was in the store pur­chas­ing some tooth­paste. Now tooth­paste, at least in Amer­i­ca, is a great exam­ple of that phe­nom­enon of a huge num­ber of indif­fer­en­ti­at­able choices you often get when shop­ping at a typ­i­cal gro­cery store. There are maybe a dozen brands of tooth­paste and each brand has maybe a dozen prod­ucts all adver­tis­ing slightly dif­fer­ent advan­tages in the realm of tooth care. One tube of tooth­paste offers defense against cav­i­ties while another adver­tises that it will pre­vent plaque build up. Now, never mind the fact that the default expec­ta­tion is that all brands of tooth­paste will help pre­vent cav­i­ties, there is really no way for the casual shop­per to really eval­u­ate the claims of these dif­fer­ent products.(With the excep­tion of anti-sen­si­tiv­ity tooth­paste where I imag­ine a per­son with sen­si­tive teeth could tell if the tooth­paste helped.) If one uses one brand of tooth­paste for a year and never gets a cav­i­ty, there is gen­er­ally no way to know if it was that tooth­paste which pre­vent­ed, or if any brand would have done.… Read More

Some of my work:
Nighttime Alert

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


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

Unix Options

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

source download
Mass On Time

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


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

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.