Category Archives: Teaching Open Source

Learning Eutester

So since euca2ools did not have enough work for me to continue at it for the rest of the semester, I decided I ll simply jump on our main project the Eutester project. It has been a good day so far, most things went well I heard some people had problems with version mismatches so I downloaded and installed everything from source code their most up-to-date versions of “all the things” (boto/m2crypto/paramiko/eutester). Reading through the wiki that the eutester group of guys has set up on cs.worcester.edu, and following  some links to blogg posts from the developers, I managed to run some tests on our newly installed Eucalyptus 3 cloud which is still not able to keep a VM instance running.

>>> eucaops.get_emi()
Image:emi-238B37D9
>>> emi = eucaops.get_emi()
>>> reservations = eucaops.run_instance(emi)
Attempting to run instance-store image Image:emi-238B37D9 in group default
Beginning poll loop for the 1 found in Reservation:r-860340D3
Beginning poll loop for instance Instance:i-0696428B to go to running
Instance(i-0696428B) State(pending), sleeping 10s
Instance(i-0696428B) State(pending), sleeping 10s
Instance(i-0696428B) State(pending), sleeping 10s
Instance(i-0696428B) State(pending), sleeping 10s
Instance(i-0696428B) State(pending), sleeping 10s
Instance(i-0696428B) State(terminated) Poll(5) time elapsed (51)
[CRITICAL]: [TEST_REPORT] FAILED: Instance:i-0696428B did not enter the proper state and was left in terminated

 

After some looking around found out about the existence of nc.log file, and here is the portion of the fail runs:

[EUCAFATAL] Failed to connect to qemu:///system
[i-16F93EC9] could not contact the hypervisor, abandoning the instance
[i-16F93EC9] state change for instance: Staging -> Shutoff (Pending)
doDescribeResource: cores=1/2 mem=1604/1732 disk=11/13 iqn=iqn.1994-05.com.redhat:262aa1ddbe2
[i-16F93EC9] Pending pub=0.0.0.0 priv=0.0.0.0 mac=d0:0d:16:F9:3E:C9 vlan=-24 net=-1 plat=linux vols=
[EUCAFATAL ] Failed to connect to qemu:///system
[i-16F93EC9] cleaning up state for instance
[i-16F93EC9] stopping the network (vlan=-24)
[EUCAWARN  ] vnetStopNetworkManaged(): supplied vlan '-24' is out of range (0 - 4096), nothing to do
[i-16F93EC9] state change for instance: Shutoff -> Teardown (Teardown)
[EUCAFATAL ] Failed to connect to qemu:///system

After trying to work my way through an old bug report and fix on the above problem, I decided I should check if Hardware Virtualization, which turned out it was the right idea, because in this case it is turned off in the BIOS.

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

Our Eucalyptus Cluster

It is finally getting there but still with struggles, right now for example while I am writing this I wish I could instead be connecting to our own cluster and uploading images but port 8773 still seams to be closed when trying to look in from the outside, so I can’t connect to try and work on an instance. While earlier today Long was able to upload kernel images to the server it looks like there is a problem when trying to actually start up an instance on the server which most likely proves right our fears of hardware support for hypervisor being turned off on the BIOS. One might think “big deal” just turn it on; however these are stoke dell machines we are using the BIOS options are basic at best, so we will most-likely have to install things from scratch trying to install an other BIOS on the mother board and finally unlock the hardware support.

And finally we have our definite proof that kvm support is disabled on the BIOS, and here goes an other week without having a working cloud.

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

euca2ools install from source(with dependencies)

So some time during week 4 of the project I had some down time, and I decided to learn how euca2ools worked. Simple command-line tools yet still very powerful as well. However recently we run to some problems with the version mismatches; so here it goes: “how to install everything from source with the latest versions”:

Very easy to install from source:
NOTE: make sure to remove older versions of the software.

Download newest boto: https://github.com/downloads/boto/boto/boto-2.3.0.tar.gz

cd /download/location
tar zxvf boto-2.3.0n.tar.gz
cd boto-2.3.0
sudo python setup.py install

Download newest M2Crypto: http://pypi.python.org/packages/source/M/M2Crypto/M2Crypto-0.21.1.tar.gz

cd /download/location 
tar zxvf M2Crypto-0.21.1.tar.gz 
cd M2Crypto-0.21.1 
sudo python setup.py install

Download euca2ools from: https://github.com/eucalyptus/euca2ools

cd /download/location
cd euca2ools
sudo make

And that should be it.

From the blog WSU CS – Live and Code by dhimitraq and used with permission of the author. All other rights reserved by the author.

Working with Euca2ools

