How it's Made - Tales of the Ruby Grimoire
Tags: ruby, art
Published: 2019-08-05 03:48:29

---
title: How it's Made - Tales of the Ruby Grimoire
published: true
description: How my illustrated talk, "Tales of the Ruby Grimoire", was created.
tags: ruby, art
cover_image: https://thepracticaldev.s3.amazonaws.com/i/x6kayeynw48ln6bx9hu7.png
series: Tales of the Ruby Grimoire
---

![Title theme of Ruby Grimoire](https://thepracticaldev.s3.amazonaws.com/i/x6kayeynw48ln6bx9hu7.png)

I've done a post like this once in the past for the initial run of "Reducing Enumerable - An Illustrated Adventure", which was also given at Southeast Ruby last year. Feel free to check out ["Creating Reducing Enumerable"](https://medium.com/@baweaver/creating-reducing-enumerable-an-illustrated-adventure-c6adfcc30d5b) if you want to see the difference between then (a year ago) and now, because it's quite stark.

To be fair, and it should be noted, practicing something for a year is going to make a very significant difference. I'm very happy with where my style has come since then, and excited to see where it goes from here.

![Badge Photo](https://thepracticaldev.s3.amazonaws.com/i/p0idd6hrghiqxc0krd3c.jpeg)

The first, and hopefully not last, run of this talk was at the 2019 version of Southeast Ruby.

Like the last post, this one will go into what exactly it takes to make an illustrated talk and all the process that goes into it.

## Public Versions of the Talk

I'll circle back once a video of the talk exists, but I have a ["Storybook Edition"](https://dev.to/baweaver/tales-of-the-ruby-grimoire-part-one-the-grimoire-2712) of the talk which gives a text-only version in the mean time.

## The Core Technical Concept

The ideas from the Ruby Grimoire came from all types of experimentation over the years, and a significant number of articles and gems along with it. I've been making Ruby do things that are unexpected for a number of years now, and it's always been fun to see where it can be pushed.

Some of those things are even integrated into the language now, so amusingly what was once considered magic is now considered cannon. In a way, exploring in all these magics is what makes Ruby what it is, and that's an amazing strength to have.

The ["Storybook Edition"](https://dev.to/baweaver/tales-of-the-ruby-grimoire-part-one-the-grimoire-2712) of the talk contains links and references to all of these, as well as a lot more significant reading on the subjects.

## The Lemurs

![Red and Scarlet talking](https://thepracticaldev.s3.amazonaws.com/i/wnwu7drhilicx3jbq749.png)

You see, I like a certain amount of whimsy and fun. I'm an incredibly not-serious person who believes that learning should be fun and enjoyable, not a set of rote steps and memorizations. The lemurs symbolize this ideal, fun loving and always curious, exploring and seeking.

I'd decided last year with the first lemur talk to try something a bit too ambitious for myself, and it really caught on, so here we are spreading love and joy with cartoon lemurs.

It would not be unfair to say I had some inspiration from [a certain lucky stiff](https://poignant.guide/) and a set of cartoon foxes, seeing as that was my first adventure into Ruby. You may also see those same foxes appear as a nod to a fellow whimsical soul we all dearly miss.

At the same time, the lemurs are something else entirely, and there's a story behind them, one that will be coming very soon to another conference.

## The Story

![Looking at the Grimoire](https://thepracticaldev.s3.amazonaws.com/i/jvpzyqr7f0cesre2z7tm.png)

Now what's an adventure without a good story? I'd always joked about there being a dark magic book filled with all the random things myself and others have made Ruby do, and Grimoire is a right classy word, so "The Ruby Grimoire" became the unofficial name of all of these things.

Taking from that, I'd considered how such a Grimoire would act in the world of the lemurs. Red is a prototypical naive student that wants to learn as much as possible, believing that to be the true way to masterhood. He tends to want to take shortcuts to get there, which ends up with him in predicaments beyond him more times than not.

![Locked Door](https://thepracticaldev.s3.amazonaws.com/i/n81fxzwva4dfh0waugcg.png)

Combining the idea of this hunger for knowledge with his master leaving for a time, it became a story of Red doing something he really shouldn't in going down to forbidden areas of the castle.

Now people may assume master means someone with best interests in mind, a sound and solid teacher, so I made the Dark Lord Crimson as a patch-covered crazed lemur more interested in tinkering than necessarily teaching.

In some ways that's a reflection on myself in making ["the hallway test"](https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-steps-to-better-code/) into a reason to make sure to walk quickly if you know Ruby and happen to walk behind me when I start laughing and looking for someone to show what I've just come up with. It's not unusual to have someone at work say "Oh no, what did you do to the poor language now?"

![Crimson showing grand magics](https://thepracticaldev.s3.amazonaws.com/i/ya01zbuy9720ygowbakt.png)

Take that mad glow and sharp smile, multiply it by 10x (because we love that number as engineers for some reason), and you start to get the Dark Lord Crimson. It should certainly be noted that if you take everything a character called "The Dark Lord Crimson" says as sound advice you may want to reevaluate that trust a bit.

Scarlet in this story exists as a counterpoint to the "mad scientist" archetype that Crimson becomes.

Now in some ways I'm an author, and the best way to set a scene for me is to [start out with a short story](https://gist.github.com/baweaver/1ae6761dbc121a860597acdf053433f8), so I wrote an introduction in exactly that manner. It was changed a bit since then, but it sets a tone and a way to pursue both illustrations and story elements, grounding the talk and establishing a continuity.

## Pre Planning

![Call for Papers acceptance](https://thepracticaldev.s3.amazonaws.com/i/aesdtuh4gnoy1smacf0i.png)

As with last time, the talk started out with outlining and trying to figure out what I wanted to talk about. I chose a few topics from what magics I'd done in the past and realized that each of them were something from another language, and so it became the base for the story that Red was to learn from different languages.

The nice thing, as mentioned above, is that I've done a substantial amount of writing on these subjects including code examples. The tech component was almost written before the first of the talk was even a twinkle in my eye.

Now that I had the idea of languages as a central theme, it was time to get a checklist made.

## Storyboarding and Checklisting

![Excel checklist for tracking](https://thepracticaldev.s3.amazonaws.com/i/wyyrhqt1r52rc3p94fwm.png)

[The checklist I'd made](https://docs.google.com/spreadsheets/d/116F4uW-6e0bMMSKpFqYNtLt6AnvWzqeDl_dO1fzkZYU/edit#gid=0) was effectively a storyboard for the talk, and that chart scared me half to death when it was mostly red, and even more when I couldn't help myself but to add even more to it. I should really know how to stop, but I'm me unfortunately so that wasn't happening.

After a year of drawing lemurs I had a pretty decent idea of how it would all flow together and skipped a few steps from last time in storyboarding in lieu of having that checklist. Training your minds eye and imagination to be able to weave a story from scratch is insanely useful, and it was quite the cost in time and effort to get to that point.

## To the Sketchbooks

![Original sketch of Crimson](https://thepracticaldev.s3.amazonaws.com/i/ady7o9ugyffsjco6u2im.jpeg)

As with last time, I'm a primarily traditional artist used to drawing on paper. That's still the case.

![Pencils and other instruments I use to draw](https://thepracticaldev.s3.amazonaws.com/i/w9s47e8xsbmhzvi1a4nz.jpg)

The materials I typically use for this are:

* A set of three [Rotring 600 mechanical pencils](https://www.rotring.com/us/mechanical-pencils/290-rotring-600-mechanical-pencil-3501178523096.html) (solid, heavy, well balanced. Really love these)
    * Silver, red tape - 0.5mm blue lead
    * Black, no tape - 0.5mm HB lead
    * Silver, green tape - 0.7mm soft blue lead
* [Staedtler NP-Blue pencil](https://www.dickblick.com/products/staedtler-non-photo-pencil/) (for larger areas and rough sketches)
* [Staedtler plastic eraser](https://www.staedtler.com/intl/en/products/pencils-and-accessories/erasers/mars-plastic-526-50-eraser-in-premium-quality-526-50/) (best at picking up blue lead)
* [Canson XL Mixed Media paper](http://en.canson.com/mix-media/canson-xl-mix-media) (I draw too heavily and rip paper)
* [Tombow MONO zero eraser](https://www.tombowusa.com/mono-zero-erasers-silver-round.html) (Great for small detail erasing)

So why the blue lead? It's wax based, doesn't smudge nearly as easily, and when photographed it's a lot easier to distinguish from my digital linework.

Now it should be noted that I practice, a lot:

![Many sketchbooks](https://thepracticaldev.s3.amazonaws.com/i/nddp8vxk6liudeuz6ixx.jpeg)

My art would not have improved without it, and I still need to practice even more from there.

## Digitizing on an iPad

Most of the digital work I do is on a 2017 12.9" iPad Pro with an Apple Pencil.

### Scanning

I use an extremely advanced and precise way of scanning to ensure the most detail possible goes into....

Ok ok, I just take photos using the iPad camera and lower the opacity. It just needs to be "close enough" to where I can trace it out. There's no real trick here, I just try and feel out that it's level and the lighting is good (it's not.)

### Modifications

Since last year I've gotten substantially better at drawing digitally. Now there are a few tricks here that I've used which made not-insignificant differences for a traditional die-hard like I was, but there's no substitute for practice. That said, the modifications I use to a stock iPad are:

* [Matte screen protector](https://www.amazon.com/iCarez-Anti-Glare-Protector-12-9-inch-Compatible/dp/B07GZKL8WH/) (friction, paperlike feel)
* Apple Pencil grip (borrowed from [Staedler 924](http://www.penguincreativesupply.com/staedtler-mars-draft-924-technical-ballpoint-pen-superfine-0-2mm-needle-point/), which, sadly, is no longer manufactured)

Those two made a substantial difference. The screen protector's drag made it feel less like glass and more like paper, and the grip made sure the pencil would quit sliding and giving me hand cramps. This allowed me to make more confident lines and stop having to redraw sections as much.

### Applications

![Illustrator Draw](https://thepracticaldev.s3.amazonaws.com/i/qe13g93vz5ymp51c066w.jpg)

The application I use primarily is [Adobe Illustrator Draw](https://www.adobe.com/products/draw.html). It's simple, to the point, and fairly easy to pick up. It also allows me to export to Illustrator if I need to scale things up and do something like, oh I don't know, get a giant lemur cutout for RubyConf?

![Giant lemur](https://thepracticaldev.s3.amazonaws.com/i/yjpw5tmj1qnn082wsrfx.png)

Now there are a few tricks that make it easier to work with. I start with outlining, and then clone that outlining layer after dropping all the solid black patches in. This makes sure that when I draw in shading sections they don't intersect with the line-art. The art ends up looking substantially cleaner as a result and means I can be a bit lazy with redrawing the outlines afterwards.

![Illustrator Draw - single painting](https://thepracticaldev.s3.amazonaws.com/i/48tx2kupfvwqkq9fpdyh.jpg)

The other trick is to use after-line correction in the settings page. This auto-smooths lines, but means that you need to serate naturally straight lines unless you want them to get rounded out. Stars on Red's robes are especially annoying for things like that.

Usually I use a brush around 10 to 15 depending on the size, and just the standard round. I should probably experiment with others later. Screen and overlay blending modes are some of my favorites for effects.

I do really enjoy the timelapse features as well to show how things work.

### Exporting

I just export to Google Drive so I have a backup of everything and so I can get a hold of it on any computer I have hooked up. My super lazy technique is just exporting with the default name since it'll give the duplicate file names and I type faster on a computer anyways.

Granted I could set up a script to organize these all and drop them into folders, but that'd be more work than would really be beneficial truth be told.

## Presentation

![Keynote editor](https://thepracticaldev.s3.amazonaws.com/i/p5rh7oxzbkkzo6sebuha.png)

I use Keynote and make liberal use of "Magic Move" and "Dissolve" for showing code samples. The other trick is that everything is syntax highlighted by hand based off of concepts rather than by syntax itself. It makes it easier to call out and show similar pieces of code and teach on them.

Any code that's not currently being talked about gets greyed out to focus people in on the current subject.

I typically use a left-color bar with the subject character, and a transparent rectangle around the other section so the code can be properly centered up. Guides will lock to this, thankfully, which makes it much easier to position and resize things.

While I do have speaker notes I very frequently improv half of the material, especially after I've given the talk once or twice. Sometimes I throw in a few jokes about previous talks that day, or audience members that happen to have contributed to a part of the talk in some way.

### The Lemur Voices

Remember, these are storybook style talks, and that means voices. Lemur voices. Each voice is a blend of several different characters from cartoons, movies, and otherwise I feel like truly represent the spirit of the character.

I'm quite lucky to have a very large vocal range from choir and singing, ranging from lower Bass up to right below Alto. It helps when trying to express a wide range of characters as one person, but it can be hard remembering to keep those voices all separate and distinct. That'll be something I have to keep practicing on.

### Easter Eggs

I have several little hints, references, and in some performances literal head nods and smirks to people in the audience who happen to be referenced in the talk somewhere. See if you can find them!

## By the numbers

Last years talk, by the first run, was: 41 illustrations, 137 slides, and took 135 hours to prepare.

It was heavily refined for RubyConf, putting it above 200 hours.

So far this talk is at: 62 illustrations, 156 slides, and took 85 hours to create.

It's no exaggeration to say I've gotten substantially faster. I did ~33%+ more illustrations and took 50 hours less to do it in. Practice not only improves the look, but also the speed in which I could produce things.

I still think there's some room to go even faster, but that will involve cropping out the initial step of using a sketchbook and going 100% digital. That'll take some practice, but I feel it could cut out an additional 10-20 hours if I did.

## The Future of the Lemurs

![Red flying](https://thepracticaldev.s3.amazonaws.com/i/e7nhg2mbm6otoufdm9dc.jpg)

These things are a substantial amount of work and time commitment over a two month period, and as such it's not feasible to do more than 3-4 talks a year with similar quality applied to them. I make sure to pace myself on these as I do not want to risk burnout. I'm always happy to re-give a talk, but a unique and new talk takes some convincing to do.

I don't intend to stop any time soon, and make sure to pace accordingly to keep this up for about 3 to 5 more years, at which time we'll see where the lemurs go from there. Because I detest bad endings to stories, and even more endings that never happen, I already have one planned for Red and made lore to build up to it already. The content already exists, it's just a matter of getting the talks accepted and delivering on the ideas now.

## What's Next?

Keep an eye on my Twitter, [@keystonelemur](https://twitter.com/keystonelemur/), and I'll be posting it there soon.