Grant Muller

Book Review: Daily Rituals

Daily Rituals is a superficial book, a collection of “facts” with little analysis or synergy of its constituent parts. Mason Currey says so right in the introduction, so we know the author’s intent right away.

There is no illusion that what Currey is about to present is somehow a compilation of how to’s and instructions for creating. But, regardless of the author’s goals, to walk away from Daily Rituals without at least a few themes is impossible. Here are some.

Art and routine go hand in hand. Even avoiding routine is in some way its own routine. Have you ever tried not doing the same thing two days in a row? Each day? It’s difficult, perhaps harder even then simply settling into a comfortable cadence. The instability of non-routine produces its own set results. Finding a routine quickly becomes its own strange ritual and as Nicholson Baker put it:

…the most useful thing is to have one that feels new. It can almost be arbitrary… there’s something to just the excitement of coming up with a slightly different routine.

At its core, art is craft. Steven Pressfield says the same in The War of Art and Stephen King agrees in On Writing. Daily Rituals overflows with tales of creatives who get up and get to work using the tools they have to do what they know. Good or bad they do the work. Currey’s collection goes a long way in dispelling the myth and mysticism of creation. Artists are working stiffs like the rest of us. They clock in and they clock out. When the mist evaporates, whats left is you, your circumstances and what you make of them. Tolstoy had thirteen kids and wrote War and Peace. Stephen King wrote most of his first novels in a laundry room. What are you doing with your time and circumstance?

Your ritual is itself a creation. The individual routines of Currey’s subjects range from the mundane (Hemingway) to the eccentric (David Lynch and Andy Warhol). Thinking about how you work best is work. The process of creation is a creation, some kind of feedback loop that you experiment with, exploit or erase and start over. Different routines beget different results. Like creative constraints, your routine sets boundaries. You create your unique time and your unique environment; your results will be similarly unique.

So, as a collection of mundane facts about creatives and their daily work, Currey’s work is a success. Its not a rulebook, and its only inspirational if you let it free you to create your own routine (or non-routine). Currey strategically ends Daily Rituals with a quote from Bernand Malamud:

There’s no one way…You are who you are, not Fitzgerald or Thomas Wolfe. You write by sitting down and writing. There’s no particular time of place…How one works, assuming he’s disciplined, doesn’t matter. If he or she is not disciplined, no sympathetic magic will help… Eventually everyone learns his or her own best way. The real mystery to crack is you.

Keep Your Eyes on Your Keyboard

I recently read Accidental Genius by Mark Levy. I did so begrudgingly; I usually don’t go for books that promise to unlock the power of my mind through special techniques. I’m glad that I could put aside my stubbornness because the book contained a wealth of advice on tapping into ideas that you may not even be aware you had.

Accidental Genius advocates a practice called freewriting. Freewriting is just timed bouts of word excess. Sit down with pen and paper, or your favorite full screen editor, and go to town. Don’t think, write. This seems counter-intuitive until you understand that writing is thinking. By turning your hands into your own personal dictation device you engage that part of the brain the controls motor neurons freeing your mind to wander into deeper recesses.

I’ve been doing this to some extent intuitively for years. I first started “journaling” a few years back based on the 750 words meme that rolled over the internet. It advocated writing 750 words a day. Didn’t matter what they were, observations, stories, thoughts, feelings, etc. Just get it all out on paper. I figured if it works for Hemingway it will work for me. Every night for months on end I did this as a means of “brain-dumping”; just get it all out on paper. You can come back later and edit it into something worthwhile if you want…or don’t.

Think of it as making bread. You knead your brain with these 750 words or freewriting sessions, forming new connections between synapses you didn’t even know were there. After you knead and rest your dough (mind) for a while, you can come back and form your thoughts into rolls suitable for baking and serving.

One tip of my own to add:

Keep your eyes on your keyboard

Mavis Beacon will of course disagree, but I’m not trying to teach you QWERTY typing. The act of writing is different than the act of editing. When you write do it with reckless abandon. Ignore punctuation, spelling and typing mistakes. When you look at your screen your internal editor is watching what you put on the page, backspacing, deleting, correcting and moving forward. Backtracking into an idea to correct something as minuscule as a dropped comma forces your brain into the parallel tasks of writing and editing at the same time.

