Quantcast
Channel: youwhtの記事 - Qiita
Viewing all articles
Browse latest Browse all 29

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

$
0
0

背景

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

現場からは以上です。


Viewing all articles
Browse latest Browse all 29

Trending Articles