The infinite fireplace

When I was applying to grad school, I told myself the first thing I would do was build a fireplace in my studio. Somehow I forgot about this and only remembered after the first thing I built was this non-looping “GIF” of a fireplace. 

Technically, it needs some re-tooling (using the global namespace! the horror) but was a fun POC for a sort of backend-less architecture. All the logic is pure JS. 

"I love theory—it gives me something to think about while my hands figure out how to put it together."

Wall Drawing for Andrew Wilson’s apartment in Manhattan.

I think my favorite part is that the carry bit is hooked up to the lightswitch.


Wall Drawing for Andrew Wilson’s apartment in Manhattan.

I think my favorite part is that the carry bit is hooked up to the lightswitch.

Makeshift Sous-vide

I made sous-vide for the first time this week, and I did it for about $0.02. It was pretty cool. Here’s the deal:

The Premise:

Sous-vide is one of those cooking techniques that has a whole mystique to it, above and beyond the actual facts of the process. It seems arcane and difficult, and certainly the province of serious cooks. The machines alone cost between $300 and $6000. There’s vacuums! And I hear the results are preposterously delicious. Such succulence! Such delicacy!

I prefer to think of myself as a capable cook, not a serious one. After all, I cook to have fun, but for me learning a new technique is fun. So how to try out sous-vide without handing over $500? Reasoning from first principles seemed like the thing to do for a graduate student looking to get fancy. 

The premise of sous-vide is to precisely and evenly control the temperature at which your food cooks by immersing it in a hot(ish) liquid, but keeping it from exchanging fluids with that liquid by wrapping it in plastic. It’s an appealing technique for me since it relies on a very direct application of the Second Law of Thermodynamics— my favorite! All of which is a pretentious way of saying that I needed a way to keep a tub of water at my desired temperature for an extended period of time while my meat (chicken breast, in this case) cooked in it. 

How It Was Did:

A sous-vide machine is simple: a tub of water, a circulator, a heating element, and a thermostat. Let me show you mine.

The tub was a lovely Le Creuset French oven, which is nice because it will hold heat a bit more evenly, but any old stock pot will do. The larger the volume of water the better, in order to have more thermal mass.

The stove did the trick nicely for a heating element. This is one case where the electric range may actually be a bit better than gas, since I was trying to avoid rapid temperature changes.

A basic $15 digital thermometer (useful in a million other kitchen applications) with a probe provided my thermostat. This one had a min/max temperature alert, which is handy for this rig.

Wooden spoon for a circulator.

And that ziploc bag makes for a perfectly serviceable vacuum pack.

With this, the process is straightforward. Set the thermometer to the desired temperature (142° F for chicken breasts worked perfectly) and bring the water up to heat. Meanwhile, “vacuum” pack the food. By which I mean put it in the bag and seal it up almost all the way, then carefully fold and squeeze the air out. It’ll be close enough for government work, as they say. Then put the bag in the tub and stir occasionally. You’ve got yourself a sous-vide machine. 

The Results:

I was a bit worried I would be constantly twiddling the dial on the range, and had set up sources of hot and cold water to add in small amounts if I needed rapid temperature correction, but I didn’t end up needing them. I set my burner to “2” and adjusted it maybe twice in the hour this was cooking. The temperature fluctuated by no more than 2° the whole time, which is about the margin of error on my thermometer. 

The chicken came out perfectly. It was moist and tender, and cooked evenly all the way through— the little narrow tips were exactly the same as the thick, bulbous end. I threw it in a pan on a high heat with a touch of olive oil and pepper for about 30 seconds a side to give it some color, since straight sous-vide chicken is mildly disturbing in its uniformity.

Granted, this is more work than is required if I had my thermostat hooked up directly to the heating element, rather than through my patent-pending manual arm adapter module, but it really was quite easy. It also turned out to be the most forgiving cooking method imaginable; it’s almost impossible to overcook something if the temperature of the water remains at the internal temperature you are trying to hit.


The next step is to build myself a fully automated machine. A quick survey of parts online suggests that I could do this for around $50. I’ll probably pony up $60 on top of that for a vacuum sealer, since that’s a tool I can use for storing all sorts of other things.

Irritating superpowers

