Drupal Multimedia

Media Code Sprint (Top 3 Goals)

Andrew Morton (drewish), Darrel O'Pry (dopry, remotely), and I are heading up a Media Code Sprint in Portland this week! Come help, in person or remotely, if you're interested in multimedia and Drupal! It has now officially started, and as I've volunteered to help keep folks updated, here goes...

First the reasons.

Number One: Better Media Handling in Core

Dries conducted a survey prior to his State of Drupal presentation at Boston Drupalcon 2008, and number one on the top ten (or 11) list of what would make THE KILLER DRUPAL 7 Release was "Better media handling".

Let me repeat that. Better media handling.

People have done really amazing stuff in contrib, but it is difficult (if not impossible in many cases) for developers to coordinate the use of files, as there is no good means for file handling in the core of Drupal. Thus, we have several dozen (or more) media modules doing some small part, or even duplicating functionality, sometimes out of necessity.

We need (better) media and file handling in Drupal core. In particular, there has been a patch for a hook_file in the queue for over a year, which has been in the Patch Spotlight (for the second time, no less) since May! (And has been RTBC several times during that process...) Come on folks.

One of the powers of Drupal is its system of hooks. We have hooks to modify nodes, to notify changes to user objects, to alter nearly any data (such as forms and menus). Noticeably absent is a consistent handling for files or any sort of notification. We need hook_file.

So goal Number One: get media handling in core. The means? Add hook_file and make files into a 1st class Drupal object. We'll be creating a test suite for functionality in the hook_file patch to validate it and "grease the wheels" to get it committed.

The other goals of this sprint pale in comparison to the first in utility, but are still highly desirable and worthwhile.

Number Two: Refactor File Functionality in Core

As an extension to the first goal, there is a lot of inconsistency with how Drupal currently handles files. For instance, in some areas a function may return an object, and in others a string. Additionally, some functions are misnamed, or try to do too much to be useful as a file API.

Some specific examples: for what it does, file_check_directory may be better suited as something like file_check_writable, or maybe even split into that and file_check_make_writable. Also, for instance, file_scan_directory needs to return file objects, rather than the current associative array (keyed on the provided key) of objects with "path", "basename", and "name" members corresponding to the matching files. (The function does what it needs to, but the returned objects have keys not corresponding to anything else used in core.)

So goal Number Two: refactor file functionality in core. The means? Go through and check for (and fix!) existing file functionality for documentation and consistency.

Number Three: Spruce up Existing Contributed Media Modules

There are several much needed multimedia modules that have not yet been upgraded to Drupal 6 (or which are still in heavy progress). This includes (but is not limited to) Image Field, Image API, and Embedded Media Field. Additionally, some major improvements can be made, both to these, and to other essentials, such as the Image module, such as creating a migration path from Image to Image Field (once that module is stable).

So goal Number Three: spruce up existing contributed media modules. The means? Get these modules upgraded!

I want to recognize the valiant and heroic efforts made by everyone to date, as fortunately, there has already been significant progress on all these fronts. That makes our job (relatively) easy. In some respects, we just need to finish up the jobs that have already been started.

Thus, drewish declared this week the Media Code Sprint!

We need your help. If you are a developer, or want to be a developer, jump on in! If you aren't ready to develop, or consider yourself too new for that, you can still help test patches and functionality. Jump on in! And please, even if you don't know how to apply a patch, you can still help with documentation and other small (but important) tasks. Jump on in!

If you're in Portland, You Have No Excuse®. If not, you can jump into #drupal in IRC any time you're available.

The official dates for the sprint are today (Wednesday July 23, 2008) through Saturday (the 26th). We'll be online and working most of that time. I'll make sure we continue to post progress as the week develops.

Of course, as is the wonderful nature of Drupal, this is an ongoing process. Even if we achieve our stated goals, there will always be more.

Thanks,
Aaron Winborn

Drupal Multimedia Book Announcement at Drupal.org

So I just made a formal announcement of the pending publication of Drupal Multimedia to Drupal.org, which was promoted to the front page of d.o!

What a fun and nerve-wracking task that was. Trying to distill several months of work into a small list. Tweaking every word to make sure it's right. Then even in the end, realizing I'd made the post in third person, but left my signature in first.

But this is nothing compared to the book! We've just started the editing process, and it's really great, seeing the words from the first chapter I wrote months ago, and having to face the reality of their obsolescence. I knew taking on the project that I wanted to write the book for Drupal 6, which didn't even exist at the time. So the first half of the book was speculative in a very real sense; few of us knew in October what merlinofchaos had planned for Views 2!

That's what the editing process is for though. We're making sure the book is relevant for Drupal 6. (And I'm trying to keep in the necessary parts to ensure it's still useful for those still using Drupal 5, even if those are relegated to hint and tip boxes.)

It's amazing how far Drupal has come over the years. That we can devote an entire book to integrating multimedia into Drupal is a testament to that. When the book is finally in your hands, I hope reading it will be as helpful for your continued learning as writing it has been for mine.

