Hacker News new | past | comments | ask | show | jobs | submit | ytklx's comments login

Shameless plug: A JSON-like configuration language with considerably less features, no magic and no ambiguity: https://github.com/yuce/jacl


I've checked out Dhall very superficially, but it seems to be aimed at being a strict language to generate YAML and JSON, so IMO it has different goals than Jacl. E.g., an empty list is [] : List Natural in Dhall vs [] in Jacl. Dhall has A LOT of features. It looks more like a programming language than a configuration language. Since its goals are different, Dhall lacks a few features of Jacl like optional commas and underscore support in numbers. etc.


I am fed up with config languages where indentation matters or which require strange syntax to support a few levels of nested maps or require a manual to write a few lines of config.

I was dreaming of a config language which is as simple as JSON but also has a few niceties so it's not a pain to read/write it. This is what I came up with.

The golang implementation of the language is here: https://github.com/yuce/go-jacl The language grammar is in ANTLR4, so it should be easy to add support for other languages.

Hopefully this is useful to someone else.


Roaring bitmaps is quite good at compressing bits. Just as an example: Say, most monkeys have the same number of bananas. Pilosa doesn't store it as MonkeyCount bits, but just a few bytes.


This is very similar to how Pilosa saves integers. https://www.pilosa.com/docs/latest/data-model/#bsi-range-enc...


Okay, so if we store a three-bit 5 as 101 (in columns 0-2) and an additional "non-null" indicating 1 in column 3, we're saying that we have a row that has an association with columns 0, 2 and 3, but not with 1. Since, you know:

> The central component of Pilosa’s data model is a boolean matrix. Each cell in the matrix is a single bit; if the bit is set, it indicates that a relationship exists between that particular row and column.

But why do I want my integers sliced apart into these associations?


So that you can perform very fast range queries on deeply complex filters on those associations


Pilosa uses roaring bitmaps to store the data. Roaring bitmaps are compressed and performing bit operations on them is very efficient since they don't require uncompressing the whole bitmap to perform bit operations.


The Roaring bitmap paper is equally opaque in this regard. I easily understand everything about the bitmaps themselves: the compression and various operations. But then they say that they tested it on some Census1881 data, and I'm thinking, what, how? How do you grind census data into a bitmap? And is everything in the bitmap, including people's names and such, or does the bitmap refer to objects that are not in the bitmap?


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: