<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Kyle Kelley · Jupyter Blog</title>
    <link>https://jupyter.org/medium-archive/hugo/authors/kyle-kelley/</link>
    <description>The Project Jupyter blog: news, releases, and community stories, archived from blog.jupyter.org.</description>
    <generator>Hugo</generator>
    <lastBuildDate>Sun, 24 Sep 2023 03:34:13 &#43;0000</lastBuildDate>
    <atom:link href="https://jupyter.org/medium-archive/hugo/authors/kyle-kelley/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Bringing Modern JavaScript to the Jupyter Notebook</title>
      <link>https://jupyter.org/medium-archive/hugo/posts/2023/bringing-modern-javascript-to-the-jupyter-notebook/</link>
      <pubDate>Sun, 24 Sep 2023 03:34:13 &#43;0000</pubDate>
      <dc:creator>Kyle Kelley</dc:creator>
      <guid>https://jupyter.org/medium-archive/hugo/posts/2023/bringing-modern-javascript-to-the-jupyter-notebook/</guid>
      <description>The Deno kernel is the freshest runtime for Jupyter</description>
      <content:encoded>&lt;figure&gt;
&lt;video src=&#34;https://jupyter.org/medium-archive/hugo/medium-archive/hugo/posts/2023/bringing-modern-javascript-to-the-jupyter-notebook/images/001-1_dioQ00ymlsIb1PPH_SBdjg.mp4&#34; poster=&#34;/medium-archive/hugo/posts/2023/bringing-modern-javascript-to-the-jupyter-notebook/images/001-1_dioQ00ymlsIb1PPH_SBdjg-poster.webp&#34; width=&#34;1360&#34; height=&#34;720&#34; preload=&#34;none&#34; loop muted playsinline controls aria-label=&#34;Visualizing Data via Deno, TypeScript, and VegaLite in JupyterLab&#34;&gt;&lt;/video&gt;
&lt;figcaption&gt;Visualizing Data via Deno, TypeScript, and VegaLite in JupyterLab&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;I never expected &lt;a href=&#34;https://deno.com/blog/v1.37&#34;&gt;this&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;using modern JS, TS, and npm in jupyter notebooks&lt;/p&gt;
&lt;p&gt;👇&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://jupyter.org/medium-archive/hugo/medium-archive/hugo/posts/2023/bringing-modern-javascript-to-the-jupyter-notebook/images/009-F6k0IzXbQAA1afQ.jpg&#34; width=&#34;1200&#34; height=&#34;854&#34; loading=&#34;lazy&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;— &lt;a href=&#34;https://x.com/deno_land&#34;&gt;Deno (@deno_land)&lt;/a&gt;, &lt;a href=&#34;https://x.com/deno_land/status/1704978299615957200&#34;&gt;September 21, 2023&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://deno.land&#34;&gt;Deno&lt;/a&gt; brings TypeScript, JavaScript, npm, and ES Modules to Jupyter with an easy to install kernel.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The Deno Kernel is the first language runtime with a builtin jupyter kernel.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There’s no better time to &lt;a href=&#34;https://docs.deno.com/runtime/manual/getting_started/installation&#34;&gt;get started with Deno&lt;/a&gt; than now. Once deno is installed, run the &lt;a href=&#34;https://docs.deno.com/runtime/manual/tools/jupyter&#34;&gt;deno jupyter kernel installation&lt;/a&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deno jupyter --unstable --install
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;figure&gt;
&lt;video src=&#34;https://jupyter.org/medium-archive/hugo/medium-archive/hugo/posts/2023/bringing-modern-javascript-to-the-jupyter-notebook/images/002-1__KUkFmq1lO3H-tx4XJPNew.mp4&#34; poster=&#34;/medium-archive/hugo/posts/2023/bringing-modern-javascript-to-the-jupyter-notebook/images/002-1__KUkFmq1lO3H-tx4XJPNew-poster.webp&#34; width=&#34;712&#34; height=&#34;480&#34; preload=&#34;none&#34; loop muted playsinline controls aria-label=&#34;Screen recording of clicking to select a kernel in VS Code. The users clicks “Select Kernel” in their notebook and a “Select Kernel” dialog comes up in the top middle. They click “Jupyter Kernel” and a listing of several Python kernels comes up. They select Deno and it drops them into the notebook. They type in console.log(“HOORAY!”) and run it. Out pops HOORAY!&#34;&gt;&lt;/video&gt;
&lt;figcaption&gt;Enabling Deno in VS Code&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Since Deno supports web standards like &lt;code&gt;fetch&lt;/code&gt; out of the box, loading data is simple and easy.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://jupyter.org/medium-archive/hugo/medium-archive/hugo/posts/2023/bringing-modern-javascript-to-the-jupyter-notebook/images/003-1_ndB49_FE9Mq8-9YSNFLuWw.webp&#34; width=&#34;1310&#34; height=&#34;260&#34; loading=&#34;lazy&#34; alt=&#34;That’s so fetch&#34;&gt;
&lt;figcaption&gt;That’s so fetch&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Not only is this a fast &amp;amp; secure runtime, it’s fun. The timing is great too — &lt;a href=&#34;https://platform.noteable.io/blog/dataframes-answers-for-solutions&#34;&gt;DataFrames&lt;/a&gt; aren’t just for &lt;a href=&#34;https://dataframes.juliadata.org/stable/&#34;&gt;Julia&lt;/a&gt;, &lt;a href=&#34;https://pandas.pydata.org/&#34;&gt;Python&lt;/a&gt;, &lt;a href=&#34;https://cran.r-project.org/doc/manuals/r-release/R-intro.html#Data-frames&#34;&gt;R&lt;/a&gt;, and &lt;a href=&#34;https://www.pola.rs/&#34;&gt;Rust&lt;/a&gt;. &lt;a href=&#34;https://github.com/pola-rs/nodejs-polars&#34;&gt;Polars provides DataFrames for JavaScript&lt;/a&gt;.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://jupyter.org/medium-archive/hugo/medium-archive/hugo/posts/2023/bringing-modern-javascript-to-the-jupyter-notebook/images/004-1_m6aEUA3UifW-qNnPu8etPw.webp&#34; width=&#34;1318&#34; height=&#34;860&#34; loading=&#34;lazy&#34; alt=&#34;Manipulating DataFrames in JavaScript&#34;&gt;
&lt;figcaption&gt;Manipulating DataFrames in JavaScript&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;What’s surprising me is how easily I can use &lt;a href=&#34;https://github.com/rgbkrk/denotebooks/blob/main/10.2_Polar%20DataFrames.ipynb&#34;&gt;D3 with DataFrames&lt;/a&gt;.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://jupyter.org/medium-archive/hugo/medium-archive/hugo/posts/2023/bringing-modern-javascript-to-the-jupyter-notebook/images/005-1_BBPR6Od9aEwZanntimfkTA.webp&#34; width=&#34;1326&#34; height=&#34;268&#34; loading=&#34;lazy&#34; alt=&#34;D3 and Polars playing well together in a notebook&#34;&gt;
&lt;figcaption&gt;D3 and Polars playing well together in a notebook&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;We can draw plots directly to a canvas.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://jupyter.org/medium-archive/hugo/medium-archive/hugo/posts/2023/bringing-modern-javascript-to-the-jupyter-notebook/images/006-1_ZF4Q_S9RVCcf_fLe191kQw.webp&#34; width=&#34;1316&#34; height=&#34;1348&#34; loading=&#34;lazy&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;as well as use any library that emits SVG&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://jupyter.org/medium-archive/hugo/medium-archive/hugo/posts/2023/bringing-modern-javascript-to-the-jupyter-notebook/images/007-1_i8svfV32WtGxOxKCQv0-UA.webp&#34; width=&#34;1342&#34; height=&#34;1496&#34; loading=&#34;lazy&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;This enables a broad range of JavaScript developers and data professionals to iterate in a notebook &lt;strong&gt;writing documentation that runs&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;If you want to explore and visualize data with JavaScript/TypeScript, check out &lt;a href=&#34;https://deno.com&#34;&gt;Deno&lt;/a&gt; and their &lt;a href=&#34;https://docs.deno.com/runtime/manual/tools/jupyter&#34;&gt;docs on getting started with Jupyter&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you know Rust, come &lt;a href=&#34;https://github.com/denoland/deno&#34;&gt;hack on Deno&lt;/a&gt;. If you don’t know rust, like me, come hack on Deno anyway. You can learn. The Deno team is a friendly group of people who believe deeply in the power of TypeScript, Jupyter, and standards.&lt;/p&gt;
&lt;p&gt;You can also contribute by &lt;a href=&#34;https://github.com/denoland/deno/issues&#34;&gt;filing bugs&lt;/a&gt;, writing notebooks, and sharing the Deno kernel with others.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://jupyter.org/medium-archive/hugo/medium-archive/hugo/posts/2023/bringing-modern-javascript-to-the-jupyter-notebook/images/008-1_Lq2UGOudjDsPyzNFtHXr2Q.webp&#34; width=&#34;818&#34; height=&#34;520&#34; loading=&#34;lazy&#34; alt=&#34;Jupyter Denos&#34;&gt;
&lt;figcaption&gt;Jupyter Denos&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Happy Notebooking!&lt;/p&gt;
</content:encoded>
    </item>
    
  </channel>
</rss>
