Wordpress

Automatic WordPress Backup using Amazon S3

I mentioned the Automatic WordPress Backup plugin briefly in my post about Standing Cloud. I've now installed and configured it, and aside from a few UI issues, it's great.

You'll need an Amazon Web Services / S3 account to get started. Grab your access key and security key from the security credentials part of your account. Download / install the backup plugin (here it is on wordpress.org - search inside WP for "automatic wordpress backup" and it should come up).

You choose what to backup. You really do want to check all the boxes -- your database, all your files, plugins, themes, uploaded content, etc. On the site in which I have it installed, each backup is about 100MB.

Backups are kept for a month and then deleted, and monthly backups are kept for a year. At 100MB / backup, that's about 3GB (plus a bit more for keeping those monthly backups). At Amazon S3's pricing of 15¢ / GB, that's.... under 50¢ / month to have your site backed up every single day.

You can restore directly from within the interface as well, so this is a pretty turn key system. The UI is all in one page and a little clunky, and I did make some comments on what could be improved:

  • In general, I would split the one big page into several tabs. A backups tab, a restore tab, and so on.
  • if you add a progress indicator, or in general display a floating message that says “backup in progress”, then people will understand that a backup is happening.
  • I would also do an immediate check against the access key / secret key and put in a green checkmark to indicate that it has connected correctly – with the secret key hidden, I’m always unsure if I’ve cut / pasted it correctly.

Of course, what about VaultPress, the commercial service? Well, in beta, they're charging $15 / month per blog at the Basic level, $40 / month for Premium. Or, um, 30x - 80x more expensive than doing it yourself with this plugin and Amazon S3. Their FAQ says that they are also doing security monitoring -- aka figuring out when your blog is hacked. And yes, most people are going to have to spend some time figuring out the Amazon interface and so on. But I really can't see how they can keep pricing at this level with this kind of free plugin available.

WordPress is a yacht, Drupal is an aircraft carrier

Why Drupal? is a great article by designer Nathan Smith on why he's moving to Drupal. He's written a book about Textpattern, and used Expression Engine extensively, and also mentions TYPO3.

I've snipped only this very small section on (essentially) why not WordPress, which is similar to what I was trying to get at with my Evolving Drupal UX by Building Products post:

Themes and modules are derivatives and should be licensed under the GPL

I've spoken out in support of Matt Mullenweg, WordPress, the GPL, and general open source community principles before. It seems like we keep having this discussion, and that it often degenerates into a battle of personalities.

Here's what I continue to believe about licensing and the GPL, which started as a comment on Why the GPL does not apply to Premium WordPress themes, which is part of the #thesiswp running battle. For context, you may also want to watch the Chris Pearson / Matt Mullenweg interview.

Bottom line: Themes and modules are derivatives and should be licensed under the GPL. You can use trademark and other non-code protections that will let you sell them and limit distribution if that is your chosen business model.

The rest of this is the comment I posted.


The way that PHP is executed means that everything runs together in the same space, with no separation (this is a simplification, but essentially correct). So, not the same as the red herring about software apps and operating systems (this comes up all the time).

The Drupal community generally agrees with WordPress in that all themes and modules are derivatives and thus must be licensed as GPL *if* you distribute.

Bluehost.com Signup now

Shared Web Hosting - BlueHost supports both the Drupal and WordPress open source projects, and is a recommended host for both.

Evolving Drupal UX by building Products

With the release of WordPress 3, there's a whole new set of discussions about Drupal vs. WordPress.

I'm going to try and explain my views on UX in Drupal, once again using the lego analogy.

First, I propose that you need a defined purpose to build great UX. WordPress focuses on blogging, and thus has an excellent blogging product.

With WP3, they've even integrated their version of multisite / Aegir out of the box. BuddyPress is an example of a product that sits on top of this base infrastructure. So now WP does blogs as well as multi-user social groups / communities.

In Drupal, we've optimized for a big box of lego. And there are a LOT of pieces in there. Pirate bits, space ship bits, viking bits. And lots of blocks that fit together pretty well if you're creative and pick through looking for ones that match in colour and so on.

