Fork me on GitHub
respatialized00:12:42 there is some very nice syntax highlighting (for Common Lisp) in this post; I've never seen this type of contextual structural highlighting before, even in an editor (mouse over the let bindings to see it in action)


I think it's this library doing the work:


you may also like: • Inspiring a future Clojure editor with forgotten Lisp UX - Shaun Lebron, here's the timestamp when he talks about "filling"


followed the link to which it looks like the author uses to generate their site


Nice catch. I'm not sure but I think you are using the word "park" wrong here. If I understand parking is what you should do in go blocks (it's what <! >! etc. do), and what is happening here is called blocking.


park and block are thread states? A thread can be parked or blocked parked is accepted in go blocks blocked is not accepted in go blocks


But pedestal still have a invalid use of core.async, right?!


my understanding is a thread is running or blocked, and the core.async state machine allows a go block to park (suspend) and resume when data is ready, maybe on a different thread


but yes, this is a bug in pedestal

👍 1

maybe clearer: you can't park a thread, you can park a go block


like, threads are "real" and exist on an OS level, go blocks (and the concept of parking) belong to the world of core.async and are translated into state machine transitions and queue operations in the vm


start-ws-connection-with-fc-support has its own issues, using put!


That Déjà vu feeling


I think I'm going to change my job title from Senior Software Architect to Senior Software Updater at this point... 😕

❤️ 5
polylith 4
😞 3
Lennart Buit08:12:52

log4j updating specialist

Ben Sless10:12:44

A... lumberjack?

😂 2
Martynas M14:12:17

Hi, my name is seancorfield. Visit me at (unfortunately this domain is already taken xD)

😆 1

💙 Hope the end is in sight. I mean, you know, in a good way. 😂 Dying to ask, @U04V70XH6 — what's been most surprising part of it all? Is it all just tedium of updating dependencies, or has it revealed things that are genuinely startling and idiosyncratic about JVM? (Beyond the shocking nature of the huge surface vuln surface area of log4j. My mind still reels at scope of this.) I ask because yesterday I learned a ton more about a new dimension of classpaths that I never knew even existed — @U04V15CAJ taught me about classpath-overrides and aliases vector in depstar, in context of native images.


I also should've told you that depstar is deprecated, but we didn't get to that part yet :)


and it works for now, wasn't the highest priority in changing that


