@Konboi memo

主に技術に関してつらつらと。

最近モヤモヤしてること

現在、ゲームの運用を担当している。 そのゲームで、新しい施策の前にはチームのメンバーで リリースできるかどうか、おもしろいかどうかみんなでプレイしながらチェックする そのときに不具合がないかどうかを見るのは簡単なのだけれど 想定してるユーザーは〇…

本番サーバーに ro_mysql コマンドを作っておくと捗る

はじめに ユーザーさんからのお問い合わせだったり、ディレクターからのお願いだったりで、 本番サーバーのDBでクエリを叩くのは少なくないと思います。 特別に用がある場合以外は、レプリケーション先のサーバーに接続しに行くと思いますが、 もし、指定したHost…

通信の帯域制限をかけてアプリをチェックする

はじめに テザリングを多用する方々は月末になると帯域制限に苦しむことになると思います。 そのような環境でもアプリを使用できるようにするのは、ユーザーの体験的にもビジネス的にも大事な事だと思います。 ということで開発環境、本番環境でそれぞれ帯域制限…

YAPC::Asia 2014 に参加しました

はじめに、YAPC::Asia運営の皆様お疲れ様でした。 おかげで、本当に楽しい時間を過ごす事ができました!! トークはもちろんのこと、懇親会やHUBで話させて頂いた著名エンジニアの方々、 別の道を歩んでる同期のメンバーの現状を聞いて自分も頑張らねばと思ってす…

Team Geek を読んだ

前から読もう読もうとは思っていたけど、読めてなかった。 朝起きて昨日が給料日ってのもあってAmazonのページ開いたら、今注文したら今日届くって言われて半信半疑で注文してみたら、ホント届いてAmazonすげーなってなりながら読んだ。 Team Geek ―Googleのギー…

smartchr.elやっぱり便利

便利。 詳しい使い方はこちらから smartchr.el を使って生産性を上げる 少し前まではCaskでインストールできなかったんですが、 Can’t install smartchr.el 本家の方にp-r出して取り込まれているので、是非Caskを使っている人もお使いください。 Fixed file head…

homebrewを指定のディレクトリにインストールする

homebrewはMacを使う人ならなくてはならない便利なソフトウェアです。 ただ、homebrewのデフォルトのインストールディレクトリは /usr/local 以下で管理権限を持たないユーザーだとインストールするのが面倒です。 そんな時のためにディレクトリを指定してイン…

Emacsでtagを使う

はじめに rebuild.fm聞いてたら自分の設定見直すか!! ってなったので、 コード追うの楽にしいし、重い腰を上げてtagを使って見ることにしました。 tag ファイルを作る ctags -e -R . -e オプションでemacsに対応したTAGファイルを作成する。 -e オプションがな…

Jenkinsのプロジェクトを増やしたらテストがこけるようになってつらかった。

はじめに ※Jenkinsが悪いわけじゃないです。 現在携わっているプロジェクトではテストの際に Test::mysqld を使用して並列にテストを回してました。 ただ、マスターデータのテストと機能系のテストが t/ にまとまっていて、マスターデータのテストだけをチェック…

tig のインストール

tig とは 一言で言うとgit log が綺麗に見れるツールです。 (もちろん、それだけではありませんが) はじめに Macだと brew install tig でインストールできると思います。 今回はソースからインストールする必要があったのでインストールします。 ダウンロード …

emacsclientで立ち上げたemacsだと日本語入力ができなくてこまっていた

開発環境では emacs を emacs —daemon で起動しておき emacsclient hoge.txt で起動していた。 起動が早くて快適だが、1つだけ問題が… こんな感じで表題の通り日本語の入力ができてなかった。 色々知らべてみると emacsclient -nw hoe.txt とやると日本語入力で…

nginxにカスタムヘッダーのレスポンスを表示する

タイトルのようなことがやりたかった時に色々調べたでそれのメモ。 アプリは仮に下記のようなコードがあったとする require 'sinatra' get '/' do status 200 headers \ “X-Unchi-Status" => ‘BuriBuri’ body "hello" end GETでアクセスしてきたとき ステータ…

rerunが便利

sinatraとかのrackアプリを作ってる時に編集したら自動で再起動して欲しいときがよくある。 plackup コマンドはデフォルトで-rの再起動オプションが付いていて最高!! しかし! rackupはついていない。 なのでそんなときにオススメなのがrerun。 gem install r…

bitbucket で hook の response body で返ってくるJSON形成で嵌った。

自分だけ再現するなら致し方無い。 他の人もこれで嵌っていたなら参考にどうぞ はじめに 個人でPrivateで使っているbitbucketで、意味は無いがcommitしたらircにlogを流すようにしたかった。 設定 ⇒ フック ⇒ POST から POSTしたいURLを入力する 自分は個人VPS…

sinatra で response body の JSONをparseする

JSON.parse(resposen.body.read) readを付けなくて、parse出来ずに嵌ったのでメモ。 Sinatra: Up and Running作者: Alan Harris,Konstantin Haase出版社/メーカー: O'Reilly Media発売日: 2011/11/21メディア: Kindle版この商品を含むブログを見る

