ClojureVerse - Latest posts https://clojureverse.org Latest posts #_ as a semantic block-closing marker for LLM-friendly Clojure Maybe you know about Bruce Hauman’s Clojure MCP Light, which despite its name is a way to help LLMs untangle delimiter problems?

Myself, whenever I’ve had delimiter issues I’ve simply asked the agent to refactor the function into smaller composable functions and that’s solved the problem. I personally favor really short functions especially for LLMs. Strong opinion lightly held…

]]>
https://clojureverse.org/t/as-a-semantic-block-closing-marker-for-llm-friendly-clojure/14851#post_4 Mon, 16 Mar 2026 00:52:22 +0000 clojureverse.org-post-42539
Edgarjure — SEC EDGAR filings, financials, and XBRL data for Clojure I’ve published edgarjure, a Clojure library for accessing and analysing SEC EDGAR data.

What is SEC EDGAR?

EDGAR is the U.S. Securities and Exchange Commission’s public filing system. Every public company in the U.S. files here — both structured data (XBRL financials, XML ownership reports) and unstructured text (annual reports, risk disclosures, MD&A narratives). It represents decades of data on thousands of firms, accessible via public HTTP/JSON APIs with no API keys or paid services required.

What does edgarjure do?

It provides comprehensive access to all of it from Clojure:

  • Financial statements — income, balance sheet, cash flow with automatic XBRL line-item resolution across accounting tag changes, restatement deduplication, and long or wide output
  • XBRL facts — datasets with human-readable labels, concept discovery, and cross-sectional screening across all filers in a single API call
  • Filing content — full-text section extraction from 10-K/10-Q (MD&A, Risk Factors, any item), HTML table extraction
  • Form parsers — Form 4 (insider trades) and 13F-HR (institutional holdings) into structured maps and datasets
  • Panel datasets — multi-ticker, multi-concept, with point-in-time support for look-ahead-bias-free backtesting
  • Bulk downloads — bounded parallelism, skip-existing, structured result envelopes
  • Unified API — ticker or CIK interchangeably, keyword args throughout, Malli validation at entry

Dataset results are returned as tech.ml.dataset for easy downstream manipulation.

What’s the goal?

A composable, research-grade Clojure data system for SEC filings — where immutable data, lazy sequences, and a unified API make financial research pipelines clean and reproducible.

This is an early release (0.1.1). The core is solid and tested, but there’s plenty more to build. Feedback and contributions are very welcome.

]]>
https://clojureverse.org/t/edgarjure-sec-edgar-filings-financials-and-xbrl-data-for-clojure/14859#post_1 Sun, 15 Mar 2026 01:01:44 +0000 clojureverse.org-post-42538
#_ as a semantic block-closing marker for LLM-friendly Clojure Which model are you using? I’m using Opus 4.6 (and 4.5 beforehand) with Claude Code (no additional tooling) and it almost never struggles with the parentheses and if it does, it is able to fix it on its own.

]]>
https://clojureverse.org/t/as-a-semantic-block-closing-marker-for-llm-friendly-clojure/14851#post_3 Thu, 12 Mar 2026 20:32:38 +0000 clojureverse.org-post-42536
#_ as a semantic block-closing marker for LLM-friendly Clojure You write that you are using an LLM, but if you are using the LLM through an agent tool like claude code or others you could register a post tool hook that corrects parenthesis in the changed code based on the indentation. Because LLMs are quite good at keeping the indentation correct. brepl contains such a hook implementation for claude-code and eca.

]]>
https://clojureverse.org/t/as-a-semantic-block-closing-marker-for-llm-friendly-clojure/14851#post_2 Thu, 12 Mar 2026 19:09:48 +0000 clojureverse.org-post-42535
ANN: Yet one Clojure IDE - ontology editor based Hi,

Further development of the ClojureMiniIDE project based on the Protege 3.5 ontology editor. Home: https://github.com/rururu/ClojureProtegeIDE

Specila Features:

  1. Representing knowledge as ontologies. Using an ontology editor Protege 3.5 to represent a subject area (frame data model) in object-orientet form.

  2. Program. In Clojure, there’s no concept of a “program”; there’s only the concept of a “namespace”. These aren’t quite the same thing. A given task typically requires multiple namespaces. ClojureMiniIDE defines a program as an ordered sequence of namespaces. The order is determined by the order in which namespaces must be loaded, as this is essential for program operation. A special button is available for automatically loading a program.

  3. Separate windows for functions and other program elements. This allows you to simultaneously edit multiple functions on the screen, from different namespaces, and only those needed at the moment. The automatic loading button simultaneously composes (“builds”) various namespaces from all open and possibly modified elements, saves them, and loads them in the desired order.

1.png|534pxx361px

Enjoy!

Sincerely,

Ru

]]>
https://clojureverse.org/t/ann-yet-one-clojure-ide-ontology-editor-based/14858#post_1 Thu, 12 Mar 2026 17:16:22 +0000 clojureverse.org-post-42534
London Clojurians Talk: Link into your REPL with clojure.net, from Hyperfiddle (by Dustin Getz) Hi all,
the recording of the London Clojurians’ live event:

Link into your REPL with clojure.net, from Hyperfiddle (by Dustin Getz)

Is now available on YouTube at:

Link into your REPL with clojure.net, from Hyperfiddle (by Dustin Getz)

]]>
https://clojureverse.org/t/london-clojurians-talk-link-into-your-repl-with-clojure-net-from-hyperfiddle-by-dustin-getz/14850#post_2 Wed, 11 Mar 2026 10:24:03 +0000 clojureverse.org-post-42532
Clojure real-world-data 50 Hi! The real-world-data group meets weekly.

:hammer_and_wrench: In the coming period, we will focus on community projects and library development, but people are invited to propose additional topics to discuss and share.

:light_bulb: The main topics for the coming meetings will be Design in Practice, Documenting Noj, and additional updates.

