Live data from Hacker News

Datomic and Content Addressable Techniques

latacora.com

31–40 of 42 posts

Re: Datomic and Content Addressable Techniques

#31
post #3

Their content-addressing hash would seem critical, but the "combineUnordered" hash they use just adds each byte. The API is clear that this is only as good as possible, and I'm not sure I would rely on it for data used for security investigations. I suspect they'll come up with something like an arbitrary but fixed order over keys that would improve hash quality. More generally, while I can maybe understand what they…

I suspect you're right and was already having similar thoughts regarding the hashing scheme. I put a patch together and am going to supplement with some additional tests of the collision space. Unordered hashes made more sense for arbitrary Clojure data structures where the keys might be complex compound objects, but once we're in the land of datoms with finite value data types it's pretty easy to enforce a consisten…

> where the keys might be complex compound objects

Given that any (simple) object has a unique c.a. identity, even anonymous (and unordered) containment in the parent object provides a key, that is k->k, with implicit order over {K} in the domain of keys (say ascending sort on k0..kn). As you obviously know, there are various schemas for that, such as "objspace://oid/". By definition, that is a bounded domain, with the same cardinality as the hash space. So then there remains the matter of nesting (aka trees) in which case unique identity of the parent is recursively computed as we walk up the tree from the leaves.

Re: Datomic and Content Addressable Techniques

#32
Fireproof is taking the lessons of cloujure and Ipfs and applying them to the browser, to create a realtime database that runs anywhere.

As cofounder of Couchbase I got to meet Rich Hickey, whose work was a big inspiration to Fireproof.

Content addressing makes causal consistency easy to implement. We are fast approaching readiness for consistency checks and ACID characterization.

Re: Datomic and Content Addressable Techniques

#33
post #2

Separate question: are there any new startups out there writing code primarily in Clojure?

I use it for Wobaka[1]. It's 98% Clojure and ClojureScript with some bash added. I even use it for CSS with a beautiful library called Garden.

Extremely happy going with Clojure!

[1] https://wobaka.com/blog/building-a-startup-on-clojure/

Re: Datomic and Content Addressable Techniques

#35
post #14
post #7

Earlier quoted context omitted.

Yes, in fact there is also a good number of conferences, for instance in less than two days https://2024.heartofclojure.eu/ starts in Belgium for instance (meet me there ;-) ). We are writing a trading system for a small broker company in Clojure/ ClojureScript with a Datomic centered backend. The previous company some of us on the team worked at had the code-base also in Clojure/ ClojureScript.

How is the job market for juniors? Functional programming jobs seems to be anti-juniors when hiring.

I'd say that market exists, but is kinda invisible.

I've been looking around for a junior with a passion for Common Lisp, but I have _no_ idea where to find one, especially in Germany (job's remote, but I'm currently not able to hire FTEs outside the country).

Re: Datomic and Content Addressable Techniques

#36
post #19
post #14

Earlier quoted context omitted.

How is the job market for juniors? Functional programming jobs seems to be anti-juniors when hiring.

Sadly Common Lisp, Scheme, Clojure, Julia, OCaml, F# and Haskell jobs are quite scarce. For example, right now, I can only see ~50 LinkedIn EU Clojure ads. A dozen more mention Clojure but it does not seem to be the main focus of the job. Would love to be proven wrong, though. Perhaps these jobs are sometimes not advertised via LinkedIn.

I would love for my next job to be in Common Lisp.

I do have a concern though. I see that at lots of companies the job is not a Go job or a Python job or a Javascript job, but a Go-at-Foocorp job or a Python-at-Bazco job or a Javascript-at-International-Clowns-Inc. job. What I mean is that the team have built so many leaky abstractions atop the core language, and added so many third-party tools, that the learning curve is steep and the skills non-transferable. On the one hand, who cares? We’re human, we can learn. But on the other it means that it can take significantly longer to ramp up and start delivering value than one would prefer.

What’s this have to do with Lisp? Well, while a well-written Lisp system will be faster to pick up and get started on that one in a less-powerful language (i.e., almost all of them), a poorly-written mess will be much, much slower. My concern is that I might leave a pretty good situation for what ends up being a dumpster fire — and then have to find a new job too quickly.

Re: Datomic and Content Addressable Techniques

#37
post #14
post #7

Earlier quoted context omitted.

Yes, in fact there is also a good number of conferences, for instance in less than two days https://2024.heartofclojure.eu/ starts in Belgium for instance (meet me there ;-) ). We are writing a trading system for a small broker company in Clojure/ ClojureScript with a Datomic centered backend. The previous company some of us on the team worked at had the code-base also in Clojure/ ClojureScript.

How is the job market for juniors? Functional programming jobs seems to be anti-juniors when hiring.

That's like asking about the job market for hammers.

Re: Datomic and Content Addressable Techniques

#39
post #36
post #19

Earlier quoted context omitted.

Sadly Common Lisp, Scheme, Clojure, Julia, OCaml, F# and Haskell jobs are quite scarce. For example, right now, I can only see ~50 LinkedIn EU Clojure ads. A dozen more mention Clojure but it does not seem to be the main focus of the job. Would love to be proven wrong, though. Perhaps these jobs are sometimes not advertised via LinkedIn.

I would love for my next job to be in Common Lisp. I do have a concern though. I see that at lots of companies the job is not a Go job or a Python job or a Javascript job, but a Go-at-Foocorp job or a Python-at-Bazco job or a Javascript-at-International-Clowns-Inc. job. What I mean is that the team have built so many leaky abstractions atop the core language, and added so many third-party tools, that the learning cur…

That's so true, you can write Fortran in any language! I've seen great Java codebases and atrocious Clojure out there.

Developing good non-over-engineered abstractions is hard. But with Lisp it's a bit easier.

Some places do abuse macro DSLs and you can end up, as you said, working on a local language with no transferable skills.

Re: Datomic and Content Addressable Techniques

#40

Fireproof is taking the lessons of cloujure and Ipfs and applying them to the browser, to create a realtime database that runs anywhere. As cofounder of Couchbase I got to meet Rich Hickey, whose work was a big inspiration to Fireproof. Content addressing makes causal consistency easy to implement. We are fast approaching readiness for consistency checks and ACID characterization.

It’s cool to see these ideas that you first conceptualized back at Couch, now becoming reality! I’m familiar with the high level, but not all the details. What lessons from Clojure and IPFS is Fireproof applying to the browser?
Post reply on HN