COD D6 to D7 LA Drupal group Port Wiki

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
You are viewing a wiki page. You are welcome to join the group and then edit it. Be bold!

COD D7 Port Code Sprint Preparation

The COD D7 Code Sprint is over, and significant highlights are reported below.


Table Of Contents

  1. Original Introduction
  2. Useful to COD Sprint planners telling that attendees should do ahead of time. Needs updating/merging with Christefano's sandbox URL and steps.

  3. Leadership Preparation List
  4. Porting Possible Task List
  5. This section will be updated and merged into the COD D6 to D7 Feature Status Table by adding additional rows, in priority order. This should be complete by October 20, 2011.


    The below sections are 2-5 paragraphs each.

  6. COD D7 Alpha Release Requirements
  7. Possible D7 alpha live implementations
  8. COD D7 "PlaceHolder" Speed Up To Alpha Release Proposal
  9. COD D7 "Commerce" Direction Research
  10. Replace "View Send" with Rules to send out emails
  11. Enhance and update the D7 COD Support Module Readme File
  12. D6 to D7 COD Support Module Dependency Mapping and Roadblocks See attachment.
  13. COD Support Issue Queue Patch 12 Status


  14. The below table is key summary of COD Feature Modules and the order they must be ported in.

  15. COD D6 to D7 Feature Status Table
  16. The Table rows are in Priorities for future COD Code Sprints to benefit from in picking what tasks to attempt first. As of 2011/10/11 there are still updates from the LA Weekend Sprint to be added into table, i.e. dependencies and issue queues items from COD Support and COD D7.

  17. Sprinter Preparation List

Original Introduction

[Note: The original pre-meeting Wiki Introduction is included for historical reasons, as well as "instructions" for attendees going to future COD Sprints. This section will be rewritten and merged into the "prep" section.]

October 8&9, 2011 Announcement: http://groups.drupal.org/la/cod-d7-sprint

The primary purpose of this wiki is to list the needed advanced preparations for before the Code Sprint, after the Code Sprint, for both the leaders to prepare and follow, and for Sprinters to follow to prepare their computer for the Sprint.

The hope is everyone comes with their laptop loaded with a complete COD 6/7 environment, ready to select a sub project, and start making code changes in the first hour of the sprint. This would avoid the first hour or two having the experts step through preparing this environment.

This wiki will grow over the next few weeks, so subscribe or check back, as the needed preparation work to get Code Sprint attendees, both at the Sprint venue and remote, up to speed, for the big event.

It's noted we are joining an existing effort and some (much?) D7 porting work has already been done. So, this preparation page will list the resources documented by that effort, to be read, sometimes instructions followed, to come up to speed on that existing effort, and join it.

This page lists the stuff the Code Sprint leaders need to prepare, and post either here, or elsewhere (and be linked to from here).

Be there or be a cod. Don't be the cod. -- anonymous quote



Leadership Preparation List

The below quick list from my notes last night will be expanded upon over the coming weeks.
EVERYONE should edit this wiki to expand the needed sections. Please.

