skysight-inc/HackerNews huggingface dataset:
Simple vs. non-simple isn't the best way to think about code.

Rather I would think about the requirements of the code. Who is going to be reading it? Maintaining it? Do advanced language features give some kind of advantage (runs faster?, less likely to have bugs?, more extensible?). Will new team members likely introduce bugs? Is spaghettti code better or worse than using less known patterns/language features?

Don't use advanced language features in production code for these reasons: (i) impress people or (ii) develop your CV.

Don't avoid using advanced language features just because someone wrote a blog post saying it's a bad thing to do.

In a nutshell: Think.
>It's a terrible idea not to. If your code isn't coupled to someone else's code your code isn't doing anything useful.

Paradoxically, you want your tests separate from the external inputs, because complete control over the inputs is required to systematically and programmatically hit every edge case with every pass of your test suite.

You also need the modularity in your tests and code, so you can fix and replace 3rd party endpoints without being afraid of polluting your code's inputs, or having to rewrite your integration suite. This is where the data contracts come in: they make sure that each module of the system and its partners are speaking the same language, even after they have been replaced or updated to handle new 3rd party behaviours.
The number of transactions is close to nothing compared to credit card transactions. The current blockchain networks have to improve a lot.
Isn't the thing that really bugs you that you didn't buy Bitcoin a few years ago?
And maybe you're thinking that it's worth the risk-reward ratio (even if I agree, that it's a risky investment)
Even if you never use Angular you can thank them for finding and fixing a huge Webpack memory leak:

https://github.com/webpack/webpack/issues/5992#issuecomment-...
The Apple II was particularly elegant, in that it allowed the driver code to be in a ROM on the I/O board. Plug-n-play???? pfffft, sorry MSFT. When you plugged in an Apple II peripheral card, the driver was installed. Full stop.

Since the very beginning, I've considered that omission to be USB's great failing. There is no reason, given the technology of the time, that a driver standard built around a platform-neutral byte code could not have been done. The byte could could have been transpiled to any arch/os at driver init time, or on first USB device mount event, or some such. Glaringly missed opportunity, but nobody asked me.
I'm thinking the only suitable punishment for something like this is to ban the company's products from sale for a long period of time. VW-corp isn't hurting from some executive or engineer being incarcerated.
A RAW Feast on the Linux Darktable (Photo Editor)
If 98% of the population think it's in a bubble then it's probably not in a bubble
Very soon (next week) bitcoin futures will start trading which will be an easy legitimate way to take a short position. You just need a futures account which you can get from regular financial institutions.
> He had a base salary of $130,000, received bonuses of at least $40,000, and had a net worth over $1 million

That's executive pay at VW?
I got lost in 2.2, I can't work out how applying the transformation leads to the result. Which is frustrating since it's the only non-trivial line in the proof, lol. Also, after applying the transformation, the author states that "a1(λ1 − λ2)(λ1 − λ3)...(λ1 − λm)v1 = 0" => "a1 = 0". But he never says why we know "λa != -λb for all a, b in 1..m" -- that seems non-obvious to me.
Obama did not waive it in 2016.
Many Startup Founders Doubt Extent of Sexual Harassment
Black Lives Matter seems very throwback racial politics to me. Is that a DNC thing, specifically? No, but clearly there's an embrace of the movement in order to secure their votes and energy. So yes, as a national party, democrats are all about griping for oppressed minority groups.

60's radical ideology is what I understand stems from the Marxist shift from class struggle to oppressed identity groups in the 60's as a means of staying relevant. Here's a discussion about this phenomena on Wikipedia:

https://en.m.wikipedia.org/wiki/New_Left

This is cultural Marxism. This brand of politics is pessimistic, negative, divisive and wicked by nature. It foments discontent. And notice that it only seeks to lift the oppressed minorities up by bringing the oppressive majority down! Sounds like typical democrat rhetoric to me.

60's boomers' clock is ticking, the radical ideas just fading away to obscurity now... Time for some fresh thinking on the left.
Rings: an efficient Java/Scala library for polynomial rings
Not really new, we've been working on this for 2 years... But yeah, good luck! Real estate is a pretty hard market to crack, but there's money to be had there.
As a learning experience I don't think it is a bad thing, though I would generally agree with what you're saying for any new compilers. Really though, writing a new compiler doesn't really make much sense anyway. Adding a frontend to LLVM or GCC would likely give much better results (Though I can't really say which one is easier - writing a dumb compiler for a simple language isn't too hard).

It's also worth noting that his compiler creates an intermediate AST (As any sane compiler should), so it's really not that hard to write multiple backends if he wanted.
C++ guy but anecdotally, the first one really does read better.
In your opinion, great. It may be last time we see $13k. Or it may not...

So if something has been rising for 6 months, it cannot dip below that point, because of your opinion.

Too bad we did not have your opinion in 1929 or 2008 or 2013 (Mt Gox). Would've saved us.

How about businesses like Steam ditching Bitcoin support?

How about Bitfinex not backing up their fake currency called tether?
Consider the saying "you are the product" about these things. If you are the product who is the customer? Advertisers.

It's about selling to advertisers. It doesn't matter so much whether or not it would actually work, just that it offers ad vendors a new "blue crystals" feature to sell. Micro-targeting segments the market more finely, allowing higher prices to be charged overall while giving advertisers the illusion that prices are lower.
People are also seeing their co-workers and families asking about how to "invest" in Bitcoins.

So the old story about Joe Kennedy and the shoe shine boy applies too? The saying " You know it's time to sell when shoeshine boys give you stock tips. This bull market is over."
The AIX installp format is my favorite package manager. It was fairly easy to debug it until it hit the ODM.
The only time when AIX utility debugging got weird was when multibos went off the rails.

I started using ksh on AIX and it has been my favorite shell since then. I've written a few thousand SLOC worth of utilities and customization scripts in KornShell.
Looks neat!
That's where hardware wallets like Trezor or KeepKey come into play. Any transactions are signed on the device and sent back to the computer; your private keys never leave the device.
You are not their only friend!
So, knowing it was HackerOne was this as nefarious as the news is truly making it? It sounds like he found private keys in the github repos like was mentioned, that doesn’t necessarily mean that he downloaded or even blackmailed uber. Uber is still in the wrong for keeping a potential breach secret, but I’m beginning to have my doubts here.
It doesn't seem he was a top executive based on his pay ($130k salary and ~$40k bonus).
Uber paid this Florida man 100K as a bug bounty - and the secrecy was just part of the deal. My understanding is that bug bounties usually come with a reasonable disclosure process but in this case, Uber did not want this because of the severity of the issue, which in my opinion is wrong because of the potential impact of the bug. In any case, I wouldn't be surprised if there are similar cases that happened to other big companies like Google, Facebook.

Edit: According to the disclosure process on https://www.hackerone.com/disclosure-guidelines, there's nothing about disclosures lasting this long.
PGP and limit to nerds was a joke. Using crypto to simultaneously anonymize and identify (which is being done at least indirectly to enforce one-vote-per-person) sounds more like a contradiction than an engineering problem.

That being said, if there is a buck to be made, people will swallow all kinds mess to make it.
> It sounds like you haven't been through a bubble before.

I had bitcoin in 2012 also. I've sold it when it hit 1000$ just before Mt Gox collapsing.

> and it wouldn't surprise me if this is still near the beginning of the Bitcoin bubble and we have a while to go

Agree.

> But please, for the love of god, do not invest money in Bitcoin that you can't afford to lose.

I also agree here 100%, unfortunately some people bet a lot more, anyway, I can't stop someone from going into casino and betting all they have on red.
> This is not a bad bill.

What about the $1.5 trillion cost?
The Rise of DOS: How Microsoft Got the IBM PC OS Contract (2011)
You realize the VW is also a part a of the US economy right?

They invested a billion dollars building out their facility in Chattanooga, TN and employ thousands of people, contributing to the economy and tax coffers. This is not their first plant either.

Hurting VW also hurts Americans and the local economy there.

Any US Auto Lobby also represents VW, Honda and Toyota in addition to Ford, GM and Chrysler. They all make cars in the US and have significant operation there.

See:
https://en.wikipedia.org/wiki/Volkswagen_Chattanooga_Assembl...

and

https://en.wikipedia.org/wiki/Volkswagen_Group_of_America
I think your giving a bad map reduce example. It is written in a very immature functional programming style.

It should be written like this, IMO:

var r = array
.map(square)
.reduce(sum, 0);

Differences:

1. Separating out actions by line

2. Pass named functions that describe what they do
"Which is why we should all vote and lobby for better welfare systems - so that we and our loved ones never have to take these types of decisions."

Pretty sure that is an answer even if its one that is unlikely to work for America this decade.
Except the over head of that loop is orders of magnitude higher than the reduction. Did you get the bounds right; what happens if you accidently start at 1 or end at <=; what if you're nested; did you use i and j in the right place? The nooks for bugs in your "simple" loop are so profound that, in a language with expressive maps, I wouldn't accept that code in a review.

"Simple" is great until you're debugging off by one errors or any other errors between chair and keyboard. Complexity, in the sense that this guy rails against, is expressiveness. And, expressive code beats "simple" code every day of the week.

--Quick edit
Imagine that loop in assembly. It's objectively "less complex" yet you didn't express it that way. Why? I think the answer to that question is the heart of the positive argument for programming abstractions (and the "complexity" they bring).
Sounds like kappa architecture is something that will fit your request.

http://milinda.pathirage.org/kappa-architecture.com/
I don't know, I'd have to ask the guy who wrote said sentence! (I'm not alone at Tylio, we're a small startup in Montreal)
Assure Net Neutrality by Exploiting Tiered Internet Video Streaming
When I attended Google IO a couple of years back, I was surprised how many Android team members were using iPhones.
Just a reminder: When floating ice melts in water the level of the water does not rise. https://www.youtube.com/watch?v=aOCqHRpQh88
And is subtly racist.
Yes, I've been reading about the South Korean frenzy for a day or two. This morning, a Bloomberg article[0] pointed to fear of war with North Korea, and fear of financial chaos around ongoing corruption scandals.

But there's little doubt that immanent trade in Bitcoin futures is the major driver. From a recent Coindesk article[1], I get that sellers of futures contracts are hedging in case the price falls. There's no requirement to own Bitcoin for selling futures contracts. But there is the expectation that they will hold Bitcoin at settlement.

So maybe some are buying now, and expect to win big in the futures crash.

0) https://www.bloomberg.com/news/articles/2017-12-06/bitcoin-f...

