Category Archives: My Year of Open Source

Sabbatical Restart

Summer is over, and it’s time to really get to work on my Sabbatical project.

I did do some work this summer – I’ve read 3 of the books on my Sabbatical Reading List (and added a few more to the list) and I’ve finally de-lurked on the OpenMRS developer mailing list and in some of the online meetings, and I’ve made a decision to convert all of my course materials to Markdown (the better to track changes on GitHub – see a future post). But, it’s all been pretty passive.

So, the Friday before the Labor Day Weekend, I decided it was time to get back to the “develop code in OpenMRS” part of the project.

Since it had been a couple of months since I had set up  my development environment and tried to build the OpenMRS code, I decided that starting over from scratch (mostly) would not be a bad idea. Here is what I did:

  1. Read OpenMRS’s Getting Started as a Developer wiki page. I had already set up my OpenMRS ID, and signed up for the developer mailing list. I already had a GitHub account, as well.
  2. Read Development ProcessfromOpenMRS Developers’ Guide, and got the code:
    1. Fork openmrs-core repository.
    2. Clone my fork onto my computer.
    3. Set the OpenMRS repository as my upstream remote so that I can pull changes from the main project into my local working copy.
  3. Set up development environment based on Get Set Up from the OpenMRS Developers’ Guide. I chose the section on Manual Installation because Iwantto be able to develop code fortheOpenMRS core application. I followed the general outline of this section, but went about some of the software installations differently.
    1. Install MySQL. Because I am setting up my development environment on a Mac, I installed MySQL using Homebrew
    2. Install Maven using Homebrew
    3. Install Git using Homebrew (actually, I already had Git installed, but I made sure it was up-to-date)
    4. BuildtheOpenMRS code:
      cd openmrs-core
      maven clean install
    5. RuntheOpenMRS web app through the jetty server:
      cd webapp
      mvn jetty:run
    6. The first time you run the web app, it will take you through the Setup wizard
  4. Set up Eclipse. I already had Eclipse installed, but I made sure that my version was up-to-date. Eclipse had been updated to a new major version (Luna) since the last version I installed (Kepler). 1
  5. Git IDE Integration: Since EGit is already installed in current versions of Eclipse, and I’ve already forked and cloned the repository, I really only needed to do the To import as a Maven project section, to get the the projected into Eclipse.
  6. Build the OpenMRS code under Eclipse. I followed the steps in the following section:
    1. How to run the build
    2. How to run Junit
    3. How to Run Web Application

Now that I have a working environment that builds and runs, the next step is to choose a ticket to work on.

  1. In the past, I had just downloaded the newest version, and replaced what I already had installed. I figured that there must be a way to do the update without having to reinstall and reconfigure all of my plugins. It turns out that you can add the release’s repository to the Available Software Sites: http://wiki.eclipse.org/FAQ_How_do_I_upgrade_Eclipse%3F

From the blog On becoming an Eccentric Professor... » CS@Worcester by Karl R. Wurst and used with permission of the author. All other rights reserved by the author.

My Year of Open Source – Post Mortem

Some of you will remember the post My Year of Open Source from 1 January 2011 – almost 3 years ago – where I made a New Year’s resolution to participate more in FOSS. Here are the goals I listed for myself for that year:

I have four main goals (at this point):

  1. Learn the tools and processes myself by participating in a FOSS project.
  2. Figure out what FOSS tools and processes I can begin to introduce my students to in earlier courses.
  3. Figure out what FOSS experience(s) I can provide my non-CS students.
  4. Find a project (or projects) to place my Senior CS students into in Spring 2012.

Well, it was as successful as most New Year’s resolutions – meaning, not very. Or maybe, not completely. I was (partially) successful at some of those goals, although almost none were completed within the year that I so rashly promised.

Figure out what FOSS tools and processes I can begin to introduce my students to in earlier courses.

This one was somewhat successful, although not until this past June (2013) when I managed to have my summer Introduction to Programming class (all six students!) use git and Bitbucket to collaborate with their lab partners and to submit their work to me for grading. Fresh from that (small-scale) success, I tried to have my Programming for Non-CS Majors class do the same, and ran into some scaling issues. We’re working on the solution for that right now – more in a future post.

My Spring 2013 capstone project course did use git and GitHub for our project developing an app for a Worcester Art Museum exhibit. But my understanding of git was not a good as it could have been and the student use of git was spotty. We also planned to use Pivotal Tracker, but didn’t get very far. We did successfully use IRC, however.

