Monday, March 30, 2009

Read code to find the source of your problems

On my previous blog post, I commented that I wanted to install mercurial in one of our school servers (in which I have no privileges) and what it was a success last week it has become problematic in this second time.

I tried to build and I got this:
azambran@matrix:~/sources/mercurial-1.2.1> python setup.py build
running build
running build_py
running build_ext
error: invalid Python installation: unable to open /usr/lib/python2.5/config/Makefile (No such file or directory)
I looked for the string: "invalid Python installation: unable to open" and found the file "/usr/lib/python2.5/distutils/sysconfig.py", I found the string :
def _init_posix():
"""Initialize the module as appropriate for POSIX systems."""
g = {}
# load the installed Makefile:
try:
filename = get_makefile_filename()
parse_makefile(filename, g)
except IOError, msg:
my_msg = "invalid Python installation: unable to open %s" % filename
if hasattr(msg, "strerror"):
my_msg = my_msg + " (%s)" % msg.strerror

raise DistutilsPlatformError(my_msg)
which lead me here:
def get_makefile_filename():
"""Return full pathname of installed Makefile from the Python build."""
if python_build:
return os.path.join(os.path.dirname(sys.executable), "Makefile")
lib_dir = get_python_lib(plat_specific=1, standard_lib=1)
return os.path.join(lib_dir, "config", "Makefile")
I am leaving this blog post and will follow it up with comments in case somebody needs the solution to this problem.

The main goal of this post is to show that even if you have no clue about the code that you are using you can still reach the internals of a large code base. Following this approach will help others who might want to help you and help you narrowing down the questions that you ask.



Creative Commons License
This work by Zambrano Gasparnian, Armen is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.

A piece of the Mercurial guide for students

If you are still interested on this Mercurial guide for students, we will be releasing it pretty soon (since our assignment is due this Friday).

One of the parts that I am writing is explaining many concepts by using simple examples. If you want to have a look at it you can do so by reading in the next section of this post.

Another part of what I will be writing is how to setup your own infrastructure since you can't always rely on school to set things up for you. In my case scenario, I chose our school's server called "matrix" in which we have ssh access and has python 2.5 installed.
  • ssh into the server
  • wget http://www.selenic.com/mercurial/release/mercurial-1.2.1.tar.gz
  • tar -xzvf mercurial-1.2.1.tar.gz
  • cd mercurial-1.2.1
  • python setup.py build
  • python setup.py install --prefix="${HOME}"
  • echo "export PYTHONPATH="/${HOME}/lib/python2.5/site-packages" > ~/.bashrc
Unfortunately, I have tried to repeat this installation on my matrix account and it is not happening. I will do a follow up blog post regarding this issue.





Create the repository
First thing you have to create is the repository which will hold the project:
  1. open the command prompt
  2. create a folder where you will have your project(s)
  3. inside the folder type this command
    hg init
You will now see a folder called ".hg" (the period in front of a folder indicates a hidden folder in Linux) this folder contains the metadata of your repository.

Create the first file
You have many ways to create files but if you are still in the command line do the following:
notepad readme.txt
Modify the file and save it. Back in the command line type the following:
hg status
The output of this will show you the following:
C:\Documents and Settings\student\hg_project>hg status
? readme.txt
The question mark indicates that there is a file that is not part of the VCS system.
If you try an "hg commit", you will get a message saying that nothing has changed.
If you try an "hg diff", you will see that there is no output

To add this file for the next commit do the following:
C:\Documents and Settings\student\hg_project>hg add readme.txt

C:\Documents and Settings\student\hg_project>hg status
A readme.txt

C:\Documents and Settings\student\hg_project>hg diff
diff -r 000000000000 readme.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/readme.txt Wed Mar 25 19:02:48 2009 -0400
@@ -0,0 +1,1 @@
+hey there
\ No newline at end of file
If we now look at the status of the repository we can see that the file has been "added" indicated by the "A" in front of the file name. You can also see that "hg diff" shows the differences of your working copy.

NOTE: The file is not part of the repo yet. It is only part of your local working copy.

Let's now commit the file into the repository, to do so:
C:\Documents and Settings\student\hg_project>hg commit -u me@nowhere.com -m "adding readm
e.txt file"

C:\Documents and Settings\student\hg_project>hg log
changeset: 0:b85f2cde9d27
tag: tip
user: me@nowhere.com
date: Wed Mar 25 19:07:09 2009 -0400
summary: adding readme.txt file
We indicate who the user that is doing the commit is with the parameter -u (stands for user) and we add a message by using the parameter -m (stands for message) and indicate the message between double quotes.

