Live data from Hacker News

Ask HN: What are some tools / libraries you built yourself?

news.ycombinator.com

531–540 of 617 posts

Re: Ask HN: What are some tools / libraries you built yourself?

#531

Earlier quoted context omitted.

Similar, yes, but Ion repeats a number of mistakes from the past: * The text format doesn't have a version specifier, so any future changes to the text format will break existing codecs and documents. * Uses ISO 8601, which has bad defaults (local timezone) and doesn't support real time zones (only offsets). ISO 8601 is also too big for what it does and non-free, resulting in inconsistent implementations (and thus se…

> Uses ISO 8601, which has bad defaults (local timezone) and doesn't support real time zones (only offsets). ISO 8601 is also too big for what it does and non-free, resulting in inconsistent implementations (and thus security problems). Ion doesn’t use ISO8601; it has its own timestamp specification, which is free, and much smaller than ISO8601; its effectively a subprofile of a profile specified in a W3C note of ISO…

> its effectively a subprofile of a profile specified in a W3C note of ISO8601, but that relationship is mostly of historical interest, since it isn’t specified an a (sub)profile, but independently. It also has a UTC default.

Oh good, that's an improvement. Unfortunately, nobody thought to include real time zones :/

> You’d have to process the entire list before starting to write it to the final format, because the format is optimized for read efficiency not write efficiency.

Knowing how many objects are in the list won't help efficiency because you still don't know how big each element is. So you still need to walk through the list regardless. With that in mind, there's no advantage to a size field over an end marker, but there are disadvantages.

> Length prefixing variable length data values is kind of important though; I’d consider it a major strike against a binary format if it didn’t do that. (Though Ion does have the problem that its length records are also variable length.)

I did add typed arrays to CE to support efficient storage of monosized data types such as bool and int and float. Those have chunked size prefixes.

> You can, since it supports type annotations and has formats that can with annotations communicate that. (List would probably be the normal choice.)

I'm just not a fan of requiring users to massage data structures and annotations to get basic type behaviors. Technically you can get everything you need from XML too, but the costs...

>> Doesn't support arbitrarily long scalar values.

> Yes, it does, which is why the length fields for most values, including most scalars, in the binary format use VarUInt.

Ah cool, didn't know that, thanks!

>> Doesn't support NaN or infinity.

> Yes, it does. (It doesn’t, in text format or data model, distinguish different NaNs, but it supports NaN, +Inf, and -Inf.)

As I understood it, the text format didn't have "nan" or "inf" literals... unless I missed it somewhere?

Re: Ask HN: What are some tools / libraries you built yourself?

#532
post #517
post #353

An alternative Reddit client, that is compact and desktop friendly, cuz I dislike the "modern" (read: too much negative spaces) UI. It has a "TweetDeck" look and supports multi-accounts. - https://rdddeck.com

This looks great! Is the source code available anywhere?

[deleted]

Re: Ask HN: What are some tools / libraries you built yourself?

#533

Earlier quoted context omitted.

I think your format is closer to ideal than a few others I have seen. Like json, you don't have to prefix size of lists or objects, which is a plus (or in some cases needed) for streaming. Strings can be chunked, which can serve the same purpose for huge strings. The power of json is in its simplicity though. And a binary format should retain that a much as possible. The big advantage of binary formats is not the 'co…

Yes, that is exactly the aim of the binary format. It has a few basic concepts like being byte-oriented, 1-byte headers for most things, ULEB128 encoding for large values, same chunking mechanism for all arrays and string-likes, same "open/close" mechanism for all container types, etc. The binary codec is VERY simple, and can be trivially implemented for an async-safe or otherwise constrained environment. In fact, I…

My ideal binary format would contain exactly the types supported by json + binary - arbitrary size numbers. It would be something like this, maybe:

- 'n' - null - 'f' - false - 't' - true - 'i' - int (64 bit, little endian, two's complement) - 'd' - double (64 bit, ieee-754) - 'a' - array start - 'o' - object start (must contain even number of values) - 'e' - array/object end - 's' - utf-8 string chunk (64 bytes, must be followed by string chunk or string) - 'b' - binary chunk (64 bytes, must be followed by binary chunk or binary) - 0x80-0xbf - utf-8 string (0-63 bytes) - 0xc0-0xff - binary (0-63 bytes)

It is at least an order of magnitude simpler to implement than almost all of its contenders. It is just not as concise and doesn't support a rich set of data types (but then again, json does quite well without a timestamp type). It supports streaming. It has a unique representation for every value (if you ignore that ieee-754 can represent many integers and objects have no defined ordering). Reading a single byte can tell you in every case the type and the amount of payload data that follows.

Re: Ask HN: What are some tools / libraries you built yourself?

#534
https://openpad.vercel.app/ I created a simple notepad which can be used to write things and simply be shared with a link. It also provides a PWA, so it can also be downloaded.

Existing tools require logging in. But this just does the job.

The code is open sourced at https://github.com/theankurkedia/openpad

Re: Ask HN: What are some tools / libraries you built yourself?

#535
Starting in 2014 I built Reviewable (https://reviewable.io) because after getting used to Critique at Google I couldn't stand the workflow of GitHub's PR code reviews. Reviewable gives you interdiffs (even when rebasing), tracks what you've already reviewed, has a rich comment resolution system for multi-party reviews, and lets you know when the ball is in your court. It has also grown more customizable over the years, including plugging in snippets of custom code to, e.g., group files, determine if a file is reviewed, or determine if a review is complete.

It's not open source because, frankly, it's still hard to run a business on open source -- especially without VC backing (Reviewable is bootstrapped). After all these years things are still growing nicely and while I've run the show solo for a long time I started hiring full time folks in the last year or so. (If you think you might be interested to join, ping me and let me know!)

Re: Ask HN: What are some tools / libraries you built yourself?

#538

As a system administrator, I’m frustrated by two things : * The existing backup tools, that are all hyper-specialized, all configured differently, all have slightly different feature sets, and so on. You will likely have very different tools to backup, say, your /etc folder and your mariadb database * cron is cool, but its logging/alerts capabilities are… subpar, to say the least So I’ve developed tools to alleviate…

Nice, I hear you on the risks of depending on 3rd-party libraries where you can't get your changes merged. It's nice to be able to roll your own in that case. On the cron case, what are your thoughts on the email notifications? In what ways are the useful or useless? I'm not an expert in this stuff. And I really like the look of uback. I have the kind of sense (and pride) that maybe this thread I posted is going to b…

> On the cron case, what are your thoughts on the email notifications? In what ways are the useful or useless? I'm not an expert in this stuff.

I really dislike it. It’s probably the biggest pain point in cron IMO.

1. At the age of DKIM, DMARC and SPF, setting up a working MSA on every server that runs cron can be a real pain. Not always, it depends on the exact situation, but it can be.

2. The biggest issue is that it sends a mail whenever the cron job outputs anything, even if it is successful (exit code 0). This is batshit insane.

3. Nowadays, mail only notification are a bit limitating anyway.

Re: Ask HN: What are some tools / libraries you built yourself?

#539

Earlier quoted context omitted.

Nice, I hear you on the risks of depending on 3rd-party libraries where you can't get your changes merged. It's nice to be able to roll your own in that case. On the cron case, what are your thoughts on the email notifications? In what ways are the useful or useless? I'm not an expert in this stuff. And I really like the look of uback. I have the kind of sense (and pride) that maybe this thread I posted is going to b…

> On the cron case, what are your thoughts on the email notifications? In what ways are the useful or useless? I'm not an expert in this stuff. I really dislike it. It’s probably the biggest pain point in cron IMO. 1. At the age of DKIM, DMARC and SPF, setting up a working MSA on every server that runs cron can be a real pain. Not always, it depends on the exact situation, but it can be. 2. The biggest issue is that…

Yeah, I suppose you could send the mail to an intermediary and filter it. But I agree with you. I have a 5 minute cron on my server, and when I login to root. "You have 4487 messages". Thanks, cron! :P :) xx

Re: Ask HN: What are some tools / libraries you built yourself?

#540
post #261
post #259

A couple of years ago, I built http://www.genewarrior.com It's a suite of tools to work with DNA sequences (from simple tasks such as reverse complement to medium complex tasks such as multiple sequence alignments and primer design). I built it because I wasn't very happy with the existing tools. It never got very popular, but after all these years I still think it's a very useful tool.

I wonder if some explanatory texts, alongside usability improvements could help you get more users. I can’t tell if your website is useful since I know anything about DNA sequencing - but from a UX perspective there is room for some improvements.

I agree, it could definitely use a make over.
Post reply on HN