WordCamp SF 2010
I know this post is quite delayed, but I wanted to get it out there anyway. Last year I went to WordCamp SF and attended several of the sessions. This year I went to WordCamp SF 2010, but things were a little different. I ended up spending most of my time at the Genius Bar helping the attendees with WordPress. The Genius Bar was organized by Lloyd Budd, and while I only volunteered for a single session there, I found it hard to pull myself away from helping the various interesting people that showed up. The questions ranged from how to scale up because of a large influx of traffic, to “How do I get downstairs?” (hint: we were downstairs).
Following the WordCamp event, my wife and I went to one of the best food and wine events we’ve ever attended. It was at a place called One Market, and was put on by The American Institute of Wine & Food. We had lamb starting with the tongue and cheek, working our way back to the leg. Each course was paired with one or two wines from the Zacherle or Fisher labels, and the wine makers were there to talk about each wine and answer our many questions (who knows what a “brick” is in wine making, and why some wines need fewer bricks than others?). It was a beautiful, fancy, entertaining dinner.
When we finished that, we caught a cab over to the Automattic Lounge at Pier 38 to catch part of the WordCamp after party. Talk about a shock to the system. We left a place where lamb was being served to people in suits and fancy dresses who were seated at tables with linens and full silverware sets, and within minutes we were at a party with blaring music and full of geeks, many of who had consumed considerably more alcohol than recommended. We spent a little time saying hi to everyone, having a few laughs at the expense of the imbibed (you know who you are), and I got my picture taken with several people (I’m not sure any of them knew who I was, they just seemed to like posing with someone and getting their picture taken). We left relatively early, around midnight, and headed back to the hotel. I knew from the year before that the developer day was going to be my personal favorite part of the event, and I didn’t want to be falling asleep at the laptop all day.
The following morning I arrived back at the Pier 38 lounge to find that I was the first to arrive for the developer day (I was a few minutes early). Ryan Boren was the next to show, but we ended up having to wait a little longer until someone with keys arrived. I’m not sure people really got the “unconference” thing, as everyone kept wanting to know what was scheduled for when, and where things would be happening. The basic idea is simply “find people that want to discuss what you want to discuss, form a group, and discuss it.” Eventually a group of us formed at one of the tables and began working on WordPress 3.0. I’m sure I can’t name everyone, but I know Dion Hulse, Ryan Boren, Andrew Nacin, Matt Martz, Pete Mall, John Jacoby, and Ptah Dunbar were all there. Dion and I spent several hours on an elusive bug with a rather simple fix, and it was really great to finally get to put faces with the names and handles that I see regularly on IRC, mailing lists, Trac, etc.
After the dev day coding, several of us walked down to Gordon Biersch, had dinner together and tried not to talk about WordPress too much (although Andrew Nacin’s like a machine…you just can’t stop the man!). So, what do you think we would do after a long day of coding? Well, we’re geeks, so we walked to one of the hotels were a few of the guys were staying, went up to their lounge, and started doing some more coding. As a guy who works from home and tends to work only with remote programmers, it was really nice to spend some time with people that understood what I was saying! I’m looking forward to seeing everyone again next year.
Google Summer of Code 2010
It’s official (and has been for a few days, I’m a little behind schedule), the 15 students selected to work on WordPress this summer as part of the Google Summer of Code have been announced. The lineup is pretty great. There are some names on the list that will be familiar to those who are already involved in the WordPress development community. Andrew Nacin for example was given WordPress core commit access in February. Also,
Justin Shreve and Daryl Koopersmith both participated in last year’s GSoC (quite successfully).
This year there are a lot of great students and projects. I’m definitely excited to see what happens with all of them. However, I’m most excited about the student that I’m going to be mentoring. Jon Stacey is going to be implementing stream wrappers into the WordPress file API. He did a similar project for Drupal as part of GSoC last year, and this year we were able to woo him over to WordPress.
Not only does the project have great potential, but since stream wrappers were introduced in PHP 5, it will help push WordPress toward PHP 5 as a minimum requirement (which I’m all for). So good luck to Jon and all the 2010 GSoC students.
The Xavisys WordPress Plugin Framework
A few months ago I was chatting with Joost de Valk and he was talking about a new plugin toolkit that he was making. The basic idea was to make a flexible base that he could use to build on for all his plugins. It would handle all the tasks that are common to all his plugins (options page, dashboard widget, etc) and still be easily extended so each plugin could handle more specific tasks as well. Now his plugins (at least some of them) use his toolkit.
It was a great idea, and I finally got around to writing one for my own plugins. I built it as an abstract class (and a tiny CSS file) that I extend for each plugin. Here you’ll get to see a quick tour of what the framework does. Let me know in the comments if you’re interested in seeing a walkthrough of how it was built, and feel free to download Efficient Related Posts to see it in action.
WordPress Core vs Canonical Plugins
There has been intense discussion about what should and shouldn’t go into the core of WordPress and what should be in plugins since way before Matt talked about canonical WordPress plugins in his State of the Word, but that mention has definitely caused some serious buzz. The question is whether WordPress should stay small and fast or grow and be feature rich. Both have their advantages and disadvantages.
The advantages to the “WordPress should stay small” philosophy are not limited to the WordPress download staying small (although that is one advantage). A smaller code base will make it easier to keep WordPress fast, reliable, and easy to test as well. The people that support this side of the argument would argue that WordPress could be extended to still accomplish any of the “missing” features through plugins and custom themes, and having built-in functionality that you don’t use is a waste.
The disadvantages are that many users (remember there are millions of WordPress blogs out there, many ran by people that are not tech savvy) are not comfortable with or even capable of installing plugins to solve their problems. For those people, having the functionality in the core WordPress install is probably the only way they’ll get to use it. Not to mention if 99% of people that install WordPress install a specific plugin, isn’t it obvious that the functionality provided by that plugin should be included in WordPress itself? Unfortunately, what if it’s 95%? 90%? 75? It’s hard to figure out where to draw the line. Additionally, if something is popular but doesn’t make it into core, should the programmers test against it before releasing new versions of WordPress or does that responsibility fall to the plugin author?
Obviously the advantages and disadvantages for the “WordPress should be feature rich” philosophy are the exact opposite. The problem is, both sides have valid arguments, so the real question becomes “is there something better?” I think canonical plugins may very well be the answer to that. The idea of canonical plugins is that WordPress would back a specific plugin as being the “solution” to a specific problem. For example, maybe you want to display related posts and WordPress has decided that “Efficient Related Posts” is the solution for that. They may have a list of commonly asked for features and their solutions on a page somewhere, or they may take it one step further and package the plugins with the official WordPress download.
I think that if they package some plugins with the official WordPress download, they may be very close to a great solution to this tiring debate. The advantages are that the core would stay lean, fast, and reliable. The functionality would be available to all users because it’s just a matter of activating the plugins rather than finding, downloading, and installing them. Also, the plugins that are shipped with WordPress would need to be tested with each new version, which means they’ll be stable as well. The only real disadvantage is that the download size would grow, but we live in the era of broadband. It seems a small price to pay to solve so many other problems.
WordPress Developer Meeting – July 01, 2009
The developers had another IRC meeting today, and we discussed the media overhaul for 2.9 & 3.0. The idea is to do a two step process, laying down a lot of groundwork in 2.9 and finishing up in 3.0. Jane will be adding a post and later a poll to get community feedback on some of the items discussed, but here’s a list (in no particular order) of some of the things that will be considered for 2.9 & 3.0:
- post thumbnails
- media albums
- bulk media import API
- make adding embeds easier (like viper plugin)
- enable most media settings as defaults that can be overridden on a per image/file or per-use basis
- cropping, resizing, and rotation (in 90 degree increments) for image uploads…I’m excited about this one
- Custom Image Sizes. Instead of hardcoded thumb, med, large (manually configuring maximum image sizes for small, thumbnail etc)
- page exclude plus reorder for blog navigation
- media metadata
- uploader feature: ability to choose from most recently used/most often used/marked as favorite files
- more default shortcodes. check top ten from wp.com. slideshare and any place that advertises wp.com shortcodes
- importers (specifics TBD)
- UI header brushup and uploader UI
Plenty of other things were discussed, such as “lightbox by default” for images, but the consensus was that there are good plugins for this. We also discussed post types (examples of post types: book review, recipe, essay, aside), which would let you choose a type for your post and treat it differently based on what you choose (currently posts, pages, and attachments are different “post types”). The idea is to allow users (or plugins) to easily set up different post types. This will be put off until 3.0, but it’s still exciting!
WordPress and the Google Summer of Code
For those that don’t know, Google has been doing something called the Summer of Code since 2005. Google picks open source projects to fund development for. Then they accept applications from college students and then choose about 1000 winners in conjunction with the project mentors. Project mentors are experienced developers that are familiar with the project in question. Each student is paired with a mentor, who will help by giving direction and advise throughout the process. Google pays the students $4,500 each to complete their project over the summer, as part of their contribution to the open source community. The main requirements are that you have to be 18 years old or older and enrolled as a full or part time student as of April 20, 2009.
The process goes something like this. On May 23rd the students begin coding, and receive their first payment of $500. On July 13th they have “Mid Term Evaluations” where the mentor evaluates the student, and the student evaluates both the mentor and the project. At this point, if the student isn’t performing, they will be dismissed, but the vast majority of students will continue and receive their second payment of $2000. On August 17th the students stop coding. On August 26th there is a final evaluation which works just like the mid term evaluations worked. The student now receives their final $2000. On September 3rd, the code must be submitted to Google.
The WordPress has-patch marathon
Xavisys is participating in the WordPress 24 hour has-patch marathon. We’ll update this post as we go, but wanted to encourage others out there to participate as well. Grab a ticket and get started!
- #8014 has been fixed as part of the marathon.
- Now you can use dbDelta() with SQL containing backticks!
- #9507 has been fixed
- You can now localize the “tag” word in the new plugin page
- #9408 has been committed
- WAI-ARIA landmark roles have been added to the default theme to increase accessibility
- #5710 – wp_tag_cloud should echo get_tag_cloud
- For this one, my patch was replaced with a better solution offered by DD32 which added an echo option to the args array for wp_tag_cloud
- #9472 – Fixed
- Now wp_list_pages() applies the “current_page_item/parent/ancestor” classes when browsing image/attachment pages!
- Some new filters were added
- I always like to see new filters. It means that plugins can be more powerful. They added wp_trim_excerpt and admin_footer_text so far.
- #9442 – Login UI
- They added a password recovery link to the login error messages


