Notes from DrupalCon

I am dumping my raw notes here from DrupalCon in a shameless attempt to encourage myself to go through and structure them:


NY State senate website went from Lotus Notes website to Drupal.

Used to require FOIA requests for everything to get info in Albany

Livestream 3 diff types of videos using, legislation is all posted, bimonthly web traffic reports (made public)

percent mobile, google analytics, chartbeat

"Senator API"

RSS & iCal feeds for all

Creative Commons for all content

Full video streaming online. 10-person shop.

Need help getting embedded media module ot work better. 

Social Networking engagement, facebook, twitter. 


Idea generators? Drupal Digg clone = drigg. Clone


BSD license on all code to start, then put GPL license on it. 


Built on Openleg "OpenLedge" Nathan Freitas @nathanfreitas  (built in Java to interact with backend mainframe system)


Four Restful apis


XML RSS Atom JSON CSV HTML, 2 clients. Interactive voice calling, sms text messaging, iPhone, Android and Smartphone Support, Instat messaging client, twitter notifications, twitter replies. 


Mark headd -

People love online town halls. 


Decentralize Social networks.


Sharing identity information. How we and others define ourselves. Our social identity changes depending on context. 


Using Views (built for block displays) for worklow instead of the contributed workflow moudle, 

node heirarchy for relationship

taxonomy for displays


flag weights



Another way is using nodereferences & flexifield

Create a node, using flexifield, and each one would have a context (e.g., caption if photo)


Planning process - documentation, get approval from clients, started with sitemap & wireframes


Using authoring field to assign content, and put it in date order. 


Need to use Rules module. Rules+Triggers+Actions as a toolset.


League of women voters of California. - Using Boost. 


Use Acquia as the stack for installation. -> Mac/Windows/Linux


Give an extra laptop with Acquia installer. Give 


Web accessibility with Kate Lynch 


W3C, WAI, WCAG, ARIA, AT, a11y 


Display of various assistive technologies. Who is accessibility for? Everyone.


Begin with the end in mind. Navigation, Icons, Clear (squint test). Zen Framework/Tools.

26 Web safe colors, 3:1 contrast ratio, don't use color-only cues, link colors 


Actions OnFocus and Onclick, don't just code for one type. 


Visual indicatiors, forms marked up well, help text, required is showed, validation errors not confusing. Don't just give the user controls, rather give the user control over the page.


Windows power down messages are not accessible!


ARIA patches for Drupal 6 available on d.o.


VisCheck - outputs versions of site for contrast ratio.


Youtube is used for video diaries and as an outlet of expression for users with disabilities. 


Heading called status message really good. 


Layout is a big problem, some things on far right, some things on left.


Option for entering a message was very confusing. "Are we really hungry for it" or doing it just enough to say it is accessible. 



Accessibility BOF


cboyd on, from Berkeley


John from Stanford. - works for W3C accessibility initiative. talk to him!


Charles Belov. Webmaster for SF MUNI! 


Kevin Miller - Accessible content module on d.o. CSU Monterrey Bay.


Toggle layouts at the top of the page for


Need a way to associate captions to videos in Drupal?


QUAIL is an implementation of the open accessibility test from Toronto. -> Accessible content module which extends QUAIL. Every test becomes a node. 


Need a rating system for modules on how accessible Drupal modules are. Need standards for Drupal contrib module developers.


How about a book, "How to create accessible web content with Drupal"


Link back to accessibility resources from ?


A site that says "Help me look at my website through your eyes"


How about a group community site that focuses on users with disabilities where they can connect with web developers.


Maybe ATI funding. ?


David Rothstein, used to work in Education and then became an engineer at Acquia.u


Drupal 7 introdcues the idea of context as part of menu array. So then it will appear on the drop-down upper right menus that you specify. 


So now there is MENU_LOCAL_ACTION


An action is something you can do. A task is a tab and prsents data. Don't be afraid to change your module's URLs. 


Now is a #group setting for vertical tabs putting in a group. 


foster intra-team communication, uses gira as a task management tool (as opposed to us using sharepoint)

real-time communication is important, the project manager doesn't need to be involved in all the conversations


ask the right questions: audience?


requirements toolbox: sitemap wireframes, specs, system diagrams, design comps, optional: user surveys, style tiles


document integrations with system diagrams


present a clean adminstration interface for content editing to get adoption, help text is extremely important


real usability testing. 1-4 users, 1 camera, 30 sec interviews, top priorities for users, "uh oh" version first


Ask a question but demand only 5 word answers. 


Only thing we are really missing is  SOAP Server/Client and Query Exporter?


Architecture Governance - Identify Existing controls, assess effectiveness of controls, recommend changes, validate with stakeholders


