Wednesday, April 20, 2011

The End is Here

It is so hard to believe that classes are about to be over in only a few more days. This semester seemed to fly by without my noticing. I think my experience in this Software Engineering Practicum class has been great. I have learned so many things despite the fact that we were somewhat on our own and had to be self-motivated to get things done. 

I did not learn Python here at CofC because I took Programming I at Winthrop University where we learned C++ instead of Python. This class project provided a chance to really understand Python because I basically needed to in order to contribute. 

Working on our open-source project, Fortune Hunter, was also an amazing experience. I was taken back by how enthusiastic and helpful the Sugar and Math4 open-source community was with us trying to contribute. We were in constant contact with Jon Meschino through the semester and even had some people subscribe to our team wiki! 

You could say that our experience working with open-source projects in CSCI 362 was at the Knowledge or Comprehension level of Bloom's Taxonomy and CSCI 462 was at the Application or Analysis level.

Other great tools that I will be able to take away from this class is experience using git/svn and NetBeans. I was not really exposed to many IDEs before this class but I have come to find that I thoroughly enjoy using NetBeans. I actually started using it for my Operating Systems class this semester.

Overall, I think our group did very well. We all worked great together and helped each other when needed. We are presenting our poster for Fortune Hunter tomorrow which will also help us put together our final presentation for class. The last thing to do is export this blog and say farewell!

Monday, April 18, 2011

Finishing Up!

I met with Brittany today to provide my screenshots for the poster we are creating. We will hopefully submit it today as well so that it can be reviewed and printed in good time.

Currently, I am working with Ryan to implement the animated graphics. When the player casts the lightning spell successfully, we would like a lightning bolt to flash a couple of times on the screen. I have been able to load the lightning image after the user successfully casts the spell, however, now I have to animate it. The Fortune Hunter project uses a sprite sheet to animate images (currently there is an animated dragon). I have never used/seen a sprite sheet before so I will just have to do a little research for this. Brittany also emailed the mailing list to get some further information on this for me. However, I feel we should definitely be able to accomplish this!

The next step is to continue working on our presentation and exporting our blogs and wiki.

Thursday, April 14, 2011

No Such Victory

I was having a really hard time with loading a victory screen in the Fortune Hunter game. In version one of the game, whenever the player defeated all enemies in the room, a victory screen would appear. This screen would let the player know that he/she has won and display information about what they won. Seeing as it might be difficult to find out how to locate this information (what the user won after the battle) I was just trying to display a victory screen that would simply indicate that the player won (since there was really no other indication of this). For some reason, I was able to make the victory screen appear after the defeat of each enemy but not after they all were defeated. After spending a couple of days on this, I decided to just move on to something else so that I might have a chance of actually contributing to the project. (I did make changes to the code so that when the player defeated an enemy, a message in the message center on the bottom would read "Enemy Defeated!". So at least now the player has some form of indication that they have won.)

Ryan still had some work to do with completing his task so we decided to collaborate and I will help with adding the new graphics to the game. Since there will now be two people working at this, we will hopefully be able to accomplish this and we could continue with other tasks.

Tuesday, April 12, 2011

Tuesday - April 12th

I do not have much to update for today. We are all still steadily working on our project though. Today we are going to review our abstract that Brittany has started for our poster for Fortune Hunter.

I will update after class with any further news.

Thursday, April 7, 2011

Project - Presentation - Poster

Our group, Four's Company, seems to be progressing along just fine. We are nearing the end of the semester so there is homework and papers left and right for all classes. This will prove our determination if we can fight until the finish line and come out with a great experience and contribution.

Each of us are still working on our tasks for the Fortune Hunter game and appear to be right on schedule. We will begin thinking about/designing our presentation soon - especially since we will have to turn in an outline for our presentation to Dr. Bowring. Our group has also decided to create a poster for the 23rd Annual Scientific Research Poster Session. I have never done this before so it will be really fun and exciting to share with others what my group and I have been working on all semester long! Hopefully, we will have time to make this poster really nice.

Tuesday, April 5, 2011

Three weeks and counting!

