builderscon のシールは子にあげました

builderscon tokyo 2016 に行ってきました。着きました #builderscon pic.twitter.com/HhWx5tEVqS— monmon (@lesamoureuses) December 3, 2016今回は2トラックかつ1日だったのでサクッと終わったなと思う反面、濃縮された濃ゆい感じを受けました。 あとで動…

ELB 使ってる時と使ってない時で nginx の X-Forwarded-Proto を変える

https かどうかをサーバ側で判断したいんだけど、ELB 経由で nginx に繋いでいるか、直接 nginx に繋いでいるかで値が変わってくるのでどうしようかなと思って調べた。ELB 経由の場合は ELB で https を受け取って、後ろに http で投げてくる。 $scheme = ht…

Swift の Variadic Parameters は一旦変換させないと joinWithSeparator が使えないですか?

一度 map で String に convert すると表示された。ただの配列じゃないからなのかどうなのか調べたいけどどこ調べていいかわからず。 これ以外の Document あるのかな? developer.apple.com

YAPC::Asia Tokyo がなかったら今の僕はないと言っても良いくらい楽しんで参加し続けました

#yapcasia みなさま長い時間大変おつかれさまでした!!!事故のないよう気をつけて帰ってそして家に着いたらブログ書いてください!!!よろしくお願いします!!!— monmon (@lesamoureuses) 2015, 8月 22ということでブログ書いて一旦区切りを付けようと…

Web API: The Good Parts 読書会が終わり昨日打ち上げをやった

12月から Web API: The Good Parts を週1で1章ずつ進める読書会を5人でやってました。 進め方はその場で読むではなく、各々読んできて面白かった所や興味ある所をみんなで話すみたいな形式。 読んでて感じたこの本の良さは、存在する多くのAPIや仕様がまとま…

iPhone 5のバッテリーが50%とかでも切れるので自分でバッテリー交換してちょっと失敗した話

奥さんが使ってるiPhone 5がバッテリー50%とかでもクルクルしだして電源切れる時があり、外出中にそういうのになるのも辛いだろうなぁと思ってどうしようか考えてました。バッテリー交換対象でもなく、僕のお古なのでもう2年経ってるからAppleには持って行け…

Riji + Daiku + Travis CI で GitHub Pages を運用する

まとめ Jekyll で GitHub Pages 作ったままほったらかしてたので久しぶりに触ろうと思った 「今更 Jekyll でやるのも何かなぁ」 Middleman なら Travis CI 使って更新作業できることを知る Middleman の config.rb 書いてたら面倒になった Gotanda.pm が開催…

diffで差分の行を'> 'をつけずにそのまま表示するにはold-line-format、new-line-format、unchanged-line-formatを使う

ログファイルに欠損があって「新しいファイルにだけある行を表示したいなぁ」というよくある要望がでまして。 今までは diff old new | perl -nle 's/> // and print $_' みたいなことして表示してたんだけど「きっともっと楽な方法あるよね」と思いman diff…

【解決済】gitで、あるコミット時のソースコードを、ちらっとlessとかで見たい場合のコマンドって、なにかしら?diffはいらないの。

git

2013-12-20 15:02 追記 速攻で解決した。インターネット素晴らしい。@lesamoureuses git show <hash>:<path> ではないですか?— すぎゃーん (@sugyan) 2013, 12月 20 元記事 という発言があって、twitterで以下のやり取りをしました。 git で、あるコミット時のソースコ</path></hash>…

会議室名がオシャレ過ぎて覚えられない君へ #vgadvent2013

この記事はVOYAGE GROUP エンジニアブログ : Advent Calendar 2013の14日目の記事になります。 ちょっとハマってて気が付いたら日付が変わってました。 さて、去年のAdvent Calendarは社内図書館のOASISの本の整理の話を書いたので、「今年も会社の話で何か…

正規表現のx修飾子を使い、かつ、"ム"を指定するとTest::MinimumVersionでrequires 5.017009になる

2014-01-03 追記 これ、PPIx::Regexpのせいだった。 「ム」を16進数表示すると\x{E3}\x{83}\x{A0}になり、この最後のA0がWhitespeceと見なされてx修飾子と一緒になると 'perl_version_introduced' => '5.017009'となる。 https://rt.cpan.org/Ticket/Display…

tmuxでanyenv(*env)で*env/shimsがsystemのPATHより前に読まれてsystemが使われてしまう対処

anyenvを使っているんですが、 /usr/local/heroku/bin /Users/monmon/.anyenv/envs/rbenv/bin /Users/monmon/.anyenv/envs/plenv/bin /Users/monmon/.anyenv/envs/rbenv/shims /Users/monmon/.anyenv/envs/plenv/shims /Users/monmon/.anyenv/bin /Users/mon…

