Board

Board

2272 bookmarks
Custom sorting
How we built it: the technology behind Cloudflare Radar 2.0
How we built it: the technology behind Cloudflare Radar 2.0
Radar 2.0 was launched last month during Cloudflare's Birthday Week as a complete product revamp. This blog explains how we built it technically. Hopefully, it will inspire other developers to build complex web apps using Cloudflare products.
·blog.cloudflare.com·
How we built it: the technology behind Cloudflare Radar 2.0
I turned JS into a compiled language (for fun and Wasm) — surma.dev
I turned JS into a compiled language (for fun and Wasm) — surma.dev
This is one of those times where I got so fascinated by the idea of a thing that I forgot to ask myself whether it’s a good idea to build the thing. The idea being, transpiling JavaScript to C++ so I can compile that to whatever I need.
·surma.dev·
I turned JS into a compiled language (for fun and Wasm) — surma.dev
How Figma’s multiplayer technology works
How Figma’s multiplayer technology works
A peek into the homegrown solution we built as the first design tool with live collaborative editing.
It’s worth noting that we only use multiplayer for syncing changes to Figma documents. We also sync changes to a lot of other data (comments, users, teams, projects, etc.) but that is stored in Postgres, not our multiplayer system, and is synced with clients using a completely separate system that won’t be discussed in this article. Although these two systems are similar, they have separate implementations because of different tradeoffs around certain properties such as performance, offline availability, and security.
. This means that adding new features to Figma usually just means adding new properties to objects.
We had a lot of trouble until we settled on a principle to help guide us: if you undo a lot, copy something, and redo back to the present (a common operation), the document should not change. This may seem obvious but the single-player implementation of redo means “put back what I did” which may end up overwriting what other people did next if you’re not careful. This is why in Figma an undo operation modifies redo history at the time of the undo, and likewise a redo operation modifies undo history at the time of the redo.
An important consequence of this is that changes are atomic at the property value boundary. The eventually consistent value for a given property is always a value sent by one of the clients. This is why simultaneous editing of the same text value doesn’t work in Figma. If the text value is B and someone changes it to AB at the same time as someone else changes it to BC, the end result will be either AB or BC but never ABC. That’s ok with us because Figma is a design tool, not a text editor, and this use case isn’t one we’re optimizing for.
Object creation in Figma is most similar to a last-writer-wins set in CRDT literature, where whether an object is in the set or not is just another last-writer-wins boolean property on that object. A big difference from this model is that Figma doesn’t store any properties of deleted objects on the server. That data is instead stored in the undo buffer of the client that performed the delete. If that client wants to undo the delete, then it’s also responsible for restoring all properties of the deleted objects. This helps keep long-lived documents from continuing to grow in size as they are edited.
This system relies on clients being able to generate new object IDs that are guaranteed to be unique. This can be easily accomplished by assigning every client a unique client ID and including that client ID as part of newly-created object IDs. That way no two clients will ever generate the same object ID. Note that we can’t solve this by having the server assign IDs to newly-created objects because object creation needs to be able to work offline.
Many approaches represent reparenting as deleting the object and recreating it somewhere else with a new ID, but that doesn't work for us because concurrent edits would be dropped when the object's identity changes. The approach we settled on was to represent the parent-child relationship by storing a link to the parent as a property on the child. That way object identity is preserved. We also don’t need to deal with the situation where an object somehow ends up with multiple parents that we might have if, say, we instead had each parent store links to its children.
·figma.com·
How Figma’s multiplayer technology works
Eric Ciarla
Eric Ciarla
Welcome to my scheduling page. Please follow the instructions to add an event to my calendar.
·calendly.com·
Eric Ciarla
Fiberplane’s Collaborative Notebooks for Incident Management
Fiberplane’s Collaborative Notebooks for Incident Management
In the latest episode of The New Stack's Makers podcast, Micha Hernandez van Leuffen, founder of Fiberplane, talked about creating a tool for DevOps and SREs. Alana Anderson, founder of Base Case Capital, offered an investment capital firm's perspective.
·thenewstack.io·
Fiberplane’s Collaborative Notebooks for Incident Management
A Brief Guide to OTP in Elixir
A Brief Guide to OTP in Elixir
Learn about OTP, a set of tools and libraries that Elixir inherits from Erlang.
·serokell.io·
A Brief Guide to OTP in Elixir
Why fix Kubernetes and Systemd?
Why fix Kubernetes and Systemd?
Learn why and how the Aurae Runtime project aims to replace parts of Kubernetes and Systemd.
The duplication of scope is one of the main motivating reasons behind Aurae. I believe that distributed systems should have more ownership of what is running on a node. I am not convinced that systemd is the way forward to accomplish the goal of exposing a multi tenant API to a higher order control plane. This is the first reason why I started Aurae.
·medium.com·
Why fix Kubernetes and Systemd?
Understanding science funding in tech, 2011-2021
Understanding science funding in tech, 2011-2021
For those who sit between science and tech, it’s hard not to notice the proliferation of new initiatives launched in the last two years, aimed at making major improvements in the life sciences especially.
·nadia.xyz·
Understanding science funding in tech, 2011-2021
Phd
Phd
·nadiaeghbal.com·
Phd
Basic
Basic
·nadiaeghbal.com·
Basic
Earthly Switches to Open-source
Earthly Switches to Open-source
TLDR We are switching from a source-available license, to an open-source license for Earthly.We started Earthly with the mission of bringing better...
Oftentimes, to be able to deliver on a mission, you also need a way to sustain that mission long-term. For us this meant raising capital from investors and building a sustainable business around it. To protect the interests of the business, we need to create a moat1. Thus, some time ago we decided to use the source-available license Business Source License (BSL), which is like an open-source license, but with one exception: it prevents anyone from creating a competing product and also commercializing it.
There is some analogy to be drawn about the Postgres / CockroachDB case - the syntax (the Postgres SQL dialect) is open-source, which helps foster a flourishing community ecosystem full of various vendors, community tools, integrations, and interoperability. If the syntax weren’t an open standard, Cockroach wouldn’t have had an ecosystem to plug a commercial product into.
Copy-left licenses like GPL and AGPL are somewhat similar to source-available in spirit, even though they are OSI-approved. Copy-left is used as a poison pill for anyone trying to copy and build a competing product by the fact that it forces the competitor to release the code back as open-source. All while the owner of the project can still create closed-source modifications to the project to sneak in unique advantages - the owner is allowed to because they own copyright (assuming a CLA is in place - like there usually is in such cases). For similar reasons, there are several databases that use a copy-left license - it makes it hard for the competition to support differentiating features, while the original author can still have closed-source differentiators.↩︎
·earthly.dev·
Earthly Switches to Open-source
0x00D - Open-source Business Models 💸
0x00D - Open-source Business Models 💸
Problem: Developers easily adopt open-source, but it’s unclear how to monetize an open-sourced solution. Solution: Using an open-source business model and keeping it sustainable while maintaining high developer adoption.
Distribution Model - Building a cohesive product from a set of open-source components.
Letting Go of Your IP: You need to be OK with open-sourcing your product, and all the benefits this gives your potential (and actual) competitors. Unless you know that you will execute and achieve market adaption better than them, this is a genuine concern.
Compliance push: Because of GDPR and the like, some companies are moving from SaaS offerings into their own self-hosted infrastructure, which might increase the market adoption of on-prem open-source offerings.
New contributor incentives: As more and more companies move into the open source monetized zone, I can see that contributors are less likely to contribute freely. I suspect to see new creative approaches to incentivize contributors (swag, payments, remote work, fame?).
·unzip.dev·
0x00D - Open-source Business Models 💸
The End of Localhost
The End of Localhost
All the Cloud's A Staging Env, and All the Laptops Merely Clients
·dx.tips·
The End of Localhost
Painful Sex
Painful Sex
A free, bilingual, inclusive encyclopedia of the pussy* made for you to understand: menstruation, menopause, reproduction, sex & masturbation, infections, contraception & abortion, vaginal health, and more.
·pussypedia.net·
Painful Sex
Do you know how orgasm is in females? female body and biology
Do you know how orgasm is in females? female body and biology
Biology of Female orgasm 3dmedicalanimation animation video is made and copyrighted_by_Dandelion _Team Fertilization medical animation https://youtu.be/u0y2Wvc0Jm0 We all won this race! https://youtu.be/VYWuySwoqUg What role does sperm structure play in fertilization? https://youtu.be/1YxA6zIvIWw ovulation and menstrual cycle often called the period https://youtu.be/42WIByexiXc The effect of Tied umbilical cord in twins https://youtu.be/vB9ZBnwTfKg High Blood Pressure Hypertension https://youtu.be/gsczOAeGst4 How your body turns food into the poo Human digestion system in human beings https://youtu.be/HXrl37BC3QU food digestion is the story of how your food ends up as a poo 3d medical animation dandelion team https://youtu.be/TPdQKcFuhPI coronary angiogram Micro Needle|3d medical animation|sample use only https://youtu.be/sRGMJhit4h0 heart valve replacement 3d medical animation|sample use only|dandelion team https://youtu.be/9L9i59eY5Zg short videos how long does it take for the body to digest food? https://youtu.be/z6G2L1hY5hc The world of inside a bone https://youtu.be/SWCLK4t0iXo What Part of the Brain Controls Emotions? https://youtu.be/UHTm2aqv-tQ small intestine https://youtu.be/7hweT7wgyF0 copyright by Dandelion Team
·youtube.com·
Do you know how orgasm is in females? female body and biology
A Visual Guide to SSH Tunnels (with labs)
A Visual Guide to SSH Tunnels (with labs)
SSH port forwarding explained in a clean and visual way. How to use local and remote port forwarding. What sshd settings may need to be adjusted. How to memorize the right flags.
·iximiuz.com·
A Visual Guide to SSH Tunnels (with labs)
Browsertech Digest: Mighty & The Neobrowsers
Browsertech Digest: Mighty & The Neobrowsers
Welcome back to the Browsertech Digest. This is issue #4. Mighty Yesterday, Mighty founder Suhail Doshi announced a pivot from building a “Chrome in the...
·digest.browsertech.com·
Browsertech Digest: Mighty & The Neobrowsers