monolog

monora log #=> ものろーぐ

2017年12月の投稿

2017年まとめ

雑記

こんばんは。この記事は生放送ではありません。

2017年もコミケで終わります。多分2010年ぐらいからコミケで終わっている気がします。 気になったのでコミケ遍歴を†封印の書†から過去を掘り返してみました。 初参加は忘れもしない2010年の冬コミ、C79でした。この時は1日目のみの参加だったようで、アニプレックスに並んで俺妹の桐乃セットを買ったのを覚えています。今もたまにTシャツ着てますね。

その次がなかなか記憶になくて、漁った所どうやら2012年の冬コミ(C83)らしい。夏コミとか行ってそうだったんですけど行ってなかったんですね。 そこからは毎回行っていて、C84に一度始発で行って轟沈してからは二度と始発では行かないぞと誓っています。

そこからは毎回ほぼ3日間参加していて、今回のC93で11回目の参加になるようです。

C90ではコミケにサークル参加したこともありますが、毎度スペースや誘導の変化を見ていると時代を感じたり感じなかったりします。 最初の頃は企業は西34だけでしたが、C90の前後では企業が2日間だけになり、3日目は西34がサークルになったりしました。そのときに自分のサークルが西34だったからです。

コミケは複数人で行くときのコミュニケーションが難しいなとしばしば思います。ファンネルとか言うらしいですね。僕はそういう規模で参加したことはないです。欲しいものは欲しいですが…… どうでもいいことを書くと、東1-3は外周が"A"で島が"B"~"サ", 東4-6は外周が"シ"で島が"ス"~"レ"、なんか多分前々回ぐらいからある東7は外周が"あ"で島が"い"~”の", 東8は壁が"も"で島が"ま"~"め"です。西34はなんかアルファベットでした。難しい。特に東78のひらがなは難しくて、音声コミュニケーションを破壊しに来ます。そもそも"シ"と"C"とか難しいんですが。それを言うと西もアルファベットで破壊しているんですが、西とか東とかをプレフィックスで言うので破滅しないことが多いです。 とにかく良いツールで解決していきたいがSlackはコネクションが貼れないことがしばしばあります。僕はこの3日間は大半がメールでした。偉大なそりゅーしょん。

さてどうでもいいことを書いていたら23:55らしく、爆速で統括をします。

今年の変化点は3月にシリコンバレーに行ったことで、とにかくそこで思考が変わって面白いなと思ったり、人間重視になりました。 あとは12月に就活の真似っ子をして破滅しました。もう何も信じたくないという気持ちがあります。

全然統括できていないですね、来年も色々動きがあると思うのでやっていきましょう。

皆様1年間お世話になりました。来年もどうかよろしくお願いいたします。

 

これは2017年最後のツイートです

http://twitter.com/sukukyon/status/947482473742528515

こんばんは。この記事は生放送ではありません。 2017年もコミケで終わります。多分2010年ぐらいからコミケで[…]

就職活動中? / 逆求人の感想 2017

雑記

こんばんは。kyontan (就職活動中)です。 括弧書きをするとそれっぽいですね。

この記事は 12月24日 に公開される予定ですが、とりあえず色々思うところもありこの部分は 12/11 に書いています。多分どんどん加筆するので長くなるでしょう。 もし24日にこの記事が公開されていたら、それは、 whywaita Advent Calendar 2017 が24日目であり、25日目には whywaita が記事を書くということです。 おそらく誰も遅刻しておらず、無事にクリスマスが迎えられるのでしょう。多分 WHITE ALBUM2 をプレイするといい感じに心が折れていいと思います。僕は多分まだクリアしていません。

さて、記事のURLにもありますが絶賛就活中です。本当に?

自分史上最も性格の悪い文章だという自負があります。途中で奢っていたりマウンティングがあったりします。しかもそんな文章が10000文字以上あります。 気持ち悪いと思ったらすぐにブラウザバックを推奨します。ブラウザバックって最近見ないですがご存知ですか? (→出口)