「Minillaをインストールしようと思ったらテストが通らない!><」と思ったら~/.gitignoreのせいでした

家でサクッとインストールできたはずなのに会社で以下のようなエラーが出て「あれー!」となりました。 ===( 49;1 0/? 0/? 1/? )=========================================Use of uninitialized value in string eq at /Users/no-kumagai/.cpanm/work/13868…

idobata.ioでGeneric HookでFAILUREとかSUCCESSを出す

こんにちはmonmonです。 みんなが大好きグループチャットのIdobata。 JenkinsのHookが使えたりして便利ですが、cronとかでも失敗した時の や成功した時の を出したいなって思ったりしますよね。 ということでGeneric Hookを使って出しましょう。 まず失敗。 <span class="label label-important"></span>…

jQueryの.data(key)はjQuery.parseJSONでparseできないときにobjectを返せないからstringを返すよ

「JavaScript部分にサーバ側で動的な値入れるのエスケープ考えないとだし嫌だよねー」 「htmlタグのdata属性使ってhtmlのエスケープだけ考えればいいようにしたいよねー」 とか思って <html data-name="monmon"> みたいなことよくやります。で、さらにjQueryなら <html data-obj='{"name":"monmon"}'> <script type="text/javascript"> console.log($('htm</html></html>…

データフレームの列に変数を使ってアクセスするときは[[]]を使う

R

やりたいことはhogeという列をもったdfrmというデータフレームがあったときにhogeが入ったrow_nameという変数を使ってアクセスしたいというもの。 row_name <- hoge # TODO: row_nameを使ってdfrm$hogeのようにアクセスするにはどうやって書けばいいの?! …

YAPC::Asia Tokyo 2013 コアスタッフとしての8ヶ月間を振り返って

今年のYAPC::Asia Tokyoにはコアスタッフとして参加しました。 開催期間中はメインホール担当だったのだけど、前夜祭の準備からバタバタしてしまったのと色んな不安やら心配やらで、YAPC全体把握する余裕が全くなかったです。これはスタッフ4回目で初めての…

iOSの設定画面にアプリのライセンスを置く

ios

WWDCのアプリが設定画面にライセンスを置いていて「じゃあそうしよう」みたいな話になったので調べた。 Settings.bundleとRoot.plistを用意 まずはSettings.bundleってファイルを作れば良くって、その作り方はググるとすぐ出てくる。 具体的には「New File >…

MacBook AirのディスクをCase-sensitiveにして大文字小文字のファイルを作れるようにする

mac

MacBook Airを買ってから2年経ったのでこの前新たにMacBook Airを買いました。 で、会社でも家でもCase-sensitive問題で頭を抱えた経験があるので今回は最初からCase-sensitiveでインストールしました。 流れ 1. commandキーとRキーを押しながら再起動2. 無…

Perlのリファレンス比較は==演算子

Perl徹底攻略 (WEB+DB PRESS plus)を買いました。 p.18にリファレンス同士の比較が書いてあり、 リファレンス同士の比較2つのリファレンスが同じものを指していれば値は等しくなります。ですから、リファレンスが入っている変数$xと$yがあったとき、==演算子…

commコマンドを使って文字列でsort済みの2つのファイルの比較をし「片方だけに存在する行」「共通の行」を出力する

追記「文字列でsort済みの」って入れ忘れてた。 manに The comm utility reads file1 and file2, which should be sorted lexically,って書いてある通り、「sorted lexically」でないとダメ(「sort -n」ではなく「sort」でsortする)なので、 comm <(sort i…

foreachで連想配列に代入した後はcurrentが変わるのでwhileでeachするとハマる

php

へぇ、phpってこういう動きするんだーと思ったので。 普段while each使わないのでハマったことなかったのだけど、何かbugがあるなぁと思うコードを見てみたらforeachの後にwhile使ってるのが原因ってことがわかった。 bugをわかりにくくしていたのは以下のこ…

USBに1Password.agilekeychainを入れててパスワード解除ができなくなったときの対処法

MacBook Airのディスク容量が少ないのでDropboxをUSBに入れてそこに1Passwordを入れているのですが、 USBを外して付け直したりすると1Passwordが上手く動かないことがあり困りました。 現象 正しいマスターパスワードを入れているのに解除できない コンソー…

Rubyはハッシュに数値と文字列のkeyが持てるんですね

Rubyで書かれたコードにbugがあって調べることになり、初めて知りました。 Ruby % ruby -e 'h = {1 => true, "1" => false}; p h' {1=>true, "1"=>false} Perl % perl -MData::Dumper -e '$h = {1 => true, "1" => false}; warn Dumper $h' $VAR1 = { '1' =>…

Perlとバーコードリーダーで本棚整理をするよ! #vgadvent2012

こんにちはこんにちは、VOYAGE GROUPエンジニアblog Advent Calendar 17日めを担当するmonmonといいます! どんなネタにしようか土曜日まで迷ったあげく、せっかくの会社のAdvent Calendarなので会社に関係する話にしました! どんな話をするの? 会社の1Fに…

Rである母集団のdata.frameから除きたい集団data.frameがあって、その結果が欲しいとき

R

母集団がこんな感じで population <- data.frame(id=c(1, 2, 3), data=c('a', 'b', 'c')) id data 1 1 a 2 2 b 3 3 c 除きたいのがこんな感じのとき except <- data.frame(id=c(2), data=c('b')) id data 1 2 b で、こんな感じで!とinを使えばいいです popul…

Rubyで2つの日付を元にからその間の月を全部出す

パッとググった感じこんなんでよさそう #!ruby require 'date' (Date.parse("2010-08-01")..Date.parse("2012-11-07")).each{|i| next if i.strftime('%d') != '01' puts i.strftime('%Y%m') } 参考:rubyなら日付を連続10日分の日付作るのがアツ−!と言う…

Rで日付を出す。月の連番を出す。

R

RでSQL作るときとかに今月から半年分くらいの月が欲しかったりするんだけど、そんなときはSys.Date()使えばいい。 > paste(format(seq(Sys.Date(), length.out=6, by="-1 month"), "%Y%m"), collapse=", ") [1] "201210, 201209, 201208, 201207, 201206, 20…

いろんな会社のいろんな人の話を聞けるのはやっぱり楽しい!YAPC::Asia Tokyo 2012に参加して来た!

こんにちは!こんにちは!monmonといいます! 2009年に初めて参加して、一昨年、去年に引き続き今年もスタッフとして参加させてもらいました。 3年続けてスタッフ参加だったためメインホールのリーダー担当を任されたんですが、今回は初めての場所ということ…

他のbranchの内容を調べる時はgit grepしてgit showする

git

「前に書いたmethodがなくなってるなぁ」 「あぁ、あれ違うbranchで作ったmethodか」 みたいなことを調べる時にタイトルのようにやればいいみたい。 まずはgit grepで違うbranchから探したいものを検索 (git)-[hotfix/2.4.20]-[12:30]% git grep isUniqueWit…

CakePHPでDBのExceptionが起こった時にどういうSQLを投げたためかをログに吐く

何か変なqueryをMySQLに投げてしまって 2012-05-26 18:23:21 Error: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`test`.`user_logs`, CONSTRAINT `user_logs_ibfk_1` FOREI…

CakePHPでwhere句のINの並び順で結果をsortしたいときはORDER BY FIELDを使う

where句のINの並び順で結果をsortしたいときはORDER BY FIELDを使うの続きfindのorderの所で array('FIELD(Country.id, 4, 1, 5, 3, 6, 2)')) と書けばいい。 参照 http://cakebaker.42dh.com/2008/06/10/order-by-field/ Ok, let’s do some examples to le…

where句のINの並び順で結果をsortしたいときはORDER BY FIELDを使う

これ、できないもんだと思って調べてもいなかった。 ORDER BY FIELE(カラム名, INのリスト...)でいけるのね。便利だー。http://lists.mysql.com/mysql/209784 SELECT id, start_date FROM iddt WHERE id IN ('109k7','s3x6','sxmns','wt57') ORDER BY FIELD(…

dotfilesをgithubで管理する

やろうやろうと思いつつ、1年くらいずっとやってなかったので会社のサーバの設定をするタイミングで試しに手を付けた。 # 設定ファイルとかはコピペが多いので管理するほどでもなかったのだけども 流れ 1. まずはdotfilesディレクトリを作ってそこにdotfiles…

CakePHPで動的にBehaviorを切り替えてModelの振舞いを変えるときはunload、loadを使う

CakePHP DocumentのBehaviorsの項にも書いてありますが、「ある時はこういう処理をして欲しいけど、違う時は別の処理をして欲しい」みたいな話。 やりたいこと あるModelがあって、今はAという処理だけあれば良いのだけど、今後BやCという処理も増やしたい …

iOSサンプルコードのTopSongsを読んだメモ

会社でサンプルコード勉強会というのをやっていて、今回僕の発表の番だったのでざっくりTopSongsを読んだメモ。Cacheの所まで読みたかったけど時間なかったからまとめもなく途中まで。 まずはReadMe.txtを読む This sample shows you how to import data fro…

testActionを使う時はautoRenderがfalseだとダメ

CakePHPでBake使ってControllerのテストを作るとき、一緒にテストしたいControllerクラスのMockみたいのができるのだけど、 そのクラスはredirectされないようにoverrideされていたり、renderされないように public $autoRender = false; となってたりする。…

CakePHPでMasterとSlaveにリクエストを振り分けるベストプラクティス的なものが知りたい

DBの負荷分散用に「更新はMaster」、「参照は複数のSlaveたちへ」的なことをCakePHP2.0でやろうと思ったのですが、 ハマってしまったのでメモを残します。 やりたいこと 更新はMasterへ、参照は複数のSlaveへ ただし、ざっくりでいい。参照のいくつかがSlave…

app/Config/core.phpのCacheの初期値はapp/Config/bootstrap.phpで上書きできないのですね

CakePHPを使っている時、app/Config/core.phpはcake本体のupdateのタイミングで変更される可能性があるためapp/Config/bootstrap.phpに

GmailでPOPする時にサーバ側で未読既読管理をされてしまうらしいのでユーザ名にrecentを付ける

GmailをPOPする時にメールのリストを上手く取得できずハマったのでメモメモ。 現象 Gmailからメールを取得するテストをしていたら、「一度取得したメールが取得できない」かつ「一度に250件ずつくらいしか取得できない」という状態が起こった 調査 ググった…

PHPで連想配列にkeyが存在したら値を追加しない、存在しなければ値を追加する、の書き方

php

たまたまCakePHPのFilelLogエンジンのソースを見ていたら $options += array('path' => LOGS); という書き方があって「あれ、この書き方知らない」となったので確認した。 結果はタイトル通り、「keyがあれば何もしない、keyがないなら値を追加する」だった…

間違ってパスワードをハードコーディングしたファイルをgit commitしてしまった時の対処

何も考えずにcommitしてたらpasswordごとcommitしてしまい、なのでどうにかできないかなと調べた。 ら、そのまま本家のヘルプにあった。 真似してやるだけでOKでした。 あとで調べたらgitでアレを元に戻す108の方法 - TIM Labsの問題17にもあった。 これでも…

CakePHPのcore部分をgit submodule化してgithubで管理する

2011-11-09追記 app/webroot/test.phpのCAKE_CORE_INCLUDE_PATHを修正することを書いてなかったので追加 bakeのときにはappディレクトリを指定する必要があることを追加 ここから元記事 CakePHP as a Git submodule | Bravo Kernelの通りやればできる。 重要…

CakeEmailを使ってMac OS XからGmail経由でメールをする

CakePHP2.0でGmailを利用してメールを送ろうとして 「SwiftMailerってのが使えるのかぁ。それならそれ使おう」 とか思ったのですが、どうやらCakeEmailというのがあるようなのでそれを使うことにした # たぶんCakePHP1.3まではなかったんだよね?よく調べて…

TestでFixturesのデータをexpectedに再利用したい

Modelのテストをする時に「Modelから取得できたデータ」と 「Fixturesで定義したデータ」が一致してるかを確認したくてfixtureを呼び出せないか調べた。 $this->fixtureManager ってやるとCakeFixtureManagerオブジェクトが取れるのでそれでゴリゴリやるのか…

Objective-CでTDDをやってみよう

Objective-CでTDDってどうやるんだっけ?ってなったのでTwitterからPublic Timelineを取得するって流れを簡単にやってみた。 TwitterのAPI利用はTweetingを参考にした。 # ということでiOS5で。 前提 public timelineを取得するだけ 簡単なテストをしたいの…

JasmineでBDDをやってみる

Jasmineを使っている人が社内にいて、そしてBDDをやってみたかったので触ってみた。 JasmineのダウンロードページからDownload。 で、一番新しいjasmine-standalone-1.1.0.zipをダウンロードしたらlibしかなく、 「あれ?これだけなの?」 となり、とりあえ…

Perl の内部表現の一つはたまたま UTF-8 です。内部表現は何か分からないエンコーディングで、常に明示的にエンコードと デコードが必要ということにしておいた方がよいです。

追記 ajiyoshiさんの昔の記事がとてもわかりやすかったので参考に。 VOYAGE GROUP エンジニアブログ : あなたにも今日こそPerlの文字化けが理解できるたった一つの原則 元記事 記事タイトルはperlunifaqの「UTF8 フラグ」って何?からそのまま引用したもの。 …

統計解析R言語の勉強

R

社内で紹介会があったので触ってみた。 インストール R for Mac OS Xからダウンロードしてインストール 実行した時のサンプルいくつか R で実行する 足し算 > 1 + 1 [1] 2 代入 > x <- 4 > x [1] 4 コメント > # これはコメントです 10色分色を出す > rainbo…

gitinstawebを試す。リモートリポジトリとローカルリポジトリを作ってみる

git

gitinstawebだとかgitweb.cgiの存在を全然知らなかったのと、 MacBook内にリモートリポジトリを作ってみてgitの管理をやったことなかったのでちょっと試してみた 参考:Git - 前提 ローカルリポジトリもリモートリポジトリもMac OS Xで動かす リモートリポジ…