My group met up over the weekend to work on our project. I think this meeting was very beneficial because we all actually got to sit down together and discuss our ideas and the code. We were able to help each other throughout the whole time we were there.

Ryan and I discovered that the tasks we were working on separately, are essentially doing the same thing. We are both trying to upload pictures to the screen at different points throughout the game. Therefore, we were able to collaborate and work together. We were able to find the code that is used to pop up a picture on the screen.

Ryan would like to display a pile of bones when an enemy is killed and we do have that image appearing on the screen, so our next step is to figure out the right placement of the picture and how to get more than one picture to appear (one for each enemy that is killed).

My goal is to have a victory image that will appear after the player has killed all enemies in one dungeon, right before they move on to the next dungeon. Now that we should be able to display the picture, I will just need to create the gif image.

We are keeping our Team Wiki up to date by writing about any changes we have made to the game. Our timeline page that lists what we have accomplished and what we plan to accomplish is steadily growing by the day!

Saturday, April 2, 2011

Update on my Task

Currently, I am working on adding the Victory Screen into version 2 of the Fortune Hunter game (from version 1). Version 1 of the game will not play on my Sugar OS in Virtual Box so I have not been able to see the victory screen. I have the source code in NetBeans so I did a search for "Victory" and found that they were using a "VictoryScreen.gif" image. I found this in the MAFH.activity folder but it is simply another image of the hand and the little menu in the hand. So I wasn't sure what to do with this. For now, I just have the message on the handheld menu read "You Win!" when the player defeats and enemy and also added a message at the bottom that reads "You have defeated your enemy".

Friday, April 1, 2011

Four's Company Team Progress

This week, our team has progressed even further with our bug fixes.

We were not sure how to find Dungeon 3 in the Fortune Hunter game but Jaime found the line of code where we could change the amount of damage caused by "attack" is 40 instead of 10. Therefore we could just breeze through the game to look for Dungeon 3 and we did eventually find it and saw the bug where you are stuck in dungeon 3 and cannot move further. We were also having trouble even viewing the game on our laptops because of a screen resolution issue and Jaime found a way for us to scale our machines so that we could reach a large enough screen resolution. This was very helpful for being able to understand more of the Fortune Hunter game. Now, the next step is to get moving on implementing our bug fixes!

POSSCON Experience

Unfortunately, I have been really really really busy this week with tests and programs and homework and studying which caused my blog to be put on hold - momentarily! However, even though I did not blog previously, I do have much to say about the POSSCON event.

It was very exciting to go to this conference because it was an open source software conference but also because I have never been to a conference before. It was awesome that Dr. Bowring was able to have vans for us so that we didn't have to pay for gas driving ourselves to Columbia. The drive was only about an hour and a half but it was nice to just be along for the ride instead of driving.

The conference was held in the Columbia Metropolitan Convention Center and it was organized very well. As soon as you entered the building you were greeted, registered, and then served muffins and coffee for breakfast.

The sponsors for the conference had set up booths set up for questions and information. The Linode booth was giving out free t-shirts and naturally, we all stopped by. I actually did speak with one of the girls at Linode because she said she was doing web design/development. I would like to look into Ruby on Rails now after speaking with her because it might be a language I will need to know in the future.

Our task for the day was to pick three presenters and ask them questions. The first presenter I wanted to speak with was Chris Hinkley. There are a few minutes after the presentations when you are free to ask questions but I did not want to ask questions in front of other people so I decided to wait until afterwards. However, since this was my first conference I was just following along with the crowd on to the next session and I ended up missing out on speaking with Chris Hinkley.

The next presenter I wanted to speak with was Walter Bender, founder of Sugar Labs. I loved his presentation which was created using one of the Sugar activities. After his brief overview of what Sugar Labs is he showed everyone on of the OLPC laptops and the Sugar OS. He also showed us an activity created while on the plane coming to Columbia! (Although he was coming from Norway). There are three groups in our Software Engineering class that are working on Sugar activities and we all attended his presentation. Afterwards, we all went up to meet Walter Bender and to tell him about the activities we were working on. He made suggestions for the activities but seemed pretty happy to see we were actively helping. My questions to him were about how he managed to stay employed and also contribute so much to OLPC and Sugar Labs which can only give back the satisfaction of helping the children. I was mainly asking because most of us are seniors and we will be headed out to find jobs in the work industry which does not include open source projects. So, how could we manage our time if we wanted to continue contributing to open source? Walter Bender just basically said that is has to be something that you love doing since it will be done in your spare time. Also that you cannot expect to just jump into a project and be able to accomplish everything all at once. You have to learn languages and processes and just take your time.

