骨のダイスを転がそう
2010-10-10
_ [Ruby][Windows] Jruby と Windows でカラー端末
nanoc3 という静的HTMLを生成するCMSがある。面白そうなので手元のWindows上で、jruby で試してみたら……
C:\home\hoge\sample>nanoc3 create_site test [1m [32m create [0m config.yaml [1m [32m create [0m Rakefile [1m [32m create [0m Rules [1m [32m create [0m content/index.html [1m [32m create [0m content/stylesheet.css [1m [32m create [0m layouts/default.html Created a blank nanoc site at 'test'. Enjoy!
化けた。これは、cmd.exe が、ANSI端末のカラー化に対応していないためだ。では、win32console を入れると良いらしい。ところが、win32console は、Cの拡張ライブラリを使ってるので、jruby では使えない。困った。
で、いろいろとググったところ ansicolor というのを発見。
ANSI color support for Java/JRuby on Windows
これじゃあ!! というわけで
jgem sources -a http://gems.github.com jgem install aslakhellesoy-ansicolor
で導入。jruby 1.5.3 で起動したところテストスクリプトが落ちる。ライブラリに
require 'java'
を追記してやる必要があった。で、nanoc3 で、端末に出力してる部分に
vi nanoc3/cli/logger.rb
begin #require 'Win32/Console/ANSI' if RUBY_PLATFORM =~/mswin|mingw/ require 'ansicolor' rescue LoadError @color = false end
としたらカラー出力成功!!せっかくだから本家にも報告したいんだがどうすりゃ良いんだろう。
2010-10-23
_ [.Net] ClickOnce のインストール、更新時の認証の制限は異常
- 会社で、ユーザーにアプリケーションを配布する手段として ClickOnce を研究しているんだけど、ともかくアプリは無制限で配布する、という前提になっていて驚く。
- 厳密には、Windows認証での認証と承認は可能みたいなんだけど、その他の認証は、Basic認証だろうが、Form認証だろうが、果ては、クライアント証明書での認証もダメ。
- とりあえず、アプリケーションはダウンロードしてもらって、起動時に好きな方法で認証かければいいじゃん? ってな感じらしい。
- ユーザーのPCに悪影響を及ぼさないための工夫はかなりあるんだけど……。
- それに全体的になんか情報が少ない。みんな、RIAやクラウドの方に行ってしまっているんだろうか。
2010-10-28
_ [ruby] ruby 1.8.5 と、rack 1.2.1 で
/home/hoge/usr/gems/rack-1.2.1/lib/rack/utils.rb:138:in `union': can't convert Array into String (TypeError) from /home/hoge/usr/gems/rack-1.2.1/lib/rack/utils.rb:138
てなエラーが出る。
ESCAPE_HTML_PATTERN = Regexp.union(ESCAPE_HTML.keys)
↓
ESCAPE_HTML_PATTERN = Regexp.union(*ESCAPE_HTML.keys)
と手で修正した。
参考 http://osdir.com/ml/lang.ruby.japanese/2007-10/msg00029.html
_ [ruby] ruby 1.8.5 と gem 1.3.5
gem をユーザー権限でインストールし、環境変数 GEM_HOME を設定したが CGI がうまく動かない。コマンドラインでは、反映するんだがどういう理屈なんだろう? 結局、こんな風に書いたんだが、バグなんだろうか?
Gem.path.unshift("/home/hoge/usr/") Gem.source_index.spec_dirs = Gem::SourceIndex.installed_spec_directories Gem.refresh
_ [ruby] sinatra 1.1.0
#!/usr/bin/ruby $LOAD_PATH << '/home/hoge/usr/lib' require 'rubygems' Gem.path.unshift("/home/hoge/usr/") Gem.source_index.spec_dirs = Gem::SourceIndex.installed_spec_directories Gem.refresh require 'sinatra' set :run, false set :environment, :cgi get '/' do 'Hello world!' end Rack::Handler::CGI.run Sinatra::Application