skysight-inc/HackerNews huggingface dataset:
Apropos of the mention of SHA-3 elsewhere in this thread:

I recently implemented my own version of SHA-3 in C. The original reference code from the authors (Google "Keccak-readable-and-compact.c") used type-punning in the inner loops (inside the the round function) on little-endian. On non-little-endian systems a macro was used to read and convert the 64-bit value.

This is typical premature optimization that is habitual among some developers, and another example of needless use of type-punning.

My code uses the simple code above to read bytes into the uint64_t buffer in the outer loop (outside the round function). Not only is my code simpler and easier to understand, it's no slower than the type-punning code even on x86-64.

Seriously, people, just don't type-pun. It's bad practice--in C, in Rust, in any language when using a remotely modern compiler. The only time it _might_ make sense is in very peculiar circumstances with peculiar access patterns, you've exhausted other easy gains, _and_ you've benchmarked and confirmed that type-punning is an improvement worth the cost in code complexity.

And even then, at least implement it correctly and safely. If you've already met the prerequisites above, the additional effort is negligible in the grander scheme of things. And committing to always writing correct and safe code keeps you honest when assessing whether performance hacks are truly necessary.
This is the central point I am making: there is little evidence that:
1) The stock price was inflated. This can be seen by the fact that the valuation of WF is relatively stable both prior to and after this debacle. (outside of the short term volatility due to the scandal). If what you are saying is true then we would have expected the market to dump WF shares at the "inflated" price. This did not happen

2) That the intention of the executives was to increase the stock price by leveraging the fake accounts rather than to increase real accounts whilst policing an incentive scheme that was harsh to the point that it resulted in bad behavior by low level workers.

My point is that the revenue impact from the addition of fraudulent accounts is so negligible that to equate it to "fraud" is misleading.

Any incentive scheme has cheaters, abusers and fraudsters. That is the norm in an organization that employees thousands of unskilled workers.

This is a case of an incentive scheme that was pushed too hard despite market realities -- to the point where people felt compelled to lie to keep their jobs (which was morally wrong on their part -- regardless of "how tough it is to find work" or "needing to put bread on the table"). Those people were fired. In order to understand if this was fraud or not we need to look at whether or not these incentive schemes generated an increase in LEGITIMATE accounts being created.

If this was the case then the incentive scheme worked and policing needed to be increased or modifications needed to be made to the management to prevent bad behavior.

If this was not the case -- then we have to ask why the management chose to push harsh incentive schemes knowing that it only created fraudulent accounts.

The type of black and white thinking that is going on in this thread (and elsewhere) is emotionally driven due to the size of Stumpf's paycheck. Most people are just not used to seeing $100mm dollars.

I would be very skeptical of articles like the one linked to above. Anyone who has lead a large organization that contains people that couldn't compete or got fired and angry has heard these types of gripes... they are a dime a dozen. My point is that Stumpf paid for his sins and I don't think we need to roast him further. I think Warren's appraisal of the situation is excessive.
In a "perfect free market", customers have access to all of the information required to make the decision, and can make an informed choice on the products and services they buy and sell based on their circumstances.

That wasn't the case in this situation. Customers didn't have all of the information, and as a result, were taken advantage of.

