I just found it useful for myself, because I tend to find myself writing the same gpt prompts over and over again with just a few letters changed, so it just makes that a little easier
as a user i dont like it, and am disappointed. it will take a bit of time to transition our systems off of posthog, but we will need to.
if you are looking at your metrics, I want to be clear that this transition will not happen overnight, but it _will_ happen for this reason, so just be aware that your short-term metrics won't tell the full story
For a long time I've been thinking about like how to solve modern problems with modern technology, but maybe in the end the solution is to just like turn everything off and get outside more
You can still create a feed on desktop, and then view it on mobile if you sign in to the same account, but I'm in-progress of making a mobile-only experience.
(the thought is to push back on the recent claims of LLM built xxx popular project that otherwise took humans xxx years of effort by reminding us all how much of the original project is the training set)
maybe the games market is just hard in general, but i dont know that ai games are super popoular even though people are building them. playing mafia against the ai feels somehow tiring, even if it is also occasionally fun
It took me about 6 months to really think it through all the way, and get the design just right, so it feels good to finally publish it.
TLDR of 'why deft'
The problem is that:
- Clojure records use single-colon (unnamespaced) keyword access to lookup record fields
- Clojure records do not allow you to define abstract classes, or things that rely on complex dispatch behavior.
- Clojure records do not reload easily in the REPL, so you have to re-instantiate the object to see changes to method defs.
- Clojure maps are difficult to nail down. Even with libraries like Malli, it's hard to declare interfaces that explain "what can I do with this thing?" and "what multimethods do I need to implement?"
- Defining maps with Malli schema is not as enjoyable and ergonomic as the syntax of defrecord
The library is basically just plain maps, multimethods, and malli schema, but adds macros to allow you to use the same syntax as defrecord, and to define interfaces and implementations as lists of multimethods a type must implement.
The goal is to give something that's still enjoyable to work with, but lets you really nail down the behavior when you want to (and still keeps it ergonomic and fun).
A secondary goal was to make something that is reliable and stable, and is (hopefully) easy to adopt in existing codebases.
(more detailed explanation in video and on github)