├── README.md ├── community-news ├── 2021-numpy-survey.md ├── CZI-DEI-grant.md ├── devstats.md └── numpy-teams.md ├── contributor-spotlight ├── CharlesHarris.md └── MukulikaPahari.md ├── events ├── distutils-deprecation.md └── scipy2022.md ├── links-to-click ├── newcomers-hour.md └── tutorial-air-quality.md ├── numpy-feature ├── dtype-redesign.md ├── numpy-accessibility.md └── parallel-random-number-generation.md ├── q10.md └── youtube-timestamps ├── timestamps-2022-01-18.md ├── timestamps-2022-03-14.md ├── timestamps-2022-04-10.md ├── timestamps-2022-06-02.md ├── timestamps-2022-06-04.md ├── timestamps-2022-09-08.md └── timestamps-2022-10-09.md /README.md: -------------------------------------------------------------------------------- 1 | **NUMPY NEWSLETTER** 2 | 3 | This project is managed via GitHub Projects: https://github.com/numpy/numpy-newsletter/projects 4 | 5 | **Objectives** 6 | Inform, educate, and inspire the NumPy community. 7 | 8 | 9 | **Subscriber acquisition channels:** 10 | - a sign up form in the footer of numpy.org, 11 | - Twitter announcements. 12 | 13 | **Frequency** 14 |
Issues will be numbered (e.g. Issue No. 24): 15 | - appropriate for a project that has “numerical” in its name, 16 | - will allow the editorial team to have some flexibility with the frequency of releases. 17 | 18 | **Design** 19 |
A custom template is preferred. 20 |
Options: 21 | - MailChimp (detailed reports, up to 2000 subscribers on a free plan), 22 | - Send in Blue (unlimited contacts). 23 | 24 | 25 | **Content outline** 26 | - latest most important news (events, funding received, etc.); 27 | - contributor spotlight (could be contractors as well as volunteers); 28 | - explain a NumPy feature, either new or cool-but-not-well-known; 29 | - highlight an upcoming significant improvement (could be a code feature, update on the website, etc.). 30 | 31 | Segment headings are needed. 32 | 33 | 34 | **Interview Questionnaire** 35 |
A questionnaire will be used to profile featured NumPy contributors: https://github.com/numpy/numpy-newsletter/blob/main/q10.md 36 | 37 | -------------------------------------------------------------------------------- /community-news/2021-numpy-survey.md: -------------------------------------------------------------------------------- 1 | TO DO 2 | -------------------------------------------------------------------------------- /community-news/CZI-DEI-grant.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Advancing an inclusive culture in the scientific Python ecosystem" 3 | --- 4 | 5 | We are happy to announce the Chan Zuckerberg Initiative has awarded a grant 6 | to support the onboarding, inclusion, and retention of people from 7 | historically underrepresented groups on scientific Python projects, and to 8 | structurally improve the community dynamics for NumPy, SciPy, Matplotlib, 9 | and Pandas. 10 | 11 | The grant supports the creation of dedicated Contributor Experience Lead positions 12 | to identify, document, and implement practices to foster inclusive open-source communities. 13 | By establishing these new cross-project roles, we hope to introduce a new 14 | collaboration model to the Scientific Python communities, allowing 15 | community-building work within the ecosystem to be done more efficiently 16 | and with greater outcomes. We also expect to develop a clearer picture of 17 | what works and what doesn’t in our projects to engage and retain new 18 | contributors, especially from historically underrepresented groups. 19 | 20 | The project is led by Melissa Mendonça (NumPy), with additional mentorship 21 | and guidance provided by Ralf Gommers (NumPy, SciPy), Hannah Aizenman and 22 | Thomas Caswell (Matplotlib), Matt Haberland (SciPy), and Joris Van den 23 | Bossche (Pandas). 24 | 25 | Read the full grant proposal [here](https://figshare.com/articles/online_resource/Advancing_an_inclusive_culture_in_the_scientific_Python_ecosystem/16548063). 26 | -------------------------------------------------------------------------------- /community-news/devstats.md: -------------------------------------------------------------------------------- 1 | TO DO 2 | -------------------------------------------------------------------------------- /community-news/numpy-teams.md: -------------------------------------------------------------------------------- 1 | **Task** 2 | Give a brief overview of all the current NumPy teams. 3 | -------------------------------------------------------------------------------- /contributor-spotlight/CharlesHarris.md: -------------------------------------------------------------------------------- 1 | Task 2 | 3 | Use the template (https://github.com/numpy/numpy-newsletter/blob/main/q10.md) to interview Charles Harris. 4 | -------------------------------------------------------------------------------- /contributor-spotlight/MukulikaPahari.md: -------------------------------------------------------------------------------- 1 | Contributor Spotlight: Mukulika Pahari 2 | 3 | Our first Contributor Spotlight interview is with Mukulika Pahari, our “go-to” person for Numpy documentation. Mukulika is a Computer Science student at Mumbai University. Her passions outside of computing involve things with paper, including reading books (fiction!), folding origami, and journaling. During our interview she discussed why she joined NumPy, what keeps her motivated, and how likely she would recommend becoming a NumPy contributor. 4 | 5 | Tell us something about yourself. Who are you? 6 | Hi, I am Mukulika. I live in Mumbai, India, and I’m completing my Computer Science degree at Mumbai University. I joined NumPy last summer during Google Season of Docs, which is a project to improve open source documentation. Season of Docs also gives technical writers an opportunity to gain experience working on open source projects. In general, the idea is to raise awareness of open source, the role of documentation, and the importance of technical writing. Apart from that, I like to read fiction--literally everything that I can put my hands on--and I find it relaxing to learn origami from YouTube tutorials. 7 | 8 | What is your role in the NumPy project? 9 | I write technical documentation for NumPy, and I help new contributors with their questions. 10 | 11 | What are your best and worst experiences contributing to NumPy or other open source projects? 12 | The best part for me, honestly, is the people. It is inspiring to meet people from diverse backgrounds all over the world and do something together. However, I do find it quite scary to put your code out there for "the whole world to see and evaluate." It can challenge my confidence. But meeting all the contributors, seeing their work, and getting their valuable feedback--absolutely worth it. 13 | 14 | What motivated you to join and contribute to NumPy? What keeps you motivated? 15 | Since I already used NumPy in my data analysis courses in school, and now I am using it at my internship, I thought that I could also contribute to it. It is always more fun to do side projects in a group. Once you get to know the people in the NumPy community, you want to stay! They are really open and supportive. 16 | 17 | What is the book you’ve given most as a gift and why? 18 | Well, I do not really give out books to people--being a broke college student is quite a barrier. But I think that everyone should read, "The Hitchhiker's Guide to Galaxy" by Douglas Adams. It is absolutely hilarious! It is both entertaining and spiked with wisdom. 19 | 20 | What small purchase has most impacted your life recently? 21 | I recently bought a nice journal and started to write in it. I find it very cleansing to put thoughts on paper and give them structure. I appreciate pretty paper products--this one has pastel pages. 22 | 23 | How has a failure, or apparent failure, set you up for later success? 24 | I can't think of a specific situation, but, in general, all my experiences so far seem to follow a general theme: it is absolutely okay not to be great at everything. You fail, and then you learn for the future. 25 | 26 | Who do you consider a successful person? 27 | My definition of success is, basically, being happy without causing harm to anyone. 28 | 29 | What advice would you give someone at the start of their career? What advice should they ignore? 30 | Since I am at the beginning of my career, I can't say much. But I think it is nice to listen to everyone and get feedback, with the mindset that you do not necessarily have to act on their advice. Having multiple perspectives is good. 31 | 32 | How likely you are to recommend contributing to NumPy on a scale of zero to ten? 33 | I'd say a solid nine! It is overall a great experience. 34 | 35 | Is there something you wish I’d asked but haven’t? 36 | Yes, I want to add something. What I like the most about the NumPy community is that it does not require huge commitments time-wise. Every little thing is appreciated, so that is certainly motivating. 37 | -------------------------------------------------------------------------------- /events/distutils-deprecation.md: -------------------------------------------------------------------------------- 1 | **Task** 2 | 3 | Write a short summary on the work to deprecate distutils. 4 | -------------------------------------------------------------------------------- /events/scipy2022.md: -------------------------------------------------------------------------------- 1 | **Task** 2 | 3 | Write a summary of the highlights from the SciPy 2022 conference. 4 | -------------------------------------------------------------------------------- /links-to-click/newcomers-hour.md: -------------------------------------------------------------------------------- 1 | # Newcomer's Hour: Find Your Way in the NumPy Codebase 2 | 3 | On February 10, 2022, the NumPy project hosted a panel featuring NumPy core contributors [Melissa Mendonca](https://github.com/melissawm), [Sebastian Berg](https://github.com/seberg), [Tyler Reddy](https://github.com/tylerjereddy), and [Matti Picus](https://github.com/mattip). 4 | The panel discussed navigating the NumPy codebase, the future of NumPy, and how newcomers can contribute to the project. 5 | Watch the recording of the discussion on [YouTube](https://www.youtube.com/watch?v=mTWpBf1zewc). 6 | 7 | **See the video's discussion topics and timestamps below:** 8 | 9 | * [00:26](https://youtu.be/mTWpBf1zewc?t=26) Team introductions 10 | * [03:36](https://youtu.be/mTWpBf1zewc?t=216) Finding specific Python and C functions 11 | * [13:36](https://youtu.be/mTWpBf1zewc?t=817) Looking for operator overloads (+,-, [] for indexing) 12 | * [17:35](https://youtu.be/mTWpBf1zewc?t=1055) Debugging techniques 13 | * [21:36](https://youtu.be/mTWpBf1zewc?t=1296) Self documentation techniques 14 | * [26:48](https://youtu.be/mTWpBf1zewc?t=1608) The review process, making mistakes, and working in public 15 | * [32:51](https://youtu.be/mTWpBf1zewc?t=1972) Parts of the NumPy codebase that need the most work 16 | * [37:36](https://youtu.be/mTWpBf1zewc?t=2257) How NumPy deprecations work 17 | * [40:35](https://youtu.be/mTWpBf1zewc?t=2435) The future of NumPy 18 | * [44:17](https://youtu.be/mTWpBf1zewc?t=2657) Adding new features 19 | * [48:42](https://youtu.be/mTWpBf1zewc?t=2922) Closing remarks 20 | * [51:57](https://youtu.be/mTWpBf1zewc?t=3117) How newcomers can start contributing 21 | -------------------------------------------------------------------------------- /links-to-click/tutorial-air-quality.md: -------------------------------------------------------------------------------- 1 | **Analyzing the impact of the lockdown on air quality** 2 | 3 | The pandemic-induced lockdown provided a rare, controlled environment to observe the effect of human activity on Delhi's air quality. [Mukulika's](https://github.com/Mukulikaa) tutorial, *Analyzing the impact of the lockdown on air quality in Delhi, India*, calculates Air Quality Indices and tests the air-quality improvement after the lockdown. 4 | 5 | This tutorial teaches the following concepts: 6 | 7 | * The concept of moving averages 8 | * How to calculate Air Quality Index (AQI) 9 | * How to perform a paired Student’s t-test and find the t and p values 10 | * How to interpret these values 11 | 12 | [Read a text version of the tutorial on numpy.org.](https://numpy.org/numpy-tutorials/content/tutorial-air-quality-analysis.html) 13 | 14 | [Watch a video presentation of the tutorial on the official NumPy YouTube channel.](https://www.youtube.com/watch?v=5bfFI2WuuMA) 15 | -------------------------------------------------------------------------------- /numpy-feature/dtype-redesign.md: -------------------------------------------------------------------------------- 1 | **Task** 2 | 3 | Write an abstract on dtype redesign in NumPy (collaborate with Sebastian Berg @seberg). 4 | -------------------------------------------------------------------------------- /numpy-feature/numpy-accessibility.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Making Numpy accessible" 3 | --- 4 | 5 | Numpy is now foundational to Python scientific computing. Our efforts reach millions of developers each month. 6 | As our user base grows, so does the number of users with disabilities. In the open-source ecosystem, accessibility 7 | is often considered low-priority, scary, or someone else’s job. Read the blog post by Mars Lee, a front-end developer and designer at Quansight, 8 | about how she and Melissa Weber Mendonça championed the efforts to support NumPy users with visual impairments 9 | and make the NumPy website and documentation more accessible: [*Making Numpy Accessible: Guidelines and Tools*](https://labs.quansight.org/blog/2021/07/numpy-accessibility-guidelines/) 10 | -------------------------------------------------------------------------------- /numpy-feature/parallel-random-number-generation.md: -------------------------------------------------------------------------------- 1 | **Task** 2 | - Docs: https://numpy.org/devdocs/reference/random/index.html 3 | - See slides 2-5 of https://www.slideshare.net/RalfGommers/pydata-nyc-whatsnew-numpyscipy-2019. 4 | - Maybe PyMC3 has adopted it now (check)? 5 | - State of the art, spurred new variant of PCG (find link) 6 | -------------------------------------------------------------------------------- /q10.md: -------------------------------------------------------------------------------- 1 | **Q10 – interview template for the Contributor Spotlight section** 2 | 3 | 1. Please introduce yourself in 100 words. (Word length – up to 150 words.) 4 | 2. What is your role in the NumPy project, and what parts of NumPy do you work on? 5 | 3. What are your best and worst experiences contributing to NumPy or another open source project? 6 | 4. What motivated you to show up and contribute to NumPy? What keeps you motivated? or what would motivate you to return? 7 | 5. What is the book you’ve given most as a gift, and why? 8 | 6. What small purchase has most impacted your life recently? 9 | 7. How has a failure, or apparent failure, set you up for later success? 10 | 8. Who do you consider a successful person? 11 | 9. What advice would you give someone at the start of their career? What advice should they ignore? 12 | 10. Is there something you wish I’d asked you and haven’t? 13 | -------------------------------------------------------------------------------- /youtube-timestamps/timestamps-2022-01-18.md: -------------------------------------------------------------------------------- 1 | 2 | 0:00 Outline of the presentation 3 | 4 | 1:04 Self-introduction of the speaker 5 | 6 | 1:24 Brief agenda 7 | 8 | 1:52 Shell session with environment settings 9 | 10 | 4:32 Brief introduction to the `hex` function 11 | 12 | 5:36 Features of `vim` (to open several files) 13 | 14 | 9:15 Features of `ctags` and `cscope` 15 | 16 | 14:32 Q/A on environment settings 17 | 18 | 19:30 Preparation for debugging 19 | 20 | 26:08 Using `gdb` for debugging 21 | 22 | 30:06 Q/A on how to navigate frames to extract variables 23 | 24 | 31:35 Resume using `gdb` 25 | 26 | 36:08 Start fixing the bug 27 | 28 | 38:45 Live debugging with `gdb` 29 | 30 | 39:49 Q/A on debugging context 31 | 32 | 42:48 Resume live debugging 33 | 34 | 45:20 Brief introduction to `Py-bt` 35 | 36 | 45:51 Feedback and comments from participants 37 | -------------------------------------------------------------------------------- /youtube-timestamps/timestamps-2022-03-14.md: -------------------------------------------------------------------------------- 1 | 0:00 Intro 2 | 3 | 0:26 Introducing Mukulika Pahari 4 | 5 | 1:30 Analyzing the impact of the lockdown on air quality in Delhi, India 6 | 7 | 3:45 Importing the necessary libraries 8 | 9 | 4:25 The dataset 10 | 11 | 7:47 Calculating the air quality index 12 | 13 | 9:49 Moving averages 14 | 15 | 11:26 Sub-indices 16 | 17 | 13:19 Air quality indices 18 | 19 | 14:19 Paired student's test on the air quality index 20 | 21 | 15:08 Defining the hypothesis 22 | 23 | 16:30 Sampling 24 | 25 | 19:02 Calculating the test statistics 26 | 27 | 21:09 What do the t and p value mean? 28 | 29 | 24:55 Tutorial walk-through summary 30 | 31 | 26:58 Questions and answers 32 | 33 | 34:30 Contributing to Numpy: Writing tutorials 34 | 35 | 35:15 Questions and answers 36 | 37 | 38:26 Outro 38 | -------------------------------------------------------------------------------- /youtube-timestamps/timestamps-2022-04-10.md: -------------------------------------------------------------------------------- 1 | 0:00 Intro 2 | 3 | 0:22 Numpy code of conduct 4 | 5 | 01:18 Introducing Mars Lee 6 | 7 | 01:52 Making Numpy accessible with community workshops: How we can involve more people with disabilites in data science? 8 | 9 | 07:46 Why designers are the mediators of accessibility? 10 | 11 | 08:46 What and why accessibility? 12 | 13 | 10:15 Why should OSS be more accessible? 14 | 15 | 11:20 What are the barriers? 16 | 17 | 13:56 Why designers? 18 | 19 | 16:43 Our story + Impact 20 | 21 | 20:02 ALT-Text Workshop 22 | 23 | 22:08 Key takeaways 24 | 25 | 22:23 Actionable steps 26 | 27 | 23:29 Special thanks 28 | 29 | 23:55 Numpy community discussion 30 | 31 | 26:10 Question and answers 32 | -------------------------------------------------------------------------------- /youtube-timestamps/timestamps-2022-06-02.md: -------------------------------------------------------------------------------- 1 | 0:00 Intro 2 | 3 | 2:46 Demo: How to remove deprecations 4 | 5 | 9:09 Running a test 6 | 7 | 12:17 Debugging and fixing the failed test 8 | 9 | 13:49 Running a test to check fixes 10 | 11 | 18:17 Debugging and fixing the failed test (TestHistogram2d) 12 | 13 | 21:12 Running a test to check fixes 14 | 15 | 23:19 Debugging and fixing a failed test (test_density_normed_redundancy) 16 | 17 | 24:35 Running a test to check fixes 18 | 19 | 24:57 Creating a branch (Git branch) 20 | 21 | 25:00 Git checkout 22 | 23 | 26:34 Git commit 24 | 25 | 27:53 Git push 26 | 27 | 28:00 Creating a pull request 28 | 29 | 28:53 Writing a release note 30 | 31 | 32:27 Pushing a release note 32 | 33 | 32:31 Q&A 34 | 35 | 36:36 Intro to C-deprecations 36 | 37 | 38:16 C-deprecations test case 38 | 39 | 38:53 Removing a C-deprecation 40 | 41 | 41:37 Running test 42 | 43 | 43:14 Outro 44 | -------------------------------------------------------------------------------- /youtube-timestamps/timestamps-2022-06-04.md: -------------------------------------------------------------------------------- 1 | 0:00 Statement on the NumPy Code of Conduct 2 | 3 | 01:04 Introduction of the speaker 4 | 5 | 02:10 Self-introduction of each participant 6 | 7 | 06:51 Beginning of slide presentation and general benefit of NumPy 8 | 9 | 08:03 Self-introduction of the speaker 10 | 11 | 09:01 Accessing current presentation and other resources 12 | 13 | 10:02 Why use NumPy in Mechanical Engineering courses? 14 | 15 | 12:54 Exercises: questions to participants and speaker's comments 16 | 17 | 27:55 Diagram on Learner's Journey 18 | 19 | 29:45 Reviewing an open educational resource in Computational Mechanics 20 | 21 | 35:26 Revisiting the Learner's Journey 22 | 23 | 38:35 NumPy in Mechanical Engineering 24 | 25 | 41:37 Benefits of NumPy: Products 26 | 27 | 42:35 Benefits of NumPy: Experience 28 | -------------------------------------------------------------------------------- /youtube-timestamps/timestamps-2022-09-08.md: -------------------------------------------------------------------------------- 1 | 0:00 Self-introduction of the the speaker 2 | 3 | 00:37 Motivation of the work 4 | 5 | 02:05 NumPy Dtypes: Example UnitDType 6 | 7 | 04:32 What is a UFunc? 8 | 9 | 08:42 Let's make a UFunc: The "strided loop" 10 | 11 | 12:25 Let's make a UFunc: The "Resolver" 12 | 13 | 15:31 Let's make a UFunc: Wrap it up! 14 | 15 | 18:42 Done with UFunc! 16 | 17 | 18:56 How do casts work? 18 | 19 | 20:26 What makes the UnitDType? 20 | 21 | 25:42 Summary and acknowledgements 22 | 23 | 27:24 Q/A session 24 | -------------------------------------------------------------------------------- /youtube-timestamps/timestamps-2022-10-09.md: -------------------------------------------------------------------------------- 1 | 0:00 Introduction and welcoming remarks 2 | 3 | 0:54 What is NumPy newcomers' hour? 4 | 5 | 1:30 What are we jamming today? 6 | 7 | 1:43 Design Jam Session 1 8 | 9 | 2:27 Why are we jamming? 10 | 11 | 3:55 Design Jam Session 2 12 | 13 | 4:37 Closing remarks 14 | --------------------------------------------------------------------------------