skysight-inc/HackerNews huggingface dataset:
The trend is to replace "human stupidity" with automated, provable correctness. One of the most obvious examples of this would be array bounds checking. As programmers become increasingly restricted by their own tools in the name of preventing bugs, and as machines effectively write more (correct) code for them, one does have to wonder at some point: "Are we controlling the machines, or are they controlling us?"

We are living in very interesting times indeed...
I certainly hadn't, but like many others I will certainly be trying to get hold of a copy of the upcoming edition.
Yes, it should say what it's for, but it shouldn't need to explain itself any further. Sorry if I didn't make that clear. For example, if someone refactored something, the commit log can simply say "Factorize foo", it need not explain why they were refactoring in the first place.
I recently ditched the Zune "all you can eat" subscription for a Spotify subscription.

Pretty much the same deal. Stuff comes and goes, and there's no warning to the user (I imagine that a warning that content is going to go away would increase piracy).

This is why I still buy CDs.
The "why" can live in the bug tracker, as a feature or fix may have several commits attributed to it.

For larger centralized projects, I have found a requirement on issue numbers in commit messages to work well. It makes a whole lot of management issues easier.
Drivers can switch companies pretty easily too. Some drivers work for both Lyft and Uber already. If a new player enters who is able to lure drivers away from the incumbents, they might have an advantage.
Don't mind? Are you so detached from reality?

For most CS students in the world, 'don't mind' is not an option, they simply don't have that money.
Gotham 7.5K: A Rare High Altitude Night Flight Above NYC
Maybe we should give them a 90 day deadline to fix them.
You shouldn't. The world's largest OS supplier should have the manpower to fix bugs in a timely fashion.
I wouldn't say the crawler is broken at all. It's picky, as it should be. An URL that ends with a / be an entirely different web page than an URL that doesn't end with a /.

Also, you might ask why Google won't ignore the canonical URL if it's an invalid URL.. well, that's what you get with the canonical URL - you're explicitly telling Google this is the "real" url of the web page. You can't have it both ways, and then complain Google is ignoring your canonical tag.
Nuts and Bolts #5: Create a Simple Sitemap with Rails and Ping Google with Rake
I'm looking forward to the "Scroogled" ads and merchandise highlighting this issue.
A year ago, The Weather Channel published some photos:
http://www.weather.com/travel/news/breathtaking-photos-colde...
I find it fascinating how people adapt to extreme climates. Learning how to cope with such inhospitable areas may be useful when it comes to going to places outside of our cosy blue planet.
Or what, you'll disclose them?
Freelancers VS. Development Company: How Not to Be a Buridan’s Ass
Buridan's ass is an illustration of a paradox in philosophy in the conception of free will.
Wikipedia
When you have money and a business idea, many freelancers and development companies pretend to be “the people you need” who are worth your funds and attention. The decision whom to hire could be quite a trial. We’ll try to show all the advantages and disadvantages of each option and to help you make the right decision according to your business needs.
We have identified several key points you should keep in mind:

Continue http://ddi-dev.com/company/blog/12-freelancers-vs-development-company-how-not-be-buridans-as/
I think 2015 Community edition is the equivalent of Professional.
Get my Failed Startup code: a Grouper 2.0 similar app
I get that. I don't get that they didn't let Microsoft fit it into their patch schedule (2 days later).

I don't believe for a second that they would have disclosed this if it was Android and they had a fix that would land within 2 days. No f'ing way.

That's the evil.
I doubt the carriers would care. There have been a bunch of published exploits that haven't motivated them to push updates.
If you can figure out a way to make phone manufacturers and mobile service providers care about any kind of deadline for updates, you'll be doing the world a great service.
reduce (or fold) would be accumulate, certainly not categorize or group.
Bug reporting tool for Slack
Yeah, MS should develop flawless software like everyone else.
I don't think you should involve nullables ,the compiler would simply rewrite to check if link in the chain is null and then assign to null.