@U6VPZS1EK At this point, I'm "old and jaded" so nothing really surprised me about it. I mean, I can totally trace the path of how they went from simple string extrapolation for Java properties to environment variables to "any lookup that the Java standard library supports out-of-the-box", especially given the way so many "Enterprise Java" shops think about configuration and so on (I started doing Java in 1997 so I've seen nearly a quarter of a century of code there). And as a long-time OSS project maintainer (since 1992!), I know all too well just how easy it is to accidentally introduce potential security issues and attack vectors into code, in the name of "convenience" -- witness for example. That wasn't something I'd even considered (that someone would run one of the "friendly" SQL functions in next.jdbc.sql passing in a map whose column names came from user input unsanitized!


And, yeah, depstar is archived in favor of per 🙂


Thanks so much, @U04V70XH6 — crossing fingers some reasonable resolutions come soon!!! And I found a case where depstar creates an uberjar successfully but tools.dep didn't. I will try to generate a reproducible case “soon.” In the meantime, I continue to enjoy and appreciate depstar. 😂😂


@U6VPZS1EK Happy to help you migrate from depstar to build-clj etc. There were initially a few edge cases that I didn't realize were only possible in depstar but as far as I know those are all addressed at this point. Feel free to DM me about it.


Roger that — thank you so much for the offer, and hoping it will just work!! And will definitely work to post a test case if it doesn't. May you have a great weekend, free of problematic logging!

😁 1
Luis Santos09:12:12

I remember watching a talk (Rick Hickey's one I believe) where the presenter shares this idea that you cannot build flexible system on top of rigid systems, and that strongly typed systems can actually be a problem because systems are so specific that changing them is a pain. Does anyone knows which talk was? Is there any research to back this idea up?

👀 1

On the surface, the idea sounds strange. And you probably mean "statically typed", not "strongly typed". If a statically and even strongly typed language supports some umbrella type (`void *` or Object) and has collections where you can put objects of that type, you can already build anything you want with it.


The closest Hickey talk would be "Maybe Not?" I think.

Colin P. Hill14:12:39

Truth be told, it's hard to think of a Rich Hickey talk where he doesn't touch on this 😆

Luis Santos16:12:54

Thanks everyone. I was not sure about the exact words and that's why I want to re-watch it. If I find it I will share it here.

Ben Sless10:12:15

Any thoughts, experience or recommendations for internal company knowledge bases and shareable notes and outlines? I have an obvious bias towards Roam / Athens / Logseq. Some are gung-ho for Notion Need more perspective. Integration with Jira and gitlab is a plus


I use Roam personally. I suggested and we use Notion for internal company. My reasons: • I feel pages, and a hierarchy of pages is the right abstraction for teams. It’s the level where a team can find agreement. It also makes is obvious where the access control is applied. • Notion has just-enough structure. The databases in Notion adds loads of leverage. • Notion is far superior for documents. The UX feels so very, very good when writing in real-time. I type up emails in Notion and copy-and-paste to GMail for perfect formatting. Copy&pasting into-and-out-of-Roam is … not good. • You can share only certain pages and their children with the public internet. Behind a non-indexed link, which is something we use all the time now. And allow it to be view-only, comment-only, or even editable. Without the guest user needing an account. • Having Slack updates configurable per-page and its children is useful Roam is better when it is just me and my brain trying to make sense of the world. I miss Roam’s speed of the local-database when I use Notion. And Notion’s offline story is... weak. There is some, but I do not trust it. I trust Roam’s implicitly.

👍 1

This is an example of a public page, to make it slightly topical:

👍 1

Git/github is already a tree of knowledge, can be very much Roam-like People don't fully realise (in both senses of the word) this. Some nuances that make this a reality: create high-quality issues use links to refer to things use extended commit messages use clojure's facilities (defn/ns docstrings, testing strings) to refer to this knowledge

mario-star 1
Ben Sless14:12:33

I like the idea of using git How would you handle meta knowledge, such as which APIs and services are worked on?


You mean an issue tracker? Or sth else

Ben Sless17:12:09

When you have a bunch of services and APIs, do you have some centralized place where you list all of them, how they communicate, how the system is built?


GitHub discussions can be used as StackOverflow-like documentation.


I don't like external documentation because it rots pretty quickly. Instead one can do a mixture of inline documentation (docstrings etc) and thoroughly descriptive PRs. For example, a PR body can include a diagram. But that diagram is just a snapshot in time of how the codebase looked like then, it's not something to merge, maintain, etc Perhaps one can add a few more mechanisms to the equation e.g. auto-generated diagrams or statistics that can be run from the cli/repl but aren't really persisted (persisting = leaving to rot)


I think there was a pretty famous essay defending code is documentation, maybe it's the one from Jack Reeves linked here?

Ben Sless19:12:16

I tend to agree with you and like the alternative you suggest, mostly trying to convince myself now


@U45T93RA6 so all internal stake-holders with knowledge about how the systems should work together are fluent in git? that's never been my workplace experience


non-tech stakeholders caring about tech intricacies at all? That's a problem I'd love to have :)


I think I misunderstood the scope of this discussion


> Any thoughts, experience or recommendations for internal company knowledge bases and shareable notes and outlines? nothing about that said "tech stack only" to me


for context, my last job had complex interactions between departments for non tech jobs (due to industry conventions and regulation) which were woven into the tech


A model which I've seen work reasonably well is emitting .md files dynamically out of clojure code/data. Programmers would consume .clj, biz .md. CI would make sure .md is up-to-date


Anyone know a good license which is good for protecting against SaaS hosting without negotiation? e.g please don't just run my code in your own SaaS and sell it? I've seen any others like it? I think with elastic its like an anti AWS repackaging license.

Ben Sless14:12:48

Dual license AGPL

☝️ 1
Ben Sless14:12:27

There are more draconian licenses, too


I was looking into this and was searching for a generic license like the one from timescale but I guess there is none so far. You would have to craft it yourself.


Thanks for the tips, with all these things its a balancing act as I also do not want to hinder adoption. I think given my meagre aspirations I might just go MIT and take my chances 🙂


Take a look at the work of, a lawyer and programmer who has done a fair bit of thinking about how to balance open source with commercial viability: Largely US-centric in terms of background and law, but worth looking at.

👍 2
Scott Griffin19:12:01

Any recommendations for a GitHub Action to bump the snapshot version in a project.clj file or deps.edn file on merge to a protected branch? Essentially an action that creates a new pull request to update ‘(defproject “1.0.8”’ to ‘(defproject “1.0.9-SNAPSHOT”’ and then automatically merges the new pull request into the protected branch? I've looked at, and would like to know if a similar feature already exists for Clojure that I could use before writing a new action.

Scott Griffin19:12:23

I'll take a look. Thanks!


You're most welcome. I use antq in my projects to update dependencies. Whilst I don't use it for github actions, it'll work the same way in the workflow.


Here's the use of it, for example, to create a PR: