skysight-inc/HackerNews huggingface dataset:
India setup the "protectionist" license raj to protect a few reigning industrial houses for "nationalistic" purposes [1]. The predatory state made it difficult not only for offshore companies, but practically impossible for domestic upstarts (without political arm-wringing). No doubt, it protected the folk it was meant to protect. In a "history-repeats-itself" moment Indian unicorns like Ola/Flipkart are seeking similar "nationalistic" laws today, seeking "protection" from "foreign capital" when it comes via Amazon and Uber - but not via VCs investing in Indian startups. Of course, all this was dressed up in "nationalistic" and "socialistic" costumes, with the media playing the tune.

China on the other hand went full Leninism and destroyed the elite (which TBH might have been more suited in India's case after Independence), so when Deng Xiaoping opened up, there were few "special interest groups" to guide things in their favor. Things today are different. China appears to me to be increasingly taking the old (crony-)capitalist route (is there any other ?). China does exactly what Ola/Flipkart want. Let's be clear as to who this benefits.

One moral is that systems can't compensate for a systematic destruction of social ethics. The other probably is to not fall into the word trap. Things meaning vastly different things are "PR-ed" with similar names to attain semantic advantages over the plebs.

[1]. Amusingly, many of these houses were built in collusion with the British Empire, and some even had their origins in the Opium trade with the Qing.
For better or worse, Gradle is the official Android build tool, so why spend resources in something else?
It is worth noting that both languages also resemble Scala.

see:

https://leverich.github.io/swiftislikescala/

https://agilewombat.com/2016/02/01/scala-vs-kotlin/
Part of ecosystem. See how firebase today is integrated with analytics/ads.
Wells Fargo credit cards and the Chase Ink Preferred credit card both provide device insurance if you pay your monthly bill with the card.
Personally, I find that just having "0..count" requires a bit of thinking on my part trying to decide if it's inclusive or not.

"0..<count" instantly tells me that it's not including value, and follows the matematical interval notification [0..count] vs [0..count)
There's really no need for a certificate on an onion name - onion names are already the hash of your public key. Tor validates everything for that already and if someone else can compromise your onion name, they could just produce a certificate for it anyways.

Unlike with regular http vs SSL, Tor provides confidentiality, integrity and host authentication integrated simply by connecting to the right name.
To bootstrap or raise funds for your startup?
That's a great page - it's like one really cool language could come from the combination of the two. Each taken on it's own, they have their warts.
Sorry, I'm talking about GitLab.com. I don't use it, but anytime I visit the site suffer so much with it that the experience makes me think the worst from GitLab in general.
So what does it do better than C# 7's async/await?
Man site redirects to the spammiest shit on mobile.
it's always confusing, in languages with ranges, whether the range includes the second boundary element or not. it's purely a matter of convention, after all. ruby has a..b and a...b, but even after years of using the language i have to look up which is which. a..<b and a..b is perfect notation - once you know the language handles both cases, a..<b is very clearly "the range of numbers from a, and remaining strictly less than b", and "a..b" is "the range of numbers from a up to and including b".

as for the "count - 1", it's not too bad because i find "inclusive" more intuitive than "exclusive" for the a..b notation, and that does make it explicit that you're not including b, but it's visual clutter in much the same way that having to iterate an array via "for i = 0 to len - 1" is.
Indeed a clear syntax.

OTOH, a "loop .. for .. {upto, below} count" leaves less questions in a casual code review :)
Well, there's another comment here saying that Allura is even slower.
_ in function parameters indicates that a parameter can be passed by position, without its name. Without _ you would have to call

greet(name: "Bob", day:"Thursday")

but with _ you can call

greet("Bob", "Thursday")
https://developer.apple.com/library/content/documentation/Sw...

Swift forces you to use named parameters if you don't do that.
The timeline is more they hired Hinton, got a bunch of neural network street cred as a result, and then hired a bunch of Hinton's acolytes, and then acquired Deepmind. From the outside, it seems Dean or some other higher up had the foresight / luck to bet big on neural architecture research just as the engineering started becoming practical.
This is the client sdk, not the server
It might be good to mention how to free the memory. By passing the pointer back to a rust function like

#[no_mangle]
pub extern fn free_string(p: *mut c_char) {
unsafe {
let _ = CString::from_raw(p);
// optionally you could explicitly call drop, but
// that is unnecessary, since it is automatically dropped
// at end of scope
}
}

