Etherpad FAD



This is the main page for the Etherpad Fedora Activity Day held Oct 8-9th at Olin College of Engineering. We worked to improve Etherpad, the wonderful open source collaboration tool and package it for Fedora. Thanks for everyone who helped out and check bellow for some details on how it went.



Media
Blogging


 * Colin on Day 1 has pictures
 * Colin on Day 2 has more pictures

Images
 * DJ took of the board
 * Colin Day 1 and Day 2 posts

Slides from Jeff's Talk

Building and Managing Communities (Give Your Cat a Scratching Post and Watch it Claw your Sofa)



-- Jeff Mitchell (on KDE Projects)

By the numbers
Check my math and see the full list on the talk page
 * Non-free-software libraries changed to free alternatives: 1 (thanks Sam)
 * New packages created: 7+ (TODO)
 * Dependencies tracked down: 17+ (TODO)
 * Lines of code to make C3P0 lib build with Java 1.6: tons (TODO) (thanks Crawf)
 * Licences inspected: plenty (TODO) some of many (thanks Spot, Jon, DJ, SDZ)

Metrics

 * Repackage EtherPad in a consistent, portable, more best-practice form
 * Metric: Etherpad functions without bundled libraries
 * Minus C3P0 yes
 * Metric: Difference between EtherPad vanilla and GitHub code has been assessed
 * Totally has been bonus points for us working with upstream (more difficult packaging)
 * Create compliant, Fedora packages for EtherPad
 * Metric: Etherpad Fedora package
 * No, but 95% of the way there
 * Metric: Etherpad package has been accepted into the repositories
 * Outcome: no, but in due time
 * Setup EtherPad instance on Fedora Infrastructure
 * Metric: Etherpad is running on Fedora Infra staging
 * Metric: Etherpad is running on Fedora Infrastructure permanent
 * Metric: Written maintenance plan for Etherpad on Fedora Infrastructure
 * No, once we finish packaging and make it to EEPL, we'll move this way
 * Metric: Someone from Fedora Infrastructure is designated to maintain Etherpad installation
 * JStanely says NO (not the way infrastructure works)
 * Teach non-Propeller-heads about OSS development and the technologies used
 * Metric: x# of people never used version control, now pros
 * Maybe not pros, but 20 Olin students learned Git
 * Metric: x# of new Fedora installations?
 * several


 * Package the upstream

Location
Olin College, 1000 Olin Way, Needham MA, 02492, USA

[map]

Crescent Room (CC209 and CC211 inside Olin Campus Center)

Time: Friday Oct 8th, 5pm - Oct 9th
''Note: all times are US Eastern. GMT -5 hours.''

Background (what is Etherpad?)
Background: EtherPad (video demo) was a high-performance web-based collaborative document editor, launched in 2008 from etherpad.com. It was acquired by Google during the development of Google Wave, and the service's code base was open-sourced. Several websites now run an EtherPad service and there is interest in making private installs (such as one for the Fedora Project) easier to create.

Buuut the EtherPad code-base isn't exactly in a packageable state, as demonstrated by SDZ, here. We would like to package EtherPad correctly for Fedora. Where possible, we intend to use good build system practices and clean up libraries used.

Finally, once complete, we'd like to use the new packages to setup an EtherPad instance for the Fedora Community.

I'm new to FADs / open source / hackathons what can I expect?
Expect to learn a lot. The FAD is mainly about a volunteer group working to make a dent in an awesome piece of software. Not an über-coder, we'll find ways for you to help, and make sure you learn something.

Not interested in working a whole weekend on Etherpad? Stop by 5pm Saturday for a presentation by Jeff Mitchell on managing the KDE community (agenda)! How do you manage a passionate, distributed group of international volunteers? We'll find out. After, we'd love to talk about open source, our communities, and technology in general.

I'm far away / can't physically attend, how can I help?
We'll be hanging out on IRC! I'll make sure there is someone dedicated to IRC / community contact.

Don't know what IRC is yet? It's the realtime chat system that many open source communities use. (Mel Chua) would be happy to teach you; just drop me a line at mchua {at} fedoraproject {dot} org.

Channel: #etherpad on Freenode (exclusively) Twitter Updates: http://twitter.com/olinetherpadfad

Send me a bit about yourself and will pull in: colin {at} zonion {dot} org If you're helping remotely, it would be great if you bopped in during Pre-FAD planning, 5pm Oct 2nd (agenda).