The past two weeks I have been working on documenting Euca2ools with Dhmitri and Chris. Euca2ools is a collection of Linux command-line tools for interacting with a Eucalyptus cloud. There is documentation on the Eucalyptus website on how to get Euca2ools installed and working but it can be a confusing process, especially if you aren’t extremely familiar with the Linux command line, like I am. Dhmitri did a great job of consolidating all of the steps required and posting them on our wiki. He also added a few steps of his own that may not be apparent to a Linux novice. I followed his steps and was able to get a working Euca2ools installation after a fair amount of trial and error.

Based on my experiences, I expanded on Dhmitri’s instructions and tried to add more explanation of what you are actually doing with Euca2ools and why. I also added some nice color formatting to try and spice up the page and make it easier to follow. Check it out here: http://cstest.worcester.edu/wiki/pmwiki.php?n=Main.Euca2ools

As of right now the page is not finished– for some reason I am blocked from making further edits to the page! I wonder if it is because I made too many edits in a short time and the page is locked. Hopefully this gets resolved soon and I can make the remaining planned changes to the page.

From the blog Code Your Enthusiasm » WSU CS by Jon and used with permission of the author. All other rights reserved by the author.

FOSS Field Trip Choosing the Right Project

Week three was dedicated to our search for an open source project we would like to work on. Since were doing the assignment “FOSS Field Trip 2” we would each bring 2 projects to discuss. It sounded simple enough, but the class was divided between two projects. Eucalyptus for which we had the support of mentors already in the program, and they had asked us to join; including a proposal with their ambitions of what they hoped to accomplish with our help. Irrlicht which was a project one of our class mates has worked on before, and has contact with many of the developers still, we were told that we would be building a test suite for their 3D engine. It came down to a vote where eucalyptus won due to the support that the two mentors showed, and their proposal which gave us a real plan for the future of the class.

From the blog WSU CS – Live and Code by dhimitraq and used with permission of the author. All other rights reserved by the author.

Week 3: Choosing a Project

Prior to week 3, everyone had a homework assignment to research and submit summaries on two open source projects that they would like to work on. The first I chose was Firefox. I liked Firefox as a potential class project because of the extensive documentation the development community provided, and the relative ease of “jumping in” and becoming a contributor. There was also a helpful list of suggested projects that were an appropriate size for an entire class to tackle. The second project I researched was FreeDroid, an open source roleplaying game similar to Diablo. The game is mostly finished at this point, but there was a lot of help needed for bug fixes and game engine optimizations. It would have been harder to get started with than Firefox, but I thought it would have been very cool to work on a video game!

During last week’s IRC exercise in #teachingopensource, we met a developer of an open source cloud platform called Eucalyptus who was lurking in the channel. It turns out that they had just finished developing version 3 of the platform, and were interested in our class helping them by testing it. Professor Wurst wanted us to adopt this as our course project, but decided to be democratic about it and put it up to a vote. We were all asked to rank 6 of the projects that were suggested by our combined research: Eucalyptus, Firefox, LibreOffice (office suite), irrlicht (3d game engine renderer), VLC (media player), and Sage (math software). I personally wanted to see Firefox, LibreOffice, Eucalyptus, or irrlicht as the winning project. Eucalyptus ended up winning, with irrlicht as a close second. After Professor Wurst determined that there was not enough support for a second irrlicht group, it was decided that as a class we would be working exclusively on Eucalyptus.

From the blog Code Your Enthusiasm » WSU CS by Jon and used with permission of the author. All other rights reserved by the author.

Week 2: IRC and Wikis

Most of our class during week 2 was spent on activities focused on teaching us how to use IRC and wikis–two important tools of the open source world. We started by installing IRC clients on our laptops and meeting up in the #teachingopensource channel on the Freenode server. I haven’t used IRC in over 10 years, and back then, I used mIRC. Since it had been so long, I figured a quick Google search was warranted to see what IRC clients were popular. The general Internet consensus was that XChat was among the best, but unfortunately it is shareware for Windows with only a 30 day free trial. As I was in a rush to get set up and connected, I stopped researching IRC clients at that point and installed KVIRC, a free client that was recommended by a classmate.

[Digression: KVIrc I found to be poorly laid out and had a terrible color scheme–yellow text on a white background for links… Really?? I stuck with KVIrc through the remainder of the class, but afterwards I decided to look for something better. I ended up finding XChat 2, a freeware version of XChat on Windows (because XChat, while being shareware, is still open source). So now I am using XChat 2 on Windows and XChat on my Linux VM and I am happy with both.]

