skysight-inc/HackerNews huggingface dataset:
In Britain we have a representative democracy. That is how British democracy works. A small group of Euro-sceptics in one party were frustrated that they couldn't get Britain to leave the EU using that system so forced the PM to hold a referrendum. So they couldn't get their own way by following the rules so forced the government to change temporarily to a different kind of democracy that better suited their means. That is incredibly dangerous, yes. Direct democracy is not just calling referendums when you think populism will help your cause.
If I recall correctly we just couldn't come up with a great name for it. To me "expect" is a positive action, but the argument is about it failing to meet the expectation. Semantically I like `thing.unwrap_or(|| panic!("failure message"))`. It feels more like what I would want to say, but it just is so wordy.

Ultimately I'm happy we just picked something and moved on, but still mildly annoys me whenever I write it. If only we found that perfect method name way back when...
The Worst Advice We've Ever Heard About Extra Money
Note that the split was between classes, a term that has been anathema in western politics since the 80s or so.

Present and former industrial workers basically all voted leave, while knowledge workers and finance voted remain.

What is telling is how the former class' way of life was ravaged first by thatcher's union busting, and then by management (under pressure from finance) either moving production abroad, or shipping cheap workers in.

Knowledge workers, particularly the kind that is frequenting this very site, have a much easier time moving around as the needs or desires require. Especially as the market segment prefer younger employees, unlikely to be "burdened" by family and such.
Me too, I was advised by my host family in 2014 and 2015 not to tip, either. Though we may have all been wrong :)
> It's a big leap to go from nationalism to Nazism.

No, it's not. Just look at what happened to the AfD in Germany - first they were just euro-critical nationalists, and not even three years later they have open holocaust denials in the front row (http://www.berliner-zeitung.de/politik/afd-politiker-designi...).

Add to this the countless other antisemites, supporters of right-wing terrorists like PEGIDA - Petr Bystron, leader of AfD Bayern, calls for the AfD being a "shield" for Pegida and Identitäre Bewegung, while Heinz Meyer, leader of Pegida München, is under suspicion of founding a terrorist group - the road from nationalism to outright nazism and terrorism is VERY short.
You can look at other statistics, such as the wage share of income, and the correlation between productivity and wages. In the case of Australia at least, the wage share has been declining for the past 20 years, and productivity growth decoupled from wages growth in the late 1990. If you then look at real net national disposable income per capita, it has not been rising (in fact it is in the same place today that it was in ~2012) in a way that would indicate that benefits of technology/automation are spreading via lower prices/higher quality. In Australia we have observed a steady rise in profit share of total factor income from the early 1970s, with only recent decreases related to commodity prices/terms of trade.

This [1] report indicates that falling wage share is ubiquitous among developed countries.

