Monday, January 30, 2012

Round 1: compiling xbmc

Although downloading and compiling Freeciv was an invaluable learning experience, there were many problems that were encountered doing the same with xbmc.

The first thing that I that I did wrong was download the source code from the wrong site, which was the old sourceforge repository.  I had downloaded all the files and was getting ready to compile and make the project, when I went to the xbmc wiki and saw that all the most recent releases were now being stored at github.

So I deleted that folder (rm -rf "folderName" deletes the folder and its contents) and started from the beginning using the new repository with the subversion command "svn co https://github.com/xbmc/xbmc".
And here is where my next problem made itself apparent.  I had walked away from my laptop while downloading, and when I came back the terminal curser was blinking.  Thinking everything had downloaded fine I went ahead and tried to compile, but after many minutes of compiling received error messages saying I was missing about half of the code.  Looking back through my terminal logs I saw that I had indeed lost the secure connection halfway through the download.

Not to be a person easily daunted, I pressed on and tried again.  This time, after almost all of the code had been downloaded, I ran out of disk space on my virtual machine.  A rookie mistake!  When creating it many months ago, I had only allotted it 10 gigs of space on my hard drive.  So now I am in the process of imaging a new virtual machine and starting over.  Round 1 goes to xbmc.

Saturday, January 28, 2012

Warming up with Freeciv

In order to get our feet wet, we were instructed, as a class, to build up the Freeciv project from its source code.  Freeciv is an open source strategy game.  It turns out that this was a really good learning experience because problems immediately ensued...

I downloaded the source code from the project repository with no problem, but the build process presented some interesting obstacles.  As part of the build, I had to take care of a lot of dependencies by installing some required packages.  This took a some time and while the "Teaching Open Source" textbook was extremely helpful, its instructions are for the Fedora distribution of Linux so a little translation via Google was needed here.  The book also used RPM program to check and see if packages were already installed, but I found the "whereis" command to be a lot quicker to use.  The INSTALL file within the Freeciv documentation was also helpful, if somewhat frustrating at times.  Some of the packages that it said I needed were misspelled and required a little additional research to find and install.  Installing the GLib utility library was particularly frustrating because the command ended up being "sudo apt-get install libgtk2.0-dev" instead of glib or Glib.  This ended up be useful because this command installed gtk+ at the same time, with GLib being a dependency.

After MANY tries at configuring (the script kept finding undocumented dependencies) I finally was able to make the project.  Time for a game of Freeciv!

Tuesday, January 24, 2012

Installing Ubuntu and Subversion

Ahh, Ubuntu.  The operating system of champions!  Or the red-headed stepchild of operating systems, depending on who you talk to.  There is a network guy where I intern who foams at the mouth whenever I praise the virtues of switching over to Ubuntu.  In any case, I love it and have been using it for years...probably since Cloverfield came out if I had to put a date on it.  So when the assignment came down from headquarters to install both Ubuntu and Subversion on my machine, I already had Ubuntu set up and ready to go.  And as for installing Subversion, it was already installed for a project from last semester.

Because these tasks were already accomplished, I decided to blog about the dilemma that I faced when I purchased a new laptop last Spring.   My new laptop came with Windows 7 installed on it, which presented me with a decision to make:

1) Change my allegiance
2) Dual-boot
3) Blow away the machine and run Ubuntu
4) Or run either one on a virtual machine

The first option was not even worth considering, so that left only three real choices.  The only problem that I have with partitioning my hard drive and dual-booting is that it would limit me to only running one at a time.  So nix on that one.  And because I'm forced to use Windows at work, it did not make sense to only run Ubuntu.  I sometimes do homework there (only during lunch!) at my workstation, and from a file-transfer point of view keeping Windows in some capacity seemed to make sense.  Plus I sometimes write batch files at home to automate some of the things I need to do at work.  So my eventual decision was to install VirtualBox and run Ubuntu as a virtual machine.

This process was as easy as these things get.  I burned a copy of the latest version of Ubuntu to a dvd (11.04 at the time) and then installed using VirtualBox.  It was a very intuative, step-by-step experience.
So that left Subversion to deal with.  I already had this installed on Ubuntu from last semester, and all that was needed was to create a new repository for our project (imaginatively named classProject2).  I then pointed my svn client to the new URL supplied by the department's system admin.  Done!

Thursday, January 19, 2012

Getting to know you...

The eventual winner of our contest to pick a team project was xbmc, an open source media platform.  After exploring the website and wiki, it looks to be a really neat project and there are lots of opportunities to contribute to it.