But value types are a good point, either it could then set it to default(T) or not set it at all, but it kinda has to be default(T) because null makes most sense for reference types. Might give some unexpected behavior if it variables are set to 0 because of a null reference
Well, if you read their guide it says that :lipstick: means:

"improving the format/structure of the code"

So I guess this code just changes spaces or something like that, I don't know I'm just reading what they do, they might do something else, I'm just following the instructions that everyone contributing to the code should.
But if someone goes "lone wolf" and writes an application in a language he or she chose without informing other members of the team/organisation something else might be going wrong in the chain.

I get the idea you're trying to convey here but in the case of a well-organised team/organisation that won't really fly as everyone will be involved at some point and choices are being made together.
I Hired a Flossing Coach, and It Might Actually Be Worth It – WIRED
https://github.com/velikanov/opensource-candies
pull requests welcome!
Real-World JavaScript Anti-Patterns (Part Two)
They contradict themselves. Should it be present ("Is/are less buggy") or imperative ("Be less buggy")?
To be very clear: Servo is a research project. It is not aimed to replace Gecko. http://paulrouget.com/e/servo/
Java's one of the worst language examples of using FP collections I've seen. Even with hindsight I still find this to be uglier and unnecessarily more verbose than it needs to be.

E.g. same Example in Dart:

class Article {
String title;
String author;
List<String> tags;
Article(this.title, this.author, this.tags);
}

Article getFirstJavaArticle() =>
articles.firstWhere((x) => x.tags.contains("Java"));

List<Article> getAllJavaArticles() =>
articles.where((x) => x.tags.contains("Java"));

List<String> getDistinctTags() =>
articles.expand((x) => x.tags).toSet().toList();

Can even be shorter without the Optional typing, but it's more readable to be explicit to have them. Dart benefits from having Collection and Stream mixins so you always get a rich API on Dart's collections.

If anyone's interested to comparing FP collections in different languages, I've ported C# 101 LINQ examples in:

- Swift https://github.com/mythz/swift-linq-examples
- Clojure https://github.com/mythz/clojure-linq-examples
- Dart https://github.com/dartist/101LinqSamples
This post looks like it could be an awesome blog post and thread on it's own!
From the first guide (talking about Java and C#):

"The time it takes to load the framework and compile the program are often much more than the time it takes to execute the program, and the runtime framework may use more resources than the program itself when running. Programs using such a framework sometimes have unacceptably long response times for simple tasks like pressing a button or moving the mouse."

When efficiency is important, the startup time of the VM hardly matters. Even if it would, the issue is not loading the Framework (class library) but JIT compilation. And, no, simple tasks like clicking a button will certainly not cause any observable delay due to the language.
On a mission to combine web tech, comics and PJs :)
You mean like the roughly 6M different variants that Windows runs on where Google has made the same demand? :)
Can't you just register from an internet coffee?
I don't mind paying for good tools either but the "real world tools are expensive" mantra has not been true for quite some time now.

I have paid for Windows licenses, for MSDN subscriptions, for Visual Studio, for Oracle databases, for ERP tools, for Solaris, for Red Hat and countless others but, quite frankly, I haven't felt a compulsion to pay for tools for a long time now (PyCharm is sweet though).

