What's the best CMS?

What is the best CMS? This is a question that I am asked all the time. There are so many options out there that answering this question is no small task. Once again Jeffery Scott comes through with an amazing article as he reviews the The Top 10 Open Source Content Management Systems. What does his list look like? Here it is:

  1. Drupal
  2. WordPress
  3. Joomla
  4. Media Wiki
  5. Liferay
  6. TYPO3
  7. Moodle
  8. Dolphin
  9. Pligg
  10. Movable Type

His conclusion was that Drupal edged out the top spot because of its ease of use, great support, and vast number of modules. He concedes that WordPress is a really a close second. I’m not sure I agree with his exact order, but I’m biased because I’ve been developing on WordPress for years and I’m very familiar with it. I’d probably put the top three like this:

  1. WordPress
  2. Drupal
  3. Movable Type

Of course, with the introduction of Acquia to the scene, that may change in the near future. Either way, the article is a great read.

More on Magento

Eight months ago, I was talking about open source eCommerce, and I asked Can open source eCommerce contend? At the time I was worried by the lack of quality and even more so the poor user interfaces offered in the open source eCommerce solutions. However, I talked briefly about a new solution that was soon-to-be-released, Magento. Well, it’s been released and in my opinion it is probably the best solution available.

Jeffery Scott posted a great article called Magento – The New Standard in Open Source eCommerce over at our recently launched Web Developer News site. Magento is making huge progress, and I hope that this new blood forces other eCommerce solutions to take action. A little competition could benefit us all.

Reorder Gallery now in WordPress Core

Less than a week ago, I released a new WordPress plugin called “Reorder Gallery” which gave you the ability to change the order of your images when you uploaded them, so that the gallery shortcode would display them in an order of your choosing. Two days later, Matt Mullenweg stopped by to say that it “would be pretty cool functionality for core WP” so I offered to add it in. It’s now done, and you can look forward to seeing it in WordPress 2.6.

Read more

Why Contribute to the Open Source Community

Why not? I know, what a cliché response right? The thing is, it really does apply. I’m going to have to make plugins, enhancements, and patches for WordPress for my customers anyway. By releasing these to the community, I can help other developers, companies, users, and even aspiring developers. So I repeat, “Why not?” Why not take the time to raise the quality of life for someone else, when it’s so easy to do. I would say to any developer that uses open source software and does not contribute, “Take stock of what you are doing, and think about the bigger picture, not of software but of humanity.”

How does Open Source raise someone’s quality of life?

It seems like an outrageous claim right? However, you don’t have to completely change someone’s life to raise the quality of it. I’m not claiming that my contributions to open source software are helping someone survive where they otherwise wouldn’t, but I do think that they make a difference.

My Community

Why have I been talking so much lately about community? Well, I truly believe that the best way to impact the world is to impact your community. I was talking to a good friend of mine not long after he returned from spending nearly two years in Uganda. Something he said to me has stuck with me. He said that after two years, he realized that no American could ever make as much of an impact in Uganda as a Ugandan could. Dave Eggers, founder of 826 Valencia gave an amazing speech at TED about his locally funded and staffed tutoring centers. He says “A bunch of happy families in a neighborhood is a happy community. A bunch of happy communities tied together is a happy city and a happy world, right?” I see the value in this. I know that I can make a difference, and I’m going to start in my community. I’m in a situation where I have more than one community. As a husband, father, friend, businessman, etc, I have a local community in Arizona. As a web developer, I’m a part of the online community. You’ll often find me helping new programmers in IRC channels, trying to empower quality community sites, submitting articles to resource sites like Attackr (edit: I’ve since bought attackr to keep it going), releasing plugins free of charge, and yes, participating in open source software projects like WordPress.

The Heart of Open Source

I really wanted to talk about open source software, how it relates to Xavisys and specifically me, why I believe in it, and why I support it. I knew that before I did, I needed to address the issue of profiting from open source. Take the time to read that, it will give you a more accurate picture of my relationship with open source, as well as some tips on how you can benefit from a similar relationship.

