#026【明日使えるムダ知識】バグ雑学! #026【明日使えるムダ知識】バグ雑学!

2022/3/30 ·

  • ひまじんプログラマーですいらっしゃいませいらっしゃいませはいというわけでこのラジオはひまじんの中級エンジニアが送る駆け出しエンジニアをキャリアアップさせるラジオになってます頑張るぞはいはいというわけで自己紹介いきましょうかはい僕中級エンジニアのがいちですはい同じくそれぐらいののりです初級エンジニアのじゅんぺいですはいというわけで今日はですねはいバグの雑学です出たバグ雑学甘髪



  • アマガンマグザズバグアマガンバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバグバ



  • 人間からするとねコンピューターで初めて生まれたやつで言うと何年か忘れたなこれ何年だろう何年か忘れた1800800いくの?終わりませんちょっと前にですねグレースホッパーさんという方がハーバードマーク2というプロジェクトで働いてた時にバグとして本物の虫を発見したっていう



  • 本物の虫。まずバグって日本語で昆虫って意味なんですよね。はいはいはい。バグズライフ覚えてます?覚えてます覚えてます。昆虫。本物の。本物の。はいはい。機械のリレー、これは回路のつなぎ目部分なのかな。多分。間違えたらごめんなさい。のところにガが挟まってたのを発見して機械がうまく動かなかった。おー。はいはいはい。バグやん。バグですね。そう。



  • これが語源なんだって思うじゃん違うんですよ違うんですか?違うんですか?違うん?違うんですよえ、あの話違うの?はいマジかバグの語源はですねそれ以前からバグはバグと言われてるんですよへー元々そのバグっていうものには虫の意味の他にも動詞として人を悩ませるイライラさせるっていう意味がへーそうなんだはいっていうので元々そのエジソンとかも



  • 1878年とかですね機械の不具合のことをバグと呼んでるんですけどその後に誕生したコンピューターの初のバグがたまたま虫だったマジで?奇跡ですすごっじゃああれスタートではなかった?そうなんですよ



  • バグっていう面白い話これまずバグ雑学バグ雑学第一ですねこれはすごい面白いですねすごいですよもうてっきり僕も語源そこだと思ってたんですけど本当だよねちょっと調べたら違いましたマジかはいというわけで今のはバグの雑学なんですが次にですねマニアックバグを紹介しようと思います出たマニアックバグマニアックバグバグはバグじゃないんですかバグの中にもいろいろあるじゃないですかあーはい



  • 名前つけれる…まぁ何なのかわかんないですけどそのバグの中でも名前がついているバグが何個かあるのでそれを紹介しますね1つ目これは僕クリーンコードを読んでる時に出会ったバグなんですけどハイゼンバグっていうバグですねハイゼンバグご飯を渡すじゃないです日本語っぽいですねハイゼンさん



  • ハイゼンベルクさんこれは量子力学の不確定性原理っていうものを提唱したハイゼンベルクさんをもじったバグでしてまず不確定性原理っていうのが



  • 観測すること自体が対象に作用を与えるため正確な観測ができないことを不確定性原理って言うんですよ例えば部屋の中の温度を正確に知りたいって思ったらでもリモートの温度計を置くと温度計の発する熱量によって質問変わっちゃうわみたいなもしあったら機械を置いたことによって作用しちゃうわっていうのは不確定性原理



  • なるほどねこれをコンピューターのバグで起きるのが配膳バグって言いますなにそれってなるじゃないですか具体的にどういうことみたいなそうだねもうちょい欲しいですね具体的に言うとですね要するにそれを調査しようとすると変貌したり消えたりするバグってことなんですけど例えばリリース版でバグが発生しました大変だ調査しなきゃよしデバッグ版で動作させよう



  • デバッグ版のせいで再現しないみたいなデバッグモードだとフレームワークとかによってプログラム実行時にメモリがクリーンアップされたりとか裏側の動作が変わったりすることがたまにあるんですけどソニーによって再現しないこととかたまにあるんですようーん



  • それに出会った時はドヤ顔で「うわっ、ハイゼンバグやこれ」と。 あーなるほどね。そこでもなんか全然解決してないけどかっこいい感じだった。そうそうそうそう。「うわっ、ハイゼンバグ来ちゃった」みたいな。 来ちゃったかハイゼンバグ。マウント取れるんすよ。 あの、解決してないですよね。おまけにバグ出してるから。 そうそうそう。とか、まあこういうのはね、ハイゼンバグっていうらしいです。



  • かっこいい不確定性原理ですねなるほどハイゼンベルグさんが作ったわけじゃないんだ違います文字っているだけですあと仮っているだけです次一番かっこいいです僕お気に入りですアリストテレスバグすら入ってないまんまアリストテレスです人やんこれ何かというと一番出会うんですけどバグのないプログラムが不正な出力を出すことです



  • どういうことってなるじゃないですか哲学の話してる?いいえ当初のプログラムって前提条件と事後条件が決まってるじゃないですかこういう入力してくれたら正しく返すよこういう入力の想定の外の入力がされてきた時不正な入力の時って不正な出力出すじゃないですかこれが単体テストとかで引っ掛けられなくて本番で動かした時にそんな不正な入力あったんだみたいなのがあって



  • 不正な動きして止まっちゃった時想定してたやつの資格みたいなそうですこれをアリストテレスと言いますバグっていう名前もつけるのやめたんだなあとなんでこれアリストテレスなのこれこれなんでだっけなちょっと待ってくださいねこれなんでアリストテレスって言うかっていうとアリストテレスってそもそも古代ギリシャの哲学者なんかあれじゃないですか地動説みたいなそこら辺もアリストテレスじゃないですか



  • ガリレオとかじゃなかったっけ全然違うかもしれないですでもなんか正しいこと言ってたのに当時の人々はそこの考えに気づかずいや絶対違うよって言ってたんですけど後々認められたみたいな説がそれで最近キリスト教が謝罪したやつそうなんですか違うそれウィキペディアには色々な矛盾が発覚するまで多くの人に正しいと信じられていたからなるほどねもともと



  • 多くの人が間違えたことを信じてるけどそれが後から覆るっていうのがそれの代表的な出来事としてアリストテレスさっきの血同性ってなのかなさっきのやつなのかなで、だからこれの仕様でイケてるだろって思っても実際は違くてで、後から思い返したらいやそうやん



  • ってなるやつをもうアリストテレスってことですよね違ったら後で教えてくださいなるほどねじゃあこれはあれだ普通に開発してていざ変な入力された時にバグが見つかったらアリストテレスいやーすいません実はアリストテレス見つかりましてしばかれる普通に浸透してなさすぎてしばかれるこれ修正しなきゃいけないです緊急ではいあの



  • GitHubの一周にアリストテレスっていうタグつけておきますふざけてんのかこれ知らんかったらバグバグアリストテレスこういうバグの名前あるんですよって説明してもうるせえよこれ僕推しのアリストテレスでした



  • 3つ目月相バグ月相バグ月の相って書きますね漢字です漢字です月の相月の満ち欠けとか年収期でいろいろあるよねみたいなのがあるんですけどこれはですねコンピューターの動作に影響するとは考えられないものが原因のバグですどういうことって思うじゃないですかあるじゃないですかウルードシとかウルードシねウルビョとかウルビョねそれだとバグんですよ



  • 日数計算しようとした時に、2ヶ月後だから、2月は28日だからって言って、計算何も考えないでやっちゃうと、ウルドシの1日分の時間抜けてたわみたいな。そのせいで融合期限1日想定せず増えちゃったりとか。なるほどね。あるんですけど、普通はないんですけど、ライブラリ使ってたら。



  • 日付系だけですか?他にもいろいろあるんですが説明しづらかったので割愛しましたわかりましたとりあえずコンピューターの問題じゃないやつねそうそう外部的なやつ主にプログラマーが気にすべきはそういうウルービーウルード系なのかなと思ったりしますけどね



  • オリンピックが2027年、2027年に開催されたとかそうそうそうあとは2000年問題とかですね下2桁、3桁見とけばいいやろと思ってたら1000年に一度のここ変わるんかいが起きるとかね2036年、8年問題は?何ですかそれタイムスタンプが対応できなくなる時Linuxタイムが乾燥するんですか?そうなんだやべ、知らんかったそうそうそうそういうのとかねはい



  • ていうやつですはいはいラスト!ラスト!ラスト!シュレーディンバグシュレーディンバグシュレーディンシュレーディンちょっとなんか聞き覚えのある名前というかはいちょっとそれっぽいんですけどまあそれなそれですキャッチシュレーディンガーの猫の試行実験が由来でございますおーわからないはいシュレーディンガーの猫と呼ばれる漁師論の実験なんですけどはいうん説明しましょうかお願いします説明しようこいつはですね



  • どうまとめようかなどうまとめようかなキャッチーに書いてるやつのりさんいけますかまず量子論とは何か例えばこっちはAという可能性があってこっちはBという可能性がありますどっちの可能性を持っているものを箱に入れて見えない状態にしますその時その中身どうなっているかというとどっちの状態も入っている



  • どっちの状態も入っているAもBも入っているAやBでもあるとその時はまだどっちか確定していなくて箱を開けた瞬間に観測されたものが確定条件になりますよというのがシュレディンガーの猫間違えた量子論の



  • 話でシュレディンガーの猫っていうのはそのシュレディンガーがその量子論を反論するために始めたやつでもしこの箱の中に猫と毒ガスが50%の確率で出てくる装置を入れて観測するまでは死んでる猫と生きてる猫が重なってる状態で入ってるのかそんなのはありえないみたいなことを言ったのが確かシュレディンガーの猫ってやつですね完璧です白色白色ですすごい



  • 俺が説明したらだって猫を箱の中入れて その中の猫死んでるか生きてるかわかんなくないっていうその程度の説明に留まってた 危ねーっていうやつですだから箱を開けた瞬間に猫が死んでるか生きてるか確定するみたいなはいはいはいっていうのが要は量子論なんですけどその量子論をプログラミングに適用したのがシュレディンバグですやばいバグってる状態とバグってない状態が両方あってはい



  • 観測した瞬間にどっちか決まるとそうですどういうことかっていうと空想の話じゃないですよね空想の話じゃないですよねちょっとね空想の話なんじゃないかと思うこともあるんですけど僕はね特殊な状況下でバグが発覚しますとこのパターンはこのバグが起きるんだとそのプログラマーがデバッグの時にそのソースコードを読むといやこんな動くわけないやんって思うわけじゃないですかでもそれまでは動いてるわけじゃないですか



  • つまりそれは動いてるやつと動かないのが同時に存在してるとみな知ってるんですよなるほど動かんやんってなったらもうその瞬間それはバグになるんですよ確定したそう異臭が起きます絶対動くやんで確定したいこれシュレーディンバグって言うんですよそんなことあるって思うじゃないですか具体的な例をお教えしましょうお願いします具体例がですね例えばですよデータベース使ったウェブアプリですよ



  • あるレコード数を境に動かなくなる行為があるとしますほぉーはいで、利用するとどんどんレコード数が増えていくわけですけどはいはいはいあるレコード数を境に動かなくなると「あぁ動かんやん」ってなって調べた後に「動かんやん」ってなるわけじゃないですかはいはいはいでもそれを元々作った人っていけると思ってるんですよ確かにはいだから



  • 最初は普通に考えたらレコード増えたら動かんやんなんですけど作った人からするとそんなことないやんでも後から見たら絶対動かんやんはい!シュレディンバグですよく言えばシュレディンバグだけど悪く言えばうっかりさんだよねうっかりさんもよく言ってますよ



  • 普通に考えて次元爆弾を仕込んだやつですからね。確かに。だからレコード数でどうのっていう動作は実装はしないでくださいね。はい、わかりました。もしその名前見つけたら「いやお前シュレーディンバグやん」って言ってください。シュレーディンバグやってるよこれ。



  • はいという形でねあのちょっと wikipedia の得意なバグというページを参考にさせていただきながら変なバグ紹介しましたわーってかバグの種類聞いたの初めてかもしれないバグはバグだったわずっとちなみにこれは仕事の何の役にも立ちませんそうだね使ったことないし今後も使わんだろうと出会った時に代表してくださいそうだねアリストテレスアリストテレス使ってみたいですねアリストテレスがはい



  • というわけで、あ、YOUのせいでましたね一応用語解説のコーナーでしたはい、解説でしたというわけで、今回はバグということでこれでいいですか?バグはOKですOKですそれでは、皆さん変なバグ見つけたときは良いドヤ顔をしてくださいそしてこの無駄知識は明日使えるね使えるかな会社ではいそれではまた次回バイバイバイバイバイ



  • イマジンプラグラマーではメールを募集していますトークテーマ悩み要望などなど何でも募集中です宛先はそれではまた次回

0:00 15:44

#026【明日使えるムダ知識】バグ雑学! #026【明日使えるムダ知識】バグ雑学!