I could talk about the WYSIWYG editor that ships with WP as an example. They took the base piece, customized it, and now have a rich text editor piece that fits exactly into the blogging product. It's not even a block! It can't get re-used easily with all these pirate bits! Sometimes, it's OK to plug in that perfectly shaped lego piece that isn't really a block at all.

But that's really hard to do if you don't have a defined purpose. Because something that is perfect for a large community site isn't going to be great for running an intranet. And an open everything access & permissions model is great for the former, and dangerous for the latter.

So, if we want to improve Drupal UX, we can't just take out a big UX brush and improve everything. There are certainly base building blocks and flows that we can improve, but on top of that, it will be need to be optimized for different use cases.

Just over a year ago, I proposed that Drupal could be a great social community out of the box (as in, core install profile). I'm not so sure anymore, but I think we should continue to have the discussion "What should Drupal do out of the box?" so that a) new users have a reason to use core to accomplish a task beyond "it can build anything" and b) we can experiment with optimizing UX for that purpose. This will teach us lessons that can be re-used and rolled into all Drupal-based products.

And, in general, I would like to see more people trying to build nicely polished products that have a defined purpose: this is what will move us forward in the UX department. Dries has a discussion on the business model of products / distributions that is important - because we'll need to fund development over time.

Can we turn Drupal into a game (and make the first level easier)?

the core problem that faces companies trying to build growing businesses around software — dealing with the fact that different users take advantage of different features, and that applications tend to grow more complex as their user bases grow. It seems to me that the fashionable answer to this problem is to claim to be an auteur of application development, and to only build the features that are appealing to you. But that’s not the way big software companies work, and it’s really not the way they should work. If you’re in the software business, this presentation is a must-read.

via rc3.org

I agree - this presentation is a must read (emphasis mine). Go grab the PDF of the presentation from DANC at Lost Garden.

I have been saying for a while that Drupal needs to actually cater to the bottom of the pyramid - so that more people can make it up the pyramid. The infamous "learning cliff" of Drupal means we need to make the "first level" of Drupal that much easier.

This post of moving from Ning to Buddypress would be pretty much impossible in Drupal - and that's a problem.

Questions for Backbone Magazine - Fixing a stale web site

Back in September 2008 I got contacted by Backbone Magazine to answer a couple of questions about, well, corporate websites and business usage of the web in general. I forgot all about it, until my friend Laura in Ottawa was reading it and saw my name. It's apparently in the current issue (which I haven't seen the print version of). It's on the site as "Fixing a stale web site", by Andrew Rideout. Below are the original questions and my answers. I've added a few notes in parentheses and added links to things.

The 3 Stages of Ecommerce Tools

I've been having some discussions with Travis from Hop Studios about ecommerce. Hop Studios are ExpressionEngine experts, and also good friends of mine. EE, as I've written about before, is a very capable CMS with a custom data builder much like Drupal's content construction kit (CCK). Its only failing is that it's not open source :P

I've been Twittering a bit about ecommerce, so people have been asking what I'm up to. The motivation is that I've recently had occasion to dig into ecommerce with two clients -- one where it looks like their current 'store' will need to be replaced, the other has just some simple PayPal buttons today.

I put 'store' in quotes, because it's not really a store today ... it's kind of a glorified cart. I did a presentation a year ago where I talked about the 3 Stages of Dynamic Web Sites, and this got me to thinking about ecommerce tools. I have very little experience running or implementing ecommerce, but as I began to look around, it's clear that they roughly break down into 3 stages as well.

1) Hosted pay buttons

This is the PayPal "Buy Now" or Google Checkout. In those hosted systems, you define a "product" and it generates code you can stick on your site. No inventory, limited or no "dynamic" options, no ability to "keep shopping" or anything like that. The plus side is that it works everywhere and has little to no set up costs -- it's all per transaction.

