Vim を 256 色で使いたい

comments(0) | trackback(0)

はてなブックマークに追加 はてなブックマーク数 del.icio.us に追加 livedoor クリップに追加 livedoor クリップ数 Yahoo!ブックマークに追加

  以前ターミナルを 256 色にしたのですが,せっかくなので Vim も 256 色で使いたいと思って以下のようなスクリプトを書きました.

#!/usr/bin/env perl

use strict;
use warnings;

my $fg = "\x1b[38;5;";
my $bg = "\x1b[48;5;";
my $rs = "\x1b[0m";

my $color = 0;

for (my $row = 0; $row < 32; ++$row) {
    for (my $col = 0; $col < 8; ++$col) {
        print get_color($color);
        $color++;
    }
    print "\n";
}

sub get_color {
    my ($color) = @_;
    my $number = sprintf '%3d', $color;
    return qq/${bg}${color}m ${number} ${rs} ${fg}${color}m${number}${rs} /;
}


  さて,こいつは何をするかというと,使っているターミナル上で何番の番号が何の色かを表示するものです.
  自分の環境では以下のようになります (クリックして大きくなります).

  

  この番号はそのまま Vim の色指定の番号になります.
  つまり ctermfg とか ctermbg とかに,表示された色を見ながら番号を指定することができます.
  例えば,上記スクリプトで表示された色番号 21 を使いたい場合は,以下のように設定する感じですね.

hi diffAdded    ctermfg=21


  こうやって設定して vim -d をしたサンプルです.淡い色も使えていい感じです.

  

タグ: [Vim][Solaris]

Web 標準 XHTML+CSS デザイン クリエイターが身につけておくべき新・100の法則。

comments(0) | trackback(0)

はてなブックマークに追加 はてなブックマーク数 del.icio.us に追加 livedoor クリップに追加 livedoor クリップ数 Yahoo!ブックマークに追加

  4844324241
  amazon.co.jp 詳細ページへ
  加藤 善規/平澤 隆/両見 英世 (著)
  インプレスジャパン
  ISBN: 4844324241
  2007/7/3
  2,310 円

デザイン的なテクニックだけで満足していませんか?
デザインを忠実に再現するだけではない、ワンランク上の実践的コーディングノウハウを解説。
Web 標準サイト制作を行う上で基本となる XHTML の基礎から現場で使える CSS の技までオールカラーの図解、実例を使って丁寧に解説。
もう「できません」ではすまされない Web クリエイターのための一冊。やりたいことがすぐにできる新・100 の法則シリーズ最新刊!

タグ: [Books][CSS]

WordPress 2.2でつくる!最強のブログサイト ― 2.1/2.2対応

comments(0) | trackback(0)

はてなブックマークに追加 はてなブックマーク数 del.icio.us に追加 livedoor クリップに追加 livedoor クリップ数 Yahoo!ブックマークに追加

  4881665782
  amazon.co.jp 詳細ページへ
  乙彼 三太郎; 田中 広将 (著)
  ソーテック社
  ISBN: 4881665782
  2007/6/18
  2,709 円

  『WordPress でつくる!最強のブログサイト』の改訂版

タグ: [Books]

実践 Web 2.0 BOOK

comments(0) | trackback(0)

はてなブックマークに追加 はてなブックマーク数 del.icio.us に追加 livedoor クリップに追加 livedoor クリップ数 Yahoo!ブックマークに追加

  4844324187
  amazon.co.jp 詳細ページへ
  津久井 玲宏 (著), 古川 健介 (著), 野間 恒毅 (著), 秋田 真宏 (著), 吉川 英興 (著), 秋元 裕樹 (著)
  インプレスジャパン
  ISBN: 4844324187
  2007/6/27
  1,680 円

Web 2.0 でオフィスが変わる - メールも予定表も企画書も、すべてのデータを Web 上に置こう!

  サブタイトルが不評なようですね.内容ではないですよ.念のため.

タグ: [Books]

Ethna×PHP LL フレームワーク Books

comments(0) | trackback(0)