[1] https://www.oecd.org/g20/topics/employment-and-social-policy...
Sorry, that was a pretty mean response. Maybe she scoped you out and thought you were cute? Maybe she's just trying to make new friends and remembered you being nice? Why wouldn't she just say that to you? (instead of sorry, didn't mean to offend)? Probably because your response made her go "oh crap, this guy is an a-hole - bail) That's exactly what my response would be.
I've switched to google-closure-compiler-js, which eats ES6 by default.
Seiko 7S26 for Novice Horologists
> He also changed the screw_ie8 option to be called ie8

That's a shame, I always enjoy that silly bit of humour every time I scan my uglify configs!

I totally get why it's safer to not do that sort of thing, nonetheless it does have a certain charm when done sparingly. I wonder if the change was in response to some specific feedback / complaints?
Hence the general election.
WATCH Live: Arsenal – Manchester United
That is a good point. I'm going to have to start being more positive in my expectations :)
Sustained disinformation campaigns are a go-to strategy. Redirecting and confounding conversations are documented tactics. They don't even have to be particularly well veiled or surgically placed as their value derives from their volume.
Is Rambus still a thing? I remember their vendor lockin RAM memory from Pentium 4 era. Later there were some bad PR and lawsuits, and the PC world moved on. https://en.wikipedia.org/wiki/Rambus
It's only cheap if you come to Japan for holidays, or if you're an expat detached by your company to Japan.
If you're living in the country, receiving the same salary as any Japanese person, Tokyo is an expensive city. And I'm not even talking about language teachers, who cannot really live in Tokyo or all the Japanese people who are part-timers

Everywhere in the world salaries, rents and prices go hand in hand. Unless you're living on one side of a border and working on the other side (which is possible in EU) which allow you to game the system, rents and prices are based on supply and demand. Don't take it personally, but it does not make much sense to compare what you would get with a salary from one country while living in another country.
When you're debugging or reading code, you often want to know what a particular line of code was originally supposed to be doing. Maybe you want to know if it's OK to remove it, or you don't understand why it's written a certain way. If you can go back to the commit where the line was added and find some meaningful information about what that commit was supposed to be doing, that gives you a lot of information about what the code itself was for.

This leads to a commit style where each commit has a well-defined purpose rather than just being a snapshot of the code at a point in time. You make frequent commits while writing the code, but once it's working, you go back and create distinct commits for each distinct change. While you're splitting your changes up, you sometimes realize you forgot something, made a mistake, or left some junk around you didn't mean to commit, which is a nice secondary benefit.
Just love it.
> mistaken push Einstein and co. made for deterministic interpretations of quantum mechanics

But really. Secretly we all expect one to exist below it all.
When someone comes to me and says, "I just spent the weekend porting a simple Python web crawler that was working just fine to Rust, and I came across problems x, y and z." What do you think an appropriate response is? Should we berate them for "choosing the wrong tool for the job"? Or should we ask them what they're problems were and help them fix them?

I'm not saying we shouldn't have a conversation about which-tools-are-appropriate-when, but when someone is obviously trying to learn, let's put that on the back burner.
Is this the same Rambus that essayed into patent trolling standards? If so, I'm surprised they didn't change their name.
You don't have to convince me of the value of Result types, I prefer them too. I've only written a couple thousands of lines of Rust but tens of thousands of Haskell which rely on the same concepts (though its nicer with do notation). I don't have faith in the masses though and right now there is a strong selection bias in Rust that means only people concerned with quality and correctness are using it in the first place.

I think twenty-five years ago there were similar hopes and dreams for Java checked exceptions.
If anything, EU rules and regulations is what is giving those groups fuel to their fire.

Leaving EU, thus allowing a debate about these issues without the EU regulations acting as a trump card, may well de-fang them.
There is indeed not tip. But he was comparing with the prices in USA, where you need to include tipping.
I didn't read the grandparent post as suggesting that the EU had imposed austerity, just that it was one of the things that people were unhappy about and that they used the referendum as an outlet for their anger.
I will say that as someone who was not a real expert at anything when Rust came out, but familiar with a lot, I find that learning c++ these days has the same problems, and so does learning a functional language.

They're all unique in what they do. I'd still say a simple procedural language like C is easiest to read, but 'modern c++' has more idioms and quirks than Rust, in my experience.

And Rust has the advantage that the ecosystem is very well tied together and it has a great community and documentation.
You can handle es6+ with the harmony flag but if you're already using Babel is there any reason to use Uglify over Babili?

I believe Babili generates minified/mangled output directly from the Babel AST which would be way more performant during the dev cycle.
The git history shouldn't reflect the dev process, it should be maximally useful to other devs. Bugs and mistakes should be squashed/fixup'd before merging.

One squashed commit per feature is also terrible. A commit should contain a set of changes that accomplishes one thing, whatever that means to you and your team.
Best Perl Programming Books for Beginners 2017
A huge part of lower home prices in Japan is that they treat housing as a depreciating asset in their economy. So it's more like buying a car than making an investment.

http://freakonomics.com/2014/02/26/why-are-japanese-homes-di...
„I hope, E-Mobility will kill German car manufacturers... they (the manufacturers) deserve it“

So the 500.000 people working for VW and their related families (probably clocking in at > 2 million) „deserve“ to loose their job and livelihood because 5 clowns at the top are pulling the strings the way they want?

Don't get me wrong...but the problem seems not to be with the manufacturers per se. More about regulating the very top of the ladder inside huge companies like in other sectors of the economy (banking, etc.)
Yes, if that manipulation is driven by you, and if "wealth" satisfies your subjective preferences. So it could be money and assets, or accomplishments, or relationships, and so on.
That kind of dogma does seem a bit silly, but why wouldn't you split the commits into separate pull requests instead of squasing, e.g. PR1: "refactor code to allow thing X to be pluggable", PR2: "implement new alternative for thing X" etc. The discussion around PR1 can then focus on just the plugin interface for example.
Relationship Status: It's Complicated  –  Getting Docker into Production
Don't think it is "hence". Whether to exit the EU or not is not up for vote.
If anything EU rules are making the situation worse.

And it would not surprise me if elements within EU welcome the rise of these groups, because as it was said about Mussolini "at least he made the trains run on time".

Damn it, just watch the events in Greece a year or so ago.
I fight the left because of Venezuela, Cuba, and every place else where Marxist ideas have infected the minds of the masses to give assent to dictatorship. To me, the left will never conjure anything other than the ideas of misery, starvation, political violence, and destruction of life on a massive scale. The Soviet Union, the gulags, China, North Korea. Not one single success story.
On a recent trip to Tokyo I was under the same impression about the low rents until I noticed that many apartments are a single room roughly 200-300 square feet in size.
> Does not come bundled with any "end-user" applications (web browsers, email clients, multimedia software, office suites, etc..). The only utilities that Lumina brings to the table by default are the ones written specifically for the project and are generally for background/utilitarian functionality (the largest utility is the file manager).

If this is the case, I wonder why the banner on https://lumina-desktop.org/ has a link to "Development Preview: lumina-mediaplayer" (https://lumina-desktop.org/1-3-0-development-preview-lumina-...)?
>It was there that I figured out we are wasting time, we think our opinions matter, but they don't. Fb is just a waste of time.

Yeah, even more so: if we spent the same time/energy in becoming better at something else (studying, writing, etc), we could actually acquire more influential voices that actually matter a little more (or a lot more).

If some world news subject REALLY matters to us, for example, instead of commenting on FB, we could study it thoroughly, read books about it, start writing an opinion column on some media outlet, participate in some group that affects change, write a book on the matter, shoot a documentary, write some software or web service that helps the people with that issue, etc.

And then we have a real voice and affect some smaller or bigger, but real change.

Not some BS post we posted to 2000 friends on FB, of which 300 automatically clicked like and 10 actually read, of which we engaging in a flame war with 3.

And if the subject doesn't REALLY matter to us? Well, then the world might be better off without our uniformed comment or "just repeated what I was told from the news outlets I read" rehash.
In my experience: slightly smaller js, and significantly slower.
It almost smells like an obfuscated tactic to evade review. In a rush a reviewer might see strncmp and think "Not using strcmp. Check." without going all the way to consider the strlen as argument, which really should have been a constant and the smoking gun.
Neither would the millions of deaths from new advances in military technology be possible without automation and technology.

Neither would the perpetuation of fake information and news on a global scale be possible.

For every bit of good the internet has done, it has also allowed bad things to occur too.

I'm not saying there is no good, but to say that it is only beneficial is a strong claim, I would argue it is more neutral.
Java's checked exceptions were a disaster. It essentially handcuffed you, limiting what you could do in an overridden method (because you can't add more exceptions to the throws list). So you end up wrapping in RuntimeExceptions and then later having the whole app fall over because the framework that's expecting your class was only designed to handle the checked exceptions.

