Hello, my name is Karim Ratib. I plan and build Drupal applications using the best modules from the community. I maintain or co-maintain many modules, including Views Bulk Operations and Sheetnode. I specialize in multilingual applications (especially Arabic), configuration management using Features, data modelling and processing using Views and Feeds, and integrating 3rd party libraries and services. I have good experience leading Drupal teams.

Building #recotype, part 1: Weaving threads out of tweets

Earlier this year, I talked about the value of monitoring Twitter to extract valuable data. About a month ago, we finally decided to go ahead and build our application based on this concept. The core idea is pretty simple: people use the #reco hashtag to recommend things or ask for recommendations on Twitter.

Feeds actions

I've been working with Feeds a lot lately. Pretty much in every project I am involved with. I am starting to consider it as an essential piece of Drupal infrastructure whenever external data of any nature is required to be pulled in.

During development and testing, one of the recurring tasks is to clear a bunch of feeds, and then re-import them. Instead of doing these operations on each feed, I thought it would be handy to use good old Views Bulk Operations to clear and import feeds in bulk.

Hacking Managing News, part 2: Monitoring topics

Compared to Tattler, one of the weaknesses of Managing News is the lack of topic monitoring - where a user inputs a keyword phrase representing a topic and the system takes care of tracking this topic across pre-selected RSS sources.

Soon after we started using Managing News, this requirement came up.

DruTube

No, this is not a YouTube clone in Drupal. But it sure got your attention!

Visit DruTube and if you're interested, read on. A packaged feature is available below.

It's a little demo of a Feeds + MediaFront + Embedded Media Field + CCK + Views mashup to create a continuous-playing experience of Drupal videos on YouTube.

Hacking Managing News, part 1: Adding a Starred channel

For my work with AdHack, I've started using Managing News as a Drupal-based solution for brand monitoring. As with most Development Seed products, it's a well-designed piece of software that is a joy to work with and enhance.

One of my first tasks was to allow users to mark articles with a star, and to find those starred items in their own channel. In MN, channels are lists of articles that are tagged with a specific set of tags.

Drupal community shows love!

I received today an Amazon gift from a Drupal member who's been using my Sheetnode module. What a great surprise! As I've said before, I feel privileged to be part of Drupal's great community, and I will keep contributing my modest efforts to make Drupal the most awesome Web platform. Many thanks Reamur!

Event-driven bulk updates using VBO and Rules

Here's the situation: when a change occurs on a node, you want to modify a bunch of related nodes accordingly. On my site, when a Job's state moves from "accepting proposals" to "in progress", I want to change all pending Job Offers (those that haven't been accepted yet) to "closed".

Feeds + OAuth

Feeds, the successor to FeedAPI, is shaping up to be an awesome module. I am planning to use it in many, many applications, including retrieving feeds from Twitter, making video channels from YouTube, and importing credit card transactions from CSV.

A few days ago I posted about using Drupal to analyze Twitter data, and since then I've been thinking on how to implement this functionality using Feeds.

Dynamic transitions with the Workflow module

Workflows are a basic building block of business applications. While the Workflow module provides a good base to start building workflows in Drupal, it has not kept up with the rise in complexity of Drupal application requirements.

Central to a workflow is the notion of state transition: when does a "Job Bid" node move from state "Proposed" to state "Accepted" or "Rejected"? Who can trigger this transition? There are obviously n2 possible transitions for an n-state workflow, making what is commonly called a state transition matrix.

Functors for your single-parameter callback blues

When using PHP functions such as array_map, usort or preg_replace_callback, you are forced to pass in a single-parameter callback function, making it impossible to send additional context information to the callback. But it ain't necessarily so.

Function objects, aka Functors, are here to help.

Syndicate content