After everyone had joined #teachingopensource, we learned some essential IRC commands, such as /nick and /join, as well as how to message someone directly. We also learned how to register our IRC nicks (I am registered as JonH_WSU in Freenode). Professor Wurst then explained that we would be using IRC to partner up and edit each others wiki profile pages on the Teaching Open Source wiki. There was only one rule: no talking. All communication has to be done through IRC only!

The channel soon became a whirlwind of activity as everyone started chatting at once. Before I learned how to send a message to someone directly, it was hard to keep up with the rapidly scrolling channel and pick out what was being said to me by my partner. However, learning that trick made it much easier to chat with one person out of the entire channel. As a side-note, it was very amusing to be among a classroom of 25 students, completely silent except for constant frantic typing. And every so often, a burst of laughter would erupt out, then back to silence. It was surreal at times.

Editing my partner’s wiki was easy. I had learned a great deal about wiki editing and its markup language from taking Robotics last semester, where we had to maintain individual course wiki pages. Using IRC chat, Facebook, and some general knowledge of my partner James, I had his profile wiki page up and running in no time. He did a pretty good job on my page, too.

From the blog Code Your Enthusiasm » WSU CS by Jon and used with permission of the author. All other rights reserved by the author.

Oh no! I’m defaulting to CLOSED!

My Spring 2012 course is well underway (into the second week), and going well. But, as I was putting up the latest assignments and resources for the class, it struck me: I’m defaulting to CLOSED!

Many of the materials that I’m using are coming from Heidi Ellis‘ course at Western New England University, and from other open, online sources. Yet, here I am, posting them in our Blackboard CMS, where only my students have access to them! And this really is a default action — it’s just what I’m used to doing, so I’ve done it without thinking.

This is a somewhat minor at this point, since Heidi has already made these materials available. But, I’m starting to develop new exercises and assignments that others may want to use. And, just as I borrowed some of the course organization from Heidi’s course, someone else might find my “remix” of her organization useful or inspiring.

So, I’m starting to think about where I want to post my course materials to make them open. (Licensing is not the issue, as I’ve been CC-licensing my course materials for years.) Unfortunately, our school is not good about giving faculty web space that they can easily edit for themselves (our default is Microsoft SharePoint.) But, we have our own departmental server, where we are hosting our departmental blog (acting as a planet), our Git and Subversion servers, and our Wiki. I have a vestigial web site there (that just redirects to my Sharepoint page), so I can probably press that into service as the home for the course.

It may take a bit more work, because it won’t be the default. I’ll have to move all the materials I’ve already posted and remember to post the new ones I’m writing to this more open location.

And, I’ll have to work on making open my new default.

From the blog On becoming an Eccentric Professor... » CS@Worcester by Karl R. Wurst and used with permission of the author. All other rights reserved by the author.

CS 401 Introduction

I am a senior in the computer science major here at WSU and I am very excited to be taking CS 401. I know that professional software development requires collaborating as a team, so I am glad to be taking a class that will expose me to that environment. In addition to becoming familiar with a team environment, I hope to accomplish the following in this course:

  • Put my skills to the test: I feel that I have a lot of programming knowledge at this point but I have never worked on anything but “toy” programs. To actually be able to contribute to a real project would be very rewarding to me.
  • Expand my resume: I sincerely hope we are able to make a meaningful contribution to some open-source project. Being able to claim that on a resume couldn’t hurt when looking I’m looking for my first programming job.
  • Learn more about open source: As a CS major, I embarrassingly know very little about the open-source community. I hope that this class will open my eyes a bit to the open source world and possibly get me active in the community.
  • Blogging: I rarely look at blogs. I know very little about them, but I’m trying to change that. Setting up this blog and learning about tags and feeds was an adventure for me. I hope that as I blog for this class I will become more interesting in blogging in general. I know that blogs can be a huge source of news and information now, especially in the tech industry.

I am in group 3 and do not know my teammates very well yet. I know that will change soon. I hope we all have a great semester!

From the blog Code Your Enthusiasm » WSU CS by Jon and used with permission of the author. All other rights reserved by the author.

CS Students and Faculty Attend Talk by Tom “Spot” Callaway from Fedora

CS Students James Forkey, Dillon Murphy, and Dave Thompson, and Professor Karl R. Wurst attended a talk by Fedora Engineering Manager Tom “Spot” Callaway, at Western New England University on Thursday, 1 December 2011. Spot talked about “This is why you fail and how to avoid it” using his Fail Meter, illustrating it with many amusing (and simultaneously frightening) examples from Open Source projects he has interacted with. The talk was hosted by Dr. Heidi Ellis as part of her Software Engineering class. Heidi has blogged about the talk here.