About Me

My photo
Charleston, South Carolina, United States
Computer Science undergraduate student (Senior) at the College of Charleston.

Labels

Thursday, January 27, 2011

svn commit -m "added information about my experience with subversion"

I recently have been researching and playing around with subversion.  Learning to use this tool seems to be very important to getting involved in the open source world.  During previous team projects, my team mates and I have had serious issues dealing with version control.  I would actually say that version control has been the largest issue to my team projects.  I was aware of the existence of technologies such as subversion but we never looked into it due to time constraints.  I remember one specific occurrence when my team met up for a final discussion before our final presentation the next day.  We decided to touch up the code during the meeting and (of course) the changes that were made rendered our code utterly useless.  All of the tests we had written were now failing and we had no previous version of the code.  We stayed up late into the night attempting to repair what we had broken.  (As a side note we eventually got it up and running again with all tests passing)

So, my motivation to learn how to use subversion is quite strong.  I just wish it was introduced to me earlier.  I have downloaded a subversion client (tortoisesvn) and have begun to play around with it using Dr. Bowring's subversion server.  Initially I attempted to use the GUI but I found it to be limiting. (Uh oh, I'm starting to sound like a know it all, command line user!)  Using the GUI, I was able to add files to the repository but I quickly decided that I would prefer the command line.  Using the command line version, I quickly got a feel for the commands using the 'svn help' command.  I successfully checked out files from the repository and ran through a list of commands on the 'svn help' page (updating from the repository, committing changes, etc.).  The process has been pretty smooth and I'm excited to finally be getting this technology under my belt.

Ill point out two problems I had and the solutions I found to those problems in case anyone else in my class encounters this.

Problem One
From the windows command line, I originally tried to commit changes using the command 'svn commit' this gave me the following error

svn: Commit failed (details follow):
svn: Could not use external editor to fetch log message; consider setting the $SVN_EDITOR environment variable or using the --message (-m) or --file (-F) options svn: None of the environment variables
SVN_EDITOR, VISUAL or EDITOR is set, and no 'editor-cmd' run-time configuration option was found

Apparently a fix to this is to include a message with your commit using the -m
option. For example..

svn commit -m "added to the genetic algorithm"
 
Problem two
If you attempt an svn command such as 'svn commit' and you get an error that reads
"svn: C:\Users\Name\ is not a working copy" then you are not in the correct
directory. You need to 'cd' into the directory you have checked out.

Tuesday, January 25, 2011

How to contribute to OpenMRS

In the past few days, our team has been searching for the best ways to start to contribute to OpenMRS.  They are using JIRA for issue management.  There is a list of the popular issues here.  I think we could potentially work on many of these.  As an example, here is one issue that caught my eye (open issue).  There is also a list of "unassigned" projects here.  I realized while looking through the OpenMRS website that they have a mentor system in place where each project is assigned a developer(s) and a mentor.  This kind of system could be very useful to people who are new to OpenMRS such as our team.  Apparently, one of our team members has already reached out to OpenMRS and we are now awaiting a reply.

Recently, I have been doing some research on the background and history of OpenMRS.  The founders include Paul Biondich, Burke Mamlin, Hamish Fraser , and Chris Seebregts.  Three of them met at a Medinfo conference and the fourth joined later on.  OpenMRS grew out of a need to scale up treatment of HIV in Africa.  Originally, hospitals would use paper systems, Excel spreadsheets, or poorly designed databases.  OpenMRS was introduced as a software platform which allows people with no programming knowledge to create customized medical record systems.  A core ideal of OpenMRS is that it be a general purpose medical record system that can support the full range of medical treatments.

If you would like to give OpenMRS a test run, check out the demo here.  Log in with username: admin and password: test

Wednesday, January 19, 2011

OpenMRS

Our group has made a decision.  We are going to be working with OpenMRS this semester and I am rather excited about it.  The scope of the project and the vision behind it makes contributing an exciting prospect.  My team members and myself are taking the first steps necessary to get involved in the project.  This includes joining the project's mailing list and accessing the project's  IRC.  I just joined the developers mailing list today and I have been amazed with all of the discussion that has transpired already.  For example, earlier during the day a contributor pointed out a date input problem with OpenMRS.  Apparently if you are using date format "dd/mm/yyyy" and enter in the date "01/23/2010", the system accepts the date but stores it as "01/11/2011". Additionally if you enter the date "01/01/09" it gets stored as "01/01/0009".  Throughout the day I've been following along, as a variety of contributors have discussed possible fixes to this bug.

I have never used IRC before but it seems easy enough to get the hang of.  You can access the OpenMRS chat room directly through their website but I also wanted to do it via a client.  I ended up installing a Firefox plug-in named Chatzilla.  The only tricky part about using the IRC client was figuring out how to navigate to the OpenMRS chat room.  Apparently ResNet (the wired campus network) blocks the necessary ports needed to connect with an IRC client.  But I successfully connected to the OpenMRS chat room once I switched to an external network.  Once I got down the common IRC commands, I scanned the IRC logs for interesting conversation.  I found a variety of communications from joke telling to the discussing of up coming meetings.  There is still more to be done to be fully ready to contribute to OpenMRS but I intend to reach that point in the coming days.

I recently read The Cathedral and the Bazaar and found it to be a very persuasive case for open source, bazaar style development.  It seems though that this bazaar  style of development is not suited for all projects.  The author even points out that a precondition to using this development strategy is to already have something to work with.  In other words, it is difficult to use the bazaar development style in creating a project from the ground up.  But where this strategy works, it seems to do so extraordinarily well and the reasons for its success are obvious.  These bazaar styled projects have an overflowing tap of resources.  Hundreds or even thousands of world wide contributors can help guide a project to success.  Contributors can hand pick projects that interest them to get involved with and these contributors are motivated (usually) by the desire to obtain reputation or by the need to "scratch an itch" to see progress in a project.  So, you end up with a plethora of contributors who are motivated to do what they do best - design,code,test,debug,and document.  Sounds like a pretty good strategy.

Monday, January 17, 2011

Choosing a project

Our team has now begun the process of selecting an open source project which we will contribute to.  With so many choices it can be intimidating to scale down candidate options.  But throughout our search, I have looked for a couple of key factors that should be present in our final project.  One such factor is explicit information on the project's website on how to get involved.  The other thing I'm looking for is a project that would actually be of interest to our team.  At the moment, I have two 'favorite' projects.  I would enjoy working on either of the two.  The first is OpenMRS (http://openmrs.org/)  OpenMRS is an open source medical record system.  It's core purpose is to aid the delivery of health care in developing countries.  This project is very important to these developing countries that can now have access to such technology that would normally be way out of their price range if they were to consider a proprietary version.  The other project is Plone (http://plone.org/).  It is an open source content management system which prides itself on being elegantly minimalistic.  It has good info on getting involved and is also a viable option.  I will have to discuss these options with my other group members but by the end of the week we will have selected our project.

Tuesday, January 11, 2011

And it begins

We formed teams today and will soon begin working on contributing to an open source project.  Our team only has three members (the other teams have four) but we are not too concerned about it.  Today I also registered for POSSCON 2011.  Now, do I want to ride in a van with a bunch of people to the conference or drive myself?