With the command "hg log" we can see that the changeset is number 0 (let's ignore for now the number after the colon TODO), the user who commited the changeset (which we provided) , the date and the summary (which we provided as well).

Modifying multiple files but only one changeset
TODO

Back out a changeset
TODO

Clone a repository living in your local file system

If you want to have more than one working copy of a repository you do it like this (note the quotes):
hg clone "C:\Documents and Settings\student\hg_project"
This might be nonsense but it might help you to work on separate bugs.

NOTE: this second working copy takes less space than the first one. Mercurial did not really created copies of your first repository but created symbolic links to them. These files will only really be created if you make changes to them. TODO QUOTE

If we do changes in the readme.txt file from the second working copy and we do a commit:
C:\Documents and Settings\student\other_working_copy\hg_project>hg status
M readme.txt

C:\Documents and Settings\student\other_working_copy\hg_project>hg commit -u sec
ond@nowhere.com -m "This is a commit from the second working copy"

C:\Documents and Settings\student\other_working_copy\hg_project>hg log
changeset: 1:522aef5bea8a
tag: tip
user: second@nowhere.com
date: Wed Mar 25 19:25:07 2009 -0400
summary: This is a commit from the second working copy

changeset: 0:b85f2cde9d27
user: Me_me
date: Wed Mar 25 19:07:09 2009 -0400
summary: adding readme.txt file
You can note that the


Who did it and what changes for a certain changeset
If you want to know who did what in a certain changeset, you can do so by dumping the header and diffs for one or more changesets. In the following example we use the export command and indicate changesets 0 and 1.
C:\Documents and Settings\student\other_working_copy\hg_project>hg export 0 1
# HG changeset patch
# User Me_me
# Date 1238022429 14400
# Node ID b85f2cde9d2702abb2df3d6d44cfb212d00f3a48
# Parent 0000000000000000000000000000000000000000
adding readme.txt file

diff -r 000000000000 -r b85f2cde9d27 readme.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/readme.txt Wed Mar 25 19:07:09 2009 -0400
@@ -0,0 +1,1 @@
+hey there
\ No newline at end of file
# HG changeset patch
# User second@nowhere.com
# Date 1238023507 14400
# Node ID 522aef5bea8adfb62ccaacfca1d35c4f2fe90044
# Parent b85f2cde9d2702abb2df3d6d44cfb212d00f3a48
This is a commit from the second working copy

diff -r b85f2cde9d27 -r 522aef5bea8a readme.txt
--- a/readme.txt Wed Mar 25 19:07:09 2009 -0400
+++ b/readme.txt Wed Mar 25 19:25:07 2009 -0400
@@ -1,1 +1,2 @@
-hey there
\ No newline at end of file
+hey there
+modification from second working copy
\ No newline at end of file





Creative Commons License
This work by Zambrano Gasparnian, Armen is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.

Saturday, March 28, 2009

How to add a creative commons license to your blog

I always wanted to understand the creative commons licenses and it is now that I decided that all my blog posts should have it by default making life easier for other people to reshare whatever I blog about.

I visited this link to generate the code snippet by just answering few questions:
and I also read a little bit this document which explains briefly some concepts:

This is the license I chose Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License and here is the break down:
  • BY - created BY
  • NC - No Commercial use
  • SA - Share Alike
I have decided to add the snippet of code in every single post by adding it to Blogger's "Post Template" under "Settings->Formatting"

Make other people's life easier and keep just the rights you want!




NOTE: I tried to use the following code to show you what the code snippet looks like but I ended up using a "textarea". Is there a better way to share HTML code? http://bguide.blogspot.com/2008/02/howto-add-custom-css-class-to-blogger.html


Creative Commons License
This work by Zambrano Gasparnian, Armen is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.

Monday, March 23, 2009

Survey for Senecans who took the open-source course

I am writing a research paper regarding the skills that you gain as a Seneca student from taking the open-source courses for my BTR820 course.

If you are taking the course(s) or have taken it, I would greatly appreciate if you can give few minutes to do this survey that I have prepared. 

I am not sure if you can fill the form from the blog post so I recommend you to follow the link provided.

Thanks ahead of time!



If you have trouble viewing or submitting this form, you can fill it out online: 
http://spreadsheets.google.com/viewform?formkey=cEdwdkVYei1ENnVwNm5ESXdsclU0UXc6MA..

Open-source course survey

This survey is totally anonymous and tries to gather information regarding students' opinions regarding if taking the open-source course will help them in their career or if the open-source course has motivated them in any special way compared to a traditional course.

By doing this survey you are contributing on how this course can be helpful for other people who might want to implement this type of course in other schools. This survey is done by Armen Zambrano a Seneca's BSD student. No personal information is being collected and I will make the results publicly available athttp://armenzg.blogspot.com/ before the end of the semester.











No, not reallyYes, it will be really useful



Wednesday, March 18, 2009

White Paper in open source and education -> rescoping

After the insightful moments at HFOSS and many discussions followed in the mailing list of teachingopensource.org, I have to narrow down the scope of my white paper in open source and education.

This decision was made after talking with my professor today and it is not the first time I did this since I came back from the symposium. The first time I narrowed it down to the polytechnic schools in Ontario since I don't understand properly the post-secondary system in United States and my experience is with an applied college rather than a theory and research oriented university.

Trying to narrow it down to the polytechnic schools inside of Ontario does not work either since it would require me to get in touch with several schools and maybe for nothing since teaching open source is not yet normal. Even the term polytechnic cannot be extrapolated to an equivalent type of school in the United States and it is not an accepted term in here either!

What I am going to do
I have three more weeks before the due date and I am going to narrow it down to the advantages a Seneca student gains when taking the open-source courses compared to other Seneca students and show how the skills gained were immediately put into practice when I was doing my internship with the Release Engineering team of Mozilla. I hope Lukas Blakk, Anthony Hughes, Cesar Oliveira and Ben Hearsum could help me by telling me what their own experience is from working at Mozilla and having taken the open-source course or the crash course at Seneca.

Funny enough, this advantage that I gained is going to be lessened since the majority of my class mates are either currently taking the open-source course with Jordan Anastasiade or they took it with Dave Humphrey last Fall.

This is going to require to write again a new outline, identify my ideal reader and all the work I had already done but it will be totally worthy and more personal.

Stayed tuned!

Thursday, March 12, 2009

Justin Fitzhugh in Toronto

Since I forgot to bring my screaming monkey today to the office to welcome Justin with it, I dedicate him this blog post.























This goes for you Sean! ;)

