Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

背景

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

現場からは以上です。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした