Glad to see it working in react native. It always surprises me that RN doesn't natively support wasm. I've had to avoid other wasm-based libraries, like loro, for that reason.
Yeah, it's unfortunate but it's not really react-native/facebook's fault. Apple doesn't allow any sort of JIT to run on iOS outside of their builtin webkit js engine. That means that AFAIK there's no way to run wasm at reasonable speed on iOS, which means react-native can't really support wasm.
Romulus was pretty good actually. If you want great newer aliens universe play the game Alien: Isolation. It’s the best piece of media in the aliens universe since Aliens. It’s an amazing experience and blows all of the later films/shows out of the water in regards to keeping the original “vibe” of the setting.
Alien: Isolation truly is an under appreciated masterpiece. One of the best video games ever made IMO. Aesthetic, sound design (put on headphones and watch the reactor purge scene or the spacewalk near the end it’s phenomenal sound design), emotional design, storytelling, it captures the setting in a way I don’t think anything has done since the first two films.
My prolog anecdote: ~2001 my brother and I writing an A* pathfinder in prolog to navigate a bot around the world of Asheron's Call (still the greatest MMORPG of all time!). A formative experience in what can be done with code. Others had written a plugin system (called Decal) in C for the game and a parser library for the game's terrain file format. We took that data and used prolog to write an A* pathfinder that could navigate the world, avoiding un-walkable terrain and even using the portals to shortcut between locations. Good times.
Personally I’ve been using Brave browser on desktop and iOS. It has some of the best adblocking on mobile. Also use adguard pro which provides dns level filtering.
It certainly doesn’t feel good to have turned out being correct after warning that this is where we were headed way back in the dubyah years. This has always been the plan, it hasn’t been hidden, corporate media has just succeeded in sanewashing it for decades. Abdication of journalistic responsibility in the name of profits has allowed construction of alternate realities for so many people that these atrocities are now possible with few noticing.
The only part I would disagree with here is that there was a plan dating back to the George W. Bush Admin. I think "the plan" in earnest came into being between 2020 and 2024, and I don't think anyone from the Bush years would find a home in the party let alone the current administration. It's not that they had no plans necessarily, they just weren't the ones in charge anymore.
I do think the Bush years were the first major destabilization of rule of law domestically that helped create conditions for today, along with Obama's "look forward, not backward" enshrinement of it as bipartisan consensus. Bush also normalized a kind of partisan unresponsiveness to mass democratic uprisings that people used to believe were capable of influencing the government.
I don't like putting the blame on a "plan". Democracy is about a kind of equality among people, and the US has had a strong anti-democratic strain since slavery. Probably even feudalism before that. Once you see it, you see it everywhere and can't unsee it. There's a reason Trump's best polling issue is immigration
I think the more complete view is that the current generation of fascists learned from the Bush admin's mistakes (or, I suppose you could say, they feel unshackled by Bush era "restraint").
Combined with a cult of personality frontman to distract, aided by a captured media ecosystem and a radicalized judiciary, they are empowered to build on the shoulders of giants.
It was not self evident in the 00's that we would end up with Miller/Vought running the show - the actual form could have been something completely different. Indeed, Rove himself recently popped back up to chastise them!
I think it's because we've gotten so used to avoiding political speech as a method of "civility", we've collectively put our heads in the sand.
The people who were shouting their worries and concerns were told they were being political. Politics is just life now a days, I don't know how you can actually excise that.
I was just too young and things exploded by the time I really could start to understand what was gonig on.
I was very early Elementasry for 9/11, Middle school for the GFC. I was early 20's focusing on college in 2016, which would have been the 2nd nationals I could vote in. Then I was only a few years into my career when COVID hit.
The Obama era gave me hopes, but I didn't realize how easily it could be relinquished in the name of corporate interest. I just figured all the checks and balances would keep things from really going backwards. Obviously Trump winning was the first huge red flag, but things seemed fine. But the real red flag I (personally) saw was Ruth Bader Ginsburg not stepping down and instead dying during the Trump administration. Having 3 judges appointed by Trump (plus 3 from W. Bush beforehand) was a death knell for decades to come, even if Trump never got elected.
I guess we grew up in the same era, but I couldn't disagree more about any administration giving hopes. While Obama mostly didn't make things dramatically worse, he did keep the status quo and all the troubling policies that came with it. Refusing to prosecute Bush-era crimes? Check. Keeping Guantanamo? Check. Expanding illegal mass-surveillance systems? Check. Expanding military drone programs and extrajudicially killing civilians outside of war zones? Check. Breaking the record on whistleblower prosecutions? Check. That's in stark contrast to the leniency given to those who caused the financial crisis. On the positive side, I guess he tried to fix healthcare, but it's still broken as ever.
It was so bad that it's unbelievable that subsequent administrations managed to make matters even more astronomically worse.
Yeah, he tried, but anyone with working brain cells could tell you that ACA was just going to end up in a bigger payout to the healthcare industry. It was a status quo pro-corporate bill just like the rest of his centrist policies.
The actual solution has and always will be to reduce costs, which means people losing jobs and hospital admins not owning 3 vacation homes.
Obama very much helped deliver us to this point, similar to how the current opposition party doesn't seem to be doing that much opposition. The old george carlin bit, it's a big club and you ain't in it.
It's easy to forget the Hacker website is actually just a VC discussion board and the "avoid politics" is simply "avoid talking about our future business lines"
It might take a couple more generations, a lot more misery, and maybe even a complete breakdown of democracy in the USA, for its population to finally learn that Democrats or Republicans are bound to the same higher power in the USA: money.
Money is what decides everything, the speeding up of its accumulation brought by neoliberal economic policies under Reagan and onwards just made it abundantly clear that either party will always look out for the moneyed interests, anything else they might champion for is just there to give a veneer of democratic legitimacy. It's the foundation of American democracy, donations, aggressive lobbying, business-first mentality, the votes are there just to decide which side of the coin will move these interests forward, not to decide what platform is best for the citizenry in general.
How convenient that you have an argument for lumping together both a party that wants to continue the liberal democracy and a party that wants to cling to power at the expense of creating an actual authoritarian state complete with a secret police.
In short: republicans are the effectuators, democrats are the enablers. The democrats have been deferring to moneyed interests too over the last decades, just in a less agressive way. They spend a great deal of energy pushing actual leftists out of the party or keeping them ineffectual. And most importantly: they don't push back against the GOP's terrible policies and destruction of our democracy at all.
The two parties are not the same, but the privately funded electoral system of the US applies to all parties. Democrats cannot escape the corrupting influence of money.
Consider, as a revealing example, the Patriot Act of 2001. There was more resisitance to it from Democrats than from Republicans, yet there was still not nearly enough resistance. In the Senate, the vote was 98-1, with only Democrat Russ Feingold against. https://en.wikipedia.org/wiki/Patriot_Act?#Legislative_histo...
In my "free speech zone" link above, the Democrats were the first to use that blatant violation of free speech, at their national convention.
Republicans take advantage of the precedents set by both parties.
>Democrats cannot escape the corrupting influence of money.
They could. These are not people struggling to pay rent, they do not live paycheck to paycheck. Heck, the median age of congress is 58 so a good portion of them are free to retire and never work another day in their lives.
But they in general choose not to escape it. The money, the networks, the power. I guess the sad thing is that the populace aren't aware enough to properly primary anyone who does turn their backs on them.
Democratic politicans are not a fixed group of people: anyone can run for office. The issue is not so much that money is corrupting otherwise good people. Rather, the issue is that political campaigns are self-financed, and wealthy donors put their money behind candidates who they know to be friendly to their interests. The wealthy do not fund candidates who are unfriendly to their interests and indeed may throw their money behind an opponent, or just directly fund "interest groups" that malign candidates whom the wealthy dislike.
> I guess the sad thing is that the populace aren't aware enough to properly primary anyone who does turn their backs on them.
The fundamental problem is that primary campaigns require money, just like general election campaigns. The situation may be even worse for primary campaigns, because the news media provides much less free coverage for primary campaigns than for general elections campaigns. And the news media tends to distribute coverage based on "electability," which is invariably a euphemism for the ability to raise campaign funds.
>The fundamental problem is that primary campaigns require money, just like general election campaigns
That's part of the thing that irks me. In the age of the internet, I just don't get how and why money needs to correlate with outreach. As the most extreme examole: is 1 billion in funding really getting your name out there more than 2 billion? And is 1 billion really doing a better Job than 50m that's hyper focused on engaging the right audiences smartly? That's a big part of how you "disrupt an industry" here in tech. Get modest funds and focus efforts on what the core. Not all the bells and whistles.
Maybe among older audiences who rely on traditional media, but the internet doesn't scale that well with throwing money to compete (we can look at Google+, Mixer, and many gaming storefronts as examples). I feel there's gonna be a shift in this thinking as legacy media dies out and there's too many internet newscasters to pay off and weave a narrative.
This appears to be a marked change in subject. How are your questions directly responding to my comment?
I would say that, if taken literally, resolving the situation today is not possible. We're currently living in a deep hole that was a very long time in the making (one might even say hundreds of years in the making), and it would likely take a very long time to climb our way out of it. There's no magical, immediate solution.
The US political system has always been corrupted by money, but modern technology has enabled a vast increase in the scale and efficiency of such corruption. It used to be said, "all politics is local," but now it might be said that all politics is international.
We (many people) voted for Biden in 2020, and that was supposed to be at least part of the solution. What happened? He appointed an AG who he knew would drag his feet and not hold Trump accountable. He continued Trump's illegal asylum policies and even kept building Trump's border wall. They played chicken with Republicans to see who could shovel more money into ICE, and spent 4 years repeating Republican anti-immigrant fear mongering but then saying "we shouldn't go that far on policy". They did almost nothing about Roe V. Wade being overturned, despite having an unprecedented leak that gave them months of notice before the decision.
And what was done to fundamentally restrain the power of the presidency in preparation for the possibility of a Trump win? Well, we had a lot of talk about "norms" and finger wagging. I'm sure glad that finger and those norms are here to protect people I care about now. If only there were something more they could have done.
we didn't get here in a day, or even a decade. So it won't be solved overnight.
But sure, in the ideal world:
1. Call every bluff Trump makes. Do not capitulate to anything. Drown him in lawsuits. He's lost at least a 3rd of the DOJ so they cannot handle suing every company, college, and state at once.
2. Anyone in a red and especially purple states, make it a habit to call your represenatives every day. emails can (and probably will be) ignored. Don't let their lines be anything but people telling these congressmen to knock it off and actually do their jobs. Collorary: anyone in a blue state calls in and makes sure their congressmen know they need to also resist, fight back, and not capitulate.
3. If you can, townhalls are even better than calling. If you see the local townhalls you know this scares the GOP congressmen stiff.
4. if you see federal agents in the wild, always be recording. The truth is the beth antidote to corruption. Make sure you livestream as well so they can't just seize your phone. The more live feed out there the harder it is to spin.
5. heck, if we're really dreaming big we plan some general strike. Shut down the country for a day and you'll have everyone reeling to try and backpedal.
Varying levels of realism there, but the theme is clear: resist and make sure others resist. They can't ignore us all if we work together. But that "working together" in such a hyper-individualistic society is the hard part. It may just be more realistic to wait until someone dies or midterms happen.
It's not convenient, it's quite sad to be honest. I'm not American nor live in the USA so seeing it from the outside makes me quite sad that Americans believe to be under a democratic system where choosing their representatives matter.
Not even the liberal democracy that one of the parties want is properly a liberal democracy, it is to the limits where it infringes into business needs, and moneyed interests. They can't fight the system that enables them to exist.
There are the token attempts to make it look less than that, to appear more altruistic: ACA, better paths for immigrants to be legally integrated into society, etc. but overall the majority of Democrats are also entirely bound to the powers that fuel their campaigns, money is the only real power in the end.
The issue with the other party increasingly becoming more authoritarian and extreme over time is a side-effect from grievances caused exactly by the issue of the people not having actual any power to course-correct policies, there aren't many policy choices, it's business and money or business and money and fascism. Normal people were led to believe they can just become one of the moneyed elites if they just work hard enough, and government stays out of their way, so they vote against their interests as what they are: common people.
I wish the USA would learn that a two-party system eventually will breakdown, that it will eventually cause the fracture to be too great, and that some members of the politician class would use this wedge as a weapon to achieve power, just like what happened with the GOP. You simply cannot have only 2 parties to determine the political will of 300+ million people, it's impossible that either of them represent the variety of wants and needs of the whole population but you are stuck with that.
Continuing democracy as it was before also doesn't seem to be a good solution, it was exactly the system that brought into power the current tyrants. Too many norms, protocols, and procedures relying on tradition and decorum rather than codified, it was bound to be abused at some point, and it's quite incredible it has lasted this long.
We are a frog in a pot of water placed upon a stove.
Every time the Republican party gains power, they turn up the burner.
When the Democratic party gains power, they don't turn the burner up any further, but the most we can give them credit for is they may occasionally toss an ice cube in the water.
They do not turn the burner down.
They do not remove the pot from the stove.
They do not take the frog out of the water.
The Democratic party isn't as bad as the Republican party, but they're still ultimately boiling the frog.
---
For all their crowing about how bad Republican policy is, how often do you really see them repealing bad laws passed by Republicans - especially the disastrous tax cuts and sabotage of government agencies? Biden couldn't even be bothered to replace all of Trump's appointees.
The last few decades have demonstrated that at the very least, we need a number of constitutional amendments to fix the cracks and gaping holes in our current governmental structure that allowed us to get here, and it'll probably take burning down both major political parties and starting with new ones to make that happen.
We saw (an admittedly razor-thin) majority in the first half of Biden's term and a much more solid majority in the first half of Obama's first term. Clinton also had a solid majority in the first half of his first term, and Carter had a solid majority throughout his entire term.
It may feel skewed in favor of Republican majorities across the executive and legislative branches due to GWB having it for 6 years, but the fact is, every president in the last 30 years has had a majority in both branches at the start of their first terms.
Your problem is the people. The call is coming from inside the house.
Biden is given 4 years to grow a tree, Trump is given 8 years to cut down as many trees as he can. The government is also intrinsically hard to change (filibuster, gerrymandering, fptp, electoral college, supreme court etc).
Why does it imply that? You only need one side to consistently antagonize the other and turn everything into us-vs-them rhetoric. The other side can either choose to ignore it, try to maintain higher-level discourse, or start playing the same game; the end result is still the same. I don't see why a bipartisan conspiracy would be required.
Idea is to sync business logic calls instead of state. Let business logic resolve all conflicts client side. Logical clocks give consistent ordering. RLS gives permissions and access control. No dedicated conflict resolution logic necessary but still guarantees semantic consistency and maximally preserves user intentions. That’s the idea at least, requires more thought and hacking.
I think there's probably a lot of value to be gained in tooling for coding agents that codify and enhance the describe -> explore -> plan -> refine -> implement -> verify cycle. With most popular tools (cursor, claude code, roo, augment, windsurf, etc) you have to do this workflow "manually" usually by having the model write out .md files, it isn't super smooth.
Cool, I hadn't heard of Traycer. That does look quite similar!
Completely agree. I basically built Runner to codify the process I was already using manually with Claude Code and Gemini. A lot of developers seem to be settling on a similar workflow, so I'm betting that something like Runner or Traycer will be useful for a lot of devs.
I'll be curious to see how far the existing players like Cursor push in this direction.
I’ve largely solved this with the context7 mcp server. Any time my prompt is likely to touch apis I know the LLM will get wrong I tell it to review the docs with context7 first.
I've prototyped something attempting to solve this problem of preserving user intent and maintaining application semantics. See comment here https://news.ycombinator.com/item?id=45180325
I've replied elsewhere, but on the face of it I can't see how this solves the problem of conflicts in any way. If you disagree, say more about how it solves this?
If two users concurrently edit the same word in a text document, how does your system help?
For a text document a normal CRDT is perfect. They're very good for that specific case. What I tried to solve is eventual consistency that _also_ preserves application semantics. For example a task tracker:
* first update sets task cancelled_at and cancellation_reason
* second update wants the task to be in progress, so sets started_at
CRDT's operate only at the column/field level. In this situation you'd have a task with cancelled_at, cancellation_reason, status in progress, and started_at. That makes no sense semantically, a task can't both be cancelled and in progress. CRDTs do nothing to solve this. My solution is aimed at exactly this kind of thing. Since it replicates _intentions_ instead of just data it would work like this:
When reconciling total order of actions using logical clocks the app logic for setCancelled runs first then setInProgress runs second on every client once they see these actions. The app logic dictates what should happen, which depends on the application. You could have it discard action2. You could also have it remove the cancellation status and set in_progress. It depends on the needs of the application but the application invariants / semantics are preserved and user intentions are preserved maximally in a way that plain CRDTs cannot do.
Yes; I get all that from the readme. You pick an arbitrary order for operations to happen in. What I don't understand is how that helps when dealing with conflicts.
For example, lets say we have a state machine for a task. The task is currently in the IN_PROGRESS state - and from here it can transition to either CANCELLED or COMPLETE. Either of those states should be terminal. That is to say, once a task has been completed it can't be cancelled and vice versa.
The problem I see with your system is - lets say we have a task in the IN_PROGRESS state. One peer cancels a task and another tries to mark it complete. Lets say a peer sees the COMPLETE message first, so we have this:
IN_PROGRESS -> COMPLETE
But then a peer sees the CANCEL message, and decides (unambiguously) that it must be applied before the completion event. Now we have this:
IN_PROGRESS -> CANCELLED (-> COMPLETE ignored)
But this results in the state of the task visibly moving from the COMPLETE to CANCELLED state - which we said above the system should never do. If the task was complete, it can't be cancelled. There are other solutions to this problem, but it seems like the sort of thing your system cannot help with.
In general, CRDTs never had a problem arbitrarily picking a winner. One of the earliest documented CRDTs was a "Last-writer wins (LWW) register" which is a register (ie variable) which stores a value. When concurrent changes happen, the register chooses a winner somewhat arbitrarily. But the criticism is that this is sometimes not the application behaviour what we actually want.
You might be able to model a multi-value (MV) register using your system too. (Actually I'm not sure. Can you?) But I guess I don't understand why I would use it compared to just using an MV register directly. Specifically when it comes to conflicts.
It does not pick an arbitrary order for operations. They happen in total (known at the time, eventually converging) order across all clients thanks to hybrid logical clocks. If events arrive that happened before events a client already has locally it will roll back to that point in time and replay all of the actions forward in total ordering.
As for the specific scenario, if a client sets a task as COMPLETE and another sets it as CANCELLED before seeing the COMPLETE from the other client here's what would happen.
Client2: Replay action { id: 2, action: cancelTask, taskId: 123, clock: ...} <-- This is running exactly the same application logic as the first cancelTask. It can do whatever you want per app semantics. In this case we'll no-op since transition from completed -> cancelled is not valid.
Client2: SYNC -> no newer actions in remote, accepted
At this point client1, client2, and the central DB all have the same consistent state. The task is COMPLETE. Data is consistent and application semantics are preserved.
There's a little more to it than that to handle corner cases and prevent data growth, but that's the gist of it. More details in the repo.
The great thing is that state is reconciled by actually running your business logic functions -- that means that your app always ends up in a valid state. It ends up in the same state it would have ended up in if the app was entirely online and centralized with traditional API calls. Same outcome but works totally offline.
Does that clarify the idea?
You could argue that this would be confusing for Client2 since they set the task to cancelled but it ended up as complete. This isn't any different than a traditional backend api where two users take incompatible actions. The solution is the same, if necessary show an indicator in the UI that some action was not applied as expected because it was no longer valid.
edit: I think I should improve the readme with a written out example like this since it's a bit hard to explain the advantages of this system (or I'm just not thinking of a better way)