In the past year (for fun) I’ve written nearly a hundred thousand words for myself, and another ten thousand in personal correspondence. I think it’s time I started writing publicly again.
It’s been about a month and things are … better. Brand new place, spent a few weeks out of town, changing my wardrobe, typical post-breakup stuff. Not having my own place – or cooking equipment to call my own – really put a damper on my ability to cook the past month. One new lease and Amazon shopping list later, that’s now taken care of. I found that my favorite food blog, Serious Eats, has an article just for my situation.
It feels nice to cook everything for myself for the first day in a long while.
It became a ritual for me in college. Fry bacon in a skillet, then fry a couple eggs in the bacon fat once it’s done. Flip over the eggs in the skillet, then immediately serve. When there are about five minutes left on that, butter up some bread and toast it in the oven at 400F for 5 minutes. Unlike college, I’ve now got a cast iron skillet to do this in. The main difference is that the eggs cook very quickly since cast iron holds heat well. I’ll have to get used to the new oven and adjust to it as well. It’s not great, but it’ll do what I need if I figure out the timing.
French onion soup. I know what you’re thinking: two hours?! Nope, that’s what’s great about having a pressure cooker – it cuts the time to 40 minutes. As far as time goes, it also helps I made it a couple days ago to share with a friend. Before then I’d only ever eaten it at La Madeline. Cooking it – and today reheating it – filled my entire apartment with the smell of caramelized onions. I can’t complain. It is incredibly filling, and there’s no way I’ll be able to finish the leftovers before they go bad in about a day from now. When I make it again I’ll make sure to have enough friends nearby to consume it.
One from Alton Brown’s Everyday Cook. Specifically, the savory Greek yogurt dip. Been munching on it throughout the afternoon with some carrots and celery. I’ll have to try it with potato chips next time – really want to see how it goes with starchy saltiness.
This was the first meal I cooked once I had the barest essentials in my apartment. Surprisingly I hadn’t ever made it for myself, but I’m going to make it regularly from now on. Steak, mashed potatoes, and sauteed mushrooms. It’s about as American as a meal can get.
Life sucks. I’m going to use cooking to make it better.
Long story short, I’m living out of a coworker’s house for the week. I’ve just experienced the worst two weeks of my life. They’re finally over, and I need to heal. Cooking is going to be part of that.
For my birthday, I bought myself a copy of Alton Brown’s new cookbook, Everyday Cook. Over the weekend I sat down in coffee shops and planned stuff to make this week. Most importantly: Bad Day Bitter Martini.
The hardest part of the Bad Day Bitter Martini was crushing the ice. After folding the ice in a clean towel as directed, I smashed the ice between two cutting boards.
Obviously, I made the strong version so I didn’t need no fancy Boston-style cocktail shaker. I’m not really a fan of bitter alcoholic drinks. I’m a sweet and fruity kinda guy. Basically, if it’s bright pink and basically candy, I’m in. I was pleasantly surprised that this simple drink was quite delicious. Normally bitter drinks make the back of my throat involuntarily contract as if it’s afraid to let anything else down. This … didn’t. I can tell the aroma of the grapefruit peel played a big role in this, but what’s doubly odd is that I really don’t like grapefruit. Somehow the bitter-sweet of the Amaro and the bitter-sour of the grapefruit balanced to make something palatable to me.
Unfortunately, my host’s wife has gone to bed, so it’s too late for me to make another (crushing ice is loud).
It’s like writing. It’s a way of communicating ideas. I use procedural art to understand the world, what it looks like, and how it is put together. Procedural art is a way of describing this world. It’s a completely unambiguous description what I mean. When I understand the tool I’m using well enough, there’s this giddy freedom given by the ability to express anything (given enough time).
I don’t look at the world and see formulas that describe things. It’s like I see things and can’t resist taking them apart in my head. Not necessarily piece-by-piece like legos. Imagine looking at a wooden chair. Think of each piece independently – the pieces of wood brought together to make its form. Now separate the shape of one of the chair legs from the texture of the wood. We can go further. The shape is most precisely describable as the mathematical objects that could be used to create it – the one in my mind is an inverted truncated pyramid with rounded beveled edges. Roughly, this means that the chair leg has a square base that is slightly smaller than the top and has smoothed corners. This can be further generalized, but not indefinitely (not in any way I find satisfying, at least). Eventually I’m left with a set of parameters (chair leg height, how rounded the corners are, …) and functions (rounded bevel, pyramid, …). The same reductionist procedure can be applied to the texture of the chair leg, with analogous results. In some sense, it really is just legos.
I can see why Plato was so fixated on his idea of Forms. He thought that everything in the natural world was a projection of idealized, abstract Forms. For instance, that the abstraction of a “table” meaningfully exists outside the minds of sentient beings and everything we call “table” has some connection to it. While it misunderstands the nature of reality, it does a great job at representing reality. If I can reduce a given object into forms I can mathematically describe, then I can not only recreate that object but myriad variations with the same essence. When I develop a brick texture I don’t just want to make one brick, I want to make every brick. How alluring the idea is that these equations are “more real” than any one instance they take.
I’ve been away from procedural art for some time. Diving back in was … refreshing. Like writing after a day spent reading. Since my main fascination is with photorealistic procedural textures, it’s like everything I see is a page waiting to be read. Some, like bricks, are simple and easy to read (any introductory procedural texture text will devote at least a chapter to bricks). Others are much harder – I lack the vocabulary and grammar – but will get easier to decipher with time.
My old tools are still there, much improved but with the same flavor. I mainly use a program called Vue. Partly because it’s the one my parents happened to buy me ten years ago, but mostly because it now supports Python scripting and function graph refactoring. My math degree and my professional knowledge will come in handy.
It’s nice to be back.
I want to start practicing implementing existing design patterns from the Gang of Four’s Design Patterns. Per Robert C. Martin’s suggestion in Clean Coder, I should achieve mastery of these if I want to be a professional.
I’ve used design patterns in my work, but I wouldn’t in any way say I’ve mastered them. I want to create a set of code kata, one for each design pattern from Design Patterns. Before I do so, I’d like to point out how design patterns and cybernetics are intertwined.
So I found a data set that I’ll find interesting. I’d like to optimize how quickly I can make changes to the Google codebase. I’ll have to ask internally about the extent of the information I’ll be able to share on this project, but here’s my plan. If I’m lucky, I may be able to share my anonymized data and data analysis code.
Turns out, it isn’t a great idea to collect data on bus routes when you aren’t already on the optimal route. In the afternoon a bus that gets me 2 miles from where I live, and it gets me there 30 minutes earlier than the route I was taking before. There are no intermediate stops between Google and my drop-off (just like my morning commute). I could collect data and do statistics on my bus route, but this isn’t a compelling enough problem for me to remember to take down the data. Both bus routes have no stops between being my pickup and drop-off, so the problem would be just using departure time as a predictor of arrival time.
I’ll be on the lookout for something else I can collect data on. I’m certain that as I do this more finding things to take data on will become easier.