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

同値の判定とシリアル化

C#

前の人から引き継いだクライアント・サーバアプリケーションで以下のようなコードを見た。 namespace MyService.IF { [Serializable] public sealed class MyResult { public static readonly MyResult OK = new MyResult(1, "OK"); public static readonly …

NUnitからlog4netを使うライブラリを使う場合

常識なのか知らないけど、log4netでログを吐くアセンブリAを、NUnitテスト用アセンブリBから参照して使うような場合の注意。B.config に log4net の設定を行うだけでは、その内容を読んでくれないらしく、ログが出力されない。期待通りログが吐かれるように…

出力したログと全く同じ内容を文字列で取得

log4netを使っていて、「××がログファイルに出力されること」みたいなテスト項目があったとする。無理矢理ログファイルをオープンして読む以外に自動的に確認する方法はあるんだろうか。ということで、ファイルに書き込むと同時にStringWriterにも同じ内容を…

テーブルが更新されていないことを確認

HOGEテーブル(重複行がない前提で)がテストの前後で全く変更されていないことを確認したい場合、どうするか。 create table HOGE_PREV as select * from HOGE; で準備しておいて、テストを実行。 /* 追加・変更された行を表示。Oracleならminus */ select …

Unicodeなファイル名を操作するのに最適なスクリプト言語(Windows限定)

やりたいことは、フォルダの中にある全てのファイルを圧縮するとか、リネームするとか、そういう簡単な作業。こういったことを、WindowsでUnicodeの(CP932の範囲にない)文字を含むファイルに対して行いたい。少なくとも今のところは、RubyとかPerlではそうい…

C# をやることになった

C#

C#.NET をやることになった。ちょっと古い C# 2.0 を使っているので 3.0 の型推論とかが無いのがちょっと残念だけど。まだ初心者だけど、いまのところのお気に入り点 usingブロック 以下のように書くと、ブロックを抜けるときに、自動で引数に指定した変数の…

rsyncでFAT32にバックアップ

MacBook(Mac OS X 10.4)のデータを外付けのHDD(Windowsと共用するのでFAT32)にバックアップしようとして $ rsync -av $HOME/Documents /Volumes/Backupとやったら、コピーできることはできるんだけど何故か2回目以降も全ファイルがコピーされている模様…

ニコニコ動画をRubyスクリプトで操作(+Firefoxとのセッション共有)

ニコニコ動画をRubyで操作する方法として、nicovideo という直球な名前の使いやすいgemがあるのを知った。使い方はとても簡単。普通に gem install nicovideo でインストールして、たとえばデイリーランキングのTSV出力であれば require 'rubygems' require …

Maven2 のアーティファクトバージョン指定フォーマット

Maven2 で、アーティファクトのバージョン指定をするときには、"1.0.2" のように完全にバージョンを固定するのではなく、"1.0.x" の x の部分は最新版を自動で使う、のような指定もできる。でも、そもそも公式サイトのどこに記法についてのドキュメントがあ…

Spring Framework のサポートポリシー再改訂

前回 のさらに続き。Rod Johnson さんがTSSの掲示板で「タグづけポリシーを再検討している」と言ってましたが、その通り Spring Framework のサポートポリシーが再度改訂された模様。http://www.springsource.com/products/enterprise/maintenancepolicy/faq…

attachment_fu プラグインの脆弱性っぽいものについて

報告して修正もしてもらえたのでメモ。 以前 穴があると言ったプラグインは attachment_fu です。READMEに書いてあるような mass assignment @attachable_file = AttachmentMetadataModel.new(params[:attachable]) を行っている場合、プラグインやサーバの…

mass assignment を安全にするプラグイン?

はじめてRailsに触ったとき一番「落とし穴」と感じたのがmass assignment だった。 たとえば下のような、attr_accessible を忘れたモデルの会員制ブログアプリがあって、 class Entry belongs_to :user end class User has_many :entries end scaffold で自…

Spring Framework のサポートポリシーの件の続き

Spring Frameworkの新メンテナンスポリシー の件、反響が大きかったせいかFAQができてたのね。SpringSource Enterprise Maintenance Policy FAQ ソースツリーはエンタープライズとコミュニティで分かれることはない メジャーリリースから3ヶ月が過ぎたあとの…

プラグインの品質とか

前回の続きをやろうと思ったんだけど、使おうと思っていたRailsプラグインに結構な穴があったので中止。報告はしたいんだけど英語書けないから時間かかるんだよな。脆弱性報告メールのテンプレとかあればいいのに。Ruby on Rails Code Quality Checklist で…

SpringFramework の新メンテナンスポリシー

Spring 有償化 → 炎上 - C/pHeR Memo - Java とか。Eclipse とか。 経由。Javaフレームワークの元締めと言ってもいい Spring Framework のメンテナンスポリシーが改訂されたらしい。最新のメジャーリリース(2.5 とか、小数点ひと桁)が 出た後、コミュニテ…

Date.new の第四引数

昨日、Rails の日付・時刻入力周りを見ていて初めて知ったんだけど、Date.new は年・月・日のほかに省略可能な第四引数として「グレゴリオ歴の開始日」を「ユリウス日」で指定できるらしい。何も指定しなかった場合は、デフォルトの Date::ITALY の値が使わ…

不正な日付のバリデーション

たとえばブログ記事のモデルEntryがあって、はてなダイアリーみたいに投稿者が投稿日を指定できるとする。日時や日付を入力したい場合、投稿画面では以下のように datetime_select や date_select を使うと凄く楽だ(posted_time は datetime カラム、posted…

ノエル・ギャラガー襲撃される

某ラジオ経由。1:30辺りから。 Oasis' Noel Gallagher assaulted on stage in Toronto--2008-9-7 Oasisのトロントでのライブ中に男が乱入、結構な勢いでノエルを突き飛ばす。映像はそのまま終わっていて怪我の状況は不明だけど、その後演奏は再開したらしく…

複数のURLを一度に開く機能がほしい

クリップボードやファイルに入った単純な改行区切りのURLリストを、Firefoxで一気に開きたい。 小一時間ほど探索しても、そのような機能やアドオンは見つからず。起動時に開くとかブックマークフォルダを開くとかそういう話しか無いようだ。みんな必要ないの…

はてなダイアリーで戸惑うこと

箇条書きにしようとアスタリスク(*)を羅列しそのまま出力される。

とりあえず新規アプリケーションを作ってユーザ認証とかが動くまで

2008-09-13 ちょっと修正。sqlite3-ruby も必要っぽかった。 仕事ではRails 1.2.6しか触ってないし既にテンプレありの状態からだったので、最新のRails 2.1.1で新規アプリをどう作るか確かめるの巻。 環境は Mac OS 10.4 だけどRubyが動けばどこでも問題ない…

表形式のフォームの書き方?

Strutsでも面倒くさかった、Excelシート的なHTMLテーブル的な二次元データ構造用のフォームはどう書くか、 相変わらず何がベストなのかはよくわからないが、Rails 2.1.0 だととりあえず以下のようにするとそれなりにできることはできるらしい。たとえばアド…

ようやくRuby/Railsを使いだした

2ヶ月前くらいから、遅ればせながら Ruby on Railsを仕事で使い出した。諸般の理由でちょっと古い 1.2.6 なんですが。今までずっとJavaだったので、仕事でRubyを使うのも初めて。感じたことを書いてみる。 やってることは Struts とほとんど変わらないので、…

属性の別名を作成するやり方

Google で alias_attribute を検索しても日本語のページが6件しか引っかからないので一応メモしてみる。クラスの属性に別名をつけたい場合のために、ActiveSupport では Module#alias_attribute というメソッドが用意されている。 たとえば、ブログの記事を…