Drupal, Personal Publishing, ePortfolio

On demand book printing - bits come to the real world

Espresso 2.0 Book Printing Machine @ Oscar's

I'm fascinated by tools and experiences that let us "DIY". Whether it's using blogging tools to easily put content online, or cooking things from scratch, I like the fact that many things that seem hard or specialized are in fact things that anyone can do. With the Espresso Book Printing Machine, publishing a printed copy of a book has just joined that list.

Oscar's Art Books in Vancouver is one of only a handful of places in Canada that has an "EBM". The Espresso is made by a company called On Demand Books. They're looking to sell the machines to bookstores, universities, and other places where "like minded" people gather.

Myth of a core #Drupal team /via @greg_harvey

And the core Drupal team wonder why they don't get more help from all the Drupal contractors out there.

This was a comment in a thread on Greg Harvey's blog about duplicate issues. I see similar sentiments a lot. Here's the comment I left:

There is no core team. That's the myth. There are people who do more work, and there are version maintainers ... but other than that, it's whoever pitches in.

So, try not to think about "them" or "the core team" -- because it's simply a group of people that have decided to put more time in. The exact people grow and shrink depending on time and interest level, and usually per core version.

How do you get involved with Drupal core? Pick an area that interests you, and submit a patch (or review a patch, or test a patch, or design a mock up, or write some documentation). The barrier to entry for that first post is surprisingly low. And yes, from there on you have to put bit more time in - because there are many many "single post" contributors, who for whatever reason, don't follow through.

But it's worth it, and I encourage you to start by starting. Who knows, you might become part of the core Drupal team :P

Form follows function: the growth of Drupal themes will directly mirror the growth of custom distributions

Yes, I've also read Morten, Todd, and now All Drupal Themes. Here's my take:

The growth of Drupal themes will directly mirror the growth of custom distributions. We are currently in the "it's so easy, we click together lots of Drupal modules from scratch" phase. Once there are more Open Atrium and ProsePoint type of distributions, with known modules / module options and features, then you can build great themes to support those functions.

Form follows function. I've tried to explain this a million times in the D7 process. Having a "great" core theme is impossible when we don't decide what kind of site Drupal should be optimized for out of the box. This same holds true for trying to build and market a theme that will apply and work well with the many vastly different kind of sites that one can build with Drupal.

Drupal out of the box: let's make a community

First off, I need to apologize to @webchick for being called away from the Drupal BoF at Open Web Vancouver last night. It was great to have her here to do a run through with @chx1975 of where we're at with Drupal 7. I was around just long enough to once again raise the issue of what the default install profile will do.

We've come quite far in major core improvements, but we don't have a story for what Drupal is when you do a default install. What should Drupal do "out of the box"?

There is a placeholder issue for this now: #483987 Decide on direction for default install profile. As I've seen the UX process continue, I still see us focusing on building and constructing. The changes there have been excellent, but I think we're missing an opportunity to have a truly great out of the box experience. My codename for this is "drupaloob".

The first step is deciding the story for this. WordPress is a blog. We are not a blog. We are a multi user system. Can we turn on a minimal OOB experience that showcases some of our multi user and other strengths? In the words of President Obama, "Yes We Can!"

My personal opinion and outline for this is that we should ship with a "Community in a Box". I've documented it on groups.drupal.org. Regardless of the details of comments on or off, promoted by default, and other finer points, here is my user story for this Community in a Box:

A community site with front page articles, a community blogging section, discussion forums, and shared image galleries.

Anyone is welcome to sign up for an account and participate in the forums. After some time in the forums, users are invited to become contributors, and can post blog posts and photos, as well as submit unpublished articles.

