skysight-inc/HackerNews huggingface dataset:
I'd say never. That would kind of be like an apple switching to Swift for iOS.

This is even harder for the Android runtime because it's run on a virtual machine with characteristics that don't easily map to another language.

Basically if they switch to any other language all the apps that currently use Java (ie. all of them) will have to practically use their own VM -which would be slow - or reprogram everything in another language - which would be expensive.
> The error is really solid at showing a type mismatch. Which is of the form "I wanted X but you gave me Y".

That's not really high praises, "I expected Foo and you gave a Bar" is pretty much level 0 of static type checking which even javac manages, you'd have to work hard to fail to provide even that.

> What's the difference between a "raw error" and something else. If the hint was accurate would it still be a "raw error" because it's not styled like those elm errors?

No, that's the point, if you have extensive hints and decorations it's not just the raw errors anymore.

In fact the Rust compiler/developers (to their credit) try not to provide raw errors, they provides code pointers and hints and macro expansions, the issue is for this error they're all unhelpful to downright incorrect.

> Any more info (aside from a better hint which I concede should be better) would have to be an actual explanation of static typechecking which seems a bit extreme.

That's not true, it could be an explanation of traits and trait bounds, and that does sound helpful to Rust beginners (and not harmful in the least to old hands).

> Even the nicely formatted elm errors say essentially the same thing.

The essentials are the hardly helpful[0] same in every compiler, Elm's error messages are contextual not just in the decoration of the code but in that the text uses more precise terms depending on the error's context, and they provide better explanation and hints.

The compiler doesn't have to whack your fingers with a ruler and yell "WRONG".

[0] they're helpful if you have experience in the cryptic ways of the specific compiler for the specific language, if that's our benchmark G++'s historical error messages are helpful, that doesn't seem to be a majority view
that's quite a conclusion. how will the American worker deal with 90% failure rate of new businesses?
>do these libraries end up talking to Google backends or there is a choice to use some other backends with compatible API?

Depends what backend service you choose: https://f-droid.org/repository/browse/?fdfilter=nlp&fdpage=1...
DDoS attacks – an explanation of amplified reflective UDP-based attacks
Thanks for proving my point.
Google have indicated a future Android-Chrome merger. Although the public announcements were to the effect of Android simply replacing Chrome, there has been speculation about other outcomes. Perhaps this suit will encourage movement in the other direction, from Android to Chrome.
He does reference it in both the first and last paragraph!

my fave is clean code... though uncle bob seems divisive these days for some reason.

http://www.amazon.co.uk/Clean-Code-Handbook-Software-Craftsm...
Makes sense to me!

Q: "Which company is sufficient with its robots?"
A: "Google should do. [with its robots]"
This is a great illustration of what reducing the labor pool will do for the demand for labor.

Every laborer that turns entrepreneur will have a positive impact on wages, because it reduces the labor supply while simultaneously increasing the demand for labor.
Thats progress!
Gregg is in the business of classifying and tinkering with the way seriously mentally ill people are treated and pigeonholed. Advice being given by people who don't know the answers, especially when it comes to the suicidal, is incredibly irresponsible.

You know that feeling you get when something is broken and you see someone trying to fix it, and you know you can do better, and you want to push them out of the way and give your own advice, because you're sure yours is the best way? You just know it? That has been the MO of psychology. A long line of men and woman pricking up their fingers and saying, I've an idea, try this. On live, human subjects. Think I'm being overly dramatic? Look at his frikken tree of knowledge model. It's like this giant pantomime admission of this failure, but then goes on to say that his model -- unification of all the nonsense -- is the light in the darkness. His model is like the epitome of what all pseudo sciences attempt -- to first suspend disbelief and criticism with a cheeky wink towards an indirect admission of nonsense, then to about turn and pile themselves upon genuine physical sciences and claim, not only to be a part, but to be a vital piece of the puzzle. It's like some L. Ron Hubbard type shit. It's incredible really. The realm of psychology is full of people like him. It is theoretical anthropology at best. At worst it is malpractice.
Project Escher: Autodesk's super-fast, large-object 3D Printer
> Has anyone written an OS X app to make OS X play nicely with Android phones by syncing contacts, emails, calendars, and audio?