Leaders:

  1. Write Post for front page of GDO/DO - Optional
  2. Announce Code Sprint dates, times, location in a variety of places.
    1. Post announcement on your G.D.O web section
    2. Email to your group's mailing lists including a link to the above.
    3. Post on any custom web site, and member web sites, and blog about it.
    4. Post to #drupal-cod as you enter the planning stage, your announcement, and any changes
  3. Christefano has set a git.D.O. sandbox with D7 with many modules. USE IT!!! Why? It will include all LA Code Sprint patches, a good jumping off point. The git clone command will setup sprinter's dev environment within a minute.
  4. Differences between DrupalCampLA distribution and COD6/7 to port
    1. Drag and Drop Scheduler desired for SCALE D7 Web Site (January 2012 Conference) and future DrupalCampLA.com
      1. Though it might be more JavaScript.
      2. It must interface with existing Room and Session Types.
      3. It uses a view grid
  5. URL for great page http://groups.drupal.org/node/138619
    1. Ezra last updated this page on 9/25/2011, 3 days ago.
    2. Ezra wants to prioritize the items (50-100 or more) on this page before our code sprint.
    3. List of Modules to port - see the pending Erza prioritization - could we do this ourselves?

  6. List of COD6 features to port to COD7
    1. Ezra mentioned on #drupal-cod:
    2. Signup and Commerce-signup are crucial sub projects, and a large task.
      1. http://drupal.org/node/1285384 - Entity based registration module for Drupal 7
        1. Signup module is getting old, not updated for some time, perhaps use the above new module is implied to be reviewed, and commented on.
      2. Updating views_send - details not chatted about - http://drupal.org/project/views_send
    3. ColinWood07 has suggested the below list of "great" features... at this comment
      http://groups.drupal.org/la/cod-d7-sprint#comment-594354, which strangely I got in an email, but has not appeared on G.D.O. yet.

      Getting a 'status' of each of these in D7, and if someone is currently coding it, so we could assist them, instead of duplicate effort, would be swell.


      I've added sub feature design issues to start off any prioritization for our 2 day code sprint.
      Everyone's feedback would be greatly appreciated.

      1. Session submission, voting and moderation
        1. Voting needs definition, as I have heard at least 3 vastly different voting purposes. All of them have very valid reasons to exist, and can greatly assist in their distinctly separate purpose.
          1. Vote for sessions you would 'like' attend, voting for many, more than you could possibly attend. This vote type assists in room size scheduling, a key factor for ease of administration.
            1. This method is what DrupalCampLA.com does.
            2. As we do like this method here in LA, chances are high, existing code could be ported to COD 7.
          2. Vote for only the sessions you will attend.
            1. See the numbered bullet point entitled "Personalized attendee schedules" below.
            2. One way to implement this method is to make it available only after room scheduling. This method is what is commonly expected.
            3. Another way this method can be done is both before and after rooms are scheduled. Scheduling conflicts will result in vote changes, so editing this vote type must be supported.
          3. Vote for sessions to be accepted into the conference.
            1. This method is not commonly expected by the Drupal community.
            2. This method allows the conference leaders to easily accept/add proposed sessions and promote them from private viewing to the public view.

          Supporting 2 or more voting methods is possible.

          1. The risk of configuration confusion is high.
          2. The risk of having two concurrent voting methods causing end user confusion is high.
          3. Designing to handle these risk, via wise documentation wording, and skillful layout and graphics would be fanastic to see achieved.
          4. The time frame for doing so is likely many hours, 6-8 hours of design, followed by 10-16 hours of implementation.
          5. I'm thinking a 2 day spring might start such a project.
          6. I'm thinking doing so at our code sprint will take experts away from higher priorities.
          7. I'm thinking this type of difficulty level is what I like doing, and pulling off.
          8. As the proof of concept is the hard part, being the UI design, doing a wireframe first, before spending time in any other implementation aspect, would be crucial to community acceptance, and 'high' user friendliness of the public interface. The private admin interface would be the second wireframe to be done, for final community acceptance, before I'd cut any code lines.
    4. Session schedule grid
      1. See Drag and Drop Scheduler above.
      2. I would have thought COD 7 has this feature almost completed. If not, then it's a high priority.
    5. Personalized attendee schedules
      1. Should be suitable for printing on one page.
      2. Should support handheld display, with automatic day and hour update - scroll to next session position, or just list those sessions coming up next, allowing for rest of day view, or full view.
    6. Easy event registration and attendee management
      1. See Sign Up above.
      2. I would have thought COD 7 has this feature almost completed. If not, then it's the top priority.
    7. Community features (forums, friending, etc.)
      1. Everyone, please expand each of these.
      2. Indicate which ones exist in COD 6, and voice your priority for porting.
      3. Are forums handled by core already?
      4. Is friending a feature that attendees will use, given the nature of leaving a trail of yearly 'friends', or that have to be re-entered each year? Just how would this feature work?
      5. "etc" - Is that fair to comment with? (-;
      6. ... add more above here...
      7. ;-)
    8. Easy sponsors management
      1. What features does this need?
      2. ... add more above here...
  7. ... Add your suggestions above this list item, now please!
  8. List of Modules to port - see the pending Ezra prioritization - could we do this ourselves?
  9. Look at COD 7 Issue Queue
    1. Ezra's thinking of doing a review before our sprint. (See #drupal-cod 9/28/2011 12 noon PST)
    2. Do we need to do our own Issue Queue Review? See below for a beginning.
      I listed the Feature upgrades separately as they are likely easier for novices to do.
      1. There are 13 non Feature Issues at the Issue Queue
        1. 1 needs work
          1. session highlighting on schedule pages using jquery - assigned brentratliff
        2. 5 are active
        3. 5 are postponed
      2. Upgrade Features to D7 - Below is the list of COD D6 Features (From Issue Queue)
        1. We need priority and difficulty level.
          1. Needs review
            1. cod_base - assigned to sirkitree
            2. cod_community - assigned to sirkitree
          2. Needs work
            1. cod_events - 8 weeks ago
            2. cod_session - 4 weeks ago - assigned to sirkitree
          3. Active
            1. cod_frontpage - assigned to Senpai
            2. cod_session_video
            3. cod_sponsors
  10. Second Great URL for how to prepare your dev environment (may be outdated)
    http://groups.drupal.org/node/133524
  11. Our Wiki COD7 Link Lists: http://groups.drupal.org/node/154494#comment-573284
  12. Create How To ssh-keygen and upload to D.O. for git access - Mostly done below (not tested).

