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 livestream.com, legislation is all posted, bimonthly web traffic reports (made public)
percent mobile, google analytics, chartbeat
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 UserVoice.com
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 - http://bit.ly/NYSSopenleg
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, cavotes.org
node heirarchy for relationship
taxonomy for displays
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.
cboyd on drupal.org, 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 glaucoma.org
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 drupal.org/accessibility ?
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.
OpenData movement will be as important as Open source., data.gov 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, whitehouse.gov 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