:speech_balloon: Updates about the agenda will be shared in the group chat: the real-world-data channel at the Zulip chat (requires login).

:spiral_calendar: If you wish to join the group, please reach out beforehand, and we’ll add you to the calendar event. :pray:

]]>
https://clojureverse.org/t/clojure-real-world-data-50/14856#post_1 Tue, 10 Mar 2026 17:32:37 +0000 clojureverse.org-post-42531
Ecbjure — Pure Clojure ECB client: FX rates, EURIBOR, inflation, and SDMX I’ve just released ecbjure, a pure Clojure library for accessing European Central Bank data.

Design goals:

  • Only dependency: data.csv. All HTTP, ZIP, XML, and date handling uses the JDK directly.

  • The converter is a plain immutable map — no mutable state, no opaque objects. Inspect it in the REPL, pass it through pipelines, compose it freely.

  • Throws on missing dates (weekends/holidays) unless you explicitly opt in to a fallback strategy (:nearest, :before, :after). No silent interpolation or forward-fill — if gap-filling happens, it happens visibly in code you wrote.

  • SDMX client gives access to the full ECB statistical catalogue (~100 dataflows), with predefined constants for common series and convenience builders for custom queries.

FX conversion:

(require '[clojure-finance.ecbjure.fx :as fx])
(import '[java.time LocalDate])

(def c (fx/make-converter))
(fx/convert c 100 "USD" "JPY")                          ;; => 15791.89
(fx/convert c 100 "USD" "EUR" (LocalDate/of 2013 3 21)) ;; => 77.46
(fx/get-rate c "USD" (LocalDate/of 2014 3 28))          ;; => 1.3759
(fx/cross-rate c "USD" "GBP" (LocalDate/of 2014 3 28))  ;; => 0.5999

SDMX — interest rates, inflation, and more:

(require '[clojure-finance.ecbjure.sdmx :as sdmx])

(sdmx/get-series sdmx/euribor-3m {:last-n 3})
(sdmx/get-series sdmx/hicp-euro-area {:start-period "2020-01"})
(sdmx/get-series (sdmx/exr-series-key {:currency #{"USD" "JPY"}}) {:last-n 5})

Optional tech.ml.dataset integration for wide/long format output (gated behind an alias — never pulled into your project unless you need it).

com.github.clojure-finance/ecbjure {:mvn/version "0.1.4"}

GitHub: https://github.com/clojure-finance/ecbjure

cljdoc: https://cljdoc.org/d/com.github.clojure-finance/ecbjure/0.1.4

Feedback, issues, and PRs welcome.

]]>
https://clojureverse.org/t/ecbjure-pure-clojure-ecb-client-fx-rates-euribor-inflation-and-sdmx/14854#post_1 Mon, 09 Mar 2026 08:16:08 +0000 clojureverse.org-post-42529
Postponing Clojure Jam 2026 In recent weeks, the Scicloj group has been preparing Clojure Jam 2026, an online Clojure creative coding conference. A few wonderful talks were proposed, and we have been working with potential speakers on their content.

Here, we are announcing that the event will be delayed.

Sadly, the current war in the Middle East is affecting more than one of the people involved in organising. We are following the news with concern for our friends, and for anyone in places and countries on the different sides of this conflict.

Let us hope that soon, things will calm down, and the organising team will be able to work towards a new date later this year.

]]>
https://clojureverse.org/t/postponing-clojure-jam-2026/14853#post_1 Sun, 08 Mar 2026 16:23:44 +0000 clojureverse.org-post-42528
Clj-yfinance — Pure Clojure Yahoo Finance client with Scicloj integration I’ve just released clj-yfinance, a pure Clojure library for fetching financial market data from Yahoo Finance.

Design goals:

  • Zero external dependencies beyond charred (JSON parsing). Uses java.net.http.HttpClient from JDK 11+.

  • No Python bridge, no API keys.

  • Two-tier API: simple functions for quick REPL use, verbose variants returning structured result envelopes for production code.

  • First-class Scicloj ecosystem integration.

Stable features: current prices (single + parallel batch), historical OHLCV, dividends/splits, ticker metadata. Experimental: fundamentals, financial statements, analyst data, earnings calendar, options chains (uses Yahoo’s authenticated endpoint with automatic cookie/crumb session management).

The parallel fetcher uses a bounded thread pool with configurable concurrency, per-ticker error isolation, and structured error types (:rate-limited, :http-error, :connection-error, etc.) so you can build intelligent retry logic.

Integrations (all opt-in via aliases): tech.ml.dataset, Kindly/Clay, Parquet, DuckDB, Noj. The repo includes a Clay demo notebook showing fetch → tablecloth → tableplot → interactive HTML charts.

com.github.clojure-finance/clj-yfinance {:mvn/version "0.1.5"}

GitHub: https://github.com/clojure-finance/clj-yfinance
Clojars: https://clojars.org/com.github.clojure-finance/clj-yfinance

Feedback, issues, and PRs welcome.

]]>
https://clojureverse.org/t/clj-yfinance-pure-clojure-yahoo-finance-client-with-scicloj-integration/14852#post_1 Thu, 05 Mar 2026 03:17:35 +0000 clojureverse.org-post-42527
#_ as a semantic block-closing marker for LLM-friendly Clojure As I use LLMs more in my daily Clojure work, I keep running into the same issue - models often miscount closing parens and produce broken code. And I find long ))))) chains confusing myself too.

For humans there are great tools - paredit (structure editing), rainbow brackets, block highlighting in IDE - that mostly solve this. But for LLMs none of that applies.

I know there’s an existing practice of leaving comments after closing parens:

(defn process-user [user]
  (when (:active? user)
    (update user :name str/upper-case))) ;; when ;; defn

