RSS Feed

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.

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.


Converting PowerPoint to SVG: Help Needed

Software Carpentry has 110 PowerPoint files, each containing between 20 and 120 slides—call it 5000 slides in total. I’d like to convert them to HTML5 for use with Slide Drive, the deck.js+audio slideshow tool that David Seifried is building. Here’s the breakdown:

And then there are the diagrams… Roughly a third of the slides have diagrams of some kind, which makes about 1500 in all. That’s too many to redraw, and anyway, I shouldn’t have to: they’re stored in PowerPoint in some kind of vector format, so I should be able to “export as SVG” or the moral equivalent thereof.

But “should” and “can” aren’t the same thing. I can save my PowerPoint in a lot of different raster image formats, but not in a vector format like SVG. However, I can select elements of a diagram, copy them, and then paste them into a vector drawing tool like Inkscape, which indicates that something in Windows understands how to do the required format conversion.

Doing that 1500 times would be very tedious, though. What I really want is a way to automate that process, i.e., save each slide in a deck as a separate SVG that I can later open and edit. Googling turns up a couple of possibilities, but:

Please tell me I missed something…

Later: in response to a suggestion, I downloaded a Windows clipboard viewer and copied a diagram out of PowerPoint. The display looked like this (click the image for full-sized):

It appears to be a reference into the source file, rather than an actual representation of my boxes, arrows, and text.

The TOS symposium is coming up at SIGCSE

We’re a bit over a week away from the Teaching Open Source symposium (unconference!) at SIGCSE, which is the largest CS education conference in the world. This year it’s in Raleigh, NC, home of Red Hat (and formerly myself as well – so I’m looking forward to revisiting some old haunts while in town. I miss the BBQ!)

First: I know we have a lot more people coming than the attendee list indicates — if you’re registering, either edit the page to add your name, or email me and I’ll add it for you.

Second: the event is going to be unconference-style — don’t worry, we’ll explain this at the start the event itself (it’s much easier to explain in person). If you want a preview of what you’ll be in for, see the links at the bottom of the event page. The general idea is that in most conferences, the “hallway track” has way more interesting conversations than the “sage on the stage” presentations do — so why not try to facilitate a lot of hallway-track style interactions?

What this means in practice is that people come in with questions, thoughts, projects, materials, etc, and then we go around the room doing a rapid-fire pitch of our ideas at the start of the day, then take some time to group common interests into session slots (so 3 people interested in sharing various “FOSS for the humanities” ideas might share a session, and 2 people presenting on capstone classes may share a session — and that is how the schedule’s built). Think of a jazz jam session translated into conference format and you’ll mostly have it. (FOSS community members: it’s interesting to see how different academic conference culture is from what we’re used to. Useful culture-bridging moment, to be sure.)

Third: Because it is unconference style, it’s good to start thinking about session topics you’d like to see now. Check out the current ideas  and then add your own. FOSS community members — what would you like to see CS faculty discuss? Here’s your chance!

Questions? Holler here. I’ve also posted this to the TOS mailing list.

An update on common Euca talk questions, and a hello to Worcester State University!

I’ve gotten some feedback on my post on fielding common questions at your Eucalyptus talk since it came out nearly 2 weeks ago, and have updated the text accordingly — check it out if you’re curious. I was actually urged (by EuCa employees) to put pricing information there – a level of transparency that surprised even me.

I’d also like to give a shout-out to Dr. Karl Wurst, who some of you have seen around the Eucalyptus IRC channels recently. Karl chairs the CS department at Worcester State University and is a long-time member of the Teaching Open Source community who’s been getting his students involved in open source projects since 2010. He’s taking his junior/senior Software Development class into Eucalyptus as their spring term project, and they have taken on the challenge of testing eutester against the new 3.0 release – no small feat, considering that they’re testing new test software against newly-released software with no prior experience with the platform.

I predict the readability of Eucalyptus getting-started documentation will dramatically improve over the coming weeks as they progress – which is incredibly important if we want new folks to pick up on the project. Most people fail silently; if they can’t get something to work, they’ll quietly give up and go away, and you’ll never be the wiser. By committing to fail publicly and loudly, Karl’s class is taking a vital role (and one that requires no small amount of bravery). They speak for the people who won’t. And as newcomers, they’ll be able to write better explanations for other newcomers than all the old-timers out there. Fresh eyes are an asset; if you have them, use them.

His students are blogging as they go along, and it’s interesting to see their take on the project from a newcomer’s perspective. If you see them on IRC or the mailing lists, say hello and introduce them to whatever you’re working on – and if you see something interesting on their blogs, drop by and leave a comment. Those sorts of small contacts with the “real world” are ordinary everyday things to those of us who are used to the open source world (or heck, industry in general), but trust me; they’re absolutely magical the first time you start getting them as a student. (I still remember being awed as an undergrad that people were emailing me about things that weren’t homework.)

So welcome, Worcester State! Welcome to the wild and wooly wide, wide world of Eucalyptus. Glad you’re here.

Michelle + I explain web making

Want to know what we mean by web making? Or why you (and Mozilla) should care? Michelle Levesque and I did this 20 minute talk at last month’s Learning Without Frontiers conference to answer these questions:

One thing that’s worth pulling out of our slides is the definition of ‘web maker’:

a web maker is anyone who makes things using the open ethos and building blocks 
of the web

I’ve been using this definition for many months now, but it often seems to fly past people. I want to underline it here as this web maker audience is central for all the learning programs Mozilla is developing this year.

If you want more info — or if wonder what I mean by the ‘open ethos and building blocks of the web’ — there are lots of old posts by Mitchell, myself and others that unpack this general topic. Here are a few:

You see the pattern in these posts: a) open ethos = transparency, decentralization, participation, remix + b) building blocks = HTML, CSS, Javascript, open source tools and libraries. In my books, anyone who uses this ethos and these tools to make things on the web is a web maker.

PS. here is a PDF of the slides from the talk Michelle and I did. Can also send Keynote to anyone who wants to use these.


Filed under: drumbeat, education, learning, messaging, mozilla, openweb, poetry, webmakers

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!


Chris Tyler (ctyler)

Raspberry Pi Fedora Remix 14 - Release Event this Wednesday!


The computer education, hardware hacking/maker, and open source worlds are all eagerly anticipating the release of the $35 Raspberry Pi computer before the end of the month. In preparation for the hardware release, tthe Raspberry Pi Fedora Remix 14 distribution is being released this Wednesday, February 22.

Full details of the event are on the CDOT wiki. Everyone's invited, and I hope to see you there!

Update: Fixed link above.





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.


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…


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.


Response: How do you deal with educational videos?

I’m at the airport on the way back from a lovely visit to Penn State’s Schuylkill campus (many thanks to Elinor and Tom Madigan for being such gracious hosts, with thought-provoking conversation and amazing food!) and gleefully eyeing the (gigantic!) moon pies sitting beside me.

One of the folks I met last night at dinner was David Beahm, who left a comment that I started responding to… and the response grew long enough that I decided “okay, it’s a post now.” So here goes.

You are also forcing me to rethink my approach to educational videos, which have been strictly screencasts with voice-over.  How do you deal with those when you encounter them?

I turn the volume up really, really loud.

I’m halfway serious about that. I can hear some (bass), so I certainly watch and enjoy videos (especially music), but usually can’t understand words in them — I’d compare it to your experience watching an unsubtitled film in a language you don’t know. You get some things, sure — but you can’t assume you’ll actually extract and learn content from them, since you simply don’t know what you’re missing.