Monday, March 09, 2009

HFOSS - Interview with Bruce Perens

And the last of the interviews is to Bruce Perens who is a leader in the Free Software and Open Source community. He is creator of the Open Source Definition, the manifesto of the Open Source movement in Software. He’s founder or co-founder of the Open Source Initiative, The Linux Standard Base, Software in the Public Interest, and No-Code International.

You can either watch the video interview or read over the answers


Creative<br />Commons License
This video is licensed under a Creative Commons Attribution 3.0 Unported License

NOTE: the video does not show up on the planet, follow this link to see all video interviews

What's the big picture opportunity in connecting education and open source?
  • Bruce believes that the biggest opportunity is for 3rd world countries and people with low funds, which can be said of many U.S. schools
  • Bruce mentions that open-source can benefit many schools since it gives control to the school and the ability to modify the software to meet their needs
  • He explains how at some point he realized that he was not getting the value he wanted from paid products and he joined the open-source community
What specific projects or courses are you working on that make the link between open source and education?
  • Education and open-source projects are linked if they do give power to them
  • He has been teaching how to use open-source with radio broadcasting
  • At a Norwegian university were he worked, he helped build a lab for really low cost by using GNU Radio
  • School all around the globe could have graduate level courses since they would not have to do large investments to set up a lab
  • Open-source projects can give a lot of power and capabilities to people that they did not have before
Do you have any advice on how Mozilla could best engage with educators and students?
  • Bruce suggests that Mozilla could have their experienced developers appear in school's classes and that would be of great use for both educators and students


NOTE: Modified to add license note

HFOSS - Interview with Ralph Morelli (Trinitty College)

Here is Ralph Morelli's interview, he is one of the HFOSS organizers. He is a professor in the Computer Science department at Trinity College.

You can either watch the interview or read his answers.


Creative<br />Commons License
This video is licensed under a Creative Commons Attribution 3.0 Unported License

NOTE: the video does not show up on the planet, follow this link to see all video interviews

What's the big picture opportunity in connecting education and open source?
  • he believes that is very possible
  • open-source has spread to more than just in software development; examples of this are: wikipedia, open-source science, open-source politics...
  • if open-source has broaden, it will eventually become part of the Computer Science in academia
What specific projects or courses are you working on that make the link between open source and education?
  • they have several projects in Humanitarian FOSS
  • they are involved with Sahana, an open-source disaster management system
  • they wrote a module to help coordinate volunteers
  • this system is being used in New York city
  • in China, the module has been tried to be internationalised
  • another projects are being done for Google Andriod
  • Ralph believes that Android is going to revolutionize the hand-held field
  • the project connects with the Sahana project to recognize victims of a disaster
