oinume journal

Scratchpad of what I learned

Make VirtualBox's network faster with paravirtualized network adapter

virtio makes VirtualBox's network faster. In my case, it's 1.7x faster.

Building Vagrant box from VirtualBox OVF

Packer can build Vagrant box from VirtualBox OVF file.

RDS(MySQL)のバイナリログはすぐ消えるから注意

RDSではバイナリログはすぐ消えてしまう。もし自前でスレーブを立てたりするためにバイナリログをある程度とっておきたい場合はプロシージャを実行することで保持期間を伸ばすことができる。

AnsibleでPlaybook流した時のgit commit hashをファイルに出力したら捗った

「このサーバにどこまでPlaybook流したんだっけ?」みたいなことでよく悩んでいたので、AnsibleのPlaybookが入ったリポジトリのgit commit hashをファイルに出力してそれをサーバーに置くようにしてみた。 こんな感じのアクションをPlaybookに書いて簡単にで…

新年の抱負の進捗どうですか?

2015年の抱負 - oinume journaloinume.hatenablog.com こんな感じの新年の抱負を書いたのだけど、そろそろ2015年も40%経過したので進捗報告。 Dockerを実戦投入する 進捗ダメです。やっと個人でDockerを使い始めたレベル。 英語でブログエントリーを書く割合…

開発スピードと技術的負債

よくある「開発スピードを優先させるか技術的負債をなるべく発生させないようにするか」という議論、ケースバイケースだとは思うけど、ことプロダクトの立ち上げ段階では、悩んだら「開発スピード」を優先させるようにするべきだと自分は思ってる。 理由は …

Mocking a HTTP access with http.Transport in Golang

Mocking HTTP access with http.RoundTripper

Changing bower package cache directory

bower caches packages in ~/.cache/bower. How can I change the directory? bower's document says "Add the following in .bowerrc" but it's totally wrong. "storage": { "cache" : "~/.bower/cache", "registry" : "~/.bower/registry" } I try the co…

2015年の抱負

一年の計は元旦にあり、という言葉がありますがこのエントリーは1月4日に書いています。どうもこんにちは。あまり一年の目標は立てずにフラフラと生きてきたんだけど、アラフォーに近づいてきてそろそろ自堕落な生き方に危機感を覚えてきたので今年の目標を…

2014年振り返り

1/3に2014年の振り返りをしている時点ですでに周回遅れになっているわけですが... 技術的な振り返りは2014年に使ってみた技術に書いたので、仕事やプライベートのことを振り返ってみる。 仕事では7月ぐらいにゲーム系じゃなくてメディア系を立ち上げる部署に…

2014年に使ってみた技術

2014年に導入してみた技術のまとめ。Ansible, Packer, Go, peco, tmux, tmuxinator, Atomなど。

Macで特定のポートを使用しているプロセスを特定する

mac

