2007年9月27日木曜日

CentOS on VMware 構築メモ

 VMware上にCentOSをインストールした時のメモ。VMX BuilderでVMDKファイルができることを書いてあるサイトが無いのはなぜだろう。

  1. CentOSのISOのダウンロード
    (時間がかかるので先にダウンロードを開始しておく)
    1. 理研のFTPサイトCentOSの一覧から、最新版のi386-bin-DVD.torrentをダウンロードする
      (CD版は枚数が多いので面倒。DVD版よりネットワークインストールの方が楽かも?)
    2. BitTorrentでISOファイルをダウンロードする
      (BitTorrentクライアントはOperaとかで)
  2. VMware Playerのダウンロード・インストール
    1. VMware Playerのダウンロードページからだとフォームへの記入が必要なので、Player Version Historyのページからダウンロードするとちょっと手間が省ける
    2. インストールする
  3. VMX Builderのダウンロード・インストール
    1. VMware Utilities HomepageからVMX Builderをダウンロードする
    2. 上記ページの一番上にある「Core Components」もダウンロードし、インストールする
    3. VMX Builderをインストールする
  4. VMX Builderを使ってVMXを作る
    • メモリはデフォルト(128MB)より増やした方がいいと思う
    • Hardwareの追加でHard Diskを追加する。Disk fileを作ると、vmdkファイルが作成される
    • Hardwareの追加でDVD/CD-ROM Driveを追加する。Use ISO ImageでインストールするISOファイルを指定する
  5. VMXファイルを実行すると、VMware Playerが立ち上がる


SSHクライアントはSSH2プロトコルとUTF-8に対応しているUTF-8 TeraTerm Proが便利。
ISOイメージをDVDに焼きたい場合はかんべで。

参考:
 meatsauce VMware Player How to use
 革命の日々! CentOS on VMWare Player をインストールする

JavaScriptライブラリ/フレームワーク調査メモ

 JavaScriptのライブラリは何がいいかなと考えてたらたまってきた情報の整理整頓。

フレームワーク or 基本ライブラリ
(Mochikitとmootolsは思い切って外してみた。結局使わなさそうだから。)


サブフレームワーク

ページ内POPUP系ライブラリ

まとめ記事

2007年9月23日日曜日

GoogleドキュメントからBloggerに投稿

試しにやってみる。できるかな?

できたけど、タイトルとラベルが連携しないね。

(追記:タイトルとラベルとこの追記は後から編集したものです。ちなみに、Google Docsの方で内容を変更すると、変更内容をBloggerの方にも反映させることができる。また、Google Docsの方でドキュメントを削除しても、Bloggerの方の投稿はそのまま残る。)

2007年9月19日水曜日

Google Readerが日本語化

 突然Google Readerが日本語化してGoogle リーダーになった。合わせてLabsも取れた。Betaを経ずに一足飛びの正式リリース。分かりやすくなったけど画面上からアルファベットが極端に減ってなんだか落ち着かない...

よく使うHTTPのステータスコード

 PHPみたいな動的ページでも、本当はきちんとしたステータスコードを返すべきなんだろうね。PHPの場合、header("HTTP/1...")で。

  • 200 OK
    正常に完了。普通はこれ。
  • 301 Moved Permanently
    恒久的なリダイレクトの場合。URLが変わった場合など。
  • 302 Moved Temporarily
    一時的なリダイレクト。
  • 304 Not Modified
    クライアントがキャッシュしてる最終アクセスのコンテンツから変更無し。サーバの負荷を軽減できる。
  • 400 Bad Request
    URLがおかしい場合など。
  • 401 Unauthorized
    認証を要求するページで認証に失敗。ログインエラーの場合はこれにしてもいいんじゃない?
  • 403 Forbidden
    アクセス権が無い。ログインしないで来たアクセスにはこれでいいんじゃない?
  • 500 Internal Server Error
    サーバでのスクリプト等の実行エラー。PHPは6からこれに対応するみたい。
  • 503 Service Unavailable
    サーバ停止中。


参考: HTTPステータス・コード

2007年9月17日月曜日

Bloggerテンプレートでolの数字を表示するようにする

 Bloggerのテンプレートを「Tictac」にしたら、ol(ordered list)要素内のリスト(li要素)に連番の数字が表示されなくなってしまった。しばらく放って置いたけど、えいやっと直してみた。

 「テンプレートを編集」でスタイルシートの部分に下記を追加した。

ol li {
list-style: decimal;
margin-left: 20px;
padding-left: 0;
background: none;
}
.sidebar ol li{
background: 0px;
}

 FirefoxとIE6で見たところ大丈夫そうなので、これでよしとしよう。

