Category Archives: WSU CS

Reorganization of Class Efforts

This week we decided to apply what everyone has learned individually to the entire project and organize teams based on the existing knowledge of different groups. My group decided to investigates the test suite eutester and how to not only set it all up, but find out where to set it up on the server and how to apply it to the Eucalyptus software.

We each downloaded the eutester repository and built it locally and installed it. Then we began looking through the code to see if we could determine what was being tested. We understood the code pretty well, but we did not know how to use it properly since we could not figure out how to run Eucalyptus. We decided to set up a PiratePad for our group to keep track of our individual findings and apply them all to one group effort. We have a few ideas about how to get it all working because we learned how to download and run a Eucalyptus image, but we are not sure about where to go from there.

After logging in to the Neo machine and learning how the server is connected, I think it would be best to install Eucalyptus either on Morpheus, so that the Virtual Machines below it can all access it, or choose a Virtual Machine and work exclusively on that so we do not make any undesirable changes on the rest of the cluster. For testing purposes we probably want to use the latter, but eventually we may want to apply our system to the Morpheus node and let the VMs below handle parallel processing so that everything will be faster.

Basically, our goal for the week is to get Eucalyptus running on one of our nodes and then try to get the eutester code running as well. We want to see some output to make sure we are on the right track. Then we can document everything we’ve done so far and share it with the class/Eucalyptus community so that we can all get started on cranking out some test code. Next week, if all goes well and we have gotten the test code to run properly, we can start analyzing the output and look at some of the logged issues to start improving the existing code. These may be somewhat overly ambitious goals, but it is certainly worth a try to learn as much as we can and actually start contributing documentation and real code to this project.

From the blog trevorhodde by Trevor and used with permission of the author. All other rights reserved by the author.

Week Off From Class

Even though we did not have class last week due to the holiday, I still did a lot of reading up on the Eucalyptus software and the eutester code. I am very interested in looking into the testing package and hopefully contributing to it throughout the semester. I installed euca2ools and I think I learned how to run the software locally, though I am not sure how to use it yet.

Additionally, I got more comfortable with downloading the eutester repo and building/installing that code locally. I think that if I can learn to combine these tools and apply them to our server, we can begin testing and developing. I plan to spend this week and next week looking into how this works and hopefully I’ll be able to get some test code running by the end of the week.

From the blog trevorhodde by Trevor and used with permission of the author. All other rights reserved by the author.

Getting Euca2ools

While we wait for the Eucalyptus cluster to get up and running, I started to get the euca2ools package installed and working on my laptop. At first I was going to try and get the package installed on my Mac, it turns out that it is possible to get euca2ools on Mac, but you have to play around with the dependencies and build scripts from what I found; but after doing some research, playing around with the source, and getting frustrated, I decided to just create a virtual machine running Ubuntu (since it was the only OS image I had at the time). Once got Ubuntu working, It was pretty straight forward to get euca2ools installed. The documentation was pretty straight forward.

From the blog nathandoe » WSU CS by nathandoe and used with permission of the author. All other rights reserved by the author.

Getting Started

Now that we have the cluster setup and ready for Eucalyptus installs, I have been anxious to help out and get this part of the project closer to completion. After seeing that there is now some documentation available for Eucalyptus installs, I quickly took a look at that to see what we were up against. It was a very long and detailed document which could mean two things: they did a good job at documenting it and we shouldn’t have too many problems, or it is a very complicated process and we’re going to hit some speed bumps(most likely the latter).

As far as helping out with the installs goes, I was able to SSH into the cluster controller(morpheus) and all of the nodes in the cluster and do some work. The firewalls were disabled on all of these machines in order to give us less of a headache with configuring ports for each of them individually. Selinux was also disabled because it isn’t compatible with Eucalyptus.

Overall, we are definitely making some progress with the installation of Eucalyptus on our cluster, I’m pretty excited to see where this goes and how our class works together to manage this project. After talking to Dave, I think the Eucalyptus installation will be more of a headache than we originally thought. It shouldn’t be anything that our class can’t handle though!

 

From the blog clacroix12 by clacroix12 and used with permission of the author. All other rights reserved by the author.

All about git

Last week’s class was, for reasons that were made quite obvious, all about git. Just from the examples and small bit of experience we got with this tool in class, I can already tell that it will be extremely valuable for the remainder of the course, and my career as a computer scientist. Version control is a new topic to myself and going over the functionality of git made it fairly straight forward. It will take a little bit to get used to the commands to use git efficiently, but that goes without saying.

I actually think it would be a good idea to have CS students learn about git much earlier in their college careers and put it to practice in group coding assignments. This would provide students with a work environment for a project similar to the real world, long before they actually get there.

From the blog clacroix12 by clacroix12 and used with permission of the author. All other rights reserved by the author.

Git

Finally, we get to dive into some good stuff.  The Git assignment seemed pretty easy, but a lot of the commands were typos.  I guess that’s what you get for copy and pasting 😉.  I thought it was going to take me quite a bit of time to learn the ins and outs of Git, but I picked it up pretty quick.  Trevor Hodde also pointed me in the direction of GitK, which is a GUI representation of Git.  It gives a visual representation of the last time you pulled from the Git repo.  I would strongly suggest GitK to anyone who is knew to Git.  My group seems to be having some difficulty grasping Git, as two of them have yet to complete the Git assignment, but I am holding out hope.

My group also didn’t follow the details of the assignment, the purpose was to invoke a conflict when multiple people edit the same file.  Instead, they created a new file – no conflicts were made.  I finished the assignment for completeness, but I hope they understand the purpose of Git and version control.  The assignment actually had you set the user.name to “Your Name” and then color.ui, which is legal.  You can have the name variable contain multiple things.  Then, when you when to change it using git config –global user.name ‘James Forkey’ it threw an error saying multiple instances of the variable existed.  The fix I found was to edit the .gitconfig file itself and make it so there was only one name variable with the appropriate context.

