Learning biofeedback

April 1st, 2014

On and off for the past few months I've been practicing biofeedback so that I can increase circulation to my hands and feet on demand. (Biofeedback is about learning to control what would normally be autonomic bodily processes. Some people do it with expensive equipment, but if you have good body awareness like I do you may be able to do some of it without even a thermometer for feedback.) And the cool thing is, it's working! I had a really dramatic experience a week or two ago when I had just gone to bed and wanted to warm up my legs. I relaxed while "pushing" heat towards my legs, and within a minute I started to feel prickling, and then a throbbing sensation over the entire surface of my legs. (It subsided after maybe 10-20 seconds, and then my legs were just warm.) How awesome is that?

Read full entry »

Ameliorating the effects of malware in a web of trust

January 23rd, 2013

Let's say it's the future, and everyone has at least one public key and is a full participant in a global web of trust. Wonderful, until EvilWorm9000 hijacks your mail client and starts spamming everyone within 4 degrees of separation. How does the ideal network respond? In this post I provide a possible approach (temporary key tainting), but the main goal here is to stimulate a conversation.

Read full entry »

On the immiscibility of higher order functions and unboxed invocation in Clojure

February 17th, 2012

Recently, Tim McIver and I set out to bring clojure.contrib.import-static into the modern world. This is lib that looks on the surface to be quite handy: (import-static java.lang.Math sqrt PI) allows you to write (sqrt PI) instead of (Math/sqrt Math/PI). The huge downside is that sqrt is a macro, so it can't be passed around as in (map sqrt (range 10)). (This does allow (with appropriate hinting) primitive invocation (non-boxed passing of primitive JVM types such as long and double) and reflection at compile-time instead of runtime.) Our idea was to replace import-static with def-statics, a macro that could produce prim-invocable functions instead of macros.

Summary: You can't actually do that. HOFs in a dynamically-typed language are not compatible with unboxed primitive invocation.

Read full entry »

Some brief notes on spam

November 1st, 2011
  • It was probably a mistake to use a catchall account and make up addresses on the fly. Now I get spam on every address that is published! I may do something like the fellow at unstable.nl does and have a dedicated spam address that allows me to deduplicate those, but I haven't yet figured out how to do that in Claws Mail.
  • I think spammers may be avoiding honeypots by preferring email addresses that are very likely to be real -- such as those on Bugzilla sites.
  • I recently switched my hosting service for my brainonfire.net email address from Lavabit (horrible customer service) to Cotse (they seem like good folks), but I still receive spam at Lavabit! I think spammers are caching MX records. This could be used against them.

Emacs quick start: One n00b to another.

February 26th, 2011

I recently got started using Emacs, and I was surprised to see just how bad most of the quick-start guides are. Most lacked the basic commands and definitions that beginners really need. This is my attempt to do better. I'm a n00b myself, so there won't be much explanation, just a basic overview, some useful starter commands, and links to proper tutorials.

Read full entry »