1. icon for News
  2. icon for TCHOW


Sunday, December 2, 2012


In the past less-than-twenty-four hours, we -- @chrisamaphone, @xwjl, @1x, and @dwrensha -- worked together to create an album, which we present here, to you, in all its glory.

"Terrible Ideas ... and BEYOND: A Children's Story"

by Cumbersome Four Calipers

  1. Mystery Can
  2. Wafflespace
  3. Gravity Slide
  4. Break It Down (Build It Up)
  5. Reflections on How Far We've Come
  6. Lambrijolieo
  7. Backup Track (Dance)
  8. Space Chase
  9. The March of Progress
  10. Death (or: Vegetables)
  11. Lambrijolieo (Reprise)
  12. Home Again

Tuesday, October 16, 2012

rktcr: Looking for a few good testers

Rktcr is a physics-based action-platformer-turned-puzzle-platformer; that is, it's an action game meant to be played thoughtfully at much slower than real-time. I'm currently in what I call the alpha stage of development.

The goal of the alpha is to shake down this basic gameplay and to find a good set of levels. Levels have some portals (entrances/exits) and some gems. Each level can be played in 16 orientations (8 gravity directions + mirroring). And it should be reasonably interesting (that is, one should be able to get between different pairs of portals, possibly collecting a gem) in at least a few of those orientations.

Here's where you come in

I'm looking for alpha testers to help (for a few hours each week):

  1. Find bugs (out-of-memory, crashes, sound glitches).
  2. Provide gameplay feedback. See how the controls and physics feel to you. Record your thoughts on easy and difficult elements of the game.
  3. Think about new levels. Can you do something with the rktcr that isn't exploited by a level yet?
  4. (Most importantly:) Make paths. Play through levels in orientations they have not yet been played, and contribute the resulting paths to a repository on github.

Knowing which paths are feasible is important for the second (and as-yet nonexistent) level of gameplay, wherein levels are assembled into worlds.

In compensation, you'll get a thanks in the game credits and a free copy of the game if it's ever finished.


NOTE: Currently, I'm only testing on Windows and Linux, as I don't have a MacOS machine to run builds on.

If you are interested in becoming an alpha tester:

  • Make a github account; you'll need this to access the paths repository.
  • Make a skype account; screen sharing is useful for complaining about glitches and debugging crashes.
  • Make a google account; google docs is good for writing up your feedback, and google drive is good for distributing files.
  • Record your system information (cpu, graphics, os version). On windows, if you have steam: Steam > Help > System Information -- though I don't need/want/care about the "Installed Software" part of the info. On linux `uname -a`, `cat /proc/cpuinfo`, and `glxinfo`.

And, critically, have a conversation with me via e-mail, google chat, or in person about games, gameplay, what you like, and what you don't like (my contact info is on the about page). I'd like to make sure that my testers are able to think analytically about gameplay and mechanics.

Monday, October 15, 2012

TCHOW Goals #2 - What's happening?

I've been in Pittsburgh for two weeks now, and I'm getting settled in. So how am I doing in various areas of this TCHOW project?

Make Games

rktcr. I've been able to spend some good time on rktcr; enough that I'm thinking about starting to write development updates. Indeed, I'm getting to a point where the low-level gameplay is mostly finished, as is the pool of prospective levels. I'd like to send out another alpha version soon.

Two major tasks remain in rktcr: world-gen and story/cutscenes. The first is a programming task, which could prove unfeasible, requiring a fair amount of restructuring of the level2 concept of this game. The second is an art generation task, which requires me to sit down and do some serious inkscape-ing (for characters) and vim-ing (for story).

Puzzle. The potential puzzle/plot collaboration hasn't moved forward much. I'd like to work on creating some example plot, but I'm a bit worried about burning out on writing before getting to rktcr's plots. This is probably not going to be a problem, but I worry nonetheless.

Have a Social Life

This is ticking along nicely.

I've reconnected with old friends and acquaintances. (Some of which I didn't even know were still in town!) I also have friendly neighbors. I could certainly stand to do more social things, but I also don't feel isolated.

Additionally, I've been making use of OkCupid, which has resulted a couple of dates and a few interesting conversations so far. (Also, unexpectedly, a lot of good book, movie, and music recommendations.) However, it's also a fair amount of yelling into the wind.

Lose Thirty Pounds

No progress (not that I expected much). However, that's not going to prevent me from continuing rock climbing -- it's just good fun.

Monday, October 1, 2012

TCHOW Goals #1 - I'm here now

I've arrived, and my stuff should be here by the end of the day. As good a time as any to start thinking about my goals for the next 2 years (22 months, really).

Here they are, briefly:

  1. Finish and release rktcr.
  2. Have a social life.
  3. Lose 30 pounds.

In more detail:

I'd like to finish and release more than one game, but rktcr is first up. Right now, it's at a rough alpha stage. The day-to-day is mostly final, though more content is required. The sound design is, I'd say, 30% complete. The higher level story arcs are conceptualized but not written. Layer three is conceptualized, but may or may not make it into the game.

Given that I dedicate every morning to making progress, I think that I'm going to get to a beta-able stage before January, and be able to release by March. I'm also pulling these numbers out of thin air, as I don't have my punchlist handy.

"Social Life," here means both reconnecting with old Pittsburgh acquaintances and meeting new people both for friendship and dating. This is probably important for my continued happiness and sanity. And, working alone, I will get much less automatic human contact during the day.

