Ovi Stoica

Ovi Stoica

@ovistoica.com

Ex Team Lead, #clojure #emacs #conversational-ai 👉 building shipclojure.com

207 followers69 following176 posts

Things I unironically do in #orgmode first: - Write messages before sending them in slack - Write messages before sending them to AI - Write messages before sending them to myself

In light of the latest npm hacks, here is the package json comparison based on the new version of @shipclojure 😌 Most of the removals are moving from react to replicant. I think I can even do without date-fns since #clojurescript comes with it's own date manipulation.

Was researching best software to publish docs but then I realized I wanted them on the main shipclojure(.)com website so I just used shipclojure to build them. Currently just static pages (for that sweet SEO juice) but I'll add algolia-like search What do you think? (Docs not complete btw)

The new Datomic/Replicant/Datascript stack for @shipclojure now has automatic CI/CD through kamal-deploy.org. It's awesome! You own your infrastructure, you can deploy to any server, whether Digital Ocean, Hetzner, or any other VM vendor. Stay tuned for the official launch!

You get Dockerized zero-downtime deploys, automated directly from GitHub Actions! Nothing better to get you into flow-based development. The deployment contains: - Automatic Datomic Transactor Setup - Memcached for Datomic - PSQL DB used as Datomic storage - The app itself

Note: The deploy took 7m 24 as it builds the frontend and backend, and the caching layer was busted as I made modifications to bb.edn in this particular example. With full caching, it can be as fast as 2-3 minutes to deploy a simple fix to backend.

"The hero is the man of self-achieved submission. But submission to what? That is precisely the riddle that today we have to ask ourselves, and that is everywhere the primary virtue and historic deed of the hero to have solved. " - The Hero With A Thousand Faces, Joseph Campbell

Is there a probable future where the next generations will be full of (even more) very entitled people because, from a very early age, they had AI tell them "You're absolutely right!" all day long?

Lately I'm thinking of starting a newsletter, but because I'm weird, I don't want to do fancy things with images, rich formatting, and other such things. I want a newsletter where I just write normal text with some occasional links. Is there an API based software that does that?

Ideally, I'm thinking of integrating it in Emacs and managing my newsletter in org mode! Does anybody know of something like this? If not, I might build it 🤔

I've just finished migrating all of shipclojure's Datomic stack authentication handlers to use github.com/ovistoica/r..., and it's a joy to work with. - Debugging routes is now very easy - Added 1k lines of unit tests and caught some bugs in the process Note: Those are *new* tests

Just released ring-nexus-middleware 🎉 Middleware to support FCIS (Functional Core, Imperative Shell) style programming in ring handlers through Nexus - a zero-dependency data-driven action dispatch system.

View full thread

What ring-nexus-middleware does: • Enables Ring handlers to return pure actions instead of response maps • Provides built-in HTTP response actions (:http-response/ok, :http-response/bad-request, etc.) • Adds a pure snapshot of your system to request (deref of atoms, datomic db, etc)

Just released ring-nexus-middleware 🎉 Middleware to support FCIS (Functional Core, Imperative Shell) style programming in ring handlers through Nexus - a zero-dependency data-driven action dispatch system.

Why? Classic ring handlers, 99% of the time, are impure functions. The classic ring handler goes like this: 1. Add dependencies (DB connection, client with internal secret, etc) to the request map (or to scope with a hoc) 2. Do impure stuff in the request handler body 3. Return a ring map based

In the current release: - Added support for Google LLMS (Gemini) - Added activity monitor processor - Added scenario manager for complex conversation flows - Streamlined dependencies - Use vthreads where possible if supported by the host

Yes! AI is creating a monoculture on the frontend, but also language-wise. Most new startups use TypeScript frontends & Python/TypeScript on the backend too. While this will help you move fast initially, it will seriously impact your hiring later down the line www.youtube.com/watch?v=x3J...

youtube.comIs AI Creating a Dev Monoculture?LLMs often default to a single tech stack (like React, Tailwind, ShadCN). This tendency could reduce competition and innovation in the long run, potentially ...

Since core.async.flow does mainly normal threads for each process, I'm experimenting with using vthreads for all other async work. Pretty happy with current work

Hear me out: loveable(.)dev but with daisy ui instead of shadcn so you are not tied to react ✨ Reshare if you would use. Let's see if this idea has legs

Coming back to the re-frame data-fetching story. I’m coming at this from the react mindset where, as soon as I navigate to a page, I want to fetch data related to that page. HOWEVER I see that some re-frame apps, just fetch everything at the start and it’s done…

There are lots of mentions in the re-frame docs about using data script or another datalog flavored frontend storage. Does anybody know of a good open source example or blogs about this pattern?

Update on the shipclojure launch: - 10 new customers (total 38 customers) - 2k EUR total revenue from the launch Users reported some issues with getting started, so I'm busy this morning 👨‍💻 I'm thankful to everybody who acquired ShipClojure, and more features are coming.

✨ New: ShipClojure - ship your Clojure projects faster! Ready-made auth, payments & UI components 30+ themes with responsive design AI & deployment tools built-in 🎁 First 5 reposts get 10% OFF - DM me! shipclojure.com

Re-frame needs a better data-fetching story, with caching, mutation support, cache invalidation, subscription support, polling, re-fetching on focus, and more.

The more I talk to companies and hearing their recruitment struggles, the happier I am choosing #clojure as my default stack. 1. Finding developers and jobs is easy 2. Your inbox doesn't get flooded with AI generated CVs 3. Most of the people that you interview are senior

The best gift AI can give to functional programmers is breaking the Lisp curse! Let's use it to write documentation & examples so our libraries see more usage and we don't have a scattered community! Example using claude code to write documentation for shipclojure about rendering & sending emails 👇

I'm so happy shipclojure tests in CI replicate accurate production setups. Initially, I was spawning an in-memory H2 DB for tests, but it is clunky because you always have to think about what PSQL functionality it supports. Now I run psql both in dev, prod & tests 😌

This is the most complete and up-to-date Stripe #clojure library out there. Please tag the author if you know their username. Yonureker, thank you for this excellent library! 🙏