I ran across this little challenge which reminded me of the time I happened to have root access to the computer my roommate was using (he had borrowed mine, no devious hacker, me) so I set about gaslighting him. If you’re not familiar with the “say” command on Macs, I do recommend take a quick look. It’s extremely easy to use, and in conjunction with a remote login to a machine, you can do all kind of silly stuff. I primarily decided to make the computer come to life and offer bits of wisdom, like telling him “The internet won’t make you happy.” 

When I was about ready to reveal the game, I ran this nasty little script: 

for ((i=99; i>0 ; i—)); do    let “j = i - 1”;    say $i bottles of beer on the wall;    say $i bottles of beer;    say take one down ;    say pass it around;    say $j bottles of beer on the wall; done

It does what you’d think it does, and it’s a real creepy scene, having an affectless robot voice saying “99 Bottles of Beer on the Wall” out of nowhere. 

The Logicians’ Apprentice, Day One

I love programming languages. I think they are just about the closest thing to the old idea of magic— say the right words in the right order, and the impossible becomes possible. This is the simplest explanation for why I’ve spent the afternoon (finally) trying to wrap my mind around Prolog. It’s one of those languages that I want to add to my bag of tricks (is that a jazz metaphor or a magic metaphor?) not so much because of the raw usefulness, but rather because I can already feel it reshaping how I understand programming. Not to say that logic programming isn’t absolutely the right tool for a small class of interesting problems, but it’s mostly a doing-it-to-do-it kind of thing. 

If you’re unfamiliar with logic programming, the quick rundown is that it’s a declarative language, meaning a Prolog program is constructed by telling Prolog what I want, rather than how to do something. Programs in Prolog are made of knowledge-bases and rules. The rules follow traditional logical structures, so think syllogism and Socrates’ mortality. I find this compelling, as it fits well with my philosophy that to have accurately understood and described the problem is to have solved it. Writing a Prolog program to solve sudoku boils down to translating the rules of sudoku into Prolog and that is it. 

Now this is all well and good, but the problem is that PROLOG IS FUCKING CRAZY. Granted, this is a temporary state of affairs, and I remember feeling this way the first time I read SICP and worked with Scheme, but for reals, this is a whole new way of thinking for me. On the other hand, an afternoon pawing at Prolog is rewarding in the same way being lost in Scheme was: at least I’m lost in the right place. The elegance and power of the tool are evident, even if I’m holding it backwards. 

It’s an interesting learning experience, because I am aware of the major mistake I keep making. I keep wanting to tell the program how to do the work, rather than describing what the correct result looks like. I keep treating the rule operator “:-” like a function definition, thus treating the left-hand side of the rule as the function signature, and the right-hand side as the body. But prolog hardly cares which side is which! It’s all patterns and rules. 

In a traditional tech-blog post, right now I’d tell you the grand realization I had which solved this conundrum and show you my cool baby logic program. But I haven’t worked it out yet. Back to the shell!

Oh, since I’m sure most of this made little sense to anyone who hasn’t at least poked at Prolog for a second, here’s a few resources I’ve found handy. I’m working through this book, which is good for anyone interested in languages themselves. I also have found this tutorial useful, and recommend this implementation (you may already have it installed).


I’ll admit that what I’m on about has been a pet peeve of mine (even more than the term “pet peeve”- ugh) since I gave a speech about dangerous euphemisms to the Tucson Optimists Club for a high school assignment: “Contractors” they call them. What they mean is mercenaries. Someone at the DoD (another great euphemism for what was once the War Department) recognized that “mercenaries” made the for-profit military companies sound positively mercenary, so a new term was applied. That’s all understandable, but why now did the media accept this nonsense?

These companies are, for better or worse, mercenaries. They are direct descendants of the “free companies” like the White Company that helped turn late Medieval Italy into a land of constant war. I find it strange that the New York Times would accept the term “contractor” but balk at mercenary company Blackwater’s naked attempt to rebrand itself “Xi” in an effort to escape its well-deserved reputation for evil and incompetence. 

In any event, it’s easy enough to solve. Just remember that if the work being contracted for is fighting, guarding, or the related, the correct term is almost certainly ”mercenary”.

evaluate this

(+ 1 (exit))

when we talk about programming scheme, I found we never talk about how to get out.

Silly Sum

I was fiddling with this programming challenge and noticed a funny way of doing a sum on a sequence of digits in python. Granted, this was because I seem to have forgotten the actual semantics of python’s built-in sum(), but my method is cute and worked the first time, so enjoy. 