Also the `into_raw` method on CString gives you a pointer while simultaneously taking ownership of the CString, so mem::forget isn't necessary if you use `into_raw` rather than `as_ptr`.
Target Malaria – General Support
K-pop Is Neo-Confucian Pornography
I feel like you could about as well write an article about how Go or Scala or TypeScript is like Kotlin. They all have some cases where they look similar or have some similar constructs borrowed from other sightly-less-recent languages. It doesn't seem like a very interesting or deep similarity.

If you want to compare them, going over the differences would be a lot more illuminating.
Free access to internet and online university for those that can't pay for brick and mortar degrees would be reasonable in terms of cost and efficacy.
It was an odd coincidence on my end. I just finished listening to Bach's Capriccio in B flat major 'on the Departure of his Beloved Brother' when I browsed to HN.
I can't tell whether this is sarcasm or not. What does the '<' mean in this case? I'm assuming an exclusive upper bound.
Swift has both external and internal parameter names for functions. This is to make API design more readable, easier to parse through.

For example, you can have a function like so:

func greet(with greeting: String, to personName: String) {
print("\(greeting), \(personName)!")
}

In the above code, "with" and "to" are external names, and are only available when calling the function but are not available inside the function itself. So you would call this function like so:

greet(with: "Hello", to: "Bob")

Now if you want to exclude the external name to call the functions, you use the "_" syntax. So you're right that it denotes an unused parameter. In this case, it's an unused external parameter name.
Because—as half the threads above say, if you'd care to read them—animal farming is very bad for the environment. It's not about the ethics; it's about how much pollution it generates to create the fertilizer and the pesticide to grow the grass or grain that we feed the animals, and about the methane the animals release during their lives—beef-cattle methane, by itself, is 16% of (indirectly-)anthropogenic greenhouse emissions.

Lab-grown meat isn't important because it's "cruelty-free"; it's important because it's possible to make it far, far cheaper in externalities (and, hopefully, in real dollar-value costs as well) than the alternative. That means more people fed balanced diets per carbon-dollar.
There does seem to be broad agreement across a range of typed languages -- TypeScript, Swift, Kotlin, ES6 + Flow -- about notations for classes, control flow and data structure declaration.

But true convergence remains far away...
I'm surprised you didn't include the story of Bach walking 250 miles to hear Buxtehude play.
Why is it a..b instead of the logical a..=b or a..<=b?
Yes, but these are kids lacking your additional 20 years of experience. Congrats on your ROI, Other people are just looking to get out of dead ends, thinking the better (or any) school will provide that. Unfortunately we'll see the for-profit schools negatively affect the overall. Even so, a 11% default rate across the board is nothing to sneeze at. [1] https://www.ed.gov/news/press-releases/national-student-loan...
Web Scraping: Bypassing “403 Forbidden,” captchas, and more | https://news.ycombinator.com/item?id=13884357
Voice in the Wilderness: On Douglas Copeland
Hooray for Bach on HN! I can't recommend highly enough the performances of http://bachcollegiumjapan.org, a Japanese ensemble that I believe has recorded the full choral works of J.S. Bach, along with many pieces for instruments only. The performances are vital and electrifying, while also extremely thoughtful and counterpoint-driven.
You can name parameters externally and externally explicitly.

func sayHi(to personName: String) {
print("Hi \(personName)")
}
sayHi(to: "Bob") // Hi Bob

Similarly, using just one label in the function declaration means that they have the same name externally as well as internally.

In this case the example is saying that they don't want any external labels.

edit: damnit, beaten
Reply's Live Tasks suggestions
equivalently, there's no real incentive to not use deadly force to clean the ships of pirates as a deterrence and take the write off on any damages.

I suspect with drone ships and the lack of crew liability, there will arise contract security companies with pre-positioned ex-seal teams in hotspots to deal with piracy.
In Kotlin it's much more common to write the following, which is exclusive:

count.forEach {
// do things
}
it does matter what you want to protect from. often using root to start an app can actually make it more secure by allowing it to start worker processes with a non privileged user and do some sandboxing with name spaces.
> IntelliJ doesn't like it when you type fast.

Is that really true? Then that might explain why the qwerty keyboard is still around.
An alternative approach is Guava's Range class:

