Introduction to Programming (course by Eiffel lang creator Bertrand Meyer) - <AUTHOR> http://www.multimedia.ethz.ch/lectures/infk/2009/autumn/252-0021-00L

<comment><AUTHOR> I have to say after I read the Eiffel chapter in the book Masterminds of Programming, I became a fan of Bertrand Meyer

If you have time to learn a new language, I would recommend Eiffel</comment>


Ask HN: Side Project Website Feedback Request Pt II - <AUTHOR> Hey everybody. A few days ago I asked the HN community to check out my side project SkipTheStamps.com - a simple tool to send people postcards (either anonymously or signed) (https://news.ycombinator.com/item?id=13652044). Based on comments and site usage I changed up the workflow of the site a bit.<p>* Moved the post card select screen to the front page<p>* Open the service up to ship internationally and not just domestic (United States)<p>* Do not prevent users to proceed with order based on lack of address verification. (most folks do not mess up addresses)<p>So if you all do not mind can you check out my project SkipTheStamps.com and let me know what you think? <comment><USER2> This seems much better than previously. It's nice to see some previews before having to fill in all the details. But I have to say, the scrollbars look annoying and unnecessary.

<comment><AUTHOR> Thanks for the feedback! What device are you viewing on?

</comment></comment><comment><USER3> I get an error trying the Bitcoin payment option: [https://i.imgur.com/nET7tMG.png](https://i.imgur.com/nET7tMG.png)

<comment><AUTHOR> Thanks for that. I removed the bitcoin option for now, credit cards do work :)</comment></comment>


Maybe Skip SHA-3 - <AUTHOR> https://www.imperialviolet.org/2017/05/31/skipsha3.html <comment><USER2> > SHA-3 did introduce something useful: extendable output functions

Much more than that!

Keccak (SHA-3) introduced the Sponge construction. This goes _way_ further than extendable output functions: It allows you to build all the symmetric cryptographic primitives from one basic element! This means: hashes, PRNGs, MACs, encryption, AEAD, etc. The only thing you need that looks like crypto code is a single permutation function. This significantly reduces the amount of security critical code to write. If you talk about hardware implementations, the permutation function takes less die space than SHA2, and optimizes all these primitives.

The sponge construction and all it's derivatives are proven secure assuming the permutation function is. And assuming SHA3 is secure, the permutation function is too. The alternative, the Merkle–Damgård construction, has a bunch of known problems. It's also used by pretty much every thing else, so it made sense to diversify.

Honestly, I'm a bit sad by the reputation SHA-3 is getting. It is an eye- opening elegant design that makes all previous crypto look overly complex.

<comment><USER3> > It allows you to build all the symmetric cryptographic primitives from one > basic element! This means: hashes, PRNGs, MACs, encryption, AEAD, etc

Isn't this true for most cryptographic hash functions? MAC with HMAC or H(key || m), encryption with a CTR-like mode on top of the MAC, etc.

<comment><USER4> Observe also that Chapoly, which is built on a stream cipher generated from a hash running in counter mode, written by basically one of the pioneers of ciphers-from-hash-constructions, does not use its hash core as its MAC; it's simply faster to use a polynomial MAC.

<comment><USER2> With a sponge construction the AEAD is a one-pass operation. You feed plaintext in, out comes ciphertext. In the end you crank it one more time and out comes the MAC/tag.

This is unlike other constructions, where you need to go over the data twice, with two different crypto algorithms (encryption + mac) that may or may not share a core component.

<comment><USER4> OCB does the same thing, without a sponge construction.

</comment></comment></comment></comment></comment><comment><USER5> SHA-3 does seem to have relatively little to offer by way of incentives to switch. "Just as good" isn't motivation, and any notions of higher cryptographic strength haven't been extensively discussed. "Easier to implement in hardware" will be more compelling when such hardware exists.

I'm curious about the statement that SHA-3 is slow; it links to [https://www.imperialviolet.org/2016/05/16/agility.html](https://www.imperialviolet.org/2016/05/16/agility.html) , which doesn't seem related, and matches the previous link. I wonder if that was supposed to link to somewhere else, like [http://bench.cr.yp.to/results- sha3.html](http://bench.cr.yp.to/results-sha3.html) (as linked from [https://www.imperialviolet.org/2012/10/21/nist.html](https://www.imperialviolet.org/2012/10/21/nist.html) )?

From that, SHA-3 certainly doesn't run significantly faster than alternatives (variants of BLAKE do indeed outperform it), but it seems roughly on par with SHA-256/SHA-512. But "on par" doesn't give any incentive to switch.

I wonder how much relative attention the SHA-3 winner (Keccak) gets compared to other alternatives, like BLAKE?

<comment><USER6> _> I'm curious about the statement that SHA-3 is slow; [...] I wonder how much relative attention the SHA-3 winner (Keccak) gets compared to other alternatives, like BLAKE?_

Coincidentally, I ran a bunch of hash performance benchmarks last week. These were my findings:

      test:  hash a 500MB block of memory.
      hardware:  Intel Core i7-5820K Haswell-E 6-Core 3.3GHz
      compiler:  MSVC2017 (19.10.25019), 32-bit exe:
        blake2sp - official reference code[1]     153MB/sec
        SHA3 - Keccak official reference code[2]   12MB/sec
        SHA3 - rhash sha3[3]                       45MB/sec
        SHA3 - Crypto++ library v5.6.5[4]          57MB/sec
        SHA256 - Crypto++                         181MB/sec
        SHA256 - MS Crypto API[5]                 113MB/sec
        SHA1 - MS Crypto API                      338MB/sec
        MD5 - Crypto++                            345MB/sec
        CRC32 - Crypto++                          323MB/sec

The conclusion is that the fastest SHA3 implementation (Crypto++ lib with its assembly language optimizations) is more than 2x-3x slower than SHA256. I can't speak for SHA3 implemented in FPGA/ASIC but as far as C++ compilation targeting x86, it's slow. I've been meaning to try the Intel Compiler to see if it yields different results but haven't gotten around to it yet.

Blake2sp is fast. The official reference code is not quite as fast as Crypto++ implementation of SHA256 but it's faster than Microsoft's Crypto API of SHA256. (There are several variants of BLAKE and I chose blake2sp because that's the algorithm WinRAR uses. I think the specific variant of BLAKE that directly competed with Keccack for NIST standardization is slower.)

[1] [https://github.com/BLAKE2/BLAKE2](https://github.com/BLAKE2/BLAKE2)

[2] [http://keccak.noekeon.org/files.html](http://keccak.noekeon.org/files.html)

[3] [https://github.com/rhash/RHash/blob/master/librhash/sha3.c](https://github.com/rhash/RHash/blob/master/librhash/sha3.c)

[4] [https://www.cryptopp.com/](https://www.cryptopp.com/)

[5] [https://msdn.microsoft.com/en- us/library/ms867086.aspx](https://msdn.microsoft.com/en- us/library/ms867086.aspx)

<comment><USER7> I guess 32-bit x86 performance is maybe not the best benchmark. I think people aren't optimizing for that ISA to the same extent as they are optimizing for x86-64, 64-bit ARMv8, or 32-bit ARM.

If you care about performance and you don't have dedicated SHA-256 instructions then on a 64-bit platform you should evaluate SHA-512 as it is much faster. If you only have 256 bits of storage available then truncate its output to 256 bits. IIRC, it's about 1GB/sec on my Haswell laptop.

<comment><USER6> _> I guess 32-bit x86 performance is maybe not the best benchmark._

I compiled for 32bit instead of 64bit because I wanted the same executable to also run on a 32bit Macbook. When Thomas Pornin ran benchmarks[1] in 2010 for both 32bit & 64bit, the SHA256 hash performance didn't change as much as the SHA512. I'll recompile for 64bit and report back if there was a massive difference.

[1] [https://stackoverflow.com/questions/2722943/is- calculating-a...](https://stackoverflow.com/questions/2722943/is-calculating- an-md5-hash-less-cpu-intensive-than-sha-family-functions/2723941#2723941)

<comment><USER8> SHA-3 lanes are 64 bits. In 64 bits arch they can use full registers for operations. I'd bet it would be way faster on 64bit

<comment><USER9> Mismatches can show an interesting property. It is likely that SHA-256 is slower than Keccak on 64-bit platforms, and that SHA-512 is slower than Keccak on 32-bit platform.

</comment></comment></comment></comment></comment></comment><comment><USER3> > SHA-3 did introduce something useful

To me the most useful part of SHA-3 is that you don't need to use HMAC as it is not vulnerable to length extension attacks. Meaning that it's much faster than SHA-2 when used as a MAC construction.

<comment><USER10> But aren't we trying to get away from MACs into authenticated ciphers?

<comment><USER4> An authenticated cipher is usually just a composition of a cipher and a MAC.

<comment><USER10> Presumably, if you're using the composition, it's hardened against the length- extension attack in the first place, right?

I mean the advantage seems to only be there when you're cobbling together your own constructions, i.e. doing what you shouldn't be doing.

<comment><USER4> Length extension attacks are idiosyncratic to hash functions with a particular underlying design (Merkle-Damgard compression). They are the reason we have HMAC. AEADs built on MACs that are not built on general-purpose hash functions don't have that problem.

</comment></comment></comment></comment></comment><comment><USER11> My suggestion after looking around for the best hash function is SHA-256. Not SHA-512, not SHA-512/256\. Not even SHA-224 because it offers no performance benefits.

BLAKE2 is a good candidate right now considering speed. But SHA-256 instructions will only get more prevalent which will take care of the speed issue.

There have been speed comparisons between SHA-256 and BLAKE2 without SHA instructions[1]. BLAKE2 seems like good option then, with the optimized code.

But once SHA extensions use hardware instructions, it gets a 5.7x boost which blows BLAKE2 out of the water.[2] There are instructions for SHA-256 in NEON too although I couldn't find any benchmarks. I'd say it'll definitely be faster than BLAKE2 with HW instructions.

Combine that with SHA256 being uber popular everywhere, that'll be one less headache.

I also doubt SHA-256 will be over thrown in the near future, atleast until SHA-3 instructions become commonplace, which I anticipate will take about a decade from now.

[1]: [https://news.ycombinator.com/item?id=14357197](https://news.ycombinator.com/item?id=14357197)

[2]: [https://github.com/randombit/botan/issues/807#issuecomment-2...](https://github.com/randombit/botan/issues/807#issuecomment-270652403)

EDIT: Looks like SHA-224 might be the best option, considering it has the same core with a truncated output which will make it immune to length-extension attacks.

<comment><USER4> The advantage to 224 or 512/256 is that they don't expose the full register state of the hash at output and thus, like Blake2 and SHA-3, aren't vulnerable to length-extension attacks: you can (though it would be idiosyncratic to do so) use a simple prefix MAC with them, rather than HMAC.

<comment><USER12> With SHA 224, there is only 32 bits worth of information that are lost. Isn't a LEA "feasible" by generating the ~ 4 billion messages and finding the 1 that validates.

With 512/256 this is infeasible.

Is this a real concern with 224 in practice?

<comment><USER4> 224 is 512/224.

<comment><USER12> According to [https://en.m.wikipedia.org/wiki/SHA-2](https://en.m.wikipedia.org/wiki/SHA-2)

There is SHA 224 which has 256 bit internal state and SHA 512/224 which has 512 bit internal state. In my previous comment, I was referring to the former.

<comment><USER13> This is how it's defined in FIPS-180, more or less (SHA-224 is SHA-256/224). This confusion is why I like explicitly stating SHA-256/x or SHA-512/x.

</comment></comment></comment></comment></comment></comment><comment><USER14> The assessment that SHA-3's performance is bad completely disregard the results from hardware benchmarking (FPGAs and ASICs). All the hardware results have shown conclusively that Keccak is multiple times faster than SHA-2. While I can't say that the algorithm is going to be supported in HW, with enough usage it might be the case.

Edit: Removed my comment regarding BLAKE as it was incorrect.

<comment><USER15> By selecting primitives designed for hardware (AES and GHASH) rather than primitives that use operations that are commonly applicable (ChaCha20 and Poly1305), we've ended up with extra hardware to support AES and GHASH. But it's not clear that was actually a good idea, or just path dependence.

ChaCha20, Poly1305, BLAKE2 benefit from improvements that benefit a wide-range of applications, while SHA-3, AES and GHASH do not. Thus the "cost" of high performance support for the former can be amortised over a much wider base.

<comment><USER14> I suspect that the extra hardware support is not a major concern. This might be because any company that has a true security concern will eventually need to designated an area on its silicon for cryptographic purposes. This area will be security hardened to protect against any side-channel attacks.

Also, sharing HW resource for cryptographic purposes is not possible for any device that needs to pass certain security certification.

Edit: Typo and additional comment

<comment><USER4> It's already a problem. The most popular authenticated encryption construction is AES-GCM, which is/was difficult to implement safely on popular mobile platforms because their ARM ISAs required side-channel-prone table-based implementations to be performant. We had to select, in protocols, between Chapoly and GCM to get safety and performance on all those platforms.

Most vulnerabilities in cryptosystems happen in the joinery. Anything we can do to eliminate joinery is going to make our cryptosystems more resilient. Selecting _new_ primitives that will require hardware support to be performant seems like an own-goal.

As someone who has done a number of audits for certified devices, I don't think your statement about shared hardware is accurate. Are you talking about FIPS 140?

<comment><USER14> That's the reason why I said "suspect" =). I do not claim to know the exact reason for the selection. In any case, the standard is finalized. If you're concern about this being the problem for the next standard which will likely to affect the use of AES-GCM, I suggest you participate in the current cryptographic contest that would target authenticated encryption: CAESAR ([https://competitions.cr.yp.to/caesar- submissions.html](https://competitions.cr.yp.to/caesar-submissions.html)). I'm not sure how this will affect the overall usage of authenticated encryption in the industry, but this is currently one of the main topics of interest for cryptographic researchers.

"As someone who has done a number of audits for certified devices, I don't think your statement about shared hardware is accurate. Are you talking about FIPS 140?"

Yes. Is my understanding incorrect? I'd like to be informed if this is the case. Thanks.

<comment><USER4> There are FIPS certification levels where shared hardware footprint is an issue, but most commercial devices don't need to ship devices with that certification.

I really don't care about what the standards say; thankfully, the important standards, like TLS, aren't bound by what NIST standardizes.

</comment></comment></comment></comment></comment></comment><comment><USER16> A rather minor point but:

>[The diversity of cryptographic primitives] contributes to code-size, which is a worry again in the mobile age

In the "mobile age" we use embedded processors with gigabytes worth of RAM and several times the amount of NAND storage, I don't really think a SHA-3 implementation is going to tip the boat over.

The author's other points seem very fair though.

<comment><USER15> I can confirm that the code size of BoringSSL is something that we worry about for mobile apps. A 50KB increase (which wouldn't be much for an optimised SHA-3) would raise questions.

I admit that when I see the 100MB+ size of apps that I have to download, I do wonder why. But I assume that it would be even worse were people not worrying about this stuff.

<comment><USER17> > A 50KB increase (which wouldn't be much for an optimised SHA-3) would raise > questions.

Can you elaborate on that? That's orders of magnitude bigger than a naive implementation, and wouldn't fit in L1 cache either.

</comment></comment></comment><comment><USER18> > As I've mentioned before, diversity of cryptographic primitives is > expensive. ... exponential number of combinations ... limited developer > resources ...

It's a good point that diversity is expensive. There's a counter-argument too: if we all decide to use one thing, but it goes wrong - then we're in serious trouble. If we have multiple approaches, then the damage is lessened if one of them turns out to have problems.

In other words, I think it's better to have a variety of approaches to manage risk, even if it does impose costs.

<comment><USER4> The track record on that design strategy is not good. We've been pursuing designs with cryptographic diversity built in for several decades, and the result has been decades of terrible vulnerabilities --- almost none of which have been mitigated by diversity!

<comment><USER8> Have we had some big crypto failures besides "everyone was using md5" and "everyone was using DES"?

<comment><USER4> Yes: for instance, the TLS BEAST vulnerability, which affected all the block ciphers in that version of TLS, because the protocol standardized interchangeable ciphers and a message encryption construction based on CBC as separate components.

Ironically, when the RC4 attack refinements were published, for awhile sites were forced to choose between a vulnerable CBC implementation and using the vulnerable RC4 cipher.

With the exception of MD5 in X.509 certificates and RC4 in TLS, has there been another cryptographic vulnerability that required the retirement of a cipher? SWEET32 is about as close as you come to that, right?

And, obviously, there have been many more problems, even just in TLS, than X.509 MD5 and RC4.

<comment><USER8> Wasn't that more because we had not really thought of aead constructions? I mean we didn't even know we had to mac after encrypting.

If we had more stream ciphers at the time we would not have been stuck with beast or rc4.

Imo sweet32 was just the weak but well-marketed cherry on the top to get rid of the previous generation. We just had the sha-1 collision.

<comment><USER4> We had plenty of good ciphers available in TLS when this happened, but because the BEAST bug was in joinery and not in the cipher itself, it didn't help. Cipher agility didn't help, and in fact probably hurt us.

<comment><USER19> Which "good" ciphersuites [1] were usable in TLS 1.0 when BEAST was made public in June 2011; with BEAST affecting only TLS 1.0?

TLS 1.0 per RFC 2246 defined DES40_CBC, DES_CBC, 3DES_EDE_CBC, RC4_40, RC4_128, and IDEA_CBC.

RFC 4132 added CAMELLIA_128_CBC and CAMELLIA_256_CBC in 2005, RFC 4162 proposed SEED_CBC in 2005, and RFC 6209 in April 2011 informationally specified ARIA_128_CBC, ARIA_256_CBC, ARIA_128_GCM, and ARIA_256_GCM, but the GCM ones only work in TLS 1.2 or later. Same story with CAMELLIA_*_GCM.

Informational RFC 5469 in 2009 deprecated the use of DES and IDEA ciphersuites, so that left RC4, 3DES_EDE, the Korean ciphers SEED and ARIA, and CAMELLIA, with the block ciphers in CBC. Pretty much no one supported the latter three, and when Mozilla rejiggled the ciphersuites in 2013, support for these was removed entirely [2].

Your point still stands about BEAST being a flaw in the glue rather than the ciphers themselves, but I believe the parent poster makes a stronger point about the complete lack of AEAD constructions before TLS 1.2, and the lack of other stream ciphers which were more self-contained in TLS 1.0 and thus unaffected.

[1] [https://www.iana.org/assignments/tls-parameters/tls- paramete...](https://www.iana.org/assignments/tls-parameters/tls- parameters.xhtml#tls-parameters-4) [2] [https://news.ycombinator.com/item?id=12393683](https://news.ycombinator.com/item?id=12393683)

<comment><USER20> I feel that tptacek's point is that excessive cipher agility in TLS precluded adoption of AEAD (and "unconventional" modes in general), because it was built on assumption that the interchangeable primitive is the block cipher itself (ie. keyed primitive that transforms n bit input to n bit output) and not the combination of cipher+mode (which transform arbitrary length input into some, preferrably longer, output). You cannot plug AEAD into framework that expects block cipher and MAC.

(Due to how all this is really implemented, this in fact was not technical problem, but problem of "design culture" or something like that)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER21> The SHAKE family of functions (and cryptographic sponges in general) are very cool, but like the article says, SHA-3 is weakened by failing to focus on performance. If SHA-2 is sufficiently secure (which looks more and more the case) then a faster SHA-2 would have been a better way of looking at what was wanted out of SHA-3.

Faster primitives means more PBKDF rounds, more usage of hashes to secure underlying data.

<comment><USER4> If you're concerned about the primitives making up your password hash, you shouldn't be using PBKDF2 to begin with; better to use a purpose-built KDF like scrypt, bcrypt, or argon2.

</comment></comment><comment><USER22> Speed isn't a black-and-white panacea property, cost of brute-forcing (ram, cpu, time and money) and other attacks should also be prioritized for a given use-case (ie argon2, scrypt). Fixating on a single, fast algorithm and making it a near universal monoculture makes it easier for well-funded state and corporate entities to reduce their costs to generate a hash collison or do something else nasty because they only have to invest in one kind of possibly cheaper/simpler ASIC building-block.

Having several different, but throughly sensible algorithms who's strengths, weaknesses and limitations are well known is a better approach than saying "everyone use X" a-la NESSIE. Users with Paradox of Choice going on can pick the lunch special, AES.

</comment><comment><USER23> in short: "SHA-3 should probably not be used. It offers no compelling advantage over SHA-2 and brings many costs."

</comment><comment><USER24> Why don't we use hash functions that combine the output of two discrete hashing functions and combine the results?

It seems to me it's easy to break sha or md5, but what about breaking two fundemantally different algorithms _at the same time_?

Implementation seems as easy as concatenating the two hex outputs into a single string and comparing the results.

I'm curious to what others think of this idea.

<comment><USER15> It turned out that breaking the combination is SHA-1 and MD-5 is much easier than people expected: [https://www.iacr.org/archive/crypto2004/31520306/multicollis...](https://www.iacr.org/archive/crypto2004/31520306/multicollisions.pdf)

<comment><USER4> Shameless plug (this is one of Sean's, though):

[http://cryptopals.com/sets/7/challenges/52](http://cryptopals.com/sets/7/challenges/52)

</comment></comment></comment><comment><USER8> I believe this is a good complememt to agl's post with a focus on K12 instead: [https://cryptologie.net/article/393/kangarootwelve/](https://cryptologie.net/article/393/kangarootwelve/)

</comment><comment><USER25> The preimage strength debacle is probably worth mentioning</comment>


Facebook appears to have quietly added up/down voting to comments - <AUTHOR> http://imgur.com/0KinN

<comment><USER2> I'm seeing it. This is different from a "dislike" button though.

When you have blog posts and other content with hundreds or thousands of comments, chronology is no longer an effective way of sorting. This idea seems to make sense. I think that I heard that YouTube finally did something similar with video comments.

</comment><comment><USER3> I saw this the other day, I think it is ONLY on their blog.

</comment><comment><USER4> What is the source of this screenshot?

<comment><AUTHOR> <http://blog.facebook.com/blog.php?post=2356432130>

</comment></comment><comment><USER5> You might be in an A/B test.

<comment><USER6> He might be. I dug around and can't see any such buttons in my account.</comment></comment>


My thoughts on Google Go - <AUTHOR> http://bentilly.blogspot.com/2009/11/my-thoughts-on-go-googles-new-language.html

<comment><USER4> My thoughts on Google Go:

1\. Terrible name

2\. Theres no reason to keep to C-style syntax

3\. _go <function>_ is a nice feature

4\. Control structures add nothing new and just seem generally underwhelming to me

5\. The built-in data types are an improvement over a lot of languages, but are underwhelming when compared to something like Clojure, Haskell, OCaml or Factor

6\. Channels are a great way of dealing with mutable data in a concurrent environment, but I'm not convinced they're enough

7\. Slices and pointers without arithmetic are a good idea

8\. The interface system seems like an interesting idea

9\. I'm not sure I understand how this is to be a "systems language", especially when they say that its impossible to do manual memory management

10\. Lack of things I like: lisp-like macros, closures, pattern matching, parametric types, dataflow constructs, iterators, list comprehension..

Though I personally don't like the syntax very much, it is certainly familiar and easy enough to pick up, so I imagine this will be useful to a lot of people. I think Go is an interesting experiment which will, hopefully, lead to some more powerful and interesting languages, but I cant see myself ever using Go itself.

Its nice to see a C-like language take concurrency more seriously, but after having used Clojure a lot over the past month or two, it just doesn't really seem so concurrency oriented to me.

<comment><USER5> Go isn't trying to replace Clojure, Haskell, OCaml, or Factor. It's trying to replace C++.

<comment><USER4> Sure, I'm just saying that for me, personally, it doesn't add enough to make it worthwhile[1]. D is a great C++ replacement too and I think one of the reasons it never really took off is because it just doesn't add enough to be worth it (and D adds a good few niceties while still being familiar enough that C++ programmers can pick it up quickly and easily). Admittedly, D has a few other issues, but I don't feel they're relevant to this conversation - <USER2> might have them too, who knows.

Having said that, I'd probably prefer people write code in Go over C hacks.

[1] C++ was my language of choice for a few years, so I do, at least partially, compare a language to C++ when I learn a new one and not only to _< latest cool language>_, though I admit I do that too.

</comment></comment></comment><comment><USER6> My question about Go: why does it need pointers?

Given that it has garbage collection, arrays/slices, and it disallows pointer arithmetic, it seems it would suffice to use references everywhere.

I thought maybe it was for easy interop with C APIs, but it seems it needs a FFI for that anyway.

Perhaps someone can enlighten me about that design decision? I'm sure there's a reason, I just don't immediately see it.

<comment><USER4> I assume its because they don't want _references everywhere_. For example, allowing the programmer to choose if an object is allocated on the stack or heap, passed by reference (using a pointer) or by value.

<comment><USER7> Can you elaborate on when an object is "allocated on the stack" versus being "allocated on the heap" in Go?

<comment><USER4> The echo program from the tutorial[1], line 21:

 _var s string = "";_

Now, I don't see it written there that it is on the stack, but I imagine so. From the source code of 6g, in cgen.c[2], line 884, you can see this comment:

      /*
       * n is on stack, either local variable
       * or return value from function call.
       * return n's offset from SP.
       */

Sounds to me that local variables and return values are always on the stack, which makes sense to me.

[1] <http://golang.org/doc/go_tutorial.html#tmp_44>

[2] [http://code.google.com/p/go/source/browse/src/cmd/6g/cgen.c?...](http://code.google.com/p/go/source/browse/src/cmd/6g/cgen.c?r=release)

</comment></comment></comment></comment><comment><USER8> The question I have about Go is: why?

From what I read, Erlang is better at what Go tries to do.

Maybe it's just a 20% project that is being released into the wild...

<comment><USER9> Erlang does some stuff very, very well, and other things... perhaps not so well. Also, the syntax for most people is a bit of an initial stumbling block. In other words, I don't think Go is really aimed at Erlang's sweet spot, although perhaps it could be used to build Erlang-like systems, given some time and effort.

<comment><USER10> We need to encourage people to get over their fear of syntax which is not C-like. I find much more pain in C-like syntax being jammed onto new languages than new languages daring to be different (and possibly coming up trumps, or being a disaster, but it's more interesting if they're different and perhaps better in some ways, IMHO).

<comment><USER9> Sure, but perhaps that is not a battle this particular group wants to fight.

BTW, Erlang's syntax has some annoyances that go beyond just not being C. "Ant turd tokens", for instance. Nothing that's going to stop a competent developer, of course.

<comment><USER11> I've never got the "And turd tokens" thing after using the language for a few days. It pretty much all makes sense to me.

I've already posted <http://news.ycombinator.com/item?id=837217> to express my opinion on that though, if you want to read it.

<comment><USER9> <http://news.ycombinator.com/item?id=837462> \- the answer to your post - <USER3> up nicely why they are annoying: they make it so that one line of code is often not interchangeable with the next, so when you refactor or cut and paste, you have to go fiddle with line endings.</comment></comment></comment></comment></comment></comment>


Intuitive crutches for higher dimensional thinking - <AUTHOR> https://mathoverflow.net/questions/25983/intuitive-crutches-for-higher-dimensional-thinking/26095#26095 <comment><AUTHOR> Terence Tao's answer here fascinates me, even though I only partially understand his response.

> For instance, one can view a high-dimensional vector space as a state space > for a system with many degrees of freedom. A megapixel image, for instance, > is a point in a million-dimensional vector space; by varying the image, one > can explore the space, and various subsets of this space correspond to > various classes of images.

I don't understand this. How is he thinking of a 2D data structure as a n-dim vector space? The only way I can think of mapping n-dims to 2d is maybe taking two n-dimensional vectors and visualizing the 2D plane between them, or projecting n-dimensions onto 2D space...

> For instance, the fact that most of the mass of a unit ball in high > dimensions lurks near the boundary of the ball can be interpreted as a > manifestation of the law of large numbers, using the interpretation of a > high-dimensional vector space as the state space for a large number of > trials of a random variable.

I think this came up recently in another hnews thread. The way I interpret this statement is that you can interpret the probability of events occurring in a portion/segment of a n-dimensional space as permutations of those segmented events in each dimension:

1/k^n where: k = number of segments n = number of dimensions

So for example, if you have a 1D line, and you want to find the probability of ending up in a third of the line, the formula is: 1/3^1 = 0.333

If we think extend this to a plane, and look at the probability of ending up in the third of 2 dimensions:

1/3^2 = 1/9

Would be curious if someone has another interpretation.</comment>


Young American Men Are Choosing Video Games Over Work in Staggering Numbers - <AUTHOR> http://fortune.com/2017/07/16/video-games-users-men/ <comment><USER2> I've seen this cited so many times I had to dig into the root paper [1] The entirety is going to require some reading after work, is quite lengthy, but from a brief skimming I'm far from convinced that they're not inverting causation, and even if they aren't, they phrase their conclusion FAR more gently than TFA, leading to an interpretation that I find far more in congruence with reality: That there has been a confluence of games being better with real life propositions being worse for the demographic brackets in question. Even preparing for college and work 20~ years ago was an abysmal experience for me, and with the world as it is now, I don't know how I'd have found the motivation if I needed to do it again. And then you're posed with the alternative of a beautiful escapism, a world in which you have power, autonomy, a job you enjoy, and can work towards a better life? At the risk of waxing philosophical, if you want to make people play less video games, don't blame the video games; that's paramount to the mistakes we made back in prohibition. Focus on making the world for these people a better place so they don't need a respite from it.

[1] [http://scholar.princeton.edu/sites/default/files/maguiar/fil...](http://scholar.princeton.edu/sites/default/files/maguiar/files/leisure- luxuries-labor-june-2017.pdf)

</comment><comment><USER3> A behavior will not typically be modified until the alternative is more appealing. It is not as simple to connect behavior to cause as this study implies without limiting outside factors.</comment>


Nice how-to about riot.js - <AUTHOR> http://streamdata.io/blog/exploring-riot-js-part1/

<comment><AUTHOR> A total now of 6 blogposts! including some samples</comment>


Regex Edit Distance - <AUTHOR> http://languagengine.co/blog/regex-edit-distance/ <comment><AUTHOR> The general idea here is that you can calculate not only whether or not a string matches a regex, but if it doesn't match, precisely by how much (in the minimal case).</comment>


Warehouse: All New PyPI is now in beta - <AUTHOR> https://pyfound.blogspot.com/2018/03/warehouse-all-new-pypi-is-now-in-beta.html <comment><USER2> Wasn't pypi.org in beta since ... forever?

<comment><AUTHOR> It was "pre-production" before it became "beta".</comment></comment>


Ask HN: What is the best source for Hurricane Harvey news? - <AUTHOR> What is the best source for Hurricane Harvey news, especially the impact on Houston?  It's all over the news right now, but in classic form it's mostly a jumble of random stories, and it's very hard to get a good overview or some decent analysis. <comment><USER2> [https://spacecityweather.com/](https://spacecityweather.com/) \- "Hype-free forecasts for greater Houston with Eric Berger and Matt Lanza"</comment>


Let "Space Rocker" magically transport you to 1998 - <AUTHOR> http://www.spacerocker.com/

<comment><AUTHOR> There is a bar at the bottom that says "universal web navigation." It links to 10 search engines, none of them Google.</comment>


The Polity Is Libertarian Space Opera Done Right - <AUTHOR> https://www.wired.com/2018/07/geeks-guide-neal-asher/ <comment><USER2> From the article:

>But Asher says he's not interested in sending any sort of message in his fiction. "I just wrote it as I saw it," he says. "I've never thought that much about it. My aim is to tell a story and to entertain."

That's what political writers using entertainment to push a political message always say in interviews.

>He's more outspoken on Twitter, where he regularly posts about politics. He says that social media has made him acutely aware of just how unwelcome his views are in the overwhelmingly liberal world of science fiction, to the extent that he simply avoids science fiction conventions altogether.</comment>


"40% Chance of Pandemic" – Is Moody's Coronavirus Risk Assessment Malpractice? - <AUTHOR> https://seekingalpha.com/instablog/48606151-craig-dalton/5414304-40-chance-of-pandemic-is-moodys-coronavirus-risk-assessment-malpractice <comment><USER2> What is the definition of 'pandemic' used?

If we take the definition as being "an epidemic occurring worldwide" [1] then it is still arguable whether a coronavirus pandemic has started just yet since there is no reported cases of local transmission in Africa and in South America.

The definition of the term is crucial to discuss Moody's report, or just to have any discussion on the topic, and it seems a bit light that the article's author only brushes on it at the very end of the article, and uses a definition slightly different than the above ("global spread").

[1] [https://www.who.int/bulletin/volumes/89/7/11-088815/en/](https://www.who.int/bulletin/volumes/89/7/11-088815/en/)

</comment><comment><USER3> No one knows. It might be mildly irresponsible of Moody's to hazard a guess, but the author's contention that that guess is obviously wildly low is just silly.</comment>


Hire Programming Tutors now on WageMachine - <AUTHOR> http://wagemachine.com/blog/hire_programming_tutors_now_on_wagemachine

<comment><USER2> I'd happily solve/tutor a one-off problem for 2 hours at a lower fixed price ($100-200), but as much as I like the idea of one-off tutor sessions, I can't get behind a minimum wage rate.

At my usual $150 hour rate, it would take 17 hours on WageMachine to match _one hour of work_. I could just as easily spend those 17 hours finding that one hour of work (and it wouldn't be just one hour).

[Edit] Thinking about it more, I think your idea is very good, but lacks any real traction without being able to genuinely pay real experts -- I don't mean "highly talented, industrious, college educated, English speaking, and lives in the United States", but rather, someone who has _at least_ a decade of work experience, is near the forefront of their field, and would like to invest some time in assisting, teaching, solving other people's once-off issues.

One of the primary reasons I don't participate in StackOverflow is that the vast majority of questions are simply boring. For $150, nobody is going to ask a boring question (and if they do, at least they're paying market rate for the answer).

<comment><USER3> Maybe you could handle 17 WageMachine threads simultaneously.

<comment><USER4> Now there's an idea! It would be like sitting in the Django IRC for an hour or two, but getting paid for each person who you offer advice to, regardless of the time overlap.

<comment><USER5> Problem is that you'd lose time dealing with each transaction.

I'd rather have one $1000 transaction than a dozen $100 transactions unless the process was _completely_ automated (no one questioning time-tracking, no getting-to-know-you period, no trading contact details - just work done and money in the account).

</comment></comment></comment></comment><comment><USER6>
      Every worker on WageMachine is highly talented, industrious, college educated,
      English speaking, and lives in the United States.
      http://wagemachine.com/blog/learn_more_about_wagemachine

Then why the hell are they working for minimum wage at a deadend job on your site?

<comment><USER7> Some people don't want more then they need. _If_ Minimum wage is supposed to be all you need to live off of, then you'll find people who like helping others working for about that. I've known teachers who's summer or side jobs made them more money their their primary jobs, yet they still teach.

This site isn't supposed to be a full time job, it's supposed to be a low barrier way to pick up a few bucks for the ride home. While programming might not be the best area for this (not sure about the market of tutors) I love the concept.

</comment></comment><comment><USER8> First I think they need a rating system so people can see at a glance who is really good.

Then they need to pay based on ranking. Everyone starts at minimum wage but if you get five stars suddenly you are making $25 an hour.

<comment><USER9> Wanted: web programmer with knowledge of game theory to help design a rating system (must be useful, fair, and hard to subvert) for new programming tutoring site.

</comment></comment><comment><USER10> I regularly tutor people in programming and act as a helpdesk, am considered a good tutor/helpdesk, and I would never offer my tutoring/helpdesk services at that puny rate.

I absolutely love the idea, but you NEED to let the tutors set their own rate. Anyone want to build such a site, possibly working with me? I own "software- shaman.com" and have been meaning to set it up for something like this, but haven't felt any urgency yet.

EDIT: Now I also have programmer-helpdesk.com (and both w/o hyphens)

<comment><AUTHOR> Thanks for the feedback.

We limit it to a 30min-2hr shifts. My hope is people will do a quick 30min-1hr help session, and then if it's a good fit continue to work together (offsite). The idea here is to speed up the initial intro period.

> You may not use WageMachine to find workers and then conduct the transaction > off site, unless you pay them at least their "Normal Rate".

<comment><USER10> I don't see how that would be worth the trouble to a good tutor.

</comment></comment></comment><comment><USER11> I wonder if hours are the best metric? All of the advisors i've had outside of school have rarely spent a whole hour with me, but still managed to help me a lot. Unless you are a complete beginner to programming, I suspect that a lot of the problems you have are of the "how do I do x in language y" sort. So maybe it could be priced by question, or by problem?

<comment><USER12> I agree. Experts may be interested in answering questions for wages around 10 dollars per question or problem. As you pointed out most questions and explanation sessions will not take a full hour.

In general I agree with tentonova2. Going rates are 10 to 20 times minimum wage. It's scary to imagine what sorts of people you'll get for minimum wage.

All this being said, If it's well organized and non-for-profit I would be interested in volunteering to work one on one with students. I am a strong believer that mentoring is a great way to train inexperienced programmers.

I imagine most of us have, at one point or another, ended up helping someone with their Math assignment at the local coffee shop. It would be nice to provide the same help to inexperienced programmers with the same casual relationship.

</comment></comment><comment><USER13> I like the clean interface. Your gear image looks ugly. Remove the period after "...wage right now".

Set up a comet-based common chat that everyone sees, and sit in it. This will let you help users learn to use your system, and will give you valuable feedback which you can use to improve it. You need to make "sitting around waiting for work" interesting. One way to do this is to piggyback the rest of the site on an irc-like technical chat.

You absolutely need a reputation system for this.

Why limit yourself to tutoring and to minimum wage? What if I'd like someone to give me a code review for $3?

</comment><comment><USER14> I think this is a great idea, but agreeing with other commenters minimum wage is likely far too low. My brother and I are fairly new to ruby on rails, and we often get stuck and left at the mercy of support forums and friendly programmers. Many times we'd gladly pay for an "office hours" type service, especially since one hangup can cost us a day or two... one model might be to try letting users post questions along with an ideal price range and let programmers bid to answer it, like a stack overflow for business users.

<comment><USER5> Or elance for small/quick problems.

What I'd do is white-label it and make it available (revenue share) with communities/networks. e.g., say ForumX always has newbies struggling to install their code and get things working, and a voluntary support forum isn't always ideal. So they run paidsupport.forumx.com (or whatever) as a marketplace for cheap installation help. Scrape x% from the transactions to split between ForumX and WageMachine.

</comment></comment><comment><AUTHOR> If anyone...

\- Wants an invite

\- Has ideas about better use cases than programming tutors

...please let me know! (here or on firstname.lastname@example.com)

<comment><USER15> One thing that something like this may be useful for is in help at solving a particular problem (e.g. sending POST requests in Python and interpreting the responses).

</comment></comment><comment><USER16> How are you handling employment/income tax issues?

<comment><AUTHOR> up to the users

</comment></comment><comment><USER17> I can see it now... computer science class averages increasing in correlation to the beta release of WageMachine programming tutors...

</comment><comment><USER18> I wonder if I'll be able to tutor people competently on programming with:

1\. 5 years of ruby

2\. 7 months of python + pygame

3\. Approximately 2-3 weeks of C from arudino hacking

4\. A year and a half of Java in high school

5\. A month of experience with javascript, and canvas + html5 technology

</comment><comment><USER19> This is potentially an interesting experiment in incentives.

I wonder if instead of giving tutors the 8.50 ph they could do something else with it that might be better incentive.

</comment><comment><AUTHOR> Invite codes for HackerNews:

To buy: hnbuy

To work: hnwork

<comment><USER20> "Sorry but you need a valid invite code to join."

Edit: I suppose you use the same form for both tutors and students to register. The hnwork code doesn't work there.

<comment><AUTHOR> Sorry about that, I stupidly made them single use invites. Should be fixed now.

</comment></comment></comment><comment><USER21> Hey, go bring some students on the site. Post on cl, whatever. Right now, there are 8 workers waiting, and 1 buyer.

Suggestion: embed the lobby in the homepage.

</comment><comment><USER22> as someone not living in the u.s. i think it work better by connecting tutors from countries outside the u.s. and people from the u.s. except for the better incentives , it's probably harder for someone outside the u.s. to find work in the u.s , so the introductions might be more helpful.

</comment><comment><USER23> Curiousity question: What is the rationale behind the name WageMachine?

<comment><AUTHOR> Inspired by this: <http://boingboing.net/2009/11/30/hand-cranked-penny-d.html>

</comment></comment><comment><USER24> I can't find an RSS or atom feed for your blog :(

<comment><AUTHOR> <http://wagemachine.com/blog/feed>

Let me know if that's a good feed. I don't use RSS at all so don't know what people expect.

<comment><USER25> Yeah, full text in the feed, or don't bother with the feed at all.

<comment><AUTHOR> ah thanks, will add that

</comment></comment></comment></comment><comment><USER26> Who are the competitors in this space?

</comment><comment><USER27> That looks cool. :)</comment>


Some problems of recursive descent parsers - <AUTHOR> http://eli.thegreenplace.net/2009/03/14/some-problems-of-recursive-descent-parsers

<comment><USER4> The real solution to this problem is to properly remove the left recursion. Student's often make the mistake the author did. Let's examine our favorite grammar:

        E -> E + T
           | E - <USER2>
           | T
        T -> T * F
           | T / F
           | F
        F -> id
           | number
           | ( E )

The obvious way to remove left recursion in the grammar is to "flip" the non- terminals. Like so:

        E -> T + E
           | T - <USER3>
           | T
        T -> F * T
           | F / T
           | F
        F -> id
           | number
           | ( E )

This is wrong. Consider the string "28 / 7 * 2". The orginal grammar produces the following parse:

              E
              |
              T
             /|\
            T * F
           /|\  |
          T / F 2
          |   |
          F   7
          |
         28

The new grammar produces:

              E
              |
              T
             /|\
            F / T
            |  /|\
           28 F * T
              |   |
              7   F
                  |
                  2

When computing the expression. These tree produce different answers. The first gives "8", the correct answer, the second gives "2". Basically, it is parenthesized incorrectly.

To fix this problem the solution is to insert intermediate non-terminals into the grammar:

        E -> T E'
        E' -> + T E'
            | - T E'
            | e            <--- standing in for epsilon, the empty string
        T -> F T'
        T' -> * F T'
            | / F T'
            | e
        F -> id
           | number
           | ( E )

Consider the new parse tree

                 E
                / \
               /   \
              T     E'
             / \    |
            F   T'  e
            |  /|\
           28 / | \
             /  |  \
            /   F   T'
                |  /|\
                7 * F T'
                    | |
                    2 e

If processed correctly this tree will yield the correct expression tree.

              *
             / \
            /   2
           / \
         28   7

The "trick" is to swing up subtrees from the prime nodes. The operator coming up from the prime node is going to be the root of the subtree (for that precedence level) and the new operator is going to be inserted as the left most descendent.

To see how this works with code. Checkout this example recursive descent parser for this grammar.

[https://github.com/timtadh/tcel/blob/master/frontend/parser....](https://github.com/timtadh/tcel/blob/master/frontend/parser.go#L361)

The swing and collapse functions are defined here:

[https://github.com/timtadh/tcel/blob/master/frontend/parser....](https://github.com/timtadh/tcel/blob/master/frontend/parser.go#L361)

You can read all about how to do this correctly in the "Dragon Book" Section 4.3.3 (page 212) in the second edition. "Compilers: Principles, Techniques, & Tools" by Aho et. al.

</comment><comment><USER5> Precedence climbing solves these problems.

This article is from 2009. Same blog 2012: [http://eli.thegreenplace.net/2012/08/02/parsing- expressions-...](http://eli.thegreenplace.net/2012/08/02/parsing-expressions- by-precedence-climbing)

<comment><USER4> Yeah but no. That is no longer a recursive descent parser it is a hand written Shift-Reduce parser. Nothing wrong with that just a totally different parsing technique. He also covers several other interesting techniques on his blog. However, the "standard" solution is the one given in my comment above. As long as you can transform your grammar in to the correct form. Aho et. al give the fully general algorithm for conversion as I mentioned.

<comment><USER5> Ok, I agree that "standard" is grammar transformation. I'd argue that precedence climbing is "better", which means it provides a bunch of benefits and nearly no downsides in practice.

</comment></comment></comment><comment><USER6> Rather than using recursive descent parsing, a better approach is to use Vaughan Pratt's Top Down Operator Precedence Algorithm ([http://en.wikipedia.org/wiki/Pratt_parser](http://en.wikipedia.org/wiki/Pratt_parser) ). It gives the simplicity and conceptual elegance of recursive descent while avoiding the recursive plunge of a complex expression grammar.</comment>


HP bought Palm after a five-company bidding war - <AUTHOR> http://www.engadget.com/2010/05/16/hp-bought-palm-after-a-five-company-bidding-war

<comment><USER6> My guesses:

      A - <USER2>
      B - <USER3>
      C - <USER4>
      D - <USER5>

<comment><USER7> I would say C was Dell. All five hardware makers.

<comment><USER6> The reasoning for my guesses: C and D are said to only have interest in the Palm patents. This makes sense for Google, which may have no patents at all in this area, and HTC, which may have not as much as the competition (and with the background of the Apple lawsuit).

A and B are said to be interested in both, technology and patents. Lenovo only recently started to get into this business with android phones. It could make sense for them to switch to WebOS. Samsung does Windows Mobile, Android and recently Bada, a linux based operating system. I think, it makes sense for them to build on the existing huge knowledge in this sector and the already existing apps/customers/developers, as Bada just recently launched and didn't get traction yet. Huawei would make sense too, but they are not as deep into the mobile phone business as the rest, i think.

</comment></comment></comment><comment><USER8> What about RIM?

<comment><USER9> Doubt it, RIM already has their own operating system, although it may be that D is RIM.

<comment><USER10> It is incorrect to dismiss the possibility on that ground: RIM has the worst smartphone OS from either a usability standpoint or from an application development standpoint.

They've got major catching up to do; internal development doesn't seem fast enough. We're nearly midway through 2010 and the closest to a decent browser that they've delivered is a few leaked images.

<comment><USER11> To speculate that they would be interested just because you don't like their OS and think their development team is too slow is also incorrect.

I will agree that their OS is lacking in many areas compared to many of the newcomers in this space, but that doesn't mean they run out and buy another failed phone OS for a whole lot of money in exchange a few features their rapidly growing team could implement or a smaller acquisition like their purchase of Torch Mobile could deliver. RIM's main focus is also more enterprise customers than consumer and the feature set demands of their customers are a little different.

<comment><USER12> I think saying WebOS failed is completely off-base. From everything I've read, WebOS was a very successful operating system. Rather, the company around the OS failed.

From a historical perspective (not sure if it is currently true), Palm's customer base would have lined up well with RIM's, too.</comment></comment></comment></comment></comment>


It's Time to Act – A Response to Marc Andreessen - <AUTHOR> https://blog.coryfoy.com/2020/04/its-time-to-act-a-response-to-marc-andreessen/ <comment><USER2> I'm in two minds about this. On the one hand, Cory is probably mostly right on the specifics. On the other, Andreeson's article was so vapid and ignorant it's barely worth addressing. We only talk about it because the guy's a US ubermensch (a nation & class rapidly losing significance, to everyone's benefit). Yet here I am commenting too I suppose.

<comment><USER3> Not properly refuting bad ideas let's the bad idea spread.

<comment><USER2> We seem to live in an age where comprehensively refuted ideas readily gain adherents (not that I have an Age of Reason in mind to be particularly nostalgic about). There can be a fine line between useful refutation and promotion. A hard one to draw, I would accept.

</comment></comment></comment><comment><USER4> I was waiting for Cory to get to the main reason he had an issue with Marc's article, since most of his initial response was just quoting other random bits and pieces to try and prove him wrong. And then came this sizzler:

> We've chosen not to build a system because we're a racist, classist country.

And there it is. Racism is to blame. All the deaths in NYC due to unpreparedness, lack of funding over decades, a shitty private health system, no decent leadership from both sides of politics ... they're actually because the US is just a racist country. The IRS? Turns out they're actually racist for requiring a bank account to transfer money to.

Sorry. You need to do better than that.

> Or, you know, break the systemic racist, classist policies that form the > backbone of repression throughout this country.

Oh look, there it is again. Not enough hospitals being built? That's because we're racist. Core infrastructure falling apart? Yeah, racism. Not enough jobs to go around? That's racist too!

This is pathetic.

<comment><USER5> Just so we're clear, you actually don't think there is wide scale systematic institutionalized racism? Not that there are not other contributing factors, that it doesn't exist?

<comment><USER6> I do not believe the poster said that, it is more that, in the style they quoted it, the article says `p -> q`, where q = we are racist and q = we did not build this system.

They never claim there is not racism in the United States, only that they do not agree that is why the system was built.

<comment><USER5> I wouldn't normally quote politico as a source, my politics don't align. That said:

[https://www.politico.com/news/2020/04/19/why-new-jerseys- ven...](https://www.politico.com/news/2020/04/19/why-new-jerseys-ventilator- guidelines-may-favor-younger-whiter-patients-194094) _Lawmakers in New Jersey, which is quickly becoming the new epicenter of the Covid-19 pandemic, are worried new emergency triage guidelines for the state's hospitals could push younger, whiter patients to the front of the line._

 _"We do know that it exists, institutional bias exists throughout all of health care," Persichilli said Wednesday_

</comment></comment></comment></comment><comment><USER7> I wonder if Marc Andreessen would have invested in any of the things he now says that are in shortage. Words are cheap. By writing his essay Marc portrays that he is interested in the greater good but when it comes to actions its all quickbucks.

<comment><USER8> This was my first reaction, but Tren Griffin pointed out something fairly reasonable; VC funding is very small ($50 billion/year or so compared to the trillions the central government spends, to say nothing of the states).

Your point is reasonable, I think, but the scale is pretty off as it relates to VC funding vs. public spending.

<comment><USER9> > VC funding is very small

The money does and can make a huge difference even if it only helps with building out a proof-of-concept? Uber took on the entrenched Taxi industry world-wide with VC money. Zenefits did the same to the insurance industry.

The problem is, one cannot compete with the incumbents head-on, for which one might need a gazillion dollars from the get-go, but I think one can definitely take on them with a humble investment to the tune of a few million dollars... Isn't that anyway the promise of nimble, innovative startups [0] -- out- manouver large corporations? I don't see VCs balking at startups competing squarely with a FAANG, say, for instance. Somehow, this rationale that the government has deeper pockets seems like a dishonest excuse.

I agree public spending does trump any amount of money private investors can conjure up, but I do not agree that they are blame-free for not moving the needle forward, because they don't really lack ambition on-paper at least [1].

And, hey, software has been eating the world without significant public spend for a long time. There's been talk of private money building the future [2] for sometime, now...

/rant

[0] [https://medium.com/s/story/jeff-bezos-jack-ma-and-the- quest-...](https://medium.com/s/story/jeff-bezos-jack-ma-and-the-quest-to- kill-ebay-bb4992dc5020)

[1] [https://www.ycombinator.com/rfs](https://www.ycombinator.com/rfs)

[2] [https://news.ycombinator.com/item?id=12508356](https://news.ycombinator.com/item?id=12508356)

</comment></comment></comment><comment><USER10> > Again, this is false. FEMA and the CDC produced guidance for Pandemics over > 10 years ago.

What's the point of having a plan if it's not put into action?

Reminds me of this timeless quote:

"Everybody has a plan until they get punched in the mouth." \- Mike Tyson

We where told we would be punched in the mouth and guidance was not enough to prevent the damage

<comment><USER11> It is harder when the people who knew how to implement the plan were fired.

<comment><USER12> Ah yes, yet another person who looked at the Snopes piece's headline and nothing else. One would think reading only that, or the Twitter thread (!) the piece is based on, that to save money (or because the Trump administration hates science, or something) the entire "US Pandemic Response Team" agency was eliminated and everyone in a large DC office building was fired.

Actually reading the contemporary NBC News [https://www.nbcnews.com/politics/politics-news/tom- bossert-t...](https://www.nbcnews.com/politics/politics-news/tom-bossert- trump-s-homeland-security-adviser-resign-n864321) and _Washington Post_ [https://www.washingtonpost.com/news/to-your- health/wp/2018/0...](https://www.washingtonpost.com/news/to-your- health/wp/2018/05/10/top-white-house-official-in-charge-of-pandemic-response- exits-abruptly/) articles the Snopes piece cites in the body, they seem to have been a handful of people in one team in the National Security Council hierarchy, that the new National Security Advisor reassigned to related agencies, as part of a desire to have his own hierarchical structure. Ziemer resigned because he wanted to keep his team the way it was.

COVID19 was not a surprise; that is, it was known to exist in China some time before the first cases appeared in the US. It is not unreasonable for a government to assemble a team to respond to something like a pandemic as needed, as opposed to having people dedicated solely to the purpose and nothing else. And that's exactly what the US did, implementing the ban on non- American travelers who'd been to China in late January, among other things.

You may or may not agree with this. But please don't claim that this is somehow prima facie proof of the Trump administration's malfeasance/evilness.

PS - No, Trump did not "cut the CDC budget" either. [https://apnews.com/d36d6c4de29f4d04beda3db00cb46104](https://apnews.com/d36d6c4de29f4d04beda3db00cb46104)

<comment><USER13> > COVID19 was not a surprise; that is, it was known to exist in China some > time before the first cases appeared in the US. It is not unreasonable for a > government to assemble a team to respond to something like a pandemic as > needed, as opposed to having people dedicated solely to the purpose and > nothing else.

The USA have alerted NATO allies and Israel in mid-November (!) about coronavirus: [https://www.timesofisrael.com/us-alerted-israel-nato-to- dise...](https://www.timesofisrael.com/us-alerted-israel-nato-to-disease- outbreak-in-china-in-november-report/)

The ban on China travel came two months later. Two months of inaction that have cost a lot of lives. If it's any solace, us other NATO countries haven't been better, but at least our leaders were not as stubborn as to claim "corona was under control" until Feb. 24 or "[the Democrat's] new hoax" (Feb. 28) as Trump did.

The ones who did _not_ waste any time and who actually do have a standing pandemic response team are Asian countries like Taiwan - Taiwan is directly adjacent to China, has a shitload of travel to China under normal circumstances, got sidelined from the WHO thanks to Chinese pressure, yet only 422 cases with 6 deaths IN TOTAL.

That's what happens when a competent government is in action: they locked down travels on end of december and put actual experts in charge.

What does Trump do, in contrast? Infection rates are nowhere near "under control", and he appoints his daughter and son-in-law on a "council to re-open America": [https://www.vox.com/policy-and- politics/2020/4/14/21220755/t...](https://www.vox.com/policy-and- politics/2020/4/14/21220755/trump-council-to-reopen-america-fox-news-economy)

<comment><USER12> >The USA have alerted NATO allies and Israel in mid-November (!) about coronavirus:

Yes, the US alerted allied nations of a new disease that ought to be watched. Similar warnings went out for SARS, MERS, and Ebola, as well as (for example) the 1968 Hong Kong flu.

>The ban on China travel came two months later. Two months of inaction that have cost a lot of lives.

"Patient Zero" arrived in Seattle from Wuhan on January 15. At that point

* The WHO was still denying that COVID19 could be spread by person-to-person contact.

* Trump was still impeached by the House of Representatives and awaiting trial in the Senate.

What would have happened if on January 1 Trump announced the only thing that would have prevented COVID19 from arriving in the US: A complete _and indefinite_ shutdown of all land, sea, and air borders?[1] Trump would have been denounced by the entire world as a racist sexist fascistNaziKKK preparing to seize unlimited power to avoid being removed from office, using the thin pretext of a disease that seemed only China's problem.

>"[the Democrat's] new hoax"

No. Trump called the Democrats' response to what the administration was doing about COVID19 a hoax, consistent with his describing what led to his impeachment as a hoax a few sentences before the above words.

[1] And before you say that that wasn't necessary, that a 14-day quarantine would have been sufficient, a) That time period wasn't known for sure then. Very, very little was known about the disease or SARS-CoV-2, partly because China wasn't saying anything and WHO wasn't inclined to get China to talk. b) A 14-day quarantine for all visitors _is_ effectively a shutdown of the border. Very, very few people are willing to visit any country that mandates such a thing at entrance.

<comment><USER14> I dont think he would have been called sexist for that. Be accurate and dont flame, especially when you get the big picture right.

<comment><USER12> >I dont think he would have been called sexist for that.

CNN on January 30: "Coronavirus task force another example of Trump administration's lack of diversity" [https://www.cnn.com/2020/01/30/politics/donald-trump- coronav...](https://www.cnn.com/2020/01/30/politics/donald-trump-coronavirus- diversity-obama/index.html)

<comment><USER13> The point is, this _is_ a problem. When the task forces all end up dominated with rich, white, old men, then the problems that specific groups of the society face end up ignored/overlooked.

We have a similar issue in Germany at the moment - while we do have Ms. Merkel as chancellor, the advisor group (Leopoldina) only has two women in it and no representatives of e.g. disabled people - leading to the problem that issues of childcare or care for disabled persons, or poor people, or people locked down in totally inadequate cramped conditions completely lacked representation in their latest recommendations.

In France, it's similar but worse - there have been violent explosions last night as people literally cannot endure the enormous stress that a really strict lockdown in cramped housing causes.

A lack of diversity in advisory groups and task forces has _real, quantifiable and sometimes deadly_ consequences.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> While there are good points here, I can't help but feel the auther felt compelled to comment negatively on every aspect of what was said, even where it made little sense and they had to bring up u related or at best tangentially related issues.

Should the left have to prove their models? Yes! And so should the right! They both see outcome as intent[1], and that's not a useful way to comrpomise and actually achieve change.

1: School funding is different for black communities because it's poorly optimized for merit and susceptible to horrible feedback loops, not because racist people decided it. Criminal juatice/prison reform isn't about making life better for criminals, it's about making sure people have people have the chance to be productive members of society, which is better for everyone involved.

<comment><USER16> It is generally true that systems like school funding are racist in outcome but not design - but there are a surprising number of instances where the design actually is created with that intent. Most commonly seen these days with a rich white suburb deciding to incorporate their own school district so they can stop having nearby black kids attend - usually they can skate by with some platitudes about local control but when actually on a witness stand it doesn't hold up. [https://www.vox.com/2019/9/6/20853091/school-secession- racia...](https://www.vox.com/2019/9/6/20853091/school-secession-racial- segregation-louisiana-alabama)

<comment><USER15> > usually they can skate by with some platitudes about local control but when > actually on a witness stand it doesn't hold up.

Maybe I'm missing the portion you're looking at, but all I'm seeing this says is that the plaintiffs argued it was about race, and the defendants didn't have good evidence as to their reasoning why they did it. To my eyes, and based on a lot of the information presented in the article, it is just as likely (if not more so) that it was about class. I sincerely doubt that district wanted to invite the poor white students from the full district any more than the poor black ones.

What that means is that this attempted change, which would have been racist in outcome if possibly not intent, was defeated by viewing it as racist as intent. Was that a good thing? Maybe? I guess it depends on what else they did.

How do you rectify the actual problem, when you assume it's people not liking others with different skin colors? You vilify those people and try to punish them or change them or wait for them to die or by marginalized, none of which seem to work very well. But if they weren't actually racist, and it was more a problem of class and poverty, _there are other solutions_ , because _in addition_ to trying to change the people you can also try to help those in poverty.

Distilled to a simple form, it's like seeing a white shop owner turn away a black homeless person. You can _assume_ racism, and ostracize the shop owner. Or you can _assume_ classism, and do the same but also try to help the homeless person. I think in many cases racism is used as an easy way to "resolve" a problem without addressing it at all. It exists, but it's also intimately ties with class and poverty, and one of those is much more useful to address at this point than the other, but it also much less likely to be addressed.

<comment><USER16> > there are other solutions, because in addition to trying to change the > people you can also try to help those in poverty.

Yes. That solution, to the problem of rich white people trying to stop sharing their school funding with poor black people, is to not allow them to leave. That's what happened. Nobody ostracized anyone and your simple form is an invalid analogy. If anything, it would be more accurate to say that they saw a white shop owner consistently turning away black people and took them to court to say that black people should not be turned away.

<comment><USER15> > That solution, to the problem of rich white people trying to stop sharing > their school funding with poor black people, is to not allow them to leave. > That's what happened.

But what about the solution to the problem of the rich people not wanting to share with the poor people? What if that's a major part of the problem? Was that addressed at all, or just swept under the rug as "racist people will be racist, just don't let them"? Preferably, something that also addressed the issue of poverty, or at least kept it acknowledged as part of the problem.

> If anything, it would be more accurate to say that they saw a white shop > owner consistently turning away black people and took them to court to say > that black people should not be turned away.

Exactly. But is that the better solution? What about the poor white person that comes in next? Do they get turned away, because they're not black? What about the fact that they're both still homeless?

When you identify the wrong problem, you're at risk of implementing a worse solution. Racism is bad, and it's sometimes the case it perfectly explains what happened, but not always, and not often entirely, but it's _convenient_ because it means nobody else has to change or do anything. We all get to point at the bad people that make convenient scapegoats and comment about how _we_ would never do anything like that, while nothing really changes, because the problem was only partially racism to begin with, and there's not a lot to _change_ structurally to stop it that hasn't already happened when it is racism.

</comment></comment></comment></comment></comment><comment><USER17> If I read this article correctly, Republicans opposed funding for more Covid-19 testing. Why would this be a partisan issue?

"The agreement would include $75 billion for hospitals and $25 billion for testing, which have been major Democratic demands."

[https://www.washingtonpost.com/us-policy/2020/04/19/trump- co...](https://www.washingtonpost.com/us-policy/2020/04/19/trump-coronavirus- democrats-small-business/)

<comment><USER18> Because it wasn't "us" who proposed it, but "them", and bam!, it just became partisan. Or maybe someone asked for clarification, no one replied, and now it seems "they" blocked it. ¯\\_(ツ)_/¯

</comment></comment><comment><USER19> > They have bank accounts, permanent addresses, internet access. We've chosen > not to build a system because we're a racist, classist country.

I don't know if this is true. Withholding aid to migrants that don't have legal immigration status might not be the right thing to do right now. However it need not have any racist motive. Yes it will have a strong racial bias in it's outcome but does that make it racist?

<comment><USER20> > Yes it will have a strong racial bias in it's outcome but does that make it > racist?

Functionally, yes absolutely?

If racially biased outcomes just somehow keep happening, "racist" is absolutely a correct English word for that phenomenon.

<comment><USER21> The most common meaning of "racism" in conversation is "acting based on the race of some person / group of people".

Immigration policies can (should) be discussed without taking into account people's race, and still lead to racially-biased outcomes, simply because the majority of immigration-seekers have a race that's different from the majority of people in the target country.

<comment><USER14> What's your opinion on Israel only allowing ethnic jews to immigrate? That would meet your definition of racism.

<comment><USER22> It _is_ racism, textbook racism. They're deciding who to let in based solely on race, that makes it racist...

<comment><USER19> If that were true I'd agree that is racism.

I don't think this is the case. I don't think the US bases immigration policy even partially on race.

Some nations leaders are a threat and their people are going to have a harder time but that is not a race issue. For example a North Korean would have a harder time than a South Korean yet they are the same race.

</comment></comment></comment></comment></comment></comment><comment><USER23> Bravo! Great response. Incredible that people like this are considered "thought leaders" outside of very narrow fields.

</comment><comment><USER24> I could not figure out what the author's overall position is on the pandemic response - understandable given the format.

Is the author saying we had all the tools ("ability") but we did not have the people in positions of power that the author approves of?

<comment><USER25> The author is saying that we had the tools and the plans, but the system de- incentivizes the ideal response, for a number of reasons the author claims throughout.

People in "power that the author approves of" seems like subtext that one would have to see on their own reading of the article. To me it seems like the author was arguing against some aspects of capitalism and how incentives for profit can misalign with benefits for society.

</comment></comment><comment><USER26> I wanted to disagree with Marc on twitter about some of his views but for some unknown reason he has blocked me and countless others on twitter even though we have never interacted in anyway

<comment><USER27> This is weird, does anyone have more information on how this would happen?

<comment><USER28> He blocks many people for no apparent reason. There was an article written back in 2015. Some considering a pmarca twitter block a sign that you've made it!

[https://money.cnn.com/2015/12/23/technology/marc- andreessen-...](https://money.cnn.com/2015/12/23/technology/marc-andreessen- block-twitter/index.html)

</comment></comment></comment><comment><USER29> Narratives that blame "greed" and other kinds of non-egalitarian behavior seem to forget that humans are animals. We should recognize that expecting organized forethought across a species, and organized ethical behavior is expecting something never, ever, ever seen before in nature.

There are no animals, besides us, that ideate about anything except benefit to themselves and their offspring. However "bad" we are, we are the sole species that has spent a full single second of its existence trying to be "good" instead of just eating and f __ing and killing our way to the next day, possibly feeding the animal next-to us to our lovely offspring. For every other animal, killing an adjacent creature to take what they have is exactly is routine, and they are unapologetic.

It is great to see humanity become more impact-aware, and I have high hopes for an even more enlightened future, but it is somewhat absurd to presume that honesty, kindness, and altruistic thinking are somehow the baseline because that is the way we would like it. We imagine that something is "wrong" when they aren't happening. These are the default conditions. Every time a human departs from "hand-to-mouth", and from rationalizing deaths of the weak is a valiant leap from natural instincts.

By these measures, humanity's response has been unprecedented. The coordination, however flawed, has never been seen like this in the history of this world or any other that we have seen. It is only the grandiosity of our fantasies about what we are that lets us tell these alternate stories.

</comment><comment><USER30> And yet medical personnel are without required medical protections.

</comment><comment><USER31> We're still mid pandemic. The error bars are tightening but there is a lot we don't know about the disease. There has been no time to determine whether the response was actually good or bad when considering the costs. People don't even know what the costs are yet.

Marc Andreessen's diagnosis was a knee-jerk guess at where the problems are and is probably wrong. Cory does a good job of pointing that out. However, if anything makes Americans wake up to the looming strategic threat of China that has been around for at least a decade then that is probably for the best. The CCP are the same type of 'friend' as the Saudis.

The US hasn't been making sensible strategic decisions since at least '08\. There is a lot of spending on wars that don't suppress rivals and a lot of debt that isn't making the economy robust. The research advantage that America once had is being chipped away; Huawei won't be the last time China achieves technical dominance over US tech companies.

<comment><USER32> > There has been no time to determine whether the response was actually good > or bad when considering the costs.

Lockdown takes us from exponential growth to linear growth. This has played out so many times, in so many different regions, that I think it's pretty clear as to what the response accomplished on the plus side.

You can quibble over what lockdown should look like, and which of the measures are not necessary to stop the exponential, but it's pretty clear that the form of it adopted in every country that has tried it... Works.

<comment><USER8> >> Lockdown takes us from exponential growth to linear growth.

Do you have data that supports lockdown does this better than advisories?

<comment><USER32> Only one country has successfully gotten to linear growth without lockdown. South Korea. [1] [2] [3]

Every other place has had exponential growth, that goes linear a week or two after lockdown is in place.

That's more than enough evidence for me. We know that lockdown works. We know that wishful thinking doesn't. All we can do is tweak the parameters of what lockdown looks like.

[1] Except it does have a lockdown! Whoops! It banned gatherings, shut down parks, closed borders, closed daycares, schools, sporting events, closed public spaces, etc, etc, etc. It's a lockdown by another name.

[2] Sweeden also closed its borders, and banned large gatherings. It didn't do most of the other things. It's currently in the exponential growth stage.

[3] Singapore is also on an exponential trajectory. Which is why it is also shutting down.

<comment><USER33> Norway has closed schools, universities, gyms, and placed restrictions on cafés, bars, and restaurants. But as private individuals, while encouraged to work from home if we can, we are free to go where we please (except no spending the night in your cabin in the mountains). Our public spaces are open, shopping centres are open, quite a few cafés are also open.

If we leave the country we have to go into 14 days quarantine.

Our death rate per unit population (3) is a lot lower than, say the UK (23), even though we are free to move about and they are not. So lockdown is not always as effective as might be hoped and also not always necessary. Local conditions mean a lot, not all populations are willing to behave responsibly even when the law demands it, while some merely need to be told what is necessary.

</comment></comment></comment></comment></comment><comment><USER34> This is quality, you gotta give it that.

<comment><USER35> It literally isn't quality. It's a hate band wagoning post written by a thought influencer for the clout.

<comment><USER34> I mean it's a quality rant.

To be clear, I think the original post by Andreessen and this response are both silly in their own ways.

I just find the public discourse around this very entertaining.

</comment></comment></comment><comment><USER36> The criticism in the Cory Foy's post takes two forms: 1. We were prepared, and 2. Preparedness can not overcome the systemic oppression and exploitation built into western capitalist society.

I have little patience for the second point which is core to social justice activism. I have little patience for MAGA protectionism either so I'll address the first point on preparedness.

We, across the globe, had varying degrees of strategic preparedness but utterly failed with respect to the tactics and execution required to make those strategies a reality. A good example is the CPIP: Canadian Pandemic Influenza Preparedness guide:

[https://www.canada.ca/en/public-health/services/flu- influenz...](https://www.canada.ca/en/public-health/services/flu- influenza/canadian-pandemic-influenza-preparedness-planning-guidance-health- sector/table-of-contents.html)

This strategy is almost perfect with a few tweaks but Canada dropped the ball on three fronts: 1. Data Sharing, 2. Process Scaling, and 3. Communication. The failures started with an inability to integrate Border Services data into the plan and the system failed to anticipate the scale of isolating the peak number of Snow Birds and March Break travellers returning back to Canada.

Strategy is a starting point but it is not the full story with respect to COVID-19 preparedness.

</comment><comment><USER37> This was a pretty good takedown of a pretty garbage essay, but I was disappointed the author didn't spend more time talking about how capitalism has failed us here. For instance, corporations are fundamentally good at one thing: maximizing the amount of profit they can make by selling whatever it is they sell.

This is precisely why we were scrambling for ventilators a few weeks ago: it wouldn't have been profitable to build them a year ago, because hospitals wouldn't buy them, because they didn't have the ability to use, store, or maintain them.

Another example is the current situation with toilet paper. What's happening here is not that people are pooping more than they were a few months ago. It's just that they're doing it more at home, rather than at work. TP for home use and TP for commercial use are different products (anyone who's pooped at work or in a public bathroom knows this), made by different companies and using different supply chains.

While we have enough capacity to make and ship all the TP we need right now, what's happening is that commercial TP makers are (rightly!) not switching to making TP for home use, because that would be really expensive for them to do. They don't have the proper supply chain (contracts, logistics, _etc._ ) to support it, either. End result: no TP in the stores. [0]

I saw a shower thought on Reddit that said something to the effect of "the economy is in a bad state right now because people are only buying what they need." While this vastly oversimplifies the issue, there is a good amount of merit to it. Right now, most of my spending on stuff that is not rent is literally food for myself and my dog, and the occasional item to make this lockdown a bit more bearable. There's no way I'm spending money on anything that isn't immediately useful or will become necessary in the near to medium term future. And, I'm one of the lucky ones who still has their job, because I can WFH.

OTOH, there are a number of things I hope we can learn from this lockdown. I've already written about how I hope people can realize Keynes was right, and we don't really have to work so damn much. [1] More importantly, though, I hope people can realize that most of our elected representatives simply do not have our interests in mind ( _e.g._ Trump wanting to "reopen the economy" by Easter, in spite of all the deaths that would have caused), and start voting in people who actually do represent them.

It's an absolute crying shame that the US doesn't have even the most basic levels of worker protections that every country in Europe offers. So many people are suffering right now through no fault of their own, simply because we can't afford to let people who have lost their jobs have more than a pittance of unemployment benefits, and a pathetic $1200 check they had to wait to get because someone wanted their signature on them.

\---

[0]: [https://marker.medium.com/what-everyones-getting-wrong- about...](https://marker.medium.com/what-everyones-getting-wrong-about-the- toilet-paper-shortage-c812e1358fe0)

[1]: [https://news.ycombinator.com/item?id=22901430](https://news.ycombinator.com/item?id=22901430)

</comment><comment><USER38> Bail out money is a death march to insolvency. The unlimited helicopter money the Fed is promising is enabling politicians to ignore fundamental, long term consequences of the economic shutdowns. We cannot run a country or a currency on the bail out model. Our national debt is skyrocketing to higher levels than World War 2 (as percent of GDP). We've got an insolvency crisis fast approaching with boomers retiring and unfunded liabilities in the dozens of trillions. Our economy is contracting dramatically as we speak. 22 million people are unemployed and it's week 4. Millions of businesses are going to go bankrupt from the largest cash flow retraction in world history. The financial contagion is not being addressed. It's the 800 pound elephant in the room, but it will be with us much longer than the virus will.

<comment><USER39> > Our national debt is skyrocketing to higher levels than World War 2 (as > percent of GDP).

Funny, that you say that. What happened after WW2 with taxes and the economy?

<comment><USER38> It's not 1945. First of all, we had Bretton Woods agreement in 1944 establishing dollar as world reserve currency backed by gold. That of course, went away by 1971 and modern dollar is fiat and susceptible to poor monetary policy. We had 50% of world economy coming out of WWII as we were the only major country not buried in ashes. We had a birth boom (the boomers now retiring). We had tons of assets to still borrow against and we weren't overlevereged on everything from housing to education to corporate assets, etc. We had tons of technological and economical expansion left to experience, like interstate highways, jet travel, spread of electricity, computing, world trade, integration of women in work force, etc.

It's 2020. We don't have the deck stacked in our favor like we did in 1945. We've got massive obligations and a populace that's becoming increasingly demanding of bailouts, loan forgiveness, UBI, etc which are all untenable given that our existing social programs are already approaching insolvency. The government is on pace to spend half or more of GDP this year alone. Its not clear this spending will actually stimulate economy in the same way building interstate highways, airports, nuclear power, etc. in the 50s did.

<comment><USER40> I agree with your points, except of phrasing of one thing.

>populace that's becoming increasingly demanding of bailouts

Its corporations that setup that system and those are sole beneficiary of the system. Now days you cannot default on student debt even if you are working in completely different area.

Corpos eat up all profits in times of prosperity, and in times of crisis all they do is cry for bailout money. Which they will promptly get, award the ceo for their cunning skills and move on.

That is the problem, the business model of too big to fail. That is straight out rent seeking.

And that is the problem. Bloated 'too big to fails' copros are holding nations as hostages. Allowing them to act like they are 'too big to fails'.

> Its not clear this spending will actually stimulate economy in the same way > building interstate highways, airports, nuclear power, etc. in the 50s did.

This is another clear example of current insanity. Building infrastructure was the solution, it worked. It gave money to the bottom guy, who spend it locally allowing small business to stay afloat further propping up confidence in spending.

But now only solution is to shower fire with money in hopes that eventually it will die down.</comment></comment></comment></comment>


Challenge To Rupert Murdoch to Drop Apps For HTML5+The Web - <AUTHOR> http://www.wired.com/epicenter/2011/02/onswipe-daily#/

<comment><USER2> Though I agree with HTML5 over native for many applications, and particularly for content such as TheDaily, the article completely ignores the fact that it would be a very simple update to the app to check for new articles upon start rather than just checking once per day as the article says.

I'm not sure which the app does, as I don't have an ipad.</comment>


New Construction Robot Lays Bricks 3 Times as Fast as Human Workers - <AUTHOR> http://www.technologyreview.com/news/540916/robots-lay-three-times-as-many-bricks-as-construction-workers/ <comment><USER2> "In this human-robot team, the robot is responsible for the more rote tasks: picking up bricks, applying mortar, and placing them in their designated location. A human handles the more nuanced activities, like setting up the worksite, laying bricks in tricky areas, such as corners, and handling aesthetic details, like cleaning up excess mortar."

"One human plus one SAM equals the productivity of having four or more masons on the job."

A downside I can see is there isn't really any room for apprentices or entry level workers in this model. I imagine with four human masons a couple of them could be learning the trade as they did "the robot's part," eventually developing the skills to be the "human" in the team.

</comment><comment><USER3> Is bricklaying a big industry? Watching all these new buildings going up around me, it doesn't seem like modern construction uses bricks. I mostly see it in nicer sidewalks, which a robot could do the bulk of.

<comment><USER4> Depends on the region. Brick buildings / walls / roads are very common in desert communities and poorer areas. Its easier to create bricks than make steel.</comment></comment>


Ask HN: How to avoid memory leaks in C? - <AUTHOR> <comment><USER2> Write code that is easy to maintain/read, make sure you understand the API:s and free allocated resources. Also learn how to use Valgrind, it is a remarkable tool really.

<comment><USER3> > Also learn how to use Valgrind, it is a remarkable tool really

Seconded. Valgrind + unit tests + an incremental build can give you some really fast feedback on memory leaks and other issues. Just yesterday it showed us some errors in some "memory safe" c++ corner cases too.

</comment></comment><comment><USER4> "Writing Bug-free C Code"

[https://www.duckware.com/bugfreec/index.html](https://www.duckware.com/bugfreec/index.html)</comment>


A "Patent Stimulus" to End the Recession? - <AUTHOR> http://blog.mises.org/14971/a-patent-stimulus-to-end-the-recession/ <comment><USER2> For the love of the FSM... that is one of the most brain-dead ideas I've ever heard in my life. Gene Quinn is a complete tool. Where do they find these people??

Glad to see mises.org taking on the task of debunking this kind of silliness though.</comment>


Ask HN: Free Isometric (2.5D) Game Engine Recommendations - <AUTHOR>

I have some ideas and would like to realize them in a small game. I know nothing about 3D and have some experience in 2D game development so I think the ideal case for me would be a 2.5D game engine (like in Diablo 2 or Fallout 1/2). I'm looking something in C or maybe C++, multi-platform (Windows/Linux/BSD/MAC). Can you please recommend anything? <comment><USER2> Write it yourself. ISO games tend to have a lot of little difference and it's hard to find an exact fit, plus most of them are just hacked up versions of regular 2d tile maps. You'll end up customizing it enough that you might as well write it from scratch. If I was in your shoes I'd use SDL.

</comment><comment><USER3> Cocos2d-x ([http://cocos2d-x.org](http://cocos2d-x.org)) free, open-sourced, C++. Also can handle any 3D needs if you have them in the future. It can handle anything that you throw at it.

</comment><comment><USER4> checkout out Cocos2d-x and Tilemaps.

[http://www.cocos2d-x.org](http://www.cocos2d-x.org)

and

[http://www.cocos2d-x.org/hub/23](http://www.cocos2d-x.org/hub/23)

</comment><comment><USER5> [http://www.isogenicengine.com/](http://www.isogenicengine.com/) is isometic gaming engine i have used it a long while ago ... look at it</comment>


Cyberbullying expert who wants to strip abusers of anonymity wins "Genius" grant - <AUTHOR> https://nwn.blogs.com/nwn/2019/09/danielle-citron-legal-scholar-cyber-harrassment-gamergate.html <comment><USER2> Problems sure are easy to solve when you look at them through a toilet-paper tube, in isolation from everything else the solution might affect.

If they can be stripped of anonymity, they did not have anonymity in the first place. But it is telling that she notes "Workers are far less likely to sexually harass fellow employees", but does not connect it to how workers might get retaliated against for trying to unionize, when every union advocate online can be identified. To say nothing of whistle-blowers. Want to publicize the abusive conditions in a prison? Be prepared to "own your own words" and expose your relatives incarcerated there to retaliation.

Of course, this solution fails to pass even the toilet-paper tube standard - what about (potential) harassment victims that use anonymity as a shield? Are they to trust in the benevolence and competence of whatever multinational corporation they will hand their real identity to, to be allowed to participate in the online public sphere? When every month we learn of some new giant hack, and who knows how many happen that we don't learn about?

I cannot begin to express my disgust for an 'expert genius' that fails to consider even such elementary consequences.

<comment><USER3> Exactly. And another point of contention I have about this is how? How would we even do this?

<comment><USER2> South Korea did it (yes, _South_ Korea) [https://en.wikipedia.org/wiki/Internet_censorship_in_South_K...](https://en.wikipedia.org/wiki/Internet_censorship_in_South_Korea):

> In 2007, numerous bloggers were censored and their posts deleted by police > for expressing criticism of, or even support for, presidential candidates. > This even led to some bloggers being arrested by the police. Subsequently, > in 2008, just before a new presidential election, new legislation that > required all major Internet portal sites to require identity verification of > their users was put into effect.

I think this legislation may have been overturned by their Supreme Court, but there's shockingly little reporting of this in western media. So of course it would be too much to ask of an 'expert genius' to be aware of how such things turn out in practice.

</comment></comment></comment><comment><USER4> The proposal seems like it would do a lot more harm than good. Users who live in a dictatorship would have one of the biggest channels to tell their story stripped from them.

<comment><USER5> Fighting a dictatorship is different than fighting cyberbullies.

Fighting a dictatorship is just a matter of making the public lies so absurd that support is lost for their propaganda.

Cyberbullies only use believable common lies and rumor.

<comment><USER4> Umm... that statement has nothing to do with what I said.

Taking away anonymity from platforms always governments to target any individual that steps out of line.</comment></comment></comment>


Eric Schmidt Repeatedly Interrupts Female US CTO at SXSW - <AUTHOR> http://blogs.wsj.com/digits/2015/03/16/thoughts-on-gender-equality-in-tech-interrupted/?mod=WSJBlog

<comment><USER2> I'm not sure what to take from that, is he interrupting more because she's a woman or would he do the same with any other because that's the way he is used to act?</comment>