This is the main page for the Etherpad Fedora Activity Day to be held Oct 8-9th at Olin College of Engineering. We are going to improve Etherpad, the wonderful open source collaboration tool, package it for Fedora, and get one running at Olin and one on Fedora Infrastructure. Excited by any of the technologies we'll be using or a new contributor to open source, we hope you'll join us.
Check our current status on Twitter: http://twitter.com/olinetherpadfad
When and Where
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
Agenda
Pre-FAD (very optional)
- Saturday, October 2nd
- 3pm - Assess skill sets, forge plans and detailed goals, run numbers for buying food, etc.
computercolin: Planning to connect with Joe Cornelli and some EP contributors from Europe here.
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
- 3pm - Hacking resumes
- 5:00pm - Talk: Jeff Mitchell of KDE on Building and Maintaining Communities
- 7:00pm - Interactive Stir-fry Dinner
- 10pm - Break (descreen, pool, learn to unicycle, etc)
- Sunday, October 10th
- Breakfast by Colin for the hardcore
- Kickout
Plus progress check-ins every 90min of hacking.
Purpose
- Our purpose is to...
- Repackage EtherPad in a consistent, portable way, more best-practice form
- Create compliant, Fedora packages for EtherPad
- Setup EtherPad instance on Fedora Infrastructure
- Teach non-Propeller-heads about OSS development and the technologies used
- In addition, we will attempt to complete the following secondary goals as time allows:
- Build better(/more complete) test system for EtherPad
- Create a EP web-config interface -- easier to deploy EP
- 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!)
People
Physically Present
- Jeff Mitchell (Boston, MA) - Asked to give talk, community management, coding, sysadmin - coming
- Tom Calloway (Littleton?, 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 'Will be there
- 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 - Very interested
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)
Logistics
Snacks/Beverages:
- Andy / Oliner w/ car will pickup week of FAD. Will consist mainly of Soda.
Lunch:
- Masala Art outing
- Attendees will carpool / ride bikes 1 mile into Needham
Dinner:
- Friday (8th) - Sweet Tomatoes Pizza
- Saturday (9th) - Communal, interactive, stir-fry dinner
- Colin and helpers will grab rice cookers, setup spicing station
Infastructure / Communication
- Projector i=n room / borrow from Olin IT
- Borrow video camera for streaming video / screencast
Resources
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.
- "Who do I get in contact with if I have any questions about logistics during the FAD?" - see #Help desk.
- ??? 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.
- Our purpose is to...
- Repackage EtherPad in a consistent, portable, more best-practice form
- Metric: Etherpad functions without bundled libraries
- Metric: Etherpad has a single configuration file (possibly part of build system)
- Metric: Difference between EtherPad vanilla and GitHub code has been assessed
- Create compliant, Fedora packages for EtherPad
- Metric: Etherpad Fedora package exists
- Metric: Etherpad package has been accepted into the repositories
- 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
- Metric: Someone from Fedora Infrastructure is designated to maintain Etherpad installation
- Teach non-Propeller-heads about OSS development and the technologies used
- Metric: x# of people never used IRC are now pros, have registered nicks
- Metric: x# of people never used version control, now pros
- Metric: x# of people new to open source registered to assist on OpenHatch
- Metric: x# of new Fedora installations?
- Repackage EtherPad in a consistent, portable, more best-practice form
- In addition, we will attempt to complete the following secondary goals as time allows:
- Build better(/more complete) test system for EtherPad
- Metric: # of unit test-cases for Etherpad.
- Metric: System to check uptime of Etherpad on Fedora Infra
- Metric: Automated script to type, edit, move text through Etherpad
- Create a EP web-config interface -- easier to deploy EP
- Metric: EP does not require any modification of source files
- Metric: Number of connections, name, colors can be configured via web-admin interface
- Metric: EP does not require configuration at build time or installation
- Question: Can we configure port / domain via web. Should we bother?
- Document EP
- Build better(/more complete) test system for EtherPad
- 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 #Task list.
- "Who do I get in contact with if I'm not sure what to do next to contribute during the FAD?" - see #Help desk.
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 #Intro to FOSS contribution tutorial
- 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 (here's how you use the one we're using over the weekend - which is to say, git)
- what's the software development lifecycle (release cycles, the role of QA, etc)
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
- Maybe Kevin can teach? Would be great, I think.
- Allen Downey will run around and help people
Task list
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 #Task list 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
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
Budget
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:
Food total: $560
Travel
Contributor | Type | Dept | Arrv | Dept | Arrv | Cost | Final Cost |
---|---|---|---|---|---|---|---|
Jon Stanley | Amtrak | Oct 8 ~6pm - NYC (Penn station) | Oct 8 - Route 128 Station (RTE) | Oct 10 ~9am - Olin | Oct 10 - NYC (Penn station) | $180 USD | $113 USD + (undermined gas and wear for train <-> Olin transport) |
Lodging
Contributor | Location | Check-in | Check-out | Cost | Final Cost |
---|---|---|---|---|---|
Tom Calloway | BECC (~at olin) | Oct 8 | Oct 10 | $350 USD | 0 (Admissions room) |
Jon Stanley | BECC (~at olin) | Oct 8 | Oct 10 | $350 USD | 0 (Admissions room) |
Total
$1440 USD