はてなブックマークに追加 はてなブックマーク数 del.icio.us に追加 livedoor クリップに追加 livedoor クリップ数 Yahoo!ブックマークに追加

  4774131393
  amazon.co.jp 詳細ページへ
  藤本 真樹/一井 崇/鶴岡 直也/新井 啓太 (著)
  技術評論社
  ISBN: 4774131393
  2007/6/27
  1,980 円

本書は PHP を利用した Web フレームワーク・Ethna (エスナ) の解説書です。
Web フレームワークとは何か,Ethna を使うために何が必要かなどの基礎知識からはじまり,
開発環境のインストールと設定,Ethna を利用した簡単な Web アプリケーションの作成までを一通り解説します。
Web プログラミングを勉強中の人,PHP による Web アプリケーション開発のスキルを向上させたい人にお勧めできる一冊です。

タグ: [Books][PHP]

dig の出力に色をつける dig-color

comments(2) | trackback(1)

はてなブックマークに追加 はてなブックマーク数 del.icio.us に追加 livedoor クリップに追加 livedoor クリップ数 Yahoo!ブックマークに追加

  dig の出力に色をつける dig-color というのを作ってみました.
  リソースレコードタイプは A/NS/CNAME/SOA/MX のみにしか対応していませんので,そのほかのタイプが必要であれば追加してください.

#!/usr/bin/env ruby

colors = {
    "section" => "02;01",
    "comment" => "37",
    "normal"  => "00",
    "A"       => "32",
    "NS"      => "34",
    "CNAME"   => "36",
    "SOA"     => "33",
    "MX"      => "31",
}

IO.popen("dig " + ARGV.join(" ")) { |io|
    io.each_line { |line|
        color = colors["normal"]
        if line =~ /^;;.+SECTION:$/
            color = colors["section"]
        elsif line =~ /^;/
            color = colors["comment"]
        elsif line =~ /^(.+\s)(SOA|NS|A|MX|CNAME)(\s.+)$/
            color = colors[$2]
            # レコードタイプのみに色を付ける場合
            #line = sprintf "%s\e[%sm%s\e[00m%s\n", $1, colors[$2] ,$2, $3
        end
        printf "\e[%sm%s\e[00m", color, line
    }
}


- 出力例 (この色が見やすいかどうかは……)
  


- 追記
  Perl で書き換えてくれた方がいました.

- dig の出力に色をつける dig-color(perl版) | cafe chantant blog
  http://www.cafechantant.com/blog/2007/07/04/dig-%e3%81%ae%e5%87%ba%e5%8a%9 ...

タグ: [Network][Solaris][FreeBSD][Linux][Ruby]

prototype.js を svn で取得してビルドする方法

comments(0) | trackback(0)

はてなブックマークに追加 はてなブックマーク数 del.icio.us に追加 livedoor クリップに追加 livedoor クリップ数 Yahoo!ブックマークに追加

  prototype.js の最新機能を確認したい時に,Subversion のリポジトリから取得してビルドする方法です.
  いつも忘れるのでメモ.

$ svn co http://svn.rubyonrails.org/rails/spinoffs/prototype/trunk prototype
$ cd prototype
$ rake

  dist/prototype.js に最新版がビルドされます.

- ref.: Prototype JavaScript framework: Download Prototype
  http://www.prototypejs.org/download

- ref.: Prototype JavaScript framework: Contribute
  http://www.prototypejs.org/contribute

タグ: [JavaScript]

MeCab を使って読み仮名を取得する方法

comments(0) | trackback(0)

はてなブックマークに追加 はてなブックマーク数 del.icio.us に追加 livedoor クリップに追加 livedoor クリップ数 Yahoo!ブックマークに追加

  出力フォーマットの指定すれば可能です.忘れやすいのでメモ.

$ echo 東京特許許可局 | mecab --node-format="%f[7]" --eos-format="\n"
トウキョウトッキョキョカキョク

- ref.: 出力フォーマット
  http://mecab.sourceforge.net/format.html

- 追記 1
  上記だと,以下のようなエラーが出ることがある.

tagger.cpp(172) [writer_.write(&ostrs_, str, n)] writer.cpp(322) [n < psize] given index is out of range

  --unk-format="%M" オプションを追加すればエラーが出なくなった.

  ……というか,-Oyomi オプションだけで OK っぽい.うーむ.ドキュメントをよく見ていなかった.