I've started an OkCupid account and found that there are quite a few reasonable-seeming folks on there. It seems like it's going to be useful for finding folks to socialize with; which (if any) of those social contacts become romantic remains to be seen. (Also: this is a goal I won't report on further in this venue.)

Losing 30 pounds is an unrealistic goal -- you've got to have one, right? What I'm actually interested in doing is getting out to the climbing gym at least once every two days, and improving my skills. Of course, some weight loss (or conversion of fat -> muscle, at least) would definitely help in that improvement.

Saturday, September 29, 2012

The Last Suppers #9 (the end)

Well, that's it.

Last night, I had my last meal at Journeyman in quite a while. And it was very good.

I dined with six others -- folks I know from the virtual glass project. And they got it; kept things hip and interesting, provided great conversation, debated and explored the food; and wore glowsticks in their hair (I had some left over in my apartment).

We were lucky enough to be able to beta the non-alcoholic drink pairings with our meal and, well, they were interesting! Certainly added interesting compliments to each dish. I think people are going to be really into them in the future.

After dinner, the Journeyfolk gave me a notebook that they'd signed. It wasn't a tearful goodbye, but it was really close on my side. There was no reason for them to go out of their way for me, and I really appreciate it. I think I'm going to use it as a food journal in their honor.

This morning I managed to snag a loaf from iggys and a ice cream sandwich from beakers and cream before heading out. So, food-wise, pretty much a perfect exit.

Wednesday, September 26, 2012

Last Suppers #8 (in 3D)

(Note: this post was written on the 27th, but I'm back-dating it to the 26th because that is when the meal described herein was consumed.)

Last Saturday, I ate at Journeyman. Last Monday, I ate at Journeyman. And I have plans to eat there on Friday. So, understandably, I decided to drop in on Wednesday to keep the alternation going.

Also, I wanted to do a post with pictures of food, and since my meal on Friday is with a group, it seemed a bit awkward. This Wednesday, on the other hand, afforded me the opportunity to go all out and take pictures with my digital camera, my 3DS, and my iPhone4. So not only do you get reasonably high-res images below, you also get stereo pairs!

Anyway, this was a confusing meal, as I attempted a-la-carte ordering, and ended up truncating my salad and soup through miscommunication. Also, the amuse-bouche went by so fast that I was unable to capture it on sensor. So the composition of the meal is atypical, but those dishes that did appear were in top form.

The Food

Black Cherry & Black Pepper Soda

Unfortunately, my 2D captures didn't come out. As you can tell by the noise level on the 3DS sensor, it's a low-light environment.

This soda has a serious burn to it. Great with the cheese course, mind you.

Clams and Oysters

One of the prettiest and tastiest dishes on the menu right now.

Foie Gras Ice Cream

I really can't get enough of this. The mushroom is a wonderful complement.


Also fantastic; nicely varied texture. No wonder it's in the Foie's slot on the vegetarian menu.


It's lamb. It's good, but I find myself enjoying the garnish more than the meat.

Shiro Plumb Sorbet

Still a perfect bite.


There's molasses in the custard, and the sauce is mole. This pairs really well with black pepper soda.


Generally presented in a pile; I like the mathematical layout!

Tuesday, September 25, 2012

The Last Suppers #7 (Birthday)

I cannot express in words how amazing the food at Journeyman has been lately. But that isn't going to stop me from trying. Perhaps it's just the expectation of having to see it go, perhaps it's that I've been eating on Mondays recently, perhaps I'm just easily amused.

Today, I finally convinced my colleagues to join me for dinner, so there were six of us ordering different variations on the menu. And there were five people lightly mocking one person for knowing a bit too much about the food. They're just jealous, I'm sure.

I went straight-up omnivore (with the vegetarian amuse-bouche; a sign I'm perhaps over-familiar with the menu at this point). But Tse Wei and Diana threw in three excellent surprises.

Now Actually Talking About The Food

Amuse-bouche. Carrot cheesecake with an everything bagel crumble and a crisp. Great savory flavor. (The omnivore version has salmon roe, something I'm not partial to.)

Tomato Salad. Running out of time. Tse Wei said afterward that they aren't finding tomatoes that have the flavor they want any more. And they were out of olive crumble today; for me, the olive was a crucial non-tomato element. I know I have praised this dish repeatedly, but it has finally passed its prime. Still good, but I'm glad it's leaving (and that I may get to see its successor this Friday).

Zucchini and Marjoram Soup. As king tomato retires, this smooth, full, spicy and wonderfully green soup (with its inclusions of roast corn, corn flan, blueberries, scallion(?), and pickled watermelon) is poised to take over the crown as the strong anchor of the start of the meal. This course is unashamedly delicious -- of everything that came out today, this is the only one that stopped conversation.

Cod. Milder than the last iteration, and with a bit of actual fish-y flavor (oddly enough). They have finally found the correct way to prepare the wheat it is served over -- slightly crunchy, but not combative.

Clams and Oysters. Clams, oysters, watermelon, citrus, dill -- I'm still amazed at how well this course works. This version had smaller watermelon cubes, which is actually quite nice when going for that perfect bite of a cube and a dill flower. (Clams are still great with their citrus-y flavor, oysters still great in general.)

Sweetbreads. (A surprise course!) This extra course was completely unexpected, and quite enjoyable. There is an opportunity to compare thought processes here:

Some of us: "sweetbread... that's some sort of organ meat, right?" (turns out it's the thymus) "well, let me take a bite; ooh, chewy, fatty. Nice."

Others: "Hmm, chewy, fatty. Nice." (conversation turns to what sweetbread means) "I don't think I can finish this."

Regardless, it was a delicious, slightly chewy morsel presented wonderfully inside a ring of squash, and with a great cashew-based sauce.

Foie Gras Ice Cream. (surprise presentation) with cacao, smoked salt, matsutake(?) mushroom. Wow. A further play on the rich and savory strengths of the foie gras; a clean presentation; wonderful taste. This eclipses the previous iteration (presented as part of the standard foie dish). Good enough to make me think about shoehorning yet another visit to Journeyman into my last week.

Lamb. Still very good, but I've already written about this dish at length. I will mention that the presentation is slightly improved from the photo in the previous article.

Prunes on Shiro Plum Sorbet on Hazelnut Meringue. One of my two favorite things in this meal (the F.G.I.C. being the other). So simple, but so nicely balanced. The shiro plum sorbet adds a bright note, the prunes add body and follow-through to the flavor. The meringue adds harmony and texture contrast.

Peach Dessert. I hope I've written about this before. It's still good, and it's still very pretty on the plate. I think it was plated better today than the two previous times I had it -- managing that brush stroke of sesame sauce takes a certain touch.

Post-dessert treats. An as-usual wonderful assortment of various little treats. One of the financier cakes had a (surprise) candle; which was a very nice gesture. Oh, and the caramel featured an interesting herbal flavor that I couldn't quite place (lemon-something; lemongrass?).

Saturday, September 22, 2012

The Last Suppers #6 (short report)

Went to Journeyman with my neighbors today (birthday celebration). The whipped egg dish has gotten more interesting (kimchi! rice cake!).

After-Dinner Conversation

Jim: Do you suppose the foie gras ice cream will last until Monday?
Tse Wei: Yes, you're the only one eating it so far.

Documented ExitSign

exit sign router

I added a few pictures of my old wireless router, ExitSign, to the funishings page. I took these pictures today just a few minutes before carrying the router to the trash. (Though, as with other modified computing devices past, I saved the front panel as a memorial.)

Therein lies the crucial problem with decorating electronics: they do not age gracefully.

Thursday, September 20, 2012

The Last Suppers #5 (two good plates)

Every so often -- perhaps more than that -- Journeyman manages to put together a perfect meal. Eleven plates come out (in general: amuse, salad, soup, fish, wildcard, fat, main, cheese, palette cleanse, dessert, "with the check"), and every single one is balanced, flavorful, and interesting. This is tricky, because those criteria are darn subjective.

Last night they were ten for eleven, stumbling only in the amuse, and only because of my ambivalence toward salmon roe (it's just a bit too salty for me, unless paired very carefully with something to take the edge off). But the rest of the meal had perfect flavors (and near-perfect presentation). (This is more exceptional given the return of a foie gras course; another dish where I often seem to be outside the target customer range.)

In this post, I'm going to talk about two plates I enjoyed and also happened to take pictures of. I can't say these were highlights of the meal only because the meal was so consistently good. But they certainly contributed to my overall enjoyment.

The Zucchini Soup

This has been on the menu for ages, and it has only gotten better over time. This iteration was delightfully spicy, and the pickled watermelon rind, blueberries, roast corn, and corn flan all complimented each-other wonderfully. In the past, the corn flan has been too large, and dominated the dish, or too cold and off-putting. But recently, it's been proportioned correctly, leaving more focus on the blueberries and the rind and the all-important interplay of their flavors. (Mind you, I only know it is correctly proportioned in hindsight, having observed that it works so much better now than it did before. And I don't rule out it becoming even more correct in the future.)

And look at it on the plate! There's wonderful color contrast, different interesting shapes, a nice bit of mystery as to where to start in (each bite is a bit different, but each bite *works*).

The Lamb

This is the same garnish set as I've seen before with the steak. Though this time the meat is lamb. Goes without saying -- but I will anyway -- that it's seared outside and pink inside. Just right; warm and tender. The garnishes all add different notes; the beans were especially fresh, and the tomatoes and clusters of mustard seed are always appreciated.

I really liked the visual impact of the big stripe of sauce. Earlier versions have had the garnishes all over the plate. This round -- possibly because the sauce has scared them -- the little morsels are snuggling together on their zuchini blanket.

Monday, September 17, 2012

Added Projects/Furnishings

fabric wall

I just added a page under the Projects called Furninshings. In it, I've finally posted documentation of some of the things I've done with my last two apartments.

Wednesday, September 12, 2012

Two Years of TCHOW (financials)

In this post, I'm going to describe the financial plan for my next two years. In short, I plan to live off of my savings while writing video games, and this article describes how I think the spending of said savings is going to break down. I've tried to allocate a reasonable amount of money -- and keep some flexibility for various additional expenses -- without being too optimistic or pessimistic.

Overall Allocation

Broadly, I've planned for $4k for moving expenses, $24k/year in Pittsburgh, and an "exit cushion" of $15k. The $4k looks like it should cover (with a bit of headroom) the moving company I've arranged, so I shall speak no more about it. I chose $24k/year because $2k/month is a nice round number -- and it seems to slightly over-estimate my monthly breakdown. As to the exit cushion, I basically pulled the $15k figure out of a hat -- though, in a pinch, it means I could cover my Pittsburgh rent and minimal foodstuffs for up to a year while looking for a real job.

This sums to the not-quite-round figure of $67k; which -- despite being more than a third of my net worth -- was pretty darn effortless to save over my two years at Adobe (thanks to industry pay rates and my frugal(-ish) lifestyle).

Up until the beginning of this year, a fair chunk of these savings was in various stocks. However, I'm not one to gamble over-much on something like this so now $35k of the total is parked with my parents (I wanted to make absolutely sure it was out of my reach, and it helps them avoid dipping into their retirement portfolio when the market is down), and $32k is in my bank account.

As an aside, it's strange how one's perception of money changes. Living around Boston, I'm now used to lunch costing about $10, and dinner $20, just about anywhere. Yet, in Pittsburgh one can get a decent lunch for $6 and a dinner for $10. (Similarly, my rent in Somerville is $1075/month, while my rent in Pittsburgh is $700/month.)

When I was in high school, my bank account probably had at most ~$100 in it. When I was an undergrad, I maybe had ~$1000 at particularly rich times (privilege alert: my parents + scholarships paid for my [in-state] tuition at UMich). Once I became financially independent (grad school), I had maybe $5k kicking around. With a real job, I generally have $10k-$20k sloshing (slushing?) 'round. I wonder, if I were to continue on this course of gainful employment, would there be a time when I'd have $100k or more floating unallocated?

The Monthly Breakdown

Here's how I break down my $2k/month budget.

Monthly Costs

  • $700/month Rent (includes heat, water); I have a two-year lease so I shouldn't have to worry about increases.
  • $50/month electric; this is an estimate based on my usage last time I lived in Pittsburgh.
  • $60.06/month health insurance.
  • $40/month internet; estimate based on splitting with neighboring apartments.
  • $70/month cell phone; though I'm considering going cheaper.
  • $10/month laundry.
  • $10/month spotify; optional expense, but I enjoy it.
  • $5/month tchow.com VPS; digital ocean is cheap!
  • $20/day pocket money; this includes food.

This comes to just under $1570/month .

I went with the $20/day figure for pocket money because it makes it really easy to budget. My notion is that I can keep a pile of twenties on my desk, and slip a fresh one into my wallet every morning. That's all I get to spend each day, and any change rolls over to the next day. Based on my current food costs, slightly over $10/day is more reasonable, but this is one of the areas where I built in slack for overages.

Yearly Costs

  • $375/year climbing gym membership; already paid, might increase to $400 for the second year if I don't catch it on special again.
  • $200/year clothing; no idea how accurate this is -- I basically buy clothing when my old stuff begins to develop holes.
  • $800/year travel to visit friends and family; this at least covers a midwinter visit to my parents.
  • $2000/year conferences (GDC?); I think I can do this on budget if I'm frugal.
  • $300/year skiing; this is 3-4 local trips.
  • $100/year renter’s insurance; estimate based on asking friends in PGH.
  • $200/year dentist appointments.
  • $100/year bike stuff.

However, summing and dividing by twelve I arrive at just about $340/month, which brings the monthly total to $1920. To be honest, this is closer than I'd like to $2k/month, so I'm going to be watching my expenses closely. If I do extract some shortfall, I expect I can easily spend more on travel, or maybe I'll end up wanting a new computer.

Going Forward

This is a topic I expect to revisit in future posts, once TCHOW kicks off in October. I'm looking forward to finding out how comfortable (or frugal) a life this budget allows, how much I end up under- or over-spending, and how I need to adapt so I can still hit my yearly targets.

Monday, September 10, 2012

The Last Suppers #4 (perfection)

I just had a very enjoyable meal at Journeyman. Part of it was the food, as always, but part of it was that I finally cracked open my copy of the Acme Novelty Library #20, by Chris Ware.

As the first course served, a boy was born. Between each course, he grew and changed. There were happy moments and regrets; marriages and childbirth; contemplation and time passing silently; memories and premonitions. Rusty Brown appeared for about two panels. By dessert, the man who was born on the first page slipped back into the unconsciousness of death. A whole life lived over seven courses.

The food was consistently good; briefly:

Amuse was crab + nasturtium, as it has been for a while now. And I'm glad of that, because the spiciness of the soup continues to pair nicely with the crab.

The Tomato course was similarly excellent to previous iterations, and was visually tip-top today; the heirloom slices had wonderful color patterns and interesting internal structure.

The Zucchini Soup continues to be excellent. This time the pickled rind was cut differently (and maybe was a milder pickle than before) and the count of blueberries had risen from two to four. This gave me more of a chance to appreciate how the blueberries pair with the soup flavor. Everything in this dish works together.

The Cod, which was watery and really not good last time I had it, has become most excellent with the addition of a bit of salt. Also, this version included some sauteed mushrooms that played nicely with the overall flavor profile. I think Tse Wei might have been over-compensating after our pre-meal conversation because this version was just on the edge of too salty. Basically, if you squinted at the comment card enough in my last post to read anything about the cod, well, it's all been revised and the dish is now pretty much just excellent.

The Whipped Egg came in a glass over large hominy, topped with a pepper foam and garnished with chives. This is a most excellent revision of the whipped egg over mushrooms that used to be on the menu. Such a warm and rich dish, and filled with mystery as well (the egg obscures all within it). Fun to eat and good tasting.

I had Carrot with hazelnut at this point in the menu, even though it's generally a third course. This has had great flavor every time, and this time was no exception.

For the main, I had the Steak again, because I hadn't had it in a while. To be honest, I think I prefer the eggplant main very slightly, though the presentation and garnish on the steak is wonderful. (Indeed, both have improved since my last time with the Steak main.)

I skipped the cheese today. It just didn't feel like a cheese-having kind of night.

The Black Locust Sorbet with chokecherry and oxsalis continues to appear as the pallet cleanser, and I continue to love it. The portion keeps getting smaller, which makes me fear that it may not have much longer on the menu.

Dessert was that old friend Roast Peach, paired up with shiso ice cream and a whipped ricotta cream, surrounded by crispy cobbler-crust-y crumbles, and sauced with a sesame and a raspberry sauce.

After dessert the standard collection of bits and bobs appeared. Tomato pate de fruit has returned, though without basil sugar. The caramel is back to a traditional caramel (it's been white chocolate for a while). The macarons are still lacking a bit of the chew I like in the meringue, but I saw a new batch coming out today so I have hopes for the future.

Overall, it was a very pleasurable meal -- artistic and culinary stimulation interleaved.

Friday, September 7, 2012

The Last Suppers #3 (comment cards)

As I mentioned in my first post about Journeyman, I've been writing them rather long comment cards; I guess because it's fun, or because it's good to write longhand once in a while, or because it's good to articulate thoughts about something that isn't computer-related or -mediated. Today, when I stopped in for dinner, Catherine spent a bit of time rummaging and recovered a few of the cards I'd written over past visits.

Keep in mind that these aren't all the comment cards I've written (by far). Indeed, historical research (i.e. mint.com) indicates I've had 14 of these last suppers so far; and I recall writing comments for all but three or four of them.

Regardless, here are the comment cards I saw again today. (In case you are wondering: yes, they do have formal comment cards. They've been bringing me old menus because I tend to run out of space.)

The Smallest Card

This is back when the spring salad was still on the menu, and it had the wonderful corn mousse and a smoked cherry tomato. The current tomato salad is better, but the spring salad was also quite good.

I reference "fluke two ways" which was on the menu for a very short time before being replaced with the "fluke." (Which is finally off the menu, as of this week.) I thought the two-ways version was a bit confused.

Both the foie gras (with currants and duck) and the rabbit course were fabulous during this period. I think this was an early plating of the foie gras + duck, when there were still lots of currants on the plate. The acidity cut the fattiness of the foir gras wonderfully. The rabbit was served done two or three ways, all good.

The dessert at the time was a marshmallow dish which was kitchen-torched before being served. Wonderful toasted-marshmallow flavor, but the plating always looked like it had fallen over.

Fall Arrives Early

I had a meal that really reminded me of fall. Lots of warm, bold flavors. Odd, because Journeyman is generally about delicate flavors. Not that I objected in the least!

One of the stars of the menu at this time was the spicy eggplant with poached (braised? sous-vide'd?) egg. Particularly the little ginger and (scallion?) spears it was garnished with. A dish that was deceptively simple, but warm and generous and beautiful and interesting.

A Graph

Yes, I drew a graph. Mainly to point out that I didn't like the fluke. But also because with that many courses it's actually kind of interesting to see how things trend. And, yes, there's no reason to connect those points with a line, obviously the meal isn't continuous, but gimme a little slack here. Lines made it look cool, and I wasn't being rigorous anyway.

First appearance of the current peach dessert; plating was different (bolder saucing).

Unused Space

The comment card from last weekend. This much unused space is really rare.

And, Today

The cod replaced the fluke. But I didn't like the cod. However, I think I might like the cod if it had enough salt/acid/seasoning to not taste watery. So maybe I'll come to appreciate it over time. Particularly, the plum sauce is really interesting on there.

Tse Wei prepared some duck breast in as close to a traditional Singapore presentation as he could manage with the ingredients he had on hand. It was fantastic. Salty, spicy, simple.

It would even fit in on the menu, simply because it's so conventional for Journeyman to be unconventional that to have a conventional course would be unconventional.

And I think I'll leave it at that.

Thursday, September 6, 2012

Two years of TCHOW (intro)

One of the reasons I redid my web page design recently is that I intend to use it to document the upcoming two years, which may end up being interesting. Let me tell you more about why.

The Idea

I've often spent my spare time working on games and art projects. It's been a hobby; a useful distraction; and an outlet for [and generator of] structured procrastination. It's something that I wanted to do as I was growing up, and never really stopped wanting to do. Yet somehow I got a PhD, got a research job, and find myself doing that now.

It's probably because research is really fun.

But what if I were to leave my research job, and just work on games full-time? Work on my own games, with complete artistic control and design freedom?

Well, over the next two years, that's exactly what I'm going to try.

More Concretely

On September 28th, I leave my (great) job at Adobe. On September 29th, I leave my (nice) apartment in Union Sq.

After a short flight, I arrive in Pittsburgh. I have the savings required to live comfortably (like a poor grad student) there for the next two years. And that is exactly what I plan to do. Live frugally, write good code, make the games I want to make, and see what comes of it.

My overall goal isn't to "start a game company" (though 'TCHOW' is a registered fictitious name for my sole proprietorship in PA). Rather, I want to complete projects and get them out for other people to purchase and play. Best case, I enjoy writing games full time and make enough money so that it becomes self-sustaining. More likely, I enjoy writing games full time but have to get a real job again in two years.

I guess we'll see what happens.

Sunday, September 2, 2012

The Last Suppers #2 (with pictures)

Boredom is a dangerous thing. Isn't it said that idle hands often turn to the devil's work? Isn't it said that boredom is the mother of invention? (Actually, maybe only I say that second one.)
Regardless, today I'd had just about enough of staring at the walls of my apartment (...and the furniture, of which I'm building 3D models in some hope it will somehow help with arranging my new apartment). And, recalling that the menu at Journeyman was pretty good last time -- and that (when I ran into him yesterday) Tse Wei told me that they were changing out two dishes, the pig and the fluke -- I decided to head over despite it being a bit sooner than my customary week-ish between visits.
As I suspected based on his stricken look when I came in today, though, the fluke hasn't been changed out yet. Not that that matters, with the carrot dish being as good as it is.

So what did I have today?

First soda - apricot, ginger, fenugreek. The apricot shrub is so good, and the ginger keeps it interesting. I have no idea what the fenugreek adds.

Amuse - nasturtium soup with crab. Very good, I like the crab here better than the watermelon in the vegetarian version.

Tomato - see last post for a description; always good. I recalled today that it maybe used to have a smoked cherry tomato in it, and that it no longer does. (Perhaps that was only in the spring salad? Hmm. So many good dishes.)

Soup - see last post for a description. Then imagine that, but even better. This soup stood without the watermelon rind. The portion of corn flan was reduced, which also helped to focus on the soup's excellent flavor.

Carrot and hazelnut - one of my new favorite flavors. This version had a cute little "yoghurt cup" made from the carrot ribbon. This brought more yoghurt onto the plate, and into the overall flavor (and was nice looking, too). A good dish that was even better this time.

Second Soda - coffee, blackberry, (...many more ingredients...), bitters. Many visits ago, Andrew prepared for me a soda that included coffee. I decided to ask Catherine to revisit that (terrible) decision and give it a try. What she came up with tastes like the best cup of coffee you've ever had. All those complexities (fruity notes, interesting body, good finish)? Turns out you can fake those by just adding stuff from your collection of shrubs and syrups. Was it a good soda? Hard to say. Was it an interesting experience? Definitely.

Oysters and clams - this dish is great, with a clever plating. One oyster sits atop a sheet of gel, surrounded by watermelon chunks that have been lightly kitchen torched. Below the gel lurks another oyster and several clams. The oysters are unseasoned, the clams are dressed with citrus. The watermelon chunks have dill flowers atop them.
Everything in this dish tastes spectacular. I used to say that I hadn't met an oyster I didn't like. I can't say that any more, but these oysters weren't involved in that experience. The citrus on the clams is a great flavor, possibly my favorite preparation of clam.
And everything is working together. The sweetness of the watermelon plays with the acidity from the clam and the salt from the oyster. But the single most interesting thing in this dish is how the watermelon plays off the flavor of the dill flower. It's a really good, totally unexpected flavor combination.

Duck breast - I asked for a variant preparation of duck breast or cucumber (their call). The duck breast is normally served over mole and surrounded with sliced raw and whole cooked radishes. I ended up with duck breast surrounded with mezcal-soaked watermelon and a little bit of ground-cherry compote.

Steak - correctly cooked, good meat, with excellent accompaniments: tomatoes with mustard seed, zucchini cooked just right (not limp, not raw), green beans. And beautifully presented -- little cubes of meat atop the zuchini, beans arching overhead like some architect's form-over-function daydream, tomatoes and their clusters of mustard seeds outside in the courtyard; inevitable public art.

Cheese - nice soft cheese. The bread today was English muffins, so much of the finely crystallized wildflower honey that came with the cheese got loaded onto those. As did some of the cheese.

Cleanse - same chokecherry/black locust sorbet/oxsalis as last time. So well balanced, I really hope this sticks around for a while.

Dessert - same roasted peach as last time. There was a whipped-cream-like preparation of ricotta which I think was new. Added some nice lightness and textural balance to the dish.

With the check - tomato pate de fruit has run out, unfortunately (raspberry instead). The caramel was shiro plum flavored. This batch of macarons has not been as good as some of the previous batches.

Saturday, September 1, 2012

Imported Old News

I've moved all the sequential content from the main tchow.com page over to news.tchow.com -- this blogger-hosted sequential content repository. These old posts are tagged 'legacy' and may contain broken links or certain other oddities (one I've noticed is that the sentences have been glued together tightly). I will try to correct these problems as I notice them.

I'm still in the middle of actually resolving all the links and so on properly. But, hey, at least I've got a few posts on here now.

Friday, August 31, 2012

The Last Suppers (introduction)

As you may, or may not, know -- I'm going to be living off of my savings for two years, starting this October. In support of this, I've been living a rather frugal life (and I plan to continue this as I live off of my savings). But -- as of a few months ago -- I have saved all the money I will need for my planned two years of TCHOW game development.

And so, as a last luxurious fling, I decided I should have one nice meal out every week. At Journeyman.

And I've been doing this for the last month or two. It's great. I know most everyone by name (For reference, that's: Tse Wei, Diana, Jared, John, "that other guy in the kitchen who never talks with me," Meg, Catherine, Andrea, Andrew, John-Michael, Bradford, and Sam [Backbar affiliated but he comes over to grab bread on occasion. Most serious looking bread-slicer I have ever seen.]). I also occasionally see Tse Wei and Diana at the farmer's market on Saturday. (And Andrea, but that's expected thanks to the Beakers and Cream ice cream venture.)

I have come to think of these as my Last Suppers -- a kind of  farewell to life in Boston ( / life with a real job).

And it's kinda weird -- good weird, but also uneasy; almost performance-art weird -- being a regular at a restaurant that doesn't really have any regulars. Look at the clientele for a night: stockbrokers and their well-dressed dates, an older couple celebrating their wedding anniversary, a small group of friends at a birthday party. And me, who just, y'know, stopped in for a bite to eat on his way home from work.

Being a regular gives me a different perspective on the food. I mean, it's certainly good. But on any given night, I've probably had a better version of one or more dishes earlier. And I probably fondly remember a dish that's no longer on the menu. I see the whole life-cycle of a dish, from the first, bold plating, to revisions of components and flavors, to dissolution and re-integration into other plates. With "special-event" customers, the food is competing with some sloppy home-made pasta from yesterday. With me, the food is competing with itself, last week, and everything else that has ever been on the menu (for months!).

So maybe I'm not enjoying the food as much as the special event diners. But I think there is other pleasure to be had in the experience; in watching the continuous innovation and the marveling at the effort that goes into every plate. Occasionally having the present incarnation of a dish overshadowed by my memory of the best version ever -- well, that's better than having never experienced the best version ever.

More about the restaurant

Journeyman is about 50 paces from my house. It's close enough that I once nipped home to grab some cranberry/pecan bread which I thought would pair well with a soft cheese I was eating. (It did.)

They offer 5- and 7- course menus in omnivore and vegetarian versions. My typical meal is the 7-course + a cheese course, paired with two house-made sodas which I generally ask for in very general terms so that they end up being creative and interesting. The worst that's ever happened was coffee soda, which I've made before, too. (It seems like a good idea until you try it.) The best sodas tend to feature Journeyman's (excellent) apricot shrub, their amazing ginger syrup, herbs, and/or bitters.

This whole meal experience takes about three hours from start to finish, and it's time well spent. I sit at the counter; between courses I read, or watch the chefs cook, or chat with chefs/staff. Or stare into space and think about how good the current soda is, or the previous course was, or a course that I'm anticipating is.

Also, the staff brings a comment card at the end of the meal. And I start, with the nicest intention of just writing down a few things, and end up filling the card. And when I say "card", I mean 8.5x11" sheet of paper. And when I say "filling" I mean that I end up writing margin-to-margin and putting some words and pictures on the back. Sometimes it's just good to write, y'know? I should ask to get a few back to scan/photograph. If nothing else, it's a testament to my built-in urge to critique ("thanks, academia").

But I thought maybe instead of just writing comment cards, I should write news posts for TCHOW. If not for others, then at least for myself -- so I can look back at myself in this time of my life and pine for food and curse my lack of frugality. Or maybe to think about how awesome I was to find something I enjoyed and exploit it. How I got this view into one of the best restaurants in Boston that almost nobody has, and how I tried to appreciate that view by being analytical about what I was enjoying.

So what did I have today?

Seven-course, Vegetarian Menu. (because I had the omnivore last week, and the fluke has never operated as more than a collection of parts for me, and the pork was a disappointing cut, and there were new dishes on the vegetarian side.)

First soda: peach/oregeno. Lovely combination, almost savory.

Amuse: nasturtium soup with watermellon and balsamic pearls. Spiciness of the soup plays well off the crisp watermelon. I wonder if the omnivore version still has crab? (I enjoyed that version because it hearkened back to the very good mint/pea soup with crab meat.)

Salad: Tomato slices, tomato ribbon, tomato sorbet, basil oil, roasted tomatoes, dehydrated olive, seeds-y granola, fried ricotta thing. This dish used to be on the vegetarian menu as the second course. I had the first or second version they ever plated (I recall it was bigger, but they used an opaque ribbon that broke, ruining the presentation -- this version has a transparent ribbon that's a lot thinner and generally plays better in the dish. I kinda miss having just a huge wedge of heirloom tomato though.) For a while, the amuse was tomato-water soda and that was a perfect lead-in to this salad.

Let me state clearly that I love this dish. It's got such great flavor pairings. Dehydrated olive + tomato is a wonderful match. It keeps up the Journeyman tradition of having exceedingly complicated salads that are like a playground of flavor pairings. And it has great temperature contrast, with hot, room-temp, and cold elements on the same plate. It's really masterful.

Just, y'know, not the best version I've ever had.

Soup: zucchini soup with pickled watermellon rind, corn flan, roast corn, blueberries, squash blossom. I recall the soup as being a bit flat, but the zesty rind really picked it up; similarly the corn flan was a bit bland but the squash flower was well-seasoned and brought it through nicely. First time I've had this dish, and I look forward to seeing it again. (I was getting bored of the corn soup that used to be in this slot.)

Hazelnut Terrine with Carrots, Mint, Greek Yoghurt: this is a new one, but an excellent one as well. The Hazelnut and Carrot both exist in this savory/sweet limbo, but the mint and the herbal sauce brought them down on the savory side. This is one of those dishes that connects flavors I hadn't associated; a fun experience. The colors of the components contrast well, making the dish visually exciting. And there was a carrot ribbon. I'm a sucker for ribbons. My only critique on this one is that the herbal sauce was a bit salty.

Whipped Egg with Mushrooms: a simple dish. "Almost clinical" I wrote on the comment card, meaning it neutrally. The mushrooms were almost so dry as to be off-putting, but not quite. Somehow it felt like a very small, almost stingy dish. (This is probably because I'm remembering the egg + eggplant dish -- no longer on the menu -- which felt warm, inviting, spicy, wholesome, and generous. Oddly, that dish didn't feel like Journeyman, and this one does. But I still liked that one more. It surprised me every time I ate it.)

Cucumber and roasted buckwheat with mole and kefir: I used to eat this to avoid the foie gras course; the foie gras course is now the duck breast course, and this doesn't really compare. It's good, mind you, just not roasted-duck-breast-good. Dish has a nice presentation with little heaps of green and brown over criss-crossing sauce stripes. I've seen several different platings; my favorite was with the mole in little drifts up against the buckwheat with the cucumber slices and chopped cucumber salad in similar arrangements elsewhere. Like a little city of two different colors and three textures.

Second Soda: Lime shrub + lime syrup + lime wedge + a touch of passion fruit. Intensely acidic -- a really good "sipping soda".

Eggplant with miso glaze, eggplant agnolotti, inexplicable but welcome shiso leaf, roasted ground cherry, eggplant glop [probably not the official term], green sauce: I've seen ground cherries several times at Journeyman, but never cooked. Turns out, they are way better when cooked (kinda like tomatillos, which they resemble). This was a new dish for me, and a really enjoyable one. It knocks the socks off the previous vegetarian main (a zucchini dish that wasn't more than the sum of its parts). The flavors work well here and contrast nicely, with eggplant showing its versatility, and the shiso leaf being a shiso leaf (which I can't help but love), and also tying the sweetness of the ground cherry into the more savory flavors of the rest of the dish.

Cheese: I asked for a plate which contrasted the blue cheeses on offer and got a French-origin blue cheese that was very sharp (think sharp cheddar) and an English-origin that was more mellow, along with an alpine cheese because Diana didn't want to just send me two intense blue cheeses (and because alpine cheeses have a characteristic bacteria-induced flavor, just as blues have a characteristic fungus-induced flavor). My only complaint is that having a super-acidic soda with blue cheeses is maybe a bit more than even my stomach is entirely happy with.

Cleanse: Chokecherry puree, black locust sorbet, oxsalis leaf. Really nicely balanced. Everything works together, from the calm subtle sorbet to the more aggressive sauce to the crisp and fresh leaf.

Dessert: Roast peach with crumble, various sauces, shiso sorbet. Who can argue with roast peach? I can't. The previous plating of this dish used a raspberry and sesame sauce as bold paints, looking like a sunset. This iteration uses only the sesame as a paint, looking much more coordinated on the plate (doesn't clash with the sorbet) but also less bright, which I kinda miss. Also the shiso sorbet has a very mild flavor compared to the previous iteration's basil sorbet. But -- as I said earlier -- I can't really argue with shiso.

With the check: tomato gel in basil sugar, macaroon, caramel, flourless chocolate cake, coconut financier. The tomato gel has appeared earlier in this "pate de fruit" role, but the basil sugar was a new (and welcome) innovation.

Wednesday, August 29, 2012

Finally documented the 2011 midwinter hunt

It's been sitting on my hard drive in more-or-less complete state for a while now, but I've finally gotten around to posting the documentation of the 2011 midwinter puzzle-hunt I wrote.
I hope this is the start of a trend toward actually documenting some of the things I do/make, if just for the sake of my own later self.

Sunday, August 26, 2012

Updated Backend

Over the last few days, I've massively restructured the way that tchow.com is served.On the surface, you shouldn't notice any big differences, but under the hood things have gotten dramatically simpler.

How it was

From sometime around 2007 until just a few days ago, tchow.com was hosted on a VPS partition from RapidVPS.The partition was set up running a pretty standard stack: Gentoo GNU/Linux, the Apache web server, and PHP5.
I designed my content serving system to be future-proof, simple to use, and to contain minimal redundancy.This meant that I wanted visitors to see clean URLs (no file extensions; file types determined by Content-Type header), and those that looked at the markup to see nice xhtml with a clear separation of content and chrome.Internally, I wanted to be able to serve the web page from a filesystem, provide content with my favorite text editor (and/or scp), and do so in a not-too-idiosyncratic format.
In order to make this work, the following happened on each page load:first, mod_rewrite rules would take the user's URL and turn it into a query string for a dispatch.php script;this script, in turn, would crawl the backend directory structure to find the proper page (a file containing an html fragment),then paste in appropriate templates for navigation and analytics.

What I didn't like about it

This old setup was nice, but it was also overkill -- php was re-generating the same (static) content over and over again, opening and reading through tens of files on each page view.This seems really inefficient (and, honestly, the "standard" answer of wrapping this in a caching web server seems even sillier).
Additionally, external URLs were clean-ish, but I never really resolved where a trailing slash was appropriate, which led almost everything having absolute links all the time.
Also, I ended up storing my page content in an svn repository (to move edits between my staging and live pages), but since svn has no way of updating all of htdocs at once, this creates potential race conditions in page viewing during updates.Besides, I've been using git for a number of years, and it feels so much snappier than svn that it was getting to be a drag to do page updates.
Added to these design concerns, I'd noticed that Digital Ocean was offering a VPS partition of similar size to my RapidVPS partition (but with unlimited bandwidth) for about half the price.So it was time to change.

How it works now

First off, I ditched Apache -- which provided way more than I need -- and switched to Lighttpd; this also provides way more than I need, but at root it's a lot more comprehensible.Indeed, I get nice clean URLs using just two modules: mod_rewrite for hostname correction (e.g. so that www.tchow.net redirects here properly) and mod_magnet for URL dispatch.I no longer have php re-generating static content over and over again;instead, I have a python script that I call on the (git) content repository which regenerates just those pages that need it.
But mod_magnet is really the key to the whole setup because of the way it works:you provide Lighttpd with the path to a lua script, and it runs that script to determine which physical path corresponds to given query string (the script can also do things like trigger redirects and add headers).The cool thing here is that now every page view goes through dispatch.lua (in my case, nothing more than a url -> file mapping table), and it's one file, which means that if I atomically update it then I've atomically updated the web page.So this setup gives me the satisfaction of being able to update the content on tchow all at once, and without race conditions (as long as my scripts are careful to not overwrite any content referenced by the active dispatch.lua).
I also re-worked a few things around the urls so that the semantics are much clearer, changed the styling a smidge, drew some new calendar icons, and did various other tidying.But mostly, I'm satisfied that I've gotten rid of a lot of systems that tchow.com didn't need, and pared things down to a really slick-n-slim software stack that still satisfyingly serves what it should.

Wednesday, February 8, 2012

Checkpointable Box2D

While working on rktcr, I've spent a while thinking about how to checkpoint Box2D simulations so that one can rewind and play them back exactly.(Useful for replays, or time control when you really care about doing it right.)This turns out to be both harder and easier than one would expect:harder, because some of the simulation state (e.g. order of contact processing) is hard to access, much less properly save;easier, because one can hook memory allocations in Box2D and just save everything.This is one of those hacks where I'm very glad I use a language that can talk about memory.
I'm releasing this code as public domain -- you can find it from GitHub here.There is a small patch you'll need to apply to Box2D included.If you enjoy (or are confused), please let me know,