I’ve been blessed with some extremely good and patient friends, including a wonderful boyfriend, who are in my field. The “in my field” bit is important, since I’m an engineer and most people can’t grok the technical terminology even if they can hear. As I’ve gotten into more and more advanced material, it’s harder and harder to get support, so you can imagine the nightmares I’m having of my PhD defense in a few years.

Anyway, these wonderfully gracious people occasionally transcribe short videos for me (insanely time-consuming), or sit next to me and repeat the words back while the video is playing (so I can switch between lipreading them and seeing the video), or… similarly awkward arrangements — but they’re the best we can do, and it’s better than nothing. I am incredibly grateful for this — and it obviously doesn’t scale, nor is it a system I ought to rely upon. Because it’s so labor-intensive, this happens for perhaps one video every few months. Now, compare that to the frequency you probably watch web videos at… there are people who watch more web videos in a day than I’ve had made fully accessible to me in my entire lifetime.

Anyhow, returning to the original point: as far as educational videos go, I assume by default that I can’t use them. I find a book or website or something else on the same subject (guessing from the video title). There are platforms (such as dotsub and opencaptions) that let people transcribe web videos so folks like me can understand them, but the vast majority of videos are untranscribed. To get an idea of what the video world looks like for me, mute your computer audio, go to YouTube, and start trying to watch the clips you’d normally find interesting. Suddenly, the world looks much, much smaller.

This isn’t just a problem for people with hearing loss or auditory processing issues. Students with attention deficit, students who aren’t 100% fluent in English… captioning and transcribing has been shown to help them considerably as well. On a more pragmatic, publisher-facing note, no transcripts means the video is harder to find (because search engines don’t pick up keywords in the text).

Now, I think educational videos can be excellent and I’m not saying people shouldn’t do them — they are accessible to most, and if you can make more immersive, interactive multimedia — why not? (Heck, I make these videos myself sometimes.) Some people learn visually, some auditorily… the main thing, though, is to make sure that each student can get to the content in a format that’s accessible to them.

Let me repeat that, because it’s important. We need to make sure that each student can get to the content in a format that’s accessible to them. I’m used to having to ask for this myself, and wait for it (getting the content on a delay compared to my classmates in many cases), so when someone anticipates and accommodates me ahead of time, it’s glorious. (And sometimes students struggle silently and don’t ask. Sometimes I do this, too. I’m a very proud person…)

The easy solution for video is to post the voiceover script alongside it. It’s not perfect, but it’s better than nothing. If you want to consider visually impaired users as well, things like “selecting colors with high contrast for color-blind people” and “provide a text description of the visuals so screenreaders can read that out loud” become important. I totally realize that not everyone has time to do that all the time for every little video, which is why I’m also a fan of releasing your work under a Creative Commons license so that it’s possible for others to remix it into a more accessible format (translate into different languages, subtitle, remaster, etc).

That’s probably more than you wanted to know. I’ve dealt with this all my life, and can talk about it… pretty much forever.

“Git” on with it!

This week in class we installed, configured, and operated the git version control system. A version control system is an extremely useful tool on a software development project. It ensures that two or more people do no modify the same file at the same time. If this does happen, the software presents a conflict which can then be resolved.

Many prior versions can be backed up. It is easy to return to a previous version. The git commands are English friendly, and are similar to other console commands.

We downloaded a pair of security keys that git uses to authenticate users of a repository. We configured git to identify us with our name and email. We cloned an existing repository that Professor Wurst had set up for us. We then practiced editing files, checking status, and committing the files to the repository.

This was a good experience for me. The command line interface seems to make file transfer much faster. A great, unique feature of git is its branching model. Git will allow you to have multiple local branches that can be entirely independent of each other.

Once you have a Git repository, either one that you set up on your own server, or one hosted someplace, you can tell Git to either push any data that you have that is not in the remote repository up, or you can ask Git to fetch differences down from the other repo.

From the reading I have done, it appears that git is a superior VCS over others like Subversion, CVS, or Mercurial.

POSIT: Tools to help our meetings

As the UCOSP term continues on our weekly meetings become more elaborate and sometimes being able to showcase how the app works is key. Since we use Google+ hangouts we are able to share our own computer’s screen or a window. We have used this feature to look at specific code in eclipse and to in the early meetings to demonstrate the POSIT project site. To showcase POSIT on our phones we have had to hold up our phones to our webcam which would be unsteady and sometimes blurry.

So I decided that I should find a solution to this. I armed myself with my Google search knowledge and searched away. These searches led me too http://code.google.com/p/android-screen-monitor/ and http://code.google.com/p/androidscreencast/ both apps which will copy and display the screen buffer through an adb connection on your computer in a window. Both had similar features with android screencast having the ability to accept certain inputs from the computer.

In our last weekly meeting I demoed these applications and expect to see them as a common utility used in our upcoming meetings.

Watch Me: Help Wanted

[reposted from the Software Carpentry blog]

Back in 2007, Jon Udell observed that screencasts facilitate accidental knowledge transfer in a way that more traditional media don’t. As I said yesterday, we’d therefore like to start recording short screencasts of programmers thinking aloud as they solve small problems using their preferred tools. The aim is to show learners how to program—what order to write things in, how to debug, when and how much to test, and so on. Everything will be covered by the same Creative Commons license as our other material, and made freely available for remixing and other use.

If you’d like to help, please:

  1. Volunteer to be recorded by mailing us. We’ll help you install a screen recorder (if you don’t have one already—you might be surprised to find that you do), give you a small problem, and edit the video you produce so that you don’t have to.
  2. Volunteer to edit video for us, so that we can put our energy into organizing people :-) .
  3. Volunteer to work the floor at PyCon in March. We can’t attend (workshops to run, etc.), but it would be great if we could get a dozen or more “here’s how I do it” recordings done during the conference.

Remember, as an open source project, Software Carpentry depends on your help to survive and thrive. If you have wanted to help, but have worried that creating and recording lectures would be too much work, this is a way for you to help that will take half an hour or less. We look forward to hearing from you.

Hola Mundo Turbo Gears

Today in the open source game design class we boot strapped for Turbo Gears. This, combined with open shift will allow us to quickly get web apps online and running.

Open shift works by tying it to a Git repository on your computer. When you push the repo to open shift it automatically turns off the Turbo Gears instance running on the cloud, applies the changes you've pushed, and then restarts the server.

This is incredibly useful for small applications when you don't want to spend a lot of time trying to set up your own server. Updating the server is as simple as git commit && git push openshift.

We'll be using this system to launch our app for the final project.

AJAXING It up!

I learned about ajax this week in class. I knew about it in the past but I haven't had much experience implementing it. Seems like a really good way to send and receive data quickly.

The basics of AJAX is that you create a function that will serve json whenever it is called. This function is tied into a URL that can be called with optional parameters. Then you can have another program, be it a web client or desktop software send a request to this URL. The program then receives back json formatted information it can use.

I will be using AJAX to implement my final project for class. I'll be able to run the python pyBotWar program on a server with a modified AJAX function that sends out the state of the game. The client can then ping this function periodically to get information about robot position, angle, health, etc. and draw the state.

PyBotWar

For the Open Source game design class we're going to try and make an online multiplayer version of the classic RoboCode game. We found a python port on google code http://code.google.com/p/pybotwar/ that we hope to put up on open shift. Robo Code is a game where you actually program a robot that fights other robots in an arena. The robots rely solely on the code you right as you cannot control them once the match starts. Our goals for the project are as follows:

