<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Elixir on Poeticoding</title><link>https://www.poeticoding.com/category/elixir/</link><description>Recent content in Elixir on Poeticoding</description><generator>Hugo</generator><language>en</language><lastBuildDate>Fri, 05 Sep 2025 12:09:26 +0000</lastBuildDate><atom:link href="https://www.poeticoding.com/category/elixir/index.xml" rel="self" type="application/rss+xml"/><item><title>Nerves powered Vision - Deploy YOLOv8 on RPi5 with Hailo8L</title><link>https://www.poeticoding.com/nerves-powered-vision-deploy-yolov8-on-rpi5-with-hailo8l/</link><pubDate>Fri, 05 Sep 2025 10:53:08 +0000</pubDate><guid>https://www.poeticoding.com/nerves-powered-vision-deploy-yolov8-on-rpi5-with-hailo8l/</guid><description>&lt;div class="video">&lt;iframe src="https://www.youtube-nocookie.com/embed/eYamm3CEH9c" title="YouTube video" loading="lazy" allow="accelerometer; encrypted-media; gyroscope; picture-in-picture" allowfullscreen referrerpolicy="strict-origin-when-cross-origin">&lt;/iframe>&lt;/div>

&lt;ul>
&lt;li>YOLO for Elixir: &lt;a href="https://github.com/poeticoding/yolo_elixir" target="_blank" rel="noopener">https://github.com/poeticoding/yolo_elixir&lt;/a>&lt;/li>
&lt;li>&lt;code>NxHailo&lt;/code> repo: &lt;a href="https://github.com/vittoriabitton/nx_hailo" target="_blank" rel="noopener">https://github.com/vittoriabitton/nx_hailo&lt;/a>&lt;/li>
&lt;li>Hailo model zoo: &lt;a href="https://github.com/hailo-ai/hailo_model_zoo/" target="_blank" rel="noopener">https://github.com/hailo-ai/hailo_model_zoo/&lt;/a>&lt;/li>
&lt;li>&lt;code>nerves_system_rpi5&lt;/code>: &lt;a href="https://github.com/nerves-project/nerves_system_rpi5" target="_blank" rel="noopener">https://github.com/nerves-project/nerves_system_rpi5&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Most of the code used in the video: &lt;a href="https://github.com/vittoriabitton/nx_hailo/blob/main/nx_hailo/livebooks/remote_device_inference.livemd" target="_blank" rel="noopener">https://github.com/vittoriabitton/nx_hailo/blob/main/nx_hailo/livebooks/remote_device_inference.livemd&lt;/a>&lt;/p></description></item><item><title>Building a YOLOX Plate Detector - Setup, Fine-Tuning, Metrics, Dashcam inference</title><link>https://www.poeticoding.com/building-a-yolox-plate-detector-setup-fine-tuning-metrics-dashcam-inference/</link><pubDate>Fri, 29 Aug 2025 17:04:59 +0000</pubDate><guid>https://www.poeticoding.com/building-a-yolox-plate-detector-setup-fine-tuning-metrics-dashcam-inference/</guid><description>&lt;div class="video">&lt;iframe src="https://www.youtube-nocookie.com/embed/xPJqoX0EYKE" title="YouTube video" loading="lazy" allow="accelerometer; encrypted-media; gyroscope; picture-in-picture" allowfullscreen referrerpolicy="strict-origin-when-cross-origin">&lt;/iframe>&lt;/div>