COD D7 Alpha Release Requirements

At the end of Saturday's sprint a discussion was started about finishing the Base Feature Port and declaring it the Alpha Release. This was declared not wise, as more than the Base Feature would be needed, to avoid the Alpha Release getting a bad reputation for not being ready for upgrading existing COD D6 sites to. So, the conclusion was to figure out which modules would be firmly required for a D7 Alpha.

Why have an Alpha release "sooner?" There is a feeling that such an announcement might/would spur more Drupalers completing the remaining porting tasks. So, it was judged an important task this Code Sprint should wrap up with is a recommendation for review by the COD developing community members of what should be in our first Alpha Release. This list would consist of two lists, a firm list and soft list. Expectations are by the end of October 2011 the COD development community would finalize the two lists, and declare when the Firm List is completed, the Alpha Release would be prepared containing as many Soft List items that have also made it through the Issue Queue review process and have been committed. A worthy goal to shoot for.

There was mention of a 'political' decision to get an Alpha Release even sooner, if there would be little backlash, and porting of remaining tasks would get more active eyeballs doing them. This idea is included for low priority discussion, after the Firm and Soft Requirement List are published.


Possible D7 alpha live implementations

There are big conferences coming up in or near Los Angeles, that this Sprint's attendees will be at, and might assist installing COD D7.

  1. San Diego SandCamp - January 2012
  2. Drupal For Design LA - February 2012
  3. Denver DrupalCon - March 2012

COD D7 "PlaceHolder" Speed Up To Alpha Release Proposal

Summary:
Upon removing the COD commerce module dependencies (Ubercart), what would go in place of the blocks that had content coming from the Ubercart dependency? Our thought was a static placeholder.

The concept of "Default Placeholder Content" came up and might be outside the scope of our Code Sprint, or the Alpha (or Beta) release, but is worthy of some discussion. The idea came from the Sponsor Block. If we can not put dynamic content from other modules in place, then using an installation default static content would be possible. Having "installation default static placeholder content" was declared a solid direction.

For example, free or paid conferences seeking Sponsors would do well to have on the default installed Front Page, a Sponsor Block (already there) that has a 'static' solicitation for Sponsors, with a link to the web Contact Form. Why do this?

