ターミナルエミュレータ「ck」を入れる
新しいマシンが来た!ということで、
今頃になってようやくWindows7を触れることになった。
なにはともあれ、まずはcygwinをセットアップ。
こちらは難なくインストール完了。
そして、次はターミナルのckを入れる。
cygwin ck terminal emulator
http://www.geocities.jp/meir000/ck/index.html
知らなかったけど、cygwinのパッケージにminttyというのが入っていた。
puttyをベースに作られていて、普通に使う分にはこれでよさそう。
けど、ckに比べると日本語の扱いがいまいち。
ckは、UTF-8、Shift_JIS、EUC-JPを混在して扱えるのが便利。
ひと昔前は、ckのセットアップをするのにちょっと苦労してたけど、
ver3になってからは、ずいぶんすっきりと簡単になった。
設定変更も、さっと終わった。以下、変更点。
・ラインバッファを増やす。
・デフォルトの表示行を少し増やす
・背景をちょっと透明に
・カーソルを点滅させる
・カーソルの色を変更
・フォントを変更
・キーバインド変更
左Alt+N,Mで新ウィンドウ
左Alt+J,Kでシェル切り替え
左Alt+Vでペースト
左Shift+↑↓で行移動
う〜ん、やっぱりminttyよりずっと快適。
--- .ck.config.js.backup 2011-06-17 00:07:52.932600600 +0900 +++ .ck.config.js 2011-06-16 23:32:01.990934900 +0900 @@ -4,7 +4,7 @@ Config.tty.execute_command = "/bin/bash --login -i"; Config.tty.title = "ck"; -Config.tty.savelines = 1000; +Config.tty.savelines = 99999; Config.tty.input_encoding = Encoding.UTF8; Config.tty.display_encoding = Encoding.SJIS | Encoding.EUCJP | Encoding.UTF8; Config.tty.scroll_key = 1; @@ -15,13 +15,13 @@ Config.window.position_x = null; Config.window.position_y = null; -Config.window.cols = 100; -Config.window.rows = 36; +Config.window.cols = 120; +Config.window.rows = 30; -Config.window.scrollbar_show = 1; -Config.window.scrollbar_right = 1; +Config.window.scrollbar_show = 0; +Config.window.scrollbar_right = 0; Config.window.blink_cursor = 1; -Config.window.transparent = WinTransp.None; +Config.window.transparent = WinTransp.Transp; Config.window.zorder = WinZOrder.Normal; Config.window.linespace = 0; Config.window.border_left = 1; @@ -33,18 +33,18 @@ Config.window.mouse_middle = MouseCmd.Paste; Config.window.mouse_right = MouseCmd.Menu; -Config.window.font_name = "MS Gothic"; -Config.window.font_size = 12; +Config.window.font_name = "mplus-1m"; +Config.window.font_size = 16; Config.window.background_file = ""; Config.window.background_repeat_x = Place.NoRepeat; Config.window.background_repeat_y = Place.NoRepeat; Config.window.background_align_x = Align.Center; Config.window.background_align_y = Align.Center; -Config.window.color_foreground = 0x000000; -Config.window.color_background = 0xFFFFFFFF; +Config.window.color_foreground = 0xFFFFFFFF; +Config.window.color_background = 0xDD000000; Config.window.color_selection = 0x660000FF; -Config.window.color_cursor = 0x00AA00; +Config.window.color_cursor = 0xFFFF33; Config.window.color_imecursor = 0xAA0000; Config.window.color_color0 = 0x000000; @@ -65,18 +65,18 @@ Config.window.color_color14 = 0x44FFFF; Config.window.color_color15 = 0xFFFFFF; -Config.accelkey.new_shell = Keys.ShiftL | Keys.CtrlL | Keys.N; -Config.accelkey.new_window = Keys.ShiftL | Keys.CtrlL | Keys.M; +Config.accelkey.new_shell = Keys.AltL | Keys.N; +Config.accelkey.new_window = Keys.AltL | Keys.M; Config.accelkey.open_window = Keys.ShiftL | Keys.CtrlL | Keys.O; Config.accelkey.close_window = Keys.ShiftL | Keys.CtrlL | Keys.W; -Config.accelkey.next_shell = Keys.CtrlL | Keys.Tab; -Config.accelkey.prev_shell = Keys.ShiftL | Keys.CtrlL | Keys.Tab; -Config.accelkey.paste = Keys.ShiftL | Keys.Insert; +Config.accelkey.next_shell = Keys.AltL | Keys.J; +Config.accelkey.prev_shell = Keys.AltL | Keys.K; +Config.accelkey.paste = Keys.AltL | Keys.V; Config.accelkey.popup_menu = Keys.ShiftL | Keys.F10; Config.accelkey.popup_sys_menu = Keys.AltR | Keys.Space; Config.accelkey.scroll_page_up = Keys.ShiftL | Keys.PageUp; Config.accelkey.scroll_page_down = Keys.ShiftL | Keys.PageDown; -Config.accelkey.scroll_line_up = Keys.None; -Config.accelkey.scroll_line_down = Keys.None; +Config.accelkey.scroll_line_up = Keys.ShiftL | Keys.Up; +Config.accelkey.scroll_line_down = Keys.ShiftL | Keys.Down; Config.accelkey.scroll_top = Keys.ShiftL | Keys.Home; Config.accelkey.scroll_bottom = Keys.ShiftL | Keys.End;
XMLHttpRequestとクロスドメイン
プレースホルダ
HTML5って既存のタグもいろいろと細かいところで強化されてるんだなぁ。
HTML5 placeholder attribute tests
http://html5accessibility.com/tests/placeholder-labelling.html
続:テンプレートエンジンTenjinを使ってみる
Tenjin::ContextHelperを使ったら、いちいち値を渡さなくてよいのでちょっと便利。
main.rb:
require 'sinatra/base' require 'tenjin' class MyEngine < Tenjin::Engine def initialize(path, line, options) @template_path = path super({}) end def render(app, locals, &block) super(@template_path, app) end end Tilt.register :rbhtml, MyEngine class Main < Sinatra::Base include Tenjin::ContextHelper def bar 'bar method' end get '/' do @ins_var = 'instance value' render(:rbhtml, :index, {}, self) end end
実行結果:
hiro@neptune% cat views/index.rbhtml @ins_var = #{@ins_var} bar = #{bar} hiro@neptune% cat config.ru require './main' run Main hiro@neptune% thin start & [1] 5296 hiro@neptune% >> Using rack adapter >> Thin web server (v1.2.7 codename No Hup) >> Maximum connections set to 1024 >> Listening on 0.0.0.0:3000, CTRL+C to stop hiro@neptune% curl localhost:3000 @ins_var = instance value bar = bar method
テンプレートエンジンTenjinを使ってみる
ふと、Sinatraで標準対応していないテンプレートエンジンのTenjinを使ってみようと思い、
いろいろ試してみたところ、なんとかいけそうな感じにはなってきた。
Sinatraは内部でTiltという汎用的なテンプレートのインターフェースを使っているが、
それに合わせたクラスにしてやればいいようだ。
test_template.rb:
require 'sinatra' require 'tenjin' class MyEngine < Tenjin::Engine def initialize(path, line, options) @template_path = path super({}) end def render(app, locals, &block) super(@template_path, locals) end end Tilt.register :rbhtml, MyEngine helpers do def tenjin(*args) render(:rbhtml, *args) end end get '/' do tenjin :index, {}, {:foo => 'foo value'} end
実行結果:
hiro@neptune% cat ./views/index.rbhtml <html> <body> ${@foo} </body> </html> hiro@neptune% ruby test_template.rb & [1] 2412 hiro@neptune% == Sinatra/1.1.2 has taken the stage on 4567 for development with backup from Thin >> Thin web server (v1.2.7 codename No Hup) >> Maximum connections set to 1024 >> Listening on 0.0.0.0:4567, CTRL+C to stop hiro@neptune% curl http://localhost:4567 127.0.0.1 - - [13/May/2011 00:23:41] "GET / HTTP/1.1" 200 40 0.0160 <html> <body> foo value </body> </html>
MemoryCard Utility (Canon) を無効にする
Canonのデジカメに付属しているユーティリティをインストールすると、
メディアを挿したときに自動でMemoryCard Utilityが起動して、ImageBrowserの画像取り込みメニューが表示される。
ImageBrowserを使っていればこれでよいのだが、写真管理はLightroomでやっているので、自動起動されるとちょっとうっとうしい。
これまでMemoryCard Utilityが起動されるごとにすぐ終了させていたが、いい加減面倒になってきた。
なんとかこれを無効にしようと探っていると、この機能の設定がぜんぜん別の場所にあった。
アプリケーションフォルダにイメージキャプチャがあるが、
この環境設定で「カメラを接続したときに起動する項目」があり、ここで設定されていた。
この値を「割り当てアプリケーションなし」にすれば、自動起動が無効になる。
それにしても、設定がImageBrowser以外の場所にあるとは盲点だった。