
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Quansight Labs</title><link>https://labs.quansight.org/</link><description>Quansight Labs site: blog, development and project overview</description><atom:link href="https://labs.quansight.org/rss.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2023 &lt;a href="mailto:info@quansight.com"&gt;Quansight Labs Team&lt;/a&gt; </copyright><lastBuildDate>Mon, 06 Mar 2023 11:30:29 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Checking for accessibility: thoughts and a checklist!</title><link>https://labs.quansight.org/blog/2022/06/checking-for-accessibility/</link><dc:creator>Isabela Presedo-Floyd</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;img alt="Checkmark and x-filled checkboxes in a repeating pattern." src="https://labs.quansight.org/images/jlabaccess4.png"&gt;&lt;/p&gt;
&lt;h3&gt;JupyterLab Accessibility Journey Part 4&lt;/h3&gt;
&lt;p&gt;Remember how &lt;a href="https://labs.quansight.org/blog/2021/09/not-a-checklist/"&gt;my last post in this series&lt;/a&gt; 
called out accessibility as much more complex than a checklist? True to my 
sense of humor, this blog post is now a checklist. Irony? I don’t know the 
meaning of the word.&lt;/p&gt;
&lt;p&gt;Okay, okay. But seriously, here's how we got here. When I’m not making 
my own work, much of my time is spent reviewing other people’s work. Whether 
it’s design files, code contributions, blog posts, documentation, or 
who-knows-what-this-week, I often find myself asking questions and giving 
feedback about accessibility in the review process. This has prompted multiple 
people to ask me what it is I’m considering when I review for accessibility. 
Enough people have now asked that I’ve decided to write something down -- and 
it's turned into a checklist.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://labs.quansight.org/blog/2022/06/checking-for-accessibility/"&gt;Read more…&lt;/a&gt; (9 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>Accessibility</category><category>JLabA11y</category><category>JupyterLab</category><guid>https://labs.quansight.org/blog/2022/06/checking-for-accessibility/</guid><pubDate>Fri, 10 Jun 2022 16:00:00 GMT</pubDate></item><item><title>The evolution of the SciPy developer CLI</title><link>https://labs.quansight.org/blog/2022/05/the-evolution-of-the-scipy-developer-cli/</link><dc:creator>Sayantika Banik</dc:creator><description>&lt;div&gt;&lt;h5&gt;🤔 What is a command-line interface (CLI)?&lt;/h5&gt;
&lt;p&gt;Imagine a situation, where there is a massive system with various tools and functionalities, and every functionality requires a special command or an input from the user. A CLI is designed to tackle such situations. Like a catalog or menu, it lists all the options available, thus helping the user to navigate a complex system.&lt;/p&gt;
&lt;p align="center"&gt;
  &lt;img alt="CLI example" src="https://user-images.githubusercontent.com/17350312/166633508-a2795c44-30bc-4a5b-8043-65beab71d31f.png"&gt;
&lt;/p&gt;