1) https://www.coindesk.com/bitcoin-futures-make-way-new-kind-w...
HP Envy Snapdragon 835
Given the futures will be cash settled there is going to be a disconnect. So it will be interesting to see if the crazy rallies do end.
It's estimated it's cost VW-corp $30bn which probably even they notice http://money.cnn.com/2017/09/29/investing/volkswagen-diesel-...
No.

That would negatively impact all the employees that had no input or knowledge.

Punish the decision makers and the ones who knew about it.
If the futures markets at the CBOT or CME attract volume, you could use those. Otherwise, you'd have to do it over-the-counter. Borrow a bitcoin from someone and turn it into real money. When you have to repay, if BTC is down, you'll buy back a BTC at a profit. If it's up, you'll have to buy back at a loss.

Note that this gives you a maximum gain of whatever BTC/USD is today (assuming you denominate in greenbacks), while upside risk is theoretically unlimited.

Of course the lender has to trust or be ensured (or insured) that you will repay.

There must be people using Ethereum contracts to make options on BTC, and maybe trying to minimize counterparty risk through the judicious use of open-sourced smart contracts and digital collateral? Anyone know of interesting cases?
You are underestimating the extent to which a finite $200M injection can make it seem like the price is skyrocketing for exogenous factors and therefore yield real money coming in. Classic pump and dump strategy.
What about their ignition scandal - did anyone go to jail for that?
The first is Pythonic code. I'm guessing the author isn't talking about conventional code, but a more agnostic point of creating complexity for complexity sake, which, unfortunately, is a very common issue.

The other way can also be a problem. If you are manually writing out range(len(stuff)) in Python on all your loops, you are writing code that is complicated, overly verbose, difficult to understand, and error-prone.
Don't feel embarrassed.

There are professional security people who disagree, at least in practice, with Mr. Schneier, and would make Rube Goldberg envious with the needless complexity of their constructions.
Not OP but I'm still on 1.2 because I still had to support IE8 when 1.3 dropped it out of the blue (I wouldn't have used 1.2 if I had known the Angular team planned to drop IE8 support). Shortly after, Angular 2.0 was announced and at the point where IE8 was no longer a requirement Angular 2.0 was still not stable but not far away enough to justify spending energy upgrading the codebase to another 1.x release in the meantime (especially as AtScript was still a thing and there was no clear upgrade path yet).

The app is still in production but parts of it have been rewritten in React since. Despite the added weight of another library, introducing React ironically helped reduce the file size (mostly because it allowed us to remove dependencies that were no longer necessary and the build process changed with bower being replaced by yarn).

EDIT: Another factor in the decision not to upgrade to 1.x when we were able to drop IE8 support as a requirement was that the removal of IE8 support came so abruptly that we decided not to trust Angular to support any browsers that aren't on the latest version (i.e. we expected them to drop IE9 support equally sudden and it seemed clear that Angular 2.0 wasn't going to be built with compatibility in mind).

