skysight-inc/HackerNews huggingface dataset:
In the UK, and I believe this is common in other EU countries as well, that doesn't matter. Durability is an implied term of the contract, and in most cases (buying a hard drive as new) it's hard to see how lasting 6 months would be sufficiently durable.

> The quality of goods is satisfactory if they meet the standard that a reasonable person would consider satisfactory [...] The quality of goods includes their state and condition; and the following aspects (among others) are in appropriate cases aspects of the quality of goods [...] durability.

http://www.legislation.gov.uk/ukpga/2015/15/section/9/enacte...
DiffEqs... the only college class I ever got a C in!
In the Netherlands an early very (1998) popular web page is http://www.startpagina.nl , and it's still popular with non-tech savvy people. http://www.nu.nl (1999) is the country's most popular news page, http://www.marktplaats.nl (1999) the most popular Craig's list / Ebay equivalent.

They have all tweaked their UI over two decades if you look closely but make sure they look more or less the same as ever.

Actually Teletext ( https://nos.nl/teletekst ) is still used by many and it looks exactly like it does on TV.
"consumerist thinking"? What other kind of thinking should a consumer have? And waste? My old Android phones are pretty useful even with marginally older software. None of them have non-patched remote execution bugs that would make them risky, thanks to the fact that some of the more risk prone components (built in browser, play services, etc) get updated independently from the OS.
People on HN seem to believe the default state of humanity is driving everywhere and living in the suburbs, when that's only true in particular parts of the US for the last 80 years or so. A frequent question I see about not owning a car is "well how could I possibly get groceries otherwise??" The only way we can address our individual footprint and our isolation crisis is to build real towns and cities again, but I'm doubtful.

Don't have a lot of hope for this one, people are willing to tell others to change their patterns but will rarely change their own. That way, you get woke points but don't have to do anything. Plus that Tesla looks GREAT in the driveway, especially when you consider that climate change is all everyone else's fault.
Knuth in one of his volumes ( I think vol I) has described this very nicely. way better than what was in K&R.
I don't think it's classy. To me, the 'Fix The Court' link at the bottom implies the justice system is broken.

It's wrong that people think they should be able to put someone in prison, or even prevent their political appointment by slandering them with unproven allegations. This is the kind of attitude that leads to the excesses of Nazi Germany or Socialist Russia.

The Justice system as it stands protects everyone in America from arbitrary imprisonment.
I'm surprised people needed to ask, and I was very specifically talking about the language itself rather than the libraries (so "batteries included" is not a counterargument); but here is a small non-exhaustive assortment of nonsense in Python:

1. Does 3/2 == 1 or 1.5 ?
Either answer would be logical and OK, provided you stick to it. The utterly daft answer that Python gives is "it depends on what version of the language you are using, and/or whether you do "from __future__ import division""

2. Generalising 1, a painful set of breaking changes between 2 and 3 that could have largely been avoided by aliasing names or introducing new names for changed concepts / methods; eg make xrange = range; add a new function rather that redefine what 'print' is (and yes, failing to make 'print' a function in the first place was a shockingly bad decision). Read about the insane amout of effort that Dropbox put into migrating their codebase to see what a ballsup this all is - polite languages respect backwards compatibility.

3. The object system is a mess: type(some_obj_i_made) is <type 'instance'> - wat? - unless you explicitly inherit your class from object when it suddenly does something sensible; constructor inheritance is a confusing bog. Yes yes old style vs new style objects, but that's the problem. This stuff shouldn't be hard; see eg Ruby.

4. edit: scoping - oy vey

Look, it's OK. It works. The ecosystem makes up for an awful lot of this rubbish. But don't be so devoted to a technology that you're blind to its faults.
I don't see any stats showing a trend over time. This YouGov report indicates piracy is actually dropping in one country over the past 5 years (from 18% of Britons to 10% of Britons).

https://yougov.co.uk/news/2018/08/02/number-britons-illegall...
I worked a bit around the data, and I am very sceptical about humanity ability to produce enough CO2 for The Climate Change. Volcanic activity was, is, and will be the main contributor to the CO2 pool. Humanity is not the geological force, regretfully.
Yes, it’s true — and it’s not just true of elisp (which is a decent language) but also of Common Lisp, Python, Scheme and others. It’s probably most true of elisp, because the editor itself is written in elisp, but one gets something of the same tight edit-execute cycle in those other languages too.

Once you’ve been there, you’ll probably never want to go back. My only wish is that emacs were written in an even better language than elisp (like Common Lisp).
OS X El Capitan – With latest features 2018
James Bach Live Q&A Webinar – Exploratory Testing
In all scenario's we need negative emissions. If you're interested in the topic, there is a really cool stanford seminar by Brentz Constantz (Cofounder of BluePlanet LTD) about viable ways to do negative emissions that are cost effective without carbon trading schemes. It gives you a very good idea of the amount of carbon that is already in the air and needs to be taken out.

What's your solution for/take on all of this?
> that's the only example in the article that seems to imply any kind of compile-time safety

The type-checked example is this:

var lst : List[Integer] := List(Integer).new();
var i : Integer := lst.add(3) + 4;

To me, this isn't so different from something like Java:

List<Integer> lst = new List();
Integer i = lst.add(3) + 4;

The major difference is the extra argument in `List(Integer)` (compared to `List()`). That's kind of unfortunate, but note that it's a value, not an annotation. It's still generic, since we could just as easily pass in some variable (e.g. `T2`) that we've received as an argument, or pulled out of some other method, etc.

This extra argument (a run-time representation of the type) is actually to be expected. Values (including functions) which are generic (in the Java sense), also called "parametrically polymorphic", or as you say "type-dependent types", can be understood as taking those parameters as extra arguments (which is precisely what this article is talking about); although the value itself cannot change its behaviour depending on that argument. For example, `List<T> reverse(List<T> input)` cannot work different for, say, `List<Boolean>` compared to `List<Integer>`.

This is really clear in Haskell. The Glasgow Haskell Compiler uses an intermediate language called "GHC Core", where generic values are literally represented in the same way as functions. There's a nice overview at https://alpmestan.com/posts/2013-06-27-ghc-core-by-example-e... (the "id'" example is the first generic one).

> it does seem like normal generics could be a type-dependent type in a case like this

Generics are definitely type-dependent types. However, when I said "dependent types" I was referring specifically to value-dependent types, e.g. https://en.wikipedia.org/wiki/Dependent_type

Note in that Wikipedia article's introduction "dependent types are used to encode logic's quantifiers like 'for all'". Compare that to the generic example in that GHC Core link above, where the keyword "forall" gets inserted by the compiler ;)

The Wikipedia article also states "Deciding the equality of dependent types in a program may require computations". That's what I was getting at with the system described in this article: it doesn't seem to allow for type-level computations, without which we may end up getting errors that "expected type X, given type Y" when those types are 'obviously' the same (to us, but not the the checker, since it's not able to compute).

I know Bracha is a fan of 'pluggable type systems', where we can use a variety of type systems to check things about the same program (perhaps requiring different annotations). However, I'm not sure if these 2 rules are enough to perform meaningful reductions on types (e.g. to spot that `Pair(T1, T2).secondType()` is equal to `T2`). I'd imagine we'd have to "lift" more and more expressions into the type level (e.g. `return`, then `if/then/else`, and so on) until we have a full-blown theorem prover like Agda!
> Sarah Norton was eventually caught vandalizing a publicly displayed copy of Julius Streicher’s virulent anti-Jewish newspaper Der Stürmer and sent home by the Foreign Office. Her mother’s reaction was better than expected: “Well done, despite your nuisance value. I hope you learned the language.” She had in fact learned it well enough to be employed at Bletchley Park during the war.

Outstanding part of a great read.
"(Yes, I am that maintainer with dozens of open PRs on his repo, none so bad they must be closed, but also not good enough to merge.)"

Go ahead and close them with notes that they can be re-opened if they come up to standards, but that you don't have the time or interest or capability to do it yourself, and that you are not judging them beyond this comment.

Closing a PR doesn't mean as much as people kinda think it does; they can be re-opened. Closing them without comment is harsh, but it correctly represents the current state of the world, which is that without changes, they aren't going in. Closing them with comment is the best compromise between all the issues.

As a maintainer, you need the "open PR" list to be a list of meaningful, actionable items. You don't have all that many tools to use, and the ones you do have need to be kept sharp. It's OK.
The giant ad at the top definitely doesn’t help things, especially since it seems to randomly expand and contract as you go about your business...
Fuck the GPL (2009)
Having todo on replaced website is a great idea, thanks!
Kneeling chair
https://adoptopenjdk.net/support.html

And if one is on Linux distribution like Red-Hat, or IBM/HP/Unisys platforms, cloud providers it is only a matter of calling update on the package manager.
Our TVs where fine for the resolution of, for example, ZX Spectrum. C64 and Atari and Amstrad CPC graphics looked extremely blockly on our televisions/dedicated monitors (well the Amstrad had such a beast).

I had connected all the above (spectrum, c64, atari) first to a 40 inch b/w tv, then to a 32 inch color tv. Guess what? the spectrum image was visibly blockly, and the c64/atari image was incredibly blocky.

Furthermore, you didn't need another 64k for video ram; there where a lot of palette tricks that could be done. Even if 64k ram were added, the price difference would be small in the end.

So I don't buy it it was the cost; most probably it was the shortsightedness of the designers.
Google has introduced non-targeted ads for GDPR compliance. It sounds like a sizeable chunk of the market disagrees with you that you can force the use of data for targeting on users under GDPR.

https://www.marketingdive.com/news/google-will-support-non-t...
All major game engines have custom memory allocator.
Internal Disclosure Boring
I think I got 19% which put me well in the top half of the class...
You can do quite a lot simplifying to get equations that are solvable. A lot of engineering techniques do this, using simplifications that capture the essential behavior of a system (in fact I'd argue that knowing when such approximations are appropriate is one of the core skills of an engineer).

That said, even if you need a numerical solution it will still often require a lot of simplifications in order to be tractable. Multiphase fluid flow, for instance, relies on tons of physics simplifications and empirical correlations in order to make numerical techniques viable.
Does HN make money?
This is a good analysis of the situation.

>(no idea who the other bloke is)
Jonathan Bartley [0].

[0] https://en.wikipedia.org/wiki/Jonathan_Bartley
had you studied at all? most undergrad differential equations classes are fairly mechanical in nature, you just learn to identify the type of problem, then you follow the steps exactly as they are written in the textbook, super little variation or freedom
Native Advertising – How Does It Work?
Not if "someone [who] can subvert Digicert" is government/state. In this case they have an easier task as governments directly control DNSSEC signing keys, and subverting Digicert and issuing rogue certs would be visible in Certificate Transparency logs.
This looks pretty awesome! There's lots of similar stuff for backend devs but this is the first one I've seen for frontend devs. Where do the designs come from? Can companies 'sponsor' designs? I think we'd be happy to pay money for a designer in return for logo/link next to the design.
Stealing is the wrong word for digital music. Copying. It's just copying. And, in most cases, it's at an immeasurable cost to anyone. To use the terms "pirating" and "stealing" not only make it seem much worse than it actually is, it waters down the mental image of legitimate use of those words, making the actual acts seem less serious. "Copycats" would be a fairer term.
Appalling on every generation of iPhone that it ran on.
As a meta-comment, it's interesting to me that this is so highly upvoted and responded to here on hacker news. As a consultant I often find that clients who are brilliant experts in their own field often assume themselves to be experts in _every_ domain, including my own area of expertise which is software design and development.
This at least doesn't apply to German copyright law. There are cases which are actually explicitly allowed like the "Privatkopie" where you copy a copyrighted work for pure private purposes. So it is explicitly legal to borrow a CD from a friend and make a copy of it, unless that CD is copy protected. This copy can of course only be used by you for your private purposes.
For this reason, you are also allowed to tape the TV program.
> By definition, if you're programming Emacs Lisp, you're an Emacs user. Emacs is the interpreter.

That's not necessarily true. Guile supports Elisp as a language. You can write Elisp sans Emacs.
I have an 8 digit ICQ number. It's probably the only number apart from my SSN that I can still remember.
Nashorn doesn't have a commercial edition and it's being deprecated in favour of GraalJS which is fully open source too.

The JCK is also open source now I think.

Reduce the age of the editions they'll help support - no, there are still LTS releases. Maybe they're supported for a few less years than Java 8 was but that's not unreasonable.

Your final complaint appears to be just "they're trying to make Java financially sustainable" which is hardly a problem, the lack of that is why Sun went down in the first place.
For what it's worth, I don't understand why you're being downvoted... :( I just upvoted you.

I agree that the optimal solution would be for local governments to not rely on Google like this. What's not clear to me is what the best course of action is in the world in which they _are_.

I think having "no propaganda aimed at elementary school students" regulation may be the only way to solve the coordination problem here, but of course that has the obvious flaw of it being hard to agree on a definition of "propaganda"...
I’m not disagreeing one could argue “lying by omission”, but

> they did this by slowing the phones below the specs they advertised

What specs are you referring to here? Apple doesn’t publish processor speed “specs”.
It's my top feature request, I mean you have to be able to post inline links, bullet points, code segments, etc on a site like this. IMO.
I also don't think consent is the right basis to use all the time (however it's important to note that no lawful basis takes precedence over any other) and good vetted vital interests and a contractual agreement is preferable, however consent is the easy way out.

"This is what we do do you agree: yes/no" is much easier than to develop a valid vital 1st and 3rd party interest for each case and most online services don't require a contract.

However the idea that somehow you have to provide services to people who do not consent is simply false.

That you can't do is tie completely unrelated interests to a single consent for example:

I have a website that shows you local events and allows you to sign up for them, my business model is to sell your contact details to promoters.
If you do not consent there is no reason under the GDPR to compel me to provide you with a service that costs me money to run while you refuse to participate in my revenu stream.

What I can't do is say if I run a ticket website to refuse to sell you a ticket if you do not consent to me using the details you've put into in order to purchase them to be sold to promoters or in other words under the GDPR the information collected for the purpose of selling you a ticket cannot be used for another purpose selling your info to promoters.

It's also important to note that in some cases the "I agree" isn't actually used for consent it's just a UX quirk, you can still allow people to opt out even if you don't use consent as the lawful basis for example I can display you the following message:

"I collect the following information: XYZ, and issue the following tracking cookies: ZYX the lawful basis for this is the vital interest of my company and my business partners"
I still technically need to give you a way to opt out, so the windows that says opt-out or agree isn't necessarily a consent window from a GDPR point of view.

And as previously mentioned I can deny a service to you if you opt-out because I can't monetize you in which case I can legally redirect you to a page that says you can't access by website until you agree to my terms, in this case again consent is not necessarily a lawful basis rather than you acknowledging the lawful basis i presented under my terms of service.
Yeah, the DRM and the various limits (even if they look big, they're still limits...on a paid service) imposed on offline storage and the inability to move content across devices are huge bummers.
I think the macro language of WordPerfect 5.1 was one of the most awesome serializable interfaces ever.

And they scrapped it in WP6 for some shitty object oriented version that lacked all the "serializable workflow" of the previous one.
> where do you live that there are no insects

Relevant paper. 75% recorded decline in insect biomass:

https://journals.plos.org/plosone/article?id=10.1371/journal...
Money is imaginary too - taking a piece of paper isn't really stealing? This whole pedantic argument has been used to rationalize stiffing artists for their work for decades, and its tiresome.
OpenShift is a Kubernetes-based container platform that can run on AWS, Azure, Google...
Digital streams, campfires and gardens
I would dislike all of this except markdown support.
Mr
Jjerbebeb
You're one of the few. And I can't imagine why anyone would want to enroll their personal keys --- SSH, IPSEC, whatever --- into a global PKI. Your VPNs and SSH connections are more secure, objectively, outside of DNSSEC.
Although Scheme has a standard, I wouldn’t really call Guile ‘more modern and standardised’: Guile has no standard (it extends the Scheme standard in incompatible ways), and ‘modern’ is hard to define. Emacs Lisp added lexical scope in the past couple of years, probably more recently than Guile added a new language (as opposed to library) feature — is that modern enough?

I wouldn’t imagine that the two efforts are compatible, because they are both efforts to rewrite the Emacs Lisp engine in another language, one in Rust & one in Guile Scheme. It’s possible that one might be able to call over to the other, through its CFFI.

I’d like to see Emacs rewritten in Common Lisp, and so I’d prefer a Rust engine to a Guile engine: Rust is a static language, and a Rust engine is unlikely to lead to Rust-extensible Emacs code, while a Guile engine is likelier to lead to Guile-extensible Emacs code, which is completely the wrong direction IMHO.
And who writes accessor methods in PERL?

At that point, you might as well start using a heavier language.
"you should fix that front right flat on your car"
"yeah but there is a flat on the front left so what does it matter"

This style response is what I keep seeing whenever a new security enhancement to DNS and TLS is announced. Yes, today 2 things are broken... but that means two things need to be fixed not that this new fix is foolish/useless/shouldn't be implemented.

Now if you have particular takes against the way the problem was solved that'd be a more serious conversation.
Copying a piece of paper isn't stealing.

Edit: Actually, now that I think about it, you might have to steal it to make the copy. Your analogy is useless for this argument. Money might be an abstract concept but bills and coins aren't imaginary. Try an analogy with digital currency then maybe there be something to talk about, but I'm guessing anything you can come up with will actually be talking about "hacking" or "fraud", not "stealing".
Ask HN: How do you get better at spotting Unknown Unknowns?
What are some strategies that have helped you spot the unknown unknowns in your profession.
Ask HN: What do you hate most about HN?
IBM Card Sorter
What is the likelyhood of a runaway feedback loop occuring?
They really dropped the ball, going for a single page application approach without emphasizing performance.

I mean I believe SPA's can be more performant and snappy than non-SPA's, but you have to have server-side rendering for the initial page load and minimize the amount of JS used. And then make sure rendering is fast; iirc they had inline styling everywhere a while ago (styled components?), and now nonsensical css classes (which, if they're unique, is probably good for css performance but probably still suboptimal).
>It also lead to lower or possibly lowest price of electronic products in US compared to rest of the world

That's exactly like saying that letting chemical manufacturers just dump waste products directly into a river "lead to lower or possibly lowest price of chemical products". The whole issue with externalized costs is that they are in fact still real costs, except that it's not reflected in the price people see and thus there is no pressure to work on lowering it. Someone is still paying, often even the same people buying (directly or indirectly), but the signal is diluted.

It's not as if failed electronic products don't impose costs on the US too, it's just that the failure rate isn't included in the price but instead falls arbitrarily and inefficiently on individuals and society. Including it in the price won't necessarily change anything at all for some companies, it will simply reveal what was there all along. Companies that can deal with it cheaply thanks to superior practices will rightly be able to offer better value then those that cannot, and that's exactly what we want!
I wonder what percentage of CO2 comes from programmers commuting to work.
PgFormatter: A PostgreSQL SQL syntax beautifier
I didn’t join until 2015, but I often go to http://tenyearsago.io/ [1] and I’m amazed about how little HN has changed in ten years.

[1] I have nothing to do with that site. I found out about it via a “Show HN” a few years ago.
I think what he's saying is that there's a consumer demand for these parts because Apple refuses to sell them outside of their walled garden. It's like illegal drugs, the people producing, smuggling, and selling them are all breaking laws and considered criminals and their motivation is consumer demand.

OP isn't justifying the criminal's behavior, just suggesting that the illegal market would evaporate overnight if Apple sold these parts to anyone.