This does help LLMs track context, but it breaks paredit (it doesn’t move comments with parens), and the marker ends up after the closing paren - when the model has already closed the form and moved on.


I’ve been thinking about using #_ instead:

(defn process-users [users]
  (filter
    (fn [user]
      (and (:active? user)
           (> (:age user) 18) #_and) #_fn)
    users #_filter) #_defn)

#_ discards the next form at the reader level, this is valid Clojure - no preprocessor, no changes to the compiler. The marker sits inside the form before the closing paren, so the structure of the code is preserved.


The pattern is specific enough that tooling could do interesting things with it:

  • paredit could treat #_token) as a unit and move them together

  • rainbow-delimiters could color #_token the same as its opening paren - no name matching needed, just depth counter at that position

  • IDEs could hide or de-emphasize these markers if you want cleaner visuals


Obviously this adds verbosity, but it’s purely opt-in - useful in deeply nested code, skip it elsewhere.

Has anyone tried something like this?

]]>
https://clojureverse.org/t/as-a-semantic-block-closing-marker-for-llm-friendly-clojure/14851#post_1 Wed, 04 Mar 2026 17:48:20 +0000 clojureverse.org-post-42525
London Clojurians Talk: Link into your REPL with clojure.net, from Hyperfiddle (by Dustin Getz)

THIS IS AN ONLINE EVENT
[Connection details will be shared 1h before the start time]

The London Clojurians are happy to present:

Title: Link into your REPL with clojure.net, from Hyperfiddle
Speaker: Dustin Getz
Time: 2026-03-10 @ 18:30 (London time)
Local time: click here for local time
RSVP: Link into your REPL with clojure.net, from Hyperfiddle (by Dustin Getz), Tue, Mar 10, 2026, 6:30 PM | Meetup

Dustin Getz (http://twitter.com/dustingetz) will be presenting:
“Link into your REPL with clojure.net, from Hyperfiddle”

Join us to experience www.clojure.net, a new experiment from Hyperfiddle.

  • link to database queries, clojure documents, http endpoints, and more
    web based, designed for production. create secure service management console UIs (like AWS Console) out of nothing but simple Clojure functions and a couple protocols
  • no client-side framework, no frontend build, no REST APIs, no Dockerfile: add one simple Clojure dependency to your REPL and call ‘connect’
  • for examples and more, visit: www.clojure.net

Dustin Getz is the creator of Electric Clojure and founder of Hyperfiddle. His mission is to collapse to zero the cost of enterprise frontend development, for a huge range of apps from business process applications to throwaway tools. http://twitter.com/dustingetz

If you missed this event, you can watch the recording on our YouTube channel:
https://www.youtube.com/@LondonClojurians
(The recording will be uploaded a couple of days after the event.)

Please, consider supporting the London Clojurians with a small donation:

https://opencollective.com/london-clojurians/

Your contributions will enable the sustainability of the London
Clojurians community and support our varied set of online and
in-person events:

  • ClojureBridge London: supports under-represented groups discover Clojure
  • re:Clojure: our annual community conference
  • monthly meetup events with speakers from all over the world
  • subscription and admin costs such as domain name & StreamYard subscription

Thank you to our sponsors:

RSVP: Link into your REPL with clojure.net, from Hyperfiddle (by Dustin Getz), Tue, Mar 10, 2026, 6:30 PM | Meetup

]]>
https://clojureverse.org/t/london-clojurians-talk-link-into-your-repl-with-clojure-net-from-hyperfiddle-by-dustin-getz/14850#post_1 Wed, 04 Mar 2026 13:31:26 +0000 clojureverse.org-post-42523
Clojure real-world-data 49 Hi! The real-world-data group meets weekly.

:hammer_and_wrench: In the coming period, we will focus on community projects and library development, but people are invited to propose additional topics to discuss and share.

:light_bulb: The main topics for the coming meetings will be Design in Practice, Documenting Noj, and additional updates.

:speech_balloon: Updates about the agenda will be shared in the group chat: the real-world-data channel at the Zulip chat (requires login).

:spiral_calendar: If you wish to join the group, please reach out beforehand, and we’ll add you to the calendar event. :pray:

]]>
https://clojureverse.org/t/clojure-real-world-data-49/14849#post_1 Mon, 02 Mar 2026 17:59:58 +0000 clojureverse.org-post-42522
Clojure.stream — self-hosted Clojure course platform Subscribe for one month at 51 CAN and go through as many courses as you want. Even two months subscription is only 102 CAN and, again, you have access to every single course and can take them all.

When I learned Clojure, it was from Amit Rathore (“Clojure in Action” author), and it was a half-day workshop for $199 (USD) – back in 2010. No downloads of material, no access to the material after that half day. And I had to drive to the workshop – it wasn’t even available online.

]]>
https://clojureverse.org/t/clojure-stream-self-hosted-clojure-course-platform/14848#post_6 Sun, 01 Mar 2026 03:01:08 +0000 clojureverse.org-post-42521
Clojure.stream — self-hosted Clojure course platform Let me be clear first and repeat and assert this
you are free to price your work anyway you want

but i checked the cost of individual courses and it was 238 cad (174 USD) per course
this is very high , excessively high

udemy have some courses priced at 100+, but many of them get sold at 90% and 80% percent discount during black friday and other discount season during the year
and those are usually 7+ hours courses , with very indepth content

i would also like to hear other people opinion on this, is it just me who think those prices are too high

]]>
https://clojureverse.org/t/clojure-stream-self-hosted-clojure-course-platform/14848#post_5 Fri, 27 Feb 2026 22:01:48 +0000 clojureverse.org-post-42520
Craft, Apprenticeship, and Rediscovering Joy in Software Engineering? I am a now retired software engineer with 50 years experience in the software industry. I hit the wall at about your age. Seriously. How many times can you write a loop without hating doing it? At that point I went into management. I did that for about fifteen years. The best managers are those who have done the work (also the worst managers, but I was lucky enough to be a people person that I understood not to yell at people, micro-manage, or do any of the other pathologies that sink a team). During that time, I learned how to debug people problems, how to report up. and a lot about software methodologies and team-building. About then I got laid off from my management job and started a career as a consultant, meaning that I was writing software again for other people. I learned a lot about requirements, talking to customers and tax laws. Now I’m retired and can work on my own projects. I’m getting a paper together to submit to the ELS 2026b conference, on a new version of Lisp I used LLMs to help with.