I'm not an OSX user, but AFAIK, it supports CardDAV, IMAP and CalDav. That should allow you to sync with ANY phone.
Or unless you're programming in Lisp. Lisp code is mostly its own AST.
Could you please elaborate for those unfamiliar with their community?
why is google not investing in dart as the language for android?

dart feels like its stuck in limbo - abandoned by the chrome team and loosing mind share to typescript.
The same could be said about sweatshops, but I find them morally disgusting.
I don't think anyone has used "hip and cool" and "Java" in the same sentence for at least 15 years (2001) and no amount of Android can fix that.
We have engine trouble partially because the US consumer has historically been the oil of the global economy.

Now big business is ahead of its consumers (too many now under employed or unemployed), hence less opportunities to invest those cash mountains.

As Andy Grove said, we need to optimize for jobs too. Else we simply don't have balance in the overall ecosystem, as we are now seeing.
But Google doesn't call its fork Java(TM), which makes all the difference between this case and J++. The practice of independently implementing and modifying an API has never been questioned until now. It was not in dispute in J++ and it's in fact the reason why software projects like GNU/Linux (which is at most an approximation of AT&T Unix and has never received any sort of certification) are able to exist.
I think their customers already have! Many times!
Evolution tends to keep things that increase survival chances, but it can also keep useless features. Also, when the environment changes, a previously useful feature may become useless. Evolution doesn't ensure that feature will disappear, unless it provides a major disadvantage.
What if there where a stockexchange that value people?
He advocates prefixes on variable names. I would like to see good examples of this as I have never seen them as helpful (especially the tblUsers and intUserId type that can be common) .
True. Point is I think the government should be the focus here, not the players who take advantage of the rules they create.
According to somebody who works in this industry it is the standard contribution. Does not matter if the drug does not get approved, the money is for the research, as far as I know.
Transmission BitTorrent Client Finally Arrives on Windows
Start 10 businesses and stick with the winner(s).
I wonder more about that there ridiculous article answer is not removed.
Why would maintaining two runtime make dalvik app slower? They're all interpreted anyway.
> There are four main concepts I will talk about here.

There are 5 concepts in the article. Off-by-one error? :)
Sometimes you can infer from evolution that a trait is useful. But only if the trait:

1. Is in a stable part of the genetic code, giving opportunity for bad traits to be weeded out.

2. Is not correlated with a different useful trait that overshadows its goodness/badness.

3. Shows up early enough to affect reproduction.

Human intelligence is quite recent, so prerequisite #1 is not met. We have no idea if prerequisite #2 is met, and prerequisite #3 is met.

So natural selection can't tell us if depression is/was useful. The kinks of human intelligence are not yet worked out.
On my phone so I don't have the paper handy, but all available research shows no more than 50 point gains on SAT from test prep.
I used to think that a lot of bad code out there was made by lazy, incompetent programmers...

But then, after a certain job, I realized that this is probably not the case.

Now I belive that most bad code out thare is made by overworked and tired programmers in a rush to deliver something that works.
FBI Breaks into San Bernardino iPhone
GNU Guix and GuixSD 0.10.0 released
Cognitive load is a harder problem than we give it credit.
The article is well-intentioned but misses the point in a few places. For example, the suggestion to have, in an MVC project, three top-level directories: one each for models, views, and controllers. This works fine for small projects, but larger projects can see significant benefit by keeping related code together. As with everything, it's a judgment call. The simple "one folder per type of thing" rule may not be applicable in all situations.
In all honesty, this is a knee-jerk reaction. You cannot say with any level of confidence (and I know - being a hot-head myself) that -

a. the developer was not less than polite in handling the situation
b. it was not an absolute knee-jerk reaction

I see nothing wrong with how it went down. Storm in a teacup.
FYI, Oracle is pushing this agenda to squeeze Java shops in other places as well.

