delegateでclickイベントを拾う場合のtap-highlight-color

iOSとかでリンクをクリックするときにグレイにハイライトされるけど、clickイベントでも特定の条件を満たせばハイライトされる(対象の要素がリフローしない場合とかだった気がするけど詳しくは覚えてない)。ハイライトされるのはいいとして、delegate次の…

PostgreSQLでwhereの値にダブルクォートでエラる

Railsで以下のようなコード書いてて entries.where('url != ""') MySQLとSQLiteでは動いてたんだけどPostgreSQLに移行したらエラって動かなくなった。 MySQL uses ' or " to quote values (i.e. WHERE name = "John"). This is not the ANSI standard for da…

apt-get install node

ubuntuで apt-get install nodeでインストールしたんですけどNode.jsが動きません!と言われてなんでかよくわからなかったんだけど、「node」だとこれが入るらしい http://packages.ubuntu.com/lucid/hamradio/nodeただしくは $ apt-get install nodejsnode …

Node.jsでロードパスをプログラム内から追加する

その昔はrequire.pathsというのがあってプログラム内からロードパスを設定できたんだけど、いつしかrequire.pathsは廃止され、NODE_PATHで設定するしかなくなった。でもNODE_PATHだとプログラムの中からロードパスを変更することができない。 // libにパスを…

RailsでModelからselectボックスをつくる

collection_selectを使うといい感じにできる。例えば、あるグループに所属しているユーザーをプルダウンで選択させたい場合はこんな感じ。 <%= f.collection_select :user_id, @group.users.all, :id, :name %> ってやるとuser.idがoptionのvalue、user.name…

Node.jsで標準入力がパイプかどうか判定する