expand-regionが動かない

困った。 expand-region が動かなくて困っている。 設定も特に変な事はしてない。 ... はず (require 'expand-region) (global-set-key (kbd "C-\'") 'er/expand-region) こんな感じの設定ファイル。 C-@は複数のキーを一変に打つのがつらくてC-'に変えている。 …

CentOS6 の git バージョンをあげる

はじめに 最近emacsを使い始めたのはいいけれどmagitがつかえない症状にはまっていた。 調べたらgit のバージョンをあげればいけるらしい あげよう!! アンインストール gi のバージョンが古いってことなのでアンインストール $ sudo yum remove git $ sudo …

magit がつかえなくてこまった

magit がつかえなくてこまった M-x magit-status と打っても Git repository: file/path と出てきて/project/root/dirctory を指定しても yes としても Wrong type argument: stringp, nil と出るばかり…orz magit-process を見ると 129 git --no-pager -c c…

centosでcaskを使ってsmartchr.elを入れるまで色々大変だった。

追記 本家にp-r済みなのでsmartchr.elは問題なくインストールできると思います。 はじめに 最近 いろんな人が cask を使ってemacsのlispを管理してるらしいので、 自分もやってみた。 が、色々嵌ったのでメモしておく。 前提条件 vagrant + chef で環境構築してい…

Dist::Makerを使ってひな形を作ってみる。

はじめに rails new みたいなのを perl でやろうとしたら今もModule::Setupで作ったflavorをセットアップしてやるのが一般的なのかな??— こんぼい。 (@Konboi) 2014, 5月 18 @Konboi Amon2なんかは、独自で雛形作成機構を持ってるけど、自分独自のやつ作り…

merge済みのbranchを消す

git

mergeしたけど消してないみたいなbranchが結構あってうざかったので消した git br -r --merged | grep -v 'master' | awk -F "/" '{print $2 "/" $3}' | xargs -n 1 -I % git push origin :% awk便利。

gitの現在のbranch名だけを取得する

git

git branch だとディレクトリにあるbranch全部が取得できる。 が、 今回は現在のbranch名のみを取得したかった。 git rev-parse --abbrev-ref HEAD これでいける。 よい。 参考URL すがブロ GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)作…

Brewfileでhomebrewでインストールするものを管理する

開発環境は vagrant x chef で構築してるからぶっ壊れてもすぐに構築できるんだけど、 やっぱり母機のmac側もなんだかんだ使うのですぐに必要なもの入ったほうがいいなってことで、 今更ながら Brewfile で管理するようにしてみた。 既に homebrew でインストー…

grep -{数字} オプションが便利だった。

ログをみるときとか、該当の文字列を探すときとかお世話になる grep コマンド。 このオプションをしる前までは、該当の行はすぐわかるんだけど、その前後数行もみたいんだよね... ってことがよくありましたが。 が、 この grep -10 とか - + 数字 のオプションをつ…

標準出力を出力しつつファイルにも出力する

移植してるgemで表題のことを実現したかった。 色々調べてみたけど、実現したいことをするにはだいぶ古いきじだけれとこちらのページが参考になった。 def std_out log_fh = self.log_fh std_out = Object.new std_out.instance_eval{@ofile=log_fh} class <

perlのモジュールをrubyに移植してみた

移植したモジュール 移植したもPerlのモジュールはScript::Ichigeki になります。 こちらのモジュールの使い方は Script::Ichigeki - 相手は死ぬ こちらの記事を参考にしていただければと思います。 記事内の言葉を抜粋すると クリティカルな一発スクリプト(ゲ…

awkで"(ダブルコーテーションマーク)を使って嵌った。

ps aux | grep hoge | awk "{$1}" とかのコマンド打っても反映されなくて?!ってなってた。 ps aux | grep hoge | awk '{$1}' でいけた。 シングルコーテーション使ってこう。

Time::Piece::Plus でunix timeから time piece オブジェクトを作る

CORE::timeとかから取得した値を使って Time::Peace::Plus のオブジェクトをつくろうとした時に嵌ったのでめも。 localtime->strptime($unix_time, “%s”); 最初試した方法。 いけたけど、 tim zone が JSTにならなくて ?! ってなった。 use Time::Pease::Plus;…

$0 と __FILE__ の違いについて調べてみた。

gemとかの require されるファイル側でどこから呼ばれてるのか知りたかったので調べてみた。 caller メソッドとかで特定もできなくはなさそうだったけど、 $0 のほうが一般的っぽかった。 $0 とよくgemとかで見かける __FILE__って何が違うのか調べてみた。 ざっ…

classのinitializeの引数でハッシュを渡したい時はどうするのがベストなんだろう?

hoge1 = Hoge.new puts hoge1.hoge puts hoge1.foo hoge2 = Hoge.new({hoge: 'hoge2'}) puts hoge2.hoge puts hoge2.foo hoge3 = Hoge.new({foo: 'foo2'}) puts hoge3.hoge puts hoge3.foo hoge3 = Hoge.new({hoge: 'hoge2',foo: 'foo2'}) puts hoge3.hoge p…