I personally love open source, because I love the idea of benefiting others. I enjoy giving someone else an advantage that they wouldn’t otherwise have. Take WordPress for example. It benefits two sets of people, the users who get a better experience and better functionality, as well as the companies and developers who use it as a platform to build on. Sure, some of those companies are competitors, but I want them to succeed too. I certainly don’t want to move ahead in life at the expense of others, I’d much rather move ahead by helping others. In the end we can all benefit. Whenever I hear the saying “It’s lonely at the top,” I can’t help but think that maybe they did something wrong then. If they’d have worked with people on the way to the top, and brought them along for the ride, they wouldn’t be so lonely. That’s my goal.

How to Profit with the Open Source Community

I love open source software. I love the idea of open source software. Involving people in the development process that would not otherwise get the chance. Tapping into talent that would not normally be available to you. Best of all, giving everyone the opportunity to benefit others as they benefit themselves. I’m always interested in how I can benefit the communities that I’m a part of.

The question that I’m asked most often when I talk to people about open source software is “Who pays for all this?” as well as variants like “Then how do they make money?” or “Won’t people eventually stop working for free?” We live in a capitalistic society, and people don’t understand why someone would work for free when they could be making money. In this article, I’m not going to cling to ideals on why doing something for the community shows more worth than your bank account balance, instead I’m going to explain how open source developers (myself included) do in fact make money by developing quality software for free. Hopefully in the process you will find a way to give back to the community and get your piece of the pie.
Read more

Can open source eCommerce contend?

It seems that sometimes work comes in waves. I haven’t dealt with setting up a shopping cart on a site in quite a while, and now I have three clients that I’m setting up shopping carts for. The clients want a PHP based solution (good thing, considering that’s what I do), and as usual the less we spend the better. I started by looking at the available FOSS options, fully expecting that this would be a simple task. Little did I know…

The first application I looked into was osCommerce. The best way I can describe it is as an old dragon. It may be free and open source, but it’s big, bulky, and outdated. I was looking for something much easier to use, and much more current. Something that would be easy to manage once it was set up, as opposed to taking two hours to add color options to a product.

Not to be discouraged, I moved on another possibility, zenCart. ZenCart is a huge step in the right direction, but it still seemed to lack the intuitive interface that you might expect from web based software. I may be too hard on them, but a quality user interface makes the difference between happy customers, and customers that never return. All in all, there is a lot of really great technology which zenCart doesn’t use, and while it’s free and open source, that doesn’t make up for it’s lack of usability.

I continued to look around at free alternatives, but didn’t find anything noteworthy. Now I was discouraged. I decided to check into some commercial products, most notably cubeCart. It costs $130 – $180 and it’s not 100% open source, but cubeCart makes up for all that with the interface. It has an intuitive admin section, better support, and plenty of available add-on modules (for shipping, payment, even affiliate programs). In the end, we went with cubeCart, deciding that the benefits were worth the cost. I was almost ready to admit that the available FOSS options couldn’t touch commercial products in this market. Just then, a glimmer of hope! Magento.

Magento is a new up and coming PHP shopping cart, built using the Zend Framework. It is young and currently still in beta, but it shows great promise. According to their roadmap, the production version is due out first quarter 2008. It’s current drawbacks are it’s lack of support for certain payment and shipping gateways, and it’s lack of support for popular affiliate programs. However, much of this is in the roadmap, and should make it into the production version. In my experience, what they currently have out is stable, and extremely user friendly. I can finally breathe a sigh of relief, knowing that there will soon be a FOSS option that will be able to compete with their commercial counterparts.

In the end, if you need something right now, cubeCart is for you. While it will require some up front investment, you will save it back just on the Tylenol you won’t be buying for the headaches you will have with osCommerce or zenCart. However, if you don’t need something for a few months, or you are trying to keep an eye to the future, check out magento. You’ll be glad you did.

My Kubuntu Experience

Well, I got sick of windows again. I switched back to windows quite a while ago when I was doing a lot of QuickBooks work (which didn’t work right with wine…even Crossover). However, in my experience Windows tends to degrade in performance and reliability over time. You end up having to reinstall, or you feel like you’re balancing plates on top of a pool cue. Recently it seemed like every windows update caused me a day of work to get my system working again. I took note of everything I use used on a regular basis, and was surprised to find that there was a linux version for pretty much everything. However, I’ll readily admit that as a web application programmer, the programs I use regularly are probably NOT the same as the average user. Here is what I found (this is NOT a free solution…I try to use what is best for me, not what is free. I use this machine to make my living):
(Many of these actually STARTED on linux and added Windows support later, but for our purpose here, I’m simply going to point out that they have linux support.)