Try This:

Write stream-of-conscious for 5 minutes while looking at your screen. Do what you normally would, correct your errors and keep going.

Then Try this:

Write for 5 minutes looking at your keyboard. You may have made a typo back there or forgotten to type a comma but who the hell cares, your typing at the speed of your brain and not your stupid fingers. Just write, you can come back and clean it up later.

Now Compare

Did you write more in the latter 5 minutes than the former? I always do and I always end up with more usable material than when I edit as I go. Separating the acts of writing and editing is the most important lesson I learned from Accidental Genius.

In the past six months I’ve spent less time dumping my brain on the page, but with the kick start from Accidental Genius I think I’ll start the practice up again with more regularity and include some of the tips and prompts from the book.

Coffee Roasting: Build or Buy?

For the last five years I’ve been roasting coffee in this:

I got 5 years out of my old machine, the Frankenstein Turbo Crazy, home grown of course

My Frankenstein Turbo Crazy.

But alas, after five years of operating “outside of normal temperature ranges”, this happened:

Before this happened. Half a decade of operating "outside of normal temperatures" melted the convection heater...

It seems that convection ovens weren’t meant to have their temperature limiters removed and run for hours on end. The handle, which controls the reed switch to turn the heating unit off and on, melted right off the base.

I knew this would happen someday, and I had planned to build another machine with a leaf blower and a commercial heating element, with robot arms and a positron brain. Alas, the unhappy melting happened right in the middle of rebuilding a fence, writing a bunch of software and getting through several releases at the office. I was posed with the classic question all technology households are posed with: build or buy?

A guy has got to have his home-roasted morning brew. I made a rash decision. I ordered one of these:

The Muller House gets a new coffee roaster

A GeneCafe from Sweet Maria’s.

After a week of waiting the GeneCafe finally arrived so after fulfilling my daily obligations I came home and took it for a test run on some Rwanda NKanka Kinyaga. In Benjamin Franklin style, here is how five years of DIY roaster technology stacks up to the commercial grade:

GeneCafe Frankenstein
Pros
  • Configurable Temperature
  • Configurable Time
  • Integrated cooling unit
  • Excellent chaff removal
  • Single unit
  • Easy to clean (so far)
  • Very even roast
  • Requires less monitoring
  • No coasting
  • Extremely high temperatures
  • Infinitely configurable
  • Very low cost
Cons
  • Long coast time
  • Small batch size
  • Long roast/cool times
  • Temperature
  • Very high coast
  • No integrated cooling unit; long cooling times
  • Requires constant monitoring
  • Occasionally uneven roasts
  • Poor chaff removal

The verdict. After the initial two test runs I’ll give the win to the GeneCafe. If only for the sweet analoguish knobs. We’ll see how it holds up after half a decade.

What’s the plan for my beleaguered Frankenstein Turbo Crazy? Well, I’ve always wanted an outdoor water heater…

Update: The coasting issue I complained about previously is no longer a problem. Seems I just needed to read the instructions…

Seven Languages in Seven Weeks

Think about the way you think. Think about that thought, and this one. Did you think using words? Did you see the words? Sound them out mentally? If someone asked you describe yourself, you would probably think of a series of adjectives (at least if you’re an English speaker).

We think via language, spoken or written. It’s the source of our intelligence and in some ways the root of our consciousness. Helen Keller is quoted with communicating that:

When I learned the meaning of ‘I’ and ‘me’ and found that I was something, I began to think. Then consciousness first existed for me

The languages you learn are the languages you express yourself with. They mold the way that you think about things and create who you are within your own mind. I’ve written about this before and it’s not an entirely new concept.

Recently I’ve gone to great lengths to change the way I think. Finding new ways to solve problems, especially software problems, often involves learning new languages, syntaxes or paradigms. You can force Java or C to do just about anything, just as you can force the English language to describe just about anything, but it might be that by using Java instead of Haskell, you’re using the wrong tool for the job.