&lt;h3 id="links">Links&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="https://github.com/Megvii-BaseDetection/YOLOX" target="_blank" rel="noopener">YOLOX GitHub Repo&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://universe.roboflow.com/roboflow-universe-projects/license-plate-recognition-rxg4e" target="_blank" rel="noopener">Roboflow License Plates dataset&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="notes-and-code">Notes and Code&lt;/h2>
&lt;h3 id="install-yolox-and-needed-deps">Install YOLOX and needed deps&lt;/h3>
&lt;p>Download YOLOX GitHub repo: &lt;a href="https://github.com/Megvii-BaseDetection/YOLOX" target="_blank" rel="noopener">https://github.com/Megvii-BaseDetection/YOLOX&lt;/a>&lt;/p>
&lt;p>Then be sure you are using Python &amp;lt;= 3.11 (I had some issues with python 3.12 and switching to 3.11 made all much easier).&lt;/p></description></item><item><title>Fine-Tuning YOLO to Watch Soccer Matches</title><link>https://www.poeticoding.com/fine-tuning-yolo-to-watch-soccer-matches/</link><pubDate>Thu, 17 Jul 2025 15:14:24 +0000</pubDate><guid>https://www.poeticoding.com/fine-tuning-yolo-to-watch-soccer-matches/</guid><description>&lt;div class="video">&lt;iframe src="https://www.youtube-nocookie.com/embed/m7nO5jtpc_w" title="YouTube video" loading="lazy" allow="accelerometer; encrypted-media; gyroscope; picture-in-picture" allowfullscreen referrerpolicy="strict-origin-when-cross-origin">&lt;/iframe>&lt;/div>

&lt;p>Today we&amp;rsquo;re diving into something really cool: fine-tuning YOLO models for soccer detection. We&amp;rsquo;re going to detect &lt;code>ball&lt;/code>s, &lt;code>referee&lt;/code>s, &lt;code>player&lt;/code>s, and &lt;code>goalkeeper&lt;/code>s in soccer matches using &lt;a href="https://docs.ultralytics.com/modes/train/" target="_blank" rel="noopener">Ultralytics&amp;rsquo; fine-tuning tools&lt;/a>.&lt;/p>
&lt;p>The popular YOLO models you&amp;rsquo;ll find out there, like &lt;a href="https://docs.ultralytics.com/models/yolo11/" target="_blank" rel="noopener">Ultralytics YOLOv11&lt;/a>, and &lt;a href="https://github.com/Megvii-BaseDetection/YOLOX" target="_blank" rel="noopener">YOLOX&lt;/a> in different sizes, are mostly pre-trained on something called the &lt;a href="https://cocodataset.org/" target="_blank" rel="noopener">COCO dataset&lt;/a>.&lt;/p></description></item><item><title>Elixir YOLO v0.2.0: YOLOX Support, Custom Models and Performance Boost</title><link>https://www.poeticoding.com/elixir-yolo-v0-2-0-yolox-support-custom-models-and-performance-boost/</link><pubDate>Thu, 26 Jun 2025 15:59:25 +0000</pubDate><guid>https://www.poeticoding.com/elixir-yolo-v0-2-0-yolox-support-custom-models-and-performance-boost/</guid><description>&lt;div class="video">&lt;iframe src="https://www.youtube-nocookie.com/embed/Jq4eU2WguK0" title="YouTube video" loading="lazy" allow="accelerometer; encrypted-media; gyroscope; picture-in-picture" allowfullscreen referrerpolicy="strict-origin-when-cross-origin">&lt;/iframe>&lt;/div>

&lt;p>&lt;a href="https://github.com/poeticoding/yolo_elixir/releases/tag/0.2.0" target="_blank" rel="noopener">https://github.com/poeticoding/yolo_elixir/releases/tag/0.2.0&lt;/a>&lt;/p>
&lt;p>In the four months since my daughter was born, I’ve been balancing baby bottles by night and code commits by day. Finally managed to ship this release, sleep-deprived, but very proud!&lt;/p>
&lt;p>This isn’t just a version bump, it’s a major release, introducing three key enhancements:&lt;/p></description></item><item><title>Effortless Video Sharing with Phoenix LiveView and FLAME</title><link>https://www.poeticoding.com/effortless-video-sharing-with-phoenix-liveview-and-flame/</link><pubDate>Thu, 28 Nov 2024 18:09:06 +0000</pubDate><guid>https://www.poeticoding.com/effortless-video-sharing-with-phoenix-liveview-and-flame/</guid><description>&lt;p>As someone who loves experimenting with new technologies, I recently got the Vision Pro (I’m a big fan of VR and the idea of working in mixed reality). What excites me the most is sharing the cool stuff I discover, with my friends and colleagues, like how amazing it is to have a floating 3D model in mixed reality, built with just a few lines of Swift code.&lt;/p></description></item><item><title>Phoenix LiveView LiveComponents</title><link>https://www.poeticoding.com/phoenix-liveview-livecomponents/</link><pubDate>Tue, 23 Nov 2021 16:09:36 +0000</pubDate><guid>https://www.poeticoding.com/phoenix-liveview-livecomponents/</guid><description>&lt;div class="video">&lt;iframe src="https://www.youtube-nocookie.com/embed/U2D2woBthcc" title="YouTube video" loading="lazy" allow="accelerometer; encrypted-media; gyroscope; picture-in-picture" allowfullscreen referrerpolicy="strict-origin-when-cross-origin">&lt;/iframe>&lt;/div>

