Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
richhickey
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
10 ms
·
31.
▲
by
richhickey
14y ago
Datomic satisfies these three points.
32.
▲
by
richhickey
14y ago
There is some redundancy between vectors and lists, admittedly. However, edn is not without legacy. Part of that legacy is Lisp and s-expressions, and deserves some respect and accommodation. If that means readers map the [] and () to the s
33.
▲
by
richhickey
14y ago
> But isn't it backwards to have the generator suggest where to put trigger points instead of the consumer? No. edn is self-describing, and all descriptions bottom out on built-in types. Having each date/instant or extended type proclai
34.
▲
by
richhickey
14y ago
edn is a mechanism for the conveyance of values. It is not a system for defining their semantics, types nor schemas. That said, there should be no problem using edn to convey the values of types whose definitions are algebraic or recursive.
35.
▲
by
richhickey
14y ago
Addressed here: http://news.ycombinator.com/item?id=4448351
36.
▲
by
richhickey
14y ago
I would characterize the level of coupling involved in sharing "the basis is 12345" as categorically different from having to nest database access within the same transaction. Consider, e.g. the ease of moving the former to different proces
37.
▲
by
richhickey
14y ago
Re: read/decide/write - Datomic supports transaction functions (written in Java or Clojure) which run within the transaction, on the transactor, and are true functions of the prior state of the database (with full access to the query API).
38.
▲
by
richhickey
14y ago
Datomic allows one to get a consistent basis for multiple queries, separated by arbitrary amounts of time, outside of any transactions . Having to group queries motivated and conducted by different parts of your system into a single transa
39.
▲
by
richhickey
14y ago
The model of consistency envisioned by Datomic is one in which consistency normally available only within a transaction is available outside of any transactions , and without any central authority. Consistent views can be reconstituted the
40.
▲
by
richhickey
14y ago
I think Christophe's is the talk, and Yegge seriously misunderstood it, if he even bothered to watch it. Christophe's point was that basing the underpinnings of a DSL on macros was frequently a mistake, vs a data + functions approach that "
41.
▲
by
richhickey
14y ago
a) It can occur over time and place - i.e. I can communicate a basis point (tiny, a long) to you, and 3 days later you can look at exactly what I saw b)It doesn't require any coordination, read locks, MVCC etc
42.
▲
by
richhickey
14y ago
Nope - no limit other than available disk space.
43.
▲
by
richhickey
14y ago
The free topology is 3 servers, one of which is the transactor (the one hosting the db in free edition). You get 2 peers _in addition to_ the transactor (connecting to it). So you could have one additional server beyond the web server, or 2
44.
▲
by
richhickey
14y ago
It's really not a different story than it is with any traditional filesystem-based database, and as durable.
45.
▲
by
richhickey
14y ago
Links were updated, you might need to refresh
46.
▲
by
richhickey
14y ago
> Surely we're not going to say we've "decomplected" them? Simplified.
47.
▲
by
richhickey
14y ago
"Coupling" has always been a particularly weak word for the software problems to which it's been applied, IMO. After all, when you connect 2 Legos together you couple them. "Complicate" was a candidate, but is decidedly unsatisfying. It jus
48.
▲
by
richhickey
14y ago
> and there's no parallel fold. When working up from the bottom it might seem that this is just manual stream/list fusion. But the parallelism is the key prize. We need to stop defining map/filter etc in terms of lists/sequences, and, o
49.
▲
by
richhickey
14y ago
foldl and foldr are sequential, but Clojure's fold is potentially parallel.
50.
▲
by
richhickey
14y ago
When you call a reducer like r/map or r/filter, the result is reducible but not seqable. So, if you have an incremental algorithm, are calling first etc, the seq-based fns are a better fit. Also, lazy fns automatically cache whereas reduc
51.
▲
by
richhickey
14y ago
Yes, reducers provide that benefit to sequential reduce, independent of the parallelism of fold.
52.
▲
by
richhickey
14y ago
I make no claims to novelty, and the blog post does link to http://www.haskell.org/haskellwiki/Enumerator_and_iteratee , the most similar work and a clear influence. If more people knew about Iteratee, it would be worth spending more time
53.
▲
by
richhickey
14y ago
Slides are here: https://raw.github.com/richhickey/slides/master/simplicityma...
54.
▲
by
richhickey
15y ago
Transactions are not limited to add/retract. There are also things we call data functions, which are arbitrary, user-written, expansion functions that are passed the current value of the db (within the transaction) and any arbitrary args (p
55.
▲
by
richhickey
15y ago
Sorry, no. It is calling data mutable that is the confusion. Try this exercise: Identify something you consider a datum. Write it down. Note that it has more than one part. Now imagine it 'changing' and write that datum down. Now, identify
56.
▲
by
richhickey
15y ago
> A large advantage of lisp like languages is the data-as-code paradigm. To give up eval is to give up this. Code as data is about (among other things) programs writing programs, the majority of which (compilers and macros) don't need r
57.
▲
by
richhickey
16y ago
One problem is what to do if the other-namespace doesn't already exist. It would have to be created, and that initialization is unlikely to be the same as the declared one. Possibly follow-on effects when it is subsequently required. The ot
58.
▲
by
richhickey
16y ago
Such declarations are possible (as would be accepting fully-qualified references to not-yet-existing things), but the devil's in the details again - e.g. what if the other ns doesn't yet exist? And the complexity/utility tradeoffs must be c
59.
▲
by
richhickey
16y ago
The issue is not single-pass vs multi-pass. It is instead, what constitutes a compilation unit, i.e., a pass over what? Clojure, like many Lisps before it, does not have a strong notion of a compilation unit. Lisps were designed to receive
60.
▲
by
richhickey
16y ago
> No language in the world will save you from having to think about your program's desired behavior, but that doesn't mean we should make it hard on ourselves to even implement the behavior we think we want. Therein lies the rub. Is the
More ›