I was thinking lately about the different philosophies programming languages expose when it comes to guaranteeing code semantics. It’s interesting to compare two of my favorite languages - Ruby and Clojure - and a third I like, but don’t know well enough to love: Haskell, since each lies at a different point along the imperative to purely functional spectrum, and each can give you a different level of confidence in your code’s execution.
In particular, I’m referring to the level of confidence a language can impart that when you call some method (or evaluate some function) in a particular language, your code will work the same afterward. This is directly related to side effects, and how much you have to “know” about the function’s implementation in order to use it. I’ll colloquially refer to this as “trustworthiness”.
[Read more →]
Tags: Programming
B-A and I just returned from vacation in the lovely beachside town of Cambria, CA. We first went there for a friend’s wedding and fell in love with the town; it’s small, not too far from an airport, not too crowded, and right on the beach, which means the weather is usually fantastic.
I was also very glad to avail myself of the opportunity to dive into some books. I used to read voraciously. To my chagrin, these days I spend a lot of time skimming or reading articles instead of reading books. But, I read a few on the trip, and the one that’s fresh in my mind is Stephen Fry’s Moab is my Washpot, an autobiographical account of his years as a child in the British preparatory and public school system, up to his acceptance at Cambridge.
[Read more →]
Tags: Books
Most of this post will be about Clojure, a LISP dialect that is implemented on top of the JVM. The Clojure community is quickly growing; every day you’ll find new blog posts describing people’s experiences with it. The Clojure mailing list is filled with helpful posters and great advice; the Clojure IRC channel is, similarly, a great resource. It’s no surprise that this is the case, since Clojure as a language comes with some very compelling features. In no particular order, I’ll enumerate some of the things I’m really enjoying about Clojure. Then, I’ll discuss a solution to Euler problem #24 in Clojure, since examples are always fun.
[Read more →]
Tags: Programming
I continue to work on bread. It’s a tricky one, but I think I am slowly absorbing the Zenlike secret of good baking, which is to say it usually turns out great when I don’t care, and terrible when I’m really trying hard to make good bread.
Here’s my latest:

How’s the crumb, you ask? Behold my works, ye mighty, and despair:

Tags: Miscellaneous
January 20th, 2010 · 4 Comments
I’ve been working on bread lately. Here’s a good one!
I bought a peel on Amazon, and decided to try it out by making some pizza. I hoped the peel would help dough to stick less, but it was still thoroughly sticky. Either I’m not using enough cornmeal or I have to grease it or something, or it sticks, and that sucks, especially when you go to slide a pizza into a hot oven and the toppings slide off instead. So I read about a trick with parchment paper that should hopefully work for all sorts of stone-cooked things. You place the dough on a piece of parchment paper on top of the peel, and it slides straight off onto the stone. The stone’s hot enough to bake the bottom of the crust through the paper; parchment paper can withstand the high heat for a few minutes. After waiting a couple minutes for a crust to form, pick up the pizza a bit with the peel and slide the paper out, so the crust is right against the stone, and then just finish as usual. Very handy!
After making some dough and letting it rise, this ball (B-A said it was “adoughable”):
Plus basil, chopped garlic, olive oil, and shredded mozzarella, became this:
And after a short failed peel experiment, came out like this:
You can see the streaks on the crust where some of the cheese slid off due to the sticky peel. It tasted really good, although it was a little high of an edge-to-topping ratio. It’s a nice meal and a good way to use up those mushrooms or peppers that are about to go bad in the fridge.
Tags: Miscellaneous
It went pretty well. Going to the Pearl St. Whole Foods the weekend before the Christmas holiday, was, in retrospect, bad news. The store was a total madhouse. Not to mention their terrible parking lot. But, the meal went off pretty well. I made it essentially as described in my previous post. I didn’t have much time to prep the fish, so there were a few bones. In the future, the whole process would be much faster if I just ordered bones for the stock from the fish supplier, then took pre-cut fillets for the actual poaching.
I also went to the Savory Spice shop, which was pretty incredible. Nice smells and a huge selection.
For dessert, I made an apple-pear tart. There were some really nice apples at Whole Foods, so I just went for it. Everyone really enjoyed the meal. I got a request for beef or poultry next time.
Tags: Miscellaneous
December 17th, 2009 · 1 Comment
Really, I like to cook anything, but specifically, I enjoy cooking French food. It doesn’t hurt that I love to eat and have no aversion to butter. I’ve also been lacking in blog inspiration, and was thinking about trying to generate more posts. Finally, I recently saw Julie/Julia, and imitation being the highest form of flattery, I’ve decided to blog about cooking, specifically my cooking.
[Read more →]
Tags: Miscellaneous
This post is for friends who I’m running a local Call of Cthulthu game with.
[Read more →]
Tags: Miscellaneous
This post is a summary of a Call of Cthulthu session I ran with some friends last month. It’s intended as an introduction for new players at our next session, or a refresher to the players from the last session. A subsequent post will introduce important background for the next game.
[Read more →]
Tags: Games · Miscellaneous
My coworker Grace recently blogged about the reality of personal branding on the internet in these, our modern times, citing an MSNBC article about a Cisco interviewee who tweeted about his potential job before it materialized. I couldn’t help but start thinking about the way the internet has changed since I was young, and the inevitable commercialization of it.
When I was young, the internet was virtually unknown. At that time, enterprising geeks networked locally; dialing into BBSes with their low-baud modems and racking up phone bills. Going online involved sending messages to other BBS users, downloading interesting files, and playing mostly text-based BBS games like “Drug Wars”. When you wanted to download files of any appreciable size (say more than a megabyte or so), you started it up when you went to bed and hoped that you weren’t greeted by a “NO CARRIER” message when waking up. Your friends, assuming you had any that weren’t also tethered to their computers after school, got used to busy signals when they tried to reach you. You and your parents reached an understanding - if you pick up the phone and hear weird sounds, hang it up quickly before you screw up my download.
Then the internet penetrated into geek culture - BBSes slowly replaced by local ISPs, small businesses that could outlay the significant capital required to get a decent network connection, who would then sell it to you via a modem. Instead of dialing in to a destination, you connected to a service that made the internet available to you. E-mail was a big revelation around this time, although it seemed like a natural outgrowth of BBS technology. The implications were astounding, largely because the internet at this point was, in some respects, an outgrowth of BBS culture, which was mostly based around shared interests and hobbies. You got to know your fellow BBS members, and even trust them. The culture overlapped with academic circles, universities being the other big presence on the internet. There was an almost communal, instinctive feeling of purpose and identity. Information was now a free-flowing stream, where you could collaborate with almost anyone you liked, assuming they had internet access. Concepts like globalization, now discussed in bestsellers like Friedman’s “The Earth is Flat”, were not unknown, but were still hazy and abstract in popular culture. People were still figuring out how to make money on the internet.
We were still figuring out a lot of things.
It was only natural that the technology would eventually be commonplace. The nature of a global information and communications network is that it eventually eliminates many of the barriers geographic distance imposes, and anything that can be represented as information can exist anywhere, having no physical reality at all. People spend their free time playing WoW, contributing hours, days, weeks, or even months of their waking (and, lest we forget, finite) lives to manipulating bits in a central Blizzard database, and paying Blizzard a monthly fee to do it; analysts crunch spreadsheets to produce forecasts and reports on which huge sums of money pivot; entire companies are born, grow, and die on the premise of manipulating data in their own particular way. Even the money that these activities generate is pure information flow: a database somewhere subtracts some number from some other number; another database somewhere increments, and money is transferred. Our lives are measured now not only by the tangible things we produce and leave behind - families, relationships, physical works - but by the particular way in which our existence perturbs information in a vast global network.
And so, we now have the concept of a personal brand. Since you don’t exist on the internet in any form other than information, you can poke and prod that information in various ways: you can create webpages, blog posts, LinkedIn profiles, Lijit accounts, Twitter streams. You can generate content for someone else, like making a forum post somewhere or commenting on a blog post. Even your social interactions can be quantized, filtered, and monetized. And all of this information comes together in your personal brand, the “internet you”. And since much of this information is interpretive and subjective to recipients, the “internet you” is open to marketing - it becomes less about the information itself, and more about where you put it, how you move it. Is the right person following you on Twitter? How much would it be worth to attract the attention of a big-name blogger like Guy Kawasaki and have him mention you? If a potential employer Googled you, would they find anything untoward?
So, you have to watch yourself. You can’t tweet your impressions about a potential job offer; even on a service like Twitter that ostensibly is about connecting with friends and people you trust, because the information becomes public, becomes part of your personal brand. Content you produce now becomes part of your “permanent record”, but loses context over time. Like sound bites, a poor choice of words or incorrect turn of phrase can be tremendously damaging, perhaps years after the fact. Social networking isn’t about friendship, trust, or the free flow of information: it is networking in the business sense. How many Facebook friends do you have that you would really consider friends? How many people do you know who treat their Facebook friends’ list or Twitter follower list as a scorecard, following random people in the hopes they will follow back and thus add 1 to their score?
I realize I’m not saying anything new. Maybe I’m not saying anything at all; after all, our human desire to understand and ultimately control complex systems extends far beyond concrete examples like the internet.
But as I find myself thinking before I hit the “submit” button on my blog posts or tweets or friend updates about whether the content I’m about to post is potentially damaging to my personal brand, I can’t help but wish, sometimes, that I was connected to a BBS again, waiting - along with everyone else - to discover what I could learn today.
Tags: Miscellaneous