I wanted to expose myself to a breadth of different software paradigms in as little time as possible. Rather than reading dozens of tutorials, or poring through hundreds of pages of reference manuals to get maximum exposure, I bought a book I called Seven Languages in Seven Weeks. Packed into this dense little tome is an overview of seven syntaxes from different families and programming paradigms.

Ruby

The book begins with Ruby. It’s a fairly common syntax and I considered skipping this chapter. Indeed, with the relative ubiquity of the language I wondered why it had been included at all. In the spirit of playing along with the author I read through the sections and did the exercises as described. It turned out to be a good idea; some of the concepts around using method_missing as a DSL generator I had never put into practice.

From a comfort standpoint starting with a language you’re familiar with is also a bit like reading the introduction to a Latin grammar text book in English. I know the language and therefore the author can present his approach to me with words I can understand before I try to make my way through the rest of his presentation.

Speaking of presentation, Tate clearly has a grasp of basic pedagogy. From the beginning he uses a mneumonic device to help the reader put a face to the chapter and the methodology. For Tate, every language is like a character in a movie. They have their own personalities; something that makes them unique within the dozens of lexical environments out there. For Ruby it’s Mary Poppins. You know, syntactical sugar. Get it.

IO

After Ruby Tate introduces a language I had never heard of, Io. Just try searching for information about this little language on the web. You won’t exactly find the throbbing community that surrounds java or ruby to back you up. No, if you choose to use Io to solve something new, you’ll likely find yourself in uncharted terrority. Not necessarily a bad thing if your approach to the text is to learn new ways to think.

A prototype language, Io is described by Tate as Ferris Bueller. In use I got the distinct impression that Io was heavily influenced by Smalltalk; everything you send is a message, and their are nothing but senders and receivers of messages. Method or function? Not really, there are ‘slots’ with message handlers. Can they be construed as the same thing, abstractly yes, but that is to avoid thinking in a way that make the language unique. Sending messages between objects is a powerful concept, and will help you better understand Objective-C and Smalltalk.

Using Io feels a bit like working in JavaScript, the only other prototype language I have any experience with. The concurrency framework is dead simple and provides the reader with a taste of things to come from languages like Scala and Closure. In fact, the actor framework in Io is so simple and impressive it feels like a great environment in which to teach concepts of asynchronous behavior and concurrent development.

Prolog

After Io we get to Prolog, the most frustrating language paradigm for me to grasp in the book. Tate says Prolog is like Rainman. That must make me Tom Cruise.

The logic programming paradigm was at once the most fascinating and frustrating for me to study. At first I was enthralled. A language that I can plug values into and simply query against to get the answer like a super-powered database? Sign me up. I immediately found myself fighting the syntax. It took me some time to grasp the recursive nature of the language as well; no looping structures.

Solving the sudoku problem at the end is the best example of the power of Prolog and languages like it. Reducing a game to a couple of line of syntax, injecting the rules and simply asking questions is a beautiful way to solve many of the problems modern engineers are presented with …if Rainman doesnt drive you nuts along the way.

Scala

With Scala we take a detour back to familiar territory. Scala is the first variant on the java language I’d had the opportunity to use, so when I began the chapter I had some exposure to it. Most of the concepts in this language sunk right in.

Tate says we can think of Scala as Edward Scissorhands. He is the construction of spare parts and a lot of paradigms that already exist. I prefer to think of Scala as MacGuyver; It can do pretty much anything in a pinch. Scala was a comfortable environment to take a break in for a while. It sports functional programming paradigms like higher-order functions, while retaining many imperative concepts held over from C-based languages. Its also completely interoperable with Java, so all of those libraries we’ve grown attached to like joda and jsyn can be reused in the same lexical environment.

For concurrency Scala provides an actor system, much like Io. Tate clearly planned the book to address concurrency in a methodical way, first by introducing simple examples with Io, then advancing to Scala before diving headlong into the deep waters of Erlang and Clojure.

Erlang

