-
プログラミング
Rails で REST を崩さずに確認画面を実装してみた(サンプルあり)
久々にRailsでのお仕事をすることになったので、リハビリがてら弄っている今日このごろ。 タイトル通り、実際Webアプリを作り始めるとフォームの入力確認画面って必要になります。 安直な実装パターン 今までやったことのある実装パターンはこんな感じ。 users/confirm ルートを作っていったん引き渡すJavaScriptで確認UIを作る お察しの通り... -
プログラミング
Redis で別のデータベースにまとめてキーを移動したい
Redis で move コマンドを使えば、指定キーを別のデータベースに移動できる。 http://redis.io/commands/move 例えば db1 に入っている foo:bar:key:1 を db0 へ移動する場合。 redis-cli -n 1 move foo:bar:key:1 0 が、コレだと一件ずつしかできない…。 キーを foo:bar:key:1…9999 みたいに切っている場合はとてもつらい。 ので、xarg... -
プログラミング
nginx で画像などへの直リン(ホットリンク)を対策する場合
ふと自分のサイトのドメインで検索などをしてみたところ、画像への直リンク(画像へのURL)が貼られていました。 実際大した影響はないのですが、せっかくなので直リンク対策をしてみました。nginx の設定です。 ディレクティブ location ~ files.*\.(gif|jpe?g|png|avi|flv|mov)$ { valid_referers none server_names example.com; if ($inval... -
プログラミング
Image#onload で複数の画像のロードを待って同期させたい
Canvas などに画像を描画する際に Image オブジェクトを生成して src にパスを渡して、画像が読み込まれたら描画処理を行う、という流れが基本です。 var canvas = document.getElementById("#canvas"); var context = canvas.getContext("2d"); var img = new Image(); img.src = "http://dummyimage.com/64.gif?t... -
プログラミング
git リポジトリから差分を取り出すスクリプト(SourceTree でも使える)
この前作ったスクリプトをより改良しました。 SourceTree で指定のリビジョン間の差分ファイルだけ取り出したい ターミナルでも使えますが、SourceTree のカスタムアクションで使うほうがわかりやすいです。 こんな感じの機能が git export みたいな感じで実装されてればよいのですが…。 このリポジトリをクローンしてください。必要なのはス... -
プログラミング
SourceTree で指定のリビジョン間の差分ファイルだけ取り出したい
さらに改良したものを用意しましたので、こちらを推奨します。 git の特定のリビジョンからファイルや差分を取り出すスクリプト(SourceTree で使える) 世の中には、差分のファイルだけ用意して上書きコピーなどという実にざんねんな運用で回っている非モダンな開発現場があるわけで…。 いや、もろもろの事情でそうせざる追えない、ということ... -
プログラミング
slim で pre の中身の改行を残したい場合
slim のなかに html + js のコードを pre を使って書こうと思った。 html に html コードを埋め込む事自体はよくあることですが、slim では以下のように書くとうまくいきました。 | (パイプ)を使って、インデントでつづける パイプはテキストを埋め込むのに使います。 改行を残したい場合は、インデントして続ければよいです。 pre | <div... -
プログラミング
github pages みたいに独立したブランチ(Orphan)を作りたいとき
githubにはgithub pagesという、gh-pagesという名前のブランチにコミットされたファイルをプロジェクトの静的ページとしてhttp://{username}.github.com/というアドレスで公開できるすんばらしい機能があります。 https://pages.github.com/ gh-pagesというブランチをコミットすれば表示されるのですが、管理画面からボタン1つでテンプレー... -
プログラミング
ps と grep を組み合わせた時に grep のプロセスを除きたいとき
Amazon.co.jp プロのための Linuxシステム・10年効く技術 (Software Design plus) この本を読んでいたら、以下のような例が出てきた。 ps aux | grep hog[e] これは hoge を含むプロセスを抽出しているわけだけど、もしなにも考えなければ、 ps aux | grep hoge とやるだろうし、やってきた。 最後の [e] がポイントなわけだが、すこし考えさ... -
プログラミング
ActiveRecord でランダムなレコードが(1件または複数件)欲しい
ほとんど Rails にどっぷり浸かっているので、データベース操作はもう ActiveRecord に頼りっきりですが…。 ランダムに一件取得 全レコードから一件、ランダムに欲しい時。 Model.first(offset: rand(Model.count)) 0からレコード数未満の整数をランダムに作り、それで適当にオフセットする。 シンプルで特定のDBにも依存してないので良さそ...