Site is moved

Hey everyone. Thanks for looking here.

I’ve now moved the site over to

Please update your bookmarks. Does anyone use bookmarks anymore?

Posted in Uncategorized | Leave a comment

WordCamp Toronto: Developers

I attended WordCamp Toronto for developers last weekend. It was a lot of fun. We were hosted by George Brown College again, and I’m grateful for their contribution. The venue was great. Below are my notes from the presentations that I attended.

Git, Capistrano, and WordPress

  • nathanielks on github
  • Highly recommends using git sub-modules
  • Highly recommends using a VPS on your server

    It allows for complete control over your installation. Which means that you can set up git on the server, along with whatever else you want to

    This might also mean that I can work with Common Lisp on the webservers. Good stuff

  • Capistrano

    Based on Ruby and the Rails framework

    There is a tutorial on how to use this on

  • Use rsync for client files and images in a seperate folder, so that git doesn’t have to deal with this kind of binary data.
  • Use a local, staging (Ideally on the webhost to make sure that things work with their version of php and mysql, etc), and production repository.

    It is paramount to keep your production area safe.

Fundamentals of theme development

By Kirk Wright, freelance theme developer from Montreal

  • Always use wp_reset_postdata() after using your own loop.
  • Recommends the use of the following plugins

    Debug bar

    Debug bar extender

IDEs for PHP

Jeremy Clarke – WordPress Montreal

Use NetBeans

Panel: Your own WP development business

When consulting

  • You can probably ask for twice your current amount, and clients would still be willing to pay for your services.
  • Clients that want to pay the least usually want the most.
  • You don’t want to work for clients that don’t respect your time and work. They will always want one more feature for their website and not want to pay for it.
  • Read the book ‘E-myth revisted’

When you are designing your own product (Like a plugin)

When designing anything, pick 1 or 2 items that have to be there and compromise on anything else. Get the product out there and add the other features depending on user feedback.

Site migration

Rick Radko – WordPress Ottawa

  • Don’t develop on the live site. Use a dev site.
  • Dev site can be on a subdomain of the main server. This way the files and DB copy is local to the server. Quicker.
  • When doing a site migration, don’t use a simple search-and-replace. This will break something. Just don’t do it.
  • Use the search-and-replace script mentioned in the codex.

    Its called ‘searchreplacedb2’ or something like it.

  • Vhosts

    Allows you to set up ‘virtual host names’

    Makes it easy to use other domain names

  • If you have the dev site locally on your computer, you can change your computer’s hosts file to point to localhost when the live site’s URL is asked for.

    Adv: You don’t have to worry about search and replacing anything. Just copy all the files to the webhost when you are done.

    Disadv: You wouldn’t be able to visit the live site. You will have to comment out that line from your hosts file if you want to. Basically, you wouldn’t be able to visit both sites simultaneously.

  • Online resources

    Backupbuddy and InfiniteWP – They say that they do site migrations, and they know about the serialization issue (Which is why you can’t do a simple search-and-replace).

    Make sure that any service you use knows about the serialization issue.

WP Theme Frameworks

Chad Mohr – SwitchWP

  • Uses the premium Genesis framework – seems very happy with it.

    Very little coding required.

    Unique way of customizing sites – you only code the things that are unique to your project.

  • Bones – base theme, responsive, html5
  • Suffusion – lots of design options
  • Types plugin – CPT, custom taxonomies, and custom meta boxes, all managed through the WP dashboard
  • Recommends:

    Gravity forms

    Yoast SEO

Tips for presentation

Looking at a lot of presentations allows me the luxury of seeing what works and what doesn’t. Every speaker deserves kudos for putting themselves out there, and facing a sea of people focusing on them. Most people can’t do that, and its a willingness that everyone should have. So good for them, and congratulations for having walked (And talked) through it.