So, the assignment this time was to join their IRC channel and the dig around a bit.  After reading up a bit on the ins and outs of how to behave in an IRC and some of the commands needed to navigate, I was off to explore.  After listing all the available channels, it seems to be a lot of activity that doesn't have much to do with the actual project.  This is just at first glance, though, I have not had a chance to really get into it yet.  There were some gamers chatting about various obscure games, lots of hyperlinks to non-relevant websites, some spam, and a few channels that looked legit.

One really cool thing that I liked was that this appears to be a global community of people in here.  I saw a little German, some French, Spanish, and Russian channels that were available to join.  I might join one of the French ones just to brush up.

As per part two of the assignment, I also registered for the xbmc forum.  This looks like the real meat and potatoes of the developer side of things.  I picked a thread on Python scripts and plugin development, and there were posts with example code as well as developer discussion about current fixes they were working on.  It seems as though the IRC was mainly filled with end-users just hanging out, and the forum is where the developers discuss the project and code.  In fact, most threads leading to specific forums said either "coders only" or "not for end-user whining".

What I will probably do while working on whatever fix or contribution our group decides on taking on, will start our own channel in the IRC to communicate with each other.  And then use the forum to talk with developers and post whatever problems we encounter in the process.  This is really starting to look like fun!

Tuesday, January 17, 2012

Team Assignment: Choosing a Project

Me and the team met up on Saturday to discuss the various projects that we wanted to consider for this semester.  The assignment was to narrow it down to three by Wednesday, which proved to be easier than I thought it was going to be.  This was partially due to our Team dynamic and partially due to the experience that we gained from last semester.

A quick side note on our team dynamic.  Everyone did a great job in helping the team to decide on our top three.  We came to the meeting with each of us having a project that we wanted to explore, then we took turns trying to sell it to the team.  This resulted in an informal vote that gave us our top three choices, ranked from most desired to least.  It was a very smooth process.

I'll leave the other members to blog about their own favorites, and just give a brief description of mine.  And my choice did make it into the top three.  Its an HFOSS project, so it's humanitarian in nature, and is called sahana.  The purpose of the software is to provide a way to organize disaster relief efforts around the globe.  What caught my eye about this project was its mission, the huge amount of documentation that was available (wiki, etc.), and the large support community.  In fact, I'll probably end up being a volunteer developer even if we don't pick this one.

Thursday, January 12, 2012

Learning about FOSS!

I think I'll divide this post up into two sections.   The first to address my thoughts about the first chapter in the book, and the second on my experience installing some open source software.

Book
First of all, this book is a pretty good read.  After getting though a little history behind FOSS and some basics regarding software development practices, the book starts getting into some things that I either had no prior knowledge of or was misinformed about.

I'm a little ashamed to admit this, but I did actually think that the "free" in FOSS meant that it didn't cost anything.  So the thing that I learned today is that it refers to the concept of free speech.  This means that when it is licensed, which I'll get back to in a minute, free software is actually legally protected.  This was a new idea to me; the fact that free software even required any protecting.

I'll admit this straight off, when I got to the section about licensing I was tempted to either skip ahead or skim.  But I soldiered through it and was amazed by some of the information in this section.  To quickly sum it up, FOSS needs licenses (GPL is one) to keep the big dogs from stealing the software and placing it under their own proprietary licenses.  One thing I wish the authors would have explored further (maybe in a later chapter) is how are these licenses protected.  And this leads right what kind of impact FOSS has had on the world so far.

All you need to know about the worldwide impact of FOSS is this figure: $60 billion.  That is the amount of lost revenue to software companies because of FOSS per year.   It makes me a little nervous to attend the POSSCON conference in March, because I'll be half-expecting a hit squad from some development company to show up.
And that's it, I hope the rest of the book is as informative as this chapter was.

Installing FOSS
This will be short and sweet, as I encountered no problems intalling GIMP, a really cool photo editer, on either of the platforms that I run.  On Windows, I simply downloaded the setup executable and ran it.  Then walked through the steps using the Windows Installer.  Intalling on Ubuntu was even simpler.  I just ran three sudo apt-get commands in the terminal, and it was all gravy.

Tuesday, January 10, 2012

First day!

I think the best way to start off my first-ever pro blog is to talk about some of the things I hope to learn and experience this semester.  Although I do look forward to digging down into another open-source project and exploring the code within, I would like to make my focus this time around on the "Team Experience".  Some of the most rewarding times that I spent last semester was figuring things out with my team and throwing ideas around. 
I also like the idea of keeping up a blog for the duration of this class.  It will force me to think back on topics discussed in class and structure my thoughts in a coherent way.  Last semester before graduating, and I plan on making the most of it!