Contributing to WordPress, Part IV: Ideas, Opinions, Feedback

“I wish they’d implement feature x.”

“Why won’t they put feature y into core? It’s rated really high in the Ideas forum!”

“It doesn’t matter what I think, all the decisions get made by an elite crime-fighting squad funded by an anonymous millionaire. Er, I mean the four core devs.”

These sentiments, and others like them, are the focus of today’s post. Setting aside the similarities between Ryan, Andrew, Mark and Peter to Charlie’s Angels for a moment, the question of how decisions about features are made needs to be addressed. There are a number of mechanisms in place for communication between the community and the core team, but with so many different channels, it’s hard to keep up with them all and still focus on production. Here’s where we are now…

#wordpress-dev IRC channel: The IRC channel used to be more active. These days there’s rarely more than a dozen or two people online at any given time, and hours go by with no activity. When a question pops up, it’s often a tech question from a less experienced developer or site manager looking for help, as opposed to ongoing discussions about the best way to approach core code and features. When core-focused discussions do occur, they tend to fade out as time zone variances cause people to log off before a core dev enters the room.

wp-hackers list: The hackers mailing list reaches thousands of contributing developers, plugin developers, and lurking interested parties. Discussions range from how to use hooks to whether or not something in core should be changed to troubleshooting for other list members. Conversations on this list sometimes can get heated and occasionally stray into rudeness, which makes some people hesitate to utilize this communication channel.

This dev blog: This blog is used mostly for “official” announcements, and more recently, for surveys and polls intended to give the core devs an idea of community opinion on things being considered for future versions. Posting is irregular, sometimes with new content every other day, sometimes with nothing for a couple of weeks.

wpdevel.wordpress.com: Another blog, also an “official” outlet, in which the core team posts about any big code changes they’re working on. This gives plugin authors and contributing developers a heads-up, and provides a place for community discussion around specific issues like the new widgets API.

Trac: The ticket system used for active development has gotten out of control. Hundreds of tickets are already lined up for future versions because they were punted from current releases; many aren’t even relevant anymore. Trac has wound being a place where people report bugs, suggest code changes, request features and debate methodologies; some of these conversations are years old. This broad use of the system makes it harder to power through tickets and get bugs fixed.

Ideas forum: The Ideas forum is a place where anyone can suggest a new feature, rate features suggested by others, leave comments, and generally discuss the future of the WordPress application. However, like Trac, some of the items here are years old. Because of the way the rating system works, older items remain at the top of the list. Some threads are simply he said/she said preference arguments, as opposed to contructive discussions about the value of implementing certain features or changes. There’s no direct connection between the Ideas forum and Trac.

WordPress is an open source project, successful because of the community that both develops and uses it. At the same time, some people find it difficult to become involved in the project, and are unsure of how to engage with the core team and community at large. The channels listed above can be overwhleming to someone just joining the community, and/or frustrating to longtime community members who feel like they used to have more influence. We need to fix this. The WordPress project needs to be welcoming, easy to navigate as a contributor, and provide useful feedback to help grow the expertise of its community members.

I think we should figure this out together. You, members of this community, know how you feel about the communication channels available to you. You probably have ideas about how to make it better. Some of you may even have sketched out digrams of systems that you think would work better.  Link Ideas to Trac? Change the Ideas rating algorithm? Close Trac tickets that don’t get resolved within a certain period of time? Just do everything through Trac? What do you think? What would make it easier for you to keep up with development progress and get involved with the varius contribution opportunities? I *know* you have an opinion.

Over the next few weeks, we’ll be gathering your input about how we can improve communication and participation, and then we’ll embark on a project to fix/create a system for collecting ideas, opinions and feedback that will allow WordPress to grow as an inclusive community. Here’s the plan: Gather ideas from people via IRC, forums, live chats, surveys, etc. Assemble a small group of interested parties to help figure out possible approaches, put suggested approaches to a community vote. If redesigning something (like the Ideas forum) is deemed necessary, utilize community designers to create layouts. Beta test it to see if it does work as hoped. Launch and make everyone happy with the new, improved communication/ideas/feedback system!

Up First

Use this forum thread to post your suggestions about this. What do you think needs to be changed or improved? How would you structure it? How do the existing channels fit into your suggestion?

On Tuesday, May 12 at 21:00 UTC (5pm New York time), hop into the #wordpress-dev IRC channel (irc.freenode.com) and talk about your suggestions for how to improve communication. I’ll be there, taking notes and answering questions, and asking follow-up questions when someone pitches a good idea. An hour later, I’ll be joining the WordCast Podcast to talk about this issue. They’re trying to set up a call-in format; if that pans out, we’ll post the call-in info in the dev channel. Otherwise, A call-in number has been set up through TalkShoe.