キーワードは「承認欲求」です。企業よりは人に承認されたいですね。とりあえず Just Because! の10話を見てください。

ちなみにこの記事で述べている過程については全部具体名含めて色々とメモを取っており、このページ (関係者向け) に色々書いてあります。見たい人は入部してください。ところでこの記事は UEC Advent Calendar とは関係ありません。

最後までお読みいただければ大して真面目にやってないな / お前クソだな、ということは伝わると思います。 真面目に就活をしているかは怪しいですが、とはいえ雑にインターンをしてそのまま就職したり、いわゆるTwitter就職/VR転職なんかをする能力/気持ちもないのでそれっぽいフローを実行してみています。そんな話です。

つまるところ、逆求人を一度やってみたかった人間が逆求人をやったので各サービスの雑感を書いただけです。 どのように振る舞ったかというロールプレイングの一例があることにより、これを誰かが読んで活かして頂けたら面白いかなとも思うので書いています。

 

read more »

こんばんは。kyontan (就職活動中)です。 括弧書きをするとそれっぽいですね。 この記事は 12月24日[…]

時給の上げ方 2017

雑記

こんばんは、kyontanです。お金を溜めて早く温泉付き一戸建てで暮らしたい。

この記事は whywaita Advent Calendar 2017 の17日目の記事です。枠が埋まっていてめでたそう。whywaita 先輩、元気ですか?

why「お疲れのところ恐縮ですが早く書け」

お元気そうでなによりです。

16日目は jackaleさんの 最後にwhywaitaと会ったのいつだっけ... - That Can でした。TUATでは最近Crystalが流行っている気がします? (N=2) 僕もやっていきたいですね。

今は完全に頭が回っていないので雑な文章を書きます。@whywaita が時給の上げ方について話して、と言っていた気がするのでそういう話をします。

過去にもこんな記事がありましたし、もしかしたら @whywaita とお金は切っても切り離せない関係なのかもしれません。

私は現在技術系のアルバイトをしています。技術系のアルバイトの良いところは何でしょうか? そう、好きなことをして勉強ができる上に、お金ももらえるというところですね。接客業をやったことがないので偏見があります。郵便の仕分けは最適化していたら楽しかったですが今思うとディープラーニングでなんとかしてほしい気がします。

@whywaita 先輩がどこで働いているのかは定かではないのですが、私は今はインターネットの会社とインターネットの会社でアルバイトしています。掛け持ちです。インターネットってすごいですね。

その他にも退職エントリが2件あることから、今の会社がそれぞれ3社目と4社目になると推測できます。(この夏のインターンを足すと5社になります)

最近インターネットを眺めていた所、とある知り合いがある会社へ就職する、というインタビュー記事を見かけました。就職するというだけでインタビュー記事になるのはすごいなと思いますが、記事中では "4社でインターン/アルバイトをしていた**「ジョブホッパー」**"として紹介されていました。そう考えると、私もジョブホッパーなのかもしれません。個人的にはあまり良い言葉だとは思っていないですが……

時給の上げ方は自分でも良く分かっていないのですが、皆さんも思う所があると思うので、とりあえず晒します。

この図を見ると、色々やった形跡がありますね。しかも掛け持ちしていることが良く分かります。 (なんと凡例にない色のプロットがあり感動しますがよしなに読み取ってください。)上がる会社もあれば上がらない会社もあります。最近は1年以上額が上がっておらずちょっとつらいです。ちょっとだけ。

もちろん会社によって評価体系も様々ですが、アルバイトだとそもそも給与交渉の機会もなく、突然「契約書の更新だからサインしといてね」と言われることもしばしばです。

「上げてほしいな〜」という文脈の話を一言話しただけで上がったこともあります。そんな話を上司にするのは強気ですって? ええ、当時は立場的に強気でしたね。そりゃ突然辞めたら案件進まなくなるような仕事をバイトがやっていたんですから……

