User:Rmezei

From Foss2Serve
(Difference between revisions)
Jump to: navigation, search
m
(FOSS in Courses 2 (Instructors))
 
(47 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Razvan Alex Mezei ==
+
== Razvan "Alex" Mezei ==
Razvan Alex Mezei is an Assistant Professor in the Donald & Helen Schort School of Mathematics & Computing Science at Lenoir-Rhyne University. [[http://mat.lr.edu/faculty/mezei LRU webpage]]
+
  
Dr. Mezei holds:
+
'''Name:''' Razvan A. Mezei  
* a PhD in Mathematics (2011), from the University of Memphis, USA
+
* a MS in Statistics (2011), from the University of Memphis, USA
+
* a MS in Mathematics (2008), from the University of Memphis, USA
+
* a MS in Computer Science (2007), from the University of Oradea, Romania, and
+
* a BS in Mathematics and Computer Science (2005), from the University of Oradea, Romania.
+
  
His research interests in Mathematics are in the area of Approximation theory, as well as in Numerical Analysis, and in Inequalities. In Computer Science, his interests are related to Programming Languages, Data Structures and Algorithms.
+
'''Preferred name:''' "Alex"
  
In his spare time, Dr. Mezei enjoys taking pictures, lots of pictures. His personal collection of pictures exceeds 100k.
+
'''Position:''' Assistant Professor, Computer Science, Saint Martin's University
  
 +
'''Page:'''  [https://www.stmartin.edu/directory/razvan-alex-mezei-phd SMU webpage]
  
== Introduction to IRC - SAHANA-EDEN ==
+
'''Interests:''' Applied Mathematics (Approximation theory, Numerical Analysis, and Inequalities) & Computer Science (Open Source, Programming Languages, Data Structures, Algorithms, Healthcare Informatics, and Cybersecurity).
The activities on #sahana-eden were quite limited.
+
The group seems to be more active on https://groups.google.com/forum/#!forum/sahana-eden
+
--[[User:Rmezei|Rmezei]] 23:44, 9 May 2014 (UTC)
+
  
== SAHANA EDEN Project ==
+
'''Hobbies:''' Photography and Videogames.
As part of POSSE 2014, I would like to work with the SAHANA - EDEN HFOSS project.
+
I will post some of my findings on my blog. [http://razvanmezei.wordpress.com/about/] --[[User:Rmezei|Rmezei]] 17:07, 9 May 2014 (UTC)
+
  
== FOSS Field Trip ==
+
== POSSE 2019-06 ==
Please also find this info on my blog  [http://razvanmezei.wordpress.com/about/] --[[User:Rmezei|Rmezei]] 02:34, 5 May 2014 (UTC)
+
  
 +
=== Intro to IRC (Activity) ===
  
 +
==== For Part 1 ====
 +
'''How do people interact?'''
 +
People interact very casual. Based on my previous experience, this is typical in iRC chats.
  
——————– SourceForge.net ——————–
+
'''What is the pattern of communication?'''
  
On http://sourceforge.net/  I searched for Mathematics projects and found 749 projects corresponding to the category of Mathematics. There were at least 15 different programming languages used for writing those software projects.
+
'''Are there any terms that seem to have special meaning?'''
  
 +
'''What advantages might IRC have over other real-time communication methods (like Google Chat or Facebook Messenger?) Are there potential disadvantages?'''
 +
iRC have bots, which can be useful in documenting important topics. They are free, and lightweight. Without knowing the link for the bot archive, it may be difficult to see a history of the conversation (iRC chats don't have a "history" that one can review "on-demand". Also, if a user changes their nickname, this will not be reflected throughout the past/historical text. Also, one can easily impersonate others.
  
The most common programming languages used were: C++ (206), Java (155), C (111), Python (78), Matlab (31), C# (30), S/R (26), JavaScript (19), Fortran (16), Lazarus (11), VB .Net (11), Delphi/Kylix (10), Basic (9), Perl (9), Tcl (7) .
+
'''Can you make any other observations?'''
 +
See above ...
  
 +
'''Bonus question: Why didn't Heidi and Darci's actions get picked up by the meetbot?'''
 +
My guess is that the bot is case sensitive ...
  
The most popular project for the Mathematics category was:  “gnuplot development” ( http://sourceforge.net/projects/gnuplot/?source=directory ).  It had scored 11883 weekly downloads. The software does 2D and 3D plotting, and supports a “huge number of output formats” as well as “interactive input or script-driven”.  I believe this project will most likely be used by scientists who want to express their work/ideas using 2D or 3D images.  The primary programming language was C and the most recent change was made on February 23rd, 2014 (Gnuplot Version 4.6.5).
 
  
 +
==== For Part 3 ====
 +
I have observed a few channels:
  
According to http://www.ohloh.net/p/gnuplot the project has 4 contributors in the last 30 days. Although I would love to get involved into developing this project, I wouldn’t necessarily use it on a daily basis. The main reason behind this statement is the fact that the user interface is not really updated to today’s standards.
+
If you use an iRC nick that is not being registered (or not logged in) then joining #python will redirect you to #python-unregistered.
  
——————– Ohloh.net ——————–
+
Then, joining #python, one gets to see the following intro: "Topic for #python is: Anything about Python is on-topic. Don't paste, use https://bpaste.net/+python | Be nice: https://j.mp/psf-coc | Tutorial: https://j.mp/MCAhYx | New programmer? https://j.mp/23X7emF | Local user groups: https://j.mp/1Mq06bF | #python-fr #python.de #python-es #python.tw #python-br #python-nl #python-ir #python.it #python-ro #python-india #python-hu #python-dk" which helps guide new users on various policies, rules, and helpful info. As you join channels that are more populated, it can get rather "noisy" inside. For example, the following is a set of consecutive lines from an iRC discussion on #python. Notice how it contains a lot of noise and it contains a few concurrent discussions:
 +
<pre>
 +
<Nozzzle> hello, I have just got a glimpse of matlab, and found the basics quite similar to python..do you agree?
 +
<emmex> off to continue my journey!
 +
<Nozzzle> I can replace matlab with GNU Octave, here, as I used octave editor
 +
* gelignite has quit (Quit: Good fight, good night!)
 +
* longshi has quit (Ping timeout: 276 seconds)
 +
* xcm has quit (Remote host closed the connection)
 +
* xcm (~xcm@ipa210.225.tellas.gr) has joined
 +
* shadyproject has quit (Quit: shadyproject)
 +
* Wonny has quit (Ping timeout: 276 seconds)
 +
* Nozzzle perhaps said something he shouldn't have...
 +
<nedbat> you didn't say anything wrong, just no one has an opinion i guess
 +
* lord_EarlGray (~lord_Earl@125-41.echostar.pl) has joined
 +
* versatiletech (~versatile@97.103.62.209) has joined
 +
<bjs> Nozzzle: well numpy is very similar to it.  I guess there are going to be lots of similarities between most major programming languages.
 +
* Sonderblade has quit (Quit: Konversation terminated!)
 +
* penth has quit (Remote host closed the connection)
 +
* sydbarret (~sydbarret@unaffiliated/sydbarret) has joined
 +
* versatiletech has quit (Client Quit)
 +
<sydbarret> how can i do this in one line
 +
* gegagome (~gegagome@ip98-185-225-12.sb.sd.cox.net) has joined
 +
<sydbarret> for r in removed_ids
 +
<sydbarret> security.validate_keyword(r)
 +
* versatiletech (~versatile@97.103.62.209) has joined
 +
<Nozzzle> bjs, GNU Octave is written in c, c++ and fortran. does it mean with some degree of python background one can go on to learn, say, c++ ?
 +
* Nightwing52 (~Thunderbi@71-221-224-186.dvnp.qwest.net) has joined
 +
* versatiletech has quit (Client Quit)
 +
* versatiletech (~versatile@97.103.62.209) has joined
 +
<bjs> Nozzzle: I mean as you learn languages it gets easier to learn other languages, that at least is true.  But you'd need more than "some" background, and you'd still need to dedicate a lot of time to learn the new language.
 +
* versatiletech has quit (Client Quit)
 +
</pre>
  
Mifos project was mostly written in Java (33%) and Php (21%). It has 2.677 million (Apr 2014) lines of code.  The locations for some of the contributors include:
+
Overall the discussions seem very casual, and friendly. Some in here seem to be experts in Python programming, while many other in here are just looking for answers and support.
* Collegeville, Philadelphia, PA, USA
+
* Minneapolis, MN, USA
+
* Bangalore, India
+
* Lausanne, Switzerland
+
* Helsinki, Finland
+
  
  
There are about 19 programming languages used for Mifos, including: Java, XML, PHP, HTML, JavaScript, SQL, CSS, Python,… The language with:
+
A similar channel that I observed is ##csharp. This channel posts the following "rules" at the beginning of the channel page:
* the second highest number of lines of code was XML (515,397).
+
"Topic for ##csharp is: C# Developer Discussions | NO SPOONFEEDING (FORKFEEDING OK), HOMEWORK, TXTSPK, RECRUITING -> http://whathaveyoutried.com/ | NO WALLS OF TEXT (>3 lines) -> https://gist.github.com https://dotnetfiddle.net | Please ask before PMing someone | Please read http://wiki.freenode-csharp.net/ | Topic Channels: ##vb.net, ##asp.net, ##xaml, ##fsharp, ##xna"
* the highest comment ratio was Perl (28%)
+
This seems to sum up quite what the intent of this page. Since "FORKFEEDING OK"
  
  
In the last 12 months, the project had:
+
Currently (Apr 29th, 2019, at 11:26 pm PST) there are 1819 users on #python, and 352 users on ##csharp.
* about 10 contributors (0 since last October)
+
* 162 commits
+
  
  
The top three contributors to the project have been involved with Mifos for about 1 year, 1-2 years, and about 1 year respectively.
 
  
 +
'''observations of the #a11y channel communications and how they differed from the sample dialog in Part 1.'''
 +
I am not sure of this is the correct channel but this seems to be a french channel, with a topic set quite a while ago:
 +
<pre>
 +
Topic for #a11y is: Salon de discussion autour de l'accessibilité numérique
 +
* Topic for #a11y set by sebcbien (Sun Aug 28 04:30:31 2011)
 +
</pre>
  
  
== MIFOS Project Evaluation / Activity ==
 
  
* My Evaluation for the Mifos Projext: [[Media:Mifos_Evaluation.xlsx]]
+
I also joined a channel #POSSE but this seems to be unrelated to our group:
* My Evaluation for the SAHANA-EDEN Projext: [[Media:Sahana_EDEN_Evaluation.xlsx]]
+
<pre>
My thanks to <flavour>, on IRC #sahana-eden channel, for his support. He did the work to update the stats found on ohloh.net for SAHANA-EDEN.
+
* Topic for #posse is: http://www.youtube.com/watch?v=Ucq95ERRVEA
As of right now, I am still unable to see these updated metrics. --[[User:Rmezei|Rmezei]] 00:31, 19 May 2014 (UTC)
+
* Topic for #posse set by denny (Fri Apr 22 10:28:03 2011)
 +
</pre>
  
== FOSS In Courses Activity ==
 
I have several ideas where I could include FOSS.
 
* In '''"CSC 120 - Survey of Computing" course,''' I plan to:
 
:* give our students an introduction to FOSS.
 
:* use http://www.sourceforge.net/ for an overview of different languages used in Software Development. In particular, students should be able to see how different Software Categories will use certain programming languages more often than others. 
 
:* use http://www.ohloh.net/ for an overview of particular projects (such as Chromium (Google Chrome), and Mozilla Firefox). There are several interesting metrics to show students, in particular: Lines of Code, Programming Languages used, recent activity on the project
 
  
  
* In '''"CSC 150 - Computer Science I" course,''' I plan to:
+
== Intro to FOSS Project Anatomy (Activity) ==
:* Look at several projects' source code to:
+
::* identify "bad" vs "good" coding style, including code layout styles, variable names, etc.
+
::* identify the importance of writing good comments
+
::* use the available debugging tools to study an unfamiliar code
+
  
 +
=== The Sugar Labs Project ===
  
* In '''"CSC 250 - Computer Science II" course,''' I plan to:
 
:* Look at several projects' source code to:
 
::* identify data structures used in some source files
 
::* develop UML diagrams for a specific project
 
  
 +
Roles that may be most applicable to students:
 +
* '''Educator''': some (not many) of my students who are pursuing a Math& CS dual degree, could easily fit this - especially if they are interested in becoming educators
 +
* '''Content Writer''': several of my current students could easily do a great job in this area.
 +
* '''Developer''': most (if not all) of my current students could fit well in here.
 +
* '''Translator''': many my current students (international students, as well as students who master other languages) could help in here. 
  
* Ideally, I should get some students involved into 1-year-long projects where students can:
 
:* study one project
 
:* start with including more comments and updating existing test cases
 
:* get to fix existing bugs
 
:* develop new source code/adding new features
 
:* stay involved with the project even after the end of the 1-semester-long project.
 
  
 +
What are the commonalities across roles?
 +
* A mastery or desire to learn various skills needed by these roles.
  
  
== Bug Tracker Activity ==
+
What are the differences?
''' Part 1 - Bug Reports  '''
+
* Different roles focus on different aspects of the project: communication, development, languages, etc.
* ID - a unique id
+
* Sev - severity.  Possible values: blo, cri, maj, nor, min, tri, enh
+
: http://www.bugzilla.org/docs/3.4/en/html/bug_page.html includes more description: " Severity: This indicates how severe the problem is - from
+
* blocker ("application unusable") to trivial ("minor cosmetic issue"). You can also use this field to indicate whether a bug is an enhancement request."
+
* Pri - priority. Possible values: Urg, Hig, Nor, Low
+
: http://www.bugzilla.org/docs/3.4/en/html/bug_page.html includes more description: "The bug assignee uses this field to prioritize his or her bugs.  It's a good idea not to change this on other people's bugs."
+
* OS - operating system. Possible values: All, Linu, open, Sola, Mac, Wind, othe
+
* Product. Possible values: aisleriot,  at-spi, atk, balsa, banshee, baobab, bijiben, caribou, cheese, clutter, clutter-gtk, conduit, conglomerate, devhelp, dia, doxygen, ...,  xchat-gnome, Yelp,  yelp-xsl.
+
: http://www.bugzilla.org/docs/3.4/en/html/bug_page.html includes more description: "Product and Component: Bugs are divided up by Product and Component, with a Product having one or more Components in it. "
+
* Status. Possible values: UNCONFIRMED, NEW, ASSIGNED, REOPENED, NEEDINFO
+
: "Status and Resolution: These define exactly what state the bug is in - from not even being confirmed as a bug, through to being fixed and the fix confirmed by Quality Assurance."
+
* Resolution. Please see above ...
+
* Summary: " A one-sentence summary of the problem"
+
  
  
* Describe how you discovered the definitions and How did you find the information from above?
+
Describe the general process for submitting a bug:
Using "The Bugzilla Guide - 3.4.14 Release", I landed on the following webpage: "The Bugzilla Guide - 3.4.14 Release" (http://www.bugzilla.org/docs/3.4/en/html/bug_page.html)
+
* to submit a but one would go to https://github.com/sugarlabs/sugar/issues and click on the green "New issue" button. For this, you need to log into a gitHub account. Then, in there, you would need to select a title and a description of the bug you want to report.  
  
* Identify the order in which the bugs are initially displayed?
 
: They are displayed by status.
 
  
 +
Indicate the types/categories of tickets listed on this page as well as the information available for each ticket:
 +
* the query-oriented page (which seem to be to contain older reports) contains bug reported as either: defect, enhancement, or task. In gitHub they currently allow the following "labels": bug, design, errata, feature, needs SLOBS, needs work. When a bug is reported, it only contains a title and a description. I believe that these tickets are then going through a triage where they are further categorized and more information (such as: how to reproduce it, which functionality is affected, etc) may be added. Looking into https://bugs.sugarlabs.org/ticket/3209 each reported bug can contain the following: a title, a description, the reporter, priority, version, bug status, distribution, milestone, history of description (as this may change over time), etc.
  
* What is the meaning of the shading of some bug reports?
 
: Shows the severity.  All enhancements are shaded.
 
  
* What is the meaning of the colors used when describing a bug (red, gray, black)?
+
Click the "Commits" link and determine the date of last commit (an update of the repository):
: Shows the severity.  The following are used:
+
* Commits on Apr 30, 2019
::* bold+red for blo,  
+
::* red for cri,
+
::* black for  maj, nor, min, tri,
+
::* shaded for enh
+
  
  
* Select a bug that you think that you might be able to fix and look at it more closely (click on the bug number).
+
Describe how the release cycle and roadmap update are related:
:* "665599 nor Nor All at-spi UNCO Add ATSPI_STATE_READ_ONLY"
+
*The Release Team is expected to update the Development Team's Roadmap at the beginning of each release cycle. This however doesn't seem to always be the case ... see https://wiki.sugarlabs.org/go/0.114/Roadmap
::* Identify when the bug was submitted.
+
:::: 2011-12-05 15:55:47 UTC
+
::* Identify if there has been recent discussion about the bug?
+
:::: Comments added on: 2012-02-26 10:43:32 UTC,  and 2013-08-14 10:06:33 UTC
+
::* Is the bug current?
+
  
::* Is the bug assigned? To whom?
+
=== The Sahana Eden Project  ===
:::: CC List contains 2 users: a9016009, mgorse.
+
Community
 +
* the responsibilities seem to be broken down into more roles, which makes me feel they may be a little more defined (as compared to the sugarlabs project). The ramping process for each role seems more clear to me. Each role has a specific mailing list, guidelines and ramping process for specific tools used by those teams, etc. As a commonality, both projects seem very inviting and they welcome every potential contributor.
  
::* Describe what you would need to do to fix the bug.
 
:::: Add a new state to the enumeration.
 
  
 +
Tracker
 +
* There are many more labels in here compared to the sugarlabs project. These are: Admin, Bug, CAP, Core, CRMT, CSS, Documentation, DVR, Enhancement, GIS, i18n, Major, Messaging, Minor, Organization Registry, Person Registry, S3, Test, UI, and WA-COP.
 +
* This project allows multiple label for each issue shown in https://github.com/sahana/eden/issues, as opposed to the ones in https://github.com/sugarlabs/sugar/issues that seem to only have at most one label per issue. The Sahana project seems to use the labels to also categorize the severity, not only the functionality that is being affected.
  
  
* Repeat the previous step with a different kind of bug.
+
Repository
:* "465103 cri Urg Linu at-spi ASSI Desktop objects sometimes have null children "
+
*Commits on May 2, 2019
::* Identify when the bug was submitted.
+
:::: 2007-08-09 17:13:19 UTC
+
::* Identify if there has been recent discussion about the bug?
+
:::: Latest comments (which looks more like an automated message) added on: 2013-08-14 10:06:12 UTC 
+
::* Is the bug current?
+
:::: Yes.
+
::* Is the bug assigned? To whom?
+
:::: Yes. CC List contains 3 users: a9016009, GNOME-a11y-bugs-EXT, steve.
+
::* Describe what you would need to do to fix the bug.
+
:::: Not sure yet.
+
  
  
''' Part 2 - Collective Reports '''
+
Release cycle
* How many bug reports were opened in the last week? How many were closed?
+
* Accessing the roadmap of this project is not possible unless you log in. Going to the "Login/Register" page, after passing the certificate error warning, it does not seem to allow you to register a new account. I also tried, unsuccessfully, to go to "reset password" but still no luck in creating a new account.
:: Total Reports: 46439 (368 reports opened and 371 reports closed. Including enhancement requests)
+
  
* What was the general trend last week? Were more bugs opened than closed or vice versa?
 
:: There were slightly more closed bugs than opened.
 
  
* Who were the top three bug closers? Why is this important to know?
+
== FOSS Field Trip (Activity) ==
:: Matthias Clasen, Jim Nelson, Milan Crha. They may be the most active volunteers to the project. Maybe the dedicated the most time to the project, or they may be the most expert in the project.
+
=== Part 1 - GitHub ===
 +
* On May 18th, 2019. there were 27,803 repository results containing the work "education" in their title.
 +
* Of these, 3,453 use JavaScript
 +
* EbookFoundation/free-programming-books was updated "two days ago", and "hsavit1/Awesome-Swift-Education" was updated on July 1st, 2018.
 +
* freeCodeCamp/freeCodeCamp project has the most starts, approximately 303k (to be exact: 302,781).
 +
* this project has 225 open issues, and 13,332 closed ones.
 +
* it has 1,811 open pull requests, and 20,291 closed ones.
 +
* the insights page seems to show an overview (more like a dashboard) of various statistics regarding the pull requests and issues that happened in the past 1 week (one could also select 24h, 3 days, or 1 month)
 +
* clicking on "commits" link inside the Insights tab, one could see a graphical representation of the # of commits for the past week, as well as a graph that shows the #of weekly commits for the past one year.
 +
* On May 18th, 2019. there were 506 repository results containing the work "humanitarian" in their title.
 +
* HTBox/crisischeckin uses C#, and it has 178 stars, and having the last update made on Oct 24, 2018.
 +
* On May 18th, 2019. there were 2,153 repository results containing the work "cybersecurity" in their title, with Python being the most popular programming language among these repositories.
 +
* On May 18th, 2019. there were 57,205 repository results containing the work "hacking" in their title, with JavaScript being the most popular programming language among these repositories.
  
* 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?
+
=== Part 2 - OpenHub ===
:: Jim Nelson, Kat, Egmont Koblinger. There is only one overlap: Jim Nelson.
+
* As of May 18th, 2019, search for "education", it yielded 2262 projects.
+
* of the most active projects shown on the first page I recognize: Moodle, GeoGebra. From the second page, I would like to mention: Sakai, Wireshark, and Gnuplot.
* Who are the top three contributors of patches?
+
* KDE Education has 23 code locations, none of them being on GitHub.
:: Florian Müllner, Egmont Koblinger, Debarshi Ray.  
+
* There are 10 similar projects listed in https://www.openhub.net/p/kdeedu/similar
 +
* For each of the similar project, the following info is displayed: project name, most used programming language, license type, and how active the project is.
 +
* Searching again on this page, I retrieved 23 projects when searching for "humanitarian", and 30 projects for "disaster management". Searching for "hacking" I received 1183 projects, and only 8 projects when searching for "cybersecurity".
 +
* some projects have an "activity not available" icon. These "projects [..] do not have recent analysis because of problems with their code locations or other problems blocking Open Hub from collecting and analyzing code" (https://blog.openhub.net/about-project-activity-icons/)
 +
* the Organizations page shows a short list of the Most Active Organizations, another list for the Newest Organizations, and two other lists, one containing Statistics (Average Commits / Affiliate, and number of organizations) for various Sectors, and one containing Statistics (Name, Type, Size, Number of Projects, Number of Affiliates, and the Number of 30-Day commits) for various Organizations.
  
* 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?
+
* A search for "OpenMRS" in the Organizations page will display the link to the Organization page (notice, below this link  one can find: "46 projects").
:: Sebastian Dröge (slomo), Bastien Nocera, Jasper St. Pierre. There is no overlap between these lists and the bug closers and bug reporters. There is no overlap between patch contributors and patch reviewers.
+
* Looking in https://www.openhub.net/p/openmrs, it seems that the last commit for OpenMRS Core was in January, 2018.
 +
* Looking in https://github.com/openmrs/openmrs-core, the last commit for OpenMRS Core was 3 hours ago (May 18, 2019). Therefore, my guess is that this project may have moved its location and OpenHub link was not updated appropriately.
 +
* I really like OpenHub for all the graphics and statistics it provides for various projects. That being said, the projects will usually be stored in repositories such as GitHub, so if someone is searching for the source of a project or various issues and/or commits information, they would have to look into the repository.
  
* Plot the Severity of each Version of the Accessibility features of Empathy.
 
:: Please see the attached: [[Media:Img1.jpg]]  and [[Media:Img2.jpg]] for details.
 
  
* What other reports can you generate?
+
== Project Evaluation (Activity) ==
--[[User:Rmezei|Rmezei]] 05:53, 28 May 2014 (UTC)
+
  
 +
OpenMRS project (see the following link for details and source of the rubric: http://foss2serve.org/index.php/Project_Evaluation_Rubric_(Activity)):
  
  
== FOSS In Courses Activity 2 ==
+
{| class="wikitable" style="width:100%;"
I have several ideas where I could include FOSS.
+
|-
* In '''"CSC 120 - Survey of Computing" course,''' I plan to:
+
! Evaluation Factor
:* give our students an introduction to FOSS.
+
! Level<br/>(0-2)
:* use http://www.sourceforge.net/ for an overview of different languages used in Software Development. In particular, students should be able to see how different Software Categories will use certain programming languages more often than others.   
+
! style="width:60%;" | Evaluation Data
:* use http://www.ohloh.net/ for an overview of particular projects (such as Chromium (Google Chrome), and Mozilla Firefox). There are several interesting metrics to show students, in particular: Lines of Code, Programming Languages used, recent activity on the project
+
|-
::: - '''Learning Outcomes''': Students will get some understanding and appreciation for the diversity of applications that are produced in the "Real World". They will learn some basic vocabulary and basic principles used in FOSS. Get an idea about the complexity and size of applications that many of the students may already be familiar with (e.g. Google Chrome, Mozilla Firefox, etc.). Trying to identify the most commonly used programming languages for different categories such as: Games, Web Applications, Science Applications, etc. Many Computer Science and Information Technology terms can be introduced here.  
+
| '''Licensing'''
::: - '''Prerequisite knowledge''': None.
+
|  2
::: - '''Estimation for the time required for instructor prep, for student completion and elapsed calendar time''': 
+
|  Mozilla Public License, version 2.0
::: - '''Synchronize the activity with the community or can the activity/topic be covered independent of the FOSS community schedule''': N/A  These topics will be introduced independently from the FOSS community schedule
+
|-
::: - '''If the result of the activity is contributed back to the FOSS project, describe the contribution and its usefulness''': N/A
+
| '''Language'''
::: - '''Assessment/grading approach''': It can be done as individual tests, individual project, or group project.
+
|  1
 +
|  Java 96.2%, SQLPL 2.9%, Other 0.9%
 +
|-
 +
| '''Level of Activity'''
 +
| 1
 +
|  3 out of 4 quarters seem active. The last quarter seems rather inactive.
 +
|-
 +
| '''Number of Contributors'''
 +
|  2
 +
| There are currently 323 contributors.
 +
|-
 +
| '''Product Size'''
 +
| 2
 +
| 223.3MB
 +
|-
 +
| '''Issue Tracker'''
 +
| 1
 +
| There are 1287 "ready for work", and 14136 "closed" issues. The third issue in the Curated list (Go through the TODO items code and create tickets out of them) was created on "2008-05-21 18:59:09 GMT+0000". The site crashed and reset while working on these questions, hence my score for this rubric is 1.
 +
|-
 +
| '''New Contributor'''
 +
| 2
 +
| The project contains all the information needed to ramp up any new contributor. For this, one could use the following sites useful: https://openmrs.org/ and https://wiki.openmrs.org/ . In particular, https://wiki.openmrs.org/display/docs/Getting+Started+as+a+Developer https://talk.openmrs.org/ and https://wiki.openmrs.org/display/IRC/Home
 +
|-
 +
| '''Community Norms'''
 +
| 2
 +
| https://wiki.openmrs.org/display/docs/Code+of+Conduct contains generic rules as well as penalties when these are broken. This page also contains a dead link: https://wiki.openmrs.org/display/docs/GitHub+Code+of+Conduct . The talk functionality (https://talk.openmrs.org/t/automation-of-create-openmrs-owa-with-react-components/22043/42) seems casual, and friendly. I noticed that people are interacting from around the globe. In this last link, one can see how the iRC is used for a "real time" communication.
 +
|-
 +
| '''User Base'''
 +
| 2
 +
| This project is very well defined. Although there is a lot of information on https://wiki.openmrs.org/, one could also utilize the following to ask/answer questions: http://go.openmrs.org/ask . There is a user guide: https://wiki.openmrs.org/display/docs/User+Guide and there is also a Developer guide https://wiki.openmrs.org/display/docs/Developer+Guide that contains (among other things) a Step-by-Step Installation for Developers (https://wiki.openmrs.org/display/docs/Step+by+Step+Installation+for+Developers)
 +
|-
 +
| '''Total Score'''
 +
| 15
 +
|
 +
|}
  
  
* In '''"CSC 150 - Computer Science I" course,''' I plan to:
+
== Intro to Copyright and Licensing (Activity) ==
:* Look at several projects' source code to:
+
The license for each of the following projects:
::* identify "bad" vs "good" coding style, including code layout styles, variable names, etc.
+
* PROJECT: https://github.com/openmrs/openmrs-core
::* identify the importance of writing good comments
+
** Mozilla Public License, version 2.0
::* use the available debugging tools to study '''and test''' an unfamiliar code
+
** https://github.com/openmrs/openmrs-core/blob/master/LICENSE
::: - '''Learning Outcomes''':  The students should be able to learn about different coding styles, and naming notation. They should gain an appreciation for using extensive comments in coding (especially since they will be exposed to code developed by somebody else). The students should be able to get familiar with debugging tools and other techniques that can be used to study and test code. Most of the testing will be unit tests.  
+
** According to https://tldrlegal.com/license/mozilla-public-license-2.0-(mpl-2)
::: - '''Prerequisite knowledge''': They should be familiar with basic Programming techniques, such as: comments, simple statements, conditional statements, loops and functions.
+
** You must make the modified source available to others. For research and academic projects I would prefer this type of license. Especially since everyone who benefits from my work would have to acknowledge my work, and if they advance it, the would also have to promote those changes. This is great for the development of the project overall.
::: - '''Estimation for the time required for instructor prep, for student completion and elapsed calendar time''': 
+
::: - '''Synchronize the activity with the community or can the activity/topic be covered independent of the FOSS community schedule''': Most of the tasks should be independent from the FOSS community schedule. Some tasks, however, can involve helping the community and therefore may need to be synchronized with the FOSS community.
+
::: - '''If the result of the activity is contributed back to the FOSS project, describe the contribution and its usefulness''': The students can start by writing extensive documentation and comments in existing projects. That should be a good starting point for the to get involved with some FOSS projects. In some cases, the students should be able to provide some basic unit testcases. Students will be asked to analyze pieces of code, and in some (rare) occasions that some logical bug is found, it should be reported to the FOSS community.
+
::: - '''Assessment/grading approach''': Can be done as an individual project (mostly), or group project.  
+
  
 +
* PROJECT: https://github.com/apache/incubator-fineract
 +
**  Apache License, Version 2.0, January 2004
 +
** https://github.com/apache/fineract/blob/develop/LICENSE_RELEASE
 +
** Allows you to modify and use the source without having to distribute it. This type of license is good if you want to benefit from a free project but don't want to disclose other the changes you've made. It may be great for a company (having trade secrets), or even a government organization, but for the overall development of the project this permission doesn't seem very helpful.
  
* In '''"CSC 250 - Computer Science II" course,''' I plan to:
+
* PROJECT: https://github.com/regulately/regulately-back-end
:* Look at several projects' source code to:
+
** No license
::* identify data structures used in some source files
+
** https://github.com/regulately/regulately/community
::* develop UML diagrams for a specific project
+
** Since there is no license, I don't think I would feel comfortable contributing to this project. It could be illegal to compile the code, and also, there is no word on whether or not one would e liable for the potential damages produced by the code.
::* identify and analyze some of the data structures used in the project.  
+
::: - '''Learning Outcomes''': 
+
::: - '''Prerequisite knowledge''': 
+
::: - '''Estimation for the time required for instructor prep, for student completion and elapsed calendar time''': 
+
::: - '''Synchronize the activity with the community or can the activity/topic be covered independent of the FOSS community schedule''':
+
::: - '''If the result of the activity is contributed back to the FOSS project, describe the contribution and its usefulness''':
+
::: - '''Assessment/grading approach''':
+
  
  
* Ideally, I should get some students involved in a 1-year-long projects where students can:
+
== FOSS in Courses 1 (Instructors) ==
:* study one particular project (of student's choice)
+
:* start with including more comments and updating existing test cases
+
:* get to fix existing bugs
+
:* develop new source code/adding new features
+
:* ideally the student will stay involved with the project even after the end of the 1-semester-long project.
+
::: - '''Learning Outcomes''':  Work with a large, "Real World", project. Work and colaborate with other developers (most likely accross the World) through the channels used by the project (IRC's, forums, google groups, etc). Provide some support to the FOSS community.
+
::: - '''Prerequisite knowledge''':  At least CS 1-2 (CSC 150 - CSC 250).
+
::: - '''Estimation for the time required for instructor prep, for student completion and elapsed calendar time''':  2-semester course.
+
::: - '''Synchronize the activity with the community or can the activity/topic be covered independent of the FOSS community schedule''': Synchronize the activity with the community.
+
::: - '''If the result of the activity is contributed back to the FOSS project, describe the contribution and its usefulness''': Bug fixes, documentation update, and hopefully new features added and/or proposed, that were accepted by the FOSS community.
+
::: - '''Assessment/grading approach''': Depending on the length of the project, the student should have set a minimum number of commits that were accepted to be included in a future release of the project. Community feed-back, although not required, will be very welcomed and appreciated. The students need to engage, or at least try to engage, in communicating with other members of the project on a regular basis. In extreme cases, where the feedback is very slow, or not received in time, the instructor should be able to provide feedback to the students.
+
  
 +
Activity 1:
 +
* Because I currently use C# in my courses, I am considering selecting a few HFOSS projects that use C# (or Java/C++) and ask my students to analyze the running time for various methods.
  
[[POSSE 2014-11]]
+
Activity 2:
 +
* I would like to create an activity in which students will be asked to reflect on how specific data is formatted/structured for a given HFOSS project.
 +
** Given my experience with developing Commercial Electronic Health Records, I think OpenMRS would be a good project to look into.
 +
** If possible, it would be great to find data structures and/or algorithms in the given code similar to the ones I introduce in my class  - or maybe ask the students to find them throughout the project.
 +
** The following existing activity is '''somewhat''' related to what I have in mind: http://foss2serve.org/index.php/CS2_Data_Structures_Activity
 +
 
 +
== Intro to Bug Trackers (Activity) ==
 +
* In this activity we used GNOME's issue tracker on GitLab: https://gitlab.gnome.org/groups/GNOME/-/issues
 +
* Some of the projects in here: network-manager-applet,gnome-keysign, gnome-shell, babl, evolution, vala, gnumeric, glade, glib, gnome-control-center, etc.
 +
* Each issue has the following information shown in this view: a title, and id (project prefix # number), how long ago was it opened, and by whom, how long ago was the last update, and the number of comments added to that issue.
 +
* Labels visible in this view (they seem to be project specific, and some tickets may have more than one label assigned to them): "5. On-screen Keyboard", "6. Input", "6. Component: Region & Language", etc.
 +
* Visiting individual issues, one can see that is contains more relevant information such as: description (where a writer could describe the steps needed to reproduce the issue, or provide screen shots and other details), an assignee, a milestone, a time tracking, a due date, set labels, confidentiality level, and a list of participants.
 +
* Labels are used in order to priorities the scheduling for fixing those issues. Each label has a number (priority, 1 - being the highest priority) and a short text. For example, the gnome-shell project currently has the following labels: 1. Bug, 1. Cleanup, 1. Crash, 1. Enhancement, 1. Epic, 1. Feature, 1. Regression, 1. Security, 2. Merge After Freeze, 2. Needs Design, 2. Needs Diagnosis, 2. Needs Information, 2. Needs Triage, 2. RFC, 3. Expected Behavior, 3. Not Actionable, 3. Not GNOME, 3. Out of Scope, 4. Help Wanted, ... There is also a set of labels that do not contain a number: To Do, Doing, Stretch, HiDPI, Deliverable (see https://gitlab.gnome.org/GNOME/gnome-shell/labels).
 +
* The last set of labels seem to be useful in otrganizing the issues. Boards display several columns, one of them - for example - displays the issues labeled "To Do", another one displays the ones labeled "Doing", etc.
 +
* Milestones can be seen in here: https://gitlab.gnome.org/groups/GNOME/-/milestones Each milestone seems to have an expiration date, a project name, and a progress bar indication the number of issues, number of merge requests, and the completion rate.
 +
* Merge requests allow you to check out a branch, and contain a status, such as: "Ready to be merged automatically. Ask someone with write access to this repository to merge this request" and "This is a Work in Progress".
 +
 
 +
== FOSS in Courses 2 (Instructors) ==
 +
 
 +
Activity 1:
 +
* Because I currently use C# in my courses, I am considering selecting a few HFOSS projects that use C# (or Java/C++) and ask my students to analyze the running time for various methods.
 +
** Some possible learning outcomes:
 +
*** apply algorithm analysis skills to analyze the performance of various algorithms
 +
*** getting familiar to navigate through unfamiliar code (a "real" project)
 +
** Prerequisites:
 +
*** understanding basic programming constructs (typically the ones introduced in CS1) and the big-Oh notation.
 +
** Time estimation:
 +
*** the instructor can allow the student to choose his/her own adventure (hence there will be almost no time needed from the instructor)
 +
*** the student will need to get access to the source code - depending on the project chosen by the instructor this may be time consuming - it may take a few hours, or take as little as just 10 minutes.
 +
** Input required from the HFOSS community: none
 +
** Assessment/grading approach: individual work, assessed by the instructor - the student could be asked to find 5 examples of methods that run in O(1), O(n), O(n^2), etc.
 +
 
 +
Activity 2:
 +
* I would like to create an activity in which students will be asked to reflect on how specific data is formatted/structured for a given HFOSS project.
 +
** Given my experience with developing Commercial Electronic Health Records, I think OpenMRS would be a good project to look into.
 +
** If possible, it would be great to find data structures and/or algorithms in the given code similar to the ones I introduce in my class  - or maybe ask the students to find them throughout the project.
 +
** The following existing activity is '''somewhat''' related to what I have in mind: http://foss2serve.org/index.php/CS2_Data_Structures_Activity
 +
** Some possible learning outcomes:
 +
*** apply algorithm analysis skills to analyze the performance of various algorithms and compare them to the ones introduce in class
 +
** Prerequisites:
 +
*** understanding basic programming constructs (typically the ones introduced in CS1) and the big-Oh notation.
 +
** Time estimation:
 +
*** the instructor will need to invest quite some time in order to find relevant data structures used by the HFOSS project that were also introduced in class.
 +
*** the student need to only focus on the running time analysis and comparison of various data structures selected by the instructor.
 +
** Input required from the HFOSS community: none.
 +
** Assessment/grading approach: it may be useful to let students adventure through an HFOSS project in teams of 2-3 students.
 +
 
 +
== POSSE 2014-xx ==
 +
The old content (for POSSE 2014) was removed. Go to [http://www.foss2serve.org/index.php?title=User:Rmezei&action=history "View history"] to see deleted text.
 +
 
 +
 
 +
[[Category:POSSE 2014-05]]
 +
[[Category:POSSE 2014-11]]
 +
[[Category:POSSE 2019-06]]

Latest revision as of 06:22, 16 June 2019

Contents

Razvan "Alex" Mezei

Name: Razvan A. Mezei

Preferred name: "Alex"

Position: Assistant Professor, Computer Science, Saint Martin's University

Page: SMU webpage

Interests: Applied Mathematics (Approximation theory, Numerical Analysis, and Inequalities) & Computer Science (Open Source, Programming Languages, Data Structures, Algorithms, Healthcare Informatics, and Cybersecurity).

Hobbies: Photography and Videogames.

POSSE 2019-06

Intro to IRC (Activity)

For Part 1

How do people interact? People interact very casual. Based on my previous experience, this is typical in iRC chats.

What is the pattern of communication?

Are there any terms that seem to have special meaning?

What advantages might IRC have over other real-time communication methods (like Google Chat or Facebook Messenger?) Are there potential disadvantages? iRC have bots, which can be useful in documenting important topics. They are free, and lightweight. Without knowing the link for the bot archive, it may be difficult to see a history of the conversation (iRC chats don't have a "history" that one can review "on-demand". Also, if a user changes their nickname, this will not be reflected throughout the past/historical text. Also, one can easily impersonate others.

Can you make any other observations? See above ...

Bonus question: Why didn't Heidi and Darci's actions get picked up by the meetbot? My guess is that the bot is case sensitive ...


For Part 3

I have observed a few channels:

If you use an iRC nick that is not being registered (or not logged in) then joining #python will redirect you to #python-unregistered.

Then, joining #python, one gets to see the following intro: "Topic for #python is: Anything about Python is on-topic. Don't paste, use https://bpaste.net/+python | Be nice: https://j.mp/psf-coc | Tutorial: https://j.mp/MCAhYx | New programmer? https://j.mp/23X7emF | Local user groups: https://j.mp/1Mq06bF | #python-fr #python.de #python-es #python.tw #python-br #python-nl #python-ir #python.it #python-ro #python-india #python-hu #python-dk" which helps guide new users on various policies, rules, and helpful info. As you join channels that are more populated, it can get rather "noisy" inside. For example, the following is a set of consecutive lines from an iRC discussion on #python. Notice how it contains a lot of noise and it contains a few concurrent discussions:

<Nozzzle> hello, I have just got a glimpse of matlab, and found the basics quite similar to python..do you agree?
<emmex> off to continue my journey!
<Nozzzle> I can replace matlab with GNU Octave, here, as I used octave editor
* gelignite has quit (Quit: Good fight, good night!)
* longshi has quit (Ping timeout: 276 seconds)
* xcm has quit (Remote host closed the connection)
* xcm (~xcm@ipa210.225.tellas.gr) has joined
* shadyproject has quit (Quit: shadyproject)
* Wonny has quit (Ping timeout: 276 seconds)
* Nozzzle perhaps said something he shouldn't have...
<nedbat> you didn't say anything wrong, just no one has an opinion i guess
* lord_EarlGray (~lord_Earl@125-41.echostar.pl) has joined
* versatiletech (~versatile@97.103.62.209) has joined
<bjs> Nozzzle: well numpy is very similar to it.  I guess there are going to be lots of similarities between most major programming languages.
* Sonderblade has quit (Quit: Konversation terminated!)
* penth has quit (Remote host closed the connection)
* sydbarret (~sydbarret@unaffiliated/sydbarret) has joined
* versatiletech has quit (Client Quit)
<sydbarret> how can i do this in one line
* gegagome (~gegagome@ip98-185-225-12.sb.sd.cox.net) has joined
<sydbarret> for r in removed_ids
<sydbarret> security.validate_keyword(r)
* versatiletech (~versatile@97.103.62.209) has joined
<Nozzzle> bjs, GNU Octave is written in c, c++ and fortran. does it mean with some degree of python background one can go on to learn, say, c++ ?
* Nightwing52 (~Thunderbi@71-221-224-186.dvnp.qwest.net) has joined
* versatiletech has quit (Client Quit)
* versatiletech (~versatile@97.103.62.209) has joined
<bjs> Nozzzle: I mean as you learn languages it gets easier to learn other languages, that at least is true.  But you'd need more than "some" background, and you'd still need to dedicate a lot of time to learn the new language.
* versatiletech has quit (Client Quit)

Overall the discussions seem very casual, and friendly. Some in here seem to be experts in Python programming, while many other in here are just looking for answers and support.


A similar channel that I observed is ##csharp. This channel posts the following "rules" at the beginning of the channel page: "Topic for ##csharp is: C# Developer Discussions | NO SPOONFEEDING (FORKFEEDING OK), HOMEWORK, TXTSPK, RECRUITING -> http://whathaveyoutried.com/ | NO WALLS OF TEXT (>3 lines) -> https://gist.github.com https://dotnetfiddle.net | Please ask before PMing someone | Please read http://wiki.freenode-csharp.net/ | Topic Channels: ##vb.net, ##asp.net, ##xaml, ##fsharp, ##xna" This seems to sum up quite what the intent of this page. Since "FORKFEEDING OK"


Currently (Apr 29th, 2019, at 11:26 pm PST) there are 1819 users on #python, and 352 users on ##csharp.


observations of the #a11y channel communications and how they differed from the sample dialog in Part 1. I am not sure of this is the correct channel but this seems to be a french channel, with a topic set quite a while ago:

Topic for #a11y is: Salon de discussion autour de l'accessibilité numérique
* Topic for #a11y set by sebcbien (Sun Aug 28 04:30:31 2011)


I also joined a channel #POSSE but this seems to be unrelated to our group:

* Topic for #posse is: http://www.youtube.com/watch?v=Ucq95ERRVEA
* Topic for #posse set by denny (Fri Apr 22 10:28:03 2011)


Intro to FOSS Project Anatomy (Activity)

The Sugar Labs Project

Roles that may be most applicable to students:

  • Educator: some (not many) of my students who are pursuing a Math& CS dual degree, could easily fit this - especially if they are interested in becoming educators
  • Content Writer: several of my current students could easily do a great job in this area.
  • Developer: most (if not all) of my current students could fit well in here.
  • Translator: many my current students (international students, as well as students who master other languages) could help in here.


What are the commonalities across roles?

  • A mastery or desire to learn various skills needed by these roles.


What are the differences?

  • Different roles focus on different aspects of the project: communication, development, languages, etc.


Describe the general process for submitting a bug:

  • to submit a but one would go to https://github.com/sugarlabs/sugar/issues and click on the green "New issue" button. For this, you need to log into a gitHub account. Then, in there, you would need to select a title and a description of the bug you want to report.


Indicate the types/categories of tickets listed on this page as well as the information available for each ticket:

  • the query-oriented page (which seem to be to contain older reports) contains bug reported as either: defect, enhancement, or task. In gitHub they currently allow the following "labels": bug, design, errata, feature, needs SLOBS, needs work. When a bug is reported, it only contains a title and a description. I believe that these tickets are then going through a triage where they are further categorized and more information (such as: how to reproduce it, which functionality is affected, etc) may be added. Looking into https://bugs.sugarlabs.org/ticket/3209 each reported bug can contain the following: a title, a description, the reporter, priority, version, bug status, distribution, milestone, history of description (as this may change over time), etc.


Click the "Commits" link and determine the date of last commit (an update of the repository):

  • Commits on Apr 30, 2019


Describe how the release cycle and roadmap update are related:

The Sahana Eden Project

Community

  • the responsibilities seem to be broken down into more roles, which makes me feel they may be a little more defined (as compared to the sugarlabs project). The ramping process for each role seems more clear to me. Each role has a specific mailing list, guidelines and ramping process for specific tools used by those teams, etc. As a commonality, both projects seem very inviting and they welcome every potential contributor.


Tracker

  • There are many more labels in here compared to the sugarlabs project. These are: Admin, Bug, CAP, Core, CRMT, CSS, Documentation, DVR, Enhancement, GIS, i18n, Major, Messaging, Minor, Organization Registry, Person Registry, S3, Test, UI, and WA-COP.
  • This project allows multiple label for each issue shown in https://github.com/sahana/eden/issues, as opposed to the ones in https://github.com/sugarlabs/sugar/issues that seem to only have at most one label per issue. The Sahana project seems to use the labels to also categorize the severity, not only the functionality that is being affected.


Repository

  • Commits on May 2, 2019


Release cycle

  • Accessing the roadmap of this project is not possible unless you log in. Going to the "Login/Register" page, after passing the certificate error warning, it does not seem to allow you to register a new account. I also tried, unsuccessfully, to go to "reset password" but still no luck in creating a new account.


FOSS Field Trip (Activity)

Part 1 - GitHub

  • On May 18th, 2019. there were 27,803 repository results containing the work "education" in their title.
  • Of these, 3,453 use JavaScript
  • EbookFoundation/free-programming-books was updated "two days ago", and "hsavit1/Awesome-Swift-Education" was updated on July 1st, 2018.
  • freeCodeCamp/freeCodeCamp project has the most starts, approximately 303k (to be exact: 302,781).
  • this project has 225 open issues, and 13,332 closed ones.
  • it has 1,811 open pull requests, and 20,291 closed ones.
  • the insights page seems to show an overview (more like a dashboard) of various statistics regarding the pull requests and issues that happened in the past 1 week (one could also select 24h, 3 days, or 1 month)
  • clicking on "commits" link inside the Insights tab, one could see a graphical representation of the # of commits for the past week, as well as a graph that shows the #of weekly commits for the past one year.
  • On May 18th, 2019. there were 506 repository results containing the work "humanitarian" in their title.
  • HTBox/crisischeckin uses C#, and it has 178 stars, and having the last update made on Oct 24, 2018.
  • On May 18th, 2019. there were 2,153 repository results containing the work "cybersecurity" in their title, with Python being the most popular programming language among these repositories.
  • On May 18th, 2019. there were 57,205 repository results containing the work "hacking" in their title, with JavaScript being the most popular programming language among these repositories.

Part 2 - OpenHub

  • As of May 18th, 2019, search for "education", it yielded 2262 projects.
  • of the most active projects shown on the first page I recognize: Moodle, GeoGebra. From the second page, I would like to mention: Sakai, Wireshark, and Gnuplot.
  • KDE Education has 23 code locations, none of them being on GitHub.
  • There are 10 similar projects listed in https://www.openhub.net/p/kdeedu/similar
  • For each of the similar project, the following info is displayed: project name, most used programming language, license type, and how active the project is.
  • Searching again on this page, I retrieved 23 projects when searching for "humanitarian", and 30 projects for "disaster management". Searching for "hacking" I received 1183 projects, and only 8 projects when searching for "cybersecurity".
  • some projects have an "activity not available" icon. These "projects [..] do not have recent analysis because of problems with their code locations or other problems blocking Open Hub from collecting and analyzing code" (https://blog.openhub.net/about-project-activity-icons/)
  • the Organizations page shows a short list of the Most Active Organizations, another list for the Newest Organizations, and two other lists, one containing Statistics (Average Commits / Affiliate, and number of organizations) for various Sectors, and one containing Statistics (Name, Type, Size, Number of Projects, Number of Affiliates, and the Number of 30-Day commits) for various Organizations.
  • A search for "OpenMRS" in the Organizations page will display the link to the Organization page (notice, below this link one can find: "46 projects").
  • Looking in https://www.openhub.net/p/openmrs, it seems that the last commit for OpenMRS Core was in January, 2018.
  • Looking in https://github.com/openmrs/openmrs-core, the last commit for OpenMRS Core was 3 hours ago (May 18, 2019). Therefore, my guess is that this project may have moved its location and OpenHub link was not updated appropriately.
  • I really like OpenHub for all the graphics and statistics it provides for various projects. That being said, the projects will usually be stored in repositories such as GitHub, so if someone is searching for the source of a project or various issues and/or commits information, they would have to look into the repository.


Project Evaluation (Activity)

OpenMRS project (see the following link for details and source of the rubric: http://foss2serve.org/index.php/Project_Evaluation_Rubric_(Activity)):


Evaluation Factor Level
(0-2)
Evaluation Data
Licensing 2 Mozilla Public License, version 2.0
Language 1 Java 96.2%, SQLPL 2.9%, Other 0.9%
Level of Activity 1 3 out of 4 quarters seem active. The last quarter seems rather inactive.
Number of Contributors 2 There are currently 323 contributors.
Product Size 2 223.3MB
Issue Tracker 1 There are 1287 "ready for work", and 14136 "closed" issues. The third issue in the Curated list (Go through the TODO items code and create tickets out of them) was created on "2008-05-21 18:59:09 GMT+0000". The site crashed and reset while working on these questions, hence my score for this rubric is 1.
New Contributor 2 The project contains all the information needed to ramp up any new contributor. For this, one could use the following sites useful: https://openmrs.org/ and https://wiki.openmrs.org/ . In particular, https://wiki.openmrs.org/display/docs/Getting+Started+as+a+Developer https://talk.openmrs.org/ and https://wiki.openmrs.org/display/IRC/Home
Community Norms 2 https://wiki.openmrs.org/display/docs/Code+of+Conduct contains generic rules as well as penalties when these are broken. This page also contains a dead link: https://wiki.openmrs.org/display/docs/GitHub+Code+of+Conduct . The talk functionality (https://talk.openmrs.org/t/automation-of-create-openmrs-owa-with-react-components/22043/42) seems casual, and friendly. I noticed that people are interacting from around the globe. In this last link, one can see how the iRC is used for a "real time" communication.
User Base 2 This project is very well defined. Although there is a lot of information on https://wiki.openmrs.org/, one could also utilize the following to ask/answer questions: http://go.openmrs.org/ask . There is a user guide: https://wiki.openmrs.org/display/docs/User+Guide and there is also a Developer guide https://wiki.openmrs.org/display/docs/Developer+Guide that contains (among other things) a Step-by-Step Installation for Developers (https://wiki.openmrs.org/display/docs/Step+by+Step+Installation+for+Developers)
Total Score 15


Intro to Copyright and Licensing (Activity)

The license for each of the following projects:

  • PROJECT: https://github.com/apache/incubator-fineract
    • Apache License, Version 2.0, January 2004
    • https://github.com/apache/fineract/blob/develop/LICENSE_RELEASE
    • Allows you to modify and use the source without having to distribute it. This type of license is good if you want to benefit from a free project but don't want to disclose other the changes you've made. It may be great for a company (having trade secrets), or even a government organization, but for the overall development of the project this permission doesn't seem very helpful.


FOSS in Courses 1 (Instructors)

Activity 1:

  • Because I currently use C# in my courses, I am considering selecting a few HFOSS projects that use C# (or Java/C++) and ask my students to analyze the running time for various methods.

Activity 2:

  • I would like to create an activity in which students will be asked to reflect on how specific data is formatted/structured for a given HFOSS project.
    • Given my experience with developing Commercial Electronic Health Records, I think OpenMRS would be a good project to look into.
    • If possible, it would be great to find data structures and/or algorithms in the given code similar to the ones I introduce in my class - or maybe ask the students to find them throughout the project.
    • The following existing activity is somewhat related to what I have in mind: http://foss2serve.org/index.php/CS2_Data_Structures_Activity

Intro to Bug Trackers (Activity)

  • In this activity we used GNOME's issue tracker on GitLab: https://gitlab.gnome.org/groups/GNOME/-/issues
  • Some of the projects in here: network-manager-applet,gnome-keysign, gnome-shell, babl, evolution, vala, gnumeric, glade, glib, gnome-control-center, etc.
  • Each issue has the following information shown in this view: a title, and id (project prefix # number), how long ago was it opened, and by whom, how long ago was the last update, and the number of comments added to that issue.
  • Labels visible in this view (they seem to be project specific, and some tickets may have more than one label assigned to them): "5. On-screen Keyboard", "6. Input", "6. Component: Region & Language", etc.
  • Visiting individual issues, one can see that is contains more relevant information such as: description (where a writer could describe the steps needed to reproduce the issue, or provide screen shots and other details), an assignee, a milestone, a time tracking, a due date, set labels, confidentiality level, and a list of participants.
  • Labels are used in order to priorities the scheduling for fixing those issues. Each label has a number (priority, 1 - being the highest priority) and a short text. For example, the gnome-shell project currently has the following labels: 1. Bug, 1. Cleanup, 1. Crash, 1. Enhancement, 1. Epic, 1. Feature, 1. Regression, 1. Security, 2. Merge After Freeze, 2. Needs Design, 2. Needs Diagnosis, 2. Needs Information, 2. Needs Triage, 2. RFC, 3. Expected Behavior, 3. Not Actionable, 3. Not GNOME, 3. Out of Scope, 4. Help Wanted, ... There is also a set of labels that do not contain a number: To Do, Doing, Stretch, HiDPI, Deliverable (see https://gitlab.gnome.org/GNOME/gnome-shell/labels).
  • The last set of labels seem to be useful in otrganizing the issues. Boards display several columns, one of them - for example - displays the issues labeled "To Do", another one displays the ones labeled "Doing", etc.
  • Milestones can be seen in here: https://gitlab.gnome.org/groups/GNOME/-/milestones Each milestone seems to have an expiration date, a project name, and a progress bar indication the number of issues, number of merge requests, and the completion rate.
  • Merge requests allow you to check out a branch, and contain a status, such as: "Ready to be merged automatically. Ask someone with write access to this repository to merge this request" and "This is a Work in Progress".

FOSS in Courses 2 (Instructors)

Activity 1:

  • Because I currently use C# in my courses, I am considering selecting a few HFOSS projects that use C# (or Java/C++) and ask my students to analyze the running time for various methods.
    • Some possible learning outcomes:
      • apply algorithm analysis skills to analyze the performance of various algorithms
      • getting familiar to navigate through unfamiliar code (a "real" project)
    • Prerequisites:
      • understanding basic programming constructs (typically the ones introduced in CS1) and the big-Oh notation.
    • Time estimation:
      • the instructor can allow the student to choose his/her own adventure (hence there will be almost no time needed from the instructor)
      • the student will need to get access to the source code - depending on the project chosen by the instructor this may be time consuming - it may take a few hours, or take as little as just 10 minutes.
    • Input required from the HFOSS community: none
    • Assessment/grading approach: individual work, assessed by the instructor - the student could be asked to find 5 examples of methods that run in O(1), O(n), O(n^2), etc.

Activity 2:

  • I would like to create an activity in which students will be asked to reflect on how specific data is formatted/structured for a given HFOSS project.
    • Given my experience with developing Commercial Electronic Health Records, I think OpenMRS would be a good project to look into.
    • If possible, it would be great to find data structures and/or algorithms in the given code similar to the ones I introduce in my class - or maybe ask the students to find them throughout the project.
    • The following existing activity is somewhat related to what I have in mind: http://foss2serve.org/index.php/CS2_Data_Structures_Activity
    • Some possible learning outcomes:
      • apply algorithm analysis skills to analyze the performance of various algorithms and compare them to the ones introduce in class
    • Prerequisites:
      • understanding basic programming constructs (typically the ones introduced in CS1) and the big-Oh notation.
    • Time estimation:
      • the instructor will need to invest quite some time in order to find relevant data structures used by the HFOSS project that were also introduced in class.
      • the student need to only focus on the running time analysis and comparison of various data structures selected by the instructor.
    • Input required from the HFOSS community: none.
    • Assessment/grading approach: it may be useful to let students adventure through an HFOSS project in teams of 2-3 students.

POSSE 2014-xx

The old content (for POSSE 2014) was removed. Go to "View history" to see deleted text.

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