Interview with Jason Coward (aka OpenGeek) – MODx Co-Founder & Lead Architect

1. Brief Bio: Name, Where you live, any personal info you want to share, link to your website(s) (personal, company, etc).
My name is Jason Coward, and I am 38 years old. I am one of the original founders of the MODx project, founder of the xPDO project, and CTO of Collabpad, the company which supports the MODx Founders and makes the MODx project and community possible. I work from my home office on a mountain just outside of Taos, New Mexico, where I have recently relocated. I have a wonderful girlfriend, Christina, who I’ve been with for the past 16 years, and three male cats. I’ve been a drummer for over 25 years, playing a variety of styles including jazz, country, rock, and Americana. Pool is my game of choice, especially 9-ball. I also enjoy hiking, camping, and digital photography.
2. What is your development background? When did you start programming, what languages, etc.
I attended a magnet school for Math, Science, and Communication when I was in junior high school in Fort Worth, Texas, and got my first taste of computer science with BASIC, assembly language and whatnot. I had a TRS-80 Color Computer, then an Apple IIe, and finally a Mac Plus growing up, but in high school my interest in computers faded while I pursued golf and playing the drums. But I came full circle relocating to Austin, Texas with a band in the mid-90’s and stumbling upon an entry-level database administration job with a high-tech marketing company. I found I had a knack for the programming database applications, and I worked my way up, quickly becoming the lead developer on the important IBM account team. Back then I started with SQL, HTML, and FoxPro, then moved into the world of Java/J2EE/JSP at two enterprise portal start-ups around the turn of the century, gaining Javascript and CSS skills along the way as well. I didn’t start working with PHP until 2001 or 2002 whe
n I started freelancing, but I’ve enjoyed it immensely and find that it provides some unique challenges and characteristics that make it a very rewarding experience.
3. I know you’re one of the cofounders of MODx. Can you tell us a bit more about that? How did you get involved with the MODx project?  Have you worked with other CMS/F projects before?
As I mentioned, I worked at two enterprise portal startups around 2000 and then started freelancing. I tried some of the early PHP CMS systems like phpNuke, PostNuke, etc. shortly thereafter, but when I stumbled upon Etomite in 2003, I knew right away that this was a totally different approach from the other offerings. One that gave me the freedom I was lacking when trying to apply custom designs in awkward theme templates or when customizing the behavior of the cookie-cutter modules that were available for those systems. I had never gotten involved with a PHP development project before then, but was interested in getting involved in Etomite. However, some 3rd party mods that I was using in some of my sites made the developer of Etomite feel threatened in some way, chaos ensued, code and history was deleted, and MODx was born. The developer of those mods, Raymond Irving, along with Ryan Thrash, and myself, immediately started creating a home for our newly forked project.
4. About how many developers are working on/responsible for the MODx core? Would you like that to change? And how?
The number of active at one time fluctuates, but we have approximately 20 committers that have contributed directly to the core code base in it’s history, though MODx Revolution is primarily the work of Shaun McCormick and myself. I would love for the number of active committers to increase, especially once Revolution is released for general availability, though I think what is much more important is the number of component developers we attract to the framework. IMO, change to a core framework should be slow and methodical, and based on experience with an active component development community.
5. One of the new things about Revolution is xPDO, can you explain to us a bit about what xPDO is and why it’s exciting?
xPDO came about after I built a prototype of an object-oriented implementation of the MODx core engine on top of a popular PHP O/RM called Propel. When I could not achieve the performance I wanted with Propel, and could not find any viable alternatives, I decided to create my own O/RM and xPDO was conceived. The main goal of this prototype was to abstract the SQL persistence layer so MODx could eventually be easily ported to and maintained across multiple database engines, but it also helps to quickly construct secure and consistent domain models for web applications or can just help you gain quick and dirty CRUD access to any MySQL data model. Over the coming months, xPDO support for PostgreSQL and MS SQL Server will be on top of the agenda, and MODx distributions for those database engines will follow.
6. What do you see as the important and exciting things that the MODx community has to look forward to?
The release of Revolution and the arrival of commercial support and partnerships should help rejuvenate the project and community this year. Though we’ve never really experienced a sustained decrease in activity since the project started, I’m hoping these will help launch the project to the next level and start to foster a more robust component development community.
7. Can you give us a tentative timeline regarding the final release of the GA version of Revolution?
We are working hard to have a GA release available by Spring of this year.
8. What are the copyright policies around MODx? For example, can a developer build their own brand around MODx CMS? Does every project need to be identified as having been built with MODx? Can someone bundle something built on the MODx core as a commercial product?
I’ll keep it simple and say our policy is simple: quid pro quo. A developer or development team can certainly build a brand around MODx by developing 3rd party components with a consistent approach, or providing direct customer support for MODx sites. No project must be identified as having been built with MODx, though the manager UI does need to retain licensing and credits to the MODx project. And being GPL, you can’t distribute commercial code with MODx bundled, but you can certainly sell commercial licenses for 3rd party components targeted at the platform, or support contracts for GPL code you (or someone else) may have released on the platform. But as a platform, MODx can potentially support an entire ecosystem of business partners, freelancers, and customers. And I hope that is where we are heading with this project.
9. If you could give one piece of advice to someone who is just starting out with MODx, what would it be?
If MODx is right for you, you’ll either know it pretty quickly, or you should be prepared to patiently start learning the system by reading some of the documentation, participating in the forums, and just trying things out. Experimentation is the key, and the more you do it, which is very easy to do on MODx anyway, the more you will understand the inner workings of MODx and be able to make the most of it.
10. Any closing thoughts?
MODx has been developed with a few key principles in mind, including the ability to do rapid prototyping of presentation directly in the system, making sure the system stays out of the way of web standards, and supporting proper separation of presentation and logic in components developed for the platform. Ultimately, it is at it’s best when it is used by web professionals to develop custom content management solutions for specific client needs. If you expect a point and click system, you may not be an appropriate candidate for adopting MODx directly, but you might be a perfect candidate to be a client of a MODx professional who can tailor a solution to your requirements and skills.

