Teaching Open Source Planet
Teaching Open Source Planet is a Planet, a collection of personal blogs by Teaching Open Source community members working to bring the open source way into academia. We write about our inspirations and experiences in learning, teaching, and collaborating within free and open communities. In the spirit of freedom, we share and criticize in order to collectively improve. We hope you enjoy reading our thoughts; if you’re fascinated by what you see, consider adding your voice to the conversation.
I have been using Git for years now and I am still a novice user. Actually, if you are an individual developer or work in a really small team, you don’t really need to go beyond using the basic stuff like cloning a repo, committing code, branching and pushing back to the origin repo. And that’s exactly what happened with me. Working alone most of the times and working in my own repos. I never felt the need to explore advanced usage.
Last week, we didn’t have internet at home for like four days. So, I thought I’ll read a book. I downloaded ProGit : The Free Git Book and started reading. It’s an awesomely written book. I learned a lot of new things about Git. A few more concept about using branches efficiently. If you are a Git beginner or looking forward to getting started with Git and you don’t like reading too much, I’ll suggest that you read at least first three chapters thoroughly. That along with a free GitHub account should be enough to get you going if you are not going to be a heavy Git user soon.
Fedora Tutorials and Videocache by Kulbir Saini.


Ottawa,
ON Canada
45° 25' 17.508" N, 75° 41' 49.8948" W
pfSense is a BSD licensed customized distribution of FreeBSD tailored for use as a firewall and router.
Speaker:
Chris Buechler
Scott Ullrich
read more
Early in the semester one of the engineers from Eucalyptus paid a visit to one of our classes. She started off by saying, “The Eucalyptus team is very excited to have you guys coming on board. Before you guys came along, the engineers were pretty bored and the project was dying.” This isn’t the way I would expect someone to present the project they’re suppose to be excited about and an employer that helps pay their bills. I guess that’s just my take on the matter.
We found out our contribution to the project would be documentation. I wasn’t excited about this aspect either. I didn’t spend the last four years of my academic life to write up a few tutorials and explain what someone else’s code is doing. The first step was setting up a cloud infrastructure. I would expect this process to take a few days at best, it took the entire semester. Some of it was due to unsupported hardware or hardware failure. The unsupported hardware portion could have, and should have, been prevented to begin with. No one can predict hardware failure. It still shouldn’t have taken that long to get the core structure built.
There was also a lack of communication and trust amongst the class. SSH passwords were kept secret to a select few. I was told they were keeping access to a select few. I don’t care if it was a power struggle or an effort to keep incompetent students off the cloud and breaking it. I can’t say that I pressed hard for access, at this point I had really stopped caring about the project. I found it comical that I had root access to machines costing, literally, hundreds of thousands of dollars at work, but I couldn’t get root access to a cloud built on a few ancient machines for a class.
In the end, I decided to focus on work. It worked with a lot of concepts the course was built to outline. It was a REAL world example, I learned how to use git and sat through numerous presentations about development releases and tentative launch dates for software. The project I work with has over 40 engineers across the globe, including Ireland and China. I learned how to work on a project on a global scale. It’s even more difficult than the Eucalyptus project. It’s difficult to get an answer to a question when your working hours are essentially mirror images.
My current patch for work needs to be released simultaneously with a scripts patch, or the scripts will be broken. The problem is, the scripts team is based in Shanghai. I have to notify them when the patch is ready, and note that it is a dependent patch. If either patch is committed early, the code is broken and the entire project goes into panic mode. If I fail to convey all of the necessary changes required in the scripts patch, the code will break. Communication is critical on a successful large-scale project.
I have learned far more from my position at EMC than I have throughout the class. I wish I could have stayed interested and motivated, but there were far too many complications than necessary and it seemed more like a dead end than anything else. Thankfully, I learned all the necessary course objectives from working at EMC through the semester.
Most of the tools that are best suited for dealing with Big Data are open source. This provides the research community with a huge opportunity, because no investment in software licenses is needed. You just download the software and ‘get on with it’. The challenge, as became clear at the Eduserv symposium last week, is to find people with the right skills to apply these tools.
Without a doubt, Apache Hadoop that is the most important open source project in this space. It is amazing to see how fast the Apache Hadoop ecosystem is growing and how everyone is trying to jump on the bandwagon. Start-up companies like Cloudera and Hortonworks have no trouble finding venture capitalists willing to invest large sums of money. Similarly, nearly every major tech company is offering it, while other internet companies that deal with big data are using it (secretly or not). At the Eduserv symposium, EMC CTO Rob Anderson focused on the implication big data has for storage, and showed their Hadoop-based offering. Because the Apache licence allows you to use any Apache project in a closed-source implementation, EMC can sell their Hadoop distribution without needing to make that product open source.
There are big implications of the big data trend for the research community. Guy Coates of the Sanger institute showed how the amount of data they are managing is increasing rapidly. They are expecting this increase to continue, especially since the costs of human DNA sequencing is dropping dramatically. They expect it to drop to $1000 for a full scan within two years (excluding storage!). His main challenge was not the actual storage of the data, but the management of the data as researchers were analysing it. Sanger is using the open source tool iRODS, a community-driven project that originates from the Data Intensive Cyber Environments (DICE) research group in the DICE Center at the University of North Carolina.
Another open source project that featured prominently at the Eduserv symposium was Apache CouchDB. Simon Metson of Bristol University explained how NoSQL is the enabler of big data and new database systems that do not use the traditional relational database approach are better suited for these tasks. Open source software projects like CouchDB, but also Apache Cassandra, are leading in this space. Simon highlighted that the community-aspect of big data is very important. By engaging with the community that uses these tools to solve their big data problem, you can solve the hard problems. Something you may encountered once in a thousand times, may have been solved by someone else in the community who runs into it more often, and vice versa.
The closing keynote was given by Anthony D Joseph, professor at the AMP Lab at UC Berkeley. He mentioned how Facebook started the Open Compute project to share best practice in cluster design for big data centers. It is an interesting example of the old economic adage that you should commodotise your complement. Berkeley is collaborating on the Apache Incubator project Mesos, which is a scalable cluster manager that can dynamically share resources between multiple computing frameworks. They support frameworks like Hadoop, Spark and MPI.
So the technology is there or is well underway in being developed. And being open source, anyone can download and start using it. Technology is not the problem of big data, but the challenges lie in the cultural and organisational change that is needed to capitalise on big data. People within and across the organisations need to be willing to share their data and think of new, intelligent and creative ways of making use of this data. Two well-known examples that were mentioned were the Google flutrends, a website that predicts flu epidemics based on what people search for, and a Twitter application that was created to detect and report on earthquakes using people’s tweets.
A final challenge that was recognised widely at the conference was the shortage of skilled people in the big data space. This is true both for the data scientists that were needed to analyse the data, and for people that can help curate the data longer term, which is a completely different challenge for many HE institutions. In the spirit of open source though, there are many resources freely available online for people who want to get started, such as on the website bigdatauniversity.com. And of course, if you want to get started with one of the open source projects mentioned, there are many ways to get involved.
(Source: http://www.adlnet.gov/scorm-unity-integration)
I was checking updates to the SCORM specification when I come across this announcement:
"The Unity-SCORM Integration Toolkit is the result of an ADL Technical Team research and development project which focused on using games and simulations as part of an e-learning curriculum. After an assessment of the most common questions submitted to the ADL Help Desk and after gathering additional requirements from 3rd party outreach efforts, we began a project to make creating SCORM-Conformant games and simulations efficient and cost effective. Unity was selected as the game development tool for our prototype due to its ability to create web-based content.
The Unity-SCORM Integration Toolkit allows Unity developers to use simple methods, provided by a “ScormManager” object, to set the SCORM Run-Time Data Model elements without having prior experience with SCORM. For example, developers are able to make simple calls like ScormManager.GetLearnerName() to get the user’s name from the LMS. In addition, the ScormManager can be used to set values including scores, objectives and interactions. For advanced users, the entire SCORM data model is available for use.
The Unity-SCORM Integration Toolkit also contains a packaging tool that can be used to create a simple SCORM Content Aggregation Package. The ScormManager and packaging tool support both SCORM Version 1.2 and SCORM 2004 4th Edition. With minor tweaks to the resulting package, SCORM 2004 2nd and 3rd Editions can also be supported.
The Unity-SCORM Integration Toolkit is a demonstration of how content developers can use a game engine to create SCORM-Conformant content. The source code is provided with the download and can be used by a 3rd party in their content and systems. The Unity-SCORM Integration Toolkit installer is available to download
here. The Unity-SCORM Integration Toolkit source is available to download
here. The
Quick Start Guide also accompanies the source download."
=============================================================
So, what does this all mean to us?
With this toolkit, I believe it is now possible to do the following things:
We can incorporate SCORM data model elements into games and simulations. Examples are:
i. ScormManager.GetLearnerName() to get the user’s name from the LMS
ii. ScormManager can be used to set values including scores, objectives and interactions
Advanced users can even use all the SCORM data model elements in the games and simulations.
=============================================================
Here’s an annoying little DOM’ism that stumped me last week (don’t worry, there’s a happy ending if you keep reading). In Popcorn Maker’s UI I wanted to fix a few places where we have textboxes that contain data from json manifests. When you click on such a pre-populated textbox, it’s nice if the contents of the textbox are selected. And when you click again, it’s nice if the selection is removed and you instead position the cursor.
These are nice enough that one would sort of expect them to just work, and as such, that the DOM would actually allow you to do it. Well, it’s easy to do on Firefox: just add a focus event to your input element, and call element.select(). Done.
Now test in WebKit and it doesn’t work. Sniff around the web a bit and you’ll uncover a nasty 4-digit WebKit bug from 2008 that causes mouseup to undo your selection.
“That’s fine,” you say to yourself, “just stop the mouseup event from doing its thing and clearing the selection.” This is what everything on the web I could find said to do. The trouble is, I want to not only select the contents of the textbox on first click, but I want the opposite on subsequent clicks.
In the end, cross-browser compatible code means unnecessarily elaborate code, but here we are. I’ll leave this for the next person who hits my same edge case–aka the default way a textbox should function. Here’s a little jsfiddle demo of it running, and here’s the code:
var selectaBox = (function(){
function __highlight( e ){
var input = e.target;
input.select();
input.removeEventListener( "focus", __highlight, false );
}
function __ignoreMouseUp( e ){
e.preventDefault();
var input = e.target;
input.removeEventListener( "mouseup", __ignoreMouseUp, false );
}
function __addListeners( input ){
input.addEventListener( "focus", __highlight, false );
input.addEventListener( "mouseup", __ignoreMouseUp, false );
}
return function(){
var input = document.createElement( "input" );
input.type = "text";
input.addEventListener(
"blur",
function( e ){
__addListeners( e.target );
},
false
);
__addListeners( input );
return input;
};
}());
var s = selectaBox();
s.value = "This is some text."
document.body.appendChild(s);
The semester is over and this is basically my last blog post for now, but im actually thinking of keeping this blog and beginning to use it for things that i find interesting.
Basically the euca2ools group presentation seemed to have gone pretty well and everything worked while giving it(which is awesome). Considering the amount of problems that we have been running into coming up to this day we were very excited that everything worked.
John in our group was actually able to upload a CentOS image and get it running on our cloud the previous day of the presentations, and then on the day of the presentations we were able to get a third image up and running with no Walrus errors and SSH into that instance. Dhimitri and I were kind of surprised to say the least cause the day before Walrus was giving us the 403 Forbidden error, so it seemed to have fixed itself….
Walrus may have just had a hiccup and that restarting it that day may have solved the issue we were having. Dhimitri also managed to get up a new node running which you could see with the euca-describe-availabilityzones command. All in all, it seemed that the Euca2ools wiki worked out for the best and seemed that a lot of people were able to follow a lot of the steps to use for themselves. This was a really fun and interesting project to work on despite a lot of the issues that kept happening on our way but i think it was for the best cause many of us gained a lot of experience and a lot of understanding of the whole Cloud computing and what it is.
One of the issues that we had while setting up our cloud was incompatible BIOS revision on the machines we were using. They were out of date and did not allow the use of virtualization, so we had to update the BIOS a certain way with the DELL Executable that was the only way to update the BIOS was using an EXE.
The first step to creating the bootable disk was downloading FreeDOS so that we can boot up into FreeDOS and run the executable.
In order to do this you do: wget http://www.fdos.org/bootdisks/autogen/FDOEM.144.gz
Then, gunzip FDOEM.144.gz to unzip the file.
The second step is to copy the BIOS flash utility and the BIOS image that needs to be used to upgrade, and mount it to a floppy disk image. Here is what you do in order to complete this step:
modprobe vfat
modprobe loop
mkdir /tmp/floppy
mount -t vfat -o loop FDOEM.144 /tmp/floppy
After mounting the Floppy you want to copy the EXE. that you downloaded for the BIOS:
cp DELLBIOSVERSION.exe /tmp/floppy (not actual name of the bios)
then unmount the floppy: umount /tmp/floppy
Step 3 is to burn the bootable CD which emulates a floppy device.
mkisofs -o bootcd.iso -b FDOEM.144 FDOEM.144
cdrecord -v bootcd.iso
After you have created this bootable disk, all you have to do is boot the CD in the machine and basically type in the EXE. and it will autoflash to the new bios.
Early this morning, Richard Good referred me to the site http://www.sipml5.org/ to check the amazing project on it. He remembered it was very close to my doctoral work. I like the work (a SIP stack in HTML5 and JavaScript), but that was not the first time I got to know about the idea. I visited the below sites some weeks ago and referred Richard to them, just as he did.
http://sip-on-the-web.aliax.net/
http://code.google.com/p/sip-js/
http://phono.com/webrtc
It’s nice to see various implementations of SIP on the Web; .I also wrote about the interworking of SIP and WebRTC sometime ago. Below is an excerpt from the concluding part in my doctoral thesis.
In summary, while session handoff has been widely explored, content sharing and the proxy services are relatively new services in the Web-browsing context. These services could encourage collaboration and community interaction between the Internet users. In addition, having shown that the integration of a SIP stack into a Web browser makes no significant change on the memory footprint or quality of experience, the inclusion of SIP in commercial Web browsers is not only feasible, but also will offer new services to end users. SIP is an extensible protocol that is not only used in multimedia services provisioning, but also in control and automation, such as smart homes. Should Free Open Source Software (FOSS) and Open Standards be widely adopted, many more innovative solutions, like this project, would be introduced into the Web browsing experience and found in this Web 2.0 era as services are rapidly converging.
SIP is good at what it does, and the future is the web
.
When I was in New York at the end of April, Mirabai and I sat down and hacked through a lot of pedagogy thinking for plover, an open source steno software project. We made a concept map to see how various skills were connected and a list of what, exactly, made certain skills difficult to learn.
I’m posting this with curiosity about two things:
- How understandable are these notes to someone who wasn’t part of the conversation (in the basement of a little tea shop with fantastic panini)?
- From what you can see here, would any of this sort of thinking/work/process be useful to other FOSS (or open content/hardware/Free Culture) projects with an educational component — whether that’s new developer outreach, “students” as a user group for the software product, a software product that’s specialized and/or difficult to learn, or anything else?

This is a concept map showing the connections between the topics (the things in boxes – skills and concepts) that make up the ability to do steno at a basic level. You can see strong (double-lines) and weak (single-lines) connections between topics. Clockwise from top, they are…
- EC – error correction (delete, backspace, arrow keys, etc)
- CUST – customizing your own dictionary
- CORE – using a basic “core” dictionary (the one that comes pre-loaded with Plover)
- EXCEPT – dealing with exceptions to phonetic rules
- PHON->CHORDS – mapping phonemes (auditory) to chords (on the keyboard)
- READ – reading steno shorthand (being able to look at a brief for a word, immediately chord that word on your own keyboard, and have a good guess as to what that word might be in English)
- THERE ARE PHONEMES! – breaking down words into phonemes instead of letters
- KeyBoarD LAYOUT – what keys on the qwerty (sidewinder) keyboard map to what letters on the steno keyboard; mostly building muscle memory.
- ALPHabet – the ability to type individual letters on the steno keyboard (vital at the start when you don’t know the briefs for many words).
The numbers by each box (for instance, 3/3/6 (9) right above the “EC” block) are totals for strong links, weak links, total links, and a weighted sum (2*strong + 1*weak) for each concept. This is to help us see which concepts are the most centrally connected, which is sometimes surprising – for instance, I didn’t expect “READing stenographic shorthand” to be almost half as “important” (by number of connections) than being able to use the delete key! (in “Error Correction”)
The orange highlights were things we tagged as “enduring understanding” — if you study steno and only remember three things, the most important ones to remember are…
- Dictionary construction – the connection between EXCEPT(ions to the phonetic system) and CUST(omizing your own dictionary)
- Transliteration – the connection between THERE ARE PHONEMES! and mapping PHONemes-to-CHORDS.
- KeyBoarD LAYOUT – skill as described above.

This is a description of “why these concepts are difficult to learn” — it uses the same topics as listed above, which you can probably figure out by reading the descriptions. For instance, the concept of phonemes is really easy to learn (I think most of us “get it” when we first figure out what stenography is). In contract, error correction is inert (you can learn the “delete” key, and then totally forget what the chord is when you’re in the middle of transcribing something) and tacit (one of those things you’re just expected to “pick up” somehow — it’s so natural to advanced practitioners that it’s easy to forget that beginners need to be taught about it!).Sometimes, knowing why something is difficult to learn can help you figure out how to practice it. For instance, learning the alphabet is hard because it relies on skill — the muscle memory of learning the letters — so drilling over and over is probably a good way to learn that. However, the same kind of drilling may not be the best way to learn how to read steno syntax.So… readers, what did you get out of this, and is there something we can do to help you understand this more, or apply it to your own projects?
Gary Stager isn’t the first person to point out that we’ve been dumbing down computing education for the last 30 years—that we’ve gone from teaching kids how to program to teaching them how to use Excel to teaching them how to use iPads. (My five-year-old didn’t need to be taught…) What people mostly aren’t asking is why this has happened, but I have a theory. I think teachers are teaching the computing that they use themselves, because that’s the most economical thing for them to do: they use Word to make hand-outs, and Excel to manage grades, so they’ve already invested in proficiency, so they can put together lessons in less time. They don’t use Logo (or Scratch, or Python, or whatever) in their own work, so teaching it requires more effort.
Which makes me wonder how successful current “programming for everyone” efforts are going to be. I doubt most teachers are going to want to hack their classes’ web sites (and even if they do, their schools may not allow them to). I’m even more skeptical of the idea that teachers will program in their day-to-day work any time soon.
(“But wait,” you say. “Most Latin teachers don’t speak Latin at home. And there aren’t a lot of physics teachers building lasers in their dining rooms.” True, but those are recognized, accepted specialties within teaching right now: they aren’t trying to gain ground, just hold onto what they have.)
Now let’s shift focus a bit. My 14-year-old nephew is on the web, creating content, almost daily, but “on the web” isn’t quite accurate. He’s actually on Facebook: along with GMail, YouTube, and Minecraft, that’s pretty much what the web consists of for him (at least that he’ll admit to his uncle). We already know that if we want to teach kids, going to where they are works better than bringing them into an artificial environment and giving them artificial tasks. I therefore think that if we want the 95% who aren’t already keen on hacking to care enough to do it, we need to teach them how to hack the places they already are. Having everyone build their own Facebook plugin would (a) take far too long to pay off and (b) be unsafe (imagine you’re Facebook’s director of security and someone tells you that 100,000 high school kids are about to build plugins for your site). But what if we made a generic plugin that allowed people to build and run WebScratch programs inside Facebook, with access to (some) FB content? I know, I know, there’s no such thing (yet) as WebScratch, but you get the idea: if we could create, test, and deploy this that makes it easy for them to build that, what would “this” and “that” be?
(“But wait”, you say, “Facebook is a closed pseudo-monopoly. We shouldn’t be supporting them!” I agree, but (a) going into a slum in Rio de Janeiro to teach the kids who live there doesn’t mean you support the idea of slums, and (b) they won’t understand why “closed” is bad until they understand more about the web in general, and open in particular, and they won’t learn either unless they care enough to learn in the first place.)
So, question #1 is, “What can we teach about computing and/or the web that will appeal to teenagers, but will also be useful to classroom teachers?” And question #2 is, “What plugins can we build that will allow learners to hack where they are?”
Summer has already started and we (a small group of current and ex-IIITians in Hyderabad) are planning to have some fun digging into Ruby on Rails and related technologies. If you are also interested in utilizing your summer in a productive and fun way, you can join us and share your knowledge while learning from the rest of the members at the same time.
Assuming that all of us know at least one programming language (C/C++/Python), below is the list of things we are planning to learn.
- Ruby
- If you already know a programming language, it’ll not be difficult for you to pick up Ruby.
- In case you happen to know Python, you’ll feel at home.
- Spend a good half an hour on Ruby In Twenty Minutes and you’ll know how simple and beautiful Ruby is.
- Once you are done with Ruby quick-starter, you can try ruby in your browser and have some fun.
- Please go through Ruby Style Guide to see how to write beautiful and easy to understand Ruby code.
- Rails
- If you have worked with any MVC framework in past, you’ll pickup rails quite easily.
- If you have worked with Web2py, then go through this Rails vc Web2py presentation which tries to show similarities among both frameworks.
- RailsGuides is one of best and complete documentation for getting started with Ruby on Rails. It may look like a lot of content to beginners. If that’s the case with you, you can skip the guides in Digging Deeper section.
- RailsCasts is like a sea of quality Ruby on Rails screencasts. Watch a few on topics where you may have doubts.
- jQuery
- We’ll be learning jQuery assuming that all of us are already familiar with JavaScript.
- We’ll learn only basics initially and explore more as we start using it in a Rails project.
- CoffeeScript
- CoffeeScript is a language that compiles to JavaScript but it’s way more beautiful to look at and easier to read and understand.
- We’ll not write JavaScript code for our Rails app. Instead, we’ll be writing CoffeeScript!
- SCSS
- SCSS is an extension of CSS3. It’s fun to write stylesheets using SCSS as it brings in additional features like variables, nested rules etc.
- SCSS will ultimately be compiled to CSS.
- Again, there is not much to do here. Half an hour to familiarize yourself with the syntax and you are ready to roll.
- Twitter Bootstrap
- Bootstrap is a super simple and crazy awesome CSS and JavaScript toolkit developed by twitter.
- We’ll be using bootstrap to power our Rails apps which we’ll build at a later stage.
- Nothing much to learn here. It’s more about getting familiar with commonly used classes.
- Git and GitHub
- We’ll be using Git for tracking code while building our apps.
- We’ll learn about basic Git functions like cloning a repository, committing code, pushing code to a remote repository, working in different branches etc.
- Go through Git Basics and we can learn more as we start using it full time.
- We’ll be using GitHub to host all our code. If you don’t have an account already, get one.
We’ll learn these technologies while working regularly at our work places. Once in a while, we’ll meet and share our experiences and knowledge. The plan is to spend one or two weeks to go through basic stuff in all the topics. After that we can start a dummy rails project and learn more as we go.
If you are not in Hyderabad and still want to join, just start exploring and we can connect online! Happy Hacking!!!
Fedora Tutorials and Videocache by Kulbir Saini.


On Tuesday, the Natural Sciences and Engineering Research Council (NSERC) announced a number of grant awards at the Polytechnics 2012 conference, including the new Industrial Research Chairs for Colleges (IRCC) grants. I am honoured to be selected as the chairholder for the NSERC Industrial Research Chair for Colleges in Open Source Technology for Emerging Platforms in the Centre for Development of Open Technology at Seneca College.
This five-year renewable applied research grant enables me to continue and expand upon the work that I have been doing, along with a talented team of research assistants, with Fedora ARM and related projects. My goal is to bring the wealth of open source software currently available for x86 PCs and servers to emerging ARM based general-purpose computers. Although ARM architecture chips are the most popular CPUs made (more ARM chips shipped last year than there are people on this planet), most of these went into dedicated devices, and ARM chips are just starting to appear in general purpose computers. In order to make the transition to general-purpose ARM systems viable, industry-standard software stacks are needed. Fedora is a perfect fit for this purpose, because it encompasses both a large collection of cutting-edge open source software and a vibrant community, and it feeds many downstream distributions and projects.
My work in this new role will start with an expansion of existing work, including operating the Fedora ARM Koji buildsystem and improving the Raspberry Pi Fedora Remix, but I will additionally be focusing on Fedora on ARM server-class systems. In future phases, this will encompass working with the Fedora ARM project to promote ARM to primary architecture status, extending existing open source system management (and possibly virtualization/cloud management) frameworks to manage high-density ARM clusters, doing field trials of ARM-based data centre solutions, and bringing Fedora to the next generation of ARM technology.
Although the majority of my activity will shift from teaching to applied research, I will continue to teach the SBR600 Software Build and Release course in order to bring the research experience back into the classroom. I'll also continue to participate in the TeachingOpenSource.org initiative. As an Industrial Research Chair, I will also have a bit more of a public-facing role, representing CDOT and advocating the use of energy-efficient systems to local SMEs.
Many thanks to Red Hat for partnering with Seneca on this initiative, and I look forward to (continuing to!) work closely with Red Hat's incredible technical staff. I also thank the many companies and organization who wrote letters of support for the grant application, and look forward to collaboration and possible future partnerships with those organizations. And I particularly want to thank Seneca for its support of applied research, my colleagues at CDOT for their encouragement and for creating such an awesome environment to do applied research, and for the team that wrote the grant application under intense pressure and tight deadlines last November.
Watch this space for updates!
Crafting a Useful Message in 140 Characters or Less
- Be Clear
- Be Direct
- Be Selective
- Be Informative
- Be Timely
- Be Consistent
- Be Tactful
Be Clear
Use complete phrasing as much as possible
read more
This guest post has been contributed by Ross Gardler of OpenDirective. Ross is Vice President of Community Development at The Apache Software Foundation and a mentor at the Outercurve Foundation. Ross has been active in open development of open source software for over ten years.
OSS Watch has been participating in the development of Apache Rave, a ‘next-generation portal engine, supporting (Open)Social Gadgets as well as WC3 widgets’. As Sander observes in this blog, the Rave ecosystem is made up of a ‘diverse range of collaborators’ from both the academic and commercial sectors. These partners are sharing resources in order to build a critical piece of software at lower cost as well as to increase innovation around that product.
A few days ago I posted an evaluation of the Apache OpenOffice project’s journey through the Apache Incubator (all code entering the Apache Software Foundation (ASF) must pass through the incubator). That post looked at what makes an Apache project different from many other open source project. This post repeats many of the same points, but rather than examine them from the point of view of OpenOffice I will examine why predominantly academic team behind Apache Rave chose to go to the ASF.
In Apache projects, a Project Management Committee (PMC) oversees each project on behalf of its users, contributors, committers and the foundation itself. Upon entering incubation the PMC is guided by mentors from the foundation. Upon graduation mentors either retire or become equal members of the PMC. For the Rave community the provision of mentors meant that the project team could avoid the mistakes of many other open source projects. As a result, the team got an honourable mention in the Black Duck Open Source Rookie of the Year awards. Not bad for a team with no significant knowledge of open source software development on a large scale. Now it has graduated, it no longer has mentors actively overseeing its work, but it still has the backing of over 100 full Apache projects and another 50-odd incubating projects.
New committers and PMC members are elected by the PMC based on merit. It should be relatively easy for anyone to gain influence on an Apache project. In the ASF this is achieved through rewarding merit. If you contribute to the project you are rewarded with influence over the project. In environments where staff turnover can be high, such as academic research, this is important with respect to continuity. It also removes the opportunity for someone to insist on a level of control based purely on the cash they wield. In an Apache project it is all about the delivery.
All decisions unrelated to individuals happen on the public mailing list, discussions on the private list is kept to a minimum. This behaviour has no special bearing on academic projects compared to non-academic projects. For both types this rule ensures maximum inclusivity which results in maximum engagement with potential contributors.
‘If it didn’t happen on the dev list, it didn’t happen’ – meaning no decision about the project can be made outside of the public development list. Proposals can be drawn up elsewhere, but decisions occur on the public list. Academic projects, like open source projects in general, often involve collaborators from a variety of geographic regions. This can make it difficult to ensure that everyone is kept informed and engaged. Apache projects require that all significant decisions are made in public so that no participant (or potential participant) is excluded from the process.
Where possible, decisions are made by consensus reached through discussion. There are voting rules but the ASF prefers not to have to vote. Apache Rave began life as a merger between three pre-existing projects. It was important that all three parties were equally engaged in the project. Had there been a pre-defined leader this would, probably, have made some participants feel less engaged. Initially the consensus driven approach can be hard to understand, however, over time natural leaders emerge in specific areas of the project. At this point consensus is easily achieved since each decision is led by the person best equipped to lead it.
Releases are created according to the ASF’s licence requirements. The Apache License is a permissive licence that allows anyone to do anything they want with the code. This allows for maximum flexibility in business cases for engaging with the project which in turn encourages third party contributions. Whilst conforming with Apache policies is more onerous than might be found elsewhere, they are designed to ensure that people can use and contribute to your software with minimal legal risk. Risk is something that universities and companies alike tend to avoid.
Trademarks and logos used by ASF projects belong to the ASF. Protecting trademarks is an important part of open source software. By running the Rave project inside the ASF much of the legal infrastructure and experience is in place should an issue arise in the future.
Apache projects are managed by a diverse group of people, each representing their own interests within the project. Apache decision making processes prevent ‘block votes’ controlling the process by ensuring each voice is equally loud. A number of people are contributing to Apache Rave, each with their own motivations. Each contributor must be assured that what they do today will still be useful tomorrow. Apache projects adopt a model that means it is not possible for third parties to gain control of a project. Consequently, researchers and product developers do not run the risk of losing influence over the code.
As can be seen from the above list of required behaviours found in Apache projects, the focus is on ensuring the project provides maximum opportunities for collaboration and innovation. There are other ways of achieving this but for the initial participants in Apache Rave (Universities of Bolton, Oxford and Indiana, SurfNet, Mitre Corp. and Hippo) the ‘Apache Way’ was deemed to be the most suitable. The same can be said of Apache Wookie which is used in Rave and was also helped by OSS Watch as it moved to Apache.
If your project wants to explore the opportunities that foundations (not just the ASF) can offer your project OSS Watch is here to help.
Today we were more comfortable with our program on running Eucalyptus after we spoke with the speaker last week. Once again professor Wurst ask as were do we stand on our assignment for Eu Tester, do we cover all the issues and if we are able to run the Eucalyptus cloud yet. well we were not able to run the Eucalyptus yet however we where getting close on what where the issues and where they were coming from. At this point i was very close on what i had to do and what was my team design to accomplish.
Some of the issues we found was on how to run or Eu Tester however we went back to to the same system on what programs where needed to run it or what version of Linux works with the system. my choice was learn a little bit more with github to understand if that would get the Eu tester running at least once before the semester is over.
Today was something special we had a guess speaker from Eucalyptus project and also the one who focus us to work on Eucalyptus it self. today everyone gave there own opinion on Eucalyptus, our troubles, our success and what have we learn so far. she explain most of the issues we were having on running Eucalyptus, what system was compatible and what wasn't. the latest Cent OS was 6, however we came with the conclusion that Cent OS 6 had a lot of non compatible issues that couldn't be solve. Thus we came to the conclusion of using Cent OS 5 instead for as a Linux distribution.
It was great having a person who can point us on the right direction so we can get our self on the right track and accomplish our goals. right before she left she say if we had any question to let her know on IRC channel, she will be available when necessary.
This week professor Karl Wurst, wanted to know how far we have gotten on our assignment with Eu Tester. Most student work with the Eu Tester were mostly stuck on running the program well, others didn't know what team where in. Not even mention what they were doing at all. My biggest problem was communicating with my team to see where we are living off. Somehow we where all over the place, all i kept was working on my normal assignment about continuing the acronyms from Eu Tester hoping that something would change. nothing much done that day just read and learn as I go. Trying to figure out if i can not only install Eu Tester, but also get it running...
Last week I discuss what my input where for the Eu Tester. I was working on how to identify some of the acronyms for the Eu Tester. However even though I'm a computer science student doesn't mean that I'm fluent on html. so I ask some of the student for help on the subject. some people where stock but some help me out and i corrected a few acronyms connecting them to the glossary. Before doing this I had to ask permission to the student working on the glossary to make sure there where no problems down the line. Amazing everything turn out just fine, i got lucky that my assignment was not such a big deal that i might ruin others people previous jobs.
I was also trying to also run Eucalyptus cloud however on my Linux Ubuntu but somehow its almost impossible to even install some of the files. I keep thinking that it was because of the version of Ubuntu I had but some student it works with the same Linux version. well now i had more homework to do besides reading chapter 5 and chapter 6. At least I'm learning more and more everyday...
This is the day most student started to volunteer to work for the Eucalyptus project, since i never work with python programming language before i thought i would just probably be in the way. Instead i volunteer on vocabularies Eu tester, since most people didn't know the abbreviation of some of the glossary. I even read a little about python to see what would be the difference between that and java programming which is the one i know a little about... Sadly its very different. However i had to catch up with the reading so that knight i read through chapter 3 and also chapter 4. Most of the student told me to read chapter 5 also because it explain building the code of eucalyptus. In the end is hard to try to learn a new programming language when your even rusty on the original. I realize i have to learn how to crawl before i can walk or in this case run... This doesn't mean that in the future I'm not going to try and learn it I am an computer science major non the less.
On this week we have to work on Git which is a control system. we had to download and install git, following a few commands for example install the git itself then make an RSA key and config git before sending it to the Eutester project. I never heard about git before but it sounds really cool to find out more. Git was designed and developed by Linus Trovalds, it was for Linux Kernel development. Git is build to work on Linux basically but it can run also on Mac OS X, Windows and Solaris.
I learn you can do alot with git, for example git can work offline when you don't have access to an internet server. Another important command that i found facenating is cloning and merging command. it clones a repository to a new directory and merge joins two or more development history together. since i work with iphones and mobile devices i believe git will come in handy with those applications and codes.
After so many unsuccessful tries to install EuTester on same operating system but on two different kind versions “Ubuntu 10.04” and “Ubuntu 11.10”. At one point I did think that might be some kind of issue from an update of the EuTester code. I did think this way because some of my classmates had EuTester installed at their OS before me. I did start to read Eucalyptus forums to find out why I could not install EuTester. I did tried different way to install EuTester but still I had problems. I tried to install EuTester on different versions of Ubuntu but still I didn’t have any luck. I did have problems while I was installing M2Crypto; it was giving to me error:

I did install the Paramiko but still I was getting errors. I started to search at Eucalyptus forums but I couldn’t find any thing useful. I did try an other way by cloning the EuTester to the home folder after I did install python-paramiko when I did try to run the command “python setup.py build” I did get this kind of error:
[eduart@eduart]$ python setup.py build
python: can’t open file ‘setup.py’: [Errno 2] No such file or directory
[eduart@eduart]$
After I did try many times to fix this problem, I did research on Internet to figure out what was the issue. From my research I came to conclusion that I had package dependency problems. While I was doing the research I had the chance to find the blog writing from ‘viglesiasceread’ at our class wiki. At this blog I did find information that where very helpful to me. Following all the instructions in blog helped me to install EuTester very easy and smoothly. Now the only thing is left to do it is to run for the test the EuTester.
From all of this I did learn a lot. One of things I did learn is that first to solve e problem while I am installing software I should look for the software dependency. I did learn that if I work hard by doing research and testing eventually I will find the way to solve the problems not mater how hard and complicate they can be.
This week I thought to get deeper on EuTester bug tracker. There have being some new issues added to the EuTester bug tracker, and I did spend some times looking at all the issues that are there. In software industry it is very important to learn to understand how bug tracer issues works because it is very important tool for a program developer. According to the EuTester bug tracker about one of the issues that is opened since three days ago, it is about adding changes, which are requested from Code Review Session in EuTester meeting. Some of the requesters are:
- Get rid of self.options; use options throughout script, and to get rid of while loop grabbing creds
- Git rid of if statements for checking config_file or credpath; eutester takes care of that, and get logs if only debug flag is passed
- Add everything that i make a global variable to self, and keep options for a cloud admin, not cloud user
- Make sure command runs on the CC, and get rid of line 101 and 102 (removed None assignments)
- Don’t wait on instance to run; get rid of line 119, and get rid of grabbing uname -a
- Maintain list of reservations, and only print result if there is an error – get rid of else; use tester.critical instead of print
From this issue looks like the EuTester will be having some big changes on it code and on it output of the results. From my experience is that if they do try to change the code to make the software to performer well the chances are the software may preform better but there will be new bugs. This will be reflected at EuTester bug tracker.
According to EuTester bug tracker there is one new issue that it is about run_instance that should still provide a euinstance regardless of reachability. This issue is very new about one day old. When run_instance is called in Eucaops it chooses to convert the boto instances to euinstances only if the instance is reachable. Instead it should always return the euinstance and just not pass keys to the Euinstance constructor which will ensure that the euinstance will not try to create an SSH connection.
From all this experience I did learn a lot. I did learn that there never would be any software without bugs. I did learn that is when we change the code there will be new issues, and because of this what it is very important for me is to understand about bugs and how to fix the bugs or the issues in real world. So to learn and have more experience it is the best for me to continue working on an Open Source Project.
This week was the last in-class meeting of the semester.
We discussed various ideas about how we should use our Eucalyptus cloud in the future. One of the ideas was to provide students in lower level courses with images of the cloud that supplied them with all the tools they need to do their work.
We then were able to meet up with our groups and further discuss completing our project.
I worked on creating a Power Point presentation that represented a visual summary of our research on Eucalyptus’ Architectural Overview as well as general Cloud Computing information.
Also, on Saturday we met up on campus as a group to do a practice run of our presentation. After a few run-throughs we felt pretty good about what we had prepared.
I decided on a topic and wrote my Ethical Analysis regarding Eucalyptus. This was a learning experience as I began to do my research on security issues with Cloud Computing/Eucalyptus. I had previously heard about the issues, but upon doing some research on the topic it furthered my knowledge of things I wasn’t aware of.
Standards in technology are generally considered to be a good thing. Having documented technologies that can be implemented by all means that businesses can compete on equal terms and consumers benefit from the effects of this competition. Of course, before a technology can be standardised, individual technology players need to do the work of innovation to develop the techniques the standard will encompass. Sometimes these technology players will have sought to protect their investment in innovation by obtaining a patent for the innovative technology they have created. Patents are designed to provide a monopoly over a specific technological process for the owner, so how does this monopoly fit in with the idea of a standard?
The answer is that it doesn’t, really. In situations where implementing a standard would necessarily infringe on someone’s patent, the standards creation bodies will usually try to get the patent’s owner to agree some terms which will guarantee them a return for their investment but which will still allow everyone in the market to actually use the standard in their products. These kinds of terms are often referred to as RAND or FRAND – standing for (fair), reasonable and non-discriminatory.
FRAND is a slippery term. There’s no single definition, which makes determining what is and is not FRAND hard. Most people agree that the general principle behind FRAND is that the fees or other requirements for use of the patents in question are not ridiculously high and are the same for anyone who wishes to implement the standard, whether your best friend or fiercest competitor.
That sounds like a good idea to most people, and for more traditional hardware and closed source implementations of standards it arguably is. There can be problems, however, when software under a free or open source software wishes to implement a standard available under FRAND terms. For example, the GNU GPL family of licences all contain conditions that say – in essence – that if a distributor of the software is forced to pay for the use of a patent in the software, they must either cease distribution or obtain a licence for everyone (the schoolroom chewing gum scenario). These conditions are designed to deter patent owners from pursuing distributors of GPL software, but they mean that payable FRAND standards and GPL software do not play well together.
Even where the licence is not GPL, there can be problems with the interaction between FRAND and FOSS. One way in which patent owners make their patents available for use in a standard is by issuing a ‘non-assert’ promise. These are unilateral undertakings to not assert their patent rights, and in this context they are usually conditional on the patent being used in an implementation of the standard (not unreasonably). However in the context of open development, this can be something of a nightmare. You may write a piece of code that implements the standard and release it under a FOSS licence, confident that you are protected from patent litigation by the non-assert. An unwary downstream developer looks at your code – specifically the bit that implements the patent – and thinks: “that’s a nice bit of code – I’ll use that for my next project…” Of course, unless by some happy accident their next project is also implementing the standard then their use of the same code will not be protected by the non-assert, creating a potentially very dangerous problem.
The question of the compatibility of FRAND terms with FOSS software has become a vexed one recently due to the UK Government’s Cabinet Office seeking to create a policy around the use of open standards in government IT. The idea here is to reduce the currently crippling costs of government IT systems by opening the procurement process up to more competition. One of the perceived problems with the current situation is that there are only a few providers of solutions who can cope with the government’s massive requirements, and that the monolithic solutions they provide are often very hard to substitute once they are in place. The solution, or part of it anyway, is to break up the requirements into smaller deliverables that could be provided by more and smaller companies. How do you get these smaller solutions to work together? Use standards, preferable ‘open’ ones. That ought to create a level playing field for all sizes of providers, and alongside that make it easier to pitch FOSS solutions – with their problems with more restrictive standards and tendency to be supported by SMEs – to government.
Initially the Cabinet Office just stated that they would mandate open standards in future government procurements. Unfortunately this ran into problem of definition. Just as with FRAND – no-one has a single, snappy definition of what and open standard actually is. It’s easy to assume – with Justice Potter Stewart – that we will know one when we see one, but in practice there are polarised views in this area. The Cabinet Office’s initial definition was not to everyone’s liking. To resolve this potential confusion, not to say conflict, the Cabinet Office launched a consultation exercise to help pin down exactly what an open standard is, according to the largest possible group of respondents. The deadline for this has since been extended after it emerged that a perception of bias might have been introduced by the conduct of the process.
Some evidence of the ructions that lead to the consultation exercise can be seem in the documents columnist Glynn Moody obtained through a Freedom of Information request. I will not attempt to summarise this weighty sheaf, but I would recommend glancing through them if you want to see how lobbying of the government over IT matters looks in its naked state. At issue is the idea that – as in the Cabinet Office’s initial definition – open standards should be entirely royalty free. Now obviously ‘at no cost’ is about as low a barrier to entry as one can get, at least in monetary terms, so it’s easy to see why the Cabinet Office adopted this definition from its original home at the W3C. For one thing, it would get around the GPL-compatibility issue mentioned above, and if used instead of a non-assert, also the ‘mode of use’ problem I have cited. However it would also exclude some existing technical standards (although not many – most are already royalty free), and clearly some players are not going to be happy with that…
OSS Watch is interested in the outcome of this process because – as a non-advocacy group – we are keen that all potential solutions are able to be assessed on their merits alone. We would strongly recommend that everyone responds to the UK government consultation exercise, in order that a truly communal definition of open standards can be achieved.
One of the things I tried out as part of my independent study on open access this semester was the idea of reverse-engineering a publication. This isn’t about hacking code; it’s about hacking copyright. And as it turns out, it doesn’t work.
Here’s the setup: imagine you’re a researcher and you’ve written a great paper that’s published in a prestigious journal. You beam with pride! Life is fantastic. And then you find out about the open access citation advantage, realize your publisher allows archiving of preprints, and think that life is about to get even better.
There’s just one problem. You can’t find your preprint version (the final edited version you send to the publisher, usually a plain Word or LaTeX document). You only have the final copy PDF with all the branding and pretty-print formatting on it – the version that got published in the journal. Somehow, in the frenzy of hard drive clean-up that accompanied your “I am done with this paper forever!” project completion celebration, you… you lost the file.
But wait… the final print version is identical to the text you sent in, right? All the publisher did was add formatting. So if you could just grab the text from the final print version and throw it back into a Word document, that would be identical to the preprint, and you could post that. A preprint is just the end publisher content there without the end publisher formatting. Right?
Wrong. The problem here isn’t technical, it’s legal. I actually took a print pdf and “reverse engineered” it into a LibreOffice document, and it looked fantastic — I did the process by hand, but it would be easily automatable, so the software portion of the problem is trivial. I talked with Donna Ferullo, Purdue’s copyright librarian, and the copyright portion of the problem is, unfortunately, a blocker bug. The crux of it the matter is that we don’t know what value the publisher added before printing. Okay, this probably is “not much other than formatting,” but still… it’s legal grey. So we hit a hard wall on that, but at least we learned something.
I promised to write something up about this since I don’t think the reverse-engineering idea has been broached before, and it’s at least good for others to know that it’s a dead-end — so here it is.
For folks who’ve been following the radically transparent research adventures of project puppy (and the similarly transparent project kitten), we have… unexpected news.
Project Puppy is, apparently, not human subjects research. We don’t need to go through IRB.
Which is fantastic news (we don’t need to go back to our participants with yet more paperwork), but also somewhat confusing news; it feels like playing Minefield and clicking on a square and having the computer tell you “yay, you didn’t die!” But that only tells you about the square you’re on. Fog is all around you, so you’re not sure whether you can move in any direction without dying; there might be a cliff two feet to the right that you can’t see.
So I asked Robin to send back the following reply, and we’ll see what we get.
Thanks for your decision — this is great news that will help our research group move forward with our work. Since we plan on doing more projects with the radically transparent research technique in the future, would you mind helping us understand why our project is not human subjects research, and whether we are close to the boundaries of any actions that would make it human subjects research? We were told during initial office hour consultations that it ought to be submitted for HSR approval, so we’d like to make sure we understand the rationale so we can make sure we submit future “radically transparent research” projects for review appropriately in the future.
The short term effects of this, however, is that now we can talk openly about Project Puppy. Actually, we can call it by its real name, and show people its data, and explain the research, and… oh, this feels good. So, without further ado: I’m going to stop calling it Project Puppy, and start using the project’s proper name. Changemakers. (That’s what we call it, anyway.)
The short (overly-academic-sounding) version is that we’re doing “preliminary work on change knowledge through a study that investigates what exemplar changemakers understand about how transformation occurs.”
What this actually means is that Linda did long interviews with 8 people who’ve caused substantial changes in engineering education through the course of their careers, asking them to talk about how the heck they did that, and we’re trying to figure out, okay, how do they think? What makes someone able to affect that sort of change? Can we learn how to do it too? And stuff like that.
Now to put Project Kitten through the IRB process (armed with the Changemakers decision) so we can open that up to the world properly as well!
Wow, I haven't posted in a long time. Shortly after my last post I had the flu for a week, then I had a job opportunity come up and I spent half a week flying around for interviews. For two weeks after that I was writing docs and doing more research for OVC and I forgot to blog...
So I have some docs up for OVC now explaining how the code works (. I also added to the readme and made additional comments in the code. Hopefully my additions will help the next team that can pick up OVC.
This week and next I hope to add some unit tests to OVC. I'd like to be able to test to make sure the gstreamer interface is working correctly and that the network connection is working. First thing I need to do is figure out how to launch a sugar activity through a unit testing environment. From there it should be easy enough to mock another activity and have it send fake connections.
Update:I had a conversation with Cerlyn from OLPC about unit testing. It seems like this will be more difficult than I thought...
<trose> can anyone point me to a good reference or example for unit testing sugar activities? specifically testing video and network interfaces?<Cerlyn> trose: As far as Sugar goes, there is no activity specific testing framework I am aware of; I've been begging for one to be made.<Cerlyn> Sascha Silbe has been working on unit tests for the core Sugar environment on occasion, but as far as I know progress on that front has been going slow<trose> I'd like for just some way to start up an activity and then send it fake signals like another activity is trying to connect. Then I could make sure the activity responds correctly<Cerlyn> many tests Silbe's been working on require user involvement to report pass/fail as well :/<trose> Cerlyn, well that is frustrating...<trose> how exactly does sugar start up an activity? is there a way to emulate that?<trose> or is there a way to say like sugar.startActivity() and get a pointer back?<Cerlyn> You can start an activity within sugar by running "sugar-launch {fully qualified name of activity here; like org.person.trose.myActivity}"<trose> Cerlyn, okay<Cerlyn> That probably wraps a DBUS interface to do it<trose> but that's cmd right? can i get a handle to inspect the activity?<Cerlyn> Historically having one activity directly launch another is something that hasn't been done; I do not recall the reasons offhand (not a developer; rather QA)<trose> Cerlyn, hmm<trose> i could see how that would cause problems<trose> this would be a training script though<trose> *testing<Cerlyn> trose: In theory, being GTK3 based, GTK-supporting test frameworks should work<Cerlyn> but graphical testing is obviously not unit levelSo there isn't a good way to start up a sugar activity and maintain a handle on it. I may be able to hack around this somehow though. Stay tuned...
It is a well-known problem for researchers. Data is being collected for a research project and no decision has been made about how to manage the data during the project. Naturally, once you have finalised the project and start publishing on the end results, you may deposit your final dataset in a institutional repository such as your university’s DSpace or E-prints repository, or you may even put it in Dryad. However, that is not sufficient to keep your data safe while you are still working on it. Often, such data ends up on a computer that just happens to lie around in the office or department, or even on the researcher’s local machine.
People that are conscious about back-up issues may be using a solution like Dropbox, SkyDrive or Google Drive, but some issues exist around data ownership and rights that may prevent you from wanting to use these services.
So what would be easier than just saving it in a folder, as you would with tools like Dropbox, but have it backed up by the institution, version-controlled automatically and keeping it within the trusted boundary of your organisation? And still allowing you to optionally share the folders with your research group, or a wider group of people, whichever is appropriate.
This is what the open source tool DataStage offers you. Developed as part of the DataFlow project, it is a piece of software that will be installed at, usually, the departmental level of your institution, but it can also be hosted in a virtual ‘cloud’ infrastructure. It allows you as a user to simply map a network drive to it. You save files as normal, and everything will be handled for you. Near the end of the project, when you start publishing and want to make the datasets available to a wider public, you can push any dataset to a SWORD-compliant repository, such as the ones mentioned above or to a DataBank instance.
The beauty about an open source project like DataStage is that anyone is welcome to use the software and contribute towards its ongoing development. You can imagine there are many more use cases for a tool like this, which are unrelated to research data. Take for example the popular Raspberry Pi project. In a classroom situation where where all the kids have their own little computer, they can submit their homework via DataStage to the teacher who can centrally check everything on the main server and mark their work. This smart different application was highlighted by David Shotton in its presentation during the DataFlow Launch Workshop on 2 March.
Are you curious about what DataStage can do for you? Come and download our beta release to try it out and join us on the DataFlow mailing list to tell us about your experiences and what may be improved. We would love to hear from you!
Three Must-Have Ingredients To Spice Up Your E-Learning Courseware
by Jessica Athey (23 April 2012)
(Source: http://www.astd.org/Publications/Newsletters/Learning-Circuits/Learning-Circuits-Archives/2012/04/Three-Must-Have-Ingredients-to-Spice-Up-Your-E-Learning-Courseware.aspx)
Jessica Athey is Manager of Global Marketing for Lectora. She listed the following items as the three must-have ingredients to spice up your e-learning:
1. Visuals with Video
2, Interact with the course and fellow learners
- Flash animation
- Characters
- Games
- Social learning
3. Graphics with insightful" gusto
IEEE International Conference on Teaching, Assessment, and Learning for Engineering 2012
20-23 August 2012, The Hong Kong Polytechnic University, Hong Kong
IMPORTANT DATES:
Paper submission deadline: 30 April 2012
Notification of review outcomes: 7 June 2012
Final paper submission: 30 June 2012
Registration deadline: 30 June 2012
Conference dates: 20-23 August 2012
Website: http://www.tale-conference.org/tale2012/
This week the semester officially wound down. We went over what is expected of our final presentations, as well as lat minute work to be done. I am so glad we finally have images running on the cluster. This has been a neat experience; as close to working on a real-life development team as you get in school.
The open source movement is good for innovation and software development. Everyone’s work is transparent, so there is more accountability. They say that open source projects have fewer defects per line of code when than proprietary software. Having more eyes on the code makes for a better product.
That is why Ubuntu has no need for antivirus software. So many people have reviewed the code, that security flaws have largely been weeded out.
There is a serious competitor to Eucalyptus on the horizon called OpenStack. It is completely open source. It is behind Eucalyptus in features and reliability, but it is catching up fast.
One thing I’ve learned in the last semester: No matter what, you are not going to be an expert in every language. What you need to do is find out what the requirements are for a particular job, then become an expert in those areas. You can take classes until the cows come home, but in the end you are responsible for your own learning. The only way to become a good coder is: You guessed it, do a lot of coding!
This week I've finished commenting on the webtestcase.py script and pushed the changes through. It was interesting running into my first conflict errors and having to pull changes from the origin master before being able to make any further pushes. So right now our group is almost done documenting the eucaweb directory with the init.py file being the only one left which I'll try to finish documenting next week. At this point we've done a good amount of work on eutester documentation in general, although it's looking like we won't be able to complete the project entirely with the semester coming to an end. I'm also disappointed I wasn't even able to develop any actual code to fix the issues on the Github issues tracker which I was planning on doing after the documentation project was finished. However, I feel good that we were able to help the creators of eucalyptus and I hope what we've done will assist anyone who works on the project in the future.
The last week or so I have spent all of my time outside of class and work finishing up classes for the semester, and cs401 was no different. Between getting slides together for our presentations and finishing up my ethical analysis of the Eucalyptus project, combined with all of my other classes, it has been a busy week.
Today during class Dave, Mike, and myself took a trip over to the server room to flatten the network. Once we had that accomplished, we sat down and and configured two more nodes and edited the Eucalyptus Installation documentation accordingly. To be honest, it was very easy to do following the documentation that Dave had on the Wiki, even if most of it wasn’t necessary anymore due to there being packages we could install instead of having to compile from source. Hopefully some other people can go through the guide and get the rest of the nodes up and running.
Overall I think I learned a lot in this class over the course of the semester. I learned about version control and coding in a team environment, cloud infrastructure and how it all comes together, and a lot of python. All of which I can safely assume will make great additions to my resume. That being said, I’m looking forward to seeing everyone’s presentations next week and seeing how much we have accomplished as a class.
Small webmaking events that you can run in 10 minutes are a central part of the Summer Code Party concept. We’re calling these ‘kitchen table hackjams‘. But, really, they are just you sitting with two friends (or two kids, or two parents) doing a very tiny starter web project. The idea is to have fun and learning something.

We started beta testing this kitchen hackjam concept a few weeks back. I did one with my two sons (Tristan is 12, Ethan is 10) and a friend (Rowan, 10). We sat down to play with the LoveBomb prototype, a tool that introduces basic HTML by inviting people to edit a greeting card.
A learned some good things and bad things about the process. Three highlights:
- It’s possible to do a quick webmaking session with almost zero preparation or notice. I proposed the event and we were doing it five minutes later.
- You can do alot in 10 or 15 minutes. We’d basically finished the ‘lesson’ in that amount of time. Then two of the kids got bored (my kids) and one of the kids (Rowan) kept tinkering.
- For older kids especially, relevant content is key. Tristan gave the ‘toy’ content in the LoveBomb at ‘WTF is this?’ reaction. He’s a regular YouTube game commentator. If he was going to learn HTML, he wanted to be making something ‘real’.
At least half a dozen people ran and blogged about their own kitchen table beta tests. Here is a list of postings that I know about:
If you’re interested, we’re still looking for more testers. There is page on how to run a test. And, also, there is a chance to discuss these on our weekly webmaker calls.
Update. Matt Thompson posted this awesome ‘Webmaker Recipes 101: How to host your own kitchen table hack jam‘ just after this went up. Worth the read.
Filed under:
education,
learning,
mozilla,
openweb,
webmakers
This week I am going to start from scratch and try to install Eutester+euca2ools from our wiki only, keeping notes along the way to see if we need to update anything to make it more clear. I imagine from what I’ve been reading that we’ve made quite a large amount of progress over this course and when I had to restart last month it took me maybe an hour? (would be been less if I realized >>> meant that you type python ) but that’s besides the point. This blog post will serve as a note pad for anything our wiki should make clearer.
Updated this:
I decided that I would find someone I could use that doesn’t really know much about Eucalyptus and at least knows how to work Linux. It turned out pretty well, I have some notes jotted down that I can finalize the wiki with to make it as fast as possible. Everything was pretty well laid out, aside form small things like the note “don’t forget to use sudo” after they entered all the commands. One thing I need to add is that we never directly say to install boto.
Overall this test went pretty well.
Our blogs