Communication Channels
Updates, news, PSA -- Twitter: https://twitter.com/olinetherpadfad

During FAD Backchannel -- IRC: #etherpad on Freenode

Contacting Us During FAD
We will have someone on IRC at all times to be "point person." Shout out Olin or Etherpad or Hackathon or Yanks and someone will hear you.

Channel: #etherpad on Freenode

(following times in US Eastern time)


 * Friday, October 8th
 * Availability starts: 5pm
 * Availability NOT guaranteed: 7pm-8:30pm (dinner)
 * Availability NOT guaranteed: 10pm-11:30pm (Weekend warriors!)
 * Not available: after we pass out
 * Saturday, October 9th
 * Availability starts: 11am
 * Not available: 1:30pm-3:30pm (Indian lunch =] )
 * Availability NOT guaranteed: 7pm-8pm ( Dinner )
 * Availability NOT guaranteed: 11pm-midnight ( being social )
 * Not available: after we pass out

Nicks to ping for Olin Hackathon

 * computercolin
 * spot
 * sdzallias
 * kmehall
 * djones
 * djsaurus
 * mchua (last resort)
 * rockychat
 * jds2001

Pre-FAD (very optional)
computercolin: Planning to connect with Joe Cornelli and some EP contributors from Europe here.
 * Saturday, October 2nd
 * 3pm - Assess skill sets, forge plans and detailed goals, run numbers for buying food, etc.
 * Will occur in #etherpad on freenode.

FAD

 * Friday, October 8th
 * 5pm - Kickoff (introductions, share interest in Etherpad)
 * 5:20pm - Intro to OSS development (for some)
 * 5:20pm - Review of Etherpad Attack Plan, hacking kickoff (for others)
 * 6pm - Integration of intro people into Hackathon
 * 7pm - Pizza Dinner
 * 10pm - Olin Weekend Warriors Break
 * Saturday, October 9th
 * 11:00am - Individual reports and progress check
 * 11:30am - Hacking
 * 1:30pm - Indian lunch buffet at Masala Art
 * 3:30pm - Hacking resumes
 * 5:00pm - Talk: Jeff Mitchell of KDE on Building and Maintaining Communities
 * 7:00pm - Interactive Stir-fry Dinner
 * 11pm - Break (descreen, pool, learn to unicycle, etc)
 * Sunday, October 10th
 * Breakfast by Colin for the hardcore
 * Kickout

Purpose

 * 1) Our purpose is to...
 * 2) * Repackage EtherPad in a consistent, portable way, more best-practice form
 * 3) * Create compliant, Fedora packages for EtherPad
 * 4) * Setup EtherPad instance on Fedora Infrastructure
 * 5) * Teach non-Propeller-heads about OSS development and the technologies used
 * 6) In addition, we will attempt to complete the following secondary goals as time allows:
 * 7) * Build better(/more complete) test system for EtherPad
 * 8) * Single config file
 * 9) * Document EP

Plan
''computercolin: Think we could do a most-of-night (all-night?) hack session one of the nights. Both, probably too much.''

