My friend Raphaël produces a small yet mighty telescope.| Lucas Sifoni
How Elixir's runtime code discovery enables safe, discoverable, and UI-driven data cleaning scripts| Lucas Sifoni
How hot code loading solves client-specific engineering problems in my startup Alzo| Lucas Sifoni
From a fresh ubuntu 22.04 ARM VM to embedded Elixir with nerves_system_rpi3 & circuits_quickstart| lucassifoni.info
Fostering community around a simple yet truly needed project.| Lucas Sifoni
Files & description to build a simple 3D printed crayford focuser| Lucas Sifoni
What was worked on this year| Lucas Sifoni
Notes from the conferences at 35c3 Leipzig - Robert Tibbo : An update on Snowden Refugees| Lucas Sifoni
Notes from the conferences at 35c3 Leipzig - Safe and secure PCI device drivers in high-level languages| Lucas Sifoni
Notes from the conferences at 35c3 Leipzig - Deep underground stars| Lucas Sifoni
Notes from the conferences at 35c3 Leipzig - Symbiflow : GCC for FPGAs ?| Lucas Sifoni
Notes from the conferences at 35c3 Leipzig - What the fax ?| Lucas Sifoni
Mobile-optimized web tools for amateur telescope makers - spherometer calculators, sine table generator, and hyperbolic mirror conic calculations| Lucas Sifoni
My second foucault tester, unneededly bulky| Lucas Sifoni
Elixir NIFs for Meilisearch's Charabia crate.| Lucas Sifoni
Run DFTFringe on Mac ARM via a VM| Lucas Sifoni
Fast poisson disk sampling in 2D in Elixir (& Elixir + Rust), also multi-radius disk placement based on the same method| Lucas Sifoni
Polishing technique| Lucas Sifoni
Fingerprinting images with perceptual hashes, with rust, from elixir| Lucas Sifoni
Writing an engine sounds fun, doesn't it ?| Lucas Sifoni
Major upgrades to my telescope's upper assembly - adding a Strock-style spider, filter slide system, crayford focuser, and 3D-printed 1:10 reducer| Lucas Sifoni
Field testing my hyperbolized 200mm f/3.52 mirror with an MPCC corrector - achieving well-corrected large field of view with a fast mirror without a Paracorr| Lucas Sifoni
Another attempt at the blog exercise| Lucas Sifoni
A talk on the Astro-FR discord.| Lucas Sifoni
Reflections in hindsight of this mirror.| Lucas Sifoni
Second entry of my build log| Lucas Sifoni
Third entry of my build log| Lucas Sifoni
Fourth entry of my build log| Lucas Sifoni
Fifth entry of my build log| Lucas Sifoni
Sixth entry of my build log| Lucas Sifoni
Seventh entry of my build log| Lucas Sifoni
Seventh entry of my build log| Lucas Sifoni
First entry of my build log| Lucas Sifoni
How I approach writing software that will work with, or use a hardware interface| Lucas Sifoni
ATM-Buddy gets a spray-silvering calculator.| Lucas Sifoni
After some unsuccessful attempts, a first successful mirror spray silvering.| Lucas Sifoni
A better outcome with spray silvering.| Lucas Sifoni
Browser-based tool to generate SVG zone plates and megapinholes for experimental photography - tested with Canon EOS 550D and ready for imagesetting| Lucas Sifoni
Hot code loading and third party (node, java) interops from Elixir| Lucas Sifoni
Creating a server-side drawing API for HTML5 Canvas - using Elixir to generate optimized JavaScript commands for a circular PONG game| Lucas Sifoni
Spreadsheet-like reactive computations in Elixir with automatic dependency tracking. Framework-independent approach to computed properties.| Lucas Sifoni
How to implement computed properties in Phoenix LiveView using pure functional patterns. Practical examples for managing state without dependency graphs.| Lucas Sifoni
Comparing five pointer implementation strategies for accessing nested data in Elixir - benchmarking closures, pattern matching, and inter-process access patterns| Lucas Sifoni
A detective story of 18k outbound requests per minute from a WordPress site to Spotify - tracing back to uncached oEmbed fields and bot traffic| Lucas Sifoni
A code archaeology expedition from Elixir through Erlang to C - tracing how send_file uses the Linux kernel's zero-copy optimization for file transfers| Lucas Sifoni
Building a distributed audio transcription system with Elixir nodes, Bumblebee, and Whisper - splitting work across multiple computers without system configuration| Lucas Sifoni
Using dynamic nodes to protect your BEAM from dangerous NIFs - a practical approach to isolating risky C code while keeping your main application safe| Lucas Sifoni
Creating an art installation that generates real clouds controlled by electromagnetic field sensors - built with Elixir, Nerves, and LiveView| Lucas Sifoni
SmartLogic podcast interview about building a remote-controlled telescope with Elixir, Nerves, and LiveView - expanding on my Code BEAM EU 2023 presentation| Lucas Sifoni
French language talk at Maison de l'Architecture Occitanie-Pyrénées about creating domain-specific languages for automating design workflows| Lucas Sifoni
The curious case of misspelled .gitignore files on GitHub - how common typos like .gitigore can lead to unwanted files being committed| Lucas Sifoni
Step-by-step guide to running Erlang and Elixir on ESP32 microcontrollers with AtomVM - from toolchain setup to Hello World examples| Lucas Sifoni
Implementing OpenAI's Whisper speech-to-text model in Elixir with Bumblebee - a simple GenServer solution that replaces a complex Python microservices stack| Lucas Sifoni
A nice hot sauce recipe| Lucas Sifoni
Three approaches to integrating other languages with Elixir - generating code, embedding foreign code, and building instruction sets for cross-language orchestration| Lucas Sifoni
From zero to execution for Ovo, a toy programming language.| Lucas Sifoni
Peace in the midst of frontend hardships| Lucas Sifoni
The evolution of a media upload system that started with JPG, PNG, and SVG but evolved to support PDFs with text selection - balancing technical purity with user workflows| Lucas Sifoni
Finding and reporting a massive vulnerability just to be legally threatened| Lucas Sifoni
3D printable XYZ platform with 40mm+ travel using only M4 hardware - tested design for Bath interferometers with coarse/fine motion capabilities| Lucas Sifoni
Building a terrestrial telescope with Nerves, Rust NIFs, and Phoenix LiveView - full talk transcript with slides from Code BEAM EU 2023| Lucas Sifoni
Building a custom tokenizer for the Ovo2 language in Elixir - parsing strings, keywords, and pattern-matching with recursive functions| Lucas Sifoni
Building parser combinators in Elixir to transform token streams into an AST - implementing either/any combinators and value parsers for the Ovo2 language| Lucas Sifoni
Implementing an AST printer and parser feedback loop for the Ovo2 language - creating a round-trip workflow to validate parsing correctness| Lucas Sifoni
Evaluation of Ovo2 by walking its AST| Lucas Sifoni
Adding basic recursive abilities to ovo2| Lucas Sifoni
Going off the rails with Ovo2| Lucas Sifoni
Creating a visual programming environment with Phoenix LiveView for Ovo2 - building the canonical 99 bottles of beer program using runner chaining and inter-program communication| Lucas Sifoni
First part of my journey reimplementing Ovo2 in Elixir - from TypeScript to the BEAM, exploring language design for pure data transformations| Lucas Sifoni
Comparing circular buffer vs cascading bucket approaches for time-windowed data averages in Elixir for embedded systems| Lucas Sifoni
Experimenting with direct DOM manipulation from Elixir - batched and sequential DOM operations without hooks for complex LiveView applications| Lucas Sifoni
How hot code loading solves client-specific engineering problems in my startup Alzo| lucassifoni.info