The secret to avoiding burnout is to always be learning. I’ve worked in a dozen different product domains, companies of different sizes, and different roles. In each I’ve had to learn many things. It’s kept me fresh and engaged in the industry. Again, writing too many while loops will burn anyone out. Start learning new things. It doesn’t need to be software either. During my time in industry, I wrote a Master’s Thesis, started a couple bands, learned to produce and record albums, and a few other things. The secret is to always be learning. Keep your neurons plastic (oddly enough, models of neutral plasticity was the topic of my MSCSb Thesis).

]]>
https://clojureverse.org/t/craft-apprenticeship-and-rediscovering-joy-in-software-engineering/14602#post_6 Fri, 27 Feb 2026 17:29:52 +0000 clojureverse.org-post-42519
Clojure.stream — self-hosted Clojure course platform Thanks for the correction! And the Starbucks math :grinning_face_with_smiling_eyes:

Just to add — the 29 CHF/month subscription gives you access to all courses. But if subscription isn’t your thing, every course is also available as a one-time purchase, own it forever. Those prices came down too.

Always open to feedback on pricing. Appreciate the honest conversation.

]]>
https://clojureverse.org/t/clojure-stream-self-hosted-clojure-course-platform/14848#post_4 Fri, 27 Feb 2026 07:45:23 +0000 clojureverse.org-post-42518
Clojure.stream — self-hosted Clojure course platform Just as a note: 49 EUR is the old price, 29 CHF is the new, lower price – about 33% cheaper.

That’s about 51 CAN or 37.50 USD. Or about 9 or 10 Starbucks coffees (large latte).

I wouldn’t consider that particularly expensive for a good video course about a niche technology (which we have to admit is what we’ve all chosen here).

]]>
https://clojureverse.org/t/clojure-stream-self-hosted-clojure-course-platform/14848#post_3 Thu, 26 Feb 2026 23:02:28 +0000 clojureverse.org-post-42517
Clojure.stream — self-hosted Clojure course platform Hi

First congrats, and second this is very expensive, 49 and 490 EUR is 79 and 790 Canadian
(or 58 and 580 USD)
I understand that maybe the pool of customer is small, and the price need to high to make sense

Pluralsight which have thousands of course is less than half the price (when you get it at their annual 40% or 50% discount)
And that being said, at half the price and with thousand of course pluralsight is still a bad deal
considering many course are old, youtube have a ton of free stuff , and we can learn with AI

your site have 6 courses , and even the workshops are not included

personally i cannot say what would be a fair price, I noticed in general that many specialized courses site are equally expensive (or almost, i think you are the most expensive by quiet a bit), and i think this is not a good trend

Again congrats :slight_smile:
Let us know how well it does

]]>
https://clojureverse.org/t/clojure-stream-self-hosted-clojure-course-platform/14848#post_2 Thu, 26 Feb 2026 20:07:14 +0000 clojureverse.org-post-42516
Lack of integration with system package managers is an obstacle for individual hobbyists Gnu guix system is very much like a lisp machine.

]]>
https://clojureverse.org/t/lack-of-integration-with-system-package-managers-is-an-obstacle-for-individual-hobbyists/14814#post_17 Thu, 26 Feb 2026 09:10:55 +0000 clojureverse.org-post-42514
Clojure.stream — self-hosted Clojure course platform Hey everyone,

I’ve moved all my Clojure courses off Podia and onto a platform I built and self-host: clojure.stream

Some of you might know the courses — Reagent, Re-frame, Reitit, Datomic, and Pedestal. They’ve been on Podia for years, but I wanted full control over the platform and to build something tailored for a developer audience. So I did — in Clojure, all the way down.

The project has been growing organically for about 3-4 years now. Started as a shell over Podia, self-hosted on OpenBSD and a lot of libraries i wanted to use in anger, also a lot of back and forth over the years with @thheller and evolved from there — adding, removing, rewriting. The main reason for self-hosting; It felt like Podia is becoming a platform with way too many bells and whistles that i never used and it was hard for me to pay more, and more for those things.

What’s new:

  • All content, accounts, and subscriptions migrated from Podia

  • Prices lowered across the board — no more platform tax

    • Monthly: 49 EUR → 29 CHF

    • Yearly: 490 EUR → 290 CHF

    • One-time purchases reduced by 30-50%

  • If you bought a course on Podia, restore your purchase at /settings/billing

For the ClojureVerse community — use code CLJVERSE for 20% off any course. Valid through March 10.

I’ll be sharing monthly updates on the platform going forward — new content, features, and improvements: https://clojure.stream/changelog

Happy to answer questions about the stack, the migration, or the courses. Feedback and bug reports always welcome.

Cheers, Jacek

]]>
https://clojureverse.org/t/clojure-stream-self-hosted-clojure-course-platform/14848#post_1 Thu, 26 Feb 2026 08:01:00 +0000 clojureverse.org-post-42513
Lack of integration with system package managers is an obstacle for individual hobbyists Yes, of course. Everybody wants a Lisp machine.

]]>
https://clojureverse.org/t/lack-of-integration-with-system-package-managers-is-an-obstacle-for-individual-hobbyists/14814#post_16 Wed, 25 Feb 2026 19:06:12 +0000 clojureverse.org-post-42511
Lack of integration with system package managers is an obstacle for individual hobbyists You want to build a Lisp machine. It’s been done before :slight_smile:

]]>
https://clojureverse.org/t/lack-of-integration-with-system-package-managers-is-an-obstacle-for-individual-hobbyists/14814#post_15 Tue, 24 Feb 2026 18:10:00 +0000 clojureverse.org-post-42510
Clojure real-world-data 48 Hi! The real-world-data group meets weekly.