ターミナルで $ lsof -i :3000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME go 2087 a11920 269u IPv6 0x7574d6a56e437f1 0t0 TCP *:hbci (LISTEN) って打つと3000番ポートを使ってるプロセスが調べられる。 Mac OS X Yosemiteパーフェクトガイド (…

Goで標準出力をキャプチャする

GoLangで標準出力をキャプチャするやり方のコード例。

GoLangでJavaのenumっぽいライブラリ作った話

GoLangでJavaのenumの機能を実装したらgoenumというライブラリを作ったよという話。

Recent open source activities

pmd https://github.com/pmd/pmd/pull/44 CPD (Copy Paste Detector) supported GoLang. go-xorm https://github.com/go-xorm/xorm/issues/166 Suggested and implemented "soft delete" for xorm. My pull-request was immediately merged! (very impressiv…

Macでファイルが変更されたら自動的にgofmtをかける

fswatchを使うと楽っぽい。 $ brew install fswatch $ fswatch . | xargs -n1 -I{} gofmt -w {} gofmt -w だと、stdoutに出力せずに直接対象ファイルに書き込まれる。

gunicornをローカル開発環境のWebサーバとして使う

--reloadオプションがバージョン19.0からサポートされたので、このような感じで起動するとローカルの開発サーバとして使える。gunicorn --access-logfile - --reload -b 127.0.0.1:3000 -w 1 app:app

Goでnilなsliceやmapを返すと空のsliceやmapになる

タイトルの通りだけど知らなかったので。明示的に空のsliceやmapを作らなくてもいいのは楽だ。 http://play.golang.org/p/veOWHGDdcn package main import "fmt" func emptyMap() map[string]string { return nil } func emptySlice() []string { return nil…

golintの-min_confidenceでチェックするレベルを変更する

golintの引数で-min_confidenceというものが指定できるのでこれを使って特定のチェックをかけないようにするという話。

Revel Frameworkでのテスト

Revel Frameworkのテストについてまとめてみた。Revelは独自のユニットテストの仕組みを持っていて、サーバーを起動してそこに対してHTTPのクライアントでアクセスする仕組みになっている。

Atomで突然の死ジェネレータを作ってみた

Atomのpackageを作る練習として突然の死ジェネレータを作ってみた。

Nginxのserver_nameに正規表現で量指定子を使うとエラー

Nginxのserver_nameに正規表現の量指定子({})を使う場合は、ダブルクォートで括らないとエラーが出る。

Goのstructとinterface

社内でGo勉強会をやったのでその時に自分が発表した時の内容。オブジェクト指向的なことをGoでどう実現するのか、どの辺を諦めなくてはいけないのかをまとめてみた。

IntelliJ IDEAのgo-lang-idea-pluginをビルドする

最近Goを少し書くようになった。PythonやRubyを書く時はIntelliJを使っているので、GoもIntelliJで書きたい。ただ、IntelliJからインストールできる公開されているプラグインは今年の1月の古めのものなので、go-lang-idea-pluginを自分でビルドしてインスト…

Jenkinsで過去のビルドをワンクリックで再ビルドしたい

結論から言うとRebuild Plugin使え。

MySQL 5.6で本当にオンラインでDDLが実行できるか検証してみた

MySQL 5.6でオンラインでDDL実行してもレコードのINSERT, UPDATEが本当にブロックされないか調べてみた。結論としては本当にブロックされなかった。

ノンアルコールビールはサッポロ プレミアム アルコールフリー ブラックがオススメ

最近諸事情によりノンアルコールビールを飲むようになったのでステマ記事。 コンテキスト ビール一杯で普通に酔えるぐらい酒が弱い ビールは飲みたいけど、飲んでしまうと寝むくなって何もできなくなる ビール飲んでサッパリした後にもう一仕事したい なぜサ…

vagrant ssh でログインせずそのままコマンドを実行したい

vagrant ssh -- uptime ってやるとuptimeをそのまま実行できる。--は引数の終わりを表すらしい。

PackerでJapanizedなUbuntu 14.04のVagrant Boxを作ってみた

TimeZoneがAsia/Tokyoで、aptのミラーがjp.archive.ubuntu.comなVagrant Boxを作ってみた。

brew install nodebrewできるようになった

ついカッとなってnodebrewのFormulaを週末に作ってしまった。後悔はしていない。勢いで作ったので2回ほどプルリクのレビューにひっかかってしまった。ドキュメント嫁的な指摘もあったりしてションボリしつつ、でもこれで nvm 使わなくなれるのでちょっと嬉し…

Atom Editorで複数行選択して行頭に文字列を入れる

sublime-style-column-selectionを入れて、Cmd + Shift + l(エル) で複数行を選択状態にして"> "を入力する。ESCを押すとカーソルの複数行選択が解除される。

Atom Editorで複数行選択(矩形選択)

Atom Editorで複数行選択(矩形選択)するには、sublime-style-column-selectionというパッケージを入れればおk

はてなブログのMarkdown記法でネストした箇条書き

GitHub Flavored Markdownだと * A * B * C みたいに書くとCがインデントされるんだけど、はてなブログではそうなってくれない!と思って問い合わせしてみたら、半角スペース4つでインデントされるとのこと。 A B C おおー、ちゃんとインデントされてる!聞…

Atom Editorがオープンソースになったので使ってみた

GitHub謹製AtomエディタがOSSになったので使ってみたメモ。

ターミナル環境を見直す(3) - tmux編

今回は第3弾でtmux編。マウスホイールによるバッファのスクロールの設定やらいろいろ。

最近のWeb系フルスタックエンジニアのお仕事

JavaScript or CoffeeScript + AngularJSとかBackboneJSでいい感じのページを作る CSS/Sass + HTMLコーディング Gruntとかでminifyとかビルド Ruby/Rails, Python/Django, PHP/CakePHP, Node.js/ExpressとかでAPIサーバ実装 データベースの設計とか(MySQL, M…

ターミナル環境を見直す(2) - percol編

ターミナル環境を見直す(1) - zsh + prezto編 - おいぬま日報に引き続き第2弾。 今回はpercolというものをインストールしてみた。percolを一言で言うと、シェル版のAnything.elまたはVimのUniteという感じなのかなぁ。percolについてはターミナル版anything…

ターミナル環境を見直す(1) - zsh + prezto編

zshとprezto(oh-my-zshみたいなもの)でターミナル環境を改善しようとする試み。

conoha VPSにUbuntu 14.04(Trusty Tahr)をインストールしてみた

Ubuntu 14.04 LTSがリリースされたので、conoha VPSにインストールしてみた。UnixBenchもとったよ。

会社の本番環境をJava8で動かそうとしたらNewRelicでエラーが出た

そろそろJava8でコード書きたい ↓ まずはJVMをJava8で動かさないと...!(JVMに問題があった時に詰む) ↓ 本番のJVMをJava8にした ↓ 起動時にNewRelic入れてるサーバでエラーが出た ↓ 対応に数ヶ月かかるかもしれないとのこと\(^o^)/ (←イマココ) 出たエラー…

開発効率をUPする Git逆引き入門を読んだ

Git

開発効率をUPする Git逆引き入門作者: 松下雅和,船ヶ山慶,平木聡,土橋林太郎,三上丈晴出版社/メーカー: シーアンドアール研究所発売日: 2014/04/09メディア: 単行本(ソフトカバー)この商品を含むブログ (4件) を見る 著者の@matsukazuさんより献本してもら…

JVM Operation Casual Talks #1でLTとパネルディスカッションしてきた

JVM Operation Casual Talks #1でLTとパネルディスカッションしてきました(togetterまとめ)。 運用に効く!JVMオプション三選 from Kazuhiro Oinuma この日登壇した人でJVM好きな人っていたんだろうか?っていうぐらいLL寄りな人が多かった印象だった。パネ…

Flask + BeakerでセッションデータをRedisに保存する

BeakerというWSGI Middlewareを使ってFlaskのセッションデータをRedisに保存するサンプル。

Redisで全てのキーを取得する

keys * Redis入門 インメモリKVSによる高速データ管理 (アスキー書籍)作者: Josiah L. Carlson,長尾高弘出版社/メーカー: KADOKAWA / アスキー・メディアワークス発売日: 2014/01/16メディア: Kindle版この商品を含むブログを見る

vagrant up した時にprovisionしたくない

$ vagrant up --no-provision いっつも忘れる。 実践 Vagrant作者: Mitchell Hashimoto,Sky株式会社玉川竜司出版社/メーカー: オライリージャパン発売日: 2014/02/21メディア: 単行本(ソフトカバー)この商品を含むブログ (5件) を見る

nodemonを使ってFlaskなWebアプリを自動でリロード

nodemonというツールを使うとPythonのWebアプリケーションの自動リロードがより便利になるという話。

Python3に対応したtomahawk 0.7.0をリリース

久々にtomahawkの新しいバージョンをリリース。今回はずっと放置していたPython3対応(Python3.2+)をやっとこさ完了した。 Python3はいろいろ変わり過ぎていてもう諦めようかなーと思っていたんだけど、去年のPyCon APACでsixっていうモジュールを知って、「…

TypeScriptでNode.jsのexpressを使ってHello worldしてみる

TypeScript + Node.js + expressでHello world!するサンプルプログラム。

テック系ポッドキャスト

最近Rebuild.fmというテック系ポッドキャストを聴く延長で、The Newsも聴くようになった。これはApple、ゲーム、ギーク文化などのテック系の最新ニュースを5分ぐらいでまとめてほぼ毎日配信しているもの。 これを聴くのが習慣化した理由はたぶん以下。 5分と…

IntelliJ IDEAでTypeScriptの開発環境を作ってみる

TypeScriptをIntelliJ IDEAでコンパイルできるように設定してみた。