The Ubercart/commerce discussion continues throughout our Code Camp as a Big RoadBlock. Why? Many COD D6 Features depend upon Ubercart. A free conference would not need any Ubercart. Having such dependencies blocking the porting to D7 of even a few COD Features would delay any Alpha Release.

The amount of work to

  1. finish the Ubercart Port to D7, or
  2. change over to the module 'commerce', or
  3. create a commerce API Layer that supports Ubercart, commerce, or other 'stuff', or
  4. remove the dependency,

is likely the same?

Or would removing the current Features' commerce dependencies to Ubercart be easy, fast, and a service to a great many conferences, sooner, not later? Your feedback is needed.

A preference coming out of this LA Code Sprint is if we get a Feature working with a "placeholder", default content in place of a dependency on a big module like UberCart, then we here in LA would be happy. Why? The upcoming DDCLA conferences could use COD D7 Alpha. This reason is the original Christefano reason for the LA Code Sprint.


COD D7 "Commerce" Direction Research

This section repeats a post to the IRC Chat yesterday.

  1. Review Ubercart inside COD and effort level to replace it with commerce.
  2. Be able to turn off any and all any type of commerce/Ubercart dependency
  3. Move all Ubercart/commerce features into one module that can be turned off
  4. Rip out Base and Events
  5. Events change to Event Sales or Store Sales (for tshirts, etc)
  6. make COD Commerce Feature

Replace "View Send" with Rules to send out emails

This section repeats a post to the IRC Chat yesterday.

View Send change to operations with Rules send out same set of emails.


Enhance and update the D7 COD Support Module Readme File

vmi (Ali) and bvirtual (Peter Benjamin) are writing description paragraphs per COD Feature. There is the existing brief one liner, then a set of paragraphs. Christefano has insisted we adhere to the current Drupal readme syntax conventions, and we will. This work is available via Etherpad at http://willyou.typewith.me/p/COD This Etherpad also contains a second part, which will be removed to finalize the new COD Support Module Readme file. This second part is described in the next Wiki Section.

D6 to D7 COD Support Module Dependency Mapping and Roadblocks

vmi (Ali) and bvirtual (Peter Benjamin) are create a complete D7 dependency map to itemize Roadblocks in porting each individual COD Features. These Roadblocks means there is a distinct porting order for COD Features based upon doing the underlying COD Feature and contrib module dependencies first..

See attachment of file name COD.Support.Readme.Draft.With.D6.to.D7.Dependency.Map.draft.txt Please suggest your edits to this file. It needs a lot of loving help to get to the place where it can assist with new COD sprinters. I will be updating the D6 to D7 and adding Sprint supporting info to be included in the big table below through October, 2011.

A "mapping" from D6 to D7 modules is being created. The justification is this Code Sprint found the lack of this information prevented new sprinters from coming up to speed within hours, instead it took the two days for new sprinters to grok the COD development environment, and process of comparing COD6 functionality to COD7 lack of functionality to uncover porting task.

The mapping includes D6 modules merged into D7 core are no longer dependencies, where a D6 module was renamed in D7, and when a D6 module is being replaced with another D7 module. This is necessary to know what 'new' D7 modules are needed to be installed and enabled and configured in order for a COD Feature to be examined for lack of functionality.

This work is available via Etherpad at http://willyou.typewith.me/p/COD This Etherpad also contains a second part, which will become the new COD Support Module Readme file. This second part is described in the above Wiki Section.

COD Support Issue Queue Patch 12 Status

