User:JMac

(Difference between revisions)
Jump to: navigation, search
m (Part 2-Walk through of an evaluation of the OpenMRS project)
(Part 2-Walk through of an evaluation of the OpenMRS project)
Line 207: Line 207:
  
 
see blog
 
see blog
 +
 +
== FOSS In Courses Activity ==
 +
 +
My chosen project is Sugar Labs.  There are many roles one can play here including tester, writer, etc. The most directly suitable one for the Dickinson senior seminar would be the “developer” role
 +
 +
Links for getting involved as a developer in Sugar labs:
 +
 +
https://wiki.sugarlabs.org/go/Sugar_Labs/Getting_Involved#Developer
 +
 +
https://developer.sugarlabs.org/
 +
 +
1. Now that you have an idea of the possible types of activities or topics, identify one or two that you think would fit in your class. These do not need to be polished. This can be a rough list of ideas.
 +
 +
The most obvious path to follow is to create one’s own activity ([https://developer.sugarlabs.org/activity.md.html]).  But, this is probably falling into the trap of trying to just write some code. I wonder if we can isolate a different type of activity, such as writing a test or clarifying a bug report. The [http://teachingopensource.org/index.php/RIT/The_Course RIT course] had some links that would help you install a virtual machine and an environment for working with Sugar. This is another obvious early activity.
 +
 +
2. In your reading, did you find existing materials? If so, describe how would you modify them to fit your class?
 +
 +
Yes, the [http://teachingopensource.org/index.php/RIT/The_Course RIT course] has plenty of materials that could be cloned and mildly adapted to fit the Dickinson senior seminar.
 +
 +
Key links:
 +
 +
[https://wiki.sugarlabs.org/go/Welcome_to_the_Sugar_Labs_wiki Sugar labs wiki]
 +
 +
[https://wiki.sugarlabs.org/go/Sugar_Labs/Getting_Involved getting involved page]
 +
 +
[https://developer.sugarlabs.org/ dev team page], and also [https://wiki.sugarlabs.org/go/Development_Team dev team wiki page], but the latter seems to be deprecated?
 +
 +
A key question is whether projects will comprise building new sugar “activities” or actually performing development on the sugar code itself.

Revision as of 14:10, 19 May 2016

Contents

Bio

John MacCormick has degrees in mathematics from the University of Cambridge and the University of Auckland, and a doctorate in computer vision from the University of Oxford. He was a research fellow at Linacre College, Oxford from 1999-2000, a research scientist at HP Labs from 2000-2003, and a computer scientist with Microsoft Research from 2003-2007. Since 2007, Dr. MacCormick has been a professor of computer science at Dickinson College. He is the author of two books (Stochastic Algorithms for Visual Tracking, and Nine Algorithms That Changed the Future: The Ingenious Ideas That Drive Today's Computers), has filed over a dozen US patents on novel computer technologies, and is the author of numerous peer-reviewed academic conference and journal papers. His work spans several sub-fields of computer science, including computer vision, large-scale distributed systems, computer science education, and the public understanding of computer science.

For more details please see John MacCormick's homepage at Dickinson College.

Exercises for POSSE 2016-6 workshop

Answers to exercise from "Part 1 – Walk through of IRC Conversation"

  • How do people interact?

It’s a mixture of businesslike interactions, informal suggestions, and occasional humor.

  • What is the pattern of communication? Is it linear or branched? Formal or informal? One-to-many, one-to-one or a mix?

It appears to be a mix of all the above.

  • Are there any terms that seem to have special meaning?

I don’t see any special terms in the regular text. The meetbot lines seem to have special purposes e.g. #info #action

  • Can you make any other observations?

The "actions" that get recorded are interesting, in that they basically seem to list future jobs that need to be done and assign them to specific people. In two of the cases, participants assign a jobs to themselves, but in one case Darci assigns an action to Amber -- it looks reasonably innocuous in this case, but I wonder about the general etiquette of assigning jobs to others within such a project.

  • Bonus question: Why didn't Heidi and Darci's actions get picked up by the meetbot?

I don't know the answer to this. Could it have something to do with assigning an action to oneself?

Answers to exercise from "Part 1 – Anatomy of a FOSS Project"

  • Summarize the roles that you think would be most applicable for your students on your faculty wiki page. If you think that more than a single role is applicable, indicate why.

Designer, developer. Our students are appropriate for both of these.

  • What are the commonalities across roles? What are the differences?

Commonalities include willingness to work with others and an understanding of the open-source approach in general. Differences include specific skills required, such as knowledge of Python and/or JavaScript for the developer role.

  • describe the general process for submitting a bug and indicate the types/categories of tickets listed on this page as well as the information available for each ticket

general process requires opening a new ticket in the automated system and submitting a detailed description. Project members will then take a look at the pocket and confirm it, assign it a status etc. The information in each ticket includes a summary, a status (new, unconfirmed, etc.), an owner, a type (defect versus enhancement), a priority (high, normal), and a milestone (usually “unspecified”).

  • Can you determine from the information provided here whether the project uses a web-based common repository or a local repo?

It appears to be what one would call a local repository (at git://git.sugarlabs.org/sugar-base/mainline.git), since it is hosted by the sugar labs own servers.

  • Include an entry on your wiki page that describes how the release cycle and roadmap update are related.

The release cycle uses a pattern that is standard in software development, with odd-numbered releases being unstable and even numbers stable. For each numbered release, there is a roadmap specifying dates for actual events in that release, such as code freezes of various kinds.

  • Sahana: re Developers, Testers, Designers. For example, are there any commonalities? Is there something distinct for each type of contributor? How is this structure different than the one you found on the Sugar Labs website?

There are distinct features for each type of contributor, but again the commonalities include knowledge of open source methodologies. There are some different roles here, including SysAdmin and translator, which I didn’t see in the Sugar Labs structure.

  • local vs web-based repository?

The command “git clone https://github.com/web2py/web2py.git --recursive” goes to github, which is a web-based repository.

  • Info about Sahana release cycle

The first milestone (0.9.0 is recorded as being “four years late”). Other milestones have no date set, although the 1.0 milestone was “planned for” May 2012.

Part B activities

FOSS field trip

Part 1 – SourceForge

3. How many projects are there in this category?

I chose the category “education.” There are 20370 projects in this category.

4. How many different programming languages are used to write software in this category?

At least 15 different programming languages., the most popular being.

5. List the top four programming languages used to write programs in this category.

Java, C++, PHP, C

6. Identify the meaning of each of the statuses below:

I wasn’t able to find formal definitions of these in the sourceforge documentation. I’m giving my own inferred definitions

1. Inactive

new development is not occurring on the project

2. Mature

main objectives of the project have been completed but development continues

3. Production/Stable

sufficient objectives have been completed that a usable and useful system exists and has been released, but major new features are still planned to be added in future

4. Beta

a usable but incomplete version has been released and feedback from users is being incorporated to improve the software

5. Alpha

an early incomplete version has been released. Users can expect to encounter significant bugs.

6. Pre-Alpha

no usable version exists yet, but some code has been written

7. Planning

little or no code has been written, but designs and overall architecture are being mapped out.


7. Compare two projects in this category that have two different statuses. Describe the differences between the statuses.

Moodle is in “Production/Stable”. Obviously this is an enterprise-quality system in wide use (I am familiar with it and use it myself constantly).

Qucs, the circuit simulator, is in Alpha. I did not download or use it, but based on the comments on the site, it seems to be quite usable and well reviewed already, but with some obvious lacks of functionality.

8. Which projects are the most used? How do you know?

I did a sort by popularity, and the top three were Clonezilla, LogicalDOC and Moodle.

9. Pick a project in your category. Answer the questions below:

I picked Moodle

1. What does it do?

Course management system for educational institutions.

2. What programming language is the project written in?

PHP

3. Who is likely to use the project? How do you know this?

Students, faculty, and tech support staff at educational institutions. This is clear from the overview provided on the Moodle sourceforge page.

4. When was the most recent change made to the project?

The last update was 8 days ago (May 8, 2016)

5. How active is the project? How can you tell?

This is a very active project, with a major release in the last two weeks and another in the last two months. I can tell this from the “activity” page.

6. How many committers does the project have?

I’m not sure if “matters” means the same thing as “maintainers”. There are four “maintainers” listed on the main overview page (koenr , michaelblake , moodler , stronk7)

7. Would you use the project? Why or why not?

Yes. In fact I do use it daily.

Part 2 – OpenHub (explore OpenMRS)

1. Go to: https://www.openhub.net/

2. In the upper-most search space, enter: OpenMRS

3. Click on the OpenMRS logo or link.

4. What is the main programming language used in OpenMRS?

Java

5. How many lines of code does OpenMRS have?

3.7M

6. Click on "User & Contributor Locations" (lower right side of screen). List some of the locations of the developers.

The map became visible but no user locations were visible. A message saying “loading…” was permanently displayed.

7. Go back to the main OpenMRS page. Click on the "Languages" link. How many languages is OpenMRS written in?

15

8. What language has the second highest number of lines of code?

JavaScript

9. Of the programming languages used in OpenMRS , which language the has the highest comment ratio?

Java

10. Click on the “Contributors” link under "SCM Data" menu.

11. What is the average number of contributors in the last 12 months?

About 12

12. Scroll down to the Top Contributors section. How long have the top three contributors been involved in the project?

2-5 years

13. Use the information on the project summary page to compute the 12-month average of commits. What is the average number of commits over the past 12 months?.

535 comments in the last 12 months, which is about 44 per month.

Part 2-Walk through of an evaluation of the OpenMRS project

see blog

FOSS In Courses Activity

My chosen project is Sugar Labs. There are many roles one can play here including tester, writer, etc. The most directly suitable one for the Dickinson senior seminar would be the “developer” role

Links for getting involved as a developer in Sugar labs:

https://wiki.sugarlabs.org/go/Sugar_Labs/Getting_Involved#Developer

https://developer.sugarlabs.org/

1. Now that you have an idea of the possible types of activities or topics, identify one or two that you think would fit in your class. These do not need to be polished. This can be a rough list of ideas.

The most obvious path to follow is to create one’s own activity ([1]). But, this is probably falling into the trap of trying to just write some code. I wonder if we can isolate a different type of activity, such as writing a test or clarifying a bug report. The RIT course had some links that would help you install a virtual machine and an environment for working with Sugar. This is another obvious early activity.

2. In your reading, did you find existing materials? If so, describe how would you modify them to fit your class?

Yes, the RIT course has plenty of materials that could be cloned and mildly adapted to fit the Dickinson senior seminar.

Key links:

Sugar labs wiki

getting involved page

dev team page, and also dev team wiki page, but the latter seems to be deprecated?

A key question is whether projects will comprise building new sugar “activities” or actually performing development on the sugar code itself.

Personal tools
Namespaces
Variants
Actions
Events
Learning Resources
HFOSS Projects
Evaluation
Navigation
Toolbox