アカウント名:
パスワード:
COCOA v1.4.0 が起動しない · Issue #517 · cocoa-mhlw/cocoa [github.com]
に書かれている通りで、まず半年以上前に
_preferencesService.SetValue(preferenceKey, new DateTime().ToString());
とかいうクソコードが入っていたが原因その1。JavaやJavaScriptと勘違いしたのか現在時刻を取得するつもりでnew DateTimeを呼んでいるように見えるけど、C#では時刻の最小値が初期値に設定されるので、古いバージョンから使い続けている利用者は利用規約の最終同意日時が「1/1/0001 12:00:00 AM」になっていた。そもそも引数の中でnew DateTimeする時点で有り得ないし、ド素人がプログラムしていたと思われる。
で、そうとも知らないkeijiがスラドでも取り上げられた日付フォーマットの問題(接触確認アプリCOCOA、地域ごとの日付フォーマットの違いで利用日数が狂う新たな不具合 [opensource.srad.jp])を修正するためにv1.4.0でJST(UTC+9)からUTCに直すマイグレ処理を追加したのが原因その2で、「1/1/0001 12:00:00 AM」からマイナス9時間しようとしてエラーを吐いて無事死亡。
利用規約の最終同意日時がおかしいことに誰も気付かなかったのは、利用規約の更新があっても再確認を行わない [github.com]という仕様をなぜか放置していたのと、当時の担当者がデータ仕様をドキュメント化していなかったせいで、一カ月前にkeijiがデータ仕様をドキュメント化した際 [github.com]にも見落としてしまった。
2つのマイグレ処理が絡んだ問題なので表面的なテストやストア審査では見抜けなかったのは同情の余地があるけど、コーディング能力や開発速度が低すぎるし、大金積んだ国策アプリの品質じゃない。
大金積んだ国策アプリの品質じゃない。
大筋合っていますが結びだけがズレていますいくらかけようとも末端の技術者に行くお金は毛ほども変わらない
そもそもの目的が丁度いいネタが有ったからえらいひとで美味しくチュウチュウしちゃおうぜなのだから品質自体を期待しちゃいけない
# 国策とはそういうものなのよねぇ
品質を期待しちゃいけないどころか、品質を悪くすることでその調査と修正に追加予算を要求してそうだ。
今回のバグも修正が必要になったからって追加予算が要求されんじゃないの。
COCOAは有志開発アプリじゃありませんでしたっけ?(すっとぼけ)
マジレスするとCovid-19Radarは有志開発(という建前)だけど、今回問題のコードは完全に厚労省/デジ庁管轄下のCOCOAになってから追加されたコードだからねぇ
githubでオープンになっていて、誰でもチェックでき、誰でも指摘できるコードのハズなのに、誰も指摘しない時点で日本国のプログラマー達の能力も知れているかと…。
まあオープンだから事後的な原因の特定は早かったよね。事前に張り付いてコードチェックするのはちょっと無理ゲ。
Xamarinの開発者なんてレア過ぎて米国でも無理だよ。そうやって日本ダメって結論から変な思考する変な癖はやめた方が良い
Xamarin (C#)で開発してるならWIN版、もそのまま作れないの? 宗教上の理由でガラケー男
COCOAの持つ機能のほとんどはGoogleとAppleがスマートフォン向けに提供しているEN APIに依存しているので、それがないWindowsではほとんどの機能が動作しない。
えーん😭
そのMSのツールを選んだのが最初の勇士なんだけどその人がMSの社員で自社ツールで作ってみたに近いってことか
それを利用して正式採用したんだから、その後の問題は厚労省なんだろうけど最初の頃はMSにもお金が流れるようになっていたからなぁ
もういっそ最初から作り直した方が良いとも思うけど既に動いているものを作り直す意味があるのかそれより問題は優秀な技術者がやりたがらないというのが問題何かあったら叩かれるの決定だし、どんなに頑張っても不具合が全くないなんて有り得ないその結果出来の悪いアプリを使い続けることに、アホな自称評論家がテレビで毎回文句を言うのを繰り返すことになると
勇士
蛮勇だったってことか
UNIX開発者、現場ネコ「「そのとおりだ(にゃ)」」
それが成り立つのは十分な数の眼がある時だけですね。過去のIssue見たらわかる通り、今はほぼkeijiひとりで回してるので。以前は日時周りの挙動怪しいよねって解ってる人もいたんだけど、keijiの態度に皆呆れて去っていった [srad.jp]から。
これもXamarinを採用した為の弊害でしょうねクロスプラットフォームといいつつ端末間の差異も吸収出来ず、さらに.NET依存の問題も絡んでカオス状態。Xamarin開発に固執した為に開発者を除外する環境が生まれ開発の質が上がらない。MSの思惑としてはXamarin開発の実績を示したい筈なんだろうけど、どんどん悪評が高まっているだけ。こんなんじゃ「Xamarin?COCOAでバグ出しまくってる奴?」と企業採用すらされないよ。Android Studio / Xcodeで分けて開発した方が結果的に安価で質の高いアプリを提供できる筈
HAHAHA! このレベルの開発体制なら、Android Studio / Xcodeに分けた開発したらバグが2倍になるだけに決まってるじゃないですか(涙
10倍でしょうなぁ…#ネタにマジレス
Java「...」
「MSの思惑」ってのはなあ。もうちょっと言葉選んでもよくね?たまたまMS社員ニキがXamarinで作ってたのを、お国が持ってっただけでお国がCOCOAを作ろうとした時にMSが「じゃあぜひウチのXamarinを」とか言い寄ったわけじゃねーべ
あとXcodeはどうにも辛いし、どちらかと言えばXamarinの方がまだマシじゃね?俺はもうXamarinで慣れちゃったまあflutterの方が人気なんだろうけど
たまたまMS社員ニキがXamarinで作ってたのを、お国が持ってっただけでお国がCOCOAを作ろうとした時にMSが「じゃあぜひウチのXamarinを」とか言い寄ったわけじゃねーべ
なんでMSだったの?って答えは、新型コロナウイルス感染者等情報把握・管理支援システム(HER-SYS)をMSが受託したから。その延長で「いけそ?」って打診を受けて、Xamarinのプロジェクトに白羽の矢が立ったんだよ。Azureの政府実績がメインだったかもしれないし、Xamarinの実績まで乗せようとした思惑があったのかは不明。そういった意味でMSの思惑って十分にボカしてMSの裏側を書かないでおこうとしたけど、聞かれたのでw
Xamarinや.NETの問題(開発者が少ないというのも含め)というより技術者のレベルの問題な気が…今回の原因だと回避できないけど、そもそもタイムゾーン扱うのに何でDateTimeOffset使ってないのか。DateTimeOffsetにするだけでもタイムゾーン周りの彼是はだいぶ楽になるぞ。
JavaやJavaScriptと勘違いしたのか現在時刻を取得するつもりでnew DateTimeを呼んでいるように見えるけど
旧バージョンの利用規約同意しか取れてないのに、現バージョンの利用規約同意済みとみなされかねない現在時刻をセットしちゃだめでしょ・・・
「OOPなら同じでしょ!宜しく!」とか言って押し付けられたJavaも知らないJavaしか知らないプログラマーでしょう。政府関係はJava至上主義状態だし。あの辺りではよくある事だし。
よくわからないから教えてほしいのだけれども、「new DateTime()」で初期化された項目はユーザーの同意日時でこれは、利用規約の発行日と比較して、現規約同意済みか否かの判断に使用するのだけど、そんな項目に現在日時なんて設定するのは、ユーザー同意書にユーザーに無断でサインする行為では?君やJavaしか知らない人はどういった考えなの?
それは元のIssueでも#4159263 [srad.jp]でも言われている通りではあるんだけど、それ以前の問題として、利用規約の更新があっても再確認を行わない(つまりこの日時は現状どこにも利用されていない)雑な実装なので、ぶっちゃけどうでもいいんだよね。いや、よくないけど。将来的にそうした機能を実装するとして、現在日時だろうが「1/1/0001 12:00:00 AM」だろうが、どちらも本当の同意日時ではないので、クソとクソを比較してどっちがクソかみたいな議論をしてもあまり意味がない。
元記事にiOSのバージョン乗ってるけど、関係なかったんですね。何度もOSアップデートのたびに動かなくなるアプリに苦しめられた身としては、バージョンを元に戻す機能とか、新バージョンと旧バージョンを切り替えて動かせる機能とかを実装してほしいなあ…
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
日々是ハック也 -- あるハードコアバイナリアン
事後対応だけは満点 (スコア:3, 興味深い)
COCOA v1.4.0 が起動しない · Issue #517 · cocoa-mhlw/cocoa [github.com]
に書かれている通りで、まず半年以上前に
とかいうクソコードが入っていたが原因その1。JavaやJavaScriptと勘違いしたのか現在時刻を取得するつもりでnew DateTimeを呼んでいるように見えるけど、C#では時刻の最小値が初期値に設定されるので、古いバージョンから使い続けている利用者は利用規約の最終同意日時が「1/1/0001 12:00:00 AM」になっていた。そもそも引数の中でnew DateTimeする時点で有り得ないし、ド素人がプログラムしていたと思われる。
で、そうとも知らないkeijiがスラドでも取り上げられた日付フォーマットの問題(接触確認アプリCOCOA、地域ごとの日付フォーマットの違いで利用日数が狂う新たな不具合 [opensource.srad.jp])を修正するためにv1.4.0でJST(UTC+9)からUTCに直すマイグレ処理を追加したのが原因その2で、「1/1/0001 12:00:00 AM」からマイナス9時間しようとしてエラーを吐いて無事死亡。
利用規約の最終同意日時がおかしいことに誰も気付かなかったのは、利用規約の更新があっても再確認を行わない [github.com]という仕様をなぜか放置していたのと、当時の担当者がデータ仕様をドキュメント化していなかったせいで、一カ月前にkeijiがデータ仕様をドキュメント化した際 [github.com]にも見落としてしまった。
2つのマイグレ処理が絡んだ問題なので表面的なテストやストア審査では見抜けなかったのは同情の余地があるけど、コーディング能力や開発速度が低すぎるし、大金積んだ国策アプリの品質じゃない。
Re: (スコア:0)
大金積んだ国策アプリの品質じゃない。
大筋合っていますが結びだけがズレています
いくらかけようとも末端の技術者に行くお金は毛ほども変わらない
そもそもの目的が丁度いいネタが有ったから
えらいひとで美味しくチュウチュウしちゃおうぜ
なのだから品質自体を期待しちゃいけない
# 国策とはそういうものなのよねぇ
Re: (スコア:0)
品質を期待しちゃいけないどころか、品質を悪くすることでその調査と修正に追加予算を要求してそうだ。
今回のバグも修正が必要になったからって追加予算が要求されんじゃないの。
Re: (スコア:0)
COCOAは有志開発アプリじゃありませんでしたっけ?(すっとぼけ)
Re: (スコア:0)
マジレスするとCovid-19Radarは有志開発(という建前)だけど、今回問題のコードは完全に厚労省/デジ庁管轄下のCOCOAになってから追加されたコードだからねぇ
Re: (スコア:0)
githubでオープンになっていて、誰でもチェックでき、誰でも指摘できるコードのハズなのに、
誰も指摘しない時点で日本国のプログラマー達の能力も知れているかと…。
Re: (スコア:0)
まあオープンだから事後的な原因の特定は早かったよね。
事前に張り付いてコードチェックするのはちょっと無理ゲ。
Re: (スコア:0)
Xamarinの開発者なんてレア過ぎて米国でも無理だよ。
そうやって日本ダメって結論から変な思考する変な癖はやめた方が良い
Re: (スコア:0)
Xamarin (C#)で開発してるならWIN版、もそのまま作れないの? 宗教上の理由でガラケー男
Re: (スコア:0)
COCOAの持つ機能のほとんどはGoogleとAppleがスマートフォン向けに提供しているEN APIに依存しているので、それがないWindowsではほとんどの機能が動作しない。
Re:事後対応だけは満点 (スコア:1)
えーん😭
Re: (スコア:0)
そのMSのツールを選んだのが最初の勇士なんだけど
その人がMSの社員で自社ツールで作ってみたに近いってことか
それを利用して正式採用したんだから、その後の問題は厚労省なんだろうけど
最初の頃はMSにもお金が流れるようになっていたからなぁ
もういっそ最初から作り直した方が良いとも思うけど
既に動いているものを作り直す意味があるのか
それより問題は優秀な技術者がやりたがらないというのが問題
何かあったら叩かれるの決定だし、どんなに頑張っても不具合が全くないなんて有り得ない
その結果出来の悪いアプリを使い続けることに、アホな自称評論家がテレビで毎回文句を言うのを繰り返すことになると
Re:事後対応だけは満点 (スコア:1)
蛮勇だったってことか
Re: (スコア:0)
githubでオープンになっていて、誰でもチェックでき、誰でも指摘できるコードのハズなのに、
誰も指摘しない時点で日本国のプログラマー達の能力も知れているかと…。
UNIX開発者、現場ネコ「「そのとおりだ(にゃ)」」
Re: (スコア:0)
それが成り立つのは十分な数の眼がある時だけですね。
過去のIssue見たらわかる通り、今はほぼkeijiひとりで回してるので。
以前は日時周りの挙動怪しいよねって解ってる人もいたんだけど、keijiの態度に皆呆れて去っていった [srad.jp]から。
Re: (スコア:0)
これもXamarinを採用した為の弊害でしょうね
クロスプラットフォームといいつつ端末間の差異も吸収出来ず、さらに.NET依存の問題も絡んでカオス状態。
Xamarin開発に固執した為に開発者を除外する環境が生まれ開発の質が上がらない。
MSの思惑としてはXamarin開発の実績を示したい筈なんだろうけど、どんどん悪評が高まっているだけ。
こんなんじゃ「Xamarin?COCOAでバグ出しまくってる奴?」と企業採用すらされないよ。
Android Studio / Xcodeで分けて開発した方が結果的に安価で質の高いアプリを提供できる筈
Re:事後対応だけは満点 (スコア:1)
HAHAHA! このレベルの開発体制なら、Android Studio / Xcodeに分けた開発したらバグが2倍になるだけに決まってるじゃないですか(涙
Re: (スコア:0)
10倍でしょうなぁ…
#ネタにマジレス
Re: (スコア:0)
Java「...」
Re: (スコア:0)
「MSの思惑」ってのはなあ。もうちょっと言葉選んでもよくね?
たまたまMS社員ニキがXamarinで作ってたのを、お国が持ってっただけで
お国がCOCOAを作ろうとした時にMSが「じゃあぜひウチのXamarinを」とか言い寄ったわけじゃねーべ
あとXcodeはどうにも辛いし、どちらかと言えばXamarinの方がまだマシじゃね?
俺はもうXamarinで慣れちゃった
まあflutterの方が人気なんだろうけど
Re: (スコア:0)
たまたまMS社員ニキがXamarinで作ってたのを、お国が持ってっただけで
お国がCOCOAを作ろうとした時にMSが「じゃあぜひウチのXamarinを」とか言い寄ったわけじゃねーべ
なんでMSだったの?って答えは、新型コロナウイルス感染者等情報把握・管理支援システム(HER-SYS)をMSが受託したから。
その延長で「いけそ?」って打診を受けて、Xamarinのプロジェクトに白羽の矢が立ったんだよ。
Azureの政府実績がメインだったかもしれないし、Xamarinの実績まで乗せようとした思惑があったのかは不明。
そういった意味でMSの思惑って十分にボカしてMSの裏側を書かないでおこうとしたけど、聞かれたのでw
Re: (スコア:0)
Xamarinや.NETの問題(開発者が少ないというのも含め)というより技術者のレベルの問題な気が…
今回の原因だと回避できないけど、そもそもタイムゾーン扱うのに何でDateTimeOffset使ってないのか。DateTimeOffsetにするだけでもタイムゾーン周りの彼是はだいぶ楽になるぞ。
Re: (スコア:0)
JavaやJavaScriptと勘違いしたのか現在時刻を取得するつもりでnew DateTimeを呼んでいるように見えるけど
旧バージョンの利用規約同意しか取れてないのに、
現バージョンの利用規約同意済みとみなされかねない現在時刻をセットしちゃだめでしょ・・・
Re: (スコア:0)
「OOPなら同じでしょ!宜しく!」
とか言って押し付けられた
Javaも知らないJavaしか知らないプログラマーでしょう。政府関係はJava至上主義状態だし。
あの辺りではよくある事だし。
Re: (スコア:0)
よくわからないから教えてほしいのだけれども、
「new DateTime()」で初期化された項目はユーザーの同意日時で
これは、利用規約の発行日と比較して、現規約同意済みか否かの判断に使用するのだけど、
そんな項目に現在日時なんて設定するのは、ユーザー同意書にユーザーに無断でサインする行為では?
君やJavaしか知らない人はどういった考えなの?
Re: (スコア:0)
それは元のIssueでも#4159263 [srad.jp]でも言われている通りではあるんだけど、それ以前の問題として、利用規約の更新があっても再確認を行わない(つまりこの日時は現状どこにも利用されていない)雑な実装なので、ぶっちゃけどうでもいいんだよね。いや、よくないけど。
将来的にそうした機能を実装するとして、現在日時だろうが「1/1/0001 12:00:00 AM」だろうが、どちらも本当の同意日時ではないので、クソとクソを比較してどっちがクソかみたいな議論をしてもあまり意味がない。
Re: (スコア:0)
元記事にiOSのバージョン乗ってるけど、関係なかったんですね。何度もOSアップデートのたびに動かなくなるアプリに苦しめられた身としては、バージョンを元に戻す機能とか、新バージョンと旧バージョンを切り替えて動かせる機能とかを実装してほしいなあ…