So yeah, want your implementation to consult a database? Sorry, the interface you must implement doesn't declare any checked exceptions, so say hello to app-killing RuntimeException wrapped SQLExceptions :/
I get your point about the development process representation, but I don't think you get the OP's point completely, there are ways to get there which do involve rebasing. I assume OP works the same way like I work; not every commit represents an interesting part of the development process (more like from the thought process while working) and rebasing afterwards is simply mandatory.

By example: this morning I was working on some huge refactoring and already had 5 short meaningful commits (not all with proper commit message yet) when I noticed some small bug creepd in so I added a line to fix it. That line then goes in it's own fixup commit for one of the earlier commits. Likewise, I noticed one of the new interfaces would be better if it had 2 more methods. So: new fixup commit again. A couple of commits later one logical piece of the work was done, so I did a rebase to get all the fixup commits amended to where they belong. Then I reviewed all commits carefully, rebasing again and squashing some commits because it made more sense to me like that, and adding/editing proper commit messages on the go. I work best like this (mainly for pretty large changes or new features which add a lot of code - for small fixes here and there it's obviously not as involved) and it does produce a perfecly viable story about the development process, useful to other readers, but only because of the rebasing. Otherwise it would be a mess. This to illustrate it's not always as simple and general as 'please don't do that rebasing madness'.
The point that I was trying to make is that most of the inequality and wealth concentration we're seeing is due to entrepreneurship rather than passive growth of wealth. I'm hopeful that the trend continues and leads to a more equitable distribution of opportunity
Thank you for highlighting this! I wasn't aware of Patrick's software until you mentioned it, but there's a lot of great stuff there:

- KnockKnock: perform system scan to list everything you have installed, like kexts, browser components, startup scripts, etc.

- BlockBlock: continuously monitor system for changes to startup scripts

- TaskExplorer: tool to examine a running processes

- Oversight: continuously monitor microphone and webcam activity

Nice UX too.
There's two things that don't get mentioned much with this issue.

1. There's a second bug that allows non-root local users to provision AMT. "An unprivileged local attacker could provision manageability features"[1]

2. Access to AMT allows you to boot a recovery image, mount local drives, and do whatever you like with the included remote KVM.[2][3]

So, even if this is turned off, there are issues to address. If it's on, they have control of the whole machine, remotely. It's as bad as it can get.

[1] https://security-center.intel.com/advisory.aspx?intelid=INTE...

[2] https://software.intel.com/en-us/node/681803

[3] https://software.intel.com/en-us/node/674998
Why should anyone care about their society if they reap no benefit from it?
I do not have any knowledge about cPanel or horde, and my experience with Web is very rusty, but this post is 2 days old, so here are my two cents:

As far I know there are different kind of hosting, in some cases, the HTTP server is shared between customers instances.
cPanel makes it possible to examine the server logs, isn't? So in the case of a shared HTTP server, it might be possible to learn a lot about other hosted customers, by looking at the server logs...
Isn't this similar to the Proto Indo European expansion across the Eurasian steppe?
Not surprised that The Guardian is running this, because ever since the 2007/2008 cricis they have proven themselves to be firmly in the champagne left camp. Thus EU is good because EU is about European peace, full stop. Say anything else and you get shouted down as fascist or just get to witness them stick fingers in their ears and go "lalalala EU is peace lalalala".
I have no opinion about whether exceptions are better or not, but .unwrap() is basically the same as an uncaught exception, no? Program closes, prints a backtrace and a somewhat cryptic message which is usually enough for a programmer to understand what happened.
Uglify is a mature and widely-used package. I use it and I love it. It's been years since uglify2, and I was excited to see this.

