Your thoughts on a microframework for Java? - <AUTHOR> Hi Guys: I'm building a dead simple and minimal microframework in Java that allows users to create a web application or a microservice using Java in minutes. (Focus on being able to write a microservice really fast).
I would like to hear your opinions on what features, etc. you'd like to see or even your criticisms (e.g. we don't use java for that or it already exist).
I'm looking for feedback on what kind of HttpServer to use... I would like to support plug-in-play with default being NanoHttpd....
Secondly, which template library would you suggest (e.g. Apache Velocity)?
Thanks. <comment><USER2> There are several micro service servers / frameworks already available in the space. wildfly.swarm WSO2 MSS. Better check existing stuff before the implementation.

<comment><AUTHOR> I'll definitely check them out.

</comment></comment><comment><USER3> Like Spark? [http://sparkjava.com](http://sparkjava.com)

<comment><AUTHOR> Looks cleaner than other alternatives.</comment></comment>


Adobe demos incredible unblur feature for Photoshop - <AUTHOR> http://thenextweb.com/apps/2011/10/11/adobe-demos-incredible-unblur-feature-for-photoshop/

<comment><USER2> For the interested, this is almost certainly based on this research: <http://cs.nyu.edu/~fergus/research/deblur.html></comment>


Meet the Dread Pirate Roberts, the man behind Silk Road - <AUTHOR> http://www.forbes.com/sites/andygreenberg/2013/08/14/meet-the-dread-pirate-roberts-the-man-behind-booming-black-market-drug-website-silk-road/ <comment><USER2> The name Dread Pirate Roberts should've given away the fact the site is supposed to be handed down to different operators if you read/watched Princess Bride.

This guy is making a fatal mistake of talking to the press. History shows all blackmarket admins like Max Vision go down shortly after press articles come out with interviews. Now he went from guy running a drug site to "subverting the US with propaganda" so the NSA can get involved. Note to future outlaws: resist the temptation to make yourself famous by giving interviews. Just look how they amped the Swartz case after he went to the media

Can also now make a pretty good profile of this guy because he talks too much on his own forum and to forbes.

<comment><USER3> The interviewer didn't even get the operator's first name. I think he (she? they?)'ll be fine.

<comment><USER2> We know he found a wallet bug so that immediately gives away what level of competency/expertise to look for on the bitcoin forums which he undoubtedly posts there too. How he discovered the site is relevant and will give away how long he has been on bitcointalk since the orig dpr advertised there. We know his book recommendations from the forum which he prob recommended on clearnet in the past, or attached to his FB profile. Theres dozens of other ID markers he's left which I don't think is misinfo, mainly his Libertarian arguments which again he prob repeated elsewhere. Stylometry analysis incoming.

#1 rule to stay out of jail by thegrugq: stop talking

<comment><USER4> Not to mention, the dude had to have money (even before taking this over) if he said the previous owner was "well compensated".

<comment><USER5> There is no guarantee that the money is actually available to him. He probably has most / all of it tied up in Bitcoin, and is probably using only small amounts at a time via exchanges.

It is the classic mafia problem. Yes you can make lots of money on the black market, but it is useless if spending means getting caught. Hence money laundering.

</comment></comment></comment></comment></comment><comment><USER6> For those not aware, the Forbes author of this article wrote a book on the history of cypherpunks (including the mailing list) which Dread Pirate Roberts was most likely a part of, or the very least inspired by it's members in some way: [http://www.amazon.com/This-Machine-Kills-Secrets- WikiLeakers...](http://www.amazon.com/This-Machine-Kills-Secrets- WikiLeakers/dp/0525953205/)

Having interviewed Timothy May, Cryptome founder and Phil Zimmermann is probably how he earned enough reputation to have this interview set up.

<comment><USER7> I think you mean Timothy May, Cypherpunks founder?

AFAIK John Young runs Cryptome.

<comment><USER6> Correct, I wrote "Cryptome founder" as I figured that was more well known than John Young's name. Although I see now how the comma placement in my comment was confusing.

<comment><USER8> Incorrect comma usage, actually. You can't omit the Oxford comma (the comma before an "and") with a list of exactly 3 items. If you do, the middle item in the list can be parsed too many different ways, as happened here.

<comment><USER9> I beg to differ. I don't see how an oxford comma would fix this confusion. In fact I think without it his statement is easier to understand. We can easily see he means three people. If he used the Oxford comma the second person would look identical to a preposition and would make your parents comment more valid.

<comment><USER10> The easiest way to fix the sentence is to put the least precise term at the end + using the oxford comma.

> Having interviewed Timothy May, Phil Zimmermann, and Cryptome founder is > probably how (…).

</comment></comment></comment></comment></comment></comment><comment><USER11> This article was announced before hand and there's been some debate about how it will affect the price of BTC. BTC has already been on the up in the last 48 hours so it'll be interesting to see if this compounds that growth.

"I'd like forewarn everyone that in about 5 days an article will be published that is likely to generate a lot of buzz around Silk Road and attract new people to the site. New information about me, the site and many things will be discussed and I have no doubt that it will produce some controversy. I will be available to answer your questions here on the forums, and hopefully we'll have a fruitful discussion."

<comment><USER12> BTC exchange prices have been shown to be proportional to the amount of news that BTC receives.

With Texas making it a currency, NY subpoenaing BTC superusers, and now this article, the BTC prices are going to go up for a bit.

There are a handful of exchanges that allow you to short now, so you could probably make some shorts for two weeks from now.

</comment></comment><comment><USER13> I'm pretty sure the government is delighted by Silk Road so that they can finally justify searching all physical mail in some very advanced way. HN, you're always asking for startup ideas, why not just get totally evil and invent technology to scan physical mail at scale and hook it into PRISM? You'd stand to make at least millions if you did it right. Oh, and part of doing it right is making sure there's some alternate not-so-evil use case you can demo, like idk, automatically adding grandma's birthday cards to your facebook feed and automatically depositing her checks into your checking account.

<comment><USER14> > I'm pretty sure the government is delighted by Silk Road so that they can > finally justify searching all physical mail in some very advanced way.

Aside from the issue that SR has been running for almost 3 years now without anyone introducing such legislation - they already scan the outsides of all letters or packages indefinitely, and can easily search anytime they want to. The legal niceties aren't why drugs by mail still work, it's because the USPS alone handles literally billions of things a year and the screening problem (economical, not too high false positive, USPS does not benefit in any way) is really hard.

<comment><USER15> The government* is also trying to kill USPS by placing unreasonable pension requirements on it. Sort of hard to justify that when you actually start needing it to fight crime.

*The people elected to run it.

</comment></comment></comment><comment><USER16> "Silk Road doesn't really sell drugs. It sells insurance and financial products," says Carnegie Mellon computer engineering professor Nicolas Christin. "It doesn't really matter whether you're selling T-shirts or cocaine. The business model is to commoditize security."

I thought this was an interesting look at it. In a sense Silk Road is like the Pirate Bay in that it doesn't hold the items it generates traffic from.

<comment><USER17> So you have a marketplace now for illegal (stolen) digital products and one for illegal physical products. What other illegal marketplaces will crop up because of tor and bitcoin?

<comment><USER18> The Pirate Bay is not a marketplace, nor did its origin had anything to do with Tor or Bitcoin.

</comment></comment></comment><comment><USER19> Interesting. I have had a theory that DPR is Satoshi (who invented Bitcoin): [https://plus.google.com/100577178258662783679/posts/76UcUX4P...](https://plus.google.com/100577178258662783679/posts/76UcUX4Py2c)

But now DPR claims he inherited the site from someone else. DPR could be trying to disassociate himself from the "Satoshi" identity :)

<comment><USER2> The original DPR was pretty naive, he was selling on his own site with his girlfriend and didn't make any bones about people knowing. He had to hire a lot of help in the early days when the site took off because he didn't know what he was doing, Satoshi would know.

I still remember the SR job ads for database admins and other positions. I always assumed dozens of feds signed up for them.

</comment></comment><comment><USER20> The name "Dread Pirate Roberts" is (quite cleverly, IMHO) picked up from the character from The Princess Bride [ _aside_ : go watch the film -- it's great fun!].

It is possible that this "person" is much like Satoshi Nakamoto, given that in The Princess Bride, the pirate is not actually one person, but a series of individuals who periodically pass the name and reputation to a chosen successor.

[http://en.wikipedia.org/wiki/Dread_Pirate_Roberts](http://en.wikipedia.org/wiki/Dread_Pirate_Roberts)

<comment><USER21> The article states that exactly.

<comment><USER20> Oh dear, you're right -- the article has two pages! I _was_ a little puzzled to see no mention of the origin of the name at first.

</comment></comment></comment><comment><USER22> The Dread Pirate's curse is that he'll never be able really spend much of this pile of currency that he's accumulated, at least not without drawing attention to himself and getting busted.

History has shown that these guys eventually get busted but rarely for drug dealing; it's usually the IRS that busts them for tax evasion. If you're buying fancy cars, big houses, yachts, or businesses, eventually someone is going to catch on and follow the money trail.

<comment><USER23> As someone who doesn't know much about Bitcoins: Could he just say he mined a bunch of Bitcoins a few years ago and is now cashing out?

<comment> w-ll Well if there asking him questions chances are already following transactions, and its very easy to tell if coins have been mined and maybe shuffled around a few times vs coins with long blockchain history.

</comment></comment></comment><comment><USER24> >If Roberts is paranoid, it's because very powerful people really are out to get him.

You keep using that word. I do not think it means what you think it means.

<comment><USER25> Not at all, paranoia is simply a mistrust without justification. One can be cautionary and paranoid at the same time.

There are formalized medical definitions of paranoia being a mental condition, but many words have informal definitions that complement their formal definitions.

<comment><USER24> >Not at all, paranoia is simply a mistrust without justification.

So does he or doesn't he have justification to be mistrustful? The quoted sentence claims the former.

>many words have informal definitions that complement their formal definitions.

Yea, I wouldn't have made the post without checking the informal definition first.

</comment></comment></comment><comment><USER26> > Bitcoin-like digital currency system called Liberty Reserve

No, it's really not. That's about analogous to "absinthe-like drink called Coca-Cola."

Can the Bitcoin Foundation sue for defamation?

<comment><USER27> How isn't it? They're both drinks, and slightly poisonous... they're both digital currency, and as far as any laymen could tell, used exclusively by criminals.

Oh sure, you can tell me about "mining" and crypto, but that's not relevant right now. What, if anything, actually sets Bitcoin apart from LIberty Reserve?

<comment><USER28> Do you really believe that the CEO of Paypal[1] and Western Union[2] would contemplate in public the possibility of using Bitcoin as a funding mechanism if it were used exclusively by criminals?

1\. [http://blogs.wsj.com/digits/2013/04/30/could-paypal-be-on- ho...](http://blogs.wsj.com/digits/2013/04/30/could-paypal-be-on-horizon-for- bitcoin/) 2\. [http://mashable.com/2013/04/02/western-union- bitcoin/](http://mashable.com/2013/04/02/western-union-bitcoin/)

</comment></comment></comment><comment><USER29> If you are struggling to pin an ideology on an enterprise like the Silk Road, consider ways in which our current rate of technological/scientific progress has been shaped and guided by the responsible use of psychedelics in the 20th century. Check out the relationships that Francis Crick, Kary Mullis, Steve Jobs and Kiyoshi Izumi had with these fascinating compounds to start. From there it is not difficult for one to rationally assert that Silk Road (and Roberts) are critical facilitators - spurring innovation by furnishing those that might conceptualize the future with a powerful means to do so.

</comment><comment><USER30> I'm surprised he continues to have a relatively high profile, if he truly is responsible for running silk road. The more linkable things you do, the greater the risk of your pseudonym being compromised.

I understand that he's commercially motivated to promote the site, but having a third party do that would make a lot more sense. As the site's admin, he's both a big legal and technical liability if identified; an independent promoter would not be.

<comment><USER31> There's absolutely no reason to believe Dread Pirate Roberts isn't the third party you mention.

<comment><USER32> They allude to just that in the article. DPR is not the founder of SilkRoad.

</comment></comment></comment><comment><USER33> Whether it's a victimless crime or not depends on where they source the drugs.

You could argue that aggressive law-enforcement is what causes reprisal violence, but that still wouldn't justify supporting it in another way.

<comment><USER34> So I smoke normal, legal cigarettes. About 10 a day, 20 when I'm stressed. I started about 20, borrowing them off friends, and it's been maybe 8 years now.

The first 2 years, I didn't realize I was addicted to them. I just smoked when I wanted, which was between every lecture and with my friends in the evening. Then I tried to stop.

Quitting smoking is weird because sometimes you can just stop, and don't feel the need to smoke (until a couple months later you get drunk and buy a pack).

Other times, it's really hard. As in horrible. Your brain is trying to trick you into doing it. Telling you that your girlfriend (who asked you to stop) will leave you if you don't have one and calm down. Telling you that you haven't seen (smoking friend) in a long time. Just like you can't perceive your blindspot, you can't spot your own irrationality. This, I think, is the biggest reason smokers don't quit. It's relatively easy to fend off cravings, but recognizing irrational, addiction driven thought is hard.

Anyway, so one day I'm in a medical stats class. The lecturer is making a joke about a graph. It seems to show smoking is protective against prostate cancer. Smokers are super unlikely to die of prostate cancer. It looks convincing. Smokers don't survive to die of prostate cancer. It convinces me not to smoke again. I make my way downstairs, and grab a bagel. I have an exam next period, and I'm behind in that class. I can't focus without a cigarette. I light up, and keep lighting up, and now it's 5 years later, and I'm not going to die of prostate cancer.

There is this idea that humans are rational entities capable of making free choices, but we know they are really, really not. Thinking Fast, Thinking Slow, a great (nobel prize winning) economics book explains that there are situations where humans predictably make bad choices. Addictions are one of these. If I were not hooked on cigarettes, as a smart, otherwise disciplined person, I'd be more sympathetic with this libertarians on drugs.

<comment><USER34> @drivebyacct2: I'm hoping what you read wasn't what I meant. I meant that, I can't agree with the view that people should have the right to decide what they put in their bodies, because it is based on the idea they are making a rational decision. As addictive substances is a situation where people repeatably make irrational, bad choices, then that can't hold.

Like a lot of startupers know most new companies crash, but believe they are different, I believe that I will quite smoking one day (just never today). So I don't need protection. Obviously. But other people do. Hopefully I'm someone elses other people.

<comment><USER35> >I can't agree with the view that people should have the right to decide what they put in their bodies, because it is based on the idea they are making a rational decision.

No, it isn't. It's based on the idea that people have a right to make their own decisions, rational or not. You obviously disagree.

You realize that "The government knows what's best for you, and must therefore prohibit independent decision-making" is the exact opposite of freedom, and more closely associated with authoritarianism and tyranny, right?

<comment><USER34> See, you are trying to say that there are two possible positions - either the government is allowed to interfere with peoples lives, or it is not.

Most people believe something in the middle - there are situations where they would like the government to interfere. For instance, if they pay you for a service, and you don't deliver it, they might want the government to take action against you. In this case, you could argue they are wrong, there are alternative mechanisms (e.g. escrow, reputation damage).

But there are situations where only potentially violent action will help - e.g. theft. In the lawless world of Bitcoin, theft is a constant concern, much less so than in the real world where a man with a gun is just a phonecall away. Could we maintain a society like this without any enforcement of law? Really?

So, if you allow me for a moment government interference in matters of murder and theft, maybe you will allow me interference in matters of identity theft. Then of fraud?

So most people end up willing to trade freedom for security to some extent. (And it matters little what they deserve. The world doesn't work like that). I guess you can choose your level of tradeoff by moving to Somalia or Singapore, or not moving.

My tradeoff level is 'I think the government should prevent people being harmed by predictable irrational behavior'. That's why I support an age of consent, an age of criminal responsibility, regulation of harmful addictive substances, and socialized mental health care.

You may not. I hear it's sunny in Somalia. If you move, I'd love to stay on your couch for a bit.

<comment><USER36> > there are situations where they would like the government to interfere

> Could we maintain a society like this without any enforcement of law?

> I think the government should prevent people being harmed by predictable > irrational behavior

So it seems you believe that a government is a monopoly on force, but think it's a good thing. a very interesting viewpoint.

How is that different from the famous quote [1] from 1984 about the picture of the future? I appreciate that this might be considered a slippery slope argument, but have you seen a benevolent monopoly before? I'm not sure I have.

[1] [http://www.quotedb.com/quotes/3041](http://www.quotedb.com/quotes/3041)

<comment><USER34> >>have you seen a benevolent monopoly before?

I write too much, but you make an interesting point. More interesting because I find it hard to imagine a world where governments do not have a monopoly on force and the things function. Clearly, I need to think harder/better.

</comment></comment></comment></comment></comment></comment></comment><comment><USER37> Contrary to the article, the AMA on Reddit has not been deleted

[http://www.reddit.com/r/IAmA/comments/1fwi48/im_the_ceo_of_a...](http://www.reddit.com/r/IAmA/comments/1fwi48/im_the_ceo_of_an_online_underground_black_market/)

<comment><USER38> The article stated some comments had been deleted, not the whole AMA.

</comment></comment><comment><USER39> > Then, last month, the FBI exploited a vulnerability in Tor to capture the > alleged administrator of a child pornography site in Ireland.

Freedom hosting now reduced to being simply a child pornography site.

</comment><comment><USER40> Might silk road be the largest working example of agorism to date? Fascinating how they create a network where buyers can comfortably evaluate their options with the help of hundreds of reviews, and then order from the safety of their home.

<comment><USER17> Would Wikipedia or Craigslist qualify?

</comment></comment><comment><USER41> Silk Road is an interesting indicator of whether online privacy can be maintained against a powerful and determined adversary. If it's still running in five years time, that will suggest that it may be possible.

I would bet that it won't.

</comment><comment><USER42> If he setup silkroadlink.com, isn't that a money trail?

WHOIS information for silkroadlink.com: __*

[Querying whois.verisign-grs.com] [Redirected to whois.PublicDomainRegistry.com] [Querying whois.PublicDomainRegistry.com] [whois.PublicDomainRegistry.com] Registration Service Provided By: BITDOMAIN.BIZ Domain Name: SILKROADLINK.COM Registration Date: 04-Jul-2013 Expiration Date: 04-Jul-2014 Status:LOCKED Note: This Domain Name is currently Locked. This feature is provided to protect against fraudulent acquisition of the domain name, as in this status the domain name cannot be transferred or modified. Name Servers: ns1.bitdomain.biz ns2.bitdomain.biz ns3.bitdomain.biz ns4.bitdomain.biz

Registrant Contact Details: N/A Link Thompson (email@example.com) Ave. Federico Boyd Edif. Torre, Universal Piso 8 Panama City Panamá,74678 PA Tel. +507.2638480 Administrative Contact Details: N/A Link Thompson (firstname.lastname@example.com) Ave. Federico Boyd Edif. Torre, Universal Piso 8 Panama City Panamá,74678 PA Tel. +507.2638480 Technical Contact Details: N/A Link Thompson (email@example.com) Ave. Federico Boyd Edif. Torre, Universal Piso 8 Panama City Panamá,74678 PA Tel. +507.2638480 Billing Contact Details: N/A Link Thompson (email@example.com) Ave. Federico Boyd Edif. Torre, Universal Piso 8 Panama City Panamá,74678 PA Tel. +507.2638480

<comment><USER43> Looks like a bogus address with only a real email in Tor-land. Domain is paid with Bitcoin through bitdomain.biz, so that's a dead end too.

<comment><USER44> If i bought a domain trough bitdomain.biz and somehow i have problems with it (like getting stolen the password, somebody else claiming it), how can they verify that i am the person that bought originally the domain.

<comment><USER45> You could send them an email signed with the private key that you originally paid with (Bitcoin has a message signature feature in the GUI).

Edit: see here: [https://bitcointalk.org/index.php?topic=223713.0](https://bitcointalk.org/index.php?topic=223713.0)

</comment></comment></comment></comment><comment><USER46> This was really a fascinating article.

</comment><comment><USER47> This passage bugged me :

".. was grossing $1.2 million a month in the first half of 2012. Since then the site has doubled its product listings, and revenue now hits an annual run- rate of $30 million to $45 million by FORBES' estimate."

I guess 1.2M/month -> (30M - 45M)/yr makes the growth like much higher than :

1.2M/month -> (2.5 - 3.75M)/month 14.4M/yr -> (30M - 45M)/yr

Maybe he should have written revenue increasing is from 1.2M/month to 45,000,0000 per year.

</comment><comment><USER48> Maybe the author made the whole thing up?</comment>


Benign data races considered harmful - <AUTHOR> https://bartoszmilewski.com/2020/08/11/benign-data-races-considered-harmful/ <comment><USER2> "Benign data races" have been considered harmful from a theoretical perspective for decades. But most deployed CPUs had memory semantics that made them work. Mostly.

On x86 multiprocessors, if, without taking any special measures, you set x=1 from processor 0, and processor 1 reads x shortly, but not too shortly, thereafter, it will see 1. If you try that on, say, an 80-core ARM CPU [1], CPU #53 might not see a 1 for a long time, if ever.[2] You're no longer guaranteed that cache changes propagate unasked. As we get more and more CPUs, the cost of creating the illusion that there's a single memory goes up. It's now important that compilers know what's shared so they can generate the proper fence and barrier instructions. Especially since the latest iteration of ARM has new features such as "non-temporal load and store."

What used to be a theoretical problem, or at most a problem for OS architects, has thus acquired teeth and claws that can bite ordinary applications programmers.

This is where traditional C++ mutexes start to break down. From a theoretical perspective, it's always been annoying that mutexes at the POSIX level have no tie to what they're supposed to be protecting. Hitting a mutex has to mean "flush everything". That's inefficient. Rust has the advantage that its locks own data, so the compiler knows what has to be flushed. That becomes more important as the number of CPU cores becomes very large.

I've said for years that the three issues in C/C++ are "how big is it", "who owns it", and "who locks it". C++ now at least has abstractions for all of these, although they all leak. You can still get raw pointers out to misuse, or, more likely, pass to some API for misuse.

[1] [https://venturebeat.com/2020/03/03/ampere-altra-is-the- first...](https://venturebeat.com/2020/03/03/ampere-altra-is-the- first-80-core-arm-based-server-processor/)

[2] [https://developer.arm.com/documentation/den0024/a/the-a64-in...](https://developer.arm.com/documentation/den0024/a/the-a64-instruction- set/memory-access-instructions/memory-barrier-and-fence-instructions)

<comment><USER3> > _You 're no longer guaranteed that cache changes propagate unasked._

Huh? Yes, you can: Caches in multi-core ARM systems are still coherent, so once a write operation reaches any level of the cache hierarchy (typically level 1) and updates that cache line, _all_ other cores will see the updated value when they read from that address.

That's not what you need memory consistency operations, like load acquire and store release, for. You need those to make sure that a write from a write operation has been written to the cache, because it might still linger in the store buffer, which sits between the execution unit and the cache.

> _Rust has the advantage that its locks own data, so the compiler knows what > has to be flushed._

That's absolutely not how Rust works. The Rust compiler has no notion of a mutex, only of atomic operations. Mutexes are purely library constructs – as shown by the parking_lot crate [1], which implements its own mutex independently of the standard library mutex.

[1] [https://github.com/Amanieu/parking_lot](https://github.com/Amanieu/parking_lot)

<comment><USER2> _" A lock knows what data it protects, and Rust guarantees that the data can only be accessed when the lock is held. State is never accidentally shared. "Lock data, not code" is enforced in Rust."_

[1] [https://blog.rust-lang.org/2015/04/10/Fearless- Concurrency.h...](https://blog.rust-lang.org/2015/04/10/Fearless- Concurrency.html)

<comment><USER3> The issue isn't whether the compiler knows which data is affected and which isn't, but rather that the compiler doesn't know about the semantics of the mutex.

However, the _library_ knows about the semantics of the mutex, and it could explicitly instruct the processor to only flush certain memory regions from the store buffer when the mutex is unlocked. But then again, that's not Rust- specific – a C++ library could do the same.

</comment></comment></comment></comment><comment><USER4> > Weak atomics give you the same kind of performance as benign data races but > they have well defined semantics.

That is a great argument. Self-explanatory code make it easier to understand what are the design goals and usage of that code.

> Traditional "benign" races are likely to be broken by optimizing compilers > or on tricky architectures.

This is even better. One of the reasons is so hard to move code from one architecture to another one is because not only word sizes but small non- defined behaviors.

I had the pleasure to make C++ code compile for WebAssembly. It is challenging and interesting the unexpected ways that it breaks. And how many times the mental model that we have as developer and the reality of the C++ specification differ in small ways.

My most absurd example was a test application that had to crashi on the push of a button, to verify that all logs and recovery code was working. To crash the application the code was accessing a NULL pointer. Alas, WebAssembly allowed read access to address Zero without problem. So, the button did nothing when compiled in WebAssembly.

<comment><USER5> > To crash the application the code was accessing a NULL pointer. Alas, > WebAssembly allowed read access to address Zero without problem.

Good thing nothing in the C or C++ standards mandates NULL be address all- bits-zero regardless of how it's sometimes spelled.

Any compiler which assumes that memory access to address all-bits-zero _is_ access to NULL is not compliant.

<comment><USER6> Since C++11, the definition of NULL is:

       an integer literal with value zero, or a prvalue of type std::nullptr_t

See [https://wg21.cmeerw.net/cwg/issue903](https://wg21.cmeerw.net/cwg/issue903) for a case where NULL was did not evaluate to zero.

<comment><USER7> I thought "integer literal zero (in pointer contexts)" was the definition of NULL in _all_ versions of C. As I understand it the resulting pointer doesn't necessarily have to have a value of 0 (even though that's what it says in the source code) so long as it behaves appropriately nullish—i.e. the compiler can translate "int *foo = 0;" as "MOV foo 0xDEADCODE" so long as that value won't be used for any legitimate pointer.

<comment><USER5> The above-linked site about POSIX has this paragraph:

[https://www.austingroupbugs.net/view.php?id=940](https://www.austingroupbugs.net/view.php?id=940)

> The C standard goes to great length to ensure that NULL (and for that > matter, any representation of the null pointer, which is written in source > code by converting a constant value 0 to a pointer) need not be represented > in hardware by all 0 bits (that is, 'int _p = 0; ' or 'static int _p;' is > allowed to compile to assembly instructions that assign a non-zero bit > pattern to the location named p). And in fact, there are historical machines > where the most efficient null pointer in hardware was indeed a non-zero bit > pattern: > [http://c-faq.com/null/machexamp.html](http://c-faq.com/null/machexamp.html)

... and the site it links to has this:

> Q: Seriously, have any actual machines really used nonzero null pointers, or > different representations for pointers to different types?

> A: The Prime 50 series used segment 07777, offset 0 for the null pointer, at > least for PL/I. Later models used segment 0, offset 0 for null pointers in > C, necessitating new instructions such as TCNP (Test C Null Pointer), > evidently as a sop to [footnote] all the extant poorly-written C code which > made incorrect assumptions. Older, word-addressed Prime machines were also > notorious for requiring larger byte pointers (char _' s) than word pointers > (int _'s).

[snip]

> The Symbolics Lisp Machine, a tagged architecture, does not even have > conventional numeric pointers; it uses the pair <NIL, 0> (basically a > nonexistent <object, offset> handle) as a C null pointer.

</comment></comment></comment></comment></comment><comment><USER8> The difficulty with "benign" data races and atomic operations with weak ordering, is that they're not guaranteed to behave like the target architecture behaves! It's insufficient to say "this is fine on x86" even in an x86-only program!

That's because the optimizer symbolically executes the program according to the C memory model, not x86 memory model (as if it was some kind of Low-Level Virtual Machine…). The optimizer may reorder or remove memory accesses in ways that wouldn't happen on the target hardware.

<comment><USER9> _That 's because the optimizer symbolically executes the program according to the C memory model, not x86 memory model_

...and I think that is a huge problem, because it strays from the spirit of the language in that it's supposed to be "closer to the hardware" than other HLLs.

Edit: care to give a counterargument?

<comment><USER10> I'm not the one who downvoted you, but the counterargument is that such a target-specific approach prevents any reasonable effort to consistently define the semantics of any programming language. "On x86_amd_this_and_that processor the program means this, on arm_64_some_version it means that and on x86_intel_something again something else". This would not just be hell, it would be unworkable.

In other words, any approach other than an abstract machine model is doomed. Ideally this abstract machine is rather close to real world machines, but it can't be identical to all of them, nor is it reasonable to start special casing.

<comment><USER9> _but the counterargument is that such a target-specific approach prevents any reasonable effort to consistently define the semantics of any programming language._

Why does there even need to be? There's already undefined behaviour to take into account the variance. Otherwise it's just making things worse for programmers who want to easily solve real problems on real hardware, not the absurd theoretical world of spherical cows.

<comment><USER11> Undefined isn't the same as implementation defined. "Undefined" means you're not even talking about C any more. "Implementation defined" means which of the allowable semantics the implementors happened to choose.

</comment></comment></comment></comment></comment><comment><USER12> > It is now widely recognized that this attempt to define the semantics of > data races has failed, and the Java memory model is broken (I'm citing Hans > Boehm here).

This is a bit misleading. C++ also ended up defining the semantics of data races with memory_order_relaxed. In the standard they are not called "data races", but they correspond closely to what Boehm calls Java "giving some semantics to data races". C++ relaxed atomics also have the same issues with causality.

See Russ Cox's talk [http://nil.csail.mit.edu/6.824/2016/notes/gomem.pdf](http://nil.csail.mit.edu/6.824/2016/notes/gomem.pdf) And Viktor Vafeiadis' slides: [https://people.mpi- sws.org/~viktor/slides/2016-01-debug.pdf](https://people.mpi- sws.org/~viktor/slides/2016-01-debug.pdf)

> Weak atomics give you the same kind of performance as benign data races but > they have well defined semantics.

This is mostly true, but not at the limits. GCC, clang, MSCVC, and icc tend to be pretty conservative in how they treat relaxed atomics. For example, on x86 they tend not to generate the reg+mem form and instead generate an explicit `mov` instruction ([https://gcc.godbolt.org/z/K135Mo](https://gcc.godbolt.org/z/K135Mo)). This requires extra resources for instruction fetch & decoding and uses an extra named register (potentially causing spills to the stack).

> Traditional "benign" races are likely to be broken by optimizing compilers > or on tricky architectures.

This is true, but the sad thing is that the implementation of the C++ memory model is sometimes broken too. GCC had lots of real bugs up through about GCC 4.9 (I think...). And then there's [http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2017/p066...](http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2017/p0668r1.html) \-- "Existing implementation schemes on Power and ARM are not correct" (2017)

<comment><USER13> Having been there, and having bitten often enough, I can confirm that most compilers just try to generate the most conservative code possible for volatile accesses. Their semantics are crazy/inconsistent, so you can't reason about them, and high performance code won't use them. Nobody will ever be interested in making them work/perform well.

C++ atomics in their various memory models are different in that they have well-defined semantics, used in high performance code and people do care. You're right that there have been bugs (and probably still are), but at least you can _argue_ that something is a bug if there is a coherent definition. Optimization of atomics, such as merging barriers, is still in its infancy.

</comment></comment><comment><USER14> The comment:

> if you have mutexes in your code you're probably programming at too low a > level

is quite disappointing to read

<comment><USER15> > something based on CSP

Gives the game away. Just another proselytising FP nut trying to justify all the time they've spent learning "universal" FP-abstractions (ie., highly specific hacks around lazyness).

</comment></comment><comment><USER16> It seems I deal with race conditions all the time in Swift (Fixed one bug just today), but can understand little of this. Every time I turn around, it turns out things are harder and more complex than I thought.

<comment><USER17> Fwiw "data race" != "race condition", confusing as that may be. A race condition is a blanket term for _any_ nondeterministic bug resulting from differences in timing between independent, concurrent processes. A data race is a specific kind of race condition where reads/writes to the same value in machine memory step on each other's toes and lead to inconsistent behavior. The classic example is two threads that try to increment the same number but only one takes effect, because they both read the current value before either writes their new value (instead of one read/writing and then the other read/writing). I'm not really a C/++ programmer, though, so I only have a rough understanding of this topic. I don't know what a "benign data race" is, for example.

</comment></comment><comment><USER18> memes considered memeful

</comment><comment><USER19> "Considered harmful" considered harmful: [https://meyerweb.com/eric/comment/chech.html](https://meyerweb.com/eric/comment/chech.html)</comment>


Why We're Updating the Minimum BitPay Payment Amount to $100 - <AUTHOR> https://blog.bitpay.com/minimum-invoice-update/ <comment><USER3> Bitcoin undoubtedly is a technical and social phenomenon, but it's also definitely almost useless as a digital currency at the moment. Other alternatives like Bitcoin cash, litecoin, ethereum etc. are much more useful for actually... sending money to people. The dev team needs to make Bitcoin as good as Venmo for sending payments between people, or someone else will beat them to it. People have talked for a long time about currency X being better and replacing Bitcoin but with Bitcoin rising so fast that the network has basically shut down, this may be the first time another currency or fork has the opportunity to overtake it in market cap.

<comment><USER4> None of the coins can scale realistically on-chain as a peer-to-peer system. If you run the numbers, the transaction volume of 1B people making one transaction a day goes into the terabytes. If you externalize the costs of verifying that to third parties, you lose properties that make Bitcoin interesting to begin with.

For many people it was clear that off-chain transactions are the only feasible way to solve this. Small purchases in particular do not need to be broadcast to the whole network and can be routed in payment channels. Lighting Network is the most promising solution at the moment.

<comment><USER5> Nothing prevents a sharding as long as you have some way to prioritize in case of conflicts and you require delays from moving money into and out of accounts, but even that's not really needed.

You don't need to store Terabytes per day for 1B daily transactions. BC does it differently, but you could get away with 4 byte time-stamp, 4 byte amount, 32 byte source public key, 32 byte destination public key = unique transaction + 32 byte signature demonstrating sender with correct private key signed that transaction. Now, 1 billion of those = 100GB per day = 36 TB per year which sounds like a lot but most nodes don't need the full amount just current state + verifiable hash + new transactions.

But even that's not needed, suppose every node includes a subset of the account amounts so every K nodes allows you to recover the state of all accounts. That way you don't need a full database just the most recent K nodes and they have complete state. Some people can keep a historic archive, but the system operates even if that information was lost. (You would want some GC as well so accounts must either be larger than A or have a transaction within the last Z steps.)

Granted, managing pending transactions increases bandwidth needs, but nodes can manage reputations based on only forwarding valid transactions. Some metrics so their is some statistical chance of conformation and you end up with ~2x overhead for unconfirmed but likely transactions.

PS: You can also have the protocol grow so if the 11 of the last 20 nodes where full the new node is 1% larger.

<comment><USER6> > "36 TB per year"

Satoshi made a similar argument in Nov 2008 in response to a claim about Bitcoin not being able to scale:

"The bandwidth might not be as prohibitive as you think. A typical transaction would be about 400 bytes (ECC is nicely compact). Each transaction has to be broadcast twice, so lets say 1KB per transaction. Visa processed 37 billion transactions in FY2008, or an average of 100 million transactions per day. That many transactions would take 100GB of bandwidth, or the size of 12 DVD or 2 HD quality movies, or about $18 worth of bandwidth at current prices."

"If the network were to get that big, it would take several years, and by then, sending 2 HD movies over the Internet would probably not seem like a big deal."

[https://www.reddit.com/r/btc/comments/6navjt/very_first_disc...](https://www.reddit.com/r/btc/comments/6navjt/very_first_discussion_of_bitcoin_by_satoshi_btc/)

Note: this was before the DoS attack in 2009 where hackers tried to freeze the network by creating blocks of uneven or massive size. Which is why in Oct 2009, satoshi imposed the 1MB block size limit (I presume was intended as a _temporary_ stopgap measure) to prevent future similar attacks.

<comment><USER7> Long after the 1 MB limit was put in place, Satoshi wrote:

>>The current system where every user is a network node is not the intended configuration for large scale. That would be like every Usenet user runs their own NNTP server. The design supports letting users just be users.

-July, 2010

>>It would be nice to keep the [block chain] files small as long as we can.

>>The eventual solution will be to not care how big it gets.

>>But for now, while it's still small, it's nice to keep it small so new users can get going faster. When I eventually implement client-only mode, that won't matter much anymore. (note to readers, "client-only mode" refers to SPV mode)

-August, 2010

and in an email to Mike Hearn:

>>The existing Visa credit card network processes about 15 million Internet purchases per day worldwide. Bitcoin can already scale much larger than that with existing hardware for a fraction of the cost. It never really hits a scale ceiling.

So your explanation for his reasons for putting in place the 1 MB limit are not consistent. Others have said that he was afraid that someone would soon come out with GPU miners and be able to DOS the network with large blocks, so put the limit there as a temporary measure. Now that mining hardware evolution has slowed, and the mining ecosystem matured, this kind of threat is non- existent.

<comment><USER6> > "So your explanation for his reasons for putting in place the 1 MB limit are > not consistent"

Actually the reason I stated is consistent with what satoshi said:

"In 2010, a block size limit of 1 MB was introduced into Bitcoin by Satoshi Nakamoto. He added it hidden in two commits[1] in secret, when challenged publicly he said it is a safety measure to prevent miners from creating large spam blocks." [1]

[1] top of: [https://en.bitcoin.it/wiki/Block_size_limit_controversy](https://en.bitcoin.it/wiki/Block_size_limit_controversy)

<comment><USER7> But not consistent with what he said after the limit was put in place (see the quotes I provided). The motivation I suggested is consistent with all of his actions and statements.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Worth calling this out:

> We are also working quickly to add support for a Bitcoin Cash (BCH) payment > option on all BitPay invoices. Bitcoin Cash is a modified fork of Bitcoin > which will allow purchasers to send payments with significantly lower > bitcoin miner fees. Bitcoin Cash payments will allow us to re-enable > payments as small as $1 or smaller.

</comment><comment><USER9> They should probably focus on implementing segwit instead of these shenanigans.

BitPay lost a lot of credibility when they published instructions telling people to "upgrade" their Bitcoin wallets by switching to btc1, which was a hardfork that failed spectacularly. What they did was bordering on fraudulent.

<comment><USER10> Sure, and a 40% transaction fee reduction sounds great in theory, but with a median fee of ~$28.58 ([https://bitcoinfees.earn.com/](https://bitcoinfees.earn.com/)) it will still inarguably leave BTC at a significant disadvantage compared to virtually every other available payment option. Mind you, this calculation is done at current prices and network congestion; the numbers can only be expected to increase assuming further adoption. Not viable.

</comment></comment><comment><USER11> At this point, it's faster and cheaper to get the private key delivered by FEDEX than making transactions on the Bitcoin network.

<comment><USER12> Every transaction I've conducted in recent weeks took about 20 minutes and cost less than 1%. (Using Trezor at highest fee level)

For those who don't follow Bitcoin subreddits, this was discussed here: [https://www.reddit.com/r/btc/comments/7lfyrf/psa_its_faster_...](https://www.reddit.com/r/btc/comments/7lfyrf/psa_its_faster_and_cheaper_to_get_the_private_key/)

<comment><USER11> You must have been moving over $5000. 1% of 5000 is still $50.

The minimum fee for me yesterday was 0.004btc (about $55), the suggested fee was 0.008btc (about $112), and the priority fee was prohibitively high. My hd wallet had 3 inputs though which increases the fee. When I sent with the minimum fee, it stayed unconfirmed for a little over a day before it flat fell off the network. When I resent it with the suggested fee ($112), it stayed unconfirmed for several hours until the early morning when it started getting confirmations finally.

<comment><USER12> $2000 for $3

$13000 for about $8

</comment></comment></comment></comment><comment><USER13> Looks like another Bitcoin v. Bitcoin Cash argument thread getting started again. I'm getting really tired of this.

<comment><USER14> When kings fight, princes rise.

</comment></comment><comment><USER15> Lightning protocol looks like the right solution

[https://medium.com/@lightning_network/lightning- protocol-1-0...](https://medium.com/@lightning_network/lightning- protocol-1-0-compatibility-achieved-f9d22b7b19c4)

<comment><USER16> No it doesn't. The reason BTC is choked off is because the core devs are promoting the lightning solution instead of on-chain scaling because they have a stake in making money off the lightning network. And now that we've reach a critical mass of transactions this lightning network is nowhere to be found even though its been promised for years.

The core devs are like the DNC. They'd rather kill the blockchain than capitulate and update the block size.

edit: downvoting me out of visibility won't change the truth. The lightning network, which is driven by Blockstream, which makes up the most core devs, is planning to make money off of lightning network fees, and they aren't willing to give that up even if it means killing BTC. It's not even a secret - <USER2> is plenty of public info on Blockstream's business model.

<comment><USER4> > they have a stake in making money off the lightning network

How? Anyone can run a lighting node

> And now that we've reach a critical mass of transactions this lightning > network is nowhere to be found

That conflicts with the other statement.

Please tell me where you are stuck: [https://medium.com/@JimmyMow/announcing- zap-a-lightning-netw...](https://medium.com/@JimmyMow/announcing-zap-a- lightning-network-wallet-47622acd89fb)

<comment><USER16> Don't play ignorant.

The lightning network is no where near the availability to be used by everyone. Blockstream is trying to get it out as fast as they can, and they are trying, but it's not adopted yet, despite years of development and promotion.

[https://medium.com/@luxushub/the-truth-about-blockstream- and...](https://medium.com/@luxushub/the-truth-about-blockstream-and-the- lightning-network-896d69b48f0f)

The lightning network is backed by Blockstream, which employs the most core devs. Blockstream plans to make their profits by making fees off of providing lightning network channels to exchanges.

<comment><USER4> What competitive advantage would Blockstream have? Why would exchanges not peer directly? It is all open source protocols and software. There are three major implementations to choose from.

<comment><USER16> What advantage? The fact that they designed and developed it, and are first movers, and it's their entire business model?

How does github.com even make money? git is open source. Redhat? Linux is open source.

<comment><USER4> Yet Torvalds runs neither of those businesses. What is your point here?

<comment><USER16> What is Blockstream's business model?

<comment><USER4> Certainly not running open source software on commodity hardware. Other than that I don't know, same as for 90% of Blockchain companies that get the same level of investment or more.

<comment><USER16> That's a non answer.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER17> This is why Bitcoin Cash (BCH) is gaining momentum with merchants. Transactions are verified quickly with the typical fee of half a penny.

<comment><USER18> Looks like Bitcoin is more like gold that you stash, and Bitcoin Cash more like money that you buy things with.

<comment><USER19> Still, at ~26 transactions/sec it's a far cry from something like Visa.

Maybe we can do much better international trade with it tho.

<comment><USER20> I wager mankind can do more than 26 gold transactions/sec.</comment></comment></comment></comment>


Second Canadian 'missing' in China - <AUTHOR> https://www.bbc.com/news/world-asia-china-46548614 <comment><USER2> If this is a retaliation and they intend on continuing on this. China is going to find it's self on the bad end of travel advisories by a lot of western nations.

BTW There have been videos about "tourist crackdowns" and how some of the authoritarian governments use visitors as scapegoats of bad behavior.

<comment><USER3> US has become a risky destination for ordinary business travel. I suppose business and tech conferences better take place in neutral places where rule of law prevails.

<comment><USER4> This is simply false, and the US will continue to be the #1 location for tech conferences for the foreseeable future.

The only risk to travellers is that US customs may require people to see their Facebook profiles etc. - which is bad - but nobody is getting arrested arbitrarily, and even if they were 'rule of law prevails'.

<comment><USER5> Well I don't know about tech, but multiple swiss banks have had internal advisories against visit to the US, as some of their employees have been arrested.

<comment><USER4> Swiss banks have been hiding assets of people worldwide and many nations consider that a crime. So yes, if you're helping Americans cheat on their taxes, you're going to get arrested.

So the 'advisory' would be: don't break laws.

<comment><USER6> > So the 'advisory' would be: don't break laws.

Whose laws? Why should the Swiss follow US laws? What if the US establishes arbitrary laws? Should the Swiss still follow those laws?

<comment><USER7> But that's the point, no? Swiss have their own laws (hiding assets), US have their own laws (arresting people who hide assets), seems perfectly fair.

Personally, I wish no developed (e.g. EU, US) country would allow any economic relationship with any country that allows tax avoidance (like 0% tax) or tax evasion (like bank secrecy).

<comment><USER6> > Personally, I wish no developed (e.g. EU, US) country would allow any > economic relationship with any country that allows tax avoidance (like 0% > tax) or tax evasion (like bank secrecy).

But US allows huge tax deductions for businesses. Maybe other countries don't? Wouldn't they have a right to say, "Personally, I wish no developed (e.g. EU, US) country would allow any economic relationship with any country that allows unfair deductions or tax evasion (like states give to Amazon).

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> Outline for us Indochina types: [https://outline.com/qUJvaJ](https://outline.com/qUJvaJ)

Quite surprised Canada has gotten itself into this considering the potential for escalation which is now playing out. A "NGO worker", possibly of natsec value and now another Canadian national.

What did they really expect arresting corporate dynasty?

Watching the US and China duke it out in a trade war is somewhat in other countries interest economically, high profile arrests to use as bargaining chips is a risky business and the canucks seem to have thrown themselves right in the midst of it.

To add to the absurdity the EU is pushing ahead with maintaining the Iran deal and are indicating their multinationals will continue doing business despite US sanctions.

<comment><USER9> Canada has an extradition agreement with the US. The Canadian government has a duty to uphold its end, which means arrest the individual when the US requests it and investigate the merits of the case.

The Justice Department would do the same, though I'm sad to say, as a Canadian, that our prosecutors in Canada seem less interested in high-level white collar crime. (Yes, less interested than their American counterparts, believe it or not.)

<comment><USER8> The US has a long history of refusing extradition requests by allies despite overwhelming evidence. It's become a one way street. The UK has blocked extradition to the US before even though the guilt is assured[0], the alleged crimes here are nothing in comparison.

[0] [https://en.wikipedia.org/wiki/Gary_McKinnon#British_governme...](https://en.wikipedia.org/wiki/Gary_McKinnon#British_government_blocks_extradition)

<comment><USER10> > _the alleged crimes here are nothing in comparison_

Willfully violating sanctions is a serious crime.

<comment><USER11> Sanctions imposed by the U.S that hold no merit according to WTO or International law aren't even legal and are in fact considered an act of war. The only crime committed here is by the U.S.

<comment><USER12> Meng's arrest is for actions she allegedly took to help Iran evade sanctions years ago, during the period in which U.N. sanctions on Iran were in force.

[https://www.bloomberg.com/news/articles/2018-12-07/huawei-s-...](https://www.bloomberg.com/news/articles/2018-12-07/huawei- s-unofficial-skycom-allegedly-used-to-break-sanctions)

</comment></comment></comment></comment></comment></comment><comment><USER13> Is this really retaliation for Meng? Wow that's incredibly artless and ham- fisted if true.

<comment><USER14> All evidence points towards it being so.

The first Canadian detained this time was a diplomat on a leave of absence from the foreign service [0]. As non politically neutral as you can get without seriously violating diplomatic protocol.

China has a history of detaining people over political issues like this. The last time (2014) we (Canada) were considering extraditing a spy to the US they arrested two random Canadians and held them for half a year and 2 years [1].

As a Canadian I certainly hope that the only reaction by the Canadian government to this will be sanctions and cooling of relationships. We should not give into this bullying. Having a totalitarian state behind you should not make you above the law. People who chose to visit foreign states have to accept the risk that they will be subject to unjust laws.

[0] [https://www.cbc.ca/news/politics/kovrig-detained-china- tuesd...](https://www.cbc.ca/news/politics/kovrig-detained-china- tuesday-1.4940725)

[1] [https://www.nytimes.com/2017/01/01/world/canada/canadian- cou...](https://www.nytimes.com/2017/01/01/world/canada/canadian-couple-china- detention.html)

</comment></comment><comment><USER15> People are jumping to a number of conclusions in these threads with little evidence. The rapid down-voting is crazy.

There's no confirmation that this had anything to do with Meng, or that these people weren't guilty of something worth investigating.

Wait for more details before assuming that everything is connected.

<comment><USER16> Extrapolating from that, I always find it amusing when people seem to have global politics figured out, not realizing that it's a complex dynamic system with hundreds if not thousands of agents at play, when they ,the very same people, would be lost watching a two-player poker game.

<comment><USER17> It's concerning. People have strong opinions (bordering on it being a "fact") about places they've never been to (or near). They might have never even left their country. It isn't something they've studied, it isn't remotely related to their work. But they still _know_ how it is.

<comment> abc-xyz I shamefully lived in China for a long period, and almost every Chinese person I've talked to was either misinformed or oblivious to the kind of negative news you see discussed on HN. You can learn a lot, both negative and positive, about living in the country that you'd have no way of knowing if you hadn't been there (or done a lot of research), e.g. how foreigners are not allowed to stay at most cheapish hotels and will even be turned away from a lot of apartments. But by living in China then you're less likely to know about these news because if it isn't censored then you'll be exposed to their propaganda instead. And things are going to get much worse when the social credit system really kicks in and the citizens benefit from spreading propaganda.

</comment></comment></comment></comment><comment><USER18> China is making themselves look horrible here.

Ms. Meng has a proper reason for being arrested (the allegations are that she committed fraud to bypass US sanctions against Iran and sell them US tech by lying about HuaWei and SkyComs involvement to HSBC). There will be a trial, this investigation has been happening for years, and it is by the Justice Department, not a request from Trump (who seems to have been caught surprised by the move). Canada didn't do anything, they are simply honoring their extradition treaties.

In contrast, China is just throwing a fit in response and arresting random Canadians on trumped up charges. These are clearly politically motivated (China had threatened Canada with 'consequences' \-- the timing is way too suspect here). We have been given no reason why they have been detained, and there are no court hearings or anything -- they have just been 'disappeared'. With this move, China has shown how authoritarian and anti business they are. No justice department, no investigation. These are simply political hostages. Further more, it is completely spineless that they are going after the, less powerful, Canadian nationals, and not Americans.

<comment><USER19> Whatever it is, it's nowhere near is simple as the good guy / bad guy situation you're making it out to be.

US sanctions against Iran versus the "situation normal" with Saudi Arabia despite the state-sanctioned murder of a journalist makes a mockery of US foreign policy.

It's not as simple as that either. It's politics and money. ie. There will be no winners, and everyone involved is already covered in shit.

<comment><USER18> I'm not arguing for or against Iran sanctions. However, they exist, and the US has a history of enforcing such sanctions. Getting around sanctions is typically given large punishments (see the Movie 'War Dogs'). This is not some arrest on trumped up charges for 'national security' like the Chinese arrest

The fact of the matter is that there is strong evidence that Huawei committed fraud to breach US sanctions. This is neither a 'good' or 'bad' thing, it is just very illegal.

</comment></comment></comment><comment><USER20> I have little doubt both of these guys are spies. A guy working for an NGO that does "crisis research" and a guy leading tours in North Korea. LOL. Any country with sufficiently advanced counter-intelligence has a list of spies operating on their soil that they monitor and keep in reserve for when it's politically favorable to round them up.

<comment><USER21> 1\. Canada doesn't spy China. They cannot be spies. 2\. China is an authoritarian state. The two Canadian are innocent. 3\. I have made my mind before reading the article.

</comment></comment><comment><USER22> > "endanger China's national security"

Victimization is a common tool of tyrants. In particular, China govt likes to use the phrase "hurt the feelings of the Chinese people" (伤害了中国人民的感情).

</comment><comment><USER23> Meng was arrested for fraud, lying to U.S. banks and violating financial disclosure laws; no different than any garden variety money-launderer.

Most importantly, she's had a day in court, been granted bail in a hearing that was open to the media, and if extradited, will receive due process and a fair criminal trial where everyone will get to see the evidence against her.

These two men have been 'disappeared'. Good luck ever seeing any shred of due process for them. Not even the most shameless Xi mouthpiece can credibly claim that China has anything resembling an independent judicial system.

It's not surprising that all Chinese media and all commentators loyal to the Xi clique have cynically framed this in terms of Meng being 'abducted' or 'held hostage'. The worldview of authoritarian, personal dictatorship cannot even conceive of due process and the rule of law (which also accounts for some of the idiotic off-the-cuff remarks that Trump has made - fortunately, the U.S. still has a semi-functioning government with separation of powers and an independent judiciary, so he's not really in the saddle here)

<comment><USER24> None of this 'How China Works' is new to anyone. Canada should have considered it when deciding to get involved.

While the majority of US Federal prosecutions are honest, FBI agents and US attorneys do get involved in misapplication of the law and reckless prosecution for political or personal reasons.

And our president respecting rule of law or being better than Xi on any measure except successful criminal behavior is a real tough sell. It would be easier to sell sand in the desert.

<comment><USER25> > None of this 'How China Works' is new to anyone. Canada should have > considered it when deciding to get involved.

Maybe on HN, but is this really old news to all of our governments? I was watching CBC last night on all the issues the Canadian government is now running into with their 5g rollout since they were one of the few western countries who decided to deal with china.

Either they didn't know what china was, or they have better information on china then we do.

> And our president respecting rule of law or being better than Xi on any > measure except successful criminal behavior is a real tough sell.

Is this a troll? Did we see trump pass a law unlocking the term limit for president? Because Xi did that, that's why hes even still in office.

<comment><USER24> Nobody sane ever expected China to be a 'rule of law' country in the Western sense though. I don't know enough about Chinese law to judge whether changing a law should have been allowed. But that law is changed, by whatever mechanism, and that is a bit different to acting in contravention of a law.

</comment></comment></comment></comment><comment><USER26> China disappears people all the time. May or may not be related to the Meng thing. Here's another:

[https://www.thesun.co.uk/news/7911948/chinese- photographer-d...](https://www.thesun.co.uk/news/7911948/chinese-photographer- dark-side-communist-state-vanishes/)

</comment><comment><USER27> global fight for dominance via proxy countries didn't end with cold war: [https://en.m.wikipedia.org/wiki/Globalism](https://en.m.wikipedia.org/wiki/Globalism)

</comment><comment><USER28> The US has played Canada. They request this, Canada performs the arrest, Trump plays good cop ("I'll intervene if I have to"), and China can't retaliate against the US but can take it out on Canada. I'm sure Trump is giddy given how much he dislikes Trudeau.

<comment><USER29> I don't believe Canada was played. I doubt she would have ever taken a flight through the USA and therefore this was probably their only chance to get her.

<comment><USER8> The sealed indictment for her arrest was 4 months ago on Aug 22, she has traveled through numerous countries including Canada in that time. The arrest came only hours after US/China trade talks finished, it's also unusual in that it's an individual rather than the company being taken to court.

She's also the CFO of the world's 2nd biggest smartphone manufacturer that just overtook Apple. Decide for yourself.

<comment><USER4> If this is true, it really sheds light on this because it would indicate the arrest was political.

Given the situation, I actually doubt it. I don't think this is Trump et. al. throwing a curve ball, I think this is the Feds just doing their job with bad timing.

<comment><USER8> At the same moment the President is sitting down with Xi discussing trade government agents are making moves to arrest an incredibly high profile Chinese figure and everyone seems to think it's a coincidence?

China has an extensive history of politically motivated trials when there is foreign relation disputes between countries. They barely hide it. What's interesting here is the US doing the same thing back to them.

<comment><USER4> I don't believe the US is doing it, essentially I'm doubting the specific facts you presented i.e. a warrant since Aug but no arrest until now, for political reasons.

One of the reasons I doubt this is because Trump does not control or direct these orgs - they are not highly politicized.

And also ... why would the US create some kind of warrant/indictment to _not_ have her grabbed?

Maybe you are right, but I actually don't think any of it makes sense. Trump gains nothing by having someone nabbed like that.

Chinese nabbing of Canadians I do however think is political.

</comment></comment></comment></comment></comment></comment><comment><USER30> This battle between the US and China for influence and control over the world will be interesting. We all know the US are far from harmless in their foreign policy. But still, between a US-centered world (which is still where we are in the western world, maybe not economically, but culturally for sure) and a China-centered one, I would choose the former by far.

This is still very much fiction, but there are many possibilities in the open. With the US questioning the support of EU to NATO, and the EU wanting the European Army, who knows where things will go (EU-China allying vs the US being the fictional world war III scenario).

</comment><comment><USER31> canada had to have seen this coming.

<comment><USER32> Canada was fulfilling an extradition treaty it has with the United States. It really had no say in the matter.

This should be of surprise to nobody.

<comment><USER33> No, Canada had a say. It's a card like any other. Comply with the treaty or not. There's no clear answer. What happened here is clearly a choice officials weighed in on.</comment></comment></comment>


The Greatest Show on Earth: The Evidence for Evolution - <AUTHOR> http://richarddawkins.net/thegreatestshowonearth

<comment><USER2> If you believe that religions are man-made (irrespective of whether you believe God exists), then, ironically, the greatest opposition to natural evolution comes from memetic evolution.

<comment><USER3> He did write about this in The God Delusion briefly - how religions might have started, why they propagate so easily etc.

</comment></comment><comment><USER4> I like Dawkins. I find his voiced thoughts intelligent, interesting and precise.

Most importantly, it sounds like this book will provide a good summation of Evolution. Well thought out books that summarize an area of knowledge make it easier for me to create/solidify my own framework within that area. Which it turn makes it easier to branch further out without getting completely overwhelmed (a little bit is fine!)

I'm definitely looking forward to this. Hopefully I'll be done with his "The Selfish Gene" by the point this comes out.

</comment><comment><USER5> I would have thought that there are already books that cover the same ground as this one does. Could anyone link me to some examples, or perhaps tell me why this new book is necessary?

<comment><AUTHOR> The author of one earlier book, Why Evolution Is True, writes a favorable blurb for Dawkins's book (at the posted link). That's gracious of him to praise a competing book. I think the rationale for this new book is that Dawkins is second to none as a story-teller about any subject he writes about.

(Edited for spelling correction mentioned in reply below. Thanks.)

Further edit to add a link answering the question in the parent of my post:

Most of the data showing that evolution is a fact can be found at the TalkOrigins Archive.

<http://www.talkorigins.org/>

Not a book, but all the facts you could ask for and some very fine writing in parts.

<comment><USER4> Dawson = Dawkins, right?</comment></comment></comment>


Changes Mulled as Synthetic Drug Sentences Cause Confusion - <AUTHOR> http://hosted.ap.org/dynamic/stories/U/US_SYNTHETIC_DRUGS_ENFORCEMENT <comment><USER2> Had trouble getting past the AP map. Here's a direct link: [http://www.dailyherald.com/article/20170123/news/301239883/](http://www.dailyherald.com/article/20170123/news/301239883/)</comment>


The behavioural science of supermarkets - <AUTHOR> http://www.economist.com/science/PrinterFriendly.cfm?story_id=12792420 <comment><USER2> This is why I hugely prefer shopping online to shopping at a store. Even not counting the time it takes to drive there, at a real store you are the store's bitch, to manipulate for maximum benefit. An online store, on the other hand, is your bitch--it has to attract you right away to the things you're looking for, rather than prolong contact with those for as long as possible.

<comment><USER3> I'm not sure that online shops are any less likely to try "to manipulate for maximum benefit". The palette may change (fresh bread smells & video surveillance get replaced by cookies and Referer fields) but the motivations and biases stay the same.

<comment><USER2> Of course, but my point is that the online shops have a much narrower range to work in. If a grocery store makes you walk around a quarter of a mile to get a ten-item list of necessities, people will accept it. If an online store makes you view half its inventory before you can purchase something, it's not going to make much business.

</comment></comment></comment><comment><USER4> On the CS side, I would add that if you mash POS data with marketing spend the results are often shocking. Consumer goods companies have terrific raw data but they ignore a surprising amount of it to their peril.

I built a little sales analysis tool for Accenture that they have since sold to several consumer goods clients. It pulls in raw marketing data--pricing, promotion types, locations, revenues--then calculates a few dozen metrics related to ROI, cannibalism etc. Client managers then drill into their marketing data from a couple layers of abstraction and from there they can see fairly clearly how their choices are affecting P&L.

We built that because the leading consumer goods companies were essentially guessing at the repercussions a given sales promotion would have on the bottom line. Today the leaders are more sophisticated but the little guys continue to revere intuition and gut instincts over statistics.

Our pilot client was Procter & Gamble. I pulled in their POS sales and marketing data e.g. endcap on Tide detergent at [x% discount] in [region y] during [phenomenon z]. I mashed that with private and public data sources, laying out the results for trending and drilldown. P&G bought as did L'Oreal and some others. I'm curious how things are going so if anyone reading has worked with these or similar tools, I would love to know how they've evolved.

It's amazing how many expensive marketing decisions are done without regard for scientific analysis. A lot is decided on the basis of how the marketing director/committee feels. In the 90s that was acceptable technology but today it is called Not Learning From Your Mistakes. Compare Google's A/B testing with "throwing ideas at the wall to see what sticks" and you begin to see the problem. Trust me, there are big P&L opportunities in this stuff.

</comment><comment><USER5> I disagree. It's more depressing than sinister. Getting people to buy more frozen pizza is what passes for sinister at the economist?

</comment><comment><USER6> Given the razor-thin margins of grocery stores I'm not sure why they don't try a more ad-supported model. Hang huge colorful printed ads over each aisle, charge fees to the name-brands if they want to be placed anywhere but directly behind the store brand, etc. Seems like they could squeeze more profit than they're currently getting.

<comment><USER7> I think they do some of those things now, with ads on the floor, blinky- lighted coupon dispensers, end-caps (?) and so on. I suppose it could get uglier, though. ;)

I also think they've become savvier about promoting their generic brands.</comment></comment>


Team USA Giant Robot Duel - <AUTHOR> https://www.kickstarter.com/projects/megabots/support-team-usa-in-the-giant-robot-duel/

<comment><USER2> As a Brit I feel that there definitely needs to be more friendly rivalries to push this field.

The UK could definitely create some of these beautifully named Jaegers:

[http://usvsth3m.com/post/56419473686/british-jaegers-what- if...](http://usvsth3m.com/post/56419473686/british-jaegers-what-if-pacific- rim-was-set-in-the-uk)</comment>


The Right to Anonymity is a Matter of Privacy - <AUTHOR> https://www.eff.org/deeplinks/2012/01/right-anonymity-matter-privacy

<comment><USER2> It's interesting that a group of people that is so in favor of free information (the "Internet" type of person) would also be almost equally in favor of control over information that pertains to them (privacy). Don't get me wrong; if a person wants to be private, I'm all for them getting their wish, but, to me, it seems to go against the ideas of open source information and a more transparent structure of communication.

As far as Anonymity goes, I believe that being anonymous gives people the freedom to complete their own desires more easily, and puts the pressure on the person and the system to being about good behavior rather than simple peer pressure.

<comment> loup-vaillant It's about power inequality. To some extent, knowledge is power. Even more so when you already have leverage (the police for instance, uses its monopoly on civil violence to act on information about criminals —catch them). If you want a just and fair society, you probably don't want too much differences of power. So, you'd redistribute power in a way similar to the way taxes (are supposed to) redistribute wealth.

Information can be used to redistribute power: give some to the powerless, and deny some to the powerful. Open Big-Corps and governments, and keep the private citizens' privacy.

<comment><USER3> >So, you'd redistribute power in a way similar to the way taxes (are supposed to) redistribute wealth.

Is that really what taxes are supposed to be? (Genuine question) I thought they were a levy on businesses and personal income in a sovereign region used to fund the governance, infrastructure and societal needs of that sovereign region?

<comment> loup-vaillant Oh. Right. I assumed a socialist setting. My country (France) has a welfare system (unemployment, retirement etc…), so part of its taxes are directly redistributed.

Note however that direct redistribution isn't the only way. For instance, the infrastructure (like roads and schools) benefits many citizens. You can reasonably equate such benefits with "a bit of wealth". So it is still a form of redistribution of wealth.

I don't think wealth redistribution can easily be separated from state.</comment></comment></comment></comment>


U.S. Visitors May Have to Hand Over Social Media Passwords: DHS - <AUTHOR> http://www.nbcnews.com/news/us-news/us-visitors-may-have-hand-over-social-media-passwords-kelly-n718216 <comment><USER2> If they get a person's password, the largest privacy violation is not to that person. It's to all that person's friends and family who shared private material.

We can discuss all we want whether it was wise for anyone to share, say, everyday normal photos of their children or themselves on Facebook.

If you think they shouldn't have shared normal, everyday, family photos on an online service, sure, fine, I don't know what to say. But let's say they did do so, which is pretty normal.

Are they entitled to some privacy from whatever pervs the DHS hires?

Remember "they" is the friends and family of the person visiting the US, not the person themselves.

Many of these friends and family will be US citizens, so arguments about differing rights for non-citizens, whether valid or invalid with respect to privacy rights, don't necessarily apply.

</comment><comment><USER3> This is so crazy. What do they think they are? Even asking for social media accounts is was already only known from dictator/monarch third world countries...</comment>


Google v. Microsoft, and the dev:test ratio debate - <AUTHOR> http://blogs.msdn.com/james_whittaker/archive/2008/12/09/google-v-microsoft-and-the-dev-test-ratio-debate.aspx

<comment><USER2> It really depends on what sort of software you are writing.

If you are writing user interface code, there are many different ways a user can screw up your program. Maybe they are holding down "alt" while right- clicking and dragging to highlight half of a misspelled word. In this situation, you really need a lot of testers. And this is a lot of what Microsoft does, local applications like Office and the operating system itself.

By contrast, websites avoid a lot of this sort of testing. You don't have to test what happens if a user clicks on a link in a strange way - that's the responsibility of the browser. Or if you work on a part of the Google search engine, you can replay query traffic to see if it crashes. That will test a heck of a lot more corner cases than any tester. With web-delivered services you can also fix glitches as you find them, which minimizes the cost of missing a bug.

</comment><comment><USER3> Eh? Isn't the sweet spot, like, every dev writing their own tests?!

I think writing tests makes you think a lot more about your code and how it will be used than just writing code ever will, obviously this is missing from the kind of software that Microsoft has historically produced...

I'm not a big fan of TATFT and/or purely agile methodologies, but, separating the dev/test roles just doesn't seem right anymore.

<comment><USER4> You separate testers from coders because many bugs relate to the developer misunderstanding the goal. I have no problem with developers suggesting additional tests or writing their own test scrips, but you need someone else to look things over and say "that works".

PS: You can also have developers testing other developers code, but IMO that's just semantics.

<comment><USER3> Wouldn't it be a better idea to make developers understand the goal better, then?

It sounds backward to add another person to a team because the other people on it don't completely understand what they're doing?

<comment><USER4> How would you validate that the developers understood the goal? You don't need 1:1 dev / testers for this but someone else needs to look at the output or your users are going to be your testers.

PS: Think about the novelist vs. editor divide.

</comment></comment></comment></comment><comment><USER5> The industry practice of having dedicated testers is intentional class stratification. They don't have to pay testers as much, testers are interchangeable, and they can use them as entry-level drudgery positions.</comment>