なかっちゃんtech blog

勉強会とか日々の勉強の記録

YAPC::Okinawa行ってきた

ツイッターではうるさかったですが,3/2~5まで沖縄に行ってきました.福岡以来でした.ちっと研究室配属の関係で書くのが遅くなってしまいました. 福岡記事はこちら kaoru1615.hatenablog.com

学生支援

今回は学生支援で行かせていただきました!.スポンサー企業の皆様ありがとうございました! 個人的にはGaiaxさんやペパボさんとインフラの話をもっとしたかった.Webの方が多いのでなかなかインフラの話できないなぁって思っていたので,個人的にすごい嬉しかった. 東京はできれば登壇,最低でもLTとかしたいなぁって思っているのでまたお願いできたらなと思います!

見たセッション

Webサービスを監視するときに僕達が考えたこと

papix.hatenablog.com

普段からサーバ監視をする学生という完全に例外感はありましたが,しかし監視はセキュリティ的な監視で,運用的な監視はあまりしたことがありません(厳密にはうそ).一応serverlessでwebサーバ監視するツールはpythonで実装していて,こちらです.(宣伝ですがlambdaの都合でpython実装です.) 200が帰ってこなかったらメールが飛ぶようになっています.まあ一過性のものだと200が帰ってこなかったことをトリガーにインスタンスのスケールアップとプロセスの再起動でとりあえず耐えられそうですね.ほかはそれなりの対応が入りそうですがね.

あとは何を持って障害とするかみたいな話はすごく勉強になりました,一過性があるのか,それとも障害が発生しているのか,それを見極めないと真実と違った通知が来てしまう,それはみんなにとって不幸なことなのでできる限り0にしたいというのが実際のところだと思うので難しいなぁって思いました.あとMackerelの中身気になる

あと思ったことは可視化するということで今まで人間の感覚でやっていたものの敷居を低くしてくれるということが,どれくらいいいことなのかということです.そもそも今までの障害とかの原因ってほんとに探すの大変だと思うんですよ.それが可視化できる,しかもうまくやれば前兆を察知できるというのは運用にとって有意義なことだと思います.そのサーバに合わせて必要な通知をしてあげることが大切なのかもしれない.

お客さんに悟られる前に障害対応とか考えたことなかった.

HTTP/2にまつわる事実と誤解

www.slideshare.net

HTTP2はパケットロスに弱いってことはわかったけどグラフもいっぱいあったしきちんと見直していきたい.ACKの返し方ってのもさることながら,通信路の高速化によってなおさらエアータイムもできてしまうので難しいですよね.  

全部Perlが教えてくれたこと

speakerdeck.com

  • コミュニティはgive and takeで行きましょう 福岡でもコミュニティやらせていただいているのでなおさら考えることがたくさんありました.人を定着させつつ,お互いに与えることができるようにやっていくのさえ大変なのにそれを何年も継続させていくってのはもっと大変だと思います.難しいし,これからも考えて行くことだなぁと思います.

gest 新屋さん

形式自由文法とか2年前に講義でやったいらいで覚えてないなぁ. 無限級数となるものをいかに計算機に扱わせるかがおもしろかった. 普通にオートマトンの講義とかうけてみたいなぁ

Perlを中心としたワンライナーあれこれ

speakerdeck.com

一回限りのものはさっと書いて作業を終わらせそう いいですよね,ワンライナー 全部書くのめんどくさいしぱっぱと一回だけのものは終わらせちゃいましょう

いろいろ書かなくていいならそれですませたいですよね

WordPress運用を支えるPerl

静的,動的コンテンツをうまく配信させるにはどうするか これはもう一回資料みたさある

perlのおかげの出会い

入学式なりアナグラくんなりPerlYAPCがないと会えなかった出会いがあってすごい好きです.次回東京はなんか登壇できたらなぁという気分

Perl入学式in福岡

rebootということでFukuoka.pmの方々と顔合わせしてきました.あとは校長の@papixさんを@xtetsujiさんに紹介していただきました.これから5月くらいに第一回を開催できたらいいなという方向で調整しています.Perlがくれたものの分少しでも誰かのためになればなという思いでやっていこうかなと思ってます.次回YAPC東京は入学式周りの話とかありきたりだけどしてみたい.

心地よい環境のために

X1が帰ってきたついでに環境の再構築をしてる.思ったより手こずってしまった.

