WordPress 3.2 has officially been released. You can either update right from your dashboard or download it from WordPress.org. The main focus of this release was to speed everything up. Lighter and faster was the goal and we definitely accomplished it. The dashboard loads faster than ever before, as does every other admin page.
The speed difference is amazing and you can expect it to get faster still in the versions to come. The main reasons are that we have stopped supporting ancient (in internet time) software. The WordPress admin no longer supports Internet Explorer 6 (a 10 year old browser that even Microsoft wants to see disappear) and bumped the required PHP version to 5.2.4 and the required MySQL version to 5.0. Well over 90% of all WordPress installs will be completely unaffected by these changes in the system requirements, but for those of you on older versions a quick E-Mail to your hosting provider will probably get you what you need.
Additionally in 3.2 Distraction Free Writing was introduced. You can now go full-screen when writing a post and see nothing but the text you are typing. All the extra things that normally distract you simply fade away, letting you really focus on your writing. I honestly wasn’t very sure about this feature during the planning phases of 3.2, but having used it and tested it throughout the process, I can say that I was converted. I definitely recommend everyone try it out and see how much time you save while writing your posts!
There are a ton of other small enhancements in 3.2, but the last ones I want to mention are a couple new links in the footer of WordPress admin. One says “Freedoms” and one says “Credits”. WordPress is licensed under the GPL and the Freedoms link takes you to a page that explains in relatively simple terms how you benefit from this particular license. The Credits link will show you who you can thank for WordPress 3.2. Well over 100 people contributed to making WordPress 3.2, and here you can see who those people are as well as see a list of third party libraries that WordPress uses. If you get a chance, thank these people for helping to create a great product that you can use for free!
Design/Developer Speed Meet
Thursday there was a brand new event. Basically, it applied the speed dating concept to connecting clients with designers/developers. It was held at Co+Hoots and went pretty well. Designers and developers were separated based on whether they usually worked on projects over or under $3000, and the hirers were divided up likewise. Chairs were positioned in lines facing one another, with developers/designers on one side and potential clients on the other. Every five minutes the designers/developers moved one seat left. All in all I thought it went quite well. There were several problems, but only one could really be fixed. The issues I had:
- Five minutes is really short
- This was actually someone I heard a lot of people saying, but this is the whole point of the event. My recommendation is just to show up early and stay late. Use the time before and after to augment your five minute segments.
- People talk big
- There were people that weren’t truthful about their budgets. I’m assuming (although I wasn’t hiring so I don’t know for sure) there were developers that misrepresented their usual project size as well. There’s not a lot you can do about this (at least no that I can think of). People lie. Still, it didn’t seem like an excessive percentage of the people. Most seemed pretty legitimate.
- Loud music isn’t helpful
- I know that the music was supposed to help break the ice and keep things upbeat, but unfortunately it made it nearly impossible to communicate well. There is already a lot of noise just from all the voices going at once, so adding the music made it extra difficult. To be fair, I happened to be on the side of the room with the speakers (this wasn’t by choice, it’s where I was supposed to be), but less music would be better.
Friday Free Classes
There were several class options. I dropped in on the class Boone Gorges was teaching and it looked like things were going well, but I was only there for about two minutes. However, I spent the first half of the day at the Intro to WordPress for Beginners class taught by Shayne Sanderson. I had several friends local to Phoenix, who would consider themselves beginners, that attended the class as well. The classes were quite long (both the teachers that I talked to were concerned about that), but the most difficult thing seemed to be that the audience was so diverse. For example, even though my friends all considered themselves to be beginners, they seemed to be more advanced than the majority of the people there. When we went to lunch they were saying that they really hadn’t got anything out of the class up to that point and were worried that unless the pace drastically changed they wouldn’t. The solution seemed simple. We went back to the hotel lobby and I have a mini-class. It seemed to work out quite well.
I do want to stress that there was nothing wrong with the class. Shayne was doing a great job, and most of the people in the class seemed to be learning a ton. Maybe next time we could list things you can expect to learn from the class, so people can make sure it’s something that would work well for them.
Friday night there was a pub crawl. The idea was great, but the location was a bummer. My wife and I had a blast hanging out with Andrew Nacin, Daryl Koopersmith, Matt Martz, Aaron Jorbin, and Pete Mall. The only bummer was that we ended up at a bar that was about 30 minutes away from the hotel, where everyone else was. It ended up spitting the group in two, which was a bummer.
The Main Event
I was at the Chandler Center for the Arts at 6am to help set up. All the volunteers were absolutely amazing. There was a lot to do in order to make this event happen, and everyone did it with smiles on their faces (once they woke up completely). Chairs were moved, equipment set up, food prepared, coffee made, check-in organized, etc.
Once check-in started, I started my main job for the day, which was running the genius bar. The genius bar actually went REALLY well. We had enough geniuses to go around, so even though we helped around 60-80 people, only 3 people ever had to wait for a genius! The geniuses answered questions about everything from setting up your first WordPress site, to Shopp specific questions, to CSS, to traffic building.
The After Party
You really have to hand it to Amanda and Chuck. Not only did they pull off a truly great after party, but it was held at the Chandler City Hall! There was plenty of alcohol and food, thanks to Four Peaks Brewery and Famous Dave’s BBQ…and of course plenty of partying. They set up a red carpet style photo booth, with plenty of props. At first it was just photos, then the photos got funny as people continued to drink, then the props began to circulate (there were some really interesting red glasses with LEDs on them), and finally the handcuffs started circulating. I saw no less than 4 people handcuffed throughout the night.
At midnight we cleaned up and headed out.
The After After Party
With the official after party over, several of us headed over to San Tan Brewing Co next door to the hotel. Many of the WordPress developers (myself included) only get to meet up a few times a year at various conferences, so we sat outside in the cold and continued the party until we closed down San Tan at a little after 2am.
Dev Day – How to Contribute to WordPress
Sunday afternoon we held a developer day. The purpose was to show designers and developers how they could begin contributing to WordPress. People learned about SVN, TRAC, etc, and even how the WordPress community works. Hopefully we’ll have some brand new contributors soon!
The event ended on a high note. There was a speaker/organizer appreciation dinner that was held at MyFarmYard, an urban farm in Central Phoenix. The vegetables came from the urban farm, the meats were locally sourced, and even the wine was from an Arizona Winery. The chef does pop-up restaurants all over Phoenix, offering amazing themed one-time menus at each location. We dined outside, and there was a fire that made the crisp night enjoyable. It was great food and great company, and a great way to end WordCamp Phoenix.
I realize that I’ve done a horrible job of posting here over the last year. I made exactly two posts in 2010. However, just because I haven’t been posting here doesn’t mean I’ve disappeared. I’ve still been working on WordPress, WordPress powered sites, WordPress plugins, and even some side projects built on WordPress (Like Beer?). My biggest problem is deciding what to write about, so I’ve come up with a solution. I’m going to answer your questions. Not only will this help me come up with ideas of what I should write about, it will also make sure that my content is specifically useful to you.
So, if you want to know how to best use WordPress’s built in http class to integrate with an existing API, how to add your own taxonomies to your site, how to make your theme more extensible, or almost anything else WordPress related, please just ask!
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.
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.
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.
As some of you already know, I went to WordCamp San Francisco last weekend. I took the wife (who didn’t attend WordCamp, but did come to the party) and had a great time taking in some of “The City” in the process. I went to the main event on Saturday, the WordPress Anniversary Party Saturday night, and also the developer day on Sunday. It was really nice to meet some of the people, and just get a feel for what a WordCamp is like.
When I first showed up on Saturday, they weren’t even ready to check people in yet. I tend to be quite prompt, so I was there a few minutes before eight, and they were still alphabetizing name tags. Luckily there was a nice little place to sit, with power for my laptop and free wi-fi (unsecured to be exact…). The plan was to tweet about the experience as @wpinformer, which is the Twitter account for WordPress Informer where you’ll be able to read more detailed posts about each speaker I listened to. once they were ready I checked in, and just a few minutes later I was passing the check in tables and overheard them turning away walk-ins because they were already overbooked. I don’t know what the actual totals were, but I’m guessing there were about 800 people in attendance.
I ended up attending the welcome by Matt Mullenweg, “Cooking With BuddyPress” by Andy Peatling, “Straight from Google: What You Need to Know” by Matt Cutts, State of the Word by Matt Mullenweg, “Your Business Web” by Dave Gray of XPlane, “Customizing Themes and Plugins” by Ann Oyama, “Even Faster WordPress Themes” by Steve Souders, “FAILs, LOLs and User-Generated Content” by Scott Porad, “Lessons from Mozilla” by John Lilly, and the Goodbye by Matt Mullenweg. The fact that there were two tracks means that I missed a lot, but I was able to see pretty much everything I wanted to.
The tracks were upstairs and downstairs, with the main room being upstairs. The welcome by Matt Mullenweg was extremely quick and generic. It served as a kind of kickoff, but I honestly could have skipped it and just started downstairs at the first speaker.
The first real presentation I saw was “Cooking With BuddyPress” by Andy Peatling. You can read Why BuddyPress to get more detail about what I thought, but overall it was a really great session. Andy obviously knows what he’s talking about (he is the lead developer of BuddyPress), but he’s also good as conveying that knowledge to his audience. It was nice to hear a little of the history of the project (421 days to version 1.0) and some of the plans for the future (such as better BBPress installation), but the best thing was getting a quick overview of how BuddyPress worked, what it did, and how it could be extended and customized.
Next I went back upstairs to listen to “Straight from Google: What You Need to Know” by Matt Cutts. Matt is the head of Google’s Anti-webspam department. His job is to find those spam sites that plague the internet, and make sure that Google doesn’t offer you links to those kinds of sites in your search results. Since he spends so much time dealing with Google’s algorithms, he’s extremely current on best practices in Search Engine Optimization. The biggest thing to take away from this talk was that Matt said that WordPress is a “great choice” for SEO because it solves “80-90% of Search Engine Optimization (SEO).” That’s really saying something coming from one of the true experts out there.
After that, everyone came upstairs for “State of the Word” by Matt Mullenweg, whoch actually continued with a question and answer session after lunch. We got a lot of the normal history, WordPress was a fork of B2 and was later officially recognized by the B2 creator as the “official” continuation of B2, etc. There were a couple interesting WordPress facts such as that plugins were introduced in WordPress 1.2 and themes were introduced in WordPress 1.5. He also gave his summary of GPL Freedom to use software for any purpose, freedom to modify software, and freedom to redistribute. Then he talked about the fact that WordPress.org would be featuring themes that had paid support available, which he sees as perfectly in line with the essence of the GPL (and I agree). Alex King was brought up to talk a little about Crowd Favorite which now has eight full time staff in Denver and WordPress development and support is their primary revenue stream.
After the Q & A with Matt, I went downstairs to listen to “Growing Your Business Web” by Dave Gray of XPlane. Dave started by saying his slides sucked and wouldn’t be available for download, but I disagree. As a matter of fact, I loved “the internet according to Dave Gray” which spread pretty quickly across Twitter (so I’m not the only one). The whole talk was great, but was unfortunately cut short because he was going over his allotted time. It would have been nice to let him go a few more minutes, but I understand that they needed to keep things going.
Next up was “Customizing Themes and Plugins” by Ann Oyama, again downstairs. Ann was extremely nervous, and it showed. I was fine with that, I get nervous too. It seems like she knew most of the material, and I credited her nervousness with the bits that she seemed to leave out, skip over, or jumble up. Unfortunately, some of the information she gave was simply wrong. For example, functions.php and plugins are not really “the same thing.” They are loaded at different times, so they can do different things. For example, plugins are loaded before pluggable.php and can therefore override about 43 functions (depending on the version of WordPress) that functions.php cannot. Plugins can also modify settings before the global $wp_query is set up, which can be extremely handy. There are more differences as well, but that’s not really the point. Nervousness aside, there was some misinformation and while many of the people in the room will never need to know the differences (and some of the people there already knew), it’s still pretty unfortunate.
After Ann, things really picked up. Next was “Even Faster WordPress Themes” by Steve Souders, who wrote “High Performance Web Sites” and “Even Faster Web Sites” (both must reads in my opinion). Steve has spent time optimizing web performance for companies like Yahoo and Google, and he really knows his stuff. A lot of it was repeat info from his books, but it was definitely extremely useful information.
Following Steve was “FAILs, LOLs and User-Generated Content” by Scott Porad. He went over some of the highs and lows of having users generate your content for you. Steve Porad is the CTO at Pet Holdings, Inc. (aka lolcats) and I think everyone will agree that they’ve definitely succeeded at user generated content. They also run completely on WordPress.com, which really says something for WordPress.com.
For the last full session of the day I listened to “Lessons from Mozilla” by John Lilly. I loved his style of talking. He was a little ADD, running a lot of tangents…which reminded me of…well…me. He offered no “magic” key to succeeding as an open source project, which I respect because I don’t think one exists. However, he did give a good picture of what it’s like at the top of the food chain, with no one to copy or follow. It had been a long day, and I was tired, so I slacked off on tweeting as well as notes. I wish I hadn’t.
The day ended with the Goodbye by Matt Mullenweg. It was nearly as quick as the welcome, but by the end of the day it didn’t seem so bad. The big announcement? Don’t forget about the sixth anniversary party at the Automattic lounge. The party was nice, but let’s face it…we geeks aren’t all that outgoing. It seemed pretty dead by about 10pm when I left. So what was the best part of the conference? Definitely the developer day on Sunday, which I promise to write about soon.
- #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
WordPress 2.8 is slated to be released late this month. Unfortunately, I’ve heard a lot of talk that 2.8 isn’t anything to get excited about. People are saying that it doesn’t have a lot of new features. As a matter of fact, in the WordPress Weekly Podcast – Episode 49 Were You Fooled?, David Peralty even said that it only had “stuff that should have been in WordPress already”.
While I agree that 2.8 will have fewer noticeable new features than 2.7 did, it definitely has plenty packed into it. First, more than 270 tickets have been closed for 2.8, over 240 of those were set to “fixed”. Many of the changes in WordPress 2.8 are cleaning up what was added in 2.7, as well as strengthening the foundations of the core code.
The widgets code has been completely reworked and all the core widgets have been updated to use the new WP_Widget class. Personally, I think it’s pretty exciting! Previously, writing widgets that followed the multi-widget pattern (the ones that can be used more than once, like the text widget) was a real pain. Using the old widgets methodology, the text widget was 104 lines of code, and rather confusing. The new WP_Widget class has reduced that to 39 lines of considerably simpler code. I’m looking forward to updating my WordPress Twitter Widget, Gallery Widget Pro, and Get Free Web Designs Widget. I also plan to release a few new widgets using the new framework.
Another new feature in 2.8 that I find important, is support in the Admin UI for taxonomy descriptions. Currently in the WordPress admin interface, you can add descriptions to categories, but not for tags or any custom taxonomy. Since categories, tags, and other terms are all the same now, there’s really no reason you shouldn’t be able to control the description of all of them. The patch that was committed (which I submitted), adds a description box to the tag/taxonomy forms in the admin section, adds a description column to the tag and custom taxonomy tables in the admin, and adds two new helper functions for use in your theme called tag_description and term_description.
Here are some other things I find interesting that are new in 2.8:
- comments_popup_link() now works on pages and single posts – This is something that I ran into six months ago on a project I was working on. I found the ticket already submitted by JeremyVisser and submitted a patch.
- I’m a huge proponent of the fairly new WordPress Shortcodes. A couple advancements have been made there. Shortcode Escaping – If order to actually show a [shortcode] in your post you had to use [ to encode the [. Now you can use [[shortcode]] to do the same thing. Also, the caption shortcode can now have shortcodes inside it.
- Support arbitrary tag taxonomies with edit-tags.php – Basically, the tag interface in the admin section now works with custom taxonomies. This is huge for people setting up large complex sites. Recently I had to re-create a lot of this to set up a stock tickers taxonomy. This will make future development much simpler.
- Autosave post/page when pressing Control/Command+S in TinyMCE – this is really nice for those that are not experienced at blogging (or web-based computing in general). Almost everyone knows what Ctrl+S does, so implementing that simple functionality into WordPress is extremely handy.
In the end, the changes may not be as flashy as they were in 2.5 or 2.7, but 2.8 is a solid step forward for WordPress.