Use this if you have a handful of products. It's great to get up and running IMMEDIATELY -- if you have product to sell, don't wait: start trying to sell it and refine your techniques and workflow. Anything else like automation, fulfillment, etc. can wait -- start selling and shipping your stuff to see if it sells. If you have high traffic that you are overwhelmed...you've also got the money from selling to invest in better tools.

2) Carts

These can be little scripts you install locally, or be hosted as well (e.g. FoxyCart, which is something I found through Travis because it integrates with EE as FoxEE). There are a probably hundreds of options, with integration with many different system. They are again different levels of integration into sites -- the critical factor is often trying to make sure there is one login rather than a dual login system. Carts that can support a single login or login integration with the "host" dynamic system (EE, WordPress, etc.) start edging up into the category of full stores.

Use a cart if you have a larger number of products, especially complimentary products where you might want to buy two items together, or keep browsing the site and let people buy multiple items. The lower end carts are only a bit more sophisticated than pay now buttons, and as I mentioned, the higher end carts are similar to full stores. Carts don't usually have the full analytics, specials, inventory, and full member logins that stores do.

3) Stores

There are many full store scripts as well. I'm most interested in the mid range stores. They are open source or low cost, are relatively full featured with memberships, have good extensibility so you can customize them or integrate them as needed. They are platforms that can grow with you. Oh, and as per usual, I'm biased towards open source solutions :P

