Inanna Malick's Avatar

Inanna Malick

@inanna.recursion.wtf

Rust, Haskell (sometimes), art https://github.com/inanna-malick

66 Followers  |  39 Following  |  16 Posts  |  Joined: 29.12.2024  |  1.8123

Latest posts by inanna.recursion.wtf on Bluesky

If I direct an AI to do a research task and it spawns 50 sub-agents to fetch pages, I would say that has to count as automated

04.08.2025 20:31 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Perplexity is using stealth, undeclared crawlers to evade website no-crawl directives Perplexity is repeatedly modifying their user agent and changing IPs and ASNs to hide their crawling activity, in direct conflict with explicit no-crawl preferences expressed by websites.

Perplexity is repeatedly modifying their user agent and changing IPs and ASNs to hide their crawling activity, in direct conflict with explicit no-crawl preferences expressed by websites. blog.cloudflare.com/perplexity-i...

04.08.2025 13:30 β€” πŸ‘ 65    πŸ” 42    πŸ’¬ 2    πŸ“Œ 14
Post image Post image

pjreddie, who made the best real-time computer vision system, epically explaining that he quit AI because the primary use case was killing people

06.05.2025 18:45 β€” πŸ‘ 104    πŸ” 29    πŸ’¬ 7    πŸ“Œ 2

it's perhaps notable that this article does not contain a single concrete example of "Here is a task I had. Here is how I used AI to solve it, and the concrete specific way it helped". The tech is useful in many ways, but that doesn't always align with the hype.

04.08.2025 00:47 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Video thumbnail

Labor activist Chris Smalls is back in the United States (via Chuck Modi)

01.08.2025 14:34 β€” πŸ‘ 5168    πŸ” 1189    πŸ’¬ 36    πŸ“Œ 72

Check this out if you want to hear me forget what the 'S' in DNS stands for live on stream

01.08.2025 16:00 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Video thumbnail

πŸš€ Episode 101 of #ThisWeekInNET!
We explore how to build a real-time, decentralized social app, using Cloudflare Workers and ATProto, the protocol behind Bluesky.
Plus: a glimpse into Python notebooks on Cloudflare with marimo.
πŸ“Ί Watch: youtu.be/h_wuYR4BEng

01.08.2025 15:01 β€” πŸ‘ 19    πŸ” 3    πŸ’¬ 0    πŸ“Œ 1

Thank you but I don't think I would use that domain - why akai?

01.08.2025 03:40 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Claude for rustlang: you know what this test code needs? Box::leak

Claude for beta-testing command line tools: actually quite nice, provides good UX reports and small feature requests

The trick is that in the second case, "this was kinda confusing and I couldn't make it work" is _useful output_

31.07.2025 17:07 β€” πŸ‘ 9    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

This is good. Great work by @baileytownsend.dev in the Rust port of the statusphere tutorial. It's great seeing the community fork and adapt for knowledge sharing.

Kind of gets me thinking about XRPC services deployed as Cloudflare Workers ...

24.07.2025 13:43 β€” πŸ‘ 22    πŸ” 4    πŸ’¬ 1    πŸ“Œ 1
Preview
Serverless Statusphere: a walk through building serverless ATProto applications on Cloudflare’s Developer Platform Build and deploy real-time, decentralized Authenticated Transfer Protocol (ATProto) apps on Cloudflare Workers.

Real-time, decentralized social apps β€” without running a single server. Here’s how to build and deploy an atproto app on Cloudflare Workers. blog.cloudflare.com/serverless-a...

24.07.2025 13:06 β€” πŸ‘ 193    πŸ” 46    πŸ’¬ 4    πŸ“Œ 7

I think you could probably use Durable Objects for a PDS

31.07.2025 15:03 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

IIRC the consensus was that there's no hard reason not to support it in the future, so if a few users/customers put in polite feature requests it could become possible pretty easily

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

Great write up by @inanna.recursion.wtf of learning from @baileytownsend.dev’s Rust Statusphere example and deploying via Wasm in Cloudflare Workers.

24.07.2025 13:40 β€” πŸ‘ 37    πŸ” 11    πŸ’¬ 1    πŸ“Œ 0
screenshot showing my github repo rusty_statusphere_example_app at 50 stars

screenshot showing my github repo rusty_statusphere_example_app at 50 stars

