7 ms·
I tried to do this a few weeks ago, I tried to build a NIF around an existing C lib. I was using Claude Opus and burned over $300 (I didn't have Pro) on tokens
by bcardarella 1y ago
I tried to do this a few weeks ago, I tried to build a NIF around an existing C lib. I was using Claude Opus and burned over $300 (I didn't have Pro) on tokens with no usable results.
- cpursley 1y agoGet Pro, 4 is quite good at Elixir now but you have to stay on it. 3.5 was not, so I imagine next version of Claude will be able to handle the more esoteric things like NIFs, etc.
- ipaddr 1y agoGet Pro 5.. it will work I promise
- cpursley 1y agoI've completely refactored my Elixir codebase with Claude 4, expanded the test suite by 1,000 more tests, and released a few more features faster than I ever have to actual paying customers. Tidewave MCP is helpful as are some custom commands and a well tunded CLAUDE.md But you do you.
- cschep 1y agoSo hard to tell if this is parody or not.
- Sinidir 1y agoIts not really hard to tell.
- cschep 1y ago1,000 more tests!? That reads coherent to you?
- cpursley 1y agoHere's one Claude-vibed project that makes me money that I run in addition to my saas, which is Elixir. I'm not strong in TypeScript and this is an Astro static site, so Claude has been really helpful. Backend is Supabase (postgres) and a few background jobs via https://pgflow.dev https://pgflow.dev (pgmq) that fetch and populate job openings and uses some AI steps to filter then classify into the correct categories (among other things, there's also an job application flow and automated email newsletter): https://jobsinappraisal.com https://jobsinappraisal.com I also "vibed" up this: https://livefilter.fly.dev/todos https://livefilter.fly.dev/todos (https://github.com/cpursley/livefilter https://github.com/cpursley/livefilter) and this: https://star-support-demo.vercel.app/en/getting-started https://star-support-demo.vercel.app/en/getting-started (https://github.com/agoodway/star-support-demo https://github.com/agoodway/star-support-demo) I hand wrote very little of this code, but can read most of it - the SQL and Elixir at least ;)
- cess11 1y agoIs there a reason why you're using 'when is_struct/2' instead of pattern matching here? https://github.com/cpursley/livefilter/blob/main/lib/live_filter/date_utils.ex https://github.com/cpursley/livefilter/blob/main/lib/live_fi...
- napsterbr 1y agoThis is clearly low quality, non-idiomatic AI-generated Elixir code. So the likely answer is that "you" did not use this at all; AI did. I review this kind of AI-generated Elixir code on a daily basis. And it makes me want to go back to ~2022, when code in pull requests actually made sense. Apologies for the rant, this is just a burnt out developer tired of reviewing this kind of code. PS: companies should definitely highlight "No low-quality AI code" in job listings as a valid perk.
- cpursley 1y agoFwiw, the date range part of this is the lowest quality, I even have an issue open: https://github.com/cpursley/livefilter/issues/2 https://github.com/cpursley/livefilter/issues/2 In production code I'd do a couple passes and tell it to lean into more function head and guard matching, etc. But it does compiles, and works: https://livefilter.fly.dev/todos?filters%5Bassigned_to%5D%5Boperator%5D=in&filters%5Bassigned_to%5D%5Btype%5D=enum&filters%5Bassigned_to%5D%5Bvalues%5D%5B0%5D=jane_smith&filters%5Bassigned_to%5D%5Bvalues%5D%5B1%5D=john_doe&filters%5Bdue_date%5D%5Bend%5D=2025-08-15&filters%5Bdue_date%5D%5Boperator%5D=between&filters%5Bdue_date%5D%5Bstart%5D=2025-07-17&filters%5Bdue_date%5D%5Btype%5D=date&filters%5Bstatus%5D%5Boperator%5D=in&filters%5Bstatus%5D%5Btype%5D=enum&filters%5Bstatus%5D%5Bvalues%5D%5B0%5D=in_progress https://livefilter.fly.dev/todos?filters%5Bassigned_to%5D%5B...
- jtbayly 1y agoWould you be willing to share your CLAUDE.md file contents? I’m vibe coding in Elixir.
- cpursley 1y agoI somewhat followed this: https://elixirforum.com/t/coding-with-llms-conventions-md-for-elixir-do-you-have-your-own-what-does-it-contain/69677 https://elixirforum.com/t/coding-with-llms-conventions-md-fo... It's not perfect - you often have to remind it not to write imperative style code and to lean on Elixir conventions like "with" statements, function head matching, not reassigning vars, etc.
- bcardarella 1y agoThe issue in this case was Opus was pretty crap at C. It kept introducing segfaults.