Range.closed(1,5) == [1,5]

Range.open(1,5) == (1,5)

Range.openClosed(1,5) == (1,5]

Range.closedOpen(1,5) == [1,5)

Range.greaterThan(1) == (1,infinity)

Range.atLeast(1) == [1,infinity)

That class always strikes me as having high power-to-weight. It has methods like encloses(anotherRange), contains(aValue), and others.

https://google.github.io/guava/releases/19.0/api/docs/com/go...
Counterpoint:

Breeding is a natural instinct and one of the few normal (and fulfilling) activities captive mammals can still participate in.

It may not be noble to force them to breed, sure. But is it a noble to deny them the right to breed if they are naturally inclined?

To be clear, I don't pretend to know the answer, I'm just pointing out that it's a much more complicated moral issue than you are letting on.
... and they often bring back their exploitative practices back after gutting the unions.

http://www.msn.com/en-us/money/markets/inside-alabamas-auto-...
And this is why ssh keys need to be encrypted - it's a good 2nd factor that will prevent access to all your important stuff if your laptop is stolen/compromised.

ssh-keygen -p -f keyfile
> I don't know, but I would dearly love to use a compiler that does that.

Well you're in luck, since gcc -Werror when used with many of its -W flags will do precisely that.

You guys should read the minutes of committee discussions and position papers. "undefined behavior" is not something introduced to make programmers' lives hard!

Also look at IEEE734 which does define things to an incredible degree -- it's extremely hard to use (as it needed to be!). It's one of the very best standards of all time, and still has, yes, undefined behavior.
Pretty good list. I don't think the tuple comparison is accurate though, I thought a data class is basically a value type (like Swift's struct) except with some stuff like equals, hashcode, and toString calculated for you.

Minor nit: the sort example needlessly uses two lines for the Swift version.
Android O is shaping up to be exactly what Android needs
The current RFC recommends the use of an object or array for interoperability with the previous specification. JSON being a bit of a clusterf* of variants, they tried to make the RFC broad then place interoperability limitations on it. (lenient in what you accept, etc etc)
I miss the old Pixar. Yes, now Disney is making better animated films, but I'm not sure it's worth the loss of truly great Pixar films. Plus, it seems that Disney is slipping too. Though they released some good films after the acquisition of Pixar (Tangled was excellent), their recent releases have been... mediocre. I never liked Cars, Finding Dory could've been better... I suppose Moana was pretty good, but the exception to the new rule. Now to see good, emotionally resonant films, we look to other studios. Kubo was astounding good, for example. Props to Lassiter for his success, but it comes at the cost of great films for the whole family.
Tizen 4.0 Open Source Operating System Released
Read it as "For 0 to count" basically. "0... (spread operator) less than 0. It seems confusing to me as well at first read but I'm used to writing for loops by hand uphill both ways.
Is there any language where the meaning isn't immediately clear? I haven't seen a language that didn't differentiate between '<=' and '<'. The syntax of just '..' is a little unclear at first however, but it is simply a requirement of learning the language and the idioms
https://github.com/drapanjanas/re-natal
I used to have a cat named Buxtehude (mainly because I like the word) and was pleased that most of my friends knew the reference.

I also drove there once. Not much to see, and actually has no connection to the composer.
We are kind of in the same place as the 2008 crisis, except the sub prime mortgages have been extrapolated out a level. The comercial product being sold today is the rent collected from the properties and the mortgage is the collateral. So if the renter can't pay, kick them out, The market shouldn't tank all at once, it will continue to go up 20% a year until nearly no one can afford to live in a house period. Then crash. http://www.motherjones.com/politics/2014/01/blackstone-renta...
Should the second "closed" be "closed Open" (with the corresponding change to the rest of the line)?
I dunno, I think Swift's string interpolation is clever. Using the special-char backslash for opening string interpolation is a neat idea. Also keeps the number of special chars in in strings to a minimum.
Yes, but automation alone isn't causing layoffs! Bad management is. They are just hiding their own failures on the pretext of "risk of automation and AI", it is nonsense!
Ask HN: Live speech-to-text to assist with video conferencing
Working with a lot of teams in Bengaluru via video conferencing, I find that the audio quality isn't at a level that each party can hear with full confidence. Are there any services which would allow me to capture my speech to text in real time and display this on a Web browser? Hopefully this would compliment what is being heard during the video conference.
In the early beta release of Swift 0.x, they used x..y for half-open ranges and x...y for closed ranges. This confused people (especially since Ruby already used the same operators but the other way around), so they changed the half-open operator to x..<y.
Promo Sewa Motor Jogja Rp 50.000/hari
> Well you're in luck, since gcc -Werror when used with many of its -W flags will do precisely that.