I also spoke with the 3D printer guys. They had a booth at the conference and they were displaying the printer. The printer was actually printing an Android phone holder while we were there. I spoke with one of the guys about how the printer works and it basically just feeds in plastic, melts it down, and spins it out to create an object. One of the guys even showed me his 3D scanner which will scan a picture of an object using an camera and then the data can be sent over to the printer to replicated the object! He joked about printing out his cell phone face plate in every color, but this is a really cool idea.

All in all, POSSCON was a fantastic experience. I did not win the Samsung Galaxy tablet at the give away, but it was all worth attending. I am so happy to have been able to attend.

Wednesday, March 23, 2011

Planning for POSSCON

I will be attending the second day of POSSCON tomorrow. This is the first time I've ever been so it will be really exciting to be at an open source conference.

The Breakout Sessions that stuck out to me and I plan to attend are:

10:00-10:45am
Chris Hinkley   Web Hosting - Knocking Out Application Layer & Open Source Threat

1:45-2:00pm
John Mertic   Developing Easily Deployable PHP Application

3:15-4:00pm
David Duggins   Starting and Running a Business on-the-cheap with Open Source

4:10-4:50pm
Nathan Marz   Become Efficient or Die
or
Steve Sokol   Open Source Communications with Asterisk

Next steps..

On Tuesday, March 22nd our goal was play the first version of the Fortune Hunter game so that we could get more familiar with the code and game in general. I especially needed to do this initial step because one of the tasks that I am working on is adding a victory screen from version one into version two.

At first, I was having trouble installing the Sugar OS (I needed to install the OS to download the activity). I tried running it in Virtual Box but the OS would never start. I tried the "Sugar-on-a-Stick" method but I could not figure out how to do this either! Thankfully, Jaime had already installed Sugar on her Virtual Machine so she was able to help me get it working on my machine.

Now the next step is to search for that victory screen in the game or find it in the code. We are not meeting as a group in class on Thursday because of POSSCON.

Wednesday, March 16, 2011

POSSCON 2011

I will be attending POSSCON on Thursday, March 24th.

On this day, there two speakers and six Breakout Sessions.

I think the first speaker, Jim Jagielski, would be someone interesting to speak with. He seems like he has had plenty of experience with open source software and he is involved with Red Hat. Sugar was initially developed by Red Hat and OLPC.

I think I would just enjoy listening to the second speaker, Gianugo Rabellino, who is going to talk about Open Source Communities at Microsoft. These two do not appear to be a likely duo, but who knows.

As for the Breakout Sessions, I'm torn between two speakers for the first one. Choice number one is Chris Hinkley who will be speaking about web security. I would really like to hear him speak about this because this idea is so important in today's businesses. My other choice was to attend Allen Tucker's session. He will be speaking about HFOSS projects and will be sharing many ongoing efforts of students. I thought this session would be interesting because we are currently working on FOSS projects.

I think it would also be interesting to speak with John Mertic in the third session. I'm not sure what type of PHP application he is describing, but I just learned about PHP last semester when we used it to connect a website to a MySql database. I would like to learn more about what you can do with PHP.

Monday, March 14, 2011

First Class After Spring Break

I'm not sure what we will do in class tomorrow. I'm assuming everyone will present their timelines. My group has already created a Google calendar for our timeline. We have mapped out our meetings and check-ins for tracking our progress. We all have chosen our tasks/bugs/enhancements for the Fortune Hunter project.

Here is a link to our timeline information.
Here is a link to our Google calendar.

Spring Break - Thursday - March 10th

On this day I was in Cozumel Mexico.

Spring Break - Tuesday - March 8th

Unfortunately, I did not have time to work on anything for class during Spring Break. On this day, I was on the Carnival Inspiration cruise ship on my way to Grand Cayman and I did not have my phone or laptop.

Thursday, March 3, 2011

Documentation

Even though everyone gripes about having to document code, including me, I also think it is very important. My experience working at Hawkes Learning Systems has proven this. I am currently working on converting a classic ASP page to an ASP.NET page and so I have to look at someone else's code and understand what it is doing so that I can convert it to a different language. It is always helpful to see comments because it helps me understand what a function is doing or what the expected output is. I also agree that comments need to be in the code even if you are writing it because who knows whether you will even understand what you did in 6 months.

Tuesday, March 1, 2011

Future Contributions

Our next step with the FOSS projects is to create a list of bugs or enhancements that we plan to work on for the rest of the semester. Our group has decided to stick with the ticket tracker for our project, Fortune Hunter, to find ideas for our main contributions. We have decided to look at the second bug and 3 or 4 requested tasks that include improving the GUI + art and adding a victory screen. For further details, please refer to our team wiki.

Wednesday, February 23, 2011

TOS Chapter 7 Exercises

7.2.2.
I agree that the diff command using the -u parameter is much easier to read because it provides the entire file so you can get a sense of where in the file the changes were made. The diff command without the -u parameter just prints the changes, < the original line and > the new line.

7.8
I'm not sure if I understood this exercise fully. We're supposed to create a text file called bar.txt and put some information in it. Then diff this file with /dev/null because this represents an empty file and pipe the results to the patch, foo.patch. I opened the patch and the file contained the information from the bar.txt file so I'm assuming that this was right.

 diff -u bar.txt /dev/null > foo.patch

7.9
The patch for the echo.c file seemed to be fairly straight forward. I just followed the steps to create the patch and edit the file. My patch file ended up looking like the example.
Then I wanted to check the code to make sure it would run after the changes. The example said to enter ./configure$ make. I was confused here because that was a strange command. Then I realized it was a typo and that they are two separate commands, ./configure and THEN make.
I typed in src/echo is this reversed and "reversed this is" was the output.

It was pretty cool learning about the diff command and how to create patches.

Monday, February 21, 2011

TOS Chapter 7

This chapter of the TOS book was about fixing code and creating patches. I understood did not know going into this chapter what patches were but now that I've read a little, I understand the concept.

My group from CSCI 362 used the diff command in our project to compare the oracle for our test to our results to see if the test succeeded or failed.

A patch in this chapter is described as like what SVN stores for the difference between the different versions of the files. It does not hold copy after copy after copy of the file in the repository but only the changes from one version to the next.

Comparing two files seemed easy enough but I don't think comparing directories and all the files inside is easy to do.

Alumni Symposium

I attended the Alumni Symposium on Feb 15th and I thought it was great. I was cool seeing two students who had just graduated from CofC speaking at this event. I enjoyed listening to the speaker's view on what we should know for when we graduate and how their experience was when they graduated.

Some things that I learned were:
its better to be truthful about what you know and only list languages that you are confident in working with on your resume than to list pages and pages of languages and concepts that no one could really have a full understand of.
its better to find something that you're passionate about because your passion will be the driving force for your work ethic.
its good to get involved with computer science oriented groups and associations. "Who you know" can play a large part into whether or not you get the job.

Some things to be looking into:
-web applications
-mobile computing/apps

Tuesday, February 15, 2011

Bug Fix Progress

So far our group is doing great!
We chose our first bug and initially found where we believed the error was in the code on Feb 10th. When we commented out the 'attack menu' line, the scan button no longer attacked the enemy. This was only half of the issue though; the scan button is supposed to display a depletion level and the weakness of the enemy (ex: weakness is fire).

Before our next group meeting on Feb 13th, Jaime found the code for displaying the scan damage information. After adding this to the scan button if statement, our bug was fixed! Therefore, in our Sunday meeting, we were able to meet with Jon (the main developer for the Fortune Hunter game) over Skype.

We let him know that we fixed the bug and he told us to use GIT to commit the new code back to the Sugar Labs repository, then update the bug on the bug tracker to fixed.

