2008-01-01から1年間の記事一覧

GoogleMapsのリンク機能が危ない。

GoogleMapsの「リンク」ボタンで表示されるURLには検索する前の緯度経度が含まれるみたいです。デフォルトの場所を自宅にしたりしていると、知らず知らずのうちに自宅の住所を公開しているかもしれません。例えば、自宅の吉祥寺をデフォルトに設定している場…

最近のMac OSXで、PATHをスマート(?)に管理するやり方。

MacPorts用の/opt/local/binなどを全ユーザのPATHに設定したくて、やり方を調べました。~/.profile(zshなら~/.zprofile)に設定してもいいのですが、これだとユーザごとに設定しなければなりません。できれば全てのユーザに対して、デフォルトで/opt/local/bi…

gitのユーザ名やメールアドレスをコミット後に書き換える。

gitのユーザ名は、 git config --global user.name koseki git config --global user.email koseki@example.comのように設定しますが、設定を忘れてコミットしてしまった場合。さっきデフォルトの漢字のフルネームでコミットしてしまい、しかもgithubに出し…

MacPortsでruby 1.8.6を入れる。

会社で新しいMacBook Proを支給してもらったので、10年ぶりくらいにMacを使い始めました。まだ試行錯誤中。今日はMacPortsでRubyをインストールするのに苦労しました。そのメモです。 現時点でのMacPortsのRubyのバージョンは1.8.7。1.8.7だと古いRailsがち…

どさにっき「メールをどこにも送らずテキストで保存する SMTP サーバ」

どさにっき postfixで受信したメールをテキストでtmpディレクトリに保存する設定についての記事。元々Maildirをfancy indexで公開すればいいんじゃないかと思ってたのでためになります。けど。 この程度のことで SMTP サーバの部分まで書く手間かけるのはム…

月額課金とは何か。

月額課金について調べていて、5つくらいパターンがあることを知りました。この手の仕事をしてる人には当たり前の話なのかもしれませんが、いい資料が見つからなかったのでまとめておきます。 翌月同日 翌月の申し込み日と同じ日に次の課金を行う方式。10月の…

開発用のメールサーバ mocksmtpd を gem にしてみた。

(2014/6/3 追記) MailCatcher がおすすめです。 MailCatcher (追記おわり) メールをどこにも送らずHTMLで保存するSMTPサーバ mocksmtpd.rb - こせきの技術日記 が評判よかったので、気をよくしてgithubでgemを作ってみました。 http://github.com/koseki/moc…

メールをどこにも送らずHTMLで保存するSMTPサーバ mocksmtpd.rb

(2014/6/3 追記) MailCatcher がおすすめです。 MailCatcher (2008/11/4追記) gem版も作ってみました。 RubyでSMTPサーバを作る(1) - バリケンのRuby日記 - Rubyist id:muscovyduckさんの(素晴らしい)記事を参考に、ちょっとだけ手を加えて開発用のSMTPサー…

あいてる3文字jpドメインを全件ググってみた。

ムームードメインがあいてる3文字jp一覧を公開してくれてたので(ステキ)、全件Googleで検索してヒットした件数の多い順にソートしてみました。 http://cid-57544de2edadf883.skydrive.live.com/self.aspx/char3jp/google-sort.txt アイコンクリックで中身…

Trac / MediaWiki でリファラを隠す。

外部リンクのリファラを隠す方法。社内の Trac / MediaWiki のURLをなるべく外に見せたくない場合に。Tracは、ExtLinkRewriterPluginを使う。 http://trac-hacks.org/wiki/ExtLinkRewriterPlugin [components] ExtLinkRewriter.* = enabled [extlinkrewriter…

固定の文字列が先頭にあるかを調べる場合、String#indexより正規表現の方が早いらしい。