Do you have any advice on how Mozilla could best engage with educators and students?
  • Ralph taught a FOSS101 class for non CS major students
  • Students loved the Mozilla project and how it is important for the big software development ecosystem
  • even students that are not computer science majors can get involved into the Mozilla project
  • if students can say to other students that they are contributing to a product that they use might help other students to gain interest in computer science


NOTE: Modified to add license note

HFOSS - Interview with Clif Kussmaul

The interviewee for this video is Clif Kussmaul who is an Associate Professor of Computer Science at Muhlenberg College. He uses a five steps USABL model in which students use FOSS, study it as a worked example, add minor enhancements, build larger components, and finally leverage FOSS for other purposes.

You can read more regarding what Clif Kussmaul has accomplished by checking out the list of position statements. Once again you can either watch the video or read the notes below.


Creative<br />Commons License
This video is licensed under a Creative Commons Attribution 3.0 Unported License

NOTE: the video does not show up on the planet, follow this link to see all video interviews

What's the big picture opportunity in connecting education and open source?
  • students get to see bigger projects and more realistic projects sooner
  • they don't have to wait until a capstone project which most of the times get thrown away
  • early in their curriculum they can write small things that can benefit a bigger project
What specific projects or courses are you working on that make the link between open source and education?
  • they get involved students with open-source in two courses: the software engineering course and the capstone course
  • in the software engineering course, students have to use open source tools, make small additions, fixing bugs
  • some students end up using other projects to leverage and simplify problems
  • half of the students in the capstone course end up taking on an open-source project
Do you have any advice on how Mozilla could best engage with educators and students?
  • get started people in small ways
  • a browser can sound a really complicated thing for people
  • plugins can be easily written and don't sound so intimidating


NOTE: Modified to add license note

HFOSS - Interview with Carlos Jensen (Oregon State University)

One more interview at HFOSS, this time we are interviewing Carlos Jensen who is currently an assistant professor in the School of Electrical Engineering and Computer Science (EECS) at Oregon State University (OSU). He received his BS. degree in Computer Science from the State University of New York (SUNY) Brockport, and a Ph.D. in Computer Science from the Georgia Institute of Technology in 2005, where he was a member of the Graphics, Visualization and Usability Center (GVU).

You can either watch the interview or read the answers in this blog post.


Creative<br />Commons License
This video is licensed under a Creative Commons Attribution 3.0 Unported License

What's the big picture opportunity in connecting education and open source?
  • find out what the challenges are for newcomers and how to make it easier
  • in education they have short semesters
  • students have to be able to do something meaningful in a short period of time
What specific projects or courses are you working on that make the link between open source and education?
  • they have a number of various research projects
  • they are researching if visual code analysis tools can help speed up the structure of the large code base and who contributes in which modules
  • they are developing open-source hosting environments
  • they want to encourage mentoring and other non-technical skills
  • in sourceforge it is more important the number of commits of a user
  • in education it is more important who you connect to and how you participate in the process
Do you have any advice on how Mozilla could best engage with educators and students?
  • Mozilla could help with the outreach
  • Carlos works at a research university which is as well a state university
  • students don't think that Google Summer of Code or getting involved with Mozilla is something they can reach
  • Mozilla could highlight success stories so other students can believe in this
  • currently there is a believability gap


NOTE: Modified to add license note

HFOSS - Interview with Leslie Hawthorn (Google)

Here is the interview with Leslie, you can either watch the interview or read over hear answers.
Here is a little biography of her:
Leslie is a Program Manager for Google’s Open Source Programs Office, where she’s the Community Manager for the Google Summer of Code Summer of Code community. She recently conceived, launched and managed the Google Highly Open Participation Contest, the world’s first global initiative to get pre-university students involved in all aspects of Open Source software development. Leslie has also organized more than 100 open source conferences and hackathons, most held at Google’s Corporate Headquarters in Mountain View, California, USA. When not wrangling F/LOSS developers, she’s usually speaking about Open Source, F/LOSS in education, and community building or writing for the Google Open Source Blog. Leslie holds a Honors B.A. in English Language and Literature from U.C. Berkeley. Her personal website is http://www.hawthornlandings.org.



Creative<br />Commons License
This video is licensed under a Creative Commons Attribution 3.0 Unported License

What's the big picture opportunity in connecting education and open source?
  • it is a big opportunity to learn and grow
  • they have heard through many employers that students are not immediately ready to contribute since they have never worked with version control systems, they have not worked with distributed teams
  • the opportunity for students to get real world software development skills
  • being able to connect theory and the real world components of software development