1-724-444-7444
Meeting ID: 50127
Pin (if you don’t have a TalkShoe account): enter 1#

We’ll also read off suggestions being made in the dev channel and discuss them.

More opportunities to weigh in on this issue to come. Also, further investigation into the similarities between the core devs and Charlie’s Angels. :)

pvpgn_mail

Package:
Summary:
Send and receive messages to PVPGN game users
Groups:
Author:
Description:
This class can be used to send and receive messages to PVPGN game users.

It can check the directory of PVPGN installation and create a file for a new message to be sent from a given sender to an user with a given identifier. It can also lookup the user identifier in a database.

The class can also retrieve messages stored for a given user.


Ultimate DB Access Wrapper

Package:
Summary:
MySQL database access wrapper
Groups:
Author:
Description:
This class implements a MySQL database access wrapper. It can:

– Establish database connections
– Validate SQL queries
– Execute SQL queries and fetch result rows into arrays or objects
– Build SQL queries from lists of parameters
– Manage transactions
– Display query results in HTML tables made of DIV tags
– Create table indexes


Blog fixing

Just realized enscript isn’t installed on my server anymore so all my posts with highlighted code examples were broken. Sorry about that, fixed now.

Easy PHP Event Calendar

Eventcalendar
Package:
Summary:
Display a calendar with events
Groups:
Author:
Description:
This class can be used to display a calendar with events.

It can generate HTML with embedded CSS style definitions and JavaScript to display the days of months denoting those that correspond to events from a given list of event days.

The icon graphics directory and the names of the week days and months are configurable options.


Recursive reference serialize

Package:
Summary:
Serialize objects with cyclic references
Groups:
Author:
Description:
This class can be used to serialize objects with cyclic references.

It can take an object value and generate a string that represents the information contained in the object.

The class can also do the opposite, i.e. process a string with an object representation and recreate the original object value.

The class takes care of cyclic object references, i.e. objects that reference other objects and those objects contain references back to the original objects.

It uses object keys to represent object values and detect cyclic references.


[Free] New Free Secure File Wiping/Deletion Tool

You hear about people recovering secret data from hard disks sold at eBay practically every other month, even though the sellers have actually deleted their own files before selling. As everyone knows, deleting a file from your computer doesn't really clear it from your hard disk. It's still there and can easily be recovered by using data recovery programs. To really securely delete files, you need a proper wiping utility, like the latest addition to the Free Secure File / Disk Deletion (Wipe) Utilities page. This newest entry, Freeraser, is a file wiping utility, that you can use to thoroughly remove traces of a file from your hard disk.

There are other secure deletion tools on that page as well, including those that can thoroughly wipe your entire hard disk clean before you dispose of it or sell it.

[Free] New Hot Key Utility: Become a Power User

For power users, or people who want to work more efficiently on their computers, a new Windows hotkey utility has been added to the Free Keyboard Macro, Remapping and Hot Key Software page. ZenKEY makes it easy for you to control and manage your computer by allowing you to map keystrokes or hotkeys to a wide variety of actions including moving windows around, spreading groups of windows around, making certain windows transparent, invoking hidden Windows utilities and system commands, open documents/folders, simulate a series of keystrokes, and so on.

Check it out. It even has an amusing website. (Or it is to me, anyway.)

DebugLive

Package:
Summary:
Show script debug information to authorized users
Groups:
Author:
Description:
This class can be used to show script debug information to authorized users.

It can output script debugging information such as backtrace of the current point of the script that is executed including class names, function names and parameter values.

The debug output can be conditionally displayed depending on whether the current user access fingerprint is authorized. The fingerprint is a string computed from the user computer IP address and browser details.

The debug information can be outputted to the current page using the appropriate styles to hide it from the user, so the output information does not affect the page layout, but the developer may check the page HTML to view the output information.


Convert MySQL tables to PHP class

Package:
Summary:
Generate code to access MySQL records as objects
Groups:
Author:
Description:
This class can be used to generate code to access MySQL records as objects.

It accesses a given MySQL database and retrieves the list of tables and information about the respective table fields.

The class can generate code for classes that can be used to access the respective MySQL table records as if they were objects.

The generated classes can have getter and setter functions for each table field, functions to insert or update records with the object values, functions to load a record with a given identifier, and delete the object record.


Powered by Gewgley