But... it appears that there are no release notes for version 3, apart from the three negative points at the top of the README: backwards incompatible, twice as slow on the latest Node, and still no ES6 (edit out of the box). No rationale for (or detail of) the breaking change is given. Really bizzare.
Sorry for being a bit OT but you may remember last year a boy was missing for several days in a remote forest region of Japan. I found that surprising, my prejudice of Japan had been that it was very heavily populated and urbanised but when I looked it up I discovered that it is an incredibly forested country with 70% of the country this way. Practically twice that of the USA.
Camel: Object Oriented YAML for Java
Can you find a concrete, non-emotionally biased reason that they should be left alone? They are dead, hey memories live on not in the ship, but in the people who's lives they impacted.
It may have had only a tiny effect but considering the election could have swung either way with 100,000 votes in the right states so who knows.

https://medium.com/startup-grind/how-the-trump-campaign-buil...

https://www.wsj.com/articles/donald-trumps-new-attack-strate...

https://www.bloomberg.com/news/articles/2016-10-27/inside-th...

a.) identifying Clinton voters and sending negative Clinton ads based on race/gender/policy reversals(by Clinton) to make them consider voting for anyone else, or not voting
b.) identifying voters who were on the fence and sending them ads for Trump + identifying geographic clusters in swing states and sending Trump there for campaign rallies
It didn't invent any of these. This is railway-oriented-programming[1], using Either, leftMap and bind/flatMap, a conversion from Either to Try, with forced recover calls and explicit implicit conversions via typeclasses.

Other than the enforcement by the compiler, this is common in scala and f#, two other languages where raising errors is common.

Railway-oriented-programming is nice because it typechecks, and because it reduces cyclomatic complexity by short-circuiting without forcing you to handle the error until the end of the chain. Now, it is unfamiliar to those outside the FP community, but much of the rust language seems to be unfamiliar mixes of FP and low-level optimisation techniques.

With the Either type you don't even need to do that, but then errors on the left becomes convention instead of an enforced habit. The only odd part is the try macro. That should wrap the Val in a right, to preserve type information. I guess I could be convinced that Either = Error | Id [A].

[1]: https://fsharpforfunandprofit.com/rop/
IMO, no thanks.

When designers moved into Gnome and KDE, they effectively crapified.
I find Monthy Python unimaginative and boring. Your comment was hilarious in the context, though.
Practical Affine Types (2011)
Maybe I was doing C++ wrong all those years, but I find the cognitive load for Rust about equivalent. The error handling idioms of Rust exist, more or less, in well-composed "--no-exceptions" C++ code. The syntax might be a tad different, but the principles are more or less the same.
Show HN: Create WebKit/Safari .webarchive files on any platform
>And that was it. She didn't have a reason other than "just because"

It's not like you need to have some huge reason to want to connect to some people on FB. It's not about being some big taskforce or goal-oriented group of connection.

Sometimes you just lookup people that were in you life to catch up, and see what they're up to. Or to make sense of what your life was, and the people that might have influenced it, or took part in it.

As I wrote elsewhere here, I don't think FB is any real platform to affect change or share opinions (it's at best an echo chamber, at worst nobody cares).

But for casual chat, it doesn't hurt to add some "girl from elementary" school or random acquaintance in your Friends list. It's not like they have to justify their presence in utility. One can just ignore their posts.
You can argue with the conclusions or methods , sure. But to claim that they buried the lede was just disingenuous.
The java optional api uses orElseThrow which I think is quite clear.
It makes me sad to see the example. This is why I maintain `.unwrap()` is one of the worst things in rust.

...because people use it; and then say; 'but don't use unwrap...'; and then use it, and your 'safe' language then happily crashes and burns everytime something goes wrong.

Blogs and documentation are particularly prone to it.

Result and option types are good; but if you're gonna have unwrap, you basically have to have exceptions as well (or some kind of panic recovery), because, people prefer to use it than use the verbose match statement. :/
Babili is interesting for sure, but it's at version 0.0.12, clearly marked as beta, requires a bleeding edge Babel, and is 4-6 times slower than Uglify and produces larger output bundle in every single benchmark case with popular libraries on the Babili page itself.

So yes, there is clearly still plenty of reasons to use boring old Uglify.