Firefox Nightly、IE11と間違われる 54
ストーリー by headless
誤解 部門より
誤解 部門より
米 BestBuy のウェブサイトで Firefox Nightly がサポート終了した古いブラウザーと認識される問題が発生し、調査の結果 Internet Explorer 11 (IE11) と誤判定されているとの結論に達したようだ
(Ghacks の記事、
webcompat/web-bugs: Issue 115507、
MozillaのBugzilla: Issue 1805967、
Issue 1806690)。
デスクトップ版および Android 版 Firefox のユーザーエージェント (UA) 文字列では「rv:」が Gecko エンジンのバージョンを示す。現在、Firefox Nightly はバージョン 110 であり、Gecko エンジンも同じバージョンだ。一方、Internet Explorer の UA 文字列ではバージョン 10 まで「MSIE 10.0」のようなバージョン表記だったが、IE11では「rv: 11.0」という表記に変更された。BestBuy は「rv:」に続く数字の先頭 2 桁のみを抽出してバージョン判定に用いているとみられ、Firefox バージョン 110 が IE11 と誤認識されるようだ。
誤認識を避けるため、Firefox Nightly の「rv:」は「109」に変更されており、バージョン 119 までは「109」のままにしてバージョン 120 で本来の「120」に戻す計画も示されている。
デスクトップ版および Android 版 Firefox のユーザーエージェント (UA) 文字列では「rv:」が Gecko エンジンのバージョンを示す。現在、Firefox Nightly はバージョン 110 であり、Gecko エンジンも同じバージョンだ。一方、Internet Explorer の UA 文字列ではバージョン 10 まで「MSIE 10.0」のようなバージョン表記だったが、IE11では「rv: 11.0」という表記に変更された。BestBuy は「rv:」に続く数字の先頭 2 桁のみを抽出してバージョン判定に用いているとみられ、Firefox バージョン 110 が IE11 と誤認識されるようだ。
誤認識を避けるため、Firefox Nightly の「rv:」は「109」に変更されており、バージョン 119 までは「109」のままにしてバージョン 120 で本来の「120」に戻す計画も示されている。
バージョン上げまくるからだよ (スコア:1)
ずっとFirefox 3.x.xのままにしてればこんな事もなかったのに
バージョン番号が3.65535.16777216とかになってもいいじゃん
Re:バージョン上げまくるからだよ (スコア:1)
rv:の後ろ数値部分を抜き出して比較ってことをやらないからだよ。
手抜きするところはそこじゃ無いっていうね。
Re: (スコア:0)
それもそうだけど、それより「rv:の後ろに数字があればIE扱い」って方が問題あると思うな。
ブラウザ間はもちろん同じブラウザでもバージョンによって表記が違うわ将来どんな書式になるか未知数だわで、UAの文字列で判定って方法自体がもう破綻してるよ。
Re:バージョン上げまくるからだよ (スコア:2, 興味深い)
rv:の後ろに数字があるのは本来Firefoxが先に導入した形式で、IE11がIE扱いされるのを避けるためにFirefoxそっくりの形式のUAを導入したら、今度はFirefoxがIE扱いされる始末。
バージョン10問題とか、macOSのバージョン11問題とか、バージョン100問題とか、UA文字列はこういう闇を至るところに抱えていてほとんど変更不可能になってる。ChromeがClient Hintsを導入した理由の一つ。
Re: (スコア:0)
何がアレって、Webシステムがバグってるのが確定ではあるけど、
SafariやChromeと違ってFirefoxだとシステム改修せずに放置プレイされそうな所が……
Re: (スコア:0)
放置プレイで済めばいいけど、これを機にサポートをやめるという流れもあり得る。
Re: (スコア:0)
とっくにサポートしていない(動作確認していない)のが表面化しただけだと思う。サポートしないならしないでそんな風に放置してればいいのにIE11をUA判定の「サポート」対象に加えた挙げ句この始末。
Re: (スコア:0)
SafariやChromeはUser-Agentにrv:を含んでいないから、明らかにSafariやChrome(と本来弾く対象であるIE11)でしか動作確認していない。
Re: (スコア:0)
まだナイトリービルドだから、これから対応だったかもしれない
Re: (スコア:0)
Chromeが110になったら顕在化して修正される、かも。
Re: (スコア:0)
バージョン番号が3.65535.16777216とかになってもいいじゃん
3.14159265359...と桁を増やしていくのはどうだろう
Re:バージョン上げまくるからだよ (スコア:2)
TeXか!
Re:バージョン上げまくるからだよ (スコア:1)
そういやTeXのバージョンって、2023年現在、いったいいくつになっているんだろうと気になってしまった。
以外と円周率進んでなかった。
Re: (スコア:0)
Knuthさん現在84際、今も開発を続けてるんだろうか?
Re:バージョン上げまくるからだよ (スコア:1)
TAOCPは全7巻、12章の計画で現在4巻、7章の途中まで来ていて絶賛刊行中らしい。
https://eng-blog.iij.ad.jp/archives/16094 [iij.ad.jp]
生きてるうちに完結できるんだろうか(無理そう)。
Re: (スコア:0)
TeXはversionπで完結し、死後は変更不可になるんだっけ?誰が引き継ぐとか決まってたっけ?
Re:バージョン上げまくるからだよ (スコア:2)
πが有理数になる宇宙に行けばバグがない完成版のTeXが手に入るのですね。
Re:バージョン上げまくるからだよ (スコア:1)
本体バージョンπに対して、追加パッチが出回るだけじゃないですかね。
ていうか、今でもKnuth御大だけが保守するTeX本体に対して、tangleした先のWeb2Cでパッチを当てる感じになってますし、その体制が続くだけかと。
本体の改変を許さないスタイルといえば、
DJBのqmailなどの機能追加に対応しにくいぐだぐだからの衰退っぷりを見るに
そういう方式でいけるのかはちょっと心配になりますけど、
バグに懸賞金をかけるようなソフトだし、バグフィックスだけで機能追加しなければ大丈夫だと信じたい。
Re: (スコア:0)
バージョンπに続くバージョンπ-02
読みはパイオツ
Re:バージョン上げまくるからだよ (スコア:1)
nuget辺りがバージョン文字列に64桁の制限があったような。Rubyは255文字?
64とか256回しかバージョンアップできないのは、普通まずかろう…。
Re:バージョン上げまくるからだよ (スコア:1)
3
3.1
3.11 3.12 3.13 3.14
3.141
3.1411 3.1412 3.1413 3.1414 3.1415
…
とやってけば、64×5とか256×5回はいけるかと
Re: (スコア:0)
3.1411 3.1412 3.1413 3.1414 3.1415
…
で、次は
3.14159265358979.....
となるのですね
Re: (スコア:0)
Windowsのバージョン番号の各パートは、一部APIの都合上16ビット以内という制約がある。ビルド番号けっこう景気よく上げてるけどそのうち足りなくなるのでは? と心配になってくる
Re: (スコア:0)
きっとどっかで0に戻すのでしょう。
ビルド番号のロールオーバ未考慮とか有りませんように……
Re: (スコア:0)
既に一回、WindowssServer2008SP2でやってますな
Re: (スコア:0)
Quantumが実質4相当だろうから4.x.xだな
Re: (スコア:0)
違うだろ、悪いのは米BestBuy。
でなければ、苛めの被害者が悪い事と同様の論理になる。
Re: (スコア:0)
ずっとFirefox 3.x.xのままにしてればこんな事もなかったのに
バージョン番号が3.65535.16777216とかになってもいいじゃん
Firefoxは被害者だろjk
Re: (スコア:0)
User-Agentが出鱈目なことになってるのは、Mozillaに罪がないとは思えない(MSが一番悪か?)。
BestBuyが何かブラウザ判定のライブラリを使ってるとしたら、他でも同じ問題が出るんじゃなかろうか。
Premature optimization is the root of all evil. (スコア:0)
「プログラミングでは、時を得ない最適化は諸悪の根源なのであります。 [wikipedia.org]」
- Donald Knuth、1974年、チューリング賞受賞講演より -
Re: (スコア:0)
「時を得ない」ってなんだ? と思ってリンク先を見たら「時宜を得ない」か。「宜」が読めなかったからって勝手に略すな。AI機械翻訳じゃあるまいし。ていうかそんな小難しい言い回しをわざわざ使わなくても「はやまった」でいいじゃん。
Re: (スコア:0)
こちらはWikipediaを編集するI/Fではありません。
Re: (スコア:0)
言い換えはもとの言葉の意味を知ってないとできないから。
雑に一文字削ってしまう人にその要求は荷が重い。
Re: (スコア:0)
烈士「凡得時者昌、失時者亡。」(時を得る者は昌え、時を失う者は亡ぶ [kotobank.jp])
…時宜を得る、の言い方が目立つけど、時を得る、も実は使えることを、#4389038と#4389059は知らなかったようだ。
Re: (スコア:0)
- Donald Knuth、1974年、チューリング賞受賞講演より -
と出典明記してあるから中途半端な改変するなよな、って話では?
文脈的に使える使えないを問題にしているんじゃ無いと思う。
Re: (スコア:0)
prenominallyなら「時宜を得る」だが、prematureなら「早まった」だからな。
「時宜を得る」も「時を得る」も和訳としてダメダメって主張なら賛成。
”和訳”としての引用元はリンク先の[wikipedia.org]であり、”和訳を改変せずに”、Wikipediaどおりに”時を~”のままとし、
”タイトルに書いた「Premature ~」の出典”について「- Donald Knuth、1974年、チューリング賞受賞講演より -」と示した、
両方の記述を著作権的に配慮した苦労を分かってもらいたい。
by #4389017
Re: (スコア:0)
#4389017はもうちょっと英語を勉強した方がいい。
prenominallyは、形容詞の、だから、辞書そのものを読み間違えている疑いがある。
時宜を得る、は、timelyとかwell-timedとかだろうよ。prematureとは大分違うことは確かだが。
もしかすると、Wikipediaは「時を"経"ない」と書きたかったのかもしれない。
余談だが、
別スレッドでTeXのバージョン番号が話題になっているが、
TeXと、同様のバージョン表記を用いたMETAFONTの開発を進めたのが、
Donald E. Knuthである。
Re: (スコア:0)
wikipedia の当該箇所に『文芸的プログラミング』p.30って書いてあるんだが、
『文芸的プログラミング』の翻訳者に「もうちょっと英語を勉強したほうがいい」と言いたいの?
Re:Premature optimization is the root of all evil. (スコア:1)
「もっと日本語を勉強したほうがいい」の間違いだと思う。
Re:Premature optimization is the root of all evil. (スコア:1)
「文芸的プログラミング」(原著は"Literature Programming"(Knuth, 1984))を持ってないので、正確な処は知りませんが、その更に前の出版物“Computer Programming as an Art” を見れば、"premature programming云々"の直前の文に、そもそも"時宜を得ずに(in the wrong places and at the wrong times)"まんまの語句を使っているので、"premature"の訳に「時宜を得ない」を持ちいると、同じ日本語を連続して繰り返すことになってしまい、訳文として宜しくないことは確かです。
もし、2文まとめて意訳した、とか主張し始めるなら、訳文でも引用でもなくなり、無駄な問答ということになりますが、Wikiquoteを見ると、"Literature programming"方で、当該文を載せているような記述がないので、「文芸的プログラミング」の日本語版の訳註として、2文をまとめた意訳が掲載され、日本語版Wikipedia記述者が勘違いした可能性もあります。
Wikiquote(リンク後述)を参照すると、“Computer Programming as an Art” (Knuth, 1974)の該当部分は、次のとおりです。この方の著作では"The real problem is"という言い回しもよく見かけますね…。
"The real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at the wrong times; premature optimization is the root of all evil (or at least most of it) in programming."
拙く自分なりに訳すと、前半は「本当の問題は、誤った場所・誤った時期に(=時宜を得ずに)、効率について頭を悩ますことに、プログラマが余りにも多くの時間を費やしていることである; 早期に最適化を行うことは〜」でしょうか。このセミコロンは「つまり」を表すので、尚のこと、和訳での区別は重要と思われます。
Knuthさんは、別の書籍“Structured Programming with go to Statements” (Knuth, 1974)でも、premature optimization is the root of all evil."を使ってますが、その部分はこんな感じです。不見識なので、そちらの邦訳は知りません。
"We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%."
※参考
https://en.wikiquote.org/wiki/Donald_Knuth [wikiquote.org]
Re: (スコア:0)
最近のお子様は、投げ捨てのヤジを飛ばすことだけで、日本語を書ける気になっているが、まあ、国会答弁を見ていると、仕方ないのかもね。
Re: (スコア:0)
英語っていうよりプログラミング界の定訳だと思ってたのだけど
「早すぎる最適化」
じゃなかろうか。
こんなの証明にも何にもならないけど
"早すぎる最適化" 3,010件
"時宜を得ない最適化" 1件
"時を得ない最適化" 488件
Wikipedia での表現が引用で広がりつつありそうな気が
Re: (スコア:0)
言うほど?自分は違和感なかったけど。
わが時を得たり!なんてラノベか翻訳戦記小説にも出てきそうな手垢の付いた表現だし、
ちょっと洒落た訳にしてみたくらいじゃないかなあ。
辞書に無かったとしても、この場合の時はすなわち時宜のこと、というだけでしょ?
漢字を機や秋で(場合により季や節にも)置き換えられるトキ。
Re: (スコア:0)
Pre-(前に)、mature(成熟した)、なので、そもそも元の英文が、ただの「TPO」を言いたいんじゃないことに気付く必要がある。
くだけて言うなら、「仕上がってもいないまま(完成してもいないのに)最適化に取り掛かろうとすることが諸悪の根源だ」て感じのニュアンスなん…。
あと、この発言は、リソースの制約、マシンタイムや記憶容量がキツい時代、アセンブリ言語で書いたり、Go To文がある時代を背景とした発言であり、
特に今の時代を指して何か言っている話でもない。
Re:Premature optimization is the root of all evil. (スコア:1)
BestBuyが「rv: 11.0」で判定していればいいだけだったのに、
判定文字を1文字けちって「rv: 11」で判定したことと、
貴方の言う”見捨てられる”との間に、どんな関係があるのでしょう。
あなたの主張は、あなたの頭の中で最適化?された様子ですが、
まるで話が通じません。
これが、正に、時を得ない最適化が諸悪の根源である、ということです。
Re: (スコア:0)
>「rv: 11.0」で判定していればいいだけだったのに、
>判定文字を1文字けちって「rv: 11」で判定した
「rv: 11.0」→「rv: 11」なら2文字けちってないか?
Re: (スコア:0)
パワハラで部下を殺してそうなストーカーさんがマウントを取りに来たようです。
各社のブラウザのUAにrv: 11を入れてもらおう (スコア:0)
不適切なコーディングを正すためなら参加してくれそう
踏んだり蹴ったり (スコア:0)
それでなくともFirefoxを弾く悪質なサイトが増えてきてると言うのに…。
うーんと (スコア:0)
IE11判定で、まず Trident を拾っていないということ?