&lt;p>&lt;a href="https://www.poeticoding.com/introductory-phoenix-liveview-course/">&lt;strong>Course Index page&lt;/strong>&lt;/a>&lt;/p>
&lt;h2 id="code">Code&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://github.com/poeticoding/poeticoins/tree/live-component" target="_blank" rel="noopener">&lt;code>live-component&lt;/code> branch&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/poeticoding/poeticoins/pull/18" target="_blank" rel="noopener">Pull Request&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/poeticoding/poeticoins/blob/live-component/lib/poeticoins_web/live/product_component.ex" target="_blank" rel="noopener">&lt;code>product_component.ex&lt;/code>&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="links">Links&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://hexdocs.pm/phoenix_live_view/Phoenix.LiveComponent.html" target="_blank" rel="noopener">Phoenix.LiveComponent&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://hexdocs.pm/phoenix_live_view/Phoenix.LiveView.Helpers.html#live_component/4" target="_blank" rel="noopener">&lt;code>live_component/4&lt;/code>&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://hexdocs.pm/phoenix_live_view/Phoenix.LiveComponent.html#module-stateful-components-life-cycle" target="_blank" rel="noopener">Stateful components&lt;/a>&lt;/li>
&lt;/ul>
&lt;hr>
&lt;p>We&amp;rsquo;ve just started to build our &lt;a href="https://github.com/poeticoding/poeticoins/blob/dashboard-ui/lib/poeticoins_web/live/crypto_dashboard_live.ex" target="_blank" rel="noopener">&lt;code>CryptoDashboardLive&lt;/code> view&lt;/a>, and we already have the feeling that the we are piling up a lot of code into the single &lt;code>CryptoDashboardLive&lt;/code> module. It&amp;rsquo;s not just about the template in the &lt;a href="https://github.com/poeticoding/poeticoins/blob/dashboard-ui/lib/poeticoins_web/live/crypto_dashboard_live.ex#L11" target="_blank" rel="noopener">&lt;code>render/1&lt;/code>&lt;/a> function, we could easily move it into a &lt;code>.leex&lt;/code> file. The risk is to find us with a single massive live view module which handles every aspect of our page, making che code hard to read and maintain. This page already has different parts with different responsibilities, for example: product cards where each one shows its product price, a toolbar with a dropdown to add products to the dashboard&amp;hellip;&lt;/p></description></item><item><title>Compile Elixir applications into single executable binaries, with Bakeware</title><link>https://www.poeticoding.com/compile-elixir-applications-into-single-executable-binaries-with-bakeware/</link><pubDate>Thu, 22 Oct 2020 16:24:50 +0000</pubDate><guid>https://www.poeticoding.com/compile-elixir-applications-into-single-executable-binaries-with-bakeware/</guid><description>&lt;div class="video">&lt;iframe src="https://www.youtube-nocookie.com/embed/ML5hQjPQL7A" title="YouTube video" loading="lazy" allow="accelerometer; encrypted-media; gyroscope; picture-in-picture" allowfullscreen referrerpolicy="strict-origin-when-cross-origin">&lt;/iframe>&lt;/div>

