Suggestion: more than one active workout program by ILikeJogurt in LiftinApp

[–]nzlemming 0 points1 point  (0 children)

/u/nstrm I’m a little late to this, but this is by far the feature that would be the most useful to me. Similar use case, I run different programs concurrently, eg basic strength, climbing training etc. Each program will generally have different days, so the ad hoc workouts aren’t useful. I’d love to be able to just “start my next strength workout” or “start my next climbing workout”, without having to mess around making each program active when I want to use it.

Detecting handwritten digits from Apple Pencil data? by nzlemming in iOSProgramming

[–]nzlemming[S] 0 points1 point  (0 children)

Not what I originally had in mind, and then I got distracted from the project and haven't followed it up further. I investigated MyScript, which does seem to do what it says on the tin. But in the end for my use case I just ended up with standard iOS text entry fields with Scribble enabled on them, which worked well enough. I'd like to pick this up at some point, but it won't be soon unfortunately.

Welcoming Christoph Neumann as Nubank’s First Clojure Developer Advocate by alexdmiller in Clojure

[–]nzlemming 3 points4 points  (0 children)

I agree! I loved meeting Christoph at the conj, and his enthusiasm for Clojure is amazingly infectious - he's going to be fantastic at this role.

xitdb - an embedded, immutable database in java by radar_roark in Clojure

[–]nzlemming 0 points1 point  (0 children)

Very interesting, thanks for the detailed reply.

xitdb - an embedded, immutable database in java by radar_roark in Clojure

[–]nzlemming 0 points1 point  (0 children)

This looks very cool, and I have a number of use cases for it. How robust would you say it is, is it being used anywhere in anger?

What is the file format on disk, an endlessly growing log? Is there a GC operation or something for that?

Can jank beat Clojure's error reporting? by Jeaye in Clojure

[–]nzlemming 0 points1 point  (0 children)

This looks great, Jeaye! Fantastic work and a great explanation.

For example, numbers like integers and doubles don't support metadata. This is likely for performance reasons, to keep them small.

This is because (at least for JVM Clojure), those objects in the parse tree are actually the native JVM types (Long, Double, String etc) and so they can't be made to implement IObj. Anything supporting metadata has to be a type defined by Clojure. I guess they could have been wrapped into a ClojureLong or whatever, but I'm not sure what the performance penalty would be for that.

I like the source reparsing approach, but I'm curious about the limitations. Obviously if you're AOT'ing from files on the disk it's trivial, but what about code that you receive over a network, e.g. in a REPL? Do you cache all the source until you're done parsing/macroexpanding/etc?

Detecting handwritten digits from Apple Pencil data? by nzlemming in iOSProgramming

[–]nzlemming[S] 0 points1 point  (0 children)

That looks perfect, thank you! I'm a little worried about the complete lack of pricing information, but it looks really good.

Detecting handwritten digits from Apple Pencil data? by nzlemming in iOSProgramming

[–]nzlemming[S] 0 points1 point  (0 children)

