隙あらば寝る

うぇぶのかいしゃではたらくえんじにあがかいています

XSS Game by google

XSS game というサイトを紹介する。 攻撃側として xss の脆弱性を悪用するゲームで xss 対策啓蒙の一貫として google が公開したらしい。 悪用と言っても alert を出すところまで。 (とはいえalertができたらセッションハイジャックもできるわけで実際にでき…

エンジニア立ち居振舞い: Be strict when sending and tolerant when receiving

お題「エンジニア立ち居振舞い」 お題、色々な考え方を知ることができて勉強になった。皆様の勤労に感謝しつつ自分も一つ。 rfc1958 にインターネット構築の原則というのがあって、その中の 3.9 節に Be strict when sending and tolerant when receiving(送信は…

go を書く際に意識する命名ルール

What's in a name? golang 開発者 Andrew Gerrand さんの発表資料。 変数や型、引数の命名時にどうするのが良いか書かれている。 これから go を書く人はもちろん、既に書いている人でも復習がてら見ておくと参考になると思う。 資料内でもおすすめされているが、…

go で変数のメモリ割り当て状況を確認する

tl;dr 気になったら testing.B で測定 -gcflags=-m を使って最適化状態を確認 heap を使っているつもりでもコンパイラが stack にのせてくれるケースがある ベンチマーク パフォーマンスについて調べるためにベンチマークを作成していた所、想定と異なる挙動…

go-debian

go-debian という go から debian パッケージを操作するためのライブラリ。 作者自ら概要と簡単な使い方を紹介している。 Ceci n'est pas une -EPIPE 普段 deb のお世話になることがおおいのでコードからパッケージ情報にアクセスできるのは運用方面の作業で自…

tcpdump で dropped by kernel をなくしたい

結論 tcpdump に適切なオプションを渡す。 -B で大きい数字を指定することでカーネルバッファのサイズを増やす -n で余計な名前解決を減らすことでカーネルバッファの読み込みスピードを上げる -w で tmpfs を指定すると IO のスピードをかなり減らせるので…

ファイルシステムの拡張

linux のファイルシステムがフルになってしまって拡張できないかな? と相談を受けた。結果的にうまくいったのでまとめる。 ディスク拡張 → パーティション設定 → ファイルシステムのユーティリティで拡張 の流れでできる。 前提 ディスクに対してパーティション…

rm -rf / について気になった

話題になっていた以下の記事、rm -rf は守られているという話。 japanese.engadget.com 少し気になったので背景を調べてみた。 まずは試してみる。 $ sudo docker run -it --rm ubuntu:12.04 bash root@4608f379dea7:/# rm -rf / rm: it is dangerous to operate…

1password を linux で使いたい

mac に linux vm を立てて使っていると、1password が使えないのが不便。 なんとかできないのか調べてみた。 linux 版 まずは linux 版があるかどうか調べてみたが、そもそも存在していないようだった。 公式サポートでは wine を使って windows 版の 1passw…

Go 1.5.4/1.6.1

Go 1.5.4 と 1.6.1 のリリース案内が Google Group で周知されていた。 影響範囲を理解するために少し追ってみた。 他に情報が無いか調べてみると、reddit で以下のポストを見つけた。 Go 1.5.4 and Go 1.6.1 pre-announcement : golang oss-sec: CVE reques…

はてなブログに reddit リンクを貼る方法

yoru9zine.hatenablog.com で書いたが、はてなブログでリンクをうまく貼れないことがある。 url shorter で回避できたのでまとめてみる。 url shorter とは bitly や goo.gl といった url を短くするもので、twitter 等で使われているのは見たことがあると思…

はてなブログとリンク

さっきの記事を書くときに気づいたが、reddit.com にリンクを貼ると投稿時に BadRequest になる。 どうもスパムよけか何かなんだろうが、さっぱり意味がわからず混乱したのでユーザ側画面にフィードバックしてほしい。 あと%エンコードなリンクもプレビュー…

Arch linux in vmware

ふと思い立って vmware に arch linux をいれて X の設定をしていたのでメモ。 vmware 関連の情報はオフィシャルwikiにがっつり情報がまとめられている。 しかし、画面の解像度を動的に変更するには vmware-user-suid-wrapper を使えば良いとの事だったがう…

トラックパッドのクリックとタップ

mac のトラックパッドはクリック操作を 実際に押し込む(デフォルト) タップ どちらかに設定できる。 タップのほうが好みなのでいつも設定変更をしているが、起動直後のユーザ選択画面では押し込みがデフォルト。 自分のユーザを選択するのには押し込まないと…

mac で gif アニメ作成

昨日書いた yoru9zine.hatenablog.com で git アニメを作ってみたが、思っていたよりも簡単に作成ができた。 実際使ったのはLICEcap というソフトウェア。 Cockos Incorporated | LICEcap 起動すると透明な枠だけみたいなウィンドウが出てきて、その中に入れ…

du の結果をリアルタイムに表示する dusort を書いた

使用容量の多いディレクトリを探す mac ツールは色々あるけど有料だったりするし別にGUIで見たいわけではない。 cli だと du -sh * | sort -h あたりが有力。 ただしこれはインクリメンタルに状況を出さないのですぐに結果がでなくて使いにくい。 というとこ…

visual studio code キーバインド

visual studio code のキーバインドをまとめてみた ドキュメントの The Basics of Visual Studio Code や Editing Evolved からつまみぐい。 と、一通りメモしてから以下のページの存在に気づいた... Visual Studio Code Key Bindings こちらも必見。 エディ…

タスクかんばん

trello? もはや紹介するという知名度でもないと思うが、trello.com というツールがある。 これは最近流行っているタスク管理ツールで、かんばん式のタスク管理ができる。 まるでホワイトボードと付箋があるかのような使い方ができ、personal kanban と呼ばれ…

mac しか持っていない人の確定申告

tl;dr 紙でやろう 雑感 イマドキ当然 e-Tax だよねという感じだが、 windows がない人は辛い。 そのシステムどうなのというのは置いといて、こちらとしては申請しないといけない以上文句を言ってもしょうがない。 当方 mac しか持っていないので今年は紙でや…

golang race detector

race detector? golang には race detector というデータ操作の競合を検出してくれる機能がある。 https://golang.org/doc/articles/race_detector.html マルチスレッドなプログラムを書いたことがある人は経験があると思うが、2つ以上のスレッドが同じデー…

golang json decoder and eof

tl;dr; json.Decoder は EOF を検出するとその後 decode を行わなくなる。 この挙動は tail しつつデコードを続けるような要件と合わない。 詳細 ファイルを tail しつつ、1行毎に json が追記されるようフォーマットを decode したいと考えていた。 以下の…

クライアントサイドでリッチな編集機能 in react

js

ちょっとした web アプリを作成中、編集画面をリッチに構築したい。 クライアントサイドのフレームワークは移り変わりが激しくうまく追えてないが、 今だと react.js が良さそう。 react.js は facebook が開発しているが、その延長線(?)でリッチテキスト編…

awesome list

awesome-XX というリポジトリがある。 XXにはプログラミング言語等の特定技術が入り、そのリポジトリはリンク集になっている。 awesome(すごい)-XX という名前の通り、特定技術についてイケてるライブラリやテクニックをまとめており、 「こういうことしたい…

プログラミング言語を学ぶためのリンク集

github.com プログラミング関連の無料読める情報をまとめたリポジトリ。 大変ありがたいことに日本語のリンク集もある。 特定の言語について調べるならググるよりも効率が良さそうなので助かる。

フランス語docker

github.com docker をコマンドまるごとフランス語に翻訳してる。 なぜ docker -> marcel なのかは謎、フランスの哲学者?あまり知識がなくよくわからなかった。 コマンド的には example にも書いてあるように docker run → marcel chauffe といった具合。 気…

計算機科学の勉強

github.com OSS 大学という、計算機科学を勉強したい人に向けて作られたリポジトリ。 オンラインで利用できる授業のリンクが README にまとめられている。 面白いのは大学という体でやっているところで、 入学者はまず github の issue に自分のプロフィール…

golang で ip アドレス操作をするライブラリを書いた

golang で IP アドレスを操作するにあたって、 あるアドレスから相対的に前後のアドレスを得る ブロードキャストアドレスを得る というのがやりたくなってライブラリ書いた。 github.com API は以下。 godoc.org net.IP と net.IPNet を匿名フィールドにした…

docker-machine を普段使いする

docker の周辺ツールとして docker-machine というものがあり、これが色々と便利なので紹介する。 vagrant を使ったことがある人なら、あれと同じレイヤーだと思うとわかりやすい。 この内容はすべて mac をローカルマシンとして使う前提。 vm 作成 docker-m…

docker overlay network driver を試してみた

複数ホストのネットワーク(overlay)が使い物になってきたそうなので試してみた。 前提 docker 1.10 を利用 docker 自体は以前から使ったことがある 試してわかったこと docker network create でマルチホスト(overlay)なネットワークが定義できる(vxlanらし…

go vendoring

tldr; golang でコンパイル時に GO15VENDOREXPERIMENT という環境変数を設定すると vendoring が有効になる。 1.6 でデフォルト有効になるので、配置を変更するだけで透過的に使える 今は周辺ツールの対応中で実用は厳しいが 1.6 が出るタイミングには出そろ…