It's 2009, and Contributor Spotlight is back! This edition, we focus on Daniel F. Kudwien (sun on drupal.org and "tha_sun" in #drupal), CEO of Unleashed Mind.
Daniel is a rock-star Drupal coder who has contributed too many awesome modules to count. A few that you might be familiar with are Administration Menu, which makes the Drupal administrative interface a breeze to use, Upgrade Status, which gives you details on the porting status of your modules between major Drupal versions, and WYSIWYG API, a module with the goal to provide a single, centralized way to add any graphical editor you can imagine to Drupal.
Daniel has a real knack for staring down an extremely complicated problem, ruthlessly slapping away distractions, and coming up with an ingenious solution that not only solves the original problem, but does so with elegance.
Which brings us to the tale of node #8: Let users cancel their accounts.
node/8 is the oldest open Drupal core issue in existence, dating back to 2001. The deceptively simple title makes it seem like this would be a brain-dead problem to solve. Just provide a button for users to delete their own accounts. Duh! What's the problem?
The problem is, what happens when that button is clicked? Is the user account deleted from the database, or only blocked? Some organizations have legal requirements to retain data for 180 days, others have legal requirements to remove all traces of their users. But even trickier, what happens to the content that the user posted? Is it deleted as well? Scrubbed of contents? Attributed to the anonymous user? Simply unpublished? What about other users' content that might reference content posted by removed users, or might be direct replies? Do they get the axe, too?
If you read the issue comments, you will see people coming up with absolutely no shortage of opinions on all of the above, and multiple times, this has caused the issue to go completely off the rails. Most of us had lost hope, thinking node/8 would never get solved.
And then along came Daniel.
With swift precision, Daniel managed to distill the use cases down to the four most common, provide a hook so that other modules can cut in and do their business, and all the while rallying the troops in #drupal to contribute where they could, either by bouncing around ideas or providing language improvements or reviewing the code. And! I'm happy to report that node/8 was fixed at last earlier today, January 8... 8 days after Daniel began his journey. :) This was an inspiring process to watch and to be a part of, and showed that anything is possible if we all band together.
So, who is this mystery man? Is he tenacious, a little bit insane, or both? ;) Find out, in the following interview!