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 |
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.
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
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.
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! =)
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

Kudos to Garr Reynolds of Presentation Zen for finding this animation by Jonathan Jarvis that explains the credit crisis:
The Crisis of Credit Visualized from Jonathan Jarvis on Vimeo.
As W- says: “Nicely done! The credit crisis sucks, but this was nicely done.”
Maybe someday I’ll learn how to tell stories using these techniques…