2007年9月15日土曜日

Linuxでよく使うコマンド

(2007/11/20 追記:少し慣れてきて基本コマンドは分かるようになった。忘れやすいのをLinuxコマンド備忘録に追加していくことにする。)


 Linuxでよく使うコマンド。将来の自分に伝えるためにメモ。


ファイル・ディレクトリを見る

ファイル一覧を表示
 ls [path]
ファイル一覧の詳細を表示
 ls -l [path]
先頭がドットのファイルも含むファイル一覧の詳細を表示
 ls -al [path]
現在地のパスを表示
 pwd
ディレクトリを移動
 cd path


テキストファイルを読む・書く

テキストファイルを読む(2007/10/06 moreから変更)
 less path
 (Spaceキーで次ページへ。qで終了)
マニュアルを読む
 man command
 (Spaceキーで次ページへ。qで終了)
viを起動
 vi path
 (該当ファイルが無ければ新規に作成される)


ファイル・ディレクトリ操作

ファイルを移動 or ファイル名を変更
 mv old path new path
ディレクトリを作成
 mkdir path
ファイルを削除
 rm path
問答無用でディレクトリを削除
 rm -fr path
ファイルをコピー
 cp src path dist path
ファイルを探す
 find 検索対象のdir -name filename
 (ファイル名は正規表現で)


ユーザー変更
スーパーユーザーへ
 su -
一般ユーザーへ
 su - ユーザー名


サービス関連 (2007/10/06 追加)
サービスの起動・再起動 等
 /etc/init.d/デーモン名 命令
OS起動時のサービス起動確認
 chkconfig --list
OS起動時のサービス起動設定
 chkconfig デーモン名 on