For comparison, when we added React to the project two years later (when IE8 was no longer a requirement), React still supported IE8 and only several months later announced that they would drop support with the next release. But even then "dropping support" meant that bugs were deprioritised whereas the AngularJS announcement heavily suggested that existing code for IE8 would be intentionally removed or rewritten in a way that breaks compatibility outright and the code should be expected not to work in IE8 at all.

So based on how the announcements were made and what "dropping support" entailed in each library, React seemed the safer bet.
But if he found them, then someone else could have _already_ found them and downloaded the data.

The problem isn't that Uber paid him for finding the vulnerability, but that Uber kept it secret for so long.
They are making a subtler claim, that the individual marketplaces are expensive to insure compared to other insurance (and thus people receiving lower subsidies pay a lot for marketplace insurance).
Getting from 1 to 2 was quite an experience. Much discussed here and elsewhere.

Thereafter though, they have been just relentlessly polishing, improving, smoothing rough edges, making bundle smaller, making compilation and execution faster, etc. It is really a model of exactly what you would want, in terms of a joint respect for backward compatibility with forward progress.

I don't understand the "haters" in some peer comments. There are certainly interesting things to consider in terms of feature and approach differences between Angular and its competitors. You could certainly find bits where a simpler approach taken by one of the competitors is a quicker learning curve and smaller size.

But at the same time Angular has a substantial feature footprint, it has significant swaths of functionality that the competitors don't address. We've been using (leveraging like crazy!) the Angular forms system. Many enterprise and non-enterprise applications have lots and lots of forms. Not forms in the trivial sense of, some controls on the screen. Complex interconnected behavior. Angular brings a lot to the table here.
Auto-updating expired card info is absolutely a thing: https://www.creditcards.com/credit-card-news/recurring-charg...
Even big vendors do source code escrow for very big contracts (e.g. government).
Might look nicer to write the first version as:

let square = (n) => n*n
let sum = (s,n) => s+n

let r = array.map (square).reduce (sum,0)
Hi, check out Emburse (W16). We have virtual and physical cards that you can set for one-time or recurring.
That's the only way to win long-term in gambling. Cash out winnings over your stake.
> Except the over head of that loop is orders of magnitude higher than the reduction.

Except that it's not. Read the SO answer I linked.

> The nooks for bugs in your "simple" loop are so profound that, in a language with expressive maps, I wouldn't accept that code in a review.

Yep, I've definitely worked with people like you. With all due respect, I just think you're fundamentally wrong. Off-by-1 errors will happen no matter what, and even a rudimentary test suite can catch those.
Yup. The most likely outcome of the grad student changes in the House tax bill would be an even greater shift towards international students from well-off families.
Anecdotally, not so much. My next door neighbors won't buy anything but Toyota. The guy across the street is committed to Mopar. Friend of mine only looks at Subarus. My mom hasn't bought a car that wasn't from GM in decades, if ever. I'm the black sheep of the family in this regard, having owned one of almost every brand. Except VW, haven't tried something from them yet.
this seemed like a bug bounty from the beginning, and the media was disingenuous to spin it like blackmail.

