Web Development

Tools or resources useful for web development

Asking questions kills innovation aka learn to do by doing /via @rtanglao cc @sherrett

So what's the alternative? Substitute early action for never-ending analysis. Figure out the quickest, cheapest way to do something market-facing to start the iterative process that so frequently typifies innovation. Be prepared to make quick decisions, but have the driver of the decision be in-market data, not conceptual analysis. In other words, go small and learn. Pitch (or even sell) your idea to colleagues. Open up a kiosk in a shopping mall for a week. Create a quick-and-dirty website describing your idea. Be prepared to make quick decisions.

The future can't be analytically derived. Of course it's almost always valuable to think comprehensively about a new idea. But maintain a healthy balance between analysis and action. If you get stuck in "What about..." loops, you'll never get the results you seek.

My friend James' personal blog is called 'Learn to do by doing' and that's what this post is about. I've quoted the last bits, which call out the punchline - you need to break out of asking questions and just *do*.

Posterous doesn't work with Drupal unless blog module is enabled

…so the moral of the story is that you need to hack (*gasp*!) the blogapi.module. Starting at line 187, I basically just reset any incoming requests for type "blog" to type "post" (which is the machine name of the content type that I use on my site).

// BM: go ahead and do the check if it isn't blog

if ($blogid !== 'blog') {

  if (($error = _blogapi_validate_blogid($blogid)) !== TRUE) {

WYSIWYG image upload Drupal module

Features yet implemented

  • Easy and fast user interface for image uploading
  • Supported a lot of editors like TinyMCE, FCKeditr, YUI (Every editor supported by the WYSIWYG Module)
  • Supporting ImageCache. You can choose presets in the dialog
  • Use custom image sizes using drag&drop

Vyatta - virtualization for networking devices

Think of it:  Networking racks previously full of different devices now shrinking down to a single server with CPU power to spare. What’s the savings in CapEx and OpEx you can gain from eliminating entire classes of devices?  Space and power savings?

The 100 Mile Client Roster /via @emmajanedotnet

via slideshare.net This is a very interesting concept. Essentially, build a local business network of small businesses, with you as web tech guide.

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.

AdHack theming port on oDesk

I just posted a job on oDesk looking for someone to help get AdHack from Drupal 5 to Drupal 6. Here's the cut n paste of the description:

We are migrating our existing website from Drupal 5 to Drupal 6 and need an expert Drupal themer to help with the conversion of the theme.

The current live site is available for review at http://adhack.com

It runs on Drupal 5 and uses common Drupal modules such as CCK and Views.

We already have the Acquia version of Drupal 6 running on a development server. This is an initial port so we can migrate to Drupal 6 and add more features over time. This may lead to on going contract work in theming and light development.

Skills required:

  • Existing portfolio and experience with Drupal 6 theming.

  • Drupal theming

  • HTML

  • CSS

  • PHP

  • custom work with the template.php file

  • customization with Views module

The main skills needed here are familiarity with both the Drupal 5 theming system and the Drupal 6 theming differences. There are lots of custom views with accompanying snippets in the template.php. This is an initial port so that we can get everything running on D6, and then optimize from there.

It's my estimation that this would be about 20 hours of work for someone that charges $25 an hour, or 10 hours of work for someone that charges $50 per hour :P This is an hourly job, that's just my estimate of what a first cut port would take.

If you're a developer but know the theming layer, this would be a good fit: there is more development-centric work to be done on various custom bits and pieces.