jQuery on Rhino の続き(知らぬは我が身ばかりなり)

昨日修正してみたenv-jsは、実は現在では thatcher/env-js の方がメインらしい。メーリングリストなどもありとても活発に開発されているようだ。Resig氏のリポジトリだから本家だろうとそこで探索を打ち切ってしまったのが間違いだったようで……。ということ…

jQuery on Rhino

唐突にサーバサイドJavaScriptがやってみたくなった。Mayaaとかがやっているように、Rhinoを使って、JavaでつくったWebアプリのビュー部分でJavaScriptを使うという計画。JavaScriptでHTMLをいじるならjQueryしかないと個人的に思っているので、まず jQuery …

るびまゴルフ

http://jp.rubyist.net/magazine/?0025-RubiMaGolf C# ばかりだったのでリハビリのためにチャレンジ。 Q1 (17文字) puts $<.to_a.uniq Q2 (23文字) puts $<.read.split.uniq 厳密には STDIN のほうがいいのかな?今回知ったこと puts は配列を渡すと個々の要…

JScriptによるWMIの利用

Windowsで仕事用の(つまり、Rubyとかを勝手にインストールできないときの)スクリプトを書くときは大抵JScriptで書いているんだけど、世の中はVBScriptが主流らしく、サンプルコードとかが手に入りづらかったりする。最近もレジストリ操作をしようとして悩…

RubyOSA で iTunes を操作

iTunesへの楽曲登録やトラック情報の入力を自動化したいと思って検索してみたら、Macだと RubyOSA というRubyのライブラリでiTunesを操作できるらしいので試してみた。環境は Tiger + Ruby 1.8.7。 インストール libxml-ruby が新しいと BUS Error とか言わ…

安定なソートください

C#

C#(.NET Framework) で地味に困ることのひとつが、標準のコレクションフレームワークのソートがJavaと違って安定でないこと。マージソートくらい自分で実装してみせろ!というMicrosoftの愛のムチを無視して、逃げに走る。 static void StableSort<T>(List<T> list,</t></t>…

Windowsアプリケーションのテスト

そうか、Windowsアプリのウインドウとかコンポーネントも単なるクラスだから、大抵の内容なら普通にテストができるんだ…。Webアプリ脳なので何かSeleniumみたいなものが必要なのかと漠然と思い込んでた。こんな適当なWindowsアプリケーションがあったら usin…

Windows Vista への coLinux インストールメモ

coLinux を出来合いのディスクイメージ(Ubuntu 7.10)で Windows Vista にインストールしたときのメモ。あまり Windows XP と変わるところはない。 最初、CentOS 5.2のイメージを作ろうとしたけどQEMUでインストーラを動かすとKernel Panicになるので断念。 c…

設定ファイル類のバージョン管理

開発者ごとに変更したりする設定ファイルの類いをSubversionでバージョン管理するとき困るのが「ローカルの変更が誤ってコミットされる」という問題。たとえば 開発者ごとにDBユーザ割り当ててる場合の接続先設定とかそういうの。Subversionの公式FAQを見る…

長いファイル名を変更する

Windowsでは、パス文字列の長さが260文字を超えてしまうと、Explorerだろうがコマンドプロンプトだろうが「ファイル名または拡張子が長すぎます。」と言われて移動や削除ができなくなってしまうらしい(Vistaでも直ってない)。これの対処方法。 親フォルダ…

同値の判定とシリアル化

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で一気に開きたい。 小一時間ほど探索しても、そのような機能やアドオンは見つからず。起動時に開くとかブックマークフォルダを開くとかそういう話しか無いようだ。みんな必要ないの…

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

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