clojure-austin

mlimotte 2025-06-04T12:34:28.312459Z

Hey all. What's the topic for Monday's Meetup?

mlimotte 2025-06-04T12:37:06.768859Z

@merklefabian would love to see demo / examples of Datastar from Clojure. Or @norman, want there a topic you proposed recently?

dpsutton 2025-06-04T13:27:52.773939Z

i’d be down for a everyone bring laptops and play with clojure-mcp as well

👍 2
mlimotte 2025-06-04T14:04:56.564009Z

Yea. I've got it installed, but have not done much with it. Personally, I'd prefer a bit more time to get used to it and get some experience before connecting on it.

2025-06-04T14:27:48.024749Z

None of my topics have been scheduled yet, so I don't have any presentations ready

dpsutton 2025-06-04T14:28:29.421209Z

didn’t @camdez have something he wanted to talk about?

camdez 2025-06-04T14:29:44.790399Z

I could talk about Flow. I’m very interested in the MCP idea too. I think we generally need to get some presentations going on using AI in Clojure development.

dpsutton 2025-06-04T14:31:32.622779Z

and mcp appeals to me precisely because we are all figuring it out. It would actually be interactive and learning

mlimotte 2025-06-04T15:00:28.937939Z

@camdez Would love to see what you've got for Flow. How much time do you think? Could you be ready for Monday? @dpsutton We could do multiple on clojure-mcp. Initial; setup / discussion / play, and later something more substantial after experience. @norman Do you want to present something on August 11?

2025-06-04T15:07:36.406699Z

ok - I'll take August. Probably the UI state machines stuff, but I do have a fun webrtc project I did on the side in clojure that I think would be pretty interesting

dpsutton 2025-06-04T15:11:44.276629Z

that sounds dope

Fabim 2025-06-04T15:36:38.337499Z

Flow and MCP sound interesting. We could do lightning rounds and discussions. @mlimotte Happy to answer any questions about Datastar, it’s amazingly simple yet powerful

mlimotte 2025-06-04T17:20:51.233829Z

Questions => Presentation 😉

Fabim 2025-06-04T18:25:40.558879Z

Demo > Presentation ^^

👍 1
mlimotte 2025-06-04T19:16:08.915669Z

Present the demo!

jakebasile 2025-06-06T20:41:17.418759Z

Sadly I probably can't make it to be the voice of reason wrt AI

jakebasile 2025-06-06T20:41:39.273039Z

You'll all have to go without the usual wet blanket

staypufd 2025-06-08T21:13:58.434349Z

Hey ya’ll, I’m gonna have to miss the meeting as my dad’s dementia has gotten worse and I’m his primary care giver. Thanks for helping out this last while as I’ve been dealing with dad’s health for the last couple of years. Sam

jakebasile 2025-06-08T21:14:39.369269Z

Sorry to hear that Sam.

dpsutton 2025-06-09T01:40:19.345179Z

i’m really sorry to hear that Sam

staypufd 2025-06-09T03:04:18.360809Z

Thx

mlimotte 2025-06-07T23:34:48.472469Z

I'll ask ChatGPT to chime as the nay-sayer.

dpsutton 2025-06-08T00:01:15.431949Z

json-test=> (json/read-str "{\"key1\":1,
\"key2\":2}")
{"key1" 1, "key2" 2}
json-test=> (json/read-str "{\"key1\":1, // this is a comment
\"key2\":2}")
Execution error at clojure.data.json/invalid-key-exception (json.clj:372).
JSON error (non-string key in object), found `/`, expected `"`
;; interacted with clojure-mcp
json-test=> (json/read-str "{\"key1\":1, // this is a comment
\"key2\":2}")
{"key1" 1, "key2" 2}

dpsutton 2025-06-08T00:01:27.585279Z

asked claude to extend clojure.data.json to support comments

dpsutton 2025-06-08T00:18:59.526849Z

concise. I had to tell it not to introduce tons of diffs. Very hard in this file because there are bespoke macros with bespoke indentation rules. But it got it. Note it is using codepoint-case a macro specific to this repo.

dpsutton 2025-06-08T00:19:16.144159Z

wild that it basically one-shot this. told it what i wanted and it’s got code ready to go

jakebasile 2025-06-08T00:39:16.987239Z

How's it handle // inside strings?