That's not lucky; I'd argue it's the opposite. An ecosystem built around compilers that default to not using -Werror (or rather: `-Werror=pedantic -pedantic-errors`) is an ecosystem that encourages people to write code that relies on the optimizations compilers make in response to undefined behavior. Which, undoubtedly, "makes [maintenance] programmers' lives hard," when they change one little thing and suddenly the code gets 10x slower because now e.g. a dead loop isn't being elided.

If all compilers defaulted to something like `-Werror=pedantic -pedantic-errors`—and it was highly discouraged to turn those flags off—then jumping in to contribute to a portable, sprawling codebase would be infinitely simpler, because the codebase would have been written in a far more rigorous way up to that point.

Sunlight is the best disinfectant—so why do we allow our compiler-vendors to default the lights to off?
I am not saying anything of that sort, all I am saying is that layoffs are not happening because of "automation and AI".

If a company wants an inhouse dev team they'd do so without "automation and AI", the thing is, they don't and that's why enterprise software companies are formed.

Sure, I can bake my own bread, grow my own vegetables, mine coal for electricity myself, but I don't. I do what I do best and leave the other stuff to others. It is upto companies to decide if they want to build infra for them.
Steve Yegge had this to post about Kotlin:

http://steve-yegge.blogspot.com/2017/05/why-kotlin-is-better...
Something security-related to keep in mind (TL;DR at end):

Directory state after initial unpack (becomes important in a minute):

-rwxr-xr-x 1 i336 users 19K May 13 10:43 INTEL-SA-00075-Discovery-Tool
-rw-r--r-- 1 i336 users 27K May 13 10:57 INTEL-SA-00075-Discovery-Tool.c
-rwxr-xr-x 1 i336 users 15K May 13 10:44 INTEL-SA-00075-Unprovisioning-Tool
-rw-r--r-- 1 i336 users 16K May 13 10:42 INTEL-SA-00075-Unprovisioning-Tool.c
-rw-r--r-- 1 i336 users 187 May 13 10:42 Makefile

Build:

$ cd INTEL-SA-00075-Discovery-Unprovisioning-Tool-Engineering-Release
$ make
gcc -I../../usr/include INTEL-SA-00075-Discovery-Tool.c -o INTEL-SA-00075-Discovery-Tool
strip INTEL-SA-00075-Discovery-Tool INTEL-SA-00075-Unprovisioning-Tool
$

OK; wipe and do it again:

$ rm INTEL-SA-00075-Discovery-Tool INTEL-SA-00075-Unprovisioning-Tool
$ make
gcc -I../../usr/include INTEL-SA-00075-Discovery-Tool.c -o INTEL-SA-00075-Discovery-Tool
gcc -I../../usr/include INTEL-SA-00075-Unprovisioning-Tool.c -o INTEL-SA-00075-Unprovisioning-Tool
strip INTEL-SA-00075-Discovery-Tool INTEL-SA-00075-Unprovisioning-Tool
$

Wait - why did the unprovisioning tool only get compiled on the second build?

Because the binary for the unprovisioning tool is two minutes NEWER than the source code, as shown in the directory listing.

The binary for the discovery tool is older than the source (as normal).

Objectively it's 50/50 as to whether this is meaningless noise or something hidden. Of course everything points toward the former, but I thought I'd leave this here just in case.

It's worth noting that an independent security company rapidly found (and announced) the vulnerability after the initial undisclosed CVE. So if it was that easy, this vulnerability has clearly been known about in various circles for a while.

It's also worth noting that the build process strips the binary, which is arguably unnecessary, but is a nice way to explain why there are no debug symbols in the provided binaries.