- ref.: 出力フォーマットの変更
  http://mecab.sourceforge.net/#format

- 追記 2
  読み仮名だけに関して言えば MeCab 0.9x より MeCab 0.81 の方が精度がいいような気がする.
  例えば,0.96 だと「北海道立図書館」は「ホッカイドウタテトショカン」,「函館市交通局」は「ハコダテイチコウツウキョク」になる.これ以外にも,○○市△△とかはうまくいかないことが多い.
  0.81 の場合は,このあたりはうまくいく.

  扱うものによるので一概には言えないけど,0.81 と 0.9x でのチェックは必要になりそう.

- 追記 3 (2007-08-21)
  辞書のバグだった模様で、mecab-ipadic-20070801 で修正されています。

- [mecab-users 290] Re: 「立」「市」の読み仮名
  http://lists.sourceforge.jp/mailman/archives/mecab-users/2007-August/00028 ...

- [mecab-devel 68] mecab-ipadic-20070801
  http://lists.sourceforge.jp/mailman/archives/mecab-devel/2007-August/00006 ...

ウェブユーザビリティの法則 改訂第2版

comments(0) | trackback(0)

はてなブックマークに追加 はてなブックマーク数 del.icio.us に追加 livedoor クリップに追加 livedoor クリップ数 Yahoo!ブックマークに追加

  4797339098
  amazon.co.jp 詳細ページへ
  スティーブ・クルーグ (著), 中野 恵美子 (翻訳)
  ソフトバンククリエイティブ
  ISBN: 4797339098
  2007/3/1
  2,940 円

タグ: [Books]

Windows の DNS キャッシュをクリアする方法

comments(0) | trackback(0)

はてなブックマークに追加 はてなブックマーク数 del.icio.us に追加 livedoor クリップに追加 livedoor クリップ数 Yahoo!ブックマークに追加

  ipconfig /flushdns

  上記のように

C:\>ipconfig /flushdns

  で OK.DNS Client サービスの再起動やシステム自体の再起動でも OK.

  キャッシュされている情報を見るには displaydns オプションを指定します.

C:\>ipconfig /displaydns

  おそらく,Windows 2000 以降のみだと思われます.

- ref.: ipconfig コマンドを使ってクライアント リゾルバ キャッシュをフラッシュおよびリセットする
  http://www.microsoft.com/technet/prodtechnol/windowsserver2003/ja/library/ ...

- ref.: ネットワーク接続に対して Ipconfig 診断ユーティリティを使用するための構文とオプション
  http://support.microsoft.com/kb/314850/ja

- 追記 (2007-11-16)
  DNS Client サービスが停止している場合、以下のようなエラーが表示されます。

Could not flush the DNS Resolver Cache: 関数は実行中に失敗しました。

PHP による JavaScript を書かない Ajax

comments(0) | trackback(0)

はてなブックマークに追加 はてなブックマーク数 del.icio.us に追加 livedoor クリップに追加 livedoor クリップ数 Yahoo!ブックマークに追加

  4861671752
  amazon.co.jp 詳細ページへ
  佐久嶋 ひろみ (著)
  九天社
  ISBN: 4861671752
  2007/05
  3,150 円

  HTML_AJAX/xajax,CakePHP/symfony の情報など

- サポートページ
  http://sakushima.net/BOOK/AjaxFramework/

タグ: [Books][PHP][JavaScript][Ajax]

XREA の SSH 用のホスト登録を自動で処理する

comments(1) | trackback(0)

はてなブックマークに追加 はてなブックマーク数 del.icio.us に追加 livedoor クリップに追加 livedoor クリップ数 Yahoo!ブックマークに追加

  XREA に SSH で接続する際は,以下のようにホストを登録する必要があります.

  FTP/SSH接続許可ホスト入力

  一度登録してしまえば 30 日は有効になるのですが,IP アドレスが変更になった場合や複数のサーバを使い分けている場合にとても不便なので,自動でホスト情報を登録するスクリプトを WWW::Mechanize を利用して書いてみました.

#!/usr/bin/env perl

use strict;
use warnings;
use WWW::Mechanize;

my $url = 'XREA の管理画面の URL';
my $userid = 'ID';
my $passwd = 'パスワード';