概して、時給を上げる(下げる)には、大きく「転職をする」と「給与交渉をする(上長に評価される)」の2つがあると思いますが、そのどちらもを経験した身としては、おそらくアルバイトでは転職した方が上がりやすいです。 特に、エンジニア職のアルバイトは東京では比較的募集している所も多く、引く手はあまただと思うので、うまくやるとトントン拍子に上がるのかもしれません。うまくやるのがポイントで、うまくやらないと上がりません。図からも明らかですね。

転職では人間関係をうまくやりましょう。僕は下手なので遺恨を残してしまいがちです。そんなのどうでもいいという考えもありますが、平和であることに越したことはありません。僕は最近どうにか和解しました。本当かな……

ちなみに筆者は今のところ転職する気はないです。書いておかないと深読みされそうで怖いですね。 お金も大事だけど本当に好きな働き方ができる上に恵まれている環境はなかなかないです……

また、今思うと、「言い値でいいよ」と言われたとある会社でもっと言っておくべきだったのかもしれません。そんな後悔もなきにしもあらずですが、当時は逆にあの額にプレッシャーを感じてしまい色々あったので、やはり難しいですね。正当に評価されていきたい。

ちなみに、周囲の話を聞く限りでは1500円/時以上の額はなかなか耳にしないのですが、それは月給換算すると分かりやすいですね。バリューを出している人たちがもっと貰っているのも聞いているので、バリューを出せると良いですね。

短くなってしまいましたが、僕は自分で作った図を眺めて心が荒んでしまったので許してください。

@whywaita 先輩はどんなお考えをお持ちですか? また機会があったらお話してくださいね。

明日は @yu_ki_kun_1 さんです。あれ、毎回 @yu_ki_kun_1 さんでは……?

 

こんばんは、kyontanです。お金を溜めて早く温泉付き一戸建てで暮らしたい。 この記事は whywaita […]

CoreOS で Docker Swarm クラスタを作ってみた

Infrastructure

こんばんは。kyontanです。JobHunting 活動は順調ではないので頭を抱えています。

寒いです。12月10日です。10日ということは、 whywaita Advent Calendar 2017 の10日目ということです。なんとあと1枠らしいです。

9日目は @kadokusei (~= @hyr3k) さんで 体重 - /var/log/ でした。

ところで文脈もなにもないですが Just Because! が良いです。小宮恵那さん……

さて先日、 Twitter を眺めていたところ 「真っ赤な“1/4Uサイズ”のブレードサーバーが税込4,980円で大量販売中」  という記事が流れていました。 Core i5-2520M@2.5GHz / RAM2G / Diskless という構成ですが、Intel の GbE NIC x4 があるなかなか変態なマシンです。5000円だったのでつい3台買いました。IPMI もあります。ちなみに1台当たりで RAM が 4GB でした。

kamijin_fanta さんという方がこれに VyOS on Hyper-V をやっている記事があるので、こちらもご参照ください。

赤鯖にVyos入れて最高のインターネッツを手に入れた

これは A.T.WORKS というメーカーの国産サーバで、謎です。とりあえずドキュメントとかファームウェアの更新は公式ストアのダウンロードページに転がっています。

何故かシャーシも付いてきたので適当に突っ込みます。10台入るので、あと7台追加できますね。とはいえ部屋の室温で冷却するにはこの程度の密度が限界かと……

画像の左下にある赤いやつがそれです。雑ですね。周りも汚いですね……

さて、ディスクレスとはいえ開けてみると SATAポートもディスクベイもあるので、2.5インチのHDDを買えば普通に使えるでしょう。 しかし先立つものがなく、しかし他のサーバは余っているのでネットワークブートさせて遊んでみることにしました。

PXE とは

