Skip to content
Extraits de code Groupes Projets
Valider f8e395f2 rédigé par Lionel Dricot's avatar Lionel Dricot
Parcourir les fichiers

Merge remote-tracking branch 'refs/remotes/origin/master'

parents b64e6671 9edc13c1
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
# 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 ?).
# 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
# 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.
# **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.
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter