Christopher Grainger (fosstodon.org/@cigrainger) Profile
Christopher Grainger (fosstodon.org/@cigrainger)

@cigrainger

766
Followers
200
Following
32
Media
540
Statuses

Leaving this site again because I don't want to prop up fascism or train AI models for fascist billionaires. Find me on fosstodon.

Netherlands
Joined October 2023
Don't wanna be here? Send us removal request.
Pinned Tweet
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
4 months
My #ElixirConfEU keynote is up! I'm hoping it helps folks gain the confidence to put Nx into production. Machine learning in Elixir is production ready _today_. #myelixirstatus
@ElixirConfEU
ElixirConf Europe
4 months
ElixirConf 2024 kicked-off in style thanks to @cigrainger 's keynote โ€˜Ship it! A roadmap for putting Nx into productionโ€™ ๐Ÿ’ก In case you weren't able to see it in person, you can check it out here: #ElixirConfEU #myelixirstatus #Elixir
Tweet media one
1
2
28
2
14
60
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
I see folks minimising the value of OTP and websockets with Phoenix and LiveView. Lots of 'oh cool but it's only good for chat or social media'. A quick ๐Ÿงต. #myelixirstatus
5
42
178
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
Okay so... I often say 'machine learning in Elixir is production-ready'. And I realised I'm really underselling it. A ๐Ÿงต. #myelixirstatus
2
49
141
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
Okay let's keep talking about Phoenix PubSub and LiveView. Today: why it's _so good_ for AI-powered features. A ๐Ÿงต. #myelixirstatus
4
18
114
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
4 months
So like... we've been on an architectural ride. Monolith -> Umbrella -> Monorepo -> Monolith. That last step (from monorepo back to monolith) was enabled by FLAME. And check this out. #myelixirstatus
Tweet media one
7
10
115
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
5 months
So the problem with Elixir being a cheat code is that it trains my cofounder to expect everything to be done in like a few hours, no matter the size of the ask. I need to start going for a walk before I put up PRs or something. #myelixirstatus
5
8
110
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
7 months
In many ways the AWS spend slash can be explained by the @sasajuric list extending to machine learning with Nx and Axon. This was the enabler. Then OTP and the amazing tools on top of it (like Broadway!) gave us what we needed to move from Prefect and Spark. #myelixirstatus
Tweet media one
@DockYard
DockYard
7 months
Amplified slashed its AWS spend in half and improved the maintainability of its #DigitalProduct at the same time by switching to #ElixirLang . Learn about the other benefits Amplified saw from its switch in the Elixir Roundtable: ๐ŸŽ™๏ธ #MyElixirStatus
2
13
53
2
18
92
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
4 months
About to put the new, monolithic ETL into production and 100% would never have been able to do it without Oban (and Oban Pro). FLAME + Oban is actually a dream. Basically: every time we double down on the BEAM, we win. #myelixirstatus
3
10
89
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
I've been evangelising about Elixir mostly AFTER the advent of Nx, but I think folks may not realise that we chose Elixir/Phoenix/LiveView for our AI-powered SaaS app BEFORE all that. I still think it's the right choice even if your ML isn't in Elixir. A ๐Ÿงต. #myelixirstatus
1
13
89
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
4 months
With FLAME, instead of fitting the BEAM on infra, you're building infra with the BEAM. This is a bigger shift in terms of architecting than I gave it credit for. It's not just lambdas. Rebuilding our ETL with it now and I feel like a wizard. Back to the monolith! #myelixirstatus
1
12
78
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
I talked about this briefly at ElixirConf EU but I want to take a moment and go a bit more into depth on LiveView + Explorer + VegaLite. A ๐Ÿงต. #myelixirstatus
1
17
78
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
Quick thread update on why ETL with Oban and FLAME is so good. ๐Ÿงต #myelixirstatus
Tweet media one
3
13
77
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
8 months
I just reduced processing time 10x and dropped memory pressure from gb to mb in our project exports by switching from lists of maps to Explorer dataframes. #myelixirstatus
1
16
77
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
This is the best. As someone who basically bet the company on LiveView four years ago, I couldn't be more thrilled with what it has become. I'd love to credit my own foresight for that bet working out, but every ounce of credit goes to the incredible Phoenix team. Congrats folks.
@elixirphoenix
Phoenix Framework
3 months
After six years of development Phoenix LiveView 1.0.0-rc.0 is out! ๐Ÿš€ The announcement reflects on our path to 1.0, some fun demos, and what's next. "with Elixir you start shipping features that other platforms canโ€™t even conceive as possible"
30
224
794
0
6
68
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
@nileshtrivedi Yep. It's possible. #myelixirstatus Super quick and dirty but it works:
3
10
65
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
I'm so excited for JSON in the stdlib.
@planeterlang
Planet Erlang
3 months
Erlang/OTP 27.0 Release
Tweet media one
0
19
88
0
2
63
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
7 months
Elixir Patterns is the resource I've needed most. Working remotely and on a small team, the thing that trips me up 9/10 times is patterns. Am I doing something brilliant or stupid or just normal? Scouring open source only goes so far, and is often missing the why. #myelixirstatus
@akoutmos
Alex Koutmos
7 months
For those of you who purchased a copy of , keep an eye on your email tomorrow as you will be getting the next release ๐Ÿฅณ. For those of you still thinking about it, sign up for a free sample and see if the content is up your alley ๐Ÿ˜‰. #MyElixirStatus
6
14
83
2
9
62
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
6 months
@thmsmlr @danielberg_ @PJUllrich Yeah, I think we can be irreverent in ways that don't objectify and demean women, contributing to a culture of sexism and inequality. How about 'irreverence' actually takes aim at power instead of being used as the Bay Area 'boys will be boys' excuse for chauvinism? <3
1
2
56
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
7 months
Was everybody liberally using `iex --dbg pry -S mix phx.server` with `dbg()` and not telling me about it? I feel really silly now. #myelixirstatus
2
3
50
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
7 months
I'm consistently impressed with how clearly @whatyouhide is able to explain complex stuff, and what an excellent vehicle @livebookdev is for it. Super rad. #myelixirstatus
0
12
48
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
4 months
Make sure you reduce your Ecto repo's pool size for your FLAME runners or your database is gonna have a bad time. Definitely not speaking from recent experience. ๐Ÿ™ƒ #myelixirstatus
2
1
49
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
2 months
Don't sleep on the Phoenix examples in the Bumblebee repo! I had a speech to text feature to implement and this was the shortcut I needed. #myelixirstatus
1
7
48
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
7 months
Example: at a conference and a prospective client asked about a feature. Not crazy, but required the whole thing: ML, backend, frontend. They asked if we could have it ready next month. We shared it with them that night. That's what Elixir does for us. #myelixirstatus
@DockYard
DockYard
7 months
โ€œGoing from ideation to putting a feature in front of my customers is something that I can do or that one of my colleagues can do in a couple of hours now.โ€ Thatโ€™s the power of #ElixirLang . ๐ŸŽ™๏ธ #MyElixirStatus
0
6
22
0
11
46
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
Hey #rstats folks: we've been working on data science in @elixirlang and Explorer, our dataframes lib, is heavily influenced by dplyr + tidyverse principles. I want to come talk about what we're doing but I'm out of touch. Can anyone recommend conferences?
3
10
41
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
7 months
I still get all excited when I need to write a GenServer. #myelixirstatus
4
3
40
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
6 months
@thmsmlr @danielberg_ @PJUllrich Nah, I get all that. But that's a false dichotomy. I'm saying it's not irreverence at all. It's just chauvinism. It's dunking on the marginalised from a position of power. That's not irreverence, it's privilege. To call it irreverence is to give it a gloss it doesn't deserve.
1
1
38
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
And `Nx.Serving` is madness. You get out-of-the-box distributed, clustered, hardware-agnostic automatic batching without the caller needing to concern itself with any of that? That's absolutely nuts. It's the right separation of concerns.
1
5
32
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
7 months
Hey cool! Always nice to see Explorer in the wild. #myelixirstatus
1
4
32
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
5 months
This is the talk I've wanted to give for a while, and took the suggestion to give it instead of one on dataframes. I've talked (a lot) in the past about how we use the Nx ecosystem at Amplified, but now I get to offer guidance for others to ship it. I can't wait! #myelixirstatus
@ElixirConfEU
ElixirConf Europe
5 months
Change of plans! @cigrainger 's keynote talk is going to be about putting Nx into production ๐Ÿ™Œ ๐ŸŽŸ๏ธtickets still available: ๐ŸŽŸ๏ธ From better documentation to traditional machine learning to generative AI, the Nx ecosystem is changing where Elixir stands as a
Tweet media one
0
4
19
1
4
29
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
7 months
@sasajuric In terms of value and $$ saved, the reduction in size and complexity of the code needed to achieve the same goals vastly outstrips our AWS spend savings (even though those are five figures). It's just much harder to put a number on that.
0
4
26
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
2 months
So now that Swift 6 has static linking and cross compilation, who's building Swiftler for Elixir? #myelixirstatus
1
3
24
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
6 months
@thmsmlr @danielberg_ @PJUllrich So what I'm saying is that this kind of garbage isn't an 'irreverent' culture. In fact, it just entrenches power dynamics, which is kind of the opposite of irreverence. Being a little edgelord in your privilege doesn't make you irreverent and shouldn't be excused as such.
1
1
25
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
7 months
I'll make the somewhat shameful admission that the presentation of Erlang/OTP documentation has put me off using it way more than it should. This sort of thing helps superficial people like me a whole lot.
2
0
25
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
So @sasajuric 's famous chart adds machine learning to it, and if Rails is the 'one person framework', then Phoenix is the 'half person framework' from CRUD to the cutting edge of LLMs. ML in Elixir is 'production ready', yes. In this ecosystem, that statement means a lot.
0
2
24
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
4 months
Paulo continuing to bring the wins. It's an exciting time to be doing ML in Elixir.
@polvalente
Paulo Valente
4 months
Today we merged a rather nice new feature in Nx: In short, there is now a path for pointing an Nx tensor to an existing CUDA memory location, or sharing a given Nx tensor with some other process. (thanks for the idea @davydog187 !) 1/3
2
8
48
0
0
23
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
Yeahโ€ฆ itโ€™s production-ready. But what Iโ€™m glossing over is all that this entails in Elixir applications. โ€˜Production-readyโ€™ means itโ€™s deeply integrated into this awesome, crazy system called the BEAM. It uses and can be used with OTP primitives.
1
3
22
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
I loved this talk and was really glad to get to see it live. It reinforced a lot of the mental models I've developed over the years writing Elixir and offered some new angles/insights as well.
@ElixirConfEU
ElixirConf Europe
3 months
Did you miss @josevalim 's Keynote at ElixirConf EU 2024? Well, we've got you covered! ๐Ÿ’ช You can catch all of the insights from his talk titled 'Gang of None? Design Patterns in Elixir' here: Make sure you don't miss out on more of these moments in
Tweet media one
0
12
72
1
2
22
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
4 months
At the airport to head back to NL now. Thanks so much to the organisers and everyone who made #ElixirConfEU so great. I had a blast. See you next year in Krakow! #myelixirstatus
5
0
22
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
4 months
So I was inpired by @thecarlfelix 's talk at #ElixirConfEU and made a little Livebook to get GPT-4 to write a song and then play it through Garageband via midi. This is a quick take, but best song (improve my approach/prompt) wins a prize. #myelixirstatus
4
5
21
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
I'm constantly discovering the history of Erlang/OTP and consistently so grateful for all the work that went into creating what we get to use today.
@lucianparvu
Lucian Parvu
3 months
@cigrainger In the context of PubSub we should mention the fantastic library gproc by @uwiger which invented pub sub in the Erlang VM
0
0
12
0
1
20
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
6 months
I canโ€™t emphasise enough how exciting this is. When you look around at other ecosystems there is a ton of fragmentation related to hardware. The choice with Nx to focus on pluggable backends/compilers was and is just inspired. This is how ML dev should be. #myelixirstatus
@polvalente
Paulo Valente
6 months
This week we release Nx v0.7, and with it, EXLA's MLIR implementation. This opens up a rather wide range of possibilities, including but not limited to quantization and Apple Metal support. #MyElixirStatus
3
8
59
0
1
20
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
1 month
Had a fun time chatting with @lawik and @akoutmos about betting the farm on Elixir. (Spoiler alert: it paid off). #myelixirstatus
@BeamRadio1
BeamRadio
1 month
0
4
9
0
3
19
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
And this means that ML in Elixir is a cheat code, like web apps, distributed systems, and all the other stuff that Elixir is a cheat code for. It's not just 'ready', it's an advantage, a secret weapon.
1
2
19
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
2 months
Okay Elixir folks, help me out with this one. Is this a LiveView bug or expected? Any time you change any value in the map, everything that consumes the map diffs. Even if the values are identical. #myelixirstatus
5
3
19
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
Can confirm we're using @flydotio with @TigrisData and seeing huge benefits. I'm also very much looking forward to CockroachDB or something similar to solve the write latency stuff.
@lawik
Lars Wikman
3 months
Super excited that the Gig City Elixir closing keynote I gave is out for y'all. I hope you enjoy it ๐Ÿ™‚ Let me know your thoughts! #myelixirstatus
2
11
35
0
5
18
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
6 months
Two here and this is basically it for us too. Consolidating on Elixir was the impetus for this but yes, for small teams itโ€™s just so much better.
@davydog187
Dave Lucia
6 months
Weโ€™re a team of 3 engineers covering hardware, a cloud service, CLI, edge compute worker, ML stack, video processing, and WebRTC. Biggest boon to productivity? Everything is in a single monorepo. You can run the whole stack locally, and make changes across the system in one PR
9
11
125
2
1
18
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
7 months
Using CozoDB via Rustler to run PageRank on Tube Stations and pass that data back to Explorer and VegaLite for analysis and plotting in Livebook... yep ok. Peak Elixir data hotness. Gotta throw some embeddings in there next. Where's Bumblebee. #myelixirstatus
Tweet media one
Tweet media two
1
3
17
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
6 months
Doing some benchmarking. The breakeven for the de/serialisation cost to transform a list to an Explorer Series and back for stuff like `filter` is around 200-250 elements. At 1k, Explorer is more like 2.5x faster. At 10k, more like 8x. At 3% of the memory? #myelixirstatus
Tweet media one
5
0
17
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
1 month
There's been a lot of progress since I wrote this but, rereading my blog post about the first release of Explorer, I'm pleasantly surprised at how much has stood up over time. I'm so happy with where it's gone and where it's going. #myelixirstatus
1
4
15
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
LiveView's AsyncResult combined with Phoenix PubSub and Oban give me everything I need to provide optimistic UI in front of robust, fault-tolerant queued jobs that naturally scale to multiple clients in real-time. And it's all practically for free. It's the happy path.
1
0
13
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
6 months
We at @amplifiedai have jumped on this bandwagon and encourage others to do so as well. Tooling just so important.
0
1
15
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
So you can throw it in a Phoenix app no problem. Oban can give you durable robust job processing, Broadway can give you concurrent data processing pipelines with backpressure, FLAME can give you lambda-like execution using the BEAM. You can pubsub results around to LiveViews.
1
3
14
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
Egress fees are no joke. I'm just over here like
Tweet media one
1
0
13
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
Itโ€™s silly easy to craft AI-driven product features in a simple, elegant, robust way with LiveView. In some ways itโ€™s like it was purpose built for it.
@basilenouvellet
Basile Nouvellet
3 months
Exploring GenAI product features with Elixir ๐Ÿ”ฎ Analyze a beach webcam with GPT-4o (built using LiveView assign_async & Instructor) Structured prompting to build LLM-driven UIs is a powerful thing. #MyElixirStatus
5
7
47
0
1
13
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
OTP is just completely unique. Phoenix (and LiveView) have this baked into their core, and it reaches all the way up to the client, where LiveViews are 'just processes'. There's no better stack for building AI-powered SaaS, even if you don't use Elixir for the AI part.
1
1
12
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
Tweet media one
0
0
13
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
It's simple as can be. To the point that it's practically free. Leveraging the power of OTP with LiveView is honestly a cheat code, and as they say in the 1.0-rc blog post: "you start shipping features that other platforms canโ€™t even conceive as possible".
2
0
12
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
It takes almost zero work. We defined some basic broadcast functions and pipe our context's CRUD operations through them. For async work, we pipe the results to the correct broadcast. On mount, we subscribe to a given set of topics. We write our handle_info functions and boom.
1
0
10
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
2 months
I've got a LiveView pattern question I'd love some feedback/help on. We have some very data heavy components that can be toggled on/off. They are off by default and we need to keep it that way -- it's ~5mb of data we don't need to send over the wire. A ๐Ÿงต. #myelixirstatus
4
2
12
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
2 months
And itโ€™s 50 lines. Jeez @chris_mccord write less.
@akoutmos
Alex Koutmos
2 months
This Livebook PR has be very excited I โ™ฅ๏ธ Livebook #MyElixirStatus
1
7
47
0
0
10
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
5 months
@PJUllrich @elixirfun Logger 'functions' are macros, and can be purged at compile-time: IIUC, if it's the last call in the chain, then it's 'wrapping' the rest, meaning it all gets purged.
2
0
10
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
29 days
Hey #MyElixirStatus braintrust: what's the best way to log access to running Phoenix systems (e.g. with the remote command from a release)?
2
3
11
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
What you're seeing here are two separate logged in users viewing the same project side by side. The one on the right has read-only access. As the person on the left works, those updates show up in real time for whoever the project has been shared with.
3
0
10
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
So now, all our embeddings for the day run at once, and we minimise our GPU spend and actually utilise that hardware. Win win win.
0
0
11
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
5 months
Listen, obviously the goods outweigh the bads a millionfold, but it's very hard to work with :ok | :error tuples in Elixir after spending a bunch of time with #rustlang `Result<T, E>`. What I would give for `?`, `map_err`, and the anyhow/thiserror crates. #myelixirstatus
3
0
11
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
2 months
Whose lithography processes and machines did they use again? Asking for no particular reason.
@MichaelAArouet
Michael A. Arouet
2 months
Who did this?
Tweet media one
458
1K
15K
1
0
10
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
4 months
Seeing folks on here already showing up to Lisbon for @ElixirConfEU has got me seriously jealous. Especially with the Dutch rain. Looking forward to seeing you all there! #myelixirstatus
1
0
10
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
2 months
This right here.
@tylrbrkr
Tyler Barker
2 months
LiveView Is Not a Zero-JS Framework, It's a Zero-Boring-JS Framework: #MyElixirStatus
5
32
133
0
0
10
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
1 month
Yes yes yes yes yes yes yes #myelixirstatus
@polvalente
Paulo Valente
1 month
There's still some work to be done in the way of providing precompiled artifacts but... Metal support for Nx is here! contains a working example of how to run Nx functions on NxIREE. Many thanks to the IREE team who've helped a lot in the past few months
4
32
131
0
1
10
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
5 months
All day every day I work from home. Mishka agrees that Elixir is a cheat code. #myelixirstatus
Tweet media one
0
0
10
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
With Oban, it's crazy easy to just replace where we were embedding before with an enqueued job that is _durably_ scheduled at midnight that night.
Tweet media one
1
0
9
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
The actor model of concurrency is the right abstraction for serving ML workloads (models in processes). And because it's all built-in, you can take advantage of everything else that makes the ecosystem great. Nx.Serving is just another application in your supervision tree.
1
0
9
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
6 months
Compile your code, folks. Also, Enum is fast.
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
6 months
@josevalim Whaaaaaat! Like this? Is Enum's advantage here compilation vs. evaluation? ๐Ÿ˜ฑ
Tweet media one
2
1
8
1
0
8
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
Just another example of how Elixir is a cheat code. The level of polish, reasonability/maintainability, performance... it all comes with so little work. LiveView means I can go from idea to customer-facing on a feature like this as a single dev in a couple of hours.
1
1
9
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
@cigrainger spends 294% more time coding than tweeting I'll just leave this lie right here.
0
0
9
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
And this is the beauty of it. Because you're working in a system like that, you can create absolutely brilliant features for your end users with minimal effort. We're throwing around thousands and millions of messages a day over pubsub, between processes, etc.
1
0
9
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
6 months
@josevalim Whaaaaaat! Like this? Is Enum's advantage here compilation vs. evaluation? ๐Ÿ˜ฑ
Tweet media one
2
1
8
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
We're going all in on Tigris. Absolutely loving it.
@codestirring
Chris Gregori ๐ŸงŠ ๐Ÿ—
3 months
I just hooked up my new app to use Tigris on @flydotio and I'm blown away. So simple to get going with! 15 minutes later I have end to end file upload in my project ready to go. I didn't even have to login to AWS ๐Ÿ˜ญโค๏ธ Wow. #MyElixirStatus
Tweet media one
6
10
65
0
2
8
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
4 months
Those hiccups above were due to overloading our database connections. This has smoothed out a bit. Still working on maximising throughput, but getting there!
Tweet media one
0
0
7
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
9 months
I don't think I'm comfortable with how small this PR is, including taking on the dependency @chris_mccord
Tweet media one
1
0
8
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
So as someone building a product, you can focus your creativity on solving problems for your customers -- not solving all these problems related to concurrency that have already been solved by Erlang/OTP years ago.
1
1
8
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
@nileshtrivedi I don't see why not. I think it would be very straightforward to push generated components. Some of the pieces might be or and then just some simple LiveView.
1
0
7
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
What's the best practice for relatively big files in tests with ExUnit? For example, I've got a fair few long (500k-2mb) XML files I want to run parsing tests against. Something like /test/support/fixtures/*.xml? #myelixirstatus
4
2
7
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
This is how we do real-time collaboration in Amplified. Everything is happening with pubsub. Asynchronous expensive work like search is happening in Oban and broadcasted out. Every change to the project in the db is broadcasted.
1
0
7
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
5 months
Serendipity or the algorithm? (also go check out @jennydoesthings 's talk because yes: )
Tweet media one
1
0
7
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
4 months
Screenshots of Oban Web forthcoming when things are in full swing ๐Ÿฅฐ
2
0
7
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
Yeah this is completely unacceptable. Even if they make it right I'm exploring alternatives because this is a huge trust destroyer. And to force contact rather than settings to opt out? Wow.
@QuinnyPig
Corey Quinn
3 months
I'm sorry Slack, you're doing fucking WHAT with user DMs, messages, files, etc? I'm positive I'm not reading this correctly.
Tweet media one
228
1K
8K
1
0
7
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
6 months
Yeah... this is really good. After having less than ideal experiences elsewhere, we're now able to distribute patent drawings to our customers from super close. Zero config CDN? Yes, please. Now our users can sift through patent drawings at warp speed no matter where they are.
@flydotio
Fly.io
6 months
Uploading files is hard. We worked with @TigrisData to make it easy. Find out more here:
2
14
87
0
0
5
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
5 months
So. So. So. Good.
@chris_mccord
Chris McCord
5 months
phoenix_live_reload now ships server logs to the web console for collocated cli/server logs. No more fumbling around to figure out if a UI bug was a cli or server issue. Huge improvement to DX whether building SPAs or LiveView. Writeup on how to enable:
8
46
262
0
0
6
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
2 months
If the user toggles them off and on, we have to send that massive diff every time. What I'd love to do is send it once, but only when it's toggled on the first time. After that, I'd like to use JS show/hide. Is anyone doing something like this? How would it look?
4
0
6
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
1 month
Some days you spend the better part of eight hours debugging a WAF. Those are not good days.
0
0
6
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
2 months
@wojtekmach I've been having a ton of fun with this. One thing I really loved was how easy it was to add Tailwind, but then I struggled to figure out how to add a css file from CDN in the page head, e.g.
1
0
6
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
Okay so why? Mainly: OTP. Also: good choices. Nx is built with inspiration from JAX from the get-go. There's real second-mover advantage here, using metaprogramming to go with pluggable backends and compilers from day one. My ElixirConf EU talk covers why this is so powerful.
2
0
6
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
2 months
If anybody is using the excellent `nix-beam-flakes` and is sad it's unmaintained, I'm maintaining a fork. I think @mitchhanberg I saw you had a fork too? #myelixirstatus
2
1
6
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
2 months
Also thank you @wojtekmach for Phoenix Playground making one-file repros like this easy and possible. #myelixirstatus
0
0
6
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
When you start thinking about things in terms of processes and message passing, everything just clicks. It feels crazy at first, but you come to realise that the way OTP works is the way we should be thinking about architecting AI-powered apps.
1
1
6
@cigrainger
Christopher Grainger (fosstodon.org/@cigrainger)
3 months
You need to be able to fan out/in, handle retries, validate results, handle failure/crashes, wait on potentially long-running results, accumulate batches, broadcast results, push streams to clients, process streams in-flight, etc etc. These are all the things OTP makes simple.
1
0
6