User:Kthurston
Line 250: | Line 250: | ||
---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ||
'''B.3: Intro to Copyright and Licensing''' | '''B.3: Intro to Copyright and Licensing''' | ||
+ | Identify the license for the following projects (look for a LICENSE file in the project's root; if it's not there assume no license): | ||
+ | [https://github.com/openmrs/openmrs-core] | ||
+ | Uses Mozilla Public License v2 | ||
+ | |||
+ | [https://github.com/apache/incubator-fineract] | ||
+ | Uses Apache License v2 | ||
+ | |||
+ | [https://github.com/regulately/regulately-back-end] | ||
+ | No license listed | ||
+ | |||
+ | Go to https://tldrlegal.com/ . Look up each of the above licenses. Identify the “cans” the “cannots” and the “musts” for each. | ||
+ | |||
+ | '''Mozilla Public License v2''' | ||
+ | Quick Summary: MPL is a copyleft license that is easy to comply with. You must make the source code for any of your changes available under MPL, but you can combine the MPL software with proprietary code, as long as you keep the MPL code in separate files. Version 2.0 is, by default, compatible with LGPL and GPL version 2 or greater. You can distribute binaries under a proprietary license, as long as you make the source available under MPL. | ||
+ | Can: | ||
+ | Commercial Use | ||
+ | Modify | ||
+ | Distribute | ||
+ | Sublicense | ||
+ | Place Warranty | ||
+ | Use Patent Claims | ||
+ | Cannot: | ||
+ | Use Trademark | ||
+ | Hold Liable | ||
+ | Must: | ||
+ | Include Copyright | ||
+ | Include License | ||
+ | Disclose Source | ||
+ | Include Original | ||
+ | |||
+ | '''Apache License v2''' | ||
+ | Quick Summary: You can do what you like with the software, as long as you include the required notices. This permissive license contains a patent license from the contributors of the code. | ||
+ | Can: | ||
+ | Commercial Use | ||
+ | Modify | ||
+ | Distribute | ||
+ | Sublicense | ||
+ | Private Use | ||
+ | Use Patent Claims | ||
+ | Place Warranty | ||
+ | Cannot: | ||
+ | Hold Liable | ||
+ | Use Trademark | ||
+ | Must: | ||
+ | Include Copyright | ||
+ | Include License | ||
+ | State Changes | ||
+ | Include Notice | ||
+ | |||
+ | For each license, state whether you would (or would not) be comfortable contributing code to that project and why (or why not): | ||
+ | It depends on the nature of the project and the nature of my contribution whether I would be willing to (comfortable) contribute code. If the effort was in the course of my role as an educator, there would probably be no issue other than possibly clearing the contribution with my employer if the work was performed as part of my teaching duties during a semester. | ||
'''B.4: FOSS in Courses 1''' | '''B.4: FOSS in Courses 1''' |
Revision as of 03:43, 16 June 2019
Name: Karen Thurston
Position: Assistant Professor of Computer Science, North Idaho College, 1000 W. Garden Ave., Coeur d'Alene, ID 83814
email: karen.thurston@nic.edu
Page: https://www.nic.edu/directories/single_entry.aspx?id=2855
Other Organizations:
Bio: www.linkedin.com/in/karenhthurston
GitHub: https://github.com/karenthurstonnic
IRC: server: freenode.net nick: kthurston channels: foss2serve
HFOSS Projects:
Ushahidi: [1]
HFOSS-Related Courses:
CSC151 - Computer Science II, CSC210 - Concepts of Programming Languages, CS270 - System Software
Grants: 2015-2018, State of Idaho, Cybersecurity Training & Operations Center, University of Idaho
Publications: Conference paper: The Healthcare IoT Ecosystem, CHASE2018: The Third IEEE/ACM Conference on Connected Health: Applications, Systems, and Engineering Technologies
Summer 2019 Deliverables:
PART A A.1: Intro to FOSS A.2: Teaching Open Source A.3: Intro to Wiki A.4: Intro to IRC A.5: IRC Meeting 1 A.6: Intro to FOSS Project Anatomy
PART B
B.1: FOSS Field Trip
In Part 1 you will search GitHub for projects. Do the following:
Open a new browser tab and go to: https://github.com Find the search box near the top of the page, type "education", and press enter or click on the search icon.
How many repositories are found for "education"? 28,423 results
How many of these repos use the JavaScript language? (Hint: Find a summary table.): 3,526 are JavaScript
In the first page of results, which repo was updated most recently? MindLeaps/tracker (student progress tracking, 30 seconds ago Which was updated least recently? drongous/ems (education management system), in 2008
Many repos are small and inactive. To see the most active repos, find Sort and pick most stars. Which education repo has the most stars? freeCodeCamp has the most' How many? 303k
Click on this repo to see its overview page. Scroll down past the list of files to see a project description.
In GitHub, each reported problem or suggestion is an issue, the code and documentation to fix an issue is a pull request, and a pull request that is accepted and added to a repo is a commit. Each issue and pull request is either open (in progress) or closed (done). (You will learn more about all of this later.)
At the top of the overview page, click on the Issues tab. You should see a list. How many issues are open? 210 open issues closed? 13,400 closed issues
Click on the Pull requests tab. How many pull requests are open? 1,639 open pull requests closed? 20,620 closed pull requests
Click on the Insights tab. What do you see? The Insights tab provides a graphical and numeric summary of the project statistics, including those just mentioned Within Insights, go to the left menu and click on Commits. What do you see? A graph of the commits over the prior year
Go back to the main GitHub page. Search for "humanitarian" projects. How many repos are found? 526 repos
Find HTBox/crisischeckin How many stars does it have? 178 stars What language(s) does it use? C# When was the last update? October 24, 2018
Search for "disaster management", or terms that interest you. How many repos are found? Found 481 repos for disaster management Keep the GitHub browser tab open as you move on to Part 2.
Part 2 - OpenHub In Part 2, you will search OpenHub for projects. Do the following:
Open a new browser tab and go to: https://www.openhub.net In the search box, type "education".
The listing shows the number of pages, not the number of projects. By default, each page shows 10 projects. How many projects were found? 2,262 projects
Many projects are small and inactive. To see the most active projects, find Sort by and pick Activity Level. Which (if any) of the most active projects do you recognize? I recognize GeoGebra since our math department uses it.
In the Sort by text box pick Relevance. If necessary, go to the bottom of the screen and advance to pages 2, 3, ... in the listing until you find KDE Education, and click on it.
From the KDE Education page, click on Code Locations (on the right side). Are any of the repo locations on GitHub?All of the repo locations on the first page are from Git.
Go back to KDE Education, and click on Similar Projects (below Code Locations). How many similar projects are listed? Ten are listed
This page contains general information for the similar projects. What info is shown for each? Activity level, language, and license type
Repeat your OpenHub search for both "humanitarian" and "disaster management", or terms that interest you. How many projects did each search return? Humanitarian returned 23 projects. Disaster Management returned 30 projects.
Some projects show "Activity Not Available". Click on the pyramid icon and read the page shown. Why is "activity not available"?OpenHub does not yet have a URL for the repo, so it cannot analyze the activity.
Click on Organizations (near the top of the main OpenHub page). What info is shown? The page shows a summary of most active organizations, commit volume, newest organizations, and commits by sector (commercial, non-profit, education, and government)
From Organizations, search for "OpenMRS". Do the search results show projects or organizations?The result describes the organization/community.'
Find the project "OpenMRS Core". When was the last commit?Over 1 year ago
Go back to GitHub and search for the project "OpenMRS Core". When was the last commit?openmrs/openmrs-core shows the last commit 13 hours ago. Why do you think these sites have different info? Depending on when the OpenHub site ran its analysis on the GitHub site, it could be out of date.
What are some benefits & drawbacks of searching for a project in both GitHub & OpenHub? If GitHub is where the code repository is stored, it would be more up to date. OpenHub just reports on repos, it is not a forge as is GitHub.
B.2: Project Evaluation
SUGAR LABS (http://sugarlabs.org/)
Project Goals: The project has educational, technical, and community goals.
The educational goals are not about education, but about the availability of technology to support education:
To make Sugar and Sugar activities freely and readily available to learners everywhere To explore and share best practices To provide a forum for discussion and support for technology for learning To provide mechanism for evaluation and dissemination of results.
The technical goals are:
To make it “simple” to share Sugar activities. This will require an architecture that allows discovery of activities. To create versions of Sugar that run on multiple operating systems and on multiple hardware platforms. It should be “simple” to install Sugar everywhere. Specifically, it means packaging for every distribution and every virtual machine—removing hardware-related dependencies wherever possible. To make it “simple” to write Sugar activities. This necessitates stable APIs and example code that uses these APIs. To make Sugar activities even more secure. Our principal user community is comprised of children; they must be protected from malware, phishing, botnets, etc.
The community goals listed are a combination of community, technical, and educational goals:
To provide local and regional technical and pedagogical support. (community) To create new learning activities and pedagogical practice. (educational) To provide localization and internationalization of software, content, and documentation. (technical) To provide integration and customization services. (technical)
The project roles include: Activity Team Design Team Documentation Team Development Team Infrastructure Team Marketing Team Platform Team Translation Team Wiki Team Oversight Board
Roles most suitable for my students: Design, documentation, development, and platform team roles.
Commonalities/differences across roles? The roles my students could fill would be directly related to software development. I teach C++, Concepts of Programming Languages, and Operating Systems Software, so these roles would be the best fit. Students should be aware of the other roles, however, since systems development requires all of them and all are important.
General Process for submitting a bug: The SugarLabs site has a page devoted to this topic: https://wiki.sugarlabs.org/go/Submit_Bugs/Problems It also has a page describing how to write a bug ticket. The advice on the page is general good, but one area not addressed is that if a software system has a formatted bug ticket with fields to fill out, this is a preferable to a free form bug ticket. The form will typically be more efficient as it will provide specific information to the programmer. For example, it is helpful to categorize bugs by severity or category. If the software crashes, the bug report may be given a higher priority than if the report is simply a typographical error in a program message.
Types/categories of tickets listed on this page as well as the information available for each ticket: As of June 13, 2019, there are 687 open, and 1,683 closed tickets for all SugarLabs projects combined. Some of the issues are tagged with a category, but the sort doesn't seem to allow sorting by categories. Scrolling to an issue with a category label, then clicking on the label, displays all issues with that label.
Date of last commit: To sugarlabs/readetexts 2 days ago (June 11, 2019)
Repository -- https://github.com/sugarlabs/sugar/ last commit: March 3, 2019
How the release cycle and roadmap update are related: This page describes the schedule for releases: https://wiki.sugarlabs.org/go/Development_Team#Schedule Previously Sugar was released roughly every 6 months, but now releases are ad hoc, "if at all". The current version appears to be .82. I have the "Sugarizer" Android app on my phone (Lionel Laske, developer), it is version 1.1.0, last updated 1/20/2019, first released 10/16/2014.
Communication -- Sugar Labs promotes communication among its community members in the following ways. IRC: https://wiki.sugarlabs.org/go/Internet_Relay_Chat Mailing lists: https://wiki.sugarlabs.org/go/Mailing_Lists Blog: http://planet.sugarlabs.org/ Wiki: http://wiki.sugarlabs.org/go/Welcome_to_the_Sugar_Labs_wiki
Sahana Eden Project (https://sahanafoundation.org/eden/) Project goals: "Sahana EDEN is the world's most popular open-source information management system for disaster and humanitarian aid management. It can support all phases of the emergency cycle "out of the box" or be customized to meet the specific needs of agencies and organizations."
Contributions possible: Contributors must first sign a CLA (Contributor License Agreement) prior to downloading code from GitHub. The Sahana Foundation is the sponsoring organization. The wiki, at https://github.com/sahana/eden/wiki, provides info on types of contributions:
Developers A detailed page gives direction on getting started as a developer
Blueprints - functionality that we would like to see implemented Contains current and proposed high level functionality groups.
Developer Guidelines Includes getting started information, and the process, framework, modules, and also a German translation of the guidelines.
Testers Information for end user testers as well as developers and system integrators.
Bug Reporting Guidelines Detailed instructions, including the severity and category of bugs to use.
Bug Marshals-Patch Reviewing Guidelines Contains a link to the postgressql guidlines
Newsletter Report Writers No information
Documentors No information
Translators The project needs a translation lead/coordinator. Some tools are listed on the page.
Designers This page relates to graphic design, not software design. Includes links to resources.
SysAdmin Contains information about deployment cycles and also information on creating new instances.
GIS Specialists Includes documentation, data, tools, code, and GIS resources.
How is this structure different than the one you found on the Sugar Labs website? The Sahana Eden project is more structured along conventional software development practices (more formal bug reporting, for example). There is a section of "easy to fix bugs" which may be appropriate for students.
Tracker -- The code for Sahana Eden is hosted on GitHub: https://github.com/sahana/eden . There are only 26 open and 76 closed issues for Sahana Eden. The oldest is in 2012, the newest is in May, 2019.
Repository -- The most recent commit was 20 hours prior to my query on 6/14/2019 0846 PDT.
Release cycle -- Information about Sahana Eden's release cycle and roadmap were not easy to find. Still looking. Historical information is here: https://en.wikipedia.org/wiki/Sahana_Software_Foundation The first release of the software seems to be following the Indian Ocean Tsunami in 2004. From Wikipedia.org: "...a team of Sri Lankan technology workers associated with the Lanka Software Foundation (LSF) developed software that could be used by the government to coordinate assistance for those affected by the tsunami.[citation needed]"
Deployment list -- This page describes where Sahana Eden has been deployed: http://eden.sahanafoundation.org/wiki/Deployments
Communication -- Sahana Eden promotes communication among its community members in the following ways. Chat (via Slack): http://eden.sahanafoundation.org/wiki/Chat Mailing lists: http://wiki.sahanafoundation.org/community/mailing_lists Google Groups: https://groups.google.com/forum/?fromgroups#!forum/sahana-eden
B.3: Intro to Copyright and Licensing Identify the license for the following projects (look for a LICENSE file in the project's root; if it's not there assume no license):
[2] Uses Mozilla Public License v2
[3] Uses Apache License v2
[4] No license listed
Go to https://tldrlegal.com/ . Look up each of the above licenses. Identify the “cans” the “cannots” and the “musts” for each.
Mozilla Public License v2 Quick Summary: MPL is a copyleft license that is easy to comply with. You must make the source code for any of your changes available under MPL, but you can combine the MPL software with proprietary code, as long as you keep the MPL code in separate files. Version 2.0 is, by default, compatible with LGPL and GPL version 2 or greater. You can distribute binaries under a proprietary license, as long as you make the source available under MPL. Can:
Commercial Use Modify Distribute Sublicense Place Warranty Use Patent Claims
Cannot:
Use Trademark Hold Liable
Must:
Include Copyright Include License Disclose Source Include Original
Apache License v2 Quick Summary: You can do what you like with the software, as long as you include the required notices. This permissive license contains a patent license from the contributors of the code. Can:
Commercial Use Modify Distribute Sublicense Private Use Use Patent Claims Place Warranty
Cannot:
Hold Liable Use Trademark
Must:
Include Copyright Include License State Changes Include Notice
For each license, state whether you would (or would not) be comfortable contributing code to that project and why (or why not): It depends on the nature of the project and the nature of my contribution whether I would be willing to (comfortable) contribute code. If the effort was in the course of my role as an educator, there would probably be no issue other than possibly clearing the contribution with my employer if the work was performed as part of my teaching duties during a semester.
B.4: FOSS in Courses 1
B.5: IRC Meeting 2 I missed this IRC meeting due to scheduling conflicts, so I reviewed the log and minutes.
PART C C.1: Intro to Bug Trackers
C.2: Intro to GitHub
C.3: FOSS in Courses 2
C.4: IRC Meeting 3
Also: Install GitHub on laptop to prepare for face to face workshop in Philadelphia Done
Optional: Install HFOSS project from GitHub Project: Ushahidi