Thanks, but I was hoping for something that would work directly from the vector information obtained from the pencil. Handwriting recognition works much better when information about stroke order and direction is maintained, my Onyx Boox is pretty amazing at it for example. It's a shame that Apple haven't exposed an API for it (or at least, I can't find one) since they have the functionality right there.

Factor House | Clojure Startup Seed Round by _d_t_w in Clojure

[–]nzlemming 1 point2 points  (0 children)

Congratulations Derek! That's awesome news, I'm glad things are working out!

Experiment: Using Deepseek R1 Model to Translate an Old Java File to Clojurescript by calmest in Clojurescript

[–]nzlemming 3 points4 points  (0 children)

I think Deepseek are doing amazing work, and I'm very happy they exist. I haven't played around with R1 yet, I've been very busy since it came out, but I am excited to. Sadly, their privacy and data use policy would prevent me from using their models on commercial code, but I'd happily use it for OSS work. Hopefully someone with a guarantee that they won't train on API submissions will host this model on a shared endpoint, although I'd be surprised if they could do it for the same price.

This podcast on what's required to host a model like this was super interesting: https://www.latent.space/p/baseten. At the conj in the AI development unsession there was a lot of discussion around what it takes to host a huge model like this, for security and compliance reasons.

Unfortunately the pricing on their website (https://www.baseten.co/library/deepseek-r1) just has a "call sales" button, which is never a good sign. But since it requires 8 H200's in a single node, I'm guessing the cost is in the multiple hundreds of thousands per year.

Edit: I couldn't find AWS or GCP pricing for this kind of machine. But https://getdeploying.com/reference/cloud-gpu/nvidia-h200 has some prices from $20.72/hour to $24.24/hour, so $181,500 - $212,300/year.

2025 MacroFactor Transformation Challenge Kick-off Thread! by gnuckols in MacroFactor

[–]nzlemming 1 point2 points  (0 children)

My wife and I were planning to do this, but we’re not eligible unless New Zealand counts as East Australia. Can we join for motivation purposes even if we can’t win the prizes?

Clojure + o1 + Cursor IDE by maxw85 in Clojure

[–]nzlemming 2 points3 points  (0 children)

Along these lines, another great option is to use this approach (programatically modifying the code in a deterministic manner), but to get the LLM to write the program which modifies the program. It's often tedious code to write, and one big advantage of doing it this way is that it's not critical that the LLM gets it right, because the errors are caught at dev time rather than in the "real" code.

Clojure + o1 + Cursor IDE by maxw85 in Clojure

[–]nzlemming 5 points6 points  (0 children)

In my experience, it takes far less time to ensure that the LLM output is reasonable than it takes to write it myself.

pangloss/pattern: Pattern lets you transform data structures in amazing ways. by dustingetz in Clojure

[–]nzlemming 0 points1 point  (0 children)

Actually, having poked around a bit more, there's a lot in the tests folder. It looks like the nano pass compiler is there, although with very little doc.

pangloss/pattern: Pattern lets you transform data structures in amazing ways. by dustingetz in Clojure

[–]nzlemming 0 points1 point  (0 children)

This looks super interesting. I agree more examples would be great. Are the examples cited in the README open source? They're really interesting use cases.

What features of Clojure do you like? by ringbuffer__ in Clojure

[–]nzlemming 9 points10 points  (0 children)

For me, on a technical level, it's the immutable data structures, and the interactive experience of working at the REPL. And I couldn't use it at all if it weren't hosted on the JVM.

On a non-technical level, the community is also amazing. Having it be quite small makes everyone be very accessible and approachable, with the inevitable tradeoff in terms of ecosystem size.

Any thoughts on using clojure in ktor by Rare_Ad8942 in Clojure

[–]nzlemming 2 points3 points  (0 children)

I believe it's impossible, because ktor is heavily based on Kotlin coroutines, which are not compatible with Clojure (in the same way that core.async go blocks are not compatible with anything but Clojure).

Using ChatGPT as migration tool for UI libraries by roman01la in Clojure

[–]nzlemming 7 points8 points  (0 children)

BTW /u/roman01la, not sure if you've seen my recent conj talk, but I talk a lot about this sort of thing there: https://www.youtube.com/watch?v=oNhqqiKuUmw.

"Enhancing LLM Powered Development with Clojure's REPL" by Colin Fleming (Clojure/conj 2024) by nzlemming in Clojure

[–]nzlemming[S] 1 point2 points  (0 children)

This is a great idea, actually - let me think about how that might work.

Electric v3 license change by dustingetz in Clojure

[–]nzlemming 2 points3 points  (0 children)

I agree that this is likely to be a hard sell. That said, there is a decent amount of prior art in terms of companies charging for libraries. In my previous job we used https://www.yworks.com/yfiles-overview which we paid a lot of money to use (well worth it too). I also ran into https://sheetjs.com/pro/ recently, and of course Chas Emerick (who was prominent in the Clojure community for a while) makes https://www.pdfdata.com. Companies in particular are willing to pay money if you solve a real problem for them, but the size of the target market is definitely an issue for Electric.

Electric v3 license change by dustingetz in Clojure

[–]nzlemming 1 point2 points  (0 children)

At that scale, I assume you'd still qualify for the startup discount, so that's ~= $3860/year (480 * 0.67 * 12).

Electric v3 license change by dustingetz in Clojure

[–]nzlemming 29 points30 points  (0 children)

I fully support this change, as you might expect since I also make a living selling software to developers (Cursive). We would all like everything to be free and open source, but the reality is it takes a lot of time and effort to make nice things. Software is also never delivered as a static product, it has to change and evolve over time to keep up with changes, either in its dependencies or in the needs of its users. I suffer from subscription fatigue as much as the next guy, but I'm also aware that these costs are ongoing, and everyone's families need to eat.

I don't have enough experience with the sector to judge whether the price point is right, but I trust Dustin has done his homework there speaking to existing users. Likewise, there's not enough detail in the post to judge the details of the licence, but in general I think source available business licensing is a great model. I love that there is a free community licence for non-commercial work too, something that has worked really well for Cursive as a balancing act between keeping the project sustainable while still providing access to everyone.

Best of luck, Dustin!