slideDown

Monday, June 18, 2012

Summary for WeBWorK::Rochester::2012

Summary for WeBWorK::Rochester::2012   

The WeBWorK::Rochester code camp, focused on user interface improvements, was held at Rochester from June 6th through June 9th, 2012.  It was a great success.  This was the first working gathering of WeBWorK developers since our summer 2007 meeting at AIM (American Institute of Mathematics); we hope it will kick start a spate of development over the summer on the look and feel of WeBWorK.  In conjunction with PREP courses last summer and two additional code camps this summer, we hope to flatten the learning curve significantly for new users of WeBWorK and to improve the overall usability of the system.

We have a lot to report, including significant progress in WeBWorK interface design, new and developing infrastructure procedures for supporting WeBWorK users and developers, discussion about the social structure of the openWeBWorK development community, and a report on our collaboration with the Teaching Open Source organization through their POSSE workshop at RIT.  

Oh yes -- and since WeBWorK now has contributions in more than one language and from several countries -- we changed the name of the National Problem Library to the WeBWorK Open Problem Library (WOPL) or Open Problem Library for short.  More on that later -- it was quite a discussion!

If you are really impatient, you can stop reading and go explore the new stuff, bugs and all, at https://hosted2.webwork.rochester.edu/webwork2/maa101 (or maa102, etc). Sign in as profa and use profa as the password.  Use your iPad!!!! -- it’s not pretty yet but it works!!!

Below we’ll first describe the daily progression of the code camp for those who weren’t there, and especially for those who haven’t participated in previous code camps.  They are intense experiences.  A lot can get done; it’s hard work, but it’s also fun and satisfying.  

We’d like to encourage others to plan and hold local code camps to work on aspects of WeBWorK that they would like to develop.  No permission is needed from any central WeBWorK authorities, but those of us who have been doing this for a while will be glad to help out in any way we can.  Let us know.

At the end of this note we’ll list specific accomplishments (deliverables :-) ) for the week.

