johanna @jola.dev · 12hI’ve been using omlx on the same MacBook. Qwen 3.8 27B is incredibly slow but output is decent, can’t fit much more than a 128K context window though. 3.6 35b a3b 4bit is noticeably less capable but soooo fast 030
johanna @jola.dev · 28/09/2026Oh, and think about what you're trying to accomplish. Is the goal just to churn out code and features, or is the goal to build a community of people that discuss and collaborate? The two are in direct conflict. 120
johanna @jola.dev · 28/09/2026PR descriptions that explain _why_ you're doing something opens the door for a much more interesting conversations than ones that just say _what_ or that are empty. For the same reason, never let LLMs write the description. 110
johanna @jola.dev · 27/09/2026I guess we could tag `:main` or something as a moving tag for the latest version, but it's not impossible that that can be broken at any given time as stuff gets merged. Even then, there's nothing that gets your app to restart and pull latest, you'd still have to do that yourself 110
johanna @jola.dev · 27/09/2026oooh, I don't think container registries generally support that use case, they're primarily designed around you asking for a specific version. You could set up a workflow to fetch latest tranquil git commit sha on man and then try pulling the image for it 110
johanna @jola.dev · 27/09/2026When submitting interesting blog posts to shelf.cafe you can now click the little button to fetch the title for you, cause who has time for typing anyway 010
johanna @jola.dev · 27/09/2026Tranquil PDS now pushes builds to container registry on merge to main, in case you want to grab a recent ref and live dangerously tangled.org/tranquil.far... 181
Reposted by johannashelf.cafe @shelf.cafe · 26/09/2026shelf.cafe now renders your profile picture if available, piggy-backing on Bluesky's CDN. Long-term it would be nice to have a self-hosted image blob CDN. Note that we do not depend on Bluesky for fetching the profile and all a Bluesky outage can cause is for the fallback image to be displayed! 031
Reposted by johannafig (aka:[phil]) @bad-example.com · 23/09/2026PART TWO: All the other reasons i don't like CARs for atproto repo exports! In this one: ambiguities and inefficiencies. (the biggest problem is already hopefully getting fixed in the IETF draft though, yay!)data-service-diaries.pckt.blogWar on CARs: the rest of itPart 2: streaming struggles, bad blocks, worthless weight, and superfluous structure in Content Addressable aRchives 6538
johanna @jola.dev · 22/09/2026I work for incident.io if you're looking for alternatives, happy to chat! 360
johanna @jola.dev · 22/09/2026Reading the source code instead of reading the docs often means the model suggests solutions and answers questions based on internal details that are subject to change, instead of the implicit public API of what the author chose to document and "guide" you towards 120
johanna @jola.dev · 22/09/2026I assume it depends on harness/model, but I think they're trying to avoid it because more and more websites block their traffic, so training the model to read the code instead is lower friction 110
johanna @jola.dev · 22/09/2026I’ve been thinking a lot about what are almost like dark patterns in LLMs that make them much harder to use for learning about coding than they need to be. They’re designed around taking action, and it can be hard to get them to just support in you in learning jola.dev/posts/ai-ant...jola.devAI is antithetical to learningLLM agents can write a lot of code for you very fast, but they also take away opportunities to learn and grow. 1335
johanna @jola.dev · 21/09/2026Okay, one more! Kite now supports zstd compression. It fetches the latest dictionary on startup, seamlessly handles dictionary updates, and it works without any new dependencies, instead relying on the OTP 28 `:zstd` module tangled.org/jola.dev/kitetangled.orgjola.dev/kiteAn Elixir atproto Jetstream V2 subscriber library 0110
johanna @jola.dev · 21/09/2026When I migrated to tranquil I noticed that two blobs were missing from my `listBlobs`. After going down a deep rabbit hole and making two big PRs, after upgrading to latest tranquil I now have my two blobs back! 0170
johanna @jola.dev · 21/09/2026Aggressive application of mutes, blocks, and labelers, and it’s not bad 010
Reposted by johannaSDK.blue @sdk.blue · 20/09/2026Added project: kite by @jola.dev (Elixir 🧪, tags: firehose)tangled.orgjola.dev/kiteAn Elixir atproto Jetstream V2 subscriber library 042
Reposted by johannaTranquil PDS @tranquil.farm · 20/09/2026The even more interesting (for us) part is that with this update we are also expanding the maintainer team to officially include @jola.dev !! We are very excited to have her on board for the shenanigans! Lastly we've seen an upshot in community contributions and we are very thankful for that! :3 0412
Reposted by johannaTranquil PDS @tranquil.farm · 20/09/2026So we don't usually make version update posts but this is a bit of a special one. We just released v0.6.7 which in and of itself isn't immensely interesting, it's a very bug fix heavy release just like v0.6.6. A lot of those bug fixes should fix compatibility with some apps namely Colibri. But ... 10527
johanna @jola.dev · 20/09/2026You can now define multiple endpoints to subscribe to. If it fails to connect it fails over to the next one. Since Kite uses timestamp cursors, with the rewind failover "just works". 000
johanna @jola.dev · 20/09/2026It's not easy to blaze trails, really appreciate the things you contribute to the community! 111
johanna @jola.dev · 20/09/2026The recent jetstream v2 east downtime encouraged me to implement failover for my Elixir subscriber library. On @calabro.io's recommendation I switched to timestamps for live subscriptions, and I added a little rewind when switching between instances to handle clock skew tangled.org/jola.dev/kitetangled.orgjola.dev/kiteAn Elixir atproto Jetstream V2 subscriber library 2140
johanna @jola.dev · 20/09/2026Also you're doing archive replay after the 10s rewind, you can just pass the rewound timestamp and go from there. And it looks like if you don't configure an API key it will just fail to rewind and skip to live? 110
johanna @jola.dev · 20/09/2026Thank you for the library link, I did look at it when I implemented failover for Kite. I think you can simplify it a bit. Timestamps are valid cursors, you don't need to translate them to seq to failover normal live subscriptions 120
johanna @jola.dev · 20/09/2026I understand the reasons for wanting a lot of work to be client side and relying heavily on the PDS, but it's not a great user experience when your website downloads 25MB of data just to render some shitposts. The atproto community could do with caring more about performance and bandwidth 030
johanna @jola.dev · 20/09/2026You standing up for what you believe is appreciated. It means so much to so many people. 090
johanna @jola.dev · 20/09/2026Yeah, I’m thinking of kind of steady state subscribing to live or near live data, not during a backfill. My assumption was that the sequential cursor was the default mechanism and timestamp more of a fallback. Timestamp being recommended makes failover easier! 121
johanna @jola.dev · 20/09/2026Do you mean use timestamp based cursors over seq in general, or just for the cutover? 120
Reposted by johannadanielroe @danielroe.dev · 19/09/2026don't be nice.roe.devDon't be niceSometimes, it's more important to be good than it is to be nice. 41734246
johanna @jola.dev · 18/09/2026hmm, that shows it as up? I haven't received a single event from it since 10pm BST last night, and any attempts to connect to it now returns 503 110
johanna @jola.dev · 18/09/2026I guess the next feature I add is automatically falling back to the other jetstream... 120
johanna @jola.dev · 18/09/2026If you've got Elixir on your machine, you can try staring straight into the sun with this script that prints the unfiltered jetstream straight into your terminal, using tangled.org/jola.dev/kite tangled.org/strings/did:...tangled.orgstare_into_the_jetstream.ex · by jola.devA quick demo script that subscribes to the jetstream and prints all events live 3161
johanna @jola.dev · 18/09/2026ironically `jetstream.us-east.bsky.network.` is returning 503 for me right now 110
johanna @jola.dev · 18/09/2026I've extracted an Elixir Jetstream V2 library from @shelf.cafe. Define multiple subscribers, filter on collections and dids, keep track of cursors. All the good stuff! Makes it trivial to connect to the live data stream for atproto in #ElixirLang. Check it out! tangled.org/jola.dev/kite/tangled.orgjola.dev/kiteAn Elixir atproto Jetstream V2 subscriber library 1293
johanna @jola.dev · 18/09/2026Sounds like it doesn’t need a lot of resources but a generous bandwidth allowance would be nice? I haven’t run anything in OVH yet, most of my stuff is on Hetzner. How’s the experience/reliability etc? 110
johanna @jola.dev · 17/09/2026Hopefully the session going stale shouldn't happen anymore. Let me know if you see it again! 110
johanna @jola.dev · 17/09/2026Your latest RSS feed entry has a category that's just an empty string, which my parser wasn't handling. Fix is rolling out now tangled.org/jola.dev/ann...tangled.orgHandle RSS feeds with empty categories · jola.dev/annot.at@d1a1c03annot.at is a service for syncing static websites, such as blogs, to atproto and standard.site 120
johanna @jola.dev · 17/09/2026Hmm, I just tried a publish and it worked. Could you try logging out and in again, just in case it's related to the session. I've seen issues in the past and I thought I fixed them, but worth a try 100
johanna @jola.dev · 17/09/2026Agreed! Standardization is really hard and even where it works it might not have the result you’re actually looking for. Lots of lexicons is more fun 050
Reposted by johannaMacro Mayhem @macromayhem.fm · 17/09/2026🎙️ Just published a new episode of Macro Mayhem: 005 - OTP Security Releases, ElixirConf US, and Goatmire Badges. Have a listen:share.transistor.fm005 - OTP Security Releases, ElixirConf US, and Goatmire BadgesWe recap ElixirConf US in Chicago, unveil this year's AtomVM-powered... 095