Hey, I'm sorry, but your Postgres example is completely wrong: because of MVCC, a new version of the data will be stored on every update regardless of the choice of data representation, making the in-place mutability much less of an advantage. (It might be faster than a pair of a compact immutable format + mutable patch layer on top, or it might be slower; the answer ain't immediately obvious to me!)
What you should be imagining instead is a document database entirely built around Lite³-encoded documents, using something like rollback journals instead of MVCC.
We're doing something similar in my company, storing zero-serialization immutable [1] docs in a key-value store (which are read via mmap with zero copying disk-to-usage) and using a mutable [2] overlay patch format for updates. In our analytics use cases, compact storage is very important, in-place mutability is irrelevant (again because of Copy-on-Write at the key-value store level), and the key advantage is zero serialization overhead.
What I'm saying is that Lite³ is a very timely and forward-looking format, but the merging of immutable and mutable formats into one carries tradeoffs that you probably want to discuss, and the discussion into the appropriate use cases is very much worth having.
Hi, you are right in calling out the Postgres example in the context of DBs/MVCC. The purpose of JSONB is to be an indexable representation of JSON inside a Postgres database. It is not trying to be a standalone format for external interchange and therefore it is fulfilling very different requirements.
A serialization format does not care about versioning or rollbacks. It is simply trying to organize data such that it can be sent over a network. If updates can be made in-place without requiring re-serialization, then that is always a benefit.
Write amplification is still a fact however that I think deserves to be mentioned. To tackle this problem in the context of DBs/MVCC, you would have to use techniques other than in-place mutation like you mention: overlay/COW. Basically, LMDB-style.
And yes I think databases is where this technology will eventually have the greatest potential, so that is where I am also looking.
Bubblehouse is a fast-growing custom loyalty platform, tripling the revenue each year. Headquartered in NYC, the entire team is fully remote and spread across the globe. We power loyalty programs for brands like American Girl and Old Spice.
We’re expanding our lean team of extremely experienced developers. Companies are switching from other platforms thanks to the customizations and flexibility that we offer, enabled by our pace and technical excellence, which we intend to keep for years to come.
We run on Golang and use custom data storage on top of local key-value stores, colocating the storage and compute on dedicated hardware servers, and reading data directly from mmap’ed pages of the database. Ever came across HN saying that one can run Twitter on a single machine these days? We’re doing that in production.
Zero lines of React, almost zero third-party dependencies (carefully vetted), every line of JavaScript manually written with respect and understanding of the web platform. We render HTML server-side like it’s 2005.
Looking for:
1. Top to bottom understanding of the software stack, from the modern-ish web platform to CPU caches.
2. Thinking and problem solving outside the box. (We don’t _always_ go for unconventional solutions, but we do it often enough to require a person who can do justice considering the entire problem space at every step.)
3. Demonstrated ability and hunger to learn new things quickly. (Every month we’re doing things we have never done before.)
4. Broad experience across multiple programming paradigms, platforms and software stacks.
5. Demonstrated care for the software craftsmanship (which can take many forms).
6. Great spoken English, and ability to communicate 9am to noon in New York time zone.
We give you a literally fast-paced environment (with features delivered in days) where you need to solve very challenging problems with practical advanced technology, take on entrenched market leaders, and help entrepreneurs across small and large businesses delight their fans.
Send a plain text cover letter to andrey+hiring@bubblehouse.com. Help us see how you stand out. Summarize your experience. Link to 1–5 impressive things you’ve built and proud of, link to where we can see some of your code, include your portfolio/CV, describe the platforms and stacks you’re an expert in. How did you start programming? What are you most passionate about in technology? What are the most interesting or weird things you’ve done? What are your strongest held professional opinions? Please make your email easy to read, we’ll appreciate that.
(If you have applied before, no need to re-apply, we’ll reach out.)
I’m not sure if you’re actually asking or not, but in case you want to hear an answer, it’s because Israel is considered to be defending itself after a horrible attack, not that dissimilar to Ukraine really in some people’s view (me included). This goes back to a worldview where residents of a country share a portion of the blame for their country’s actions. This view is not universal, but has a certain mindshare (again, myself included), and if you imagine it fair for residents of a place to share the fate caused by the cumulative actions of that place, it’s not a big stretch to see how Israel’s actions can be considered natural and just by some, and so can the sanctions against residents of Iran and Russia.
The vast majority of the world including the ICC and the UN does not consider Israel to be defending itself. By your own logic, Israelis are culpable for the genocide and land theft committed by their government.
I believe “vast manority” may be a stretch; do you happen to know if there’s a way to quantify that? In my bubble, almost everyone that I personally know and who generally has reasonable beliefs, is on the Israel’s side of this conflict.
Bubblehouse is a fast-growing custom and private loyalty platform. Headquartered in NYC, the entire team is fully remote and spread across US and Europe. We power loyalty programs for large brands, including household names.
We’re again expanding our lean team of extremely experienced developers. Companies are switching from other platforms thanks to the customizations and flexibility that we offer, enabled by our pace and technical excellence, which we intend to keep for years to come.
Tech-wise, we’re running on Golang, and using custom data storage on top of local key-value stores, colocating the storage and compute on dedicated hardware servers, and reading data directly from mmap’ed pages of the database. Ever came across HN saying that one can run Twitter on a single machine these days? We’re doing that in production.
Zero lines of React, almost zero third-party dependencies (carefully vetted), every line of JavaScript manually written with respect and understanding of the web platform. We render HTML server-side like it’s 2005.
Looking for:
1. Top to bottom understanding of the software stack, from the modern-ish web platform to CPU caches.
2. Thinking and problem solving outside the box. (We don’t _always_ go for unconventional solutions, but we do it often enough to require a person who can do justice considering the entire problem space at every step.)
3. Demonstrated ability and hunger to learn new things quickly. (Every month we’re doing things we have never done before.)
4. Broad experience across multiple programming paradigms, platforms and software stacks.
5. Demonstrated care for the software craftsmanship (which can take many forms).
6. Great spoken English, and ability to communicate 9am to noon in New York time zone.
We give you a literally fast-paced environment (with features delivered in days) where you need to solve very challenging problems with practical advanced technology, take on entrenched market leaders, and help entrepreneurs across small and large businesses delight their fans.
Send a plain text cover letter to andrey+hiring@bubblehouse.com. Help us see how you stand out. Summarize your experience. Link to 1–5 impressive things you’ve built and proud of, link to where we can see some of your code, include your portfolio/CV, describe the platforms and stacks you’re an expert in. How did you start programming? What are you most passionate about in technology? What are the most interesting or weird things you’ve done? What are your strongest held professional opinions? Please make your email easy to read, we’ll appreciate that.
(If you have applied before, no need to re-apply, we’ll reach out.)
Bubblehouse provides a white-glove, custom loyalty platform tailored for e-commerce brands — from small enthusiast shops to large enterprises (for example, we're powering loyalty for one of Mattel's brands). We're fast, lean, and love solving niche loyalty challenges.
We need a reliable Magento/PHP freelancer to tackle occasional Magento 2 tasks related to our Magento integration and problem solving for clients. You’ll be our go-to person for ongoing development and problem-solving related to our Magento integration module.
The ideal candidate:
- Has solid hands-on experience with Magento 2 internals (custom modules, observers, integrations).
- Writes clean, modern PHP, uses Composer & Git confidently.
- Knows how to diagnose tricky Magento issues.
- Can overlap partially with our team between 9 am – noon New York time for quick check-ins while actively engaged on our tasks.
- Can self-direct, communicate clearly, and invoice cleanly.
Work style:
- Fully remote, async-first. Occasional calls only as needed, we hate unnecessary calls.
I think your example is perfect. What he gave you is not a complete answer to why, because, as you say, he might have been doing a number of other jobs. So why roofs specifically? Add the description of how he inherited his father’s carpenter business but whenever he visited clients, they all had leaky roof, yadayada, and that he now feels happy enough to not look for any further changes, and you get the kind of answer OP is looking for.
Bubblehouse (bubblehouse.com) is a fast-growing custom and private loyalty platform for Shopify and beyond. Headquartered in NYC, the entire team is fully remote and spread across US and Europe.
We’re expanding our lean team of extremely experienced developers. Companies are switching from other platforms thanks to the customizations and flexibility that we offer, enabled by our pace and technical excellence, which we intend to keep for years to come.
Tech-wise, we’re running on Golang, and using custom data storage on top of local key-value stores, colocating the storage and compute on dedicated hardware servers, and reading data directly from mmap’ed pages of the database. Ever came across HN saying that one can run Twitter on a single machine these days? We’re doing that in production.
Zero lines of React, almost zero third-party dependencies (carefully vetted), every line of JavaScript manually written with respect and understanding of the web platform. We render HTML server-side like it’s 2005, and use Tailwind as a design language powering our custom theming engine.
We’re no enterprise company internally, but we power loyalty programs for large enterprises (as well as small enthusiast shops — this entire industry is woefully underserved).
We’re looking for:
1. Top to bottom understanding of the software stack, from the modern-ish web platform to CPU caches.
2. Thinking and problem solving outside the box. (We don’t _always_ go for unconventional solutions, but we do it often enough to require a person who can do justice considering the entire problem space at every step.)
3. Demonstrated ability and hunger to learn new things quickly. (Every month we’re doing things we have never done before.)
4. Broad experience across multiple programming paradigms, platforms and software stacks. (Not looking for someone who’s just a narrow expert.)
5. Demonstrated care for the software craftsmanship (which can take many forms, including side-, open-source or primary work projects, teaching, or simply playing with the latest tech).
6. Great spoken English (we value our communication beyond simple ability to convey crucial information).
7. Ability to communicate around 9am to noon time in New York time zone.
In return, we give you an environment where we solve very challenging problems with practical advanced technology in a lean and literally fast-paced environment (with features delivered in days) while successfully taking on entrenched market leaders and helping people across small and large businesses be more successful while pursuing their dreams.
Send your plain text cover letter to andrey+hiring@bubblehouse.com (our CTO will read & respond personally). Help us see how you stand out. Summarize your experience. Perhaps link to 1–5 impressive things you’ve built and proud of, link to where we can see some of your code (or attach some), include your portfolio/CV, describe the platforms and stacks you’re an expert in. How did you start programming? What are you most passionate about in technology? What are the most interesting or weird things you’ve done? What are your strongest held professional opinions? Please make your email easy to read, we’ll appreciate that.
Transmit is a file transfer app; it's used to get access to existing files on your own Google Drive without installing Google Drive's native app. Limiting it to a subfolder would defeat what I believe to be the most common use case.
It’d depend on what exactly you’re using it for - as an example, if you’re backing something up regularly that’d be fine.
The main thing I was thinking would be beneficial is getting user confirmation at better than the whole drive level. I think Google is trying to prevent cases where a third-party stores tokens on their servers which are breached, and in that kind of scenario it could be useful to push for scoping so e.g. if iA were breached the attacker could get your screenplay draft but not the folder where you backup your password manager or financial data.
What you should be imagining instead is a document database entirely built around Lite³-encoded documents, using something like rollback journals instead of MVCC.
We're doing something similar in my company, storing zero-serialization immutable [1] docs in a key-value store (which are read via mmap with zero copying disk-to-usage) and using a mutable [2] overlay patch format for updates. In our analytics use cases, compact storage is very important, in-place mutability is irrelevant (again because of Copy-on-Write at the key-value store level), and the key advantage is zero serialization overhead.
What I'm saying is that Lite³ is a very timely and forward-looking format, but the merging of immutable and mutable formats into one carries tradeoffs that you probably want to discuss, and the discussion into the appropriate use cases is very much worth having.
[1] https://github.com/andreyvit/edb/blob/main/kvo/immutable.go [2] https://github.com/andreyvit/edb/blob/main/kvo/mutable.go