given a string, s, which is made up exclusively of digits [0-9], eval(‘+’.join(s)) produces the sum of the digits in s. pretty fun, I think.

If you’re not familiar with python’s string method join(), you should be. It’s handy in all sorts of unexpected places. It simply takes a string as the implicit argument and a sequence for the explicit argument and returns a string of the sequence elements concatenated together with the implicit argument in between. 

To understand my silly sum, you then simply need to remember that a string in python is a sequence, so each digit gets tacked to the next with a ‘+’, and if you were to feed such a string in the python interpreter, you’d have the sum of all the digits. Fun.

A pig in a poke

I’ve been fascinated by con games, grifts, and scams for a while now. I’ve also recently been in the market for a used Toyota Tacoma (or as they’re known elsewhere, a Hilux). These two interests lead to the email exchange you see below. 

the tl;dr of this con is: Never buy a pig in a poke. In medieval Europe, grifters would offer to sell the mark a suckling pig which was in a bag (poke). The scam was to get the mark to purchase the pig sight unseen. The scammer makes off with the loot, and the mark opens the bag to discover that he’s got a few dead cats on his hands, which, incidentally, is where the phrase “let the cat out of the bag” comes from. 

Hi “David”,

First, I’m really interested in the truck. It sounds like a really good deal, so I’d very much like to believe you. The truth is that the internet is such an anonymous place that it’s very hard to trust someone in a transaction like this. Please forgive me if I ask a few questions, which I think will make me a little more comfortable.
As a disclaimer, I am not affiliated with any law enforcement agencies, nor am I a journalist or even involved with the car industry. I’m a guy looking to buy a Toyota Tacoma, Hilux, or T100. That said, let me explain why I believe that I am dealing with a grifter or two, rather than with a Marine shipping off urgently. See, I did in fact read all of the previous email, as well as this one in its entirety. Both are well written and contain a fairly convincing tale. The problem is that it’s a tired tale, too. I have had three similar tales told today! One was a woman in Montana who’d won free shipping somehow, but due to mortgage costs she simply had to sell… her loss my gain, I suppose. Another had the car stored in Massecheusatts, but the damn $20 a day storage fees were killing her…though somehow she could afford $500 or so to ship the car to me, even at a desperately low price. And here you are, with your Military Logistics Department and your urgent everything-must-go deployment sale. Forgive my skepticism.
Honestly, at this point, I still feel myself tempted to bite. $2500 for a 2003 truck! and surely, sometimes a military man needs to sell his car. But wait, I think, hold up. He’s in a special program, I can’t talk to him on the phone and he’s a thousand miles away, how am I going to get the money to him? And you’re right there with the answer: Perfect. I trust ebay, I’ve used ebay, who hasn’t used ebay, and for just this sort of thing— buying and selling between strangers. And you’re so helpful, too, you can just take care of it for me, they’ll get in touch with me, I don’t have to do anything. But … now here’s where my suspicion starts up again. Strikes me that a dishonest man might call me up and simply _say_ he had trusted name-brand affiliation. Seems to me as I’ve never gotten a call from ebay, nor have I called them myself. I’ve even purchased a car off ebay before, so why’d that start all of a sudden? Seems to me that you’re running a scam that’s been around for a long, long time. Do you know that the phrase “Let the cat out of the bag” came from a medieval form of this grift? Never buy a pig in a poke, they say. 
But it’s easy enough to put this to rest, and I feel you’ve been a good sport so far (some folk might take offense at being called a fraud, though I say in all sincerity that I meant none. Rather than using ebay, if you will agree to use as the trusted third party, I’ll pay you $3000 for the truck. Of course, to use, I’d have to pony up in the neighborhood of $100 for the escrow fee, which I’d be out of pocket no matter what. So for what the grifters of old called “the convincer” you’ll have to pay that fee for Of course, by doing so, you’ll net yourself an extra $400 over your asking price, earned for your honesty. 
If in the unlikely event you are exactly who you say you are, please do forgive me. I’m sure this email was fairly confusing. If, instead, you are running a Twenty-First Century pig in a poke con, I’d really be interested to hear stories about how it works, how you got into the grift. Does it take a mob? Do real grifters still refer to themselves as grifters? How much was your biggest take? Who makes the most difficult marks? 
I can see why you’d be hesitant to answer any of my questions, so I can only hope your sense of the con will tell you that I’m just a curious guy… Now that we’ve both wasted enough of each other’s time, maybe we can have an interesting chat. I did, after all, only write back to this letter, since it was the best. Then again, who’s to say that you’re not responsible all of ‘em?
Kind Regards, 
Ben- Hide quoted text -

On Wed, Jun 1, 2011 at 7:07 PM, david thomson <> wrote:


Please take a few moments and read my email carefully, I know it is long, but I will explain all the details about the vehicle and the transaction.
I do a special training program each day and I’m not allowed to make phone calls whenever I want. We`ll have to stick to email for now as this is the only way I can communicate.
At the moment I’m stationed in Nashville, TN. making final preparations before deploying to Afganistan with the U.S. Convoy
The vehicle is already at our Military Logistic Department in Point Loma, San Diego, CA, crated and ready to go. The Logistic Department will deliver the vehicle to your home. The shipping is free for you. Since the vehicle  is in a military base, with no access you can not go there and take it, only the Logistic Department can deliver it, because the vehicle is in their custody.
Shipping may take anywhere between 2 to 4 business days depending on the destination. All documents you need for ownership, manuals and bill of sale will be provided along with the vehicle.
For the payment I would like to use eBay as a third party. They will keep your money into a protection account until you get the vehicle  and will release it to me after inspection period is over and you agree to keep the vehicle. So, this is not a blind transaction, you can see the vehicle before committing to buy and to eliminate any concerns you will have 5 days to inspect the vehicle . If you decide not to keep it eBay will refund you the money, no questions asked, and shipping back will be my concern. I think this is more than fair for both of us.
I’ll start the official procedure, and eBay will contact you about this. If you are interested in buying it just mail me back with:
- Your Full Name - Required by eBay (You’ll receive important guidelines + instructions from them.)
- Your Shipping Address and Phone Number - Required by the Logistic Department (They will call you with delivery/pickup instructions 1 day ahead so you can communicate what time schedule work best for your to receive the vehicle)
Again I want to point out that because I am going to Afganistan this sale is my top priority and I am looking after a fast transaction, with no delays. That is why I decided to lower the price, to avoid wasting time with negotiations and find a buyer as soon as possible.
Thanks, hope to do business with you soon!

On Wed, Jun 1, 2011 at 4:06 PM, Ben wrote:

Hey what do you guys call this con?


On Jun 1, 2011 7:03 PM, “david thomson” <> wrote:
> Hello,
> This 2003 Toyota Tacoma 4x4 Double Cab, with 111,737 miles, runs and drives
> excellent. Hasn’t been involved in any accident. It has no leaks or drips
> and does not smoke at all, slightly used in 100% working and looking
> conditions with a clear title. I bought it when i was serving in Naval Base
> Point Loma, in San Diego, CA and now I am in Nashville, TN
> I have dropped my price to $2,300 usd (purchase price) since this is an
> Urgent Sale! and I need to sell it before June 20, when I will be deployed
> in Afganistan with my platoon replacing the troops scheduled to come home.
> If you’re interested to conclude this purchase in a timely manner email me
> your; Full Name and Shipping Address to open a case with eBay they will
> contact you to explain the entire procedure. You’ll receive important
> guidelines and payment instructions from them.
> The financial part will be managed by them, which means that you will have a
> 5 days inspection period before committing to buy the vehicle.
> In this way both, buyer and seller are 100% covered during the steps of this
> transaction.

> 2003 Toyota Tacoma 4x4 Double Cab

> Features & Options
> * Fog Lamps
> * Driver Air Bag
> * Air Conditioning
> * Alloy Wheels
> * Tow Package
> * Bedliner
> * Cruise Control
> CD Changer
> * Four Wheel Drive
> * Crew Cab
> * Passenger Air Bag
> * Power Seats
> * AM/FM Stereo Cassette
> * AM/FM Stereo
> * Heated Windshield
> * Power Door Locks
> * Power Mirrors
> * Power Windows
> * Power Steering
> * Tire Pressure Monitoring System
> * Tilt Wheel
> Please click here to view more pictures ( If the link doesn’t
> work,copy and paste it into a new browser page ) :
> Please get back to me if you’re interested in buying it.

> On Wed, Jun 1, 2011 at 12:16 PM, Ben wrote:

» Is the truck still available? If so, can you give me the details— mileage,
»> 4WD, transmission type, etc.
» I’d also be interested to know where the truck is right now.
»> Regards,
»> Ben