delta-elixir
clojure-news-feed
delta-elixir | clojure-news-feed | |
---|---|---|
8 | 4 | |
335 | 78 | |
1.5% | - | |
5.8 | 8.1 | |
16 days ago | 3 months ago | |
Elixir | Scala | |
GNU General Public License v3.0 or later | Eclipse Public License 1.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
delta-elixir
-
Is Go the best language to build a web page with a collaborative text field?
I'm exploring web stacks to build a multiplayer text editor. Elixir's Delta has been recommended to me.
-
Would you use Phoenix LiveView to build a collaborative text field?
Definitely checkout Slab’s Operational Transform library Delta as well. I think conventional wisdom is that CRDTs can be really helpful when there is no single source of truth (i.e. a server), but OT can simplify things when there is.
-
Is there an equivalent to Yjs in Elixir's Phoenix?
For the particular goal of text collaboration, there are also operational transforms. There is a library maintained by the folks at Slab: https://slab.com/blog/announcing-delta-for-elixir/
-
Ask HN: What tech stack would you use to build a new web app today?
Yeah offline or complex client side state management is a good use case for Javascript. There are Hooks and Push Events with Liveview for real time integrations with Liveview in those scenarios. In my experience offline requirements are rare and often in mobile scenarios where a native or Flutter-like approach is a good option.
Complex client side state or collaborative features might use something like https://github.com/slab/delta-elixir or https://www.inkandswitch.com/local-first/ which is where I'd want JS.
- Delta (OT) for Elixir
- Delta: Operational Transforms for Elixir
-
Track content and changes with Delta in Elixir
Here's a little context on Delta (https://github.com/slab/delta-elixir) and the linked blog post:
Delta is a format to describe documents' contents and how it changes over time. This is a core piece of technology at Slab, that powers our real-time collaboration engine, thanks to the built-in support for Operational Transform (think multiple users working together in Google docs).
Though we've been using it internally for almost 4 years now, we're finally open-sourcing it to the wider Elixir community.
Would love your feedback!
-
Announcing Delta – Operational Transform in Elixir
Here's a little context on Delta and the linked blog post:
clojure-news-feed
-
How do you decide which language/tech stack you invest learning?
Your question is interesting to me. As a software architect, I study various tech stacks and programming languages. I concentrate mostly on open source and microservice architectures. I usually start with implementing the same feature identical rudimentary news feed microservice. Over time you start to see the similarities and differences between the various implementations. I blog about this over at https://glennengstrand.info and the source code can be found in https://github.com/gengstrand/clojure-news-feed
You are looking for a decision on what programming language and tech stack to learn next based on career mobility. Here are some questions to consider.
What kind of company are you most interested in working for? Think about the size of the company. Is it in a growth market or is profitability more important? Is it a technology company? Does the CEO view technology as a profit center or a cost center? Do they have a CTO? If they do, then who does the CTO report to, the CEO, the CIO, or the COO?
What kinds of programming languages and tech stacks are on the career pages for the kinds of companies that you are most interested in? Different kinds of companies tend to cluster around different tech stacks. There are other factors to filter for such as how deeply do they embrace remote work or commute distance to where you currently live or are willing to move to.
These are lagging indicators. They are going to be more accurate than leading indicators but that also might indicate that whatever you learn next based on these factors might have a shorter shelf life.
Finally, you should ask yourself what about your current programming language do you like? Try to pick something that you would also like. The Go programming language was originally invented as a better C and is enjoying some marketability right now. Maybe that would be something to look at.
-
Clojure needs a Rails, but not for the reason you think
I have a github repo where I implement a feature identical microservice in various tech stacks. I started that repo with a Clojure version that used community provided wrappers. See https://github.com/gengstrand/clojure-news-feed/blob/master/... as an example of calling Cassandra. Recently, I added another implementation with Clojure that just called the Java drivers directly. See https://github.com/gengstrand/clojure-news-feed/blob/master/... for that version of the same call. In the end, I decided to forego wrappers and make the calls directly because you end up with fewer dependencies and are more likely to be able to use latest versions of everything.
-
Ask HN: What tech stack would you use to build a new web app today?
I have been exposed to many different tech stacks over the years. This https://github.com/gengstrand/clojure-news-feed repo contains the code used to evaluate thirteen different stacks which is what I can share publicly. What I can say is that the best choice of tech stack depends on what is being called for. Is this for an early stage startup or an intrepreneurial greenfield project? Is this for an MVP or just the next component in an already formalized microservice architecture? What are the skillsets of the developers that you will have access to? Have you reached agreement that you can throw it all away and start over or are you expected to have to live with the choice of tech stack for the life of the product? Are you mobile first? These are all important questions that very much shape the decision.
What are some alternatives?
htmx - </> htmx - high power tools for HTML
yada - A powerful Clojure web library, full HTTP, full async - see https://juxt.pro/yada/index.html
nexus-prisma - Prisma plugin for Nexus
stripe-python - Python library for the Stripe API.
Plausible Analytics - Simple, open source, lightweight (< 1 KB) and privacy-friendly web analytics alternative to Google Analytics.
ripley - Server rendered UIs over WebSockets
delta_crdt_ex - Use DeltaCrdt to build distributed applications in Elixir
leiningen - Moved to Codeberg; this is a convenience mirror
memento - Simple + Powerful interface to the Mnesia Distributed Database 💾
bidi - Bidirectional URI routing
cachex - A powerful caching library for Elixir with support for transactions, fallbacks and expirations
slack-ruby-client - A Ruby and command-line client for the Slack Web, Real Time Messaging and Event APIs.