&lt;p&gt;Now that we understand what a &lt;code&gt;CLI&lt;/code&gt; is, how about we dive into the world of &lt;code&gt;SciPy&lt;/code&gt;?&lt;/p&gt;
&lt;p&gt;&lt;a href="https://labs.quansight.org/blog/2022/05/the-evolution-of-the-scipy-developer-cli/"&gt;Read more…&lt;/a&gt; (5 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>CLI</category><category>Click</category><category>doit</category><category>Rich</category><category>SciPy</category><category>Typer</category><guid>https://labs.quansight.org/blog/2022/05/the-evolution-of-the-scipy-developer-cli/</guid><pubDate>Tue, 03 May 2022 02:30:00 GMT</pubDate></item><item><title>Why is writing blog posts hard?</title><link>https://labs.quansight.org/blog/2022/04/why-is-writing-blog-posts-hard/</link><dc:creator>Tania Allard, Kate Brack, Tony Fast, Rohit Goswami, Eric Kelly, Mars Lee, Dharhas Pothina, Isabela Presedo-Floyd, Dillon Roach, Melissa Weber Mendonça</dc:creator><description>&lt;div&gt;&lt;p&gt;We write code. We write issues. We write documentation. We write notes to 
ourselves, messages to each other, and guidelines to unite teams across 
projects.&lt;/p&gt;
&lt;p&gt;Day in and out our remote work and open source lives are driven by written 
communication. But blog posts are one kind of writing that eludes our regular 
practice. In our weekly show and tell we got real about "why can writing blog 
posts be so hard?" and collaboratively wrote up this blog post about what we learned 
from the discussion.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://labs.quansight.org/blog/2022/04/why-is-writing-blog-posts-hard/"&gt;Read more…&lt;/a&gt; (4 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>Writing</category><guid>https://labs.quansight.org/blog/2022/04/why-is-writing-blog-posts-hard/</guid><pubDate>Sun, 10 Apr 2022 11:00:00 GMT</pubDate></item><item><title>Making GPUs accessible to the PyData Ecosystem via the Array API Standard.</title><link>https://labs.quansight.org/blog/2022/03/making-gpus-accessible-to-pydata-ecosystem-via-array-api/</link><dc:creator>Amit Kumar</dc:creator><description>&lt;figure&gt;&lt;img src="https://labs.quansight.org/images/2022/02/array_api_workflow.svg"&gt;&lt;/figure&gt; &lt;div&gt;&lt;p&gt;GPUs have become an essential part of the scientific computing stack and with
the advancement in the technology around GPUs and the ease of accessing a GPU
in the cloud or on-prem, it is in the best interest of the PyData community to spend
time and effort to make GPUs accessible for the users of PyData libraries. A
typical user in the PyData ecosystem is quite familiar with the APIs of libraries
like SciPy, scikit-learn, and scikit-image -- and at the moment these
libraries are largely limited to single-threaded operations on CPU (there are
exceptions to that, like linear algebra functions and scikit-learn
functionality which uses OpenMP under the hood). In this blog post I will talk
about how we can use the &lt;a href="https://data-apis.org/array-api/latest/"&gt;Python Array API Standard&lt;/a&gt;
with the fundamental libraries in the PyData ecosystem along with CuPy for
making GPUs accessible to the users of these libraries. With the introduction
of that standard by the &lt;a href="https://data-apis.org/"&gt;Consortium for Python Data API Standards&lt;/a&gt;
and its adoption mechanism in &lt;a href="https://numpy.org/neps/nep-0047-array-api-standard.html"&gt;NEP 47&lt;/a&gt;
it is now possible to write code that is portable between NumPy and other array/tensor
libraries that adopt the Array API Standard. We will also discuss the workflow and
challenges for actually achieving such portability.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://labs.quansight.org/blog/2022/03/making-gpus-accessible-to-pydata-ecosystem-via-array-api/"&gt;Read more…&lt;/a&gt; (15 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>Array API</category><category>CuPy</category><category>GPU</category><category>NumPy</category><category>scikit-image</category><category>scikit-learn</category><category>SciPy</category><guid>https://labs.quansight.org/blog/2022/03/making-gpus-accessible-to-pydata-ecosystem-via-array-api/</guid><pubDate>Thu, 31 Mar 2022 23:59:02 GMT</pubDate></item><item><title>Jupyter accessibility efforts have a roadmap!</title><link>https://labs.quansight.org/blog/2022/02/jupyter-accessibility-efforts-have-a-roadmap/</link><dc:creator>Isabela Presedo-Floyd</dc:creator><description>&lt;div&gt;&lt;h3&gt;Really? Tell me more.&lt;/h3&gt;
&lt;p&gt;The Chan Zuckerberg Initiative has funded efforts to make the Jupyter ecosystem, 
starting with JupyterLab, more accessible (As was announced in &lt;a href="https://blog.jupyter.org/czi-awards-three-eoss-grants-to-jupyter-community-members-6aef43bd9468"&gt;a prior Jupyter blog post about grants in the ecosystem&lt;/a&gt;). 
You can read the &lt;a href="https://github.com/jupyter/accessibility/blob/master/grant-applications/Inclusive_and_Accessible_Scientific_Computing_in_Jupyter_Ecosystem_SUBMITTED_PROPOSAL.pdf"&gt;full grant proposal for Jupyter accessibility&lt;/a&gt;, 
the &lt;a href="https://chanzuckerberg.com/eoss/proposals/inclusive-and-accessible-scientific-computing-in-the-jupyter-ecosystem/"&gt;proposal summary&lt;/a&gt;, 
or a &lt;a href="https://github.com/orgs/Quansight-Labs/projects/5"&gt;GitHub Project list of the grant's milestones&lt;/a&gt; 
to get a sense of the grant's scope.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://labs.quansight.org/blog/2022/02/jupyter-accessibility-efforts-have-a-roadmap/"&gt;Read more…&lt;/a&gt; (1 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>Accessibility</category><category>JLabA11y</category><category>Jupyter</category><category>JupyterLab</category><guid>https://labs.quansight.org/blog/2022/02/jupyter-accessibility-efforts-have-a-roadmap/</guid><pubDate>Mon, 28 Feb 2022 10:00:00 GMT</pubDate></item><item><title>Conda and Grayskull, the Masters of Software Packaging</title><link>https://labs.quansight.org/blog/2022/01/conda-grayskull-packaging/</link><dc:creator>Mahe Iram Khan</dc:creator><description>&lt;figure&gt;&lt;img src="https://labs.quansight.org/images/2022/01/grayskull.jpg"&gt;&lt;/figure&gt; &lt;div&gt;&lt;p&gt;Python might be the most popular snake out there, but most of us have also heard of that other serpent: Conda. And some of us have wondered what it really is. In this post we’ll learn about Conda, software packages and package recipes. Most importantly we’ll learn about Grayskull — a conda recipe generator.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://labs.quansight.org/blog/2022/01/conda-grayskull-packaging/"&gt;Read more…&lt;/a&gt; (6 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>Conda</category><category>conda-forge</category><category>Grayskull</category><category>Internship 2021</category><category>packaging</category><category>Python</category><category>recipes</category><guid>https://labs.quansight.org/blog/2022/01/conda-grayskull-packaging/</guid><pubDate>Wed, 19 Jan 2022 10:00:00 GMT</pubDate></item><item><title>IPython 8.0, Lessons learned maintaining software</title><link>https://labs.quansight.org/blog/2022/01/ipython-8.0-lessons-learned-maintaining-software/</link><dc:creator>Matthias Bussonnier</dc:creator><description>&lt;div&gt;&lt;p&gt;This is a companion post from the &lt;a href="https://blog.jupyter.org/release-of-ipython-8-0-6e034ff122ef"&gt;Official release of IPython
8.0&lt;/a&gt;, that describe
what we learned with this large new major IPython release. We hope it will help
you apply best practices, and have an easier time maintaining your projects, or
helping other. We'll focus on many patterns that made it easier for us to make
IPython 8.0 what it is with minimal time involved.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://labs.quansight.org/blog/2022/01/ipython-8.0-lessons-learned-maintaining-software/"&gt;Read more…&lt;/a&gt; (8 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>best-practice</category><category>IPython</category><category>Open-Source</category><category>Software</category><guid>https://labs.quansight.org/blog/2022/01/ipython-8.0-lessons-learned-maintaining-software/</guid><pubDate>Wed, 12 Jan 2022 13:00:00 GMT</pubDate></item><item><title>A year of Jupyter community calls</title><link>https://labs.quansight.org/blog/2021/10/jupyter-community-calls/</link><dc:creator>Isabela Presedo-Floyd, Tony Fast</dc:creator><description>&lt;div&gt;&lt;p&gt;A framing for open source is that the software and code are kernels of community.
The code, and its abstractions, unite developers and their patrons; 
a struggle for growing/evolving open communities is to make sure these groups remain connected. 
A lot of us showed up for the code, but hung around for the community. 
We'll continue this post talking about the monthly Jupyter community calls, 
and how they help all &lt;a href="https://jupyter.readthedocs.io/en/latest/community/content-community.html#what-is-a-jovyan"&gt;jovyans&lt;/a&gt;, Project Jupyter's pet name for their developers and users, stay connected.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://labs.quansight.org/blog/2021/10/jupyter-community-calls/"&gt;Read more…&lt;/a&gt; (2 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>community</category><category>Jupyter</category><guid>https://labs.quansight.org/blog/2021/10/jupyter-community-calls/</guid><pubDate>Fri, 10 Dec 2021 06:00:00 GMT</pubDate></item><item><title>A vision for extensibility to GPU &amp; distributed support for SciPy, scikit-learn, scikit-image and beyond</title><link>https://labs.quansight.org/blog/2021/11/pydata-extensibility-vision/</link><dc:creator>Ivan Yashchuk, Ralf Gommers</dc:creator><description>&lt;figure&gt;&lt;img src="https://labs.quansight.org/images/2021/11/nep-0047-library-dependencies.png"&gt;&lt;/figure&gt; &lt;div&gt;&lt;p&gt;Over the years, array computing in Python has evolved to support distributed
arrays, GPU arrays, and other various kinds of arrays that work with specialized
hardware, or carry additional metadata, or use different internal memory
representations. The foundational library for array computing in the PyData
ecosystem is NumPy. But NumPy alone is a CPU-only library - and a
single-threaded one at that - and in a world where it's possible to get a GPU or
a CPU with a large core count in the cloud cheaply or even for free in a matter
of seconds, that may not seem enough. For the past couple of years, a lot of
thought and effort has been spent on devising mechanisms to tackle this problem,
and evolve the ecosystem in a gradual way towards a state where PyData
libraries can run on a GPU, as well as in distributed mode across multiple
GPUs.&lt;/p&gt;
&lt;p&gt;We feel like a shared vision has emerged, in bits and pieces. In this post, we
aim to articulate that vision and suggest a path to making it concrete,
focusing on three libraries at the core of the PyData ecosystem: SciPy,
scikit-learn and scikit-image. We are also happy to share that AMD has
recognized the value of this vision, and is partnering with Quansight Labs to
help make it a reality.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://labs.quansight.org/blog/2021/11/pydata-extensibility-vision/"&gt;Read more…&lt;/a&gt; (13 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>Array API</category><category>CuPy</category><category>NumPy</category><category>scikit-image</category><category>scikit-learn</category><category>SciPy</category><category>uarray</category><guid>https://labs.quansight.org/blog/2021/11/pydata-extensibility-vision/</guid><pubDate>Wed, 17 Nov 2021 10:00:00 GMT</pubDate></item><item><title>NumPy Benchmarking</title><link>https://labs.quansight.org/blog/2021/10/numpy-benchmarking/</link><dc:creator>Khushi Agrawal</dc:creator><description>&lt;div&gt;&lt;p&gt;In this blog post, I'll be talking about my journey in Quansight.
I want to share all things I was involved in and accomplished.
What issues I faced, and most importantly, what were awesome life hacks I learned during this period.&lt;/p&gt;
&lt;p&gt;First of all, I'd like to express my gratitude to the whole team
for allowing me to be a part of such a great team.
My work was majorly focused on providing performance benchmarks to NumPy in realistic situations.
The target was to show the world that NumPy is efficient in handling quasi real-life situations too.&lt;/p&gt;
&lt;p&gt;The primary technical outcome of my work is available in the &lt;a href="https://deploy-preview-461--numpy-preview.netlify.app/benchmark/"&gt;numpy documentation&lt;/a&gt;.&lt;/p&gt;
&lt;p align="center"&gt;
      &lt;img src="https://labs.quansight.org/images/2021/10/journey.jpeg" alt="A word cloud with themes, open-source projects and people mentioned throughout the blog post. Each is stylized using a different font, most of them calligraphical."&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labs.quansight.org/blog/2021/10/numpy-benchmarking/"&gt;Read more…&lt;/a&gt; (6 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>Internship 2021</category><category>Numba</category><category>NumPy</category><category>Pythran</category><category>Transonic</category><guid>https://labs.quansight.org/blog/2021/10/numpy-benchmarking/</guid><pubDate>Wed, 03 Nov 2021 17:23:40 GMT</pubDate></item></channel></rss>