Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Outreachy Winter 2023 #1

Open
Sudha247 opened this issue Oct 1, 2023 · 21 comments
Open

Outreachy Winter 2023 #1

Sudha247 opened this issue Oct 1, 2023 · 21 comments

Comments

@Sudha247
Copy link
Owner

Sudha247 commented Oct 1, 2023

Hello!

Thanks for stopping by. If you are an outreachy applicant interested in contributing to this library, please read on. For people unfamiliar with outreachy, the official website gives a good overview of the program.

What is this library

This library aims to be a tiny geometric creative coding library, much like the original python version. You are encouraged to go through this tutorial to get a feel of what the library is. We are embarking on a journey to implement a similar library in OCaml.

Install OCaml

First things first, let's install OCaml on your machines. The easiest way to install OCaml on Unix based machine is through opam.

$ bash -c "sh <(curl -fsSL https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh)"
$ opam init
$ opam switch create 5.1.0

Windows users, please refer to the instructions at ocaml.org: https://ocaml.org/docs/up-and-running#installation-on-windows.

Graphics library

We will use the graphics library for our implementations. Feel free to install and play around with it.

To install it, run opam install graphics.

Next steps

Over the course of this week, we'll add issues tagged as good-first-issue. Once you are done with the above steps, go ahead and pick up any of these issues. Please mention in the issue when you start working on it, so there isn't duplication of work.

At any point, please don't hesitate to ask questions. You can contact the mentors either here in the issue tracker or in the #outreachy channel in OCaml discord.

OCaml learning resources

If you are new to OCaml, we encourage you to go through some of these learning materials to familiarise yourself with OCaml and functional programming:

@nangahamandine
Copy link
Contributor

nangahamandine commented Oct 2, 2023

Hello, I'm done installing OCaml on my pc. You mentioned that we will use the Graphics library for our implementations. When you asked us to install it and play around, are we supposed to fork the repo, run the code and see the results...? I'm not exactly sure how to proceed.

@Sudha247
Copy link
Owner Author

Sudha247 commented Oct 3, 2023

Hi @nangahamandine, thanks for your interest in contributing. I've elaborated this in #3.

@nangahamandine
Copy link
Contributor

Thank you

@joanita-51
Copy link
Contributor

Installing OCaml on Ubuntu 22.04

I'm using Ubuntu 22.04 and I'm trying to install OCaml on my machine through opam. I'm following these steps:

  1. install and configure opam

Add Repository

However, I encounter the following error:
"The repository 'https://ppa.launchpadcontent.net/avsm/ppa/ubuntu jammy Release' does not have a Release file."

Error

How can I resolve this issue?

@AryanGodara
Copy link

@joanita-51
Try running this
sudo add-apt-repository --remove ppa.launchpadcontent.net/avsm/ppa/ubuntu
And if that gives error, then this
sudo add-apt-repository --remove ppa.launchpadcontent.net/avsm/ppa

Now run
sudo apt-get update

This error isn't specific to this particular repo, but an issue with your ubuntu version.
The PPA you've added does not support your version of Ubuntu, meaning there aren't any packages for your particular release.
So, one possible solution is to remove the PPA.

@joanita-51
Copy link
Contributor

joanita-51 commented Oct 3, 2023

Alright, thank you @AryanGodara
I also managed to install OCaml quickly by executing the following commands in my terminal:

  • Install necessary dependencies:
    sudo apt install bzip2 make gcc bubblewrap rsync patch curl unzip

  • Run the OCaml installation script:
    bash < <(curl -sL https://ocaml.org/install-platform.sh)

  • Install the Platform tools.
    ocaml-platform

I also found the documentation at https://ocaml.org/docs/up-and-running to be helpful

From this screenshot, i think i'm now good to move forward ⏭️
image

@Sudha247
Copy link
Owner Author

PSA for Outreachy participants: If you plan to apply for this project under the OCaml organization, please ensure your contributions are up-to-date on the outreachy website. An open PR is considered a contribution; you don't need to wait for it to be merged.

@nangahamandine
Copy link
Contributor

PSA for Outreachy participants: If you plan to apply for this project under the OCaml organization, please ensure your contributions are up-to-date on the outreachy website. An open PR is considered a contribution; you don't need to wait for it to be merged.

Okay, thank you.

@Sudha247
Copy link
Owner Author

Another PSA for outreachy participants: today is the last day to submit your final applications. Please submit them when they're ready. Best of luck to everyone!

@nangahamandine
Copy link
Contributor

Another PSA for outreachy participants: today is the last day to submit your final applications. Please submit them when they're ready. Best of luck to everyone!

Thank you @Sudha247
Are there any community specific questions that you'd like for us to answer?

Also, what do we fill in the internship timeline or do we leave it blank?

@nangahamandine
Copy link
Contributor

Another PSA for outreachy participants: today is the last day to submit your final applications. Please submit them when they're ready. Best of luck to everyone!

@kushalpokharel @godplayer56 @Mankavelda @FayCarsons @TitilayoAdeyemi
I'm tagging you all so you might get notified via email, since you didn't comment here and might miss the important notification.

Good luck to us all :)

@Sudha247
Copy link
Owner Author

Thanks @nangahamandine!

Re: timeline, I'd suggest including a combination of completing the API (we don't have a lot of stuff left here), exploring other backends, and creating tutorials. This is, of course, subject to updates during the internship itself.

@nikochiko and I were discussing when we met recently about the backends, and we thought it might be worth looking at a javascript or web assembly backend (via js_of_ocaml and wasm_of_ocaml, respectively).

For community-specific questions, I'll let you decide what you'd like to include. It is optional to fill it in.

