Search This Blog

Wednesday, April 20, 2011

Software Engineering Practicum, Semester-in-Review

This will be the last post included in the pdf archive of this blog.  Thus, a brief review of the semester follows.

I thought the Teaching Open Source book was quite useful.  Although we'd already covered some, if not all, of the content it presents in other classes, it still provided useful information and good practice.

Our first-choice project, Gnome Empathy, turned out to be too difficult to actually work with.  We learned some valuable lessons from it: don't assume that an old, well-established project will be easy to contribute to; be willing to change your initial assumptions; don't hesitate to reach out to the community-at-large for some help.

Our second-choice project, OpenKinect, was much newer (~4 months old) when we switched to it.  This meant that there were no simple, quick-fix bugs available for us to work our way into the project.  We dove into the deep end and started learning what we needed in order to be able to contribute something by the end of the semester.  We learned enough to have contributed both code and documentation (both in code and higher-level on the wiki). 

The project as a whole would benefit greatly from a 362/462 group devoted to developing a fundamental structure and test suite.  We've developed a more useful separation of concerns model that we can provide to the project, but perhaps not before the end of the semester.

The class as a whole was definitely worthwhile.  It certainly emphasizes the need for implementing software engineering practices in all aspects of software development.  Without some kind of plan in advance, projects quickly devolve into disparate code pieces smashed together inelegantly.  The result might work, but it also might not.  A plan may change, but the end result is always predicted and expected.

Monday, April 18, 2011

The Next Two Days

It turns out that the OpenKinect.org wiki is a wiki in the truest sense.  One need only create an account and edit and/or create a page to add to it.  So, I took the liberty of updating the high-level API documentation with the data James compiled from the current code.

The structure of the code seems to have changed quite a bit from its initial state, and if we make the changes we have slated on our group wiki, it will have changed again almost back to where it started.  I think it should be pretty easy to accomplish those changes, but we're still waiting to hear back from the OpenKinect community about whether they're welcome changes or not.

We'll definitely have a pull-request for the code and documentation we've added by Thursday (probably tomorrow before class) as well as the wiki in .pdf form.  With only two days of class left, we'll be focusing on the Prezi during class time.

Thursday, April 14, 2011

The end is Nigh

With a very short time remaining in the semester, our group is nearing completion on our intended contributions to the OpenKinect project.  I've got a list of planned changes to the API and assorted c files.  The separation of concerns in cameras.c is laughable; James' proposed changes to cameras.c includes creating several new files that are cohesive units instead of the mess that is cameras.c.  I'll be making a a wiki page to document the current state of cameras.c and our proposed changes.  After that's stable, I'll send it to the OpenKinect wiki for addition to the fairly underrepresented documentation section.

Tuesday, April 12, 2011

Another Contribution

During our coding and documenting adventures we came to the conclusion that the code is quite poorly organized.  So, another contribution to the OpenKinect project that we intend to put forth is a code rearrangement.  The original code was intended to be a quick hack to provide proof of concept.  We've progressed farther than proof of concept, so we need to make it much more clear.  Separating functions into separate c files is the best way to enhance clarity.  James has made a great blueprint for the separation of concepts which I think the OpenKinect community should embrace.

Today, I think we'll work on our presentation and some documentation.  Tim is sick, so he won't be here today, and yesterday was Ashley's birthday; considering he did not turn 21, he shouldn't be too hungover to be at class, but I haven't seen him yet today.

Thursday, April 7, 2011

Down, but not Out

So this past Saturday I came down with something that sapped all my energy.  I was in bed for 3 days, and rather than being really relaxing, I was exhausted the whole time.  Finally, Tuesday afternoon I was alive enough to move around, and all was well with the world again.  Needless to say, I didn't get anything done during those few days. 

I noticed that my group-mates came up with some additions to the project presentation page on the group wiki.  Soon, I'll start a Prezi to accommodate all our brilliant ideas.  Prezis are very cool; for anybody who hasn't seen one before, you should check it out.