Required:
Optional:
Pie in the Sky:
At the moment we're still focusing on reverse engineering the graphics stack. We'll then implement a function that exposes the current state of the world using json. From there we simply need to write javascript to draw the game state.

Once our core goals are complete, we'll hopefully have time to focus on adding fun things like new weapons and body types. These would add value to the game play without requiring much time. If we get to this stage of development we should be able to produce several new options.

Slide Drive

I just posted a note on the Software Carpentry site about Slide Drive, a new HTML5+audio slideshow tool from David Seifreid. Please check it out and let us know what you think.

Dear metabrain: help me cram-study engineering for my hearing aid consultation

All right, folks – it’s studyin’ time.

As many of you know, I’m deaf. Or more specifically, I’ve had a bilateral high-frequency severe-to-profound sensorineural hearing loss since age 2. Hearing aids have historically been awful at helping out with this sort of loss, so I had them as a child but never wore them (because they didn’t, y’know, help). I speak, lipread, and have mainstreamed my whole life because that’s how my (highly geeky) young life happened to turn out, but have tremendous respect for Deaf culture and would never impose technology or coping mechanisms on others that they didn’t want. I’m also an open source hacker, electrical and computer engineer, and all-around gigantic geek, and when I found out (very) recent technology developments in the hearing-aid department have been aimed directly at my type of loss, I immediately asked where I could sign up as a guinea pig.

And so next week I’m meeting with an audiologist and a hearing aids specialist who are also researchers at Purdue, and we are going to have a big geek-fest conversation about technology options, where they’re at, how they work, the state of the field, etc etc… and what might work best for me.

I want to preload my brain with as much useful information before this conversation as possible. As readers of this blog may have noticed, I’m trying my best to keep a record of what this sort of journey looks like as a patient and a curious hacker — it may be a useful story to have out there later on.

So. What should I know? What should I be familiar with? What questions should I ask? (What are you curious about?) Go!

A few things to keep in mind:

Thank you!

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.


Selecting a Project to Participate in

This second class meeting was important because we had to choose what project we are going to work on for the rest of the semester. We had too choose from Libre Office, Sage, Irrlicht, Firefox, or Eucalyptus. I personally choose Firefox because it's one of my preferred browsers to use and I'm really interested in online programming, web design, and networking. We ending up going with Eucalyptus which I'm fine with because I would like to gain more experience with a Linux system. Working on this project should be interesting and I'm looking forward to getting started.

Git Exercise

Doing the Git exercise in class was pretty cool. Luckily I have used git before, so I am pretty familiar with the syntax as well as how it works. Once my RSA key was registered, I had a fairly easy time of pulling down the repo and editing files to be pushed back out. My group members seemed to grasp the concepts very quickly as well, so it was not difficult for us all to work around each others changes. We had very few conflicts when making changes.

The one thing that seemed to get me, as well as another of my group members, was when we were setting the git config stuff, we both accidentally set out user.name variable to “color.ui” because we misread the instructions. So when we pushed committed changes to the repository, our names showed up as “color.ui” instead of our actual user names. Once we went into the config file and made the proper changes, all went smoothly. The actual git part of the assignment was not difficult. I think by the end of the class almost our entire group had added a separate file to the repo and also edited a common file so we could all see each others changes.

I’m looking forward to actually using git with this project because I have only used it on a very large scale at work. So I think using it in class on a smaller repository will be much more interesting because I will actually be able to tell exactly what was changed at a quick glance. Also, I am wondering if we are going to be committing patches or if we will simply do a git commit of our changes and then push them out to the repo. At work, I am used to doing a git format-patch HEAD^ and generating a patch for review before it is added to the repository, however it seems like the way we are doing it in class is a little more straightforward, even if it is more likely that someone will commit code that doesn’t work 100%. It would be nice if there was a designated person in the group to review the patches before committing them so that someone doesn’t push out something broken and overwrite good code. I guess that will have to be up to the group members to investigate how well the code works before pushing it out.

Looking forward to getting started!


Jason Priem talks about altmetrics, total impact, and decoupled journals

Jason Priem from UNC Chapel Hill’s library/info department gave a talk on altmetrics, total impact, and decoupled journals this morning at Purdue. Actually, he’s giving it as I type this — welcome to the talk liveblog.

One common theme throughout the presentation is that scholarly communication has always been limited by the best-available technology. Writing individual letters by hand made sense when we didn’t have the printing press – at least it let us get our ideas out to others. Printing centralized journals made sense when we didn’t have the internet – we could reach far more people this way, and that was worth the constraints of large-scale centralization and all its accompanying restrictions of limited print space and needing to wait many months or even years to hear about scientific progress. But now that we do have the internet, we no longer need industrial-scale replication in order to reach a wide audience – and so the next publishing revolution will promote a diversity of outputs.

Research has several different types (or stages) of output; the web changes them all.

Jason discussed the example of using Twitter for research. He no longer reads the table of contents of many journals – he simply follows a hundred or so other researchers and reads the papers they tweet about. More and more researchers are beginning to use Twitter as a scholarly tool — and cooler yet, there’s no significant differences in adoption or usage between disciplines or stage of career. (See “Prevalence and use of Twitter among scholars” here.) This means English grad students and tenured chemistry faculty were equally likely to use Twitter intensively for research. I can’t help but wonder if this sort of thing might lead to interdisciplinary conversations that may not previously have taken hold.

(A better version of the graph can be viewed here.)

There are several different types of scholarly tweets. “Primary” tweet-citations (“citwations”) link directly to a scholarly paper, but far more common are secondary citations — tweets referring to blog posts that in turn refer to scholarly papers. This is due in part to questions of access; researchers are hesitant to link to papers behind a paywall their colleagues (and followers) may not have access to, but they know that everyone can read a blog post.

This isn’t an entirely new idea — it’s just that we’ve recently acquired the tools to actually do it well. The Science Citation Index was created by Garfield in 1961. The big idea was to use crowdsourcing (remember, this was 1961, long before “crowdsourcing” was a buzzword) to fill the role formerly held by individual expert judges. Instead of asking one person how “good” an article was, why not just see what researchers use — what data do they mine and cite? The more folks use it, the better it’s likely to be. In other words, Garfield invented Google PageRank decades before the internet took hold.

So why does Google PageRank make a lot more sense to us than “scholarly citation indexes?” Well, a citation index has limitations. It only deals with academic people using scholarly articles as resources for a single use – writing other scholarly articles. And of course, there are a lot more people than researchers. And even researchers do a lot more with articles than write other articles about them. There’s this entire universe of usage we aren’t capturing or counting.

For instance, I’m an engineering education researcher(-in-training); my work is designed to be read by – and impact the work of – people who do not publish scholarly articles. Engineers. Hackers. As a grad student who hasn’t yet been primary author on a peer-reviewed journal paper, my citation impact is zero – but my impact is arguably nonzero. My work on teaching open source has reached dozens of faculty, touched hundreds of students, been read by thousands of hackers, been blogged, tweeted and dented, found its way into classes being taught, textbooks being written, conference talks…

When I stand up several years from now and present my portfolio and defend my dissertation, I want this work to count. When I look for a faculty position (if I do), I want to go to a school that values the sort of impact I care about — and I want a way to show them what that is and how they can evaluate me on it. That’s the idea behind Altmetrics, and I’m sold. I think I’ll pitch Shannon on letting me do my end-of-term project on publicly instrumenting my scholarly life to gather and display altmetrics and getting all my old research open-access, so I’ll be clear to “do it right” going forward.