Once you get past that, its a matter of implementation. Some things work better than others. Here are the things that I noted. Its a list of things not to do, and thats half the battle.

  • Do not live code in a presentation

    Too easy to get lost in the implementation and details, and lose the big picture.

  • Do not show files of code

    Use snippets of code in your slides

  • Do not talk about code

    Talk about the benefits of your code

    Talk about how people should use your tool. That is to say, the API.

    Talk high-level. Talk results. Not implementation.

    The reason is that the details will get forgotten by your audience in about 2 hours. If they want the implementation details, they can look at the source and/or the comments in your code, or a blog post detailing how you did something. Just point them to where they can get that information.

  • Do not get into a conversation with 1 (or 2, or 3) audience member.

    Doing so will take away from your presentation, and alienate the other members of your audience.

    If you are having a conversation, turn it into a discussion and be sure to constantly invite other audience members to chime in. Do NOT alienate your audience. Make them part of the club.

  • Stay on schedule

    Start and stop on time. It shows respect for your audience’s time. If you have to go over, let people know that you are doing so, and that they are welcome to step out if they need to do other things. Don’t make it awkward for them. And apologize for going over time.

Posted in wordpress | Leave a comment

Inquiry cart plugin for WordPress

Inquiry carts in WordPress

I’ve been asked by a client to include an inquiry cart into a website. I’d never heard of inquiry carts before, so I looked it up. Its a fairly simple idea that takes the principle of ‘Make things easy for the end user’ just a little bit further.

Who would want something like this? People who do customized work, thats who. Examples would include

  • Artists – Publish a sample of your work, and people can ask for variations on it.
  • Hardware installers – If you want people to ask for a quote on delivery, installation, and service of a particular piece of machinery.
  • Service providers – If you make short-films (Or design dresses, furniture, parking lots (They can be creative too), etc), and you want to make it easy for people to ask you questions about your projects

Basically, anyone who does work or sells a product that can’t simply be put in a box and mailed to the end-user would want to use something like this.

I tried looking for something that satisfied this need of my client. And all I came up with was this, which seemed to be perfect. Till I got to the point where its not actively developed anymore and it doesn’t work with the latest WP.

My own inquiry cart plugin

So I decided to take that and hack it till it does work on the latest WP. Easier said than done. The source code suggests to me that this plugin is a hack of another plugin that seemed to have taken care of favourite posts for the registered users of a website. So its got a bunch of complexity that simply isn’t needed for the inquiry cart functionality. And since I had it with trying to debug that code, I decided to just make my own. Kudos to the Church Media Resource people for doing the original one, though. Its simple and straightforward, which is just what it should be.

My plugin is (Imaginatively) called ‘Inquiry cart’ and the code can be found on github, as always. Its going to be a pain dealing with’s SVN requirement, but thats life.

Once its up on the servers, I hope I’ll get requests for features to add to this. I don’t want to deal with adding features that aren’t going to be used by people.

As of right now the plugin uses shortcodes to allow the sysadmin of the website to ‘add products’ to be used by the inquiry cart form that sends the email to whoever is going to be working with end-user inquiries. Basic, and it works.

Posted in programming, wordpress | Tagged , | 2 Comments

The project is over

End of WordPress project

Its done. Its over. I’m happy about that. It taught me a lot, and I’m so very much looking forward to more.

WordCamp Toronto 2012

I attended it. It was great. I got to speak to a lot of people about what they do with WordPress, and it was very educational. There is another one happening at the beginning of November, and this one will be geared towards developers. I’m volunteering for that one and very excited about it. It should be an absolutely amazing exploratory experience.

I got to speak to people from Kobayashi Online and SwitchWP, and it was enlightening to speak to these developers who’ve been in the business for years. With any luck, I’ll be able to work with them on many cool projects.


Not a lot of the people I spoke to knew about the Pods project, which makes WordPress even more easy to use as a CMS. I will be focusing on this over the next few weeks to become a master at it. This should give me a chance to leverage my programming skills and differentiate myself from other web-devs. Good stuff.