Again, I trust Intel and can easily talk this away as the inanites of bureaucracy and management and deadlines, but my "hmmm" sense is tingling nonetheless.
isnt he Samoan by birth meaning he cant run for president? im no expert on US politics but if memory serves the reason Arnie could never actually run was that you had to be US born to be president (i may be completely wrong here though)
Yes. It's half the price of other flagship phones.
As an alternative opinion, I personally hate when ranges are exclusive by default. In addition to it feeling somewhat unintuitive to me that I need to use range(0, 6) to include 5, it also makes downward ranges quite awkward, e.g. needing range(5, -1) to count from 5 to 0.
I prefer explicit words over symbols, like in Scala:

scala> 1 to 3

scala.collection.immutable.Range.Inclusive = Range(1, 2, 3)

scala> 1 until 3

scala.collection.immutable.Range = Range(1, 2)
Well, this is enjoyable. Are you in fact "that" Sam Harris? Or perhaps a fan?
I agree. But at that price, it's not even within the realm of possibility for a huge chunk of Canadians.
Hmm, not quite _that_ expensive... you can buy the "DGX Station" with four NVIDIA Tesla V100 GPUs for $69,000. http://wccftech.com/nvidia-volta-tesla-v100-dgx-1-hgx-1-supe...
> Whilst DevOps automation tools like Chef/Puppet/Ansible/Whatever have undoubtedly increased in popularity, very often they are just used as nicer ways to achieve the same thing IT professionals have been doing forever in shell scripts or similar.

Exactly! The mgmt of the above stated firms sucks, they had no vision or a sense of direction, they make bad decisions and when they are asked questions like Sikka (infosys CEO was asked) Why do you earn millions per year and why do you take 50+% hike and still are unable to deliver then the hide behind "automation and AI" :)

it is mediocre CEOs and C*Os and a lot of other folks which are causing this downturn plus investors too, Google "eliott management letter" to get an indepth real reason behind this wave of "layoffs due to automation and AI".
Cool but Apple's 32 bit iPhones still get updates and also use Qualcomm chips...

What's the difference in how they operate with suppliers?
Many colleges are being pressured (by accreditation committees, donors, government, etc.) to provide methods for students to acquire connections that make it easier to succeed. Networking opportunities, guest lecturers from industry, internships, and special programs are fairly common ways that colleges can make a difference for students beyond an education.

While some (perhaps many or most in some schools) professors live in the isolation of academia, lecturers or part-time, non-tenure professors often work in a field related to the subject they are teaching, and can be a good source of connections for students.

Sure, simple attendance may not be enough for many students, but most colleges do at least try to give you the opportunities and tools you need to succeed.
What does a Guava two-Integer-element array literal look like?
People who know me say I'm a super music fan. Yup. I liked it well enough to get a violin and dig in, especially to Bach. For violin I have low talent, started too late, and didn't practice enough, but, still I made it through the Preludio of the E Major Partita and the D Major center section of the Chaconne.

From all the possible analyses I've seen of Bach, finally I come down on just one core point: He was one heck of a good musician, that is, in the basic art of the music, that is, "communication, interpretation of human experience, emotion". I listen to Bach for the MUSIC, that is, for the art, the communication.

While later composers used style and means Bach didn't use or didn't have, to me as an avid listener Bach is in places as passionate, romantic, dramatic as anything in Mozart, Beethoven, Puccini, Verdi, Wagner, Tchaikowski, etc. E.g.,

https://www.youtube.com/watch?v=sOFflFiLlT8

Bach Busoni Chaconne D Minor BWV 1004 Valentina Lisitsa

Passionate music.
Yeah, let's Trumpify that title:
"JUUUGE NIM release - everybody is saying they're going to give up sex now, 'cause we're like 17 times better now! NIM version 17,000.17 is OUT and PROUD!"

Accuracy and brevity, pshaaw.
Andrew, you are a credit to Firebase, and I salute you for dropping in here and apologizing for the situation. Though you'll get some heat, I think your attitude of humility is a rare one these days, and much appreciated.
Is this broad agreement due to theoretical alignment, or a deliberate attempt to increase programmer adoption?

If true convergence happened, there wouldn't be a need for different languages. :-)
I pretty much left that out as bait for someone to reply, though it seems you've nearly identified it as such :)
I think they meant to say that Kotlin has non-nullable types.

The Kotlin page does a good job of explaining it if you aren't familiar. It's the single most important feature that makes Kotlin worth using over Java in my opinion: https://kotlinlang.org/docs/reference/null-safety.html