User:VAjanovski
VAjanovski (Talk | contribs) (→FOSS PROJECTS) |
VAjanovski (Talk | contribs) (→Databases) |
||
(18 intermediate revisions by one user not shown) | |||
Line 15: | Line 15: | ||
---- | ---- | ||
− | |||
− | ==== Stage 1A: Intro to IRC | + | |
+ | == Activities == | ||
+ | |||
+ | === Stage 1A: Intro to IRC === | ||
Part 1: | Part 1: | ||
Line 50: | Line 52: | ||
* /voice gives voice to nick | * /voice gives voice to nick | ||
− | |||
− | == Stage 1A: Intro to FOSS == | + | === Stage 1A: Intro to FOSS === |
− | === Comparative Review on Sugar Labs and | + | ==== Comparative Review on Sugar Labs and Sahana Eden project status ==== |
{| class="wikitable" | {| class="wikitable" | ||
Line 66: | Line 67: | ||
|- | |- | ||
| Community | | Community | ||
− | |||
| | | | ||
+ | | voluntary community of practitioners, students, academics and companies | ||
|- | |- | ||
| Leadership | | Leadership | ||
Line 78: | Line 79: | ||
|- | |- | ||
| Communication | | Communication | ||
− | | | + | | Chat: IRC (#sugar - many present people, scarce discussion, not archived in the last 2yr so cannot evaluate activity)<br/> |
− | | | + | Mailing list: sugar-devel list is active ~100messages/month<br/> |
+ | Forum/Google groups: / | ||
+ | | Chat: IRC (#sahana - only few persons present in the channel, nothing going on in the logs in the last 2 yr, #sahana-eden - occasional requests each few months, some left unanswered)<br/> | ||
+ | Mailing list: too many options, some don't include an archive so one can not check if it's worthy of subscription, no discussions in the general discussions list (at sf.net) in the last 2yr<br/> | ||
+ | Forum/Google groups: occasional requests every few months, answered, spam is present | ||
|- | |- | ||
| Roadmaps | | Roadmaps | ||
Line 90: | Line 95: | ||
|- | |- | ||
| Repositories | | Repositories | ||
− | | github<br/> alive (last commit 16.5.2017)<br/> | + | | github<br/> alive (last commit 16.5.2017)<br/>top commiter: 1100 commits<br/>7 persons have commited code 10% or more in comparison to the top one<br/> trend: development in peak periods, also many quiet periods - overall volume downwards |
− | | github<br/> alive (last commit 29.5.2017)<br/> | + | | github<br/> alive (last commit 29.5.2017)<br/>top commiter: 3400 commits<br/>2 persons have commited code 10% or more in comparison to the top one<br/> trend: steady development - slightly downwards (today 1/2 volume since 5yr ago) |
|- | |- | ||
| Packaging | | Packaging | ||
Line 109: | Line 114: | ||
| github: 23 issues | | github: 23 issues | ||
|} | |} | ||
+ | |||
+ | == Part B == | ||
+ | |||
+ | === FOSS Field Trip === | ||
+ | |||
+ | ==== Github ==== | ||
+ | |||
+ | 2.1 13594 repositories | ||
+ | 2.2 Nodejs/education. Graph of number of commits per date | ||
+ | 3.1 303 repositories | ||
+ | 3.2 Latest commit 52774db on 22 Apr | ||
+ | 4.1 153 repositories | ||
+ | |||
+ | ==== OpenHub ==== | ||
+ | |||
+ | 2.1 3463 projects | ||
+ | 2.2 No. Not a single one of them is on Github | ||
+ | 2.3 10 similar projects | ||
+ | 2.4 Information on the status of the project: various activity graphs and activity reports, lines of code, languages used. | ||
+ | 3.1 Humanitarian: 34. Disaster Management: 54 | ||
+ | 3.2 OpenHub tries to analyze project activity. If it's not able to do so (bad project locations, problems with the code base, ...), it will mark it as Not Available. | ||
+ | 4.1 Reports on Organizations and how active are they. | ||
+ | 5.1 April 17, 2017 | ||
+ | 6.1 June 8, 2017 | ||
+ | 6.2 Github is where the project code is located, so this is the real factual information. OpenHub analyses projects from time to time (it did so for OpenMRS core: "about 2 months ago. based on code collected about 2 months ago" ) | ||
+ | 7 OpenHub is intended to be a global catalog of projects. Github is a service that some projects use for keeping code, documents, data, website structure, etc. Not all projects use Github as a service for their code. | ||
+ | |||
+ | === Project Evaluation === | ||
+ | |||
+ | {| class="wikitable" | ||
+ | ! Aspect | ||
+ | ! OpenMRS | ||
+ | ! Sahana | ||
+ | |- | ||
+ | | Licensing | ||
+ | | Mozilla Public License, version 2.0 (it is OSI Approved) | ||
+ | | MIT (http://www.opensource.org/licenses/mit-license.php) (it is OSI Approved) | ||
+ | |- | ||
+ | | Language | ||
+ | | Java | ||
+ | | | ||
+ | |- | ||
+ | | Activity | ||
+ | | Active, on avg: 30commits/month in 1y | ||
+ | | | ||
+ | |- | ||
+ | | Number of contributors | ||
+ | | Total: 263 (4 of them were significantly more active then the others) | ||
+ | | | ||
+ | |- | ||
+ | | Size | ||
+ | | ~6M lines (2M LOC in Java) | ||
+ | | | ||
+ | |- | ||
+ | | Issue tracker | ||
+ | | https://issues.openmrs.org (1336 open, 10076 closed, active) | ||
+ | | | ||
+ | |- | ||
+ | | New contributor | ||
+ | | There is a Developers Guides, and Getting started as a Developer. There are several discussions about Volunteers on the Forums. | ||
+ | | | ||
+ | |- | ||
+ | | Community norms | ||
+ | | Moto: "There is no such thing as an undocumented convention". So, in accordance to this moto, the Developers Guide is extensively documented with many conventiones, rules. This will be a bit hard for a beginner developer. There is also code of conduct for the community, which focuses on tolerance, communication with others and collaboration. | ||
+ | | | ||
+ | |- | ||
+ | | User base | ||
+ | | Extensive user guides and manuals. Reports on the blog and website about case studies and examples where it has been in use. | ||
+ | | | ||
+ | |} | ||
+ | |||
+ | === Intro to Copyright and Licensing === | ||
+ | |||
+ | {| class="wikitable" | ||
+ | ! Project URL | ||
+ | ! License | ||
+ | ! Can | ||
+ | ! Can Not | ||
+ | ! Must | ||
+ | |- | ||
+ | | https://github.com/openmrs/openmrs-core | ||
+ | | Mozilla Public License 2.0 | ||
+ | | | ||
+ | * Commercial Use | ||
+ | * Modify | ||
+ | * Distribute | ||
+ | * Sublicense | ||
+ | * Place Warranty | ||
+ | * Use Patent Claims | ||
+ | | | ||
+ | * Use Trademark | ||
+ | * Hold Liable | ||
+ | | | ||
+ | * Include Copyright | ||
+ | * Include License | ||
+ | * Disclose Source | ||
+ | * Include Original | ||
+ | | | ||
+ | |- | ||
+ | | https://github.com/apache/incubator-fineract | ||
+ | | Apache License Version 2.0 | ||
+ | | | ||
+ | * Commercial Use | ||
+ | * Modify | ||
+ | * Distribute | ||
+ | * Sublicense | ||
+ | * Place Warranty | ||
+ | * Use Patent Claims | ||
+ | * Private Use | ||
+ | | | ||
+ | * Use Trademark | ||
+ | * Hold Liable | ||
+ | | | ||
+ | * Include Copyright | ||
+ | * Include License | ||
+ | * State Changes | ||
+ | * Include Notice | ||
+ | | | ||
+ | |- | ||
+ | | https://github.com/regulately/regulately-back-end | ||
+ | | No explicit license. | ||
+ | |} | ||
+ | |||
+ | === FOSS in Courses 1 & 2 === | ||
+ | |||
+ | ==== Information Systems Development Processes ==== | ||
+ | |||
+ | Possible student activities: | ||
+ | * Document the Vision behind a chosen FOSS project | ||
+ | * Analysis of the Development process the FOSS project uses and comparison with well-known development process methodology | ||
+ | * Discuss possible introduction of development process methodology | ||
+ | |||
+ | Structure: | ||
+ | * Lectures: relevant material is already taught, only introduction to the project will be needed | ||
+ | * In-class activity: Discussions and Critique of Homeworks | ||
+ | * Homework: guided week-by-week iterations covering steps on proposed activities | ||
+ | * Stream of related activities: ? | ||
+ | * Project: Documentation on the project, Comparison with competing producets (commercial and FOSS) | ||
+ | |||
+ | ==== Software Construction ==== | ||
+ | |||
+ | Possible student activities: | ||
+ | * Develop a complete new use-case according to feature requests for a chosen FOSS project, working according to the proposed process of some well-known methodology (or the methodology prescribed by the FOSS project) | ||
+ | |||
+ | Structure: | ||
+ | * Lectures: relevant material is already taught, only introduction to the project will be needed | ||
+ | * In-class activity: Discussions and Critique of Homeworks | ||
+ | * Homework: guided week-by-week iterations covering steps on proposed activities | ||
+ | * Stream of related activities: ? | ||
+ | * Project: Documentation on the project, Comparison with competing producets (commercial and FOSS) | ||
+ | |||
+ | ==== Team work ==== | ||
+ | |||
+ | Possible student activities: | ||
+ | * Develop a complete new use-case as ane experimental idea for a chosen FOSS project | ||
+ | * Analyze FOSS project and create documentation, fix bugs, propose/respond to issues, functional tests, performance/load tests | ||
+ | |||
+ | Structure: | ||
+ | * Lectures: / (no lectures in this course) | ||
+ | * In-class activity: / (no in-class activity, course is online and asynchronous) | ||
+ | * Homework: guided iterations (duration agreed with students) covering steps on proposed activities | ||
+ | * Stream of related activities: ? | ||
+ | * Project: Implement a feature that does not exist, but that is experimental and would require additional research on how it could be achieved, create a proposal, and work towards a working prototype | ||
+ | |||
+ | ==== Work Practice ==== | ||
+ | |||
+ | Possible student activities: | ||
+ | * Depending on level/skills, can formally join project and work on urgent issues for a fixed set of hours | ||
+ | * This would have to be approved by the institution, with assigned mentor and credits that will be achived if successful | ||
+ | |||
+ | Structure: | ||
+ | * Lectures: / | ||
+ | * In-class activity: / (no classes in this course) | ||
+ | * Homework: / (no homeworks in this course) | ||
+ | * Work-place position activities: Depends on what is agreed within the contract | ||
+ | * Stream of related activities: ? | ||
+ | * Project: Enable the student to join the project and do some work that the project managers see fit, like an employee in the project would do. This has to be agreed in advance, workload should be comparable to a standard 1 semester course, with similar number of hours and complexity. | ||
+ | |||
+ | ==== Databases ==== | ||
+ | |||
+ | Possible student activities: | ||
+ | * Create various reports of interest to the project development processs or project features based on SQL | ||
+ | * Propose model database for additional features and develop a basic throw-away prototype to demonstrate | ||
+ | |||
+ | Structure: | ||
+ | * Lectures: The model of the database of the FOSS project can be discussed during classes as a case-study for excercices | ||
+ | * In-class activity: Discuss database model structure and consider alternative solutions | ||
+ | * Homework: Model additional features | ||
+ | * Stream of related activities: ? | ||
+ | * Project: Implement a working prototype application of the new features | ||
+ | |||
+ | |||
+ | == Part C == | ||
+ | |||
+ | === Intro to Bug Trackers === | ||
+ | |||
+ | Part 1 - Bug Reports | ||
+ | |||
+ | This has changed - not all the columns are present | ||
+ | * ID - bug id | ||
+ | * Sev - how big impact | ||
+ | * Pri - priority | ||
+ | * OS - affected operating system | ||
+ | * Product - affected product | ||
+ | * Status - status of the bug | ||
+ | * Resolution - if it has a resolution | ||
+ | * Summary - description | ||
+ | |||
+ | https://bugzilla.gnome.org/show_bug.cgi?id=110897 | ||
+ | * Identify when the bug was submitted. - very long ago | ||
+ | * Identify if there has been recent discussion about the bug? - no | ||
+ | * 6.3 Is the bug current? - no but it's relevant | ||
+ | * 6.4 Is the bug assigned? To whom? Dia maintainers | ||
+ | * 6.5 Describe what you would need to do to fix the bug. | ||
+ | * - Download source of DIA, experiment with changing pointed attributes manually, recompile it, test it is solved | ||
+ | * - New preference should be created for that attribute if it's solved | ||
+ | |||
+ | Part 2 - Collective Reports | ||
+ | |||
+ | * 3. 260 206 | ||
+ | * 4. positive trend | ||
+ | * 5. Nicolas Dufresne (stormer), Michael Catanzaro, Milan Crha - important for quality control of the patches, experience, contact | ||
+ | * 6. Dan Jacobson, Bastien Nocera, Jo - no - some overlap | ||
+ | * 7. again some overlap, some overlap | ||
+ | * 10. general class | ||
+ | * 11. graphical, tabular activit; duplicates; patches; stack traces | ||
+ | |||
+ | === Intro to GitHub (Activity) === | ||
+ | |||
+ | https://github.com/ajanovski/git-activity |
Latest revision as of 06:22, 1 July 2017
Contents |
Vangel Ajanovski
Vangel V. Ajanovski is an Assistant professor at the Faculty of Computer Science and Engineering, at the Ss. Cyril and Methodius University in Skopje, Macedonia.
The Faculty of Computer Science and Engineering (FCSE) is the leading Macedonian higher-education and research institution in the computing field, with 60 full-time teaching and research staff members and nearly 4000 students. The Faculty offers many study programs ranging from undergraduate 3yr and 4yr studies at the B.Sc. level, through several M.Sc. programs, up to Ph.D. (D.Sc.) level.
Dr. Ajanovski scholarly interests span many computing and related disciplines: databases and information systems, software engineering, computer graphics, e-learning, development of computer-science and it education and curricula. He is teaching undergraduate courses on: Databases, Information Systems, Analisys and Logical Design of Information Systems, Physical Design of Information Systems, Software Construction, Computer Graphics, Digitization and E-presentation; and master courses on: Information Systems Development Processes, Big Data Analytics, and Management of Databases.
In his free time, he enjoys listening to music and occasionally produces some electronic music. Has an "eye" for photography. Loves films and cinematic experience.
Web page: https://ajanovski.info
Faculty listing: http://www.finki.ukim.mk/en/staff/vangel-ajanovski
Activities
Stage 1A: Intro to IRC
Part 1:
- How do people interact?
- The style of discussion is informal. The structure itself is linear, but using special pre-agreed customs and rules the participants managed to keep some structure.
- What is the pattern of communication?
- Discussion topic by topic, then action by action in each topic. Round-the-table statements by each participant.
- Are there any terms that seem to have special meaning?
- Obvious meetbot commands. + Some jargon that is customary for the project.
- What advantages might IRC have over other real-time communication methods (like Google Chat or Facebook Messenger?) Are there potential disadvantages?
- Main advantage is the informality and ease of access, especially with web-based clients. Informality makes it great tool for a simple meeting place, like a city square or bazaar where a group agrees to always be in case they want to meet each other, when they are online. They would not need accounts, registration, special installations etc. It should be imagined as a coffee shop or bar or pub, good for small talk, informal open discussions, informal news/updates.
- Main disavantage is that it based on a loose network, and occasionally inter-node communication drops and people suddenly and without warning leave the discussion "channels". Another big issue is that the platform as a minimum can not be considered trust-worthy. Unless one performs special registrations and procedures for verification, one can not be sure that the participants are truly who they claim to be. There are ways to solve this, but in general new users should be taught how to take care of these issues so that they don't turn out victims. Third issue is that there is no structure in the discussions, it is just a simple chat. One can try to impose rules, or use special meeting support software clients that take special commands and practices so that a structure is implemented. This is usually rather hard to follow.
- Can you make any other observations?
- There are questions by participants, followed by answers by other participants and a general discussion where it is rather hard to follow who responds to what unless one understands the exact context.
- Bonus question: Why didn't Heidi and Darci's actions get picked up by the meetbot?
- Actions were picked up, but they were not assigned to heidi or darci. Their nicknames were incorrectly spelled so the bot could not assign them their actions.
Part 2: nothing to deliver, should have successfully installed IRC client
- Done, I use Pidgin. To students I recommend the web-based Freenode client at https://webchat.freenode.net/
Part 3: observations of the #a11y channel communications and how they differed from the sample dialog in Part 1.
- No discussions whatsoever in the several days I have been tuned-in this channel.
- As a contrast to the activity in part 1, I can comment on other channels that I frequented in the past. Most discussions are generic on and off-topic discussions, sometimes support requests are answered. Chatlogger bots are the norm, while meeter bots are rarely used on general public channels, but are in use in some developer channels.
Part 4 (optional): a list of at least 5 commands that will work in the channel that was created, and what they mean.
- /topic sets channel topic
- /op gives op rights to nick
- /kick a nick out of the channel
- /mode setting mode of channel operation
- /voice gives voice to nick
Stage 1A: Intro to FOSS
Comparative Review on Sugar Labs and Sahana Eden project status
Aspect | Sugar Labs | Sahana Eden |
---|---|---|
License | GNU GPL v3 | MIT (http://www.opensource.org/licenses/mit-license.php) |
Community | voluntary community of practitioners, students, academics and companies | |
Leadership | ||
Forking | 120 forks | 458 forks |
Communication | Chat: IRC (#sugar - many present people, scarce discussion, not archived in the last 2yr so cannot evaluate activity) Mailing list: sugar-devel list is active ~100messages/month |
Chat: IRC (#sahana - only few persons present in the channel, nothing going on in the logs in the last 2 yr, #sahana-eden - occasional requests each few months, some left unanswered) Mailing list: too many options, some don't include an archive so one can not check if it's worthy of subscription, no discussions in the general discussions list (at sf.net) in the last 2yr |
Roadmaps | ||
Releases | ||
Repositories | github alive (last commit 16.5.2017) top commiter: 1100 commits 7 persons have commited code 10% or more in comparison to the top one trend: development in peak periods, also many quiet periods - overall volume downwards |
github alive (last commit 29.5.2017) top commiter: 3400 commits 2 persons have commited code 10% or more in comparison to the top one trend: steady development - slightly downwards (today 1/2 volume since 5yr ago) |
Packaging | ||
Upstream/downstream | ||
Version control | ||
Trackers | github: 2 issues | github: 23 issues |
Part B
FOSS Field Trip
Github
2.1 13594 repositories 2.2 Nodejs/education. Graph of number of commits per date 3.1 303 repositories 3.2 Latest commit 52774db on 22 Apr 4.1 153 repositories
OpenHub
2.1 3463 projects 2.2 No. Not a single one of them is on Github 2.3 10 similar projects 2.4 Information on the status of the project: various activity graphs and activity reports, lines of code, languages used. 3.1 Humanitarian: 34. Disaster Management: 54 3.2 OpenHub tries to analyze project activity. If it's not able to do so (bad project locations, problems with the code base, ...), it will mark it as Not Available. 4.1 Reports on Organizations and how active are they. 5.1 April 17, 2017 6.1 June 8, 2017 6.2 Github is where the project code is located, so this is the real factual information. OpenHub analyses projects from time to time (it did so for OpenMRS core: "about 2 months ago. based on code collected about 2 months ago" ) 7 OpenHub is intended to be a global catalog of projects. Github is a service that some projects use for keeping code, documents, data, website structure, etc. Not all projects use Github as a service for their code.
Project Evaluation
Aspect | OpenMRS | Sahana |
---|---|---|
Licensing | Mozilla Public License, version 2.0 (it is OSI Approved) | MIT (http://www.opensource.org/licenses/mit-license.php) (it is OSI Approved) |
Language | Java | |
Activity | Active, on avg: 30commits/month in 1y | |
Number of contributors | Total: 263 (4 of them were significantly more active then the others) | |
Size | ~6M lines (2M LOC in Java) | |
Issue tracker | https://issues.openmrs.org (1336 open, 10076 closed, active) | |
New contributor | There is a Developers Guides, and Getting started as a Developer. There are several discussions about Volunteers on the Forums. | |
Community norms | Moto: "There is no such thing as an undocumented convention". So, in accordance to this moto, the Developers Guide is extensively documented with many conventiones, rules. This will be a bit hard for a beginner developer. There is also code of conduct for the community, which focuses on tolerance, communication with others and collaboration. | |
User base | Extensive user guides and manuals. Reports on the blog and website about case studies and examples where it has been in use. |
Intro to Copyright and Licensing
Project URL | License | Can | Can Not | Must | |
---|---|---|---|---|---|
https://github.com/openmrs/openmrs-core | Mozilla Public License 2.0 |
|
|
|
|
https://github.com/apache/incubator-fineract | Apache License Version 2.0 |
|
|
|
|
https://github.com/regulately/regulately-back-end | No explicit license. |
FOSS in Courses 1 & 2
Information Systems Development Processes
Possible student activities:
- Document the Vision behind a chosen FOSS project
- Analysis of the Development process the FOSS project uses and comparison with well-known development process methodology
- Discuss possible introduction of development process methodology
Structure:
- Lectures: relevant material is already taught, only introduction to the project will be needed
- In-class activity: Discussions and Critique of Homeworks
- Homework: guided week-by-week iterations covering steps on proposed activities
- Stream of related activities: ?
- Project: Documentation on the project, Comparison with competing producets (commercial and FOSS)
Software Construction
Possible student activities:
- Develop a complete new use-case according to feature requests for a chosen FOSS project, working according to the proposed process of some well-known methodology (or the methodology prescribed by the FOSS project)
Structure:
- Lectures: relevant material is already taught, only introduction to the project will be needed
- In-class activity: Discussions and Critique of Homeworks
- Homework: guided week-by-week iterations covering steps on proposed activities
- Stream of related activities: ?
- Project: Documentation on the project, Comparison with competing producets (commercial and FOSS)
Team work
Possible student activities:
- Develop a complete new use-case as ane experimental idea for a chosen FOSS project
- Analyze FOSS project and create documentation, fix bugs, propose/respond to issues, functional tests, performance/load tests
Structure:
- Lectures: / (no lectures in this course)
- In-class activity: / (no in-class activity, course is online and asynchronous)
- Homework: guided iterations (duration agreed with students) covering steps on proposed activities
- Stream of related activities: ?
- Project: Implement a feature that does not exist, but that is experimental and would require additional research on how it could be achieved, create a proposal, and work towards a working prototype
Work Practice
Possible student activities:
- Depending on level/skills, can formally join project and work on urgent issues for a fixed set of hours
- This would have to be approved by the institution, with assigned mentor and credits that will be achived if successful
Structure:
- Lectures: /
- In-class activity: / (no classes in this course)
- Homework: / (no homeworks in this course)
- Work-place position activities: Depends on what is agreed within the contract
- Stream of related activities: ?
- Project: Enable the student to join the project and do some work that the project managers see fit, like an employee in the project would do. This has to be agreed in advance, workload should be comparable to a standard 1 semester course, with similar number of hours and complexity.
Databases
Possible student activities:
- Create various reports of interest to the project development processs or project features based on SQL
- Propose model database for additional features and develop a basic throw-away prototype to demonstrate
Structure:
- Lectures: The model of the database of the FOSS project can be discussed during classes as a case-study for excercices
- In-class activity: Discuss database model structure and consider alternative solutions
- Homework: Model additional features
- Stream of related activities: ?
- Project: Implement a working prototype application of the new features
Part C
Intro to Bug Trackers
Part 1 - Bug Reports
This has changed - not all the columns are present
- ID - bug id
- Sev - how big impact
- Pri - priority
- OS - affected operating system
- Product - affected product
- Status - status of the bug
- Resolution - if it has a resolution
- Summary - description
https://bugzilla.gnome.org/show_bug.cgi?id=110897
- Identify when the bug was submitted. - very long ago
- Identify if there has been recent discussion about the bug? - no
- 6.3 Is the bug current? - no but it's relevant
- 6.4 Is the bug assigned? To whom? Dia maintainers
- 6.5 Describe what you would need to do to fix the bug.
- - Download source of DIA, experiment with changing pointed attributes manually, recompile it, test it is solved
- - New preference should be created for that attribute if it's solved
Part 2 - Collective Reports
- 3. 260 206
- 4. positive trend
- 5. Nicolas Dufresne (stormer), Michael Catanzaro, Milan Crha - important for quality control of the patches, experience, contact
- 6. Dan Jacobson, Bastien Nocera, Jo - no - some overlap
- 7. again some overlap, some overlap
- 10. general class
- 11. graphical, tabular activit; duplicates; patches; stack traces