Things get uncomfortable again as Tate introduces erlang. From the get go Erlang baffled me, and when it was revealed that it was modeled after Prolog, I understood why. The only language compared to an antagonist in a movie, Tate describes Erlang as Agent Smith from the Matrix. Tate says that this is due to the self-replicating capabilities of Agent Smith in relation to the fail-safes built into Erlang, allowing the user to build highly fault tolerant concurrent systems that “just won’t die”. I think it’s because Erlang is evil.

Erlang is clearly very powerful, so as with Prolog I struggled through the examples and problem sets. I still don’t feel like I fully grasp how to do anything useful with it. Of the languages in the book, I feel like this is the one I need to spend the most time with to really understand.

Clojure

Next we get a lisp. Clojure, a language fully compatible with the jvm is a lisp not at all unlike Scheme, minus a few parentheses. For Tate this language is like Yoda, no doubt due to the “reverse” notation of the arguments and the “inside-outness” of the code construction, at least compared to C.

Surprisingly, I took right to it. Of the new lexical environments this felt the most comfortable, but then, I’ve played with emacs a bit. The concurrency framework is not at all unlike scala with some notable additions. The concept of STM was awkward at first, but after fiddling with it for a while I was comfortable producing usable code.

The interoperability with Java is another major benefit to using Clojure. For Dijkstra’s Sleeping Barber problem, rather than struggle through writing a queue from scratch, I just borrowed the existing Java LinkedBlockingQueue, cranking up one actor to poll it, and another to deliver to it:

In just under 1000 parentheses the barbershop problem was solved. The wrapper around it is unnecessary, but then the whole solution is a little bit wordy for Clojure.

Haskell

Impressed as I was with Clojure, it was time to study the final language in the book, Haskell. I originally selected the book based on the inclusion of Haskell. For some time now I’ve wanted to take a crack at this pure functional, almost entirely mathematical language.

Compared with the ever logical Spock, I’m still dazzled by Haskell. Having read the chapter and gone through the exercises, I feel like I’ve only scratched the surface of what it can do. It’s unofficial tag is that it makes hard things easy, and easy things hard. That ain’t no lie. Try reading a file with it. Do something simple, like open a socket. I feels like pulling teeth. Now go write a Fibonacci solver. Chances are you’ll have cooked up something that can’t be done as succinctly or quickly as Haskell can do it. Of all the languages in the book, this is the one I intend to dig the deepest with.

Wrap-up

When learning anything, I generally feel like a breadth-first overview is the best method of getting started. When learning new ways to think, this breadth-first search seems even more important. Get all your options on the table, see what’s been discovered before deciding how to tackle the problem. Selecting a strategy to go deeper with is a decision that can always be deferred until you know what your strategies are (Of course, you can only defer for so long before you just need to make a damned decision based on what you already know).

The real value of Seven Languages is that it provides this kind of breadth-first overview. You may know Java or C already. That’s great. What else is out there? What can a language like Io make easy? Clojure will help you understand lisp. Haskell will help you understand any functional and improve your understanding of modern math. Scala will let you build damn near anything.

Tate’s progression makes a lot of sense as well. If I was creating a curriculum to prepare a developer for the real world, I would start a youngster out with something like Ruby. This is an obvious ramp into Java and C. Then I might introduce something like Io to explain prototype languages and concurrency in a simple way. This is an step towards a better understanding of both Javascript and Objective-C. Then I might start them on Scala. It’s maximum exposure to as many concepts as possible. From scala, Learning a functional language is made easier if the programmer has been using Scala’s higher-order stuff like fold and map, and is used to immutable variables. Tate’s text provides a decent way to do all of this, introducing a young developer not only to the syntaxes but to paradigms that are broad enough provide insight to damn near any language out there.

If you’re interested in seeing my solutions to the exercises and problem sets, you can find them here. I learned a lot along the way, and I think I achieved the goal I had set out to achieve: Learning new ways to think.

Atlas Shrugged Part 1: From Tome to Train Wreck

