On this page:

Also: a whole slew of talks and events!

My session on Totally Rocking Your Development Environment has been accepted for DrupalCon 2009, hooray! Thanks!

This is great! And handy, because I’ve already promised to give an IBM-flavored version of the talk at the first community call for the newly-formed (or -revived, not sure) IBM Drupal community, which means I will have to have it all ready to go by two weeks from now instead of two months.

Two weeks from now is also when I’ll be giving a lecture on Enterprise 2.0 and knowledge management to Dorit Nevo’s MBA class at Schulich.

And I’ve volunteered to help organize or otherwise make these upcoming conferences awesomer: IBM Web 2.0 Summit, DrupalCampTO, Mesh.

And there’s LifeCampTO.

Busy, busy, busy.

Fortunately, talks are so much more fun to prepare when you think of them as learning opportunities. And I’ve volunteered to help conferences out with either things I know how to do well (say hi to people at registration desks, etc.) or that I’m interested in transforming/scaling (abstract submission, voting, schedules) or that I’m interested in learning (selling sponsorship, buying merchandise). And the conferences are a bit further out.

But “slew” is such a good word, because if I’m not careful and if I don’t intentionally slow down as I get into the busy-busy-busy times, then another sense (slew: past tense of slay) may figuratively kick in. That wouldn’t be fun at all.

It’ll all be great fun, though, and I’m sure I’ll learn tons! You’ll hear about all of it here, of course.

So if I’m slow at e-mail, you know why. =)

IRC backchannel log for Totally Rocking Your Development Environment, DrupalCon 2009

IRC chat, thanks to Stephane Corlosquet

This was for my Totally Rocking Your Drupal Development Environment talk at DrupalCon 2009. =)

