Homogenius
Languages and libraries
data serialization format
SHOW HN2014
How HN took it
4 positive, 4 neutral or asking, 2 mixed, 7 critical, out of 17 comments about the project. Thread score -0.14.
Idea: 2 for, 5 againstPerformance: 2 for, 1 againstDocs: 0 for, 1 against
The thread, comment by comment
Each row is a top-level comment and its replies, in HN's order. Select a cell to open that comment on HN.
positive neutral or mixed critical about another commenter or something else the maker
What HN said
What people liked
Size reduction versus raw JSON, especially when combined with gzip
From 2 comments
Out of interest, do you have any size comparisons compared to gzipping the raw homogenous JSON text? Edit: I did a quick test by myself, using the first example but repeated for…
beefsack on HNIn most real-world cases, it'll look like this: ``` gzip+Homogenius < gzip < Homogenius < original JSON ``` gzip+Homogenius will typically be better than just gzip because…
walrus on HN
Useful for detecting lazy API payloads with repeated subtrees
From 1 comment
I see two great things about this tool, and not exactly for what it was designed: 1) Fix bandwidth problems caused by API designer laziness. 2) Detect API designer laziness and…
codehero on HN
Objections
Binary formats like MsgPack or protobuf are smaller and simpler
From 4 comments
Why not just use MessagePack (aka MsgPack) http://msgpack.org/
imaginenore on HNIf size is a concern, wouldn't a binary message format make more sense?
eli on HNI really don't see too many use cases here. Both parties have to buy into it, then at that point you might as well use a binary protocol.
placeybordeaux on HNExcept that if you don't care about human readability, you might as well use a binary format and decrease size even more
grimlck on HN
Loss of human readability is not worth the gain when gzip is available
From 2 comments
You loose in human readability but you win in size. An interesting project and i think about a lot of uses for it (save bandwith, avoid timeout etc ...) thks to make it and i…
bussiere on HNYep. Depending on the scenario, i don't think this the loss of readability is worth it. Using gzip on the webserver already cuts enough.
sauere on HN
Bzip2 results showed it can worsen compression ratio
From 1 comment
I get the same ordering with gzip, but it seems sensitive to compression algorithm. With bzip2 (default settings, v1.0.6), homogenius seems to actually worsen the compression…
_delirium on HN
No benchmarks against gzip
From 1 comment
No benchmarking or comparisons with gzip.
stefan_kendall3 on HN
Requests
Add a marker to indicate compressed form
From 1 comment
I think this needs some sort of marker for the compressed form to make it clear it's not to be digested as is. Maybe `$HMGNS$` or something as the first key of the array?
akx on HN
Publish to npm
From 1 comment
Any plans to add this to npm?
shocks on HN
Questions
How does size compare to gzipping raw JSON?
From 1 comment
Out of interest, do you have any size comparisons compared to gzipping the raw homogenous JSON text? Edit: I did a quick test by myself, using the first example but repeated for…
beefsack on HN
Would a single shared value mapping work better than one per key?
From 1 comment
So it's a schema plus interned values? Do you think it might be better on real-world data to use just one mapping of value id to value instead of one per column/key?
ah- on HN
Alternatives named
MessagePack
From 2 comments
Why not just use MessagePack (aka MsgPack) http://msgpack.org/
imaginenore on HNSo can MsgPack https://github.com/creationix/msgpack-js https://github.com/msgpack/msgpack-javascript
imaginenore on HN
Transit format by Cognitect
From 1 comment
I think [Transit][1] by Cognitect addresses this issue as well. [1]: https://github.com/cognitect/transit-format#caching
_ducky on HN
Binary serialization formats
From 1 comment
If size is a concern, wouldn't a binary message format make more sense?
eli on HN