We thought we should commit the new code up to our repository on the 462 playground server and then check the code out again to make sure it runs properly. We were having some trouble with this so we will need to do some additional research so that we can use SVN to commit code to the Cirdles repository and then GIT to commit the code to the Sugar Labs repository.

We still have plenty of time to do this but we wanted to keep the ball rolling and start looking into our next contribution so that we can stay ahead of the game in case any bumps might occur in the future.

Thursday, February 10, 2011

Selecting our first bug to tackle

This week's assignment was to select a bug from our project's bug tracker. My group has chosen the "scan damage" bug.

The issue here is that in the game, Fortune Hunter, the user is supposed to be able to click the Scan button to see the weakness level of the enemy and the number of hit points left for the enemy. Currently, the Scan button attacks the enemy and displays "You attack for 10 damage", which could probably be worded a little better in itself.

As far as our approach to fixing this bug, we have found a definition for the scan function as well as the player_input variable which is used to display the messages (the incorrect message in our case). We plan to look further into those two possible causes for the bug.

We think we would be able to easily test our fix-attempts for the bug because we have the source code and we are able to run the game. Brittany has also setup a repository for us on the cirdles' server so we can make sure we can revert to a previous version of the source code if our changes break the game.

Monday, February 7, 2011

TOS Ch6 Exercises

Chapter 6 of the Teaching Open Source book is called "Debugging_the_Code". The first couple sections of this chapter are about find the bug tracker for your open source project. The author defines certain words that you need to know and that should be used in the bug tracker so that the bugs are clearly define and there is enough information for developers to find the bug, reproduce the error, and determine the level of importance of the bug.

Exercise 6.4
This exercise is to find the oldest open bug for the project that I have chosen, Fortune Hunter. There are currently only two open bugs for this project and the oldest one is actually the one we chose to help fix for our assignment due on Thursday.
The name of this bug is "scan damage". The reason why it is a bug is because the "scan" button in the game should only display the weakness of the enemy, not proceed to attack the enemy, which is what it currently does. The priority is marked as "major" and there is no severity listed. However, the author said that normally most projects will pick one of the two instead of having both.
I think the bug hasn't been fixed yet because there aren't that many people to fix bugs. I was looking through the bug tracker, opening all the bugs/tasks/enhancements and 98% of them have been reported by the main developer, Jonathan Meschino. I see only two other people listed as owners of some of the tasks/enhancements. Therefore, this is why I think this bugs has not been fixed. I don't think that Jonathan can't fix the bug, just that he hasn't had time to even look at this bug.

Exercise 6.5
This exercise is to create an account to gain access to the bug tracker. Jonathan has been very enthusiastic about us helping/contributing so he responds to all of our emails. He is so helpful and even told us how to set up our accounts. Brittany has been emailing back and forth with Jonathan about setting up our accounts for the bug tracker. He said he was still working on it yesterday, so we're just waiting to hear from him.

Exercise 6.6
The next exercise is to reproduce the bug from the bug tracker. I have been able to reproduce it before so this time I'll try to explain the steps for reproducing it.

1) Open the terminal
2) cd into "csci462/fortunehunter/MAFH2"
2) Type the command "python MafhActivity.py"
3) Press the Enter key to select "Adventure Play" (since there is no pointer in the game).
4) Press the Enter key to select "New Game"
5) Type in a name and press the Enter key
6) Arrow up key twice
7) Arrow right
8) Arrow up
9) Arrow left
10) Arrow up twice (you have reached an enemy and the options menu appears)
11) Arrow up once so that the 'scan' option is highlighted and press the Enter key.
"You attack for 10 damage" appears instead of a weakness level.

I'm pretty sure the enemies appear in different rooms each game so this probably wouldn't be the process to reproduce the error again but the error occurs every time you reach an enemy. Its hard to tell where you are going in the game because the map part of the screen is below my actual screen so I can't see it. Its hard to tell if I really did arrow up and left to get through the door or not.

I tried to look through the python files to see where is bug is occurring. I think I have found where it states what it should display but I'm not sure when/where is producing the wrong output. I haven't figured out how to debug in Netbeans yet, which I think it what I'll need to do to figure out the error.