(this recommendation applies to everyone.)

@nangahamandine
Copy link
Contributor

Thanks @nangahamandine!

Re: timeline, I'd suggest including a combination of completing the API (we don't have a lot of stuff left here), exploring other backends, and creating tutorials. This is, of course, subject to updates during the internship itself.

@nikochiko and I were discussing when we met recently about the backends, and we thought it might be worth looking at a javascript or web assembly backend (via js_of_ocaml and wasm_of_ocaml, respectively).

For community-specific questions, I'll let you decide what you'd like to include. It is optional to fill it in.

(this recommendation applies to everyone.)

Okay, thank you @Sudha247. A javascript or web assembly backend is a great idea!
Thank you again for all the help so far :)

@nangahamandine
Copy link
Contributor

nangahamandine commented Oct 30, 2023

Here is the writeup I've come up with for the project timeline. Please review it in case of any suggestions or improvement:

Month 1: Orientation and API Development

Week 1: Orientation and project familiarization.
Week 2: Complete the simple and approachable API.
Week 3: Write documentation for the API and start writing tutorials.
Week 4: Begin exploring JavaScript and Web Assembly backends.

Month 2: Backend Implementation and Enhancements

Week 5: Continue backend implementation (JavaScript and WASM) or decide not to proceed.
Week 6: Enhance the API to support composability and transformation.
Week 7: Document the new backends and update tutorials.
Week 8: Project report and review.

Month 3: Finalization and Reporting

Week 9: Conduct a comprehensive code review and address feedback.
Week 10: Finalize any pending tasks, perform extensive testing, and fix bugs.
Week 11: Prepare the final project report and review all documentation.
Week 12: Participate in project handover and final discussions.

@Sudha247
Copy link
Owner Author

@nangahamandine, thanks for presenting your proposed timeline. Some of these tasks are too ambitious for a week (e.g., one week for a new backend implementation), while one week may be long for some, like writing a report. I suggest condensing the week-wise breakup to a month-long collective description.

Also, a note to those using LLMs for their work -- please refer to the section on ChatGPT made for the previous round of outreach here titled "A Note on Using ChatGPT and Generative AI for Contributions" - mirage/mirage#1402. I do encourage you to use AI tools for learning. But please be mindful about using AI for actually doing the work you're expected to do.

@nangahamandine
Copy link
Contributor

@nangahamandine, thanks for presenting your proposed timeline. Some of these tasks are too ambitious for a week (e.g., one week for a new backend implementation), while one week may be long for some, like writing a report. I suggest condensing the week-wise breakup to a month-long collective description.

Also, a note to those using LLMs for their work -- please refer to the section on ChatGPT made for the previous round of outreach here titled "A Note on Using ChatGPT and Generative AI for Contributions" - mirage/mirage#1402. I do encourage you to use AI tools for learning. But please be mindful about using AI for actually doing the work you're expected to do.

Okay, thank you.

@FayCarsons
Copy link
Collaborator

How should we handle unmerged PRs? Should those be added as contributions in the final application? @Sudha247

@joanita-51
Copy link
Contributor

joanita-51 commented Oct 30, 2023

Here is my proposed timeline, and I welcome any suggestions for improvement.

Week 1 (December 4-10): Project Kickoff

  • Initial meetings with the mentors to discuss project goals.
  • Brainstorming on whether to use Javascript as a backend or web assembly backend

Week 2 (December 11-17): Transition to using the decided Backend

  • Begin exploring how to implement the API in the decided backend.
  • Identify key components for the backend.

Week 3 (December 18-22): Backend Implementation (Initial)

  • Start implementing the API
  • Ensure that the API works as intended.

Week 4 (December 27-31): Backend Implementation (Continued)

  • Testing the API

Week 5 (January 1-7): Tutorial Preparation

  • Start creating a tutorial Including examples, code snippets, and explanations to help users get started with the library.

Week 7 (January 15-21): Backend Refinement

  • Refine the backend based on feedback from testing.
  • Ensure that the API is user-friendly and well-documented.
  • Test the API in different environments.

Week 8 (January 22-28): Integration Testing

  • Identify and resolve any integration issues with the backend.

Week 9 (January 29-February 4): Tutorial Completion

  • Continue working on the tutorial, incorporating feedback and additional examples.

Week 10 (February 5-11): Stretch Goals (as needed)

  • Depending on the progress, we can work on additional goals such as enhancing the API, adding more shapes or features, or improving the tutorial.

Week 11 (February 12-18): Final Polish and Review

  • Complete the tutorial and review it with the mentor.
  • Ensure the backend API is thoroughly tested.
  • Make any necessary improvements to the code, documentation, and tutorial.

Week 12 (February 19-29): Final Presentation and Wrap-Up

  • Prepare the final presentation and report, showcasing the project's outcomes.
  • Present the work to the Outreachy community and mentors.
  • Wrap up any remaining tasks, address final feedback, and make any last-minute improvements.
  • Project Completion

@kushalpokharel
Copy link
Contributor

How should we handle unmerged PRs? Should those be added as contributions in the final application? @Sudha247

You can include them. #1 (comment)

@TitilayoAdeyemi
Copy link
Contributor

Another PSA for outreachy participants: today is the last day to submit your final applications. Please submit them when they're ready. Best of luck to everyone!

@kushalpokharel @godplayer56 @Mankavelda @FayCarsons @TitilayoAdeyemi I'm tagging you all so you might get notified via email, since you didn't comment here and might miss the important notification.

Good luck to us all :)

Thank you so much @nangahamandine for tagging us

@nangahamandine
Copy link
Contributor

You're welcome @TitilayoAdeyemi

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants