header photo

via positiva

projects

Power to the people: a new approach to Drupal

Late Friday afternoon, the first news broke about a project that I've been working on for the last few months. Internally, the Lullabot folks have been calling it "Project Codename," because we like recursively cheeky names. The goal is pretty ambitious: build a dirt-simple hosted service that lets people with great ideas leverage the power of Drupal.

For the past couple of months, a lot of cool things have already come out of the project for the Drupal community, though we haven't been able to say much about what was going on behind the curtain. SimpleViews, my new task-oriented front-end for the Views module, is one example. Rather than constructing content listings bit by bit, it lets site-builders make a few simple choices and get quick results. Nate Haug has been building similar tools for the CCK module; Angie Byron has been working with user experience experts to streamline Drupal's administrative interface; and Jeff Robbins has been hard at work on some amazing tools that allow site builders to customize a site's layout and CSS skins with point-and-click, drag-and-drop simplicity. Subtler stuff, like John VanDyk's recent improvements to the Views Bulk Operations module, have grown out of the tools we're building for simple, customizable administration panels.  Continue reading...

Recent Drupal hacking

Aside from the usual work-related stuff, I've been doing some serious Drupal tinkering over the past couple of weeks while getting the blog back online. (I know, I know -- startling!) A couple of the highlights include:  Continue reading...

Eyes On Sales

EyesOnSalesAbout a year or so ago, I picked up my first soup-to-nuts Drupal site development job. Angela Byron, who I now work with a Lullabot, referred me to a guy building a web site for sales professionals. He was converting existing content from a homegrown CMS that had been running for a couple of years, and needed a Drupal guy to put things together.

Given the in-my-spare-time schedule and somewhat fuzzy scope, it dragged on for quite a while, but for a couple of month now it's been up and running successfully. While it's not as wild-and-crazy as MTV or The Onion, it led to a number of cool patches for the Views module (hello, custom arg handling!) as well as some enhancements to modules like Profile that may be rolled into future versions. In addition, it was the first time I put energy into using themed views for almost every listing page on the site.

I didn't design the theme -- a dedicated graphic designer put it together and I like it a lot. I just took the raw HTML template and adapted them into a Drupal theme with a support module to handle the tricky stuff. It turned out pretty well, all things considered, and I'm really happy with the results. If you're interested in checking it out, visit Eyes On Sales.

Make your own CD envelope

After all the Drupal stuff, I figure it's time for a change of pace. I'm in the process of cleaning off my old hard drive and setting up a spiffy now 400 gig drive. That means happy discoveries as I trudge through folders full of years-old "I'll get to that later" files.

One of the ones I came across tonight is a spiffy little printable template I made one evening when I needed an envelope for a mix CD I'd made for a friend. Just cut on the thick dotted line, fold the four flaps in on each other, and glue or tape the thin flaps to the main 'backing' of the envelope. Cut a slit on the light grey line if you want to tuck in the envelope's "flap."

One down, hobity-jillion to go

So, I mentioned in my previously posted Drupal To-Do list that I wanted to whip up an Amazon 'reading list' module for single and multi-user blogs. Thanks to the holiday weekend, I put some time into it and a rough initial version is now available in the Drupal.org repository.

I want to get a few things cleaned up before I put an official project page up for it in particular, the theming leaves something to be desired and I want more options for configuring and displaying the 'states' a given book can be in. It also requires a patched version of amazon.module for Drupal 4.7... something I figure most people aren't using at the moment.

Still... progress!

My Drupal To-Do List

I've spent the last couple of months working seriously with Drupal, pushing through a few pet patches and trying to help out with others that came down the pipe. I'm already looking forward to 2006, though, and the projects I'd like to tackle. In no particular order, my list of Stuff I Want To Implement Or See Implemented In Drupal.

Generalized voting infrastructure

I've already put a bit of work into this, but I'm hoping to hammer out ideas with the developers of other node voting modules before moving much more. There seems to be consensus around the idea that we need flexible multicriteria voting, but I'm trying to figure out what the data footprint would be in a system with lots of nodes, lots of votes, and multiple modules all trying to implement different kinds of voting data in the same tablespace. Perhaps the answer is that it's impossible -- like the node security system currently in place, only ONE voting implementation could be active at a given time.