The blogging functionality is a community multi user blog. It is not meant as one users blog, but rather a large community that can post quick thoughts responding to each other and sharing their ideas. (Note: this is in here because people get confused about "blog" functionality -- this is meant to highlight that having a community blog is not the same as a single user blog, so don't expect to be able to change titles and designs etc. -- your blog posts are in a shared, community space)

Editors are around and police the forums, as well as reviewing and publishing articles and other material for the front page.

The photo galleries are shared galleries: like the forum and the community blogs, users upload them to share, rather than in their own space. There are weekly suggestions for new gallery categories, and users can also tag photos with whatever they like to mix and match how the photos are grouped.

While I'm piling wishes on top of dreams, I'd even like to use the wizard that has been in core since Drupal 6 to make several parts of this OOB experience optional. That is, right at the beginning, users would have two options.

One would be to do an "express install" that would install everything with the defaults as I've outlined above.

The second would be to engage the wizard and answer a series of questions and options:

Do you want forums? yes/no
Do you want a community blog for contributors? yes/no
Do you want a community photo gallery? yes/no etc.

What do you think? What would you want people to experience when they first install Drupal 7? Edit the wiki, leave comments, or create some patches against default.profile.

DC Drupalcon 2009

Grabup Image

I'm just wrapping up 4 days of this year's North American Drupalcon in Washington, DC - http://dc2009.drupalcon.org. First off, the the DCDC team led by the folks at Development Seed have done a fantastic job. Everything from the venue to the identity design of the whole conference have been most excellently pulled together. They've set a new bar for organization and professionalism. And a new high of almost 1500 attendees, up from 900 in Boston a year ago.

For me, I've really enjoyed "coming back". I didn't make it to Szeged in the fall, and I've spent the past 8 months not having Drupal as a day job. That has, in fact, re-energized me about being involved in the Drupal community in the context that I feel like being involved. I can work on concepts and projects that interest and excite me, without any ties to clients or projects or commercial interests.

This time around, I didn't give a presentation around install profiles, although I did sit in on the session. I think we ended up with the catalyzation of having lots of the different overlapping solutions work together. Oh, and by the way, any bitching about install profiles not doing packages or post install stuff or any of a host of other things -- we know, we've always known that, it was hard enough to get them in, never mind boil the ocean and have them do everything else. It took from 4.5 through to Drupal 5 to get them in at all! Anyway, core hooks for import / export sounds like a very achievable goal for D7.

The presentation I did give -- Practical Semantic Web (and Why You Should Care) is up on SlideShare and also available as video on the Internet Archive. More on that in a complete post.

I said at the end of my presentation that Drupal's mission is to "evolve the web". I'd like to be a part of evolving the web, and I see my involvement in Drupal as keeping in touch with that.

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.

Donating to the Fields in Core Drupal code sprint and other projects

Dries recently wrote about funding a code sprint for Fields in core. Acquia is committed to funding various bits and pieces and supporting it directly. I know what that's like -- Bryght and some of our clients funded many early Drupal improvements and gatherings directly.

So why should you support this particular code sprint? Well, for one, it means we can ideally have one of the key innovations of CCK / Views directly in the core of Drupal, making it a more robust / scalable / flexible system. Me? I just want to kill the profile module and move a few other alternate field-light systems to a native field solution (e.g. webform). Don't have money to donate? That's OK, head on over to the Fields in Core group and participate with golden code. Or golden UI mockups. Or golden patch testing. You get the picture...

I, personally, have a history of trying to round up funding for various improvements. Since I can only code well enough to convince other people it should be done better, I try and spend my energies describing possible solutions or rallying money/resources behind such ideas.

I actively encourage companies and individual contributors to put up donate buttons. I've recently been in need of large / multiple file uploads, so I approached the SWFUpload maintainers, helped clean up the issue queue, and set up a big chipin right on the project page. That money will go directly to developers working on making this solution better.

Privatemsg is another module that has a donate button, but they are actually few and far between. I've made some comments on commercial interests on Drupal.org itself, but at the same time, I absolutely want to help support a commercial ecosystem. One way of doing that is for module maintainers to put donate / contact me buttons directly on their module pages. Why, for instance, doesn't Earl put a donate button on the Views project page?

The danger, of course, is tying or expecting compensation. You share (primarily) for "community ROI" -- every piece of code, comment, design, support request that you interact with in a larger community is something that you are giving ... and the return on your invested time WILL come back to you many fold in a number of different ways. Increased exposure, increased business, better code, more connections. Direct participation in the community is worth MORE than money.

But look at the code you use and the people behind it. If you feel you can't commit time or your own resources, money is a perfectly acceptable substitute. Any of the items I've mentioned here are things I consider worth funding. Pick one of them, or think about a donation directly to the maintainer of some module that you use regularly.

oDesk - down the virtual, global company and collaboration rabbit hole

I just created an account on oDesk and, frankly, have fallen down a rabbit hole.

Of course, Drupal was the vector once again: I had Daryl leave a comment, with his username linking to a trends page showing Drupal jobs on oDesk. This intrigued me, so I dug into the system a little more.

For starters, there is a Drupal 5 test. I haven't taken it yet, but I fully intend to kick the tires on it. The testing system is run through Expert Rating. I want to explore this more, maybe even to the degree of developing tests for modules and components ... this feels like a useful function that could kickstart a lot more items.

Finishing up the Drupal bits, it looks like the oDesk Community section is Drupal-powered. The oConomy section is particularly interesting -- you can see that $48M worth of work have flowed through oDesk, and that the odometer is part of a custom module that they've developed (view source shows you all this).

The Global Provider Map has tons of interesting information -- Canada has 3253 Providers, with an average hourly rate of $24.92, and average feedback score of 4.29. And then there's Iceland -- 24 providers, $50.19 an hour average. Where the hell is Bouvet Island? The Maldives?! 11 providers...

Do work, get paid. I'm excited to think about how this can be used by startups especially, or to prototype startup ideas. Or, for that matter, working with global communities to build their knowledge worker populations. Hey Evan, it's time to bring the world to to Whitehorse, and vice versa.

I could go on to describe some details on how this works -- a crazy desktop app that monitors your "Activity" levels at the computer, takes screenshots and webcam shots (yes, webcam shots -- wearing pants is required), and creates your time log. But, I'm really just scratching the surface myself as I familiarize myself with the system. Has anyone out there used oDesk before? As a programmer or a buyer? I'm interested in feedback from people that have actually gone through the process...

The rabbit hole? I can truly run and interact with teams, companies, and businesses all over the world. This is the ad hoc network of professionals with varying sets of skills that I've been thinking about since a bunch of university friends and I sat down in 1995 and thought about online pizza ordering for Toronto.

Update: OK, I took the Drupal test and got 92%. Not bad, and I was impressed by the depth of some of the questions.

Knight News Challenge prep in Vancouver: Digital Media Experiments to Innovate Journalism

Coming up next Monday, October 6th at the Raincity Studios offices is a Knight News Challenge info and prep session.What is the Knight News Challenge?

Want to win funding for a cool online community project?
The Knight News Challenge is in the third year of a program that gives away $5MM a year to innovative online projects that support online news, community discourse and social media in specific local communities. Come to this meet up to find out how to apply, share ideas, and get a chance to talk to KNC evangelists.

This is an interactive, hands on discussion designed to give you the knowledge to apply with a great innovative idea. All ages welcomed.

The press release from the beginning of September details the program. $5M is available for "digital media experiments to innovate journalism".

Long time blog friend Susan Mernit is running these prep sessions -- Seattle and San Francisco are the next two places on the list. If you're accepted past the first stage, you can enter the News Challenge Garage for further mentoring and feedback.

A lot of code ends up being built in Drupal for this yearly challenge. Knight took notice of this, and also has the Drupal-specific Knight Drupal Initiative (KDI).

This is a really good way to get some funding to try a true R&D-style idea, which might just be the beginning of a whole new startup. If you have ideas about the future of news, come to the Raincity Studios offices to find out more next week. (and yes, please sign up on Upcoming or Facebook).

Sugar On Drupal

Have you seen the new OnSugar.com hosted blogging platform? It's Drupal powered, built by the fashion / pop culture publishing empire that is Sugar, Inc. (CrunchBase link for background info).

In many ways, it is what I have often been waiting for. Drupal is a very good multi user system. This is not an install profile, spawning sites, nor is it as simple as "one" site. It is a very interesting implementation of a hosted blogging platform.

I would like people to look at it, and test it, and think about it, because this is the kind of stuff you can build with Drupal. You can theme the node forms, you can add AJAX popups / overlays, and you can add innovative features while stripping out the knob twiddling options for the person that just uses the thing.

There are two features that I see as truly innovative. The first is the image insertion.

OnSugar Image Insertion Screenshot

You've got your images, and upload and image...and then you've got "Search Getty". You know, the largest commercial database of images online. And then ShopStyle and FashionWeek, two other Sugar properties. Wow: a shared platform where any one user has easy access to images across the system. That's fantastic! I had previousy done some mockups of a Flickr Search button for TinyMCE -- one can easily see OnSugar expanding the images to include (or adding the functionality to the other insertion buttons? top links? top videos? quote the top blog posts, and so on...). A mass system built on sharing (or at least shared access), imagine that.

The second innovative feature is the themes. Well, sort of. Themes and control for end users is HARD. There are a list of shared themes that you can either use directly, or that you can copy. The copy part is magic. You can copy a theme, rename it, edit it, and then even share it back out again to have someone else use (or use as a base for their own copy/edit/share). There's that sharing again! The theme layer seems really comprehensive. That is, you can edit CSS, the page outline, post outlines, and even comment outlines. Seems a bit hard for the average end user, but it IS cut and paste simple ... so some people will build cool things, and others will cut and paste it into their own creations. The template reference file shows you the snippets you can use. Is this Smarty, or did they build their own engine?

Anyway, I hope you kick the tires on the system, and think about what it means. My co-founder at Bootup, Danny, met with Brian briefly while down in San Francisco, and I look forward to continuing the conversation. You can find me at http://boris.onsugar.com, and you'll find some other Drupal folks like walkah kicking the tires as well.