&lt;p>&lt;a href="https://github.com/spawnfest/bakeware/" target="_blank" rel="noopener">Bakeware&lt;/a> is a new fantastic tool, built (by &lt;a href="https://github.com/fhunleth" target="_blank" rel="noopener">Frank Hunleth&lt;/a>, &lt;a href="https://github.com/jjcarstens" target="_blank" rel="noopener">Jon Carstens&lt;/a> and &lt;a href="https://github.com/ConnorRigby" target="_blank" rel="noopener">Connor Rigby&lt;/a>) over a weekend for the &lt;a href="https://spawnfest.github.io/" target="_blank" rel="noopener">SpawnFest 2020&lt;/a>, which compiles an Elixir, a Scenic or a Phoenix application into single executable binary (yes, like go-lang!). It can be extremely useful to distribute our apps, especially when they are command-line tools or Scenic applications.&lt;/p></description></item><item><title>Yet Another Guide To Build a JSON API with Phoenix 1.5</title><link>https://www.poeticoding.com/another-guide-to-build-a-json-api-with-phoenix-1-5/</link><pubDate>Tue, 06 Oct 2020 20:36:16 +0000</pubDate><guid>https://www.poeticoding.com/another-guide-to-build-a-json-api-with-phoenix-1-5/</guid><description>&lt;p>We are going to build a polling app step-by-step. It will be similar to &lt;a href="http://strawpoll.me/" target="_blank" rel="noopener">strawpoll.me&lt;/a> where users can create and vote on polls and see the results in real-time.&lt;/p>
&lt;figure>&lt;img src="https://www.poeticoding.com/another-guide-to-build-a-json-api-with-phoenix-1-5/aa_strawpoll.png" alt="" loading="lazy" width="1398" height="606">&lt;/figure>&lt;p>In this blogpost we will only create the basic version of this app and in later blog posts we will add more features like authentication, ip blocking, different voting types and more.&lt;/p></description></item><item><title>LiveView click event and offsetX, offsetY coordinates</title><link>https://www.poeticoding.com/liveview-click-event-and-offsetx-offsety-coordinates/</link><pubDate>Thu, 19 Mar 2020 17:05:47 +0000</pubDate><guid>https://www.poeticoding.com/liveview-click-event-and-offsetx-offsety-coordinates/</guid><description>&lt;p>&lt;a href="https://www.poeticoding.com/how-to-setup-phoenix-liveview/">Phoenix LiveView&lt;/a> plays fantastically well with SVG elements, making really easy to render dynamic images, without writing any JavaScript code.&lt;/p>
&lt;p>There are different &lt;a href="https://hexdocs.pm/phoenix_live_view/Phoenix.LiveView.html#module-bindings" target="_blank" rel="noopener">bindings&lt;/a> we can use to register and react to user interaction, one of these is &lt;code>phx-click&lt;/code>. By adding &lt;code>phx-click=&amp;quot;clicked&amp;quot;&lt;/code> attribute to an element in our LiveView, when user clicks the element, a &lt;code>&amp;quot;clicked&amp;quot;&lt;/code> event is sent to the LiveView process.&lt;/p></description></item><item><title>Phoenix LiveView JavaScript Hooks and Select2</title><link>https://www.poeticoding.com/phoenix-liveview-javascript-hooks-and-select2/</link><pubDate>Wed, 05 Feb 2020 11:48:10 +0000</pubDate><guid>https://www.poeticoding.com/phoenix-liveview-javascript-hooks-and-select2/</guid><description>&lt;p>&lt;a href="https://www.poeticoding.com/using-select2-with-phoenix-liveview/">We&amp;rsquo;ve already played with Select2 and LiveView&lt;/a>, it was before the release of &lt;a href="https://hexdocs.pm/phoenix_live_view/Phoenix.LiveView.html#module-js-interop-and-client-controlled-dom" target="_blank" rel="noopener">LiveView JS Hooks&lt;/a>. To make select2 work with LiveView we had to listen to &lt;code>phx:update&lt;/code> generic javascript events, re-initialize select2 and use a workaround to push events from the browser to LiveView.&lt;/p></description></item><item><title>Real-time Object Detection with Phoenix and Python</title><link>https://www.poeticoding.com/real-time-object-detection-with-phoenix-and-python/</link><pubDate>Thu, 16 Jan 2020 18:43:14 +0000</pubDate><guid>https://www.poeticoding.com/real-time-object-detection-with-phoenix-and-python/</guid><description>&lt;p>This article is not just about Machine Learning and Object Detection, it&amp;rsquo;s about Elixir interoperability and how we can take advantage of the Python&amp;rsquo;s fantastic set of ML libraries, bringing their features into the Elixir world.&lt;/p>
&lt;p>We see how to bring &lt;a href="https://pjreddie.com/darknet/yolo/" target="_blank" rel="noopener">YOLO&lt;/a>, a state-of-the-art real-time object detection system, in a Phoenix web app.&lt;/p></description></item><item><title>ExAws with DigitalOcean Spaces</title><link>https://www.poeticoding.com/exaws-with-digitalocean-spaces/</link><pubDate>Wed, 04 Dec 2019 14:39:32 +0000</pubDate><guid>https://www.poeticoding.com/exaws-with-digitalocean-spaces/</guid><description>&lt;p>When you are hosting an Elixir/Phoenix app in DigitalOcean you may want to use &lt;a href="https://www.digitalocean.com/products/spaces/" target="_blank" rel="noopener">Spaces&lt;/a>, the DigitalOcean&amp;rsquo;s cloud storage alternative to AWS S3.&lt;/p>
&lt;p>When you are hosting an Elixir/Phoenix app in DigitalOcean you may want to use &lt;a href="https://www.digitalocean.com/products/spaces/" target="_blank" rel="noopener">Spaces&lt;/a>, the DigitalOcean&amp;rsquo;s cloud storage alternative to AWS S3 &lt;em>(If you want to use AWS S3 instead, you can read &lt;a href="https://www.poeticoding.com/aws-s3-in-elixir-with-exaws/">AWS S3 in Elixir with ExAws&lt;/a>&lt;/em>).&lt;/p></description></item><item><title>AWS S3 in Elixir with ExAws</title><link>https://www.poeticoding.com/aws-s3-in-elixir-with-exaws/</link><pubDate>Thu, 28 Nov 2019 18:06:52 +0000</pubDate><guid>https://www.poeticoding.com/aws-s3-in-elixir-with-exaws/</guid><description>&lt;div class="video">&lt;iframe src="https://www.youtube-nocookie.com/embed/gSGu5wXeS1c" title="YouTube video" loading="lazy" allow="accelerometer; encrypted-media; gyroscope; picture-in-picture" allowfullscreen referrerpolicy="strict-origin-when-cross-origin">&lt;/iframe>&lt;/div>