Exercise 6.7
This exercise is to triage five bugs. Currently, there are only 2 bugs in our project's bug tracker. I think the one my group has chosen to focus on, scan damage, is reported fairly well. It has a reporter, priority level, component, milestone, and version. The description of the bug is given and understandable but it probably could have listed what the button displays as well as what it does. It could probably also list an example of what it should have displayed if it were working properly. There are not any steps on how to reproduce the error or where in the code this button was created/functioning. I think the "MAFH" component is just a folder that has many more files within it.

This information goes the same for the second bug reported about this activity. The only difference is that the priority level is "critical" instead of "major". The description is that the player is unable to move through the doors after they enter dungeon 3. The doors might be locked but there is no messages stating that the user needs a key. I wouldn't know where to begin with this bug because I don't even know what dungeon 3 is. I'm not sure if its referring to a room or a level or something else. I also do not know how the keys are used in the game to unlock doors. This bug could use a lot more information to clarify the whats wrong and where the bug is occurring.

Wednesday, February 2, 2011

TOS: Freeciv Exercise

For this assignment, we were supposed to go through the Freeciv example in chapter 5 of the TOS textbook. The purpose of this exercise was to learn about building source code. We've all done this before, but it was nice to follow the steps and get a better understanding for the process.

Using svn to get the code was simple. Installing the first half of the dependency packages seemed simple. Then I reached the Glib dependency. The author was able to get the package easily but no matter how I tried to get Glib on my machine, it couldn't find it. So I did what the author suggested and Googled it. I just typed 'how to install glib on ubuntu'. I found a forum where someone else was trying to glib and another user posted that they needed to type 'sudo apt-get install build-essential libglib2.0-dev', and this worked! Easy enough.