Reading List module

This one would let every user on a Drupal site maintain a list of Amazon ASINs in various states: Want, Waiting To Read, Reading, Finished, Discarded. They'd be able to keep notes on their thoughts on the book in its current state ("Really looking forward to starting this one, as I've enjoyed previous books by the author..." and so on) or create a full Amazon node as a review upon completion. User-specific or site-wide reading lists, and "currently reading" sidebar blocks, would be easy to generate from this data. It's a must-have for quite a few bloggers. The excellent Amazon Tools module already handles a lot of the backend work for this.

Relationship management system

Druapl's built-in taxonomy system handles classification of information pretty well, but it manages implicit relationships between pieces of content, not explicit ones, and that's very important distinction. Image.module's gallery functions and the inherent limitations of Forum.module demonstrate the drawbacks, I think. It's a testament to Taxonomy's strengths that it can be made to do those things, but solid relationship management infrastructure would be much, much better. I don't think I'm the person to design this system (OK, I KNOW I'm not), so it's exciting to see other smarter people tackling the problem.

Sparklines Filter

Sparklines are a cool concept in data presentation. They imbed a tiny, tiny micro-graph of small data set right in the text that you're writing. The idea is to take a small set of points and (United States yearly unemployment over the past decade, for example, is just 10 numbers) and turn the set into an instantly grokable icon. Ideally, they should be no taller than the line of text in which they're imbedded. There's already a PHP library for generating them, and someone discussed the possbility of Druapl integration months ago. Clean syntax for generating and imbedding a Sparkline is the real need -- perhaps something like [barchart:1.3,2.1,3,1.9] for a simple example? I don't know. There's enough flexibility in the Sparklines library that exposing all the options could result in option overload.

Comic.module rewrite

Ah, Comic.module. The first project I really tackled for Drupal. The idea was great -- create a module for posting and navigating strips in a webcomic. The implementation, sadly, was lacking. I broke more coding conventions than I followed and never implemented the features I really wanted: clean organization of issues, storylines, and so on. Once a generalized relationship API solidifies, I'd like to use it as the basis of Comic Module 2.0. Support for multiple comic strips per drupal site would be a nice bonus.

Node-based comments

This one's controversial in the Drupal community, mostly because comments have been around in their current form for quite a while. Changing the system raises important questions about performance and compatability. I think the benefits of a well-implemented shift would be considerable, though. All features available to nodes -- revisions, file attachments, path aliasing, etc -- would be immediately available. It'd be a huge project, but it's soooooo tempting.

Microfiction.module rewrite

Eons ago, when I started http://www.ferretshock.com, I ran a weekly microfiction contest. All entries had to be exactly 100 words long. Unfortunately, that meant people had to hand-count their entries before posting them on a PHPBB message board. When I started reimplimenting things in Drupal recently, I decided to add that validation automatically. This, of course, led to the realization that no hooks existed in comment.module for validation. Which led to my pushing a core patch. Which led to my getting involved in the first wave of the great FormAPI migration. Years from now, old men will sings songs of that adventure. Anyhow.

The new version of Microfiction would be generalized as a 'contest' module, with optional rules for each type of contest. Photo contests would require an image file attachment. Writing contests would have variable wordcount requirements. Caption-the-photo contests would hide only allow a single line of text to be entered. And so on. A ratings system and 'winner hilighting' would be built in.

Timeline.module

This one's a bit of a holy grail. Way back in the day, I set up http://www.havana-mod.com as a place to organize thoughts on the graphic novel and RPG setting I was trying to assemble. What I really needed was a soup of interconnected data -- a Who's Who list, an encyclopedia, and a timeline combined into a big soup of data. I have some ideas about how this would be implemented, but it too relies on the generalized relationship module that I mentioned above.

Holy Cow, That's A Long List

Yikes. it's a little unsettling looking at how much work is involved in those ideas. Still, it's a gameplan for my personal hacking in 2006... hopefully I'll be able to accomplish some of it.

Syndicate content

Miniblog

SXSW Interactive 2011!