lambda, the ultimate compiler target
[Flash 9 is required to listen to audio.]

Trammell responds to a chorus of emergency trammels.

dating advice for girls.

“Find a guy who calls you beautiful instead of hot, who calls you back when you hang up on him, who will lie under the stars and listen to your heartbeat, or will stay awake just to watch you sleep… wait for the boy who kisses your forehead, who wants to show you off to the world when you are in sweats, who holds your hand in front of his friends, who thinks you’re just as pretty without makeup on. One who is constantly reminding you of how much he cares and how lucky his is to have you…. The one who turns to his friends and says, ‘that’s her.’”

~Anonymous

Ideally, omit the conventional next step: grinding the guy into burger and feeding him to weasels.

Hard to remember, painful to forget.

Hard to remember, painful to forget.

Cult of Done Manifesto

(from http://www.brepettis.com/blog/2009/3/3/the-cult-of-done-manifesto.html )

The Cult of Done Manifesto

There are three states of being. Not knowing, action and completion. Accept that everything is a draft. It helps to get it done. There is no editing stage. Pretending you know what you’re doing is almost the same as knowing what you are doing, so just accept that you know what you’re doing even if you don’t and do it. Banish procrastination. If you wait more than a week to get an idea done, abandon it. The point of being done is not to finish but to get other things done. Once you’re done you can throw it away. Laugh at perfection. It’s boring and keeps you from being done. People without dirty hands are wrong. Doing something makes you right. Failure counts as done. So do mistakes. Destruction is a variant of done. If you have an idea and publish it on the internet, that counts as a ghost of done. Done is the engine of more.

a quote from borges

If I were able to live my life anew, In the next I would try to commit more errors. I would not try to be so perfect, I would relax more. I would be more foolish than I’ve been, In fact, I would take few things seriously. I would be less hygienic. I would run more risks, take more vacations, contemplate more sunsets, climb more mountains, swim more rivers. I would go to more places where I’ve never been, I would eat more ice cream and fewer beans, I would have more real problems and less imaginary ones.

I was one of those people that lived sensibly and prolifically each minute of his life; Of course I had moments of happiness. If I could go back I would try to have only good moments. Because if you didn’t know, of that is life made: only of moments; Don’t lose the now.

I was one of those that never went anywhere without a thermometer, a hot-water bottle, an umbrella, and a parachute; If I could live again, I would travel lighter. If I could live again, I would begin to walk barefoot from the beginning of spring and I would continue barefoot until autumn ends. I would take more cart rides, contemplate more dawns, and play with more children, If I had another life ahead of me.

But already you see, I am 85, and I know that I am dying.

tenure on twitter

I’m apparently twitter user 41623. That’s pretty cool.

ack and sed hackery

Here is an example of using ack and sed to token-replace within a project. ack -l Decider. | xargs sed -E -i ” s/Decider./DECIDER./g

DM fail avoidance protip

To avoid DM fail when using twitter over the iphone SMS interface, paste d into the text box after each time you send a tweet. It’s slightly annoying to have to delete the “d foobar” every time you want to tweet, but much less bad than having to deal with DM fail.

Deriving a quine in scheme (prettily, this time)
quine.scm
; Deriving a quine in scheme
; there are basically 4 approaches to doing a quine:
; 1 - the Perl school, where you grab the name of your file and print it.
; 2 - reflection, where you can get at your source a la class Foo; puts self.ruby_to_ruby; end
; 3 - using macros or similar
; 4 - structural quining, where you build up a quine by calling a function with quoted source as an argument
; quines of the last type are the most interesting of the three to me.
(define (... x) x)  ; this will be our placeholder for code we do not yet specify

; we know the quine will be of the form:
(... (quote ...))

; it has to start with a lambda
((lambda (x) x) (quote ...))  ; note that whatever ends up before the quote, that'll be after the quote too.
((lambda (x) x) (quote (lambda (x) x)))

((lambda (x) (list x) (quote (lambda (x) (list x))))) ; now we have the outermost parens.  Let's work in.

; so far we have the outermost expression, and whatever ... will be at the beginning.  Need a list enclosing the quoted stuff
((lambda (x) (list x (list))) (quote (lambda (x) (list x (list)))))

; this returns ((lambda (x) (list x (list)))())
; we're missing the quote and the second repitition of the argument

((lambda (x) (list x (list (quote quote)))) (quote (lambda (x) (list x (list (quote quote))))))
; got the quote

((lambda (x) (list x (list (quote quote) x))) (quote (lambda (x) (list x (list (quote quote) x)))))
; now I have the rest.  And we're done.