AJ Dyrbye

Web Developer and Digital Humanist

Tag: best laid plans

Child Themes, or, When Developing From Scratch Drives me Crazy

Over the weekend, I started work on my new spare-time project, developing a new theme for this site.

My current theme is, to put it mildly, driving me batty. It started life as a learner theme I developed in my course work for the SkillCrush WordPress Developer Blueprint. Though I’ve put a lot of work into it so far, there is a great deal left just to get it up to speed for what I actually need from my website. While I’d love to keep working on it, I’ve reached a point of diminishing returns: focusing on fixing it up is holding me back. It’s time to move on.

Thus, in the interest of Actually Getting Stuff Done on this website, I’m now working with a free, responsive preexisting theme that, rather than having to constantly bug-hunt and develop, I can adapt to my needs instead. In addition, I find it fascinating to see how a more established developer constructs a theme.

In my (admittedly still limited) experience, child themes are an entirely different kettle of fish than developing from scratch. I have found that it’s a process of discovering design decisions, and exploring what’s possible by trying out what I’d like to implement, and observing what works and what breaks it. It’s become pretty clear that while I can bend a theme to my own preferences, that theme can only flex so far – any changes I make have a ripple effect on the very character of the theme.

For example, I spent Sunday working on a child for Anders Noren’s Radcliffe only to abandon it. As much as I like the simplicity of the theme, it’s a single-column design. Radcliffe’s design is blog-forward, promoting visual hooks and strong titles to entice readers to click on a post. It’s got a beautiful navigation aesthetic for the top of the site, but it pushes all the widgets down to the bottom. Since I use widgets pretty heavily to welcome visitors, promote my social media presence and provide capsule information about what my interests and strengths are, I can’t afford to promote my blog posts above all else as the design intends.

With that in mind, I decided to try adding a left or right column, to blend the visual appeal of its body column with the sidebar I need to effectively convey who I am and what I’m about. Several hours of tweaking and codex-searching later, I discovered that adapting Radcliffe to accommodate just one sidebar isn’t practical the time I have allotted for this project.

And so, I learn and move on.

It’s hardly wasted time, however. The joy of WordPress is that if I find a theme I like, odds are good that the same designer has another one with a comparable aesthetic that suits better. In this case, I’ve simply selected a new theme with which to begin again: Hemingway, another of Anders Noren’s themes with a similarly clean aesthetic and a pre-established support for a two-column layout. It shouldn’t take more than an evening to transition the changes I made to Radcliffe over to Hemingway, and then I can move on to other things.

Aside from experimenting with sidebars, I’d merely re-implemented my landing page and was beginning on colours, fonts and layout for the rest of the site. I also have custom archive, post, 404 and portfolio pages planned, which should be much faster to implement now that I’m not having to reinvent the wheel. If I haven’t broken anything too badly by this time next week, I’m aiming to take it live.

And then, the real fun finally begins: adding some of that JavaScript functionality I’ve been learning. Speeding up my site’s load times. Designing a logo for myself. In short, doing all the stuff I couldn’t do because I was caught up on how much I still needed to do just on my learner theme.

Thank goodness for WordPress’ theme library, and its child theme support. With the shift in focus they permit, it’s not going to be long at all before I can start looking seriously at from-scratch theme development again. In the mean time, I’ll have a fully functional site I don’t have to cringe at.

Win-win.

The Circuitous Path

It’s been a long, meandering path to where I now stand. Finding a career job has been difficult, and despite my wishes to the contrary, is still a work in progress.

And yet, though the journey has been challenging and the way unclear, I am still glad for the experience I’ve accrued, and the knowledge I’ve gained along the way.

There’s the bookstore job, which I took on while I was finishing up the last few courses of my undergraduate degree. It made it possible for me to build my independence, and introduced me to people I never would have met otherwise. It also taught me how much I value working with my mind, that I thrive best with new challenges on the horizon, and how hard it is, financially and psychologically, to live on near-minimum wage.

There’s the utility company, where I worked in a variety of administrative positions on a term contract basis. It taught me how to function as part of a team, to be flexible and agile, that the planning and time management I relied on so heavily as an undergraduate is one of my greatest assets. I realized in this time how much I enjoy working with computer systems, and that I wanted to know not only the how but also the why of the systems I relied on daily. My time here made it clear to me that, as I was shuffled internally from one position to another according to need and long-term leaves, that I have a deep need to feel I belong and can make a lasting impact, but that the types of opportunities available to a BA in the utility business were not where I could see myself long-term. Here, I had the living wage, but still could not find the job satisfaction I craved.