:hammer_and_wrench: In the coming period, we will focus on community projects and library development, but people are invited to propose additional topics to discuss and share.

:light_bulb: The main topics for the coming meetings will be Design in Practice, Documenting Noj, and additional updates.

:speech_balloon: Updates about the agenda will be shared in the group chat: the real-world-data channel at the Zulip chat (requires login).

:spiral_calendar: If you wish to join the group, please reach out beforehand, and we’ll add you to the calendar event. :pray:

]]>
https://clojureverse.org/t/clojure-real-world-data-48/14847#post_1 Tue, 24 Feb 2026 17:43:58 +0000 clojureverse.org-post-42509
Upcoming meetup - Signal processing in Clojure - please reach out I’m interested too

]]>
https://clojureverse.org/t/upcoming-meetup-signal-processing-in-clojure-please-reach-out/14830#post_5 Mon, 23 Feb 2026 13:58:39 +0000 clojureverse.org-post-42508
Call for Participation: Functional and Logic Programming (FLOPS, May 26-28, Tsukuba) FLOPS 2026 – Call for Participation

The 18th International Symposium on Functional and Logic Programming

May 26-28, Tsukuba, Japan

https://functional-logic.org/events/flops/2026/

Welcome to the 18th International Symposium on Functional and Logic
Programming (FLOPS 2026) on May 26-May 28, 2026 in Tsukuba, Japan.

FLOPS 2026 is co-sponsored by Special Interest Group on Programming
and Programming Languages (SIG-PPL), Japan Society for Software
Science and Technology (JSSST).

FLOPS brings together practitioners, researchers and implementers of
declarative programming, to discuss mutually interesting results and
common problems: theoretical advances, their implementations in
language systems and tools, and applications of these systems in
practice. FLOPS specifically aims to promote cross-fertilization
between theory and practice and among different styles of declarative
programming.

Venue

FLOPS 2026 will take place at the University of Tskukuba. Tsukuba is
about 60km from central Tokyo, and easily reachable via public
transport from both Haneda and Narita airports.

Tsukuba is Japan’s science and technology city. Yet, it preserves
its rich traditions and local heritage with attractions such as
Mt. Tsukuba and Tsukubasan Shrine.

Registration

You can register for FLOPS 2026 here:

https://functional-logic.org/events/flops/2026/registration/

Early-bird registration fee (until Apr 25) is 50000¥/20000¥ for
students - roughly 275€, 325$, 240£ as of February 19.

Registration includes an excursion and a banquet on May 27. Extra
banquet tickets are available.

Program

Keynote speakers:

  • Kazunori Ueda, Waseda Univerity
  • Fritz Henglein, University of Copenhagen
  • Gabriele Keller, Utrecht University

Tutorial:

  • Jesse Alama, Scheming in Lean

Accepted papers:

  • Li, F., Gupta, G.: Computing Supported Models via Transformation to
    Stable Models

  • Miyazawa, O., Nishizaki, S.: Matrix Coeffect: A Coeffect Calculus
    for Handling Interdependent Information

  • Arntzenius, M., Willsey, M.: Finite Functional Programming or,
    LAMBDA: the Ultimate Predicate

  • Lam, C.: Optimizing Mesh Booleans by Being Lazy (System Description)

  • Zhou, N., Jiang, C., Bierlee, H., Stuckey, P.: Dynamic Programming
    and Tabled Logic Programming for Encoding Single-Constant
    Multiplication into SAT (Declarative Pearl)

  • Bohrer, R.: Demonic Dynamic Logic Programming

  • Morihata, A.: Test Your Polymorphic Functions with Boolean Values

  • Kiselyov, O.: More Fun with Monoids (Declarative Pearl)

  • Boyland, P., Hyatt, S., Dewey, K., Hardekopf, B.: Breccia: A
    Functional DSL Compiled to Egglog for Test Input Generation

  • Cabo, Q., Scholz, S.: Finding Programming Faults Even When Large
    Parts of the Code have Disappeared

  • Maieli, R., Acclavio, M.: Probabilistic Linear Logic Programming
    with an application to Bayesian Networks computations

  • Tudor, A., Arias, J., Gupta, G.: Automatic Knowledge Gap Detection
    and Plan Validation Using Counterfactual Justifications

  • Hemann, J., Pfingsten, B.: Visualizing miniKanren Search with a
    Fine-Grained Small-Step Semantics

  • Coltharp, N., Libby, S., Israel, L., Li, Y.: Unifying Hindsight and
    Foresight: Lazy Cost Analysis as Functional Logic Programming

Further information about the conference and local arrangements is
available on the conference website.

]]>
https://clojureverse.org/t/call-for-participation-functional-and-logic-programming-flops-may-26-28-tsukuba/14846#post_1 Sun, 22 Feb 2026 17:04:38 +0000 clojureverse.org-post-42507
Story about Clojure at my job

And when I know, what I need, I could write the requirements. But then I already have the implementation.

The Clojure tool became an important part of our workflow and managers are saying how important that tool is. Clojure is still not accepted.

Nobody ever asked again in which language the tool is developed.

This all resonates with my experience as well. Eerily familiar.

]]>
https://clojureverse.org/t/story-about-clojure-at-my-job/14845#post_2 Sun, 22 Feb 2026 15:16:05 +0000 clojureverse.org-post-42506
Story about Clojure at my job I want to share an experience I had with Clojure. In our company we need a very specific test driver software. Over many years we contracted several companies and spent much money. They all tried to make us happy, but nothing was really good. So I tried Clojure. After a single day I had a prototype, which was already better than everything we had before. On the second day we directly started using this productively. Normally this takes months or years for us to introduce such a thing.

