Owen Bickford's Avatar

Owen Bickford

@owencode.com.bsky.social

Doing stuff with #ElixirLang Will fight over boolean DB columns Writing match specs on occasion

442 Followers  |  159 Following  |  93 Posts  |  Joined: 08.11.2024  |  1.9774

Latest posts by owencode.com on Bluesky

Slack

16 job post in Elixir Slack’s #jobs channel in the past month, some open for over a month. Is the drought over?
@elixir-lang.org #elixir

elixir-lang.slack.com/archives/C06...

27.07.2025 15:06 β€” πŸ‘ 14    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0

πŸ‘πŸ‘πŸ‘

09.05.2025 02:11 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Leandro is great! Hire him! @leandrocp.bsky.social #ElixirLang

23.04.2025 12:42 β€” πŸ‘ 14    πŸ” 3    πŸ’¬ 1    πŸ“Œ 0
Preview
Machine Learning in Elixir Leverage Elixir and the Nx ecosystem to build intelligent applications that solve real-world problems in computer vision, natural language processing, and more.

I’m one chapter into Machine Learning in Elixir, feeling enthusiastic about the road ahead! The pacing is just right, and the metaphors are apt. This reminds me how Elixir in Action and a bunch of conf talks put me on a great course for unimaginable growth.

pragprog.com/titles/smeli...

#elixiang

20.04.2025 04:04 β€” πŸ‘ 7    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

maybe daisyui is okay πŸ€”

04.04.2025 19:17 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
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.
```

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")
```

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") ```

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

18.02.2025 03:21 β€” πŸ‘ 47    πŸ” 8    πŸ’¬ 6    πŸ“Œ 0
Elixir Patterns book launch
YouTube video by Hugo BaraΓΊna Elixir Patterns book launch

Going live in a few minutes!

Want to chat about Elixir?

We're launching our Elixir Patterns book!

www.youtube.com/watch?v=AZZv...

#ElixirLang

06.02.2025 18:24 β€” πŸ‘ 17    πŸ” 6    πŸ’¬ 0    πŸ“Œ 1

Interesting: whenever I read an "I've replaced N SaaS services with AI, in a day, saving $$$ per year, SaaS is dead" post, both are true:

1. The SaaS "replaced" is not named
2. The "AI replacing it" is not shown (no code, no specifics, no nothing)

Be careful what you believe

21.01.2025 20:15 β€” πŸ‘ 74    πŸ” 2    πŸ’¬ 4    πŸ“Œ 1

β€œmediocre” is too kind

21.01.2025 22:21 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Optional syntax sheet β€” Elixir v1.18.1

hot take: only use optional syntax (`def my_fn(), do: ...`) when the code fits on one line.
hexdocs.pm/elixir/optio...
#ElixirLang

21.01.2025 19:33 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

πŸ‘‡πŸ’―

16.01.2025 19:14 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Sorentwothousssannnnddd!

16.01.2025 19:12 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Trikes are a thing 🧠

16.01.2025 19:10 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

So specific. Must be some connection to that model.

16.01.2025 19:10 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Ok, Steve Jobs

16.01.2025 19:08 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Smart. πŸ€–

16.01.2025 19:08 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I was fond of the XC40 when I had it. πŸ‡ΈπŸ‡ͺ

16.01.2025 19:08 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Funny that the Elixir gang so far is aiming much much lower. Maybe the better question would be what status symbol we would strive for as Elixiristas. πŸ€”

16.01.2025 19:07 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Super interesting responses! I think the PHP lambo mem is mostly a tongue-in-cheek joke about how rich you would be writing PHP code. Is that right @taylorotwell.bsky.social ? How many lambos in your fleet?

16.01.2025 19:07 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Perfect! 🀣🀣

16.01.2025 15:41 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

If #php devs aspire to drive lambos, what is the aspirational car or mode of transportation for #ElixirLang devs?

16.01.2025 15:26 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 6    πŸ“Œ 0

I’ve been part of a team using LV on an education platform with good/great results.
Two tips:
- use phx-change only when it adds value. one less handler to maintain if it’s not necessary.
- prefer aliases over imports, esp with evolving components. this will keep your compilation times down.

15.01.2025 02:02 β€” πŸ‘ 4    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0

Cheers! Get that feather in your cap!

15.01.2025 00:51 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Congrats @zachdaniel.dev & @sevensea.cat !

14.01.2025 23:08 β€” πŸ‘ 5    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Data evolution with set-theoretic types - Dashbit Blog In this article we explore the challenges of data evolution in static typing and explore type safe solutions.

I wrote a new article exploring how set-theoretic types (the foundation of Elixir's type system) could address how many statically typed languages do not allow libraries to evolve their data definitions in a backwards compatible manner: dashbit.co/blog/data-ev... - be warned, it is a long one.

14.01.2025 09:02 β€” πŸ‘ 150    πŸ” 41    πŸ’¬ 8    πŸ“Œ 1
Video thumbnail

Blake Stockman was a recruiter at Google, Meta, Uber, Flexport and Y Combinator.

His advice on how to find great startups to work at:

YouTube: youtu.be/d7GsnaQYZ68

Apple: podcasts.apple.com/us/podcast/c...

Spotify: open.spotify.com/episode/6sA6...

10.01.2025 19:02 β€” πŸ‘ 32    πŸ” 2    πŸ’¬ 4    πŸ“Œ 2
Preview
The Elixir Shirt [pre-order] Images for the pre-order are poorly hand-edited mockups. The shirts are the same, the logo will look real. We have no mockups of the white ones. The text is a tone of gray that is selected to work on…

The Elixir shirts on pre-order is up til March. Make sure you get in there. It supports my wife's continuous efforts to enable my open source work. But mostly it's fun. I've ordered stickers so expect an Elixir sticker with every Elixir shirt ✨
https://oswag.org/b/elixir-shirt-preorder
#elixirlang

08.01.2025 13:34 β€” πŸ‘ 13    πŸ” 6    πŸ’¬ 1    πŸ“Œ 0

all your type are belong to us

06.01.2025 01:37 β€” πŸ‘ 10    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

+100 for Severance
Silo has some interesting ideas but the writing and editing are not the best.
The British Baking show is a fun low-stress watch.
Just started Squid Game s2 after a stellar s1.
White Lotus is top notch w s3 coming this year.
Hacks is fun.
The Other Two is gaaayyy.

04.01.2025 21:42 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Good thread!

04.01.2025 21:32 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

@owencode.com is following 20 prominent accounts