Altmetrics impact is mostly orthogonal to traditional citation impact, so if you care about it, it’s important to make sure you gather it because it’ll be invisible in your portfolio otherwise. There’s a great slide showing the correlation of one type of citation to the other (the image below, grabbed from Jason’s slides). You can see that html and pdf downloads correlate with everything, that social media has its own cluster of correlation in the lower right, and that traditional scholarly citations have their cluster in the upper left. But the picture is clear; relying on scholarly citations alone misses a giant portion of the real impact that your work is having.

You can also look at large bundles of altmetrics data and see the different “types” of articles — there are, of course, a few (3%) that become popular with all walks of people, scholarly and nonscholarly, as well as many articles (a bit over 50%) that aren’t popular with anyone at all. But there are articles that do well with traditional citation metrics but aren’t “popular” on the internet – canonical papers, methods papers, things researchers cite as foundational work. And there are articles people share on scholarly networks like Mendeley but don’t cite in their own papers – what do we make of those? (There are more of these than we may think. 80% of the articles in PLoS are in at least one researcher’s Mendeley library.) How about articles with a high Mendeley ranking but no Facebook posts — are those the ones of interest to a specialized population but nobody else?

As for gaming the system — yes, every system can be gamed, including our existing citation system. But the more data you have, the easier it is to spot gaming by eye or by automation — it’s a classic instance of “more eyeballs make bugs shallow,” – the eyeballs need sufficient data on the “bugs” to make them “shallow.”

All right. We’ve talked about a different sort of citation and impact tracking system, but we’re still applying those trackers to conventional outputs – papers in scholarly journals. What if we applied web tools to those as well, and started publishing with the best tools the 21st century had to offer, instead of the best tools the 17th century had?

Let’s talk feature set. Anything that tries to supplement or replace journals will have to have feature parity on four fronts: certification (“yes, this research is high-quality”), dissemination (getting research out there), archiving (keeping it findable in perpetuity), and registration (are you who you say you are?).

Of these four, existing simple web tools do a far better job of everything except certification. (Heck, mailing lists do a better job.) Certification is still vital, though; it’s why we have peer review. We want high-quality research, and high-quality anything requires careful scrutiny, feedback, and filtering.

Jason’s point was that this filtering doesn’t need to be done in a centralized place by a single group of people. And he launched into a description that looked surprisingly similar to the discussions on content stamping we were having at OLPC some years back.

And it’s already being done. “My twitter feed is like a private journal,” Jason said. “The people who care about my work – the… you know, four people who care about my work – they follow me on twitter, and they’ll read everything I write, and that’s peer review.” More large-scale examples are F1000 and ArXiV, and there are others.

Like any good hacker, Jason had a call-to-action in his talk. Want to try things out for yourself? Check out Total-impact, a web tool that lets people put in collections of (scholarly or nonscholarly) materials and get a wide range of citation stats on them. I wonder how well the opensource.com/education articles play in the semi-scholarly spaces… probably not that well (since that’s not the intended audience), but we could be surprised.

IRC Chat/Wiki Edit