PXE とは…… ざっくりと説明するとネットワークブートのための仕組みの1つです。 NIC に書き込まれたPXEブートローダが、ネットワーク上のサーバから OS のカーネルを取得して起動する方法です。

基本的には起動時に DHCP でIPアドレスを取得する際に、サーバが IPアドレス等の情報と一緒にカーネル等が置かれているサーバ(TFTPサーバ)のアドレスを返すことで実現されます。 いわゆる大量のPCを管理する手間を減らしたい(~ シンクライアント化したい) 大学なんかでよく見かけますね。MMA部室の端末でも同様の仕組みを採用しています。 もちろん一般的な誤家庭でも、DHCPサーバとTFTPサーバ等を立てれば実現できます。近年では PXE を発展させた iPXE などもあります。こちらだと例えばカーネルを通常の HTTPサーバから取得するようにできたりします。便利ですね。 実際の実現にあたっては、 「PXE 構築」なんかでググって頂ければ山のように日本語の資料がヒットしますので割愛します。

Container Linux

今回はこれを用いて CoreOS Container Linux を起動させ、自動的に Docker Swarm クラスタを構築したいという話をします。

Container Linux は CoreOS 社が開発している、コンテナ基盤のための軽量Linuxディストリビューションです。docker や etcd と言ったコンテナで用いるソフトウェアがデフォルトで入っているほか、fleet というクラスタマネージャ (というか分散 systemd) なんかがデフォルトで入っています。 CoreOS 社は他にも Docker Registry の Quay やコンテナランタイムである rkt や cloud-config の代替を狙っている Ignition, エンタープライズ向け Kubernetes こと Tectonic の開発なんかもしていますね。

もうお察しかと思いますが、 Container Linux には fleet というクラスタマネージャがあり、更に Tectonic があります。つまり、 Docker Swarm の文脈にはかすりもしません。イケイケな皆さんは Kubernetes を構築すると便利だと思います。 (実は Kubernetes クラスタを構築しようとしたらオンメモリファイルシステムでは容量が足りなかったので Docker Swarm でお茶を濁しています) CoreOS は今回のよう物理ホスト(ベアメタル)に対して直接プロビジョニングをするためのプロダクトも用意しています。 Matchbox です。使ってください。 今回は使いません。

起動してみる

CoreOS はもちろん PXE での起動に対応しており、簡潔なドキュメントがあります。 これに従えば簡単に起動までは行なえます。やってみましょう。

最終的なディレクトリ構造としては以下のようになります。 /tftpboot は適宜 tftp のルートディレクトリに読み替えてください。また、 pxelinux.cfg/default の内容は下に書いてあります。

/tftpboot
├── coreos
│   ├── coreos_production_pxe_image.cpio.gz
│   └── coreos_production_pxe.vmlinuz
├── pxelinux.0
└── pxelinux.cfg
    └── default

default coreos
prompt 1
timeout 15

display boot.msg

label coreos
menu default
kernel coreos/coreos_production_pxe.vmlinuz
initrd coreos/coreos_production_pxe_image.cpio.gz
append coreos.first_boot=1

さて、対象のマシンは起動したでしょうか? 手元では30秒ほど OS の読み込みに掛かったあと、OS本体が約4秒で起動してくるのが観測できました。速いです。

ただ、おそらくログインもできず、ssh もできないでしょう。直接本体に接続されている端末にログインしたい場合は、ドキュメントにある通り、 coreos.autologin を設定すれば可能です。

実際にもうこれで fleet で遊んだりできます。この状況では、 /(rootfs) がメモリ上にあるので、メモリの空き容量分しか書き込むことができませんが、メモリが潤沢にあればこの上に Tectonic や kubeadm を用いて Kubernetes を構築したりもできるでしょう。ちなみに 4GB では足りませんでした。

Docker Swarm

