Wrassling with Static Site Generators

I stumbled across the video above late last night — it’s a talk from Infinite Ammo‘s Alec Holowka. The whole talk is worth listening to, however there’s a relevant bit I want to share with you below:

“You can actually solve a simpler problem that gets you the same result.

So whenever somebody comes to me with a programming problem, they’re like, “I can’t figure out how to make this function do this really weird thing!” I’m always like, “What are you actually trying to do? What’s your objective?” And usually there’s a simpler way to do that.
[...]
Whenever people encounter a structure that’s been put in place, they’re less willing to do their own thing.”

I bring this up because I wanted to set up my personal website heymrbass.com to run on GitHub Pages. We used it last week to host our game jam game Baby Tanks and it was really simple — just push a copy of your static site to the gh-pages branch. Voilà! So I installed my favorite static site generator Middleman and got to work.

But it didn’t work. GitHub may look for the gh-pages branch on most project repos, but mine was a special user repo. Thus, it only listened to the master branch. End of story.

After that I didn’t put two and two together and figure out that I could just deploy my static site on the master branch instead. No, I thought it would be best to listen to GitHub and use their own static site generator, Jekyll, even though it’s very blog centric and we haven’t been the best of friends in the past. After switching, the site design started to come along and I was ready to deploy the site.

But it wouldn’t deploy correctly.

Jekyll supports Plugins — pieces of Ruby code that run at compilation time to help you add styles or format your text. Of course, there are no restrictions on the code — and that’s why GitHub doesn’t run plugins before it deploys your site. So currently my site looks like someone ripped the CSS right out of it.

At this point in the development process I shouted vehemently into the air, making it known in my empty house how much I wanted to strangle this piece of software. When things died down a bit, I came to my senses and started looking for alternate solutions. I found several sites pointing towards the deployment branch strategy, which we now know retrospectively was the easiest, most straightforward solution.

The point I’m trying to make is to keep an eye on what your objective is. It’s easy to assemble a bunch of “rules” piecemeal and then wind up somewhere completely different than where you intended to be. Believe me, my gut reaction right now is, “Tear down ALL the things!” and replace it with Middleman. But that’s not the right approach, since I’ve already finished my design in Jekyll, it’s just not deployed correctly. What I need to do now is write some Rake tasks and deploy the site on master.

Eventually I’ll probably switch to Middleman, but it’s not important to do that now. My goal was to get a static site up, after all. So that’s what I’m going to do.

Running a Game Jam

Okay, so I didn’t run a huge game jam. It was only four people, after all. But we did work on creating a game for 12+ hours straight, and that was pretty exciting. You can read all about our creation — BABY TANKS — over at the Casual Jams Tumblr.

This jam was also cool for me specifically because I got to do art again. The last time I was the art guy was for Fork It! and I remember our friend Kevin coming in halfway through the jam to take over art duties. Kevin is a excellent artist and great to work with — he did the art for <it's a metaphor for death> — so if he had had him working on the game from the start, it would’ve been perfect! But we were low on time and I had trouble communicating my vision for the game, so ultimately it didn’t work out. I think we ran into a lot of issues in those early days due to communication and this was no exception, it being our first game jam and all.

Art for Baby Tanks was mostly silly — we chose the game topic through a random game generator. I used Paletton to pick my color scheme, and then went to town in Pixen to get the pixel art. To blow it up to the appropriate size, I then copied it into OmniGraffle and exported it from there. It was a very convoluted process that I don’t want to repeat, so hopefully I can look into Phaser scaling to get the size I need.

For the background I originally did a sketch in Sketchbook, and then used that as a basis for the pixel art. I definitely got better at using my Wacom tablet and using layers to work on images. Eventually I’ll have to get my hands on Photoshop if I want to take myself seriously, but I think this was a good start.

Oh, and my coding abilities were useful once again. :) I helped add sounds and art directly into the game, so the devs only had to tweak these once they made it into the game. I also figured out how to get the game running on GitHub Pages… only after spending a few hours trying to run it on Heroku. -_- Not my favorite moment of the jam, but a good lesson in deploying Phaser games.

Overall, I’d say the jam was a success. I like these “casual” jams — 12 hour game-making sessions between friends. The environment is really stress-free and it’s like we’re getting together for any other “normal” social activity. I’m hoping to get more friends involved so I can spread the joy of game-making. ^_^

DONE.

I just submitted my grad school application. Glad THAT’S out of the way.

Casual Jam #1 is later today! So I should get some sleep. I didn’t get site up for it, but if today’s jam goes well then there WILL be a site up, I promise you that. And probably a follow-up blog post too because I like those types of things.

But yeah, sleep. I’m going to sleep really well tonight. (:

Also, here is some Legend of Zelda for being awesome.

Applying to Grad School

I asked a friend to give me some feedback on my personal statement because this thing is STRESSING ME OUT and thankfully he obliged, seeing as he is a good friend. One of the points he brought up was that I mentioned volunteering for 20SB. That’s a thing I spend my time doing, so I thought I’d mention it! Nothing wrong there.

But then he went beyond that and pointed out, “This implies you blog. Are you okay with them seeing your essays?”

At this point I panicked because I didn’t particularly think about that. I mean yes, I know anyone can figure out how to use Google and find this blog, and read all the wonderful and not-so-wonderful things I’ve written over the last nine-ish years. That’s one of the consequences of having a blog and I am well aware.

I think the panic stemmed from writing this application in general, as if “getting into grad school” is something my employability or success as a game maker is hinging on. It’s not, and I know that. But often I get caught up in others feelings. Does that make sense? I can talk to friends and family who might not understand what I’m trying to do, internalize their fears, and then become a deer in headlights until I shake it off.

Let’s look at another example to try and understand this. It’s kind of like how I “forgot how to cook” after my dad passed away. In college I learned how to cook because, hey, you have to do that when you move out of the dorms because otherwise you will die of hunger. Then when I moved back home, I suddenly didn’t know how to prepare a meal anymore. Just looking at that example, I notice some psychological factors:

  • overanalyzing basic tasks
  • not wanting to impose on others who use the same kitchen
  • not having easy access to ingredients because I sold my car
  • Mom cooks/I made more money than I need so I don’t need to cook

You can also couple this with the running joke of “Dan doesn’t know how to take care of himself!” So I’ve never forced myself out of this dumb psychological loop that’s trapped me for so long. I’m aware of it, but it’s hard to shake the habit unless I plan out how to counter each of those bullet points. Similarly for my application, my best weapon is planning.

Planning falls through when you, uh, can’t execute your plan. ;) So with the grad school app, I wanted it done weeks ago. And the psychological factors for that are thus:

  • failed a class in undergraduate
  • wasn’t accepted into graduate school the first time
  • quit my job because I felt like it was driving me crazy
  • My dad passing away is supposed to affect my grad school narrative?

I have to constantly remind myself that I failed a class by overextending myself, that I applied to grad school four years ago because I simply felt like it. The job I had? It was crazy, but that doesn’t mesh with the “don’t burn bridges” narrative I try to keep in my back pocket. And yes, my dad’s passing has changed my life forever, but it’s hard to succinctly explain such a lasting impact without giving the backstory for our relationship and my previous outlook on life.

I’m going to end this post and return to finishing my application. In the end, I do not care if admissions sees what’s written in this blog, even though I know there is no way they will read all ~1500 posts to get even a glimpse of the big picture. That’s not their job. Their job is to figure out if I would be a good fit for their program, and long-term a good ambassador for their school.

And I know I’m being silly about some of these basic tasks. No worries, I’m getting better at catching them. :)

Narratives

I almost uninstalled the WordPress app today, during one of my anxious fits to simplify my life. I’m glad I didn’t, since I now have some downtime waiting for the train home.

I just finished watching the Roger Ebert documentary Life Itself. It was very well made and gave me a glimpse into one of the most iconic figures in Champaign-Urbana, Chicago, and of course film.

I will recommend it, however I don’t think it’s worth the rest of this post to explain why. Instead, I’ll write about one of the most important components of Ebert’s review: a conversation between the critic and the viewer. Or much more appropriately, between the writer and the reader.

I’ve driven myself a bit crazy trying to get my personal statement right for my grad school application. It’s been through numerous rewrites, and will be finished much later than I intended it to be. I think part of that reason is that I’ve attached myself to too many narratives, and it’s much too difficult to keep them all straight in my head.

I want to tell a lot of different stories, which is part of the reason I’m getting into gaming. But I need to be much more critical of myself. That doesn’t mean bashing myself over the head for every small mishap, no — it means having an honest conversation about how I can improve, about what I got right. For this blog, I think that my posts have been very sloppy, and writing this post is a step in the right direction.

On the road tomorrow!

In an ideal world, I would’ve put out a vlog about all of this and you would be hearing my voice right now. But instead you get to imagine my voice while reading. :P

Tomorrow TJ and I head off to MGDS to cram our heads with game dev knowledge and meet lots of people. I even wrote about it over on the Cerulean Labs Tumblr! This event was the only thing I was “sure” of when I quit my job back in March, so it’s always nice to see a bit of planning get executed.

Also of note, today I contributed to the 20SB blog — Twenty Twenty — with a piece on networking anxiety. So I’m also very excited to put my own advice to good use!

That aside, I didn’t really have time today to work on my grad school application… But I want to finish it before I leave! So I might be a sleep-deprived mess tomorrow morning, we’ll see. That’s why they invented coffee, right?

I’m in a cleaning mood

I’ve been bitten by the minimalism bug ever since having two roommates sell off most of their stuff and live a life with fewer moving parts. A few weeks ago I set out to do Inbox Zero on my personal email account, and while I haven’t quite gotten there yet, I’m thousands of messages cleaner than I used to be.

