Advertisement Β· 728 Γ— 90

Posts by Diana Enache (Darie)

Preview
Bounce: A Cross-Protocol Migration Tool 0:00 /0:05 1Γ— Introducing: Bounce Today at FediForum, we previewed Bounce: a new tool that uses Bridgy Fed to help migrate your social graph between Mastodon and Bluesky. You re...

Introducing Bounce: a new tool that uses Bridgy Fed to migrate your social graph b/w ActivityPub and ATProto.

Yup, we built a service that moves your social graph *across* protocols.

And the best part? You get to keep *all* of your followers, along with many of your follows.

9 months ago 183 74 11 20
Post image
1 year ago 8662 3006 62 67
Preview
Free Our Feeds Let's take social media away from billionaire capture.

🌎 It’s time to reclaim social media.
Billionaires & venture capital shouldn’t control our digital lives.

#FreeOurFeeds is raising $4M to build a public-interest alternative.

Chip in today to make it happen freeourfeeds.com

1 year ago 1202 532 37 153
Preview
Looking Back At 2024 AT Protocol Development | Bluesky In May 2024, we published a 2024 Protocol Roadmap, and we want to give an end-of-year update. We will follow up soon with a forward-looking roadmap for 2025.

2024 was a big year for atproto!

We've got an update looking back at progress that has been made, and some protocol work in progress. Will have a 2025 roadmap to share soon.

1 year ago 3686 484 131 19
Post image

Came to accept this is just natural but never not thinking about Hayao Miyazaki’s creative process.

1 year ago 1 1 0 0
Video

What does it mean for something to be Turing complete?

I answer this question, and more, through a series of fully interactive Turing machine simulations! Play, pause, step forwards and backwards, and even write your own Turing machine programs in my latest blog post.

samwho.dev/turing-machi...

1 year ago 528 159 23 36

(10/10) Next step for us, try using the lambda approach instead. Spend more time from poc to mvp and prove the solution is feasible for prod load.

1 year ago 0 0 0 0
Advertisement

(9/10) So you take the wrong decision. What next? Do you live with the consequences and live with a not so perfect solution or do you start from scratch and take another approach?

1 year ago 0 0 0 0

(8/10) According to the docs, the shard iterator should be sequential. In practise, we never managed to prove this, as we never got back an iterator we've seen before. Testing with production-scale data could reveal architectural flaws that aren't visible in small-scale pocs.

1 year ago 0 0 0 0
Post image

(7/10) It seems in practise open DynamoDB Streams can spawn thousands of empty shards for no apparent reason, making what should be simple stream processing surprisingly complex. We run this on a prod table with a relatively fair load. We realised we ended up processing thousands of empty shards.

1 year ago 0 0 0 0
Post image Post image

(6/10) There are multiple approaches to reading from streams. Preferred ones are via #lambdas or the #kinesis adaptor. For various reasons this wouldn't work for us. We are left with the manual approach of polling the streams ourselves. According to the docs this should have been pretty easy to do.

1 year ago 0 0 0 0
Post image

(5/10) Any #dynamodb table with dynamodb streams enabled can have one dynamodb stream active. At any point in time, we can only have one active stream. A #stream can have multiple shards. A shard can contain zero or more records. A record is the change that we want to be captured.

1 year ago 0 0 0 0

(4/10) #DynamoDB Streams captures a time-ordered sequence of item-level modifications in any DynamoDB table and stores this information in a log for up to 24 hours. Applications can access this log and view the data items as they appeared before and after they were modified, in near-real time.

1 year ago 0 0 0 0

(3/10) The above is not ideal, too many extra resources and extra complexity. Intriguing alternative would be a CDC approach. Which is what we chose and relied on #DynamoDBStreams for this.

1 year ago 0 0 0 0
Post image

(2/10) So this is more on lessons learnt when pocs and balancing trade offs aren't enough. Our only requirement: almost real time audit logs on all dynamodb tables. Possible approach - record any db change via events and the transactional outbox pattern.

1 year ago 0 0 0 0
Advertisement
Preview
Building an Audit Logging Solution: Production Scars and Evolutionary Architectures On lessons learnt when mvps and balancing trade offs aren't enough