&lt;p>In this article we see how to store and retrieve files on &lt;a href="https://aws.amazon.com/s3/" target="_blank" rel="noopener">AWS S3&lt;/a> using Elixir and with the help of &lt;a href="https://github.com/ex-aws/ex_aws" target="_blank" rel="noopener">ExAws&lt;/a>. &lt;em>(If you want to use ExAws with DigitalOcean Spaces instead, you can&lt;/em> &lt;em>read &lt;a href="https://www.poeticoding.com/exaws-with-digitalocean-spaces/">ExAws with DigitalOcean Spaces&lt;/a>)&lt;/em>&lt;/p></description></item><item><title>Understanding Phoenix LiveView: build a Gallery app</title><link>https://www.poeticoding.com/understanding-liveview-build-a-gallery-app/</link><pubDate>Wed, 20 Nov 2019 17:50:13 +0000</pubDate><guid>https://www.poeticoding.com/understanding-liveview-build-a-gallery-app/</guid><description>&lt;div class="video">&lt;iframe src="https://www.youtube-nocookie.com/embed/P5TvNf65LLw" title="YouTube video" loading="lazy" allow="accelerometer; encrypted-media; gyroscope; picture-in-picture" allowfullscreen referrerpolicy="strict-origin-when-cross-origin">&lt;/iframe>&lt;/div>