require 'benchmark' n = 1_000_000 str = ('a'..'z').to_a.to_s str += ('A'..'Z').to_a.to_s str = str * 100 x = "abc" Benchmark.bm do |x| x.report("regexp") { n.times { str =~ /^abc/ ? "t" : "f" } } x.report("index") { n.times { str.index("ab…

RedClothはmarkdownの出力には使えない?

markdownにはBlueClothを使えばいいみたいなんだけど。RedClothの3.0.4、4.0.1で確認。 require 'rubygems' # gem 'RedCloth', '< 4.0.0' require 'redcloth' require 'bluecloth' [RedCloth, BlueCloth].each do |c| puts c.to_s + " " + "-" * 60 puts c.n…

コンポーネントのスクロールバーの幅を変える。

Flash CS3で、DataGridに付いているScrollBarのサイズを変えようとして散々苦労した。結論から書くと、以下のライブラリを使うとうまくいった。 http://www.gskinner.com/blog/archives/2007/05/variable_scroll.html クラスパスの通ったディレクトリにダウ…

Progressionフレームワークを使ってみようとする。

つまづきメモ。シーンとキャストがある シーン …… 状態。URLと対応。遷移でイベント発生。 キャスト …… 表示するもの。 シーンについては、なかなかイメージを掴むのが難しいと思いますが、 "見た目に直接関係しないコンテンツの構成単位"という説明が近いの…

ブラウザから複数ファイルアップロード。

ブラウザから複数のファイルを一度にアップロードできるサービスがある。 http://www.picamatic.com/ http://f.hatena.ne.jp/ http://www.betriebsraum.de/FileBrowser/FileBrowser.htm ( http://www.betriebsraum.de/blog/2006/01/15/update-flash-8-file-b…

ApacheのFancyIndexingは、パターンを指定して絞込みができる。

ApacheのFancyIndexingで、P=(パターン)をパラメータで渡すと適合するファイルだけが表示されるんだそうです。ぜんぜん知らなかった……。たとえば、 http://ftp.gnu.org/ http://ftp.gnu.org/?P=*.README みたいな感じ。 http://httpd.apache.org/docs/2.0/mo…

Rakeのruleの使い方、pathmapの使い方について。

ソースの拡張子を変えて出力する例。CSVファイルからSQLファイルを出力する。 require 'csv' SRC = FileList["*.csv"] SQL = SRC.ext('sql') # 拡張子を変えたFileListを生成。 task :default => SQL rule ".sql" => ".csv" do |t| # ruleでタスクの自動生成…

1.8でArray.shuffle

http://ja.doukaku.org/46/lang/ruby/ http://www.google.com/codesearch?q=sort_by%7Brand%7D&hl=ja array.sort_by{rand} sort_byはブロックを評価した結果を<=>で比較して昇順にソートする。

MySQL + ActiveRecord でシーケンス番号を生成。

MySQLとActiveRecordでsequenceみたいなことをする方法。LAST_INSERT_ID()を使う。ここらへんを参考に。 http://dev.mysql.com/doc/refman/5.1/ja/information-functions.html#function_last-insert-id モデルを生成。 $ ./script/generate model xxx_sequen…

DateTime に月、日、時、分、秒を足す。

DateTimeに秒を足す方法がなかなか見つからなくて苦労した。結局ActiveSupportのソースから探した。Rationalを足せば良い。 require 'date' t = DateTime.now # 1ヶ月後 t >> 1 # 1日後 t + 1 # 1時間後 (1/24日後) t + Rational(1, 24) # 1分後 (1/1440日後…

シングルクォートと%q記法のバックスラッシュの動作について。

シングルクォートと%q記法内のバックスラッシュは、バックスラッシュとクォート文字をエスケープする。 記法 エスケープ対象 シングルクォート \と' %q!...! \と! %q(...) \と(と) %qではバックスラッシュがシングルクォートに効かないので、以下の2つが同じ…

はじめてのFirefox拡張

xpiを作ってみる。以下作業ログ。rakeでビルドする方法を最初に探した。 Gravelog: Using Rake to build Firefox extensions でもSpket IDEがいいらしいのでこっちでやってみることにする。 http://www.spket.com/ Eclipse に Spket IDE を導入 « 来栖川電算…

ActionMailerで、メールのヘッダもビューに書けるようにする。

以下はRails 1.2.3の話。2.0でどうなってるかは知らないです。もっと良くなってるかも。概略 From: info@example.com To: <%= @user.email %> Bcc: admin@example.com Subject: <%= @user.name %>さんにお知らせです。 Content-Transfer-Encoding: 7bit <%= …

Eclipseで編集中のファイルにBOMを付ける。

ActionScript2.0はUTF-8にBOMを付けなければ駄目。 Eclipse単体ではBOM付きのUTF-8に変換できない。 という前提で(本当に正しいのか自信がないんだけど)、簡単にBOMを付ける方法を模索した。最初はプラグインかなんかが出てるんじゃないかと思ったけど見つか…

HTMLヘルプ形式のJavaScriptリファレンス「jsref.chm」を公開した。

MozillaのJavaScriptドキュメントとECMA Scriptの言語仕様を、まとめてHTMLヘルプ(chm)形式にコンパイルしました。Windows用です。 (2008-05-27 追記) OS XならChemrがいいみたいです。(参考) http://cid-57544de2edadf883.skydrive.live.com/self.aspx/jsre…

ActionView::Baseのキャッシュの更新処理が変な気がする

rsyncでRailsのテンプレートを同期した時に、たまに変更が反映されないことがある。ActionView::Baseのテンプレートが更新されたかどうかのチェックは、「ファイルの変更時刻」と「コンパイル時刻」を比較していて、これがマズイんじゃないだろうか……。 @@co…

RailsのTextHelper#textilizeがまともに動かない。

TextHelper#textilize は少なくとも手元の環境(Rails 1.2.6/RedCloth 3.0.4)ではまともに動かないっぽい。以下の手順で確認した。 $ ./script/console >> a = ActionView::Base.new # リストから脱出ができない。 >> a.textilize("abc\n* def\n\n\nghi") => …

Hyper Estraierを久々に使った。

estmaster(P2P)のcasketディレクトリと、estcmdのcasketディレクトリとでは構造が違う。マニュアルで同じcasketという名前が使われていて紛らわしい。estmasterで作ったディレクトリの_node/(nodename)の中にデータベースが入っている。これがestcmdが参照す…

増田くんと倉花ちゃん

初心者はPHPで脆弱なウェブアプリをどんどん量産すべし セキュリティ過敏症 - ぼくはまちちゃん!(Hatena) いいこと書いてあるなーと思いつつ……。 増田くんがパッションで作ったサービスが大人気になりました。でもそのサービスにはSQLインジェクション脆弱…

ActiveRecordを外す時はActionWebServiceも外す必要がある。

上の記事で、 config.frameworks -= [ :active_record ] と書きましたが、これだとActiveRecordがロードされてしまいます。一緒にActionWebServiceも外す必要がありました。 config.frameworks -= [ :active_record, :action_web_service ] 以下のようにして…