Ron Golan examined Base Patch 12. This section is my write up on his verbal report, and is not complete. Ron hopes to do more on this as he sees why the theming is not occurring and a fix, which maybe a callback (I've not looked to see for myself, so sorry for the vague or incorrect wording.)

[I will fix the below paragraphs in the next day or two. It's just my raw typing as Ron was describing the problem.]

Can not see user field until session created.
Base Patch 12 will format an user first and last name. Shows up when user is in a session.
Replaces the Session's Speaker name field from user name to First and Last name in Session.

Modules to add for COD 7 references, field groups, and field permissions.

Is the plan for Patch 12 to replace most or all userids with first and last name?
Is this theming function only for Speaker names? WIll it map Sponsor related staff userids to their names? Or will it handle other name purposes? Like attendee, Sponsor, Organizer,


COD D6 to D7 Feature Status Table

This table will provide for the coming months of the porting effort a place for new sprinters to find where they might contribute according to their skill and knowledge level. Please add to this table as you know it needs it. Using this table in future code sprints will speed up the task selection process, thus more time will be spent on porting activities, and not repeating this infrastructure set up, is the hope.

We'd like someone to list the Feature Dependencies, as it will assist in Prioritizing.

We hope to see added to the Prioritized List two Issue Queues and contrib modules based upon the dependency tree. The COD Support Issue Queue and the COD D7 Port Issue Queue are mandatory additions. The module list created by Ezra is a good first cut.

Prioritizing includes criteria as follows (and we welcome more):

  1. An Alpha Release would be well received with the Feature. Let me say this another way, an Alpha without the feature would be a disaster.
  2. The Feature Dependency Tree would prioritize a COD Feature before a Feature that depends on it. The same is true of contrib modules.
  3. What is a Drupal Conference about (Community, BoF, Events, News). Yes, it's Drupal centric. I'm fine with that. For 2011.
  4. Easier ports are getting a higher priority over hard ports.
Feature Priority Difficulty Order Dependencies Estimated Skill Set Issue Queue Status Stuff To Install Notes
Base
Required
Highest Easy 1
First
Uno
core and contribs: Ubercart for Ubercart Orders, Strongarm, Views, Profile, and more, to be listed. All contribs are ported. patch reviewer Needs Review Patch Exists - most are committed to COD D7 Support - so install it in D7 Some conferences are free. Is it wise to have Base depend upon Ubercart? Remove Ubercart dependency? Comments?
IMPORTANT: Since the Base Feature D7 patch (in the git repo) needs to be working first as it's a dependency of other COD Features, and without Base working, these Features can not easily be worked on.
Sessions Second Highest High 2
Second
Base, Lots of Contribs Coding and Feature Building Needs Review - Assigned to sirkitree -1150334 Patch exists COD Alpha Release will have Sessions.
Front Page High Easy once dependencies ported 3 - Third Sponsors, News, Sessions Feature Building Assigned To Joel
Sponsors Medium Easy 4
tentative
- Minimal Code - Feature Building Active, assigned to Tommy, Ron, Oliver (otself) - Postponed, pending Base completion due to Base dependency
Feature Priority Difficulty Order Dependencies Estimated Skill Set Issue Queue Status Stuff To Install Notes
Community Low Medium 5
tentative
- Larger Patch so more code to review Needs Review Patch Exists so install it in D7
Events Low - Not Required High 6
tentative
Relies on Code outside of COD Support Patches for Contrib and Feature Building no issues/no status Lots of Contribs
BoF Sessions / COD_BoF Low Easy 7
tentative
Content Types Feature Builder - GUI Click/Drag None Hand build content types (?)
Sponsor Sale Low ? 8
tentative
Ubercart Ubercart/commerce porting changes none Ubercart, commerce / rules Notes
Session Video Low High / Easy 9
tentative
EMField - Aaron is porting and needs some assistance Hard: Coding EMField

Easy: then Feature Building
Active EMField D7 Module Pending port of EMField
News Done na Done

 


Sprinters:

Get www.drupal.org git access - Read how in this wiki - Find links to web pages that explain this in depth, instead of writing your own.  Or write your own.  Show your chops!

To our Monday Meetings arrive 15 minutes early to do git and dev environment prep for several sessions.  Please create a section below that itemizes the steps done in these minutes per laptop.  It can be a list of one liners.  Others can expand each item into a paragraph, and even a whole page with step by step and screen shots, or even a screencast.  Point is, do a little here, please.  Thanks.

Visit http://usecod.com/roadmap - This site is small, and supports mostly COD D6.  This Roadmap page is one of a few here that support D7.  Please create a section below that lists the resources we might use from this site.

Future Sections to appear here

 

 

 

 



Sprinter Preparation List

Git Access to upload module code to Drupal.org/project/*

Git access public key is generated with it's pair, the private key. These are both stored in separate files, following the ssh naming conventions. Do not tell your private key to anyone. Give your public key to anyone, as it's safe to do. Cool encryption idea!

Do the below key generation on a private machine, you know is secure, and likely where you plan on storing your private key.

Below works on Unix/Linux and Mac OSX. (not tested - add your corrections - add GUIs that do this for you.) YMMV on Windows.

cd   ~/.ssh
cp   id_dsa        id_dsa.save
cp   id_dsa.pub  id_dsa.pub.save

ssh-keygen   -t dsa  -C "YOUR_USERID@YOUR_EMAIL_DOMAIN.com"

mv   id_dsa       id_dsa.drupal.git.access
mv   id_dsa.pub id_dsa.drupal.git.access.pub

cp   id_dsa.save        id_dsa
cp   id_dsa.save.pub  id_dsa.pub

cat   id_dsa.drupal.git.access.pub

and copy and paste that value into

http://drupal.org/user/###/ssh-keys

where ### is replaced with your D.O. user id number.


Be there or sleep with the fishes. -- anonymous quote

AttachmentSize
COD.Support.Readme.Draft_.With_.D6.to_.D7.Dependency.Map_.draft_.txt20.32 KB

Comments

List of modules needing upgrades

BTMash's picture

I would recommend a clean install of COD and install the contrib status module (http://drupal.org/sandbox/webchick/1223824) to get a grasp on the status of contrib modules for D7. Would help speed up the process :)

I don't know the entire list of modules that are used by COD but I do know that it uses the signup module. There are a number of patches in the issue queue that need a review to help make signup functional.

bvirtual's picture

Hi Ashok,

Thanks for that link. I must, must try it out. Looks leaner than Case Tracker, and faster to use.

The list of required COD modules is here http://groups.drupal.org/node/138619 with a status for all of them, but the status for pending work needs to be verified, so to not step on the toes of those who might be coding it right now, compared to on the bad burner for several months. I think our Code Sprint can do both of those. Certainly, the rumor of a November COD 7 Code Sprint needs this prep work as well, and I hope they will do it before our Code Sprint, for our using it, and updating our level of completion.

Christefano, do you think your grapevine can be used to get an updated status on Features, Modules, Tasks, needing doing, before our Code Sprint? I think it's essential we know if this is possible in a week, and what schedule they might deliver it to us is, otherwise, it's a delay in our first hour of our Code Sprint, if not two hours, to figure out the status, and divide up the work to our sprinters.

Peter

LA's Open Source User Group Advocate - Volunteer at DrupalCamp LA and SCALE

COD6 video and scheduler coverage

bvirtual's picture

Ron,

At 23 minutes into this COD 6 video, the scheduler is covered for 6 minutes.

http://www.archive.org/details/drupalconchi_day2_building_conference_and...

I did not find the 5 minute video Christefano mentioned last night.

Peter

LA's Open Source User Group Advocate - Volunteer at DrupalCamp LA and SCALE

My work on COD to date URL

bvirtual's picture

My two installs following the Roadmap instructions are linked here.

http://d7.balaca.com/cod/cod/

A tarball for cod6 and cod7 has been added. I can make tarballs of the database available.

QUOTE:

LA Drupal COD D6 to D7 Code Sprint Support Info

These are the cod6 and cod7 installs following the roadmap instructions. I have not confirmed these were installed properly, and I am looking for a test suite. Download file sizes are in bytes.

COD 6

cod6 - folder with cod6 webroot - Offline as of 2011/09/27

cod6.20110901.tgz 15,337,991 - contains 40 meg /profiles folder with the modules

cod6.du.txt 31,860
cod6.lsrl.txt 354,709
cod6.lsrl.txt.gz 45,365

cod6.drush.status.txt 1065
cod6.drush.update.txt 0

cod6.mysqldump.sql 1845841
cod6.mysqldump.sql.gz 205656

COD 7

cod7 -folder with cod7 webroot - Login available - try demo,demo

cod7.20110901.no.git.tgz 3,141,640
cod7.20110901.tgz 43,613,476 - contains 40meg .git pack file

cod7.du.txt 5,478
cod7.lsrl.txt 107,740
cod7.lsrl.txt.gz 14,445

cod7.drush.status.txt 1369
cod7.drush.update.txt 320

cod7.mysqldump.sql 806075
cod7.mysqldump.sql.gz 105943

Peter

LA's Open Source User Group Advocate - Volunteer at DrupalCamp LA and SCALE

Automated Scheduler - Solve All? Big Design Effort?

bvirtual's picture

A few days later, thinking about the multiple "voting" methods - what is really needed is an integrated solution for all voting and scheduling needs. Say what? Is that even possible? You tell me?!?! I think it is. Why? As I can visualize a computer doing it, therefore I know I can design and code it. But not this coming weekend. :-)

From start to finish, here is the idea.

A newly registered attendee would vote for all sessions they wish to attend. When the attendee visits the site a few days later, the sessions they have not viewed, would be presented, for voting. Repeat as needed.

When the sessions are finalized, no more are being added, an email notification goes out the attendee requesting them to "prioritize", using a 'rating' from 1 to 5. The implication is, if two or more desired sessions are scheduled in the same time slot, but different rooms, the session with the higher priority would be the one the attendee would most likely attend. Why so complex? To automate the process.

As each attendee prioritizes, the master schedule would re-analysis room assignments, privately for just admins to view. Bigger rooms would get the bigger audience. Smaller rooms would get less attended sessions. But that's just half the room scheduling problem. The other half is time slots.

Now, the clever part. Using a cool algorithm out of AI or Machine Learning, "conflicts" that arise in each attendee's prioritized sessions would re-arrange time slots of sessions, to minimize each attendee's conflicts, to provide the greatest good for the greatest number. All privately.

Why privately? Until most attendees prioritize, making the room and time slots known to the public, would be a disservice. At some tipping point, again using a cool algorithm, that tracks the reduction rate in room changes as each attendee prioritizes, as the rate gets close to zero, the room schedule would be presented to the conference leaders as unlikely to change, since the remaining attendees who have not prioritized, would likely not affect time or room changes, and the conference web master would toggle the schedule public.

An email announcement would go out the schedule is finalized, and the attendee's personal schedule is available for viewing, and changing at this URL ...

As a service to the attendee, their personal schedule is pre-built for them, with conflicts marked up, with possible re-arrangement done with a mere click of a button, to select the most desired session for each time slot with a conflict.

Changes in room attendance counts will result, and might change the assigned room, swapping with other sessions. Automatically. Up until a few days before the event, when room changes would be stopped, and all room assignments would be final, barring a manual change method to be used in the few days before the event, and the days of the event. This latter manual method is a hard requirement in case a room becomes unavailable due to unforeseen circumstances, rain damage, flood, fire, etc.

Before the event, the attendee gets two views onto their personal schedule, one is what sessions they have finally selected for themselves to attend, that includes an attendee count in parens. The second view they can click to see would present their unselected sessions that conflicted, and allow easy one click changes. This method would support changes the day of the event. It's doubtful at this late date that any time slots/rooms/session changes would be automatically propagated, though there could be "recommendations" made to the conference leaders, where the reason for the change would be displayed, per typical AI rule methodology.

During the days of the conference, there would be a third view of the attendee's personal schedule. This view would be smaller, the scope being the current session and the "next" time slot sessions. The attendee coming out of a just finished schedule would view this third view, and see the room they need to go to, or make a decision to change sessions, and go to a different room.

The pathway to the next room would be made available via a Google Map like directions. It could even use Google Maps, if the rooms are stored into Google Maps, a building with hallways, staircases, elevators, escalators, ramps, sidewalks, and rooms. Bathrooms and food and booths would be included.

Why do this? Drupal is known as a leader in CMS technology. Using AI and Machine Learning methods, making those into standard modules, with an API, exposed to Views, and integrated via CCK availability, would push Drupal COD to the forefront of premium Conference Web Site CMS tools. And move Drupal into an area no other CMS has attempted, where these AI methods could be used to drive banners based on GeoIP, based on bidding, display "related" content in priority order, publish and receive feeds for prioritizing content on a per user basis using user related criteria, such as previously viewed pages, other sites viewed, banners clicked on, links followed. And to top it off, the web master would receive weekly reports that prioritize what types of links worked better, what pages should be moved to the front page, and how large, and what front page content should be demoted, and to how many clicks off the front page.

A Big Design Effort? In the end, yes. For COD, maybe not. Piecemeal approach is a powerful implementation method. All we need is to find a programmer aware of AI and machine learning tools to select/recommend an appropriate tool for each step, and I'll lead a team to code the tool into a module. Yes, it will take a year, but I think by the end of 2012, COD will be more than just a Drupal Conference tool.

One man's opinion, and he's sticking to it.

Peter

LA's Open Source User Group Advocate - Volunteer at DrupalCamp LA and SCALE

Dude this is so awesome.

rupl's picture

Dude this is so awesome. Thank you for writing this up. I had imagined some better drag-n-drop scheduling tools when thinking about new COD7 features, but using the wisdom of crowds is even better.

drag-n-drop scheduling tool in DrupalCampLA Distro

bvirtual's picture

Thanks Chris (rupl). I still think the drag and drop is needed, for manual changes. As a working version has been used by LA Drupal for 3 years, and SCALE web master desires it as well, the code sprint this weekend might see porting the LA drag and drop into COD D7. My estimate is the drag and drop is faster to get in place than my big proposal. Both are needed, imho. There is a road map to getting both. And Sunday during the closing hours of the code sprint, I will see that road map get some definition.

Peter

LA's Open Source User Group Advocate - Volunteer at DrupalCamp LA and SCALE

bvirtual's picture

When I posted the Automated Scheduler concept, I already had in mind AI algorithms to solve each area. Ideally, a module called "Neural Network" would be created, and be used by the module "Schedule Time Slot Automation" (or similar name).

The Machine Learning "Neural Network" algorithm would likely be the first to try for assigning sessions to time slots. Neural networking will cycle through all possible permutations of time slots and 'score' each permutation according to many criteria. Some of the criteria I am thinking of is below. An expert Neural Networking programming would hone and add criteria. It's likely as this COD algorithm ages though use, that these criteria get updated, likely ever 4-6 months, for 2 years, when it likely would be near perfect.

  1. Day or time slot restrictions of a speaker would be honored first. (Thank you Joel for this firm requirement.)
    This criteria includes having a Friday of Training Sessions for firms paying for employee training.
  2. Two or more of a certain type of session/event could be in the same room. BoF's in corners of room. Job Fair with Snack Bar. Other such.
  3. Overall number of attendees' scheduling conflicts is a minimum number.
  4. No one attendee has more than 30% conflicts
  5. Individual attendee does not have a maximum number of conflicts in any one time slot. (How many times has this happened to you?)
    1. No one attendee has 3 (2?) conflicts in just one time slot for their "high" priority sessions.
    2. No one attendee has 4 (3) conflicts in just one time slot for their "medium" priority sessions.

Neural Networks get "better" or faster in making decisions when they have a database of prior 'learnings'. So, it might be likely to have a central repository of these learnings. It's not clear that each possible schedule configuration could use a central repository to speed it's decisions. It's likely a network starting from scratch for even a large conference, five days, with 10 tracks, of 7 sessions per day, would take "a long time" to decide on the best schedule.

Peter

LA's Open Source User Group Advocate - Volunteer at DrupalCamp LA and SCALE