bryankennedy my favorite development environment requirement = electricity
bryankennedy glad i got near the power strips
jrglasgow Be Lazy!
lyricnz Such infectious enthuiasm
jrglasgow http://c2.com/cgi/wiki?LazinessImpatienceHubris
danblah hah nice jrglasgow
jackaponte is now known as palante_jack.
jrglasgow http://api.drupal.org
jrglasgow What? I only maintain 5 or 10 modules myself!
danblah lol, she has to much time on her hands!
jrglasgow Hey, I’v read about all the modules, at one point in time, then there just got to be too many.
danblah so true nothing worst is when i start putting a module together then find that it was already done a few hours in
tcconway drupalmodules.com rocks
edeloso biggest problem is sorting out which is the most current and well developed for the specific domain
jrglasgow danblah: I’ve done that as well
Morbus what’s going on in the trellon room?
alaken Going through all 4000+ modules is being lazy???
lladnar1_ I guess you have to work hard to be lazy
scor__ Morbus: Totally Rocking Your Development Environment
scor__ http://dc2009.drupalcon.org/session/totally-rocking-your-development-environment
bryankennedy It’s lazier than writing a module that’s already been developed.
jrglasgow Morbus: we are discussing being lazy, the first of the 3 virtues of a programmer
lladnar1_ is now known as lladnar1.
scor__ bashing windows and IE
Morbus thanks.
jrglasgow scor__: that’s exactly why I can this week
jrglasgow ^^ came
vasi For the firefox profile manager on Mac OS X, here’s my way to do it: http://weblogs.mozillazine.org/asa/archives/2008/08/shortcut_to_lau.html#comment-2622794
Lane did she use some term to describe “relentless improvement”? “kaisa” or something?
Lane or did I just mishear?
vasi kaizen i think
scor__ vasi: thanks for sharing your tips – keep it coming!
vasi http://en.wikipedia.org/wiki/Kaizen
tcconway http://getfirebug.com/
Lane vasi: thanks!
vasi np
vasi Safari and Chrome have “private mode”, that also lets you log in as two drupal users in one browser
vasi (Firefox 3.1 should have that too)
Lane tamper data sounds fun just in general, nevermind for development work
jrglasgow When you hate clicking on things, TAB is your best friend
jrglasgow Lane: Tamper Data is fun, especially when writing screen scraping scripts.
tcconway any good iMacros tool for the Mac?
vasi tcconway: i don’t think there’s anything free
tcconway figures….
danblah dude thats crazy
danblah this ext sounds sick
vasi wow, Drupal for firebug shall be my new god
vasi worships
danblah https://addons.mozilla.org/en-US/firefox/addon/8370
tcconway I’m in LOVE http://drupal.org/project/drupalforfirebug
japerry omg bouncy bouncty!
bryankennedy isn’t selenium kinda like imacros?
bryankennedy http://seleniumhq.org/projects/ide/
danblah lol
bryankennedy you can use that on a mac
tcconway OW – PAIN
lladnar1 Drupal for firebug rocks!
tcconway amazing!
tcconway I can’t live without AdminMenu
japerry tcconway: same here.
danblah admin menu ftw
jrglasgow Instead of Admin Menu I use Simplemenu, SimpleMenu has the full Navigation Menu, not just the Admin menu http://drupal.org/project/simplemenu
tcconway Sacha is adorable!
tcconway (couldn’t resist)
bryankennedy Login with email should be in core.
jrglasgow bryankennedy: I agree, let’s make a push to get it there
vasi any recommended debugger UI?
jrglasgow tcconway: I agree
vasi i’m using Komodo
vasi but it’s non-idael
vasi *ideal
sceo XDebug = like Krumo?
vasi (i find Eclipse’s debugger painful)
japerry didn’t emacs die?
alaken I’m using freeware Komodo edit
sceo +1 for Komodo Edit
vasi (and don’t even get me started on vi)
japerry ducks
bryankennedy jrglasgow – yeah, i knew I should have had a commitment to do some code before I suggested
vasi Does the freeware Komodo have debug?
jrglasgow +1 Komodo Edit
bryankennedy xdebug is more than krumo
jrglasgow vasi: no
vasi sceo: no, not at all like krumo
bryankennedy you can use krumo with xdebug
vasi it lets you actually step through lines of code
danblah w00t! shooting
vasi as they execute
jrglasgow +1 Git
alaken Komodo edit – MUCH better with the Komodo Source Tree add-in
Moonshine_ can be handy for xdebug also… https://addons.mozilla.org/en-US/firefox/addon/3960
tcconway what? You have to check things in?!?!
bryankennedy brining new drupal developers into SVN or CVS is a big learning hump….so useful though
sceo puts xdebug on the list
tcconway makes a note to checkin.
edeloso I agree with the whole source tree… makes sure that version of core code is tied with the site…. upgrading a multisite hosting can be a nightmare
tcconway works really well for us too.
bryankennedy whole tree in svn is great, especially b/c most websites have SOME non-drupal pages or info in them somewhere
sceo source code control + drupal — so many approaches. we battled this for hours and hours at my company… we don’t really still have a good method
tcconway wait – you can have subdirectories in /sites/all/modules?
vasi sceo: yeah, it’s hard
vasi tcconway: yup
bryankennedy we use sites/all/modules/dev and then svn ignore on trunk for dev modules
tcconway wow.
vasi bryankennedy: doesn’t that make your dev env hard to migrate?
openprivacy check out drubuntu’s layout http://groups.drupal.org/node/6270
tcconway bryankennedy: brilliant!
bryankennedy vasi: nah, you just ignore it on trunk, not on the branches
vasi bryankennedy: nice
Lane so what’s a good VCS for a single-person shop with no VCS experience or even awareness?
bryankennedy you have to do some manual moving around when you branch
Lane well, some awareness.
tcconway Lane: I’ve had good success with VisualSVN
vasi Lane: i’d start with SVN
Moonshine_ likes subversion as it’s time tested, lots of tools and not CVS
nick_vh Finally got some connection, yeah!
roginald nice
vasi but git is nice, too….it just breaks your brain
bryankennedy and svn has a free book
bryankennedy http://svnbook.red-bean.com/
roginald i started using svn for local with 0 knowledge and it seems fine
bryankennedy You can start using svn in a day, it’ll take a year to learn really well.
nick_vh we use unfuddle for our repository and issue tickets. Really nice tool
openprivacy svn >> cvs
bryankennedy But it’s easy to weather mistakes with SVN
bryankennedy was kicked from the chat room by dcdc. (flood)
tcconway svn ftw
Lane thanks all
scor__ bryankennedy: what happened?
Lane that’s very helpful
Moonshine_ Lane: what os for dev?
bryankennedy posted too much
bryankennedy ooops
openprivacy ubuntu
Lane linux (CentOS 5) and Leopard
bryankennedy Sound like we could have an entire session on version control strategies for Drupal.
scor__ bryankennedy: submit a BoF!
sceo bryankennedy +1 yes and I would definitely go
bryankennedy BoF?
lladnar1 I still struggle with keeping database changes in svn
edeloso anyone had luck with versioning and changes to the database for modules that use a content type built with CCK?
lladnar1 Staging and deployment… I’ll be there
Moonshine_ Lane: In Leopard I use Subversion that’s built right into Komodo and SCPlugin for the finder http://scplugin.tigris.org/
Lane Moonshine_: Thanks.
bryankennedy lladnar1: yeah totally
alaken can anyone recommend a how-to for this branch mergins stuff
lladnar1 Anyone have a good answer for database structures and confit settings?
roginald for a recap of last year’s dev/stage/build talk there is a video of the session here: http://www.archive.org/details/DrupalconBoston2008-BestPracticesInDevelopmentEnvironmentsStaging
bryankennedy lladnar1: this one helped me at one time – http://blog.daemon.com.au/go/blog-post/merging-with-subversion-and-eclipse
lyricnz what’s the link to Sacha’s pages again?
lyricnz notes for this session, that is
vasi i would LOVE a VCS BoF
vasi btw, i recommend that people learn how to use the command-line for version control….
bryankennedy make sure to svnignore your sites/default dir so you don’t put your DB pass in your version control
msonnabaum yay bash
openprivacy we rename settings.php to settings.inc and commit that to the SVN repos; then create a 2 line settings.php that includes settings.inc and sets the $db_url
openprivacy you can also create any other local overrides into the settings.php file
sceo http://dc2009.drupalcon.org/node/3974
sceo http://dc2009.drupalcon.org/node/3810
sceo ^^ any of those apply?
vasi openprivacy: yeah, we do that too
vasi we call it ‘settings-private.php’
vasi and then we have tools that check if there’s a settings-private.php nearby, and will read it to autodetect the db/user/password
vasi makes dump/restore much easier
openprivacy since we do multisites for every project (Dev/QA/Live) I wrote a pushdb script that moves databases between them, changing all the appropriate values – doing dumps of the from and to DBs first
tcconway what’s the tag?
openprivacy it parses settings.php for the db_url
tcconway vimpirator
tcconway http://vimperator.org/trac/wiki/Vimperator
nick_vh aegir
vasi AEGIR
vasi http://conkeror.org/
tcconway http://groups.drupal.org/aegir-hosting-system
nick_vh real nice tool for lot’s of sites
tcconway geben
vasi http://httpd.apache.org/docs/2.2/mod/mod_vhost_alias.html#virtualdocumentroot
openprivacy I haven’t got geben working yet
tcconway what’s her blog url?
vasi we just have VirtualDocumentRoot /var/shared/sites/%-3/site/
nick_vh unfuddle
vasi and then you checkout a site inside /var/shared/sites/
nick_vh www.unfuddle.com
nick_vh really really good!
lyricnz has script to upgrade modules between versions, when module is under SVN control – which determines local patches, makes upgrade, reapplies patches, does svn add/delete as required. Maybe that’s useful to someone
japerry definitely good!
vasi and it appears as blah.ourdomain.ca
sceo http://sachachua.com/site/ I think
vasi blog url: http://sachachua.com/wp/2009/03/01/25-tips-for-totally-rocking-your-drupal-development-environment-pre-session-notes/
vasi basically with VirtualDocumentRoot, you don’t need vhost
tcconway quote of the session: “Spaces, no tabs. Spaces, no tabs”
vasi entab/detab \o/
openprivacy coder will mark those
lyricnz Sacha ftw
tcconway agreed.
msonnabaum haven’t tried Drush for running update.php, but here’s a kinda ghetto bash script I wrote to run it: http://colonqbang.com/content/automating-updatephp
danblah w00t for ghetto bash cripts
sceo1 is now known as sceo.
ccalnan http://drupal.org/project/install_profile_api for those who want to know about install profile
vasi does anybody use a local DNS?
vasi i’ve been thinking of doing that for staging….so i can see what a site will look like with the final domain
tcconway I *kinda* do…I take advantage of MAMP Pro’s local dnsin’
vasi ah
nick_vh http://krimson.be/en/debugging-drupal-6-using-xdebug
nick_vh another handy url
bryankennedy great session
vasi who’s emailing the log?
scor__ http://openspring.net/tip/script-for-dumping-your-drupal-database-by-reusing-settingsphp
scor__ vasi: I will