I had heard lots of good things about Elastic Path (they're a local Vancouver success story). So I headed over to their site. Luckily, they have a very good sales guide, and their cost page answered all my questions in two easy sentences. One was "If your annual online revenue is less than $5 million, Elastic Path Commerce is probably too expensive for you", and secondly "If you're looking for free (or nearly free) open-source platforms or entry-level hosted solutions, Elastic Path Commerce is probably not for you". Great -- I think it's fantastic when companies help you self select AWAY from them.

osCommerce is the grand daddy here -- it has had a bad rap for design and funky code. I think I can safely say its built with "older" techniques, and I don't see a from the ground rewrite happening any time soon. I've toyed with it in the past, and I just don't see it as anything other than a legacy app.

Magento Ecommerce is the company / software I've had my eye on. The front page says "fastest growing ecommerce package" with 525K downloads. It's licensed under the Open Software License (OSL) 3.0. And yep, I hadn't heard of it before either -- there's an explanatory PDF with more info if you're interested in open source licensing details.

There's a WordPress integration plugin, and a large community of extensions from open source to commercial in the Magento Connect marketplace. While Magento is open source, it's mixed license and stewardship by one commercial company may make less technical users feel more comfortable. You can even buy support contracts starting at $42 / month -- this is a no brainer both for consultants deploying Magento, and for customers whose livelihood depends on the software.

Lastly, Drupal-based solutions. Drupal's strength at a very high level has always been two things: 1) you can get a single login and access many different functions from community to ecommerce and 2) it's really extensible, so either through configuration or clean programming, you can customize the base solutions. Both of these are good features for ecommerce stores. There is the original Drupal Ecommerce package, and the newer Ubercart team.

The downside is that Drupal is not, at this point, a drop in and configure your store. I can see Ubercart edging in that direction. I've been bugging them for quite some time to do an install profile...the next piece of "just" an install profile would be an install profile "wizard" that walks you through setting up different types of stores. That being said, there are lots of examples of Ubercart-powered stores.

Update 2: I got lots of feedback from Drupal folks that read my site. @gheydon, author of the Drupal Ecommerce package, said on Twitter "I have been working a lot on e-Commerce and it is trimmed down a lot, and will have a very basic store by def ault, and expand on it" There is also a list of Drupal Ecommerce showcase sites.

@mikey_p pointed out another advantage of a full Drupal solution on Twitter "The downside as a developer 4 dual platform CMS + Store is learning 2 systems. w/ Drupal solutions, I cn theme th e store & site both."

In the comments, stephthegeek from Top Notch Themes pointed to an Acquia + Ubercart install profile...that's what *I* was thinking about, so I'll be watching it eagerly...

When should you run a full store solution? Well, you've got a mix of content and community, you sell a larger number of products, you need inventory control, and you intend to keep investing in the technology that runs your store.

In a  fourth category, you've got many different ways to sell items on various hosted services. For examples, lots of artists and craftspeople use Etsy to run a store and sell their products. The newly launched Foodzie specializes in being a sort of mall for "artisanal" food-related stores and products. Actually, there are probably again a couple of hundred more in this category -- Shopify in Calgary, etc. etc.

I'm specifically not very interested in these types of hosted "mall" systems (in this article) unless you can map a CNAME or otherwise use a web address under your own control: ecommerce is all about driving web traffic across buy buttons, and pushing that traffic to someone else's domain may not be in your best interest. The best of these would offer APIs to have the benefits of a full store functionality that is maintained for you, as well as integration directly into your own site / domain.

Update: got some feedback from @jbillingsley (thanks!) that I should probably include eBay and Amazon in this fourth area, since you can do a variety of hosted stores and other types of sales. Again, this area I'm specifically not really focusing on -- I want stuff that you can integrate extensively into your own site and domain.

To me, ecommerce feels like there is still a lot of room for innovation. There is now little to no hesitancy about buying online (compared to earlier times). Once your store is up and running, you can use marketing and analytics to costly be tuning how much money you make: you are in control. It kind of feels like the early days of online advertising.

I'm leaning towards Magento as something worthwhile to spend more time with. It's open source (although I really do need to know what exactly the OSL means to me), it is a full out of the box store solution (I installed it via their public SVN repository, which impressed me), and it has a history of integration with content management systems.

I'd like to hear about other people's experience with ecommerce scripts, especially if they are open source stores.

Omnibus: BBQ, Jungle Disk, WordPress etc.

Well, contrary to the lack of posting here, I actually have a ton of stuff tumbling around my head right now. And so, an Omnibus post that covers a couple of different items.

I've been heads down busy and haven't been attending (or organizing!) any social media type events lately. I did get out Wednesday night to attend the Freshbooks / Redwerks BBQ. Look, there's me holding a puppy (photo by Ianiv)! It was a beautiful sunny evening and the Redwerks rooftop patio is awesome. I ended up manning the grill, my secret ploy to meet everyone (at least, everyone that was hungry). It was nice to meet some new people and catch up with a bunch of regulars.

I'm trying Jungle Disk for my personal backup. In short, it's a cross platform app that both serves as a kind of iDisk as well as some simple backup operations, except that your data is actually stored on Amazon's S3 service. You pay a one time license for the application (and you can install it on as many computers as you want), and you pay as you go for storage. And can get your files from any machine.

I'm currently backing up my Documents folder to a Backup area, and then I also have a second "bucket" (that's actually Amazon tech talk, but it makes sense) that is a true archive -- I copy old stuff there and delete if off my local disk. I'm still debating whether it's worth it for me to put my entire iTunes collection online -- it would solve being able to get my music from anywhere, and it would cost about $12 / month (for 60GB). Not sure what the calculation is for streaming that music some of the time? And yes, this is like MP3 Tunes music locker.

So that's my use, but Jungle Disk *also* launched the WorkGroup edition -- which is the same thing, but lets multiple users in a company use it from a single Amazon account, with things like their own storage space as well as granular user permissions. So you can have a Finance folder that only senior management can access. And if you don't have senior management, then just think about how great it would be to have a small business shared file system that you can access from any computer, anywhere. That's $2/month per employee, which I think is a good price.

WordPress! I've been mucking about in WordPress core and theme code. Once was with Rachael's site, which I upgraded using the FTP dance. I really hate not having command line access.... The second was for the Bootup Labs Blog, which I moved off of WordPress.com so we could add some more plugins and do stuff like have a feed for every category / tag. Except, when I went digging around, it seems that the main feed is the only one that is ever injected into the link rel header. So, here's my feature request if you're interested in the gory details: http://trac.wordpress.org/ticket/7190 -- heck, I might even submit a patch :P