Drupal @ ASU, core service is shared web hosting and contracted development. Core services, help site (like DoiT's site) 


Only app they support community with is Drupal. 


Territorial site ownership, no incentive to unify, no supported tools, no community. 


Velvet glove. a.k.a carrot vs. stick. Make Drupal as attractive as possible. 



Tactic #1: stick to standard platform + standard environment + standard branding

Tactic #2: Community - web  community, ASU Drupal Users Group, Drupal Office Hours, Training: Lullabot/ASU, Support & Outreach


25 Servers w/ ~100 sites each. Core sites all in Drupal. 


Hosting Environment, built on "directadmin"


Moving into the Cloud


Challenges: Change is slow and difficult. Institutional perception. Prove Drupal as legitimate. Focus support efforts. Training. Mobile.


Support is handled through tickets. 


The shared hosting environment has an installation profile system. Provide packages with web auth module and ASU theme. Want to do installation profiles with AEGIR, just click a button and roll out.


They are really not in the business of setting up the Drupal site itself, let end users set it up. 


They have an Enterprise environment (intranet) with firewalled/authenticated content.


Looking at managed services so don't have to maintain that. 


John Hopkins moved from Windows SQL Server/ColdFusion


John Hopkins, information project, population information program, INFO for Health and Knowledge for Health. Databases: POPLINE, photoshare, media materials clearing house. 


Disconnected silos of information, low budget static websites.


K4Health Platform. Use OG Groups, OG Toolkits, Domain Access, Interoperatbility, SOAP and Web services, taxonomy, auto-tagging and community IDs, GSA


Several types of environments, one is a simple site for those with no expertise, it's still easier for people to go to HTML.


How to do cost recovery? try to recover employee cost from other developments


Open Source in cloud


Can use power spike information to figure out which model of refrigerator/washer you are using...scary. Google Goggles had face recognition but they got rid of it due to privacy concerns, still scans book covers. IPhone App for speech recognition via Google's speech recognition. 


O'Reilly is building a data driven operating system.


Microsoft du jour.  (oh yeah Microsoft Active Sync)

Amazon Web Services.

Google apps.


OpenData movement will be as important as Open source., data interchange, CONNECT, part of stimulus bill $20 billion to adopt open healthcare. Code for America.


Vending machine gov't? put in taxes get out services.


What's changing for developers in D7. Starat with Fields. In D6, Either add a column to the node revision to a table or create your own table and implement hook_nodeapi() to fetch the data. (if not using CCK)


schema: how to store the field, widget - how to edit the field, formatter - how to dislay the field, settings - e.g., global or per-instance


entities (from nodes, comments, users) - meta objects, high-level object, can receive fields (fieldable), can support revisions, can have several bundles, can have a URI, can have build modes


nodes, taxonomy terms, commands, users, ?, are the entities in D7 has save and load but not delete in core


contrib module Entity extends the core Entity API. Support for rich classes with methods.


See new/old values with a case-tracker (less than 100 lines). Concept is simple but mess to implement in D6. No need for file_upload() anymore, file fields can be attached to comments. 


$bundle is a sub-entity type, for node it is a node-type. fields can be several bundles. 


currently some things broken in comment api preventing entities from working correctly.


everything as a node is a crusade of the past. Rely on views for displaying your entities. Don't use nodes for non-content.


Extend existing entities using fields.


In D7 field storage is extensible, 1 table per field, but can implement own storage (field storage module for mongodb). 


Field revision is a revision of the entity. 


Fieldable fields in D7...multi-group?


Drupal Commerce module is a rewrite of Ubercart for D7.


Testing using the Grinder, Jython. Output in JUnit format (hudson can use, so quickbuild too). Do have a full user form submit.


Looks like the tests are standalone, not simpletest? Class TestRunner. 


In order to make "load injectors" more efficient, have virtual users wait less than real users. 


Varnish hist provides a histogram of response times from backend, can see a graph of how infrastructure performs as the load increases. Shows requests that get through without getting cached. With Grinder can establish upper limit of architecture, load tests show the bottlenecks, and same load tests can show that you fixed the problems. If site offline, Drupal is unable to render, or no slots available, or couldn't do enough queries in time.


thing in devel module, which triggers a menu_rebuild, generates many requests. 


HTTP Traffic Proportion Analyzer.


They actually launched twice and failed both times, and wasn't till the 3rd time when successfully launched.


They are thinking about a creating a test framework to release on d.o. , maybe use a base Drupal Class (SimpleTest?! duh)

tool called grinder analyzer


Jeff Miccolis and Development Seed - Features & Exportables

Problem with Drupal, solution is features module, how to implement, best practices for doing this, and distributing features


Basic problem is extracting the business logic (everything we set in Site Building & Site configuration) from the database. 


Round 2 is a PITA. Rebuilding on all dev/stag servers, then rebuild on prod.


They rely heavily on drush + SVN


Open Atrium is conisder a installation profile. 


Recommend Project module. 


drush make to assemble a website from exportables and other standards


Reg. people see open government diff. than techies, techies see it as "Open Data/Information"


Tech Requirements of OGD

Use of "modern technology" / best practices


Open data sets


Published Open Government Plan


FOIA Plan and Information


Make everything machine readable


1> publish well structred raw data 2>online catalog of raw data complete with documentation 3>machine-readable


Enable a two-way conversatin. be proactive. Collect needs/idea from citizens. improve citizen services online


Security -> Scale -> Accessibility, deal with politics.


As grows, there is going to less community contribution per capita. but improved reputation with exposure to larger audience


OpenGov Distrubtion. Similar to OpenPublish. Regulatory and security compliance, rapid site development.\\


What Drupal can do for government. Open Data, open source, how Drupal fits these things.


Dave Cole, Open Source - Open Government


Node Embed module, allows for themeing content inserted into other content


Aegir in actual use looks a lot like luntbuild/quickbuild. They are running on Open Atrium install profile.


Drush is big on make files now, pretty easy to put together, Aegir uses them as well


Drush make recursively grabs openatrium make file and calls it. Very much like Phing. 


What migrate actually does. Create sql dump. Creates a tarball of that dump, deploys it into a single platform, and then runs update.php


1 command installer is available in the dev branch 

Comment using an existing account (Google, Twitter, etc.)