In regards to the specific fraud component (signing up customers to services they didn't ask for), I think you've just seen the consequences of what happens. Share price tanks, CEO is forced to leave. Again, this comes down to access to information; when it became clear Wells Fargo were committing fraud, the market moved against it due to a reduction in good will/image/reputation. As a result of this information becoming public, fewer customers are likely to sign up to Wells Fargo, meaning the expected profits from this company are likely to be lower than expected previously.

The government has a role to keep information available, so society can make a decision about what it deems acceptable corporate practice.
Unfortunately, the tool linked from that page (it's archived) can't be downloaded.
"Programming ability" is something very vague.

There are many domains of expertise. Dealing with networking, graphics, sound, threads, filesystems, embedded platforms, compilers, cryptography, operating systems (which is in itself another world), distributed systems, databases, drivers, high performance computing, machine learning, etc.

Ask a senior network programmer to write you a shader and ask a graphics programmer to write you a production-strength multithreaded socket server...

Ask a senior web designer to write you a compiler from scratch, and ask a senior compiler engineer to write you a responsive website that renders correctly on all browsers.

Then, some programming abilities are rarer. There are more web developers than compiler engineers, the amount of jobs and the requirements for them are different.

What I am trying to get at is that software development comes on many flavors and it's really hard to touch all those surfaces in your career.
The alternatives are most certainly as much underfounded as the mentioned project.
Do you have any evidence supporting this claim?
You are right on both counts.

From the article, it will supposedly end up on some furure knight variant (as mainstream Xeons have lesa of a need for the "hack").
GraphQL Performance Monitoring with New Relic
Even in embedded examples, I see a lot of inline ASM in C functions. So, what's separate files like? Do you just compile them separately, link them in as libraries, wrap them as a C function, and then call it? And what was the argument for this over just putting them inside functions of C source where necessary?
I don't feel sorry for these big names. What big guys do to pre-IPO companies is same as what hedge funds on wall street: take 5% position in a company and 'pump' it on media (CNBC, WSJ). And the retail follows, thereby increasing the stock price.
Ellis(gay male) fights for freedom in this sci-fi graphic novel
Of course, basically all economic theory is predicated on the assumption that information is basically free and widely available. In reality, this is simply not the case - information is either not free, or it is time-consuming to acquire (and therefore not free in another sense). As soon as one understands this a lot of free market ideology stops making sense and things like Consumer Production Bureaus start to sound like an intelligent way of managing risk insurance for the general population.
A positive thing is that with so much centralized internet (facebook, twitter, etc), rather than isolated websites, there's not much they'll be able to read from it just by the domain. Are you on the facebook terrorist group or the nanna's group? Everyone will look the same to them.
I am not convinced that the election process is the ultimate check on the presidential authority.

What if they _become_ insane during the term, join the secret Korean cult, mindwashed by Russians, or just generally lose their bearings in completely unpredictable way? I only can hope that there is some classified procedure designed to deal with this situation, otherwise, human civilization is doomed, sooner or later.
Get a foldscope for $20 from their Kickstarter project. https://www.kickstarter.com/projects/276738145/foldscope-the...
A company I know well cough is built an app and pays about $7/download via Facebook ads. This company has tried many other options and while it has gotten more conversions using alternatives, the users have tended to be poorer in quality (much lower DAUs/MAUs). I have heard the average cost/download via Facebook is lower than $7 (maybe $5) for an app like this one, but I think it has been worth the money spent, and I would/will do it again. And yeah this company has spent quite a bit more than $1k on these ads.

Downloading a free App is a lower hurdle than buying a card game, so it doesn't surprise me that the author didn't see many conversions. I have read that if your customer acquisitions costs are less than or equal to the money you expect to make off of them during your first year with the customer (supposing a subscription model, not unlike a card game with expansion packs), then you are doing well. The author has seen that his customers have often become repeat customers, so it may be ok to expect that $17.76 is an ok price to pay per converted user, so long as you expect some larger percentage of them will come back for expansion packs.

Some notes: DUDE! it took me WAY TOO LONG to figure out where to buy your game! The link to the product is at THE VERY BOTTOM of your Medium article. PUT IT AT THE TOP WHERE YOU MENTION IT FOR THE FIRST TIME (sorry for yelling). Make it easy for people to find and buy your game!
i mean, i guess if you dont factor in 100% stock price increase they didn't make that much money.
Build your own tilt-shift lens
Hey waaaseee, were you able to ever load the site?
I have libertarian tendencies, but I don't think the free market is the answer to all our woes.

Free markets are for efficiency, laws are safety.
Yep. You're 100% right. At the time, we didn't know the questions we needed to ask or who to ask them to.
Why not? The outcome was entirely predictable, and there is no way that a CEO of one of the country's largest banks doesn't understand the basic concept of economic incentives shaping people's behavior.

Nothing personal because I'm sure you didn't intend to make things worse for everyone, but your attitude is exactly what's wrong with the US and with capitalism in general - the notion that once an organization is sufficiently large that it becomes hard to trace a chain of liability, then the liability must somehow evaporate and can't be assigned to any individual parties, but must be severally absorbed by the shareholders. Oh, but the shareholders think they don't bear any moral responsibility because it's an agency problem, they only vote on the candidates that the Board of Directors offer them for senior offices. Oh, but the board of directors can't be responsible because they're not involved in the day-to-day running of the bank...and so on.

If corporate status is no more than a means by which to redistribute legal liability so thinly that none of it can accrue to any one individual, then the notion of corporate personhood is broken. I would remind you that the whole reason personhood exists in the first place is to make some sort of accountability possible, otherwise it would be virtually impossible to sue any officers of a company for lack of knowing who engineered a given policy that might form the basis of a legal complaint.
If you can show knowledge of the illegal activity then why should prison be off the table?

I suppose just making the fines high enough to actually punish the company should be enough.
That would be perfect if you left off here. I worked with C compilers and libraries without ever writing a line of C outside my code generator. A lot of companies and people do that. Those not needing to integrate with C code outside of API's just need a FFI with a number of systems languages available.

Truth told: system programmers either never need C or need it so few times it's almost totally unnecessary. Others don't need it at all. So, it's "not necessary for vast majority of things application or system developers work on." ;)
Is there a reason as to why this company is not dead yet?
> Kid texts you after school and says they need $5 to go out with friends? Sure, pull up your phone app and instantly put $5 to their card. It's almost impossible to cleanly replicate this with cash.

Certainly this could be helpful in an emergency but what's wrong with encouraging your children to budget and plan ahead, rather than expecting instant gratification whenever they want it?
The day the easiest way to buy anything will be electronically, is the day cryptocurrencies will prevail.
It's to avoid Scurvy
Show HN: Felicity – Node.js models from Joi schema
>If you live in the West you live in a free market right now.

> nobody (in) civilization has really ever lived under what is technically a free market.

So, we do or we don't?
See my above reply to dragonwriter.

You're right, of MV = PT they have only manipulated the M (Money supply) so far.

But unless this destructive dogma and school of thought is put to an end they will begin to institute velocity efforts during the next crash since rates are essentially zero and it's all they'd have left: wealth tax or applied negative interest rate on deposits, helicopter money, etc.
I think there's a subtle danger to "cognitive outsourcing", or at least an important distinction to be aware of. "Cognitive outsourcing" works like an oracle, but many of our best tools work more like bicycles: very direct, very fluid, very analog, with continuous feedback that helps us build an constructive intuition. Bicycles extend the range of what a human can do; oracles do something that a human tells them to do.

Sometimes this difference is a function of how information is displayed and how it reacts to the user. Terminals and REPLs are inherently oracles; spreadsheets connect our fingertips directly to raw information.

Other times it’s just a difference in the conceptual model that users construct. Some people think of Google as an oracle ("what is the weather like?"); others as a bicycle ("weather"). Those who bicycle around Google aren’t just “better at Googling”; they have a fundamentally different view of what they're doing.

This isn’t to say that oracles are inherently wrong or that bicycles are always better, but there’s a huge difference between truly augmenting a human and merely interfacing with one. It’s important to know which idea is appropriate for any given problem space.

(most of this comment was ripped from here: http://joelgustafson.com/ideas/2016/08/25/oracles-and-bicycl...)

(see also http://mental.bike, which I don't know why I own)
Well, I am going to call BS as if we had regulation regarding consolidation of banks, then we would have a larger eco-system in the financial areas: [0]

Here is my problem with banking, if naive, please inform me: Banking should be treated like any other base infrastructure. Financial infrastructure is critical. It is not ok for the foundation of modern commerce and civilization to be controlled by so few. We need to revamp our financial situation. period.

http://www.motherjones.com/files/images/big-bank-theory-char...
> Also, looking at the byteorder crate, I wouldn't be surprised if it's even slower than the simpler and correct loop I posted elsethread. read_num_bytes in that create uses copy_nonoverlapping, which I assume is analogous to memcpy in C. That's a very round-a-bout and inefficient way to accomplish the task, and likely patterned after similarly bad C code.

It wasn't patterned after any C code. ptr::copy_nonoverlapping doesn't necessarily compile down to memcpy. Namely, concrete sizes are given, so the compiler backend can optimize this down to simple loads and stores on x86, which is probably going to do better than the bit-shifting approach. Namely, loading a little-endian encoded integer on a little-endian architecture should be as simple as a single word-sized load (because the byte swap is unnecessary). It would be interesting to consider whether the safer and more readable bit-shifting approach could be compiled down to the same code, but when I wrote the byteorder crate, this wasn't the case.

This isn't the only place that ptr::copy_nonoverlapping is useful. I used it in my snappy[1] implementation as well, specifically to avoid the overhead of memcpy. To be clear, this wasn't my idea. This is what the C++ Snappy reference implementation does as well. Avoiding memcpys in favor of unaligned loads/stores is a dramatic win. I know this because I tried to write my Snappy implementation without specific unaligned loads/stores, and it performed quite a bit worse. The performance of the Rust implementation is now on par with the C++ implementation. Of course, this is always dealing with raw bytes---there's no type punning here.

ptr::copy_nonoverlapping is a bit generic for this use case. That's why we recently accepted an RFC to add read_unaligned/write_unaligned to the standard library[2]. (Which are implemented via straight-forward calls to ptr::copy_nonoverlapping.)

[1] - https://github.com/BurntSushi/rust-snappy/blob/master/src/de...

[2] - https://github.com/rust-lang/rfcs/blob/master/text/1725-unal...
> There are so many different desktop environments.

I described Linux distributions, not desktop environments, and the ones I listed are known exactly for having huge support from their communities and that can be easily picked up by anyone wanting to do so.

> trying to pick one to be supported, and trying to pick one for writing software

This makes no sense.

If you are writing software that is multi-platform, anything that runs on some kind of VM, you don't need to know the internals of your development OS.

Hell, even if you are developing an application that is specific to one OS, you still should not take your development distribution in consideration. A distribution is just a nicely packaged collection of software, there is no reason to tie your application to any of them.

Also, bear in mind that we are talking about ways to have more free software, not to have "one winner alternative of software". Any kind of contribution helps, no matter what distro most people use. Using the excessive number of distributions compared to one single "MacOS" as a justification to not support free software is akin to complaining about going to the supermarket and complaining about too many kinds of healthy fruits and vegetables and using that as an excuse to pig out on Nutella.

> developers like MacOS

Yours is one of the thousand variations of excuses I heard from people that simply do not bother to even try to adopt free software. I can take you up on a bet that you will find absolutely zero "high quality, pleasant to use" tools that a web developer can only find on MacOS.

From web browsers to server software, from compilers to text editors, from source code viewers to even file managers... I can bet that anyone claiming that a Linux-based distro falls short in providing tools has not touched a Linux-based workstation in at least a decade.
I'm old enough to remember the "it's your 8c/day" slogan for the (AU) ABC. CBC is proposing $46/year, which is only 12c. Pretty good deal!
Network Time Protocol Best Current Practices
‘Diamond-age’ of power generation as nuclear batteries developed
> Your mechanic might have useful insight into the reliability of cars but would have little more visibility into the safety of cars than the average person.

On the contrary he knows more people in real accidents unlike the regulators and sees on regular basis which car did better and worse. He has a clear skin in the game to offer me reliable advice.

> I hope your kid is a rhetorical device and not an actual child.

It is a rhetorical device but I hardly doubt people demand to see their pediatrician's degree certificate.
most of us are entrepreneurs,so we should all appreciate the value of the corporate vail.

But this is criminal identity theft. all of us would expect real consequences for that kind of activity.
thank you kind stranger! updated.
This is a great piece. Of course, the headline stat for me was:

As it turns out, there is no correlation between programming ability and and the frequency of Stack Overflow visits
Singapore has the largest notes in circulation, last i checked (S$8000).

People who want to ban cash don't care about crime. They care about control and management of things that are (by definition) not their business.

To these people, i say: ban bitcoin and gold, and then i might care what you have to say.
Assuming that CBC were to get this, how does this not make CBC a literal paid-mouthpiece for whatever the government might ask?

Assume that the CBC is ad-free with this money(grant?) then what stipulations may the government make regarding what they may or may-not run?

I am fine with things being ad-free, it just seems like a request like this would be rife with manipulation/corruption... even if not day-one -- but even within five years - the narrative is then owned.
IronTcl: Digitally signed, commercial binary distribution of Tcl/Tk for Windows
$400,000,000 per year to produce audio content? Seems high. NPR is at $140,000,000.
Now run the entire site through the "cheferizer" and we can have the SwedishCyberChef!
So what are the chances that you'll be able to get an open standard RISC?

Unlike software, you can't just download the code, you have to pay for a fab
Seems reasonable. Critical thinking is the key.
You do live in a free market. You don't live in a free market by a definition including no interference from government. But that's a dumb and useless definition so it's tossed out here.
Type punning is a mess in C because you have to jump through hoops to make it legal. The language subsequently failed to provide ergonomic solutions to the very real problems type punning solves in a systems language.

Type punning is perfectly allowed in Rust, I'm not aware of any lints against it. Although you need to use an annotation to specify the struct layout algorithm to do it "correctly" for custom types.

We use it in BTreeMap to implement a kind of inheritance between nodes. Internal nodes have the same layout as Leaf nodes, except internal nodes have an extra field for their array of edges (which you don't want to allocate for leaf nodes). So everything stores pointers to leaf nodes, and mostly manipulates all nodes as leaf nodes, but sometimes you "down cast" them to internal nodes to manipulate the edges.

In this particular case we use the standard C++ pattern of making a LeafNode the first field of an InternalNode.

https://doc.rust-lang.org/nightly/src/collections/up/src/lib...

The other common usage of punning in Rust is to gain access to some raw representation of a type. For instance, last time I worked on Rust, this was how fat pointers (&[T], &Trait) were constructed and decomposed at the lowest level.

I can't speak to whether the usage of punning in this code is particularly good though.
I'd be happy to pay my $45.71 per person per year. The BBC makes amazing shows - I don't see that Canada can't do the same. As Canadians, if we believe that we have something to say to the world, we need to fund saying it.
We definitely over-reached. You could also call it greed, naiveté, or ignorance. However, I don't think we failed. There were a lot of hard lessons, but it's been over a year of work and we have a small buisiness company that's actually making money by selling a physical thing. I'm really proud of that.
Fairfax County, USA
Somehow title lost @ at the end. Is it some kind of forbidden character?
> thus costing even more of your tax money

Better the commons than individual landlords
Compilers understand memcpy, especially in the context of type punning (historically being the recommended standards-compliant way to do it) where one has small constant sizes. The copy_nonoverlapping "function" is actually a compiler intrinsic, but even if it wasn't, compilers like LLVM recognises calls to "memcpy" and even loops that reimplement memcpy and canonicalise them all to the same internal representation.