Skip to content
Extraits de code Groupes Projets

Comparer les révisions

Les modifications sont affichées comme si la révision source était fusionnée avec la révision cible. En savoir plus sur la comparaison des révisions.

Source

Sélectionner le projet cible
No results found

Cible

Sélectionner le projet cible
  • MatheusMorsRamos/lingi2401
  • blogeot/lingi2401
  • vancampenhos/lingi2401
  • raghuvanshi/lingi2401
  • LouisDeWilde/lingi2401
  • nfraiture/lingi2401
  • mertensqu/lingi2401
  • sanchezrivas/lingi2401
  • dintinosalga/lingi2401
  • nifischer/lingi2401
  • NikiNazaran/lingi2401
  • bbrarou/lingi2401
  • JorgePerezRamos/lingi2401
  • overweg/lingi2401
  • NicolasDedoyard/lingi2401
  • fbotton/lingi2401
  • LocHernaut/loic-hernaut-lingi-2401
  • elbawab/lingi2401
  • Anne-MarieKourieh/lingi2401
  • everstraelen/lingi2401
  • nizeyimanash/lingi2401
  • lamottea/lingi2401
  • mihalleux/lingi2401
  • aferier/lingi2401
  • hoggej/lingi2401
  • aji/lingi2401
  • kury/lingi2401
  • antoineni/lingi2401
  • bauchaul/lingi2401
  • amusoni/lingi2401
  • BenoitRaucq/lingi2401
  • tshafiei/lingi2401
  • hurolin/lingi2401
  • RomainSpanhove/lingi2401
  • vbaillieux/lingi2401
  • codetry/lingi2401
  • mvaillant/lingi2401
  • RayanAbarkan/lingi2401
  • jdesalle/lingi2401
  • gallezar/lingi2401
  • MissJirawadeeSampusri/lingi2401
  • VladimirPetrovic/lingi2401
  • moedts/lingi2401
  • holodiline/lingi2401
  • cbakashika/lingi2401
  • morghettgabo/lingi2401
  • mcosyns/lingi2401
  • gradar/lingi2401
  • muntean/lingi2401
  • buyar/lingi2401
  • antoineni/open-source-linfo-2401
  • CedricAntoine/lingi2401
  • bridubois/lingi2401
  • Mohamed-AnassGallass/lingi2401
  • dvanrossum/lingi2401
  • barbasonr/lingi2401
  • ldricot/lingi2401
  • vanpevenaey/lingi2401
  • egouthiere/lingi2401
  • piryns/lingi2401
  • ofally/lingi2401
  • cedric/lingi2401
  • hdelporte/lingi2401
  • ndaube/lingi2401
64 résultats
Afficher les modifications
Validations sur la source (48)
Affichage de
avec 935 ajouts et 1 suppression
Fichier ajouté
**Title** : Open Source Strategy for Software development
**Author** : Charles XICOLA
**Last updated** : 23/12/2022
**NOMA** : 3456-22-00
**Year** : 2022/2023
**License** : BSD 3-Clause "New" or "Revised" License
*Detail of the license* : A permissive license similar to the BSD 2-Clause License, but with a 3rd clause that prohibits others from using the name of the copyright holder or its contributors to promote derived products without written consent.
**Note** : There is no pull request in this project. Instead, my changes can be found on the origin/develop branch of the project. My file is found at :
*gem5\src\mem\ruby\network\garnet\HOWTO.txt* .
# The Project
The project I was interested in is the development of the software "gem5". It is a software that aims at simulating a computer, from entire system down to its tiniest parts. It is widely used, mainly in the research field. It is reportedly quoted in some 5000 articles in recent years. The part I modified is called "Garnet", which is itself a part of "Ruby".
Those parts are used for testing the network of cores of a processor only. It has a very specific use.
# Why this project
During Summer 2022, I was in an internship in a French research structure (IRISA-INRIA). The goal of my team was to create a modified version of gem5, that would include new components to test. I had to modify the behavior of the software regarding these new components, and add some features. I was really invested in this project, and I wanted to add my knowledge to the project, in order to better help future modification be done easier, as most modifications I made were only a few lines long, but finding where to implement it was a long process.
# What has been done
I chose to implement a textfile, that I called "HOWTO.txt". I put a dozen short tips that help implementing what I had to do, indicating where do do what and how. Also, when something is really hard or not possible, I explained what I had tried and what had failed. I put titles of how to change what, then wrote an explaination and the functions/files to modify to add a specific feature or change a behavior.
# Connection with the community
Because the software is widely used, the contribution system is very well rounded. There is a website detailing how to install the project, its documentation and its contribution system.
Useful links :
- https://www.gem5.org/getting_started/
- https://www.gem5.org/documentation/
- https://www.gem5.org/contributing/
There is a Slack forum with dedicated channels, where it is possible to ask questions or seek help with the software. There is always a maintainer answering,as the community is very active. There are numerous active PhD students and scientists on this forum.
There is a detailed list of issues that remain to be done. This system even indicates the difficulty. Sadly, no issue tackles the part of the project I tackled.
The ticket system :
https://gem5.atlassian.net/jira/software/c/projects/GEM5/issues
I asked on the forum if Garnet was actually a part of gem5 in order to make sure I was asking questions at the right place. It turns out Garnet originates from another project, which later was merged with gem5 15 years ago. As this module is very robust, there was no update whatsoever since the merge. I then asked if modifications were welcome or not, which maintainers answered yes. They claimed it may benefit someone as I already studied the code.
So I went ahead, studied the module again to make a list of the things I modified and how to do it, then wrote a short, clear text file givings advice and tips about how to implement some features, where to do it, what to modify, what is possible to do, or is very hard etc...
# Difficulties
gem5 only works under Linux, and is hard to adapt to windows. I used a Ubuntu 20.04 virtual machine to run the software. Installation was rather hard despite having very simple instructions. I had an error with a file, which somehow fixed itself. This is very likely because I was doing something wrong without realizing.
Regarding the contribution, I had no trouble, as I was juste writing a text file.
When I tried to commit the change, I had issues with the "hooks". Those are modules which check the shape and form of the code in order to make sure the code respects certain standards. Hooks are very sensitive, as I wrote my textfile withlines a bbit too long and I had to change it.
When I tried pushing my change the first time, I had branch issues : I could not have access to the develop branch. I waited and tried again, which worked.
Then I was able to push and commit the change. To submit it to review, I needed to send it over to Gerrit, which required an identification using different scripts, and I was not able to make them work in time.
# State of the commit
The changes are staged and committed, but not submitted to review yet. Gerrit needs an identification using username and password, but somehow I can't set the password on account creation or change it later. I found a way to set an ID/password despite an empty ID, but the process is long and complex, I could not have it to work in time.
# Journal
2/11/2022 : accès au Slack des développeurs.
3/11 : Recherche d'issues à traiter, liens utiles en dessous.
https://www.gem5.org/contributing
https://gem5.atlassian.net/jira/software/c/projects/GEM5/issues/?filter=allissues
10/11 : Téléchargement de gem5, questions sur le forum Slack.
20/11 : Recherche des fonctionnalités que j'avais implémentées, vérification de leur code.
2/12 : Tentative d'installation de gem5.
7/10 : Installation de gem5, installation des hooks.
10/12 : Rédaction du HOWTO.txt, en vérifiant les fonctions/fichiers à modifier.
15/12 : Tentative de push, problèmes de hook.
20/12 : Vérification de la rédaction du HOWTO.txt
21/12 : Première tentative de push, problème de branche.
23/12 : Push des changement sur la branche de développement. Tentative d'ajout pour review sur Gerrit, mais problème d'identification.
# Conclusion
I was able to see how wide the world of open source is, and how much it is possible to contribute and help others. I am sad I could not go to the review phase in time, despite my code being committed, by lack of time and experience.
I hope I can tackle this issue later and actually help guiding later development or modification of the GARNET module, as it may help tons of students and scientists.
I learnt how a wide community can be organized arround an open-software project, using several tools such as the Jira, Gerrit and obviously their website and in-code documentation.
# Book
Bible
I wanted to enlarge my culture about religion, and confront the way I see them practiced in society, and confront the difference with the corresponding sacred text in order to better understand the aspects of religion. This book is the one I started with, with a specificity : I started reading the gospels only, in order to seize what is actually claimed by the christian prophet, to better compare it with the rest of the book later.
If I had to recommend something lighter, I would recommend "Ravage" from René Barjavel, which depicts a trait everyone forgets : almost nobody can be self-sufficient nowadays.
\ No newline at end of file
# Contributing to an Open Source Project : Python-sc2
| **Author:** | Arthur Ferier |
| ------------------------ | ---------------------------------------- |
| **Date:** | 19/01/2023 |
| **NOMA:** | 20691800 |
| **Academic Year:** | 2022-2023 |
| **Open Source Project:** | [python-sc2](https://github.com/BurnySc2/python-sc2)|
| **Pull request made:** | [Pull Request](https://github.com/BurnySc2/python-sc2/pull/159) |
## Why this project ?
It took me all the term to choose the project I wanted to contribute to.
I First searched for simple projects so that I wouldn't be bothered with complicated code that is not useful to learn.
Then, I remembered about a project I cloned (and used) two years ago to use for my own fun which was _BurnySc2/Python-sc2_.
The library consists on an Interface to create bots powered by machine learning for the game Starcraft 2.
I was already running Ubuntu for my daily use and I had a rough time making the library work on a linux platform
since the game is originally designed for Microsoft and Mac users.
The library was designed to include the linux users to use it,
but the Readme.md file wasn't clear to me, at the time.
So I decided to update it, for the project but also for myself and
the other users of this library that is meaningful to me.
## Getting in touch with the maintainer
Before contributing to the project, I sent a message on discord to Burny, the maintainer of the project.
I already had a conversation with him 2 years ago when we tried to make the library work on linux together, so I knew
that I could contact him by this channel of conversation.
I told him what I wanted to do, and he said that it was a good idea and that
he could personally review my PR when it would be done.
## The project
What I wanted to do was not really complicated, since it is only modifying a .md file and I already noted all the steps
required to make the project work under linux.
I was surprised to see that all the steps were already here on the Readme.md file. I don't know if they were already there
two years ago, or that I just didn't take the time to properly read the file back then...
In any case, I found that all these steps could be gathered on one place to make it easier to follow.
I also changed the size of the titles of the different sections.
#### 31 December
I made the pull request and notified Burny. He checked it, found that I introduced a typo and there was
a broken URL somewhere else on the file (not my fault in this case). from that, he made 2 request changes which I accepted.
he showed no more activity until the 5th of january.
#### 5 January
I got a response from him, he asked me to make a few more structural changes.
We had a last discussion on a few changes, until he was happy with the result and accepted my pull request.
## conclusion and learning from the project
it was fun to contribute to this project, and now I know a bit more on how to contribute to projects. I won't be
shy the next time I encounter an interesting project with ways of contributing that are at my level. It is really
rewarding to do things for my own sake, and for the others at the same time !
The next thing I learned is the gain of time to first get in touch with an active member of the repository and discuss with
the person, before making any changes. It allowed me to do things that I knew would be in the same mindset as the
community. It was also a lot quicker to get the PR accepted this way in py opinion.
finally, I learned new things about git and GitHub which was all the PR stuff :
- how to make a PR (first forking the project and then making the PR in question)
- how to accept request changes (I personally had difficulties to do it)
- Getting more experience the GUI interface of GitHub for PR
And it will now take less time for the linux users to run Starcraft II bots !
# LINFO2401 - Open Source Contribution Project
*Author:* RADAR Gautier
*NOMA:* 52822100
*Year:* 2022-2023
*Selected project:* [Spotify-DL](https://github.com/SathyaBhat/spotify-dl)
*License:* MIT
## Chapter 1 : Finding an application
To start with, I first looked for projects related to software I use on a daily basis like Youtube, Instagram, ... But I quickly noticed that all these projects had problems to solve but that I was not interested in. So it wasn't going to motivate me to work on them. Then I thought of Spotify, because I use it several times a day.
## Chapter 2 : Finding the project
After a long search on github, I found two projects:
- [SpotDL](https://github.com/spotDL/spotify-downloader) : The project has been running since 2016 and has over 10K stars. I joined the community directly on Discord to discuss with them but I noticed that the community was more based on people who had installation problems rather than contributors/developers. beside that, the project being already very solid and too complete so I decided to look for a smaller one with more things to do.
- [Spotify-DL](https://github.com/SathyaBhat/spotify-dl) : This project is much smaller and has only 1K stars for 39 contributors. So I was more interested in helping this project. This project does not have a Discord community or anything else, but the creator is very responsive and available for questions. The project allows you to connect to your Spotify account and download your own or other users' playlists directly from youtube, as Spotify does not yet support this. This allows you to get all the sounds you want directly on your PC and offline.
## Chapter 3 : Finding something to do
After choosing my project, I started by looking at what I could fix in the issues. There wasn't much, but I decided to download it and see what problems I could fix by myself.
To do this, I used a Kali Linux distribution simply because I already had it in my virtual machines. At the first run nothing works as expected, the spotify_dl command was not recognized. However, after some time, I decided to create a python virtual environment to be sure that there are no more problems. And now it works!
So I set up the settings for my spotify account and I created a test playlist. At first glance, it seemed to work but as the download was not very fast, this gave me the idea to add the option to be able to download through a proxy, either for speed reasons or just for anonymity.
So I created a new [issue](https://github.com/SathyaBhat/spotify-dl/issues/304) on Github to see what the creator thought and after a few messages he assigned me the task.
## Chapter 4 : Trying to implement
In order to add the proxies I first had to take a closer look at the workings behind the download. As explained in the documentation, Spotify-DL actually takes the metadata of Spotify sounds and gives it to another open-source project: [yt-dlp](https://github.com/yt-dlp/yt-dlp) which will download it.
So I had to read up on this other project and I found that it already supports proxies but this option is not yet implemented in my project, so I tried to implement it.
After a few tries and tests, everything works perfectly. I have however a small error message that I did not have the previous days but that does not seem to be related to my modifications. So I decide to send my pull request.
## Chapter 5 : Dealing with errors
Once my pull request is sent, tests are automatically launched on Github to see if my code passes these tests. Unfortunately, due to a code error the tests do not validate my code. After discussing with the developer, we quickly find a solution and I submit my new code but this time, a new error occurs... The same one I had before some days ago.
In fact, the software also uses an API that removes youtube ads in order to download only the original sound: [SponsorBlock](https://sponsor.ajay.app/). However, I checked the status of the API and it is actually down since a few days. So my code will not pass until the API is up and running.
Finally, the developer then modified this error by skipping the use of SponsorBlock by default and my code passes the tests!
## Chapter 6 : Conclusion
I was able to discuss and join an open source community and in a second time to interact with a professional developer, it allowed me to see the different types of ways to contribute to an open source project !
The update can be found right here: [v8.5.0](https://github.com/SathyaBhat/spotify-dl/discussions/313) and my PR : [Added option to download through a proxy](https://github.com/SathyaBhat/spotify-dl/pull/308).
# LINFO2401 - Open Source Contribution Project
*Author:* Rolin Hugo
*NOMA:* 19752001
*Year:* 2022-2023
*Selected project:* [Automation-scripts](https://github.com/python-geeks/Automation-scripts)
*Pull request made:* [PR](https://github.com/python-geeks/Automation-scripts/pull/917)
*License:* [MIT](https://github.com/python-geeks/Automation-scripts/blob/main/LICENSE)
## Finding the project
While searching for a project, I realised that it is not easy to find one when you are a first time participant in the open source experience. So I looked into how to do this and came across Hacktoberfest. This is an annual event organized by GitHub and DigitalOcean to promote open-source contributions. It runs throughout the month of October and participants are encouraged to submit pull requests to open-source projects on GitHub.
## Finding the script
To participate in the event we were asked to find a script that would simplify the user experience. I then proposed to create an alert that would warn the user when he has to load his PC and unplug it when the PC reaches 100%. The proposal was rejected because the idea had been proposed before. Then I started listing all the previous creations and realized that there was no solution to test the connection. I suggested the idea of ​​a speedtest script and the idea was then delivered to me. I then created the script and passed the required tests to be published in the git.
## Conclusion
I was able to discuss and join an open source community and now I'm really interested in working on other open source projects.
# Report - Open Source Project
| **Author:** | _Igor Nunes Ferro_ |
| ------------------------ | ---------------------------------------- |
| **Date:** | 10/11/2022 - 06/12/2022 |
| **NOMA:** | 0709-21-00 |
| **Academic Year:** | 2022-2023 |
| **Open Source Project:** | [100LinesOfCode](https://github.com/josharsh/100LinesOfCode/)|
| **Pull request made:** | [PR](https://github.com/josharsh/100LinesOfCode/pull/296) |
| **License** | [GPL-3.0 license](https://github.com/josharsh/100LinesOfCode/blob/master/LICENSE)|
## Open source operating system
I already had interest in the past in open source OSes, so I have history with them. Since 2014 I have interest in computer security, and the thing that all the _script kiddies_ do is installing Kali Linux in a VM. In 2018 the reality hit, so I stopped with that old life and just used a normal and easy open source system, Linux Mint. I kept using it in my old laptop for uni in a dual booted way, and afterwards I changed to Ubuntu. I kept it like that until this year, in which I bought a new laptop and didn't have interest in doing a dual-booting because of limited storage space. So I did a bootable USB drive with Kali Linux (back to the old paths...) and also a VM. I am used to program mostly inside the VM, I find that it's easier to code while using Linux. I just use Kali Linux because I am used to it, but at the moment I could just use Ubuntu instead, because I'm not using any particular tools of Kali.
## Choice of the project
Finding a project was not easy, first by Googling we had all the same _cliche_ results, that many people are looking forward to work on. I wanted to find something a bit different, not trivial and that was possible to contribute, because the projects that I was finding, as I mentioned, had a lot of people trying to dispute it and the issues were mostly already assigned. That's when I found [Up-for-Grabs](https://up-for-grabs.net), a website that summarizes a lot of open source projects that we can contribute to. This got a bit of attention from myself, I went exploring and trying to find a good project and I found a few that came to the highlight. One was [100LinesOfCode](https://github.com/josharsh/100LinesOfCode/), which consists in multiple programs/applications/utilities that are considered useful or productive, including a few simple games, and each one made in less than 100 lines of code. In the end I chose it because it brought a lot of freedom, we could contribute with whatever we wanted and judged it could be part of the project.
## Contributing
After finding the project I started taking a look at their contribution guidelines and how to contribute by itself, and the maintainer left an issue saying that we could contribute freely, and the guidelines mention that we just need to open an issue and then associate it with a pull request. As mentioned, there are a few small games in there (like Tic-Tac-Toe and Hangman), so I thought of a little game of [Odds or Evens](https://en.wikipedia.org/wiki/Odds_and_evens_(hand_game)), a children's hands game as well and that I was sure that could be made is less than 100 lines of code.
I basically forked the repository, programmed my little game, tested and made a readme.md file according to the contributions guidelines, and then went to open the issue. But then I realized that the repo had a lot of open issues and pull requests, and that it was not active since March. This worried me a bit that the project could be abandoned, but I went to investigate. There were periods in the past that the maintainer was also not active and then he came back after and accepted the stacked pull requests. Looking at his profile, he is commiting almost everyday in other projects, so it is possible that he is busy and might not take a look at the project now, but he may come back in the future. I sent him an email as well but he didn't reply yet. Other members of the community had the same problems, no response from the maintainer.
This made me learn that maintainers are really important, and having a code base with multiple ones can help in situations like this. By my research for the projects, I also learned that Open Source projects can be in really a lot of different ranges: from small projects, like 100LinesOfCode, to very very big projects, like Firefox and Tensorflow. It is good that in this we can have freedom to work, and that a community is there to help us and to welcome us.
(Now after the classes that mentioned the maintainers and that one person can break the internet if they just step out of projects, and also after the presentation that Stephané gave to us, it makes more sense and my experience with the project complements with the classes).
## Conclusion
I can conclude that working in an open source and free environment made me value a lot more the community and how it can work. It made me understand that even though anyone in the world can participate, it is organized and not a mess. Open source can bring a lot of benefits to the users. I also learned more about maintainability of a project and how everything can connect together. It was a great experience to work on it because I could also see that open source is used everywhere, there are even applications that we commonly use that we don't know that they are open source. Overall, it was a great way to understand more of how the open source community works, and a good way to be introduced to it. Now I'm waiting just for the pull request approval.
(And just complementing that after my presentation, the professor mentioned that open source projects are also good for this: if the maintainer disappears, we can just fork it and voilà ! It's a very good benefit that I hadn't realized before, even though it was right in front of me).
# Open Source Contribution Project
| **Author:** | *Jeremy Holodiline* |
| ------------------------ | ---------------------------------------------------------------------------------- |
| **Date:** | 08/12/2022 (last update) |
| **NOMA:** | 45922000 |
| **Academic Year:** | 2022-2023 |
| **Open Source Project:** | [TheAlgorithms/Python](https://github.com/TheAlgorithms/Python) |
| **Pull Request made:** | [PR](https://github.com/TheAlgorithms/Python/pull/7998) |
| **License:** | [MIT license](https://github.com/TheAlgorithms/Python/blob/master/LICENSE.md) |
## Finding the project (October 2022)
To find a projet to contribute I searched on the "Explore" tab on Github. Then I choosed to look into projects that are in the "Algorithm" topic. I thought that it would be there I would be most likely to find a project that interests me. One of the first that appeared is the "TheAlgorithms" project. This projet is splitted into many projects corresponding of different languages (Python, C, Java, Javascript, C++ & Go). I choosed to contribute to the Python project because it's a language that I like and I'm comfortable with. The projet consists on implementing algorithms of several topics (mathematics, graphs, sorting, algebra, hashing, machine learning, solvers, etc.) and centralize them in one project. This projet is for learning purposes only. This projet is very active. There are hundreds of contributors, features, algorithms, pull request and nearly every day the project is updated.
## Project license
The projet is under a MIT License which is a permissive license (commercial use, modification, distribution, personal use, etc.), so basically a "do whatever you want" license. The only thing that we have to know and on they insists is that the code is without any kind of warranty and the project holders/authors/contributers are not responsible of any kind of malfunction.
## Compiling the project (November 2022)
The first thing I did is to read the contribution guildines. They basically describe the goal of the project, what is an "algorithm", what is the the license, the tests and the rules for the code syntax style. After that I cloned the code on my computer. I used "Ubuntu on Windows" as operating system which is a linux subsystem for Windows. For compiling and running the project it wasn't very complicated, the only requirement is to have Python 3 installed. I obviously didn't run every single file/algorithm because there are to many but I ran some of them, specifically those that are interesting for me and for my future contribution.
## Coding (November 2022)
After some days of browsing a lot of algorithms and some reflexion I decided to make my contribution for the polynomials in the maths topic. There was already a file with a class that represents polynomials that had some methods corresponding on polynomials operations (add, sub, derivate, etc.). My contribution was to add a new method to this class that calculates the root of a degree 1 polynomial (-b/a for a polynomial under the form ax+b).
## Pushing the projet and making a Pull Request (November/December 2022)
After coding and testing my method locally, I installed a plugin called "pre-commit". The guidlines asked to use this plugin that allows to run some tests automatically when we make a git commit command. These tests mainly check the code style and the documentation. After the tests passed I pushed my code to the repository in a new branch. Then I made a pull request where I had to describe what kind of modification I made. When the PR was created some tests ran on it (mainly the same tests as the pre-commit). After the tests passed successfully it was put in the open PR list waiting to be reviewed. More than hundred PR were waiting on this list on the moment mine arrived. I also added a comment under my PR to say that my PR passed all requirements and asking if someone can review it. After a week without any news I decided to join the Discord server of the projet in order to ask if a reviewer can check my PR. Someone responded with a ping to the python maintainer but I didn't have any other news for now (08/12/2022). I will obviously update this report if I got any new about my Pull Request.
## What I learned
What I saw during this project is that even with a small easy contribution, the steps until the Pull Request is merged to the main repository can be a lot and very complicated. Also, a living project depends on the activity of the contributors but also of the maintainers. Even a project with a high activity can be complicated to make a PR accpeted on it (too many PR, few maintainers/working on their free time, my PR is not enought interesting, etc.) or getting any feedback.
# LINFO2401 - Contributing to an open source project
Author : Karole GODIN
NOMA : 35462200
Year : 2022-2023
Selected project : [Return Youtube Dislikes](https://github.com/Anarios/return-youtube-dislike)
Pull request : https://github.com/Anarios/return-youtube-dislike/pull/844
Book : Le Génie Lesbien, Alice Coffin.
## 11/13/2022
- Research of the subject
- Criterias : a well known language (Python, JavaScript or Java), a project whose community is still active (the last commit was not more than two years ago). The subjects can be various.
- On GitHub, I just went to the "topic" tab, and looked at trending topics in JavaScript. The projects I found were interesting but I couldn't find significant any ways to contribute to them.
## 11/20/2022
- chosen topic : https://github.com/Anarios/return-youtube-dislike : Return Youtube Dislike
- Why this topic? I think that the decision taken by Youtube in November 2021 is questionable. One of the main arguments was to reduce the waves of harassment, is this really the case now? Youtube creators can disable comments if there are a lot of negative comments and harassment. But then problems arise: how do you know if a tutorial is successful or not? How do you know if the information presented is true, correct? Dislike really help to take a step back and think critically about a video.
- This project aims at preserving viewers' freedom of expression, and I fully agree with that.
## 11/21/2022
- Ideas to contribute to the project : French translations because there is a lot a spelling mistakes in the doc and on the website.
- A display bug appears when some users try to display the number of dislikes, they have the Firefox extension. The issue is reported on the repo (https://github.com/Anarios/return-youtube-dislike/issues/799).
## 11/23/2022
- I correct some spelling mistakes on the French README and on the extension description store.
## 11/26/2022
- Trying to find a solution to the display problem. I watched the Youtube tutorial proposed by the collaborators of the project to better understand how to developp a Chrome extension. I better understand the functionment of the app.
## 12/03/2022
- The pull request for the translation is made.
## 12/04/2022
- Another pull request for the translation of the website is made.
## 12/06/2022
- No news of my pull request. I just joined the Discord of the community and posted a message to make sure they saw my pull request. The community is active.
- On Discord, a person has a display problem too. I will look forward on this way.
- Pull request made for the display problem.
## 12/10/2022
- No news of the pull request.
## Conclusion
This project brought me a lot of knowledge, especially technical. I now know how to develop a Chrome extension, and contribute to an open-source project (I had never done one before). I now have an idea of how communities work and how to find the problems of a project to solve.
\ No newline at end of file
Fichier ajouté
# Open Source Contribution Project
| **Author:** | _Lucas Nélis_ |
| ------------------------ | ---------------------------------------- |
| **Date:** | 05/12/2022 |
| **NOMA:** | 54431700 |
| **Academic Year:** | 2022-2023 |
| **Open Source Project:** | [XMage](https://github.com/magefree/mage) |
| **License:** | [MIT License](https://github.com/magefree/mage/blob/master/LICENSE.txt) |
## Installing a free Operating System
_9/10/2022_
I began my journey in the free software world by installing Ubuntu in dual boot on my computer. At first, I was a bit scared because I didn't have a lot of space left on my SSD and it had already been an issue in some projects. Fortunately, I found a wonderful tutorial to install Ubuntu and mount both of my disks which I had not considered at first. The installation went pretty smoothly at the exception of the partitioning of my main disk. Windows was refusing to give access to the whole storage so I couldn't shrink a partition big enough for Ubuntu. I had to disable weird things such as hibernating and it finally worked ! Now I'm able to launch Ubuntu and it feels like an achievement.
## Searching a project
_10/10/2022_
Installing Ubuntu motivated me in continuing to work for this course, I started searching for projects to contribute to. But as I was searching I realised that there were so many that if I continued searching randomly I wouldn't find anything that I liked. I decided to search based on languages I was familiar with. I decided to go with Java and Erlang, there were a lot of Java project (maybe too many) so I quickly decided to look after Erlang projects but each project that I found felt very hard to dive in. I decided to let the research aside for a moment and focus on finding subjects that I would like the projects to be about.
_18/10/2022_
I started my search again, but this time I decided to browse the web instead of Github. I found a nice website called [libhunt](https://www.libhunt.com/). Thanks to the site, I was able to browse projects by subject. I wanted to find a project with some degree of abstraction in order to avoid the problem I had with the Erlang projects. Therefore I looked for projects related to games and especially about Magic The Gathering, a card game. Magic the gathering had always been a game that I liked but didn't feel like playing because of it's high cost due to new cards coming out frequently. I found a repository called mage for Magic Another Game Engine. It allows players to play for free and supports most of the card sets and game modes.
## Building XMage locally
_22/10/2022_
I tried to compile and build the application but it is harder than I thought. However, there is a developper documentation which is quite clear. I followed it but I can't make the server and client work together locally.
_5/11/2022_
After some time, I came back on the project and managed to run a version locally. I had a harder time founding how to contribute to the project, they encourage developpers to create an easy new card to begin but they don't explain their communication process. People don't seem to open issues in order to create new cards and seem to directly open pull requests. The documentation indicates scripts which gives a list of cards waiting for an implementation so I picked one that seemed easy.
## Implementing and testing ~~Fortified Beachhead~~ Rescue Retriever
_9/11/2022_
After implementing a card by myself, I searched again if I wasn't supposed to first ask to be in charge of the card. I found a discord server and asked them how I should proceed. They told me that each set of cards had a [dedicated issue](https://github.com/magefree/mage/issues/9598) and that I should ask on that one. I found it and asked what I should do with the work that I had already done given that someone was already working on it. I dropped what I was working on and started working on Rescue Retriever the card that the maintainer recommanded me to work on.
_10/11/2022_
Using the experience of the codebase I acquired implementing my first card, I quickly finished the implementation of Rescue Retriever and began to test it. Testing took me more time that I thought. Indeed, I had to test multiple configurations of boards to ensure that the card was doing what it was supposed to do. I didn't find any errors with neither with my manual tests nor with the automatic tests. I opened a [pull request](https://github.com/magefree/mage/pull/9752). I was now waiting for the maintainer to review it.
_11/11/2022_
I received the review of my code and did some changes accordingly. I thought it would be a good idea to merge the project locally before submitting my updates but it resulted in tests not passing anymore as the maintainer pushed [failures](https://github.com/magefree/mage/commit/9e57437ae136bee770716d9fbdbc365e28c25e22#commitcomment-89565722). I submitted my changes and requested a new review. My pull request was [merged](https://github.com/magefree/mage/commit/30a498145e204254b623351442c7a4a55367d4c8) into the project.
## Conclusion
In conclusion, browsing projects can feel scary at first, especially when projects don't contain a lot of documentation. But, with good documentation and an easy way to communicate with maintainers, contributing to a project feels nice and helped me gained confidence in my skills.
# **LINFO2401** Report
**Author:** Mathieu COSYNS
**Date:** 20/12/2022
**NOMA:** 86032100
**Academic Year:** 2022-2023
_Note: I have been using LinuxMint daily for 1 year on my main computer._ 😄
## Contribution to an Open Source Project
**Open Source Project:** [Ionic](https://github.com/ionic-team/ionic-framework)
**License:** [MIT License](https://github.com/ionic-team/ionic-framework/blob/main/LICENSE)
**Website:** https://ionicframework.com/
### What is Ionic
Ionic is an open source mobile UI toolkit for building modern, high quality cross-platform mobile apps from a single code base in pure JavaScript or with a JavaScript framework like React, Angular or Vue.
### Why did I choose this project
I started to use Ionic as a dependency in 2020. It was for a school project/experiment ([BLOCK Covid](https://github.com/alexismch/IPL_PFE_2020_MobileApp])). I found Ionic nice to work with, and I started to use Ionic in other projects ([SEP](https://github.com/Mathieu-COSYNS/sep) in particular). During that time, I found some bugs. One of the bugs was really annoying to me and in February 2022 I decided to open an issue (https://github.com/ionic-team/ionic-framework/issues/24747) to fix it. Someone fixed the issue, and I was really glad they did.
For this Open Source Project, I felt that I should fix someone else issue in the Ionic GitHub repository. This is why I choose this project.
### How did I contribute
I started by reading the [contributing guidelines](https://github.com/ionic-team/ionic-framework/blob/main/.github/CONTRIBUTING.md). In this document I found several interesting instructions like how to write a PR, how to name commit messages, how to set up the project, how to modify a part of the project, preview changes, run tests, ...
In the [requirement](https://github.com/ionic-team/ionic-framework/blob/main/.github/CONTRIBUTING.md#requirements) section of the contributing guidelines:
> Looking for an issue to fix? Look through our issues with the [help wanted](https://github.com/ionic-team/ionic/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) label!
This is exactly what I did, and I found this issue : https://github.com/ionic-team/ionic-framework/issues/19178. This issue was quite old, and I had an idea how to fix it. Since no progress was made on the issue, I did not ask to be assigned to work on it. I just started to work on a solution immediately.
In a few hours, I cloned the repository, fixed the issue and created a pull request.
I opened my pull request https://github.com/ionic-team/ionic-framework/pull/26217 the 3rd of November. I waited, no one sent me feedback, and I found that strange because Ionic is a pretty active repository. Other issues and pull requested were made, and I was wondering if someone looked at my pull request or not. On the 22 of November I decided that I should bring more attention to my contribution but instead of spamming "Did you take a look ???" messages, I decided to open a new feature requested (https://github.com/ionic-team/ionic-framework/issues/26337) that can be built on top of the bug I fixed at the beginning of November.
Finally, one of the maintainers took a look at my PR and suggested another approach in a new PR and closed my PR. He merged his PR and gave me co-author credit even though I did not write the merged code.
### What's next
As explained before, I created a new feature requested that can be based on the previous code. This feature request is still open, and I will gladly answer questions, but I will not create a new pull request until I see the need to fix the issue for one of my own project.
### Lessons learned
- When you make a contribution, It's always better to ask before starting to work.
- Even in active repository, maintainers will not always look and take the time to check new contributions, or at least not immediately.
......@@ -31,7 +31,24 @@ Although I have already a contribution in my forked branch but I am not able to
## December 2022
I found DSA repository for the first time contribution. I read the guidelines and naming conventions of the project. It seemed interesting. I opened an issue to make contribution (https://github.com/MakeContributions/DSA/issues/1091). They assigned it to me. I made my first contribution but pull request is still in review. I used the Ubuntu OS to compile java programs.
## January 2023
The reviewer suggested some code improvements for my contribution (https://github.com/MakeContributions/DSA/pull/1095). I made the changes and added my answer comments on the reviewer's suggestions.
The request is again assigned to the code reviewer by the issue assigner person.
## Choice of the Book
### Title - Deep Thinking_ Where Machine Intelligence Ends and Human Creativity Begins by Garry Kasparov
I am still reading it.
#"To become good at anything you have to know how to apply basic principles. To become great at it, you have to know when to violate those principles."
The book starts with author recalling how he won the Chess Battle against IBM Supercomputer Deep Blue in 1996.
He emphasizes how game like chess is difficult to implement as the machine calculates upto 200 million moves per second while a human can think of 3-4 moves in a second. But if one human loses (the player) still the other human wins (the developer of the machine).
The author points out that the element separate human cognition and intelligence from Artificial intelligence is emotion. In human-human game some moves can make your opponent nervous, but this strategy doesn't work out with the computers. For machines, it is just about strategic processing of information. He also spoke about how DeepMind’s AlphaGo defeated the world Go champion at his particular speciality.
As the author was defeated by IBM supercomputer Deep Blue in 1997 as it was massively improved with more and faster processing hardware.
He denied the fact that AI is taking away jobs. Interestingly, Deep Blue didn’t take away his job. He continued to hold the world chess championship.
If automation is taking some jobs from India (call-centers) and China (Equipment-assembly) then it is also creating another jobs. He feels that human input will always remain valuable.
The author emphasized the fact that as the processing power of computer hardware is increasing day by day, we would see advance algorithms with much more capabilities.
We should not fight against the machine for being better than we are at some things, but we should intelligently use its capacity to augment our human capabilities.
# Open Source Contribution Project
| **Author:** | _Thomas Bolteau_ |
| ------------------------ | ---------------------------------------- |
| **Date:** | 13/12/2022 |
| **NOMA:** | 08692100 |
| **Academic Year:** | 2022-2023 |
| **Open Source Project:** | [NBT](https://github.com/twoolie/NBT)|
| **License:** | [MIT License](https://github.com/twoolie/NBT/blob/master/LICENSE.txt) |
## Book read
I read and presented the book [Deep learning with python](https://www.manning.com/books/deep-learning-with-python).
## Open Source OS
I have been using ubuntu and arch linux on my laptop between summer 2021 and summer 2022. I am also extensively using ubuntu on my VPS used to host my self hosted services (mail server, websites, ...)
## Searching for a project
---
### > 11/10/2022
I started to search for a project. I would be intrested to work for discord.py as this is the library that really got me into programming.
There is not many reported bugs unsolved.
But [this one](https://github.com/Rapptz/discord.py/issues/8483) is attracting my attention as it is only 20 days old at that time:
>This does not seems that trivial to solve though.
### > 31/10/2022
After looking back at discord.py, some new bugs have been discovered but they are majoritavaly realated to audio integration. This library seems a too technical for me to contribute to. Maybe looking in the docs could be intresting.
But I found another project which is [python cheatcheet](https://github.com/gto76/python-cheatsheet) this project seems intresting as he got 150+ stars last weeks and 30000 total stars. In the FAQ they were saying that they don't provide code snippets for the flask library yet. As i got some experience on it I will propose my help to build it. I also have some experience with recording microphone using python, as they are no code snippets for it I will propose to create one.
## Contributing
---
### > 20/11/2022
After thinking a lot on which project to contribute, I remembered a project that I realised months ago. This project was an utilitary to copy some part of a minecraft world to another.
This project is available [here](https://github.com/Ery4z/MSWE) sadly this project haven't seems to interest anyone, even though I used it a lot for me and my friends.
This project was using a [library](https://github.com/twoolie/NBT) that is open source. Sadly I had to write a lot of boilerplate code and utility function to be able to realise my project.
This library has for objective to handle minecraft map file and provide API to extract information from it. If the library was working well for getting the terrain of the map, it was not the case for entities.
After looking at the function thtat I created to handle this functionnality in my project, I realised that this was surprisingly easy to integrate in the library.
Because of this I did a [pull request](https://github.com/twoolie/NBT/pull/167). I will see in the following days what do they think of this.
### > 28/11/2022
After one week I check the status of the previous pull request. At this day I did not have any review on it.
Because I was concerned not to have interaction with the community and I think this may be an important point of this project, I chose to continue to contribute to [another Open source projet](https://github.com/nicknochnack/TFODCourse).
This project is a github repo provided by a youtuber as an introduction to building AI image recognition models.
I worked using this ressource in may 2022 and got some problem setting it up. Because of this I opended an [issue](https://github.com/nicknochnack/TFODCourse/issues/86#issuecomment-1323246438) at that time to help other people knowing which dependancies to install.
Indeed the video was a bit old and the python version evolved. They were no documentation on which version of [tensorflow](https://www.tensorflow.org/?hl=fr), [Nvidia CUDA](https://en.wikipedia.org/wiki/CUDA) and [cuDNN](https://developer.nvidia.com/cudnn) to use with Python 3.10
The [issue](https://github.com/nicknochnack/TFODCourse/issues/86#issuecomment-1323246438) seems to have helped some peoples and I saw that someone tried had a problem a month ago. As I think the person has maybe solved it I asked him if he could give us some insight for it.
I also created a [pull request](https://github.com/gto76/python-cheatsheet/pull/135) to the project described the 31/10/2022. This PR is a cheatsheet about how to record the microphone to wav file using python. I took the code from [another project of mine](https://github.com/Ery4z/PyClip) which does not seems to interest people even though I use it daily.
## Waiting For review
---
### > 06/12/2022
I checked today the status of the pull requests, they are both unreviewed yet. I looked if the contributors are active but sadly they all seems to have a pause. For the minecraft contribution, the last pull request accepted was is december 2021. For the cheatsheet it was in october 2022 but the contributor haven't made any contribution since.
### > 13/12/2022
While formating this document to be able to submit it, I understood that the project [python cheatcheet](https://github.com/gto76/python-cheatsheet) doesn't have a licence file.
I opened an [issue](https://github.com/gto76/python-cheatsheet/issues/136) and I hope that they will add it as it is in the state it is not possible to use legally any of the code in the repo.
### > 14/12/2022
The author of the repo responded to my [issue](https://github.com/gto76/python-cheatsheet/issues/136) and I tried to make the no licence problem clearer for him. I don't know if he will choose one but I hope.
He also reviewed my [pull request](https://github.com/gto76/python-cheatsheet/pull/135) as intresting but not accepting it right now as the cheatsheet would become more than one page.
Later that day I got a response on the licence question, he does not want to add a licence and so only give the right to fork according to github CGU. This is so not an open source project. And really don't motivate me to contribute more to it.
## Conclusion
---
I have been really happy to contribute to these opensources projects. But I understood that contributing to opensource require time investment. Even just as a contributor as it is necessary to really understand the maintainer vision on the future of a project to get their attention and get the pull request accepted.
Also contributing by sending error and fix is easier and can help some people. I will continue to do this part at least.
I will also not forget to add my Licence files as it is annoying not to be able to use the code legally when it is a public repo.
This taught me also that even if a project may look open source with lot of stars/PR and as simple and community based as a cheatsheet, the open source caracteristic is not evident and not really motivating to contribute to a project (why would I spend time to work freely for another person ?).
# Open Source Project
| **Author:** | *Uyar Bera* |
| ------------------------ | --------------------------------------------------- |
| **Date:** | 12/12/2022 |
| **NOMA:** | 80452100 |
| **Academic Year:** | 2022-2023 |
| **Open Source Project:** | [DSA](https://github.com/Sajiyah-Salat/BlogWeb) |
| **Pull Request made:** | [ PR](https://github.com/Sajiyah-Salat/BlogWeb/pull/48) |
## Choice of the Project
## Octobre 2022
J'ai commencé à chercher des projets fin Octobre durant 1 semaine. Chaque jours, je suis allé sur différents sites qui indexent les projets ayant le tag "Good first issue" afin de pouvoir faire ma premiere pull request sans avoir de problème très compliqué à résoudre.
Pendant mes recherches, j'ai remarqué que les "good first issue" interessant partaient assez vite, j'ai donc sauté sur le premier projet qui m'a parlé.
## Novembre 2022
J'ai commencé à travailler sur l'issue selectionné.
J'ai au préalable demandé qu'on m'assigne l'issue afin d'être sûr que personne ne proposera sa solution avant moi.
Pendant un peu moins de 2 semaines, j'ai communiqué avec l'auteur du repo git afin de lui proposer une solution qui lui convient. Après avoir commit plusieurs versions, ma pull request a été finalement acceptée.
## Mes ressentis
Bien qu'aider mon prochain sans rien demander en retour est quelque chose que j'aime faire, aider un developpeur pour un issue est quelque chose que je ne referai pas durant mon temps libre.
Je pense avoir autre chose à faire de mon temps libre que de m'arracher les cheveux pour ne serait ce qu'installer les dépendances d'un projet que je ne vais probablement jamais utiliser.
Par contre travailler en tant qu'employé dans un projet open source, cela ne me derangera pas. L'idée est même interéssante car je sais que le projet servira gratuitement à d'autres personnes (sans vouloir faire la mère Theresa)
## Livre
### Titre - Elon Musk : Tesla, Paypal, SpaceX : l'entrepreneur qui va changer le monde
### Auteure : Ashlee Vance
Un livre qui ressace la vie d'Elon Musk. Depuis son enfance en Afrique du Sud jusqu'à ce qu'il est devenu maintenant.
Cela ne m'etonnerait pas que Musk ait d'abord donné son avis sur le livre avant que celui-ci soit publié car il y a quelques passages qui ressemblent beaucoup à un film d'action américain où il ne reste que 1 seconde pour désamorcer la bombe. Mais mise à part ces 2, 3 séquences d'héroïsmes, le livre comporte des anecdotes intriguantes pas très connu du grand public.
Ce livre m'a aussi donné une motivation pour le travail. Bien qu'on doive comprendre que les capacités d'Elon Musk sont au dessus de la moyenne, et donc qu'il est difficile pour le commun des mortels d'atteindre ce rendement, on peut tout de même aller piocher les nombreuses petites histoires pour y trouver une source de motivation pour notre vie.
## Project
| Author | Andréas Bombaert |
| ------------ | ------------------------------------------------------------ |
| NOMA | 0429-17-00 |
| Year | 2022-23 |
| Project | [Fairfield Programming Association Frontend](https://github.com/fairfield-programming/fairfield-programming.github.io) |
| Pull request | [PR #34](https://github.com/fairfield-programming/fairfield-programming.github.io/pull/34) |
## Project selection
At first I tried to find projects by searching open source projects in languages that I already know, I found a lot of projects really interesting like tools for literally everything you could do on a computer or a map of current danger zones in Ukraine by scrapping twitter data, but they always were inactive or the issues were too complicated for me.
I finally started searching directly by issues and language on Github, and finally found a nice project which is an programming association who learn people to code.
They have a website that they want to enhance and they had several issues open to first contributors to improve some points of the code and since the project team looked active and nice I decided to work on this one.
## Project in itself
The association goal is to teach everyone to program. Here the project is the frontend of the website, which contains the whole website. The site exists since Dec 5, 2021 and has recently been updated from react to Gatsby, which is a react framework.
### Contributing
The installation was pretty easy since it is basically reactJs code and I already had the environment prepared for that, I had to install additional packages and the project was running well on my computer.
To contribute to the project you have to fork it, and then go to issues and select one that you want to work on. When you chose an issue you ask to get it assigned and in one or two days they will assign it to you, when you are done you do a pull request on the project to merge your update/fix and you're done.
The owners are very nice and they are responding fast since, I had great exchanges with one of them, William-McGonagle, you can read it [on this issue](https://github.com/fairfield-programming/fairfield-programming.github.io/issues/29)
### The contribution
The issue I decided to work on was the issue ```Change all <img> to Gatsby Images for Better Performance #29``` that you can find [here](https://github.com/fairfield-programming/fairfield-programming.github.io/issues/29).
At first I thought that I would only have to switch jsx tags to GatsbyImages but it turns out that the change that they wanted was not really adapted to their code architecture so I had to learn GraphQL to workaround.
After a few hours on this issue I managed to do what was asked on the issue but I discussed with one of the project owners and we agreed on the fact that the plugin was not made to work great with their project.
My pull request was still accepted but modified by William.
## Conclusion
I'm pretty happy with this project, I didn't realize the impact of open-source before I started searching for an interesting issue and I'm really interested of working on other open source projects. It is really rewarding to help people doing things they like, even more when the project touches you.
I also learned a new side of ReactJs, which I like.
## Book Choice
**Sylvain Tesson: l'axe du loup** :
I'm currently reading it
# **LINFO2401 Project Report - Contributing to an Open Source project**
| **Author:** | _Brandon Ngoran Ntam_ |
| ------------------------ | ---------------------------------------- |
| **NOMA:** | 4148-18-00 |
| **Academic Year:** | 2022-2023 |
| **Date:** | 23/12/2022 |
## **Installing and using an open source OS (Kali Linux)**
Up until last summer, I've strictly used Windows as my operating system but I finally reached my breaking point and changed to a Linux distribution. Windows just wasn't doing it for me anymore because my OS had become extremely slow. Not only that, but as a CS student, I have many university projects that would benefit a lot from a Linux setup whereas with WIndows, I always had to work around the OS to try and make what I wanted to work on my OS. Other than that, most CS ressources online use Linux as their main OS when explaining things.
However, the main reason why I decided to permenantly switch to Linux is because I had a very big interest in networking and ethical hacking thanks to a TV show called Mr Robot and I wanted to fully dip my toes into that world and master Linux. I went for Kali Linux as my distribution since it is considered as the best when it comes to ethical hacking due to all the in-built tools it contains out of the box.
## **Open Source Contribution ([Zulip](https://zulip.com/))**
### ***Motivation & How I Found Zulip***
This was my very first contribution to an open source project so I really wanted to do it right. My main goal was to contribute to a visual change in the UI of an app or website because I want to be able to use the app in a few months time, see my change in production and be proud of the accomplishement. However, I didn't want to pick a massively complicated change and bite off more than I could choose. WIth that in mind, I used a very handy website that scours Gitlab and finds issues tagged with "good-first-issue" and that's when I found the [Zulip repo](https://github.com/zulip/zulip-mobile). To make it short, Zulip is team chat app that is basically a more "serious" version of Slack and Discord. They claim to be more organized and effective than other apps.
I chose to work on this repo because the contribution was required in the mobile app and I am very interested in mobile app developpement. On top of that, I have been focusing on improving my React and React-Native skills.
### ***My Contribution***
The [issue](https://github.com/zulip/zulip-mobile/issues/5534 ) was pretty straight forward. Zulip has a web app and a mobile app. On the web app, users are able to see their role in the organization by checking out their user's profile where they would find their role right under their email address. I had to consistently replicate this on the mobile app and display their role in the user's profile screen.
I found this issue on November the 7th. At first, the person who opened the issue asked me to describe my approach to the issue with a rough plan as that was the agreed upon way by the community to start contributing to Zulip. So to do so, I had to run the application locally and inspect the code.
This took more or less 3 days because I kept on having dependency related problems and my React Native installation was somehow wrong for many reasons. After hours of research, I was finally able to run the project locally.
After having given the my rough idea, the issue was assigned to me on my birthday (November 15th). Not only that but a developer, who seemingly works full time on the project, even gave me his envisioned approach which I took a lot of inspiration from.
While working on this project, all questions had to be asked on in the Zulip development community in Zulip. [Here](https://chat.zulip.org/#narrow/stream/48-mobile/topic/translation/near/1467977) is a question that I asked in the community regarding my issue. After having forked the project and implemented the changes, I opened my [pull request](https://github.com/zulip/zulip-mobile/pull/5567) on November the 22nd. At the beginning, the back and forth was relatively fast but then it slowed down and at the time of writing, my PR has not been approved (but it looks like it will be, just with some minor changes). From what I could get from the reviews, it seems like my code worked perfectly well but that I had to work on refactoring both the code and the commit to fit the "Zulip way", which is a very valid critique! I had to go to the Zulip documentation to learn how to write correct commits. Details of my changes and reviews can be found in the PR.
## **Conclusion**
I'm really glad that I was able to contribute to an open-source project. It was a very interresting experience and it has made me even more grateful to all the other contributors on open source software that I use. As the saying goes, not all heroes wear capes.
### **Lessons learned**
Even though I don't see myself contributing too much to open-source problems, I still learned many valuable lessons.
* The community genuinely wants to help you. Don't hesitate to ask as many questions as possible.
* Being able to run a foreign project locally is a skill in and of itself. It will take TIME.
* Make sure to read the documentation to save a lot of time trying to fix something that was avoidable if the documentation was respected from the get go.
* Don't underestimate your contribution, no matter how small it is. It might have a huge impact.
* Always tell the community what you are working on before working on it.
# **The book I read**
For this course, I decided to pick up a book that I bought a few years ago but never actually finished. It's called "*Rise of the Robots: Technology and the Threat of a Jobless Future*" by Martin Ford and it talks about whether or not the acceleration of technological advances will negatively impact the job market. I picked this book because with the COVID pandemic, we have seen a pretty significant shift when it comes to how depend we have become on technology, for example with the increase of remote work and its technological implications etc. Martin Ford argues that advances in automation, AI and technology as a whole could lead to significant job displacement in the near future, and that this could have major social and economic consequences. Some positive and some negative.
I really liked this book because it gave me a very thought-provoking look at the potential impact of accelerating technology on the job market and it made me think and raise questions on how we, as a society, should address these upcoming challenges like inequality and social unrest in a way that will benefit us all. One interesting way that I learned from the book to combat this is having a UBI (universal basic income) to provide some sort of safety net for those who lose their jobs due to automation.
## Project
| Author | Dylan Goffinet |
| ------------ | ------------------------------------------------------------ |
| NOMA | 0847-19-00 |
| Year | 2022-23 |
| Project | [JabRef](https://www.jabref.org) |
| Pull request | [PR #9498](https://github.com/JabRef/jabref/pull/9498) |
## Project selection
To find an open source project I could contribute to, I first browsed recently opened issues on GitHub. I focused my search around projects using languages I know and am comfortable with. Even if I did find unresolved issues that I could work on, either I didn't know the projects they were linked to or they seemed to be too complicated for me (demanded a very good knowledge of the project, for example).
Then, I had to idea to look for issues in the programs I use personally. That's when I found a new issue on "JabRef", a program for citation and reference management software that I use a lot for my work assignments. Furthemore, their README and website provides a lot of information about how to contribute and the project team is really active. This is why I decided to work on this project.
## Project in itself
The association goal is to teach everyone to program. Here the project is the frontend of the website, which contains the whole website. The site exists since Dec 5, 2021 and has recently been updated from react to Gatsby, which is a react framework.
As said before, the project is a tool to manage different citations, an references using BibTeX and BibLaTeX, making it perfect to use with LaTeX and Markdown but can be used with other tools such as LibreOffice, etc. It was first released on the 29th of November 2003.
### Contributing
The installation was easy as i could be build using Gradle. As I used IntelliJ IDEA, I only had to import the project via gradle import by pointing at the build.gradle file of the project.
I then created my fork and started to work on my contribution.
### The contribution
The issue I decided to work on was [`Double-click on preview style should add it to "Selected" #9490`](https://github.com/JabRef/jabref/issues/9490).
The first thing I had to do was find out what files needed to be modified to add the double-click feature. It was fairly easy as the project architecture is quite clear and easy to work with.
At first, I fought, I needed to create new functions to add/remove item(s) to the selected list. But after looking a bit more at the code, I realised I could use already implemented functions.
This led me to simply create two new methods that called, in the user double-clicked) the functions to add/remove elements to the selected list.
After that, I checked modified the changelogs to correspond to the new changes, and submitted my pull request following the given guidelines. It was accepted after a small modification from one of the contributors (which changed my methods from public to private).
## Conclusion
Overall, I am satisfied with this project. It helped me understand more how to contribute to a new project, and sparkled my motivation to contribute to other projects in the future.
Furthermore, it is really rewarding to help other people with their projects, and brings a little bit of pride to use programs that you contributed to.
## Book Choice
**Fahrenheit 451 by Ray Bradbury** :
When I started to think about which book I could present for this course, `Fahrenheit 451` directly appeared in my mind. It presents a twisted American society where books have been banned and are burned. We follow the story of Montag, a book-burning fireman that is become fed up with censoring literature and eventually quits his job to preserve what he used to destroy.
I really like this book as it obviously warns about state-based censorship as well as the dangers of a society where people are obsessed by mass medias and disregard other sources of information. This is an issue that in my opinion is quite actual, especially with the widespread use of social medias as some people tend to believe whatever they read online without checking on other sources. This book helped me be more critical about my sources of information and about how to use them.
# Open Source Contribution Project
| **Author:** | _Manu Vaillant_ |
| ------------------------ | ---------------------------------------- |
| **Date:** | 26/12/2022 |
| **NOMA:** | 56192100 |
| **Academic Year:** | 2022-2023 |
| **Open Source Project:** | [Jabref](https://github.com/JabRef/jabref) |
| **Issue:** | [Issue](https://github.com/JabRef/jabref/issues/9339) |
| **Pull Request made:** | [PR](https://github.com/JabRef/jabref/pull/9382) |
| **License:** | [MIT License](https://github.com/JabRef/jabref/blob/main/LICENSE.md) |
## The project
*October*
I've searched for a project during October, when I finally find Jabref project. Jabref is an open-source, cross-platform citations management tool. I had no special motivation to contribute to this project, but it was a quite big one which was active. So firstly, I've installed Ubuntu 22.04 as a free operating system in a virtual machine to run the project. I couldn't run the project the first time, I was facing dependencies issues. To solve them I've chatted with the community on a [Gitter](https://gitter.im/home/explore) channel which was intended for that.
## The contribution
*November*
I have found a contribution to make on this project in the opened issues. When I finally found an interresting issue that I could contribuate, I've proposed my changes with a PR linked to this issue. One of the project developer directly give me some feedback and tell me to check a failing test and use the code documentation.
I had easily fixed some of the failing tests, but one was still failing. I didn't see the point of the failing test and was a bit confused on how to fix it. Jabref is a tool available in many languages, and I had to implement my feature in the English version. A contributor help me to understand why it was a useful test and how to make some new changes to pass it. Once I've passed the failing test, my PR has been quickly merged into main branch.
## Conclusion
It was an interesting experience to make my first contribution for an open source project. I could have saved time by asking the community beforehand how to make the required changes properly. Fortunately it was not a big issue so the changes doesn't take me too much time.
Afterward, I think that it's important to understand correctly what is the issue and plan with the community on how to make the required changes. This is especially true when you want to contribute to a project you are not familiar with
## Book
In class, I've presented the book *Just for fun* by Linus torvalds.
\ No newline at end of file
# **LINFO2401 project report - Contributing to an Open Source project**
| **Author:** | _Nicolas Beuel_ |
| ------------------------ | ---------------------------------------- |
| **NOMA:** | 14871800 |
| **Academic Year:** | 2022-2023 |
| **Date:** | 20/12/2022 |
| **Open Source Projects:** | [sdushantha/wifi-password](https://github.com/sdushantha/wifi-password) <br> [pelonchasva/wifi-password](https://github.com/pelonchasva/wifi-password) |
| **Pull requests made:** | [PR for pelonchasva/wifi-password](https://github.com/pelonchasva/wifi-password/pull/1) <br> [Initial PR for sdushantha/wifi-password](https://github.com/sdushantha/wifi-password/pull/38) <br> [New PR for sdushantha/wifi-password](https://github.com/sdushantha/wifi-password/pull/90) |
| **License** | wifi-password: [MIT license](https://github.com/sdushantha/wifi-password/blob/master/LICENSE) |
## **Open source operating system**
I have been using Linux for many years (started in 2016). It's an OS that I use every day and that has become the OS I use the most.
## **Motivation and contribution**
I was looking for a tool that would allow me to easily create a QRcode containing the identifiers of a wifi network. So I found a project allowing to create easily QRcode from the wifi to which we are connected. In the PR of the project was a proposal to add a feature to list the known wifis but the proposal was blocked by the fact that the implementation worked only for windows. So I decided to make a PR of this PR to add support for MacOS and Linux.
My PR was accepted by the person who made the feature proposal. So we reopened the initial proposal to add a list feature.
## **Lessons learned**
With my contributions, I learned :
* It's easier to contact the owner with a mail than waiting a github interaction.
* We are often not the first to have an idea, look in the Pull request to avoid the headache of redoing the work that someone had already done.
* It can also help to unlock the work of others
## **Conclusion**
Participating in an open source project was not a first for me. But I have a certain satisfaction to have been able to help a project, especially since it served me well personally.
# **My Book**
In class, I've presented the book ***Animal Farm***, By George Orwell.
# **LINFO2401 project report - Contributing to an Open Source project**
| **Author:** | _Samy Bettaieb_ |
| ------------------------ | ---------------------------------------- |
| **NOMA:** | 86451800 |
| **Academic Year:** | 2022-2023 |
| **Date:** | 12/12/2022 |
| **Open Source Projects:** | [angr-management](https://github.com/angr/angr-management) <br> [angr_ctf](https://github.com/jakespringer/angr_ctf) |
| **Pull requests made:** | [PR for angr-management](https://github.com/angr/angr-management/pull/807) <br> [PR for angr_ctf](https://github.com/jakespringer/angr_ctf/pull/17) |
| **License** | angr-management: [BSD-2-Clause license](https://github.com/angr/angr-management/blob/master/LICENSE) <br> angr_ctf [GPL-3.0 license](https://github.com/jakespringer/angr_ctf/blob/master/LICENSE)|
## **Open source operating system**
Prior to this project, I was already using an open source operating system. Since 2020 I've started using Ubuntu (18.04 LTS at the time). Today I'm still using Ubuntu, I've kept the 20.04 LTS version and decided not to upgrade to the 22.04 LTS version yet because some libraries I'm using for my master thesis just work better on 20.04 LTS.
Since I have an interest in computer security and capture the flag (CTF) competitions, I also have a Kali Linux virtual machine. It might be a little "overkill" to start with small CTFs, but it's very convenient when you want to play a little bit without taking the time to install all the tools.
## **Motivation behind the choice of the projects**
In 2020, I took part in the Google CTF. I've decided to start with a reverse engineering challenge called "Beginner" and labelled "easy". Plot twist: It wasn't that easy and not really for beginners, I've spent 2 days on it without finding a solution.
Without giving all the details, the goal was to find an input string (which was going to be the flag) that was going to be equal to a certain value after some "complex" operations. As you have guessed, those complex operations were too "complex" to be simply reversed.
When the CTF was over, I've decided to check the solutions. One common solution was to rely on [angr](https://github.com/angr), an Open Source framework for binary analysis that does symbolic execution. Finding the flag with symbolic execution was the solution to the challenge. Symbolic execution assigns symbolic values to the variables and puts them under constraints, at the end it tries to solve those constraints to find concrete values.
At the time it appeared to me like magic, the solution to all CTF challenges, but when I wanted to implement the solution myself, I quickly realized that I didn't really understand how to start, so I kind of abandoned using [angr](https://github.com/angr) in CTFs.
This year, for my master thesis I'm working on a malware analysis toolchain that uses [angr](https://github.com/angr), so I had no choice and I couldn't run from destiny any more: I needed to learn how to use [angr](https://github.com/angr).
In my learning quest, I found a project called [angr_ctf](https://github.com/jakespringer/angr_ctf), which is basically a set of challenges with increasing difficulty to teach you different concepts of angr. The project had solution files, but without explanations on how to find these solutions (also the solution wouldn't work on your computer, since some values depend on addresses that will be different from one computer to another).
To work through these challenges, I had to follow a [Chinese fork](https://github.com/ZERO-A-ONE/AngrCTF_FITM) alongside Google Translate.
For this course, I decided to contribute to this project by adding tutorials for some challenges and a troubleshooting section (since I wasted some time during setting up the project)
I've also wanted to contribute to another project related to angr, [angr-management](https://github.com/angr/angr-management), which is the official GUI for angr. I've checked the issues and found an [issue](https://github.com/angr/angr-management/issues/780) asking to allow a theme based on system preferences.
## **angr_ctf contribution**
First, I had trouble to set up and compile the binaries of the challenges of [angr_ctf](https://github.com/jakespringer/angr_ctf). The problem was due to some missing 32-bit headers and libraries that are not present by default on some Linux distributions.
Without trying to understand the error and fix it, I've made the mistake to waste some time searching for other setup alternatives in the different forks of the project. None of them worked for me, so I decided to get back to the original repo and make my research.
One of my contribution was to add a troubleshooting section in the README to save time for other users.
Before contributing, I've opened an [issue](https://github.com/jakespringer/angr_ctf/issues/15) on github to ask if there are some guidelines to respect before contributing. Unfortunately I didn't receive an answer from the maintainers. However, I received an answer from someone who had a fork of this project and wanted me to save time by using his setup (with docker containers). I've already checked his fork and knew I had an issue with the setup. I've asked him to allow issues on his repo (since it was not available in the beginning) and I've opened the [issue](https://github.com/giladreich/angr_ctf/issues/5) on his fork.
After some time, I've decided to work on another project ([angr-management](https://github.com/angr/angr-management)). But, in the end I got back to my original plan and contributed to this one even if I didn't have the guidelines because I knew there was a need and a lack of resources to start with angr (a friend of mine also had to learn angr for his master thesis and had to use this repo).
I've forked the project and came up with the following contributions:
* Updated the README to markdown file (it wasn't the case)
* Added more build instructions for the local installation
* Pointers to online resources I found (with some time) that describe how to play the challenges and the functionalities of angr
* Troubleshooting section in the README: saying how to download the missing 32-bit headers and libraries.
* Made a walkthrough for the first challenges.
I've made a pull request to merge my fork, and I'm still waiting for approval.
I've received a star on my fork, prior to this project I didn't know what it meant to give a star. I know that it's not a big deal, but I appreciated the star, I think it's encouraging to keep contributing with more solutions and more challenges.
## **angr-management contribution**
When I didn't have an answer in my other contribution, I've searched for other projects related to angr, and I found [angr-management](https://github.com/angr/angr-management) which is the official GUI for angr.
I checked the issues and I found an [issue](https://github.com/angr/angr-management/issues/780) asking to allow a theme based on system preferences.
Here I've made the mistake to work on it without saying that "I'm going to work on it" to the community.
I've had a working solution on my computer, but I wanted to make more tests locally before creating a new pull request.
In the meantime, a regular contributor self-assigned the issue to himself. When I wanted to say that I had a working solution, I've noticed that my solution didn't work any more: There was a merge that upgraded a library. I needed to upgrade my python version and other libraries to make it work.
When I said that I had a possible working solution, the regular contributor opened a draft pull request with his solution.
I've created [mine](https://github.com/angr/angr-management/pull/807) right after that.
Unfortunately, my pull request was closed in favor of his. I must admit, his solution was better and had an additional functionality.
It was a great learning experience.
## **Lessons learned**
With these two contributions, I learned a lot. Here are a few takeaway for me:
* If you're gonna work on something, say it!
* So the community is aware that you're on it.
* Ask for forgiveness, not for permission: If you think you have a good potential working solution, you can create your pull request, even in draft mode if it isn't complete.
* Don't wait for a refactor or an update to break your local solution.
* Don't wait for another contributor to get ahead of you. Don't get me wrong, it's not a competition, but if you're the first one, the other contributor might decide to help you with your solution instead of working on his own.
* Stars are great! They encourage the developer -> if you like a project, you can star it!
## **Conclusion**
Before taking this class, I've never contributed to Open Source projects, and I've never made pull requests (Not a great example I know, but I've never had the need to). I've mainly worked on project related to my studies, most of them in private repositories.
This project forced me to interact with the community and to learn a lot.
This experience really encourages me to contribute to more projects. What I'm thinking about is to contribute to CTF write-ups and add more solutions to different challenges, the ones that seem to me interesting using promising libraries that aren't easy to start using.
# **Books I've presented**
In class, I've presented the manga ***Psycho-Pass***, illustrated by Hikaru Miyoshi, (the manga is also titled ***Inspector Akane Tsunemori***).
I've also presented ***Permanent Record*** by Edward Snowden.