This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2024-01-27
Channels
- # announcements (24)
- # babashka (26)
- # beginners (8)
- # calva (8)
- # clojure (78)
- # clojure-europe (1)
- # clojure-norway (22)
- # clojurescript (14)
- # datascript (5)
- # datomic (8)
- # fulcro (22)
- # helix (9)
- # humbleui (11)
- # malli (4)
- # off-topic (28)
- # pedestal (5)
- # reitit (10)
- # shadow-cljs (2)
- # tools-build (8)
- # tools-deps (9)
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
even though it wasn't a patch. ooops
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!
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.
@U04V70XH6 thanks !
@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.
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!
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)
Sorry 😬 wasn't finished. Hit enter instead of shift-enter. Slack on personal laptop hasn't been configured.
It is (MIT): https://github.com/raystubbs/zero
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.
Just noticed that 😬 gotta figure out how that stuff works. But it'll be there soon.
Also, not noticing the link wasn't your bad; I put it in after realizing I'd linked Clojars but not the repo.
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)
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.
Ah yeah, :pom-data
is a recent addition and works well, too. Probably more reliable than using template POMs
: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.
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.
> 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).
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.
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
Touché. Glad to be corrected.