Fork me on GitHub
#announcements
<
2020-01-09
>
danielcompton07:01:14

đź’¸ Clojurists Together is going to be funding four project $9,000 each over 3 months. đź’¸ See what kinds of projects our members want us to fund at https://www.clojuriststogether.org/news/q1-2020-survey-results/, and apply by January 15th at https://www.clojuriststogether.org/open-source/

borkdude13:01:32

spartan.spec: an implementation of clojure.spec.alpha that can be interpreted by and used with babashka: https://github.com/borkdude/spartan.spec

filipematossilva16:01:31

Heya, just wanted to let you know that datafire is now available as 0.1.1 at https://github.com/filipesilva/datafire. It lets you persist Datascript databases in Firebase's Firestore. Supports offline usage and multi-user synchronization. You can use Firestore Security Rules to limit access. If you're persisting Datascript and this fits your usecase let me know, and also let me know if you've been looking for something like this but with more features. Very interested in how this setup can be pushed further.

metasoarous17:01:11

Nice work! On startup does this have to transact in all the available data, or does it use from-datoms?

filipematossilva17:01:16

it replays all previous transactions in order

filipematossilva17:01:20

so it keeps history

metasoarous17:01:26

OK; That could get expensive as number of transactions build up. It's much more efficient if you can rehydrate from a collection of datoms. That may be challenging with firebase as a backend, but maybe there's a way to do it?

filipematossilva17:01:50

I haven't thought very hard about it, but maybe

filipematossilva17:01:09

that version mainly supports transaction level granularity

filipematossilva17:01:29

meaning it persists opaque transactions

filipematossilva17:01:47

I was thinking of supporting datom granularity, thus persisting datoms (opaque or not)

metasoarous17:01:52

Yeah, semantically that is nice (storing transactions). Clear conceptual model.

filipematossilva17:01:21

but ran into a roadblock where firestore is actually really slow when offline is on and loads of small docs hit it

filipematossilva17:01:53

going to datom granularity might also enable views and entity based security rules

filipematossilva17:01:04

but I wanted to understand usecases better before trying to figure out the firestore slowness

filipematossilva17:01:44

I hadn't considered conn-from-datoms very much before you asked though

filipematossilva17:01:28

but if there's datoms available, and there's a mapping from the firebase ordering to the local ordering, I think it would help

filipematossilva17:01:13

the mapping will always be necessary because only the server has the real order, and it's actually very hard to just get a monotonically increasing number on firestore

filipematossilva17:01:31

so the server uses nanosecond precision timestamps... which unfortunately lose precision when coming over

filipematossilva17:01:00

the offline model also doesn't cater very well to a transaction based CAS number either, so it's for the best

alexmiller16:01:08

Have you completed the State of Clojure 2020 Survey yet? If not, take 8 minutes and complete it here: https://www.surveymonkey.com/r/clojure2020 - thanks!

alexmiller17:01:51

If you've already taken it, can you post it in your local Clojure meetup or company slack room? That would really help to spread the word.

danieleneal17:01:16

🎉 I’m happy to announce a new major version of Compound https://github.com/riverford/compound Compound is a library to help maintain indexed data in reagent/re-frame apps. It works with maps to make debugging and inspection easy. The new version (compound2) is not backward compatible, but improves on the original in a number of ways - it’s faster, has a simpler api, and is less impactful on your bundle size. Hope you find it useful!

rgm14:01:06

@ I've opened a PR to add it to clojure-toolbox ... if you can think of a better category than "Databases", please lmk.

rgm14:01:04

Also, might be worth adding some github topic tags so it shows up in https://github.com/topics/re-frame

danieleneal15:01:56

@ ah thanks for that 🙂 good idea with the topic tags, I didn’t even know they were a thing