Sign in

Tyler Barker

@tylerbarker.com
308 followers 342 following 46 posts

Dev in Aus 🇦🇺 Building with #ElixirLang tylerbarker.com

PostsRepliesMedia
Tyler Barker @tylerbarker.com · 19/07/2025
The real reason to get a split keyboard 🧠
An office desk with two KRK studio monitors, a MacBook Pro and external display, a midi piano keyboard and split ergo keyboard, with Reason open for music making.
060
Tyler Barker @tylerbarker.com · 16/07/2025
Phoenix LiveView 1.1 is an exciting release in a lot of ways, but the highlight for me is the JS is getting types! Huge thanks to the maintainers 💜 github.com/phoenixframe...
github.com
0194
Tyler Barker @tylerbarker.com · 22/06/2025
Have you tried the agentic editing in @zed.dev? Pretty incredible.
010
Tyler Barker @tylerbarker.com · 18/04/2025
Thanks Rodrigue! Really appreciate that :)
010
Tyler Barker @tylerbarker.com · 18/04/2025
Indefinite Hiatus: tylerbarker.com/posts/indefi...
tylerbarker.com
Indefinite Hiatus - Tyler Barker
For anyone following my work, it will have become quite obvious in recent months that Prototape, and the Tape Echoes podcast/blog has received exactly zero updates. I’m not quite ready...
120
Reposted by Tyler Barker
Christopher Grainger @cigrainger.bsky.social · 01/04/2025
So I've mentioned that I'm working on a new library for extremely pluggable/composable LLM workflows, especially agentic ones. I'm getting closer to opening that up. One thing that underpins this is the ability to use NimbleOptions for function calling and structured outputs via JSONSchema. 1/2
191
Tyler Barker @tylerbarker.com · 24/03/2025
I’ve found for cases like this it’s pretty effective to create a project a curate a knowledge base to fill the holes. Find the best docs, blog posts, etc and convert them to markdown: github.com/mixmark-io/t... You’ll usually need to tidy up the resulting MD, but still.
github.com
GitHub - mixmark-io/turndown: 🛏 An HTML to Markdown converter written in JavaScript
🛏 An HTML to Markdown converter written in JavaScript - mixmark-io/turndown
120
Tyler Barker @tylerbarker.com · 18/03/2025
I do not like the Notion API. I do not like it one bit.
120
Reposted by Tyler Barker
johanna @jola.dev · 09/03/2025
Vibrating with excitement expert-lsp.org #ElixirLang
25211
Tyler Barker @tylerbarker.com · 25/02/2025
I’ve seen Membrane! Looks really cool. Been meaning to integrate it into Prototape for a while just haven’t got around to it 😅
120
Tyler Barker @tylerbarker.com · 18/02/2025
Maybe the most amazing thing about Elixir to me pattern matching on binaries. Parsing a WAV file is almost as simple as writing down the file spec verbatim - look at this! #ElixirLang
Plaintext formatted to read as a table, outlining the WAV file specification. It reads:
```
WAV File Format Structure
------------------------

Position  | Sample Value | Description
----------|-------------|-------------
1-4       | "RIFF"      | Marks the file as a riff file. Characters are each 1 byte long.
5-8       | File size   | Size of the overall file - 8 bytes, in bytes (32-bit integer).
          | (integer)   | Typically, you'd fill this in after creation.
9-12      | "WAVE"      | File Type Header. For our purposes, it always equals "WAVE".
13-16     | "fmt "      | Format chunk marker. Includes trailing null
17-20     | 16         | Length of format data as listed above
21-22     | 1          | Type of format (1 is PCM) - 2 byte integer
23-24     | 2          | Number of Channels - 2 byte integer
25-28     | 44100      | Sample Rate - 32 bit integer. Common values are 44100 (CD),
          |            | 48000 (DAT). Sample Rate = Number of Samples per second, or Hertz.
29-32     | 176400     | (Sample Rate * BitsPerSample * Channels) / 8
33-34     | 4          | (BitsPerSample * Channels) / 8
          |            | 1 - 8 bit mono
          |            | 2 - 8 bit stereo/16 bit mono
          |            | 4 - 16 bit stereo
35-36     | 16         | Bits per sample
37-40     | "data"     | "data" chunk header. Marks the beginning of the data section.
41-44     | File size  | Size of the data section.
          | (data)     |

Note: Sample values shown are for a 16-bit stereo source.
``` An Elixir code sample that showcases the power of pattern matching binaries as bitstrings - in this case for a WAV audio file. The code reads:
```
<<"RIFF",
  chunk_size::little-size(32), 
  "WAVE", 
  "fmt ", 
  subchunk1_size::little-size(32),
  audio_format::little-size(16), 
  num_channels::little-size(16), 
  sample_rate::little-size(32),
  byte_rate::little-size(32), 
  block_align::little-size(16), 
  bits_per_sample::little-size(16), 
  data_chunk::binary>> = File.read!("./banger.wav")
```
6478
Tyler Barker @tylerbarker.com · 08/02/2025
The proposed syntax for type annotations: ‘$ Schema.t() -> Schema.t()’ 😉
010
Tyler Barker @tylerbarker.com · 08/02/2025
Saving this for the dozens of us in the NBA <> Elixir Venn diagram when that day comes.
Elixir Lang's logo superimposed over Jayson Tatum exclaiming "What they gonna say now?" after winning an NBA championship, referencing instead Elixir after getting a type system.
030
Tyler Barker @tylerbarker.com · 08/02/2025
Once #ElixirLang gets the type system I'll be making it rain $$$ every day.
291
Tyler Barker @tylerbarker.com · 03/02/2025
Not sure about its relevance to phx.gen.auth but it doesn’t get much more real-world and in production than Plausible Analytics: github.com/plausible/an...
github.com
GitHub - plausible/analytics: Simple, open source, lightweight (< 1 KB) and privacy-friendly web analytics alternative to Google Analytics.
Simple, open source, lightweight (< 1 KB) and privacy-friendly web analytics alternative to Google Analytics. - plausible/analytics
110
Tyler Barker @tylerbarker.com · 02/02/2025
Haskell got me interested in functional programming, Elixir got me functional programming. #ElixirLang
0150
Tyler Barker @tylerbarker.com · 16/01/2025
Huge release! 💎
010
Tyler Barker @tylerbarker.com · 15/01/2025
I don’t cover Solid but this article goes over a lot of the kinds of stuff I’m talking about: tylerbarker.com/posts/livevi...
tylerbarker.com
LiveView Is Not a Zero-JS Framework, It’s a Zero-Boring-JS Framework - Tyler Barker
A recent Twitter discussion about the “ceiling” of server-side rendered frameworks like Phoenix LiveView has caused quite a stir. Most of it was in good faith, and many devs have responded...
010
Tyler Barker @tylerbarker.com · 15/01/2025
Yep! It’s helpful to pass the hook object (this) into the component as a prop. After you init signals in the component fn, setup your handleEvents with the hook obj to interact with LV, and fire any pushEvents to get initial data from LV before returning your HTML (Solid component fns run once).
100
Tyler Barker @tylerbarker.com · 15/01/2025
Yep exactly. You just pass whatever HTMLElement you like, be it the hook.el or another you’ve queried for as the 2nd arg to render (the file needs to be JSX/TSX).
110
Tyler Barker @tylerbarker.com · 15/01/2025
- I've not tried using Solid with E2E reactivity because I treat each usage like an embedded micro-frontend with handleEvent + pushEvent. - Multiple instances of a JS hook can share state if you return the hook object from a function and manage state in the closure.
130
Tyler Barker @tylerbarker.com · 15/01/2025
- IndexedDB is great for persisting state across connections, I use it for audio files. - I often write hooks in a TSX file alongside Solid.js when I need it, it's very simple to render from mounted().
230
Tyler Barker @tylerbarker.com · 15/01/2025
I write a lot of front-end code for my LiveView app because it does client-side audio recording/playback/processing. A few takeaways: - Phoenix esbuild is great, but I much prefer the control I get from ejecting from that to a build.js file. - JS hooks can get you really, really far.
170
Tyler Barker @tylerbarker.com · 14/01/2025
Haha that’s aliased to “pix” for me. Got it from a mentor at my first Elixir gig in 2018 and it stuck.
000
Tyler Barker @tylerbarker.com · 14/01/2025
Ever wanted your LiveView components to sparkle? Use this hook: gist.github.com/tylerbarker/... #ElixirLang #LiveView
0110
Tyler Barker @tylerbarker.com · 11/01/2025
Apps that fall into the category of "Open at Login" have such a huge attention advantage, gotta follow those ideas.
010
Tyler Barker @tylerbarker.com · 09/01/2025
Apologies tw_screen_size friends, I only just noticed I've been making you uninstall to get your LiveView 1.0 upgrade - just released v1.1.0 to fix! #ElixirLang
010
Tyler Barker @tylerbarker.com · 09/01/2025
Didn't you hear? Bloke Youdontalkto joined Telegram!
000
Reposted by Tyler Barker
Tyler Barker @tylerbarker.com · 23/12/2024
This was pretty well received, so I've made a template repo for anyone who'd like to give it a try: github.com/tylerbarker/... Let me know if you run into any issues! cc: @tanstack.com @ashtonlance.com @missionctrl.dev @junedomingo.bsky.social
github.com
GitHub - tylerbarker/tanstack-bun-wasm-starter: An extremely shiny React app starter using Bun + Tanstack + TailwindCSS + Rust/WebAssembly + Docker.
An extremely shiny React app starter using Bun + Tanstack + TailwindCSS + Rust/WebAssembly + Docker. - tylerbarker/tanstack-bun-wasm-starter
051
Tyler Barker @tylerbarker.com · 24/12/2024
Haha no stress at all.
010
Tyler Barker @tylerbarker.com · 24/12/2024
Thanks! I’ll definitely give this a try.
010
Tyler Barker @tylerbarker.com · 24/12/2024
Is there an Ash/Igniter generator for a REST API, no HTML, with user auth? Seems Elixir is lacking here in particular.
100
Tyler Barker @tylerbarker.com · 24/12/2024
Just open sourced the starter if you're interested! github.com/tylerbarker/...
github.com
GitHub - tylerbarker/tanstack-bun-wasm-starter: An extremely shiny React app starter using Bun + Tanstack + TailwindCSS + Rust/WebAssembly + Docker.
An extremely shiny React app starter using Bun + Tanstack + TailwindCSS + Rust/WebAssembly + Docker. - tylerbarker/tanstack-bun-wasm-starter
030
Tyler Barker @tylerbarker.com · 23/12/2024
This was pretty well received, so I've made a template repo for anyone who'd like to give it a try: github.com/tylerbarker/... Let me know if you run into any issues! cc: @tanstack.com @ashtonlance.com @missionctrl.dev @junedomingo.bsky.social
github.com
GitHub - tylerbarker/tanstack-bun-wasm-starter: An extremely shiny React app starter using Bun + Tanstack + TailwindCSS + Rust/WebAssembly + Docker.
An extremely shiny React app starter using Bun + Tanstack + TailwindCSS + Rust/WebAssembly + Docker. - tylerbarker/tanstack-bun-wasm-starter
051
Tyler Barker @tylerbarker.com · 22/12/2024
Actually I was thinking about sharing it as a template repo. I'm a little hesitant since TanStack Start is in beta but hey, why not. Give me a day or two and I'll reply here when I've got something for you ✌️
140
Tyler Barker @tylerbarker.com · 22/12/2024
I do a fair amount of audio processing in the browser for this app and it speeds that up nicely.
130
Tyler Barker @tylerbarker.com · 21/12/2024
Challenge accepted.
010
Tyler Barker @tylerbarker.com · 21/12/2024
Playing with React again after being away a while, pretty stoked about this setup: - @bun.sh serving @tanstack.com start + router - @biomejs.dev handling formatting, linting - @tailwindcss.com styles - Wasm with Rust + wasm-bindgen + wasm-pack - All dockerized and deployed to @fly.io Very slick ✨
5534
Tyler Barker @tylerbarker.com · 17/12/2024
Irrationally excited to get Ghostty terminal for xmas 👻
000
Tyler Barker @tylerbarker.com · 09/12/2024
Fair, not so important to index the app itself (in many cases) I guess!
110
Tyler Barker @tylerbarker.com · 09/12/2024
The big one is SEO though, no? Any thoughts on that?
120
Tyler Barker @tylerbarker.com · 30/11/2024
IO.inspect(socket.assigns, label: "WTF")
010
Tyler Barker @tylerbarker.com · 30/11/2024
I wrote a thing about how far you can get with hooks a few months back that was pretty well received: tylerbarker.com/posts/livevi...
tylerbarker.com
LiveView Is Not a Zero-JS Framework, It’s a Zero-Boring-JS Framework - Tyler Barker
A recent Twitter discussion about the “ceiling” of server-side rendered frameworks like Phoenix LiveView has caused quite a stir. Most of it was in good faith, and many devs have responded...
130
Tyler Barker @tylerbarker.com · 29/11/2024
Elm was the first functional lang I ever wrote a meaningful amount of code in. I convinced a professor at uni to let me use it instead of the recommended Angular.js for an assignment. It was great! Evan is a legend
030
Tyler Barker @tylerbarker.com · 26/11/2024
Butter + vegemite + avocado toast is how to breakfast.
000
Tyler Barker @tylerbarker.com · 26/11/2024
Cloak is rad! I'm rebuilding my wife's website which handles some sensitive data. Last I checked, cloak_ecto doesn't support SQLite - but it didn't take much to do it myself 🔒 github.com/danielberkom...
Cloak vault module.Ecto schema with binary values, marked encrypted fields.Context module leveraging the vault.
020
Tyler Barker @tylerbarker.com · 26/11/2024
Working with LiveView everyday and still being tempted to rewrite all manner of things in Rust, Svelte, and [flavour of the month], has taught me your stack will never be shiny enough - just keep getting stuff done.
030
Tyler Barker @tylerbarker.com · 20/11/2024
My design sensibility needs more teenage engineering.
010
Tyler Barker @tylerbarker.com · 20/11/2024
Would love a spot in the pack if they’re still going!
000