Groundhog Day Resolutions - other goals for 2019

At the start of the year I set three big goals, but there are also lots of other things I'd like to achieve. I set up a goals tracker page to keep track of everything, but I expect the list to change as the year goes on. For now it's just a simple list, but in the future I'd like to add more detail to some of the more complex goals.

I don't expect to finish everything, but I'd like to at least make a dent in the list. Some of the more important ones I'd like to tackle:

Restart my GTD system
In recent years I've had more projects to track and things have slipped through the cracks. In the past GTD has helped me get a grip on things so I'd like to start using it again. I'm not looking forward to the initial collection stage, but I know it will help once I get going.
Rebuild Craft Roulette
Craft Roulette is a small project I released back in 2011. It took about a week to build and hasn't received much attention from me since then. It's never going to be hugely popular, but I'd like to clean up some rough edges and help it reach some of its potential.
Release pangolin.mod & sodaware.mod
These are two BlitzMax modules I've used for my personal projects. I'd like to properly release them with some better documentation and usage examples. This fits in with my goal of creating 4 games, as I want to release the source code along with them.
Release beeminder.el version 1.6
This is another project I created a long time that never reached its potential. I made some big improvements to it in 2018 and I'd like to finish the job in 2019. I'd really like to make viewing goals more user friendly.

Most of the other goals I have involve releasing projects I've created for personal use but haven't put online properly.

Groundhog Day Resolutions - January 2019

Not much time has passed since making my big three resolutions for 2019, but I've made some small progress.

I spent most of first week getting organized. I created a new Beeminder goal for tracking my running and signed up for a half-marathon in October. It's hard to get motivated to run when it's cold and miserable outside, but having a firm run date has helped.

I also created the 2019 Groundhog Day resolutions hub to keep track of everything. It's still quite rough around the edges, but I'm trying to avoid being stuck waiting for everything to be perfect.

Primary goals for January

1. Run a total of 15 miles

I'm still getting back into the habit of running after the holidays. My monthly mileage will have to increase closer to October, but for now I'd just like to build a decent aerobic base.

2. Decide on my first game for #1GAM

Stretching things out over three months gives a lot more time for thinking, but I don't want to be cramming development into the last few weeks. By February 2nd I'd like to have an idea solidified, and possible a prototype or two.

3. Start planning my ebook

At the moment I have a rough outline, but I want to tidy it up and come up with a plan for actually getting it written. I also need to research publishing, promotion and a million other things.

Secondary goals for January

1. Finish the hub page

There's a few big pieces I want to get finished:

  1. Update the "half marathon" goal page to list my recent runs and my total mileage.
  2. Add some detail to the "ebook" goal page. It's too early to track words/chapters written, but I'd like to track that eventually.
  3. Add details for secondary goals. Not all of them need detailed tracking pages.

Groundhog Day Resolutions 2019

There are a lot of things I wanted to get done this year. I didn't do many of them.

It's not all doom and gloom. I released new versions of blitzmax-mode and beeminder.el, wrote some posts, built some mini-sites and had a pretty good year freelancing. But I still didn't check off as much as I wanted.

For 2019 I'll be trying Groundhog Day resolutions again. They worked pretty well in 2016, although I didn't make it through the entire year. Frequently reviewing my larger goals, and breaking them into smaller ones helped me get more done.

There are a couple of large goals I really want to get done for 2019:

  • Release four small games, one each quarter
  • Run a half marathon
  • Write a small ebook on software development

I have plenty of smaller goals I'd like to work on too. I'm still figuring out the best way to organize and track their progress on them, so that will be my goal for the start of the year.

Per-project indentation with php-mode

php-mode supports several different coding styles out of the box:

  • default
  • drupal
  • pear
  • symfony2
  • wordpress

Each coding style has its own settings for indentation. For example, the drupal style uses 2 spaces for indentation, whereas wordpress uses tabs.

By using dir-locals.el, Emacs can automatically set a coding style on a per-project basis. This is /extremely/ helpful when working on different projects that need to be formatted in a particular way.

Here’s an example of a dir-locals.el file that will enable the wordpress coding style for PHP files:

((php-mode . ((php-project-coding-style . wordpress))))

The coding style value doesn’t need to be quoted (otherwise you might see a (wrong-type-argument symbolp wordpress)) error on startup.

If flycheck and phpcs are installed, they can be configured to highlight coding style infractions:

((php-mode . ((php-project-coding-style . wordpress)
              (flycheck-phpcs-standard . "WordPress-VIP")
              (flycheck-checkers . (php-phpcs)))))

The above code will setup php-mode to use tabs, and will also highlight any code that doesn’t meet WordPress VIP standards.

Formatting PHP code with Emacs

I was recently asked if Emacs supports formatting PHP code. There are options for other languages, but nothing in the standard release for beautifying PHP.

php-beautifier.el is an extension I created that integrates PHP_Beautifier into Emacs. It can be used to format an entire buffer or a single region.

It also supports phpcbf for fixing coding standards issues.

php-beautifier.el in action

There are two main functions in the extension:

php-beautifier-format-buffer beautifies the entire buffer in one go:

Formatting an entire buffer

php-beautifier-format-region formats a region instead.

Note that PHP_Beautifer checks for a starting <?php tag, so it won't format a region that doesn't contain one.

Full setup and usage instructions are available on the php-beautifier.el project page.