What specific projects or courses are you working on that make the link between open source and education?
  • Google Code University - curriculum around open source
Do you have any advice on how Mozilla could best engage with educators and students?
  • get students even younger
  • expose young people to technology
  • technology can be molded
  • source code is free speech
  • ask educators what they need
  • educators are normally poorly paid and poorly resourced
  • empower the educators by asking them what they need to be successful
  • create course ware materials, training workshops, etc
  • help them so they can pass it on to their students


NOTE: Modified to add license note

HFOSS - Interview with Greg Dekoenigsberg (Red Hat)

Here is the interview I did to Greg and if you don't know who Greg is, here is a little biography.

Greg is Consulting Community Architect at Red Hat. He was the founder and first chairman of the Fedora Project Board, the governance body for the Fedora Project, which now has over 13,000 volunteer contributors. He also serves on the oversight board for Sugar Labs, the organization that drives development of the Sugar educational platform. He has been with Red Hat since 2001. He blogs at http://gregdek.livejournal.com.

You can watch the following video interview or read his answers in this blog post.


Creative<br />Commons License
This video is licensed under a Creative Commons Attribution 3.0 Unported License

What's the big picture opportunity in connecting education and open source?
  • every senior capstone project that is not open-sourced is a gigantic opportunity wasted
  • students are able to produce really good work that can benefit the world
What specific projects or courses are you working on that make the link between open source and education?
  • Greg says that they are working with Chris Tyler from Seneca College on how the Fedora community could get involved with higher education
  • Chris has been able to bring his students to the Fedora project with a deep understanding of the project and has become a board member
  • take what we have learned from Seneca in the last year and provide other professors that embedded "bootcamp" type of experience
  • Greg mentions that until you have not lived the open source experience is really difficult to teach it
Do you have any advice on how Mozilla could best engage with educators and students?
  • currently Mozilla is leading the way
  • we have to find out how to do more of the same in a scalable way
  • give to as many professors as possible the experience to be in an open-source community
  • he suggests that we have to demistify the scary parts of open-source


NOTE: Modified to add license note

HFOSS - Interview with Timothy Budd (Oregon State University)

Timothy Budd is an associate professor of computer science at Oregon State University and I had the opportunity to interview him at the HFOSS' symposium. He has been able to teach an open-source course at the Senior level at Oregon State University and he is interested to integrate open source into all levels in the CS curriculum


Creative<br />Commons License
This video is licensed under a Creative Commons Attribution 3.0 Unported License

What's the big picture opportunity in connecting education and open source?
  • help students to get involved with the world outside university
  • get experience collaborating with wide and dispersed communities
  • technologies in open-source are not taught in lectures
  • students need to learn on their own
  • employers are very anxious for students with these abilities
What specific projects or courses are you working on that make the link between open source and education?
  • open-source can be integrated into many courses in the curriculum
  • students can learn about projects like OLPC and Sahana
  • students can help evaluate software for the OLPC project before they even learn how to program
  • they can see implemented concepts like stacks in real project
  • Tim also teaches the Open Source Development course which is a senior level course and students get to work on large projects
Do you have any advice on how Mozilla could best engage with educators and students?
  • educators need an easy route to get involved
  • need of a repository of easy tasks like the Linux janitors - it is a less intimidating way to get people involved
  • it is missing a set of steps to take to gain confidence to make bigger contributions

You can read more regarding of what Timothy has been doing by going to the list of papers submitted to HFOSS.

NOTE: Modified to add license notice

Wednesday, March 04, 2009

HFOSS - paper presenters

The following paper presentations are happening with slide presentation and I believe that they take less than 15 minutes.

Position statements are next after these presentations.

NOTE: Slides are not available or linked from the website
NOTE 2: Excuse me if some notes are not easily understood

Presenters:

Comments:

Some of the comments during the presentations worth highlighting were:
  • Best teams have been the ones that CS students have been mixed with students from other disciplines
  • Some people highlighted that what Linda has been doing makes it easier to help NPOs with open source tools since they are most graphical rather than command line oriented
  • Students do not learn to read code before writing it
  • Lack of tool knowledge by students

Notes from the presentations:

Timothy A. Budd (Oregon State University)

