LoginSignup
421
141

More than 5 years have passed since last update.

k8s=Kubernetesについて本気で調べてみた。ついでにi18n

Posted at

背景

最近、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」を返す=条件を満たす、ので、
その単語を列挙します。

k2sを求める

#「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")

k2sの結果
kiss キスする
kris クリースマレー人が用いる短剣
kvas クヴァスロシアの発酵飲料
# ※結果の意味の所は、加工しています。

k2sの時点でも3つと意外と少ないですね。
これはKubernetesが一意の座を得ることが出来るかも!?

※他に、kids、などが思いつきますが、
 辞書上、原型しか登録されていない場合もあり、
 複数形や活用は無視します。

k3s~k7sの結果

「2」を3~7に変えて上記のプログラムを動かします。

k3sの結果
kecks 英俗ズボン
kudos 功績などに対する称賛賛辞
kumis  <koumiss> クミス乳酒中央アジアの伝統食品
kurus クルーシュトルコの貨幣単位

ほうほう。

k4sの結果
kairos ギリシャ語実行決断の時潮時
kermes ケルメスカイガラムシの雌の羽を乾燥させた赤紫色の染料の原料
killas 地学粘板岩
knives  knifeの複数形
kouros クーロス古代ギリシャの青年の裸体像
kyphos 病理》〔脊柱の後彎

日本語でも知らんがな、って単語が多いですね。

k5sの結果
kalends 古代ローマ暦の月の最初の日
kenosis  神性放棄
ketosis 病理ケトーシスケトン症
keyless  キーのない不要の
kickass  <kick-ass>卑俗エネルギー
kinesis キネシス生物の動き
kinless 親類親族のない
kissass <kick-ass>卑俗エネルギー
klipdas 動物ケープハイラックス
koumiss クミス乳酒中央アジアの伝統食品
kylikes kylixの複数形

だんだん増えているし。数字の少ない方が多いと思ってた。

k6sの結果
keenness 鋭さ熱心さ
keftedes ケフテデスギリシャ料理の肉だんご
kehillos kehillahの複数形
kindless 不親切な
kindness  親切であること)、思いやりがあること
kinesics  動作学
kinetics 物理動力学
kingless  国王の存在しない
kneesies 米俗〉〔恋人同士などが愛情の表現として膝と膝を触れ合わせること
knickers 女性用のブルマー
knockers おっぱい
kouskous:〈アラビア語クスクスパスタの一種世界最小のパスタ
kurtosis カートシス尖度
kyphoses kyphosisの複数形
kyphosis 病理》〔脊柱の後彎症

おっぱい!?

k7sの結果
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の発表です★

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」が大文字の場合も、
同様のプログラムで求めてみました。

K8sの結果
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のものと全く同様です。

i18nを求める
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")
i18nの結果
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)の略だよ!」 と教えてあげると、
魚類まで網羅したあなたの博識ぶりに驚くこと間違いなしです。

現場からは以上です。

421
141
7

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
421
141