こんにちは、ボケ倒したいのを日頃我慢しているむっそです。今回は日常会話で使えば面白くなりそうなIT用語を用例も交えて書いていこうかと思います。
うまく使えれば知的ユーモアの溢れるインテリパーソンになれるかもしれないし、スベり散らかしてしまえばこの世のゴミみたいな不当な扱いを受けるかもしれないです。
試すかどうかは、、、そう、あなた次第です。
コロナで在宅3年とかやってたら発狂してネタ記事くらい書きますよ、人間だもの
はじめに
この記事を思いついたきっかけは私の好きな本である、インテリ悪口本のコンセプトです。
要はインターネットに氾濫する悪口がつまらないのは、そこに知性もユーモアも宿っていないからであり、うんちくやユーモアを付け加えることで悪口を楽しさや知的好奇心に変えられるというコンセプトです。
このコンセプトに則り、下品な飲み会や、吐き気がするほどつまらない1on1などの日常会話で、IT関連の単語を使うことでちょっとユーモアを足していこうじゃないかという試みです。日常会話で使うことでIT知識や用語を定着させるという良い効果があります。
うまくやれば基本情報試験とかの用語暗記にも使えそう(大嘘)ですね。
注意書きをしておくと、IT知識が同じかそれ以上の人に使うと面白いと思います。知識があまりないと思われる人に使うと失笑されるか、マウントと捉えられて嫌われるので、ちょっと仲良い人に良い感じに使っていただければ。
全体的な構成
だいたい有名人物/アルゴリズム/ネットワーク/データベースという具合に概念を分けてその分野で使われがちな単語で、なおかつ 「なんか使っていると玄人感というか中二病感を感じさせてくれるような」単語 に絞って紹介したいと思います。
それぞれの単語の紹介に加えて
- 意味:wikipediaなどから引用した単語の意味
- 主観的な用語説明:言葉の意味から個人的に考える解釈
- 用例:日常会話での使用例
という感じでご紹介していきます。
全体的にちょっと長いので興味のある分野から読んでいただければと思います。
IT用語集
プログラマあるある編
1. ダニング=クルーガー効果
意味:
ダニング⹀クルーガー効果(ダニング=クルーガーこうか、英: Dunning–Kruger effect)とは、能力の低い人は自分の能力を過大評価する、という認知バイアスについての仮説である。
wikipediaより
主観的な用語説明:
なにかを学習した最初のほうは 「もう完全に理解した」 という気持ちになったりするのですが、学習時間が増えるに従って上には上がいることを認識して 「俺なんて全然ダメだ」 と自信をなくす効果のことですね。
ソフトウェアエンジニア2年目とか社会人歴2年目になるあたりで自信が爆発してイキり散らかし始める方をよく目にするので、なんかイキリ散らかしてる方がいたときにダニング=クルーガー効果の話をしてあげましょう。
用例:
二人の会話
Aさん:あんま勉強してないけどTypescriptぬるゲーすぎ。てか俺天才かも
Typescriptの沼を知る者:お主、ダニングクルーガー効果の初期症状を発症しておるな。私がTypescriptの沼を教えてあげるぞよ
2. インポスター症候群
意味:
インポスター症候群(インポスターしょうこうぐん、英: Impostor syndrome、インポスター・シンドローム)は、自分の達成を内面的に肯定できず、自分は詐欺師であると感じる傾向であり、一般的には、社会的に成功した人たちの中に多く見られる。
ペテン師症候群(ペテンししょうこうぐん)、もしくはインポスター体験(インポスターたいけん、impostor experience)、詐欺師症候群(さぎししょうこうぐん、fraud syndrome)とも呼ばれる。
wikipediaより
主観的な用語説明:
日本人は謙虚すぎるので、成果を出しても 「私の成果ではない」 みたいに思ってしまう人がいるようですね。
どうせ謙遜するから誉めること自体をやめるというのではなく、ちゃんと成果を出した人を褒めるような社会が良いですよね。
用例:
二人の会話
Aさん:今回のリリースはあなたのおかげでなんとかなりました!
Bさん:いやいや、マネージャーのご支援と親の仕送りと兄妹からの励ましと友達の悩み相談のおかげです。
Aさん:そんな謙遜してるとインポスターになるぞ!素直に喜べよ
3. ハンロンの剃刀(かみそり)
意味:
「無能で十分説明されることに悪意を見出すな。」という言葉で表現される。例えば、ある製品に欠陥が見つかった場合、(大抵の場合、一般論としては)それは製造した企業が無能であるか愚かであるということを示しているのであって、消費者を困らせるために企業が悪意を持って欠陥を忍ばせたわけではない、という考え方を示すのに用いられる。
wikipediaより
主観的な用語説明:
世の中にはいろんなタイプの大人がいて、シニアっぽい年齢でも 優先度と重要度があべこべになってる人とか、プライドだけがイヤに高く指導が難しい新人とかいますね。
無能と表現するのはちょっと冷たいですが、無能で説明できる人にはあまり期待しないで、自分の制御できる範囲で頑張りましょう。
用例:
二人の会話
Aさん:新しく入った中途のシニアエンジニアさん、評論家みたいにアーキテクチャを論じてる割にコード書かないよね。もはや私のこと下に見てそうだし
Bさん:(剃刀に油性ペンで「ハンロン」と書いて渡す)
Aさん:いや、ハンロンの剃刀いらないから!
IT業界で引用されがちな法則編
4. リーナスの法則
意味:
この法則は、「十分な目ん玉があれば、全てのバグは洗い出される」("Given enough eyeballs, all bugs are shallow")という意味。
もっと格式ばって言うと、「十分なベータテスターと共同開発者がいれば、ほとんど全ての問題は、すぐさま明らかになり、すぐさま修正される」("Given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix will be obvious to someone.")と主張している。
wikipediaより
主観的な用語説明:
たくさんの人の目で見てもらうとバグが修正されるというのはソフトウェアの話になりますが、なにか記事を書いたり、大きなイベントに登壇したりする時に練習段階で数人に見てもらった方がより適切な内容に修正されるという意味でもありますね。
(ただ形骸化して、意味もなくやってるトリプルチェックはダメです)
自分一人でくよくよ悩まないで早めに誰かに見せておくというのは大事なんだろうなと思います。
用例:
先輩と後輩の会話
後輩:ハッシュアルゴリズムを自作してプルリクエスト投げました!(どや)
先輩:(コードを見て読みにくいと思いながら)多分hashlibとかそういうライブラリ使った方が良いと思うよ。
後輩:えーなんでですか?
先輩:コードの動作やレビューをした人が1人みたいなコードはどんな危険性があるか分からんやん?リーナスの法則的にはたくさんの監視の目の元でバグ修正されてるようなライブラリのコードの方が安全なんよ。
後輩:ほえぇー
5. コンウェイの法則
意味:
Conwayの法則とは,“組織の設計するシステムには、その組織のコミュニケーション構造をそのまま反映した設計になるという制約がある”,というものだ。
つまり,チームの開発成果がその組織の内部的なコミュニケーションのあり方によって決まる,という意味である。
InfoQより
設計するシステムが組織のコミュニケーション構造を反映するという逆コンウェイの法則もあるらしい。
主観的な用語説明:
政治的な圧力やチーム内の仲の良し悪しが実装アーキテクチャに影響を及ぼしている様子。
正社員と業務委託という立場の違いなどが実装に影響したりする。経験則だがチーム仲が悪いとタスク自体が仲の悪い人同士を組ませないように分割されるので、結果的に実装に影響を与えることがある気がする。
用例:
二人の会話
Aさん:タスク調整のミーティングでCさんとあまり会話したくないからCさんのタスクと私のタスクを分けて実装したけど、あのCさんのタスクを私が引き取って私のタスクのアーキテクチャと同じにしたほうが効率は良かったんじゃね?
Bさん:あー、まさにコンウェイの法則っすねwまぁこれからこのサービスを保守する人は「ここの実装、なんでアーキテクチャ分かれてるの?」って疑問になるだろうけど、俺ら転職するから関係ないし良いんじゃね笑
6. パーキンソンの法則
意味:
パーキンソンの法則(パーキンソンのほうそく、英: Parkinson’s law)は、1958年、英国の歴史学者・政治学者シリル・ノースコート・パーキンソン(英語版)の著作『パーキンソンの法則:進歩の追求』、およびその中で提唱された法則である。役人の数は、仕事の量とは無関係に増え続けるというもの。
第1法則:仕事の量は、完成のために与えられた時間をすべて満たすまで膨張する
第2法則:支出の額は、収入の額に達するまで膨張する
wikipediaより
主観的な用語説明:
開発してて不思議と「余裕をもってタスクが終了したことはあまりないよなぁ」って思ったりします。
(夏休みの宿題は速めに着手するタイプなんですけどね笑)
工数余裕ありそう!という見積もりが途方もなく間違っていることに気づくのは締切前である。
用例:
二人の会話
Aさん:ちょっと余裕あるしこの機能実装は1ヶ月後にしましょうよ。
怖いPM:否っ!締切を伸ばすとパーキンソンの法則により締め切りまで膨張するので2週間でやるど
Aさん:クソっ!
7. ブルックスの法則
意味:
ブルックスの法則(ブルックスのほうそく)はフレデリック・ブルックスによって提唱された、「遅れているソフトウェアプロジェクトへの要員追加は、プロジェクトをさらに遅らせるだけである」という、ソフトウェア開発のプロジェクトマネジメントに関する法則である。これは1975年に出版された著書 "The Mythical Man-Month"(邦題:『人月の神話』[1])に登場した。
wikipediaより
主観的な用語説明:
ソフトウェア開発が労働集約的な仕事と勘違いしてる人は多い気がします。
知識がないと1行もコード修正できないということは発生しますし、知識量とかが天才的な人が一人でシステムを作ってそれがめちゃくちゃ最適であることはあります。(ただ天才しか触れないソフトウェアは時の流れによって技術的負債になったりしますが)
ソフトウェアエンジニアは日頃から勉強が必要な知識集約的な職種であるとみんなが理解して、ブルックスの法則を理解してくれれば変な人員調整をせずにもっと幸せな開発ライフが歩めるというのに...
用例:
二人の会話
ITリテラシーないPM:納期遅れとるがな!そや、人増やそう。
(とりあえず人を雇う)
Aさん:こんにちは、HTML/CSSしかやったことないですがよろしくお願いいたします!
現場:おいおい、人員少ないのはサーバーサイドだぞ。なぜこの人連れてきたんだ。それにブルックスの法則知らんのか、このダメPM
エラーコード編
エラーコードは少ない文字列で状況を説明してくれるので、情報量の圧縮に最適。結構日常生活で汎用的に使えそうな気がします。
8. 404(NOT FOUND)
意味:
HTTP 404 Not Found は、サーバーがリクエストされたリソースを見つけることができない時のクライアントエラーのレスポンスコードです。 404 ページにつながるリンクは、壊れたリンクまたは死んだリンクと呼ばれ、リンク腐敗の影響を受ける可能性があります。
MDN Web Docより
主観的な用語説明:
ステータスコードでやはり有名なのはこの404(NOT FOUND)エラーかと思います。 「なにかを探しているけれど見つからない」 という状態を説明するのに最適です。
人生見つからないものばかりですね。結婚相手が見つからない、友達がいない、大学3年生の時に自分探しにインドに行ったけどただタージマハル行ってカレー食って帰ってきたとか。
そんなときは404という数字3文字で表せます。
用例:
Twitterつぶやき
Aさん:婚活パーティ参加、Statuscode: 404
Bさん:婚活パーティ参加、Statuscode: 200
9. 401(UNAUTHORIZED)
意味:
HTTP 401 Unauthorized は、有効な認証資格が不足していることによりリクエストが適用されないことを示すクライアントエラーのレスポンスコードです。
このステータスは、正しい認証方法を含む WWW-Authenticate ヘッダーとともに送信されます。
MDN Web Docより
主観的な用語説明:
permission deniedでも可。なんか知らんけど自分に権限がなくて怒られたときに使える。
用例:
二人の会話
Aさん:彼女の両親に「彼女を私にください」と言ったんだけど、401エラーだったわ
Bさん:なにがダメだったんだろうね?顔かな?
10. 500(INTERNAL SERVER ERROR)
意味:
HyperText Transfer Protocol (HTTP) の 500 Internal Server Error サーバーエラーレスポンスコードは、サーバーがリクエストを実行を妨げる予期しない条件に遭遇したことを示します。
MDN Web Docより
主観的な用語説明:
もう予想もしてないようなアクシデントが起きてるときに使える。
用例:
友人の結婚式に参加したAさんと新郎の会話
Aさん:昔付き合ってた彼女と今付き合ってる彼女が同じテーブルの座席なんだが、めちゃくちゃ気まずいよ。手が震えてるよ
新郎:ごめーん、それ知らなかったんや。もうテーブルの席変えられないから頑張って
Aさん:INTERNAL SERVER ERROR
11. Out of memory(ENOMEM)
意味:
十分な空きメモリー領域がない/メモリを割り当てることができない
Linux Programmer's Manualより
主観的な用語説明:
計算量が多すぎて頭が回ってないときに使えそう。
用例:
親子の会話
母親:就活のコーディング試験どうだった?
子:コーディング試験、アウトオブメモリでした!
母親:サーバのスペックあげようね。
12. No space left on device(ENOSPC)
意味:
デバイスに空き領域がない
Linux Programmer's Manualより
主観的な用語説明:
情報量が多すぎて脳の空き領域がないときに使えそう。
用例:
二人の会話
Aさん:(相対性理論についてオタク特有の早口で話しかける)
Bさん:そんな話してもわからんて。情報が多すぎてNo space left on deviceよ
Aさん:サーバのストレージ領域増やしてあげようか?
13. Broken pipe(EPIPE)
意味:
パイプが壊れている。
Linux Programmer's Manualより
「pipeはプロセス間通信をするための単方向のデータチャネルです。」ということですね。図とか説明は下記の記事にあってわかりやすいかと思います。
主観的な用語説明:
パイプにおいてデータの読み出し側のプロセスが死んでいるとBroken pipeが発生するので、日常会話の場面だと聞き手(読み出し側)がやばい状態になっているときに使えそう。
用例:
二人の会話
Aさん:(情報理論についてオタク特有の早口で話しかける)
Bさん:無理無理無理無理。俺トイレ行ってくる!
Aさん:おっと、Broken pipeでごじゃるか?ギブアップするのが速いですぞ
ネットワーク編
14. TCP
意味:
Transmission Control Protocol(トランスミッション コントロール プロトコル、TCP)は、伝送制御プロトコルといわれ、インターネット・プロトコル・スイートの中核プロトコルのひとつ。
TCP には以下のように User Datagram Protocol とは異なる重要な特徴がある。
・データ転送時の順序を保証 - 受信側でシーケンス番号を使って並べ替えを行う。
・喪失パケットの再送 - 確認応答のないセグメントは再送する。
・誤りのないデータ転送
・フロー制御 - 高信頼配送を保証するため、送信側が送出するレートを制限する。受信側は常にどのくらいのデータを受け取れるかを知らせている(スライディングウィンドウで制御している)。受信側のバッファが一杯になると、次の確認応答ではウィンドウサイズを0とするので送信が停止し、バッファ内のデータを処理する余裕ができる。
・輻輳制御
wikipediaより
主観的な用語説明:
TCPのおかげでデータが欠損せずに受信側から送信側に送られてるので感謝の気持ちでいっぱいですね。データが欠損してるとPythonとかでファイルを読みだしたときに 「このファイルは読めません」 みたいなエラーが出るのでめちゃくちゃ冷や汗をかきます笑
※どんなデータでも欠損なく送信できるというわけでもないかもしれないです。ここらへんの理解はあいまいです。
データを欠損せずに受信側から送信側に送るということで、これを人に当てはめると すごく情報伝達が丁寧な人 に使えそう。理解が危うい人にもちゃんと情報を再送してくれる天使みたいな人。こんなひとに出会いたいよ
用例:
二人の会話
先輩:今日のミーティング、おじさんたちの談笑が混じってて話のつながり分かりにくかったよね?あとで議事録とか一緒に作ろうか。
後輩:優しすぎますよ、先輩。お願いします!
先輩:私の時代も大変だったからすごい気持ちわかるー。質問あったらいつでも聞いてね
後輩:先輩、マジでTCPっす。
15. 3ウェイ・ハンドシェイク
意味:
3ウェイ・ハンドシェイク (スリーウェイハンドシェイク, three-way handshaking) とは、TCP などにおいて使用されている、接続(コネクション)を確立するための手順。
次の 3 ステップによって構成される。
1.通信の要求者が相手に対して SYN パケットを送信する。
2.SYN パケットを受けとった通信相手は、その要求者の接続を許可する SYN ACK パケットを送信する。同時に通信相手は接続を準備するために、その要求者との 接続用の情報を記憶する領域を割り当てる。要求者へ回答する際の確認応答番号(ACK番号)は、受信したシーケンス番号(順序番号)に1を加えた値になる。
3.SYN ACK パケットを受けとった要求者は、接続開始をあらわす ACK パケットを送信し、通信相手との通信を開始する。通信相手に送信する確認応答番号(ACK番号)は受信した確認応答番号(ACK番号)に1を加えた値になる。
wikipediaより
主観的な用語説明:
TCPによる接続で受信側と送信側との間で 「ちゃんとお互いが情報を送って大丈夫な状態か」 を確認するためにこの3ウェイ・ハンドシェイクが使われてますね。
社会人でも 「いまお話しても大丈夫ですか?」 って忙しそうな先輩に聞いてから相談しましょうみたいなマナーがありますが、まぁそれに近い感じですね。
ただウェイという単語は酔ってるときに使いたい。人間は本能的にウェイという単語を使うと気分が上がる生き物であることが知られている(嘘)
用例:
酔っ払い3人の会話
酔っ払いA: ウェイ、ウェイ、ウェーイ
酔っ払いB:スリーウェイハンドシェイク
酔っ払いC:からの高輪ゲートウェーイ(熱い抱擁)
16. UDP
意味:
User Datagram Protocol(ユーザ データグラム プロトコル、UDP(ユーディーピー))は、インターネットなどで使用される通信プロトコルであり、インターネット・プロトコル・スイートのうち、トランスポート層のプロトコルの一つ。UDPを使っている主なネットワーク・アプリケーションとしては、途中でデータが抜け落ちても問題が少ない音声や画像のストリーム形式での配信(VoIP、MPEG-TS、IP放送など)、小さなデータをリアルタイムで大量に転送するオンラインゲームなどがある。
wikipediaより
主観的な用語説明:
TCPとは違って情報が抜けてもある程度許容するプロトコルなので、日常会話では 「相手が理解しているかは全然気にしないで話しまくるおしゃべりさん」 に使えそう。
用例:
二人の会話
先輩:じゃあミーティング始めますー。今日はアウトソーシングの話でーす。彼らのアポイントメントにはアグリーなんだけど、ちょっとディスアグリーなパートもイグジストするんだよね。どう思うD君。
後輩:(先輩ってミーティングのときだけ意識高い系の単語ばっか使ってイキってんだよな。議事録書く身にもなってくれ)
後輩:先輩、マジでUDPっす。
17. SSH
意味:
Secure Shell(セキュア シェル、SSH)は、暗号や認証の技術を利用して、安全にリモートコンピュータと通信するためのプロトコル。パスワードなどの認証部分を含むすべてのネットワーク上の通信が暗号化される。
SSHの暗号通信は、鍵交換アルゴリズム(ディフィー・ヘルマン鍵共有など)を用いて共通鍵暗号で使用するセッション鍵を生成し、共通鍵暗号(トリプルDES、AESなど)を用いて通信を暗号化し、公開鍵暗号(RSAやDSA)を用いてホスト認証やユーザ認証を行なう、いわゆるハイブリッド暗号である。
wikipediaより
主観的な用語説明:
sshコマンドでローカル環境からサーバ環境に鍵を使ってつながる感じが すごく怪しいので、怪しい関係という意味で使えるかもしれないですね。
用例:
二人の会話
Aさん:社長と社長秘書がなんか怪しい感じの建物に入ってくところを見たんだよねー
Bさん:えぇぇ、社長と社長秘書がSSHですか。これは案件ですね
※ここでの意味は「密会をしていた」という意味です。変な意味に勘違いした人はイエローカードゴイゴイスーを差し上げます。
データベース編
18. 非正規化
意味:
正規化がまったく行われておらず、1行の中に複数の繰り返し項目が存在するようなテーブルは非正規形と呼びます。
オープンソースデータベース技術者認定資格より
主観的な用語説明:
データベース設計における無思考。行列の関係が意味不明なエクセル資料やエクセル方眼紙を渡されたときにこの用語を使いたい。なんか作業の無駄が多い人にも使えるかも。
用例:
二人の会話
先輩:じゃあこの資料をベースに見積作っておいて
後輩:なんかこのエクセル、すごく非正規化されてますね!
19. プライマリーキー/外部キー
意味:
テーブルには通常、テーブルの各行を一意に識別する値が格納された単一の列または複数の列の組み合わせがあります。 この列、または列の組み合わせを、テーブルの主キー (PK) と呼び、テーブルのエンティティが整合性を持つようにします。 主キー制約は一意なデータを保証するものであるため、通常は ID 列に対して定義されます。
外部キー (FK) は、2 つのテーブルのデータ間にリンクを確立および設定することによって外部キー テーブルに格納できるデータを制御するための単一の列または複数の列の組み合わせです。
Microsoftドキュメントより
主観的な用語説明:
プライマリーキーは「重要な人や現場に欠かせない人物」で、外部キーは「外からのコンサルまたは業務委託」という感じに置き換えられそうだなと思いました。
用例:
二人の会話
Aさん:業務委託のエンジニアがいないとこの製品の運用できないよね。
Bさん:外部キーがプライマリーキーって感じですよね
20. デッドロック
意味:
デッドロック (英: deadlock) とは、特に計算機科学において、2つ以上のスレッドあるいはプロセスなどの処理単位が互いの処理終了を待ち、結果としてどの処理も先に進めなくなってしまうことを言う。
wikipediaより
主観的な用語説明:
複数の処理が1つのリソースを取り合って競合してる様子。いい意味で「引っ張りだこの人気者」とも言えるし、悪い意味で「単一障害点」みたいな感じで使えそう。
用例:
二人の会話
Aさん:もうみんなして俺を取り合っちゃダメだって。デッドロック起きてんじゃん
Bさん:お前がタスクでチョンボしてるから各種から問い合わせが殺到してるんだよ、勘違いするなー
Aさん:へい、へーい
21. 食事する哲学者問題
意味:
食事する哲学者の問題(しょくじするてつがくしゃのもんだい、Dining Philosophers Problem)とは、並列処理に関する問題を一般化した例である。古典的なマルチプロセスの同期(排他制御)問題であり、大学レベルの計算機科学課程にはほぼ確実に含まれている。
1965年、エドガー・ダイクストラは5台のコンピュータが5台のテープ装置に競合アクセスするという同期問題を提示した。
wikipediaより
主観的な用語説明:
詳しい状況設定はWikipediaを見ていただければ良いと思いますが、思考実験とはいえ、なんか謎すぎる世界観や設定だなと思いました。
「ちゃんとフォーク人数分もらえよ」 とか 「円卓なのに中華じゃなくてスパゲッティなんかい」 とか 「他人と同じフォーク使うってコロナ禍じゃアウトやん」 っていうツッコミが先に出てしまう。
ここから転じて、現実世界からこの問題の世界観に寄せていかないと到底再現できないという意味でも使えそう。
用例:
中華料理屋の円卓での5人の会話
Aさん:真ん中にスパゲッティの入った大きなボウルがある。その食卓には5枚の皿が置かれ、皿と皿の間にフォークが1本ずつ置かれている。スパゲッティをボウルから取って自分の皿によそうには2本のフォークを必要とし、私たちは一度に1本のフォークしかテーブルから取ることができない
Bさん:いや、食事する哲学者問題の再現しようとすな
22. 楽観的ロック/悲観的ロック
意味:
楽観的ロックとは、データそのものに対してロックは行わずに、更新対象のデータがデータ取得時と同じ状態であることを確認してから更新することで、データの整合性を保証する方式。
悲観的ロックとは、更新対象のデータを取得する際にロックをかけることで、他のトランザクションから更新されないようにする方式。
主観的な用語説明:
悲観的ロックというネーミングから転じて 支配体制強めの体制と言い換えられそう。
楽観的ロックというネーミングから転じてセキュリティ意識ガバガバの体制と言い換えられそう。
用例1:
二人の会話
Aさん:社外秘っぽい内容の資料が外部共有されてますけど大丈夫なんすかね?
Bさん:まぁこの会社は楽観的ロックが好きだよね
Aさん:そろそろやっべぇぞ
用例2:
二人の会話
Aさん:チームメンバーはみんな編集権限あるのになんでわたしだけ閲覧権限のみ??
Bさん:上司からの悲観的ロックだね笑
Aさん:うまいこと言うなや
23. RAID0
意味:
RAID0は複数台のハードディスクにデータを分散して読み書きし高速化したものです。これをストライピングと呼びます。
冗長性がなく耐障害性もないため、RAIDには含まれないとされていますが、RAIDにおける高速化技術の基本となっており、多くのRAID製品でサポートされています。
1台のドライブが故障しただけでアレイ内の全データが失われてしまうため、故障率は単体ドライブに比べ高くなります。 そのため、RAID1やRAID5などを速度の向上を図る目的でストライピング化した形で用いられることが多いと言えます。
AOS DATAより
主観的な用語説明:
データベースの物理設計を考える際にRAIDが出てきますね。データベースは検索/書き出しの速さが大事ですしディスクI/OがボトルネックになりがちなのでRAID大事っすねぇ。
(クラウド環境だとあまりここらへんを意識せずとも最適化されてるかと思いますが)
RAID0はストライピングのみなので 耐障害性0です。ここから転じて メンタルが激弱い人とか繊細さんに使えるかも。
用例:
二人の会話
Aさん:私彼ぴっぴと分かれてもうマジ生きる意味なくて絶望ぴえん。
Bさん:めっちゃ可哀そうだね。まさにRAID0って感じだね。
Aさん:うん?そうだね(よくわからんけど慰められたってことかな。)
アルゴリズム編
24. 線型探索(全探索)
意味:
線型探索(せんけいたんさく、英: linear search, sequential search)は、検索のアルゴリズムの一つ。 リストや配列に入ったデータに対する検索を行うにあたって、 先頭から順に比較を行い、それが見つかれば終了する。
wikipediaより
主観的な用語説明:
全ての可能性を探索するので非常に非効率。しかし確実な探索。
用例:
YRP野比にて
Aさん:おいおい、またPMが失踪したぞ。みんなで全探索するぞ
チームメンバー:おうよ!!
※この用例はフィクションですが、YRP野比がデスマーチでやばかったのはノンフィクションです。下記のリンクのような環境だと思ったらすぐ転職しましょう。ソフトウェアエンジニアはもっと日の目を見るべき職業なのです。
生きてーる♪生きているー♪(サンサーラ by 中孝介)
25. 二分探索
意味:
ソート済みのリストや配列に入ったデータ(同一の値はないものとする)に対する検索を行うにあたって、 中央の値を見て、検索したい値との大小関係を用いて、検索したい値が中央の値の右にあるか、左にあるかを判断して、片側には存在しないことを確かめながら検索していく。
wikipediaより
主観的な用語説明:
中央の値を見て検索したい値との大小関係を用いて検索したい値が中央の値の右にあるか、左にあるかを判断しているので、全探索よりかは効率的な探索ですね。
計算量の話はこの記事が良いですね。
用例:
ジムでの会話
トレーナー:このマシン最高重量が200kgだから二分探索でまず100kgからやりましょう!
客:いや、無理無理無理無理
26. モンテカルロ法(乱択アルゴリズム)
意味:
シミュレーションや数値計算を乱数を用いて行う手法の総称。元々は、中性子が物質中を動き回る様子を探るためにスタニスワフ・ウラムが考案しジョン・フォン・ノイマンにより命名された手法。カジノで有名な国家モナコ公国の4つの地区(カルティ)の1つであるモンテカルロから名付けられた。ランダム法とも呼ばれる。
wikipediaより
モンテカルロ法で円周率を求めたりもできますね。セキュリティの分野で特にランダムの力が発揮されていますし、面白いアルゴリズムですね。
主観的な用語説明:
たくさん数を打つことで真の値に回帰していくという良い効果をもたらしている半面、ギャンブルなど大体負けるように確率調整されているゲームで、やみくもに数を打つと危険なやつだなぁと思いました。
用例:
二人の会話
Aさん:よーしゲン担ぎも完璧。これでパチンコも勝ち確定じゃ!
Bさん:モンテカルロ法で勝率を求める感じですね笑
Aさん:良いこと言うじゃん?
27. ナップサック問題
意味:
ナップサック問題(ナップサックもんだい、Knapsack problem)は、計算複雑性理論における計算の難しさの議論の対象となる問題の一つで、n 種類の品物(各々、価値 vi、重量 wi)が与えられたとき、重量の合計が W を超えない範囲で品物のいくつかをナップサックに入れて、その入れた品物の価値の合計を最大化するには入れる品物の組み合わせをどのように選べばよいか」という整数計画問題である。
wikipediaより
主観的な用語説明:
日常生活においては、袋のサイズという制限のもとで 「いかに買った商品を袋にうまく詰められるか」 というのは死活問題である。この収納力の高さをまざまざと見せつけられる場面はそう、コンビニやスーパーである。
私はコンビニ店員の収納力の高さに圧倒されることが多々あるのである。
用例:
コンビニでの二人の会話
店員:Mサイズの袋ですね。ご用意します。(いや、この購入量だとLサイズだろ...鬼畜か、この客)
(レジ袋に購入したものをきれいにギチギチに詰めていく)
店員:お買い上げありがとうございました!
客:うわー店員さん、めちゃくちゃナップサック問題解くのうまいですよね。ほんと尊敬します。
店員:えっ、あー、ありがとうございます...?
(こいつ、、私の収納スキル試してやがった...)
28. エラトステネスの篩
意味:
エラトステネスの篩 (エラトステネスのふるい、英: Sieve of Eratosthenes) は、指定された整数以下の全ての素数を発見するための単純なアルゴリズムである。古代ギリシアの科学者、エラトステネスが考案したとされるため、この名がついている。
wikipediaより
Wikipediaのページでどんな感じのアルゴリズムなのか図示されているので想像つかない方は見てみてください。
主観的な用語説明:
ふるいにかけられて残った素数という意味で 稀有な存在、天才。
ふるいに落とされたという意味で凡庸オブ凡庸。
用例:
運転免許取得中の二人の会話
Aさん:仮免2回落ちちゃったーてへてへ。
Bさん:エラトステネスの篩にかけられた数みたいですね!
Aさん:ありがとう!!
29. レーベンシュタイン距離
意味:
レーベンシュタイン距離(レーベンシュタインきょり、英: Levenshtein distance)は、二つの文字列がどの程度異なっているかを示す距離の一種である。編集距離(へんしゅうきょり、英: edit distance)とも呼ばれる。具体的には、1文字の挿入・削除・置換によって、一方の文字列をもう一方の文字列に変形するのに必要な手順の最小回数として定義される。さらなる応用として注目を浴びつつあるのがバイオインフォマティクス分野での活用であり、DNA配列同士の類似性を判断するために応用されている。
wikipediaより
主観的な用語説明:
類似度の距離が大きいか、小さいかの話なので 「私たちの心のレーベンシュタイン距離、限りなく0に収束しているね...」 みたいなエモい会話ができるのです。
用例:
二人の会話
Aさん:やっべー昨日OS自作してYouTube撮影8本撮りしてブログ更新してバイト30連勤目記録しちゃったんだけど
Bさん:俺とお前の遺伝子配列のレーベンシュタイン距離が途方もなく大きそうだな。そのハイスペックさ、俺にもくれよ
有名人物編
私自身があまり人物史などを追ってない関係でちょっと内容が浅いかもしれませんが、ご了承ください。
30. リーナス・トーバルズ
意味:
リーナス・ベネディクト・トーバルズ(Linus Benedict Torvalds、1969年12月28日)はフィンランド、ヘルシンキ出身のアメリカ合衆国のプログラマ。
Linuxカーネルを開発し、1991年に一般に公開した。その後も、公式のLinuxカーネルの最終的な調整役(もしくは「優しい終身の独裁者」)を務める。
wikipediaより
IT業界に多大な影響を及ぼした人物であるので紹介する記事はたくさんあります。
主観的な用語説明:
IT業界にいる身としては頭が上がらない存在ですね。名言だったり問題発言みたいなものもたくさんある方なので、リーナストーバルズっぽい感じの発言をした人への誉め言葉または悪口として日常的に使えそうですね。
用例1:
二人の会話
Aさん:口で言うだけなら簡単です。はやくコードを見せてください。(Talk is cheap.Show me the code.)
Bさん:おお?リーナストーバルズみたいなこと言いやがるじゃないか。おおん?
引用
用例2:
二人の会話
Aさん:インフラ部門と情シスでまた部門長同士でいがみあってるみたいよ
Bさん:おいおい、リーナストーバルズとNVIDIAみたいになってんじゃん
引用
※仲が悪そうなソフトウェアサービスを引用すればよい。
「AWSとElasticsearch」でも可。
引用
31. エドガー・ダイクストラ
意味:
エドガー・ダイクストラ(Edsger Wybe Dijkstra, 1930年5月11日 - 2002年8月6日)は、オランダ人の計算機科学者。1972年、プログラミング言語の基礎研究への貢献に対してチューリング賞を受賞。構造化プログラミングの提唱者。
彼のコンピュータ科学に関する貢献としては、グラフ理論の最短経路問題におけるダイクストラ法、逆ポーランド記法とそれに関連する操車場アルゴリズム、初期の階層型システムの例であるTHEマルチプログラミングシステム、銀行家のアルゴリズム、排他制御のためのセマフォの考案などがある。
ダイクストラ法は SPF (Shortest Path First) で使われており、それがOSPFやIS-ISといったルーティングプロトコルで使われている。操車場アルゴリズムやセマフォ(鉄道でかつて使われた腕木式信号機)に代表されるが、鉄道を使用した説明でも知られる。
wikipediaより
主観的な用語説明:
よくまぁこんなすごいアルゴリズム思いつくよなぁ という気持ちになるお方です。まぁ過去の偉人全員に思うことですが笑
逆ポーランド記法は「a + b」を「a b +」と変換することで簡単なスタック操作での計算に使えるようにしたり、コンパイラの実装にも使用されているみたいですね。
コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方 11章あたり
インテリ悪口本にも「ボキャブラリーをスタックで管理してるの?」(最近覚えた単語をすぐ使いたがる人)というのがありますが、「スタックベースでのコンパイル上手そうですね」など付け加えて応用が効きそうです。
そのほかにもダイクストラ法はネットワーク分野でのルーティングプロトコルになったりしてるので、道をよく知ってる人、鉄オタ、線路オタに使えそうです。
用例:
二人の会話
Aさん:この道をまっすぐ行って二つ目の角を右に行くとラーメン二郎があります。
Bさん:詳しいですね!脳内でダイクストラ法使ってるんですか!?
32. ジョン・フォン・ノイマン
意味:
ジョン・フォン・ノイマン(John von Neumann、 1903年12月28日 - 1957年2月8日)は、ハンガリー出身のアメリカ合衆国の数学者。ハンガリー語名は Neumann János Lajos(発音 [ˈnɒjmɒn ˈjaːnoʃ ˈlɒjoʃ])。ドイツ語名は Johann Ludwig von Neumann[1](ヨハン・ルードヴィヒ・フォン・ノイマン)。
数学・物理学・工学・計算機科学・経済学・気象学・心理学・政治学に影響を与えた20世紀科学史における最重要人物の一人とされ、特に原子爆弾やコンピュータの開発への関与でも知られる。
wikipediaより
主観的な用語説明:
フォンノイマンの天才性はwikipediaを見てれば分かりますが、衝撃的なのは日本に対して原爆投下の目標地点を選定する際に「京都が日本国民にとって深い文化的意義をもっているからこそ殲滅すべき」だと言ったことで、心が冷え冷えになるエピソードですね。
頭は良いけどちょっとサイコパスみが強い人に使えるかも。
用例:
二人の会話
幹事:えーと今回は飲み会に来てくれてありがとうね。今日の全体の会話で情報量が一番少なかった人を発表します。
Bさん:ちょちょちょ。そういうところフォンノイマンみたいだよな。マジでそういうの発表しなくて良いから。
元ネタ
33. アラン・チューリング
意味:
アラン・マシスン・チューリング(Alan Mathison Turing、英語発音: [tjúǝrɪŋ]〔音写の一例:テュァリング〕, OBE, FRS 1912年6月23日 - 1954年6月7日)はイギリスの数学者、暗号研究者、計算機科学者、哲学者である。
電子計算機の黎明期の研究に従事し、計算機械チューリングマシンとして計算を定式化して、その知性や思考に繋がりうる能力と限界の問題を議論するなど情報処理の基礎的・原理的分野において大きな貢献をした。また、偏微分方程式におけるパターン形成の研究などでも先駆的な業績がある。
wikipediaより
主観的な用語説明:
アラン・チューリングの偉業として有名なのは、第2次世界大戦時にドイツ軍が世界に誇った暗号機エニグマによる暗号の解読に成功したことでしょう。(イミテーション・ゲームの映画見てなくて恐縮ですが)
用例:
二人と犬の会話
Aさん:近所の犬、最近めっちゃうるさいよね
犬:わんわんわんわーん
Bさん:いまの鳴き声を解析すると「いつも餌をくれるおばさんが旅行に行ってしまっておなか空いてる」だって
Aさん:もしかしてエニグマの解読もできちゃう人??
あとがき
以上、超主観的解釈と謎すぎる用例集でした。
私の不勉強さと知識の偏りによってほんの一部の用語しかご紹介できなかったのですが、こんな感じで 面白い解釈を付け加えて、日常会話で使ってみると話のネタになったり飲み会などで盛り上がったりするかもしれないですね。
機会があればぜひ、お試しくださいませ。
OSとか機械学習とか書ききれてない分野が多すぎ、この記事が好評そうならば第2弾も出す予定です笑
まえがきあたりで、インテリ悪口本のコンセプトをパクった話をしましたが、フォーマットをパクれば、それは二番煎じ扱いされるでしょうけど、二番煎じのフォーマットと二番煎じのドメインと二番煎じな書き方...みたいな感じでそれぞれ掛け合わせていけば、それは何番煎じでもない、ユニークなコンテンツになってるんじゃないかなと思ったりします。
というか同じ経験をしてる人間なんて多分いないので、その人の経験を記事で書くことはなにかしらの付加価値を持っているんじゃないかと思うので、今後も恐れずにN番煎じしていきます!
読んでいただき、ありがとうございました。