dinosaurs eat everybody

for all your Dave Schwantes related needs

Making Moola

If one listens to enough Ruby related blogs and talks and podcasts they are likely to run in to Crystal. Have you every thought, "I like Ruby, but I wish is were fast and compiled on LLVM"? Well, that's Crystal. It's a fast language with Ruby inspired syntax. If the performance benchmarks shown on the Crystal site are even remotely accurate, it's worth checking out.

I enjoy writing Ruby and I like things that are fast, so I've been trying it out. While it is still pre-1.0 it's been pretty nice to work with. And since it's a new language, there's an opportunity to write new libraries (known as "Shards" in Crystal).

My first Crystal Shard has been a money handling library, inspired by Ruby Money, that I call Moola. It gives uses the ability to define Money objects and do basic operations and conversions with them. Here are a few examples:

money = Moola.new(42_00) # creates a new Moola::Money object
money.format # "$42.00"
money.cents  # 4200
money.zero?  # false
money.to_f # 42.0

Moola::Money.new(5_00) == Moola::Money.new(5_00) # true
Moola::Money.new(5_00, "USD") == Moola::Money.new(5_00, "EUR") # false

Moola::Exchange.add_conversion(Moola::Currency.find("usd"), Moola::Currency.find("cad"), 1.3)
money = Moola.new(1_00, "USD")
money.convert_to(Moola::Currency.find("cad")) # Moola::Money(1_30, "cad")

I don't have much to say other than it seems like a great language if you like writing Ruby. For a newer language it's been a joy to work with and it's fun to build some basic libraries.

If you every find yourself writing Ruby and dealing with money, I encourage you to try out Moola.

Inktober 2016

So once again I participated in Inktober this year, trying to do a drawing every day of October based on the provided prompts. I only got 12 days in this year but I was pretty happy with the results. I felt like they turned out better than last year's drawings and I guess that's always the goal.

I think my favorites from this group are the lonely space man, the tired dad, and the girl with her lizard.

The prompts for the drawings I did (in order) are: hungry, sad, hidden, jump, worried, scared, wet, escape, squeeze, tired, box, and friend.

I also posted these to Mount Saint Awesome, just so I don't completely forget that I have a comic.

Don't Screw It Up

So, if you haven't heard yet, Eileen and I are having a kid!

To prepare for this life-changing event we've been trying to read up on lots of things as well as asking lots of people for advice on both pregnancy and parenthood. We knew, even before we got pregnant, that we'd wanted to digest this info and experience and share it with other people and we wanted to do that with a podcast. We actually talked a bit about doing a podcast back when we were both in improv and considered the possibility that we might be hilarious.

Whether or not we're all that clever, we did manage to start a podcast! It's called Don't Screw It Up and as of this blog post we've done 5 episodes. In each episode talk about different topic such as telling other people that you're pregnant or traveling with a belly full of baby, trying to actually site some legitimate research while still being entertaining. We're trying to take a less reverent, you-are-gia-mother-earth, everything is beautiful and magical attitude towards the whole processes of procreation which is in contrast to a lot of the blogs and other podcasts we've come across geared at future baby owners.

This is my first foray into recording a podcast and it's been a lot of fun to do the audio side of things. We're just recording with my Shure 57 and the MXL condenser mic with some pop screens. Once we start having remote guests, I think I'm going to need to work with this software I found called Looback that lets you create pass audio from one application (like Skype) to another (like Logic Pro X).

By the way, if you want to be a guest, let me know!

Doing this podcast has been really fun so far and it's cool to work with a new medium like this.

Check us out though all of these avenues:

Don't Screw It Up website




One Year of Input Coffee

On May 25th of last year I started keeping track of my focused practice time for a few things I wanted to get better at. As mentioned in this post, I was motivated by reading Make It Stick and the idea that getting better at something didn't always feel like progress simply because it should be hard.

I built a really basic time tracking tool, which turned out to be a really strong motivator. Seeing a graph of my practice time each week made me want to keep focused. Here's the graph from the past year:

I didn't do as much as I had hoped but I feel like I made some decent progress. My final numbers were:

guitar: 81 hours (128 posts)

art: 21 hours (39 posts)

chess: 5 hours (10 posts)

vocals: 1 hour (2 posts)

Obviously I wasn't that focused on vocals and I kind of gave up on chess pretty quickly, but I made a decent showing for guitar work.

I didn't let myself count noodling while watching TV or going to band practice. This had to be focused practice where I was really trying to learn something new or fix something sloppy or work on a skill I was lacking. I would have liked to hit 100 hours but 81 is still a lot more than I've put in any year prior.

Art was a mild success. I did count my time doing Inktober because a lot of that was drawing novel subjects, but a lot of the other work was fundamental practice and sketchbook work. I also spent some time ramping up with drawing digitally, which I now use a lot for Look At Me I'm a Racecar comics.