And so, between the instability of the economy, the looming end of my contract with the utility company, and the limited opportunities available to me, I returned to higher education. In the final years of my undergraduate degree, the university began offering a Masters in Humanities Computing, and that knowledge had stuck in my mind like burr in the intervening years. It taught me that, by building up my computer skills, I could find a niche for my humanities background in the wider world. I learned basic programming, web markup and stylesheets, how servers work, how to integrate and manage a dataset stored in a database. I learned how to figure things out on the fly, to cope with demands that require specialized knowledge without a clear path to it. I learned to be the person mediating between the people with the ideas and the people who could build it. I learned new strategies for managing stress, and just how far a little communication can go to alleviate a hard situation. It reminded me once again how much I value working in a team environment, and showed me that, as amazing as I am in situations requiring self-motivation, I am even better when I have common goals and a support network.

Post-Masters has been challenging.

I’m fortunate, in that I’ve been able to continue with some paid project work I started as a graduate student. I’m even more fortunate that I was able to pick up a part-time web development contract, which spun out into a new web development contract. It’s reinforced how much I enjoy working with websites and building up the infrastructure that makes others’ work possible. It led me to deepen my knowledge of the WordPress CMS, which I am currently working with most.

However, that permanent long-term job has remained elusive.

It’s maddening, sending resume after resume out into the void and getting only a small number of responses in return. It’s heartbreaking to interview, to fall in love with a team and a role, only to have it go to someone else. It’s frustrating to watch the months accrue, to see no stability in sight, to have my capacity for long-term planning limited.

All I need to do is keep going forward. Send out one more resume. Tweak my web portfolio. Take that WordPress course. Go to that networking event. Spend more time with Photoshop and Illustrator. Fight back the voice that says it’s not enough, I’m not enough.

Do my best to make my own luck.

It will happen eventually. Not many people are permitted the smooth path from education to career. I have no regrets for how I got here, no matter how challenging it is not to see where I am going.

The time in between is the hard part, and what is life but a series of in-betweens?

Hackathon, Day 2

As I write this, it is the morning of the second day of the Hackathon. I’ve been able to pursue my idea, but, as these things tend to go, it hasn’t played out at all how I’d planned. I spent last night turning over the first day in my mind, and now I find myself reassessing.

Here were the goals I had set for myself before the Hackathon:

1) Nail down the character, items, NPCs, areas and basic mechanics such as accessing inventory, exploring a room, combat, conversation, levelling up and so forth. Mechanics will be governed by functions and may be simplified further if required.

2) Build a simple, linear game using each major element and mechanic at least once.

3) Build a web interface over the game.

4) Playtest.

5) Expand game, if enough time remains

As of this morning, I’m still on point one, with no realistic way to move past it in the time remaining. The first room is in place, as is the player-character, some plot items and a sample creature. I’ve also roughed out the combat function and the examine item function, and identified where I need to write other functions to ensure those two behave as I need them to.

To be honest, I’m not terribly surprised. The game mechanics I was hoping to implement prove more complex to build than is realistic for the timeframe, even with additional simplifications. I’m thinking I’ll have to go back to the drawing board at the end of this and decide what, specifically, I hope to accomplish, and how I might more realistically carry that out.

I’m not particularly upset about all this. I ended up working with only one other person, Jacqui. Her strength is in project planning and documentation, and she ended up putting together an impressively through document mapping out all the object relationships a game like this needs. It’s given me some serious food for thought. While it would have been nice to have an experienced coder working with me, planning of this kind is so important, and I’m no doubt better off for it. I’m still happy with how much the two of us accomplished, given our respective skill sets.

Today, I’m going to keep plugging away at functions. If I’m really productive, I might be able to start testing one or two. Jacqui, alas, is down with a back injury, so I’m flying solo.

While it’s clear that the task is much bigger than I expected, I’d like to keep going for a bit longer before I decide whether it’s worth continuing this development path. I’ll have to decide once the even wraps up. I want to continue with the idea, and I still think it’s going to be a great way to learn more about how JavaScript works.

Hackathon Preparation

With the Hackathon less than a day away, I’ve been gathering my thoughts for my project. I’ve set the following goals for the weekend:

1) Nail down the character, items, NPCs, areas and basic mechanics such as accessing inventory, exploring a room, combat, conversation, levelling up and so forth. Mechanics will be governed by functions and may be simplified further if required.
2) Build a simple, linear game using each major element and mechanic at least once.
3) Build a web interface over the game.
4) Playtest.
5) Expand game, if enough time remains.

I think this is realistic, but I’ll have to see how well it works out. I have no way of knowing who I’ll be working with, or if my project is even going to attract the interest of potential team members.

For posterity’s sake, here’s the rough outline of how I want the game to work (fair warning, this is a bit of an infodump):
Continue reading

© 2014 - 2016 AJ Dyrbye

Up ↑