Skills Sought

 * Javascript/scala/java decipherment
 * Build system skills (particularly Ant and Scala/JS friendly systems)
 * expertise in jetty, Comet, AppJet or Rhino would be helpful
 * also some mysql or apache derby
 * infrastructure deployment
 * software project management
 * code (re)architecture
 * developer documentation
 * Malleable mind to fill (don't know anything here? come learn something, hear war stories, join open source!)

Physically Present

 * Jeff Mitchell (Boston, MA) - Asked to give talk, community management, coding, sysadmin - coming
 * Tom "spot" Callaway (Ayer, MA) - packaging, polymath coding skills, legal - coming
 * Jon Stanley (New York, NY) - sysadmin, polymath coding skills - coming
 * DJ Gallagher (Boston, MA) - Java Propeller-head - dev, documentation, alumnus - Will be there
 * Meet open-source Java people in realspace!
 * Bringing the noodles evidently
 * Interested in commercial applications of EP
 * What's a propeller-head?
 * Matt Crawford (Wellesley, MA) - polymath computer skills - Interested in coming
 * Colin Zwiebel (Needham, MA) - Organizer (it appears) - developer, Oliner, Will be there
 * Find great OSS mavericks
 * Snag some cool space at Olin
 * Get some awesome Oliners (not hard)
 * Make sure everyone learns something and has fun
 * Andy Pethan (Needham, MA) - Attendee/hacker/facilitator - developer, Etherpad fanboy Will be there
 * Sebastian Dziallas ( Needham, MA) - Fedora Packager - developer, packager Will make it
 * Paul Booth (Olin) - Coding, testing, jokes - Be there
 * Jason Curtis (Olin) - Java - Interested
 * Jeff Atkinson (Olin) - Java - coming
 * Danny Bathgate (Olin) - polymath programming skills - interested
 * Kevin Mehall (Olin) - coding, lots of linux admin - Presenting (and present)

Remote

 * Mel Chua (Raleigh, NC) - advising and setup on running a FAD beforehand, followup afterwards.
 * Joe Cornelli - (Milton Keynes, UK?) - linux admin skills, further evaluation needed - Interested in remoting
 * John McClear - (UK) - PrimaryPad, admin, (more...) - Very interested in remoting, has week off!
 * Brian Herman - (Chicago, IL) - polymath programming - Interested in remoting
 * Henrik Heigl (Germany) - Fedora Marketing - Interested in remote participation, also can dialIn via Fedoratalk (e.g. Conference Call)

Welcome sheet
'''Not yet done. Needs to be put together.'''

''A set of resources people can read up on and learn from before they arrive. It should contain the following:''

Logistics: getting yourself over.
 * Full schedule for the FAD: agenda
 * Transit, lodging, and food scheduling/directions/coordination/recommendations, with estimated costs.
 * Olin on Google Maps: [link]
 * Text directions to Olin: [link]
 * Lodging: Babson Executive Conference Center - Approx $170 /night (includes brunch, no drive to Olin) [link]
 * Lodging: Hotel 6 Framingham - Approx $50 /night (requires drive to Olin) [link]
 * "Who do I get in contact with if I have any questions about logistics during the FAD?" - see.
 * ??? Colin, or designated contact person

Contributing: how can you help work towards the FAD's goals?
 * A list of goals of the FAD - primary goals, then secondary goals. Each goal should be measurable - in other words, at the end of the FAD, it should be clear to an external observer whether you accomplished a goal or not.
 * 1) Our purpose is to...
 * 2) * Repackage EtherPad in a consistent, portable, more best-practice form
 * 3) ** Metric: Etherpad functions without bundled libraries
 * 4) ** Metric: Etherpad has a single configuration file (possibly part of build system)
 * 5) ** Metric: Difference between EtherPad vanilla and GitHub code has been assessed
 * 6) * Create compliant, Fedora packages for EtherPad
 * 7) ** Metric: Etherpad Fedora package exists
 * 8) ** Metric: Etherpad package has been accepted into the repositories
 * 9) * Setup EtherPad instance on Fedora Infrastructure
 * 10) ** Metric: Etherpad is running on Fedora Infra staging
 * 11) ** Metric: Etherpad is running on Fedora Infrastructure permanent
 * 12) ** Metric: Written maintenance plan for Etherpad on Fedora Infrastructure
 * 13) ** Metric: Someone from Fedora Infrastructure is designated to maintain Etherpad installation
 * 14) * Teach non-Propeller-heads about OSS development and the technologies used
 * 15) ** Metric: x# of people never used IRC are now pros, have registered nicks
 * 16) ** Metric: x# of people never used version control, now pros
 * 17) ** Metric: x# of people new to open source registered to assist on OpenHatch
 * 18) ** Metric: x# of new Fedora installations?
 * 19) In addition, we will attempt to complete the following secondary goals as time allows:
 * 20) * Build better(/more complete) test system for EtherPad
 * 21) ** Metric: # of unit test-cases for Etherpad.
 * 22) ** Metric: System to check uptime of Etherpad on Fedora Infra
 * 23) ** Metric: Automated script to type, edit, move text through Etherpad
 * 24) * Create a EP web-config interface -- easier to deploy EP
 * 25) ** Metric: EP does not require any modification of source files
 * 26) ** Metric: Number of connections, name, colors can be configured via web-admin interface
 * 27) ** Metric: EP does not require configuration at build time or installation
 * 28) ** Question: Can we configure port / domain via web. Should we bother?
 * 29) * Document EP
 * A breakdown of what steps are needed to accomplish each of these goals, what skills are needed to take on each of these tasks, and what resources can be used to learn those skills. See.
 * "Who do I get in contact with if I'm not sure what to do next to contribute during the FAD?" - see.