ここに自分にいい感じの環境再構築方法を書いていこうと...

んでここからは事象のメモ

UbuntuVirtualBoxからrawdiskのwindowsを呼ぶために

こちらを参考(丸パクリ)にさせていただいた.

細かいことは省略しておこう.今回詰まったのは2箇所

WayLand vs Xorg

Ubuntu17.10で何も触らずにログインするとGUIはWayLandで実行されます.17.10が出た当初は日本語が対応していないという理由で確実に使わなかった.しかしWayLandのmozc日本語対応したんですね.全く気づけなかった.... tweetdeckの挙動とかよくなってた.以前は半角と全角を入れ替えると勝手に入力されなくなるとかいうのもあったんだけど,改善され,ディスプレイ周りもxrandrコマンドを使わずともまあそこそこにいい感じになってくれていた.「おー 改善されてるじゃん」って気分だったんですが,WayLandだった.

なんで気づいたかっていうとvirtualboxでraw disk上のwindowsを呼ぼうとしたとき,そもそもsudoでvirtualboxがうごかなかった.

nkchan@x1-nk:~$ sudo virtualbox 
Qt WARNING: QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
No protocol specified
Qt FATAL: QXcbConnection: Could not connect to display :0
中止

これの原因は結局WayLandでした.細かい理由まではわからんけどroot権限かつ,グラフィックを伴うということでだめだったぽい.解決したのはうれしい.でもねtweetdeckが滑らかに動くのは嬉しい. なのでwindwosを使わないときはWayLand,使うときはXorgを使うことにした.これでプレゼンしながらツイッターが捗らなくなるね!

なんか32bit版が入ってた?

これなことがあって,エラーコードでぐぐって,このページにたどり着いて,このページのとおりにしたら動いたw askubuntu.com

追記

LaTeX環境をubuntuに移そうと思っています.さて環境の構築しなきゃなぁ

ICMP ってL3のプロトコルですよね?

仮配属でCISCOルータで遊ばせてもらってるので久々にネットワークで遊んで楽しんでます.んでいろいろ調べてたわけですが

changineer.info

こちらのサイトに

ICMPは、以下の誤解が巷にあふれています。
- ICMPはUDPである
- ICMPはLayer3のプロトコルである
これら主張は大嘘です。知恵袋などの質問サイトを見ると、「pingのポート番号を教えて下さい」等の質問がありますが、ICMPはTCPでもUDPでもありません。このような誤った概念を持たないようにするには、まずはIPのprotocol numberの概念を理解する必要があります。

って書いてあって「はえええ??? ICMPってL3のプロトコルじゃないの???」って思いですね,流石に調べた.

いや...他のサイトはL3プロトコルって書いてるんだけどというわけで勉強ついでにRFC792に行きました.

イントロの

The Internet Protocol (IP) [1] is used for host-to-host datagram service in a system of interconnected networks called the Catenet [2]. The network connecting devices are called Gateways. These gateways communicate between themselves for control purposes via a Gateway to Gateway Protocol (GGP) [3,4]. Occasionally a gateway or destination host will communicate with a source host, for example, to report an error in datagram processing. For such purposes this protocol, the Internet Control Message Protocol (ICMP), is used. ICMP, uses the basic support of IP as if it were a higher level protocol, however, ICMP is actually an integral part of IP, and must be implemented by every IP module.

ってことで「Gateway to Gatewayでやってるときにエラーのレポートしてくれたらいいよね.それをICMPとする.んでこの機能はIPを前提としているのでIPよりも上のレベルのプロトコルのようだが,IPにとって不可欠なものであり,全てのIPモジュールはこれを実装しなければならない.」って書いてますね.んでTCP/IPのモデルで考えてICMPがL4のプロトコルだと仮定してもL3のIPにとってL4のICMPが不可欠なものだとしたらそれは思想に反し,下のレイヤが上のレイヤに依存していることになる.というわけで仮定はおかしいということになりますね.

んー やっぱ本質とかなんでそれができたかどうかを知るときはRFCを読むに限りますね.

バイトの成果のあれ

やっとこさある程度のとこまで言ったのでpushです github.com

Nodeに半年苦戦して結局できず,pythonにシフトして3ヶ月くらいですかね.もう一人のバイトの人とここまで完成させました.
READMEはCognitoを用いたログイン機構ができたらきちんと書きます....

一旦ここで区切りです 会社のリポジトリにpushするの緊張しますねえ