Show HN: Rga: ripgrep, but also search in PDFs, Office documents, zip, tar.gz - <AUTHOR> https://phiresky.github.io/blog/2019/rga--ripgrep-for-zip-targz-docx-odt-epub-jpg/ <comment><USER2> Ah, we've come full circle and reimplemented lesspipe[1][2].

[1]: [https://manpages.debian.org/jessie/less/lesspipe.1.en.html](https://manpages.debian.org/jessie/less/lesspipe.1.en.html)

[2]: [https://www.openwall.com/lists/oss- security/2014/11/23/2](https://www.openwall.com/lists/oss- security/2014/11/23/2)

<comment><USER3> I can't wait until it sends email in addition to searching for it.

<comment><USER4> Is that a reference to [1] "Zawinski's Law of Software Envelopment"?

 _" Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can."_

[1] [http://www.catb.org/~esr/jargon/html/Z/Zawinskis- Law.html](http://www.catb.org/~esr/jargon/html/Z/Zawinskis-Law.html)

<comment><USER5> Are there any corollaries to Zawinski's Law?

Because lately when I develop something, it always gains either IRC or RSS capabilities at some point.

</comment></comment></comment></comment><comment><USER6> This is awesome!

One of the features I really liked about MacOS is spotlight. Is there some (fast) equivalent that I've been missing on Linux? I'm aware of `locate`, but that only matches the names of files, not their content. Is there a search engine that indexes local content as well?

<comment><USER7> I believe Baloo (a KDE project) does exactly that (indexing local content). There are different tools you can then use to search for indexed data: I assume KRunner will be the closest to Spotlight, but you can search for files right from Dolphin, if you use it.

To be honest, I've found Baloo to be a resource hog in the past, so I've now the habit of disabling it right after installing a distro which comes with it (eg. Kubuntu) or not installing at all otherwise (eg. on Debian or Arch). I should probably give it a second chance, though: on paper, that's the right approach to search.

<comment><USER8> Baloo ist basically Spotlight and probably more but dare you are not that typical happy smile buisness user - have a few kernel source tree's laying around in your /home and you'll likely are getting friends with Baloo sooner (spinning rust) or later (ssd) because that beast manages to saturate even SSD IOPs and while doing so hands out segfaults on every other file.

You can switch to disable content-indexing and just search for filenames (80% rule) but it's hidden in systemsettings or you even need to go to balooctl - also index corruption is a thing...

That beeing said, if you are a brave KDE user and don't mind the hassle it might even work 80% of the time - in theory it's great idea but it never worked reliable for me - if you are a bored dev there is probably lot's of low hanging fruit there - seccomb, some simple heuristic to not overload on IOPs, there are probably more efficient db structures than LevelDB and so on...

It's step forward from nepomuk? that did the full rdf semenatic web stuff and fed a relational database and killed your hdd-based desktop reliable in the early 2000ies but it's still a nasty surprise when using KDE.

It's still a cool idea but it needs some love and contributors to work reliable on all kinds of nasty setups.

<comment><USER9> I've found searching for files on KDE (with Baloo) to be, _for some reason_ , really inaccurate and hit-or-miss. Sometimes, even if I remember the exact name of the file, it won't show up in the search results. Partial names have a lower probability of showing up. Slightly inaccurate names (with a Levenshtein distance of 1 or 2 to the actual name) have a _very low_ probability of showing up. I end up searching for it using find or ag (the silver searcher).

Baloo is also indeed a resource hog. It can use 100% of a CPU core for hours and hours, while it's indexing. But I'd be fine/happy with that if it just worked properly.

<comment><USER8> Ah, I can confirm all of the issues. I've thought that was my fault - so these are probably bugs.

</comment></comment></comment></comment></comment><comment><USER10> Or, if your usage is sufficiently infrequent to not need caching and if you'd rather not depend on one more tool, simply configure ripgrep to use a `--pre` flag (which is what rga is doing :).

See config and gist at [https://github.com/BurntSushi/ripgrep/issues/1252](https://github.com/BurntSushi/ripgrep/issues/1252)

<comment><AUTHOR> Pretty hard to make rg search in files within archives though without actually extracting them (which I've seen more than one request for in the ripgrep issues [1]), which is why rga includes streaming, recursive decompression of archives including running other preprocessors (like pdf) within them (second example in the above post and readme).

[1]: [https://github.com/BurntSushi/ripgrep/issues/918](https://github.com/BurntSushi/ripgrep/issues/918)

<comment><USER10> That's a pretty cool feature indeed, I had missed it (and now I understand the need for a separate binary with archive handling & streaming logic). Thanks for correcting.

</comment></comment></comment><comment><USER11> Looks great.

Off topic, but did anyone else see Phiresky's other work: AI that mimics human backchanneling so it pretends it's listening (saying "yeah", uh-huh" etc) Remarkable work! [https://streamable.com/dycu1](https://streamable.com/dycu1)

GitHub repo here: [https://github.com/phiresky/backchannel- prediction](https://github.com/phiresky/backchannel-prediction)

<comment><AUTHOR> Thank you! Yeah, I like to think I have some interesting projects. Maybe I should make an overview page because you can only pin 6 repositories on Github :)

</comment></comment><comment><USER12> No Windows support? :\

Also, suffers from the exact same problem I see pretty much every text search tool suffer: doesn't support other UTF encodings like UTF-16, meaning you'll miss files.

Not sure if it can search in single-line mode either... would be nice if anyone knows options to do that. With grep etc. it always sucks not to be able to search for line feeds for no good reason.

<comment><AUTHOR> Windows support should be fairly trivial, the main problem is packaging it up and that travis doesn't like Windows.

> doesn't support other UTF encodings like UTF-16

UTF-16 should in fact work, since ripgrep supports it too. Looks like my binary file detection is at fault [1]..

> Not sure if it can search in single-line mode either

That works fine, just use `rga --multiline '\n' fname`

[1]: [https://github.com/phiresky/ripgrep- all/issues/5](https://github.com/phiresky/ripgrep-all/issues/5)

<comment><USER12> Ah I see, thanks. You shouldn't require a BOM though. There are often files without a BOM, and not all files with UTF-16 in them are text either (EXEs etc.). I would just search for all the possible UTF byte sequences (UTF-7, UTF-8, UTF-16LE/BE, UTF-32, possibly with a switch to allow specifying subsets or additional encodings if you can support that?) regardless of BOM.

<comment><AUTHOR> In ripgrep itself you can apparently only look in files of encodings other than UTF16LE with BOM by manually specifying `--encoding UTF16BE` etc.

I could maybe add encoding detection myself, but I'm kind of discouraged since not even the unix `file` tool can detect those files as text, and a normal editor opens at least a UTF16BE file completely wrong. So I'm not sure if I want to spend my time on trying to write heuristic detection on those, especially since UTF16 itself is broken and shouldn't really exist at all...

I'll look into what encoding_rs has to offer.

<comment><USER12> Thanks! Yeah I wouldn't try to detect encodings or use heuristics either. If you could just reduce a single pattern into the OR of a bunch of byte sequences in each encoding, I think that should work? I'm not sure how easy that is with the interface you're given. (I wouldn't call UTF-16 'broken', but either way... it's a reality; a huge fraction of the time when you're searching binary files on Windows it's to find text inside executables, which on Windows are generally UTF-16.)

</comment></comment></comment></comment></comment><comment><USER13> I see threads recommending software doing full-text indexing of pdfs descending into archives. I remember that a few years ago there were some security vulnerabilities in exactly this kind of software on some fairly modern Linux distro.

So, if you enable it or use it, make sure computer is isolated of anything of value to you, not to mention it is your main work or personal machine.

<comment><USER14> Are you alleging there is a security issue in this software? It's open source, feel free to show us where.

<comment><USER15> GP said "exactly this _kind_ of software" \-- i.e. software with a similar type of functionality. He did not claim that the posted code specifically has a vulnerability.

</comment></comment></comment><comment><USER16> This is something I've needed for a long time! Has anyone docker-ized it yet?

Edit: unsure why I'm getting downvoted here - docker is an extremely convenient way to run things on a server with Unraid that doesn't have a full distro or easy way to add packages locally.

<comment><USER17> I'm assuming this is sarcasm? Why on God's green earth would you want to dockerize a utility like this?

That aside, it does seem like a very useful utility.

To respond to your edit, I don't think dockerization is necessary for a simple binary. You're not running any thing that could benefit from it. It makes sense if you want to run some kind of network service (torrent client, web server, ftp, smb, blah blah blah) and forward a port to your instance. That way, you can pre-package it on something like unraid. Here, it doesn't, and (as far as I know) even unraid can install a simple binary.

<comment><USER16> Why wouldn't you want to dockerize it? It has a huge number of potential dependencies (pandoc, pdftotext, etc). Getting all those working on my Unraid storage server for searching is going to be painful.

<comment><USER17> I feel like this case might be better served by something like flatpak or appimage. While I'm usually not a fan, this is basically exactly what they're built for, as compared to docker, which is not designed with this in mind. I don't want to have to prefix every command with docker stuff.

</comment></comment></comment></comment><comment><USER18> So, if you're trying to grep through 100+ mb zip files on a shared folder (windows box) is the most efficient way to do that to use ansible or the like to remote in to the server and run commands there? Of course it could use cpu so that could cause problems if it's a production server.

I would appreciate hearing from anyone with experience in this area.

</comment><comment><USER19> How well does it handle zip bombs and 42.zip?

<comment><AUTHOR> There is an option to limit the maximum archive recursion `--rga-max-archive- recursion=` which defaults to 4. That is also needed to handle droste.zip [1] which is a zip file that contains itself. So for huge archives it will simply take a fairly long time, unless you limit recursion more.

[1]: [https://alf.nu/ZipQuine](https://alf.nu/ZipQuine)

</comment></comment><comment><USER20> phiresky does this use libripgrep under the hood?

Or do you shell out to the ripgrep binary?

<comment><USER21> libripgrep isn't currently a thing (not merged to mainline). On reddit, the author noted that ripgrep (and other utilities) need to be on the PATH, which is one of the issues related to windows packaging.

<comment><USER22> libripgrep has been on master since 0.10.0. There just isn't any high level documentation for it.

It's not clear whether libripgrep would be a good fit for this project or not. They would need to reroll all the arg parsing logic themselves. libripgrep is really about building your own search tools (or more specialized tools) using the same internal infrastructure as ripgrep. But yeah, this is why I need high level docs to explain this stuff. I've been putting it off until I get bstr straightened out.

<comment><USER20> I'd like to try libripgrep out in one my projects, maybe I could also take on the challenge of attempting to document it.

<comment><USER22> So, a lot of it is actually written already. :-) [https://github.com/BurntSushi/blog/blob/ag/libripgrep/conten...](https://github.com/BurntSushi/blog/blob/ag/libripgrep/content/post/libripgrep.md) (The formatting is FUBAR, so you'll want to look at the raw text.)

There's just a lot of polish that needs to be done, and converting portions of it appropriate API documentation. Unfortunately, I don't really have the bandwidth to mentor this at the moment. :-( However, with that said, one super useful thing you could do is try out libripgrep and then give feedback[1] on how it worked for you, and in particular, which things were hard to figure out.

[1] - [https://github.com/BurntSushi/ripgrep/issues/1009](https://github.com/BurntSushi/ripgrep/issues/1009)

</comment></comment></comment></comment></comment><comment><USER23> >rga simply runs ripgrep (rg) with some options set, especially --pre=rga- preproc and --pre-glob.

If all it does is running ripgrep with certain options, creating a corresponding alias might be a simpler solution than adding another binary to the system.

<comment><USER24> At the very least, you still need the rga-preproc binary

<comment><USER23> That makes more sense, the way the sentence is written made it appear to me like it's just a very simplistic wrapper - but looking through the code shows it's more elaborate than that.

</comment></comment></comment><comment><USER25> FileSearchEX works well if you need a Windows searchy tool.

</comment><comment><USER26> it seems like this might be useful for journalists</comment>


NSA admits rare willful surveillance violations - <AUTHOR> http://news.yahoo.com/nsa-admits-rare-willful-surveillance-violations-211422017.html <comment><USER2> We have reached a point where, no matter how few violations occur and no matter how innocuous they may be, the average person will always believe the NSA is doing things that are much more extreme than what is reported. The secret nature of the NSA (and all intelligence gathering) simply means rational people will always be able to justify fears of conspiracy, tyranny, and Big Brother (now that the Snowden revelations have come to light).

What would it take for people to stop fearing an encroaching surveillance state? The complete dismantling of NSA and the government-intelligence complex? Even then, intelligent people would have reason to doubt that secret facilities did not exist somewhere.

I cannot see how any of this can be resolved.

EDIT: I'd like to add another "meta" remark about NSA discussion on the internet.

Anyone who frequents HN, or reddit's r/technology, or similar boards, will be familiar with the universal bashing of NSA and rampant speculation of what they may be doing. Invariably, snarky and profoundly cynical comments are at the top: these do not help. Instead, they react to the new sensationalist headline about how "NSA has done something else!!" by bashing the NSA, American government, Obama, or all three. In effect, every thread about the NSA is our version of the daily "Two Minutes of Hate", the ritual from Orwell's 1984 where workers get up and scream, releasing their ire and accomplishing nothing but self-pacifying catharsis.

We do not need that. Instead of beating the dead horse to make ourselves feel better and go back to "normal" life, we need to do something productive. Let's say something new and thoughtful, rather than cynical witticisms.

<comment><USER3> You constantly defend authority and yell at anyone who speculates negatively, and yet here ([https://news.ycombinator.com/item?id=5870726](https://news.ycombinator.com/item?id=5870726)) you rather cynically jumped on the "Snowden is a Chinese spy" bandwagon, when really the spying accusations make no logical sense, and of course, there's no evidence of that at all. That makes you a hypocrite.

I'm not sure what else you expect other than blind cynicism - the NSA constantly does pedantic backflips, lies or invokes "national security" to prevent from telling anyone what they're doing, even when it's clear they're violating any sensible ethical guideline. What should we talk about, and what's wrong with speculation?

Also, the idea that we need to "see the good" in the NSA is fallacious. The NSA is a party made of volunteers who work for a government who have chosen to not only exercise authority authority over me, but to abuse it gratuitously, all while the tax dollars of myself and others fund them to do so, when most of us never asked them to. Under what moral philosophy do I have to live to ignore that context to have a peaceful discussion about the merits of a completely-broken system? On a personal note, foreign intelligence is great, which the NSA has clearly not limited themselves to in any capacity, based on the information that we actually do have.

If there's a direction the discussion should move in, perhaps you could start by leading that discussion, instead of sitting on the sidelines and complaining about other people and trying to control their thoughts and minds. As I'm sure you know, actions, intuition and insight are better teachers than whining and exercising authority.

I do agree that more critical thought (and less blind cynicism) is a good thing.

Finally, I can't help but note that your role reversal of the _1984_ example is an extremely-ironic case of "Doublethink", since under no circumstance are the masses hating on the government blindly remotely applicable to the novel.

</comment></comment><comment><USER4> Didn't Alexander just state to BlackHat in no uncertain terms that there have been _zero_ incidents, and that's a fact? Looks like the heckler who shouted bullshit was right.

<comment><USER5> "You know, and I think you can hear it from some of the comments that we've gotten here. (Inaudible) – see, think about people who are willing to go forward to Iraq and Afghanistan to help insure our soldiers, sailors, airmen and Marines, so they can get the intelligence that they need. I believe these are the most noble people that we have this country. They are willing to put their lives on the line for their fellow – their fellow soldiers and fellow Americans, and other countries. And 20 of them lost their lives. And when you think about that, the issue is these same people who take that same oath to uphold and defend the Constitution (are?) the ones that run these programs. And we get all these allegations of what they could be doing. But when people check, like the intelligence committee, they found zero times that's happened. That's no bullshit. Those are facts." \- General Alexander, 31 July 2013, Blackhat 2013

[http://www.nsa.gov/public_info/_files/speeches_testimonies/T...](http://www.nsa.gov/public_info/_files/speeches_testimonies/Transcript_of_GEN_Alexanders_Black_Hat_Speech_31_July_2013.pdf)

"That guy's a fuckin' liar" \- ioerror, 29c3, "Not My Department" [https://www.youtube.com/watch?v=Wl5OQz0Ko8c&t=24m15s](https://www.youtube.com/watch?v=Wl5OQz0Ko8c&t=24m15s)

</comment></comment><comment><USER6> The mere existence of PRISM et al are the real violations. These admissions are an attempt at misdirection.</comment>


The problem isn't Islam, it's religion - <AUTHOR> https://medium.com/p/the-problem-isnt-islam-it-s-religion-6f2cf750f98c <comment><USER2> The article lists the three things that the author thinks make people evil:

> There are also people who do evil. I usually lump the causes into one of > three groups:

1) Mental instability.

2) Being misinformed.

3) Crimes of passion.

I think the biggie is peer pressure to adopt group norms, though. People try and fit in. They don't question too critically the opinions of those around them, and instead repeat and reenforce it so it slips towards a social evil. Which is what religion is, really - a group norm you don't question critically.

Further along:

> Even the founding fathers knew religion was trouble. After all, they left > partially due to religious differences. But they knew religion was too > touchy a subject to be involved in government

Trivia, but as a techie I can't help but derail discussion by pointing out minutiae: the Pilgrim Fathers left England because it was _too tolerant_ , and they wanted to set up a pure and intolerant new world. Which changes things quite a bit.

</comment><comment><USER3> I think "good" and "bad" are the problem.

People try to define good and bad absolutly and fail every time.

Islam says some things are bad.

Religions generally say some things are bad.

Even non-religious people are like "I don't need no god or something to do the right thing!"

We need to understand that there isn't something good or bad out there.

There is simply the wish that some things are handled a special way.

Like, for example, not eating animals. It's not bad to eat them neither it is good. It's just something we can do.

Every person and the society as whole has to accept that we just "decide" how we want to live.

If we get this we can change our minds more easily if new information arises.</comment>


The beginning of the end for consoles? - <AUTHOR> http://www.technologyreview.com/news/521771/xbox-vs-playstation-beginning-of-the-end-for-consoles/

<comment><AUTHOR> It looks like their graphic is sourced from Polygon.</comment>


Princeton Study: Congress literally doesn't care what you think - <AUTHOR> https://represent.us/action/theproblem-4/ <comment><USER2> it seems nobody cares enough to do anything about it. we get the government we deserve!</comment>


GNU Taler 0.0.0 released - <AUTHOR> https://lists.gnu.org/archive/html/taler/2016-06/msg00014.html <comment><USER2> I don't have time for a full write up of this system yet, and a paper would be really great.

That said, here are to me the most salient points:

* Exchanges (essentially banks in Taler) must have external auditing; there are no in-built technology mechanisms for noticing or defeating over-issuance

* HTTP/HTTPS focused -- this is intended to be an API-layer tool

* Token based, so you could use it with any system you want

* Government audit friendly -- it tries for high levels of privacy for users and almost none for merchants as a conscious decision to be bad for money laundering.

</comment><comment><USER3> >Unlike BitCoin or cash payments, Taler ensures that governments can learn their citizen's total income and thus collect sales, value-added or income taxes

Wow, what a feature ...

<comment><USER4> Indeed, that is an excellent feature.

Money transfers without the banks, but I can potentially get buy-in from my government and use it to pay my taxes (which I am happy to pay, because I am buying civilization with it)?

Sign me up!

<comment><USER5> It's funny that you think you're buying civilization with your taxes when the vasty majority of the money you give the government is used to actively _destroy_ civilization. Bombs aren't cheap.

<comment><USER6> Vast majority? Military spending is only 15.75% of the US federal budget. And that's just federal spending, citizens also pay taxes to states and municipalities, which rarely field combat aircraft.

<comment><USER7> While military spending (not counting veterans' benefits) in 2015 was around 16% of the total US federal budget[1,2], it made up 53.71% of the discretionary spending budget, dwarfing the next closest category, "government", at 6.54%.

From the BusinessInsider link below:

" _The military budget is by far the largest single cost displayed. It is almost six times larger than the 2015 education budget and it is more than 34 times the size of NASA 's 2015 operating budget. In total, the costs of running the military amount to approximately 16% of the overall 2015 US budget._"

[1] [http://www.businessinsider.com/the-us-defense-budget-is- mass...](http://www.businessinsider.com/the-us-defense-budget-is- massive-2015-8)

[2] [https://www.nationalpriorities.org/budget-basics/federal- bud...](https://www.nationalpriorities.org/budget-basics/federal- budget-101/spending/)

<comment><USER8> And discretionary spending is a useful metric... why? Your taxes go to funding both discretionary and non-discretionary spending, so of your tax money, yes, military spending is only around 16%.

</comment></comment></comment></comment></comment></comment><comment><USER9> Taler is quite different from, say, bitcoin in that it tries to enable taxation while preserving anonymity. The main webpage has more info: [https://www.taler.net/](https://www.taler.net/) . Unfortunately, it doesn't appear that a paper has been published yet. But, there are a couple of presentations at [https://taler.net/news](https://taler.net/news) .

</comment><comment><USER10> From reading their page and watching a talk I don't quite get how they merge taxation and anonymity. As I understand it what individual transactions are for is protected but the total money flows are available and thus taxable? I take it they have categories (capital gains, income) etc. attached to the money streams since they are taxed differently in most countries? That would open the possibility to do some metadata/timing etc. analysis and at least some of that anonymity would get leaked. I would also have to prove somehow that this transaction was for example a capital gains transaction etc. Similarly I don't see how sales taxes are handled. That would require a somewhat specific location identifier on my part, would it not (in the U.S. you'd need to provide your state)? I'm also not sure how tax deductions would work. For those I usually have to turn in receipts and declare why the content of the items is relevant for the work.

Let's say I want to buy a book that I think could be flagged for political reasons and would want to keep the fact that I bought that book secret. I'd still have to prove that it was purchase of an item (possibly even indicating a book depending on how complicated the tax code is).

It feels like in practice it would be a rather soft layer of anonymity. I don't know I feel like I just don't get how taxation and anonymity can be merged as soon as the tax code gets complicated a lot of information needs to be leaked.

</comment><comment><USER11> Reading Taler's website ([https://www.taler.net/](https://www.taler.net/)) it is not clear to me whether customer and merchant must agree to use the same exchange in order to perform a transaction.

It seems to be implied by the key interactions of a Merchant: "Create a reserve based on an incoming wire transfer from a customer" and "Execute wire transfers to merchants in response to validated deposits".

If this is indeed the case, then there's an attractor towards centralization: both customers and merchants will be forced to sign up with the dominant exchange for maximum interoperability.

Either exchanges are given an incentive to federate with zero friction for users, or the Taler network will inevitably become a centralized monopoly.

<comment><USER12> I understood the website the same way you did: the merchant must use the same exchange as the customer. I hope we're wrong.

For the sake of anonymity though, it appears to me that using a new exchange would be easy as you would not require to log in with an email and a password, but rather with a kind of web-browser extension or something similar. Each merchant could then become its own exchange, and you would only see a few big exchanges whose role would just be to make everything simpler for the merchant, and that simplicity would come at the price of an increased fee. This is a bit like what PayPal or Stripe are doing today.

</comment></comment><comment><USER13> Previous discussion worth reading about Taler on HN a few months ago: [https://news.ycombinator.com/item?id=10258312](https://news.ycombinator.com/item?id=10258312)

</comment><comment><USER14> Title should say something about what "Taler" is. It's obviously brand new. A post about ffmpeg 67.9.5 might assume that there's more knowledge in the world about what "ffmpeg" is.

<comment><USER15> While I agree with you, Thaler is the origin of the word Dollar.

<comment><USER16> Not all of us use the Dollar as our primary currency, and probably fewer of us are etymologists.

<comment><USER17> _fewer of us are etymologists_

But think how useful it would be in an emergency if we were.

[https://xkcd.com/1012/](https://xkcd.com/1012/)

</comment></comment></comment></comment><comment><USER18> I'm pro-taxation, but cryptocurrency with built-in state surveillance doesn't seem like a good combination.

<comment><USER19> I'm generally against state surveillance, but how else would you properly tax?

<comment><USER20> By taxing land!!!!!

<comment><USER21> This will make land ownership harder, which is a regressive measure and will further income inequality. Land and home-ownership represent significant steps towards generational wealth, because when you are paying off a mortgage you own the home while in the case of a lease you own nothing.

Literally, this you are advocating economic policy from the Ancien Régime.

<comment><USER22> It also makes it hard for existing landowners to own land, so they're more inclined to sell it, lowering the prices for everyone.

Also, even if you rent, your landlord is paying the tax, so they'll pass the cost on to you anyway.

</comment></comment></comment></comment></comment><comment><USER23> So, semver is great and all, but 0.0.x releases just look silly, in my opinion. I've never seen someone zero index the least significant column before though, which makes it look even worse.

Would people actually expect w piece of software marked as version 0.0.0 to be anything more than a placeholder?

<comment><USER24> It's funny that programmers treat zero-indexing arrays and things as normal (even "correct"), but suddenly zero-indexing versions is something wacky. What's weird to me is that 0.0.0 isn't more common in the developer world, given how frequently we start counting from 0.

<comment><USER25> I find 0.0.x versions wacky too. Version numbers (in contrast to array subscripts) are only useful in relation to previous version numbers. Ideally when a new version of the software I use comes out I can decide whether to upgrade only by comparing the version number with the one I use. E.g. in semver increased minor number means "new functionality added". So when 0.0.0 version comes out, what does it mean, compared to the absence of software? No functionality at all? :)

<comment><USER24> What does 0.0.1 mean, compared to the absence of software? You can't compare 0.0.1 to anything if there's no other previous release.

Starting at 0.0.1 is at least just as arbitrary as starting at 0.0.0, and your aversion to starting at 0.0.0 suggests you're making implicit assumptions about what the non-existent 0.0.0 means when starting at 0.0.1. But if 0.0.0 doesn't even exist then you can't really make any assumptions about it.

At least 0.0.0 is clearly the very first version of something. Starting at 0.0.1 doesn't make clear that there isn't an earlier 0.0.0.

<comment><USER23> For me, personally, 1.0.0 feels right as the first version. Compared to nothing, the first release is a major and there have been no minors.

I guess I don't really see version numbers as indexes but as cardinals, hence why leading zeroes seem weird to me.

</comment></comment></comment></comment></comment><comment><USER26> Is there any document or talk that really explains how all the crypto pieces fit together?

</comment><comment><USER27> This is cool but if you do look at where big investments are being made it's more in smart contract/block chain. Considering the extreme regulatory and DOJ pressure to expose all parties in any fiduciary transaction I'm skeptical we'll ever see an explicitly government-approved system with anonymity.

<comment><USER28> > I'm skeptical we'll ever see an explicitly government-approved system with > anonymity.

Me too but I also think that it's increasingly not possible to scale up a governance system without anonymity.

Suppose you have a list of incumbents that will pay you off to kill competition, and a list of new entities that affect those incumbents. That's a recipe for stasis and stagnation. Arguably this has already occurred in the medical arena on multiple levels.

You need a 'fog of war' to allow innovation to occur. Otherwise you're depending on the goodwill, patriotism or honesty of officials, things that could dry up when you most need them. I suppose this could also be used as an argument for limited protectionism and incubation.

</comment></comment><comment><USER29> gnu devs peomoting chrome. im surprised. I would have expected "only tested on iceweasel" .

</comment><comment><USER30> The name is rather poorly chosen, given that thousands of banks use Thaler (with an H) to handle their payments...

</comment><comment><USER31> Is there a white paper of the protocol somewhere?

</comment><comment><USER32> Selling my bitcoin now!

</comment><comment><USER33> If you consider how much money is embezzled / stolen by (most) corporations by avoiding paying taxes for all the services they benefit from, in the countries they operate in, this seems a very good feature.

<comment><USER34> Yeah, because it would be much better if none of these companies existed.

<comment><USER35> Did the parent imply that?

<comment><USER34> Yes, of course.

<comment><USER36> No, it implied it would be better for them to pay their taxes.

</comment></comment></comment></comment></comment><comment><USER37> "electronic payment system providing anonymity [...] in any existing currency"

This sounds pretty much like money laundering to me.</comment>


Hot or Not: Revealing Hidden Services by their Clock Skew [pdf] - <AUTHOR> http://www.cl.cam.ac.uk/~sjm217/papers/ccs06hotornot.pdf <comment><USER2> Tl;dr: By placing load on suspected hidden service hosts (over normal, non- anonymous IP), one can then measure the change in clock skew (as a result of higher CPU / chassis temperature from the higher load) over the anonymous channel to confirm it is the same host (by comparison with clock skew before load).

The result holds over many hops and onion layers (this is the usual "the average of random noise is zero" thing). Very cool.

<comment><USER3> If the machine has no public services running, would that attack still work? What if it's behind NAT or a hw firewall with ssh exposed only via port knocking?

<comment><USER2> It needs to be connectible over IP (and TCP, I think?) for it to talk to Tor, which is necessary for running a hidden service. You could imagine an anonymizing network where that is not necessary, I guess, by having the service connect to some other internal node over NAT. (Although then you could just Sygil attack with a bunch of nodes and wait for the target to connect to you.)

</comment></comment></comment><comment><USER4> This is a good demonstration why security and privacy are hard. Just think about it for a second: Load on the CPU affects the clock and you can measure this clock skew remotely. There are so many possible interactions in a modern computer (and even more you're unaware of) and it looks like every single one of them has to be considered a side channel.

</comment><comment><USER5> Inducing system load on a Tor hidden service, to generate heat from the CPU, to increase temperature of the quartz crystal driving the system clock, to cause system clock skew, which is remotely detectable via the TCP sequence number generated by rand(), or more directly by TCP timestamps (RFC 1323).

This lets you try to check if a given hidden service is running on a known machine, or if two hidden services are running on the same machine.

Could you skip everything in the middle, since request latency is correlated with system load? You have to load the server in either case, so both are active attacks. I think the problem is that latency is so variable due to Tor itself, it's actually faster to measure server load through clock skew than through request latency.

How would you find a candidate public server to run this attack against? "Many hidden servers are also publicly advertised Tor nodes, in order to mask hidden server traffic with other Tor traffic, so this scenario is plausible." But I think you would run your public Tor relay on a different machine behind the same firewall, since you want the absolute minimum amount of processes running on the machine actually hosting the hidden service.

(My comment on this from yesterday, but it's back on the front page as a new submission)

<comment><USER6> > Could you skip everything in the middle, since request latency is correlated > with system load? You have to load the server in either case, so both are > active attacks. I think the problem is that latency is so variable due to > Tor itself, it's actually faster to measure server load through clock skew > than through request latency.

I don't think it's only the variable latency due to Tor, but also the fact that latency is tightly enough correlated with the load and the software and hardware configuration that it can't be reliably used for fingerprinting. Clock skew, on the other hand, occurs due to various fabrication parameters not being constant; it has a random element that can be reliably used to fingerprint physical machines. To put it another way, two identical machines -- built out of identical components, running perfectly identical software, on entirely identical storage media, with exactly the same bits written in exactly the same location of the hard drive and RAM -- placed behind a NAT would be impossible, or at least much harder to discern based on latency alone, while being comparatively easier to discern by clock skew.

</comment></comment><comment> llama-made Isn't this trivially defeated by deliberately running the CPU on Tor nodes at 100% all the time, pointlessly burning cycles if there's no traffic to pass? Obviously there's a heat and power consumption consequence in doing that...

<comment><USER7> Kind of impractical. Plus if you want to scale at any one point...

<comment><USER8> Could mitigate that with the heater job running at a nice level of 19 or so. Will keep the CPU under load, but server tasks will run with only a slight degradation.

</comment></comment></comment><comment><USER9> If you liked this, you might like to take a peek at:

[http://freehaven.net/anonbib/topic.html](http://freehaven.net/anonbib/topic.html) (take special notice at the highlighted papers.)

</comment><comment><USER10> Presumably you could just add some random to the timestamps you transmit?

<comment><USER11> This means that the attack requires more data, but doesn't make it impossible. Fundamentally, adding randomness to your timestamps is adding noise to a signal. By sampling the signal repeatedly, you can average out the noise.

<comment><USER12> I'd figure simply quantizing timestamps with larger step sizes would work better. And sure, you can filter those out, but you can also make it take too long to be useful. You could also perform the attack on yourself and adjust accordingly, although this is not robust since it depends on deatils of each attack.

<comment><USER11> I think that might be worse. By polling your system and waiting for the clock to roll over, an attacker can almost immediately narrow down your clock to an accuracy equal to their polling interval.

Either way, though, more requests will defeat it one way or another. Whether you can make such an attack impractical will come down to how many requests the attacker can make versus how much noise you can tolerate in the timestamps.

</comment></comment></comment></comment><comment><USER13> Would it be practical to use some kind of external clock? This might remove CPU temperature variations from the clock at least.

<comment><USER14> Couldn't you just not allow your box to be accessed outside of the anonymous network? It's a neat trick, but how likely is it that you can trace two different services to the same server anyways?

<comment><USER15> No. Sadly, Tor doesn't work like a VPN, presenting itself as a network interface responsible for a virtual subnet you can restrict your connections to. Instead, Tor connections are plain-old IP connections from random public IPs. Which means that your hidden service needs to _accept_ connections from random public IPs--and, therefore, to be public itself. A hidden service might not have a _published_ IP address, but it must have one that you _could_ , potentially, connect to over the plain internet, in order for the proximate Tor node to it (what would be called an "exit node" if it were a plain site) to be able to talk to it.

 _In theory,_ you could hack on the Tor client so that clients and servers did an SIP negotiation prior to connecting on the desired port. You'd then run something on the host which would act like a port-knocking daemon, temporarily allowing new connections on a port only in response to a request from the Tor client, and only to the SIP peer in that message.

(Or, Tor _could_ just present itself like a network interface, giving each N-proxied-peer a virtual IP that changes whenever it regenerates its identity. "Hidden service" connections would be regular IP-to-IP communication. For "public" connections, exit nodes would need to be running SOCKS proxies, and then there could be an anycast IP address that picked a proxied-exit-node at random. Then you'd just set that as your plain-old SOCKS proxy in your browser.)

<comment><USER16> > Which means that your hidden service needs to _accept_ connections from > random public IPs--and, therefore, to be public itself. A hidden service > might not have a _published_ IP address, but it must have one that you > _could_ , potentially, connect to over the plain internet, in order for the > proximate Tor node to it (what would be called an "exit node" if it were a > plain site) to be able to talk to it.

This is not at all correct. The IP address of the hidden service is masked in exactly the same way that its clients' IP addresses are. That is, the client and service connect across the Tor network to an client-chosen onion router known as the 'rendezvous point', through which they set up a shared circuit.

See here for more detail: [https://www.torproject.org/docs/hidden- services.html.en](https://www.torproject.org/docs/hidden-services.html.en)

Or here for the technical specification of the hidden service protocol: [https://gitweb.torproject.org/torspec.git/blob/HEAD:/rend- sp...](https://gitweb.torproject.org/torspec.git/blob/HEAD:/rend-spec.txt)

<comment><USER15> Er. To interpret what I said the way you did, is to assume I was saying "Tor does nothing, and clients connect directly to servers", which is kind of... silly, to say the least.

The point I was making was that _the proximate node to the hidden service_ \--the last one in the onion-routing chain--connects to its destination by using _its_ public IP to talk to _the hidden service 's_ public IP. From the perspective of the hidden service, the node proximate to it in the onion- routing chain is a regular Internet peer, which is impossible to distinguish from any other regular Internet peer.

In the end, what Tor gives you is a proxy (to a proxy, to a proxy.) And, from the server's perspective, there's no difference between a proxy and a regular client. It can't tell, by the IP, that the client it's speaking to is a proxy. And _because of that_ , you cannot, at the server-level, block non-proxied clients from speaking to you. Because you don't know which those are.

<comment><USER16> It's not a proxy in the way you are describing. The node (onion router) most proximal to the hidden service is always connected to by the hidden service, not the other way around.

Thus it is absolutely fine to firewall off all inbound connections on the host running the hidden service, as it will only be making outbound connections - and even those are to a limited set of IP addresses as defined by the guard nodes it has chosen for entry into the Tor network.

</comment></comment></comment></comment></comment></comment><comment><USER17> What about a hosted service. eg Amazon Web. Would that be vulnerable to this?

<comment><USER18> It's not hidden. The whole idea is that you expose the hidden service's location by doing this, if the location of the service is known there is no point.

So vulnerable implies that there is something to be gained.

</comment></comment><comment><USER19> What if I don't transmit timestamps?

<comment><USER5> The TCP sequence number generated by rand() can leak your system clock.

<comment><USER19> That's what I was wondering ty

</comment></comment></comment><comment><USER20> \- Most services are IO bound, not CPU bound, so pegging the CPU to max might prove a non-trivial task.

\- Well designed services don't overload until they're maxing out on either CPU or any other resources, they just serve up to some capacity (say 80%) and then start flat out refusing request with response semantics like "come back later".

\- Timestamp sources are typically not from clocks originating inside the CPU.

<comment><USER18> You won't need to peg the CPU, you only need to get it to warm up a little bit, enough to create a skew that can be detected. Worst case that means that you need to wait longer but it will still work.

The crystal can be on the motherboard, it does not really matter, as long as the total heat inside the case is large enough to create a skew that can be measured the attack will work.

<comment><USER20> If you warm it a little bit I think the problem becomes your skew becomes lost in the noise of the other people accessing. It's tempting to think that other people accessing is "perfectly uniform noise" but that's not the type of patterns people see in real web services. They get hit in waves most of the time.

If a service gets hit by a wave while you're measuring some suspect server, here's your false positive right there.

Nice paper but somehow I think this tactic would neither work out well in practice, nor work in court as a proof.

<comment><USER18> All that means is that you need to sample over a longer period.

And it does not have to work 'in court as a proof' to be practically viable attack, and they are _well_ beyond theory:

"Implementing this is non-trivial as QoS must not only be guaranteed by the host (e.g. CPU resources), but by its network too. Also, the impact on performance would likely be substantial, as many connections will spend much of their time idle. Whereas currently the idle time would be given to other streams, now the host carrying such a stream cannot reallocate any resources, thus opening a DoS vulnerability. However, there may be some suitable compromise, for example dynamic limits which change sufficiently slowly that they leak little information. Even if such a defence were in place, our temperature attacks would still be effective. While changes in one network connection will not affect any other connections, clock skew is altered. This is because the CPU will remain idle during the slot allocated to a connection without pending data. Unless steps are taken to defend against our attacks, the reduced CPU load will lower temperature and hence affect clock skew. To stabilise temperature, computers could be modified to use expensive oven controlled crystal oscillators (OCXO), or always run at maximum CPU load. External access to timing information could be restricted or jittered, but unless all incoming connections were blocked, extensive changes would be required to hide low level information such as packet emission triggered by timer interrupts.

 _While the above experiments were on Tor_ , we stress that our techniques apply to any system that hides load through maintaining QoS guarantees. Also, there is no need for the anonymity service to be the cause of the load."</comment></comment></comment></comment>


Reading DNA and Count Bases in Raku – Suman Khanal - <AUTHOR> https://sumankhanal.netlify.app/post/raku/count_dna/ <comment><USER2> I wrote bioinformatics software a long time ago. Meaning that I remember reading the bioperl code back to read FASTA files around Y2K.

Their technique is still in use, at [https://github.com/bioperl/bioperl- live/blob/master/lib/Bio/...](https://github.com/bioperl/bioperl- live/blob/master/lib/Bio/SeqIO/fasta.pm) . The key point is they set the input record separator, like this:

        local $/ = "\n>";

This gets Perl to read each FASTA record as a single block, which they then post-process into title and sequence.

Raku has a per-filehandle version, according to [https://docs.raku.org/language/5to6-perlvar](https://docs.raku.org/language/5to6-perlvar)

In principle, since it does more work closer to the machine, it should be faster. I haven't tested it.</comment>


Making Sense of Nonsense Inscriptions on Ancient Greek Vases (2012) [pdf] - <AUTHOR> https://www.princeton.edu/~pswpc/pdfs/mayor/071202.pdf

<comment><USER2> Looks like it improves things both ways,[http://app.rdmag.com/news/2014/09/nanotechnology-leads- bette...](http://app.rdmag.com/news/2014/09/nanotechnology-leads-better- cheaper-leds-phones-and-lighting)

Hope we see it in production for both uses!</comment>


Tether Says Stablecoin Is Only Backed 74% by Cash, Securities - <AUTHOR> https://www.bloomberg.com/news/articles/2019-04-30/tether-says-stablecoin-is-only-backed-74-by-cash-securities <comment><USER3> It's crazy that they messed this up, Tether is basically a money printing machine, all they had to do was be solvent.

Let me start by saying I don't hold Tether nor have I ever, nor do I think it's a good idea.

Tether is a fundamentally a risk free money making concept, it works just like gift certificates. The only thing Tether has to do is buy back Tether at any price lower than they sold it for and they make profit.

And being able to buy Tether at a lower price is a fundamental market property because of knowledge imbalance. They literally can not fail at making money, the only thing they had to do was not lose their liquidity.

They print free money without it even being a scam, even better they are providing a public service, and still they messed it up...

<comment><USER4> If Tether worked as it was advertised there would be no profit opportunity. The purported reason Tether exists is to help the crypto markets deal with the liquidity problems because of how difficult Fiat banking is, essentially Tethers value proposition was "we (by some miracle) have reliable banking, we can buy and sell 1 Tether for 1 USD at any time regardless of other crypto currencies value". In reality Tether is a shit-show because it doesn't provide reliable banking (even before considering the fact that it isn't even solvent) and that's why the value of Tether offers any arbitrage opportunities.

If we were in a fantasy land where Tether wasn't fraudulent then the price variance of Tether on exchanges would be so minuscule that there would be no arbitrage opportunity for anyone to take advantage of. Your hypothetical profit opportunity only exists because Tether is (ultimately) fraudulent.

Remember that Tether was pitched as a 1:1 USD backed cryptocurrency that could be exchanged 1:1 at any time (in both directions). The mess that it is now (only liquid on exchanges at a variable rate) is not what Tether was marketed as.

Tether (as promised) is the equivalent of you accepting $100 USD from your friend and giving them $100 of Monopoly money and promising them that at any time they can trade their monopoly dollars for your real dollars... and you won't ever use the USD for anything, it'll be locked away untouchable by you. How do you profit from that? You can't lend it, you can't invest it, you can't use it as collateral, it has to be unencumbered at all times and you have to incur the costs of managing it.

Read the original whitepaper and try and identify a profit opportunity. This is all before considering that Tether is a fundamentally flawed concept: if Tether could operate a reliable banking relationship, so could others, and Tether would be pointless.

<comment><USER5> You can invest the money, the same as banks do. It's why they don't charge you to store money with them, especially if your balance is high.

You only need and should keep enough liquid cash needed to handle day to day withdrawals. Everything else is fair game up invest.

See: [https://en.m.wikipedia.org/wiki/Fractional- reserve_banking](https://en.m.wikipedia.org/wiki/Fractional-reserve_banking)

[https://en.m.wikipedia.org/wiki/Bank_run](https://en.m.wikipedia.org/wiki/Bank_run)

<comment><USER4> I'm talking about the specific promises made by Tether. The question is not about whether or not fractional reserve banking exists, the question is how can Tether engage in fractional reserve banking (or any profit making activity) without being fraudulent when they explicitly claimed to hold 100% of their USD in cash reserves at all times?

"[...] each tetherUSD in circulation represents one US dollar held in our reserves (i.e. a onetoone ratio) which means the system is fully reserved when the sum of all tethers in existence (at any point in time) is exactly equal to the balance of USD held in our reserve."

<comment><USER5> For the record, I think all this crypto currency stuff is plain dumb, and that tether is likely a fraud.

That said they don't state anything about what their reserve is. Wealthfront has a 2.3% savings account for us normal people. If I created a stable coin like tether is and had a billion dollars of investment; I could make 23 million dollars a year and tell people that I have a 1:1 backing without lying.

If I went to a bank with a billion dollars I could likely negotiate an even higher rate for such a savings account.

<comment><USER6> > If I went to a bank with a billion dollars I could likely negotiate an even > higher rate for such a savings account.

I don't think that's how it works. As others have mentioned, FDIC insurance only covers 250k per depositor per bank. Typically when entities have that amount of cash (think Apple, Google, etc.), they put them into US government bonds, which are effectively equivalent to deposit accounts.

Edit: this is an interesting point, though. Ignoring the insurance issue, what would a bank do if you asked to open a deposit account with a billion dollars (paying, say 2%/year)? My uninformed layman's speculation would be that they would reject you because they wouldn't know what to do with that much money: they have to somehow lend out enough of it to at least break even on the 20 million/year that they're paying you for interest, but at the same time they have to be able to give you back your 1 billion at any time you ask for it.

<comment><USER5> I think they would totally take it, with all sorts of special terms. Also, they don't need to have a requirement to say they will get you all that cash immediately to keep the tether promise.

Lastly, putting that money in bonds, index funds, and other such things scales well. The wealthfront example I used took on a billion in deposits in a short timeframe: [https://www.cnbc.com/2019/04/23/wealthfronts-new-high- yield-...](https://www.cnbc.com/2019/04/23/wealthfronts-new-high-yield- accounts-bring-in-1-billion-in-just-a-few-months.html)

To your first point, if you have another entity do that type of investments for you and present it as a bank account with a variable interest rate; then you can claim you have a 1:1 cash backing truthfully, even if the reality is different. If you just stored the money in a normal bank, the reality would stay the same.

<comment><USER7> It's also a thousand million dollars. That's between 500 and 1000 mortgages in SF or NY. Any direct lender would love that opportunity; they'll charge 4-5% on a 30-yr fixed and give you half.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> Bitfinex money was on an account of a small Polish bank. It was confiscated by a US government when they chased Colombian drug cartels earlier in 2018. There was no proper segregation of client funds by their payment processor Crypto Capital Corp. Looks like Tether was collateral damage.

Polish source: [https://zaufanatrzeciastrona.pl/post/gielda-bitfinex- zgubila...](https://zaufanatrzeciastrona.pl/post/gielda-bitfinex- zgubila-851-mln-usd-a-podwykonawca-wine-zwala-na-polski-rzad/) (please use Google translator)

<comment><USER9> What would happen if the US Government stepped in and took over Tether? Would it be feasible for a different foreign government to do so?

<comment><USER10> They would almost certainly not have the jurisdiction. They're a BVI Corp (a jurisdiction that tends to look the other way at corporate fraud) and I believe operate out of Hong Kong. Lately it seems the Chinese government practically _encourages_ companies to commit securities fraud in the US so I can't imagine they'd be much help either.

I suspect the likely outcome (eventually.. and if Bitfinex doesnt fold first) is the US government seizing their domain to prevent them from continuing to commit fraud.

Edit: missed a word

<comment><USER11> > Lately it seems the Chinese government practically encourages companies to > commit securities fraud in the US so I can't imagine they'd be much help > either.

The China Hustle is a good movie if anyone wants to see how these schemes work.

</comment></comment></comment></comment><comment><USER12> Everyone talking about how tether should have profited from either investing the cash, or buying and selling tethers at slightly different rates is missing the point.

The original value propitiation of tether was... "A one to one, 100% reserved USD backed cryptocurrency that you can buy/sell any time directly from them"

They originally promised a website where you could buy/sell tethers directly for 1 USD. This is different from all the other stable type coins that achieve their pegs using various chain and exchange strategies. Tethers proposition was to maintain it's peg to USD by literally holding the cash and being the primary point of purchase/sale. Not investing it. Not operating fractional reserve. And not buying/selling with a spread. Every profit making strategy goes against their original proposition.

The reason this was the proposition was to supposedly make it easier for crypto traders. At the time everyone was having problems cashing out their cryoto. Tether was basically promising that they could fix the USD exchange problem by holding all the cash and not being an exchange.

Now they never actually delivered any of that. The website never reliably appeared and now tethers are traded on an exchange like any other crypto coin. And I suspect they did actually make a stack of profit by printing tether and selling them on exchanges. But that makes it a scam because they weren't following their own rules that they laid down at the start.

<comment><USER13> > Now they never actually delivered any of that.

Yes they did, they delivered exactly this for years, ever since US banks shut them down. A whole ecosystem was built on top of this which to this day seems to run smooth (poloniex, bittrex, binance).

> And I suspect they did actually make a stack of profit by printing tether > and selling them on exchanges. But that makes it a scam because they weren't > following their own rules that they laid down at the start.

The only thing that has come to light after numerous of subpoenas and investigations is the Crypto Capital mess. Your claim is very much unsubstantiated. Yes, Bitfinex&Tether did some things against their original promises, but clearly to keep the system running. And clearly with the intention to resolve everything once they got their money from CC back (I'm not saying that was ever going to work).

<comment><USER12> No, they didn't. Their original proposition was that you could buy and sell tether from them at exactly 1 USD.

What happened was that website for doing that was only ever available for very short periods and instead tether was traded on exchanges. Poloniex/bitfinex etc are exchanges, not the promised single source of tether. Exchange trading with a market set price and a bid/offer spread is not the same as a direct purchase website from the creator. It means the price moves. The original promise was for a fixed price set buy the sole supplier.

<comment><USER13> > Their original proposition was that you could buy and sell tether from them > at exactly 1 USD.

That depends on who "you" is, as far as I know this was possible for retail until a few years back. But I wouldn't say it was "promised" at all (or are you referring to the whietpaper?). It's still possible for trading firms right this very moment. Active OTC markets for tether right now as well.

Note that even though it's possible for some to redeem a Tethers 1:1, that doesn't mean the price is always exactly worth 1 USD. Just like how USD stored in Coinbase is not worth exactly the same as USD stored in Bitstamp. Of course you can transfer them between each other, but that takes days - after which certain price spreads caused by temporary offer/demand discrepancies have ceased to exist.

Also, thanks for the downvote!

<comment><USER12> (BTW, not me doing the downvoting)

I don't think that only allowing the purchase of tether to retail really meets their original plan.

The whole point was meant to be that anyone could take their coins and go to tether and get exactly 1 USD for each one. It was designed to solve the problems people were having cashing out from exchanges. The idea was that you sold your bitcoin on poleniex or wherever for USDT the then took that to the tether website and got your USD. Safe in the knowledge that your USDT would be exchanged exactly 1-1, with no bid/offer spread or moving price. The reason this was needed was because most exchanges were really struggling to get their banks to allow the USD processing.

In reality, you could never really do that. And now exchanges have been able to get the USD payments working, so the USDT<->USD exchange market has picked up the slack and now serves the purpose that the tether website never realised. Although it's now not quite 1-1, there is a market and a spread and prices move.

As others have mentioned, the likely reason they never have is that they would hit exactly the same challenge all the exchanges did with their bank and the KYC rules.

<comment><USER13> I think we're kind of on the same line.

> It was designed to solve the problems people were having cashing out from > exchanges.

Tether technically predates the legal trouble between Wells Fargo and Bitfinex, but imo Tether as we know it got to it's current size specifically to allow American residents to get their non crypto money out of Bitfinex after no American bank wanted to work with Bitfinex.

> The idea was that you sold your bitcoin on poleniex or wherever for USDT the > then took that to the tether website and got your USD. Safe in the knowledge > that your USDT would be exchanged exactly 1-1, with no bid/offer spread or > moving price.

Whose idea was this? Most big exchanges that trade tether don't support any fiat. Only recently most added support for competing stablecoins and Binance is playing with fiat. But it was never the idea from the beginning.

> In reality, you could never really do that.

I really don't agree that the plan was all along that everyone could do that. Tether would simply face exactly the same problems as Bitfinex. Instead Tether allows you to trade on many different exchanges and big traders can directly convert tether into dollar. But definitely not everyone, in the beginning retailers could create a tether account but that's about it.

> As others have mentioned, the likely reason they never have is that they > would hit exactly the same challenge all the exchanges did with their bank > and the KYC rules.

Yes exactly, as such it was never (or since the Wells Fargo suit) supposed to work like this. I'm not sure why you think this was the plan or design?

\----

To sum up:

\- We both agree it's hard for every day traders to convert tether into USD. They have to use public crypto markets to achieve this. Though I don't agree this is against any design or plan (ever since Wells Fargo anyway).

\- This has worked fine for years since the biggest traders are able to convert tether into USD (and the other way around). The second they can't you'll see price divergence (a lot bigger than what we see right now - <USER2> firms will be trading out of millions in tether exposure).

\- The risks of Tether are well documented, most retail is aware of the danger.

</comment></comment></comment></comment></comment></comment><comment><USER14> Honestly, 74% is a much higher number than I was expecting.

<comment><USER15> Conveniently enough, it works out that they're about $740 million short of their obligations. That's _a lot_ of money.

<comment><USER16> Maybe Deutsche Bank will step up and loan them some money since clearly nothing shady is going on.

</comment></comment></comment><comment><USER17> Yet the Tether price of BTC is only 6% below the USD price:

[http://www.untether.space/](http://www.untether.space/)

<comment><USER18> Question -- why does this matter to me? As long as the market agrees to trade it for around 1.00 USD, +/\- a few %, which seems to generally be happening, it shouldn't matter to me whether it's backed or not. It's just an abstract notion that the market has agreed to trade at a certain price.

(It's not like I would hold onto USDT for a long time anyway -- it's only there to facilitate short-term needs. If I wanted to hold USD I'd just change it for USD and hold that instead.)

<comment><USER19> Because if there is a "run on the bank", someone will end up short. Either the first people out will get 100% of their money and last 26% will get zero, or everyone will get 74% of their money.

This very fact will actually cause a run on the bank in any sort of crisis. You don't need to actually believe that tether is a complete sham and has no money to decide to withdraw. You just need to worry that 74% of people might get worried. Because if they all withdraw, you will get none of your money.

The point of FDIC insurance (aka lender of last resort) is that when you hear that Wells Fargo is in trouble you don't worry about your checking account going to zero. This used to happen quite a bit as late as during the great depression in the early 1930s. Being 100% backed by liquid assets was supposed to serve that function, it's not a nice to have, it's the whole point.

<comment><USER20> "Because if there is a "run on the bank", someone will end up short. Either the first people out will get 100% of their money and last 26% will get zero, or everyone will get 74% of their money."

I'm not clear on whether they have discovered fractional reserve banking or whether they are insolvent. There's a big difference. If they are insolvent, I'd tend to assume tethers not trading at a discount just means people are idiots. But if not, not.

<comment><USER21> I think the difference is that in the end a Bank is backed and regulated by the US Government.

Tether is not. So it is solvent or insolvent.

<comment><USER22> Do you think the US government could cover every single cent if all the depositors wanted their money out now?

Not even physical cash, just a transfer to an overseas account. The money simply isn't there and the scales are enormous. US banks only can pay back 3-10% of cash deposits. The FDIC only has enough to cover a tiny proportion of bank liabilities.

It seems very disingenuous for people in this thread to say "well if everyone cashed out tethers" and then handwave away the alternative of "well if everyone cashed out USD". These scenarios playing out would have Tether actually being able to pay a reasonable percentage of creditors.

<comment><USER23> The USA gov can just print the money to pay off the backed cash. Everyone gets their money. It may not be worth much if everyone actually demanded they could hold the dollar amount of their accounts in their hands in paper money - indeed, I imagine, you'd cause severe privations on the government funds in order to produce the money.

<comment><USER20> "It may not be worth much if everyone actually demanded they could hold the dollar amount of their accounts in their hands in paper money"

If literally nobody (hypothetically) is willing to own actual land, factories, and so on, then it's the tangible assets that are worthless, not the money. It would be the ultimate in deflation.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER24> This is going to sound absurd, why is the cryptocurrency market not reacting negatively? In fact prices are green and well [https://www.coingecko.com/en](https://www.coingecko.com/en)

Market is uninformed and do not know better...

<comment><USER25> There is some premium on the BTCUSDT pair, compared to BTC/USD pair. You can still, for a relatively small premium buy BTC with your USDT and change them back to fiat USD. And it seems that plenty of traders are ready to accept that premium and accept the risk of holding tether. This effectively solves any liquidity issues that Tether might have. And as other have noticed, 74% coverage is a lot more than many were fearing, particularly compared to other Tether news of the last 12 months. Also, this 74% would imply that if Tether had access to those 850 millions that went missing (leaving out the issue of wether Tether may or may not be responsible for the missing), then the coverage would be full and had been full during the peak of the crypto bull- run in 2017 (which was speculated to be supported by printing tether without any fiat backing).

<comment><USER26> Remember it's simply Bitfinex saying they have 74% reserves, just like they used to say they had 100% reserves. There has still never been an audit. Nobody has seen their books. They don't recognize the jurisdiction of the NY AG.

Bitfinex is the only one who can give a number, and a company in that position usually places themselves in the most generous light, and they still only claimed 74%.

<comment><USER25> They claimed this 74% in filings to the NY Supreme Court, so, while I agree it is not as strong as an auditors' report, it is also a bit stronger than a PR release or a Twitter burst.

<comment><USER27> _the NY Supreme Court_

Before you get too excited about that phrase, the courts in New York State have funny names. The words "Supreme Court" have a much different meaning than they do in any other state.

[https://en.wikipedia.org/wiki/New_York_Supreme_Court](https://en.wikipedia.org/wiki/New_York_Supreme_Court)

</comment></comment></comment></comment></comment><comment><USER28> "Short term securities". Personal IOUs from the 3 guys who run Bitfinex?

<comment><USER29> No. The short term securities would be things like treasuries. The loan to Bitfinex represents the 26% shortfall in the reserves.

<comment> village-idiot Normally it would, if the guys behind Tether were trustworthy

<comment><USER29> It does whether or not they're trustworthy. You may think the loan will not get repaid...but it's in their interest to repay it. They're making plenty of money at Bitfinex. The idea that they're going to run some elaborate ponzi scheme to steal money, when they're making several hundred thousand dollars per day in fees is kind of silly.

<comment><USER15> Their account is over _$700 million_ short right now.. Several hundred thousand per day isn't exactly going to move that dial.

<comment><USER29> It's a loan. The way loans work is that you make payments on them over time. $300,000/day generates ~100mm/year in revenue. That's enough to repay the loan in 7 years. However, the loan is actually for $625 million, so a bit shorter than that. But you get the point.

<comment> village-idiot 7 years wouldn't exactly be a short term security, and a bespoke loan from one guy to himself isn't something easily sold enough to be called "cash like".

<comment><USER29> > 7 years wouldn't exactly be a short term security

Nobody said that it was. They have 74% of the reserves in cash and short term securities. The _other_ 26% is this loan. That is, it is not a short term security.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER29> Once again, people here are ranting about Tether, while the market price is re-converging to parity. I wonder who's right, the people yelling in the comments section, or the people with skin in the game? What's been established here is that Tether is 74% collateralized by cash and short term securities. The other 26% is in the form of a loan to Bitfinex. Bitfinex is a cash- generation machine, and should not have any trouble making payments on that loan. Your local bank has a much, much lower reserve ratio than this.

<comment><USER30> > while the market price is re-converging to parity

Given the "market price" of most crypto is based in USDT not USD it kinda makes you wonder how legit any of the "market price" figures really are? Plus given there is absolutely no auditing for any of the exchanges in the market, for all you know "market price" could be determined by nothing more that scripts that just SQL INSERT fake transactions in their database (assuming they are using SQL.... which given this is crypto is suspect.... I wouldn't be surprised to learn many of these people are using things like mongo to handle their financial transactions)

> Your local bank has a much, much lower reserve ratio than this.

My local bank is also audited and heavily regulated. I sleep every night without ever worrying that my bank is suddenly going to lose all my money.

Also, given that bitcoin's ethos is all about being anti-fed and "no printing money" it is rather funny to hear somebody defend tether being anything less than 100% backed by some "real" asset.

<comment><USER31> "My local bank is also audited and heavily regulated. I sleep every night without ever worrying that my bank is suddenly going to lose all my money."

2008.... those "heavy regulations" and "audits" meant nothing.

<comment><USER32> How many deposit accounts evaporated in 2008?

<comment><USER33> I don't know the right number but I do know of at least 2 acquaintances who lost all their families life savings. The legal process to get the money back is actually still ongoing but during that time we changed our national currency to euros and those life savings are worth about 10% of what they were back then.

Thing is, with crypto you invest (usually) what you can afford to lose and you accept the risk. With banks most people think it's safe and risk-free so then the impact of losing it all is so much harder, it ruins lives.

<comment> village-idiot You're describing a different process.

People lost their life savings because they purchased assets that went down, or they lost their jobs in the general economic downturn. Nobody lost their life savings because their bank suffered a run and their deposits were lost.

To extend the metaphor, this is the difference in getting wiped out in the 2017-2018 crypto crash, and getting wiped out by Mt. Gox.

<comment><USER33> Im not describing a different process, they had their money in a savings account on a bank that went under, they have been liquidating it's assets since the 2008 crisis to repay people and it's still not done.

<comment> village-idiot Which bank?

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER34> I looked into tethers withdrawal process, and the barriers to withdrawal are high enough that a run on tether is quite unlikely.

It really only makes sense if you hold over a million tether, and even then you'd probably be better off selling on a USD exchange and converting for withdrawal there.

It's a nice racket they have there.

<comment><USER35> I was surprised to see the site let's you create an account now... for the longest time you couldn't and the only way to buy / sell tether was second hand on exchanges for as long as I could remember.

That said, either tether.to account creation seemingly functional, I wonder how difficult they have made the process?

</comment></comment><comment><USER36> There are licensed and regulated stable coins on the rise ( like USDC, PAX ), that will play by all the rules, have better protections, be audit-able and have the ability to be revoked in cases of crime.

In a free market there is also a place for a non-US company to offer a product like Tether. Why this is at all the business of the AG of NY is the real question here. Who benefits from these AG actions?

<comment><USER37> > _" Why this is at all the business of the AG of NY is the real question > here."_

Because investors based in New York are being swindled by Bitfinex/Tether?

From the AG's site:

"In November 2018, the Attorney General issued subpoenas to Bitfinex and Tether, which are owned and operated by the same small group of individuals, and claim not to do business in New York. As alleged in court papers filed by the Attorney General's office, the Bitfinex trading platform allows New Yorkers to purchase and trade virtual currencies, including the so-called "tether" stablecoin, a virtual currency the companies long claimed was "backed 1-to-1" by U.S. dollars held in cash reserve." [https://ag.ny.gov/press- release/attorney-general-james-annou...](https://ag.ny.gov/press- release/attorney-general-james-announces-court-order-against-crypto-currency- company-under)

You can't escape financial regulations by claiming that you don't do business in jurisdiction X while simultaneously taking investment money from people in that jurisdiction.

</comment></comment><comment><USER38> "A Tether USD is backed by 74 cents" is a fun quote seen on twitter

</comment><comment> village-idiot It's highly unlikely that those undefined securities will be something easily liquidated to cover costs. This is the company that "loaned" 900m to Bitfinex, a company run by the same personnel as Tether.

</comment><comment><USER39> Surprised Tether is willing to open it's mouth on this subject.

Glass houses...stones...

<comment><USER40> They have to. They're under investigation by the New York State Attorney General.[1] That sort of thing usually doesn't end well.

[1] [https://ag.ny.gov/press-release/attorney-general-james- annou...](https://ag.ny.gov/press-release/attorney-general-james-announces- court-order-against-crypto-currency-company-under)

<comment><USER41> They don't have to. The NYS AG doesn't have standing.

<comment><USER42> You'd be surprised how far the power of the NYAG goes... Crypto Capital LTD. is registered in Panama and legally they have no a rather poor political/diplomatic relationship but you never know what goes on behind the scenes.

I believe the NYAG wants Crypto Capital LTD, not bitfinex/tether per se.

</comment></comment></comment></comment><comment><USER43> I was expecting something more like 1%.

</comment><comment><USER35> And yet it's still 1:1 on coin market cap and everyone is all "what me worry?"

<comment><USER44> More surprisingly the market cap on coinmarketcap is at $2850m, up from $2845m a week or so ago when the news hit. You'd imagine at least some people would be cashing in Tethers for other assets (BTC, USD) and so the number of Tethers out there would drop. It shows daily trading volume of $12,308,023,802 USD yet the market cap doesn't budge significantly. Something seems not to add up.

By the way I just tried selling 1000 tether short on Kraken. Dunno if anyone else is trying to trade this thing?

<comment> village-idiot Tether is basically a one way ratchet to keep money in the crypto system. You can trade Tether for USD on various exchanges but actually selling Tether back to Tether itself, which would reduce the market cap, is restricted heavily. The result is that if you trade Tether to someone else on Kraken for USD or BTC, the Tether market cap remains unchanged, which I suspect was the point.

<comment><USER44> Maybe though I figure they must be buying back to keep the price above 99c. My hypothesis is they are burning through the cash but not showing it as if they showed the cash going 2bn, 1.5bn... there'd be a bank run of people trying to get out before it was gone.

<comment> village-idiot I'm not really sure how Tether is maintaining their $1 peg on the open exchanges, it seems to me that they shouldn't be. But explaining why the market cap hasn't gone down is very easy, it's very hard to actually destroy Tether.

</comment></comment></comment></comment></comment><comment><USER45> Weird so many negative comments, this is astronomically better than what banks have in reserve. [https://www.google.com/search?q=how+much+cash+must+a+bank+ha...](https://www.google.com/search?q=how+much+cash+must+a+bank+have+on+hand&oq=how+much+cash+must+&aqs=chrome.0.0j69i57j0.7864j0j7&sourceid=chrome&ie=UTF-8)

<comment> village-idiot You're stretching the definition of reserve too far.

Banks are fractionally _liquid_ , but they're actually fully backed by non- cash assets, such as mortgages, business loans, and bonds. The reserve requirements and risk levels are tightly regulated and they pay insurance (FDIC) to protect against the risk of sudden withdrawal demands or market downturns. In practice this has been working for a very long time, with runs on banks and FDIC involvement being quite rare.

Tether is only 74% backed "by cash and cash-like securities", which means that they are _insolvent_ , with their assets column being worth less than their debits column. This is massively worse than any consumer bank; a bank might not be able to cover all their liabilities at once, but Tether can't meet all their liabilities _at all_.

<comment><USER45> Uh, I think you are the one now stretching. Tether can meet 74% of their liabilities all at once. Where a bank can only meet 3% or 10% of their liabilities all at once. Tether is way more liquid than a bank.

<comment> village-idiot Liquid and solvent are different things.

Tether is more liquid, if you trust that the 74% are actually in "cash equivalent securities" and not loaned to themselves (again), but they're absolutely insolvent.

</comment></comment></comment></comment><comment><USER46> I am sure the "and securities" is rock solid.

Just kidding! Suckers.

<comment><USER47> Keep in mind that for the longest time there have been strong doubts about Tether being backed by any significant amount of money whatsoever. Yet the price hovered around 1$. The risk of default for holding a Tether was priced at less than a cent.

</comment></comment><comment><USER48> Stableishcoin!

<comment><USER49> Stablecoin? I can think of at least 2 things wrong with that name!

<comment><USER50> Stableishcoinish?

</comment></comment></comment><comment><USER51> "Water is wet"

</comment><comment><USER52> So are all of the banks in the world? It's called fractional reserve.

Don't like to defend tether in these posts, there's clearly shady shit going on, but it's been FUD'ed against for years now and yet USDT has kept within few percent of USD. I still don't buy the argument that bitfinex is printing money to prop up BTC.

<comment><USER53> Right but I think the obvious point is that if you Google Tether you get

"Every tether is always 100% backed by our reserves, which include traditional currency and cash equivalents and, from time to time, may include other assets ..."

The entire selling point is that they aren't a fractional reserve bank.

</comment></comment><comment><USER54> My bank only needs to keep 10% of its deposits backed by cash, securities. [0]

[0] [https://en.wikipedia.org/wiki/Reserve_requirement#United_Sta...](https://en.wikipedia.org/wiki/Reserve_requirement#United_States)

<comment><USER55> You are misunderstanding fractional reserve banking. Fractional reserve banking means that the bank only has to keep enough cash on hand to meet their expected reasonable obligations.

Banks still need their books to balance. That means that their liabilities can not exceed their assets. A bank can be solvent on paper but if there was a rush to withdraw by their customers, they may not be able to pay cash for all withdrawals because that cash would be tied up in loans.

In the Tether case it isn't that they loaned out the money they took in, rather their liabilities exceed their assets. Thus Tether is bankrupt on paper. And if everyone tried to withdraw their assets, they would also not be able to pay everyone back.

Thus banks may be illiquid with a balance sheet that ultimately balances (e.g. not bankrupt), but tether is both bankrupt and likely also illiquid because of the 850M loan fiasco.

I swear tether is like Wiley Coyote who has run off a cliff but hasn't yet looked down. I question my sanity a little bit because I do not understand why tether isn't completely disreputable at this point, I must be missing something.

<comment><USER52> > they may not be able to pay cash for all withdrawals because that cash would > be tied up in loans

How is that "assets"? Loan can be defaulted on and where bank has $X in the books it's actually $0.

The non-bankrupt case for tether looks like this: people realize tether isn't worth $1, but they still need to get rid of it and so they sell for $.74c, that's the risk they took buying tether in the first place.

<comment><USER55> The idea is fractional reserve banking is that the loans are at least good enough in aggregate in normal course to cover its liabilities. Of course there are black swan events ([https://www.investopedia.com/terms/b/blackswan.asp](https://www.investopedia.com/terms/b/blackswan.asp)) that are so far out of expected that banks fail anyways, or the banks are incompetent and make things like sub-prime mortgages ([https://en.wikipedia.org/wiki/Subprime_mortgage_crisis](https://en.wikipedia.org/wiki/Subprime_mortgage_crisis)) that tend to fail all at a once.

<comment><USER52> Yes, I understand that, I just don't see this bitfinex situation much different from what is generally accepted as normal in banking sector.</comment></comment></comment></comment></comment>


Ask HN: Would it be easier to make Ipv4 A.B.C.D.E vs. implimenting Ipv6? - <AUTHOR> Not the most ideal solution I'm sure, but given the familiarity in a sense of going from python2 to python3, where tools could be written, such as 2to3 in python, would the adoption rate increase? <comment><USER2> No. All the migration tools in the world aren't worth anything in a world where zillions of devices assume IP addresses are 32-bit and don't ship with source code and/or can't be upgraded in the field (e.g. because there's custom hardware implementing some of the protocol)

Also, if such a tool were possible, a tool 32to128 could be written, too.

Given that an incompatible update was necessary, there's little difference in complexity between going for 40 bit addresses and going for 128 bit addresses.

<comment><USER3> IPv6 involves more than 128 bit addresses though. It would have been possible to create IPv4 but with longer addresses, even if that would have been a wasted opportunity for improvement and would have presented new scaling issues.

</comment></comment><comment><USER4> This is not as trivial as it sounds. One of the main drivers for using a 32 bit internet address is word length of registers. Back in those days, 32-bit word lengths were pretty common and in a language like C (which is what is used for OS development), a 32-bit integer could easily be fit in a register in most machines.

While higher-level languages might use multi field values, perhaps even arrays of integers, most low-level code, including millions of kernel code still uses integers to store IPv4 addresses. Adding an extra octet to this would make it go bonkers.

We do have conversion from IPv4 to IPv6. All IPv4 addresses can be represented in the lower bytes of an IPv6 address.

That said, the main issue with the adoption is the inherent inertia is upgrading devices. These are physical devices and large corps and businesses don't tend to allocate sufficient budget to replace and update these things to their IT dept. unless there's a pressing business need.

</comment><comment><USER5> I have some doubts A.B.C.D.E would be the best ipv4 (semi) backwards compatible solution but the IP space problem could have definitely been "fixed" easier if that's the only problem you want to fix.

Maybe a better question would be what is the most backwards compatible way to fix the IP space problem with ipv4?

<comment><USER6> > Maybe a better question would be what is the most backwards compatible way > to fix the IP space problem with ipv4?

It's political rather than technical: de-allocate the various Class B (/16) ranges that were distributed like candies in the past and that aren't actually used or are used only to a minuscule extent.

Routing will still be problematic though.

</comment></comment><comment><USER7> IPv6 has a slight head start, the 128-bit address format and notation were decided in 1994-1995.</comment>


SIMD Made Easy with Intel Implicit SPMD Program Compiler - <AUTHOR> https://software.intel.com/en-us/articles/simd-made-easy-with-intel-ispc <comment><USER2> The hand-coded AVX2 procedure is far from optimal form, they waste time on horizontal addition in each iteration.

The First Rule of SIMD-ization says: keep all the intermediate results in vector(s), do horizontal reduction at the end.

Conversion from comparison result into vector of integers can be done a bit simpler: just one bit-and is needed and then cast to __m256i (casting doesn't emit any code as SIMD registers are untyped).

</comment><comment><AUTHOR> If someone is seeking more insight into it, follow this link:

[https://www.slideshare.net/IntelSoftware/simple-single- instr...](https://www.slideshare.net/IntelSoftware/simple-single-instruction- multiple-data-simd-with-the-intel-implicit-spmd-program-compiler-intel-ispc)

</comment><comment> Const-me > if you want to target multiple ISAs, you need to write multiple algorithms

In my experience, these algorithms are similar to each other. More often than not don't require too much extra time: a few macros here and there, a few templates, couple version of a small low-level function, etc.

> _mm256_hadd_epi32

That instruction is slow, e.g. on Ryzen it has latency 7. _mm256_slli_si256 and bitwise ops have latency 1, often can do same faster.

> readability is reduced when compared to the original scalar implementation

Solvable with a library, example: [https://github.com/Const- me/IntelIntrinsics](https://github.com/Const-me/IntelIntrinsics)

</comment><comment><USER3> Very interesting and I can't wait to try it out.

It's a pity though, based on what I understood from the website, that it's only producing binaries which can be linked to other than actually generating C / C++ code. That would be great for LTO, but also allow for better inspection of the generated SIMD code prior to compilation to ensure that all code is compiled by the same compiler. I guess the best way to inspect the artefacts prior to assembly is via LLVM IR.

I'm pretty happy that Intel chose to implement this based on LLVM. I'd have expected this to be sitting on top of icc.

<comment><USER4> ISPC can actually produce C++ that is full of intrinsics.

Also you can try it out already in godbolt.org - ISPC had been around for a number of years now and works very well.

<comment><USER5> Thanks!

For anyone interested -- after spending multiple hours playing with it I found that it can emit C++ via the following flags:

`--emit-c++ --target=generic-$WIDTH`

where $WIDTH is

\- 4 (sse4),

\- 16 (16 * 32 = 512 bit aligned),

\- 32 (32 * 32 = 1024 bit aligned),

\- or 64 (64 * 32 = 2048 bit aligned)

Example with generic-4 on godbolt CE for the ISPC mandelbrot example program: [https://ispc.godbolt.org/z/0x47SP](https://ispc.godbolt.org/z/0x47SP).</comment></comment></comment>


New York clinical trial quietly tests heartburn remedy against coronavirus - <AUTHOR> https://www.sciencemag.org/news/2020/04/new-york-clinical-trial-quietly-tests-heartburn-remedy-against-coronavirus <comment><USER2> > _In reviewing 6212 COVID-19 patient records, the doctors noticed that many > survivors had been suffering from chronic heartburn and were on famotidine > rather than more-expensive omeprazole (Prilosec), the medicine of choice > both in the United States and among wealthier Chinese. Hospitalized COVID-19 > patients on famotidine appeared to be dying at a rate of about 14% compared > with 27% for those not on the drug_

I guess one of "upsides" of covid affecting so many people around the world is that eventually you start to see a pattern of what types of people are not as affected. Then you can narrow in on what makes those people different, and see whether it's just random chance, something intrinsic to them, or something about their medications/environment.

</comment><comment><USER3> dupe: [https://news.ycombinator.com/item?id=22990946](https://news.ycombinator.com/item?id=22990946)

</comment><comment> nil-sec "Why are these elderly peasants not dying?"

Classy.</comment>