Zen and the Art of Codercycle Maintenance Part 2: Eclectic Boogaloo

Happy Hacktoberfest everybody!*

*Full disclosure: I meant to publish this in October, but I got really into one of my projects, and I also took time off to celebrate my birthday and my first lap around Saturn. Cut me some slack, Jack!

October was a significant month for me, as I boldly ventured where few junior developers dare to go: into the world of open-source contributions. 👻👻👻


Believe it or not, I actually quite enjoyed myself! Hacktoberfest is a great way to begin one’s foray into the world of open-source contributions. There were plenty of issues labeled “great for first timers,” or “first timers only,” which generally had to do with some updates to the Readme files.

Easy peasy! Not to mention I got a free t-shirt out of the deal!

More than anything, I became familiar with the process of open-source work, and feel 1000% more prepared to take on more complex issues.

For instance, I now know where to look for open source repositories, and that I should begin with reading a repository’s contributing guidelines. I know where I can ask questions (hint: the “issues” tab is a great place to start), and the importance of using good git workflow when submitting your PR.

I saw a fair amount of repository owners asking for open-source contributors to write tests. Upon further review, such issues were out of my league at the moment, but it definitely speaks to the importance of having tests to prove your code!

Which brings me to my next point:

I’ve spent a good chunk of my time these past few weeks hammering down on RSpec. There is a super great course from Lynda.com on RSpec taught by Kevin Skoglund. It has been a great resource for getting down to brass tacks with RSpec, with the end goal to write out tests for my personal projects.

Adventures in Phaser-land

Back during the halcyon days of Dev Bootcamp, my final project team took a pilgrimage to the PubNub offices in San Francisco with the hopes of gathering some nuggets of wisdom in building our Oregon Trail clone.

The folks at PubNub were super welcoming and encouraging, and suggested using the Phaser gaming engine for the interactive parts of our game.

Long story short, we ended up ditching Phaser, as a slew of compatibility issues and errors forced us to cut our losses and build our game using Rails. It was a tough call to make and we lost a lot of productivity, but we succeeded in meeting our deadline and deploying a successful game.

I recently went back to play around with the PubNub API and Phaser, following along with a great tutorial on incorporating both things into a rad multiplayer Ninja Platformer game.

It was a cool experience and I learned a lot, even though all the code I used was cut and pasted from the demo. In spite of my best hopes that I could get a handle on both the PubNub API and Phaser, a multiplayer game of my own seemed to be biting off more than I could chew… And I’m never one to back down from a challenge!

It was not all in vain, however, and I would encourage any up-and-coming developers to mess around with this code and API like I did. Here are some takeaways from that experiment:

  1. I got exposure to the power of JavaScript frameworks. The documentation for Phaser is relatively easy to navigate and appears to have billions and billions of possibilities. It was definitely overwhelming, and I knew it would involve a better understanding of JavaScript in general for me to really knock one out of the park.
  2. I got to read well-written and professional JavaScript code, and have it explained. It’s DRY, it’s indented, it’s nothing a JavaScript novice can’t decipher, and you get to peek into the bones of a computer game! It’s a win on all fronts! I remember hearing that jazz legend Charles Mingus used to read scores of classical music compositions for fun, and could hear the music in his head. For a minute there I felt like a coding legend reading hundreds of lines of JavaScript for fun… (just in case you were wondering how I spend my Friday nights)

Here is a more basic Phaser tutorial I also played with. You learn how to set up your single-screen platformer game and have your little avatar (they’re called sprites, and you can build your own, too) go around collecting stars. It’s enough to get you started and enough to where you can experiment with the features of Phaser. I made my dude able to jump super high, and put some weird-looking sprites around the canvas, among other things.

Although I didn’t realize my dream (yet) of building a game, I feel much less daunted, and in fact more energized when it comes to diving into uncharted territory.

Stay tuned for more articles! My next post ought to be more timely, and will detail my adventures into the super glamorous world of unit testing and hacking my way through Linux.

All the best!