As a last item before describing our meeting, here is the list of WeBWorK events scheduled to  take place this summer and fall.  We hope to see you at one or more of them. Keep track of the events section in the wiki (http://webwork.maa.org/wiki) for new additions.


  • WeBWorK::Clinton - June 20-22, 2012 (John Travis)
  • WeBWorK Consultants Workshop - August 1, 2012 (Arnie Pizer)
  • Mathfest Exhibit Presentations - August 2-4, 2012 (John Travis and Jason Aubrey)
  • WeBWorK::Winona - August 5-8, 2012 (Jason Aubrey and John Travis)
  • MAA JMM Mini Course - January 8-10, 2013 (Joint Math Meeting in San Diego ) (Jason Aubrey and John Travis)

Monday, June 4, 2012

First post from the POSSE 2012 meeting at RIT


WebWork events - 2012-2013

WebWork::Rochester - June 6-10, 2012 (Mike Gage)
WebWork::Clinton - June 20-22, 2012 (John Travis)
Mathfest Exhibit Presentations - August 2-4, 2012 (John Travis and Jason Aubrey)
WebWork Consutant’s Workshop - August 1, 2012 (Arnie Pizer)
WebWork::Winona - August 5-8, 2012 (Jason Aubrey and John Travis)
MAA JMM Mini Course - January 8-10, 2013 (Jason Aubrey and John Travis)



We will be starting the WeBWorK::Rochester code camp on Wednesday.
We will be cooperating on some projects with the POSSE workshop.


The IRC channel is #webwork on freenode.irc.net
The homepage/wiki for WeBWorK is https://webwork.maa.org/wiki
The stable source for WeBWorK is at github.com/openwebwork (projects webwork2 and pg)
Bleeding edge code will be hosted at github.com/mgage (projects webwork2 and pg) and at other developers sites on github.


Stay tuned for more information as the WeBWorK::Rochester code camp progresses.


For those interested in seeing the latest version of WeBWorK in action you can view the courses
at


https://hosted2.webwork.rochester.edu/webwork2/maa101, maa102, maa103, etc.


Use profa for login and profa for password to see the instructor view.


Use jsmith/jsmith for the student view.


check out the new "game badges" designed by Geoff Goehle. (see the Achievements and AchievementsEditor links)

For a recent history of WeBWorK development go to
http://zmoazeni.github.com/gitspective/ and type in mgage





Friday, August 12, 2011

Questions on using open source in classrooms:

1. How does "the open source way" apply to your course work?

Developing open source software doesn't seem to apply directly to mathematics
courses, however at U. of Rochester math department we use WeBWorK extensively for homework.
I will be teaching numerical analysis (really numerical
methods for mathematical engineering)  next semester and will probably use Sage for
at least a few exercises.  There are a few other professors using Sage in their research in number
theory so contributing to this open source project might spread sideways in
the math department.

2. How will you incorporate what you have learned here in your course?

What I've learned about building packages will be used in the near future to make the server component
of WeBWorK much easier to setup.  This has been a barrier to using WeBWorK
and some universities and is likely to be a bigger barrier when encouraging its use
in high schools.

Much of WeBWorK has been developed with the aid of undergraduate programmers and that
will continue.  This won't involve class work per se but it will be part of a few undergraduates' experience.

3. Any feedback/comments on POSSE itself you would like to add?


As one of the creators of the open source on line homework system WeBWorK
I was interested in finding how other open source communities work.  This POSSE
has been very useful in that regard.  I think the CommArch exercise is very useful and enlightening 
and will probably try to work through it for other math open source projects -- moodle, sage,
geogebra.

Being able to meet people involved in other open source projects at this POSSE and at the
sagedays31 earlier this summer has been a very valuable experience.  It's very interesting
to see the diversity in open source communities.

Michael Gage
Professor of Mathematics
Department of Mathematics
University of Rochester

Thursday, August 11, 2011

Succeeded in creating a build tree for a WeBWorK rpm package on fedora.  The build tree compiles now  and produces an rpm package.  Testing the package to insure that it does what it's supposed to will have to wait until week after next.  The package is also not yet feature complete.  Adding a configuration script to the .spec file should not be that hard however since it is essentially a .bash script.

Thanks to the rest of the guys helping out with webwork and to Chris Tyler in particular for guiding us through the build sequence.

Wednesday, August 10, 2011

Creating an RPM for WeBWorK

Chris Tyler gave us the outline of the procedure for creating an RPM for fedora (and relatives). Similar procedures can probably be followed for ubunutu.  How does the creation of .dmg files for MacOS compare?

Here is the outline:


  • (1) run rpmdev-setuptree to create ~/rpmbuild and subdirectories
  • (2) place the source code in ~/rpmbuild/SOURCES
  • (3) cd ~/rpmbuild/SPECS
  • (4) create a skeleton spec file: rpmdev-newspec NAMEOFPACKAGE
  • (5) edit the spec file as appropriate
  • (6) build the package: rpmbuild -ba *.spec
    followed by links to some tutorials:


  • ------------------------------------------------
    Since we have tarballs on sourceforge  grabbing the WeBWorK files is fairly straightforward.  Because we have been training the WeBWorK community to use svn in order to obtain just-in-time bug fixes, the tarballs have fallen a bit behind the current code base and our rpm will be a bit out of date.  This should not be too bad however since using svn after installing the package will update the code. (It will not however load any new CPAN modules that are required.)

    The biggest problem was finding corresponding names for the CPAN modules that are required by WeBWorK.  There is a reasonably up-to-date list in webwork2/bin/check_modules.pl which is used to troubleshoot new webwork installations. 
    Replacing :: by -  and  prepending   perl- to the cpan package name worked in most cases to find the fedora package.  Documentation is at http://fedoraproject.org/wiki/Packaging:NamingGuidelines#AddonPerl
    The naming scheme will be different in other distros.  Is there a tool for translating package names from one distro to another?

    We'll try building this later today on the england.proximity machine.  Preliminary attempts were blocked with errors which we'll try to work through.  One downside to this current procedure seems to be that you'll need half a dozen computers and operating systems to create packages for distribution.  Presumably this could be done on a virtual machine.


    Downloading and compiling firefox.

    Building Firefox from the nightly build.


    This is a slightly scary operation, but it turned out alright (I think). Following instructions
    at https://developer.mozilla.org/En/Developer_Guide/Build_Instructions/Mac_OS_X_Prerequisites
    I first grabbed the libidl autoconf213 yasm tools using macports. This project stalled because of conflicts with an existing installed item and I had to deactivate it. (/usr/local/bin/prove -- a command line tool for running tests agains Test::Harness).


    The scary part is that it rebuilt perl 5.8 and then built perl 5.12 as well. I depend on the perl defined in /opt/local/bin to run the webwork server running on my laptop! I had to stop that server while I was compiling (it caused another conflict similar to the one for prove) but after firefox was built the webwork server started up again. (whew). The build took about an hour and produced NightlyDebug.app







    Tuesday, August 9, 2011

    Analysis of Sage Project.   Notes:

    We started at aloho.net project.  We found that they have an IRC at irc.freenode.net  #sagemath

    Main project page:  http://www.sagemath.org/

    One line description: Sage is a free open-source mathematics software system licensed under the GPL. It combines the power of many existing open-source packages into a common Python-based interface.
    (open source maple or mathematica).


    History of Sage: see History of SAGE Mathematical package in Erik Likness' blog for details.
    William Stein started the project and he has written a short history.

    Sage trac: http://trac.sagemath.org/sage_trac

    Sage wiki: http://wiki.sagemath.org/

    An interesting link on Sage's community page: Promoting Open Source Through Social Media for acculturating new developers. There is also a link to an article describing the massive collaboration among mathematicians to characterize the structure of the E_8 Lie group.  This collaborative effort was sponsored by AIM(American Institute of Math) and is somewhat unusual in the field.

    Mecurial repository: http://hg.sagemath.org/   and the trac view of this is at  http://trac.sagemath.org/sage_trac/browser

    Sage awards prizes for development within their community:  The Spies Sage Development Prize is an annual award worth $500 that will be given to a person who makes major and inspiring contributions to the development of the Sage Mathematical Software System. The goal of the prize is to acknowledge the recipient and to encourage him or her to continue to do excellent development work on Sage. It is funded by donations to the Sage Foundation by Jaap Spies, and cannot be awarded to the same person twice.




    Who is the current release manager for Sage:  Robert Bradshaw? He also participates in Cython (run C code in Python).

     Robert Bradshaw:  home page:  http://www.math.washington.edu/~robertwb/


    2011 Spies Prize: Robert Bradshaw

    Robert Bradshaw has been an extremely active and productive Sage developer for over five years. Additionally, he has been a leader, both in maintaining the community and in important design decisions.
    Developer map and description of developers is at:  http://www.sagemath.org/development-map.html


    We'll try to find the key players in the education branch. From Sagedays31 (June 2011) I know that

    Karl-Dieter Crisman
    Jason Grout
    Robert Beezer

    are involved.

     Other:
    Rishikesh -- automated testing (and builds) @ Waterloo

    We know that William Stein was the original release manager and that he is no longer serving in that position. Who is the current release manager? Can we tell from the site?