HackerTrans
TopNewTrendsCommentsPastAskShowJobs

evelant

no profile record

comments

evelant
·पिछला माह·discuss
Check out Ki editor https://ki-editor.org/ — core movements based on AST
evelant
·3 माह पहले·discuss
I guess I fail to see why this is such a problem. Yes it would be nice if the wire format were standardized or had a standard schema description, but is writing a parser that handles several formats actually a difficult problem? Modern models could probably whip up a "libToolCallParser" with bindings for all popular languages in an afternoon. Could probably also have an automated workflow for adding any new ones with minimal fuss. An annoyance, yes, but it does not seem like a really "hard" problem. It seems more of a social problem that open source hasn't coalesced around a library that handles it easily yet or am I missing something?
evelant
·3 माह पहले·discuss
AFAIK that's not really true, at least of modern vapes. Their function is not to "make fire", it's to heat a metal coil to a specific temperature at which propylene glycol and vegetable glycerin will aerosolize which is far lower than ignition temperature. Most modern vapes also use controllers with a feedback loop that pulse power through the coil hundreds of times per second to maintain the ideal temperature and desired power throughput. That being said there are definitely crappy and diy devices that unsafely dump huge current through devices but AFAIK modern devices generally don't do this because it's a bad user experience (burnt taste, too hot, ruined cotton absorber, etc) -- regulating the power is what users want so it's what devices do.
evelant
·4 माह पहले·discuss
IMO it does not. At least to me the meaning and value of something is in the creative human design behind it, not the tools used to build it. I don’t think AI changes much there. It’s a (very powerful) tool but still IMO the value lies with the creativity and skill of the operator.
evelant
·4 माह पहले·discuss
I wrote the vscode extension for Ki. It would almost certainly be usable with Zed since it talks with the editor over a websocket. Check out the code in the Ki repo.
evelant
·4 माह पहले·discuss
Yeah that’s it. Bundles the editor binary with the extension so you don’t have to install it separately.
evelant
·4 माह पहले·discuss
I made the vscode integration for this. I feel bad that I haven’t contributed much since, it’s a really cool project. IMO it’s important to try to innovate in the foundational tools of our craft (editors, languages, tooling, OS, etc) which Ki does.
evelant
·7 माह पहले·discuss
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.
evelant
·7 माह पहले·discuss
Yes! I (experimentally) compiled and packaged it for react-native. Postgres on iOS and Android https://github.com/electric-sql/pglite/pull/774
evelant
·8 माह पहले·discuss
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.
evelant
·8 माह पहले·discuss
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.
evelant
·8 माह पहले·discuss
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.
evelant
·9 माह पहले·discuss
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.
evelant
·9 माह पहले·discuss
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.
evelant
·10 माह पहले·discuss
I’ve been experimenting with this, it’s a very interesting problem space!

https://github.com/evelant/synchrotron

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.
evelant
·10 माह पहले·discuss
Cool stuff! This looks quite similar to https://traycer.ai/

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.
evelant
·10 माह पहले·discuss
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.
evelant
·10 माह पहले·discuss
It would be up to application logic. This prototype essentially offers the same behavior you would get with a traditional backend API except it works offline. The results would be the same as if clients made those calls to a backend api, that is, up to application logic. My idea was that it's essentially impossible to have generic "conflict resolution" that follows arbitrary business rules so I made the business rules _be_ the conflict resolution. For any given situation the answer to "how would it handle a then b then c" is "the same as any normal backend api, per regular business logic, except it works offline".
evelant
·10 माह पहले·discuss
[flagged]
evelant
·10 माह पहले·discuss
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.

Client1: { id: 1, action: completeTask, taskId: 123, clock: ...}

Client1: SYNC -> No newer events, accepted by server

Client2: { id: 2, action: cancelTask, taskId: 123, clock: ...}

Client2: SYNC -> Newer events detected.

Client2: Fetch latest events

Client2: action id: 1 is older than most recent local action, reconcile

Client2: rollback to action just before id: 1 per total logical clock ordering

Client2: Replay action { id: 1, action: completeTask, taskId: 123, clock: ...}

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

Client1: SYNC -> newer actions in remote, none local, fetch newer actions, apply action { id: 2, action: cancelTask, ...}

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)