This Input Coffee project has really been helpful in getting me to work on skills that I actually care about. Over the next year I'd like to hit 100 hours of guitar and branch out a bit to some under-practiced skills I'd like to have.

New Guitar Pedal

I built something!

Once again I received a Build Your Own Clone pedal kit for Xmas, this year it was the Classic Compressor. I've been playing a lot more guitar these days and I seemed like it would be fun to tighten up my sound a bit, so a compressor pedal seemed like a fun project.

The build itself was pretty simple and straightforward. Soldier all the pieces together. Don't burn myself. Don't burn anything important. I'm actually getting pretty decent at soldiering, if I do say so myself! What I wanted to do differently with this build was the visual look of the pedal.

The enclosure that comes with the kit is... utilitarian, to say the least. This time I wanted to not only paint the enclosure, but also design and print my own decals for the pedal. The painting was pretty simple, I just sanded down the enclosure, put down a coat of primer, and then used several coats of spray paint.

To do the design decals I ended up drawing some stuff using my Wacom tablet and then doing a layout in Photoshop and finally printing everything onto waterslide decals. For the design I ended up just drawing a simple coffee mug with the word "compresso" on it because it sort of sounds like espresso. Meh... it kinda works! The waterslide decals were pretty cool, you just print onto them, spray them with a clear sealant, wet them and then slide them onto the surface. Once it dried, I sprayed the whole thing with a few layers of clear sealant so the decal would chip or peal off as I stomped on it.

Last, but not least, I wasn't quite satisfied with the nobs that came with the kit. I wanted something a bit more retro looking so I bought some oven nob style nobs on Amazon to use. They didn't quite fit the pots on the pedal so I had to Dremel them out a bit before I could put them on the pedal. It's always fun to have an excuse to play with a Dremel.

The end result looks pretty cool (and sounds pretty good too!) I actually took apart the first pedal I built, an overdrive, with the intention of painting and adding a decal to it as well. The stuff I learned doing this pedal will be very helpful.

Here she is:

Inktober 2015

So this year I participated in Inktober, which is basically a month long event where artist attempt to produce an inked drawing every day in October. Obviously I didn't have the time/focus to do all 31 days, but I did manage to produce 16 drawings and post them to Instagram.

As I've been sadly neglecting Mount Saint Awesome these days, it was really nice to get back to drawing regularly. Doing this project really helped me explore other styles and techniques and also draw things that I might not have drawn for comics (like armadillos and astronauts). It was also good to work in just black and white. I've struggled with shading and shadows in black and white drawings in the past and it really helped to be constrained by this medium. There were a few drawings I wasn't very happy with, like the Gameboy, but all in all I was pleased with most of the work.

Hopefully this rejuvenates my art as I'd really like to get back to making comics regularly.

Here are all 16 Inktober drawings I did:

Note: I've also posted these as one big image to Mount Saint Awesome.

Darwinning Updates

One of the first posts I wrote on the new version of this blog was about my genetic algorithm Ruby gem, Darwinning. I actually started building the library back in December of 2012 when I was first learning Ruby and it's gone through several updates and periods of inactivity. Usually I'll just add some tests or make a small update when I have some free time. It's been a pretty casual project. I just didn't think that there was that much of a need for a Ruby GA library, I just thought it would be fun to make.

Recently I've seen a steady stream of people starring and forking the Darwinning repo on Github and I've received some really thoughtful and helpful pull requests from people, so I wanted to give the library a bit more attention. I had some free time this weekend and used it to finish off a major feature that I had been working on and finally published the 0.1.0 version of the gem!

The major feature I added was the ability to use Darwinning in existing Ruby models via include. This lets you utilize the library in projects that might not be specifically about genetic algorithms.

Here's my dumb, contrived example:

require 'darwinning'

class Triple
  include Darwinning

    first_number: (0..100),
    second_number: (0..100),
    third_number: (0..100)

  attr_accessor :first_number, :second_number, :third_number

  def fitness
    # Try to get the sum of the 3 digits to add up to 100
    (first_number + second_number + third_number - 100).abs

Then you can use some nice built in methods to generate a population of these objects and evolve them towards a fitness goal:

if Triple.is_evolveable?
  triple_pop = Triple.build_population(0, 10, 100)
  triple_pop.evolve! # evolve until fitness goal is or generations limit is met

  pp "Best member: #{triple_pop.best_member}"

I've been having fun working on this project and it's really cool to see some other people contribute to the project. If you want to play around with the library or have an interest in genetic algorithms just gem install darwinning or check out the Darwinning Github repo. There are always more updates to do, but it felt good to make some progress on this project.

Our Story Recording

