背景
最近、k8s という単語をよく目にするようになりました。
k8s とは、Kubernetesのことだそうです。
k ~8文字~ s なので、k8sと書くそうです。
Kubernetesとは何か?は、
他の多数の素晴らしい入門記事様を見ていただくとして、
興味を持ったのは、
k8s = Kubernetes って一意に決まるの?
ということです。
もし、他の単語でもk8sがいるなら、
「k8sの座」を、Kubernetesだけに奪われてよいのか、
いや、良いハズがないっ!(反語表現)
そこで、
まさにタイトル通り「k8s=Kubernetes」が成立するのか調べます。
「Kubernetes」について本気で調べてみた、
というわけではないのであしからずご了承ください。
※正確には「k」が大文字じゃね?とかあるかもしれませんが、
「Kubernetes」の時は、大文字の方が多くても、
「k8s」の時は、小文字の書き方を多く見かける気がするので、
この調査では大文字小文字は区別せずに(基本小文字で)扱うことにします。
さっそく調査に乗り出すことに
まず、英辞郎のテキストデータを用意します。
以前、このサイトで購入していました。(500円)
https://booth.pm/ja/items/777563
およそ、200万単語含まれています。スゴイ。
このデータを、pythonで、
{"見出し語":"意味"} の形の辞書形式に加工します。
ここは本題では無いのでコードは省略します。
調査対象の単語リストの準備ができました!
中身を見ると、
「k」で始まる単語は約2万1千語ありました!
(他のアルファベットに比べかなり少ないほうです)
k8sチェッカーの作成
正規表現で、k8sの条件を満たすかチェックする
チェック関数を作成します。
^k[A-Za-z]{8}s$
の形を基本として、少し一般的に作りました。
import re
#kNs_checker("k",8,"s", target_word)が条件にハマるかチェックするよ
def kNs_checker(head_char, num, tail_char, target_word):
#k8s (k + 8 文字 + s)
#target_word = r'kubernetes'
#pattern = r'^k[A-Za-z]{8}s$'
pattern = r'^' + head_char + '[A-Za-z]{' + str(num) + '}' + tail_char + '$'
result = re.match(pattern, target_word)
if result: #none以外の場合
#print(result.group())
return 1
else:
return 0
return 0
print(kNs_checker("k",8,"s", "kubernetes") )
k2sを求めてみよう!
まずは、k2sから求めてみましょう。
さきほどの「k8sチェッカー」を用いて、辞書を検索します。
「k8sチェッカー」が「1」を返す=条件を満たす、ので、
その単語を列挙します。
#「k」で始まる単語の辞書の読み込み {"見出し語":"意味"}
dict = load_dict("k")
def pickup_word(head_char, num, tail_char):
for key,val in dict.items():
if kNs_checker(head_char, num, tail_char, key) > 0:
print(key + ": " +val)
pickup_word("k",2,"s")
kiss: キスする
kris: クリース◆マレー人が用いる短剣
kvas: クヴァス◆ロシアの発酵飲料
# ※結果の意味の所は、加工しています。
k2sの時点でも3つと意外と少ないですね。
これはKubernetesが一意の座を得ることが出来るかも!?
※他に、kids、などが思いつきますが、
辞書上、原型しか登録されていない場合もあり、
複数形や活用は無視します。
k3s~k7sの結果
「2」を3~7に変えて上記のプログラムを動かします。
kecks: 〈英俗〉ズボン
kudos: 〔功績などに対する〕称賛、賛辞
kumis: <→koumiss> クミス、乳酒◆中央アジアの伝統食品。
kurus: クルーシュ◆トルコの貨幣単位
ほうほう。
kairos: 〈ギリシャ語〉実行[決断]の時、潮時
kermes: ケルメス◆カイガラムシの雌の羽を乾燥させた赤紫色の染料の原料
killas: 《地学》粘板岩
knives: knifeの複数形
kouros: クーロス◆古代ギリシャの青年の裸体像
kyphos: 《病理》〔脊柱の〕後彎(症)
日本語でも知らんがな、って単語が多いですね。
kalends: 〔古代ローマ暦の〕月の最初の日
kenosis: 神性放棄
ketosis: 《病理》ケトーシス、ケトン症
keyless: キー[鍵]のない[不要の]
kickass: <→kick-ass>〈卑俗〉エネルギー、力
kinesis: キネシス◆生物の動き
kinless: 親類[親族]のない
kissass: <→kick-ass>〈卑俗〉エネルギー、力
klipdas: 《動物》ケープハイラックス
koumiss: クミス、乳酒◆中央アジアの伝統食品。
kylikes: kylixの複数形
だんだん増えているし。数字の少ない方が多いと思ってた。
keenness: 鋭さ、熱心さ
keftedes: ケフテデス◆ギリシャ料理の肉だんご
kehillos: kehillahの複数形
kindless: 不親切な
kindness: 親切(であること)、思いやり(があること)
kinesics: 動作学
kinetics: 《物理》動力学
kingless: 国王の存在しない
kneesies: 〈米俗〉〔恋人同士などが愛情の表現として〕膝と膝を触れ合わせること
knickers: 〔女性用の〕ブルマー
knockers: 〈卑〉おっぱい
kouskous:〈アラビア語〉クスクス◆パスタの一種。世界最小のパスタ
kurtosis: カートシス、尖度
kyphoses: kyphosisの複数形
kyphosis: 《病理》〔脊柱の〕後彎症
おっぱい!?
kaluresis: =<→kaliuresis>カリウム利尿
kantharos: カンタロス◆上方に伸びた取っ手(2個)が付いている大きな杯
katabases: katabasisの複数形
katabasis: 《軍事》退却
katharsis: <→catharsis>カタルシス、〔精神の〕浄化
keratitis: 《病理》角膜炎
keratorus: 《医》角膜膨隆
keratoses: keratosisの複数形
keratosis: 《病理》角化症◆【略】K
ketolides: ケトライド系薬◆【略】KLs
ketolyses: ketolysisの複数形
ketolysis: 《化学》ケトン分解
kibbutzes: kibbutzの複数形
kidstakes: ごまかし、見せ掛け
kilobucks: 千ドル、大金
kilogauss: 《電気》キロガウス◆【略】kG
kinetoses: kinetosisの複数形
kinetosis: 《医》乗り物酔い
knismesis: 《生理》軽いくすぐり刺激◆羽根が触れたり虫がはったときなど
knotgrass: 《植物》ニワヤナギ、ミチヤナギ
kookiness: 〈俗〉変人ぶり、異様なこと
kraurosis: 《病理》萎縮症
もっと増えてる。これはk8sも厳しいか・・・?
おまちかね、k8sの発表です★
kaliuresis: カリウム利尿
karyolysis: 《生物》核溶解
katholikos: =<→catholicos>〔東方教会の〕総主教
keloidosis: ケロイド症
keratinous: ケラチン[角質]の[から成る・に似た]
kindliness: 親切(な行為)、温情、温和
kinematics: 《物理》運動学
klinotaxis: 《生物》屈曲走性
knockknees: <→knock-knees>《医》X脚、外反膝
kohlrabies: kohlrabi(《植物》コールラビ、カブカンラン)の複数形
なんと、10件のk8sが見つかりました!!
残念Kubernetesよ、k8sはお前だけのものではないのだ!
さあ、これからは、k8sについて語るときは、
「え、それって、ケロイド症について話しているの?」
「k8s入門って、X脚に入門するってこと?」
「絵本で分かるk8sって、キリンが核溶解する絵本?」
って確認することで、話している対象を間違えずにすみますね。
さらに、K8sの結果
Kubernetes一意性信者の野望を完全に打ち砕くため、
念を入れて、「K」が大文字の場合も、
同様のプログラムで求めてみました。
Kannapolis: {地名} : カナポリス◆米国
Karagatsis: {人名} : カラガーチス
Karamanlis: {人名} : カラマンリス
Kariotakis: {人名} : カリオタキス
Kastanakis: {人名} : カスタナキス
Katsuwonus: 《魚》カツオ属
Kilcommons: {人名} : キルコモンズ
Kolkasrags: {地名} : コルカ岬
Kompaneets: {人名} : カンパニェーツ
Korolkovas: {人名} : コロルコワス
Korostvets: {人名} : コロストベッツ
「K8s」だろうが、「k8s」だろうが、
世界はKubernetesを中心に回っているわけではありません。
もしかしたら、あなたの見つけた「K8s入門」は、
「カツオ(Katsuwonus)」に入門することになるかもしれない。
https://ja.wikipedia.org/wiki/カツオ
提言:これからは、キリンとかクジラ以外に、
**「カツオ」**も登場させてあげるのが
元祖K8sに対する礼儀ではなかろうか?
こうなると、最大値が知りたくなる
最大のkNsはなにか? を知りたくなるのが人情です。
pythonの正規表現のところを以下のように変更します。
pattern = r'^' + head_char + '[A-Za-z]*' + tail_char + '$'
上記を実行して調べた結果、
k18s が最大だと分かりました!
keratoconjunctivitis: 《眼科》角結膜炎
なんと、k8sを2倍以上うわまわっています。
これは、k8sを語る上でほぼ必須のムダ知識ですね。
k18sを知っていれば、k8sより2倍強いです。
i18n は一意なのか?
同様の問題として、
i18n = internationalization なのか調べてみます。
Internationalization(国際化対応)とは、文化、地域、言語によって異なるターゲットオーディエンスに合わせて容易にローカライズできる製品、アプリケーション、または文書内容の設計と開発のことです。~W3Cの定義~
コードはk8sのものと全く同様です。
def pickup_word(head_char, num, tail_char):
for key,val in dict.items():
if kNs_checker(head_char, num, tail_char, key) > 0:
print(key + ": " +val)
pickup_word("i",18,"n")
immunophotodetection: 免疫光学的検出
institutionalisation: =<→institutionalization>制度化、慣行化
institutionalization: 制度化、慣行化
internationalisation: <→internationalization>国際化、国際管理下に置くこと、国際管理化
internationalization: 国際化、国際管理下に置くこと、国際管理化
iodochlorhydroxyquin: 《薬学》ヨードクロルヒドロキシキン
Kubernetesは、英辞郎には存在しなかったのですが、
internationalizationは、本人が英辞郎にも居ました。
そして、
残念internationalizationよ、i18nはお前だけのものではないのだ!
kNsは18が最高値で、18で一意だったので、
i18nならもう少し頑張ってくれるかと思ったのですが、
いやー、おしかったですね。
これからは、i18nについて語る時は、
ヨードクロルヒドロキシキンについての話しじゃないよね?
と確認していく必要があります。
まとめ
こうしてこの世界にまた一つ新たなトリビアが生まれた
- k8sは、Kubernetesのみの一意に定まらない
- 最大はk18s = keratoconjunctivitis = 角結膜炎
- i18nは、必ずしも国際化対応のことではない
この記事によって、
k8s や、i18n について語る時に生じる誤解を
0.00001%くらい軽減できたと思います!
エンジニアが良く使う言葉について、
とても役に立つ有用な知識を得ることができました。
コンテナとかdockerとか、ムズカシイ言葉を一切使わず、
ここまでk8sについて詳細に解説している記事は
他に類を見ないのではないでしょうか。
k8sとは何か? と聞かれた場合には、
この記事を紹介してあげると、とてもkindlinessですね。
または、「カツオ(Katsuwonus)の略だよ!」 と教えてあげると、
魚類まで網羅したあなたの博識ぶりに驚くこと間違いなしです。
現場からは以上です。