Docker swarm というのは Docker 本体に取り込まれたクラスタリングの機能です。複数のノードでサービスという単位でコンテナの管理が行えます。 Docker 本体に統合されているので、Container Linux に docker がデフォルトで入っているということはそのまま docker swarm mode で既存のクラスタに join させればそのままクラスタの一員となります。 クラスタにはマネージャとワーカの区別があり、マネージャは Raft アルゴリズムで分散合意を行うため、本来であれば耐障害性のためにも3以上の奇数台を用意することが望ましいですが、今回は DHCP/TFTPにしたサーバをそのまま使います。

# docker swarm init
Swarm initialized: current node (hogefuga) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-... 10.0.xxx.yyy:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

上で表示されているコマンドを起動時に入力させればそのまま docker swarm のクラスタにジョインしてくれるでしょう。やっていきましょう。 (ちなみに、デフォルトでは docker swarm のマネージャ自信もコンテナが起動するホストの1つとなります。次のコマンドを打てばそのノードではコンテナが起動しなくなります。 docker node update --availability drain)

Ignition Config

起動時に任意のコマンド等を実行する方法といえば、あの cloud-config がありますね…… Container Linux では最近 Ignition というものに置き換えられました。直接書いてもいいですが、 cloud-config の記法で書いたものは ct (config-transpiler) というコマンドを用いて変換することができます。 ちなみにオンラインのバリデータがあって、 どちらの記法でもここでバリデーションができます。

では用意しましょう。ついでに ssh できるように authorized_keys なんかも追加できます。 ssh したくない? 確かに。 ともかく systemd unit を2つ書くだけです。ところで docker-swarm-leave.service がちゃんと動いてない気がするのでどなたか教えてください。

passwd:
  users:
    - name: core
      ssh_authorized_keys:
        - ecdsa-sha2-nistp256 ...
systemd:
  units:
    - name: docker-swarm-join.service
      enabled: true
      contents: |
        [Unit]
        Description=Docker swarm join script
        Requires=docker.service
        After=docker.service

        [Service]
        Type=oneshot
        ExecStart=/usr/bin/docker swarm join --tokenSWMTKN-1-... 10.0.xxx.yyy:2377

        [Install]
        WantedBy=multi-user.target
    - name: docker-swarm-leave.service
      enabled: true
      contents: |
        [Unit]
        Description=Docker swarm leave script
        Before=shutdown.target reboot.target halt.target

        [Service]
        Type=oneshot
        RemainAfterExit=yes
        ExecStart=/bin/true
        ExecStop=/usr/bin/docker swarm leave

        [Install]
        WantedBy=multi-user.target

 

さて、このファイルを実際に起動時に渡すためには ct で変換したり、 newc 形式のアーカイブにしたりする必要があるのでやります。

$ mkdir usr/share/oem
$ ct < container-linux.config > usr/share/oem/raw.ign
$ find usr | cpio -o -H newc -O oem.cpio
$ gzip oem.cpio

結果的にでてきた oem.cpio.gz を以下のような感じに配置します。

/tftpboot
├── coreos
│   ├── coreos_production_pxe_image.cpio.gz
│   ├── coreos_production_pxe.vmlinuz
│   └── oem.cpio.gz
├── pxelinux.0
└── pxelinux.cfg
    └── default

 

また、 pxelinux.cfg/default も修正します。は以下のようになります。 oem.cpio.gz を読ませているのと、実際にそれを参照させている部分の2箇所です。

 
default coreos
prompt 1
timeout 15

display boot.msg

label coreos
menu default
kernel coreos/coreos_production_pxe.vmlinuz
initrd coreos/coreos_production_pxe_image.cpio.gz,coreos/oem.cpio.gz
# append console=tty0 console=ttyS1 coreos.autologin=tty0
append coreos.first_boot=1 coreos.config.url=oem:///raw.ign

さて、起動させて見ましょう。マネージャ側で docker node ls とか叩けば分かると思います。 いい感じになりましたでしょうか?

あとは docker service コマンドでよしなにサービスを作ってやると、いい感じにロードバランスされたりヘルスチェックしたりライブアップデートできたりすると思います。 ポートの公開をすると、マネージャを含む全てのノードでそのポートが共有され、自動的にロードバランスされます。つまり、そのサービスのコンテナが動いていないノードにアクセスしても、内部のトンネル(VXLANです)を通ってコンテナへの疎通性が確保されます。

そのあたりは「docker swarm」とかでググると出ると思います。 nginx とかでも簡単にできますね。

ところでボリュームのマウントは癖があって、 bind なんかは各ノードのローカルファイルシステムを参照します。なので、そういったことをしたい時はよしなにやりましょう。 nfs とかを検証できると良いですね。

ちなみに再起動したりするとどんどん死んでるノードが一覧に増えますが気にしないでください。気になる時は docker node rm で消しましょう。以下がワンライナーです。

 
docker node ls | tail -n+2 | grep Down | cut -d' ' -f1 | xargs -r docker node rm"

さて、今回は簡単に Docker Swarm を用いたクラスタの構築をしてみましたが、実際により大きい規模でやろうとすると Kubernetes や DC/OS (Mesos, Marathon) なども候補に入るかと思います。 そちらについてもやっていきましょう。

ところで Docker / CoreOS をプロダクションでバリバリ使うサービスに興味のある方向けに、 こんな求人こんな募集があります。もしご興味ありましたら Twitter 等でも良いのでお声掛けください。

では皆様、よいコンテナライフを!

こんばんは。kyontanです。JobHunting 活動は順調ではないので頭を抱えています。 寒いです。12[…]

資産管理術について 2017

生活

こんにちは、kyontanです。執筆時点での現金資産は 38558円 です。

今年も12月がやってきました。この記事は whywaita Advent Calendar 2017 の3日目の記事です。まだ10枠空いていますが、 whywaita 先輩、元気ですか?

kyontan / whywaita (@whywaita) って誰? という方もおられるかもしれません。彼と私は単なる大学の先輩後輩というだけで、それ以上の関係はありません。 それ以上の関係はないと明記すると怪しくて良いですね。ありません。 2日目は村山直紀さんの 自然気胸の話とか(その2) でした。 自然気胸、周りに発症している人が何人かいて、割とよくあるのかなと思っています。僕自身は入院したことは1度しかありませんが、なるべく健康であるに越したことはありませんね。  

皆さんお金は好きですか? 僕は好きです。たくさんあると嬉しい気がします。ただ、今の立ち回りとしては、仕事に求める要件は給与が高いことではなく朝遅いことです。あと早く温泉が家から湧出してほしいです。

将来はウン千万プレイヤーでバリキャリでイケイケになるであろう、尊敬すべき whywaita 先輩に必須のスキルはなんでしょうか? そう、資産管理術ですね。 バリキャリという表現からはまどかのお母さんである詢子さんを想起させるものがありますね。 彼は資産管理をしているのでしょうか。確か MoneyForward を使っていた気がします Dr.Wallet を使っているみたいです! (2017-12-03 13:45 追記)。貯蓄の額は知りません。とにかく寿司をごちそうしてください。

僕は詳しくないのですが、とくに最近はフィンテックとかブロックチェイン(これもフィンテックの文脈に入りますが)とかお金周りの技術進歩の話を目にすることも多いですね。家計簿サービスもその1つだと僕は思います。

私は資産管理に Dr.Wallet を使っています。家計簿アプリとしては他にも MoneyForward や Zaim がありますが、このアプリのイケているところはレシートをスマホで撮影して送信すると、店舗名やジャンル、額などを自動的に判定して登録してくれるところです。アプリもイケてて最高です。使いましょう。 (ただしディープラーニングでイケイケとかではなく、人力OCRみたいです…… 素直な解決方法デスネ)

read more »

こんにちは、kyontanです。執筆時点での現金資産は 38558円 です。 今年も12月がやってきました。こ[…]