アカウント名:
パスワード:
しかしユーザーエージェント文字列では10.xのまま("Mac OS X 10"という文字列が含まれることを決め打ちしているアホがいるため)ついでにM1 Macでもユーザーエージェント文字列のCPUはIntelのまま(IntelでなければPowerPCという判定をしているアホがいるため)
Windowsが9を飛ばして10なのは、
if(version.StartsWith("Windows 9"))
のせい、なんて噂もあったな
マジでJDKに有ったという。https://developers.srad.jp/story/14/10/05/0651214/ [developers.srad.jp]
JavaだからOS依存のWin32 APIは使えなかったんだよ。判定に使えそうなのがシステムプロパティの文字列くらいしかなかった
それは動機としては理解できるが、結果に対して何の擁護にもなってないような。
そもそもOSの判定が必要になった時点でWrite Once, run anywhere的には敗北だな
98や95と判定されるからか。
一方Microsoft自身もASP.NETかなんかのIEバージョン判定で最初の1文字しかみてなくて、IE10はIE6より古いって判定してたけどね。(.NET 3.5ぐらいの話だからもう直ってるはずだが)
上はまあわかるとして、ついでにの方は、M1 MacがPower PCと判断されようがintelと判断されようが誤判定に違いないので、intelのままにする理由がよくわからん。intel(x86)だとエミュレーションでシームレスに動くということなら、intelバイナリを走らせる時のみintelと返すという、エミュレータとしてまっとうな実装で十分な気がするが。
Power PCと判定されるとビッグエンディアンだと思いこんでTyped Array操作が完全に壊れるとか単にめちゃくちゃ古いとみなされて弾かれるとか。一番致命的なのはArmだと知られるとモバイルだと決めつけられるので、Intelと思い込ませたほうがまだマシという。LinuxでもX11でなければAndroidと決めつけられるので、WaylandだけどX11と思わせたほうがマシとか。
失礼ですが「ユーザーエージェント文字列を見てwebサイトが動作を変える」という話だという前提はまず理解しておられますか? さらに言うなら「アホがいる」(本来まったく必要のない情報をどうにか知りだそうとしたあげく誤った前提に基づく判定で誤動作する)という話であることも。
> 実行ファイルレベルでiOSとMacOSが統合されている(アプリ側が同じバイナリイメージで両プラットフォームを対応できる)といことなのか、そこまで進んでいるとは知りませんでした
そうではないにも関わらず、ユーザーエージェント文字列にArmと含まれているとモバイル用ページを送
ごめんなさい、ブラウザのユーザーエージェントの話だと理解してませんでした、すみません。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
計算機科学者とは、壊れていないものを修理する人々のことである
バージョン11.x (スコア:5, 興味深い)
しかしユーザーエージェント文字列では10.xのまま("Mac OS X 10"という文字列が含まれることを決め打ちしているアホがいるため)
ついでにM1 Macでもユーザーエージェント文字列のCPUはIntelのまま(IntelでなければPowerPCという判定をしているアホがいるため)
Re:バージョン11.x (スコア:2, 参考になる)
Windowsが9を飛ばして10なのは、
if(version.StartsWith("Windows 9"))
のせい、なんて噂もあったな
Re:バージョン11.x (スコア:2, 参考になる)
マジでJDKに有ったという。
https://developers.srad.jp/story/14/10/05/0651214/ [developers.srad.jp]
Re: (スコア:0)
JavaだからOS依存のWin32 APIは使えなかったんだよ。判定に使えそうなのがシステムプロパティの文字列くらいしかなかった
Re: (スコア:0)
それは動機としては理解できるが、結果に対して何の擁護にもなってないような。
Re: (スコア:0)
そもそもOSの判定が必要になった時点でWrite Once, run anywhere的には敗北だな
Re: (スコア:0)
98や95と判定されるからか。
一方Microsoft自身もASP.NETかなんかのIEバージョン判定で最初の1文字しかみてなくて、IE10はIE6より古いって判定してたけどね。
(.NET 3.5ぐらいの話だからもう直ってるはずだが)
Re: (スコア:0)
上はまあわかるとして、ついでにの方は、M1 MacがPower PCと判断されようがintelと判断されようが誤判定に違いないので、
intelのままにする理由がよくわからん。
intel(x86)だとエミュレーションでシームレスに動くということなら、intelバイナリを走らせる時のみintelと返すという、エミュレータとしてまっとうな実装で十分な気がするが。
Re: (スコア:0)
Power PCと判定されるとビッグエンディアンだと思いこんでTyped Array操作が完全に壊れるとか単にめちゃくちゃ古いとみなされて弾かれるとか。一番致命的なのはArmだと知られるとモバイルだと決めつけられるので、Intelと思い込ませたほうがまだマシという。
LinuxでもX11でなければAndroidと決めつけられるので、WaylandだけどX11と思わせたほうがマシとか。
Re: (スコア:0)
失礼ですが「ユーザーエージェント文字列を見てwebサイトが動作を変える」という話だという前提はまず理解しておられますか? さらに言うなら「アホがいる」(本来まったく必要のない情報をどうにか知りだそうとしたあげく誤った前提に基づく判定で誤動作する)という話であることも。
> 実行ファイルレベルでiOSとMacOSが統合されている(アプリ側が同じバイナリイメージで両プラットフォームを対応できる)といことなのか、そこまで進んでいるとは知りませんでした
そうではないにも関わらず、ユーザーエージェント文字列にArmと含まれているとモバイル用ページを送
Re: (スコア:0)
ごめんなさい、ブラウザのユーザーエージェントの話だと理解してませんでした、すみません。