# ログイン画面
my $mech = WWW::Mechanize->new();
$mech->get($url);

$mech->form_number(1);
$mech->set_fields('id' => $userid, 'pass' => $passwd);
$mech->click_button('name' => 'explain');

# ログイン直後の画面
$mech->form_number(1);
$mech->click_button('name' => 'telnet');

# ホスト情報登録画面
$mech->form_number(6); # 5 -> 6 に変更になった (2008-02-22)
$mech->click_button('name' => 'ssh2');


  エラー時の処理などは一切行っていませんのでご注意を.

タグ: [Perl]

PHP の round(0.49999999999) が 1 になるのか実際に試してみた

comments(0) | trackback(0)

はてなブックマークに追加 はてなブックマーク数 del.icio.us に追加 livedoor クリップに追加 livedoor クリップ数 Yahoo!ブックマークに追加

  以下のサイトにて,PHP の round() の挙動について解説されていました.
  そこで,実際に 1 になるのかどうか試してみました.

- hnwの日記 - PHPの奇妙なround関数
  http://d.hatena.ne.jp/hnw/20070515

  結論から書くと,1 になる場合もならない場合もありました.こういうのが一番困ります.
  分かったことは,バージョンによる差ではなくて,環境による差だろうということです.

  round() を使う前にその環境で確認しておくことが重要ですね.

1 になる環境

$ uname -mrs
Linux 2.4.9-e.9.18mlsmp i686

$ php -v
PHP 4.3.3 (cli) (built: Oct  9 2003 14:50:50)
Copyright (c) 1997-2003 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2003 Zend Technologies

$ php -r 'var_dump(round(0.49999999999));'
float(1)

$ uname -mrs
Linux 2.6.9-42.ELsmp i686

$ php -v
PHP 4.4.7 (cli) (built: May 28 2007 14:26:24)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies

$ php -r 'var_dump(round(0.49999999999));'
float(1)

$ uname -mrs
Linux 2.6.17.13-smp i686

$ php -v
PHP 4.4.6 (cli) (built: May  2 2007 16:49:35)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies

$ php -r 'var_dump(round(0.49999999999));'
float(1)

1 にならない (0 になる) 環境

$ uname -mrs
Linux 2.4.9-e.9.18mlsmp i686

$ php -v
PHP 4.3.2 (cli) (built: May 10 2004 15:01:20)
Copyright (c) 1997-2003 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2003 Zend Technologies

$ php -r 'var_dump(round(0.49999999999));'
float(0)

$ uname -mrs
SunOS 5.10 i86pc

$ php -v
PHP 4.4.7 (cli) (built: May 13 2007 13:56:00)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies

$ php -r 'var_dump(round(0.49999999999));'
float(0)

$ uname -mrs
SunOS 5.10 i86pc

$ php -v
PHP 5.2.2 (cli) (built: May 13 2007 14:15:44)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies

$ php -r 'var_dump(round(0.49999999999));'
float(0)

$ uname -mrs
SunOS 5.10 sun4u

$ php -v
PHP 5.2.1 (cli) (built: Feb 28 2007 16:54:38)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies

$ php -r 'var_dump(round(0.49999999999));'
float(0)

$ uname -mrs
Linux 2.6.17.13-smp i686

$ php -v
PHP 4.4.4 (cli) (built: Jan  8 2007 00:09:11)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies

$ php -r 'var_dump(round(0.49999999999));'
float(0)

$ uname -mrs
Linux 2.4.32 i686

$ php -v
PHP 4.4.4 (cli) (built: Sep  9 2006 10:36:27)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies

$ php -r 'var_dump(round(0.49999999999));'
float(0)

$ uname -mrs
Linux 2.6.17.13-smp i686

$ php -v
PHP 5.2.2 (cli) (built: May 25 2007 00:09:33)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies

$ php -r 'var_dump(round(0.49999999999));'
float(0)

$ uname -mrs
SunOS 5.8 i86pc

$ php -v
PHP 4.3.4 (cli) (built: Nov 30 2005 06:29:37)
Copyright (c) 1997-2003 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2003 Zend Technologies

$ php -r 'var_dump(round(0.49999999999));'
float(0)

タグ: [PHP]