なかっちゃんtech blog

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

研究室slack化のすすめ

qiita.com

こんな感じで書きました.ここでだすとここがメインの話になってしまうのでQiitaでだしました.

以上

株式会社はてなに入社しました

株式会社はてなに入社しました

株式会社はてなに入社しました - hitode909の日記

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するの緊張しますねえ

SoftetherでVPN構築

久々の技術記事です. conohaで借りてるVPSに追加機能として構築しました.

そもそもなんで建てようとなったのかというと,Faceboook,インスタともにうるさかった北海道旅行がきっかけです.あまりにfreewifiにつなぐ機会が多く,怖いなぁって思ってました. きちんと通信路を安全なようにしたいなと思い立ったのが理由です.

今回はfreebsdに構築しました.

install

http://www.softether.org/ からfreebsd用の最新版をダウンロード https://ja.softether.org/4-docs/1-manual/7/7.3 を見ながら作業を進める

ダウンロードファイルをmakeするとなんかcheckされた

VPN Tools>Check
Check コマンド - SoftEther VPN の動作が可能かどうかチェックする
---------------------------------------------------
SoftEther VPN 動作環境チェックツール

Copyright (c) SoftEther VPN Project.
All Rights Reserved.

この動作環境チェックツールを実行したシステムがテストに合格した場合は、SoftEther VPN ソフトウェアが動作する可能性が高いです。チェックにはしばらく時間がかかる場合があります。そのままお待ちください...

'カーネル系' のチェック中...
              [合格] ○
'メモリ操作系' のチェック中...
              [合格] ○
'ANSI / Unicode 文字列処理系' のチェック中...
              [合格] ○
'ファイルシステム' のチェック中...
              [合格] ○
'スレッド処理システム' のチェック中...
              [合格] ○
'ネットワークシステム' のチェック中...
              [合格] ○

すべてのチェックに合格しました。このシステム上で SoftEther VPN Server / Bridge が正しく動作する可能性が高いと思われます。

コマンドは正常に終了しました。

その後fileを/usr/localへ

sudo mv vpnserver /usr/localへ

serviceコマンドで使えるように/usr/local/ect/rc.dにvpnserverファイルを追加 /etc/rc.confに vpnserver_enable="YES"を追加

実際の作業

コマンドの実行後HUBの作成

VPN Server > HubCreate 

ハブを指定してユーザ作成

VPN Server > HUB hoge
VPN Server/hoge > UserCreate
VPN Server/hoge > UserPasswordSet

L2TP over IPSecの設定と仮想 NAT および DHCP サーバー機能 (SecureNAT 機能) の有効化

VPN Server/hoge> IPsecEnable
IPsecEnable コマンド - IPsec VPN サーバー機能の有効化 / 無効化
L2TP over IPsec サーバー機能を有効 (yes / no): yes

Raw L2TP サーバー機能を有効 (yes / no): no

EtherIP / L2TPv3 over IPsec サーバー機能を有効 (yes / no): no

IPsec 事前共有鍵の文字列 (9 文字以下を推奨): ********

VPN 接続時に仮想 HUB 名が省略された場合のデフォルト仮想 HUB 名: example

コマンドは正常に終了しました。
VPN Server/hoge> SecureNatEnable

参考文献 https://qiita.com/showwin/items/92861057a8b62611444d

これで公衆wifiも安心できますね. 細かいとこはまだ把握できてませんがおいおい確認しながら設定をかえつつよりセキュアに便利にやっていきます.