This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-01-04
Channels
- # architecture (5)
- # aws (11)
- # aws-lambda (1)
- # beginners (108)
- # boot (11)
- # cider (37)
- # clara (19)
- # cljsrn (72)
- # clojure (170)
- # clojure-austin (2)
- # clojure-dev (1)
- # clojure-dusseldorf (2)
- # clojure-italy (1)
- # clojure-spec (41)
- # clojure-uk (24)
- # clojurescript (113)
- # component (2)
- # core-async (29)
- # cursive (9)
- # data-science (5)
- # datomic (72)
- # docs (23)
- # duct (61)
- # editors (1)
- # emacs (1)
- # events (5)
- # fulcro (77)
- # graphql (2)
- # hoplon (4)
- # jobs (3)
- # jobs-discuss (16)
- # leiningen (5)
- # off-topic (94)
- # onyx (37)
- # precept (5)
- # re-frame (17)
- # reagent (11)
- # shadow-cljs (18)
- # spacemacs (107)
- # specter (3)
- # unrepl (64)
- # yada (1)
I think that you need to access from http://my.datomic.com (top, right button) from the first time But it's a suggestion to support java.time.instant. And the feedback from datomic team:
We're gathering feedback from customers, so that we can gauge demand for this feature. Make sure to click "Want" on this feature if you need it.
Marshall Thompson
from Datomic wrote a year ago
I'm surprised they haven't jumped on the goodies in java.time
as of JDK8, being immutable and all...
i'm surprised they opted to use java.util.date to begin with... joda-time has been the better option for ages
That seems to be the case for a lot of libraries. Jackson doesn’t do serialization natively of them, and we’ve had problems with other libraries as well. 😕
What would it look like when I 'update' an entity to have the value for an attribute removed? Set it to nil
?
This is an approximation which I'm not sure would even work with transactions which set a txInstant explicitly:
(defn lookup-tx-by-uuid [log tx-uuid]
(let [start (Date. (d/squuid-time-millis tx-uuid))]
(->> (d/tx-range log start nil)
(drop-while #(not= (:id %) tx-uuid))
first)))
Hey all, when Datomic Starter says that "updates are limited to one year", does that mean that after 1 year my CI servers will break (they won't be allowed to pull the JAR file)? I'm trying to figure out how exactly the licenses work. If I'm ok with not receiving updates after 1 year, would I need to host that JAR file somewhere manually?
Or do I sort of automatically get "locked in" to whichever version is available when my updates expire?
@marshall is a good guy to answer such questions
@cjsauer your license key wont work to start transactor versions released past the maintenance period it will no affect your ability to fetch the peer lib for CI
it should be pretty fast since you’re starting the tx-range call at the millisec of the txn of interest
yeah, the only other option i can think of would be to walk the log and export uuids with tx-ids to something like elasticsearch
I was a little surprised to discover also that tx-range's start
parameter is interpreted like d/as-of
when a date
it doesn't mean "give me txs with this txInstant or later", it means "give me the TX that is the final one at this txInstant or later"
so if you ask for time x and there's no tx at time x, the first tx you get from the seq will be from time < x not > x
the docs say “The arguments are startT (inclusive), and endT (exclusive). Legal values for these arguments are:”
I discovered it working with a prod db but it should be easy to reproduce with a test db
This is how I found it:
(-> (d/log pc) (d/tx-range #inst"2018-01-04T18:41:54.000-00:00" nil)
(->> (take 2)
(map tx->times))
)
=>
([[53635182 #uuid"5a4e7571-f3c6-4f58-bcd6-f0da00a898de"]
[1515091313000 #inst"2018-01-04T18:41:53.000-00:00"]
[1515091313924 #inst"2018-01-04T18:41:53.924-00:00"]]
[[53635183 #uuid"5a4e7572-fcd8-47ee-a89d-ded605b565df"]
[1515091314000 #inst"2018-01-04T18:41:54.000-00:00"]
[1515091314031 #inst"2018-01-04T18:41:54.031-00:00"]])
(the first time in each entry is the squuid-time-ms from the tx-uuid; the second one is the tx's txInstant)
(-> (d/log pc) (d/tx-range #inst"2018-01-04T18:41:54.030-00:00" nil)
(->> (take 2) (map tx->times)))
=>
([[53635182 #uuid"5a4e7571-f3c6-4f58-bcd6-f0da00a898de"]
[1515091313000 #inst"2018-01-04T18:41:53.000-00:00"]
[1515091313924 #inst"2018-01-04T18:41:53.924-00:00"]]
[[53635183 #uuid"5a4e7572-fcd8-47ee-a89d-ded605b565df"]
[1515091314000 #inst"2018-01-04T18:41:54.000-00:00"]
[1515091314031 #inst"2018-01-04T18:41:54.031-00:00"]])
(-> (d/log pc) (d/tx-range #inst"2018-01-04T18:41:54.031-00:00" nil)
(->> (take 2) (map tx->times)))
=>
([[53635183 #uuid"5a4e7572-fcd8-47ee-a89d-ded605b565df"]
[1515091314000 #inst"2018-01-04T18:41:54.000-00:00"]
[1515091314031 #inst"2018-01-04T18:41:54.031-00:00"]]
[[53635184 #uuid"5a4e7572-61de-4103-b5fd-cb2ed253ed4e"]
[1515091314000 #inst"2018-01-04T18:41:54.000-00:00"]
[1515091314254 #inst"2018-01-04T18:41:54.254-00:00"]])
@marshall just hypothetically, if a security hole were discovered in Datomic, would Datomic Starter users outside of their license receive any retro-patches? I'm imagining no, but wanted to double check.