Thank's to @inanna.recursion.wtf's blog post on @cloudflare.social today, my Rust Statusphere implementation hit 50 stars on GitHub! Pretty excited about that milestone.

github.com/fatfingers23...

25.07.2025 01:06 β€” πŸ‘ 28    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
The compiler lets us know that we forgot to call default number in the expression that we assigned to default in facet(default). It suggests adding parenthesis, which is the correct fix.

The compiler lets us know that we forgot to call default number in the expression that we assigned to default in facet(default). It suggests adding parenthesis, which is the correct fix.

did you know?

`#[serde(default = "some_func")` is a remnant of some old Rust limitations.

Now we can do:

`#[facet(default = some_func())]` (or just have any expression in there!)

29.04.2025 12:44 β€” πŸ‘ 63    πŸ” 8    πŸ’¬ 9    πŸ“Œ 1

Thinking about a useful Bluesky tool for US border crossings - something that archives a user's repo, deletes their post history, and replaces it with anodyne normie meme posts. Then, after the crossing is complete, it should be able to revert that change and restore the original content.

19.04.2025 16:54 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

so sort of an app-specific firehose that denormalizes/prefetches merkle tree entities based on the specifics of what makes sense for that app? that sounds really cool

17.04.2025 05:50 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
chat.bsky.convo.sendMessage | Bluesky *This endpoint is part of the Bluesky Chat (DMs) APIs. Requests usually require authentication, are directed to the user's PDS intance, and proxied to the single central chat service by setting the ap...

oh nice, this is maybe possible via some of the chat.bsky.convo endpoints. Gluing things together would be interesting, I think ultimately it would require a sort of virtual bsky user per groupchat that you'd initiate a bsky chat session with that proxies groupchat msgs docs.bsky.app/docs/api/cha...

13.04.2025 18:34 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

thinking about groupchats... is there a way to push notifications to a bsky account via an (authenticated) atproto client? Like if there was an offsite groupchat could I plug into the onsite chat functionality somehow (for users that opted in ofc)?

13.04.2025 18:30 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0

SILT#00032: I've been linting my Rust code for a while and have just realized that at the end of a deny, allow, or warn attribute macro, I can place the reason for applying that lint with `reason=`. That feels so much more useful than how I've done it before, leaving comments around the attribute

12.04.2025 03:41 β€” πŸ‘ 5    πŸ” 1    πŸ’¬ 0    πŸ“Œ 1

Thanks! I'll be doing a writeup/blog post and sharing code next week

12.04.2025 03:50 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I go to the whiteboard and write "API". Then I smirk and cross out the P. The VCs start howling and sobbing and throwing money.

11.04.2025 16:39 β€” πŸ‘ 27    πŸ” 3    πŸ’¬ 1    πŸ“Œ 0

This time last week I was hopelessly bogged down in modifying the official typescript atproto libraries to run in a wasm/worker context, starting with a rust impl (if only because I have a fair amount of rust experience) was way easier

11.04.2025 20:46 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

This is all built on the guide here atproto.com/guides/appli..., but without the github.com/fatfingers23... app published by @baileytownsend.dev I wouldn't have been able to get it working

11.04.2025 20:32 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

I ended up using a scheduled cron job (via the scheduled feature) to poll jetstream every minute instead of maintaining a persistent websocket connection.

11.04.2025 20:32 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 1
The front page of the linked website, with some emoji statuses published by me. Each is tagged with 'local only, remote, or local validated via remote' to distinguish between events that are published locally via optimistic db update, events that have been sourced from jetstream, and events that were originally published locally but were then observed via jetstream.

The front page of the linked website, with some emoji statuses published by me. Each is tagged with 'local only, remote, or local validated via remote' to distinguish between events that are published locally via optimistic db update, events that have been sourced from jetstream, and events that were originally published locally but were then observed via jetstream.

It's a work in progress and I'm not quite ready to post the source code, but check it out: the statusphere-example atproto app running entirely on the edge via cloudflare workers using a free plan & the wasm32-unknown-unknown rust compile target statusphere-w.inanna-c38.workers.dev

11.04.2025 20:32 β€” πŸ‘ 17    πŸ” 2    πŸ’¬ 1    πŸ“Œ 2

@inanna.recursion.wtf is following 19 prominent accounts