19thomas-600Ever try to read the Lord of The Rings Trilogy out loud? If you have, you probably noticed that you sound like a big damn dork. When Ian McKellan renders a line like “A wizard arrives precisely when he means to”, you believe he’s a wizard; you on the other hand sound like thirteen year old at a wicked awesome D&D game. Imagine filming, editing, and adding special effects to your wimpy voice and turning it into box office magic. Sound daunting? For you perhaps, but sometimes the planets of talent, technical virtuosity and, ahem, money align and an epic book survives the translation from tome to theater.

It is unfortunate that these conditions were not present on the set of Atlas Shrugged: Part 1.

The film makes the mistake of flashing a calendar day across the screen in its opening moments, instantly voiding any sense of the timelessness Rand’s novel suggests and giving the viewer an excuse to discard the film as soured milk in a scant 5 years. What follows is a montage as trite as tearing off calendar sheets to show the passage of time. Fake newsreel, snapshots of headlines, talking heads and political commentators create the atmosphere of a failing nation. Despite the overused mechanism to convey the exposition, one does get a sense that this is happening now. This is at least as Rand had intended, but the use of a fixed date and the “modernization” of the story is not only unnecessary, it detracts from the work as a piece of political-philosophical symbolism.

The rest of the film reads like a 12-part made for TV mini-series squeezed in a vice to fit the film format without any of the polish necessary to justify the $11 dollar ticket expense. Hints of amateurism, like the black-and-white “missing” freeze frames, would be easier to stomach if they were sandwiched between commercial breaks. When more than a ten spot is on the line I expect better than the stiff delivery of even the most throwaway lines, and I certainly expect to experience the message of the original work without the heavy-handed exposition getting in the way.

Ok I’ll be fair, even the book is heavy-handed. A book can get away with a lot more than a film, but if the producers were trying to avoid the beat-you-over-the-head-with-it approach entirely why rely on the least important pieces of dialogue, adding over the top verbal exposition when Rand supplied the hammer right in the book? Missing are monologues like the “Money Speech” that D’Anconia delivers at Reardon’s anniversary, perhaps one of the most important in the  book. The characters in the book are archetypes; strip away their names and you’re still left with symbols, different aspects of political and economic philosophy embodied in a voice. The various monologues can read like essays at times, but their absence makes the actors in the film feel less like archetypes and more like shallow characters. These monologues carry the message of the novel in a unique way, and even though the actors selected to play the parts may lack the talent to give them real weight it’s unfair to the original work to leave them out entirely.

There were a few redeeming characters. Patrick Fischler’s portrayal of snake-in-the-grass Paul Larkin is believable, and Ellis Wyatt played by Graham Beckel was a likeable by-his-bootstraps CEO. It is unfortunate however that the leads couldn’t make up the same ground with their characterizations. Reardon feels weak. James Taggart feels less like the big fake softy he is in the book and more like a a child with a toy. D’Anconia has yet to blossom into the character he is supposed to be, but even his false act as a playboy reads like Benicio Del Toro on a bender with Johnny Depp. Even in playboy mode D’Anconia still had class in the novel; that dapper demeanor is gone in the film.

All in all I’m left severely disappointed with the film rendition of Atlas Shrugged, even if there are still two parts left. Paul Johansson might have been able to make this work as a mini-series, and indeed the budget may have leant itself better to that medium. As a film it feels rushed. The attempt to use stiff exposition in place of the essay-like monologues feels limp. The cinematography is unmemorable save for the various poor decisions made by the men behind the camera (like the “micro-zoom” moment at Reardon’s Anniversary party). There are casting errors; I hear that Charlize Theron or Angelina Jolie were considered for the roles of Dagny Taggart. Brad Pitt could easily have swaggered his way into the character of Reardon had the budget allowed for it.

But the budget didn’t allow for it.

In the face of low funding my suggestion to Johansson would have been to cut his losses and give a TV audience a well-paced rendition of Rand’s treatise, rather than make a film that does neither book nor audience justice.

Article first published as Movie Review: Atlas Shrugged: Part 1 – From Tome to Train Wreck on Blogcritics.