Healing Through Cooking

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).

Why I make procedural art

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).

EquationNotebook.pngI 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.

beveled-tile.pngI 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.

StreetBricks2.pngI’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.

Design Patterns and Cybernetics

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.


New Data Set: Changelists

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.


The Woes of Changing Data Sources

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.

Applied Machine Learning

I do machine learning (ML) for a living, but I’ve never applied it to my everyday life. I sold my car when moving to the Bay Area so now I use buses for my commute to work and to get to and from San Francisco. I rarely have better than a 15 minute window of when I think I’ll arrive because bus schedules don’t often hold up to reality. We can use machine learning to change that.



Welcome, and hello. I’m Will Beason, that guy on the about page.

I need a place for my thoughts. I think a lot of things and like to write them down. Turns out, Facebook is not the ideal medium for discussing how entropic gravity would make a cool hard scifi story, that causal entropic forces can simulate intelligence, or what the book I just read made me think. Sometimes I make art with math and want to talk about how I made it. (Hint: header image)

Besides a mishmash of physics, mathematics, and computer science, I find a lot of other things interesting. Information is cool, and I like studying how it comes together to make systems. I think of myself as a cyberneticist.

Maybe you’ll find this interesting.