Monday, June 29, 2009

Married / buried

It's been a month since the wedding, and married life is really terrific. Though I got to admit, I can't wait until married life consists of a little more than schlepping around cardboard boxes...

Monday, May 18, 2009

Dumpster diving been good lately

I.

Jill and I have not really been known to back a van up to a dumpster on purpose, but yesterday her (extremely nice) mom called up with a neat find: two perfectly good leather chairs waiting for the trashman behind the neighbor's house. And it's true, they were a little scuffed, but perfectly good! The neighbor came out and gave us the story; apparently they couldn't find a spot for them, so they've just been sitting in a garage for two years. Soon we'll give them a little polish, and they'll be looking distinguished in our new place =)

II.

Two off-white keyboards were jutting out of the trash can at work today, both missing left Ctrl. Now one is missing both, the other is complete (and getting healthy under a sheet of Lysol in the bathroom) and I got me a keyboard for more comfortable coding on the Eee.

Thursday, May 14, 2009

Ten days left! / Lua tricks / Learning Clojure

Ten days left.

Freaky stuff, no? Can't wait to see everyone in Chicago. =)


Lua's rather easy on the eyes

Ever encounter this particular kind of coding friction?

Rect* r = new_rectangle(25, 20, 30, oh argh what order were all these in again

Window* win = make_window(this, that, NULL, the_other, NULL, NULL, 42, false, 0); // wait what are any of these?

Imagine trying to read that code--you're wearin' out your Alt+Tab switching between your editor and the reference. What are any of those arguments? Fortunately, Lua gives you a neat way to avoid this syndrome, and make your function calls all self-documenting and explicit:
-- Let's say we've got rectangles...
rectangle = {}

-- Here's a constructor. We need coordinates, and a width and height...
setmetatable(rectangle, {__call =
function (self, args)
local r = {}
r.x = args.x or 0 -- default values if you want 'em
r.y = args.y or 0
r.w = args.w or 50
r.h = args.h or 50
return r
end})
Here's the trick: in Lua, if you list function call arguments like foo{...} instead of foo(...), Lua packages it all up as a table and passes it to the function as the only argument. Sweet, sweet syntax sugar. Also, here we hook our constructing function up to rectangle's __call metamethod, so we can just call rectangle itself as our constructor.

Now we can make rectangles like this:

r = rectangle{x=10, y=10, h=20, w=30}

Ahh...beautifully readable. And rearrangeable--since it's a table, not a parameter list, the arguments don't have to be in any particular order!


Clojure is a foreboding wood.

I have been playing with a new language called Clojure, which is a Lisp dialect on the Java Virtual Machine. ("Get it? 'Closure' with a J! Haw!") Clojure's got all kinds of cool functional language goodness, backed by the immense cavalry of the JDK, but trying to learn it has been like wandering lost through a dense wood.

The problem? The reference on the Clojure site isn't organized too well. It's not presented in a helpful order for learning, plus it throws too much info at you at once. Plus there seems to be no particular blessed tutorial. Plus Clojure is complicated. So as I decipher it, I'm thinking about blogging what I figure out, and hopefully leaving a nice field guide as I go...

One immediate stumbling block is the bizarre evaluation rules. Here's what I wish they would have said right at the start: You got symbols, vars, and values. Symbols are just names. Vars are named by symbols, and can have values. Vars are the intermediary between a symbol and a value, like a box or a reference kind of.

(def symbol value) does what you'd expect, creating a var with that value and that name, but you can also say (def symbol) just to create and name an unbound var. Sorta like saying #define SOMETHING in C without giving it a value.

A symbol, by itself, evaluates to whatever value its var has got. If a symbol's bound to a var, you can get that var by saying (var symbol), or equivalently, #'symbol.

(Note: This could be wrong or misleading. Just think of it as a mental snapshot of a fool.)

Tuesday, March 24, 2009

2 months away!

We are officially 2 months away from the big day!

Wednesday, March 11, 2009

With the wedding quickly approaching, I recently went into "panic/productive" mode for the planning. We are less than 11 weeks away from the big day! So, that being said, I was determined to get some good wedding planning done last weekend.

I'm happy to say we have picked a caterer. Convito in Wilmette will be catering the wedding. The food is very tasty and way less expensive than our original caterer. We were able to try some of the dishes at my parent's house. They were seriously delicious. We will have our official tasting with them in a few weeks.

We also picked a photographer! It is quite exciting to finally that squared away. The photographer was the last item on the list in which the different vendor options have very different levels of talent.

We also tried to pick the cake. We went to a bakery that my mom loved in the city. The cake was good, but not really my style (i.e., nowhere near being sweet enough for my taste!) So, we still have to figure out the cake. Fortunately, this involves eating more cake and everyone knows I love my cake! I would like to be the girl with the most cake. While researching potential bakeries, I came across the most amazing bakery/cakery. cakegirls is seriously an amazing combination between cake and art. We won't be using them because a) they are way too expensive and b) i don't particularly like fondant. I thought i would link them here though because they are way awesome.

I hope this productive spell continues to last! We still have so much to do!

Jill :)

Tuesday, February 24, 2009

yucky II: the deuce

I have funny emotions with food. Food situations have a way of tugging at my heartstrings, maybe because it's such a personal craft and tied up with motherhood and providing and society and all that, and yet we've made it into this gov't regulated industry chugging along on conveyer belts, and all that. Well, Jill told you about the catering. I can't decide if it tugs at my heartstrings or not, but given enough information, here's how:

DECISION PROCEDURE
  • If they did not know their catering food was bad, that is sad; it tugs at my heartstrings.
  • If they knew their food was bad, yet continued to cater it, they are jerks; it does not tug at my heartstrings.
Either way my heartstrings did not get hit by a bullet, because we dodged one. This was supposed to be a slam dunk--but we were on the phone with new people as soon as we got back. It's not that the catering guys weren't pleasant! (See, heartstrings.) But Jill's assessment of the goop on the chicken was spot on. And we really could not identify that one dessert without documentation.

So we are looking for new people to make nicer food out of our grands and grands of dollars.

Monday, February 23, 2009

yucky!


We picked out a caterer over a month ago. The selection and photos of the food looked awesome. We were pretty much all set to put a deposit down on the caterer. The only thing that was stopping us was that we hadn't tried the food yet. On Sunday, we attended a mass tasting of the food at one of the caterer's many venues. Normally, I have a pretty wide range of acceptability for when it comes to food at events. When you prepare large quantities of food, it usually doesn't taste quite as good. I've accepted this after attending numerous weddings, proms, formals, etc. However, their food was just awful! You would think they would try a little harder to make it taste good since this is their "tasting." The lettuces in the salads were wilted and mushy. The chicken had so much goop on it that it was just gross. There was some question of what some of the desserts actually were. The hot food was on the cold side. The cake frosting for the wedding cake tasted like pure butter. Overall it was just gross! The only tasty food was the appetizers, salmon, and potatoes. I'm sorry, but if we're going to drop over 12 grand on food, it should at least taste somewhat decent.

So, all in all, this caterer was a bust. The plus side is that we didn't put down a deposit for the caterer! any suggestions for good caterers would be appreciated! Personally, I'm thinking we should just order pizza and be done with it! :-D