Last weekend was my first wedding anniversary. We didn't really have big plans to exchange gifts but I thought it would be a good opportunity to finally record "Our Story", the song I used to propose to Eileen. I had been meaning to do this for a while, partially because I knew if I didn't I'd probably forget how to play it and that would make me a terrible husband.

If you don't want to read all my thoughts on recording the song feel free to just go listen to it now. I'll only be a little offended.

This song was written to be played live, only on acoustic, and has some holds that feel pretty loose so I had to start off by making sure I could actually play it with backing drum track. It took me a few tries to get the feel of it but I think it came together without sounding too rigid.

After recording the acoustic part, I got to have a lot of fun writing all the other things that go on top. I had a lot of fun with the bass and actually mixed some of the low end out of the acoustic to give the bass more room. The piano in the chorus really came together pretty nicely, particularly the hits under "I can't wait to write...". The left hand work there gave it some good body.

As usual, I was tempted to do more electric guitar noodling than I should but some after some editing I was pretty happy with the little theme I had in the verses. The lead part in the choruses ended up acting as more of a harmony that gave the chords an interesting sound at times.

There's a part in the 3rd verse right after the line "together with our furry child" where it sounds like someone just stepped on a piano. That's because the cat just stepped on the piano there. Since the line was actually about him I mixed it down but left it in.

The outro was interesting in this song. It was originally the verse or chorus of an early draft of this song that never really panned out, but I liked the lyrics and it was in the same key as the rest of the song so I really wanted to make it work. Also it was a nice held chord segue into actually popping the question, which was pretty important at the time.

I wanted to be sure this still sounded cohesive with the rest of the song, but still go out big and I think it turned out well. While I could have mixed it a little better, the pick slide into distorted power chords is just a lot of fun. The piano part was just something simple I stumbled on while I was messing around, but I really like what it adds. I ended up doing a lot of editing to decide which instruments should stop when and I'm happy with those choices. There was a lot of value in editing this song a few days after I had done most of the recording.

All in all, I was really happy with how this turned out and Eileen seemed to like it too. It's always fun to record original music and this song was particularly important to me.

Input Coffee (v2)

So back when I was working at Berkeley (and had more free time) I decided to formalize the tracking of some of my skill improvements. These were mainly things like drawing, playing guitar, playing piano, vocals, comptuer science theory, etc. I set up a small WordPress blog called Input Coffee and just made posts for every session in order to keep track of what I had been working on. I liked seeing all the posts every month and having a record of what I was doing, but a blog wasn't the perfect solution. I wanted better ways to add up time per week or month for each type of task.

I decided to start tracking this sort of thing again, partially in response to reading Make It Stick, and I wanted a simple way to track my practice sessions for things like guitar, chess, drawing, and other stuff I'm working on these days.

I started by just creating Google Docs for each session, which worked fine and helped me not avoid doing real practice by spending a bunch of time building a complex system to track my practice. But then I gave in and built a system to track my practice. Like the original WordPress blog, it's called Input Coffee.

This system is pretty simplistic, just a Sinatra app that reads some Markdown files and turns them into CoffeePost objects so I can examine them based on tags, subject, date, and a few other fields. The Markdown files use a format very similar to Jekyll's posts and I just parse out meta data from the little header. Here's an example post:

date: 2015-07-14
subject: guitar
tags: acoustic electric
hours: 1.0

Spent most of this session doing acoustic stuff...

I don't even have this hosted anywhere, I just run a local server when I want to see stats about my practice. Right now I just show total posts/hours (since May 25th, 2015), some breakdowns by subject (guitar, vocals, chess, drawing, etc.), and some numbers for the current and past week

Obviously, I'd like build out some more metrics and it might be fun to make a nicer interface, but for now this works for me and I've avoided overly-over engineering the solution. Being able to track this sort of stuff really helps keep me in good habits.

Divorce and the American South Cover

Eileen was out of town this weekend so, as I typically do in these situations, I took advantage of the time do some recording. As mentioned in previous posts, I've really been into the Aaron West and the Roaring Twenties record so I decided to finally record one of those songs, Divorce and the American South.

Here's a link to the song if you want to listen right away.

This is a pretty faithful cover. I didn't deviate too much from the original version and actually resisted my urge to add some lead guitar parts to the song. In place of the slide guitar, prominently featured in the original song, I focused more on the organ part to do something tonally interesting against the acoustic guitar. The organ also just fills the song out nicely without adding a bass part.

I also recorded some saxophone for the first time since recording the last Captain Supreme song, which was pretty fun.

This recording session gave me the chance to really work with with my new vocal mic (MLX 2003A) and my new monitors (JBL LSR305s). I ended up using the MLX for both vocals and the acoustic guitar and just used my SM57 for the sax. It was really nice to be able actually hear things in the mix with the new monitors. Hopefully the end result is better for that clarity.

As always, vocals were a challenge. They're not perfect but I feel like I'm making progress, which is always nice.