For new, improving, and prospective module maintainers.
What's expected
You're not forced to do anything. However, if you post it, you're endorsing it. At that point, you have some responsibility. You'll need to work with the security team on fixing vulnerabilities, and support your code. Clearly communicating your intentions to your users is good, too. Poorly maintained projects give us a bad name.
Best practices: Community Management
How to enlist help:
Testing done to answer these questions:
Flexinode was available from 2004-2007, versions 4.4-4.7. It introduced the idea of custom content types. Problem: it didn't work at all in Views. Was rewritten to scale better. CCK, the successor, lived from 2007-2010, in versions 4.7 to 6.x.
Early on, it was table-segregated by type of data: text, integer, etc. Didn't last long. Now: if the same field exists in multiple content types, it all goes in the same table.
Field data architecture: change settings or share a field after data was created could lead to potential data loss. They settled on using a per-field storage for all fields, so that data never moves.
Notes: http://dave-cohen.com/
Facebook Application Development Platform
Facebook has done some basic verification on the users, with email addresses or CAPTCHA, so you're somewhat more assured of reaching real people. Obviously, you can tap into these users' social networks.
Dev platform was created in 2007. Allows anyone to add features to facebook.com. Early apps were aggressively viral; this has calmed down recently. Today it supports
Collection of tools. Intended to be zero-dependency. One step above core, in Earl's view.
Code from this session is at http://drupal.org/Project/jQ4DaT
Slides are at http://tinyurl.com/jQuery-Designers - fingers crossed I'm typing all of this right.
-
jQuery: a selector engine. Supports CSS & XPath. Example:
$('body .view a.read_more');
-
A library for anipulating DOM (DOM is like live-and-manipulatable HTML but not persistent)
Demo: altering the user register form
-
In your module's .info file, add a line to declare a script. scripts[] = namehere.js
-
Get the element's ID. IDs are unique -- guarantees no collisions. Don't forget to clear your cache; otherwise it won't do anything!
Drupal.behaviors.myHacks = function(context) {
$(#user-register #edit-name-wrapper').hide();
}
I am having to be far more careful at drupalcon than I'd hoped. Instead of doing a full-blown free-for-all, I'm having to be choosy about what I do -- and I'm choosing to go to sessions. I came down with something nasty either in Huntsville or in Minnesota, and it was in full swing by the time I landed in San Francisco. What had originally been just an angry tickle in the back of my throat was so bad I couldn't swallow solids or liquids without pain.
I've been living on cough drops since then, trying to keep myself hydrated and medicated. I'm feeling very worn at the end of each day. I'm sneezing a bit, and I'm hoping that either this a) won't move to my ears or b) will be done with my ears before Saturday night when I fly.
(No, PHP, your ass doesn't look fat in that. Honest.)