We have from excellent compilers, IDEs, databases, operating systems all the way to datacenter automation solutions that are free. And, in the case of students, they are also open-source so they can be studied (which used to be an important part of life for students) and extended (which is a nice advantage not necessarily but usually associated to tools you don't have to pay for.

So, what prohibitively expensive real world tools are you thinking of?
> The era of unrootable devices, unbreakable DRM, and inescapable walled gardens?

No such thing. There is no protection once someone has physical access to the hardware.
It sounds like that is what Google thinks is the right thing to do.

Note: I don't.
-24F is -31C

-58F is -50C

-90F is -67C
Show HN: Joe – a .gitignore magician in your command line
Bug tracking for Drupal developers
If you're in the app/startup world, it can seem that way. However I'm a web developer on Sears's e-commerce team. We focus a lot on SEO still, as the other options is paying money for search placement and traffic, and those payments are no joke. We have major business goals around minimizing the amounts we pay for traffic, so optimizing SEO is big for us.
Women will always find something to complain about, even if it's about young men feeling good about themselves because they're happy.
Say they do? that's still 15M people paying 10$~ per month.
150M a month is a revenue of 1.8 bln dollars per year that's quite a big sum of cash...

At some point people stop looking at the paying to non-paying ratio of your costumers and when you starting bringing close to 2bln a year you are probably there.

No one really looks at how many "free apps" people download from the app stores and says Apple are padding their numbers when the app stores brings higher revenues than the GDP of many countries.
Surprised you're having issues filling this. I come from a Supply Chain and Ecommerce background. Currently VP Product for an ad tech company. Let me know if you'd like to chat. My HackerNews username @ gmail, or on Twitter.
Yes, this seems like a very good choise, since the baseband is already owned. I've picked one myself from ebay with the filter rework modification, and I can even run my own BTS!!!
For RMS, non-free code period is unethical, regardless of its derivation.
hmm, yeah, that's a really good point. I guess this could sorta be resolved if you had non-nullable reference types.

You get the feeling though many of these problems comes down to null's largely being a language defect in itself which should have been adressed differently
This dispute centers upon whether APIs can be copyrighted. This case has broad implications for everyone who builds and uses software. See https://www.eff.org/cases/oracle-v-google for a bit more background.
They don't use the same supplier for all models. Sometimes the diesel variant can have a different supplier for the ECU (Engine Control Unit) than the gasoline variant of the same model. They don't trust the entire production on a single supplier (strategic reasons).

Bugs like this one can be noticed a bit late during production phase, so they will not be fixed, as they are not considered SoP (start of production) blockers. A new SW release costs a lot of money and they are requested on a need to have basis.

The SW in the ECU is pretty big for an embedded device with just ~2MB dedicated to program flash: 500k-1m lines of code. And that is only for the engine. In a regular car maybe you have 10-30 on board computers. There are many more bugs in there, you just don't see them all. :-)

(I'm working in the industry for such supplier)
Maps of old solar eclipse routes
but then where will the "SEO expert" scumbags make money?
> Haskell is a garbage collected, lazy, pure language which makes it unsuitable for many of the domains C-style languages are used in.

Don't be so sure! [1] You could simply use Haskell as a metalanguage to generate a C program that does what you need, just like they did with copilot. No Haskell runtime needed.

[1] https://github.com/leepike/copilot-discussion
I think the real problem is selective shredding. If you're burning a computer, this is not a problem, but say you get one sensitive file every month, but otherwise you want to keep your files easily backed up and accessible. Being able to shred one and only one file when needed would be nice
Author here: Good point, you are indeed correct. I will add it to my list of additions/corrections.
I don't know if this is a cultural thing (I"m an American living and renting in Boston), but I figured the default would be people wanting "a fully legal contract" with a lease of a year or so, not looking to move every three months from illegal sublet to illegal sublet.

More precisely, when I see rents quoted for most cities, I tend to assume that people are quoting rents for standard, legal rentals, not quoting the cheapest rent possible for an illegal sublet.

Edit: I should add I'm not implying anyone in this thread is doing anything odd or misleading or anything, just that it's opening my eyes to how different rentals are over there. Thanks for that.
why not use:

public final class Article{
public final String title;
public final String author;
public final List<String> tags;
public Article(String title, String author, List<String> tags) {
this.title = title;
this.author = author;
this.tags = tags;
}
}

Getters don't seem very useful on an immutable object.
The law is aimed at commercial loss and identity theft stemming from data breaches. Whatever you think of the NSA, there's not a high risk its going to start selling data it collects on the black market for use in identity theft.
"Microsoft acquires Github" - with the other recent announcements of .NET framework and Roslyn moving to Github, and now this, it may seem the day is not too far off for those headlines to become reality.
That is outside of a typical developers remit though, I wrote this for developers on a team who don't think they need to worry about SEO.
Virtually everywhere on Earth gets colder than Mars at times. Parts of Mars reach 70 degrees F in summer at noon.
Lua 5.3: integers, bitwise operators, and a basic UTF-8 library
The Supreme Court also seek DoJ views on Google vs Vederi, the Google Street View case that the Appeals court reversed
It's probably possible, but it won't be easy or at all fun compared to a non-packet-switched analog feed.
I have never taken any formal training, but the new General Assembly courses look fantastic for getting into Product: https://generalassemb.ly/

As for resources, Noah Weiss just posted a great article listing a ton of books and articles for product managers:
https://medium.com/@noah_weiss/50-articles-and-books-that-wi...
Some people are absurdly chatty on the phone. I don't understand it myself, but different strokes, etc.
"...I'll usually tip"

Interesting. My girlfriend gets upset with me because I always tip. Generously, regardless of the level of service. I also empty my wallet of coins and give it to the first person asking for change. That's driven entirely by knowing that by earning over $100k you're in the top 1% of earners on the planet (median world-wide income is just $10k).
Exactly that - it's a proof that in this case a solution can't be found. Having a collection of pieces that doesn't violate the assumption in the article isn't a sufficient requirement for a solution to exist.
I happen to know all this; what I wanted to stress is not the nature of closures, which is exactly as you say, but that they were used since long ago in a "purely object oriented" languages, which - AFAIK - are not meant to implement lambda calculus in any shape or form.

GP wrote that - in short "everything in OOP is bad, let's use FP only". I responded with an argument that, in fact, certain OOP languages used FP features long before Haskell (because that's the example GP provided). I don't think the fact that closures are just one interpretation of an abstract concept of "lambda" is very relevant to this argument.

And about "shaming" people: I meant to gently point out that advocates for some cause should at the very least get their facts straight. Bashing some concept without knowing it well is the thing I objected to, a "not knowing it well" part by itself wouldn't be anything one should feel ashamed of.
I'm sure they'll come up with some great alternative interpretations of the wording.

"In this case, no 'personal' information was lost at all, because after 30 days, all of the data had been effectively made public." - NSA
What makes a good API great
Applying a patch to everyone at the same seems risky (not to mention scaling issues). Can't they stagger the patch, so if there is an issue with it then only some users have an issue instead of everyone.
Despite Spotify occasionally being in the news for not paying the artists much, I bet this does add a lot of new revenue for the music industry.

Before I joined spotify (about a year ago) I hardly ever bought CDs or MP3s (defintely less than the £120/year that Sptofy costs) - there must be many other people also who are paying for Spotify now who never used to spend much on music before
I don't know RJD2, but does Opeth and Nick Cave really only make $.22 a month from Spotify?

If that's true, something is deeply and terribly wrong with the license agreements. These are not some amateurs, but pretty big acts with fans from all over, and while I despise saying they "deserve" this or that I would at least expect the sum to matter.
When I read things like this, it always reminds me of the Kiwi chap that was trying to build a cruise missile in his garage [1]. Although this is smaller than what he had planned, I would imagine you could add a "release" functionality to the Pi Autopilot so it could drop something when at a certain position.

[1] http://aardvark.co.nz/pjet/cruise.shtml
Google reveals Windows flaw mere days before Patch Tuesday fix, irking Microsoft
I think you mean GHC's type system, since Rust is arguably quite close to Haskell 98 in spirit, ie. algebraic types, lambdas, pattern matching, traits = single parameter type classes.
Aren't these standard? There's the beer icon showing up when using Homebrew on OSX, I guess the other ones would show up too on a `git log`.
The extra verbosity comes from the way java 8 is trying to make functional programming more comfortable while doing as little as possible to the language to do it. When you add all the sugar to make lines more expressive, then you'd hear complaints like the ones Scala gets about having too many ways of doing the same thing.

in scala, finding the first article looks like:

def topJavaArticle(articles:List[Article]) = articles.find(_.tags.contains("Java"))

which returns an Option[Article], so it handles the null check.

Since List in scala already handles functional constructs directly, then the filter example is just as easy:

def javaArticles(articles:List[Article]) = articles.filter(_.tags.contains("Java"))

group by author?

def byAuthor(articles:List[Article) = articles.groupBy(_.author)

And yes, that's the entire method definition, signature included. We could have added the return types for documentation if we felt like it.

You might still not like the style, but you can't say it's more verbose than the floor loop.

Backwards compatibility and design philosophy makes sure that Java 8 doesn't go hard enough on the sugar. It's why I am not optimistic of Java's future. There's awesome features out there in newer languages, like proper pattern matching, that Java just won't be able to borrow from functional languages.
I refuse to use instant messaging at work.
Turning the question on its ear a bit:

Even given that Windows 8.1 is a large and complicated machine, what was it about this particular bug that required basically all of Q4 for MS to patch it?

It's one bug.

I have a sinking suspicion that MS simply didn't consider it a priority, even after responsible disclosure to them, which is why it's good that Google's public disclosure policy is a hard-limit 90 days. Too many companies, when given the option to choose their own priority tree over the priority tree enforced by security needs, will choose the former.
I think that's less an avoidance of printing the work "fucking", and more a concerted effort to use the word "iconoclastic".
Out of interest, what are your sources to find remote work?
Even without "poverty" keeping plumbing from freezing in temperatures like this is still a challenge. I frequent a northern Maine camp with the amenities of a regular house, and routinely have to deal with scenarios that extreme cold brings such as freezing pipes/septic lines, ice build up etc.

Also, tools like "block heaters" don't apply to the entire vehicle and all of it's inter-dependent parts. In that kind of cold, things like transmission fluid, and even door handles stop functioning normally.
>Remote work gets a lukewarm reception on HN

I see people praising remote work on HN all the time. I also see people mention downsides, but I wouldn't have described the reception as lukewarm.
You're almost there! Basically that swapping you outlined occurs twice, once on each side.

1. Both threads read '0', beginning their first incl instruction (A: 0, B: 0, Store: 0)

2. Thread A completes execution of all BUT ONE incl, writing it's second to last value to the store (A: 9999, B: 0, Store: 9999)

3. Thread B increments it's '0' to '1' (A: 9999, B: 1, Store: 9999)

4. Thread B writes it's '1' to the store (A: 9999, B: 1, Store: 1)

5. Thread A begins it's final incl and reads the '1' that thread B just stored (A: 1, B: 1, Store: 1)

6. Thread B executes all remaining incl instructions, writing its final value to the store (A: 1, B:10000, Store: 10000)

7. Thread A continues it's final incl and increments it's '1' to '2' (A: 2, B:10000, Store: 10000)

8. Thread A stores it's final '2' result (A: 2, B:10000, Store: 2)

9. All instructions have executed, and the result is '2'

It is, of course, completely theory and extremely unlikely under real use as the authors graph shows, but it's one of those threading 'gotchas' that lead to occasionally unpredictable results.
Java and C# are very fast for certain problems, but running 'for i in *; do java MyProgram $i; done' in a large directory is decidedly less pleasant than it would be with the same program written in e.g. C. For very small programs, msot cycles are indeed not spent on the program itself.

(Of course, looping in that way is still inefficient when your program is written in C.)

Clicking a button shouldn't cause a noticeable delay on vaguely modern hardware, I agree.
Show HN: The Love Calculator (A weekend side project)