2009-01-01から1年間の記事一覧
こちらをほとんどそのまま利用させていただいています。 最速インターフェース研究会 :: livedoor ReaderにはてなスターをくっつけるGreasemonkeyスクリプト Shift + H を押さなくても表示するようにしました。 // ==UserScript== // @name LDR with HatenaS…
google-appengine gem (v0.0.6) を使って GAE + JRuby アプリを作っていると、JIT コンパイルのせいでよくわからないエラーになることがあります。 そういうときに JIT コンパイルを無効にする方法です。 config.ru に追記するだけ。 AppEngine::Rack.app.sy…
1 ジョブごとに worker を終了させて god で再度起動させる、あまり良くない方法です。 ジョブ。グローバル変数 $exit を true にすると、job から worker を終了させられます。 class HogeJob def perform .. (leaking process) .. $exit = true end end de…
301.textile CakePHP のアプリで、エラーが発生したときにメールで知らせるコンポーネントです。 関連: Exception Notifier コンポーネントを公開 - milk1000cc 今回から FatalError も捕捉できるようになりました。 あまりきちんとテストしていなくて適当な…
元記事はこちら。 iTermでCommandキーをMetaキーの意味にするパッチ — ディノオープンラボラトリ 今回は、SnowLeopard で iTerm 0.10 をビルドしてみます。 パッチは gist においておきます。元記事では Command + v を無効にしていますが、このパッチでは有…
iTunes でそのスマートプレイリストのライブアップデートをオフにします。 参考: 価格.com - 『スマートプレイリストの曲順』 APPLE iPhone 3GS 32GB SoftBank のクチコミ掲示板
google-appengine gem を使用したときで、/admin 以下は認証掛けたいみたいなときの config.ru サンプル。 require 'appengine-rack' AppEngine::Rack.configure_app :application => 'my-app' ENV['RAILS_ENV'] = 'appengine' require 'config/environment'…
CakePHP で本番運用する際は、DEBUG 値を 0 にするのがふつうだと思いますが、この場合、デフォルトで DB スキーマのキャッシュファイルが生成されます。 このため DB スキーマを変更した際は DEBUG 値を 1 以上にするか、app/tmp/cache/models 以下のファイ…
CakePHP のページネーション機能を使うと、/hoge/fuga/page:2 のようなコロン区切りパラメータのリンクになってしまいます。 これは気持ち悪いので、何とか /hoge/fuga?page=2 にする方法を考えました。 やはり気になっている方はいるようです。 ページが見…
.zshenv に git のパスを追加する。以下、$HOME/local/bin に git があるときの例 PATH=$HOME/local/bin:$PATH
GAE SDK (Java) 1.2.5 から、Task Queue がサポートされて、appengine-apis (0.0.9) にも早速実装されているようなので試してみました。 taskqueue という適当なタスク追加アプリケーションを sinatra で作ってみます。 ローカルでのみ確認しています。 $ mk…
http://日本語.jp/カ/ひ?a=漢みたいな URL を Ruby で http://xn--wgv71a119e.jp/%E3%82%AB/%E3%81%B2?a=%E6%BC%A2に変換する必要があったので、適当にでっち上げました。 弾さんの記事に感謝。あと、punycode4r っていう gem のおかげです。 とりあえず enc…
Delayed Job とは何か BackgrounDRb 的な何かです。詳しくはググれば、英語のチュートリアル的なものがいろいろ見つけられると思います。 コンストラクタで複雑なことをしているとエラーになる class CrawlJob def initialize @agent = WWW::Mechanize.new e…
rm -f /dev/null mknod -m 666 /dev/null c 1 3 サーバ再起動するとまたおかしくなるようなので、/etc/rc.local 冒頭などに書いておけば良いと思います。 参考: OpenVZ で Permission denied - ふりだしに戻る
追記(2009/11/29 19:26): Google App Engine 0.0.5 gem では、この記事通り動かすことができなくなっていますのでご注意ください。 google-appengine という gem のおかげで、簡単になっています。XML 書かなくて済みます。 Rails Primer for Google App Eng…
大量にドメインを持っていて大量にネームサーバを書き換えたいのに GoDaddy は js オフだとうまく動かないので、WWW::Mechanize 使うのも難しい。 しかしこんな作業を人力でやるのもどうかと思っていたので、Chickenfoot という Firefox を自動操作するアド…
appengine-apis のバージョンは 0.0.6 です。 正確には、memcache.rb が内部で読み込んでいる datastore_types.rb のせいです。 Bumble や DataMapper を使っても文字化けしました。 Java は詳しくないのでよくわかりませんが、String#to_java_string が Lat…
JRuby と AppEngine SDK (Java) はインストールされているものとします。 JRuby は、mac なら macports などで導入できます。 SDK はインストールとか不要で、ダウンロードして解凍するだけで使えるので、はじめの一歩を踏み出しましょう。 Downloads - Goog…
komagata さんの記事で知って以来、便利に使わせていただいている railswhere というプラグインがあるのですが (timcharper さんの笑顔が素敵)、Rails 2.3.3 にしたら動かなくなってしまいました。 where.and("name LIKE ?", "%#{ name }%") みたいな部分で …
第16回 Google App Engine上でRailsを動かす:Ruby Freaks Lounge|gihyo.jp … 技術評論社 これの通りやってて、 $ script/generate bumble_model Post name owner_id created_at をやろうとしたら /path/to/jruby/lib/ruby/site_ruby/1.8/builtin/javasuppo…
近年 255 バイトを超える URL が増加しており、これらをデータベースに格納するため URL のフィールドを TEXT 型にすることがあります。 参考: URLを扱うテーブルを作るときにどうすべきか - 金利0無利息キャッシング – キャッシングできます - subtech しか…
Rails というか ActiveSupport を使っていると、Logger#add などでタイムスタンプが追加されなくなります。 require 'logger' Logger.new(STDOUT).info 'hello' # I, [2009-06-24T11:47:29.977960 #4036] INFO -- : hello require 'rubygems' require 'activ…
グループとか考えてこなかったので反省してちゃんとします。 グループ追加 $ sudo groupadd web ユーザの所属グループ変更 $ sudo usermod -G wheel,web milk1000cc ユーザの所属グループ確認 $ groups milk1000cc 共用フォルダ $ mkdir /home/web $ chmod g…
require 'openssl' [OpenSSL::Random.random_bytes(8)].pack('m').gsub(%r![+/=]!) { rand(10) }.strip
以下を参考に Clearance 風 (?) に書けるようにしました。 AuthLogic is awesome! - Adventures with Ruby authlogic_helper.rb などとして require すれば、以下のように書けます。 describe HogesController do public_context do describe 'GET index' do…
ゆーすけべーさんが Perl で作られた WebService::Simple の Ruby 版を作りました。 milk1000cc/web_service_simple · GitHub オリジナルは、こちら。 POX over HTTP のウェブAPIにアクセスするためのモジュール「WebService::Simple」を作ってみた - ゆーす…
RDF に基づいて、渡されたパーマリンクに対するトラックバック Ping URL を自動検出します。 参考: トラックバック技術仕様書 トラックバック関連の gem ってないんですかね。 Timeout::Error も捕捉しています。 require 'net/http' require 'uri' Net::HTT…
htpasswd は、Apache のやつで作ります。 $ sudo htpasswd -c /opt/nginx/conf/htpasswd admin あとは、/opt/nginx/conf/nginx.conf の server ブロックを以下のような感じで設定します。 ... http { ... server { listen 80; server_name www.example.com; …
Passenger で passenger-install-nginx-module して、/opt/nginx 以下にインストールした前提です。 $ sudo pkill nginx $ sudo /opt/nginx/sbin/nginx nginx 設定ファイル正当性確認は $ /opt/nginx/sbin/nginx -t
sudo aptitude install libsqlite3-dev sudo gem install sqlite3-ruby