jakebasile 2025-06-08T00:44:14.092659Z

Surely https://github.com/microsoft/node-jsonc-parser

dpsutton 2025-06-08T00:44:25.125909Z

Walking dog. It wrote a namespace for tests. I debated telling it to move them into the regular test namespace and also write some generative tests

dpsutton 2025-06-08T01:04:33.050059Z

(deftest test-comments-in-strings-preserved
  (is (= {"url" ""}
         (json/read-str "{\"url\": \"\"}")))
  (is (= {"comment" "/* not a comment */"}
         (json/read-str "{\"comment\": \"/* not a comment */\"}")))
  (is (= {"path" "/path/to/file"}
         (json/read-str "{\"path\": \"/path/to/file\"}"))))
yes it wrote those to begin with

dpsutton 2025-06-08T01:04:53.327749Z

catching the url is a particularly nice touch

jakebasile 2025-06-08T01:08:06.458629Z

It is pretty good at regurgitating its training set

dpsutton 2025-06-08T01:08:57.660489Z

even if it were just that--(and it built two features with me in metabase earlier today which are not in its training set)--it would still be a very useful tool

jakebasile 2025-06-08T01:09:46.656739Z

Useful is a broad term

jakebasile 2025-06-08T01:09:50.365929Z

Useful how?

dpsutton 2025-06-08T01:10:20.073839Z

like it built the frontend, coded up the backend, and paired with me. genuinely paired with me on a feature to handle changes in schema

jakebasile 2025-06-08T01:10:53.964259Z

Is the goal simply more code, or to decrease the negotiating power of engineers, increase shareholder value, make life better with new ideas, regurgitate slop?

dpsutton 2025-06-08T01:11:18.037019Z

for this the goal was for me to build a feature to handle schema changes in databases synced to metabase

dpsutton 2025-06-08T01:12:12.691679Z

was fun to think through consequences, get the UI up, etc. I enjoyed doing it. Couple things: it has totally changed what i expect from a proof of concept or even a product doc. And makes it easier to debug things and write tests

jakebasile 2025-06-08T01:14:00.401829Z

The amount of product (productivity) has gone up then

jakebasile 2025-06-08T01:15:04.663309Z

I wonder where the gains will settle wrt wages

dpsutton 2025-06-08T01:26:28.134559Z

How far do we take that? We certainly upgrade processors. Get more ram. Happily use electricity. Productivity tools get added in.

jakebasile 2025-06-08T01:27:09.904239Z

I just think it's important to understand the repercussions of the tools we use

jakebasile 2025-06-08T01:27:25.922729Z

For instance, could you have coded that with help from a junior engineer?

jakebasile 2025-06-08T01:27:50.879349Z

Someone who would then gain knowledge from it and improve themselves and your team as a whole?

jakebasile 2025-06-08T01:28:10.061529Z

The machine doesn't learn from you, it starts fresh each prompt (you said you had to try a few times, natch).

jakebasile 2025-06-08T01:28:52.421069Z

Could you have done it yourself, maybe also gaining knowledge that you could apply to other issues later on instead of just letting the machine do it? I think it's worth thinking about.

jakebasile 2025-06-08T01:31:10.399469Z

Another fun one: how much did it cost to prompt out that code? The AI folks have emphasized that LLMs are just the new compilers and anyone skeptical is akin to those devs that said anyone who used a C compiler over writing ASM was wrong. But if that's true, the AI folks have also successfully made it so running the "new javac" costs money. Is that cost fully borne by you, the user, right now? Is it subsidized by investor money? What happens when you become so reliant on it that you cannot work without it and the investors wish to recoup their investment?

jakebasile 2025-06-08T01:33:04.779219Z

Almost all Pro-AI folks stop the cost benefit analysis at "it is faster". I think it is vitally important to think through all the repercussions of a tool before using it. Just because MongoDB is faster doesn't mean it's a good DB to store financial information in, for example.

jakebasile 2025-06-08T02:23:38.328069Z

I admit these things are pretty neat. I've been using GH Copilot / Claude on some personal dotfiles stuff since I like to keep abreast of things. I still think that it's far from settled that these things are net-positive for human beings in general and software engineering in particular.

staypufd 2025-06-04T15:33:14.751559Z

https://blog.fogus.me/clojure/arities-as-proto.html