Totally Rocking Your Drupal Development Environment

DrupalCon Day 1: Notes and Links from March 4, 2009

Building APIs that Rock
Jeff Eaton

More than 400 people packed into the Acquia Room to hear Jeff Eaton talk about APIs, a surprising number considering the early 9:00 start. Jeff talked about the importance of designing a module so that other modules could use it through code instead of through the user interface. He gave a number of examples, including how Views is divided into the API and a module that adds a user interface on top of the API. Great stuff. Pay close attention to the deadly sins of APIs towards the end of the attention, where Jeff outlines common errors and how to avoid them.

…and all of it was presented in a lively manner, with frequent interjections from a co-presenting puppet! Check it out.


Keynote: Dries Buytaert talked about the history of Drupal and where it’s going. Highlights: Picture of Dries when he started Drupal, complete with sombrero and chess board.

Liveblog
Photoset


Totally Rocking Your (Drupal) Development Environment
Sacha Chua

Around three hundred people attended my session on Totally Rocking Your Development Environment, which consisted of a 40-minute whirlwind tour of my favorite Drupal development tips, and a free-for-all session where people shared their awesome tips too. It was lots of fun! People told me that they enjoyed the energy AND they walked away with a couple of tips that could save them hours of effort and frustration. Hooray!

Session description
IRC backchannel log, Stephane Corlosquet
Outline notes, Jeff Schuler (who did an excellent job at capturing audience tips, too!)
Video, Alan Doucette

