News for hackers. Stuff that matters.
Re:iOS Supporting IPv6-Only Networks by chatmasta on Thursday May 05, 2016 @11:37AM (#11637035)
People commenting here need to work on their reading comprehension. Apple is not dropping support for IPv4. They are simply requiring that all apps also support IPv6. The headline is confusing because of "only." But it's way different than if it read "iOS supporting only IPv6" as some comments seem to be implying. The change is that when a network is IPv6 only, apps must function properly, whereas previously Apple tolerated apps that only worked on IPv4. A better headline might be "Apple bans apps that only support IPv4." (*Edited, guess it's not so easy to write the headline. :) )
Re:iOS Supporting IPv6-Only Networks by Aloha on Thursday May 05, 2016 @11:41AM (#11637068)
You hit the nail on the head - and as someone who works in the telecom industry (and an early advocate of IPv6) I'm pleased to see it.
Re:iOS Supporting IPv6-Only Networks by jdeibele on Thursday May 05, 2016 @11:42AM (#11637078)
Or "Apple bans apps that support only IPv4."

"Apple bans apps that support IPv4 only." could be interpreted as banning apps that support IPv4. Although that'd be reaching.

Want to hear my rant about "No smoking allowed" when it should be "Smoking not allowed"?

Re:iOS Supporting IPv6-Only Networks by Dylan16807 on Thursday May 05, 2016 @12:54PM (#11637745)
I don't see how you could parse the smoking message the wrong way. "Non-smoking allowed" would be the wrong message. With "No smoking allowed", can you explain the problem?
Re:iOS Supporting IPv6-Only Networks by sosborn on Thursday May 05, 2016 @01:01PM (#11637826)
You are allowed to be "no smoking." It doesn't say that you can't smoke, which is the only possible interpretation of the second option.
Re:iOS Supporting IPv6-Only Networks by Dylan16807 on Thursday May 05, 2016 @01:03PM (#11637853)
You cannot be "no smoking". You can be "not smoking". You can be "non-smoking". "no smoking" is not an adjective.
Re:iOS Supporting IPv6-Only Networks by mistersquid on Thursday May 05, 2016 @04:58PM (#11639625)
"No smoking" is a gerundive phrase which serves as the sentence's subject, with the copulative verb "is" implied: "No smoking [is] allowed".

Considered differently, the sentence is not in the imperative mood with an implied subject. The sentence is in the declarative mood with an implied verb.

The possible misunderstanding is that this declarative sentence merely identifies one action (of many) which is allowed, "no smoking", which does not necessarily prohibit other activities including "smoking", "singing", "no singing", "dancing", etc.

EDIT: grammar and readability

Re:iOS Supporting IPv6-Only Networks by Dylan16807 on Thursday May 05, 2016 @06:29PM (#11640154)
I strongly disagree. "not smoking" is an action. "no smoking" is not an action. You cannot parse the sentence as allowing a specific action without replacing the word "no" with something else.

Edit: Also, I treat the sentence as being declarative with an implied 'is' even when interpreting it correctly.

Re:iOS Supporting IPv6-Only Networks by mistersquid on Thursday May 05, 2016 @07:42PM (#11640579)
You are splitting hairs and are mistaken.

"Smoking" is the noun form of the verb "to smoke", also known as a gerund.

"No" is an adjective (quantity) modifying "smoking".

In the unintended misinterpretation, the phrase "no smoking" is an action that is permitted. The misinterpretation is possible because the negative is an adjective on the gerund which allows for ambiguity with regard to the sentence's predicate.

This is a feature of the English language. Colloquially, most English speakers understand the intended meaning.

The ambiguity can be removed by 1) writing "Smoking [is] not allowed" thus asserting the negative as an adverb in the predicate, 2) removing the predicate nominative "[is] allowed" (leaving only a gerundive phrase, not a full sentence), and/or 3) using a diagram like a prohibition symbol atop a burning cigarette [0]

EDIT: grammar and sense (this is getting complicated!)

[0] http://images.mydoorsign.com/img/lg/S/no-smoking-sign-s-9584...

Re:iOS Supporting IPv6-Only Networks by Dylan16807 on Thursday May 05, 2016 @08:49PM (#11640890)
> You are splitting hairs

I think the point of this conversation thread was to split hairs. :)

> "Smoking" is the noun form of the verb "to smoke", also known as a gerund.

Yes.

> "No" is an adjective (quantity) modifying "smoking".

Yes.

> "no smoking" is an action

That does not fit with my understanding. "Uncle Bob is no smoking." is not valid English. "No" is a word used when talking about sets of things/actions. To make an action that is the opposite of smoking, you have to use "not".

Re:iOS Supporting IPv6-Only Networks by comex on Thursday May 05, 2016 @09:08PM (#11640979)
FWIW, I agree with Dylan16807. Compare "quickly planning" to "quick planning". Why are both an adjective and an adverb allowed in the same position? Because the adverb is part of the subordinate clause implied by the gerund (where it's treated as a verb), while the adjective is part of the main clause and modifies the gerund (as a noun). "No" is (syntactically) an adjective, so unless it fits into a known colloquialism or special case that bends grammar rules for the sake of brevity, its role in "no smoking" must be the latter - part of the main clause. But then the gerund is treated no differently from any other noun, and "no" does the same trick it always does: "no X does Y" is (always) shorthand for "(an X which does Y) does not exist". "No smoking is allowed" is no different from "no help is available" or "no money has been taken".

(edit: changed first example to something more idiomatic)

Re:iOS Supporting IPv6-Only Networks by adriand on Thursday May 05, 2016 @07:41PM (#11640566)
This is amusing but absurd, especially if you're serious about this phrase being confusing or malformed. "You may not smoke": does this mean, to you, that either smoking or not smoking is permitted? If the answer is yes, I think the solution may be to cease applying the logical rules of programming to human languages, where it is meaning and tradition that matter.
Re:iOS Supporting IPv6-Only Networks by mistersquid on Thursday May 05, 2016 @08:04PM (#11640686)
I was going to write that the answer your question is "no" because your version is unambiguous but then I parsed it a few more times.

One way to remove the ambiguity is to recast your sentence using "must": "You must not smoke". But that version is stilted to most modern English speakers raised outside the UK.

This side-discussion is probably one of the reasons people wish HN had collapsible threads, so after this comment I will refrain from further contributing to it.

(Nice job, btw, on highlighting the ambiguity in a version where the negative is in the predicate.)

EDIT: grammar

Re:iOS Supporting IPv6-Only Networks by paulddraper on Thursday May 05, 2016 @04:28PM (#11639429)
You no smokey!
Re:iOS Supporting IPv6-Only Networks by mistersquid on Thursday May 05, 2016 @04:48PM (#11639556)
Didn't Smokey say "Only you…"? [0]

[0] https://en.wikipedia.org/wiki/File:Smokey3.jpg

Re:iOS Supporting IPv6-Only Networks by prdonahue on Thursday May 05, 2016 @01:02PM (#11637844)
He's trying to imply that one would actually read this as "no smoking [IS] allowed".
Re:iOS Supporting IPv6-Only Networks by Dylan16807 on Thursday May 05, 2016 @01:08PM (#11637908)
"No smoking is allowed." is the correct message.
Re:iOS Supporting IPv6-Only Networks by lstamour on Thursday May 05, 2016 @06:11PM (#11640046)
But "smoking isn't allowed" or "smoking is prohibited" is a clearer way of putting it...
Re:iOS Supporting IPv6-Only Networks by headShrinker on Thursday May 05, 2016 @04:37PM (#11639484)
"No smoking is allowed."

(!smoking == true)

It's short hand.

> "Apple bans apps that support IPv4 only." could be interpreted as banning apps that support IPv4.

the word 'only' is quite important in english. If an app supports IPv4 they will not be banned. That's not what we are measuring here. If they "don't" support IPv6, they will be banned.

Re:iOS Supporting IPv6-Only Networks by copperx on Friday May 06, 2016 @12:04AM (#11641622)
"Apple bans apps that don't support IPv6". It isn't that hard.
Re:iOS Supporting IPv6-Only Networks by AckSyn on Thursday May 05, 2016 @10:30PM (#11641287)
No one learns proper contextual clues in written media OR grammar usage anymore. Christ, it was bad when I started university in the late 90s and it's only gotten worse!

Fuck common usage. Ignorant fools drag everyone down.

Re:iOS Supporting IPv6-Only Networks by Negative1 on Thursday May 05, 2016 @12:10PM (#11637321)
That's incorrect. Check out figure 10-3 here: http://j.mp/1NkSBaF

If your App does not support IPv6 on the official rollout then you will no longer have network connectivity. If you use native platform functions you're fine. If you use unix/bsd sockets, you're in trouble.

From the backend perspective however, IPv4 will be allowed... for now. Basically what happens is the client is expected to send an IPv6 packet to the phone carrier which then will translate it to IPv4 if needed. Since many big cloud providers (like Amazon) still don't support a proper IPv6 solution this approach will likely be around for quite some time.

Re:iOS Supporting IPv6-Only Networks by songgao on Thursday May 05, 2016 @01:19PM (#11637997)
> Basically what happens is the client is expected to send an IPv6 packet to the phone carrier which then will translate it to IPv4 if needed.

This will only happen 1) in the test environment that helps ensure that your App will work fine in a IPv6-Only (as opposed to dual-stack) network; 2) your carrier has IPv6 and NAT64.

If I understand correctly, the higher level APIs should be able to choose IPv6 or IPv4 accordingly based on network configuration. If, for example, your carrier doesn't support IPv6, apps using these APIs will continue function well using IPv4. And I doubt Apple will ban IPv4 entirely before all carriers support IPv6 and NAT64/DNS64. So "for now" will likely be several years.

There are many components that need upgrades in order to move to an IPv6 only Internet. Preparing applications for it is an important part, and this is a nice step in this part.

Re:iOS Supporting IPv6-Only Networks by chatmasta on Thursday May 05, 2016 @12:18PM (#11637400)
Oh I see. So Apple is moving all its local sockets to IPv6 format? That's what you mean by "no longer have network connectivity?"

You seem to be implying that every IPv4 packet will go through a carrier NAT64... but what if my ISP does not use NAT64? Will my iPhone send a regular IPv4 request, or will it prefix IPv6?

Re:iOS Supporting IPv6-Only Networks by X-Istence on Thursday May 05, 2016 @12:21PM (#11637441)
If your ISP doesn't have NAT64 it will continue to use IPv4, and packets will continue to flow as normal. Apps however can't be IPv4 ONLY.
Re:iOS Supporting IPv6-Only Networks by chatmasta on Thursday May 05, 2016 @12:28PM (#11637512)
Ah okay. So the point of prefixing IPv6 with IPv4 is that if the ISP has only IPv4 switching, it will only grab the first 32 bits of the IPv6 address... which is the IPv4 address. So no ISP changes needed.
Re:iOS Supporting IPv6-Only Networks by X-Istence on Saturday May 07, 2016 @11:09PM (#11652447)
No, that is not how NAT64/DNS64 works...
Re:iOS Supporting IPv6-Only Networks by chatmasta on Saturday May 14, 2016 @06:22PM (#11698321)
Ok then we are left with my original question. What if my ISP does not own any routers implementing NAT64? Will iOS send IPv4 packets? I think the answer is yes.
Re:iOS Supporting IPv6-Only Networks by the_mitsuhiko on Thursday May 05, 2016 @01:57PM (#11638327)
That's unlikely to be correct because this would require carriers to support IPv6 which many do not do.
Re:iOS Supporting IPv6-Only Networks by Negative1 on Thursday May 05, 2016 @05:24PM (#11639764)
From that link: "Major network service providers, including major cellular carriers in the the United States, are actively promoting and deploying IPv6."
Re:iOS Supporting IPv6-Only Networks by the_mitsuhiko on Friday May 06, 2016 @10:47AM (#11644331)
That's nice for the US but that does not apply for many other countries. Case in point: Austria does not have a practical IPv4 shortage currently so motivation for deploying IPv6 is low and customers actively refuse it.
Re:iOS Supporting IPv6-Only Networks by eloy on Thursday May 05, 2016 @12:14PM (#11637367)
Out of curiosity, why would anyone use Unix or BSD sockets on iOS if Apple provides way better APIs?
Re:iOS Supporting IPv6-Only Networks by Negative1 on Thursday May 05, 2016 @05:22PM (#11639752)
Think game engines or legacy C++ projects there were ported to the platform and already have their own network implementation.
Re:iOS Supporting IPv6-Only Networks by mosburger on Thursday May 05, 2016 @12:19PM (#11637417)
Maybe familiarity? Porting existing UNIX code to iOS (seems like that'd be pretty rare)?
Re:iOS Supporting IPv6-Only Networks by eloy on Thursday May 05, 2016 @12:23PM (#11637465)
Hmm, good point. I guess that most of the apps that use BSD/Unix sockets are libraries then.
Re:iOS Supporting IPv6-Only Networks by Negative1 on Thursday May 05, 2016 @05:24PM (#11639769)
Why the downvote? Everything I stated is factually accurate.