Rob Sjodin. Rob Sjodin is an Assistant Professor and Program Coordinator for the Master of Science in Software Engineering degree at Regis University. He teaches both undergraduate and graduate software engineering courses, including ...
Java Software Development
Advanced Java Software Development
Enterprise Java Software Development
Advanced Enterprise Software Development
Android Software Development
Enterprise Android Software Development
Mr. Sjodin has 30+ years of industry experience, including 15 years in the aerospace sector where he developed software for earth-orbiting satellites.
"Part A - Walk through of IRC Conversation":
How do people interact?
Answer: People interact asynchronously: someone will pose a question or state an opinion, and then others will respond accordingly.
What is the pattern of communication? Is it linear or branched? Formal or informal? One-to-many, one-to-one or a mix?
Answer: all of the above. But typically a topic is introduced/started, and then discussion (comments, questions, answers) are focused on that topic.
Are there any terms that seem to have special meaning?
Answer: Yes, #topic #info #action
Can you make any other observations?
Answer: It stimulates collaboration and camaraderie.
"Part 3 – Join and Observe Channel Discussion"
Summarize your observations (of your selected HFOSS project "foss2serve").
Answer: In general, the interaction is very slow; there can be hours w/o any dialogue.
Other questions: What advantages might IRC have over other real-time communication methods (like Google Chat or Facebook Messenger?) Are there potential disadvantages?
Answer: the participants are only those who have an interest in the particular topic.
For what purposes do FOSS projects use IRC channels?
Answer: Collaboration, share ideas, identify/resolve issues.
Why choose IRC over another synchronous collaboration method (like a conference call)?
Answer: It's asynchronous ... it doesn't require a specific, coordinated time for all people to meet.
How can IRC be used to facilitate project management?
Answer: To share ideas among project members, get consensus on tasks/priorities, and coordinate efforts.
In your own words, explain how to find a channel and join it for whichever IRC client you prefer.
Answer: In Colloquy, I join a server (irc.freenode.net) and then specify a particular channel (foss2serve).
Project Anatomy Activity - Sugar Labs On your wiki page indicate the types/categories of tickets listed on this page as well as the information available for each ticket.
Answer: the types of tickets include "defect", "enhancement"
The available information for each ticket includes: Ticket #, Summary, Status, Owner, Type, Priority, Milestone
Can you determine from the information provided here whether the project uses a web-based common repository or a local repo? Place your answer on your wiki page.
Answer: It appears to be a web-based common repository. The URL is git://git.sugarlabs.org/sugar-base/mainline.git
Include an entry on your wiki page that describes how the release cycle and roadmap update are related.
Answer:The Sugar Labs roadmap contains the following items (as found on their wiki page):
Detailed schedule of release dates and freeze points. List of modules and external dependencies. Reference to all the tickets considered for the release. References to the new feature proposals.
The Sahana Eden Project
Developers - they provide training via slides, videos, and chat sessions. The project supports Linux, Mac and Windows. Various hosting platforms, but AWS EC2 is recommended.
Testers - can be non technical users; perform manual testing and creation of new use cases. Supports continuous integration.
Designers - need Graphics Designers, for both the Web Site and the app.
Tracker -- The Sahana Eden bug tracker
How is the information here different than the information found on the Sugar Labs tracker page?
Answer: the main page for the Sahana Eden bug tracker is organized by reports: Report # and Title
For example, some high level reports are Active Tickets, My Tickets, Tickets I have updated. This high level reports serve to filter items based on a particular category.
Click the Active Tickets link. Indicate the types/categories of tickets listed on this page as well as the information available for each ticket.
Answer: the types/categories include defect/debug, documentation, enhancement, task.
"Part B - FOSS Field Trip Activity":
Go to: http://sourceforge.net/
Use the Search feature in the center of the screen to view applications in an area of interest to you (e.g., gaming, sports, music, computing, etc.).
Answer: I searched on "Computing"
How many projects are there in this category?
Answer: 265 programs
How many different programming languages are used to write software in this category?
List the top four programming languages used to write programs in this category.
Answer: Java, C++, C, Python
Identify the meaning of each of the statuses below: (note: I could not find definitions, so the following is my best guess)
Inactive - the project is no longer being developed (worked on).
Mature - the project has met its objectives.
Production/Stable - functional requirements met; know bugs eliminated; available for general use.
Beta - candidate release of full functionality;
Alpha - release of major functionality implemented;
Pre-Alpha - initial release, with a subset of requirements implemented.
Planning - the requirements of the project are being developed.
Compare two projects in this category that have two different statuses. Describe the differences between the statuses.
Answer: a given project will have downloads for its various releases ... a project with Planning status (P2P Software for Distributed Computing) will only have 1 download (Planning), whereas a project with Pre-Alpha status (MediaEncodingCluster) will have multiple downloads)
Which projects are the most used? How do you know?
Answer: you can sort by "Most Popular"; the two most popular are PCC Systems and Ganglia
Pick a project in your category. Answer the questions below:
What does it do? Project "HPCC Systems" is an open source data-intensive supercomputing platform designed for the enterprise to process & solve Big Data analytical problems
What programming language is the project written in? Enterprise Control Language (ECL)
Who is likely to use the project? How do you know this? Data science developers who are working on enterprise problems (via their web site).
When was the most recent change made to the project? last update was 2015-06-22
How active is the project? How can you tell? 108 weekly downloads (from the SourceForge web site)
How many committers does the project have? I don't know :(
Would you use the project? Why or why not? Yes, appears to be a robust solution for enterprise big data problems; and its easy to deploy (less than a hour to deploy a cluster of 50 nodes).
What is the main programming language used in OpenMRS? Java
How many lines of code does OpenMRS have? OpenMSR Core has ~3.8 million
Click on "User & Contributor Locations" (lower right side of screen). List some of the locations of the developers. Boston, Indianapolis, Ft Myers, Cape Town
Go back to the main OpenMRS page. Click on the "Languages" link. How many languages is OpenMRS written in? 15 languages
Of the programming languages used in OpenMRS , which language the has the highest comment ratio? Java, with 35.3%
Click on the “Contributors” link under "SCM Data" menu. *** Note: the link is not working ... I got the following answers from the "Commits" page:
What is the average number of contributors in the last 12 months? 84 (this may not be the "average")
Scroll down to the Top Contributors section. How long have the top three contributors been involved in the project? *** Note: The "Contributors" link is broken
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?. *** The link is broken
Part 2 - Project Evaluation Activity
See Blog ... https://robsjodin.wordpress.com/
Part 4 - FOSS in Course Planning 1
Note: the following links seem to be broken: "introductory assignments", "case study", "document templates and rubrics"
Your HFOSS project:
Regarding my HFOSS project of interest, I’m open to using any/all of the 6 POSSE HFOSS projects in the classroom as describe below … - for graduate practicums and undergraduate guided independent studies (where students work by themselves), I would let the student choose which project they work on. - for undergraduate Software Engineering (where students work on teams), I’m inclined to useOpenMRS because of its modular architecture and rich documentation.
But for the sake of identifying activities or topics within an HFOSS project of interest, I’ll focus on OpenMRS; here’s a list of activities/topics (from the OpenMRS/help page)
- Application Development - UI/Web/Graphic Design - Testing - Documentation
Regardless of which track the student works on, I would have them do the following tasks:
- On ramp: Overview - Getting started - Developer’s Guide - Install OpenMRS - Issues List – the JIRA Issue Navigator - Community Development swim lane, for … o High priority bugs\issues o Long standing issues o Create Schedule
"Part C: "
"Part 1 - Bug Reports":
Define what each of the column names below indicate. Include the range of possible values for 2-7 below. Feel free to explore beyond the page to find more information.
1. ID – a unique identifier of the bug/item.
2. Sev – identifies the severity of the issue, from blocker ("application unusable") to trivial ("minor cosmetic issue")
3. Pri – assigned by the developer to indicate the priority of the issue.
4. OS – identifies the computing environment where the bug was found
5. Product – a project can have many products, and a given product can have many components
6. Status - UNCONFIRMED, NEW, ASSIGNED, REOPENED, NEEDINFO
7. Resolution – FIXED, DUPLICATE, WONT FIX, WORKS FOR ME, INVALID
8. Summary - A one-sentence summary of the problem
Describe how you discovered the definitions and how did you find the information from above (hint: the advanced search shows the options or the Reports link has a link)?
I clicked on “Help” and cycled thru the help pages.
Identify the order in which the bugs are initially displayed?
They are listed by status, with UNCONFIRMED displayed first. But if you select another column, the list will be sorted based on the values of that column.
What is the meaning of the shading of some bug reports? What is the meaning of the colors used when describing a bug (red, gray, black)?
An IRC Conversation yielded the following: gray is enhancement, black: bug whose severity is less than critical; red: bug with severity at least critical red - Normal critical the black - Normal normal
Select a bug that you think that you might be able to fix and look at it more closely (click on the bug number). 517888
Identify when the bug was submitted. 2008-02-21 15:18 UTC by Flavio Percoco Premoli
Identify if there has been recent discussion about the bug? No, the last comment was 2013-08-14 10:03:19 UTC
Is the bug current? No
Is the bug assigned? Yes. To whom? at-spi-maint
Describe what you would need to do to fix the bug. Mouse event listeners would have to be created and registered with the mouse.
Repeat the previous step with a different kind of bug.
"Part 2 - Collective Reports":
Click on the “Reports” link on the top of the page.
Clickk on the "Summary of Bug Activity for the last week".
How many bug reports were opened in the last week? How many were closed?
130 were opened; 89 were closed.
What was the general trend last week? Were more bugs opened than closed or vice versa?
The general trend is 1.5 times as many bugs were opened than were closed.
Who were the top three bug closers? Why is this important to know? The top 3 bug closers are: Matthias Clasen, Bastien Nocera, Milan Crha These individuals appear to be the most active developers (and perhaps are the most familiar with the project).
Who were the top three bug reporters? Are these the same as the top three bug closes? What is the overlap in these two lists? The top 3 bug reporters are Bastien Nocera, Andreas Nilsson, Christian Stadelmann. The overlap between the two lists is ... Bastien Nocera
Who are the top three contributors of patches? The top three contributors of patches are: Sebastian Dröge (slomo), Carlos Soriano, Lionel Landwerlin.
Who are the top three reviewers of patches? What is the overlap between these lists and the bug closers and bug reporters? What is the overlap between patch contributors and patch reviewers? The top three reviewers of patches are: Bastien Nocera, Sebastian Dröge (slomo), Matthias Clasen. The overlap is ... Sebastian Dröge (slomo)
Click on the “Generate Graphical Reports” link. Plot a line graph of the severity of bugs by component for Orca: Select "Severity" for the vertical axis Select "Component" for the horizontal axis Select "Bar Graph" for type of graph Leave the "Multiple Images" as <none> Scroll down and select Orca from the Product menu. Click "Generate Report". What class were the majority of the bugs for braille? the majority of bugs for braille is "Normal".
What other reports can you generate? Line graphs, Pie charts; e.g., for Priority