if there was no evidence that any data was actually compromised, I'm not sure I see a reason why they would need to disclose this to the public.
Just knowing it's in your mempool isn't a very strong guarantee that the payment will go through. Probably fine for reversible digital goods, but not much else. Some systems pay miners to look at their block templates to get a better assurance it will confirm (and that it won't be replaced), but it's still not very good, and given that Lightning is now running on mainnet there's little value in continuing in that direction.
I wonder if my stock market portfolio has any real exposure to Bitcoin tanking.
FWIW in Spain is a French goodbye
Looking at the Coinbase graphs reminds me of reading CPU charts, comparing resource use between 3 web servers. Sometimes one coin will spike or dip independently, indicating higher utilization of one coin over the other 2 - an arbitrage opportunity; other times all 3 coins see a matching dip or raise, likely indicating a systematic cause.
That’s not an excuse for not coercing execs guilty of fraud into jail. If the US government had been lighter on GM, that would have been unfair, but’s a separate issue. Justice is due, and it’s unfair to the lowly that just living abroad is enough to dodge responsibilities.
Teacher regularly called C a macroassembler
> the personal data of 57 million passengers and 600,000 drivers were stolen in a breach that occurred in October 2016, and that it paid the hacker $100,000 to destroy the information
Since he's a professor, I have no doubt that what he says is true in his environment.

On the other hand, it's all relative. After having worked in Silicon Valley for over 15 years, I think the more common mistake is knowing too little philosophy rather than too much. (Of course, I agree that 5 dollar words confuse issues more often than they illuminate them.)

It wouldn't hurt a lot of engineers and tech companies to learn more about the past and be more literate.

As an example, off the top of my head, here is a concept which comes up a lot in software:

"The Map is not the Territory"

https://en.wikipedia.org/wiki/Map%E2%80%93territory_relation

Likewise:

https://en.wikipedia.org/wiki/Ludic_fallacy

You don't have to do statistics / big data for very long before you hit philosophy. It bottoms out pretty quickly, i.e. how do you learn about the world. Likewise programming is about making things, and sometimes about modelling the world, and there are a lot of useful philosophical concepts in that realm too.

This is without even getting into the "morals" of technology, which is a big thing in the news lately.
"Simplisticity" is in the eyes of the beholder. (Many serious programmers see the C++ template language as overly simplistic.)
Off by one errors can't happen in the functional version. There's no reason to take a fatalist stance here. Just saying "well those programmers should write more tests" is silly when you could say, well why not tests and write code that is naturally hardened against foot guns.

I was referring to mental overhead; though in a more modern language like rust the performance implications would be far less profound than the linked SO discussion.
This is a prominent criticism, but it strikes me as fundamentally weird to say, yeah, you're right that these are tax cuts, but the cuts expire in 10 years. This is government. Who knows what the world will look like in 10 years? Would, say, 20 years be better? Sure, I guess. But 10 years is a pretty long time. It's pretty difficult to plan most personal finances out that far, anyway. Who knows what your own life will be like in 10 years?

Isn't the complaint that the cuts don't last longer tacit approval of the cuts?
Bitcoin and Bubbles
This piece seems relevant: https://johnhcochrane.blogspot.com/2017/11/bitcoin-and-bubbl...
That's why I wrote a sentence that followed that one asking:

The thing is, there are people that depend on that sort of resource or small loans so what is a better way to do this that doesn't lead to bad outcomes?
The "if" parts of your comment need more thought that you've given them.
I've been thinking about this lately, too.

I strongly believe this, to the extent that I have a preference for code which is simple but incorrect over complicated but correct.

Obviously simple and correct is best, but if I can't get that (at least in the short-term) I would sacrifice correctness for simplicity.

You can often incrementally improve a simple solution, but it is very difficult to simplify a complicated solution.