&lt;p>&lt;strong>Understanding Phoenix LiveView&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://www.poeticoding.com/how-to-setup-phoenix-liveview/">Setup&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.poeticoding.com/the-primitives-of-phoenix-liveview/">The Primitives&lt;/a>&lt;/li>
&lt;li>Building a Gallery app (this article)&lt;/li>
&lt;/ul>
&lt;p>In the previous articles we&amp;rsquo;ve seen &lt;a href="https://www.poeticoding.com/how-to-setup-phoenix-liveview/">how to setup Phoenix LiveView&lt;/a> and &lt;a href="https://www.poeticoding.com/the-primitives-of-phoenix-liveview/">built a counter&lt;/a> (which is like the &amp;ldquo;Hello World&amp;rdquo; code example in the LiveView world). We’ve also taken a look at the &lt;a href="https://www.poeticoding.com/the-primitives-of-phoenix-liveview/">live-cycle&lt;/a>, inspecting websocket messages, having a glimpse of how the things work under the hood.&lt;/p></description></item><item><title>The Primitives of Phoenix LiveView</title><link>https://www.poeticoding.com/the-primitives-of-phoenix-liveview/</link><pubDate>Tue, 12 Nov 2019 16:30:21 +0000</pubDate><guid>https://www.poeticoding.com/the-primitives-of-phoenix-liveview/</guid><description>&lt;div class="video">&lt;iframe src="https://www.youtube-nocookie.com/embed/gPSXxtgmyB8" title="YouTube video" loading="lazy" allow="accelerometer; encrypted-media; gyroscope; picture-in-picture" allowfullscreen referrerpolicy="strict-origin-when-cross-origin">&lt;/iframe>&lt;/div>

