EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

EPICS Codeathon 2014

25-29 August, 2014

The Controls Group at the Stanford Linear Accelerator Center (SLAC) in California will host the 2014 EPICS Codeathon, to work on some of the items on the EPICS To Do list. SLAC will provide a comfortable environment with wired and wireless networking and space for up to 20 people to work on EPICS core and related development projects. Attendees will be responsible for their own travel and expenses, and must bring a laptop or notebook computer to work on with all necessary development software.

By taking developers out of their home environment they can be freed up from interruptions and local problems and allowed to concentrate on specific EPICS development tasks. A lab that is looking to both improve their EPICS expertise and to give something back to the collaboration might find this an appropriate way to do both at the same time.

What Happens?

Coding Marathons, also called Code Sprints or Hackathons are popular in many open source projects as a way of making progress on certain development efforts, clearing up bug reports and introducing new developers to the project internals. They usually involve design discussions between developers, coding (individually or using techniques like Pair Programming), code testing and debugging, writing documentation, and coaching for developers who are new to the code-base.

The four previous EPICS Codeathons have had 8-15 attendees from several different labs/sites, and have resulted in many useful advances for EPICS.

Who's invited?

This workshop is intended for experienced EPICS users who wish to contribute towards the future of EPICS. There are usually several core developers in attendance as well as a number of other people; see the participant list below for the people we're currently expecting to attend this year.

Our numbers will be limited to at most 20 developers by the space available. It's not necessary to attend for the whole week, but preference will be given to those who will. Most tasks will require a good understanding of EPICS and the ability to read and write C/C++ code, but there will be tasks involving the updating of documentation which don't require writing code (but will need the ability to read and understand record-type implementations).

If you are interested email Andrew Johnson as soon as possible to reserve a spot. If there are places available we should be able to accept late entries, subject to entry .

This codeathon is now listed as a sprint on the Launchpad website, registration there is optional. If you have a specific project you're planning to work on it might be good to describe it in a Blueprint for that sprint.

US Department Of Energy Laboratories

If you don't work for a DOE Lab, ignore this section.

DOE Order 110.3A, Conference Management, dated January 25, 2007 requires DOE approval for attendance or hosting of conferences, but lists several exclusions to the approval requirement. Argonne's Conference Office has deemed all previous Codeathons as being excluded from the need for DOE approval.

Where is it being held?

In the Redwood A & B conference rooms at SLAC, from 9am to 5pm.

Wireless networking will be available with high-speed access to the internet so you should be able to connect back to your home institution for email and other services. The ability to test software on your own hardware back home can also be useful if you're able to do that.

Information about visiting SLAC can be found here. All visitors will need to show government-issued ID (drivers license or a passport) to gain access to the SLAC campus, and must be named as one of the participants in the list below.

Where to stay

The Stanford Guesthouse is located on the SLAC campus within easy walking distance of the Redwood meeting rooms. There are also a number of hotels in the Menlo Park/Palo Alto area if you will have your own transport.

If you make an online reservation at the Guesthouse your affiliation is with the SLAC National Accelerator Laboratory as a SLAC Conferee. The lab no longer has a cafeteria on-site so it will still be necessary to go into town for dinner in the evenings, but we are arranging to be able to order in lunches each morning.

Work Projects

Our list of development projects comprises tasks of varying levels of complexity that we would like to see implemented, and lists specific work needed for the 3.15 release. Development work for EPICS V4 would also be appropriate for this event.

Participants can also bring or suggest additional projects themselves, but please try to discuss these ideas on core-talk before the event if possible. You will be able to pick the project or projects you will work on after a discussion with the other participants to avoid duplication of effort.

The core developers who attend will be working on their own projects, but will also be available to provide advice and assitance to others as needed.

The EPICS core developers have to review and approve all changes and additions that can be merged into official releases of EPICS Base. Contributions of code can only be accepted that are offered under the terms of the EPICS Open License. Please confirm with your management in advance that your code can be distributed this way.

How to Prepare

What can/should you do in advance in order to make life at the event itself easier for you and the other participants? Here are some suggestions, if you have other ideas that you think would help let me know and I'll add them here.

  • Make sure your laptop/notebook computer is prepared for the work that you are capable of doing. You'll need to have all of the necessary compilers and other tools to build the software you're working on, and if you're interested in working on enhancements to Base you will need the Bazaar (bzr) DVCS software installed (there are Bazaar plugins for Eclipse, Windows, MacOS, and Linux users).

    You should also sign up for a Launchpad account which will allow you to publish your results. Instructions for checking out a local copy of Base can be found here.

    Don't forget to bring a mains adapter if you're not from the US.

  • If you're interested in documentation work, ask me in advance to set you up with a Wiki account — this doesn't take long to do, but it will allow you to familiarize yourself with editing Wiki pages.
  • Look through the list of suggested work projects and try to identify which ones you might be interested in working on, and then examine the existing code in base to try and get a feel for what needs to be done to implement them. If you have additional ideas of your own, it is worth posting a message to core-talk describing them in advance of the event.

    This type of preparation work isn't the same as starting early. It's more a matter of getting your brain ready to sit down and tackle some problems. Rather than spending half a day deciding what to do, you'll already have a bit of an idea about where you could do some work and what the bigger picture looks like in that area.


The following people attended:

  1. Andrew Johnson (Argonne)
  2. Siniša Veseli (Argonne)
  3. Michael Davidsaver (Brookhaven)
  4. Ralph Lange (ITER)
  5. Daniel J. Lauk (PSI)
  6. Stephanie Allison (SLAC)
  7. Bruce Hill (SLAC)
  8. Kukhee Kim (SLAC)
  9. Murali Shankar (SLAC)
  10. Till Straumann (SLAC)

Some participants photographed with the SLAC Instrumentation and Controls Division Director Enzo Carrone and host Ernest L. Williams Jr.


At the end of the week the white-board recording our progress looked like this (click image for full-size photo):

Crossed check-marks mean that some work was done but not completed.

Last updated: 2014-09-03

ANJ, 03 Sep 2014 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·