This past weekend, WordCamp NYC was held at Baruch College in New York. It was (I believe) the second biggest WordCamp to date, if not the biggest (by number of attendees), right up there with WordCamp San Francisco. WCNYC was an incredibly busy event, with so much great WordPress stuff going on at any one time that it was hard to decide what to attend. I was lucky enough to be able to present/be involved in not just one, but 4 presentations throughout the weekend, and I wanted to get some slides and details up here for reference.
My first appearance was to give a 5 minute lighting-style introduction/demo to the IntenseDebate WordPress plugin. Since we thought internet access might be a problem, and since I hate doing “live” demonstrations, I pre-recorded a screencast (using iShowU for Mac) running through all the features, then just talked over the top. Here is the video, and you can click the link below the video to get the notes I used while speaking. This same presentation was given on Sunday during the Ignite-style talks.
- What is it?
- Drop-in comment enhancement system that takes your comments to the next level
- Works on major blogging/CMS platforms
- Joomla
- Drupal
- Blogger
- TypePad
- WordPress
- Generic code for “everything else”
- Owned by Automattic
- WordPress integration
- Plugin on wordpress.org/extend
- Imports all existing comments
- Initiates full 2-way sync
- Tied into the actions within WP to always stay up to date
- Replaces your comment moderation panel in wp-admin with an ID-enabled one
- Ease of commenting
- IntenseDebate global accounts
- OpenID
- Twitter Connect
- Tweet this comment
- Facebook Connect
- Share on FB
- Guests
- Moderation Options
- Rely by Email
- Moderate by Email
- Blacklist/Moderation filters
- Akismet Integration
- Crowd Sourced
- Auto-approve based on reputation
- Auto-delete based on negative reports
- Build Community
- Users can “get to know” each other
- Profiles
- Comment history
- Reputation points help users make judgements
- Users can “get to know” each other
- Customization
- Plugins
- Sharing
- CommentLuv
- AfterTheDeadline
- Custom CSS
- Layout options
- Disable elements
- Change image sizes
- Add a message to your users
- Comment sort options
- Plugins
After lunch, I was involved in a Google Summer of Code round-table discussion, where we talked about what the SoC was, how WordPress was involved, and some of the things that both mentors and students learned during the experience. We were also trying to explore what WordPress as an organization could do in the future to improve the experience for everyone involved, and also how we could potentially include more mentoring as part of the “normal” operations of the community. Daryl Koopersmith (the student I mentored), Justin Shreve (Search API student), Jane Wells (WordPress GSoC program admin) and Mark Jaquith (another mentor) were all there, and we had a few other folks who came along to learn about GSoC and the projects that came out of it. I’m personally super excited to see Daryl’s project, Elastic, mature and get into the wild a bit more.
Finally, during the last timeslot of the day, I presented a new talk called “Advanced WordPress Development Environments” (boring title, pretty technical information). The idea of this was to present some of the perhaps more advanced development techniques, tips and tricks that have become a part of my everyday development work over the past 13 years that I’ve been working on the web. Again, my notes are available via the link below the video.
- Development Environment
- MAMP
- WampServer
- Roll Your Own
- http://php.net
- http://mysql.com
- Apache is installed on Mac, or http://httpd.apache.org
- nginx
- lighttpd
- Name based VHOSTS
- httpd.conf
- Restart Apache!
- Hosts File
- /etc/hosts on a Mac
dscacheutil -flushcache
- C:\WINDOWS\system32\drivers\etc\hosts on Windows
ipconfig /flushdns
- /etc/hosts on a Mac
- MySQL Tools
- command line client “mysql”
- phpMyAdmin
- Came with MAMP/WAMP
- MySQL Query Browser (part of MySQL Tools from mysql.com)
- Subversion
- Clients
- Command Line
- Versions
- Tortoise
- Visual Diff tools
- Comes with XCode on Mac
- e.g. Trac
- Basic checkout
- Upgrading
svn up
svn switch http://svn.automattic.com/wordpress/tags/2.8.5
- WordPress as svn:external
svn propedit svn:externals .
- Clients
- Development Tricks + Tools
- One-directory-up install
- TextMate
- Find in Project “function something”
grep -R --exclude="*\.svn*" "function [^ ]*(" *
grep -R --exclude="*\.svn*" "function [^ ]*(" * | grep "function name you are looking for"
- WordPress Bundle
- PHP Bundle
- Find in Project “function something”
- aliases + scripts
- connect to dev server
alias dev='ssh user@remote-host.com'
- apply patch
alias applypatch='patch -p0 <'
- make patch
alias makepatch='svn diff >'
- Install WordPress!
- wordpress.sh (and more?)
- connect to dev server
- Tunnel your connection via SSH
alias tunnel='ssh -D 8080 -fN user@remote-host.com'
- SSH Tunnel Manager
- FoxyProxy
- http://foxyproxy.mozdev.org/
- Proxy Details > Manual > Host: localhost, Port: 8080, SOCKS Proxy: v5
- “Blacklist” anything served locally, then run in Pattern Match mode
- Mount remote filesystem via SSH
- MacFUSE
- Fusion for Mac
- ExpanDrive for Windows
- WebDAV where available (server must support it, e.g. DreamHost, under “Goodies”)
- Moving a DB
UPDATE wp_options SET option_value = '' WHERE option_name = 'siteurl';
UPDATE wp_options SET option_value = '' WHERE option_name = 'home';
UPDATE wp_options SET option_value = '' WHERE option_name = 'upload_path';
UPDATE wp_postmeta SET meta_value = REPLACE( meta_value, '','' ); -- Attachments
- Developing on multiple versions of WP
- Symlink plugin into wp-content/plugins/
ln -ns ../../../myplugin myplugin
- Handle WP_CONTENT_URL and WP_PLUGIN_URL
version_compare( get_bloginfo( 'version' ), MINIMUM_PLUGIN_VERSION, '<' )
if ( function_exists( 'something' ) ) { // do stuff }
- Table prefixes are your friend!
- Create one database
- Install each copy with a different prefix in that DB
- wp25_
- wp26_
- wp27_
- wp28_
- Symlink plugin into wp-content/plugins/
- error_log() is the quick, easy way to get some feedback
- Testing
- WordPress Test Suite
- http://svn.automattic.com/wordpress-tests/
- Uses PHPUnit
- Write your own test suites to test functionality where possible
- Manual, with simple “assertions”
- PHPUnit
- SimpleTest
- Develop in Firefox (or something else remotely standards-compliant)
- Firebug will change your life
- Test in IE (and apply CSS hacks where necessary)
- _attrib: (IE5+)
- *attrib: (IE7+)
- height: 1%; fixes a lot of rendering bugs
- Screenshots
- BrowserCam
- BrowserShots
- VirtualBox
- http://www.virtualbox.org/
- Run Win/Linux on your Mac
- Available for Windows/Linux “Hosts”
- Install OS + apps (IE) and run them “in a window”
- WordPress Test Suite
I want to say a huge thank you to Jane and Steve (the organizers), to all of the sponsors, the other speaks, and of course to all of the attendees. WCNYC just rocketed to the top of my list of coolest WordCamps thus far 😉
Tweets that mention WordCamp NYC Round Up « Dented Reality -- Topsy.com
Thanks for the PDF of the presentation, Beau! (Got it from slideshare.)
No problemo demetris 😉
Beau Lebens Demos IntenseDebate at WordCamp NYC 2009 « IntenseDebate – Official Blog