Now for the list of apps that do NOT have linux versions, and what I plan to do about it:

  • Dreamweaver: I really haven’t used this since I got the Aptana plugin for Eclipse. I used it only for CSS auto-completion (something Zend Studio does poorly), but now Eclipse does it fine. so, the short story is…I don’t plan on doing anything about this one.
  • Fireworks: I’m not great at graphics, and fireworks is easy. If I can get used to Gimp, I’m sure it will do everything I need (I outsource most graphic design). Until then, I have Fireworks install on an XP Virtual Machine through VMWare Workstation.
  • Photoshop: Again, I think Gimp will do everything I need eventually. Until then I have Photoshop installed in my Virtual Machine.
  • Internet Explorer: Again, I’ll probably also use my Virtual Machine. I also have CodeWeavers’ Crossover Office, which should work with Internet Explorer 6 (but not 7). I may use this too (the main reason is that I used to use a small script that would open a page in all my browsers…I can’t do that in a VM).

Now for the actual experience. First I had to choose a distribution. There were a TON, but the two I had a hard time choosing between was Fedora and Kubuntu (I prefer the KDE desktop). I ultimately decided on Kubuntu simply because I hadn’t used it before. I may set Fedora up on another system here, but for now I’m quite happy with Kubuntu. Since I was using a VERY new system, and Kubuntu Feisty (7.04) was due to be released approximately a month from when I was setting this all up, I decided to use the beta. It worked pretty well. It installed without a hitch, and I began installing all my applications. The first problem I had was when I went to set up my dual monitors. My 8800GTS card needed the absolute latest nVidia drivers (9755), but there was a bug. Once I figured that out, it worked great. However, they then split the nvidia-glx package into 2 packages (nvidia-glx, and nvidia-glx-new). I had to re-do my fix then. However, I think most of this is my own fault for choosing a beta release. Once it was all set up, I had both monitors set up at their proper resolution (1680×1050), and even Beryl functioned. I had some problems with Beryl crashing KDE, but I asked on IRC and was told to switch my rendering path to copy due to a problem in the nVidia drivers. Now it works fine. The next problem I ran into was setting up my printer. Konica Minolta offers linux drivers as source, or as an RPM. I had problems when I tried to build from source, but Alien was able to convert the rpm to a deb, and it worked great.

My experience of actually moving my data was simple. I moved my profiles for Firefox, Thunderbird, and Filezilla from my Windows system. With Firefox I then removed a couple windows only addons that I had. Firefox still gave me some problems until I found that ColorZilla does not play well with the linux version. I removed that addon, and it works great.

I still have a few small issues that I need to address, but I don’t think there will be any major problems. The most “major” of these is that my keyboard and mouse are Bluetooth, and they use a USB Bluetooth adapter. When I restart my system I have to unplug that adapter, and plug it back in to get my keyboard and mouse working. Again, I’m still on a beta version.

Now that I’ve gone over the problems, here are some of the unexpected beauties of Kubuntu. First, I looked at Beryl as a “pretty” thing, but useless. However, I’ve found it to be extremely useful. I can keep things more organized on separate desktops. You can already do that with KDE, but add in the windows picker (which I have set up to trigger on mouse in either top corner), and the ability to make the “cube” transparent so I can quickly find what I’m looking for, and it has actually increased my productivity. Then there is digiKam. I have a nice digital camera (Canon Rebel XTi), and it came with some nice software. The main thing I liked about the software was it’s ability to pull large amounts of photos from the camera, put them into a directory of my choosing, but sort them into sub directories by date they were taken. I wasn’t sure what to expect when I plugged in my camera, but it offered to launch digiKam. When I let it, digiKam set walked me through setting things up, and a few minutes later it was copying all my photos into sub directories based on date. It was smoother than the expensive software that came with the camera, it has proven to be more flexible, and just as reliable. I was completely amazed.

To sum it up, I think Kubuntu Feisty really has something good going. I’m impressed with it’s package management, software availability, hardware compatibility, and ease of use.