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 FIELD(カラム名, 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で動かす リモートリポジ…

Prototype.jsでjQueryにparents()みたいなことがしたければup()を使う

Prototype.jsとか久々に触ったので親要素辿るメソッド思い出せなかった。 「jQueryの場合はparents()だよなぁ」とか思い、ドキュメントを検索したけど出て来ず。 ググってもいいのが出て来なくて必死に探してしまった。 答えはhttp://api.prototypejs.org/do…