Heather Clara Designs

The new site for Heather Clara Designs has been out a while, but I've been avoiding writing up articles.

It was time for Heather to be able to sell her embroidery works outside of Etsy, and have a website where she could talk about her craft. It's simple and easy to use.

It was built with Django and PostgreSQL via Digital Ocean hosting.

NginX Webmin Module 0.11

Minor bug fix.

What's been fixed

  • A perl deprecation for perl-5.26


NginX Webmin Module 0.11

NginX Webmin Module Update

Finally got around to making some changes to the NginX Webmin module. Thanks so much to Mike Andreasen over at (

GalaCollider Deckbuilder

I've completed a new project for GalaCollider. It's a deckbuilder to showcase the cards available in the game. Also, it will allow users to build decks for game play.

The project was started from thronesdb. The project is built upon Symfony2 and Twig - the base of Drupal 8 no less. It's been interesting and exciting to learn about what is being used to build the latest version of Drupal from another side.

Creating a node with Drupal 8

Creating a node with PHP in Drupal 8 is easy and not much different than in Drupal 7. The following is how to create a base node. I've also included how to fill in a few of the typical fields, you'll probably want to add more or use different ones. Lastly, I've updated the path alias.


GalaCollider is a project that I've joined recently, as the web developer. It is a fusion of 4X and card games into one, with a planned early release for the fall of 2015. Learn about the game.

The site is built on WordPress with a purchased theme; though the theme has required many tweaks and improvements, the shell is still there. See portfolio page.

Eventually the website and the game will be linked to keep user accounts up-to-date seemlessly.

IAMPETH Membership Site

Recently went live. I've been working on this site since November - creating custom modules to handle memberships and the convention registration.

One problem we ran into was the password reset page with the addressfield module. The addressfield module has an ajax country selection, which changes the address fields if necessary. But this refreshes the data for the form, which stopped users from being able to change their password and fill in their address at the same time. To fix this, I used a little trick:

Webmin Nginx Module 0.06 Release

This update makes the module start/stop/restart NginX properly again. No other updates yet. But I am working on links to the other configuration files for NginX and more UI-friendly handling of the virtual servers. Download the update here.

The module is now also listed on the webmin third-party modules page.

Focus blur field fillers

Do you need a fast easy way to add default text in your form input text fields? Here's a quick solution with jQuery. First make a text field.

<form id="form">
	<input type="text" id="textfield" />

Then add the javascript after the jQuery file.

Filtering Drupal Views with first letter

Drupal Views now comes with a contextual filter that filters content by the first letter, which is a great feature. But it's a contextual filter, not a regular filter. If you start experimenting with the glossary view, which using this feature, you'll notice it places the letter in the url and changes pages. You can't use it for ajax filtering and you can't use it easily with other filters, or as an exposed filter. That's exactly what I needed, an exposed filter, so I built a module to handle this problem.


Subscribe to Programming