It was no surprise, that Clojure worked so well. We all know, that Clojure is good. And it was a lucky coincidence, that we had a perfect use case for Clojure: We needed a file format for test definitions. I could use EDN. We needed a comfortable way to edit files. Calva is perfect for EDN files. User data must be checked. I could use Spec. We needed an embedded DSL for simple value transformations. I could use SCI. We needed a small internal DSL for test results (which was XML in the past). I could also use EDN. We needed a small data transformation mechanism. Clojure is very good in this. We needed to create HTML. I could use Hiccup. Clojure already has everything.

What happened then? After a few weeks I approached my boss with this new tool. He was very happy that now we have a prototype, so that we understand exactly our needs. He asked me to make a cost estimation so that we can develop the same in Python. My cost estimation was 1720 man hours. My boss agreed to that number. I considered quitting my job. But after the first job interview I quickly realised, that I don’t want to be C++ developer any more. So I stayed were I was. I got the job to write down the requirements for the tool so that we can contract the development to an external company. Interestingly it took me longer to write these requirements than the whole development of that tool took in Clojure.

And this is for me the lessons learnt. For me writing Clojure is faster than writing requirements. Instead of writing requirements and contracting someone to develop something for me, I can directly write it in Clojure. For example it is very hard to specify formally how to convert a specific data structure into nice readably HTML. You need creativity. You need to try out different formattings and compare them until you actually know, what you want. With Hiccup I can directly try out things and immediately see the result so that I can ask people for feedback. And when I know, what I need, I could write the requirements. But then I already have the implementation.

Now it is one year later. The Clojure tool became an important part of our workflow and managers are saying how important that tool is. Clojure is still not accepted. It was my job to find an external company who we could contract for the Python development. But I ignored that task. Officially I said, that I have too much other things to do, which was true. I validated the Clojure tool without reporting that to my boss. Nobody ever asked again in which language the tool is developed.

]]>
https://clojureverse.org/t/story-about-clojure-at-my-job/14845#post_1 Sun, 22 Feb 2026 11:50:05 +0000 clojureverse.org-post-42505
Scicloj AI Meetup 13: Agent-o-rama - summary & recording On Jan 17th, 2026, we had the 13th meeting of the scicloj-ai-meetups group.

In this meeting, we hosted Nathan Marz, who focused on the Agent-o-rama LLM agent platform

Recording

Scicloj AI Meetup 13: Agent-o-rama

]]>
https://clojureverse.org/t/scicloj-ai-meetup-13-agent-o-rama-summary-recording/14843#post_1 Tue, 17 Feb 2026 20:56:55 +0000 clojureverse.org-post-42501
Clojure real-world-data 47 Hi! The real-world-data group meets weekly.

:hammer_and_wrench: In the coming period, we will focus on community projects and library development, but people are invited to propose additional topics to discuss and share.

:light_bulb: The main topics for the coming meetings will be Design in Practice, Documenting Noj, and additional updates.

:speech_balloon: Updates about the agenda will be shared in the group chat: the real-world-data channel at the Zulip chat (requires login).

:spiral_calendar: If you wish to join the group, please reach out beforehand, and we’ll add you to the calendar event. :pray:

]]>
https://clojureverse.org/t/clojure-real-world-data-47/14842#post_1 Tue, 17 Feb 2026 15:30:59 +0000 clojureverse.org-post-42500
London Clojurians Talk: Lexical Complexity in Software Engineering (by Samantha Cohen) Hi all,
the recording of the London Clojurians’ live event:

Lexical Complexity in Software Engineering (by Samantha Cohen)

Is now available on YouTube at:

Lexical Complexity in Software Engineering (by Samantha Cohen)

]]>
https://clojureverse.org/t/london-clojurians-talk-lexical-complexity-in-software-engineering-by-samantha-cohen/14822#post_2 Wed, 11 Feb 2026 11:14:07 +0000 clojureverse.org-post-42496
Clojure real-world-data 46 Hi! The real-world-data group meets weekly.

:hammer_and_wrench: In the coming period, we will focus on community projects and library development, but people are invited to propose additional topics to discuss and share.

:light_bulb: The main topics for the coming meetings will be Clay, Clojure Civitas, and a new plotting library (continuing Tableplot).

:speech_balloon: Updates about the agenda will be shared in the group chat: the real-world-data channel at the Zulip chat (requires login).

:spiral_calendar: If you wish to join the group, please reach out beforehand, and we’ll add you to the calendar event. :pray:

]]>
https://clojureverse.org/t/clojure-real-world-data-46/14840#post_1 Tue, 10 Feb 2026 20:27:17 +0000 clojureverse.org-post-42494
Clojure real-world-data 45 Hi! The real-world-data group meets weekly.

:hammer_and_wrench: In the coming period, we will focus on community projects and library development, but people are invited to propose additional topics to discuss and share.

:light_bulb: The main topics for the coming meetings will be Clay, Clojure Civitas, and a new plotting library (continuing Tableplot).

:speech_balloon: Updates about the agenda will be shared in the group chat: the real-world-data channel at the Zulip chat (requires login).

:spiral_calendar: If you wish to join the group, please reach out beforehand, and we’ll add you to the calendar event. :pray:

]]>
https://clojureverse.org/t/clojure-real-world-data-45/14838#post_1 Wed, 04 Feb 2026 14:20:22 +0000 clojureverse.org-post-42489
Clojure Land: Discover open source clojure libraries and frameworks Thanks for that. Really useful tool!

]]>
https://clojureverse.org/t/clojure-land-discover-open-source-clojure-libraries-and-frameworks/14760#post_3 Wed, 04 Feb 2026 13:17:13 +0000 clojureverse.org-post-42488
Upcoming meetup - Signal processing in Clojure - please reach out Hi Daniel
I’m interested as well

]]>
https://clojureverse.org/t/upcoming-meetup-signal-processing-in-clojure-please-reach-out/14830#post_4 Wed, 04 Feb 2026 04:13:09 +0000 clojureverse.org-post-42487
Hipflask: offline first real time collaboration for ClojureScript So I finally got around to properly releasing Hipflask, a little library I’ve been using in NyanCAD for a while now.

