Planet Drupal

Auto-refreshing views for real-time information streams

Imagine you are creating an activity stream for your site. You'd like to use Views because it gives you all the power you need to query items and style them on the page - all in time for your 11am nap. However, the resulting page is static and users have to keep refreshing it manually to see updates. In 2011, that's just uncool.

That's why I created Views Auto-Refresh, a Views Hacks sub-module that implements an auto-refreshing mechanism that integrates right into Views 2 or 3.

WorkerQueue: Background tasks in JavaScript

One of the most enjoyable aspects of maintaining Sheetnode is getting to practice more JavaScript. Douglas Crockford called it the World's Most Misunderstood Programming Language and that's certainly how it's been for me until I decided to put a concerted effort in finding out more about it.

Sheetnode's underlying spreadsheet engine, SocialCalc, is entirely client-side, JavaScript-based.

VBO for D7, with a little help from my Drupal friends

I've been a lazy adopter of Drupal 7. I admit it, mea culpa, but I'll leave this discussion to another post. What happened in the mean time is that VBO for D7 languished for a year or so in a zombie state until it was rescued in early May by Bojan Živanović, bojanz on d.o. He started out by announcing a sandbox project containing his code, and a few days later, I was convinced that this was the way to go for VBO on D7.

Node translations with Panels and CTools

I wanted to create a node view containing both the original node and its translation, sort of like this neat Meedan.net page.

Reusing Views to display predefined results

As a Web developer, I spend most of my time rendering lists of objects to HTML, formatted in every imaginable way. Fortunately for us Drupal heads, the Views module exists just to make this task easier - this is in fact my standard introduction to my "Views for hackers" talk.

One common scenario that I've encountered, and about which I was asked several times, is how to reuse Views to render a pre-defined list of objects - i.e., a list that already exists without the need for an SQL query. Why would anyone want to use Views in that case?

Views for hackers at DrupalCon Chicago 2011

I gave my "Views for hackers" talk at DrupalCon Chicago yesterday. This was definitely the biggest attendance I've ever had in my short experience as a speaker! Thanks everyone for attending and for the great questions. Please rate it at the DrupalCon site, this will help me improve it.

Feedeo: an experiment in online video consumption

One of my tenacious ideas is to create a TV-like experience using Web video. In spite of great players such as Boxee, I still feel there's more that can be done.

For one, my ideal player should be Web-based, not a desktop application. That's why I liked YouTube XL and like YouTube Leanback even more.

Secondly, the player should present a simple UI that allows the viewer to surf the enormous amount of existing Web video with minimal interaction. The UI should favour discovery over explicit search.

Sheetnode 1.5 released, now without Java

Sheetnode is one of the most exciting modules that I maintain. The underlying SocialCalc Javascript spreadsheet engine, which I forked from Dan Bricklin's original code, is much fun to work with. Plus, organizations of many sizes are starting to use Sheetnode to collaborate on their numeric data right in their Drupal intranets, instead of relying on Excel files in attachments.

I've just released version 1.5 of Sheetnode for Drupal 6.

Filtering Views results with taxonomy terms including synonyms and relations

Taxonomy is a very powerful classification system, so powerful in fact that it's hard (and resource intensive) to fully utilize it in Views and other queries.

Using Batch API to process Drupal Queue jobs

Hot on the heels of Batch API / Search integration, here is a related recipe to interactively run Drupal Queue jobs using Batch API, instead of waiting for cron or another background process to activate them:

  • Set up the batch process.
Syndicate content