(参考:chkconfig


pathとして"$_"と書くと、直前のコマンドで最後に指定したパスが代入される。

Apacheチューニングメモ(Expires、deflate)

 mod_expireだけでYSlowが大幅に改善mod_deflateでYSlowがさらに改善の関連のメモ。httpd.confの設定。

Expires(有効期限)設定
LoadModule expires_module modules/mod_expires.so
ExpiresActive On
ExpiresByType application/x-javascript "access plus 3 days"
ExpiresByType text/css "access plus 3 days"
ExpiresByType image/jpeg "access plus 3 days"
ExpiresByType image/bmp "access plus 3 days"
(必要に応じて他のMime-typeも加える。)

Deflate(圧縮)設定
LoadModule deflate_module modules/mod_deflate.so
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/x-javascript
(古いNetscate対策もするならもうちょっとややこしくなる。mod_deflate - Apache HTTP サーバを参考に。)

おまけ
MaxKeepAliveRequests 30
(最大のCSS数+JavaScript数+画像数+αくらい。適度な数で。)

2007年9月11日火曜日

mod_deflateでYSlowがさらに改善

前記事: mod_expireだけでYSlowが大幅に改善

 引き続きYSlowの指示に従ってApacheの改善。調子に乗ってYSlow対策でmod_deflateを利用してHTTPレスポンスをgzip圧縮を参考に、mod_deflateも使ってみる。
(2007/09/15 追記)
 リンク先の記事では「SetOutputFilter DEFLATE +SetEnvIfNoCase」と「AddOutputFilterByType DEFLATE」を両方使ってるけど、どちらかだけでOK。拡張子で判断したいなら前者、Mime-typeで判断するなら後者でいいと思う。古いNetscape対策はどちらとも組み合わせられるけど、もうそんなに重要じゃないんじゃないかな。Netscape対策しないならIE用の設定も不要、プロキシ用のHeader append Varyも不要になる。
(追記終わり)
(2007/09/27 追記)
SetEnvIfNoCase Request_URIの後ろには半角スペースが必要。
(追記終わり)

 本当はmod_filterを使ってみたかったんだけど、Windows版のApacheに入ってないようなので断念。素直にmod_deflateを使う。
 httpd.confを書き換えて自信が無いから httpd -t するとエラー発生。"Header"のとこが駄目だって。試しにmod_headersのコメントアウトを外すと通った。なるほど。これも使うのね。
 で、結果だけど総合C(73)、「4. Gzip components」がFだったのが、総合C(79)、「4. Gzip components」はAに改善。体感速度としては結構早くなった気がする。
 もう一つ、prototype.jsとか使ってる重いページで試してみる 。こっちは総合D(64)、「4. Gzip components」がFだったのが、総合C(71)、「4. Gzip components」はAに改善。体感速度も早くなった気もする。mod_expireとmod_deflateの合わせ技なら十分に導入する価値がありそう。この重いページはボトルネックがGoogle Mapsだというのはどうしようもない。Google MapsってFirefoxよりIE6の方に最適化されてるよね。

 しばらく試してみて問題ないようなら採用しよう。

mod_expireだけでYSlowが大幅に改善

 YSlow対策でmod_expireを利用してHTTPレスポンスヘッダにExpiresを追加するを参考にして、mod_expireでExpires期限を設定してみた。設定前のYSlowの判定は総合F、「3. Add an Expires header」もFだった。画像の多いサイトなのでYSlowにたくさん怒られる。
 Expires設定の対象は、CSS、JavaScript、各種画像ファイル。期間は1~2だとYSlowに駄目出しされたので3日にする。CSSとJavaScriptは変更が入った時の対応が少し面倒になるけど、QueryStringを付ける方法で回避するか、許容範囲内だったらそのままにしてしまおう。
 で、Expiresを設定したら総合C(73)、「3. Add an Expires header」はAになった!素晴らしい!体感速度は変わらないんだけどね。このあたりのファイルはある程度Webブラウザがキャッシュしてるからね。

続きの記事: mod_deflateでYSlowがさらに改善

2007年9月10日月曜日

Ruby on RailsでのMySQL接続の文字コード設定

 MySQLでUTF-8の場合、config/database.ymlの設定をこんな感じで。
development:
adapter: mysql
database: test
username: test
password:
socket: /var/lib/mysql/mysql.sock
encoding: utf8

 いろんなやり方があるみたいだけど、これが一番スマート。

VIでよく使うコマンド

 作業効率を上げるためにメモ。全てコマンドモードで入力する。とりあえずこれだけ覚えれば便利そう。

移動
0 行頭に移動(数字のゼロ)
$ 行末に移動
Ctrl+B 前ページへ移動
Ctrl+F 次ページへ移動
:0 先頭に移動(コロンと数字のゼロ)
G 末尾に移動
:n n行目に移動(nは数字)

入力モードへ移行
i コマンドモードから入力モードへ移行
O カーソル行の上に空行を追加して入力モードへ移行(大文字のオー)
o カーソル行の下に空行を追加して入力モードへ移行
R 上書き状態での入力モードへ移行

コマンドモードへ戻る
Esc 入力モードからコマンドモードへ移行

編集
yy 1行コピー
x 1文字削除
dd 1行削除
P バッファ内の文字列をカーソル行の上に挿入
p バッファ内の文字列をカーソル行の下に挿入
u UNDO

終了
:wq 保存して終了
:q 保存しないで終了

その他
. 直前の操作を再実行(ピリオド)


参考サイト: VI ← 簡潔で分かりやすい

2007年9月9日日曜日

こんなiPodなら欲しい

 iPod Touchの目新しさが目立った今回のiPod新バージョンの発表。惹かれる部分はあるけど、今使ってるiPod nano(8G)から乗り換えるほどではない。何が足りないか考えてみた。

  • iPod shufful
     ディスプレイが無いので元々問題外。プレイリストも探せないじゃん。噂された3Gバージョンは無かった。
  • iPod nano
     動画対応が目玉。待ち望んだ人はいるでしょう。でも個人的にはiPodでは動画も写真すらも見ない。
     残念なのは何と言っても16Gにならなかったこと。16Gなら持っている音楽ファイルが全部入るのに。辛抱強く次を待とう。
     あとディスプレイが大きくなったのはいいと思う。でも厚みが増してズングリした感じになったのは好きじゃない。今までのビックリするくらいの薄さが良かったのに。
  • iPod classic
     特に感想無し。今さらHDDには戻りたくない。
  • iPod Touch
     今回の目玉。確かに魅力的。iPhoneの電話機能が無いのなら欲しいなあと思ってたんだけど、まさにこれ。OS XはPCじゃ無理でもPDAで世界を制するかもしれない。
     また、無線LANを搭載したのもいい。でもPC上のiTunesとはどうやって連携するんだろう。ファイアウォール設定とかいるのかな?素直にUSBで繋げばいいのか。
     難点はnanoより大きいこと。まあ小さかったらPDAとして使いにくいけど。でも音楽聴くのがメインなら邪魔かも。

 結論としては、16Gで薄いnanoか、もうちょっと小さめのTouchだったら欲しいです。是非!


参考:アップル - iPod - あなたにぴったりのiPodは?


2007年9月8日土曜日

cuillとかtwicelerとかいうrobotの正体は

Mozilla/5.0 (Twiceler-0.9 http://www.cuill.com/twiceler/robot.html)

 たまに激しくアクセスしてくるこのrobot。User-Agentに書かれているサイトに行ってみてもまだ準備中みたいで、マイナーな検索エンジンなのかなと思って忘れていた。

 そしたら最近TechCrunchで「Googleも注目」と取り上げられてびっくり。なんでも効率良い検索手法を持っているらしい。それはつまりサーバリソースを少なく抑えられるということで、使用電力削減に血眼になっているGoogleにとっては是非欲しいエンジンだろう。検索エンジンはこれからこそが発展期だというけど、こんなところから成長が見られるとは。

 久し振りにCuillのサイトを見てみると、少しページが増えてた。でも、リリースされる前に買収・吸収されて、サービス自体は結局見られないかもね。

2007年9月7日金曜日

LinuxのIPアドレスを設定する

【 固定IPアドレスを設定する 】:ITpro

 LinuxのIPアドレスはifconfigで設定する。DHCPを使う場合は"BOOTPROTO=dhcp"にする。

 ただしifconfigで設定した内容はリブート時に元に戻ってしまう。リブート後も有効にする場合は、設定ファイル"/etc/sysconfig/network-scripts/ifcfg-eth0"を編集する。

Linuxのファイアウォール設定の参考サイト

 Linuxのファイアウォール設定はコマンドiptablesで行う。(カーネル2.4以降の場合。)

 まずは設定方法の基本。ただし全く設定されていないところに設定する場合の説明。 

iptables・設定・ファイアウォール・セキュリティ


 これで足りない部分はリファレンスサイトで調べる。

Manpage of IPTABLES

2007年9月6日木曜日

BitDefender Free Edition v10をインストール

 フリーで高速な(ただしフリー版はリアルタイム監視機能の無い)BitDefenderの更新起源が近付いてきた。フリー版はインストールしてから1年しか使えない。でも、BitDefenderは無料期間を延長できるらしいに書いたように、メールを送れば無料期間を延長できるらしい。
 で、メールを送ってみた。数日経つと返信が来た!livedoorメール(Gmailになってない旧版)では返信が思いっきりスパムメール認定されているけど気にしない。しっかりとライセンスキーが書いてある。
 さっそくライセンスキーを入力・・・と思ったけど入力するところが見つからない。いったんアンインストールして再インストールしてもライセンスキーの入力はできない。まだ期限が1週間くらい残っているからかな?

 と、いうことで、色々触ったついでにBitDefender Free Edition v10をダウンロードしてみた。BitDefenderからのメールでも勧められたし。v10をインストールするとなんとビックリ!更新期限が今日から1年だ!当たり前といえば当たり前だが。これでまた1年使える。来年になったらまたメールを書いてみよう。

 ちなみにv10はGUIが少し良くなってる感じです。

2007年9月5日水曜日

WebページのリンクからCSVをダウンロードする方法

 普通にaタグでCSVファイルにリンクを貼った(張った?)場合、リンクをクリックするとブラウザ上でCSVを表示してしまう。できればダウンロードダイアログを表示させたい。

 代替案としては右クリックしてリンク先を保存するという手もあるが、利用者のユーザー層によっては抵抗がある。CSVをZIPにしても回避できるけどちょっと面倒だし、やはりユーザー層によっては抵抗がある。CGIならhttpヘッダーをいじればできるみたいだけど、それもちょっと面倒かな。

 というわけで、Apacheの設定に下記を書いた。

AddType application/octet-stream-dummy csv

 最後の"-dummy"は存在しないtypeにするため。これが無いとブラウザによってはダウンロードダイアログが表示されない。
 めでたしめでたし。

参考: 教えて!goo CSVファイルのダウンロードについて

2007年9月4日火曜日

PostgreSQLのホットバックアップとリストア

 MySQLに対してPostgreSQLが持っている最大の優位点がホットバックアップ(が無償で簡単にできること)。そのためのコマンドの使い方。(ファイルパス形式はWindowsの場合の書き方です)

 バックアップの取り方は以下のとおり。"-Fc"はバックアップファイルの形式としてpg_restoreできる圧縮された形式を指定している。

<PostgreSQLのホームディレクトリ>\bin\pg_dump -U <ユーザー名> -Fc -n <スキーマ名> -f <バックアップファイルのパス> <データベース名> 2>> <エラーログのパス>

 リストアは以下のとおり。
<PostgreSQLのホームディレクトリ>\bin\pg_restore -U <ユーザー名> -d <データベース名> <バックアップファイルのパス> 2>> <エラーログのパス>

参考:pg_dumppg_restore

ブログ アーカイブ

tags