Cedar Montessori

Posted on: No Comments

Cedar Montessori was started by Nicola Constantine-Macdonald and offers Montessori schooling in the Cowichan Valley, BC.

This site is built with Bootstrap, Compass and Sass. No CMS, no php, no caching, no latency issues. Just responsive html, css and javascript.

Canadian Genetics and Genomics Society

Posted on: No Comments
Client CGGS
CMS WordPress
Features A subscription site with Paypal standardand integration, this site needed a custom user directory based on WordPress and s2Member functions.
Status Active

Eryn Sharpe Trio

Posted on: No Comments
Client EST
CMS WordPress
Features Gig listing and Bandcamp + Social Media Integration
Status Active

BASES Family Thrift Store

Posted on: No Comments
Client BASES
CMS WordPress
Features We needed an online presence for donation faqs. I also took the photos for the site.
Status Active


Posted on: No Comments
Client BrownArtConsulting Inc.
CMS WordPress
Features Contemporary Art News blog with private galleries for clients.
Status Active

Remote Access over SFTP on Ubuntu 14.04

Posted on: 2 Comments

Today, I wanted to allow a remote user access to some files stored locally.

All together, it was about 8GB of files and I didn’t want to use any large file transfer websites.

Allowing SSH access on your LAN  is one thing, getting it working safely for a standard remote user is another. I wanted the user to have access to only his home folder.

  1. If you haven’t already, install ssh
    • sudo apt-get install ssh
  2. We are going to allow access based on user group, so lets create a new group for remote users.
    • sudo groupadd sftp
  3. Create a remote user and add them to our new group. I set their home folder to a secondary drive (but their home folder can be anything).
    • sudo adduser --home /media/storage/remote/username username
    • sudo usermod -aG sftp username
  4. Set the correct permissions on the remote user’s home folder. For the remote user to be restricted to their home folder, every directory above their home folder must be owned by root. We do this in step 3.
    1. sudo chown root:sftp /media/storage/remote/username
    2. sudo chmod 750 /media/storage/remote/username
    3. sudo chown root:root /media/storage/remote/
    4. sudo chmod 755 /media/storage/remote/
  5. Edit our SSH config
    • sudo nano /etc/ssh/sshd_config
      1. Enable SFTP only (don’t allow shell access)
      2. Deny any users we know shouldn’t access remotely
        • DenyUsers johndoe
      3. Allow our sftp group created above
        • AllowGroups sftp
      4. Add specific settings for this group. This has to go at the end of the sshd_config
  6. Test output
  7. Restart ssh service

If you wanted the user to have write permisions, create a subfolder of /remote/username/writable and chown username:username
Lastly, Ensure your router forwards port 22 to your LAN IP. And don’t forget to open part 22 incoming on your firewall.

client denied by server configuration error after upgrade to Apache 2.4

Posted on: 1 Comment

After an upgrade from Ubuntu 13.04 to 13.10,  my Apache virtual host configurations were returning a HTTP Forbidden error.

With the Ubuntu upgrade, I was now running Apache 2.4.6, which had a few changes made to access control.

The relevant one here was the move from  Allow from  to Require all .

Thanks once again to stackoverflow.

Genealogy: Convert from Burkes Peerage to GEDCOM format

Posted on: 2 Comments


You can use Alex to help partially convert a Burkes Peerage formatted family tree document to a  GEDCOM file for use in family tree software.


My family tree originally conformed to the Burkes Peerage format. Parentage is based on indent level with individual meta data contained in a fairly human readable way. Spouses and inlaws are included in an individual’s entry. It can look something like this,

It’s not very convenient for any systematic analysis or very easily updated with family tree software (like webtrees).

An online search returned little help on converting from this format to the international standard GEDCOM format.

The best recommendation I found was to extract the individuals and then manually recreate the relationships and families in genealogical software.

For the 1600 individuals in my family tree, this was not really an option.

So to help with the conversion, I wrote my own app in PHP. It’s called “Alex” after one of my relatives who has dedicated much of his life to researching our tree.

You can find it on GitHub and here’s how it works.


Alex creates an alex_relation object for each line of a Burkes document. It then creates an alex_spouse and alex_inlaw object for each of those alex_relation objects if a first spouse and their parents exist. These objects are instances of child classes of the abstract alex_person class.

These classes all have methods which return key meta data about the individual.


  1. Currently, Alex returns parsed values for: name, surname, given name, name prefix, sex, birth, baptism, death, and burial.
  2. Alex does not return spouse and inlaw individuals from marriages greater than the first.

There’s an index.php file which helps you to review the results of the conversion per line, and a results.php file which returns the final GEDCOM text file.

Using Alex


  • PHP5 – Alex has been tested on a server running PHP 5.2.17.
  • Git (Optional) – If you have GIT installed, you can use that to copy the source code.


  1. Get Alex
    • With Git
      • git clone https://github.com/rsgca/alex
    • With FTP
  2. Update the configuration options
    • The source code should be fairly well commented. Open up the files in the system folder and change some of the opening variable declarations. For example, the default surname.
  3. Conform Includes
    • Burkes Document
      • Alex can’t handle branch repositioning
        Authors of Burkes Peerage documents often move entire branches later than their natural line number. This newly repositioned branch begins with the phrase OF WHOM PRESENTLY. This branch repositioning breaks the indent lineage structure necessary for correct relationship management in the app and therefore must be manually repositioned / removed prior to using the app.
      • Upload the conformed Burkes document to /alex/burkes.txt
    • Female Names Document
      • Alex uses a list of known female names to determine gender. This is admittedly a bit of manual work to update the list to include all the female names in your burkes document.
  4. Review
    • Navigate to /alex/
    • You’ll see the original imported burkes document at the top and the GEDCOM individuals extracted below.
    • You’ll need to review the individuals to make sure that they have parsed correctly
  5. Download the GEDCOM file.


Northwest Coast

Posted on: No Comments

Client Me and my brother!
CMS WordPress
Features Articles and media dedicated to the Land of the Northwest Coast
Status Active