I don’t really have much Git experience prior to this, but I know how it works and it’s critical role in the real world.  I can’t wait to really utilize Git to its fullest potential.  I am interested to see if there will be one person committing, or if everyone will be committing, potentially overwriting working code with either broken code, or less efficient code.  I guess this is something we should discuss in the near future.  Dave and Mike have done a great job with the infrastructure portion.  We are almost ready to get our hands dirty.  Exciting!

From the blog jforkey » wsu-cs by jforkey and used with permission of the author. All other rights reserved by the author.

CS 401 – Week 4

This week’s (actually last week now, 2/13) class was all about Git. Git is a wonderful version control system that I already use frequently for my own personal projects. Git is a distributed version control system rather than a centralized version control system like Subversion or CVS. This means that everyone that works in a code repository has a full copy of the source code history. There is often a central storage place for the “official” source code but in theory there is no central hub that is relied upon by others.

What did we learn how to do? Well, Karl Wurst made us some test repositories on the CS git server. This included a few example files that we would edit. My team “cloned” the repository and made the changes, and when some of us tried to “push” the changes back… CONFLICT! Prof. Wurst had designed the exercise in such a way that we would see a merge conflict occur. When a merge conflict happens, git alters the conflicted files by putting in both your version and the conflicts marked by special characters. I simply deleted what was unnecessary to resolve the conflict, and “committed” the changes to my repository. Now I was able to push successfully.

In System Administrator land, Mike Iudiciani and I have been working to put together a small cluster on which we will install the Eucalyptus software. We’ve run into a lot of annoying problems with OS installation and the networking configuration. We were first plagued with bad install media, and then we had trouble getting the machines online. Once we finally had good install CDs, I talked to IT about how to configure our machines network interfaces and voila, we were online. Now begins the process of installing the Eucalyptus software.

From the blog David Thompson » WSU CS by davexunit and used with permission of the author. All other rights reserved by the author.

What project to work on?

Today was focused on what project to work on.  The potential candidates were VLC, Firefox, Eucalyptus, Irrlicht, and Libre Office.  I joked, we should play the 5-3-1 game.  The 5-3-1 game is where you have a set of 5 options, the first person (The professor in this case) eliminates two options, and the second person (the students in the case) eliminate two more, leaving you with the winner.  We played something similar.  Each student ranked the 5 from least to most favorite, and then we tallied it up.  Eucalyptus won!  This project seems like a really good fit, since we will be able to work with the lead developers and gets everyone’s hands wet in cloud computing.

I also have very little experience with Python, so it will be interesting to pick up a new language along the way.  There is an infrastructure portion that will let the students who are less program-driven and more network-driven a chance to contribute equally.   There are a handful of students who aren’t intrigued by writing code.  Hopefully they are willing to get some hands-on experience early on with the infrastructure.

There was a lot of hard feelings when we came to the conclusion to work on Eucalyptus.  It’s important that they realize that this is the class project, and are willing to contribute to the best of their ability.  It doesn’t mean they can’t contribute to another open source project, but they’ll just have to do it on their own free time.  I have finally installed X-chat on my home desktop, so I can idle the appropriate channels.  This will help me keep up-to-date on the project and assist me with any questions I have once the project gets off the ground floor… which is hopefully sooner rather than later…

From the blog jforkey » wsu-cs by jforkey and used with permission of the author. All other rights reserved by the author.

IRC and Wikis

Week 2 was focused on learning IRC and Wikis. I have a lot of prior experience with IRC.  In the past, I used mIRC for windows, but since I have moved to using Linux as my main OS, it was a little different to get used too.  First, I had to research GUI IRC clients.  I first connected through the terminal, but the interface just isn’t clean enough for me.  I don’t want to have to type a command to see who is currently in the server.  I wanted something that I could see everything on one clean screen.  I finally stumbled on X-Chat.  This is very similar to mIRC for Windows.  It has all the information you need in a simple, easy-to-use, interface.

The Eucalyptus project sounds interesting, but I was also interested in another 3D graphics project too.  Unfortunately, I don’t have the time to work on both projects simultaneously.  The main developers have us working on the eutester portion of the project.  They said there is more documentation than actual code to write.  I wasn’t very thrilled with this idea, but I guess we will see how everything falls into place.

I wasn’t present for the class, and I never made the Wiki, but I have some experience in editing Wikis from a robotics class last semester.  I would really like to see this project get off the ground floor and some serious progress made, but my group hasn’t but the most cooperative at this point.  We’ll just have to wait and see how things develop over the next few weeks.

From the blog jforkey » wsu-cs by jforkey and used with permission of the author. All other rights reserved by the author.

Post for 2-13

In today’s class we explored the use of Git, which is a program used for version control.  Git allows users to clone existing source code from a repository, make changes to the code (whether adding new files or changing existing ones), and to move those changes back into the repository.  The program helps coordinate changes between users, so that a file changed by multiple users is not simply overwritten by the latest user to make a change.  We performed a simply exercise to help learn some of the commands available in Git.

We are also moving forward with our class project, which involves the use of eutester, a program designed to provide a framework to test a Eucalyptus or Amazon cloud.  I beleive our goal is to make the program more robust/ user friendly, without changing the core functions.  There are several tracked issues listed on the github page, so that might be a great place to start.

From the blog sflynn1976 » wsu-cs by sflynn1976 and used with permission of the author. All other rights reserved by the author.