Fork me on GitHub
#announcements
<
2024-01-27
>
Janet A. Carr18:01:48

Am I allowed to post my quadtree-cljc lib here? It's kind of small potatoes compared to the other things posted here, but I'm real proud of my work. lol I just cut a new patch version (0.1.5) https://github.com/janetacarr/quadtree-cljc

👍 11
clojure-spin 8
1
😻 3
Janet A. Carr18:01:04

even though it wasn't a patch. ooops

seancorfield18:01:59

Yup, all new project announcements and major releases are welcome in #announcements -- the only caveat is that we discourage announcing versions of any given library more often than about once a month here (hence #releases exists for more frequent/minor updates). We make a few allowances for non-software announcements, such as #clj-together (Clojurists Together) and the State of Clojure annual survey, since those impact so many Clojurians!

👍 4
phronmophobic19:01:29

I'm curious if you have any thoughts on how this compares to https://github.com/davidmoten/rtree2. I've wrapped it for previous projects, but having a cljc lib seems great.

Janet A. Carr19:01:38

@U7RJTCH6J I've haven't used r-trees as my spatial partition. I'm mostly pretty new to this kind of stuff. I really wanted quadtree to be cljc because I found most of the existing options weren't. I'm current building a game in Clojurescript and i'm pretty sure the only reason it works is because of quadtree-cljc, though it's quite a bit slower in the browser.

seancorfield18:01:59

Yup, all new project announcements and major releases are welcome in #announcements -- the only caveat is that we discourage announcing versions of any given library more often than about once a month here (hence #releases exists for more frequent/minor updates). We make a few allowances for non-software announcements, such as #clj-together (Clojurists Together) and the State of Clojure annual survey, since those impact so many Clojurians!

👍 4
Ray Stubbs20:01:24

https://github.com/raystubbs/zero v0.0.0 is now available on https://clojars.org/me.raystubbs/zero. Still early stage. Bugs and API changes likely. But it's proven capable in personal + work projects. Highlights: • Build web components in ClojureScript • Convenient Hiccup-ish markup notation • Web component hot reloading • Basic state management utilities built in • Small footprint (TodoMVC ~= 50KB gzipped, mostly CLJS runtime overhead)

👍 4
flowthing20:01:40

Love the name and version number, but what does it do? 🙂

Ray Stubbs20:01:13

Sorry 😬 wasn't finished. Hit enter instead of shift-enter. Slack on personal laptop hasn't been configured.

p-himik20:01:15

Is it not open-source?

p-himik20:01:40

Ah, didn't realize the first link is to GitHub. You should add SCM info to both Clojars and cljdoc. :) Right now they're both saying that there's no SCM info.

Ray Stubbs20:01:34

Just noticed that 😬 gotta figure out how that stuff works. But it'll be there soon.

Ray Stubbs20:01:09

Also, not noticing the link wasn't your bad; I put it in after realizing I'd linked Clojars but not the repo.

👍 1
hifumi12322:01:18

scm should be added automatically if you use leiningen. otherwise you can set up a template pom.xml file (first generate it with clojure -Spom) then add an tag yourself and provide a :src-pom when invoking b/write-pom to keep your deps.edn and pom.xml template in sync i recommend making a script that generates the pom template then run it in your CI builds (assuming you use CI to deploy)

Ray Stubbs01:01:17

Thanks @U0479UCF48H 🙏 Got it working with :pom-data , so don't need to manage a separate pom file. Cljdocs API docs generation is broken though, seems like it doesn't like ClojureScript's catch :default, so will see if I can do something about that soon.

hifumi12302:01:07

Ah yeah, :pom-data is a recent addition and works well, too. Probably more reliable than using template POMs

Teemu Kaukoranta11:01:52

:z/on should this be :zero.core/on instead? Then you can use an alias to make it ::z/on if you wish to use such a short alias. Projects that adopt this may have an established pattern of aliasing something else as z, and some people may have a preference for shorter or longer aliases. With :z/on you're not giving people an option to choose their own alias, with :zero.core/on they can alias it however they want.

Ray Stubbs22:01:22

Hmm... yes you may be right. I don't so much like tying the keyword to the module's ns/location... but after reading your tip above, I think the advantages win here. Will makehttps://github.com/raystubbs/zero/issues/8 to switch these out. Already have quite a bit of code at work depending on :z/... keywords, so will probably phase them out a bit slowly. Thanks for the tip @UCQGNA673.

p-himik22:01:55

> I don't so much like tying the keyword to the module's ns/location That's why aliases exist. :) And note that you can also use :as-alias instead of :as in your :require vectors if you don't want to load that namespace (e.g. for avoiding circular references).

👍 1
Ray Stubbs22:01:13

Fair enough. Perhaps just a natural aversion that I should get over. I guess my thought is that if :zero.core is the namespace exposed/recognized by an API, and the namespace is tied to file location... then you're kind of locking in your file structure (tying it to the API). But I guess in practice it probably isn't that big of a deal. And everything else (functions, etc) are tethered up the same way so :man-shrugging: I'm probably wrong on this.

p-himik23:01:09

You're not locking anything. :as-alias allows users to refer to namespaces that don't exist:

user=> (require '[does.not.exist :as-alias dne])
nil
user=> ::dne/hello
:does.not.exist/hello

Ray Stubbs23:01:44

Touché. Glad to be corrected.