Archive for the 'tech' Category

6月 18 2008

Firefox3 の駅での広告ムービーとギネスブックに挑戦

Published by HoLY under tech

Webブラウザ Mozilla Firefox3 がついにリリースってことで、Firefox3 の広告が山手線や新宿駅等の駅のモニタで放送されていました。存在は知ってたけどいつやるかや詳細は知らなかったのでびっくり。

そして Firefox3 は 「24時間の最多ダウンロードソフトウェアに挑戦」 するそうです。 使ったことない人は、この機会にぜひ使ってみて欲しいなあ。

とりあえず、JSTでは2時から集計開始なので、待機してます。w

Download Day - Japanese

まだコメントはありません

6月 16 2008

DOS プロンプト(cmd.exe)でのエスケープは ^

Published by HoLY under tech

今更なんですがDOS プロンプト(cmd.exe)でのエスケープは「^(サーカムフレックス)」なことを最近知りました。

CMD.EXE TIPs とか読んでます。cmd.exe は難しい…(/bin/sh が簡単とは言わないけれども。比較的慣れているだけで…)。

まだコメントはありません

6月 12 2008

cd の出力を tee するには

Published by HoLY under tech

スクリプトの出力を一行一行 “| tee” につなぐことがあります(”script”しろよという話はここでは置いておきます)。

ですが cd コマンドの行を機械的に “| tee” につないでしまうと、上手くいきません。

$ cd somedir 2>&1 | tee logfile

このコマンドは終了時に(somedirではなく)元のディレクトリに戻ってきます。 なぜかと言うと cd コマンドがサブシェルで実行されるため、サブシェル終了時にカレントディレクトリが戻ってしまうからですね。

パイプを使わなければサブシェルで実行されることもなく、想定どおりの動作をさせることができますが、 これとまったく同じ動作をパイプを使わずに行うのは、少なくとも bash では難しいです。

しかし、zsh でかつ “setopt multios” されているならば(デフォルト動作です)、こんな風にできます。

$ cd somedir >logfile >/dev/stdin 2>&1 

2つ以上のファイルにリダイレクトすることができます。

また、あくまで tee を使うことにこだわるならば、

$ cd somedir > >(tee logfile) 2>&1

とすることもできます。受ける側のみをサブシェルにすることができます。

>(cmd....), <(cmd....), =(cmd....) はなかなか便利なので、 zsh を使うなら覚えておいて損はありません。

それぞれプロセスを非同期で実行し、>,<の場合はファイルディスクリプタを指すデバイスに置換されます。( echo <(ls) などとしてみると分かるかも )

=(cmd....) は同様ですが、デバイスではなくテンポラリファイルを指します。

$ cat file1 =(echo ------)  file2

などと、ファイルを指定する場所に任意のコマンドを差し込むことができます。

man zshexpnPROCESS SUBSTITUTION の項を参考に。

zsh やっぱスゲエ 、ということで。

まだコメントはありません

6月 10 2008

cygwin と pageant

Published by HoLY under tech

普段は windows で ssh 関係を使うときは、 putty ファミリー(?) のツールを主に使っています。putty 本体もそうですが、コマンドラインから plink, pscp あたりもそれなりによく使うことがあります。

また、putty における ssh-agent 相当の pageant も、そういう時には立ち上げて使います。これを使うと、いちいちパスフレーズを入力する手間を省いてくれます。

ところで cygwin のプロセス(bash シェルとか)から plink を立ち上げると pageant を上手く使ってくれません。

作者のページのwishlistに上がっている “PuTTY semi-bug cygwin-clobbers-pageant” にあるように、これは既知のバグというか、仕様というか、そういうもののようです。

先のページにもありますが、cygwin から pageant を立ち上げれば cygwin から plink を使っても pageant を使えます。しかしその場合、 cygwin を使わない putty や winscp などから pageant を使えない、という…。

この辺を解決するうまい方法があったら誰か教えてください。

まだコメントはありません

6月 06 2008

open-uri を Basic認証のあるサイトに使う

Published by HoLY under tech

Ruby の便利標準ライブラリ筆頭(個人的感想)である open-uri ですが、 いまだに「open-uri はBasic認証のあるサイトには使えない」という都市伝説(?)が。

こんな風に :http_basic_authentication オプションを与えることでできるよ。

require 'open-uri'
open('http://www.example.com/authenticated_page/',
     :http_basic_authentication => ['username', 'password'])

現在のマニュアルには載っていない ので注意。 新しい方にも特に書いてはいないみたい

ちなみにプログレスバーのために :content_length_proc と :progress_proc が使えるが、簡単に作るとこんな感じに。

open(downloading-filename, 'w') {|f|
  f.write open(url,
               :content_length_proc => proc{|len|
                 @len = len
               },
               :progress_proc => proc{|now|
                 per = now * 100 / @len
                 $stdout.print "%15u bytes (%3u%%) |" % [now, per]
                 $stdout.print "=" * per
                 $stdout.print ">" if per < 100
                 $stdout.print "-" * (99-per) if per < 99
                 $stdout.print "\r"
                 $stdout.flush
               }
  ).read
}

まだコメントはありません

6月 04 2008

カスペルスキーと Firefox でダウンロード時にウイルスチェック

Published by HoLY under tech

カスペルスキーと Firefox のアドオン Download Statusbar でダウンロード時に自動ウイルススキャンする話。

AVG8 の場合は Snowland.net のこのエントリのとおり。 → AVG8で手動スキャンするコマンド

カスペルスキーの場合はどうやるか。

続きを読む »

まだコメントはありません

6月 02 2008

読了: ハイパフォーマンス Webサイト

Published by HoLY under tech

ハイパフォーマンスWebサイト ―高速サイトを実現する14のルール

Webサイトの高速化をするための14のルールを提示した本。 主にWebサーバのレスポンスの方法、レンダリングの概要のあたりに関係した手法が紹介されている。JavaScript の高速化などには触れていないので注意。

基本的には「リクエスト数を減らしましょう」「通信量を減らしましょう」「レンダリング回数を減らしましょう」 という話。Webアプリ作ってる人はやるやらないはともかく存在を把握しておくのがいいのでは。

自分のRailsアプリである程度実行に移してみる。

簡単だったのは 「ルール3 Expires ヘッダを設定する」 および 「ルール13 ETag の設定を変更する」。

すべて mongrel でやっていたところを、静的ファイルは apache で返すようにして、その部分でmod_expires による Expires ヘッダの設定をする。

ETag に関しては “FileETag None” を全体に設定。

「ルール4: コンポーネントをgzipする」。 Apache で返すものに関しては mod_deflate でいいとして、rails で返すものは(用意されてないので?)やや面倒。

Rails 1.2.x で動くものとしては、 [http://blog.craz8.com/articles/2005/12/17/rails-outputcompressionfilter] や [http://craz8.com/svn/trunk/plugins/output_compression/] がある。2.x に関しては必要になったら調べる。

また、StyleSheet は先、JavaScript は後、というルールを適用。基本的にはlayoutを変更して終わりだったが整合性を取るのがやや面倒なので最初からそうしておくようにしたい。

最後に JavaScript や CSS のファイル数を減らす、というのをやる。こいつは Rails なら task 作っておくのがよさそう。あるいは production と development で読み込むファイルを変えて、 capistrano の task で後処理をするのでもよい。

Rakeでやるならこんなのを lib/tasks に置いたり。

extjs = %w|
  public/javascripts/ext/jquery-1.2.3.min.js
  public/javascripts/ext/foo.js 
  public/javascripts/ext/bar.js 
|
task :extjs => "public/javascripts/ext/all.min.js"
file "public/javascripts/ext/all.min.js" => extjs do |t|
  sh "cat #{t.prerequisites} | ruby script/jsmin.rb > #{t.name}"
end

この例ではついでに JSMIN で縮小化してる。

そんな感じで軽くしたりしたけど、広告が重いままで最終的にはあまり変わらなかったりして。トホー。

あとは ajax でもってくる/レンダリングする部分をやっぱり軽くするってところの方が、 ajax なアプリでは重要ですねー。

まだコメントはありません

6月 01 2008

capistrano メモ - ROLES,HOSTS

Published by HoLY under tech

capistrano で deploy する際、あるホスト、あるいはあるロールだけに適用させたい場合はこうする。

“hoge.example.com” というホストに対し deploy:setup

$ cap deploy:setup HOSTS=hoge.example.com

:role => :web なホストに対し deploy:setup

$ cap deploy:setup ROLES=web

ここで指定するものは「,」 区切りで複数指定できる。

$ cap deploy:setup ROLES=web,db

HOST 指定に関しては、user および port を同時に指定できる。

$ cap deploy:setup HOSTS=username@fuga.example.com:port

後からホスト付け足す時にいちいちハマらないように。

まだコメントはありません

5月 18 2008

ドロップシャドウをつけるRubyスクリプト

Published by HoLY under tech

三国志大戦3Master のデータを作っていて、既存の大量の画像にドロップシャドウを付けたものが必要になったので、RMagick を使ったRubyスクリプトなどを書いてみた。

続きを読む »

まだコメントはありません

4月 03 2008

VMware Server Console でリモートの OS にアクセスするための1つの手順

Published by HoLY under tech

VMware Server Console では、こんなダイアログが毎回出ます。 たいていは Local host のものを使うのでそちらを選択してスルーしますが、 Remote host という項目があるからには外部の ゲストOS にアクセスできるはず! vmwareserverconsole.JPG

でもそのままアクセスしようとしても良くわからない…。

ということで、どのようにすればリモートにある VMware Server にアクセスできるかを書きます。

続きを読む »

まだコメントはありません

Next »