例えば入力ファイルの行数をカウントするlinecount.jsっていうのがあったとして $ node linecount.js foo.txtっていう使い方と $ cat foo.txt | linecount.jsって両方に対応したいときNode.jsではprocess.stdin.isTTYを使えば判定できる。 if (process.stdin…

HTMLでリンクを押した時にリファラを付けないようにする

<a href="http://example.com/" rel="noreferrer">link</a> のように rel="noreferrer" をつければリンク先のリクエストに対してリファラを付与しないらしい。Chromeでしか確認してないからブラウザ対応はよくわからん。仕様もある。 http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#li…

vimのBundleでインストールしようとしたらエラった

vim

最近vimの設定とか全然いじってないんだけどひさびさにプラグイン追加してBundleInstall実行したらなんかエラった。 Cloning into /Users/hokamura/.vim/bundle/vim-coffee-script... error: Malformed value for push.default: simple error: Must be one o…

githubのwikiにサイドバーを出す

_Sidebarという名前でWikiの新規ページをつくるとサイドバーを表示できる。ページ一覧とか載せとくと便利。こんな感じになる。 https://github.com/enja-oss/Sass/wiki

rbenvでruby2.0.0-p0のインストール

ruby-buildをアップデートしたら $ brew update $ brew upgrade ruby-build2.0.0-p0がきてたので $ rbenv install ... 2.0.0-p0 ...インストールしようとしたらエラった。 $ rbenv install 2.0.0-p0 Downloading openssl-1.0.1e.tar.gz... -> https://www.op…

CharlesでProxyするときのSSL証明書

CharlesでSSLをProxyするときに証明書のエラーでサイトがみれないときは以下の「Charles CA Certificate bundle」というリンクから証明書をダウンロードしてキーチェーンに登録すると見れるようになる。 http://www.charlesproxy.com/documentation/using-ch…

rubyでゼロパティング

よくありそうなsprintf。 i = 1 puts sprintf('%03d', i) #=> 001 オブジェクト指向っぽくrjustメソッドを使って。 i = 1 puts i.to_s.rjust(3, '0') #=> 001

githubでpull requestする人向けにメッセージを出す

CONTRIBUTING.mdっていうファイルを置いとくと、Pull Request出す画面に、注意書きみたいのをだせるらしい。 https://github.com/blog/1184-contributing-guidelinesこんな感じで書いとけばいいらしい。 https://github.com/puppetlabs/puppet/blob/master/C…

git add -pで細かく分割

git

git add -pするとステージする箇所を分割できて大変便利なんだけど、変更箇所が近いと同じ変更とみなされる。そういう場合は「s」を押すと近いところをさらに分割できるらしい。また、連続した行の変更は「s」でも分割できないので、そういう場合は「e」を押…

RubyのHashのデフォルト値の指定

RubyではHash.newするときにブロックを指定すると未知のキーを作った時にそのブロックが実行される。そしてブロックの引数には対象のハッシュとキーが渡ってくるのでそれを使ってデフォルト値を定義できる。例えば、次のように書くとハッシュのデフォルト値…

paypalのUpdateRecurringPaymentsProfile

UpdateRecurringPaymentsProfileっていうAPIがあって定期購読の情報を更新できるんだけど、これを使って未払分の自動請求を有効にしようとしてはまった。以下のAPIにならって AutoBillOutstandingAmount=AddToNextBilling に変更しようとしたら、レスポンス…

new FormDataの引数

XHR2で画像とかのバイナリデータを送るのにFormDataっていうのが使えて <form> <input type="file" name="file"> <input type="submit"> </form> var form = document.querySelector('form'); form.addEventListener('submit', function() { e.preventDefault(); var formData = new FormData(form); var xhr = new XMLHttpRequ…

RailsでURLのバリデーション

URLのバリデーションをしつつ未入力も許可する場合のvalidate。 validates :url, { :allow_blank => true, :format => URI::regexp(%w(http https)), } allow_nilじゃなくてallow_blankを使うと空文字もOKになるらしい。

jekyllのkramdownでiframeを使う

jekyllのkramdownでiframe使ったらエスケープされて表示されたのでなんぞと思って調べたらkramdown側で特定のタグはエスケープするように設定されてるみたいで、その場合は次のように書けばいいらしい。 {::nomarkdown} <iframe src="/path/to/html"></iframe> {:/nomarkdown}

pygmentsが原因でjekyllが重くなってた

jekyllの実行が20秒〜30秒くらいかかってさすがにかかりすぎなので原因を調べてみたらコードハイライトに使ってるpygamentsが原因だった。今現在gemでインストールできるjekyllはコードハイライトにalbinoっていうモジュールを使ってみるみたいで、こいつは…

form要素でgoogleのサイト内検索

サイト内検索を実装するのが難しいときはgoogleの検索で 検索ワード site:mydomein.comっていう検索ワードになるようにフォームで飛ばすのが簡単なんだけど、これをform要素だけでやるときsite:mydomein.comの部分はどうやって指定すればいいかというと、sit…

jekyllでPHPのハイライトに<?phpをいらなくする

Jekyllはコードのハイライトにpygmentsを使っていて、PHPをハイライトするときは {% highlight php %} $foo = 'bar'; echo $foo; {% endhighlight %}とか書くんだけど、pygamentsのPHPのlexerはデフォルトだと

mochaでcontextが消されたけど戻ってた

僕がpull requestして取り込んでもらったcontextが消えて残念思ったんだけど https://github.com/visionmedia/mocha/commit/914c73654ecdc7c8c9431cfa48b13d59241b201d次の日にrevertされてたw https://github.com/visionmedia/mocha/commit/c44cf13773ab9b…

window.onerrorを強制的に発火する

window.onerrorが正常に動いてるか確認したくてコンソールで throw new Error('foo'); ってやったけどなぜか発火しなかった。アドレスバーにjavascriptスキームで javascript: throw new Error('foo'); ってやったら発火した。

OSX Lionのプレビュー.appでfaviconの書き出し

Mac

Snow Leopardはプレビュー.appの書き出しのフォーマットにMicroSoftアイコンっていうのがあってそれでfaviconファイルを書き出せてたんだんだけど、LionでMicroSoftアイコンっていう項目がなくなっててデグレしたのかと思ったらOptionキー押しながらプルダウ…

RailsでDBのNOTICEを出さないようにする

RailsでPostgreSQL使ってたらこんな感じのNOTICEが毎回出てうざいかったので消したかったという話。 NOTICE: CREATE TABLE will create implicit sequence "users_id_seq" for serial column "users.id" NOTICE: CREATE TABLE / PRIMARY KEY will create imp…

herokuのworkerの再起動

herokuのworkerプロセスは再起動するときまずSIGTERMを送る。のでworkerはSIGTERMを受け取ったらやりのこしたジョブを終わらせたりするなどして、安全にプロセスを終了すればいい。SIGTERM送って10秒まってもプロセスが終了してなかったらSIGKILLにより殺さ…

XCode4.3でのiPhoneSimulatorの場所

Mac

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone\ Simulator.appっていうよくわからん場所にあってとても起動しにくいので/Applicationにシンボリックリンクはった。 $ ln -s /Applications/…

nodebrewのzsh補完書いた

補完関数書いた。 https://github.com/hokaccha/nodebrew/blob/master/completions/zsh/_nodebrewこれを$fpathがとおってるところに置くと動くはず。ホームディレクトリとかに補完関数を置きたいなら.zshrcに fpath=($HOME/.zsh_fun $fpath)とか書いて ~/.zs…

jekyllで環境変数を参照する

やりたかったこととしては、本番環境ではminifyしたファイルを読み込んで開発環境ではminifyする前のファイルを読み込みたいってやつ。ファイルは事前にscript.jsとscript.min.jsがあるとして <script src="/js/script.{% if site.env == 'production' %}min.{% endif %}js"></script> こんな感じで書いとくと $ JEKYLL_ENV=production jekyllとかす…