In this interview, I talked to Jason Coward, MODx Co-Founder and Lead Architect and he gives us some insights about himself, the MODx project, and what’s coming.  Enjoy 🙂

jason-coward1. Hi Jason, thanks for making the time out of your crazy schedule to answer some questions for us.  Can you start by telling us a bit about yourself?

My name is Jason Coward, and I am 38 years old. I am one of the original founders of the MODx project, founder of the xPDO project, and CTO of Collabpad, the company which supports the MODx Founders and makes the MODx project and community possible. I work from my home office on a mountain just outside of Taos, New Mexico, where I have recently relocated. I have a wonderful girlfriend, Christina, who I’ve been with for the past 16 years, and three male cats. I’ve been a drummer for over 25 years, playing a variety of styles including jazz, country, rock, and Americana. Pool is my game of choice, especially 9-ball. I also enjoy hiking, camping, and digital photography.

2. What is your development background? When did you start programming, what languages have you worked with? Continue reading “Interview with Jason Coward (aka OpenGeek) – MODx Co-Founder & Lead Architect”

MODx Evolution: Creating a Simple Custom Snippet Part 4 – Optimize with Caching

Part 0: Introduction
Part 1: Write and Test the PHP Script
Part 2: Create the Snippet
Part 3 – MODx API, Placeholders, Chunks

In the fourth part of this brief series on creating a custom MODx Evolution snippet, we’re going to do some optimizing to make our snippet a little more efficient.  So far the snippet seems to be working as expected and is pulling in the feeds as needed.  However, it’s a little inefficient.  The way things are set up now, every time someone refreshes the page, the script fetches a new copy of the rss feed from the coding pad, or whatever source you’re pulling your feeds from. If you have a heavily trafficked site where people spend a lot of time on your site and visit many pages (thus, for example, constantly refreshing your snippet call in the sidebar), this can be resource heavy on both your side slowing your website down, and also on the web server that you’re pulling the feeds from.  We can mitigate this by implementing caching.

Continue reading “MODx Evolution: Creating a Simple Custom Snippet Part 4 – Optimize with Caching”

MODx Evolution: Creating a Simple Custom Snippet Part 3 – MODx API, Placeholders, Chunks

Part 0: Introduction
Part 1: Write and Test the PHP Script
Part 2: Create the Snippet

So far we have created the raw PHP script and tested the code outside of MODx.  We’ve started the process of transforming this script into the rssfeedFetcher snippet and we have it working on the Learn MODx website.  We’ve learned how to add optional parameters with default values to our call and everything seems to be working as expected. At the close of the last segment, I mentioned that our snippet is still relatively inflexible because the user has no control over how the output looks.  We’re going to rectify this today by tapping a little into the MODx API to create placeholders and utilize chunks to allow for some templating and customization of the output.

Continue reading “MODx Evolution: Creating a Simple Custom Snippet Part 3 – MODx API, Placeholders, Chunks”

MODx Evolution: Creating a Simple Custom Snippet Part 2 – Create the Snippet

Part 0: Introduction
Part 1: Write and Test the PHP Script

In the last installment of this brief series we went through the process of creating the raw PHP script that will form the basis of our snippet. We tested the code outside of MODx and it seemed to work pretty well. In this part, we’re going to start the process of transforming this script into a MODx snippet.  As I said before, I will be working on the Learn MODx website that we built during the MODx Beginner series of tutorials.  My goal is to use the snippet to add one or maybe two sections of MODx related feeds to the sidebar of the website.  But first, we need to create the snippet itself, so let’s get to work 🙂

Continue reading “MODx Evolution: Creating a Simple Custom Snippet Part 2 – Create the Snippet”

MODx Evolution: Creating a Simple Custom Snippet Part 1 – Write and Test the PHP Script

Part 0: Introduction

In the introductory post, I explained briefly what we’re going to create, made some important disclaimers, and blew some hot air around.  In this part, we’re going to get our hands dirty by diving in and writing the PHP script and testing it outside of MODx to make sure it works. In general, I think this is a good idea because it allows you to iron out any purely PHP issues in your code before dealing with the MODx side of things. Chances are that even after you’ve tested it and ported it into MODx, you’ll end up adding more PHP logic and stuff but if you can test most of it outside MODx first, it should potentially save you some headaches and debugging time when working inside MODx.  This is especially important because once inside the MODx editor there’s no syntax highlighting, automatic indenting and all that other good stuff.

With that in mind, let’s go ahead and create our script.

Continue reading “MODx Evolution: Creating a Simple Custom Snippet Part 1 – Write and Test the PHP Script”