Notes by:
Nick Young
http://oitdesign.ncsu.edu
@usaussie or @oitdesign
North Carolina State University
DrupalCon 2011: Chicago: Day 2 Notes
#########################################################
Session 1:
Teaching Drupal: Creating Effective Drupal Training Materials
for Clients, Employees, and the Public
#########################################################
Session URL: http://chicago2011.drupal.org/sessions/teaching-drupal-creating-effective-drupal-training-materials-clients-employees-and-public
- Difficulty keeping different forms of documentation/training
- text
- augmented text (more difficult, as it includes images/screenshots etc)
- video (whole video may need to be rerecorded, reposted)
- this is the richest version of documentation though
- can provide most vaue to user if done correctly
- Finding what you need (as a user) might be different based on the medium of the material
- text is searchable/scannable
- video might make it harder to find the nugget of information that is needed
- might be necessary to abstract the pieces of information so they can be repurposed/reused, so that people can choose which medium they’ll use to learn
- The motivation of the user matters
- People buy solutions, not tools
- people aren’t buying a hammer, they are buying a solution for driving a nail into wood
- people are buying Drupal, but they aren’t buying drupal for what it is, they are buying Drupal for what it does
- Knowing why people are buying/using Drupal is going to be important
- Match the expected tone and format
- find another example of what the audience needs/expects and copy that style/tone
- Give instructions in as few words as possible
- Talk less
- Teach a single thing well
- tell em what you’re going to tell ‘em
- then tell ‘em
- then tell ‘em what you just told ‘em
- Be a servant with authority
- guide dog
- Drupal is weird....how much does the Drupal way matter
- learn from the users questions
- Prepare
- Dangerous dealing with development/beta software
- know if material is about non-stable concepts
- People want stuff fast
- Make things as painless as possible
- learning new things is painful, so try and make it much less painful than it needs to be
- unless your face is providing additional information, don’t put it on the video
- recording the screen can be cheap and easy (5-10 fps)
- Only output audio as mono and at a lower frequency (220kbits/sec 5fps)
- 1-2mb per minute is the average file size
- 3 good ways to record video
- more work up front...write it first, read it, the perform/record
- little pieces...needs a good outline ahead of time
- find your style...which method works for you
- Take criticism in your stride
- Make the training memorable...make your style memorable
- viewers will validate your style
- it’s better to have someone like OR dislike, than it is for them to feel indifferent about what they just saw
- at least if they don’t like it, you can get feedback to improve for later
- Screenflow (mac)
- mousepose (mac)
- x264 encoder
- quicktime 7 player pro
- camtasia
- ishowu (mac) - $20
- record larger screen and scale down no more than 25%
- use zoom and highlight in real time (dont do it in post processing)
- H.264 makes things lighter
- adjust contrast and brightness to make things POP
- deeper saturation (120), strong contrast
- question & answer section
- teaching developers and end users
- concepts are the same, keep it quick, simple, easy to follow
- know what the audience needs, and enhance what they know already
- How do you train people who are not tech-savvy, resistant to change, but must learn to maintain content
- about how change happens within us
- find what’s important to them, and then present them with a solution
- choose your battles
#########################################################
Session 2:
Building Conference & Event Websites in Drupal with COD
#########################################################
Session URL: http://chicago2011.drupal.org/sessions/building-conference-event-websites-drupal-cod
- Drupal distribution for conferences available
- checkout registration workflow
- Session moderation
- Sponsor moderation
- Themeable schedule grid
- BOF scheduluer (coming soon ?)
- more granular control over signup workflow
- coupon-based registration process
- personalized schedules
- free event support
- attendance tracking
- sponsorship
- automated sponsor sales
- badge printing
- admin dashboard
- dashboard for other user roles
- session organizers
- sponsors / sponsor organizer
- attendees etc
- unique base theme
- progress meters for different pieces
- ie: you’ve completed 25% of XYZ process etc
- figure out the order in which you want people to go through different parts of the workflow
- register first, then pay, then propose a session, then sign up for a session etc
- attendee networking
- mobile adaption
- ie: mobile optimized theme
- improved accessibility
- post session surveys
- dependencies on modules that aren’t full releases in Drupal 7 yet
- Drupal commerce module integration
- not yet...not a bad idea though
- ie: sign up for a sponsor booth etc
- COD is built on the premise that every registrant needs an account (or at least gets an account after signup)
- ie: what if you need to register and pay for a child that doesn’t have an email address, or needs an account at all?
- multiple conferences in the same site...how to manage the data that i shared
- COD is built now for a single conference on a single website....so there’s no concept of sharing the data or having another conference be managed on the same site
- COD BOF: Tomorrow at 2:15pm (Thursday)
- presenters can upload their presentation/session files/attachments inside COD
- have secret sessions?
- just don’t enable voting :-) or enable it for only a particular role
- UC Signup prevents the billing information from being asked for if there’s a free conference/$0
- what if you want to use COD, but not ubercart
- ie: civicrm module instead for checkout
- you should be able to disable the ubercart pieces (event module?) so that you can use your own choice of checkout
- Pay per session instead of per conference
- yes...possible....just make sessions signup enabled & ubercart product classes
- will make people go through the same workflow as they would do for the overall conference
- Exportable conference configuration
- ie: putting on the same conference several times per year
- Features UUID module?
- Signup for the conference but not for sessions?
- use roles to say what each registrant can or cannot do
- assign a role id as a product attribute
- would not work for multiple signups though
- Is it possible for attendees to set up one on one meetings with other attendees
- sort of....need additional contrib modules for that particular use case
- organic groups with COD? anyone doing it?
- presenter hasn’t heard of anything like that so far.
- best practices for Drupal apply to COD as well
#########################################################
Session 3:
Failure to launch: Drupal performance tuning
#########################################################
Session URL: http://chicago2011.drupal.org/sessions/failure-launch-drupal-performance-tuning
aka: the nerf gun session
- plan for performance from the start
- When you clear the cache in Drupal, you're really only clearing the page cache
- you should clear them all
- tbl_cache_form is not really a cache
- when you disable cache, you're only disabling the page cache
- caches PHP operation codes for faster execution
- Object Cache
- Varnish, Squid, NCINX etc
- no php processing to deal with
- Pressflow & Varnish
- the perfect couple
- not a fork
- performance optimized distribution of Drupal
- created by Four Kitchens
- adds a new performance page
- adds external setting
- page cache maximum age
- the higher the settings are set, the less requests the web server has to manage
- tradeoffs with how often new content is "immediately published"
- Varnish is a web accelerator..a reverse proxy
- How do you make your website faster now?
- Build the right stuff from the start
- syslog > dblog
- statistics: rest in peace
- do not use the statistics module
- Views module has evil things in it
- change this setting always
- loads the whole node
- loads all module hooks
- do not use node style
- purge session logs periodically
- purge all logs periodically
- change the default php settings for Drupal
- ini_set(‘session_cache_expire’)........
- When Drupal can’t find a page, it can’t cache
- diagnosis and load testing
- use developer tools
- age: 0 --- this is bad...means the page isn’t g
#########################################################
Session 4:
From Zero to Distribution using Features, Profiler and Drush Make
#########################################################
Session URL: http://chicago2011.drupal.org/sessions/zero-distribution-using-features-profiler-and-drush-make
Start off building a drupal distribution -- just install and configure what you need
The only additional module is "features"
1st: Export a feature (collection of components that are packaged up as a piece of code, as opposed to being in the database).
after exporting module, copy exported module directory
into the sites/all/modules page (of a different drupal instance)...enable on the features page....and it will create/enable/configure all the necessary pieces to make that feature work
Drush Make
URL: http://drupal.org/project/drush_make
DOES NOT WORK WITH MULTI-SITE....planned to support multi-site in the next version
assemble modules into a drupal site
like drush dl (download modules)
makeFileName.make
core = 6.x
api = 2
; will grab the latest version of the specified module
projects[] = moduleName1
; will grab specific version
projects[moduleName5] = 2.9
; the above is shortcode for
projects[moduleName6][version] = 2.9
; to put that module in a subdirectory (must not use short code syntax for version if putting it in a subdirectory with this command)
projects[moduleName6][subdir] = subdirNameHere
projects[featureName][type] = module
projects[featureName][download][type] = get
projects[featureName][download][url] = "http://path/to/feature.tgz"
then run: drush make makeFileName.make path/to/install/drupal
Translated: HAWT!
Profiler
php library that makes creating install profiles easy
uses same syntax as the .make files
Clarification on terminology
--install profile is just the code that runs during the initial install process
--a distribution is a combination of the install profile and the modules that come with it
.profile file
grab code from the profiler module page / existing code
.info file
; required setup information
name = my profile name...ie: News Wesbite
description = my cool news website
;dependencies for this install profile
dependencies[] = myFeatureName
; the theme that will be used/activated
themes = pushbutton
;copy lines of code from profiler page
libraries[profiler][download][type] = "get"
libraries[profiler][download][.......
#########################################################
Session 5: Advanced Drush
#########################################################
Session URL: http://chicago2011.drupal.org/sessions/advanced-drush
All demonstration...no real notes....pretty hawt stuff though.
- add/edit/delete/duplicate a node from command line
- sync node information from command line
- drush xkcd sandwich