"A Course in Open Source Development"

  • Paterson's editorial - Open Source course would be the course I would love to take
  • We teach writing before reading code - wrong way
  • Important about Open Source:
    • Code
    • Community
    • Tools and self-development
  • Process is not well articulated - No text books in this
  • Professor teach what they have been taught. Who has experience in FOSS
  • Open source merit badges
  • First assignment - what is your passion? do some introspection
  • Next assignment - contribute something of wikipedia
  • Make the students present
  • Outside speakers
  • A paper or patch every two weeks
    • it doesn't have to be accepted
    • peer reviewed by students
  • It is all about the process, not the product

Gary Thompson (San Francisco State University, Sun Microsystems)


  • this is a course in distributed development
  • Global Software Engineering
  • a student's project example - http://csc640-03.dev.java.net
  • every day he sees the need of developers that have the open source methodologies
  • dstributed collaborative class among few universities
  • this is a process oriented class, not a technology oriented class
    • globalization
    • outsourcing
    • and others
  • students learn by doing things
  • break students into teams and assign project
  • they have to go through the whole software development cycle
  • we treat the team as start ups
  • we provide all the teams the needed tools
  • software development tools
    • netbeans, java EE, linux, open Solaris
  • collaborative tools
    • archive mailing lists, version control, skype, IM
  • require the completion of 6 milestones
  • description of milestone 0
    • first 2 weeks of class
    • they have to setup the environments
    • students normally don't estimate properly how much work it takes to setup the tools
    • this milestone helps them deal with that immediately
  • CCLI Grant Proposal to National Science Foundation
  • he presents some publications on their last slide


Yunrim Park (Oregon State University)

"Supporting the Learning Process of Open Source Novices: An Evaluation of Visualization Tools"

  • this presentation talks about that visualization tools helps the learning process of the source code. It also explains the experiment
  • overwhelming
  • feeling that you have to know the whole project before you can submit patches
  • dealing with a large code base
  • learning about the community
  • interaction with existing members of the community (intimidation)
  • finding entry points (hard)
  • lowering barriers: visualization
    • lower the "cost" of joining OSS projects?
  • they did an experiment to see if visualization tools help them
  • group A
    • access to open source sourceforge website, wiki, tracking system
  • group B
    • two eclipse plug-ins
  • group C
    • two standalone tools
  • Change history (Augur)
    • you can see in different colors the authors of the modifications
  • Code Structure (Creole)
    • you can see a diagram on how the source code is connected
  • completeness vs correctness
  • in SUMMARY:
    • information visualization helps
      • Creole and Version tree both provided insights into overall code organization and structure
      • Source Forge was really intimidating
    • Females showed low self-efficacy in activities that involve close interaction with other members


Cay Horstmann (San Jose State University)

"Challenges and Opportunities in an Open Source Software Development Course"

  • The OSS Class at SJSU
  • the focus on gaining an understanding of the open source methodologies, business aspects
  • students are not very tools savy
    • version control
    • build automation
    • patching
    • test automation
    • cross-platform development
  • we have to spend a lot of time in teaching tools
  • tools are not the only problem
  • they lack the human skills
    • reading before asking
    • asking good question
    • putting yourself into their shoes
    • effective participation in discussions
    • submitting good patches
  • business and legal background
    • licenses
    • paid vs voluntary contributions
    • motivation
    • organizational structure
    • open standards
    • patents and copyrights
  • challenges
    • vast difference in student skills
    • many students lacking tool knowledge, cross-platform skills
    • limited experience with OSS products (often only Firefox, Eclipse)
    • social skills: asking questions, understands other perspectives
    • surprise: the facebook generation is shy about being out in the open
    • surprise: bad coders also most lacking in business skills
  • benefits
    • successfully working with large code base greatly increases confidence
    • students were motivated to do better when seeing marginal coding practices
    • tools become second nature
    • students gain respect for platform and configuration issues
    • first exposure to legal, business, professional issues for many students
  • conclusions
    • course stresses skills that are valued by employers
    • have realistic expectations
    • push for curricular improvements
      • tools taught earlier
      • learn how to read code, not just write it


Linda Seiter (John Carroll University)

"Computer Science and service learning: Empowering nonprofit organizations through open source content management systems"

  • capstone course
  • traditional issue - sustainability of that project
  • NPOs are the least capable to maintain projects
  • John Caroll University - Center for Service and Social Action
    • 2007 - 1300+ volunteers (~3000 undergrads)
    • 70+ nonprofit community partners
    • no computer students unfortunately got involved
    • business school case studies
      • have web presence
      • charity events
      • lack of technical staff
  • NOSI - Nonprofit Open Source initiative
    • class taught at their university
    • most popular FOSS software
      • CMS
      • CRMS
  • CS444 - Adaptive and open software systems
    • computer info systems learning objectives
    • free and open artifacts
    • explore business and societal impact of FOSS
    • readings, peer review
  • CS444 - Service Learning
    • build web site
    • train end users of the CMS system
    • service activities with community partner
    • contribute to open source CMS
  • She shows a web site as an example:
    • "Interfaith Hospitality Network of Greater Cleveland"
    • "Thea Bowman Center"
  • Good together: FOSS + NPOs

