- parity or improvement on perf, for both CPU & GPU mode
- better support for learning (fit->transform) so we can embed billion+ scale data
- expose inferred similarity edges so we can do interactive and human-optimized graph viz, vs overplotted scatterplots
New frontiers:
- alignment tooling is fascinating, as we increasingly want to re-fit->embed over time as our envs change and compare, eg, day-over-day analysis. This area is not well-defined yet common for anyone operational so seems ripe for innovation
- maybe better support for mixing input embeddings. This seems increasingly common in practice, and seems worth examining as special cases
Always happy to pair with folks in getting new plugins into the pygraphistry / graphistry community, so if/when ready, happy to help push a PR & demo through!
> alignment tooling is fascinating, as we increasingly want to re-fit->embed over time as our envs change and compare, eg, day-over-day analysis. This area is not well-defined yet common for anyone operational so seems ripe for innovation
Training the parametric UMAP is a little more expensive, but the new landmarked based updating really does allow you to steadily update with new data and have new clusters appear as required. Happy to chat as always, so reach out if you haven't already looked at this and it seems interesting.
UUID 7 is so much easier than the ULID in the article manipulate. Pretty much every language and database has the string manipulation and from_hex functions to extract the timestamps without any special support function. Whereas a format that is too clever is way more complicated to work with.
I know it may sound stupid but in my latest project I chose ULIDs because I can easily select them as one word, instead of various implementations of browsers, terminals, DB guis, etc each have their own opinion how to select and copy the whole UUID. So from that point of view ULIDs "look" better for me as they are more ergonomic when I actually have to deal with them manually.
I don't think it's stupid and this is one of the reason I prefer ULIDs or something like it. These IDs are very important for diagnostics, and making them easily selectable is a good goal in my book.
Ghostty is a terminal like iTerm. This compiles it so it runs in the browser directly, or browser-based environments like VS Code or the Hyper terminal. Without that you’d have to reimplement a whole terminal in JavaScript. Which is what people have been doing with via the xterm.js project. Naturally, there is effort and bugs that go into maintaining a clone/port like that. This lets you use the Ghostty terminal code directly - compiled to WebAssembly and with no other dependencies - as an API-compatible drop-in replacement
Simple, they’re arbitraging the overhead of switching. The game is not to balance quality and dissatisfaction. It’s to balance quality against dissatisfaction + cost of doing something about it. If you just make the switching cost really really high, you can justify pretty much arbitrary levels of dissatisfaction.
The gap between noticing something is unsatisfactory and successfully doing something about it (capital, time, effort, risk, market share, …) is massive. It’s really only the second line they have to worry about. If the customer is unhappy but it’s too hard/expensive to switch, or there’s no other options, etc that’s really not a problem. It might even be good for “engagement” or whatever.
The gap is even wider when there’s extra barriers like network effect (dating apps) or legal rights (tv, movies, music). And the more things tilt in that direction - inherently cheap products with huge artificial moats - the more power they have. Every tick up of market capture fundamentally justifies another tick down in quality and/or an increase in price, when needed. This is just the ‘enshittification’ concept we’ve come to know.
Worst case, like another comment mentioned, when the market occasionally does produce something notable - let them do the legwork then buy it. And the bigger entities get the easier that becomes. They get harder to catch up to, while gaining more money and influence to purchase a competitor.
This isn’t 2005 where you can just make a social network or streaming platform with no consequences and take over the world. You’re not even allowed to make the app without permission.
AND as the article mentions, our only classical defense is ‘vote with your wallet’. Which presumes that a critical mass of people would be informed, willing, organized, and able to structurally boycott. Clearly we’re not equipped for that kind of economic warfare on every front from burritos on up.
And as the consumer continues to weaken economically, we actually get less power.
> But if they are actually doing that (which is unclear to me) or if they are bad in some other way, then how do they get away with it? Why doesn’t someone else create a competing app that’s better and thereby steal all their business? It seems like the answer has to be either “because that’s impossible” or “because people don’t really want that”. That’s where the mystery begins.
Pretty much all the
article’s examples are known to be happening. As to why - it’s essentially because it’s impossible, just not because no one can code a dating app. Consumers have no real leverage. There is structurally no back-pressure on this in any way, by design.
[1] https://everynoise.com/
reply