In class our professor gave us a exercise in working with a person or a group of people that are in different locations. He introduced us to the IRC Chat program which we had to use to communicate with another person (we weren't allowed to talk to each other in person directly) and only use this tool to complete a task. The task was to edit our Wiki profile pages. I thought this exercise was interesting because it forces us to work in a way that we're not used to and that might be necessary when working on real open source projects. Overall the assignment went well and me and my partner were able to successfully edit each other profile pages while only making requests and giving information over IRC Chat.


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.


January 23, 2012 (Week 1)

This is week one for CS401. Today we are suppose to read and learn about Free and Open Source System (FOSS) and Source Code. Also create this Blog to write our class event either with Wordpress or Blogger. This was just a small view for us to get the ball rolling finding out what are we going to be dealing with and get confortable with it. Whether your just learning about Open Source or you been using it for years its a perfect way to put your knowledge to work.

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.


CS-401

This post is out of order but in our second week of class we signed up for IRC chat and discussed different open source projects over IRC. I downloaded the plug-in CHATZILLA from firefox. I still need to register a nickname.


Discussion on proposed Projects

Last week their was a class discussion on which projects the class most wanted to work on. Two projects that i had researched a bit that i though would have been interesting included Mumble or PuTTY, but i figured that these projects might not have been substantial enough for the whole class.

Some of the bigger projects that seemed to be top picks included Eucalyptus, Irrchlicht, Mozilla, Chromium, and OpenOffice. There wasn’t a real certainty of what each person wanted to work on, so we did a class vote to see what the front runners were going to be. The projects that came out ahead included Eucalyptus, Irrchlicht, and Mozilla. After the final shuffling of the votes however the project that had the majority of votes was Eucalyptus.

There was also a class discussion going on at the same time in the IRC Channel, however i was not able to get into the chat because of certain hardware issues i was having with my laptop that day.


IRC Chat Excercise

During class we were all introduced into the world of IRC Chat. The exercise that we were given to complete was for you and a partner to edit each other’s profile pages on the Learning Open Source site, but with certain rules attached. In order to complete the assignment we had to only communicate using the IRC channel, talking back and forth in chat.

The whole process was very intriguing because the whole class was silent with chuckles filling the room every once in a while. Although this is wasnt my first time in an IRC Chat environment, it was my first time partaking in an IRC that contained class mates of mine during a class, and talking about the various subject matters going on, such as possible projects to work on.

Over the course of the semester i am sure that the IRC chat will become a very useful tool in communicating with others on the current project we will be working on, and also be a tool that we could use when we have questions, such that we can go on the IRC channel and ask the question we seek an answer to.


Meeting #3:

The third meeting was crucial to this semester; we had to determine which FOSS project to contribute to this semester. The projects we had to determine from are as follows: Eucalyptus, Firefox, Irrlicht, Sage, VLC, and Libre Office. All of these projects are every interesting, and each has its own uniqueness. Thus, everyone had a different opinion on each project and we had to vote which project to work on. After the vote, the results varied in big margins. Eucalyptus and Firefox were the top projects, followed by Irrlicht, sage, Libre Office, and finally VLC. Between Eucalyptus and Firefox, Eucalyptus received the most votes. Accordingly, this semester would be a learning experience for everyone as we take on Eucalyptus project.

Eucalyptus is a cloud-computing provider. It was started as a research project in the University of California, Santa Barbara. For more information about Eucalyptus, you can visit the following link: http://www.eucalyptus.com/about .

Now that the project is determined, we will have to learn the design process behind it and learn how to contribute to the maximum as time allows us. I really look forward on making great distribution to this project, while enhancing my software development contribution towards FOSS oriented projects.


Meeting 3: Deciding on an open source project to work on

After giving sometimes to do research about some open source projects that the class might interests in working on, there were 6 projects that the class might choose to work on: Firefox, VLC player, Eucalyptus, Irrlicht, Libre Office, and Sage. And the class voted for Eucalyptus. Well, the idea behind this project is pretty cool and I am looking forward to work on it, but the class was informed that we might not be able to get to do any coding in this project, so it was kind of a let down because I really wanted to do coding for this class to improve my experience. But that aside, this will still be a valuable learning experience and I can’t wait to get started on it.


Meeting 2: Using IRC client to communicate

In the second meeting, the class had to install an IRC client on their laptop for future communication. Because this was like a first time logging in to an IRC channel for everyone, the whole class was giving a fun exercise, where everyone cannot communicate verbally with each other, but through the IRC. And each person had to ask one of the classmates to edit his/her own blog on the teachingopensource.org. After the exercise had been done, the class moved on to look for an open source project that we could work on together for this semester. A classmate proposed irrlicht, which is an 3D rendering engine, which seems pretty cool. Near the end of the meeting, some of professor Wurst’s acquaintance joined in. After knowing that the class is currently looking for an open source project, they proposed Eucalyptus, which is an open source project they are currently contributing to. The meeting was dismissed and each of us had to go home and look for 2 potential open source projects that the class might interests in working on on popular sites like Sourceforge, Ohloh, OpenHatch, etc.


IRC chat/Wiki Edit (My first experience)

Unfortunately I haven’t been able to keep blogging as much as I should, so I am sorry for the few week delay between posts and hope it doesn’t happen again.

For our second cs401 class we wanted to plunge into the idea of working with a group of people that we won’t necessarily be in the same room, or even the same continent.  It was..interesting.  I had used software similar to IRC, for gaming mostly, so I wasn’t completely lost in the subject and after a few minutes of figuring out how to get in the teaching open source channel, it began.

Our assignment was to edit another persons wiki page the only stipulation being that we were not allowed to talk to the person’s page that we were editing, aside from the IRC chat. I ended up working with a classmate named Jonathan and his wiki page ended up not too shabby, if I do say so myself, wiki  I had a little fun with it and my person favorite comment from him was, “it reads like a Nigerian scam letter”.  Overall it went pretty smoothly because of the external resources we had, I had his facebook page and twitter, IRC chat was more just to confirm details and get a little more information.

I enjoyed using IRC chat, it wasn’t really applicable in this situation considering I have Jonathan on facebook, twitter, and I am capable of texting him but obviously if it was someone I didn’t have those resources for than the IRC would be perfect.


Getting practical on web makers

Big dreams need practical plans. Late last year, we agreed that ‘building a generation’ of web makers‘ should be one of Mozilla’s main goals for 2012. For the last six weeks, people across the Mozilla team and community have been digging into the question: where do we start? I’m writing this post to update people on the plans that are coming out of this.

Concrete ‘web maker’ planning started with the Mozilla Foundation board meeting in mid-December. At that meeting we agreed on the following broad goal for 2012:

Roll Mozilla’s best software and learning resources into a simple ‘kit’ for web makers.

The idea here is that we want to create a single offering — or at least a brand — for people who want to learn and make things with Mozilla. This should roll up things like Popcorn, Hackasuarus, etc. into something easy to comprehend and get involved in.

At the same board meeting, we agreed on five more specific 2012 goals that our web making initiative. They are:

  1. Grow our learning programs for teens, journalists, filmmakers.
  2. Ship great software that invites making + learning.
  3. Build badges and ‘recipes’ to teach web maker skills.
  4. Create web sites and events that drive participation.
  5. Tell the Mozilla story well, inspire people.

You can see a list of detailed objectives for each of these goals listed here on our 2012 goals wiki page. We will be reviewing and evolving these objectives throughout the year.

As noted above, the plan with all of these goals is to build on our strengths: Popcorn; Hackasaurus; Open Badges; Hive; OpenNews; Mozilla Festival; and so on. Mozilla team and community members have been working on roadmaps that lay our practical plans and tie projects back to our overall goals. Here are the most advanced of these roadmaps:

All of these projects are making great strides — but they all need help as well. We need to people to write, code, test and promote what we’re building. If you’re excited by our web maker vision and want to get involved, you should join one of our weekly open community calls. Or, track Matt Thompson’s weekly round ups of web maker activity and then dive in when you see something specific you are interested in.

 PS. Here are the slides from the December board meeting that I mention above. They also include a review of our work in 2011. If people are interested, I can do a screencast of these slides to give more details. Just let me know.


Filed under: drumbeat, education, learning, mozilla

CS401 Picking a Project

Well, I am disappointed that I don’t get to work on irrlicht. That project is one that helped me learn C++ and learn about rendering, so it would have been nice to have the chance to give back to the project a little bit.

I have worries about working on eucalyptus, that we won’t actually get to do any software development, that we may end up just trying to fix broken documentation. All I can do at this point is hope that I’m wrong and try to get something done.


CS401 IRC/Wiki

A couple weeks ago what we did in class was use IRC and wiki. Not really sure how much I can say on it, as neither were really new to me. I think IRC is a great way to be able to meet and talk to people that you would otherwise not get the opportunity to do. It’s more immediate than forums which helps to add the possibility of more details in a conversation.

Wiki, of course, is a good tool for documention a project. It’s easy to edit, and it can be opened for anyone to edit, which means that there are less barriers for new sources of information being introduced.


Cloud Computing and Me

This past week I did something which I have never done before: I helped to set up a cluster to be used for cloud computing. The cluster is not yet fully armed and operational, but it’s getting there. I met up with my friend Mike one afternoon shortly after he and another of our classmates had finished putting a server rack together. We then loaded eight Dell GX270′s onto the rack and started the long and arduous process of cable management and wiring the machines together. The wiring itself went fast, but we spend about an hour and a half just working on the cable management to ensure that everything looked nice and we had easy access to everything we needed.

Once we finished with the wiring it was time to begin the OS installs. For this cluster we chose to use CentOS 6.1 since that’s what the folks over at Eucalyptus suggested we use. Sadly we were only able to get the OS up and running on two of the machines before we both had to leave to attend to other obligations.

I am very much looking forward to learning more about cloud computing. Before last Wednesday I had never set up a cluster and now I know how to use a KVM and all the other various gadgets and tech goodies that go along with setting up a cluster/server. Now I get to look forward to learning how to turn eight individual machines into a cluster, followed by learning how to use that cluster for cloud storage and processing. We aren’t even halfway through the semester and I’ve already learned a lot so I cannot wait to see what the following weeks have in store.


Docebo LMS on the cloud

It is interesting to know that more LMSs are now available on the cloud. The latest to join in the the Docebo LMS (www.docebo.com). This is the Version 5.0 of their Docebo LMS.

According to their latest news, the company even allow users to create 5 user accounts for free. With that users can also upload many free courses.

Docebo is an open source e-learning platform "with no licence fees, for supplying, certifying and managing training activity in various contexts, including:
  • Sales and post sales
  • Procedural technique and software use
  • Security, privacy and ethical codes
  • Foreign languages
  • Soft skills and courses for new employees" (quoted from their website).
I think this Docebo is worth trying out!




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.


Software sustainability != project sustainability

At OSS Watch, we take the quality of our documents very seriously. When we publish documents, we don’t just leave them alone on the website, but we nurture them, reviewing them every six months. This ensures that every one of our published briefing notes remains up-to-date and relevant.

Sometimes, reviewing a document means that we make some changes to reflect current thinking. This happened recently, when we were reviewing our document on advice for project bids. In that document, we discuss the sustainability aspects of funded software projects. The focus was on ‘project sustainability’ but reading that back it felt like an ambiguous term.

Our experience in working with projects like the DataFlow has confirmed that sustainability of the project, where this refers to the project as funded by eg. JISC or a research council, is related to but not the same as the sustainalibity of the software that is being developed as part of the project.

DataFlow, for example, creates a two-stage data management infrastructure that “makes it easy for you and your research group to manage your research data.” Two separate pieces of software, DataStage and DataBank, are being developed as part of the project. From our perspective, the value is in the software that is being developed and the communities that can be created around these communities to collaboratively develop the software further using the open development methodology. It is likely that DataFlow as a project will end. But the value of the software will remain and the ongoing sustainability will be through the software that has been developed. The software, and its associated community, documentation, etc., will be what can attract people from outside the funded project to become interested and involved. Of course, the software and development around it is a project in its own right, but to prevent ambiguity we now distinguish explicitly between software sustainability (ie. sustainability of the software being developed) and project sustainability (where this regards the project that funds the initial software development).

Sometimes it can even be just a small part of the software that gets picked up and becomes sustainability. If you read our Wookie case study, you’ll see that Apache Wookie (Incubating) originally was only part of the software that had been developed in the TenCompetence project. TenCompetence itself does not show a lot of activity, whereas the Wookie project is on its way to graduate from the ASF’s Incubator to become a top-level Apache project.

Our work with the DataFlow project is continuing, and we help organise a workshop in Oxford to which we invite everyone who is interested in the solutions that are being developed in both the DataFlow and VIDaaS project. Register now if you are interested!

Week 3: How did we choose the class project

Last class it was in some way interesting class. I was interesting because of the big discussion about what FOSS projects could be chosen for our class to work thru whole semester. I was from the start of the class but I had to live early. I was when the interested projects got listed on blackboard until when almost it did start the voting. The class was almost in different groups about each project. The projects which wherein lists are:

  1. Firefox
  2. Irrlicht
  3. Eucalyptus
  4. Libre Office
  5. Sage
  6. VLC

After I did leave the class, students did start to communicate in IRC channel. I was not there to take part on the discussion at IRC channel but our professor did posted the IRC discussion. From the IRC meeting logs I did learned what of the projects got chosen and how. The project that got chosen for the CS 401 class to work on is Eucalyptus and the second on list it was Irrlicht. Also, our professor did give to us all some of the assignments to do for this week, for example:

  1. Play with Amazon EC2 or ECC
  2. Get ECC accounts.
  3. Read http://open.eucalyptus.com/wiki/EucalyptusNetworkConfiguration_v2.0
  4. Decide who is on infrastructure team
  5. Contact IT about configuring network port for off-campus access
  6. Subscribe to eucalyptus listserv
  7. start haunting #eucalyptus channel

It is going to be very busy this week. I hope that it will be fun and we learn some good stuff from it.


Week 2: Great experience with IRC channels and with Wiki

On second week we did something very interesting. It was like exercise for all the class how to do the Wiki page of one our class mate. I did the Wiki page for my classmate Daniel Njoroge, and Daniel did my Wiki page. It was fun working on this small project. Before we started to work on ours friend Wiki page we did installed the Chatzilla on Firefox. The project was setup in two parts first part was installing an IRC client on our computers, and starting to practice how to communicate with our class at same time thru the IRC channel. It was real fun. My nick name is EdCS401. Mostly I did communicate with my group mates about what group nick name could we used for the group WSU CS Department Blog. After group communication the name was decided. The second part it was how to setup somebody’s Wiki page which I did mentioned above. Looks like in this class I will have great professional experience.


Getting the radical realtime transparency ball rolling

Getting radical realtime transparency in a project can be slow and frustrating, especially in the beginning. Most folks don’t know this, but in order to have public conversations, leaders need to send out a ridiculous number of private messages to get things rolling. In fact, looking at my own inbox history for the past half-decade, I’ve sent anywhere between 2-20 private messages – on average  (not maximum, average) – to get a single public message during the early stages of a project’s “open” life.

You really need to keep poking people in private asking them to put their messages public. It’s thankless and invisible work. It takes a while to build a new cultural habit, and for a while it’s going to seem like you’ll be doing this forever… but trust me, it will come. It’s going to take longer than you want it to, it’s going to take an unexpected route, but keep the faith – it will come.

There are three strategies it’s useful to have up your sleeve for times like this.

Start the conversation in private, then say something like “hey, this is really good, could you resend it to the public list and I’ll reply there?” This is good for starters if folks are new to the “default to open” concept and are reacting with great nervousness. This nervousness stems from wariness that they may not want to go public with some hypothetical future thing – in effect, worrying about a problem that hasn’t happened yet. Going this route allows beginners in radical transparency to look at something they’ve already written and assess the risk for only that specific situation – no unknowns here, no future commitments. After a few times of going “oh, I guess that retroactive transparency was okay!” it’s much easier to ask people to give “open by default” a chance.

Publicly announce that you’ll only respond to things sent to the public list. Reply to private emails with a reminder of this. This only works only if the people you’re trying to persuade are unable to route around you. It’s also a bit of a strongarm tactic, not appropriate for all situations and best used in moderation if at all. But if you’re a project manager, or an instructor, or a senior engineer, or something of the sort, you might be able to get away with it – and boy, folks learn fast this way.

Get others to help you with the nudges-to-public. Those 20 private emails to get a single public email? No reason why you’ve got to be the only one doing it. Train others to become Agents of Transparency as soon as you can, especially if they were once on the other side of the conversation. To begin with, ask them to work specific mailing lists, specific people, or specific conversation threads into the public eye – coach them from behind if needed. After a little while, they’ll be able to do it on their own – then just ask them to keep an eye out in general, and hey presto!

The key thing to keep in mind is that this is an investment. You’re putting resources into something that may not see returns for a little while. But the returns will come, and they’ll be worth it – when a project tips over into living, breathing, and practicing true realtime transparency, the results of the culture shift can be stunningly refreshing.

Keep going.

Project Puppy: getting data clearance

As our adventures in radically transparent engineering education research continue, we find ourselves staring at IRB and going “well, all right, how is that going to work?”

Well, here’s how it’s going to work.

  1. Linda gets individual permissions to make transcripts & identities public (and keeps track of the emails granting permission).
  2. Some participants may request certain edits before their transcripts are released. We do this editing.
  3. Transcripts are posted online under a creative commons license. We may want to post permission emails (stripped of email addresses) alongside the data as the closest thing we have to “signed informed consent forms.”
  4. The Purdue group visits Purdue’s IRB to get these interviews cleared as a public use dataset. Specifically, we’re in category 6b on page 3 of that document.

Or at least that’s the plan as of now. If we need to adjust, we’ll adjust. But if this all works, we’ll have an open data set that can be used by any future Purdue researchers for any future research without any further IRB approval – it basically places it in the same league as, say, publicly available census data.

Of course, this doesn’t solve the problem for other institutions. But Purdue has a pretty good reputation as a research university, so if we post the notice that Purdue’s IRB is ok with it, it makes it easier for other schools to go “well, if Purdue says it’s ok, we guess it’s ok here too.”

Project Puppy: Robin on transparency and where our group is headed

It’s been interesting to hear everyone’s reflections as we continue our journey towards radical realtime transparency. I’ve asked Robin for permission to share some of her thoughts on that and on the progress of our little research project. Here they are in full, emphasis mine.

I should be clear about my bias. I feel the change idea is so undertheorized and that we only look at the people in that process as objects (they do or don’t adopt something) – but don’t look at them as learners. Those theories we do throw around (e.g., get administrative support, don’t do this until you’re tenured) seem to be a very limited view that creates barriers to change – and yet there are so many examples of people doing this stuff regardless of all the barriers…which suggests “there must be something else going on”.

The “change knowledge” idea gives me a set of lenses to explore “the other bits” – that perhaps there is a lot of knowledge out there but that we don’t give it full recognition perhaps because it runs counter to other ideas or because we have a limited view on “change” (e.g., it doesn’t count as a change if you don’t fully adopt someone else’s idea yet a change happened). So… my bias… the developmental piece of change – and the transformative theory work seems to be a useful way to think about this.

As I was writing that last email I was thinking “how to get this in the public space” and out of “email space” so – yes – let’s move it into the public space…do you think a blog is the way to go? what is something that captures our history (like a journal) but keeps the timeline/conversational bits (like a threaded conversation)? Oh – and it has to be something that is low motivation threshhold – in other words, super easy to naturally do.

And… people need to feel comfortable with it – or at least feel comfortable with being on the periphery until they feel comfortable joining in. It may be that we need to define “public” – e.g., it is in a public space but unless someone is doing a specific search to find us, [they] won’t find us – so it is sort of protected in a “we don’t know about you” place.

A thought that bubbled up in my mind (for a conversation down the road) – is if we think of this as a model – what would it mean if we invited teachers into something like this (or mentors?) who typically don’t have access to data about people talking about their experiences. Would this be a new model for linking research and practice – a form of participatory research in which educators would help researchers see the important themes through their eyes and would gain a better understanding of how this kind of research can help them?

So yeah, this is what we sound like in each other’s inboxes, long before anything gets formatted as a shiny journal paper – and this is the sort of conversations we’re hoping to expose and make available to others. We will someday have an open mailing list… but first we need to get that data public, because “we have discussions regarding non-public data” is one of the biggest reasons it’s a closed list right now.

Continuing adventures in open access – learning from Debbie

Debbie Chachra was brave enough to volunteer as the first faculty subject for my “let’s get everyone’s stuff open access! project on Olin’s institutional repository!” Thank you, Debbie. I finally got all her journal publications from her time at Olin into the repository; it took about an hour per publication. (Now that I understand how to work the software better, it’s down to 15min/publication. Still labor-intensive, though.)

This means all the works are listed online – but not everything is open access and available online. I’ve been doing some copyright checking, and things fall into 3 categories:

Category 1: The publisher already makes the full text of your paper available freely online (i.e. “they are already open access, so let’s just link to them”). We’re done, no action needed.

Category 2: The publisher doesn’t have your paper freely accessible online, but is ok with you putting it up there yourself. Specifically, these publishers allow us to upload postprints (the edited document after reviewer comments – what it looked like before they formatted it with all the journal branding) without asking for further permission. I asked Debbie to send me postprint pdfs for these; once I have them, I’ll upload them, and that’ll be done too.

Category 3: Some publishers don’t grant you anything at all, so need to specifically request permission to make anything available to anyone. So I’ve asked Debbie to decide what version she wants to try to open up (preprint, postprint, etc) and send that version to me so I can prepare a letter to the publisher asking for permissions just for that specific document. As soon as they say ‘yes,’ we’ll be able to post that too; it’s just that the road is a bit longer.

Some things I’m learning as I go through this process:

It’s like scholarly housekeeping. I tell myself it’ll make a giant difference when I go up to defend my dissertation someday, years down the road – and when (and if) I apply for postdocs and faculty positions, and when… the list goes on and on. I gotta keep this somewhere, and it’s best to start when your career is young.

CS 401 – Week 3

Alright, things are starting to pick up!

The class voted on which project we would be working on for the semester by ranking the projects by preference. Among the possibilities were Irrlicht, Eucalyptus, Firefox, LibreOffice, and VLC. We kept the top 2 for consideration: Eucalyptus and Irrlicht,

Eucalyptus is cloud computing platform that bears many similarities to Amazon’s proprietary EC2 platform. Cloud computing is a huge industry buzz word lately that means a different thing depending on who you ask, so maybe as this semester goes on I will know to define it properly. The big advantage this project has is that our instuctor, Karl Wurst, knows 2 of the developers and they really want us to work on Eucalyptus and will offer us as much assistance as possible. There is an open source and a commercial version of Eucalyptus. Being the FOSS advocate that I am, it concerns me a bit that certain features are witheld and appear only in the commercial product. Maybe it’s because I have nightmares about Oracle and what they are doing to MySQL with open core. On the other hand, it’s great that a company is releasing a (mostly) fully featured product under the GPL 3 license. To work on this project we will be installing some flavor of Red Hat style OS (likely CentOS 6) onto 8 machines and making a cluster out of them. I have never made a cluster before so my inner system administrator is excited to get it up and running. Our goal will be to get a functional “cloud” environment set up running the latest and greatest Eucalyptus 3.0 code, which has not been released into the wild yet. The class will be writing installation documentation and bug reporting, but I’m keeping my fingers crossed that I will be getting some real commits into the code repository by the end of the semester.

The great Karl Wurst (can I have an A, please?) may let some students work on the Irrlicht project as well.  Irrlicht is a cross platform 3D library written in C++. The Irrlicht developers are interested in creating a test suite for benchmarking purposes, and they want my class to help write it. As far as resume material goes, I think Eucalyptus will be the more fruitful project. On the other hand, I do dabble in game development and have used a similar library before called OGRE, as well as used the OpenGL C API directly, so I am interested in this project as well. I don’t see myself actually being able to work on this, even if we are given the option as my time will surely be focused on Eucalyptus.

This class is making do all of the good things that I have been too lazy to learn how to use effectively on my own, like writing these blog posts and subscribing to listservs. Listservs are a great resource for project discussion that I never found convenient enough to actually use. Time to change that.


CS 401 – Week 2

The class is into its third week already but I have neglected to post about week 2. Better late than never.

The focus of the second week was to become acclimated to Internet Relay Chat. I started using IRC prior to the start of this course so I already knew the essential commands. Our training exercise was to connect to irc.freenode.net, choose a nickname, and join the #teachingopensource channel. Once in the channel, we had to communicate with a partner in the channel (and only in the channel! No talking allowed.) in order to give information that they could use to edit our user page on the Teaching Open Source wiki. It was very entertaining to see the class of ~25 students all trying to talk to one another in the channel. I was pleased that I was able to get several people in the class to use irssi as their IRC client, because it rocks.

Outside of class we had to research 2 FOSS projects that the class could potentially work on for the semester. I researched and wrote about VLC media player and LibreOffice. I made sure to choose applications that mere mortals (people who aren’t necessarily tech saavy) use and could benefit from our work. I also made sure that whatever I chose was cross-platform and not restricted on one OS. Both VLC and LibreOffice are big projects that have a large user base and they had documents specifically targetting and helping new developers. Both projects seem like they would have members of the community that would be willing to assist us and help us get acclimated to the codebase. Doing this research taught me how to check to see if a community has low entry barriers. Some projects have no information about how newcomers can help the project. Other projects want help but not enough documentation to get off the ground quickly.

 


CS 401: Project Decision

This week in our class we finally decided which project we will be working on all semester. This project will be the focal point of the course and I am very excited to get to work and learn more about it. We chose the Eucalyptus project, which is basically an open source cloud computing project. I have never experienced much with cloud computing but the setup alone interests me and I can’t wait to be able to add something like this to my resume.

A few things that we learned about Eucalyptus during the last class involved familiarizing ourselves with cloud computing products. We were given documentation to read up and learn more about Eucalyptus itself. They also recommended that we setup free accounts with Amazon EC2, which is Amazon’s cloud computing product, in order to get better experience with similar products. I also signed up for the Eucalyptus listserv in order to stay in the loop with what is going on regarding the project itself.

I look forward to working on this project and I would very much like to assist in the setup as well. I have networked multiple computers together, but I do not have a lot of experience with configuring the network using the command line and working with new operating systems, for example CentOS.


We’ve Got a Project!

1/6/12
Today in class we were asked to choose an Open Source project that we will work on as a group this semester.

We were each assigned to research 2 projects last week and document it. It was an eye-opening experience. I especially liked the Democratic nature in which people are elected to be committers (At least on the projects I researched), and the way you have to work your way up.
I chose a FOSS music project, and an Appache Java project.

Alas, my choices were not Professor Wurst’s favorites, and did not make it onto the illustrious Whiteboard. What was, though, along with some other popular choices, was a project called Eucalyptus (http://open.eucalyptus.com/)
This is a project run by a colleague of Prof. Wurst’s.

From their website: “Eucalyptus enables the creation of on-premise private clouds”. This is the project we will ultimately run with. It seems to have great opportunities to learn more about networking, operating systems, and coding. I am looking forward to digging into this.

Fun with IRC

1/31/12Today Professor Wurst showed us how to use IRC(Internet Relay Chat). I chose to install Chatzilla add-on for Firefox to access the IRC. We connected to the Teaching Open Source Planet at ircs://freenode/teachingopensource .

I liked using the different commands, and learning how to send private messages. It seems like a valuable tool for getting a lot of people together on the same subject- such as working on a FOSS project.

I have to admit though, that it was a bit overwhelming at first. With the whole class on the channel, along with others, the text was literally flying by. It was hard to keep up. Chatzilla does allow you to scroll, without your scrolled portion continually falling behind, so I could go back and reread what people were saying. It was also cool talking to people from a large FOSS project.

The Big Decision

Today’s class basically decided the rest of the semester for us, we had to choose what FOSS project we would be working on. Most of the projects that were brought up I had already heard of before and done some research on, such as Firefox, VLC, Eucalyptus, and Libre Office. A couple however were completely new to me, those were irrlicht and Sage.  After an hour or two debating on how we would decide on the project, we put it to a vote. The majority of the class seemed to be happy with the idea of working on Eucalyptus.

I believe this project stood out to everyone because it deals with cloud computing which is a new frontier for everyone and looks great on a resume. Eucalyptus also has the benefits of our class being able to communicate directly and easily with a couple of the big names on the project, which will prove to be very beneficial when we encounter problems. Overall I think this project will be super interesting and fun, as well as a giant headache on most of the class. But what’s fun about a project that won’t challenge us, huh?


Project Debate 2_7_12

In class today, we discussed the possibilities of working a few different projects, including VLC, Firefox, Irrlicht, Eucalyptus and Libre Office. Eventually, we reached a decision as a class to work on the Eucalyptus project. This seems like a very cool project because we will be able to work very closely with some of the lead developers. I like the idea of getting involved in cloud computing as well, even if it really is not that much different from regular programming.

I am also excited to use Python to do most of the programming. I really like Python and I think it should be fairly easy for the class to pick up. This project also gives students with other computer interests, such as networking and security, something to learn and apply. I know that there are several students that strongly dislike programming, so this is a good opportunity for them to use their skills in a helpful way to those of us who prefer programming.

In addition, I really hope that the people in the class who are not yet on board with this project are able to accept the fact that our minds are made up. There are plenty of other projects that I would enjoy working on, in addition to Eucalyptus, but I think this project will be fun and I am looking forward to learning as much as I can. I am also really enjoying using the IRC to talk with the Eucalyptus people. They have already been very helpful in giving us information and helping us reach a decision.

Overall, this should be pretty interesting to set up and start working on!


First time using IRC

So last week’s class was spent getting familiar with IRC. Seeming most of the class(including myself) had never used IRC before, it was quite comical. I’m assuming all of my classmates have used some sort of Instant Messaging system before, so we had an idea of what IRC was like. The big difference being people you may not even know can join the channel you are in and talk to you. We experienced this first hand when a few people from outside the class started up some in depth conversations about FOSS projects with a few of us. I think was was most interesting about this class was how much information was thrown around over the course of three hours, and how almost none of it was done verbally.


Post for 2nd Class – 1/30

In last’s week class we were tasked with downloading and using an IRC client (I’m using Chatzilla for Firefox).  The class populated the #teachingopensource channel, and our follow-on task was to use this space to talk back and forth in order to create a wiki page on the teaching open source website for a fellow student.

Using IRC is fairly straightforward.  And while there are a number of advanced options, these are unneccesary to use the client.


Choosing FOSS Project

Today we went about discussing and ultimately deciding upon an FOSS project to work on during the course of this semester in Object Oriented Design & Analysis. It was interesting to see the various ranges in opinions regarding the choices in projects. After much discussion, the final verdict was ultimately made through a class-wide vote. Some of the options for FOSS projects included: Firefox, Sage, Eucalyptus, LibreOffice, and VLC Media Player. Voting was done through each student listing their preference from highest to lowest on a piece of paper. The top choice on each ballot was then sorted, in which Eucalyptus came out on top. After sorting through the remaining ballots, Eucalyptus was ultimately the receiver of the majority of the votes. Therefore, the FOSS project that was decided upon to be worked on during the course of this semester is Eucalyptus.


IRC

Last week we were introduced to using an IRC client. It was an interesting experience as it was quite hectic with the number of people that were included in the chat. A “regular” chat session consists of much fewer participants, making it quite a different experience. It took some time to get used to the chaos, but after a few minutes it was easier to follow the conversations in the chat room. IRC seems as though it can be a very useful tool to communicate with people all around the world to discuss various topics regarding Computer Science projects that one may be working on. It allows for communication among programmers in a manner that is very straight-forward and easily accessible.


CS 401: IRC/Wiki Edit

Last week for our second class we began learning how to use IRC to communicate with each other. This was a great exercise because it gave me a perspective of online chat I have never experienced. I have used other chat programs such as AIM, pidgin, but I have never done any real IRC that involved multiple members, some of which were located in other places across the country.

The main exercise we focused on was editing other classmates wiki pages on the Teaching Open Source Planet site without actually taking to each other, but instead entirely using IRC. I really enjoyed this exercise because it forced me to learn the basics of IRC and how to communicate effectively while using it. Hopefully we get to experience more IRC use during the course of the semester, because it is a great and effective development tool.


Learning IRC and Editing Wikis

Last week was pretty interesting. Learning how to setup and use IRC was not very difficult, but once we were all in the chat room, everything got crazy. I think that the IRC channel #teachingopensource could be very useful for working closely with other developers as we learn more about open source software.

The Eualyptus project sounds very promising and I am very interested in learning more about it. I am looking forward to digging into the code and hopefully making something useful happen. The main developers do not seem to think that our class could actually contribute much to the project, but I am planning on learning as much as I can and trying to actually make something decent.

As for the editing wiki part of the IRC experience, I found it somewhat unpleasant. I couldn’t get anyone to edit mine because everyone was talking about random things the whole time in the IRC. When I finally got someone to do it, they wrote one line on it that said something like, “I don’t know what to write.” Overall, I learned a little more about editing wikis, but the process of doing so was not simple because of the IRC channel distracting the groups.


Our blogs