&lt;p>&lt;strong>Understanding Phoenix LiveView&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://www.poeticoding.com/how-to-setup-phoenix-liveview/">Setup&lt;/a>&lt;/li>
&lt;li>The Primitives (this article)&lt;/li>
&lt;li>&lt;a href="https://www.poeticoding.com/understanding-liveview-build-a-gallery-app/">Building a Gallery app&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>In the previous article we saw &lt;a href="https://www.poeticoding.com/how-to-setup-phoenix-liveview/">how to setup Phoenix LiveView&lt;/a>, in order to have everything we need to build a simple LiveView &lt;em>gallery app&lt;/em>.&lt;/p></description></item><item><title>How to Setup Phoenix LiveView</title><link>https://www.poeticoding.com/how-to-setup-phoenix-liveview/</link><pubDate>Tue, 29 Oct 2019 17:18:48 +0000</pubDate><guid>https://www.poeticoding.com/how-to-setup-phoenix-liveview/</guid><description>&lt;p>&lt;em>Updated for LiveView &lt;strong>0.11.0 - 7th April 2020&lt;/strong>&lt;/em>&lt;/p>
&lt;p>&lt;strong>Understanding Phoenix LiveView&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Setup &lt;em>(this)&lt;/em>&lt;/li>
&lt;li>&lt;a href="https://www.poeticoding.com/the-primitives-of-phoenix-liveview/">The Primitives&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.poeticoding.com/understanding-liveview-build-a-gallery-app/">Build a Gallery app&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>&lt;a href="https://github.com/phoenixframework/phoenix_live_view" target="_blank" rel="noopener">Phoenix LiveView&lt;/a> has been released on &lt;a href="https://hex.pm/packages/phoenix_live_view" target="_blank" rel="noopener">Hex&lt;/a>! Although it&amp;rsquo;s still not a stable release (at the time of writing &lt;strong>0.11.0&lt;/strong>), it works really well and it&amp;rsquo;s packed of cool features.&lt;/p></description></item><item><title>Creating Thumbnails of uploaded Images and PDF in Phoenix</title><link>https://www.poeticoding.com/creating-thumbnails-of-uploaded-images-and-pdf-in-phoenix/</link><pubDate>Wed, 15 May 2019 18:28:04 +0000</pubDate><guid>https://www.poeticoding.com/creating-thumbnails-of-uploaded-images-and-pdf-in-phoenix/</guid><description>&lt;ul>
&lt;li>Part 1: &lt;a href="https://www.poeticoding.com/step-by-step-tutorial-to-build-a-phoenix-app-that-supports-user-uploads/">Step-by-Step Tutorial to Build a Phoenix App that Supports User Upload&lt;/a>&lt;/li>
&lt;li>Part 2: this article&lt;/li>
&lt;li>Part 3: &lt;a href="https://www.poeticoding.com/add-a-progress-bar-in-the-phoenix-file-upload-app/">Add a Progress Bar in the Phoenix File Upload app&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>In &lt;a href="https://www.poeticoding.com/step-by-step-tutorial-to-build-a-phoenix-app-that-supports-user-uploads/">Step-by-Step Tutorial to Build a Phoenix App that Supports User Upload&lt;/a> we&amp;rsquo;ve built from scratch a Phoenix application where users can upload and download their files. We saw how to deal with uploads, saving them locally, using Ecto and Postgres database to save file&amp;rsquo;s details like size, filename, hash etc.&lt;/p></description></item><item><title>Step-by-Step Tutorial to Build a Phoenix App that Supports User Upload</title><link>https://www.poeticoding.com/step-by-step-tutorial-to-build-a-phoenix-app-that-supports-user-uploads/</link><pubDate>Wed, 17 Apr 2019 15:00:23 +0000</pubDate><guid>https://www.poeticoding.com/step-by-step-tutorial-to-build-a-phoenix-app-that-supports-user-uploads/</guid><description>&lt;ul>
&lt;li>Part 1: this article&lt;/li>
&lt;li>Part 2: &lt;a href="https://www.poeticoding.com/creating-thumbnails-of-uploaded-images-and-pdf-in-phoenix/">Creating Thumbnails of uploaded Images and PDF in Phoenix&lt;/a>&lt;/li>
&lt;li>Part 3: &lt;a href="https://www.poeticoding.com/add-a-progress-bar-in-the-phoenix-file-upload-app/">Add a Progress Bar in the Phoenix File Upload app&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>There are many ways to let users upload their files to our Phoenix app, including reliable libraries that manage the uploads for us, saving the files securely on cloud storage.&lt;/p></description></item><item><title>Hashing a File in Elixir</title><link>https://www.poeticoding.com/hashing-a-file-in-elixir/</link><pubDate>Wed, 10 Apr 2019 15:47:11 +0000</pubDate><guid>https://www.poeticoding.com/hashing-a-file-in-elixir/</guid><description>&lt;p>A &lt;strong>hash function&lt;/strong> is a function that converts a variable size sequence of bytes (a string, a file content etc.) to a fixed size sequence of bytes, called &lt;strong>digest&lt;/strong>. This means that hashing a file of any length, the hash function will always return the same unique sequence of bytes for that file. It&amp;rsquo;s a sort of digital fingerprint, usually represented by an hexadecimal string of length between 32 and 128 characters.&lt;/p></description></item><item><title>Elixir Stream and large HTTP responses: processing text</title><link>https://www.poeticoding.com/elixir-stream-and-large-http-responses-processing-text/</link><pubDate>Wed, 03 Apr 2019 16:02:19 +0000</pubDate><guid>https://www.poeticoding.com/elixir-stream-and-large-http-responses-processing-text/</guid><description>&lt;ul>
&lt;li>Part 1 - &lt;a href="https://www.poeticoding.com/elixir-streams-to-process-large-http-responses-on-the-fly/">Elixir Stream to process large HTTP responses on the fly&lt;/a>&lt;/li>
&lt;li>Part 2 - &lt;em>this article&lt;/em>&lt;/li>
&lt;/ul>
&lt;p>You find the code, of this and the previous article, on &lt;a href="https://github.com/poeticoding/httpstream_articles" target="_blank" rel="noopener">poeticoding/httpstream_articles&lt;/a> GitHub repo. The code at this repo is not meant for production use, is just part of the examples of these articles.&lt;/p></description></item></channel></rss>