José Valim Profile
José Valim

@josevalim

51,745
Followers
77
Following
43
Media
582
Statuses

Creator of @elixirlang . Chief Adoption Officer at @dashbit and @livebookdev . Account used mostly for announcements.

Kraków, Poland
Joined November 2007
Don't wanna be here? Send us removal request.
Pinned Tweet
@josevalim
José Valim
11 months
My ElixirConf keynote, the foundations of the Elixir type system, is up: Thank you @ElixirConf , sponsors, and everyone who attended. Next week I will publish a blog post on @elixirlang with further discussion on gradual typing. Enjoy the weekend.
10
141
566
@josevalim
José Valim
7 months
Tomorrow marks 13 years since the first commit to the Elixir repo. And today we celebrate by announcing that Elixir is, officially, a gradually typed language:
Tweet media one
38
475
2K
@josevalim
José Valim
3 months
Today Elixir turns 12 years old! 🎉🥳 Let's celebrate with Elixir v1.17-rc, which includes our initial work on set-theoretic types, a brand new duration data type, and support for Erlang/OTP 27. Want to give Elixir a gift? Give it a star on GitHub!
45
262
1K
@josevalim
José Valim
2 months
Woot! Elixir v1.17 is out, bringing you the first warnings and type checking based on our on-going work to perform type inference from patterns (and soon guards). A lot more to come, hopefully:
16
280
1K
@josevalim
José Valim
9 months
The Erlang VM has been the most transformative technology of my professional journey. Almost 14 years later and we are still uncovering novel patterns and approaches enabled by it more than three decades ago. 🤯
15
113
913
@josevalim
José Valim
3 months
Many forget that the client-server architecture is a *distributed system*. The request-response workflow we have historically used helped us forget it. However, if you keep a WebSocket connection open with bidirectional data, you can no longer ignore it. 🧵
@t3dotgg
Theo - t3.gg
3 months
Everyone was so busy showing Hey's performance problems that they forgot to show how broken it is. What do you think happens if I press the "enter" key twice?
97
43
1K
8
121
829
@josevalim
José Valim
9 months
I was walking down the road when a parrot landed on my shoulder (and then moved around). I was told it is a *king parrot*. I guess game recognizes game. 😂
Tweet media one
29
11
790
@josevalim
José Valim
2 years
Today during my @ElixirConfEU keynote I announced there is an ongoing PhD scholarship for researching and developing a type system powered by set-theoretic types for Elixir. Here is a quick summary... 🧵 [1/6]
Tweet media one
2
159
625
@josevalim
José Valim
10 months
The new diagnostics coming in Elixir v1.16 are glorious. Thank you @magevinicius !
Tweet media one
13
110
622
@josevalim
José Valim
4 months
Elixir v1.17 performs type inference of structs/maps fields with type checking of field and function access, bringing users meaningful warnings without changes to code! For example, if you try to invoke an unknown field on a struct, the compiler will now let you know. See below:
Tweet media one
Tweet media two
Tweet media three
Tweet media four
14
103
617
@josevalim
José Valim
2 years
Announcing Bumblebee: from GPT2 to Stable Diffusion neural networks for Elixir. And - with Livebook v0.8 - all it takes for you to give it a try is three clicks. Watch the video announcement: [1/4]
@livebookdev
Livebook
2 years
José Valim announces Bumblebee: GPT2, Stable Diffusion, and more in Elixir Learn how to run machine learning models in Livebook with 3 clicks.
11
112
336
16
190
545
@josevalim
José Valim
2 years
Phoenix was already the best web framework for real-time, but this release makes it the best for any server rendered content, period. Verified routes is a safe and elegant solution that I haven’t seen anywhere else while components+tailwind brings best in class productivity.
@chris_mccord
Chris McCord
2 years
Phoenix 1.7.0-rc.0 is out! So much good stuff in this release –  @tailwindcss by default, HTML-aware component system with compile-time checks, verified routes, and more! 👉
23
154
595
9
98
538
@josevalim
José Valim
3 months
Me when somebody asks the benefits of Elixir's on-going type system work and I tell them that it already caught two bugs (one in Phoenix, one in Livebook) even before release:
18
26
486
@josevalim
José Valim
6 months
A new exciting case has landed on Elixir's web site: "Scaling a streaming service to hundreds of thousands of concurrent viewers at @Veeps ", with @vinniefranco and @whatyouhide :
4
115
471
@josevalim
José Valim
3 months
Hi @ryanflorence . LiveView does not preclude JS, JS is part of our ceiling! That said, you are welcome to break Livebeats: For comparison, you folks could build a Remix version of Livebeats (Remixbeats? :D), so we can try it and exchange notes! [1/4]
@ryanflorence
Ryan Florence
3 months
@GeordiePowers Liveview love is part of this. It can’t break through its ceiling. I can break any liveview app in seconds.
16
1
5
10
38
466
@josevalim
José Valim
1 year
Announcing Scholar: traditional Machine Learning algorithms for Elixir and Nx. Regression, clustering, dimensionality reduction, and more: Don't forget to checkout the "Guides" on the sidebar, they are gorgeous, and look even better in your @livebookdev !
Tweet media one
7
110
460
@josevalim
José Valim
3 months
I love seeing people call Elixir + Phoenix the "technology of the week" in @t3dotgg 's video. In practice, they had reached 1.0 before many of the cited alternatives were even created! More importantly, they are *still* in v1.x almost 10 years later! :D
10
34
444
@josevalim
José Valim
11 months
The pendulum swings again: in the past, web frameworks *were* one person. But once applications grew in complexity and JavaScript started playing a bigger role in them, it was no longer the case. This growth in complexity was what drove me way from web-dev back then. [1/6]
9
86
412
@josevalim
José Valim
2 years
The first release of EXLA is out! Running Elixir code on the GPU has never been easier: $ export XLA_TARGET=cuda $ iex iex> Mix.install([:exla]) iex> EXLA.jit(&Nx.add/2, [1, 2]) #MyElixirStatus
9
92
411
@josevalim
José Valim
10 months
Elixir v1.16.0-rc.0 is out! Compiler perf improvements, snippets in diagnostics (see pic), and improved documentation: * Tutorials: * Diagrams (e.g.): * Anti-patterns: * Cheatsheets:
Tweet media one
5
91
406
@josevalim
José Valim
2 months
New article! Web apps have client and server state: I explore how client state and server state are intrinsic parts of web applications (even without JavaScript) and how LiveView deals with state and realtime from a unified angle. Enjoy!
10
86
398
@josevalim
José Valim
2 years
The first article of the "My Future with Elixir" series is out and it discusses Set-theoretic types and our on-going research on types for Elixir: #MyElixirStatus
7
102
391
@josevalim
José Valim
10 months
I have documented all of the latency, bandwidth, and rendering optimizations done by Phoenix.LiveView: Including the recent optimization just merged into main which makes client rendering 3-30x faster. Enjoy! #MyElixirStatus
8
86
386
@josevalim
José Valim
10 months
Yay, another optimization found for the Elixir compiler. If you have a project with 10k files and you changed one small file, Elixir would take 3.5s on my machine. With the WIP patch, it should take 1.2s. :D
3
22
377
@josevalim
José Valim
2 months
Addressing misconceptions in Elixir takes a big chunk of my time. Which is why seeing other OSS maintainers spreading misconceptions is so frustrating. They probably spend a lot of time doing the same thing, so why be the source for others?
26
19
377
@josevalim
José Valim
3 months
@t3dotgg As developers, we are frequently told that we need to break stuff to evolve. I'd say the opposite: if you need to constantly break to evolve, perhaps you don't have a proper foundation to grow in the first place.
7
66
363
@josevalim
José Valim
2 years
We have just launched Livebook Desktop on ! You can get Livebook up and running on your machine and start learning Elixir in less than a minute. Or use the @flydotio 's Livebook launcher to take it for a spin in the cloud!
Tweet media one
3
101
353
@josevalim
José Valim
5 months
Tweet media one
8
31
356
@josevalim
José Valim
10 months
What if you could: * upload a .csv file to see & plot its contents * stream and transform GBs of .parquet files from S3 * drag and drop a sqlite3 database and query it * drag and drop an audio/video file for live transcription With @livebookdev , you can:
5
74
335
@josevalim
José Valim
9 months
One person frameworks must continuously break layers of complexity, instead of piling abstractions on top of abstractions. Build more, with less.🔥
@chris_mccord
Chris McCord
9 months
FLAME is out! 🔥 Auto scale by wrapping any app code in a function and have that block run in a temporary copy of your app. It's time to rethink Serverless. No rewrites. No bespoke runtimes. No outrageous layers of complexity. Blog + screencast 👉
56
302
1K
1
45
316
@josevalim
José Valim
9 months
I'm a big fan of pushing client updates with server-rendered HTML. Staying closer to your data and your authorisation layer is powerful. However, we may be repeating mistakes from the past. Check out my conversation with @t3dotgg on the topic:
7
42
312
@josevalim
José Valim
3 months
Elixir v1.17.0-rc.1 will be out in a couple minutes. One of the things we did as part of v1.17 is to include a more accessible introduction to gradual set-theoretic types, which you can read here:
6
42
308
@josevalim
José Valim
2 months
Today I meet @hxjxsnow , a new member of @IRIF_Paris , who is doing a post-doctorate on how behaviours (aka interfaces) in Elixir would look like with set-theoretic types. Absolutely mind-blowing we now have a PhD student and a post-doc working on types for Elixir.
3
32
307
@josevalim
José Valim
4 months
It seems @chris_mccord "conveniently" chooses to share something mind blowing whenever I get some spotlight talking about types. Coincidence or conspiracy?🤔
@chris_mccord
Chris McCord
4 months
👀 hot deploys on @flydotio to a planet-wide cluster, in 3 seconds. No websockets were harmed and the prod stylesheet reloaded on the client. More soon! 🔥
15
70
463
10
8
301
@josevalim
José Valim
11 months
Probably the coolest css/tailwind trick I will see the whole year.
@clarkware
Mike Clark
11 months
🌟 Simple trick to display an empty state when rendering large collections with a LiveView stream: use the :last-child CSS pseudo-class ("last" in Tailwind) to hide/show the empty state element. (Nope, you can't check if the stream is empty.) #myelixirstatus
Tweet media one
7
58
431
2
19
297
@josevalim
José Valim
3 months
Elixir and Machine Learning in 2024 so far: MLIR, rich Arrow types, structured LLM, and more! This paves the way for quantization, Apple Metal, cross-compilation and other goodies down the road!
5
67
298
@josevalim
José Valim
4 months
Elixir v1.17 now type checks the comparison operators and will warn whenever it detects comparisons with structs or comparisons across disjoint types, which can be sources of bugs (addressing two cases from the linked article). Check the screenshots below:
Tweet media one
Tweet media two
@PragTob
Tobias Pfeiffer
4 months
📘📘📘 New post: 10 @elixirlang gotchas! It's a great language, but some behavior can be unintuitive, confusing and in the worst case lead to bugs. In this post I wanna help clear some of them up!
8
26
101
6
39
289
@josevalim
José Valim
2 months
When writing web apps, client state is everywhere: inputs, scrollbars, CSS states, DOM manipulations, and more. Server state matters too! A solid web framework should integrate it all from top to bottom. Check out my latest article:
5
33
285
@josevalim
José Valim
9 days
There is a recent discussion on Elixir spaces were someone asked if you should use Erlang or Elixir for a DNS server and the overall answer is "whatever you enjoy the most". This makes me happy.
4
17
292
@josevalim
José Valim
3 months
The discussion started because of claims like these. We made an app available, invited people to break it, and now it is the app's fault for not being indicative of our ceiling. Btw, here is drag n' drop on LiveBeats, w/ Regular 3G, also synchronized between users in realtime.
@ryanflorence
Ryan Florence
3 months
@juanazam @ryanrwinchester This app doesn’t really have anything that approaches the “keep templates on the server” ceiling. Make a drag and drop, optimistic list, or status dropdown
4
0
6
17
20
279
@josevalim
José Valim
3 months
If you were to choose one classical software engineering book to be adapted to Elixir, which one would you pick?
94
29
278
@josevalim
José Valim
2 years
Yesterday, during my ElixirConf keynote, I showed how Livebook/Kino can plug into Elixir's v1.14 dbg and allow you to debug and rearrange |> pipelines on the fly!
4
51
273
@josevalim
José Valim
10 months
Fantastic keynote from Chris Grainger about one year with Machine Learning in Elixir at CodeBEAM EU. With LiveView and Nx, they went from three teams (front, backend, data) to a single Elixir team, which is extremely valuable for startups (which need to move fast!)
Tweet media one
4
56
270
@josevalim
José Valim
3 months
Apparently, server-side frameworks are not allowed to have client state (which most apps have, since forms are client state) nor do DOM manipulations, even if you have abstractions for syncing them. This makes as much sense as me asking most SPAs out there to not use a server.
@ryanflorence
Ryan Florence
3 months
@josevalim @ryanrwinchester @bcardarella @thmsmlr @t3dotgg Dug in deeper, had no idea anything was draggable and I didn't have any mp3s on my computer to upload before. Noticed it uses Sortable.js for drag/drop, this means the UI state is driven by DOM manipulation outside of LiveView. Somebody sent me a Trellix (dumb mini trello) that
16
1
39
18
17
270
@josevalim
José Valim
11 months
It is time for another Elixir and Machine Learning roundup: LLama, streaming, batch keying, timestamped transcriptions with Whisper, working with .csv/.ndjson/.parquet from S3, PostgreSQL/SQLite3/Snowflake, and much more!
2
64
261
@josevalim
José Valim
5 months
My @GOTOcon talk where I give an introduction to Elixir and then live code a distributed machine learning application inside Livebook is up: If you are already familiar with Elixir, jump to 24:30 (WebAI).
2
76
266
@josevalim
José Valim
3 months
I have seen enough encoding errors with my name, but this one is the winner by far: Dear José Valim,
20
5
245
@josevalim
José Valim
10 months
VIM & Emacs key bindings support just landed in @livebookdev v0.11! 😱 Download Livebook, give both a try, and let’s finally decide which one is better. Hold on to your caps lock, because there is no, ahem, escape. Watch the video/read the post:
8
30
231
@josevalim
José Valim
2 months
@aloukissas Please send some of the blind-worshipers my way because it feels for the last 10 years all I have been doing is hearing and trying to tackle the complaints from everyone. :D
12
0
231
@josevalim
José Valim
11 months
Livebook v0.11 is out and so begins our second launch week! Talking to remote notes got a massive upgrade with the new "Remove execution" smart cell. Check the video/article: The best part? It comes with remote intellisense too!🤯 All thanks to Erlang!❤️
4
52
220
@josevalim
José Valim
2 months
Scholar (traditional Machine Learning for Elixir) has a new version out and, I have to say, this new notebook on manifold learning/dimensionality reduction is really cool: Mateusz and Krsto are doing an amazing job!
2
32
225
@josevalim
José Valim
3 months
Thanks Ryan! The invitation to break it was honest and I was expecting you to break it! The most interesting part would be to compare how "similar" apps in different frameworks would look like. So I will be waiting until you give me the opportunity to break RemixBeats too! 🚀
@ryanflorence
Ryan Florence
3 months
I like José's energy. I still broke his app in seconds. (I'd love to build RemixBeats eventually, but no time right now with everything else going on with Remix and React Router 😅)
20
7
273
5
7
221
@josevalim
José Valim
10 months
Chris Grainger talk, a Year in Production with Machine Learning, is up: Learn how Elixir + Phoenix + Nx help break silos (across front-end, backend, data) to ensure startups and teams can innovate and iterate quickly across several domains.
1
55
220
@josevalim
José Valim
2 months
We just added remote dataframes to Explorer: place a dataframe in any node in a cluster and we'll proxy operations to it, transparently: It took a weekend and about 1100LOC (with docs+tests). Plus some tiny bit of C code with the help of @_uwu_cocoa !
2
37
221
@josevalim
José Valim
10 months
Good news: we solved *all* HTML server rendering payload concerns. Bad news: It uses JSON.😅 PS: JSON is an implementation detail though. The semantic model is that you are sending HTML, it is just optimized away.
@t3dotgg
Theo - t3.gg
10 months
I'm Anti JSON, Here's Why
Tweet media one
38
6
168
12
33
218