For the next three dependencies the author combined them all into one line, 'yum install atk pango gtk+'. (Which reminds me, since I am in Ubuntu, I don't use the commands he used. I had to use apt-get to install packages and dpkg -s to look to see if I had packages installed already instead of rpm -q). So, when I entered 'sudo apt-get install atk pango gtk+' the terminal responded with 'couldn't find package atk'. I figured I would turn to Google for information on how to install atk on Ubuntu but it wasn't easy to find information about this package. I turned to the install file that I opened at the beginning of this exercise. It says to get the package from ftp://ftp.gtk.org/pub/gtk/v2.6/atk-1.9.0.tar.bz2. So I downloaded the tar file, extracted it, ran ./configure, make, and make install. Everything went smoothly until make install. For some reason at this part I received a "cannot create regular file" error, and a "permission denied" error. I entered dpkg -s atk and it said that atk was not installed. I opened the Ubuntu Software Center and searched for Atk and this stated that libatk1.0-0, the ATK accessibility toolkit was installed. I wasn't sure if I need libatk1.0-0 or libatk1.0-dev. And this appeared to be the case for pango and gtk+.

I decided to just keep going to see if I get an error saying that they aren't installed, then I would come back and try again. But I didn't. Following along with the example, I received a different error than the author. My C++ compiler was fine; I received an error about libcurl development files. The example didn't get this error, so I was on my own to try to get this one. In the Ubuntu Software Center, there were two entries for 'development files and documentation for libcurl', GnuTLS and OpenSSL. I decided to just install the first one to see if it would be sufficient and it was. However, I still received yet another error. But this error was also received by the author in the exercise.

I didn't like how I couldn't find gtk+, gtk+2, or gtk2! So again I had to just try to Google information about it. Thank goodness for all of these forums, they can be so helpful. I found a forum where these two users were going back and forth trying to get gtk2 to install. They eventually got to this command 'sudo apt-get install gnome-core-devel build-essential libgtk2.0-dev libgtk2.0-doc dev-help'. I didn't need to enter build-essential because I had already done this, and I didn't type dev-help because the user showed that s/he received an error that dev-help could not be found. And it appeared that the command worked! This seemed to be more work than what the author had to go through but I also didn't get the next error that he received about gtk2-devel. Although, I did feel like he did when I saw 'Now type 'make' to compile freeciv'!!

The next step was to enter make. The author wanted to use the Unix trick to send output and error messages to files. The funny thing is, we just learned about this Unix command today in Operating Systems. At first I was afraid to do this, I might mess something up. But I decided to try it. I waited and hit enter after a while. I didn't see anything. Oh no... maybe I just have to wait a while longer.. he did say go get a cup of coffee and engage in some serious business somewhere else. Ah, it's done now.

Following this example made the build process seem kind of easy. Don't get me wrong, I thoroughly enjoyed being able to successfully build and compile the code! But I don't think it would have went through so smoothly if I was just following the install file. In the install file, it listed where to get the tar files. Once you download those, you have to run ./configure, make, and make install. However, by following the author, I just had to run sudo apt-get install for the packages. Overall though, I felt like it was a very useful experience. I believe I learned a lot and can understand the process a little better now.

Sunday, January 30, 2011

Download/Build/Install Code

This part of the project has been one emotional rollercoaster. Last year, in CSCI 362, I installed Ubuntu using VirtualBox. This semester I figured I would want to install it using Wubi so that I could boot into Ubuntu and be able to see everything in a full screen view instead of the small window that VirtualBox provided.

Everything appeared to be fine, Ubuntu was installed and I could choose to boot into Windows 7 or Ubuntu. However, going through the updates for Ubuntu, there was one for grub -- Ubuntu's boot manager. I wasn't sure what I was doing or what I was updating so I just continued and allowed the update. WELL, grub seemed to have overwritten Window's boot manager. When I restarted my computer after the updates, all I saw was "error: no such device <letters/numbers> grub rescue". I couldn't get into Windows or Ubuntu anymore. I couldn't do ANYTHING on my computer. I was really afraid that I had lost everything.

I was trying to research on forums on how to fix it and the solutions I saw were to boot from a Windows CD. Thankfully, Brandon and Jordan helped me fix this error. We booted from a Windows Recovery CD and fixed Window's boot manager so that I could see both OS again. Phew.

Next I needed to download the source code for the project we will be working on, Fortune Hunter. Jaime has already gone through this process and posted some steps for everyone else in the group on our group wiki. I was able to go through the first two commands but I'm having some trouble with the last one. Right now i'm getting an error:

Initialized empty Git repository in /home/staci/CSCI462/fortunehunter/.git/
ssh: Could not resolve hostname git: Name or service not known
fatal: The remote end hung up unexpectedly

So I'm going to try to research some to see if I can figure it out and if not, I'm going to talk with my group tomorrow to see if anyone else experienced this or know how to move forward. I will update on my progress soon.

Thursday, January 27, 2011

Learning About Subversion

I have never used subversion before. Well, while working at Hawkes Learning Systems I have had some experience using a version control system. Currently Jordan, Neil, and I are working on a new website for HLS and we have a shared environment. We would need to right click on the file and choose "Check out for editing" and then when we were done making changes, we would click "Check in".

However, I still felt like this was all new to me. After installing Subversion, I realized I needed a client to actually do anything. I googled "subversion client on windows" and saw some similar names that I had seen in my classmates' blogs. I chose TortoiseSVN. Wasn't sure what to expect to see after installing it or where to start. I saw the icon for the program in my Windows Start Menu so I just clicked on it to open it. Obviously that wasn't the right thing to do because a window came up explaining to me that TortoiseSVN is a shell extension and that it is integrated into the Windows explorer. Then it proceeded to tell me to "read the manual!"; it was in fact underlined. So, now I knew to go to a folder in Windows explorer and right-click in order to see TortoiseSVN commands.

I felt extremely accomplished when I was able to add a new folder and file to the 462playground because I thought I was going to have to go to class without an experience to talk about.

Monday, January 24, 2011

Researching Our Project

Our next task was to research a little further into the history, members, and goals of our project, Math4 Project. This seemed easy initially because I saw so much information in their Wiki. However, after having to read all of the information, I found my self lost in numerous opened tabs and windows. I was following link after link but somehow just circling myself around to the same information. I think I see the hierarchy now in that it all began with OLPC which used the Sugar OS. Sugar branched off into Sugar Labs, a new project to help develop the Sugar OS. From Sugar Labs came the Math4 Project.


The goal of Math4 is to provide activities that correspond to the learning objectives of a 4th grader's mathematics curriculum. The creators of Math4 have chosen the Massachusetts Curriculum Framework for Mathematics as their guideline for activities. The idea is to have these open-source activities run on the XO laptops to help underprivileged children learn math. The creators also stated that they hope to have a least 4 activities per objective because research shows that different children learn in different ways and having a variety of activities may provide a wider range of accomplishing this.


Currently there are two organizers for Math4, Greg DeKoenigsber and Karlie Robinson. DeKoenigsber is the programmer who has experience working with the Fedora project but is currently working with Sugar Labs. Robinson is a recruiter and liaison for Math4 since she is not a programmer.


As far as contributions to Math4, there are some activities that are currently in development that we could try to join or we could always help resolve bugs found in their Bug Tracker.
More details to come..

Thursday, January 20, 2011

IRC

I have never used an IRC before but it seemed pretty easy to join one. I just installed the Mozilla Firefox add-in, ChatZilla and was able to click on one of the links in the Sugar Labs wiki to connect me.

There wasn't much action in the IRC but I also saw that Sugar Labs schedules meeting times for contributors to join the IRC to chat so I will just have to try to join in when they have one of their meetings.

Our group created a group email address so that we could join Sugar Lab's mailing list. We all have forwarded emails from our group email to our personal email accounts so we can all stay updated.

The Cathedral and the Bazaar

I think reading The Cathedral and the Bazaar was great because Eric S. Raymond is speaking straight from experience. He wanted to test the theory of open-source projects to see what Linus Torvalds did right when he created Linux so he began his own project by contributing to Popclient which later became Fetchmail.

I think Raymond really sums-up open-source development with the following:
"While coding remains an essentially solitary activity, the really great hacks come from harnessing the attention and brainpower of entire communities. The developer who uses only his or her own brain in a closed project is going to fall behind the developer who knows how to create an open, evolutionary context in which feedback exploring the design space, code contributions, bug-spotting, and other improvements come from from hundreds (perhaps thousands) of people."

He also provides many great tips and lessons that are necessary for the open-source development process throughout his essay. Even though I find all of his thoughts to be very true, I still feel like there are two conflicting ideas. Great projects come from an open-source environment where many people effectively contribute and test the code and then the idea that too many people working on one project can just prolong the completion or success of the project. Raymond stated that "Brooks's Law is founded on the experience that bugs tend strongly to cluster at the interfaces between code written by different people".

Tuesday, January 18, 2011

The Beginnings

Today in class each group presented briefly on why they chose each of their top 3 FOSS projects. There was another group that had the same top three FOSS projects as our top three picks. Each group is supposed to be working on different projects but since Sugar Labs seems like so many people could contribute to the project without overlapping, Dr. Bowring is letting both of our groups work on it.

After we knew we were going to be working with Sugar Labs, we continued looking for how we could begin to contribute. We saw that they use an IRC and have a mailing list. Thats when we decided to create a group email account so that we all could be on the same page with this project.

We also found a more specific project to contribute to within Sugar Labs called the Math4 project. The Math4 project creates software that helps 4th graders learn math. We hope to be able to create an activity for this project.

Thursday, January 13, 2011

Choosing a FOSS project

Today our group decided on the top three FOSS projects that we would want to contribute to. We made our choices fairly quickly because we all agreed that Sugar Labs, One Laptop Per Child, or OpenOffice for Kids would all equally be a great project to work on. We were drawn to the idea of an educational project that could be beneficial to children. Hopefully we will be able to work on the Sugar Labs project because it seems like there are so many different directions we could go with this project. It looks like we will find out on Tuesday.

Wednesday, January 12, 2011

First Day of Class

Tuesday was the first day of CSCI 462. It was exciting to be back from the break and to get started with our new projects. Since everyone has pretty much had the same classes over the past year or two, it was easy to transition into new groups from CSCI 362. My group, 4's Company, is Brittany, Jamie, Ryan, and myself. We're all going to look over the list of projects and pick out one or two that we like, then when we meet again we'll figure out our top three choices.

After class I was able to set up my blog, join the class wiki, and successfully register for POSSCON. I hope to be able to attend POSSCON both days.