Recently I’ve consolidated banks (yes, I was a member of more than one bank) and started the arduous task of organizing my system on Mint. Why they have 1357891375 default categories is beyond me, but they do, and like a good consumer I put up with it. The technology Mint supplies didn’t really make my life all that easier… it just let me functionally survive the other technology available to my generation.

I’ve also been in the mood to ax comments on this site. I do this dance every now and then because the comment system just sits there and no one uses it. It made more sense back in the day circa the LiveJournal / Xanga era, but now we have Facebook and Twitter and Tumblr and YouTube…. There are other ways to communicate with my friends.

I’m currently staying up way too late for my own good, watching with glee as the Raspberry Pi I own is happily running Arch Linux and installing packages. It’s simple and I love it. I’m not sure how much I can get away with on a 2 GB SD card. I’m very close to ordering a larger one but the lack of constant income is a daily reminder that keeps me frugal.

The biggest hurdle for me right now is figuring out how to overcome complexities inherent to systems I want to dive into. A good example is programming and learning how computers work: my education so far was an intro course for my minor, a Java programming course, and three years stumbling around as a front-end developer. I learned a lot this way, yes, but I am fully aware of the holes in my knowledge, and that bothers me.

Thinking back on that, that’s okay. That’s why I’m applying to grad school.

I’m going to end this here. I think I found a compelling, focused thesis for my grad school application personal statement, and I want to get it down while it’s still fresh.

Right Direction

When I quit my job I made it a point to remove a lot of unnecessary spending from my life. So I went on quite the subscription canceling spree: no more Dropbox, no more Rdio. My Kickstarter habit was severely curbed. At first it was really really scary that I didn’t have an income. But over time I remembered what it was like in college, when I didn’t have money to spend and didn’t have things I wanted to spend money on. I was pretty content with what I had.

My dad would’ve turned 58 today. I’ve been thinking about how I haven’t been very content since he passed away. The months that followed were very confusing and mostly a blur of me trying to stay busy. Once I got a job, I spent all of my energy on what the job was and wasn’t. If I wasn’t actively trying to improve my programming skills or socialize with my co-workers, I was digging into better software building methodologies or trying to figure out the Next Big Thing for myself. As a result, I was never satisfied. And money, well… Money found a way to be spent on material items that would make me feel better for even just a little bit. I think money acts that way for a lot of people.

I’m feeling so much better now. I’m no longer scared of taking risks in meeting new people, changing careers, or even telling people I’m changing careers! I’m okay with not being certain about where I’m heading, even if others don’t seem okay with not being certain about where I’m heading. The money thing doesn’t bother me unless it’s really late and I’m really tired, but even that feeling is starting to fade.

The sleepless nights that still occur from time to time are due to buzzing ideas rather than haunting nightmares. And when those nightmares still do occur… I understand where they come from, and I tell myself it will be okay.

Because it will. There are a lot of uncertainties in this life, but trading in the risk of happiness for the safety of the status quo isn’t the way I want to live. I know I can get more mileage out of this life. And I’m finally well enough to start heading in the right direction.

Differentiating Interests From Passions

I know it’s late, so I’ll make this quick for my sake. I wanted to write a bit about differentiating between what’s interesting and what I’m passionate about.

I used to think the two were the same thing. They’re definitely related, but knowing the difference between the two can be tough at first. I was using language like, “I’m interested in this, this and this; it’s because I’m passionate about all of them!”

I’m not passionate about all of them, trust me. Maybe individually, but that isn’t ever possible IRL. When I considered projects to work on, I would always consider the ideal: working on them with a great team, with nothing else getting in my way to sideline me.

As a result, I’ve really punished myself for taking on too many interests. And I did that because having too few interests doesn’t seem to fire me up the same way. And you know why? Of course you do: those interests are not my passions.

My passions are the one or two things that I want to prioritize, that I can’t see myself without. As I’ve been working towards Inbox Zero, I’ve noticed emails I’ve written to myself about ideas I’ve had. One of the ways I got myself into a non-Inbox Zero nightmare was by leaving these unread, as if I could work on them bit-by-bit until they became the next big thing. Instead, they just sat in my inbox and collected dust, distracting me from my passions.

So now when I see those emails, I ask myself, “Would it be the end of the world if I didn’t achieve X?” In most cases, it won’t be, and I’ll be happy to archive it. This same thing applies to mailing lists I’m on, articles friends forward me, social networks I’ve signed up for, and even ideas that buzz around my brain when I’m trying to get some sleep.

I’m glad I’m getting better at differentiating between the two, at saying “No!” to interesting projects. I want to complete my grad school application before I go to MGDS, maybe even before my sister graduates college. I think I might be able to now that I’ve got the focus required to write a personal statement I believe in.

[bloggin' it up since 2005]