Posted in wordpress | Leave a comment

New wordpress project

I’m working on a wordpress project right now. I’m not working on the theme for this website, but building a ‘design tool’ plugin that will allow users of the website to view different dress images that are made to order. Its challenging.

I knew that I’d be able to get it to work, I just have to learn to make it work with wordpress. Its challenging to work with jquery, javascript, php, and wordpress without knowing a lot about any of it. Its fun. Its exciting to have a deadline and work away and keep at it. Its fun to consistently and surely hack away at a problem and see results come out of it. Its great.

In the last few weeks I’ve learned js, ajax, php, & enough wordpress to make things happen. Its invigorating. I’m now learning how to make plugins for wordpress. Its great to have a project with a deadline and know that things are on the line. Its not something I’ve had for a very long time.

10 hours to make a plugin

It took me approximately 10 hours to learn and implement a simple form plugin that has a menu in the admin screen. It took me around half of that to figure out how to make a separate php file process the form. I asked around on IRC and searched for it on google for long enough, and then did what I should have done after the first 30 minutes of not having an answer; I looked at how other plugins do it. Lesson learned.

In comparision, the code to create the design tool itself was easier and more straightforward. AJAX is a lot easier than I expected it to be.

Apparently doing a “include_once(‘../../../wp-config.php’)” is frowned upon. I don’t quite know why, but it is. At the moment, though, all I care about is that it works.

I need to learn how other plugin-writers keep their page-code within the frame of the admin page. Lots of things to learn. Its a good thing that all the plugins have their code out in the open.

WordPress Pods

While doing research for this project, I was told to look into WordPress Pods. I’ve not yet gotten a chance to use it, but it looks awesome. If I have free time I might just try to redo the project using pods. Good to have something on the horizon.

Posted in wordpress | Leave a comment

Why use wordpress custom post types?

Thank you for explaining this to me

Posted in Uncategorized | Leave a comment

Tutorial for Hunchentoot

I’ve been in the dark for a while. I’m unable to decide on a course of action w.r.t. (With regards to) programming. Android is a mess right now since I don’t know enough Java, and the emulator for the devices is way to slow on my computer. So while I’m learning javascript through CodeAcademy, I’m also trying to figure out what else to work on.

I keep swinging between wanting to program in CL and make stuff thats cool and learn and practice concepts like databases, etc., and working on WordPress so that I have experience points that just might get me a job. Or a freelance project or two. Anything that might move me forward professionally.

Stuff thats cool

While learning new things, it would be great to work on projects that are already out there and are used. It would certainly be good to see the code by other people. It would be great to actually contribute to some of these projects. Thats the dream. So I searched for something that would interest me, and found cl-json. Its a library to allow CL to interact with JSON elements.

Sounds pretty simple, right? Wrong. I looked at the code for that and my brain stopped working. I could understand what each individual block of code could do, but I couldn’t figure out the ‘whole’. I couldn’t understand why any of the functions were being used, etc. It was embarassing.

Tutorial for Hunchentoot

I looked at Hunchentoot tutorials, and they seem to be a bit out of date. This one is great since its so simple and straightforward. I love this tutorial. Its amazing. Everything is explained around the code and the author even explained why things are done, which is what was frustrating me about the cl-json code. I’m going to start writing code that is like this tutorial from now on. Its amazing. Also, making code like this in your own project would help people get on board with contributing to it, which is always nice. Many hands make light work.

The problem with the code is that its out-of-date. Hunchentoot has changed some things, and I have made new code that does everything in that tutorial. The code for that is here. I haven’t explained the code as well as the original author, so just head on over to the original blog post to see how everything fits together.

Redo-ing this tutorial has been a lot of fun. It even introduced me to parenscript, which is great seeing as I’m learning javascript right now. I think I’ll go through as many tutorials as I can and update them too. Its great exercise, for sure.

Posted in programming | Tagged | Leave a comment