The idea is simple: what if your PouchDB database just acted like a regular Clojure atom? You swap! it, you deref it, you add-watch it. Hipflask handles all the sync stuff behind the scenes.

(def todos (pouch-atom db "todos"))

(swap! todos assoc "todos:1" {:text "Buy milk" :done false})

That’s it. It syncs to PouchDB, and if you’ve got CouchDB set up, it syncs there too. Multiple users can edit the same data and everyone stays in sync. It works offline and catches up when you reconnect. Great for building local first apps, multiplayer experiences, or anything where you need shared state across clients.

The interesting bit is how it handles conflicts when two people edit the same thing at once. Instead of going the CRDT route (which I wrote about before and have some issues with), Hipflask just retries your swap function with the latest data when there’s a conflict. So if two people increment a counter at the same time, both increments actually happen. Your application logic decides what “merging” means, not some generic algorithm.

I’ve been using this to power the real time collaboration in NyanCAD’s circuit editor, where multiple engineers can work on the same schematic simultaneously, and it’s been solid. It works great with Reagent and Rum if you’re building reactive UIs. There’s also a silly Global Cookie Clicker example in the repo where everyone in the world shares one cookie counter, if you want to see the multiplayer sync in action.

Check it out: GitHub - NyanCAD/hipflask: A Pouch for Rum

]]>
https://clojureverse.org/t/hipflask-offline-first-real-time-collaboration-for-clojurescript/14836#post_1 Mon, 02 Feb 2026 22:41:13 +0000 clojureverse.org-post-42484
"Clojure in product. Would you do it again?" podcast new episodes :headphone: New episode of “Clojure in product. Would you do it again?” is out — this one’s about running Clojure inside a big global firm.
We sat down with Marcin Maicki (Global Data Developer & Lead Developer at Dentons) to hear what it’s like keeping a Clojure system running in a C#/TypeScript world. We talked about real, everyday stuff like:
:fire: What being a “Clojure island” actually means for integrations and tooling
:fire: How security audits and dependency scans steer engineering choices
:fire: Keeping a 9‑year‑old codebase simple, sharing knowledge, and bringing new Clojure folks up to speed
:fire: When Clojure makes sense — and when it’s more complicated than that

Have a look at using a non‑standard stack at scale: It allows a small team to achieve really great goals, with Marcin Maicki, Dentons - Freshcode

]]>
https://clojureverse.org/t/clojure-in-product-would-you-do-it-again-podcast-new-episodes/14786#post_2 Mon, 02 Feb 2026 13:59:22 +0000 clojureverse.org-post-42483
London Clojurians Talk: Invoker: functions are all you need (by Filipe Silva) Hi all,
the recording of the London Clojurians’ live event:

Invoker: functions are all you need (by Filipe Silva)

Is now available on YouTube at:

Invoker: functions are all you need (by Filipe Silva)

]]>
https://clojureverse.org/t/london-clojurians-talk-invoker-functions-are-all-you-need-by-filipe-silva/14828#post_2 Wed, 28 Jan 2026 13:24:57 +0000 clojureverse.org-post-42472
Upcoming meetup - Signal processing in Clojure - please reach out Hi @tbrooke! Great.

One recommended resource is Think DSP 2, discussed here at one of our study meeting announcements.

I’d also be glad to meet, look into it together and catch up, which is what we usually do at our Digital Signal Processing study group.

]]>
https://clojureverse.org/t/upcoming-meetup-signal-processing-in-clojure-please-reach-out/14830#post_3 Tue, 27 Jan 2026 22:21:56 +0000 clojureverse.org-post-42471
Upcoming meetup - Signal processing in Clojure - please reach out I am very interested in attending but I have a long way to go to get up to speed - March is good for me and I would appreciate any pointers to help get me up to speed

]]>
https://clojureverse.org/t/upcoming-meetup-signal-processing-in-clojure-please-reach-out/14830#post_2 Tue, 27 Jan 2026 19:33:37 +0000 clojureverse.org-post-42470
Partial hashes for document de-duplication? Hi all.

My company ingests thousands of documents a day, from some chaotic sources. Some of this involves web scraping. We also have a team in the Philippines who do manual web scraping, mostly by copying-and-pasting news articles.

We get a lot of duplicates, often because the team in the Philippines cannot easily coordinate with our automated scripts.

I need to build a system that can catch duplicate documents.

The approach I am familiar with is pushing documents into a vector database and doing cosine similarity searches.

However, I’ve been told that using partial hashes can be more efficient.

I am curious if anyone can point me to articles or videos that are especially good on this topic?

]]>
https://clojureverse.org/t/partial-hashes-for-document-de-duplication/14831#post_1 Tue, 27 Jan 2026 19:08:19 +0000 clojureverse.org-post-42469
When does more concurrency help? How do I measure that?
maxweber:

just make the EC2 instance bigger, especially if it does not need to run 24/7. Cheaper than spending too much time with the optimization.

Interesting, unusual advice. I appreciate it.

]]>
https://clojureverse.org/t/when-does-more-concurrency-help-how-do-i-measure-that/14604#post_6 Tue, 27 Jan 2026 19:03:26 +0000 clojureverse.org-post-42468
Upcoming meetup - Signal processing in Clojure - please reach out In recent months, there has been some encouraging progress in Clojure’s story for signal processing.

