Let me conform to the stereotype of Livejournal for a moment, please

I woke up this morning to being trapped under blankets, in the night I’d twisted myself up and gotten tangled. After the panic subsided, I re-arranged my blankets and tried to get back to sleep. I mostly failed. I’m dreaming a lot about money these days, and it keeps on going right into waking. I can’t wait to have the office moved and actually have my expenses drop off a bit. Soon. So soon.

As I’m drifting off to sleep, I squirm a little and the cat leaps off the bed, having interpreted my motion as being caught in the act of peeing in my bed. This is a new trick that I am very much not impressed with. I shove the wet blankets off the side of the bed and try to go back to sleep. Fail.

So I’m up. I feel angsty, out of touch with my body and just not very happy.

My kitchen just became a whole lot more complete

I’ve had a customer who’s a partly out-of-work furniture maker. I keep helping him with his financial software, and he’s owed me a bit of money. Today, it all came more than even in a trade. We just received a custom-made kitchen prep table!

A tall wooden prep table, sturdy, with pans hanging from the sides

Eugh

So I went on a bender last night.

Ouch.

1122

Dear Sun:

You can come back now.

Happy Solstice,

Me

Abortion and economic policy

Pro-life? Look at the fruits by Dr. Glen Harold Stassen (Sojourners):

I am a Christian ethicist, and trained in statistical analysis. I am consistently pro-life. My son David is one witness. For my family, “pro-life” is personal. My wife caught rubella in the eighth week of her pregnancy. We decided not to terminate, to love and raise our baby. David is legally blind and severely handicapped; he also is a blessing to us and to the world.

I look at the fruits of political policies more than words. I analyzed the data on abortion during the George W. Bush presidency. There is no single source for this information - federal reports go only to 2000, and many states do not report - but I found enough data to identify trends. My findings are counterintuitive and disturbing.

The article is really excellent.

GCC needs pluggable runtime support for Objective C

We’ve got four runtimes for Objective C now: Apple/NeXT’s, Cocotron’s, the GNU Objective C runtime, and Etoile’s.

Every one requires a modified version of the compiler, meaning three sets of patches to the compiler, plus one included by default. The default runtime is arguably the most limited and antiquated of them all.

Time for a change, folks?

(Anyone want to help write a pluggable backend and simultaneously help me target GObject?)

Southeast asian fish and noodle stir-fry

400 g white fish, steamed 50 ml brown rice syrup 50 ml soy sauce a big pinch dry basil

1 onion, chopped and sauteed in oil mix and stir to coat Serve on top of ramen noodles

Serves 2.

Quick Greek Salad

Chop 1 head romaine lettuce Add 350g feta cheese, crumbled Add one cucumber, halved then sliced thin

Mix 150ml olive oil a few good pinches of garlic powder and oregano leaf Add a pinch of salt, a dash of black pepper Add 100ml red wine vinegar

Stir and pour on salad, serve.

Miso Soup

1.5L water squeeze of lime juice 50mL fish sauce spoonful of dulse

Heat to simmer

Ladle a bit of broth on top of 150g miso, let sit

slice 2 carrots ½ small daikon 3 mushrooms 1/8 onion 6 brussels sprouts, halved

250g tofu, chunks

Add to broth and simmer until delicately done

Add miso mixture to soup, stir and serve.

Tamal en Elote

Beat 4 eggs, add: 1 can kernel corn 1 can creamed corn 1½ cup cornmeal 1¼ cup buttermilk some oil (on the order of ½ cup) green chiles onion garlic to taste salt cheese, half in, half on top

Bake 325⁰F for 1 hour or so, covered

Capresish Salad

4oz chopped pepperoni, fake if you like 4oz shredded parmesan 1 head finely shredded lettuce 8 mushrooms, halved then sliced

4oz olive oil 2oz balsamic vinegar 2 oz shredded or powdered parmesan 4 teaspoons basil 1 teaspoon oregano ½ teaspoon salt a dash of pepper

Asian Fusion Salad

2 teaspoons five spice powder 3 eggs 1/2 teaspoon salt Scramble and cook, chop up the pieces

Chop a head of lettuce 1 cucumber, thinly sliced or coarsely chopped

Hydrate 1-2 tablespoons hijiki

Sautee 10 mushrooms, sliced thick, with 2 tablespoons oil, 1 teaspoon mirin

Add the hijiki, a dash of ume plum vinegar, a teaspoon of toasted sesame oil, 2 tablespoons flaked dulse

Toss and serve, preferably cold.

1114

Things I love about this town include going out to get supplies for dinner and ending up at your landlord’s dinner party, eating gumbo and drinking beer instead.

My whole day’s been like this. I left my office to go home for lunch three times, and ended up such places as the coffeeshop with my parents, the giant parking-lot yard-sale that happens twice a year here, and a random lunch with engnyath and his EMT class.

In other news, I made Imam Bayalidi again, and let me tell you, you should be envious. Eggplant has never tasted this good. I’m thinking making hummus and pita and having my parents over. I’ve gotta get dinner in with them once more before they move!

How I stopped worrying and learned to love errno.h

I just spent 16 hours debugging a complicated, annoying and frustrating problem involving pages not loading in a database frontend, and being spontaneously logged out of a webmail application.

The culprit was the SQLite library (or its bindings to Ruby) being useless with error messages. An example:

#<SQLite3::CantOpenException: could not open database: unable to open database file>

This is not okay. First off, not saying what file is a little annoying, but thankfully, I can tell which file by context since this program only opens one database. Second, and most grievous, it doesn’t say which system call failed (though I guess it’s open(2)) and third, it doesn’t say what error code. There’s a reason errno.h exists, people! perror is your friend. A happy little “It didn’t work” exception is no replacement for an exception that could read like this: #<SQLite3::CantOpenException: could not open database important.db: EMFILE: The process already has the maximum number of files open.>

I wouldn’t be hacking about supposing it’s a concurrency and locking issue. I’d be knowing that something’s not closing files like it’s supposed to, like I now know after stracing the process and seeing the real value of errno(3).

Don’t do this, folks! Let exceptions carry the most information possible. If you code in C, use perror(3).

Now I get to see why my web framework isn't closing the database on a reload.

So!

I told my mother that engnyath and I are planning on getting married. I have no idea why telling her terrified me so much, but it was fine like I thought it would be.

So we’re planning on August 1, 2009.