Learning: how can you gain the abilities you need to contribute?
 * "I've never done this open source thing before. what's going on?" - See
 * Skill category breakdowns, and learning resources and a mentor for each. Scheduled intro sessions and a way for each group to keep in touch during the FAD. Things I can think of:
 * Packaging for Fedora
 * Infrastructure/deployment within Fedora
 * Testing, including infrastructure setup for QA
 * Development, including code documentation and cleanup
 * Release management practices and tools (ticket trackers, mailing lists, milestones and release schedules, etc.)
 * FAD wrangling and event documentation

Remember: the purpose of the FAD is to complete the FAD's goals. All the learning that happens during the FAD should directly apply to making people better able to achieve the goals of the FAD - it's not a Barcamp (although if there's interest, it wouldn't be a bad thing to schedule one for later and redirect people to planning/teaching what they're interested in at that!)

Intro to FOSS contribution tutorial
Desired result: any interested newcomer who may not have prior exposure to open source contribution should be able to attend this session and then jump into the remainder of the FAD as a full contributor; they won't know all the skills they need to do everything, but they will know how the activities in this FAD fit into the big picture of Fedora and FOSS contribution, what things they can learn and help with immediately, how to communicate their questions to the community remotely and be self-starting in getting the knowledge they need to contribute, and how to report their status and progress to the rest of the FAD community (including remote attendees).

There are going to be a lot of new people at this FAD. We must find a way for all of them to be able to get the context they need to contribute. Especially if professors want to get involved, my thought would be ask them to teach an intro "how software engineering works" session for those who've never contributed to FOSS before. Topics like:


 * what's open source
 * what's Linux/Fedora
 * what's packaging
 * what's version control
 * Using SVN (as a starter)
 * How to use SVN mastery to learn Git
 * what's the software development lifecycle (release cycles, the role of QA, etc)
 * What are patches and diffs and how do I use them
 * How do changes get pulled into Open Source projects
 * What is this forking business

All rolled into maybe a 2-hour intro session at the start of the FAD - whatever they think people new to distributed software development ought to know, directly aimed at "how can we make you useful for the FAD as fast as possible?" rather than an isolated academic overview.

If professors can't teach this, get a Fedora person to do it - possibly remotely, via Fedora Classroom or some sort of video chat.

''Colin comments: ''
 * 2 hours seems too long, unless we plan to run then through an activity that will require a good deal of work (or checkins, pushing, branching, etc).
 * Would be great to run them through the OpenHatch training missions: https://openhatch.org/missions/
 * Still need to get them covered in terms of IRC and Git
 * Kevin is doing it (yay!)
 * Allen Downey will run around and help people

Thus far

 * Assess libraries added / removed from GitHub version
 * Assess difference between Rhino v1, v2 in regards to yuicompressor
 * Progress checkins every 90min of hacking
 * Have a discussion about some of the issues
 * See if GitHub version libs can be packaged or if features can be removed

Mel's Notes on
Desired result: At any given point in time during the FAD, a remote person who hasn't'' been following the FAD should be able to look at one location and get an immediate answer to the questions "how far along are we to reaching the goals of this FAD, what remains to be done, and how can I get started helping right away?" (If it works for remote people with no prior context, it'll work for in-person attendees who are there for the whole weekend.)''

Constraints: This must be one canonical, central location for the event so that work doesn't get scattered and it's easier to keep track of who's oing what. Because this is Fedora, it must use free and open source software. It is preferable, but not required, to use Fedora infrastructure for this (fedorahosted, etc.) because it will be easier for the Fedora community to set you up with resources beforehand that way.

Encourage autonomy; people can and will modify and spin off new tasks of their own, but make sure it all comes back here so you can keep track of it. The trick to running a large distributed event is to distribute the work and the management, but centralize the communication.

Another thing that is optional but extremely helpful: a way to mark tasks
 * by team ("this task is packaging, this task is development, etc")
 * by skillset needed
 * by level (mark tasks that are good for beginners, vs tasks that need experienced folks to do)

