Jaquilyn Shumate Photography Website

Check out this photo story about birth, part of the story-rich Jaquilyn Shumate blog.

This is featured on the website I implemented for Jaquilyn Shumate, a Tacoma-based photographer, my favorite documented portfolio item.

The designer made such a great design, and the great photography is what really makes the website what it is, as it should be for a photographer’s website. I always enjoy viewing the site, and am happy I was part of creating it. I hope you enjoy it as well!

 

Make your own git hub

I saw a link to this article about using SSH: http://net.tutsplus.com/tutorials/tools-and-tips/ssh-what-and-how/

I noticed mention of using git locally, and remembered the setup I did twice recently to set up a git server on two separate virtual machines in the cloud recently.

To set it up, you’ll need gitolite, and the instructions are here: http://sitaramc.github.com/gitolite/qi.html . It couldn’t be simpler to install or manage users and repositories. Give it a shot if you need to set up a git server for remote backups or for team collaboration, and let me know if you run into trouble in the comments, and I’ll be glad to help.

Hello, Joomla!

I had the opportunity to work on a Joomla! website yesterday, and I have to admit it was a pleasure. I suppose that is partly because I like to learn, but it was not at all hard to do anything I needed to do, and the IRC channel, #joomla on freenode, and especially a user with nick hple were great help when I needed to consult with an experienced Joomla! developer.

Joomla! has an interesting niche with these “components“, which are some sort of an MVC implementation, so you can fairly quickly build custom apps. I look forward to the opportunity to learn more about it in the future.

Rails vs. WordPress

I’ve been thinking about the topic of when I should use an MVC | framework, and when I should use a CMS platform ever since I discovered Drupal about 2.5 years ago. I don’t believe the topic is covered really well on the Web, and most people seem to have a shallow understanding of the topic, so I’ll share my thoughts with you.

The popular question in my company these days is “Rails or WordPress?”, but I will probably touch upon the broader questions of “MVC or CMS?” and “Ruby or PHP?”, so you can often substitute “Rails” for “MVC framework” in the article.

Something to also keep in mind is that in my experience the other MVC frameworks are much closer to being real competitors to rails than any other CMS is to WordPress, so that is something also to keep in mind (let us know in the comments if you want to propose some CMS candidates for using on projects instead of WordPress).

The Cop-out

The most common answer I hear from people, who I assume haven’t really thought about this for long, is “Rails is for web apps, WordPress is for websites.” But is my web-based system a website or a web app? Can most web-based system be put into one or the other category, or the other? Do you think you could score 5 out of 5 on a quiz which would show you a web-based system and ask you to pick a) website or b) web app?

The Gimmes

I’ve identified some traits of web-based systems which make it easy to choose one or the other.

I should say that regardless of the requirements of the system you’re building, in my opinion you should strongly consider whether the programmers you have available are much more proficient in one of the two environments. If your programmers are experts with Ruby and Rails and haven’t written even a 1000 lines of PHP, it is almost certainly better to use Rails for any system (except if you need a blog or promotional corporate website without any custom software development). Same for a team that is made up of WordPress and PHP experts with little Ruby and Rails experience.

Rails Gimmes

If you’re building a transaction processing system in which data and various views of that data are the only functionality, Rails is the natural choice. Examples that come to mind are a POS system, or a system that stores data about the amount of calls your call center is receiving, and then creating robust reporting based on that.

When looking for a Plastic extrusion company producing Angles, Flat sections, Channels & more. Visit this website lakelandplastics.com for more information.

If the web-based system you are creating does not have an element of web publishing, and your customer does not have a need for most of the screens in the WordPress admin, you should pick Rails.

If your web-based system is a web service built on top of an existing legacy database and doesn’t have a website component, you should pick Rails.

Please contribute good descriptions of projects where you’d pick Rails in the comments, and I will include them here along with a reference to a URL of your choice.

WordPress Gimmes

If you’re building a blog, you should use WordPress.

If your project will need all or most screens of the WordPress admin, you should use WordPress.

If you’re making a web publication system (CMS-based system) you should use Drupal. No, just kidding, use WordPress, since Drupal kinda sucks unfortunately. Sorry Drupal, you were an OK attempt, but WordPress is probably a better choice for any web-based system.

Please contribute good descriptions of projects where you’d pick WordPress in the comments, and I will include them here along with a reference to a URL of your choice.

The Pattern

If your team is about as proficient with both WordPress and Rails, or you’re shopping around to hire a team and both solid Rails and WordPress teams are available, it comes down to opportunities for code reuse. Will your system re-use more code if you use WordPress and its very usable admin area, myriad of available plugins and themes? Or can you re-use more code by harnessing the object-oriented design, DSLs and good software development practices mecca that is Ruby, Rails and the available libraries and tools?