HFOSS - dicussion panel

Here are some things that I was able to catch during the discussion panel.
Some of these have a question/answer style but some are just notes from an answer or from an independent comment.

Audience:
Laptops unfortunately come with Vista (proprietary software)
At their local stores they will only buy a windows laptop

Answer:
Most vendors will help you have laptops with customized installations of Linux
Netbooks are great to run Linux and are inexpensive
USB Linux boot flash drive

Audience:
There ethical issues using proprietary software, it makes institutions unable to provide the tools needed to students for free
Would you give a book to a student and not allow them to take it home?
They can't take the resources they need home
Teachers can't download software and install it in school stations
Students can't do their homework unless they buy Office, XP and other tools

Answer:
CDs with needed tools would be great

Answer:

I don't know that the question was
Foster mentality that projects are things that you work on
A project is something that you are inspired to work on and don't wait for a professors to tell you what to add or how to continue

Audience:
K-12 creating games and sharing them online follows an ideology of sharing philosophy
Games help self platforms to be sold or be attractive

Audience:
Open source for women might not be as appealing idea; who likes the idea to go home after work and getting involved in writing code?

Answer:
open-source has a lot misconceptions which scare women away
Women don't work with computers when they get back at home
A lot of things in big open-source projects are not just coding

Audience:
I am an o.s. maintainer and I don't know how to get an educator to ask how I can help them

Answer:
We have been like this for many year, if there is a place to fix that is in here. We have educators in here that we say we are here and open-source projects maintainers that we are in here. We are finally in the same room

Audience:
How can we prepare educators to teach open source? One week courses?

HFOSS Bruce Perens talks to educators

I don't know what is the best way to pay attention and talk of what is going on but I will try my best. Probably next blog posts won't be as lengthy as this one. Bruce is giving me enough time to write all this and listen at the same time :)

Before I mention what Bruce Perens is talking, I want to mention that I have met again with Greg Dekoenigsberg (Red Hat) and met for the first time with Carlos Jensen (Oregon State University) (who is from Madrid, Spain, yay!!)

Greg mentioned this:
  • How can we replicate the Seneca experience? How can we have more students in other places to contribute?
  • The professor has to be involved with the open source project. They can't just stand on the side and watch their students hack. They have to know who to connect their students with.
  • How can we make cap stone projects to be meaningful. How can they be a module that contributes to projects world wide and really used by others.
  • There is so much that can be learned from contributing to an existing base code rather that writing your own from scratch and in a rushed manner
  • He also mentioned briefly about the Red Hat Academia initiative and their certification idea

Carlos mentioned some reasons of why it is a big barrier for people to get involved
  • "How much time is it going to demand from me?" - people don't have a way to measure how much the time impact will be
  • Mailing lists - people are afraid of being bombarded with mail and being flamed (ask a *silly* question and get a bad response) - their studies show that this flaming ratio is lower than assumed
  • He also asked me about Gregorio in Madrid since he is interested on trying to have programs abroad for students and open-source would be a great course
  • These types of program try to teach courses like ethics and usability since students are distanced from their usual "habitat"
  • He talked about his colleague Timothy Budd who is more involved with the teaching part and Carlos is more involved with the infrastructure for students and faculty
  • He also mentioned about a closed-open-source repository in their school for students before they hit the real communities

Carlos is going to present this position statement:
Building a CS Platform for Learning An Open Source Approach - Carlos Jensen
and talk about the OSWALD project.

They create a really cheap Linux box (less than $200) for students not to be scared of breaking it. Most students are afraid of breaking their personal computer by installing Linux or even having a virtual machine. It also includes gaming capabilities to use for other courses.











Bruce Perens talks:
Asks to the educators: What do you want to get out of this conference?
  • Find things to tell my students
  • A good story
He is explaining the story about how open source came to be for all educators to be in the same page of background.