A lot of that is work-in-progress and will be made more visible soon: updates to the Fastmath 3 library, initial work on a library for domain-specific applied signal processing, meetings at the Scicloj study groups, and some notebook drafts.

We are planning a public meetup on these topics to offer a clear picture of current activity and possibly initiate new collaborations.

The precise agenda and date (tentative: March 2026) will be determined based on your feedback.

Please leave a message in the comments if you are interested or would like to propose topics to discuss.

]]>
https://clojureverse.org/t/upcoming-meetup-signal-processing-in-clojure-please-reach-out/14830#post_1 Tue, 27 Jan 2026 12:41:21 +0000 clojureverse.org-post-42467
Clojure real-world-data 44 Hi! The real-world-data group meets weekly.

:hammer_and_wrench: In the coming period, we will focus on community projects and library development, but people are invited to propose additional topics to discuss and share.

:light_bulb: The main topics for the coming meetings will be Clay, Clojure Civitas, and a new plotting library (continuing Tableplot).

:speech_balloon: Updates about the agenda will be shared in the group chat: the real-world-data channel at the Zulip chat (requires login).

:spiral_calendar: If you wish to join the group, please reach out beforehand, and we’ll add you to the calendar event. :pray:

]]>
https://clojureverse.org/t/clojure-real-world-data-44/14829#post_1 Mon, 26 Jan 2026 12:55:58 +0000 clojureverse.org-post-42466
London Clojurians Talk: Invoker: functions are all you need (by Filipe Silva)

THIS IS AN ONLINE EVENT
[Connection details will be shared 1h before the start time]

The London Clojurians are happy to present:

Title: Invoker: functions are all you need
Speaker: Filipe Silva
Time: 2026-01-27 @ 18:30 (London time)
Local time: click here for local time
RSVP: Invoker: functions are all you need (by Filipe Silva), Tue, Jan 27, 2026, 6:30 PM | Meetup

Filipe Silva (https://github.com/filipesilva) will be presenting:
“Invoker: functions are all you need”

Invoker is a zero config CLI, HTTP, and REPL interface for Clojure.

Commands will automatically connect to an existing nREPL server if available using .nrepl-port. The nvk http and nvk repl commands start a nREPL server that can be connected to.

Invoker aims to make the following usecases easy:

  • making a simple webapp from scratch, possibly with Datomic
  • running functions and inspecting atoms inside an existing process
  • running targetted tests with reloaded code
  • allowing agents to interact with your clojure process
  • adding dependencies and reloading code without restarting the process

Metabase, previously at Athens Research, Roam Research, Angular. Lover of homemade pizza, craft beers, and games.

If you missed this event, you can watch the recording on our YouTube channel:
https://www.youtube.com/@LondonClojurians
(The recording will be uploaded a couple of days after the event.)

Please, consider supporting the London Clojurians with a small donation:

https://opencollective.com/london-clojurians/

Your contributions will enable the sustainability of the London
Clojurians community and support our varied set of online and
in-person events:

  • ClojureBridge London: supports under-represented groups discover Clojure
  • re:Clojure: our annual community conference
  • monthly meetup events with speakers from all over the world
  • subscription and admin costs such as domain name & StreamYard subscription

Thank you to our sponsors:

RSVP: Invoker: functions are all you need (by Filipe Silva), Tue, Jan 27, 2026, 6:30 PM | Meetup

]]>
https://clojureverse.org/t/london-clojurians-talk-invoker-functions-are-all-you-need-by-filipe-silva/14828#post_1 Fri, 23 Jan 2026 16:51:27 +0000 clojureverse.org-post-42462
Clojure real-world-data 43 Hi! The real-world-data group meets weekly.

:hammer_and_wrench: In the coming period, we will focus on community projects and library development, but people are invited to propose additional topics to discuss and share.

:light_bulb: The main topics for the coming meetings will be Clay, Clojure Civitas, and a new plotting library (continuing Tableplot).

:speech_balloon: Updates about the agenda will be shared in the group chat: the real-world-data channel at the Zulip chat (requires login).

:spiral_calendar: If you wish to join the group, please reach out beforehand, and we’ll add you to the calendar event. :pray:

]]>
https://clojureverse.org/t/clojure-real-world-data-43/14826#post_1 Sun, 18 Jan 2026 19:34:09 +0000 clojureverse.org-post-42455
Scicloj AI Meetup: Agent-o-rama Intend on coming!

]]>
https://clojureverse.org/t/scicloj-ai-meetup-agent-o-rama/14782#post_8 Thu, 15 Jan 2026 21:06:31 +0000 clojureverse.org-post-42451
Scicloj AI Meetup: Agent-o-rama See you this Saturday!

]]>
https://clojureverse.org/t/scicloj-ai-meetup-agent-o-rama/14782#post_7 Wed, 14 Jan 2026 17:28:39 +0000 clojureverse.org-post-42449
Clojure real-world-data 42 Hi! The real-world-data group now meets regularly every week.

:hammer_and_wrench: In the coming period, we will focus on community projects and library development, but people are invited to propose additional topics to discuss and share.

:light_bulb: The main topics for the coming meetings will be Clay, Clojure Civitas, and a new plotting library (continuing Tableplot).

:speech_balloon: Updates about the agenda will be shared in the group chat: the real-world-data channel at the Zulip chat (requires login).

:spiral_calendar: If you wish to join the group, please reach out beforehand, and we’ll add you to the calendar event. :pray:

]]>
https://clojureverse.org/t/clojure-real-world-data-42/14823#post_1 Wed, 14 Jan 2026 17:23:58 +0000 clojureverse.org-post-42448
Call for Participation: BOB 2026 (Berlin, Mar 13) Note the early-bird discount runs until Friday!

]]>
https://clojureverse.org/t/call-for-participation-bob-2026-berlin-mar-13/14797#post_2 Mon, 12 Jan 2026 16:01:20 +0000 clojureverse.org-post-42447