(1/10) Some lessons learnt from a project where I tried to build an audit logging solution. #SystemDesign often forces trade-offs between reinventing the wheel (risky but adaptable) and using existing solutions (reliable but potentially inflexible).

blog.theengineeringcompass.com/p/building-a...

1 year ago 1 0 9 0
Preview
bluesky-account-migrator A CLI for migrating Bluesky accounts from one PDS to another.. Latest version: 0.1.0, last published: 2 minutes ago. Start using bluesky-account-migrator in your project by running `npm i bluesky-acco...

After sending countless throwaway accounts to die on my PDS, this is finally good enough to ship: www.npmjs.com/package/blue...

It's a CLI wizard for migrating your Bluesky account from one PDS to another. If you feed it the right credentials and have a stable connection, it should Just Workβ„’.

1 year ago 215 50 18 10

I need more convos like this.

1 year ago 1 0 0 0

The good news and the key difference is in the architecture. The infrastructure is built to allow users to run their own services, migrate their data, and participate in the network without relying on Bluesky's systems. The foundation is built for users and developers to break free when ready. 6/6

1 year ago 1 0 0 0

While Bluesky's design allows for decentralisation, today it runs more like Twitter: most users are on Bluesky's servers. Running a full node requires 16TB of fast storage - showing the practical challenges of true decentralisation. 5/6

1 year ago 2 0 0 0

Your Bluesky identity combines an easy-to-read username with a permanent cryptographic ID. Think of it like having both a memorable email address and a secure passport number - you can change the first while keeping the second. 4/6

1 year ago 1 0 0 0

The platform allows developers to create their own interfaces and algorithms since data is separated from presentation. This means you could see the same content through different apps, each with its own unique take. 3/6

1 year ago 1 0 0 0
Advertisement

atproto uses a shared data pool instead of server-to-server messaging. This is different from how email or Mastodon work, but allows for better data portability and custom interfaces while maintaining network-wide consistency. 2/6

1 year ago 1 0 0 0

Bluesky uses a protocol called the AT Protocol (Authenticated Transfer Protocol) aka atproto, which works similar to email in some ways. Just like how email allows you to use Gmail but still message someone with a Yahoo account, Bluesky lets you choose different providers to host your account. 1/6

1 year ago 0 0 0 0
Preview
Decentralised Social Media Explained: Inside Bluesky's Federated Architecture On what makes a system decentralised and federated, Bluesky's current architecture and AT Protocol

Bluesky's journey toward decentralised social media faces real-world scaling challenges. While their innovative protocol promises user freedom and data portability, most of their 20M+ users still rely on Bluesky's infrastructure.

Some takeaways: blog.theengineeringcompass.com/p/decentrali...

1 year ago 6 2 6 0

Hui’s and Thng’s proposed an optimisation to CQ which they called FELT (Far Future Event Leaf Tree). And Tan, Kah Leong, and Li-Jin Thng proposed the The Snoopy CQ. Both data structures are worth diving into. More info and links to specific papers can be found in the article linked above.

1 year ago 0 0 0 0
Post image

The two level alg achieves O(√n) for insert and search in worst complexity. But this can be improved.

In 1988, Randy Brown introduced Calendar Queues (CQ), which is organized like a calendar, divided into "buckets" (like days or time slots). Each bucket represents a fixed-width time interval.

1 year ago 0 0 0 0
Post image

The Two-Level (TL) algorithm proposed by Franta and Maly consists of 3 layers:
- the index list layer - divides the range of event times into equal-sized intervals.
- the secondary key layer - points to sublists of event notices
- the event notices layer - holds the event times

1 year ago 0 0 0 0

In the Unix System V, the cron calculates the next executions for each task, adds them to the Franta-Maly event list, along with their execution times. It then examines the first task in the queue, calculates its future execution time, sleeps until that time, then wakes and executes the task. [2/*]

1 year ago 0 0 0 0
Post image

The original cron was designed by Ken Thompson in Unix V7 (~1979), later rewritten by Dennis Ritchie. It would read the crontab files, used an in memory table for scheduling and had one main process that woke up every min, check if any commands need to be run, and if so, run them as root. [1/*]

1 year ago 0 0 0 0
Advertisement