Totally Rocking Your Development Environment – also covered mostly stuff I knew, but I did learn a few tips (and also learned a little from my next door neighbor. It was a great talk by an incredibly enthusiastic speaker. I can’t believe though, that she suggested using Makefiles for Drupal!

DrupalconDC Report #1, Michelle Murrain


Handling Asynchronous Data with Drupal
Josh Koenig

Josh Koenig gave a quick demo of how to use Drupal.behaviors to contextually modify webpages using Jquery. Using contexts allows you to make it easy to embed behavior (ex: node edit form) within other elements, like a thickbox.

Session description
Presentation and examples
Video


Advanced Theming Techniques
Trevor Twining and Bevan Rudge

This promised to be quite interesting, but it got derailed halfway through. =| I did pick up a few tips about using preprocess functions as much as possible instead of copying and pasting theme code to override things.

Session description
Video


Business Analytics with Views
Frank Febbraro, Irakli Nadareishvili

Frank and Irakli demonstrated upcoming features that make it easy to summarize and graph data using views. You can configure this module to use the FlashCharts, AmCharts, or Google Charts engine. Interesting! =)

Session description


Boosting Our Raw Capacity to Provide Drupal Training
Sean Effel, Allie Micka, Lee Hunter, and Alex Urevick-Ackelsberg

Sean started by emphasizing that different learners have different skill levels, interests, and needs, and that by addressing those specific needs, we can help people not only use Drupal but also get ready to contribute to the community. He talked about his approach at drupaltherapy.com, where he coaches people on Drupal. He shared the core curriculum he’s figured out, but said that as people move beyond that, people have specialized needs.

Barry talked about the lab hours that his company offers to people who have subscribed to the program. It’s a code clinic where the company helps developers and users with their systems. It’s not open to walk-ins from the street; people have an existing relationship with the company, and that allows the company to provide more targeted help. At the beginning of the session, everyone shares what questions they’re working on. They split up to work on the tasks individually or in small groups. At the end of the session, they wrap up by sharing what they learned, what they didn’t learn, and what kind of follow-up they have planned. The company shares post-session wrap-ups on their website.

Alex talked about how his company strongly believes in training both their developers and salespeople to contribute back to the community. Their training is modeled on the Google Summer of Code, and new employees start off by working on some outstanding tasks. They also give their employees 20% time to contribute to Drupal, often on projects that the company selects. They find that community contribution is a great way to vet people both before and after they join the company.

Lee posed two koans: If you document the software, you’re doing it wrong. Also, put the cart before the horse. He meant that a lot of documentation focuses on the features and the interface of the software instead of what the users want to do, and that writing the documentation before developing the system is a surprisingly effective way to work.

Session description
No video recording

DrupalCon 2009 Recap

Quick notes on sessions I attended

Building APIs that Rock
By: Jeff Eaton
Links: Slides, Video
Talked about the importance of making it easier for other modules to use your code (not just users through the Web interface); showed an example of using hooks for ultimate flexibility. Key takeaway: Try building your module as an API, then layer a user interface on top of it (ex: Views). Also, puppets!

Keynote: The State of Drupal
By: Dries Buytaert
Links:  Video , Text Outline
Drupal community, code growing exponentially. Next steps: Connecting data

Totally Rocking Your Development Environment
By:  Sacha Chua
Links:  Video, Installation Profile
I had a lot of fun learning from people’s tips, too!