In terms of the decision of Rails vs. other CMSs available, technically Rails is probably the leader of the pack for a large majority of applications. The advantage of Rails disappears if your programmers are much more proficient with Python or PHP, since there are probably good enough alternatives in their language, namely Django and CakePHP, but code re-use opportunities each MVC framework will bring should again be taken into consideration.

Writer’s Bias (Why I think I am well-positioned to write this article)

You can read about my professional travels so far.

Experience the adventure of nature with whale watching dana point – Book onine now at http://www.newportwhales.com

I now work for a company that uses both Rails and WordPress, and I am actually hired and paid to help make these exact kinds of decisions. I hope you will provide valuable feedback and discussion to help reach a further deeper understanding of the topic.

WordPress and NetBeans

Here’s a few tips for how to make the most out of NetBeans for developing WordPress websites.

Making NetBeans aware of WordPress functions so it can suggest autocompletion

Working with WordPress, I often have to look up how to use a function I’ve used before, but have forgotten the order of parameters. The codex, and in particular the WordPress function reference and WordPress template tags reference pages are great places to look for such things. However, if you set up NetBeans to be aware of the WordPress functions, sometimes you can save yourself a trip to the codex. NetBeans is by default aware of any functions defined within any files in your PHP include path, as well as any functions you have defined in your project. One way to make NetBeans aware of the WordPress functions would be to have WordPress core within your project, but I would prefer to not have it there. When working on files on remote servers, main reason I would use NetBeans over vim, it is a little bit cumbersome to download all of WordPress core, and I usually only download what I need from wp-content. In such a scenario, you can teach NetBeans to also load a local copy of WordPress into memory. To teach it that, go to Tools -> Options, then PHP tab.

Code completion will then be enabled, and the PHPDocs in WordPress will be parsed shown when looking at the available functions. In the picture below, I typed ‘WP_Q’ and the autocomplete functions became available below it, as well as the documentation dialog above it.

WordPress Coding Style Adherence

The WordPress coding standard defines how your code should look so that it looks the same as the code in WordPress core. Adhering to a coding standard is a good idea because it promotes consistency and makes for easier reading of the code you write. I’ve prepared an export of the Netbeans configuration for the editor to adhere to the WordPress coding standard. I hope you find it useful! To import it, Click Tools -> Options in the top menu, then press the “Import” button in the dialog window that comes up and follow the instructions there.

What’s Next?

A nice feature that is not available to the extent of my knowledge would be templates for common WordPress files, like there are template for Java classes, and such. The way this would work is you could say “I’m going to make a new theme” and it would create all the files a theme requires. Or “I’d like to make a widget.”, “I’d like to write a shortcode.” and NetBeans would create the “boilerplate” code so you can get to coding right away.

Do you have any NetBeans tips you’d like to share with your fellow WordPress site builders? Do you know of a plugin for NetBeans that adds those templates I mention in the section above? Thanks for reading.

Patch for JWPlayer

I made a website for the Positive Parenting Program of the Manitoba Government while working at Canada’s Web Shop, and it had videos on one of the pages. Because the videos are self-hosted, I used the excellent JWPlayer for WordPress plugin, and it worked great except that when the staging site was brought down the videos stopped working.

It turns out that JWPlayer for WordPress is using WordPress guids instead of using the wp_get_attachment_url() function that makes it safe to move your WordPress website between domains. In short, the guid column in the posts table stores the original URL of the video, and if you change domains, the only way to get the correct URL is to use the aforementioned function.

I wrote a little patch, notified LongTail Video, and it is on its way to being included in the plugin.

Project Pier & Kamp Pro 2 on GitHub

I’m working with and on the Project Pier project management software again.

A colleague who was working as a project manager recently left Tactica, and I saw this as an opportunity to do more project management myself, which is what I’m always looking for opportunities for.

This week was really exciting for my project management efforts, but it also means I have to play a little bit of catch up with the development projects at work, since the project management work I do takes away time from development.

You can check out my GitHub fork of Project Pier to follow my development or get the latest version to use it for your project management needs. If you find a bug or have an idea for how to make the system better, I’d love to hear about it, and if I feel it would make the system better for me, it’s likely I will have a patch for it shortly.

For my needs, the part of project pier needing most attention is the UI. The architecture seems solid, and the project management paradigm is quite close to the one Basecamp implements.

To address the UI issues without forcing my ideas into the core, I’ve enabled the themes to overwrite any output of the system (HTML & Javascript), whereas they were only able to overwrite CSS & images before. You can follow my UI changes on my GitHub repository of the Kamp Pro 2 theme developed by the talented Andrew Dotson.