He mentioned these concepts:
  • computers used to come with source code included
  • share code with friends
  • pay for code
  • business differentiation
  • business side of open source
  • volunteer side of open source
  • Microsoft as a business limiter
  • proprietary software does not allow you to modify anything
  • most open source nowadays is involved with businesses
  • freedom
  • open source is very community oriented
  • computer engineering graduates should have a strong minor since all they know is about computer engineering
  • creative artists learn mostly applications and they should learn about programming as well - he mentions LOGO as an example (Armen says: good all times with the turtle and the 5"1/2 floppy disk!!)
How can we get students involved open-source?
  • open-source enthusiasts work during the day and they spend time out of work hours to contribute to their open-source projects
  • we had students who continued in the project they started working on
  • he talks about students who take an open-source course and don't get the sense of ownership of their project and continued to another semester without continuing involved with that project
  • what happens if you don't contribute back? in every new release you will have to port your patch forward
  • let's not work just with computer studies students since our world is increasingly being controlled with computers. This is happening in every field
What do we get when we do all this?
  • shall we have freedom? shall we have self-control?
  • you have the power with your students to lead them in ways that were not available before
  • open-source has been mainly written for love
  • if you want to write a good software hire a professional, if you want it to be written beautifully get a volunteer
  • you also get the look over the shoulder ability - you can check what the code is really doing
The panel discussion is next to come

Tuesday, March 03, 2009

I made it to Chattanooga! - Humanitarian FOSS symposium

After 7 hours that I have been switching flights, car and shuttle I am finally in here in the Chattanooga Choo Choo hotel. There is actually a train in the hotel! (pictures tomorrow)

I have been able to go through HFOSS's agenda of the symposium and the papers that are being presented.

My day will look like this tomorrow:
I will be online and blogging as things happen but will be offline when I will be doing the interviews.

Let's see how it all goes!

Monday, March 02, 2009

Student's guide on using mercurial - Working outline

We are writing a student guide that will help first year students to deal with the concepts of Version Control Systems. We have chosen mercurial as the tool that we will use for our practical examples since we know how easy and powerful it is.

This user guide will help students from CS programs since at some point they have to deal with versioning control systems in some of their courses and later on when they reach the development world after graduation.

We believe that there is a knowledge gap in our school and learning the concepts and the tools as students will empower us to contribute in a better manner in school and in the real world.

Here is the working outline which we have divided into the theoretical concepts involved and the practical examples. We also see the need to help students not to depend on their schools' infrastructure by giving them tricks on different ways to set their own setups.

By the way, which discussion group would you suggest me to use if I want to ask how you guys use mercurial and how you manage your patches, merges and others?

Let's the learning begin!

WORKING OUTLINE

SECTION 1 – THEORY PART
  1. Introduction
    Introduce readers to purpose of paper
  2. What version control systems are
    Explain that they are used mainly for source code
    1. File locking and versions merging
      Explain the differences between them. We are going to explain the second one
    2. What a distributed VCS is
      Explanation
    3. Advantages over non-distributed
      Explain the advantages
  3. VCS concepts
    1. Versioning
    2. Diffs
    3. Patches - Reviews
    4. Branching
    5. Merging
  4. Use of VCS in school
    Find what are good reasons to for students to use it
    1. Assignments
      Many students have done collaboratively assignment without VCS
    2. Real world experience
      Explain why using VCS early as a student is helpful to the reality of developers

SECTION 2 – PRACTICAL PART
  1. Work on bugs - Lifecycle of a healthy patch
    Explain few scenarios from developers’ workflow
  2. Mozilla and Seneca’s workflow
    From our experience explain: bugzilla, review process, IRC, pastebin, commit privileges
  3. How to setup your own repositories
    Students should not rely on school to setup infrastructure for you
    1. Free services – github, assembla, Google code
      Explain few of the services available out in there for students to use
    2. Your own Mercurial repositories
      Show how to setup a mercurial repositories with different setups:
      1. on the spot
      2. using school servers
      3. using your home server
  4. Advance work/patch management – Mercurial queues
    This last section will be an external contributed section

L10n-Release engineering bugs' big picture

At some point during last fall, I was suggested to add dependencies on all the bugs that had to do with L10n's release infrastructure to be able to see the big picture and what was left to fix.

Today, I decided to look at the big picture and we have gone a long way since last year. Currently, we are bringing a lot of the release engineering's infrastructure up in sync with Axel's setup which will improve the repack on change process and add the compare-locales into our systems.

These are part of the steps that have been taken in the last months that will help us reach the day that L10n nightly builds will actually have nightly updates. Yay!
It is great having been able to work closely with Axel and Coop, and a great opportunity for me to help make things better and learn a lot from them!

Without further delay, here is the "big picture":
VIEWER'S DISCRETION IS ADVISED






NOTE: There are few other bugs that are isolated and that did not make it to this image. Yes, there is more to fix and much to improve but we will get there ;)