{
    "version": "https://jsonfeed.org/version/1",
    "title": "Livebook.dev The Livebook Blog",
    "home_page_url": "https://news.livebook.dev",
    "icon": "https://img.announcekit.app/16ec43d8b4c8c28bd80a053ac7fea4ac?w=150&h=50&fit=max&s=fad3cc2e4bd255cbdaa50f0050f1c2b2",
    "items": [
        {
            "id": "429908",
            "content_html": "<p>We're excited to share a batch of new features in Livebook Teams to help you manage access and keep your deployed apps organized.</p><p>Here's what's new.</p><h2>Google Workspace integration for authentication and access control</h2><p>Control access to your Livebook apps and servers using your existing Google Workspace groups.</p><p><img src=\"https://img.announcekit.app/d175e7d24151611cf549a6edc8691f87?s=6e4d0933c7ea13764ca693096981787a\" /></p><p>Manage access right from Google Workspace. Add someone to a group, and they instantly get access to the right apps in Livebook Teams.</p><p>To get started, set up Google Workspace as your SSO provider in Livebook Teams, then map your Google groups to control access at the app server or app level.</p><p>Check the <a href=\"https://hexdocs.pm/livebook/oidc_sso.html#1-oidc-configurations\" rel=\"noopener noreferrer\" target=\"_blank\">docs for setup instructions</a>.</p><h2>Redesigned apps page with folders and search</h2><p>The new deployed apps page helps you stay organized as your collection of internal tools grows.</p><p><img src=\"https://img.announcekit.app/50bcd9d45263ba6aefd4bf876170152e?s=e972198a6951c1145dfd358bf675529f\" /></p><p><a href=\"https://hexdocs.pm/livebook/app_folders.html\" rel=\"noopener noreferrer\" target=\"_blank\">Organize apps into folders</a>, search by name, and filter by folder. Quickly find the runbook or admin tool you need without scrolling through long lists.</p><h2>Access control by app folder</h2><p><a href=\"https://hexdocs.pm/livebook/oidc_groups.html#access-types-explained\" rel=\"noopener noreferrer\" target=\"_blank\">Control who can access apps in each folder</a> once you've organized them.</p><p><img src=\"https://img.announcekit.app/2bf4992ffa80fba9a69a0cd6db09deb4?s=b3cc05d646728d96618d42e5a036b487\" /></p><p>For example, give your ops team access to a \"production-runbooks\" folder, while your support team can use a \"support-tools\" folder.</p><p>Combine this with Google Workspace integration to map folders to Google groups for seamless access management.</p><h2>Open notebooks from your Git repository</h2><p><a href=\"https://hexdocs.pm/livebook/git_file_storage.html\" rel=\"noopener noreferrer\" target=\"_blank\">Open notebooks directly from your private Git repository</a> inside your Livebook app server.</p><p><img src=\"https://img.announcekit.app/e43bc4053ce1f6e7d0c5eb44d3fb5518?s=6fc6651cc4fadd122e3b68f6584ed53b\" /></p><p>This is great for template notebooks and runbooks you version in Git. Your team can browse and open them straight from the repository, no manual imports needed.</p><h2>Audit logs documentation </h2><p>We now have full <a href=\"https://hexdocs.pm/livebook/audit_logs.html\" rel=\"noopener noreferrer\" target=\"_blank\">documentation on audit logs</a>, showing how to track who ran what code and when.</p><p><img src=\"https://img.announcekit.app/4739ab1cd41e7be1c12296253dc8e4c5?s=bc9530e54d3a08fa5cd6642ca536e852\" /></p><p>Audit logs are essential for production. When someone runs a runbook that changes production data or system state, you'll have a clear record of who did it and when.</p><h2>Try it out</h2><p>To start using these features, update to Livebook v0.18 or newer and configure them in your Teams organization settings.</p>",
            "url": "https://news.livebook.dev/new-in-livebook-teams-google-workspace-integration-app-folders-and-more-1y0y64",
            "title": "New in Livebook Teams: Google Workspace integration, App folders, and more",
            "summary": "We're excited to share a batch of new features in Livebook Teams to help you manage access and keep your deployed apps organized. Here's wha...",
            "date_modified": "2025-12-03T16:41:51.181Z",
            "tags": [
                "releases"
            ]
        },
        {
            "id": "396818",
            "content_html": "<p>Livebook v0.14 is here with new features that make navigating your code easier than ever.</p><p>No more endless scrolling through a notebook to find module or function definitions — Livebook v0.14 has you covered.</p><h2>Module definitions in the Outline panel</h2><p>When you define an Elixir module in a code cell, it will now be listed in the Outline panel in the sidebar.</p><p>The Outline panel, previously known as the Sections panel, now gives you a structured view of your code. It lists all the modules defined within each section of your notebook.</p><p><img src=\"https://img.announcekit.app/6e1782f6f6c4690f24f0717b622dc802?s=c792e2ee8c271999fc6f6e83a4c6e54b\" /></p><p>You can also use this panel to navigate to module definitions. Just click on a module's name on the Outline, and your notebook will automatically scroll to the position where it is defined.</p><p>Here's a video showing how it works:</p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/hwyxsyrLp0o?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/hwyxsyrLp0o/maxresdefault.jpg\" data-embed-signature=\"ILUb121V8kQSQf5hsQAFV840D9phrIMPEuTDWQ6WZAI\" data-embed-url=\"https://www.youtube.com/watch?v=hwyxsyrLp0o\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/hwyxsyrLp0o?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p>Want to see how we built this? Here's the <a href=\"https://github.com/livebook-dev/livebook/pull/2760\" rel=\"noopener noreferrer\" target=\"_blank\">pull request</a>.</p><h2>Go to definition of modules and functions</h2><p>Not only can you quickly navigate to the definition of a module, but you can also quickly go to the definition of a function.</p><p>To do that, hover over a module or function you defined in your notebook, hold Command ⌘ (for macOS) or Ctrl (for Windows/Linux), and click on the module or function call.</p><p>Here's a video showing how it works:</p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/aJE-ZskJ-20?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/aJE-ZskJ-20/maxresdefault.jpg\" data-embed-signature=\"peQX4wSfdl0BJOYSDvldUn2iEoD7zQhiI1S4D6Ctugy\" data-embed-url=\"https://www.youtube.com/watch?v=aJE-ZskJ-20\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/aJE-ZskJ-20?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p>You can also access this feature through the link shown in the intellisense for a module or function call:</p><p><img src=\"https://img.announcekit.app/baa9d681e635dff05888abd0f96d38b3?s=ba24080f8ad3f29670230f70a0aeb188\" /></p><p>Want to see how we built this? Here are the pull requests: <a href=\"https://github.com/livebook-dev/livebook/pull/2730\" rel=\"noopener noreferrer\" target=\"_blank\">#2730</a>, <a href=\"https://github.com/livebook-dev/livebook/pull/2741\" rel=\"noopener noreferrer\" target=\"_blank\">#2741</a>.</p><h2>Conclusion</h2><p>We're dedicated to continually improving the Livebook developer experience, and these new features are another step in that journey.</p><p>Feel free to <a href=\"https://github.com/livebook-dev/livebook/blob/v0.14/CHANGELOG.md\" rel=\"noopener noreferrer\" target=\"_blank\">check out the v0.14 changelog</a> to discover all the features and changes in this newest release.</p><p>Happy hacking!</p>",
            "url": "https://news.livebook.dev/code-navigation-with-go-to-definition-of-modules-and-functions-kuYrS",
            "title": "Code navigation with go to definition of modules and functions",
            "summary": "Learn how Livebook v0.14 improves code navigation with new features like module definitions in the Outline panel and go-to-definition for faster coding.",
            "date_modified": "2024-09-12T12:49:11.786Z",
            "tags": [
                "releases"
            ]
        },
        {
            "id": "391049",
            "content_html": "<p>We are thrilled to announce the release of a new version of Livebook!</p><p>This version includes numerous new features and improvements. Today, we will highlight one of the most significant additions: <code>Kino.Proxy</code>.</p><p>By using <code>Kino.Proxy</code>, you can now expose API endpoints directly from your notebook or Livebook app.</p><p>Let's take a look at how it works.</p><h2>How to expose an API endpoint from your Livebook notebook</h2><p>Here's a simple \"hello world\" example:</p><div><pre><span style=\"color:#003366;font-weight:bold;\">Kino</span><span style=\"color:#333333;\">.</span><span style=\"color:#003366;font-weight:bold;\">Proxy</span><span style=\"color:#333333;\">.</span>listen(<span style=\"color:#008800;font-weight:bold;\">fn</span> conn <span style=\"color:#333333;\">-&gt;</span>\n  <span style=\"color:#003366;font-weight:bold;\">  Plug</span><span style=\"color:#333333;\">.</span><span style=\"color:#003366;font-weight:bold;\">Conn</span><span style=\"color:#333333;\">.</span>send_resp(conn, <span style=\"color:#6600EE;font-weight:bold;\">200</span>, <span style=\"background-color:#fff0f0;\">\"hello world!\"</span>)\n<span style=\"color:#008800;font-weight:bold;\">end</span>)</pre></div><p>The <code>Kino.Proxy.listen/1</code> function makes Livebook expose API endpoints and will proxy requests to the handler function passed to it.</p><p>That handler function receives a <code>Plug.Conn</code> as an argument and should use the <a href=\"https://hexdocs.pm/plug/readme.html\" rel=\"noopener noreferrer\" target=\"_blank\">Plug API</a> to send a response to the client.</p><p>Let's see a video with a simple example working: </p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/vbh2RVkywig?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/vbh2RVkywig/hqdefault.jpg\" data-embed-signature=\"xkUQGeCoQaPnJ6zka53UfmFTHUdUoFfaHmzuWZVsPZG\" data-embed-url=\"https://www.youtube.com/watch?v=vbh2RVkywig\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/vbh2RVkywig?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><h2><br /></h2><h2>Leveraging Plug for APIs with Kino.Proxy</h2><p>You can also provide a module plug as an argument to <code>Kino.Proxy.listen/1</code>, like this:</p><div><pre><span style=\"color:#008800;font-weight:bold;\">defmodule</span> <span style=\"color:#003366;font-weight:bold;\">MyPlug</span> <span style=\"color:#008800;font-weight:bold;\">do</span>\n<span style=\"color:#008800;font-weight:bold;\">  def</span> init([]), <span style=\"color:#008800;font-weight:bold;\">do</span>: <span style=\"color:#003366;font-weight:bold;\">false</span>\n\n  <span style=\"color:#008800;font-weight:bold;\">def</span> call(conn, _opts) <span style=\"color:#008800;font-weight:bold;\">do</span>\n<span style=\"color:#008800;font-weight:bold;\">    </span><span style=\"color:#003366;font-weight:bold;\">Plug</span><span style=\"color:#333333;\">.</span><span style=\"color:#003366;font-weight:bold;\">Conn</span><span style=\"color:#333333;\">.</span>send_resp(conn, <span style=\"color:#6600EE;font-weight:bold;\">200</span>, <span style=\"background-color:#fff0f0;\">\"hello world!\"</span>)\n  <span style=\"color:#008800;font-weight:bold;\">end</span>\n<span style=\"color:#008800;font-weight:bold;\">end</span>\n\n<span style=\"color:#003366;font-weight:bold;\">Kino</span><span style=\"color:#333333;\">.</span><span style=\"color:#003366;font-weight:bold;\">Proxy</span><span style=\"color:#333333;\">.</span>listen(<span style=\"color:#003366;font-weight:bold;\">MyPlug</span>)</pre></div><p>Since our API handler is a plug, we can leverage other plugs. For example, here's how to use <code>Plug.Router</code> to handle multiple endpoints:</p><div><pre><span style=\"color:#008800;font-weight:bold;\">defmodule</span> <span style=\"color:#003366;font-weight:bold;\">ApiRouter</span> <span style=\"color:#008800;font-weight:bold;\">do</span>\n<span style=\"color:#008800;font-weight:bold;\">  use</span> <span style=\"color:#003366;font-weight:bold;\">Plug</span><span style=\"color:#333333;\">.</span><span style=\"color:#003366;font-weight:bold;\">Router</span>\n\n  plug <span style=\"color:#AA6600;\">:match</span>\n  plug <span style=\"color:#AA6600;\">:dispatch</span>\n\n  get <span style=\"background-color:#fff0f0;\">\"/hello\"</span> <span style=\"color:#008800;font-weight:bold;\">do</span>\n<span style=\"color:#008800;font-weight:bold;\">    </span>send_resp(conn, <span style=\"color:#6600EE;font-weight:bold;\">200</span>, <span style=\"background-color:#fff0f0;\">\"hello from router\"</span>)\n  <span style=\"color:#008800;font-weight:bold;\">end</span>\n\n  get <span style=\"background-color:#fff0f0;\">\"/echo/:message\"</span> <span style=\"color:#008800;font-weight:bold;\">do</span>\n<span style=\"color:#008800;font-weight:bold;\">    </span>send_resp(conn, <span style=\"color:#6600EE;font-weight:bold;\">200</span>, <span style=\"color:#003366;font-weight:bold;\">String</span><span style=\"color:#333333;\">.</span>upcase(message))\n  <span style=\"color:#008800;font-weight:bold;\">end</span>\n\n  match _ <span style=\"color:#008800;font-weight:bold;\">do</span>\n<span style=\"color:#008800;font-weight:bold;\">    </span>send_resp(conn, <span style=\"color:#6600EE;font-weight:bold;\">404</span>, <span style=\"background-color:#fff0f0;\">\"oops, not found\"</span>)\n  <span style=\"color:#008800;font-weight:bold;\">end</span>\n<span style=\"color:#008800;font-weight:bold;\">end</span>\n\n<span style=\"color:#003366;font-weight:bold;\">Kino</span><span style=\"color:#333333;\">.</span><span style=\"color:#003366;font-weight:bold;\">Proxy</span><span style=\"color:#333333;\">.</span>listen(<span style=\"color:#003366;font-weight:bold;\">ApiRouter</span>)</pre></div><h2><br /></h2><h2>Livebook apps + Kino.Proxy = handling requests from external apps</h2><p>This new feature enables an exciting new possibility: a Livebook app can now use <code>Kino.Proxy</code> to handle external HTTP requests, allowing code execution triggered by an external system.</p><p>Let’s see an example.</p><p>We built a Livebook app that tracks how many days we don't have a broken build in a GitHub repository:</p><p><img src=\"https://img.announcekit.app/0ebc523813217eea4646c09d5c25077c?s=2716fd8a93bfdcbfc6399933b13f93eb\" /></p><p>Whenever a new build finishes in the configured Github Repo, GitHub sends a webhook to the Livebook app, which processes the request to update its state.</p><p><img src=\"https://img.announcekit.app/fbe1ee696734e251cd2dacb37e5a62ee?s=9b1ef31409aac78661ac20c26ef524f2\" /></p><p>To handle webhooks inside the Livebook app, we could combine <code>Plug.Router</code> with <code>Kino.listen/1</code> like this:</p><div><pre><span style=\"color:#008800;font-weight:bold;\">defmodule</span> <span style=\"color:#003366;font-weight:bold;\">ApiRouter</span> <span style=\"color:#008800;font-weight:bold;\">do</span>\n<span style=\"color:#008800;font-weight:bold;\">  use</span> <span style=\"color:#003366;font-weight:bold;\">Plug</span><span style=\"color:#333333;\">.</span><span style=\"color:#003366;font-weight:bold;\">Router</span>\n\n  plug(<span style=\"color:#AA6600;\">:match</span>)\n  plug(<span style=\"color:#003366;font-weight:bold;\">Plug</span><span style=\"color:#333333;\">.</span><span style=\"color:#003366;font-weight:bold;\">Parsers</span>, <span style=\"color:#AA6600;\">parsers:</span> [<span style=\"color:#AA6600;\">:json</span>], <span style=\"color:#AA6600;\">json_decoder:</span> <span style=\"color:#003366;font-weight:bold;\">Jason</span>)\n  plug(<span style=\"color:#AA6600;\">:dispatch</span>)\n\n  post <span style=\"background-color:#fff0f0;\">\"/webhook\"</span> <span style=\"color:#008800;font-weight:bold;\">do</span>\n<span style=\"color:#008800;font-weight:bold;\">    </span>process_webhook(conn<span style=\"color:#333333;\">.</span>body_params)\n\n    conn\n    <span style=\"color:#333333;\">|&gt;</span> put_resp_content_type(<span style=\"background-color:#fff0f0;\">\"application/json\"</span>)\n    <span style=\"color:#333333;\">|&gt;</span> send_resp(<span style=\"color:#6600EE;font-weight:bold;\">200</span>, <span style=\"color:#FF0000;background-color:#FFAAAA;\">~</span>s({<span style=\"background-color:#fff0f0;\">\"message\"</span>: <span style=\"background-color:#fff0f0;\">\"ok\"</span>}))\n  <span style=\"color:#008800;font-weight:bold;\">end</span>\n\n  match _ <span style=\"color:#008800;font-weight:bold;\">do</span>\n<span style=\"color:#008800;font-weight:bold;\">    </span>conn\n    <span style=\"color:#333333;\">|&gt;</span> put_resp_content_type(<span style=\"background-color:#fff0f0;\">\"application/json\"</span>)\n    <span style=\"color:#333333;\">|&gt;</span> send_resp(<span style=\"color:#6600EE;font-weight:bold;\">404</span>, <span style=\"color:#FF0000;background-color:#FFAAAA;\">~</span>s({<span style=\"background-color:#fff0f0;\">\"message\"</span>: <span style=\"background-color:#fff0f0;\">\"not found\"</span>}))\n  <span style=\"color:#008800;font-weight:bold;\">end</span>\n\n  <span style=\"color:#008800;font-weight:bold;\">defp</span> process_webhook(webhook_payload) <span style=\"color:#008800;font-weight:bold;\">do</span>\n<span style=\"color:#008800;font-weight:bold;\">    </span><span style=\"color:#888888;\"># Logic to do something with the webhook payload</span>\n  <span style=\"color:#008800;font-weight:bold;\">end</span>\n<span style=\"color:#008800;font-weight:bold;\">end</span>\n\n<span style=\"color:#003366;font-weight:bold;\">Kino</span><span style=\"color:#333333;\">.</span><span style=\"color:#003366;font-weight:bold;\">Proxy</span><span style=\"color:#333333;\">.</span>listen(<span style=\"color:#003366;font-weight:bold;\">ApiRouter</span>)</pre></div><p>Here's a quick video with a demo of that app:</p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/vWtE66XEAFM?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/vWtE66XEAFM/maxresdefault.jpg\" data-embed-signature=\"ueX7lMRSBLLMnibLBV5eCDqBzfCYhoocgCL5fQdonZc\" data-embed-url=\"https://www.youtube.com/watch?v=vWtE66XEAFM\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/vWtE66XEAFM?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p>Here's the <a href=\"https://github.com/hugobarauna/livebook-notebooks/blob/main/ci_green_streak.livemd\" rel=\"noopener noreferrer\" target=\"_blank\">source code for that Livebook app</a> so you can understand how it works under the hood. </p><p>If you want to run the app by yourself, <a href=\"https://livebook.dev/run/?url=https%3A%2F%2Fgithub.com%2Fhugobarauna%2Flivebook-notebooks%2Fblob%2Fmain%2Fci_green_streak.livemd\" rel=\"noopener noreferrer\" target=\"_blank\">click here</a>.</p><h2>Wrapping up</h2><p>We believe that APIs with <code>Kino.Proxy</code> open Livebook to a new category of use cases.</p><p>For example, you can quickly build an API that receives a request from Zapier to automate internal processes.</p><p>We're looking forward to seeing what you will build it with!</p><p>One last thing: Livebook 0.13 has plenty more, and you can view all of them in our <a href=\"https://github.com/livebook-dev/livebook/blob/v0.13/CHANGELOG.md\" rel=\"noopener noreferrer\" target=\"_blank\">changelog</a>.</p><p>We plan to share quicker demos of other Livebook 0.13 features on <a href=\"https://x.com/livebookdev\" rel=\"noopener noreferrer\" target=\"_blank\">our X/Twitter, so feel free to follow us there</a>.</p><p>Happy hacking!</p>",
            "url": "https://news.livebook.dev/livebook-0.13-expose-an-http-api-from-your-notebook-2wE6GY",
            "title": "Livebook 0.13: expose an HTTP API from your notebook",
            "summary": "Expose API endpoints directly from your Livebook notebooks with the new Kino.Proxy feature in Livebook 0.13. Learn how to handle external HTTP requests and integrate with other applications seamlessly.",
            "date_modified": "2024-07-05T12:19:57.960Z",
            "tags": [
                "releases"
            ]
        },
        {
            "id": "379726",
            "content_html": "<p>We're thrilled to announce <a href=\"https://www.tigrisdata.com/\" rel=\"noopener noreferrer\" target=\"_blank\">Tigris</a> as the latest Livebook sponsor!</p><p>Tigris is a globally distributed S3-compatible object storage service that provides low latency anywhere in the world.</p><p>We've prepared a short demo showcasing the Tigris API through Livebook (of course 😉) to highlight its capabilities.</p><h2>Quick intro to Tigris</h2><p>You'll find Tigris intuitive if you're familiar with other object storage services like AWS S3. Here's an example of saving an object to a Tigris bucket:</p><div><pre>ExAws.S3.put_object(<span style=\"color:#a31515;\">\"my_tigris_bucket_name\"</span>, <span style=\"color:#a31515;\">\"cat.jpeg\"</span>, image)\n|&gt; ExAws.request!()</pre></div><p>Notice we're using an AWS S3 client. Thanks to Tigris's S3-API compatibility, transitioning your code requires minimal changes.</p><p>Let's say the object is uploaded to a public bucket; to retrieve it, it's just a simple HTTP GET:</p><div><pre>object_url = <span style=\"color:#a31515;\">\"https://fly.storage.tigris.dev/my_tigris_bucket_name/cat.jpeg\"</span>\nReq.get!(object_url)</pre></div><p>Simple, right? Now for the real game-changer…</p><p>Imagine uploading a file from São Paulo (Brazil). The object is stored automatically in the nearest Tigris region, GRU (São Paulo).</p><p>When a user in Mumbai (India) requests the object, it's initially served from GRU. However, Tigris automatically caches the object in the region closest to the request's origin, significantly improving subsequent access times — all without extra configuration!</p><p>Here are some real numbers for that example:</p><table><thead><tr><th><span style=\"text-align:left;\">Request</span></th><th>Response</th><th><span style=\"text-align:left;\">Response time (milliseconds)</span></th></tr></thead><tbody><tr><td style=\"width:33.2576%;\">gru (São Paulo)  </td><td style=\"width:33.2576%;\">gru (São Paulo)</td><td style=\"width:33.3333%;\">3.018</td></tr><tr><td style=\"width:33.2576%;\"><span style=\"text-align:left;\">bom (Mumbai)</span></td><td style=\"width:33.2576%;\">gru (São Paulo)  </td><td style=\"width:33.3333%;\"><span style=\"text-align:left;\">1207.364</span></td></tr><tr><td style=\"width:33.2576%;\"><span style=\"text-align:left;\">bom (Mumbai)</span></td><td style=\"width:33.2576%;\"><span style=\"text-align:left;\">sin (Singapore)</span></td><td style=\"width:33.3333%;\"><span style=\"text-align:left;\">141.98</span></td></tr><tr><td style=\"width:33.2576%;\"><span style=\"text-align:left;\">bom (Mumbai)</span></td><td style=\"width:33.2576%;\"><span style=\"text-align:left;\">sin (Singapore)</span></td><td style=\"width:33.3333%;\"><span style=\"text-align:left;\">134.972</span></td></tr><tr><td style=\"width:33.2576%;\"><span style=\"text-align:left;\">bos (Boston)</span></td><td style=\"width:33.2576%;\">gru (São Paulo)  </td><td style=\"width:33.3333%;\"><span style=\"text-align:left;\">1393.971</span></td></tr><tr><td style=\"width:33.2576%;\"><span style=\"text-align:left;\">bos (Boston)</span></td><td style=\"width:33.2576%;\"><span style=\"text-align:left;\">iad (Washington, D.C.)</span></td><td style=\"width:33.3333%;\"><span style=\"text-align:left;\">29.399</span></td></tr><tr><td style=\"width:33.2576%;\"><span style=\"text-align:left;\">bos (Boston)</span></td><td style=\"width:33.2576%;\"><span style=\"text-align:left;\">iad (Washington, D.C.)</span></td><td style=\"width:33.3333%;\"><span style=\"text-align:left;\">21.344</span></td></tr></tbody></table><p>Tigris combines object storage with CDN capabilities. That means great UX for end-users and great DX for developers.</p><p>Let's look at a demo notebook that showcases this.</p><h2>Demo</h2><p>In our demo, we use <a href=\"https://livebook.dev/integrations/maplibre/\" rel=\"noopener noreferrer\" target=\"_blank\">Livebook's integration with MapLibre</a> to plot the HTTP request and response locations on a map. We also log the response times in a <a href=\"https://hexdocs.pm/kino/Kino.DataTable.html\" rel=\"noopener noreferrer\" target=\"_blank\">table</a>.</p><p>Additionally, we leveraged the <a href=\"https://news.livebook.dev/deploy-notebooks-as-apps-quality-of-life-upgrades---launch-week-1---day-1-2OTEWI\" rel=\"noopener noreferrer\" target=\"_blank\">Livebook Apps feature</a> to visualize the notebook as an app.</p><p>Here's the result:</p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/h3dmauuXAhc?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/h3dmauuXAhc/maxresdefault.jpg\" data-embed-signature=\"HatLlhgneTn3A1H6uk8SbP2LBi69UfSYfUMwyQNUYHb\" data-embed-url=\"https://www.youtube.com/watch?v=h3dmauuXAhc\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/h3dmauuXAhc?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><h2><br /></h2><h2>Wrap-up</h2><p>Tigris brings some cool innovations to the object storage space. For example, here's <a href=\"https://fly.io/phoenix-files/what-if-s3-could-be-a-fast-globally-synced-key-value-database-that-s-tigris/?utm_source=thinkingelixir&amp;utm_medium=shownotes\" rel=\"noopener noreferrer\" target=\"_blank\">how you could use it as a global key-value store from Elixir</a>.</p><p>If you want to try using Tigris with Elixir, they have <a href=\"https://www.tigrisdata.com/docs/sdks/s3/aws-elixir-sdk/\" rel=\"noopener noreferrer\" target=\"_blank\">official Elixir support</a>.</p>",
            "url": "https://news.livebook.dev/welcoming-tigris-as-a-new-sponsor-of-livebook-1rsFQk",
            "title": "Welcoming Tigris as a new sponsor of Livebook!",
            "summary": "See how Tigris's S3-compatible storage and automatic caching enhance UX/DX, demonstrated via a Livebook demo.",
            "date_modified": "2024-03-26T13:12:12.000Z",
            "tags": [
                "announcements"
            ]
        },
        {
            "id": "355122",
            "content_html": "<p><span>Welcome to the 5th day of Livebook Launch Week 2! 🎉</span></p><p><span>For those of us who found ourselves instinctively trying to use Vim or Emacs shortcuts in Livebook, only to realize that these weren’t supported, feeling frustrated. We hear you.</span></p><p><span>We’re excited to announce that now you can use Vim and Emacs key bindings while coding in Livebook.</span></p><p><span>Let’s see how it works.</span></p><h2><a href=\"https://hackmd.io/e7GxZuemQh2FGY-DgU-GSg?view#Using-Vim-or-Emacs-keybindings-in-Livebook\" target=\"_blank\"></a><span>Using Vim or Emacs key bindings in Livebook</span></h2><p><span>Go to the settings page in Livebook and choose the “Key bindings” you prefer:</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/hStK5h5WPEQ?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/hStK5h5WPEQ/maxresdefault.jpg\" data-embed-signature=\"rZhPsLWNDDsKcjYCkXsyYNoJrL3ahM5kFo810JXgdz2\" data-embed-url=\"https://www.youtube.com/watch?v=hStK5h5WPEQ\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/hStK5h5WPEQ?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><span style=\"text-align:start;\">Once that’s done, you can use it in any Livebook cell with a code editor, like in a code cell or a markdown cell. Here’s an example using Vim keybindings:</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/Fda9WI_L4IQ?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/Fda9WI_L4IQ/maxresdefault.jpg\" data-embed-signature=\"aYas4EtXZKcpVMNw019UZlUd6Ce0YadINIKcHDojFAu\" data-embed-url=\"https://www.youtube.com/watch?v=Fda9WI_L4IQ\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/Fda9WI_L4IQ?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><span style=\"text-align:start;\"><span style=\"text-align:start;\">From now on, you can bring your Vim/Emacs muscle memory to Livebook for a more pleasant and productive experience. Thanks to </span><a href=\"https://github.com/kenichi\" rel=\"noopener\" target=\"_blank\"><span>Kenichi Nakamura</span></a><span style=\"text-align:start;\">, who </span><a href=\"https://github.com/livebook-dev/livebook/pull/2173\" rel=\"noopener\" target=\"_blank\"><span>contributed that feature</span></a><span style=\"text-align:start;\">.</span></span></p><h2><span>What now?</span></h2><p><span>To start using that new feature, </span><a href=\"https://livebook.dev/#install\" rel=\"noopener\" target=\"_blank\"><span>install the latest version of Livebook</span></a><span> and have fun!</span></p><h2><a href=\"https://hackmd.io/e7GxZuemQh2FGY-DgU-GSg?view#More-of-Launch-Week-2\" target=\"_blank\"></a><span>More of Launch Week 2</span></h2><ul><li><a href=\"https://news.livebook.dev/remote-execution-smart-cell---launch-week-2---day-1-m3dv2\" rel=\"nofollow noopener\" target=\"_blank\">Day 1: Remote execution Smart cell</a><a href=\"https://news.livebook.dev/speech-to-text-with-whisper-timestamping-streaming-and-parallelism-oh-my---launch-week-2---day-2-36osSY\" rel=\"nofollow noopener\" target=\"_blank\"></a></li><li><a href=\"https://news.livebook.dev/speech-to-text-with-whisper-timestamping-streaming-and-parallelism-oh-my---launch-week-2---day-2-36osSY\" rel=\"nofollow noopener\" target=\"_blank\">Day 2: Speech-to-text with Whisper: timestamping, streaming, and parallelism, oh-my!</a></li><li><a href=\"https://news.livebook.dev/introducing-file-integration---launch-week-2---day-3-2HoFfa\" rel=\"noopener noreferrer\" target=\"_blank\">Day 3: Introducing File Integration</a></li><li><a href=\"https://news.livebook.dev/integration-with-snowflake-and-microsoft-sql-server---launch-week-2---day-4-2o4z9C\" rel=\"noopener noreferrer\" target=\"_blank\">Day 4: Integration with SnowFlake and Microsoft SQL Server</a></li></ul><p><span style=\"text-align:start;\">And if you want to discover everything that was added/changed in this release, here’s </span><a href=\"https://github.com/livebook-dev/livebook/blob/v0.11/CHANGELOG.md\" rel=\"noopener noreferrer\" target=\"_blank\">the changelog</a><span style=\"text-align:start;\">.</span></p>",
            "url": "https://news.livebook.dev/vim-and-emacs-key-bindings---launch-week-2---day-5-VfcA0",
            "title": "Vim and Emacs key bindings - Launch Week 2 - Day 5",
            "summary": "Vim and Emacs users can now use their favorite keybindings in Livebook. See our latest update for activation instructions.",
            "date_modified": "2023-10-13T13:40:11.000Z",
            "tags": [
                "releases",
                "launch week"
            ]
        },
        {
            "id": "354946",
            "content_html": "<p><span>Welcome to the 4th day of Livebook Launch Week 2! 🎉</span></p><p><span>Today’s post is about our two new database integrations: Snowflake and SQL Server.</span></p><p><span>Together with those new ones, Livebook now comes with </span><a href=\"https://livebook.dev/integrations/?type=database\" rel=\"noopener noreferrer\" target=\"_blank\"><span>built-in integrations for seven databases and data warehouses</span></a><span>:</span></p><ul><li><span>PostgreSQL</span></li><li><span>MySQL</span></li><li><span>SQL Server</span></li><li><span>SQLite</span></li><li><span>Google BigQuery</span></li><li><span>Amazon Athena</span></li><li><span>Snowflake</span></li></ul><p><span>Let’s see how the new integrations work.</span></p><h2><a href=\"https://hackmd.io/baHmWGWVTU-7wDN-8aku-Q#Connecting-to-Snowflake\" target=\"_blank\"></a><span>Connecting to Snowflake</span></h2><p><span>The Snowflake integration is available through the Database Connection Smart cell. All you need to do is configure the Smart cell with your connection credentials, and you’ll be ready to start executing queries.</span></p><p><span>Let’s see how that works.</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/P00ziSSXnEk?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/P00ziSSXnEk/maxresdefault.jpg\" data-embed-signature=\"1DMWMX7Fct9pD3NMiEgB6EtmvNRLHxmcMbKyVISoDlZ\" data-embed-url=\"https://www.youtube.com/watch?v=P00ziSSXnEk\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/P00ziSSXnEk?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><span>Under the hood, this is different from the other database integrations we already have. Livebook connects to Snowflake through ADBC (Arrow Database Connectivity), using the </span><a href=\"https://github.com/elixir-explorer/adbc\" rel=\"noopener\" target=\"_blank\"><span>ADBC hex package</span></a><span>, which contains ADBC bindings for Elixir.</span></p><p><span>The Arrow format is highly efficient, and it’s also integrated with Explorer, so now you can easily </span><a href=\"https://hexdocs.pm/explorer/Explorer.DataFrame.html#from_query/4\" rel=\"noopener\" target=\"_blank\"><span>query a database and load the result into an Explorer dataframe</span></a><span>.</span></p><p><span>Good news for those of us doing data analysis with Elixir and Livebook. 🎉</span></p><h2><span>Connecting to Microsoft SQL Server</span></h2><p><span>Connecting to SQL Server is also super simple. All you need to do is add a new Database Connection Smart cell, select SQL Server, and fill in your database credentials.</span></p><p><span>Here’s how it works.</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/Cl8YhlMgVsk?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/Cl8YhlMgVsk/maxresdefault.jpg\" data-embed-signature=\"GZW0YQHdcPAdFVXn58wIriYZtEptxkLSUcj6p7DNUz1\" data-embed-url=\"https://www.youtube.com/watch?v=Cl8YhlMgVsk\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/Cl8YhlMgVsk?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><span>This was a community contribution from </span><a href=\"https://github.com/simonmcconnell\" rel=\"noopener\" target=\"_blank\"><span>Simon McConnell</span></a><span>. Curious fact: the </span><a href=\"https://github.com/livebook-dev/kino_db/pull/65\" rel=\"noopener\" target=\"_blank\"><span>pull request</span></a><span> contains less than 250 LOC! Cool, right?! 😎</span></p><h2><a href=\"https://hackmd.io/baHmWGWVTU-7wDN-8aku-Q?view#What-now\" target=\"_blank\"></a><span>What now?</span></h2><p><span>To start playing with those new features, </span><a href=\"https://livebook.dev/#install\" rel=\"noopener\" target=\"_blank\"><span>install the latest version of Livebook</span></a><span> and have fun!</span></p><h2><a href=\"https://hackmd.io/baHmWGWVTU-7wDN-8aku-Q?view#More-of-Launch-Week-2\" target=\"_blank\"></a><span>More of Launch Week 2</span></h2><ul><li><a href=\"https://news.livebook.dev/remote-execution-smart-cell---launch-week-2---day-1-m3dv2\" rel=\"nofollow noopener\" target=\"_blank\">Day 1: Remote execution Smart cell</a><a href=\"https://news.livebook.dev/speech-to-text-with-whisper-timestamping-streaming-and-parallelism-oh-my---launch-week-2---day-2-36osSY\" rel=\"nofollow noopener\" target=\"_blank\"></a><a href=\"https://news.livebook.dev/speech-to-text-with-whisper-timestamping-streaming-and-parallelism-oh-my---launch-week-2---day-2-36osSY\" rel=\"noopener noreferrer\" target=\"_blank\"></a></li><li><a href=\"https://news.livebook.dev/speech-to-text-with-whisper-timestamping-streaming-and-parallelism-oh-my---launch-week-2---day-2-36osSY\" rel=\"noopener noreferrer\" target=\"_blank\">Day 2: Speech-to-text with Whisper: timestamping, streaming, and parallelism, oh-my!</a><a href=\"https://news.livebook.dev/\" rel=\"noopener noreferrer\" target=\"_blank\"></a></li><li><a href=\"https://news.livebook.dev/introducing-file-integration---launch-week-2---day-3-2HoFfa\" rel=\"noopener noreferrer\" target=\"_blank\">Day 3: Introducing File Integration</a></li><li><a href=\"https://news.livebook.dev/vim-and-emacs-key-bindings---launch-week-2---day-5-VfcA0\" rel=\"noopener noreferrer\" target=\"_blank\">Day 5: Vim and Emacs key bindings</a></li></ul>",
            "url": "https://news.livebook.dev/integration-with-snowflake-and-microsoft-sql-server---launch-week-2---day-4-2o4z9C",
            "title": "Integration with Snowflake and Microsoft SQL Server - Launch Week 2 - Day 4",
            "summary": "Explore Livebook's new database integrations with Snowflake and Microsoft SQL Server. Learn how to connect and execute queries using the Database Connection and SQL Query Smart cells.",
            "date_modified": "2023-10-12T12:48:39.275Z",
            "tags": [
                "releases",
                "launch week"
            ]
        },
        {
            "id": "356243",
            "content_html": "<p><span>Welcome to the 3rd day of Livebook Launch Week 2! 🎉</span></p><p><span>Today, we’re excited to announce Livebook v0.11’s most prominent feature, file integration.</span></p><p><span>Although file integration may not sound exciting at first glance, bear with us; we have some elegant features to show.</span></p><p><span>Imagine code generation when you drag and drop a file based on the file type. Or quickly do a lazy reading of a multiple gigabyte parquet file stored in S3. That’s what we’re talking about! 😎</span></p><p><span>Watch the video where José Valim shows a demo of what this feature can do.</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/ICsZVUHZ8PQ?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/ICsZVUHZ8PQ/maxresdefault.jpg\" data-embed-signature=\"czE5GlzU1y89h6deh0eImIhwtWAyCPOoh3m5bViv5Cn\" data-embed-url=\"https://www.youtube.com/watch?v=ICsZVUHZ8PQ\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/ICsZVUHZ8PQ?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><h2><br /></h2><h2><span>Why?</span></h2><p><span>Throughout the last releases, we have been improving how Livebook helps to work with data.</span></p><p><span>Data comes from different sources. One common source is a database, which </span><a href=\"https://livebook.dev/integrations/?type=database\" rel=\"noopener\" target=\"_blank\"><span>Livebook already has good support for</span></a><span>. Another source is a file, either on your machine or on S3, which Livebook hasn’t natively integrated with yet.</span></p><p><span>Don’t get us wrong, you could already write some Elixir code in your notebook that reads a file from the file system or the web. But the Livebook UI had no understanding of it. And that’s what changed in this release.</span></p><h2><a href=\"https://hackmd.io/eP92oP5zSO6ZryureDG_NA?view#What%E2%80%99s-the-Livebook-file-integration\" target=\"_blank\"></a><span>What’s the Livebook file integration?</span></h2><p><span>The concept is simple. When you’re editing a notebook, you can add a file to it. All files are listed in the sidebar, so everyone using your notebook can quickly glance at your file dependencies. Once you do that, Livebook exposes an API for your notebook to read that file via the </span><code>Kino.FS</code><span> module.</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/P1xl6U16HV4?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/P1xl6U16HV4/maxresdefault.jpg\" data-embed-signature=\"CqL4Gfmgv4pq3kRmPd72tlCkqEUtmUtNKtoiWsH3dWh\" data-embed-url=\"https://www.youtube.com/watch?v=P1xl6U16HV4\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/P1xl6U16HV4?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><span>But that’s not the only thing. Now that Livebook natively understands files, it can offer code suggestions based on the file type.</span></p><p><span>For example, when you drag and drop a CSV file to Livebook, it can generate code that creates an Explorer Dataframe from that data:</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/IyD0S3K5j34?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/IyD0S3K5j34/maxresdefault.jpg\" data-embed-signature=\"cPOD5qDd28Wq8l4yxxrLpsZXP70L6OupzcdYdINxlst\" data-embed-url=\"https://www.youtube.com/watch?v=IyD0S3K5j34\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/IyD0S3K5j34?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><span style=\"text-align:start;\">Or when you drag and drop a SQLite database file, Livebook can generate code that describes that database:</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/jQ6OwqLvKrk?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/jQ6OwqLvKrk/maxresdefault.jpg\" data-embed-signature=\"4rIna0XnaTlB6DEuNlPIV6ZNrzHWVCUuuzNqkEcNSgA\" data-embed-url=\"https://www.youtube.com/watch?v=jQ6OwqLvKrk\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/jQ6OwqLvKrk?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><span style=\"text-align:start;\">Or when you drag and drop an audio file, Livebook can generate code that uses a Machine Learning model to generate a transcription for you:</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/geZ6MCw3Ak4?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/geZ6MCw3Ak4/maxresdefault.jpg\" data-embed-signature=\"rJ4W6KPfIi8ieXB4mq1G01xJp26TYLEJdmlO0RjdZEE\" data-embed-url=\"https://www.youtube.com/watch?v=geZ6MCw3Ak4\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/geZ6MCw3Ak4?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><span>One thing you’ll notice in common with all those drag-and-drop examples is that Livebook doesn’t automatically execute the code. Instead, it emits the code and allows you to run it yourself.</span></p><p><span>This may look like a small detail, but it’s part of our vision for Livebook. We don’t want it to be a magic box that executes some task behind the scenes that you can’t know what it is. We want to enable you to introspect the code, learn from it, and customize it to your needs.</span></p><p><span>We took that approach with </span><a href=\"https://news.livebook.dev/v0.6-automate-and-learn-with-smart-cells-mxJJe\" rel=\"noopener\" target=\"_blank\"><span>Smart cells</span></a><span>. And that’s the approach we’re continuing to apply.</span></p><h2><a href=\"https://hackmd.io/eP92oP5zSO6ZryureDG_NA?view#File-references-and-file-attachments\" target=\"_blank\"></a><span>File references and file attachments</span></h2><p><span>When you start adding files to your notebook, you’ll notice that there are two types of files: References and Attachments.</span></p><p><span>References are files that point to existing resources on your disk, a remote storage, or a URL. It’s like a symbolic link; Livebook doesn’t store the file, it just has a pointer to it.</span></p><p><span>Attachments are different. They are files stored in the </span><code>files/</code><span> directory alongside your notebook source. So, a file attachment will be kept wherever you save your notebook.</span></p><p><span>So, if you’re storing a file in an S3-compatible cloud service, in a web server, or if you want to save it and version it alongside your notebook source, Livebook has you covered.</span></p><h2><a href=\"https://hackmd.io/eP92oP5zSO6ZryureDG_NA?view#Lazy-data-reading-and-manipulation\" target=\"_blank\"></a><span>Lazy data reading and manipulation</span></h2><p><span>When you have a dataset with multiple gigabytes of data, you don’t want to load all of it at once to the memory. A common approach for that is lazy loading the data. And this new Livebook release supports that workflow as well.</span></p><p><span>For example, let’s say your dataset is stored as a Parquet file in S3. When you add that file to your notebook, Livebook will give the option to load that data into a dataframe lazily:</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/wJ2jplkNRQ4?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/wJ2jplkNRQ4/maxresdefault.jpg\" data-embed-signature=\"BdC3knA8iVhGfvocBp1xAEyBr9R4AVJkOB0fnct8clr\" data-embed-url=\"https://www.youtube.com/watch?v=wJ2jplkNRQ4\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/wJ2jplkNRQ4?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><span style=\"text-align:start;\">Not only that, but you can also lazily manipulate that data:</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/txVN10gmxxU?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/txVN10gmxxU/maxresdefault.jpg\" data-embed-signature=\"LQuRkZuxShtEix1g1GOXaFcHSmzT9J75GAEpF7QRt66\" data-embed-url=\"https://www.youtube.com/watch?v=txVN10gmxxU\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/txVN10gmxxU?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><span style=\"text-align:start;\">When needed, Livebook will download all the data, like when plotting a chart based on the data or when exporting it after some data wrangling:</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/zvAo_m1stg0?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/zvAo_m1stg0/maxresdefault.jpg\" data-embed-signature=\"Bebi49eqPpCLjCPfn1dodoQ9BtPvkZqtTJnqdNwQs9C\" data-embed-url=\"https://www.youtube.com/watch?v=zvAo_m1stg0\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/zvAo_m1stg0?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><div><div><p><br /></p><p><span>All that means is now more than ever, you can use Livebook for work with multiple gigabytes of data without needing a machine with dozens of gigabytes of memory.</span></p><h2><a href=\"https://hackmd.io/eP92oP5zSO6ZryureDG_NA?view#What-now\" target=\"_blank\"></a><span>What now?</span></h2><p><span>Ready to take the new Livebook for a spin?</span></p><p><a href=\"https://livebook.dev/#install\" rel=\"noopener\" target=\"_blank\"><span>Install the latest version</span></a><span>, drop </span><a href=\"https://github.com/hugobarauna/livebook-notebooks/tree/main/launch_week_2\" rel=\"noopener\" target=\"_blank\"><span>one of those files into</span></a><span> a notebook, and see what happens!</span></p><h2><a href=\"https://hackmd.io/eP92oP5zSO6ZryureDG_NA?view#More-of-Launch-Week-2\" target=\"_blank\"></a><span>More of Launch Week 2</span></h2><ul><li><a href=\"https://news.livebook.dev/remote-execution-smart-cell---launch-week-2---day-1-m3dv2\" rel=\"nofollow noopener\" target=\"_blank\">Day 1: Remote execution Smart cell</a><a href=\"https://news.livebook.dev/speech-to-text-with-whisper-timestamping-streaming-and-parallelism-oh-my---launch-week-2---day-2-36osSY\" rel=\"nofollow noopener\" target=\"_blank\"></a></li><li><a href=\"https://news.livebook.dev/speech-to-text-with-whisper-timestamping-streaming-and-parallelism-oh-my---launch-week-2---day-2-36osSY\" rel=\"nofollow noopener\" target=\"_blank\">Day 2: Speech-to-text with Whisper: timestamping, streaming, and parallelism, oh-my!</a></li><li><a href=\"https://news.livebook.dev/integration-with-snowflake-and-microsoft-sql-server---launch-week-2---day-4-2o4z9C\" rel=\"noopener noreferrer\" target=\"_blank\">Day 4: Integration with SnowFlake and Microsoft SQL Server</a></li><li><a href=\"https://news.livebook.dev/vim-and-emacs-key-bindings---launch-week-2---day-5-VfcA0\" rel=\"noopener noreferrer\" target=\"_blank\">Day 5: Vim and Emacs key bindings</a></li></ul></div></div>",
            "url": "https://news.livebook.dev/introducing-file-integration---launch-week-2---day-3-2HoFfa",
            "title": "Introducing File Integration - Launch Week 2 - Day 3",
            "summary": "Introducing Livebook v0.11 with file integration—drag and drop files for instant code generation, lazy read large datasets, and more. Explore now!",
            "date_modified": "2023-10-11T13:38:45.576Z",
            "tags": [
                "releases",
                "launch week"
            ]
        },
        {
            "id": "357289",
            "content_html": "<p><span>When we </span><a href=\"https://news.livebook.dev/announcing-bumblebee-gpt2-stable-diffusion-and-more-in-elixir-3Op73O\" rel=\"noopener\" target=\"_blank\"><span>announced Bumblebee</span></a><span>, a collection of pre-trained models inspired by Hugging Face Transformers, the Whisper speech-to-text model quickly became one of the favorite and most used models within the Elixir community.</span></p><p><span>Thanks to advancements in the overall </span><a href=\"https://github.com/elixir-nx\" rel=\"noopener\" target=\"_blank\"><span>Numerical Elixir ecosystem</span></a><span>, Livebook v0.11 includes a highly improved integration with Whisper, which we will detail in this article.</span></p><p><span>If you want to skip ahead and give it a try, </span><a href=\"https://livebook.dev/#install\" rel=\"noopener\" target=\"_blank\"><span>install Livebook</span></a><span> and start a new notebook. Then click “+ Smart cell” and choose “Neural Network task.” You will find Whisper as Speech-to-text under Audio.</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/w7WMEh2JB0o?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/w7WMEh2JB0o/maxresdefault.jpg\" data-embed-signature=\"9J3M8rsR7p0bl5yl9z7soSaTMPdBjWO9IVpGbCGDUM6\" data-embed-url=\"https://www.youtube.com/watch?v=w7WMEh2JB0o\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/w7WMEh2JB0o?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><h2><br /></h2><h2><span>New features</span></h2><p><span>There are three new features in our Whisper integration:</span></p><ol><li><span>Timestamping: we now include timestamps on audio segments.</span></li><li><span>Streaming: our previous version of Whisper was limited to 30 seconds of audio, leaving it up to users to break their audio apart. This new version is capable of streaming both inputs and outputs. You can give arbitrarily long files to the model, which will be streamed as input, and the model will proceed to merge and stream transcriptions as they arrive.</span></li><li><span>Parallelism: in addition to streaming, files with more than 30 seconds will be split and batched according to the Neural Network batch size. For example, with a batch size of 10, up to 5 minutes of audio can be processed in parallel. Thanks to this, we expect our models to perform inference an order of magnitude faster compared to Open AI’s implementation when transcribing larger files on the GPU.</span></li></ol><p><span>Of course, all of those features work together, providing a delightful experience as you can see below, where we transcribe on the fly one of </span><a href=\"https://podcast.thinkingelixir.com/46\" rel=\"noopener\" target=\"_blank\"><span>Thinking Elixir episodes</span></a><span>:</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/HK38-HIK6NA?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/HK38-HIK6NA/sddefault.jpg\" data-embed-signature=\"w0ZCL4z3kReAPKK2bPR3M9LvOwPLeuCogPcf2hnnmGl\" data-embed-url=\"https://www.youtube.com/watch?v=HK38-HIK6NA\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/HK38-HIK6NA?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><span>When you combine the features above with </span><a href=\"https://news.livebook.dev/distributed2-machine-learning-notebooks-with-elixir-and-livebook---launch-week-1---day-2-1aIlaw\" rel=\"noopener\" target=\"_blank\"><span>Nx’s ability to run neural networks distributed across multiple machines and GPUs</span></a><span>, Elixir developers now have a first-class, state-of-the-art, speech-to-text model ready to run, enjoy, and scale.</span></p><h2><a href=\"https://hackmd.io/JI7xyYlDTSerYG8VrHjRUQ#What-now\" target=\"_blank\"></a><span>What now?</span></h2><p><span>Try for yourself!</span></p><p><span>Transcribe an audio file using our built-in Neural Network Task Smart cell. Maybe start with a </span><a href=\"https://github.com/hugobarauna/livebook-notebooks/blob/main/launch_week_2/live.m4a\" rel=\"noopener\" target=\"_blank\"><span>small file</span></a><span> to quickly see the result. Then you can try a </span><a href=\"https://podcast.thinkingelixir.com/46\" rel=\"noopener\" target=\"_blank\"><span>bigger one</span></a><span>.</span></p><p><a href=\"https://livebook.dev/#install\" rel=\"noopener\" target=\"_blank\"><span>Download the latest Livebook version</span></a><span> and have fun!</span></p><h2><span>More of Launch Week 2</span></h2><ul><li><a href=\"https://news.livebook.dev/remote-execution-smart-cell---launch-week-2---day-1-m3dv2\" rel=\"noopener noreferrer\" target=\"_blank\"><span>Day 1: Remote execution Smart cell</span></a></li><li><a href=\"https://news.livebook.dev/introducing-file-integration---launch-week-2---day-3-2HoFfa\" rel=\"noopener noreferrer\" target=\"_blank\">Day 3: Introducing File Integration</a></li><li><a href=\"https://news.livebook.dev/integration-with-snowflake-and-microsoft-sql-server---launch-week-2---day-4-2o4z9C\" rel=\"noopener noreferrer\" target=\"_blank\">Day 4: Integration with SnowFlake and Microsoft SQL Server</a></li><li><a href=\"https://news.livebook.dev/vim-and-emacs-key-bindings---launch-week-2---day-5-VfcA0\" rel=\"noopener noreferrer\" target=\"_blank\">Day 5: Vim and Emacs key bindings</a></li></ul>",
            "url": "https://news.livebook.dev/speech-to-text-with-whisper-timestamping-streaming-and-parallelism-oh-my---launch-week-2---day-2-36osSY",
            "title": "Speech-to-text with Whisper: timestamping, streaming, and parallelism, oh-my! - Launch Week 2 - Day 2",
            "summary": "Explore the improved Whisper integration with Livebook v0.11. Features include real-time streaming, audio timestamping, and faster processing.",
            "date_modified": "2023-10-10T12:09:09.000Z",
            "tags": [
                "releases",
                "launch week"
            ]
        },
        {
            "id": "355347",
            "content_html": "<p><span>Welcome to the second Livebook Launch Week! 🎉</span></p><p><span>If this is your first Launch Week with us, let us explain how this works. Starting today, each day of this week, we’ll announce a new feature of this release, Livebook v0.11.</span></p><p><span>Today, we’ll discuss our newest built-in Smart cell: Remote execution.</span></p><h2><a href=\"https://hackmd.io/HxEEbbRATkO739Lze3qtwQ?view#Calling-code-from-other-nodes-before-the-new-Smart-cell\" target=\"_blank\"></a><span>Calling code from other nodes before the new Smart cell</span></h2><p><span>Livebook is a multi-purpose tool. And two of the most common use cases we’ve been seeing are debugging and internal tools.</span></p><p><span>A common requirement for both use cases is to write code that calls functions from a remote node, probably your main Elixir app in the production environment.</span></p><p><span>One way to do that is by connecting your notebook to the other node using the “Attached node” runtime:</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/vPrFBjgAMyM?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/vPrFBjgAMyM/maxresdefault.jpg\" data-embed-signature=\"SXKCue3DkSORhem30tXXHaFNd1DUsJhQ7BOA1GIIAc\" data-embed-url=\"https://www.youtube.com/watch?v=vPrFBjgAMyM\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/vPrFBjgAMyM?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><span>That said, that approach has a limitation. When you use it, all of the code in your notebook will run in the context of that remote node. So, you can’t add Mix dependencies to your notebook, like VegaLite for charts or Kino for user interactions.</span></p><p><span>The other way we have to run remote functions is by using the default runtime (Elixir standalone) and using the </span><code>erpc</code><span> Erlang module, like this:</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/-5cuGNXTbzs?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/-5cuGNXTbzs/maxresdefault.jpg\" data-embed-signature=\"cIDCkhJtIcNzIXaXYoWi8x3HR6obWqTCfQ0HOZCMWEY\" data-embed-url=\"https://www.youtube.com/watch?v=-5cuGNXTbzs\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/-5cuGNXTbzs?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><span>But, we noticed people have been using the “Attached node” by default when calling a function from a remote node, even when they need to add dependencies to their notebook. That’s a problem because although the “Attached node” setting is powerful for debugging, we believe that most of the time you need to interact with a remote node, you should use the erpc approach.</span></p><p><span>So, we decided to make the erpc approach a first-class citizen in Livebook. It’s now available as a new Smart cell that will streamline the process of calling functions from another node.</span></p><h2><a href=\"https://hackmd.io/HxEEbbRATkO739Lze3qtwQ?view#Calling-code-from-other-nodes-using-the-Remote-execution-Smart-cell\" target=\"_blank\"></a><span>Calling code from other nodes using the Remote execution Smart cell</span></h2><p><span>Here’s how the new Smart cell works:</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/I6YJs_ZYijc?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/I6YJs_ZYijc/maxresdefault.jpg\" data-embed-signature=\"2oWk5nAFxBh1uTfq7M6zcGK5S4U3VMNt9QTYkJuBgXy\" data-embed-url=\"https://www.youtube.com/watch?v=I6YJs_ZYijc\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/I6YJs_ZYijc?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><span>As with any other Smart cell, one of the things it helps with is generating boilerplate code for you. There is no need to write the code that connects your notebook to a remote node over and over again.</span></p><p><span>But it goes beyond that.</span></p><p><span>The Smart cell can store the remote node’s cookie as a Livebook secret, so you don’t need to hardcode sensitive values inside your notebook. And with the upcoming </span><a href=\"https://livebook.dev/teams\" rel=\"noopener\" target=\"_blank\"><span>Livebook Teams</span></a><span>, it will be easy to share this secret with everyone on the team in a secure manner.</span></p><p><span>Last, this new Smart cell gives you autocompletion and docs preview of the modules defined in the remote node! Isn’t that awesome?! 🤯</span></p><p><span>We hope this feature will simplify the development of internal tools that need to communicate with existing nodes.</span></p><p><span>As an example, here’s a video showing how to use the new feature to connect a Livebook notebook to a Phoenix app, get some data from it, display a chart with those metrics, and share that as an interactive Livebook app:</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/Q0aNR2apKv8?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/Q0aNR2apKv8/maxresdefault.jpg\" data-embed-signature=\"zcJnCyLlBkeMFGkvNdlEy83QpBNWuMsaV0CEyuDaN8K\" data-embed-url=\"https://www.youtube.com/watch?v=Q0aNR2apKv8\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/Q0aNR2apKv8?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><br /></p><h2><span>What now?</span></h2><p><span>All of the new features of this new release are already available today!</span></p><p><span>To start playing with them, </span><a href=\"https://livebook.dev/#install\" rel=\"noopener\" target=\"_blank\"><span>install the latest version</span></a><span> of Livebook and have fun!</span></p><h2><span>More of Launch Week 2</span></h2><ul><li><a href=\"https://news.livebook.dev/speech-to-text-with-whisper-timestamping-streaming-and-parallelism-oh-my---launch-week-2---day-2-36osSY\" rel=\"noopener noreferrer\" target=\"_blank\"><span>Day 2: Speech-to-text with Whisper: timestamping, streaming, and parallelism, oh-my!</span></a></li><li><a href=\"https://news.livebook.dev/introducing-file-integration---launch-week-2---day-3-2HoFfa\" rel=\"noopener noreferrer\" target=\"_blank\"><span>Day 3: Introducing File Integration</span></a></li><li><a href=\"https://news.livebook.dev/integration-with-snowflake-and-microsoft-sql-server---launch-week-2---day-4-2o4z9C\" rel=\"noopener noreferrer\" target=\"_blank\"><span>Day 4: Integration with SnowFlake and Microsoft SQL Server</span></a></li><li><a href=\"https://news.livebook.dev/vim-and-emacs-key-bindings---launch-week-2---day-5-VfcA0\" rel=\"noopener noreferrer\" target=\"_blank\">Day 5: Vim and Emacs key bindings</a></li></ul>",
            "url": "https://news.livebook.dev/remote-execution-smart-cell---launch-week-2---day-1-m3dv2",
            "title": "Remote execution Smart cell - Launch Week 2 - Day 1",
            "summary": "Introducing Remote Execution Smart cell in Livebook v0.11. Run functions on remote nodes effortlessly.",
            "date_modified": "2023-10-09T17:18:29.002Z",
            "tags": [
                "releases",
                "launch week"
            ]
        },
        {
            "id": "352271",
            "content_html": "<p><span>We’re happy to announce that we’re sponsoring </span><a href=\"https://spawnfest.org/?ref=livebook\" rel=\"noopener\" target=\"_blank\"><span>Spawnfest</span></a><span> for the second time!</span></p><p><span>SpawnFest is an annual 48-hour online software development contest in which teams worldwide get one weekend to create the best BEAM-based applications they can.</span></p><p><span>We are collaborating with them again to create a bracket of the event dedicated to Livebook projects. Last year, most of the entries involved Kino and Smart Cells, but this year we are changing things up. Our Spawnfest bracket this year will focus on </span><strong><span>Livebook Apps</span></strong><span>.</span></p><p><span>Livebook Apps is a </span><a href=\"https://news.livebook.dev/deploy-notebooks-as-apps-quality-of-life-upgrades---launch-week-1---day-1-2OTEWI\" rel=\"noopener\" target=\"_blank\"><span>feature we launched earlier this year</span></a><span> that enables you to turn your notebook into an interactive web application.</span></p><h2><a href=\"https://hackmd.io/qQr6Rok3Rf6_toMBKaFCyg#What-you-can-build-with-Livebook-Apps\" target=\"_blank\"></a><span>What you can build with Livebook Apps</span></h2><p><span>Since Livebook is a general-purpose tool, there aren’t many constraints on what you can build with Livebook Apps. So, it’s up to your imagination. But here are some examples to give you some inspiration.</span></p><h3><a href=\"https://hackmd.io/qQr6Rok3Rf6_toMBKaFCyg#A-multi-user-real-time-app\" target=\"_blank\"></a><span>A multi-user real-time app</span></h3><p><span>Livebook comes with real-time collaboration out of the box. You can use that power in your Livebook apps as well.</span></p><p><span>Here’s a video showing how to build a chat app.</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/q7T6ue7cw1Q?rel=0&amp;start=181&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/q7T6ue7cw1Q/maxresdefault.jpg\" data-embed-signature=\"rIkcAtBhG9kG45kE49Srbsyp9hbAfMQkf3OON7n9Ufn\" data-embed-url=\"https://www.youtube.com/watch?v=q7T6ue7cw1Q\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/q7T6ue7cw1Q?rel=0&amp;start=181\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><h3><br /></h3><h3><span>A machine learning app</span></h3><p><span>Livebook </span><a href=\"https://livebook.dev/integrations/hugging-face/\" rel=\"noopener\" target=\"_blank\"><span>integrates with Hugging Face</span></a><span> to bring you pre-trained models and helps you to use them with just a few clicks.</span></p><p><span>Here’s a video showing how to build an app that uses the Whisper machine learning model to transcribe audio messages in a chat.</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/uyVRPEXOqzw?rel=0&amp;start=57&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/uyVRPEXOqzw/maxresdefault.jpg\" data-embed-signature=\"a8sUM4auXDj07nDpUdQYxwF6q0HyhEOhtAjjTLCvfjC\" data-embed-url=\"https://www.youtube.com/watch?v=uyVRPEXOqzw\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/uyVRPEXOqzw?rel=0&amp;start=57\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><br /></p><h3><a href=\"https://hackmd.io/qQr6Rok3Rf6_toMBKaFCyg#A-data-visualization-app\" target=\"_blank\"></a><span>A data visualization app</span></h3><p><span>Livebook </span><a href=\"https://livebook.dev/integrations/vega-lite/\" rel=\"noopener\" target=\"_blank\"><span>integrates with Vegalite</span></a><span> and </span><a href=\"https://livebook.dev/integrations/maplibre/\" rel=\"noopener\" target=\"_blank\"><span>Maplibre</span></a><span> to make it super easy to build lots of different kinds of data visualization.</span></p><p><span>Here’s an example of an app that plots a chart with the number of stars a Github project got over time.</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/opH-3K1Z9sQ?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/opH-3K1Z9sQ/maxresdefault.jpg\" data-embed-signature=\"e7swTZb6VR2dBZcQfsrcclFI0NBnQacin6WOdilcCVv\" data-embed-url=\"https://www.youtube.com/watch?v=opH-3K1Z9sQ\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/opH-3K1Z9sQ?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><span>This app is deployed, so you can </span><a href=\"https://hugobarauna-livebook.hf.space/apps/github-stars/76zaly3wjkfo67p5iqmxaicmum5a5ampdpsmywft\" rel=\"noopener\" target=\"_blank\"><span>try it live</span></a><span>. And here is the </span><a href=\"https://huggingface.co/spaces/hugobarauna/livebook/blob/main/public-apps/github_stars.livemd\" rel=\"noopener\" target=\"_blank\"><span>source code</span></a><span>.</span></p><h3><a href=\"https://hackmd.io/qQr6Rok3Rf6_toMBKaFCyg#A-workflow-automation-app\" target=\"_blank\"></a><span>A workflow automation app</span></h3><p><span>One month ago, we expanded Livebook Apps with a feature called </span><a href=\"https://news.livebook.dev/whats-new-in-livebook-0.10---introducing-multi-session-livebook-apps-3Dbpss\" rel=\"noopener\" target=\"_blank\"><span>Multi-Session Livebook Apps</span></a><span>. We believe that this new feature is excellent for the automation of technical and business workflows.</span></p><p><span>You can think of it as a way to transform a script into a UI and share that with others by just sharing an URL.</span></p><p><span>Here’s a video showing how to build an app that gets data from Github’s API, generates a report, and sends it to a Slack channel.</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/dSjryA1iFng?rel=0&amp;start=130&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/dSjryA1iFng/maxresdefault.jpg\" data-embed-signature=\"yCtJfc2OrhixCFOGqfZzpWgFnhpz0bO3F6mGEXmtD2v\" data-embed-url=\"https://www.youtube.com/watch?v=dSjryA1iFng\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/dSjryA1iFng?rel=0&amp;start=130\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><br /></p><h2><span>How to deploy a Livebook App</span></h2><p><span>Livebook Apps run inside a Livebook instance. So, you can run them in any Livebook installation, be it in the localhost or the cloud.</span></p><p><span>One of the easiest ways to install Livebook in the cloud is using Docker. Let’s see two examples of deploying a Livebook App this way.</span></p><h3><a href=\"https://hackmd.io/qQr6Rok3Rf6_toMBKaFCyg#How-to-deploy-a-Livebook-App-to-Flyio\" target=\"_blank\"></a><span>How to deploy a Livebook App to </span><a href=\"http://fly.io/\" rel=\"noopener\" target=\"_blank\"><span>Fly.io</span></a></h3><p><span>First, make sure you have </span><a href=\"https://fly.io/docs/hands-on/install-flyctl/\" rel=\"noopener\" target=\"_blank\"><span>Fly’s command-line installed</span></a><span> on your machine.</span></p><p><span>Now, clone the following template repo:</span></p><pre><code>git clone https://github.com/hugobarauna/livebook-apps-on-fly-template.git my-livebook-apps\n</code></pre><p><span>Add a file with the source code of your Liveobok App to the </span><code>public-apps/</code><span> directory of your repository.</span></p><p><span>Then, follow Fly’s instructions to </span><a href=\"https://fly.io/docs/languages-and-frameworks/dockerfile/\" rel=\"noopener\" target=\"_blank\"><span>Deploy via Dockerfile</span></a><span>.</span></p><p><span>After that, Livebook and your Livebook App will be running inside Fly.</span></p><p><span>Here’s a video showing how that works.</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/z-hkN12VFyo?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/z-hkN12VFyo/maxresdefault.jpg\" data-embed-signature=\"tX0VXzwdjqp8ZxunmT4lYmw6En2Q5OBJncptFvbbQx9\" data-embed-url=\"https://www.youtube.com/watch?v=z-hkN12VFyo\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/z-hkN12VFyo?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><h3><br /></h3><h3><span>How to deploy a Livebook App to Hugging Face</span></h3><p><span>To deploy a Livebook App to Hugging Face, we’ll use Hugging Face Docker Spaces.</span></p><p><span>First, install Livebook on Hugging Face by </span><a href=\"https://huggingface.co/docs/hub/spaces-sdks-docker-livebook#your-first-livebook-space\" rel=\"noopener\" target=\"_blank\"><span>following these instructions</span></a><span>.</span></p><p><span>Second, add a file with the source code of your Liveobok App to the </span><code>public-apps/</code><span> directory of your Space and make a commit.</span></p><p><span>After that, Hugging Face will rebuild your Space, and your Livebook app will be deployed.</span></p><p><span>Here’s a video showing how that works.</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/_wMh7CxUjsc?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/_wMh7CxUjsc/maxresdefault.jpg\" data-embed-signature=\"bCgEKsYB5XShIvDkykBK0hfAYKTXvnArbcFHEvIAcEU\" data-embed-url=\"https://www.youtube.com/watch?v=_wMh7CxUjsc\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/_wMh7CxUjsc?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><h2><br /></h2><h2><span>How to participate in Spawnfest</span></h2><p><span>Participation in SpawnFest is 100% free of charge. To register, </span><a href=\"https://spawnfest.org/\" rel=\"noopener\" target=\"_blank\"><span>go to their website</span></a><span> and follow the instructions.</span></p><p><span>We’re looking forward to seeing what you will build with Livebook Apps!</span></p>",
            "url": "https://news.livebook.dev/livebook-is-sponsoring-spawnfest-again-hskPC",
            "title": "Livebook is sponsoring SpawnFest again",
            "summary": "Join Spawnfest, the 48-hour BEAM-based app contest, build a Livebook App and have fun.",
            "date_modified": "2023-08-16T13:30:18.775Z",
            "tags": [
                "announcements"
            ]
        },
        {
            "id": "349382",
            "content_html": "<p><span>Today we’re launching Livebook 0.10! 🎉</span></p><p><span>This major update brings many exciting features, with the spotlight being the introduction of multi-session Livebook apps.</span></p><p><span>We’ve also added a presentation view, initial Erlang support, Live Doctests, and d<span style=\"text-align:left;\">ataframe file export</span>. Let’s dive in and explore these new features.</span></p><h2><a href=\"https://hackmd.io/SlDRlEv9RTibUWYe_wOuig?view#Multi-Session-Livebook-Apps\" target=\"_blank\"></a><span>Multi-Session Livebook Apps</span></h2><p><a href=\"https://news.livebook.dev/deploy-notebooks-as-apps-quality-of-life-upgrades---launch-week-1---day-1-2OTEWI\" rel=\"noopener\" target=\"_blank\"><span>Livebook 0.9 introduced Livebook apps</span></a><span>. This is a way to turn your notebook into an interactive web application. Now, we’re expanding that further.</span></p><p><span>Initially, Livebook Apps was designed for long-running applications. Behind the scenes, only one instance of a Livebook app could run at any given moment. Since Livebook has built-in support for multiple users, all users accessing an app would be sharing the same instance of the app. We’re now calling that single-session Livebook apps.</span></p><p><span>This new version introduces multi-session Livebook Apps. What’s different is that when you join a multi-session application, you get a version of that app exclusively for you. Like single-session apps, multi-session apps can run for as long as they want, but most often, they will receive user input, execute several instructions, and then exit.</span></p><p><span>We believe they are an excellent fit for automating technical and business workflows. You can think of them as something similar to scripts, but instead of running in a terminal, they are interactive web applications accessed through the browser.</span></p><p><span>For example, instead of repeatedly being asked to run one-off scripts, you can package that script as a Livebook app and makes it accessible to other team members to run it, at any time, by themselves.</span></p><p><span>Let’s see how that works.</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/dSjryA1iFng?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/dSjryA1iFng/maxresdefault.jpg\" data-embed-signature=\"OSEb1Vh69QuvXT1NvTpajGrAgjtSfC4KbDTe1c3KpiH\" data-embed-url=\"https://www.youtube.com/watch?v=dSjryA1iFng\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/dSjryA1iFng?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><h2><a href=\"https://hackmd.io/SlDRlEv9RTibUWYe_wOuig?view#Presentation-View\" target=\"_blank\"></a></h2><h2><span>Presentation View</span></h2><p><span>We noticed many people </span><a href=\"https://www.youtube.com/watch?v=b9BQM40UzEs&amp;t=564s\" rel=\"noopener\" target=\"_blank\"><span>use Livebook for presentations</span></a><span>. However, it can be frustrating to switch between Livebook and your slides. Also, showing the whole notebook can distract your audience. But there’s good news!</span></p><p><a href=\"https://github.com/aifrak\" rel=\"noopener\" target=\"_blank\"><span>Franklin Rakotomalala</span></a><span> contributed a Presentation view feature that hides the sidebar and focuses on the part of your notebook you want to present. Here’s how it works.</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/Tlo4mYK8UuM?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/Tlo4mYK8UuM/hqdefault.jpg\" data-embed-signature=\"B5xtCTlpDjfMlMScVZoawL3TWe3KZm0yqNdySJqdLCH\" data-embed-url=\"https://www.youtube.com/watch?v=Tlo4mYK8UuM\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/Tlo4mYK8UuM?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><span>Shout out to Franklin!</span></p><h2><a href=\"https://hackmd.io/SlDRlEv9RTibUWYe_wOuig?view#Initial-Erlang-Support\" target=\"_blank\"></a><span>Initial Erlang Support</span></h2><p><span>You can now write Erlang code inside Livebook. Not only that, but you can combine it with Elixir in the same notebook. If you define a function or a variable inside one language, you can easily use it in the other.</span></p><p><span>Watch the video below for an example.</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/Jsv3-2XPc-k?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/Jsv3-2XPc-k/hqdefault.jpg\" data-embed-signature=\"XM4Wh9eJRN7lDovBVwEKveGJrh1OH2vHIoOZ4v5AzEZ\" data-embed-url=\"https://www.youtube.com/watch?v=Jsv3-2XPc-k\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/Jsv3-2XPc-k?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><span>This was a community contribution by </span><a href=\"https://github.com/filmor\" rel=\"noopener\" target=\"_blank\"><span>Benedikt Reinartz</span></a><span>. Thanks to him, Livebook now supports multiple BEAM languages.</span></p><h2><a href=\"https://hackmd.io/SlDRlEv9RTibUWYe_wOuig?view#Live-Doctests\" target=\"_blank\"></a><span>Live Doctests</span></h2><p><span>Starting from version 0.8, </span><a href=\"https://news.livebook.dev/whats-new-in-livebook-0.8-4gQiEE\" rel=\"noopener\" target=\"_blank\"><span>doctests are integrated with Livebook</span></a><span>. This new version comes with exciting improvements in that area.</span></p><p><span>When you evaluate a cell with doctests, a traffic light-like status appears on the left of each doctest. This gives you a visual indication if it passed or not. Additionally, when the doctest fails, the failing result is directly inlined in the code editor.</span></p><p><span>Here’s how it works:</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/G4VHl-polXg?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/G4VHl-polXg/sddefault.jpg\" data-embed-signature=\"P01Tw0EXbFMa84exlepyojeax5YACWSnncRsCQSOAvx\" data-embed-url=\"https://www.youtube.com/watch?v=G4VHl-polXg\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/G4VHl-polXg?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><span>This is a step towards bringing </span><a href=\"https://github.com/livebook-dev/livebook/issues/1351\" rel=\"noopener\" target=\"_blank\"><span>Live Programming concepts</span></a><span> into Livebook, </span><a href=\"https://www.microsoft.com/en-us/research/publication/usable-live-programming/\" rel=\"noopener\" target=\"_blank\"><span>the idea</span></a><span> that for “programming to be more fluid, editing and debugging should occur concurrently as you write code.”</span></p><p><span>This one started with the code contribution of </span><a href=\"https://github.com/Sleepful\" rel=\"noopener\" target=\"_blank\"><span>Jose Vargas</span></a><span> and the </span><a href=\"https://szymonkaliski.com/projects/live-coding-livebook/\" rel=\"noopener\" target=\"_blank\"><span>research work of Szymon Kaliski</span></a><span>.</span></p><h2><a href=\"https://hackmd.io/SlDRlEv9RTibUWYe_wOuig?view#Download-Option-for-Dataframes\" target=\"_blank\"></a><span>Dataframe File Export</span></h2><p><span>When working on a </span><a href=\"https://news.livebook.dev/data-wrangling-in-elixir-with-explorer-the-power-of-rust-the-elegance-of-r---launch-week-1---day-5-1xqwCI\" rel=\"noopener\" target=\"_blank\"><span>data analysis task using Livebook</span></a><span>, you might need to access the analysis result from another tool or share them with someone who prefers opening it in a spreadsheet.</span></p><p><span>Now, you can easily do that by exporting your dataframe to a CSV, NDJSON, or Parquet file. Here’s how it works:</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/_VYiYlmOOlk?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/_VYiYlmOOlk/maxresdefault.jpg\" data-embed-signature=\"W3pDTJd3mvlck6VfhmuM6WUVdGkKW7xoZMOhBfAat1n\" data-embed-url=\"https://www.youtube.com/watch?v=_VYiYlmOOlk\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/_VYiYlmOOlk?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><h2><a href=\"https://hackmd.io/SlDRlEv9RTibUWYe_wOuig?view#Try-it\" target=\"_blank\"></a></h2><h2><span>Try it!</span></h2><p><span>To play with the new features, follow these steps:</span></p><ul><li><a href=\"https://livebook.dev/#install\" rel=\"noopener noreferrer\" target=\"_blank\"><span>Install</span></a><span> the latest Livebook version</span></li><li><span>Import the demo notebook that showcases the new features by clicking the badge below</span></li></ul><p><a href=\"https://livebook.dev/run?url=https%3A%2F%2Fgithub.com%2Fhugobarauna%2Flivebook-notebooks%2Fblob%2Fmain%2Fwhats_new_in_livebook_v0.10.livemd\" rel=\"noopener\" target=\"_blank\"><img src=\"https://img.announcekit.app/0759863cd5e0faec34915b102dd0f98a?s=fd1d7459682e7aef06b4b76180a07d66\" alt=\"Run in Livebook\" /></a></p><p><span style=\"text-align:start;\">And if you want to discover everything that changed in 0.10, here’s </span><a href=\"https://github.com/livebook-dev/livebook/blob/v0.10/CHANGELOG.md\" rel=\"noopener\" target=\"_blank\"><span>the changelog</span></a><span style=\"text-align:start;\">.</span></p><p><span>Happy hacking!</span></p>",
            "url": "https://news.livebook.dev/whats-new-in-livebook-0.10---introducing-multi-session-livebook-apps-3Dbpss",
            "title": "What's new in Livebook 0.10 - Introducing Multi-Session Livebook Apps",
            "summary": "This major update brings many exciting features, with the spotlight being the introduction of multi-session Livebook apps. We’ve also added a presentation view, initial Erlang support, Live Doctests, and dataframe file export.",
            "date_modified": "2023-07-14T12:36:24.000Z",
            "tags": [
                "releases"
            ]
        },
        {
            "id": "330836",
            "content_html": "<p><span>Welcome to the fifth and last day of the first Livebook Launch Week!</span></p><p><span>Today we will talk about data wrangling with Livebook and the new data capabilities with this new release.</span></p><p><span>Watch the video where José Valim shows a demo of those new features.</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/U6nuPjyAUPw?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/U6nuPjyAUPw/maxresdefault.jpg\" data-embed-signature=\"so4FhfPLSkFW5nNOausQQFkUvPJHlsdekU6F8Lp8Cqp\" data-embed-url=\"https://www.youtube.com/watch?v=U6nuPjyAUPw\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/U6nuPjyAUPw?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><span>You can also read an overview of the new features below.</span></p><h2><a href=\"https://hackmd.io/RtiWIcmCSyGuUz2yFH1xsQ?view#Explorer-series-and-dataframes-for-fast-data-exploration-in-Elixir\" target=\"_blank\"></a><span>Explorer: series and dataframes for fast data exploration in Elixir</span></h2><p><a href=\"https://github.com/elixir-nx/explorer\" rel=\"noopener\" target=\"_blank\"><span>Explorer</span></a><span> is a project that brings series (one-dimensional data) and data frames (two-dimensional data) right into Elixir.</span></p><p><span>It is implemented on top of the </span><a href=\"https://www.pola.rs/\" rel=\"noopener\" target=\"_blank\"><span>Polars</span></a><span> project, a highly performant dataframe Rust library. And it’s highly inspired by the </span><a href=\"https://dplyr.tidyverse.org/\" rel=\"noopener\" target=\"_blank\"><span>dplyr</span></a><span> project from R, which is quite expressive. We aim to bring ideas from both communities into Elixir to provide a powerful and elegant tool for data processing.</span></p><p><span>Let’s play with Explorer a little bit.</span></p><p><span>The first step of a data exploration project is to import the data. Let’s see how you can import a dataset into an Explorer data frame:</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/BV6iZmcygEs?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/BV6iZmcygEs/maxresdefault.jpg\" data-embed-signature=\"fUugzkJDsJ7oDnDW1aPxuKXyM3X3V6EvoUQ3g4DM8aA\" data-embed-url=\"https://www.youtube.com/watch?v=BV6iZmcygEs\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/BV6iZmcygEs?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><span>After importing the data, it’s usually a good idea to explore it a little bit. To do that, we’ll use a new feature from Livebook that helps us visualize an Explorer Dataframe as a table.</span></p><h2><a href=\"https://hackmd.io/RtiWIcmCSyGuUz2yFH1xsQ?view#Visualizing-an-Explorer-dataframe-as-an-interactive-table\" target=\"_blank\"></a><span>Visualizing an Explorer dataframe as an interactive table</span></h2><p><a href=\"https://hexdocs.pm/kino/Kino.html\" rel=\"noopener\" target=\"_blank\"><span>Kino</span></a><span> is the library used by Livebook to render rich and interactive outputs directly from your Elixir code. Livebook has multiple built-in Kinos, but anyone can also build </span><a href=\"https://hexdocs.pm/kino/Kino.html#module-custom-kinos\" rel=\"noopener\" target=\"_blank\"><span>custom Kinos</span></a><span> as a way to extend Livebook.</span></p><p><span>We built a new Kino called Kino Explorer for this release to improve the integration between Explorer and Livebook. Let’s see how we can use it to display an Explorer data frame as an interactive table:</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/zSTFhwhSQNM?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/zSTFhwhSQNM/maxresdefault.jpg\" data-embed-signature=\"eQprUsOC3rdfGBJVSxTQ53Taz2JdAU5BKjlEqFwc9EH\" data-embed-url=\"https://www.youtube.com/watch?v=zSTFhwhSQNM\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/zSTFhwhSQNM?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><h2><a href=\"https://hackmd.io/RtiWIcmCSyGuUz2yFH1xsQ?view#Data-transformation-using-the-new-Data-Transform-Smart-cell\" target=\"_blank\"></a></h2><h2><span>Data transformation using the new Data Transform Smart cell</span></h2><p><span>In Livebook, a </span><a href=\"https://hexdocs.pm/kino/Kino.SmartCell.html\" rel=\"noopener\" target=\"_blank\"><span>Smart cell</span></a><span> is a UI-based cell that helps you to accomplish a specific task like </span><a href=\"https://news.livebook.dev/how-to-query-and-visualize-data-from-google-bigquery-using-livebook-3o2leU\" rel=\"noopener\" target=\"_blank\"><span>creating a database connection</span></a><span>, </span><a href=\"https://github.com/livebook-dev/kino_slack\" rel=\"noopener\" target=\"_blank\"><span>sending a message to a Slack channel</span></a><span>, or </span><a href=\"https://news.livebook.dev/announcing-bumblebee-gpt2-stable-diffusion-and-more-in-elixir-3Op73O\" rel=\"noopener\" target=\"_blank\"><span>running a Machine Learning model</span></a><span>.</span></p><p><span>Livebook has various built-in Smart cells, and anyone can </span><a href=\"https://hexdocs.pm/kino/Kino.SmartCell.html\" rel=\"noopener\" target=\"_blank\"><span>build a Smart cell</span></a><span> to extend Livebook to their needs.</span></p><p><span>For this release, we built a new built-in Smart cell; the Data Transform one. Let’s see how we can use it for some data transformation.</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/79rJh1yxslI?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/79rJh1yxslI/maxresdefault.jpg\" data-embed-signature=\"RQWSrOKepSR95KQoK2LfafeWBAPZ4IloGsssJv3h2nA\" data-embed-url=\"https://www.youtube.com/watch?v=79rJh1yxslI\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/79rJh1yxslI?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><h2><a href=\"https://hackmd.io/RtiWIcmCSyGuUz2yFH1xsQ?view#What-now\" target=\"_blank\"></a></h2><h2><span>What now?</span></h2><p><span>Want to play with all of those new features?</span></p><p><span>First, ensure you’ve </span><a href=\"https://livebook.dev/#install\" rel=\"noopener\" target=\"_blank\"><span>installed the latest version of Livebook</span></a><span>.</span></p><p><span>Then, click the button below to run the notebook that José Valim built in the demo video:</span></p><p><a href=\"https://livebook.dev/run?url=https%3A%2F%2Fgist.githubusercontent.com%2Fhugobarauna%2Fcd509c9ea429c3e6a664b64e34a6c31c%2Fraw%2Fde7ef09070178792a1439a8c1ddcbce3da2c10ff%2Fdata_wrangling_with_explorer.livemd\" rel=\"noopener\" target=\"_blank\"><img src=\"https://img.announcekit.app/a505b3a5f38484368e6b7a1568421ae3?s=0fe72bb2a0618ea3cf1e7b865ea06b44\" alt=\"Run in Livebook\" /></a></p><p><span>If you have any comments or want to share what you’ve built using Livebook, you can </span><a href=\"https://twitter.com/intent/tweet?text=I%27m%20loving%20the%20new%20Livebook%200.9!%20%23LivebookLaunchWeek\" rel=\"noopener\" target=\"_blank\"><span>tweet using the #LivebookLaunchWeek</span></a><span> hashtag.</span></p><p><span>I hope you got as excited as we did with this new Livebook 0.9 release.</span></p><p><span>Besides that, we’re already working on much more exciting stuff we’re looking forward to sharing—for example, the upcoming </span><a href=\"https://livebook.dev/#livebook-plans\" rel=\"noopener\" target=\"_blank\"><span>Livebook Teams</span></a><span>.</span></p><p><span>If you use or want to use Livebook at work with your colleagues, you can </span><a href=\"https://docs.google.com/forms/d/e/1FAIpQLScDfvUqT4f_s95dqNGyoXwVMD_Vl059jT6r5MPgXB99XVMCuw/viewform\" rel=\"noopener\" target=\"_blank\"><span>fill in our form to help us</span></a><span> to inform Livebook Team’s roadmap and get updates about it.</span></p><p><span>Thank you very much for being with us these last five days. This is all for this first Livebook Launch Week!</span></p><p><span>Building Livebook and sharing what it’s capable of is a joy for us. We hope you can have fun with it too. 😄</span></p><h2><a href=\"https://hackmd.io/RtiWIcmCSyGuUz2yFH1xsQ?view#More-Launch-Week-1\" target=\"_blank\"></a><span>More Launch Week</span></h2><ul><li><a href=\"https://news.livebook.dev/deploy-notebooks-as-apps-quality-of-life-upgrades---launch-week-1---day-1-2OTEWI\" rel=\"noopener noreferrer\" target=\"_blank\">Day 1: Deploy notebooks as apps &amp; quality-of-life upgrades</a></li><li><a href=\"https://news.livebook.dev/distributed2-machine-learning-notebooks-with-elixir-and-livebook---launch-week-1---day-2-1aIlaw\" rel=\"noopener noreferrer\" target=\"_blank\">Day 2: Distributed² Machine Learning notebooks with Elixir and Livebook</a></li><li><a href=\"https://news.livebook.dev/hubs-and-secret-management---launch-week-1---day-3-3tMaJ2\" rel=\"noopener noreferrer\" target=\"_blank\">Day 3: Hubs and secret management</a></li><li><a href=\"https://news.livebook.dev/build-and-deploy-a-whisper-chat-app-to-hugging-face-in-15-minutes---launch-week-1---day-4-wYM0w\" rel=\"noopener noreferrer\" target=\"_blank\">Day 4: Build and deploy a Whisper chat app to Hugging Face in 15 minutes</a></li></ul>",
            "url": "https://news.livebook.dev/data-wrangling-in-elixir-with-explorer-the-power-of-rust-the-elegance-of-r---launch-week-1---day-5-1xqwCI",
            "title": "Data wrangling in Elixir with Explorer, the power of Rust, the elegance of R - Launch Week 1 - Day 5",
            "summary": "This post introduces the new data features in Livebook 0.9: fast data exploration through integration with Explorer, interactive data tables, and data transformation using the new Data Transform Smart cell.",
            "date_modified": "2023-04-14T13:43:38.192Z",
            "tags": [
                "releases",
                "launch week"
            ]
        },
        {
            "id": "330781",
            "content_html": "<p><span>Welcome to the fourth day of Livebook Launch Week! 🎉</span></p><p><span>Today we will build a Whisper chat app with Livebook and deploy it to Hugging Face.</span></p><p><span>In this chat app, users can communicate only by sending audio messages, which are then automatically converted to text by the Whisper Machine Learning model:</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/uyVRPEXOqzw?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/uyVRPEXOqzw/maxresdefault.jpg\" data-embed-signature=\"wG2fdqFIYRg5gS9VujcIwvAMk4YSIqmdA9u6Zqdhc9Z\" data-embed-url=\"https://www.youtube.com/watch?v=uyVRPEXOqzw\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/uyVRPEXOqzw?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><h2><a href=\"https://hackmd.io/ZmniSU86STmtgUeafx4O1g?view#What-now\" target=\"_blank\"></a></h2><p>You can <a href=\"https://huggingface.co/spaces/josevalim/livebook\" rel=\"noopener noreferrer\" target=\"_blank\">access the demo over the next few days on José Valim's Livebook instance on HuggingFace</a>.</p><p>This demo covers a lot of cool features from Livebook, Nx, and Bumblebee, like:</p><ul><li><p><strong>Deploy Livebook notebooks as apps</strong></p><p>On <a href=\"https://news.livebook.dev/deploy-notebooks-as-apps-quality-of-life-upgrades---launch-week-1---day-1-2OTEWI\" rel=\"noopener noreferrer\" target=\"_blank\">day 1 of our Launch Week</a>, we saw how to deploy your notebook as an interactive web app. This time we’ll go further and deploy a Machine Learning-based app to Hugging Face.</p></li><li><p><strong>Realtime and multiplayer apps</strong></p><p>Livebook’s modern approach to code notebooks brings interactivity and collaboration. So, apps built with Livebook are also interactive and multiplayer by default! The Whisper chat app we’ll be an excellent example of that.</p></li><li><p><strong>Concurrent Machine Learning</strong></p><p>On <a href=\"https://news.livebook.dev/distributed2-machine-learning-notebooks-with-elixir-and-livebook---launch-week-1---day-2-1aIlaw\" rel=\"noopener noreferrer\" target=\"_blank\">day 2 of our Launch Week</a>, we talked about the new Machine Learning models you can use with just a few clicks through Livebook’s Neural Network Smart Cell. In today’s video, you’ll see how to customize the code generated by the Smart cell and build an app on top of it.</p><p>We’ll add concurrency and batching to improve the app’s scalability and performance, allowing multiple users to submit audio messages simultaneously and efficiently process them using the Whisper model.</p></li></ul><h2><span>What now?</span></h2><p><span>Want to run the Whisper chat app by yourself?</span></p><p><span>First, ensure you’ve </span><a href=\"https://livebook.dev/#install\" rel=\"noopener\" target=\"_blank\"><span>installed the latest version of Livebok</span></a><span>.</span></p><p><span>Then, click the button below to run the notebook yourself:</span></p><p><a href=\"https://livebook.dev/run?url=https%3A%2F%2Fgist.githubusercontent.com%2Fhugobarauna%2F7011f0b0d85a8ba520308e6b936cdfcf%2Fraw%2F8b5a968a90b55a461273ae9ce375f9525dee5ef6%2Fwhisper_chat.livemd\" rel=\"noopener\" target=\"_blank\"><img src=\"https://img.announcekit.app/e90c4908915427f8fdd0154bd0fe61c2?s=4dc7fcaeda7bbdeb33609886fc4178f9\" alt=\"Run the Whisper chat app in your Livebook\" /></a></p><p><span>If you have any comments or want to share what you’ve built using Livebook, you can </span><a href=\"https://twitter.com/intent/tweet?text=I%27m%20loving%20the%20new%20Livebook%200.9!%20%23LivebookLaunchWeek\" rel=\"noopener\" target=\"_blank\"><span>tweet using the #LivebookLaunchWeek</span></a><span> hashtag.</span></p><p><span>Stay tuned for the final announcement of the Livebook Launch Week!</span></p><h2>More Launch Week</h2><ul><li><a href=\"https://news.livebook.dev/deploy-notebooks-as-apps-quality-of-life-upgrades---launch-week-1---day-1-2OTEWI\" rel=\"noopener noreferrer\" target=\"_blank\">Day 1: Deploy notebooks as apps &amp; quality-of-life upgrades</a></li><li><a href=\"https://news.livebook.dev/distributed2-machine-learning-notebooks-with-elixir-and-livebook---launch-week-1---day-2-1aIlaw\" rel=\"noopener noreferrer\" target=\"_blank\">Day 2: Distributed² Machine Learning notebooks with Elixir and Livebook</a></li><li><a href=\"https://news.livebook.dev/hubs-and-secret-management---launch-week-1---day-3-3tMaJ2\" rel=\"nofollow noopener\" target=\"_blank\">Day 3: Hubs and secret management</a></li><li><a href=\"https://news.livebook.dev/data-wrangling-with-explorer-the-power-of-rust-the-elegance-of-r---launch-week-1---day-5-1xqwCI\" rel=\"noopener noreferrer\" target=\"_blank\">Day 5: Data wrangling in Elixir with Explorer, the power of Rust, the elegance of R</a></li></ul>",
            "url": "https://news.livebook.dev/build-and-deploy-a-whisper-chat-app-to-hugging-face-in-15-minutes---launch-week-1---day-4-wYM0w",
            "title": "Build and deploy a Whisper chat app to Hugging Face in 15 minutes - Launch Week 1 - Day 4",
            "summary": "Learn how to use Livebook to build a Machine Learning app and deploy it to Hugging Face in less than 15 minutes.",
            "date_modified": "2023-04-13T12:39:47.796Z",
            "tags": [
                "releases",
                "launch week"
            ]
        },
        {
            "id": "330686",
            "content_html": "<p><span>Welcome to the third day of Livebook Launch Week! 🎉</span></p><p><span>In today’s post, we’ll explore the new security features in Livebook 0.9, including the introduction of Hubs for centralized secret management and notebook stamping to enhance user experience while maintaining security.</span></p><p><span>We’ll also give you a sneak peek into the upcoming Livebook Teams product, designed to streamline the experience of using Livebook within a team.</span></p><p><span>Let’s dive in and discover how these features can improve your workflow and secure your notebooks!</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/IZzPquWl5Yw?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/IZzPquWl5Yw/maxresdefault.jpg\" data-embed-signature=\"9nsPdosIfYrqms0TVALDbsl3dHaWQv9JOS6yst3ASTs\" data-embed-url=\"https://www.youtube.com/watch?v=IZzPquWl5Yw\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/IZzPquWl5Yw?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><h2><a href=\"https://hackmd.io/Z4AAtxf0Rd-TMkKZdEP2ew?view#What%E2%80%99s-wrong-with-computational-notebooks\" target=\"_blank\"></a></h2><h2><span>What’s wrong with computational notebooks?</span></h2><p><span>Throughout the development of Livebook, one of the sources that </span><a href=\"https://github.com/livebook-dev/livebook/issues/1223\" rel=\"noopener\" target=\"_blank\"><span>informed our roadmap</span></a><span> was a paper published in 2020 called </span><a href=\"https://www.microsoft.com/en-us/research/publication/whats-wrong-with-computational-notebooks/\" rel=\"noopener\" target=\"_blank\"><span>“What’s Wrong with Computational Notebooks? Pain Points, Needs, and Design Opportunities”</span></a><span>. The paper shows that computational notebook users face numerous pain points while using that kind of tool. One of those problems is security.</span></p><p><span>The paper defines that problem as follows:</span></p><blockquote><p><span>Maintaining data confidentiality and access control is an ad hoc, manual process where errors can leak private client data</span></p></blockquote><p><span>Here’s a quote about that problem by one of the people interviewed by the researchers:</span></p><blockquote><p><span>We are missing a more private way of handling credentials. I don’t want client credentials be visible to others</span></p></blockquote><p><span>To address that pain point, we </span><a href=\"https://news.livebook.dev/whats-new-in-livebook-0.7-2wOPsY\" rel=\"noopener\" target=\"_blank\"><span>added built-in secret management to Livebook since version 0.7</span></a><span>.</span></p><p><span>Livebook’s built-in secret management allows your notebook to use sensitive data without hardcoding it. For example, imagine your notebook needs to use a password-protected API; this is how you’d save that password using Livebook Secrets from version 0.7:</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/laG04lxagZI?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/laG04lxagZI/maxresdefault.jpg\" data-embed-signature=\"cn3jw0qPe7CG9AAAR0grS91pPylGN1KmqCmvHRBtAxO\" data-embed-url=\"https://www.youtube.com/watch?v=laG04lxagZI\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/laG04lxagZI?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><span>As you create more and more notebooks and more secrets, you’ll eventually want to see all the secrets you created. But before Livebook 0.9, the only way to see all the secrets you configured was inside a notebook.</span></p><p><span>Now, we have a better way.</span></p><h2><a href=\"https://hackmd.io/Z4AAtxf0Rd-TMkKZdEP2ew?view#Livebook-Hubs\" target=\"_blank\"></a><span>Livebook Hubs</span></h2><p><span>This new Livebook release introduces a concept we’re calling Hubs.</span></p><p><span>Every new Livebook installation comes with a default personal Hub. This is the place where Livebook will save your secrets and where you can manage all of them. Let’s see how it works.</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/IH-xG9NKYYo?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/IH-xG9NKYYo/maxresdefault.jpg\" data-embed-signature=\"eaU3jFIXqAoxmPMSI4C0hBtZoSPQ1r1DCVXBEswauXF\" data-embed-url=\"https://www.youtube.com/watch?v=IH-xG9NKYYo\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/IH-xG9NKYYo?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><span>But a Hub is not only a place to centralize your secrets. When you visit your personal Hub, you’ll notice another section called Stamping.</span></p><p><img src=\"https://img.announcekit.app/a47a0a71c771d7b96279f916bcd6e00c?s=280f9c675fb38d81d8923a4328242827\" alt /></p><h2><a href=\"https://hackmd.io/Z4AAtxf0Rd-TMkKZdEP2ew?view#Notebook-stamping\" target=\"_blank\"></a><span>Notebook stamping</span></h2><p><span>Before explaining this feature, let’s discuss why we created it.</span></p><p><span>Imagine the following scenario. You have a secret in your Livebook called “API_PASSWORD.” If you download a notebook from the internet, you don’t want that secret to be accessible by that notebook by default. That’s why you must explicitly share a Livebook secret with a notebook.</span></p><p><span>But what if you were opening a notebook you created and had already shared secrets with that notebook? Although you already trust that notebook, Livebook would still make you explicitly share secrets with it every single time you open it. Let’s watch a video that illustrates that UX problem:</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/Lbm8k8Oy3ao?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/Lbm8k8Oy3ao/maxresdefault.jpg\" data-embed-signature=\"SfK84BFPpLHbbaoIojFb7V6Ft145fB6VlEYwivhhPP3\" data-embed-url=\"https://www.youtube.com/watch?v=Lbm8k8Oy3ao\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/Lbm8k8Oy3ao?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><span>Enters notebook stamping.</span></p><p><span>Livebook 0.9 automatically stamps your notebooks so you don’t need to share a secret more than once with a notebook you trust. The notebook stamp contains the list of the secret names you explicitly shared with the notebook, and it’s encrypted using your secret key saved in your personal Hub.</span></p><p><span>Let’s see a video of how that new feature improves the UX of Livebook Secrets.</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/Cc-AOJU6Mrs?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/Cc-AOJU6Mrs/maxresdefault.jpg\" data-embed-signature=\"GOPxijynBVRp4OrmMmQ3QQmd9MjjA0d0pfWIicWayAd\" data-embed-url=\"https://www.youtube.com/watch?v=Cc-AOJU6Mrs\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/Cc-AOJU6Mrs?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><span>We also use the notebook source itself to generate the stamp, so someone can’t get your stamp and go stamping other notebooks, pretending it’s yours.</span></p><p><span>Since the stamping uses the secret key saved in your personal Hub, if you’re using Livebook on multiple machines and want to share notebooks between them, you can configure them with the same secret key.</span></p><p><span>With this update to Livebook’s security capabilities, we aim to ensure users can enjoy a secure working environment without compromising on ease of use.</span></p><p><span>But there’s still one problem left. What if you’re working in a team and you want to share secrets among team members? You don’t want to share your personal secret key; it’s yours. Enters Livebook Teams.</span></p><h2><a href=\"https://hackmd.io/Z4AAtxf0Rd-TMkKZdEP2ew?view#Livebook-Teams\" target=\"_blank\"></a><span>Livebook Teams</span></h2><p><span>Livebook Teams is a paid product we’re developing that will streamline the experience of using Livebook within a team.</span></p><p><span>Livebook Teams is not a different version of Livebook. Instead, it is a Hub that all of your team members and colleagues connect to in order to work together.</span></p><p><span>It will manage all the Livebook Secrets shared by your team and be responsible for stamping all the notebooks that belong to your group, so you can safely share secrets and notebooks among team members.</span></p><p><span>We have a lot of features planned for Livebook Teams, it’s not only about security and secret management. It will also enable your team to:</span></p><ul><li><span>deploy notebooks inside your company</span></li><li><span>schedule and audit notebook execution</span></li><li><span>authentication and authorization of team members</span></li></ul><p><span>And there’s a lot more coming!</span></p><p><span>If using Livebook inside your company sounds interesting to you, please </span><a href=\"https://docs.google.com/forms/d/e/1FAIpQLScDfvUqT4f_s95dqNGyoXwVMD_Vl059jT6r5MPgXB99XVMCuw/viewform\" rel=\"noopener\" target=\"_blank\"><span>submit our form</span></a><span> to help us to inform our roadmap and get updates about it.</span></p><h2><a href=\"https://hackmd.io/Z4AAtxf0Rd-TMkKZdEP2ew?view#What-now\" target=\"_blank\"></a><span>What now?</span></h2><p><span>We encourage you to go ahead and </span><a href=\"https://livebook.dev/#install\" rel=\"noopener\" target=\"_blank\"><span>install Livebook’s latest version</span></a><span> so you can have a better user experience while maintaining the security of your notebooks.</span></p><p><span>And if you have any comments or want to share what you’ve built using Livebook, you can </span><a href=\"https://twitter.com/intent/tweet?text=I%27m%20loving%20the%20new%20Livebook%200.9!%20%23LivebookLaunchWeek\" rel=\"noopener\" target=\"_blank\"><span>tweet using the #LivebookLaunchWeek</span></a><span> hashtag.</span></p><p><span>Stay tuned for the following announcement of the Livebook Launch Week!</span></p><h2>More Launch Week</h2><ul><li><a href=\"https://news.livebook.dev/deploy-notebooks-as-apps-quality-of-life-upgrades---launch-week-1---day-1-2OTEWI\" rel=\"noopener noreferrer\" target=\"_blank\">Day 1: Deploy notebooks as apps &amp; quality-of-life upgrades</a></li><li><a href=\"https://news.livebook.dev/distributed2-machine-learning-notebooks-with-elixir-and-livebook---launch-week-1---day-2-1aIlaw\" rel=\"noopener noreferrer\" target=\"_blank\">Day 2: Distributed² Machine Learning notebooks with Elixir and Livebook</a></li><li><a href=\"https://news.livebook.dev/build-and-deploy-a-whisper-chat-app-to-hugging-face-in-15-minutes---launch-week-1---day-4-wYM0w\" rel=\"noopener noreferrer\" target=\"_blank\">Day 4: Build and deploy a Whisper chat app to Hugging Face in 15 minutes</a></li><li><a href=\"https://news.livebook.dev/data-wrangling-with-explorer-the-power-of-rust-the-elegance-of-r---launch-week-1---day-5-1xqwCI\" rel=\"noopener noreferrer\" target=\"_blank\">Day 5: Data wrangling in Elixir with Explorer, the power of Rust, the elegance of R</a></li></ul>",
            "url": "https://news.livebook.dev/hubs-and-secret-management---launch-week-1---day-3-3tMaJ2",
            "title": "Hubs and secret management - Launch Week 1 - Day 3",
            "summary": "Discover Livebook 0.9's new security features, including Hubs for centralized secret management, notebook stamping, and a sneak peek into Livebook Teams for team collaboration.",
            "date_modified": "2023-04-12T14:05:28.881Z",
            "tags": [
                "releases",
                "launch week"
            ]
        },
        {
            "id": "330560",
            "content_html": "<p><span>Welcome to the second day of Livebook Launch Week! 🎉</span></p><p><span>Today we will discuss all the new Machine Learning capabilities in Elixir and Livebook. First, we will discuss some of the new Neural Network tasks in Livebook v0.9. Then we will show how easy it is to make an existing model run concurrently and then distributed across multiple machines and multiple GPUs.</span></p><p><span>Let’s get started!</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/MSMyRBJAoSs?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/MSMyRBJAoSs/maxresdefault.jpg\" data-embed-signature=\"5QXBMA7ucpPbFS5bWAoRuyG4NhDdLk0m0m6rBX11Vkd\" data-embed-url=\"https://www.youtube.com/watch?v=MSMyRBJAoSs\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/MSMyRBJAoSs?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><h2><br /></h2><h2><span>Distributed² Machine Learning with Elixir</span></h2><p><span>This new Livebook release has many new Machine Learning models you can use with just a few clicks. But there is more exciting news about the Machine Learning story in the Elixir world.</span></p><p><span>Not only can you do Machine Learning with Elixir, but you can also do Distributed² Machine Learning!</span></p><p><span>But what does that “Distributed²” means?</span></p><p><span>It means that when executing a Machine Learning model with Elixir’s </span><a href=\"https://hexdocs.pm/nx/Nx.Serving.html#module-stateful-process-workflow\" rel=\"noopener\" target=\"_blank\"><span>Nx</span></a><span>, the distribution can happen on two dimensions:</span></p><ul><li><span>it can be distributed to multiple machines</span></li><li><span>inside each machine, it can be distributed to multiple GPUs</span></li></ul><p><span>This can lead to increased performance and better utilization of your hardware resources. And it only takes very few changes to your code.</span></p><p><span>Do you want to see an example? Watch </span><a href=\"https://youtu.be/MSMyRBJAoSs?t=232\" rel=\"noopener\" target=\"_blank\"><span>this part of our video</span></a><span>.</span></p><p><span>We are very excited about these features because we are starting to marry the benefits of Nx with the capabilities for building fault-tolerant and distributed software from the Erlang Virtual Machine. Case in point: </span><a href=\"https://github.com/elixir-nx/nx/pull/1090\" rel=\"noopener\" target=\"_blank\"><span>adding distribution support to Nx took only 400 lines of code</span></a><span>, including docs and tests!</span></p><h2><a href=\"https://hackmd.io/l6qrM81HQzy0J1f0zydDEg#New-Machine-Learning-models-available\" target=\"_blank\"></a><span>New Machine Learning models available</span></h2><p><span>Neural network tasks were initially </span><a href=\"https://news.livebook.dev/announcing-bumblebee-gpt2-stable-diffusion-and-more-in-elixir-3Op73O\" rel=\"noopener\" target=\"_blank\"><span>added to Livebook version 0.8</span></a><span> with the idea of giving you the power to use modern Machine Learning models with just a few clicks.</span></p><p><span>This 0.9 release comes with more models. Here they are.</span></p><h3><a href=\"https://hackmd.io/l6qrM81HQzy0J1f0zydDEg#Speech-to-text\" target=\"_blank\"></a><span>Speech-to-text</span></h3><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/arxY9-r_rAA?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/arxY9-r_rAA/maxresdefault.jpg\" data-embed-signature=\"eEjJMo6xwRV9eLIa7RIV5IJQuYmcldvjk5YNqI8NjlW\" data-embed-url=\"https://www.youtube.com/watch?v=arxY9-r_rAA\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/arxY9-r_rAA?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><h3><a href=\"https://hackmd.io/l6qrM81HQzy0J1f0zydDEg#Conversation\" target=\"_blank\"></a></h3><h3><span>Conversation</span></h3><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/-YSiEv1_7Sc?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/-YSiEv1_7Sc/maxresdefault.jpg\" data-embed-signature=\"xGQfsVXVeGNVotoQJLzmsW2DmNHSMlsnf3bHRWLAiQI\" data-embed-url=\"https://www.youtube.com/watch?v=-YSiEv1_7Sc\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/-YSiEv1_7Sc?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><h3><a href=\"https://hackmd.io/l6qrM81HQzy0J1f0zydDEg#Question-answering\" target=\"_blank\"></a></h3><h3><span>Question answering</span></h3><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/tGv5pq1JEMk?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/tGv5pq1JEMk/maxresdefault.jpg\" data-embed-signature=\"2FPb5hT5CzrB9nYffy37TVk6OFQbJNyFAbIvAtjbk9b\" data-embed-url=\"https://www.youtube.com/watch?v=tGv5pq1JEMk\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/tGv5pq1JEMk?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><h3><a href=\"https://hackmd.io/l6qrM81HQzy0J1f0zydDEg#Language-detection\" target=\"_blank\"></a></h3><h3><span>Language detection</span></h3><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/VLvtppCLwMs?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/VLvtppCLwMs/maxresdefault.jpg\" data-embed-signature=\"xTinsLgkg3k4zETOQrpShEc0XqxsgeSgdggr4UYHbFL\" data-embed-url=\"https://www.youtube.com/watch?v=VLvtppCLwMs\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/VLvtppCLwMs?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><h3><a href=\"https://hackmd.io/l6qrM81HQzy0J1f0zydDEg#Zero-shot-text-classification\" target=\"_blank\"></a></h3><h3><span>Zero-shot text classification</span></h3><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/S_zFI-Gb14I?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/S_zFI-Gb14I/maxresdefault.jpg\" data-embed-signature=\"9ZThPUo8WffN65Za2OymSANqGhQDdOuS3mlBwnPgMri\" data-embed-url=\"https://www.youtube.com/watch?v=S_zFI-Gb14I\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/S_zFI-Gb14I?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><h3><a href=\"https://hackmd.io/l6qrM81HQzy0J1f0zydDEg#Punctuation\" target=\"_blank\"></a></h3><h3><span>Punctuation</span></h3><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/Co6r-_pZolc?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/Co6r-_pZolc/maxresdefault.jpg\" data-embed-signature=\"zYOwCb6ishbhivJLTLPbF04nFKeyCe0pMRjgx6GIEwI\" data-embed-url=\"https://www.youtube.com/watch?v=Co6r-_pZolc\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/Co6r-_pZolc?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><h2><a href=\"https://hackmd.io/l6qrM81HQzy0J1f0zydDEg#What-now\" target=\"_blank\"></a></h2><h2><span>What now?</span></h2><p><span>We encourage you to go ahead and </span><a href=\"https://livebook.dev/#install\" rel=\"noopener\" target=\"_blank\"><span>install Livebook’s latest version</span></a><span> to start playing with all of those Machine Learning models!</span></p><p><span>And if you have any comments or want to share what you’ve built using Livebook, you can </span><a href=\"https://twitter.com/intent/tweet?text=I%27m%20loving%20the%20new%20Livebook%200.9!%20%23LivebookLaunchWeek\" rel=\"noopener\" target=\"_blank\"><span>tweet using the #LivebookLaunchWeek</span></a><span> hashtag.</span></p><p><span>Stay tuned for the following announcement of the Livebook Launch Week!</span></p><h2>More Launch Week</h2><ul><li><a href=\"https://news.livebook.dev/deploy-notebooks-as-apps-quality-of-life-upgrades---launch-week-1---day-1-2OTEWI\" rel=\"noopener noreferrer\" target=\"_blank\">Day 1: Deploy notebooks as apps &amp; quality-of-life upgrades</a></li><li><a href=\"https://news.livebook.dev/hubs-and-secret-management---launch-week-1---day-3-3tMaJ2\" rel=\"noopener noreferrer\" target=\"_blank\">Day 3: Hubs and secret management</a></li><li><a href=\"https://news.livebook.dev/build-and-deploy-a-whisper-chat-app-to-hugging-face-in-15-minutes---launch-week-1---day-4-wYM0w\" rel=\"noopener noreferrer\" target=\"_blank\">Day 4: Build and deploy a Whisper chat app to Hugging Face in 15 minutes</a></li><li><a href=\"https://news.livebook.dev/data-wrangling-with-explorer-the-power-of-rust-the-elegance-of-r---launch-week-1---day-5-1xqwCI\" rel=\"noopener noreferrer\" target=\"_blank\">Day 5: Data wrangling in Elixir with Explorer, the power of Rust, the elegance of R</a></li></ul>",
            "url": "https://news.livebook.dev/distributed2-machine-learning-notebooks-with-elixir-and-livebook---launch-week-1---day-2-1aIlaw",
            "title": "Distributed² Machine Learning notebooks with Elixir and Livebook - Launch Week 1 - Day 2",
            "summary": "Explore Livebook v0.9's enhanced Machine Learning features: new Neural Network tasks with the built-in Smart Cell, Distributed² Machine Learning in Elixir, and more.",
            "date_modified": "2023-04-11T14:03:28.373Z",
            "tags": [
                "releases",
                "launch week"
            ]
        },
        {
            "id": "330394",
            "content_html": "<p><span>Welcome to the first-ever Livebook Launch Week! 🎉</span></p><p><span>We’re kicking off this series of announcements to unveil the fantastic new features available in Livebook 0.9. Starting today, each day of this week, we’ll announce a new feature or something new you can do with this new Livebook release, version 0.9.</span></p><p><span>And today, we’re thrilled to announce the most prominent feature of this new release, the ability to run your notebook as an app.</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/q7T6ue7cw1Q?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/q7T6ue7cw1Q/maxresdefault.jpg\" data-embed-signature=\"QJePl8ZDaFSltV4FG633dt8GltUhhq8wvtBPHh6uyFL\" data-embed-url=\"https://www.youtube.com/watch?v=q7T6ue7cw1Q\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/q7T6ue7cw1Q?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><h2><a href=\"https://hackmd.io/VvB-Py1OSWmQ-NhIBx_VmQ#Deploy-Livebook-notebooks-as-apps\" target=\"_blank\"></a></h2><h2><span>Deploy Livebook notebooks as apps</span></h2><p><span>Although Livebook is terrific for many use cases where you need to use it just by yourself, we always believed it could shine in contexts where multiple people are collaborating through it.</span></p><p><span>When Livebook was launched, it already came with real-time collaboration, allowing multiple people to edit a notebook simultaneously. This was already one step ahead of the traditional concept of a code notebook. But we thought it could go even further.</span></p><p><span>There are some scenarios where you want people to use your notebook but not necessarily edit it. In those scenarios, the person wants to run and interact with your notebook. That’s why we created and evolved Kino, a tool that enables you to build interactive notebooks.</span></p><p><span>Although Kino made your notebook interactive, it still felt like a notebook. The person could still see all the code cells mixed with the interactive widgets and the outputs. And this is not the best UX for sharing your notebook with people that need to use it but not edit it.</span></p><p><span>But now, we have a better way.</span></p><p><span>Now, you can deploy your notebook as an app! 🎉</span></p><p><span>This is a way to turn your Livebook notebook into a user-friendly application!</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/Castmvhx5Nc?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/Castmvhx5Nc/maxresdefault.jpg\" data-embed-signature=\"VMdqSZp5j4YlTIhpMem7BJFlbtrOk1FjT6hrQsRqFFd\" data-embed-url=\"https://www.youtube.com/watch?v=Castmvhx5Nc\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/Castmvhx5Nc?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><span>A deployed notebook is a web app that only shows the inputs and outputs of your notebook and is powered by your notebook code.</span></p><p><span>This allows you to share your notebook with a broader audience, making it more accessible to non-technical users or those unfamiliar with Livebook.</span></p><p><span>You can build internal apps, a demo of a Machine Learning model, or interactive automation tasks.</span></p><p><span>But in truth, we can’t imagine all the different ways you will use that, and we can’t wait to see what you will build with this new feature!</span></p><p><span>To get started, inside the Livebook’s Learn section, there’s a new notebook that will teach you how to write and deploy your first app: a chat application in only 15 lines of code!</span></p><p><img src=\"https://img.announcekit.app/74be2d683baf648265dc2728c3dbf6b0?s=7d1256a9394e6cc0ebfa9929d900bfb0\" alt /></p><h2><a href=\"https://hackmd.io/VvB-Py1OSWmQ-NhIBx_VmQ#Quality-of-life-improvements\" target=\"_blank\"></a><span>Quality-of-life improvements</span></h2><h3><a href=\"https://hackmd.io/VvB-Py1OSWmQ-NhIBx_VmQ#Star-a-notebook\" target=\"_blank\"></a><span>Star a notebook</span></h3><p><span>This is for all of us who need to open a notebook multiple times per day or week and want to avoid repeatedly navigating the whole file directory structure to open that notebook every single time. Not anymore!</span></p><p><span>Now, you can star a notebook, and starred notebooks will show in your Livebook’s Home.</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/A2Pl7A-FRcM?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/A2Pl7A-FRcM/maxresdefault.jpg\" data-embed-signature=\"MiEmasIq24McEOHc4aLrgcOWGfHyZvYN9pE0QHnIBny\" data-embed-url=\"https://www.youtube.com/watch?v=A2Pl7A-FRcM\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/A2Pl7A-FRcM?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><span>Shout out to </span><a href=\"https://github.com/ByeongUkChoi\" rel=\"noopener\" target=\"_blank\"><span>ByeongUk Choi</span></a><span> for </span><a href=\"https://github.com/livebook-dev/livebook/pull/1639\" rel=\"noopener\" target=\"_blank\"><span>adding that feature</span></a><span> as a community contributor.</span></p><h3><a href=\"https://hackmd.io/VvB-Py1OSWmQ-NhIBx_VmQ#Recent-notebooks\" target=\"_blank\"></a><span>Recent notebooks</span></h3><p><span>We revamped the “Opening a notebook” user flow.</span></p><p><span>Now all the ways of opening a notebook are centralized. And in that “Open notebook” page, we added a new section: “Recent notebooks.”</span></p><p><span>This section lists all the latest notebooks you’ve been working on, making it very easy to find recently used notebooks and quickly resume what you have been doing with Livebook since the last time you opened it.</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/aERilOCDUKI?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/aERilOCDUKI/maxresdefault.jpg\" data-embed-signature=\"wsIlRzYvOsVUD8ljlQBNv0uGMpV3eFsZmYf0w7UqUWB\" data-embed-url=\"https://www.youtube.com/watch?v=aERilOCDUKI\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/aERilOCDUKI?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><span>Shout out to </span><a href=\"https://github.com/ByeongUkChoi\" rel=\"noopener\" target=\"_blank\"><span>ByeongUk Choi</span></a><span> for </span><a href=\"https://github.com/livebook-dev/livebook/pull/1639\" rel=\"noopener\" target=\"_blank\"><span>adding that feature</span></a><span> as a community contributor.</span></p><h3><a href=\"https://hackmd.io/VvB-Py1OSWmQ-NhIBx_VmQ#Collapse-sections\" target=\"_blank\"></a><span>Collapse sections</span></h3><p><span>Finding a specific section within your notebook can take more than a single mouse scroll when your notebook gets large.</span></p><p><span>The new “collapse sections” feature lets you toggle the visibility of the cells of sections so you can focus on particular parts of the notebook you’re working on.</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/m3kfyfn_DNM?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/m3kfyfn_DNM/maxresdefault.jpg\" data-embed-signature=\"uqSgdwiwMzmwbx5msuqj2HtXW2usmWRTW2l4XrSEyog\" data-embed-url=\"https://www.youtube.com/watch?v=m3kfyfn_DNM\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/m3kfyfn_DNM?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><span>Shout out to </span><a href=\"https://github.com/jannikbecher\" rel=\"noopener\" target=\"_blank\"><span>Jannik Becher</span></a><span> for </span><a href=\"https://github.com/livebook-dev/livebook/pull/1772\" rel=\"noopener\" target=\"_blank\"><span>adding that feature</span></a><span> as a community contributor.</span></p><h2><a href=\"https://hackmd.io/VvB-Py1OSWmQ-NhIBx_VmQ#What-now\" target=\"_blank\"></a><span>What now?</span></h2><p><span>We encourage you to go ahead and </span><a href=\"https://livebook.dev/#install\" rel=\"noopener\" target=\"_blank\"><span>install Livebook’s latest version</span></a><span> to build and deploy your first Livebook app!</span></p><p><span>And if you have any comments or want to share what you’ve built using Livebook, you can </span><a href=\"https://twitter.com/intent/tweet?text=I%27m%20loving%20the%20new%20Livebook%200.9!%20%23LivebookLaunchWeek\" rel=\"noopener\" target=\"_blank\"><span>tweet using the #LivebookLaunchWeek</span></a><span> hashtag.</span></p><p><span>Stay tuned for the following announcement of the Livebook Launch Week!</span></p><h2>More Launch Week</h2><ul><li><a href=\"https://news.livebook.dev/distributed2-machine-learning-notebooks-with-elixir-and-livebook---launch-week-1---day-2-1aIlaw\" rel=\"noopener noreferrer\" target=\"_blank\">Day 2: Distributed² Machine Learning notebooks with Elixir and Livebook</a></li><li><a href=\"https://news.livebook.dev/hubs-and-secret-management---launch-week-1---day-3-3tMaJ2\" rel=\"noopener noreferrer\" target=\"_blank\">Day 3: Hubs and secret management</a></li><li><a href=\"https://news.livebook.dev/build-and-deploy-a-whisper-chat-app-to-hugging-face-in-15-minutes---launch-week-1---day-4-wYM0w\" rel=\"noopener noreferrer\" target=\"_blank\">Day 4: Build and deploy a Whisper chat app to Hugging Face in 15 minutes</a></li><li><a href=\"https://news.livebook.dev/data-wrangling-with-explorer-the-power-of-rust-the-elegance-of-r---launch-week-1---day-5-1xqwCI\" rel=\"noopener noreferrer\" target=\"_blank\">Day 5: Data wrangling in Elixir with Explorer, the power of Rust, the elegance of R</a></li></ul>",
            "url": "https://news.livebook.dev/deploy-notebooks-as-apps-quality-of-life-upgrades---launch-week-1---day-1-2OTEWI",
            "title": "Deploy notebooks as apps & quality-of-life upgrades - Launch Week 1 - Day 1",
            "summary": "Explore Livebook 0.9's new features: deploy notebooks as user-friendly apps, star & access recent notebooks, and collapse sections. Learn how to build and deploy your notebook as an app with Livebook.",
            "date_modified": "2023-04-10T12:37:01.112Z",
            "tags": [
                "releases",
                "launch week"
            ]
        },
        {
            "id": "328839",
            "content_html": "<p>We are thrilled to announce the latest release of Livebook, version 0.9! 🎉</p><p>A lot of work went into bringing you a host of new features that will make your experience with Livebook even better and enable Livebook to be used in many different ways.</p><p>Over the coming weeks, we will be sharing more information about these exciting new additions.</p><p>Meanwhile, you are welcome to <a href=\"https://livebook.dev/#install\" rel=\"noopener noreferrer\" target=\"_blank\">update to the latest and greatest</a>.</p><p>Keep in mind we have moved our containers to GitHub, so if you are using Docker for installing Livebook, make sure to <a href=\"https://github.com/livebook-dev/livebook/tree/v0.9.0#docker\" rel=\"noopener noreferrer\" target=\"_blank\">upgrade image references</a> from \"livebook/livebook\" to \"ghcr.io/livebook-dev/livebook.\"</p><p>Stay tuned for more updates!</p>",
            "url": "https://news.livebook.dev/announcing-livebook-0.9-2tiuLC",
            "title": "Announcing Livebook 0.9",
            "summary": "We are thrilled to announce the latest release of Livebook, version 0.9! 🎉 A lot of work went into bringing you a host of new features that...",
            "date_modified": "2023-03-21T17:13:10.909Z",
            "tags": [
                "releases"
            ]
        },
        {
            "id": "324813",
            "content_html": "<p><span>We are thrilled to introduce Livebook on Hugging Face Spaces! 🎉</span></p><p><span>Each </span><a href=\"https://huggingface.co/docs/hub/spaces-overview#hardware-resources\" rel=\"noopener\" target=\"_blank\"><span>Hugging Face Space environment</span></a><span> offers up to 16GB of RAM and 2 CPU cores for free.</span></p><p><span>If you’re unfamiliar with Hugging Face (HF), it’s a platform for building, sharing, and collaborating on machine learning applications.</span></p><p><span>This is our second </span><a href=\"https://livebook.dev/integrations/hugging-face\" rel=\"noopener\" target=\"_blank\"><span>integration with Hugging Face</span></a><span>; </span><a href=\"https://news.livebook.dev/announcing-bumblebee-gpt2-stable-diffusion-and-more-in-elixir-3Op73O\" rel=\"noopener\" target=\"_blank\"><span>the first</span></a><span> was through Bumblebee, which brings pre-trained neural network models from Hugging Face to the Elixir community.</span></p><p><span>We’ve been collaborating with HF to make using Livebook on Spaces a breeze. If you have a Hugging Face account, simply click the one-click deployment button below:</span></p><p><a href=\"http://huggingface.co/new-space?template=livebook-dev/livebook\" target=\"_blank\"><img src=\"https://img.announcekit.app/f41dfd62fda79d547a385e0d13165255?s=56ddeb352a7e744178ff13e2eb6f56f0\" /></a></p><p><span>Alternatively, follow the step-by-step tutorial to </span><a href=\"https://huggingface.co/docs/hub/spaces-sdks-docker-livebook\" rel=\"noopener noreferrer\" target=\"_blank\"><span>install Livebook in a Hugging Face Space</span></a><span>.</span></p><h2><a href=\"https://hackmd.io/re2XOj_PQxaYBkNByIXgmA#Livebook-with-GPU-acceleration-on-Hugging-Face-Spaces\" target=\"_blank\"></a><span>Livebook with GPU acceleration on Hugging Face Spaces</span></h2><p><span>One of the great features of HF Spaces is its ease of upgrading to hardware with GPU accelerators. This is particularly useful for Machine Learning applications, which can be highly parallelized and computationally intensive.</span></p><p><span>Check out this video to see how easy it is to run Stable Diffusion with Livebook on top of a Hugging Face Space powered by a GPU:</span></p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/WJqTQNfJLHY?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/WJqTQNfJLHY/maxresdefault.jpg\" data-embed-signature=\"th1cDV9ezBozr6NTrwjfuD6tIYWEqPauPZFN8Cd435v\" data-embed-url=\"https://www.youtube.com/watch?v=WJqTQNfJLHY\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/WJqTQNfJLHY?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p><span>Ready to give it a try for yourself? Start experimenting with Livebook on Hugging Face Spaces now.</span></p>",
            "url": "https://news.livebook.dev/livebook-inside-hugging-face-spaces-3LQaRi",
            "title": "Livebook inside Hugging Face Spaces",
            "summary": "This blog post announces the integration of Livebook and Hugging Face Spaces.",
            "date_modified": "2023-02-15T14:55:26.361Z",
            "tags": [
                "announcements"
            ]
        },
        {
            "id": "322859",
            "content_html": "<p>In this blog post, we'll take a look at some of the new features released with Livebook 0.8.1. Let's dive in!</p><h2>The new file input</h2><p>One of the goals of Livebook is to enable you to build interactive notebooks. That means offering <a href=\"https://hexdocs.pm/kino/Kino.Input.html\" target=\"_blank\">various input elements</a> that allow users to input data into the notebook.</p><p>This new version comes with two new inputs, one of them is the <a href=\"https://hexdocs.pm/kino/Kino.Input.html#file/2\" target=\"_blank\">file input</a>. You can use it to allow the user of your notebook to upload a file that the notebook will process.</p><p>There are many scenarios where this can be useful, for example, data exploration. Let's see how the new input can be used to explore data in a CSV file.</p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/s_11aB5Nw1w?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/s_11aB5Nw1w/maxresdefault.jpg\" data-embed-signature=\"UIEHZqOEJx0NQfdpmym0W3PWBhHY1uHCLfrcz6Yh0kw\" data-embed-url=\"https://www.youtube.com/watch?v=s_11aB5Nw1w\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/s_11aB5Nw1w?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><h2><br /></h2><h2>The new audio input</h2><p>Another new input available in this release is the <a href=\"https://hexdocs.pm/kino/Kino.Input.html#audio/2\" target=\"_blank\">audio input</a>.</p><p>It provides two options for uploading audio data: recording using a microphone or uploading an audio file.</p><p>Let's see an example of this new input in action.</p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/0WI4IefS6AQ?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/0WI4IefS6AQ/maxresdefault.jpg\" data-embed-signature=\"N5cboHNNbP50hfTfD5MnAflzDwxqqvFw3JbG2pELAEP\" data-embed-url=\"https://www.youtube.com/watch?v=0WI4IefS6AQ\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/0WI4IefS6AQ?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><h2><br /></h2><h2>Support for capturing images from the camera in the image input</h2><p>The <a href=\"https://hexdocs.pm/kino/Kino.Input.html#image/2\" target=\"_blank\">image input</a> was first introduced in Livebook 0.8.0. With this new release, it has been improved to include the ability to take a picture using the computer's camera, in addition to uploading an image file.</p><p>Let's see how it works.</p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/h-mFPE-fywM?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/h-mFPE-fywM/maxresdefault.jpg\" data-embed-signature=\"l6fgfsbwRk90371DeyGFS9bfctl4llrqYUAUJtbqSPH\" data-embed-url=\"https://www.youtube.com/watch?v=h-mFPE-fywM\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/h-mFPE-fywM?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><p>This feature was <a href=\"https://github.com/livebook-dev/livebook/pull/1595\" target=\"_blank\">contributed</a> by <a href=\"https://twitter.com/_uwu_cocoa\" target=\"_blank\">Cocoa Xu</a>. </p><h2>Option to run the Setup cell without cache</h2><p>A new option has been added to run the setup cell without cache. This can be useful when you want to force the dependencies of your notebook to be installed again from scratch.</p><p>While this was previously possible through the <code>:force</code> option of <code>Mix.install/2</code>:</p><div><pre><span style=\"color:#880000;\">Mix</span><span style=\"color:#666666;\">.</span>install(\n    [\n        {<span style=\"color:#19177C;\">:kino</span>, <span style=\"color:#BA2121;\">\"~&gt; 0.8.1\"</span>}\n    ],\n  <span style=\"color:#19177C;\">  force:</span> <span style=\"color:#880000;\">true</span>\n)</pre></div><p>With this new release, it's now as simple as clicking a button:</p><p><img src=\"https://img.announcekit.app/fb976982bc84358eda4bced5560562a3?s=4330957811a205f3df376df334d32bf1\" /></p><h2><br /></h2><h2>Loading LB_ environment variables as Livebook secrets</h2><p>Secrets management is a feature that was <a href=\"https://news.livebook.dev/whats-new-in-livebook-0.7-2wOPsY\" target=\"_blank\">added in Livebook 0.7</a>. It allows you to securely handle sensitive data, such as passwords and API keys.</p><p>Before this release, the UI was the only way to add secrets to Livebook. But now, there's another way.</p><p>You can provision Livebook Secrets through environment variables on the machine running your Livebook instance. Just create environment variables starting with <code>LB_</code>, such as <code>LB_API_KEY</code> or <code>LB_DATABASE_PASSWORD</code>, and Livebook will load them as Secrets.</p><p>This can be especially useful when running Livebook on platforms like Fly.io and Hugging Face. This means you can set up secrets on their panels, and they will directly appear in Livebook.</p><p>Let's see how that works for running Livebook via Docker.</p><div data-embed-code=\"&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/ZkooWYJ03kQ?rel=0&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;\" data-embed-image=\"https://i.ytimg.com/vi/ZkooWYJ03kQ/maxresdefault.jpg\" data-embed-signature=\"HZWotR83n9RDNH7UEcmUmqAhtcTW9mwC1OtB8DFMaru\" data-embed-url=\"https://www.youtube.com/watch?v=ZkooWYJ03kQ\">&lt;div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"&gt;&lt;iframe src=\"https://www.youtube.com/embed/ZkooWYJ03kQ?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share;\"&gt;&lt;/iframe&gt;&lt;/div&gt;</div><h2><br /></h2><h2>Docker images with CUDA libraries</h2><p>Last but not least, we also started to distribute <a href=\"https://hub.docker.com/r/livebook/livebook/tags\" target=\"_blank\">Livebook via Docker images</a> with CUDA libraries installed.</p><p><a href=\"https://en.wikipedia.org/wiki/CUDA\" target=\"_blank\">CUDA</a> is a parallel computing platform and API that allows software to take advantage of the power of GPUs. This is particularly useful in technical fields where parallel programming can be applied, such as Machine Learning (ML).</p><p>Now running <a href=\"https://news.livebook.dev/announcing-bumblebee-gpt2-stable-diffusion-and-more-in-elixir-3Op73O\" target=\"_blank\">Stable Diffusion on your GPU directly from Livebook</a> is even easier!</p><h2>Try it!</h2><p>To play with the new features, all you need to do is:</p><ul><li><a href=\"https://livebook.dev/#install\" target=\"_blank\">Install</a> the new Livebook version</li><li>Import the notebook containing a demo of the new features by clicking on the badge below</li></ul><p><a href=\"https://livebook.dev/run?url=https%3A%2F%2Fgithub.com%2Fhugobarauna%2Flivebook-notebooks%2Fblob%2Fmain%2Fwhats_new_in_livebook_v0.8.1.livemd\" target=\"_blank\"><img src=\"https://img.announcekit.app/23401be6b9f3fe1d73307efa65dff4f0?s=a6372d9682bbb50d9caddc1f5a049e76\" alt=\"Run in Livebook\" /></a></p><p>Happy hacking!</p>",
            "url": "https://news.livebook.dev/what-s-new-in-livebook-0.8.1-NSbeg",
            "title": "What’s new in Livebook 0.8.1",
            "summary": "In this blog post, we'll take a look at some of the new features released with Livebook 0.8.1. Let's dive in! The new file inputOne of the g...",
            "date_modified": "2023-01-30T17:15:44.823Z",
            "tags": [
                "releases"
            ]
        },
        {
            "id": "213737",
            "content_html": "<p>Livebook 0.8 <a href=\"https://news.livebook.dev/announcing-bumblebee-gpt2-stable-diffusion-and-more-in-elixir-3Op73O\" target=\"_blank\">was launched a few weeks ago</a>, and the highlight of that release was the new Neural Network Smart cell. But there are many other exciting updates included as well.</p><p>In this blog post, we will showcase ten of the most noteworthy features released with Livebook 0.8.</p><h2>New mechanism for tracking how cells depend on each other</h2><p>A <a href=\"https://www.microsoft.com/en-us/research/publication/whats-wrong-with-computational-notebooks/\" target=\"_blank\">known pain point</a> of computational notebooks is reproducibility. But Livebook already solved that by enabling truly reproducible workflows. This was accomplished by the fact that the Livebook execution model is fully sequential, and there is no global mutable state.</p><p>Still, there was a downside with that fully sequential model. Whenever a cell was evaluated, all subsequent cells were marked as stale and required reevaluation. That happened regardless of whether those cells depended on the evaluated cell.</p><p>Not anymore!</p><p>This new release now tracks how cells depend on each other and only marks subsequent cells as stale if necessary. Let's see how that works.</p><p>Let's say you have four code cells like that:</p><p><img src=\"https://img.announcekit.app/628fc9d1f3a0305056929a66f48faca5?s=7eb02dbc6509b17173281eac98d98e18\" /></p><p>Look how cell 4 depends on cell 1 and cell 2, but doesn't depend on cell 3. And notice how cell 4 simulates a computation that takes some time to finish.</p><p>Before Livebook 0.8, if you changed cell 3, cell 4 would become stale, even though cell 4 didn't depend on cell 3. And you'd need to reevaluate it:</p><p><img src=\"https://img.announcekit.app/25661bfd6260b7661d40c063b56833de?s=d568beab422f28632f9b0b960870fc9d\" /></p><p>With Livebook 0.8, when you change cell 3, Livebook knows that although cell 4 is subsequent to cell 3, it doesn't depend on it, so it doesn't mark cell 4 as stale anymore:</p><p><img src=\"https://img.announcekit.app/05074fe3f14d875b1464c1beabda828c?s=404e1e6fa02f8841d41f59b1de7a2c66\" /></p><p>No more need to waste time waiting for unnecessary cell reevaluation!</p><h2>Automatic execution of doctests</h2><p>One cool feature of Elixir is Doctests. It helps you ensure that your documentation is up to date with your code.</p><p>This new release integrates Doctests natively into Livebook.</p><p>Now, whenever you evaluate a cell that contains a module definition with doctests, Livebook will automatically run those doctests for you and will show you the output:</p><p><img src=\"https://img.announcekit.app/1c0e64ba9eb59d46ae9de85d86fc1251?s=5bb29fab8d74a41c4b4d5e0fc11f746f\" /></p><p>We're planning to streamline that workflow even more in future releases.</p><h2>Render math in on-hover documentation</h2><p>Elixir has an <a href=\"https://elixir-lang.org/blog/2022/12/22/cheatsheets-and-8-other-features-in-exdoc-that-improve-the-developer-experience/\" target=\"_blank\">amazing developer experience</a> when it comes to documentation. And Livebook aims to leverage that.</p><p>Before this new release, Livebook already supported seeing the documentation of a module or function when you hover over it:</p><p><img src=\"https://img.announcekit.app/3c815a751513b3b702f66a67f632d370?s=b2ecc3dbd3efc86b69c8d112b4769c74\" /></p><p>Now, the on-hover documentation also supports those fancy math documentation of yours (based on <a href=\"https://katex.org/\" rel=\"noopener noreferrer\" target=\"_blank\">KaTeX</a>)</p><p><img src=\"https://img.announcekit.app/4010d33d33f7f3d5e4b6e5998c237308?s=4f8a71b5ec5ee1ccacf528f8ab58b658\" /></p><h2>View and delete secrets in the sidebar</h2><p>Livebook 0.7 <a href=\"https://news.livebook.dev/whats-new-in-livebook-0.7-2wOPsY\" target=\"_blank\">introduced secret management</a>. A solution to help you manage sensitive data used by your notebooks, like passwords and API keys.</p><p>With this new release, you can also view and delete those secrets in the notebook sidebar:</p><p><img src=\"https://img.announcekit.app/d27faa3ca14fbc19209395d654f70327?s=53b6ce3f808426cc6e41b511537f4ca9\" /></p><h2>Support for image input</h2><p>Livebook enables you to add <a href=\"https://hexdocs.pm/kino/Kino.Input.html\" target=\"_blank\">a variety of user inputs</a> to your notebooks, making them interactive and parametrizable.</p><p>This new release comes with a <a href=\"https://hexdocs.pm/kino/Kino.Input.html#image/2\" target=\"_blank\">new input that allows the user of your notebook to upload images</a>:</p><p><img src=\"https://img.announcekit.app/870a4e25f708ee106e0c41eea7550d2b?s=83ef779a11d70fe2d1ce10bd3d1e6c9b\" /></p><h2>Visualization of nested data as a tree view</h2><p>Inspecting a nested data structure can be hard when it gets big. For example, when you want to check the result of an HTTP API call.</p><p>With Kino 0.8 that accompanies the Livebook release, you can now visualize and inspect nested data in a tree view, so it gets easier to understand it:</p><p><img src=\"https://img.announcekit.app/782700b43f509a6711f1472427b95521?s=626e81ceb8c1cfa953846e7f34eba421\" /></p><p>This was a <a href=\"https://github.com/livebook-dev/kino/pull/208\" target=\"_blank\">community contribution</a> by <a href=\"https://twitter.com/StefanChrobot\" target=\"_blank\">Stefan Chrobot</a>. He started the project during <a href=\"https://spawnfest.org/\" target=\"_blank\">Spawnfest</a> and won 2nd place overall. Shout out to him!</p><h2>Neural Network Smart cell</h2><p>We discussed that new feature in detail <a href=\"https://news.livebook.dev/announcing-bumblebee-gpt2-stable-diffusion-and-more-in-elixir-3Op73O\" target=\"_blank\">in a previous post</a>. But it's so cool that we thought it was worth mentioning it again here.</p><p>That new Smart cell allows you to run various machine learning models directly in Livebook with just a few clicks. Here's an example of a text classification model:</p><p><img src=\"https://img.announcekit.app/ead26eb1cc4a1ce2dbf871b82fa2ff3f?s=556f779213fe1fd00ac6029b87b910f8\" /></p><h2>Slack Message Smart cell</h2><p>Let's say you want to send a notification to your Slack after your notebook completes some automation.</p><p>With the new Slack Smart cell, that's dead easy:</p><p><img src=\"https://img.announcekit.app/96e45adcb8547a7606af8d8389b33efa?s=098e232c4d59ae029fa7ebd835f301c1\" /></p><h2>Geocoding in Map Smart cell</h2><p>The Map Smart cell got even better. Now besides accepting data as latitude and longitude, you can also use the names of countries, states, cities, counties, and streets.</p><p>Let's see how that works:</p><p><img src=\"https://img.announcekit.app/de8d4396bdadb78a80a9f2266d4d26b5?s=78a02941b2a32f23a6056cd4eb0dfa5d\" /></p><h2>More options to configure charts with the Chart Smart Cell</h2><p>We added new options to help you customize your charts even more.</p><p>You can now toggle the <strong>bin</strong> config to discretize numeric values into a set of bins. This is useful for creating histograms, for example. Here's how it works:</p><p><img src=\"https://img.announcekit.app/38153f13b4e32b0d7c61e5ffdb5a66c7?s=2dec7c7ed1278c57360a21bcd5f12747\" /></p><p>Another new option is the <strong>color scheme</strong>. You can now choose your chart's color from a set of named color palettes. Here's how it works:</p><p><img src=\"https://img.announcekit.app/9048d7fb75793dbc3ec3645df476b7b1?s=ae690e5680d84990f720e5cea9da1c8e\" /></p><p>Last but not least, let's check the new <strong>scale config</strong>. You can use it to change the scale type of your chart, for example, from a linear to a log scale. Let's see how it works:</p><p><img src=\"https://img.announcekit.app/abf33ee570cbef793cedba5ce11c27be?s=fd59ecc2dd2d30c144a97d17385844a2\" /></p><h2>Try it!</h2><p>To play with the new features, all you need to do is:</p><ul><li><a href=\"https://livebook.dev/#install\" target=\"_blank\">Install</a> the new Livebook version</li><li>Import a notebook containing a demo of the new features by clicking on the badge below</li></ul><p><a href=\"https://livebook.dev/run?url=https%3A%2F%2Fgithub.com%2Fhugobarauna%2Flivebook-notebooks%2Fblob%2Fmain%2Fwhats_new_in_livebook_v08.livemd\" target=\"_blank\"><img src=\"https://img.announcekit.app/a68ad7a0f934ac9d17878718f4917420?s=d8fde468ada46043629e3223b151b4a4\" alt=\"Run in Livebook\" /></a></p><p>Happy hacking!</p>",
            "url": "https://news.livebook.dev/whats-new-in-livebook-0.8-4gQiEE",
            "title": "What's new in Livebook 0.8",
            "summary": "This post showcases ten of the most noteworthy features released with Livebook 0.8.",
            "date_modified": "2023-01-12T12:56:55.793Z",
            "tags": [
                "releases"
            ]
        }
    ]
}