Find a project (or projects) to place my Senior CS students into in Spring 2012.

My Spring 2012 capstone project course worked with Eucalyptus, and had some pretty strong interaction with some of the members of the community, but I think that both the students and I felt we weren’t as successful as we could have been due to some technical issues early on in the course. For Spring 2013, I abandoned working in an existing FOSS project in favor of new development when the Worcester Art Museum opportunity presented itself. We did, however, make our code freely available (https://github.com/CS-Worcester/JILOA)

Figure out what FOSS experience(s) I can provide my non-CS students.

This goal got very little attention, other than my abortive attempt at using git in the Programming for Non-CS Majors course.

Learn the tools and processes myself by participating in a FOSS project.

And I still have not made any real progress in my own participation in a FOSS project.

However, that’s all going to change. Stay tuned for My Year of Open Source v2…

 

From the blog On becoming an Eccentric Professor... » CS@Worcester by Karl R. Wurst and used with permission of the author. All other rights reserved by the author.

First Merge!

Following on Trevor Hodde‘s post First Commit!, it’s time to mention our First Merge!

First Nate Doe, and then Trevor, made commits to our class’ fork of the Eutester repository on GitHub. I submitted a pull request, which has now been merged into the master branch of the repository.

We’re looking forward to more commits, and having them merged into the project. I know that Nate and Trevor have issues assigned to them, and I think that Matt Morrisey will soon.

From the blog On becoming an Eccentric Professor... » CS@Worcester by Karl R. Wurst and used with permission of the author. All other rights reserved by the author.

Oh no! I’m defaulting to CLOSED!

My Spring 2012 course is well underway (into the second week), and going well. But, as I was putting up the latest assignments and resources for the class, it struck me: I’m defaulting to CLOSED!

Many of the materials that I’m using are coming from Heidi Ellis‘ course at Western New England University, and from other open, online sources. Yet, here I am, posting them in our Blackboard CMS, where only my students have access to them! And this really is a default action — it’s just what I’m used to doing, so I’ve done it without thinking.

This is a somewhat minor at this point, since Heidi has already made these materials available. But, I’m starting to develop new exercises and assignments that others may want to use. And, just as I borrowed some of the course organization from Heidi’s course, someone else might find my “remix” of her organization useful or inspiring.

So, I’m starting to think about where I want to post my course materials to make them open. (Licensing is not the issue, as I’ve been CC-licensing my course materials for years.) Unfortunately, our school is not good about giving faculty web space that they can easily edit for themselves (our default is Microsoft SharePoint.) But, we have our own departmental server, where we are hosting our departmental blog (acting as a planet), our Git and Subversion servers, and our Wiki. I have a vestigial web site there (that just redirects to my Sharepoint page), so I can probably press that into service as the home for the course.

It may take a bit more work, because it won’t be the default. I’ll have to move all the materials I’ve already posted and remember to post the new ones I’m writing to this more open location.

And, I’ll have to work on making open my new default.

From the blog On becoming an Eccentric Professor... » CS@Worcester by Karl R. Wurst and used with permission of the author. All other rights reserved by the author.

CS Students and Faculty Attend Talk by Tom “Spot” Callaway from Fedora

CS Students James Forkey, Dillon Murphy, and Dave Thompson, and Professor Karl R. Wurst attended a talk by Fedora Engineering Manager Tom “Spot” Callaway, at Western New England University on Thursday, 1 December 2011. Spot talked about “This is why you fail and how to avoid it” using his Fail Meter, illustrating it with many amusing (and simultaneously frightening) examples from Open Source projects he has interacted with. The talk was hosted by Dr. Heidi Ellis as part of her Software Engineering class. Heidi has blogged about the talk here.

WSU CS Department Now Has A Blog!

The Worcester State University CS Department now has its own blog at http://cs.worcester.edu/blog. It was set up to act as an aggregator, so that faculty and students in the department can contribute posts.

I had it set up primarily for the students in my CS 401 class to blog about their Open Source project work, but anyone in the department can submit posts about their classes, projects, or research. It is my hope that it will serve to build a community within the department, so that we can all learn about the cool and interesting things that the members of the department are doing.

The blog is running as a WordPress instance, with the FeedWordPress plugin doing the aggregation. Erin McLaughlin, who is helping me with preparation for my Spring 2011 CS 401 class, did the grunt work of the WordPress install. Thanks Erin!

From the blog On becoming an Eccentric Professor... » CS@Worcester by Karl R. Wurst and used with permission of the author. All other rights reserved by the author.