For instance, some sample QA tasks (Mel used to want to take these, but can't any more since she'll be in Cape Town):


 * Ticket tracker setup (move this to fedorahosted.org?)
 * Collect all existing bugs/enhancement requests and get them written and triaged properly
 * Test case/results system implementation
 * Write and execute first round of test cases, starting with a smoke test, then moving to focus on scaleability, cross-platform/browser testing
 * QA infrastructure experimentation (probably looking at Mozilla's tools for starters)

Colin Comments: This is a great. Totally what we need before the FAD... but we were going to do planning on Oct 2nd with the Euro EPaders. We can come up with general tasks beforehand, but drilling down (particularly technical) will require help on the 2nd.

Help desk
I strongly recommend using the #fedora-fad IRC channel for this, as it's the means of communication the Fedora community is used to and therefore the one you'll have the easiest time getting experienced Fedora contributors (who, at this point, are the people you need more of) involved in your FAD with.

Desired result: At any given point in time, if anyone - remote or in-person, is lost and doesn't know what to do to contribute, there should be one place they can go to reach someone on call (make shifts, make sure people take them) who will get them back on the right track."

One way to do this is to assign shifts to a "help desk," a person whose job is to:
 * Sit in a given physical location at the FAD so in-person attendees can reach them, and guide them through finding something to do in the and going to get the mentorship/learning resources they need to be able to accomplish it.
 * Sit on #fedora-fad and do the same for remote attendees
 * Taking note of and marking attendee progress on the online task list, especially when you help someone start doing something
 * Walk around periodically and ask teams for updates on their progress, then upload them - a check-in / status-sync every hour, on the hour, may be a good time period to set.

This doesn't take any specific technical skills, just the ability to use IRC. It does take project management skills; these are people who can keep track of the activity going on and point people towards easy tasks and mentors. These people also need to rapidly become accustomed to and shameless about asking people in the Fedora community for help.

Mel Chua is willing to run a helpdesk shift training session in the week before the event. It will take 90 minutes and require someone onsite to help attendees set up IRC and get online at the beginning (because that's how I'm going to be teaching it - I am allotting 30 minutes for that setup, and 1 hour for the actual class).

It may help to make parallel shifts for experienced, remote Fedora contributors to be on IRC so they can help the on-site helpdesk person tap the resources of the Fedora community.

It may also be useful to ask satellite teams (such as the one in the UK) for instructions on how to reach them immediately at any given point in time. For instance, a team may give you something like this:


 * 3pm-5pm - ping djones on IRC; webcam available if needed for calls
 * 5pm-7pm - we'll be unreachable and out for dinner
 * 7pm-9pm - ping msmith on IRC
 * 9pm-11pm - ping blee on IRC; all our developers will have gone home by 10pm so we'll only be able to help with docs and odd jobs
 * past 11pm - not sure who'll be here, catch up with blee before 11 to find out the situation

Help Desk Hours

 * Friday
 * 5:20-7pm - YOUR NAME HERE
 * 7pm-9pm - Dinner!
 * 9pm-10pm - YOUR NAME HERE
 * 11pm-early - YOUR NAME HERE
 * This session is splitable
 * Saturday
 * 11am-1:30pm - YOUR NAME HERE
 * 1:30pm-3:30pm - Lunch!
 * 3:30pm-7pm - YOUR NAME HERE
 * This session is splitable
 * 7pm-9pm - Dinner!
 * 11pm-early - YOUR NAME HERE
 * This session is splitable

Colin Comments:

Again awesome. Re: training. Absolutely! Lets get people trained (I'd get trained). (Elena offered to help. Atkinson?) Re: Outside associates. We should identify useful Fedora people to ping and list where and when to find them

Food

 * Pre-FAD
 * $0
 * FAD
 * Food:
 * Friday, Sweet Tomatoes Pizza - $15 / reg attendee ~$120
 * Saturday, Masala Art Buffet (the discussion meal) - $14 / reg attendee ~$250
 * Saturday, Communal Chinese Dinner - $150 total
 * Drinks / Snacks
 * $20 /night =$40

Food total: $560

Total
$1440 USD

Actual Cost

 * Snacks part 1: $21(-ish need DJ input)
 * Snacks part 2: $29.05
 * Friday Night dinner: $55
 * Saturday night dinner: $71.63
 * Saturday Brunch: $157.50
 * Jon's train ticket: $110 (need ticket change costs)

Roughly $444.18

Links
Moved to the ToDo page: FAD ToDo FAD status on Twitter: http://twitter.com/olinetherpadfad

Logs

 * 2010-09-06 planning meeting (budget review before submission)