The tack they are taking is to define any computer that does "one specific thing" as an embedded device and ask you for $300+ per "device", plus some other lofty fees.
(http://www.oracle.com/us/corporate/pricing/price-lists/java-...)

So, if you're using Java in a kiosk, ATM, media player, etc, they may be coming for you.

My guess is that this just spawns a mass migration to OpenJDK, but perhaps they trap enough Java shops that it's worth the effort?
Introducing SoundCloud Go
Ask HN: Could we create a knowledge map for programming?
I find the biggest challenge in becoming a better programmer is deciding what to learn next.

Khan academy has a knowledge map for its math curiculum: https://www.khanacademy.org/exercisedashboard.

I think a similar map could be very useful to find your way around the big world of programming, but I'm not sure where to start.

Do you think this is a good idea? I think it should exist as an open source project, so people from different areas of expertise could contribute to the map.
I've always worked through the idea that "Extremism is harmful".

Literally anything taken too far is a bad thing. And just about everything in life is a matter of finding the right balance.
Rust's traits were indeed inspired by typeclasses, so those coming from Haskell shouldn't have much difficulty with these kinds of errors. The tricky thing is trying to make it easier for those who don't have that experience.
When I think of API I think of "here is your interface eBNF"

(interface)* = (class)*
(class) = (method_stub)* | (ivar)* | (class_var)* |(property}* | {delegate}* | {some_LINQy_constructs}* | {other_stuff_from_NETCLR3.5_onwards}* | ...
.

"Alright, now implement IEnumerator OnNext(); bool MoveNext(); IDisposible Dispose();"[1] and your data now has the trait/type-class/whatever of IEnumerable! That's all an API is really -- method signatures and code contracts between the requester/requestee. The real gold isn't in that, but in the implementation details of the JVM (and the greybeards who know the -Xxs256 -Xmm10230 blah blah, I suppose.)

I.e. Azul ZING(tm) and the lot of insanely high-performance and/or hard-real-time-in-the-QNX-sense is priced at... a lot. In finance we used to use it because operations could be bounded deterministically. There was enough value in that that CTOs cut 7 figure checks to run that specific API implementation rather than use the Sun/Oracle JVM.

[1] Yep that's probably gobblydygook. My C# and Java meld together, I always confuse IEnumerable,IEnumerator,IDispose,and all the damn duals smash together in my mind, even worse now with Rx one more tensor rank was added (Time). Gods of the CoreCLR, smite me not. Also I'm not in PL design, forgive my bad BNF.
Why does this story belong on HN? It's just politics.
Too much cash? Pay people more! Really that simple. Money has a momentum, a speed by which it flows through an economy. Eventually those mountains of capital will disappear because there is no one left to buy what is being sold.
Sounds like A7+ chips add physical security, is there an A7/A8 or A8/A9 difference?
You can read here about the process in the US more:

http://www.ncbi.nlm.nih.gov/books/NBK50972/

I guess this is different country by country.
Author here. "Audio" is there for reference. It never occurred to be that this would cause confusion, but you're not the only one to object to it.
Actually as a first step the language could be implemented on top of the dalvik vm. It's just that the IR of go would need to change for that target. Something like Truffle for OpenJDK could help by adopting new languages.
So in the last year alone, they made back 2/3rd of what they lost in the last 30 years?
Closing comments on controversial material is very often the best way to get on with life rather than wallowing in a pit of acrimony and indecision.
Yes, but lottery winners don't tend to drop their winnings in the S&P 500, they typically blow it on toys and entertainment and gifts and end up with nothing.
Why do you think so?

The java.* API is not even that good (it is very verbose to achieve basic things). The only reason to re-implement it is compatibility with existing, third-party software using that API.

If you would come with API, that would be technically better, but doing the same thing, do you think that everyone would rewrite all their libraries, frameworks and apps? No way.
We use JIRA so by default we are shoe-horned into Stash/Bitbucket. I've used gitlab on my own and found it beyond easy to use and very reliable. I see gitlab people posting every once and a while on hacker news and they seem very interested in improving the product overall. Contrasted with Atlassian who seems to have no interest in improving their core product and only enabling new revenue-driving products or costly extensions. So thanks.
Is Trump Wrong About a Border Wall? This is what happened when Hungary did it.
This old chestnut from Joel should be helpful (or at least entertaining):
http://www.joelonsoftware.com/articles/Wrong.html

He eventually gets to "hungarian notation" (those redundant prefixes you don't like) towards the end of the piece. tl;dr: misinterpretation of a good idea, cargo-culted down through the ages.
"Damn, that grotesque-looking android startled me and I spilled my cup of Java all over my hip, fortunately it was cool so I didn't get burnt".
Maybe Google is doing things that the "Classpath Exception" doesn't cover, which would expose them to parts of of the GPL that don't work for them?
Onion Juices Regrow Hair Loss, Reversing Grey Hair and Thicken Hair Scalp
>"Business in America" is a invalid concept altogether;

Agreed. If we want to have an efficient global market, we need to quit thinking in terms of the arbitrarily narrow scope of nationalism. Most people in the US have yet to realize the irony of a sovereign nation's tax payers bailing out super-sovereign multinational banks who hoard their money in foreign tax havens like the British Cayman Islands.
Some have alternative implementations of their JavaScript components, like the multiple versions of Angular BootStrap modules.
+1 This whole blog post reeks of elitism and over confidence.

The blog post over states its own importance as after learning these clean code would be easy. Like fade diets, magic paradigms etc... another example of someone believing or trying to convince others that there is a "magic path". "Just remember these four concepts", "get a six pack with just 20 minutes a day"...

There are a few good tips in here but really nothing new. A nice reminder that there are some simple steps to help improve your own code.

A large devil of clean code is not just in nitty gritty "have one line per logical action" but rather the deconstruction of a problem into easily followable steps.

In that way this is definitely not an exhaustive description.
> The question is not how do we create living-wage jobs for the American worker, the question is how do we get the American worker to quit his job and start a business?

after starting a business and running it for nearly a decade, let me tell you, this is nonsense. 99% of people do not want to work that hard, or take that much risk, or learn that much new stuff. they just don't. or if they say they do, they just won't. this is pure fantasy completely divorced from human reality.
Let's make sure we know what we're talking about here. The CU decision was over a bunch of people who made a movie that was critical of a political candidate, and aired that movie not long before the election.

Is it your contention that we really should prevent this kind of thing from happening? Because to me, it seems like the very cornerstone of the democratic system. The minute such activity is illegal, the people have lost and we've become an oligarchy, unable to provide information to our fellow citizens necessary to cast informed votes.
Christian points to Joel Spolsky's example of using prefixes to add meaning, not type information like your examples. From Joel's essay:

All strings that come from [user input] must be stored in variables (or database columns) with a name starting with the prefix "us" (for Unsafe String). All strings that have been HTML encoded or which came from a known-safe location must be stored in variables with a name starting with the prefix "s" (for Safe string).

us = Request("name")

...pages later...
usName = us

...pages later...
recordset("usName") = usName

...days later...
sName = Encode(recordset("usName"))

...pages or even months later...
Write sName

The thing I want you to notice about the new convention is that now, if you make a mistake with an unsafe string, you can always see it on some single line of code, as long as the coding convention is adhered to:

s = Request("name")

is a priori wrong, because you see the result of Request being assigned to a variable whose name begins with s, which is against the rules.

[1] http://www.joelonsoftware.com/articles/Wrong.html

(edit: formatting, citation)
comments are a pointless feature on most blogs anyway.

they just create more work than they create useful content. Anybody who wants to discuss posts has multiple places they can do so now (HN, Reddit, Facebook, etc.)
The presentation asserts that 0-based arrays have "More interesting mathematical properties". Dijkstra's classic paper on this is a must-read: http://www.cs.utexas.edu/users/EWD/ewd08xx/EWD831.PDF
BBS the Documentary Part 1/8: Baud
I think the reality is a mixture of both, the lazy, incompetent programmers are under pressure to ship too!
It looks like Disqus has been removed from their blog entirely? Also, all threads are locked on Disqus, except the one about Greenkeeper [0] which has 0 comments.

0: https://disqus.com/home/discussion/npmjs/the_npm_blog_introd...
There are a lot of steps a university can take, even without a risk of getting sued:

* Cut 25% of your journal subscriptions to the worst offenders and keep cutting every year with some smaller percent.

* Publicly recommend to all scientific boards that the hiring process should judge applicants by the merit of their publications, not by their journal's ranking.

* Promote open-access submissions by your researchers: a small monetary bonus would probably suffice.

* Lobby your government to drop funding allocation based on journal rankings. Instead, promote some sort of combination of citation count [1] and expert consensus.

[1]: I realize currently the citation count is correlated with journal ranking (because the impact factor is computed by an average citation count) but it does not mean it is a bad measure. Plus of course, a comment on HN should not be the right place to design a really fair publication metric.
Easily manage multiple Git repositories with directory tags
I think replacement of Java in Android is coming slowly and likely without any help from Android team.

Looking at gomobile and CLs on golang-dev etc I feel Go support in Android is worked on by small focussed team rather than order from top management.
Inline CSS at Khan Academy: Aphrodite
It's obvious you never worked for a large bureaucratic company having to support many intranet legacy web apps. Of course you can run another browser for the other stuff. This is about the financial costs of software resulting in "corporate standards" including some ancient browser.

This is not at all unusual. And it's hardly a thing to flame the messenger on. It's just a reality some people deal with.
I was planning 10G networking in my home lan, so I guess I'll eye Chelsio NIC then. Hope they're not too expensive.
Interesting. Someone used lwan as a replacement for the Node.js HTTP server https://github.com/raadad/node-lwan
Wrangling State in Clojure
Most of the bad code was made by very productive developers.
Transaction costs have fallen far enough that businesses can be small enough to be run by one person, or at least a small number of people.

Twenty years ago a small ad agency (say) might have been a couple of sales/client-management types who did a bit of writing, a dedicated copywriter, a dedicated graphic designer, and an accountant who also did payroll and basic HR/legal and handled the office lease. Today each of those sales/client-management types could have their own business, working out of a managed shared office, outsourcing writing and graphics as necessary to the copywriter and graphic designer who have their own businesses (because the Internet means there's much less overhead outsourcing and communicating with freelancers), with payroll/legal outsourced to service companies (which probably means less people - maybe 3-5 people handling 10 companies - but each company actually ends up with better access to dedicated specialists than when they had to have one person handling all of those).
Nice demo. I've never been able to get it to recognise B, no matter how I draw it.
Very good

Until you have some code reviewer that thinks otherwise because of some "stupid reason" and you can't get around their hard heads.

One example, breaking a 81 char line because it goes over the limit and getting two shorter lines that are awful to read

So yeah I'll go for this when I'm working with reasonable people
Out of curiosity, could you give an example?
I agree, sometimes closing comments is the best solution, especially when there is a lot of flame war going on, but in this case most of the comments were constructive feedback and there is a huge difference between closing comments and making them completely disappear.
OpenGL is actually not all that common on Windows anymore -- D3D is more performant, and having a a DX11 compatible card isn't as big of a hurdle these days. Also, the big engines all support both for cross-platform reasons, but most devs will default to D3D on Windows because it's more likely to work consistently across various permutations of hardware/OS/peripherals (IMO this is more because Windows sucks; but Microsoft is well versed in the very specific ways that Windows sucks so they can work around them).

: When I say "Windows sucks", I'm just talking about the complexity inherent in dealing with a consumer operating system designed to run on arbitrary 3rd party hardware. APIs like DirectX/Direct3D provide an abstraction layer that make the complexity more manageable; and they have a benefit in that they are provided by Microsoft.