Handling Asynchronous Data with Drupal
By: Josh Koenig
Links:  Video, PDF Presentation
Key takeaway: Use Drupal.behaviors to attach contextualized Javascript code. Also, you can write data to files in order to make polling more efficient.

Advanced Theming Techniques
By: Trevor Twining
Links: Video, Slideshow
Most of the presentation was about how to define subthemes and extend something like Zen.

Business Analytics with Views
By: Irakli Nadareishvili
Links: Video, Slideshow
Ooh, pretty charts. Key takeaway: look into charts and views_charts modules for integration with Google Charts and other charting engines

Boosting Our Raw Capacity to Provide Drupal Training
By: Sean Effel
Links: Training Models, Notes from Audience
See my notes at http://sachachua.com/wp/2009/03/05/drupalcon-day-1-notes-and-links-from-march-4-2009/ . Key takeaway: Core training has lots of common ground, but then need to customize training for skill level / needs; group clinics/workshops handy

Building Infrastructure You Can Scale, Monitor and Maintain
By: David Strauss
Links: Video
Great slide breaking down flow of traffic to rough percentages. Key point: adding more components is easy (content delivery network, reverse proxy, etc.), but adding more than one component (ex: multiple database servers) is harder. Coherency issues, replication issues, etc. Try to minimize dynamic pages.

When Efficiency and Manageability Matter, Drupal at Scale,
By: Scott Mattoon
Links: Slideshow, Video
Left this session after a short while, as it seemed to be mostly about Sun tools.

Powering Collaboration in a Distributed Enterprise

By: Dan Karran
Links: Video

Interesting demo of a featureful Drupal site used on the intranet. Check out their auto-saved drafts.

Drupal Patterns: Managing and Automating Site Configurations
By: Chris Bryant
Links: Slideshow, Video
Patterns allow you to bring in groups of functionality. Interesting: can publish and share patterns. No support for change management yet.

Staging and Deployment – A Panel Discussion
By: Greg Dunlap
Links: Video
Deploy and db_scripts look interesting. Also, I promised to upload my .install file snippets…

Why I Hate Drupal
By: James Walker
Links: Video
Good stuff. Interesting contrast to kumbaya keynote: contrast of Drupal’s growth with Sharepoint, WordPress, and Joomla.

Advanced Drupal Security
By: Neil Drumm
Links: Video
Went through key parts of Drupal security handbook. My takeaway: use session_save_session(FALSE); when changing global $user;

Selling Drupal Services
By: Neil Giarratana
Links: Video, Slideshow
Lots of tips about the business side of it. Key takeaway: RFP process is inefficient; try partnering up with agencies instead, so you can build on relationships

Project Management For Fun and Profit
By: Crystal Williams
Links: Video
Not much new here if you’ve managed or worked on projects before

How do Drupal, Joomla! and WordPress Stack Up?
By: Amy Stephen
Links: Video
Didn’t go into an in-depth technical comparison / benchmarking

Token: The Little API That Could
By: Greg Knaddison
Links: Video
Walked through how Token module works, how to implement your own tokens

Sessions I wish I also attended

JQuery, Dmitri Gaskin Links: Video
Drupal and the Geospatial Web, Jeff Miccolis Links: Video, Notes from Audience
Optimizing your LAMP stack for Drupal, Eric Mandel Links: None
Learning jQuery UI, Richard Worth Links: Video
SEO & Drupal: Search Engine Optimization Tips, Tricks and Best Practices, Gregory Heller Links: PDF Slideshow, Video
Building advanced social networks at a large US University, Kyle Mathews Links: Slideshow, Video
Building a Frankenstein monster and how to maintain it, mortendk Links: Video
Front End Performance – Make Your Website Lightning Fast, Konstantin Käfer Links: Video
Communicating Data Online: Data Visualizations and Open Data, Eric Gundersen Links: Video
Project Flow and Tracker: From business objects and user stories to test-driven Drupal based website application, Victor Kane Links: PDF within page
Scaling Drupal using Amazon Web Services (AWS), Frank Febrarro Links: Video , Slideshow
Drupal Process Management, Drew Gorton Links: Video
The Business of Open Source, Liza Kindred Links: Video
Quality Assurance and the Drupal Development Process, Fen Labalme Links: Video, Slideshow
Inside Drupal Caching: From Static Variables to Memcache, John VanDyk Links: Video

Note: Thanks to Ana Macatiag for all these handy links! =)