はてなキーワード: モジュールとは
技術的負債というワードはウォード・カニンガムが発祥と言われており、それこそ「スピード」と「コードの品質」のトレードオフのことを指している。スピードを得るために、借金をすることで、未来のコードの品質を改善するために利子を払い続ける必要があるという意味のメタファーである。
しかし、最近は技術的負債という言葉の誤用が広まり、それが定着化している。
例えば「モダンではない(古い)技術選定」「要求仕様の変化によって荒れたコード」を指して会話していることが多い。
誤用であるので会話の最中に自分とコンテキストが一致しないこともある。とはいえ時代の変化とともに言葉の扱われ方が変わるのは、事実であるので、これは65535歩譲って理解はできる。
しかし、問題なのは誤用で解釈しているエンジニア達がこぞって「技術的負債」という存在そのものを生み出しているエンジニアを糾弾していることだ。
残念ながら、彼らに「技術的負債はなぜ悪なのか」を聞くと「自分の開発体験が損なわれるから」という利己的な解像度でしか相手に伝えられない場合が多く、コミュニケーション能力も乏しいと感じることが多々ある。
開発体験が損なわれると「感じる」というのはわかるが、彼らはこれに対して数字で反論することはない。感情的なのだ。
彼らは自分自身を利口で地頭がよく、論理的に物事を捉えていると誤認しているが、これらの行動原理はただの感情ベースであり、彼らもまた感情的な生き物であることがよくわかる。
脱線するが一部のエンジニアには「○○言語が書けるから入社を決める」みたいな頭が悪い会社の選び方をする者もいる。
好きな言語を仕事にしたいという安易な発想で、糾弾している技術的負債を目の当たりにし、自分が書きたいと思ったコードが書けないで会社を去るものもいるだろう。本当に愚かである。残る選択をしたエンジニアは技術的負債に手を加えて、自分が嫌悪しているのにも関わらず技術的負債を生み出すのである。
そして、彼らもビジネスの都合で技術的負債を生み出して、後に入社するエンジニアに技術的負債を生み出したことで糾弾されるのである。数ヶ月、もしくは数年後にはモジュールなどのエコシステムが刷新されることによって、結果としてオナニーコードが技術的負債として罵られるのである。滑稽としか思えない。
つまり誤用の技術的負債ワードを用いるエンジニアが、技術的負債を糾弾するというのは無知によるポジショントークであり、自分自身が技術的負債を生み出していることに気づかないピエロなのだ。
さらに言えば、言葉の定義にうるさい割に、技術的負債という言葉の定義を自分たちの都合のいいように解釈して誤用しているのである。
gssapi-with-micとあるので、音声が背後で収集されてるんか!?とビビってしょんべんまでチビってしまったが、そういうモジュールではなかった
The term message integrity code (MIC) is frequently substituted for the term MAC, especially in communications to distinguish it from the use of the latter as media access control address (MAC address). https://en.wikipedia.org/wiki/Message_authentication_code
個人的には、きちんとしたオブジェクト指向をきちんとやる方法を調べきれなくて
base.pm といったような、オブジェクト指向を目指すためのモジュールは昔から色々と公開されてて
きちんと調査できていれば、きちんとしたオブジェクト指向をやれたんだろうけど。
Perl5の実用的な面での特徴は、異常なまでの後方互換性にある。
25年前のPerl4向けのスクリプトですら、ほとんど修正なしに最新のperl 5.36.0で動いてしまう。他のプログラミング言語ではあまり見られない特徴である。この特徴はある程度は今後も維持されるし、いまPerl5を書いている人の多くが望んでいることだろう。
しかし、後方互換性を守るあまり現代の言語に備わっているような機能が欠けている現状がある。ただ、それも改善されつつあり、後方互換性を守る形で慎重に取り入れられている。
一方で自由度が高すぎる文法は、後から修正を重ねていくようなものには不向きかもしれない。linterであったり、型アノテーションを書くようなモジュールも存在する。このようなものを用いて自分を律して書く分にはメンテ可能であるものの、現代のように多くの人が一つのスクリプトをいじることが求められる環境では不向きと言える。
実用的な面で向いているのは「一回書いたら修正を行わないスクリプト」かつ「10年単位で動かす必要のあるもの」である。そんなものはあるのかと思う人もいるかもしれないが、規模が小さければぴったりハマる場面もある。
言語としてはコンテキストだったり、ブロック単位で言語の挙動を変えられる点などが面白ポイントであるものの、これらはホビーとして楽しむのが良いというのが私の見解である。
M、MP UQSL2のクリスタルに対応していて、0,1かのパスに対応する条件付きパスで、ハリスとウェイトモジュールでテンソル積になっているように構成される。このパスはドメインウォールでドメインウォーム、パスの断片、隣接条件は、差が1でなければいけなくて、必ず間にドメイン1のパスを挟む必要があり、それでドメインのセットを指定しそのことでパスは一意に決まります。3つの最低エネルギーのパスは、ドメインウォールのクリスタルとパスは対応していて、古典極限状態をドメインオゥールで書けます。古典的にはスピノンと考えられていてスピノンを生成消滅させるのはバーテックスオペレーターに対応していてこれの古典極限をとることで、 パラメーターがε0,1に落ちます。スピノンがどういう代数関係式に従っているかが分かる。ドメインウォールの位置はパラメータの位置に関連している。生成演算子で構成される演算子はクリスタルと対応関係にあって、テンソル分解というのはドメインウォールがどうなってるかでこの条件を満たすようなドメインウォールがカップルしてテンソル積空間を作っている。これがヤンギャンライクな構造を表している。スピノン生成演算子の下の足が奇数だとマイナススピノンを運んでいて、ドメインの差が1という隣接条件は、Pが0,1で指定されている。
HTML5/CSS3の段階でWebページ構築の基本的なしくみや考え方はほぼ確立してしまった。
ということは、HTML5/CSS3をマスターしてしまえばだいたいのモダンなサイトは作れてしまう。
しかしそのせいでそCSS Level 4 以上のモジュールを学習する意義が見いだせず、CSS3で知見が止まってしまっているコーダーをよく見る。
たしかに、HTML4.01/CSS2.1→HTML5/CSS3の時のような華々しい進化が Lv4 には(あまり)ない。
なんだこれ!並ぶぞ!動くぞ!消えるぞ!飛ぶぞ!みたいな興奮が少ない。
手駒だけで何とかなっている状況で興奮のないものを学ぶモチベーションがわかないのもわかる。
「できないこと潰し」「新しいこと探し」だったHTML5/CSS3に対して、それ以降は「今までも苦労すればできてたけど、もう少し簡単にしたい」という方向に進化している。
モーダルウィンドウがいい例だ。従来は何十行ものJavaScriptやCSSを使って実現していたが、dialog 要素の登場によってマジで簡単に実装できるようになってしまった。
そういう「できるけど厄介」を片っ端から潰そうとしているのが今のHTML/CSSの進化だと思う。
いやHTML/CSSだけではない。JavaScriptだって新仕様がどんどん追加されているが、そのどれもがコードをより簡潔に、合理的に記述できるようにするためのものだ。
家電とか車とかに例えると、製品の機能を増やすフェーズは終わり、組み立てに必要な技能やかかる手間を減らすフェーズに入ったと言えそうだ。
だが知っていれば確実にトクをする変化だ。
DMM版ウマ娘プリティーダービーを遊ぼうとしても、エラーダイアログを出さずに起動しなくなる現象に遭遇した。
Windowsのイベントビューアーを除くと、こんなログが吐かれていた(各IDは削除)。
=====
日付:
ユーザー:
説明:
障害が発生しているアプリケーション名: umamusume.exe、バージョン: 2020.3.24.51085、タイム スタンプ: 0x
障害が発生しているモジュール名: apphelp.dll、バージョン: 10.0.22621.963、タイム スタンプ: 0x
障害が発生しているアプリケーション パス: D:\DMMGames\Umamusume\umamusume.exe
障害が発生しているモジュール パス: C:\WINDOWS\SYSTEM32\apphelp.dll
結論から言うと、Windows本体のapphelp.dllが原因でウマ娘が起動できなくなっているという。
アプリケーションに罪は無いため、DMM Game Playerやウマ娘を何度再インストールしても直らない厄介な現象だ。
Windowsは数十万のファイルが存在するため、今回のようにWindows Updateやアプリケーションのインストール・アンインストールを繰り返すだけでシステムファイルが壊れる事がある。
Windowsでは、これを直すためのコマンドがコンソールUIのみに用意されている。
Windowsのスタートメニューを右クリックして、コマンドプロンプトまたはターミナルを管理者権限で起動する。
を実行する。これは、オンライン上にある正しいWindowsのシステムイメージを元に、壊れたファイルを修復する操作となる。
実行するとこう表示される。
[==========================100.0%==========================] 復元操作は正常に完了しました。
DISM.exeを実行すると、正しいWindowsのシステムイメージがPC内に保存された状態になる。
この状態で、
sfc /scannow
を実行すると、次のように表示される。
システム スキャンを開始しています。これにはしばらく時間がかかります。
Windows リソース保護により、破損したファイルが見つかりましたが、それらは正常に修復されました。
オンライン修復の場合、詳細は次の場所にある CBS ログ ファイルに含まれています
windir\ Logs\CBS\CBS.log (たとえば C:\Windows\Logs\CBS\CBS.log)。オフライン修復の場合、
これで、とりあえずWindows自体の修復コマンドによってシステムファイルが正しい状態に復元された状態となる。
実行してもまだメモリ上には古いシステムファイルが読み込まれて実行されている状態なので、終わったらPCを再起動する。
さて、準備は完了だ。ここまでの操作でWindowsを回復しDMM Game Playerで「ダウンロード版をプレイ」を押す事でウマ娘が起動し…ない!
イベントビューアーには今もウマ娘を起動しようとする度にアプリケーションクラッシュイベントが追加されている。救いは無いのですか?
結局、今回のケースではPCで常駐していたリモートデスクトップ用のSplashtop StreamerとVirtual Desktop Streamerをタスクキルする事でウマ娘が起動できるようになり、DMMブラックフライデーで得た有償石でおはガチャを回すことに23時成功した。
https://www.youtube.com/watch?v=yhDLmGpjdms
これよりもっとひどい動画はごまんとあるが、ここまでタイトルで煽っている以上指摘するわ。
プロフィール見るとCTOを経て独立してプログラミングスクールの会社やっているっぽいけど、すごい時代だな。
晒しになっちゃったけど、他にも有名(と思われる)プログラミング系YouTuberが実際にコードを書いている場合でひどいのはザクザク見つけられるから、見つけてため息をつくといいと思います。
そして、子供のころ初めて読んだ少年史は文化の大きな部分である。
あるが、
①生来の生まれつきの要素、俗に言う本能のようなものも同時に当然ある。
正義感情は脳の中にモジュールとして存在することがわかっている、れっきとした生まれつきの機能であって
私欲のために不正をすることを正義と思うようになるとか、そういうことは文化や教育にはできない。
少年誌の場合も、まず脳の中に正義があって、その正義を反映して作られていると考えるほうが、より正確だろう。
②エンタメや文化よりも明確にもっと大きな影響を与える存在がハッキリわかっている。
親である。
どんな不健全なエンタメを見ようが、親が「こういうのはいけませんよ」と言うだけで、子供はむしろ不健全なことをしなくなる。
おすすめまとめ
良さげなのあったら教えてください
生化夜話
http://visual-memory.co.uk/daniel/Documents/S4B/japanese/
http://www.coelang.tufs.ac.jp/mt/
https://bellcurve.jp/statistics/course/
統計学
ビデオカードのメモリが増設できない理由について、昔この業界に関わったことがある俺が説明してみる。理由は2つで、技術的ハードルが高い点と需要が無いという点である。
現在主流となっているビデオカードのメモリはGDDR6という規格である。こいつは16Gbpsでデータを転送できるんだが、1bitのデータのやりとりに使えるのはわずか62.5ピコ秒しかないということだ。これってメチャクチャやばい話で、僅か数mmの配線長の違いでも信号のタイミングのずれに影響してしまう。PC系のニュースサイトでビデオカードからクーラーを外した写真がよく掲載されているので試しに見てほしいのだが、タイミングずれが起きないようにGPUの周りを囲むように等距離になる位置にメモリが配置されているのがわかるだろうか?また、このような配置には、配線距離が短くなるメリットもあるのだ。
一方、PCに使われるメモリモジュールだが、見てわかるように長方形の基板にメモリチップが載せられている。配線の距離は当然ビデオカード直付けのものと比べて長い。各メモリチップ間の配線長のチップ間差だけならどうにかできなくはないが、配線長の絶対的な長さが問題になってくる。モジュール上の数センチの配線で生じる配線抵抗と寄生容量の影響がかなり大きく、1bitのデータをわずか62.5ピコ秒で転送しなくてはならないビデオカード向けメモリだと致命傷になってしまうのだ。
余談だが、数年前にGDDR5Mというモジュールでメモリを増設できるビデオカードむけのメモリ規格が提案されたことがあったのだが、上記のような問題から当時主流であったビデオカードに直付けするタイプのGDDR5に比べて性能が低く(7GbpsのGDDR5に対し5Gbpsにとどまった)、その程度なら3.2Gbpsでデータを転送できる汎用のDDR4と比べて大したメリット無いじゃんということで製品化されずに終わってしまった。
あなたは世界で一番ビデオカード向けのメモリを買っているメーカーがどこかご存じだろうか?実はソニーである。ちなみにナンバー2はマイクロソフト。何を隠そうビデオカード向けのメモリの需要って大半がゲーム機向けなのだ。ゲーム機の場合、世代交代するまでの5年間くらいは基本的にスペック固定である。なのでメモリの増設需要がそもそもない。そしてゲーム機の市場規模自体が他の電子機器に比べると一桁二桁小さい。
例を上げると、スマートフォンの年間販売台数は全世界で12-3億台。PCでざっくり3億台。ゲーム機は年間1000-2000万台。ビデオカード向けメモリの最大消費者のゲーム機でさえ、スマートフォンの1/50の市場規模で、それより小さいPC向けビデオカード市場で、さらにメモリを増やしたい人向けの市場規模となると察して下さいとしか言いようがないレベルになる。その僅かな市場に何億もの開発費をかけて製品を出そう!という酔狂なメーカーはなかなか出てこないだろう。
最も、スーパーコンピュータのような特殊な用途だと増設できるGPU向けメモリが登場する可能性があるかもしれない。数年前に不祥事を起こしたスーパーコンピューターベンチャーP社の例だが、10年ほど前に倒産したメモリメーカーE社の元エンジニアを集めてカスタムメモリを独自開発しようとしていた節がある。絶対的な性能やどうしても大量のメモリがないと困るというシチュエーションがあれば、経済的合理性ガン無視で独自規格の製品を作るモチベーションが生まれるというわけである。