Though my next book might simply be a blog...

Wii Couldn't Help it...

So Lullabot just bragged on Drupal, rightfully so. I was thinking, "Well of course, they can handle 20k comments in 24hrs... Drupal is scalable!" Still, it's nice to see that in action.

DrupalWii

Of course, as my family and I finally broke down and got a Wii this summer, the first video gaming experience my wife has finally admitted to liking, I had to go and enter the contest for a Wii Fit.

Of particular interest to me, although admittedly off on a tangent for this example, is that I've just finished writing the last chapter to Drupal Multimedia (available in September!), where I pontificate a bit about the future of multimedia handling in Drupal. And I just had to bring the Wii into the fray.

I believe that just around the corner, we'll see tactile media become of interest to the Web. And of course, once something's available for the Web, there will quickly be a dozen related modules making use of it for DrupalWii. Second Life is already showing the way to 3D navigation; once we have touch, for which the Wii is an early adopter with its control stick "rumbling", we'll be on the fast track to virtual reality on the web.

I already now have an excuse to do some occasional QA on the Wii, or Second Life for that matter, even without that, since they both use the Opera browser...

And sorry about the pun, wii couldn't help it... ;)

Embedded Media Field a Media Essential

Embedded Media Field has grown exponentially in the last year since I've begun developing it. From its humble beginnings as a brainstorming session at DrupalCampNYC last spring, it has grown from a quirky method of make embedding YouTube videos easier for editors to a full-featured suite of modules allowing for drag-and-drop placement of third party videos, images, and audio clips.

Used on a wide range of sites, such as Air America, NRDC, and Drupal Dojo, the module is a flexible and powerful solution for embedding multimedia.

Read on for its strengths and weaknesses...

Playlist Sorting at Air America Radio

Advomatic just launched a new feature for Air America's player. Users are able to create their own play lists of favorite audio and video clips, and sort them in their preferred order.

To see this functionality in action, you'll need to go to the Air America site, and create a user account. After doing so, launch their player, by pressing on the big Listen Live button on the top left of every page.

Add two or three audio clips by pressing the "+" next to a clip, then go to the video tab and do the same thing.

Finally, go to the Playlist tab. Here, you can click and drag clips to sort them as desired. Go ahead. It's all saved, which you can confirm by going to another tab, logging out, logging back in, etc.

Site recipe follows!

Aaron's Project Plans in June

This list is partly to inform interested others of my personal Drupal plans this month, partly to get feedback, and partly as a reminder for myself when I see my blog. The order is roughly in order of priority for me. We'll see how it actually pans out...

  • Finish writing Drupal Multimedia! (I've finished 10 of 12 chapters, so I'm on the home stretch...)
  • Upgrade Embedded Media Field to Drupal 6. (There are several folks working on this, who have been instrumental in current progress.)
  • Write the engine for 5 Second Game. (Morbus Iff has jumped on board as a co-developer, helping to ensure the highest quality for this fun project!)
  • Expand GetID3 functionality. (Thanks to Rob Loach for his ideas and push to get that going. The next stage of development for this is to create an API to better handle Metatag storage.)
  • Make a tutorial for XSPF Playlist + Views recipe. (I just finished writing an awesome tutorial for this in the book, but want to make a video tutorial available, probably for Drupal Dojo.)

There are other projects on the back-burner I'd like to get to as well, such as upgrading some of the other modules I work on, creating official releases, etc. I plan to revise this list next month, and see where things are.

Plans for jQuery Media and jMedia Support

I've just created the jQuery Media and jMedia wrapper modules for those two jQuery plugins. I am excited about both of them, which are similar. I'm already using jQuery Media for the audio player for Air America Radio (to be launched next week), and found out about jMedia today while researching other uses for the plugin.

Basically, these plugins will replace links or other text with Multimedia, automatically compatible with the browser. They both support audio and video, and come packed with cool features that I haven't even finished exploring yet.

I'll show you how it works next week after Air America's launch. But I'll let you know, it's really, really cool. Makes developing multimedia intensive sites super easy. And I'll definitely have to put it in Drupal Multimedia, my book that should be published this summer.

I plan to support one or both of them in Embedded Media Field as well, as it should make theming that easier than it currently is. They both already support jQ out of the box, for easier administration.

And that's just the beginning...

Drupal Multimedia Panel at DrupalCon

I will be the lead presenter of the Drupal Multimedia panel at Boston DrupalCon next week. I am teaming up with James Walker (walkah), Darrel O'Pry (dopry), and Nate Haug (quicksketch) on Monday, March 3, in the Site Building track, with a live demonstration integrating images, video, and audio onto your sites.

Syndicate content

The Society for Venturism has chosen me as the recipient of its charity for this year, to hopefully offer me cryonic preservation when the time comes. And this month, Longecity, an excellent forum for the discussion of issues related to extending the lifespan of humans, has offered up a matching grant of up to a thousand dollars to help out! So help out! Please.