screen + zsh でshelltitle を自動で設定する
下記サイトの通り .zshrc に記述するだけです(zsh 限定)
preexec () {
[ ${STY} ] && echo -ne "\ek${1%% *}\e\\"
}
便利
下記サイトの通り .zshrc に記述するだけです(zsh 限定)
preexec () {
[ ${STY} ] && echo -ne "\ek${1%% *}\e\\"
}
便利
現状、さくらのVPSは主にWEBサーバとして使っていますが、折角なのでSkypeやIRCプロキシを常駐させようと思いました
とりあえずSkypeから手をつけることにして調べると、こちらが見つかりました
Linux上で動くSkype用のbotを作る方法 – muddy brown thang
SkypeをCLI環境で動作させ、SkyoePublicAPIで他プログラムから操作出来ることが示されています
記事中で紹介されているXvfbとx11vncですが、CentOS5.5にはXvfbがあらかじめインストールされていました
x11vncについてはちょっと面倒な手順を踏む必要があったのでまとめておきます
まず、RPMForgeのGPGキーをインポートします
sudo rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
続いてリポジトリ情報をダウンロード&インストール、yumに反映します
リポジトリ情報は こちら から環境にあったものを選択して下さい
今回、さくらのVPSのデフォルトはCentOS5.5 x86-64なので
http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
を選択しました
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm sudo rpm -ivh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm sudo yum -y update rpmforge-release
これでRPMForgeの設定は完了です
sudo yum install x11vnc でインストールしましょう
#Skypeのインストールその他はまだ試してないです
Skypeのインストールはイカの手順通りに
HowTos/Skype – CentOS Wiki
Skypeのverが上がってない限りは基本的にコピペでOKです
後は
Linux上で動くSkype用のbotを作る方法 – muddy brown thang
の通りにデーモン登録し、TightVNCなど適当なクライアントでx11vncに繋いでGUIからライセンスを承諾します
ただし、x11vncコマンドでXvfbのディスプレイ番号を指定する必要があるので、
sudo x11vnc -display :20 -xauth /var/run/skype/Xauthority
となります(自分はskypeユーザを用意しませんでした)
botを作る場合は同様の手順でPublicAPIの認証許可操作を行います
先日、さくらのVPSを契約し、yusukezzz.netのコンテンツ全てを移行しました
その際、wordpress周りの設定を大分弄ったので備忘録として残しておきます
パフォーマンスの指標として今回はYSlowを使って測定しました
変更前は記録していないのですが、確かGrade Dで50台だったと思います…
設定内容はググって出てきたものをほとんどコピペしてるだけです
まずはhttpd.conf
<VirtualHost *>
~略
<Directory /your-htdocs-root>
AllowOverride All
Options FollowSymLinks -MultiViews
# gzip compress setting
SetOutputFilter DEFLATE
# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# ここからフィルター設定
FilterDeclare Compression CONTENT_SET
FilterProvider Compression DEFLATE Content-Type $text/plain
FilterProvider Compression DEFLATE Content-Type $text/css
FilterProvider Compression DEFLATE Content-Type $application/xhtml
FilterProvider Compression DEFLATE Content-Type $application/xml
FilterProvider Compression DEFLATE Content-Type $application/xhtml+xml
FilterProvider Compression DEFLATE Content-Type $application/rss+xml
FilterProvider Compression DEFLATE Content-Type $application/atom+xml
FilterProvider Compression DEFLATE Content-Type $application/x-javascript
FilterProvider Compression DEFLATE Content-Type $image/svg+xml
FilterProvider Compression DEFLATE Content-Type $text/html
FilterProvider Compression DEFLATE Content-Type $application/javascript
FilterChain Compression
# ここまでフィルター設定
# Don't append Vary heder for specific files
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|zip|lzh|exe)$ dont-vary
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
Header append Vary Accept-Encoding env=!dont-vary
# expires headers
<FilesMatch "\.(ico|jpg|jpeg|png|gif|js|css|swf)$">
ExpiresActive On
ExpiresDefault "access plus 3 days"
</FilesMatch>
</Directory>
~略
</VirtualHost>
次にmysqlのクエリキャッシュ設定
[mysqld] # query cache query_cache_limit=1M query_cache_min_res_unit=4k query_cache_size=24M query_cache_type=1
最後に、wp-minify の導入
wp-minify はwordpress内で使用されているjavascript, cssを1ファイルにまとめてくれるプラグインです
インストール後、wp-minify/cache に書き込み権限を与えておきます
APCや eAcceralatorなどもある程度効果ありますね
yusukezzz.netはAPCを導入しています
以上の設定を施したところ、YSlowのスコアは以下のようになりました
Grade A
Overall performance score 90
後はhttpリクエスト数を減らせ(CSSスプライトが未実施)&CDN使え(パフォーマンスと無関係)の2点が評価悪いだけなので、今回はこの辺までで十分だと思います
#CDNについては about:config からYSlowの設定を弄ることで強制的にオレオレCDNを登録出来るそうですが、スコアが上がるだけなのでやってないです
CSSスプライトはテーマによっては対応してそうなので、もう少しいい評価になるかもしれません
#2011/02/19 追記
そもそも YSlow の RuleSet を Small site or Blog にするべきでした
その状態で計測するとスコアは94まで行きました
あと、下記チューニングの通りにデーモンを停止してみました
CentOSをサーバーとして活用するための基本的な設定 (さくらインターネット創業日記)
#追記終了
以下参考サイト一覧(順不同)
DSAS開発者の部屋:負荷分散環境でブラウザキャッシュが効かないときは – ETagの解説 -
Webサイトの高速化 ルール13 ETagを正しく設定する! (Yahoo! developer netoworkより翻訳) | 株式会社インターオフィス
クラウド環境でのApacheの設定 | cloudrop
ゆっくりと… » WP MinifyでCSS/JavaScriptをまとめて軽量化、ページの応答速度を向上させる
mod_expires – Apache HTTP サーバ
YSlow対策でmod_expireを利用してHTTPレスポンスヘッダにExpiresを追加する – blog.katsuma.tv
Apacheで圧縮してコンテンツ配信しよう – takami_hirokiの日記
Apache 2.2 mod_filterを使いこなす – AddOutputFilterByType DEFLATE text/htmlを書き換えてみる « cyano
Androidのカメラは横(Landscape)表示が標準らしく、縦画像が撮れないアプリもあったりします(Milestone2の標準カメラは駄目でした)
ここでいう縦画像は width < height な画像のことで、普通に表示すると縦長になる画像のことです
しかし、Milestone2のギャラリーでは端末を縦にして撮影したときの画像は縦長で表示されます
PCに取り込むと横長になってしまうのに何故?と思ったらExifにOrientationが書きこまれていました!
ということは、この値を見て向きを判別できるということですね
AndroidではいちいちExifを見なくてもある程度の情報はMediaStoreから取得出来ます
前置きが長くなりましたがサンプルコードです
Intent.ACTION_SEND で画像を受け取った場合を想定しています
Uri uri = intent.getParcelableExtra(Intent.EXTRA_STREAM);
ContentResolver cr = getContentResolver();
Cursor query = MediaStore.Images.Media.query(cr, uri,
new String[] { MediaStore.Images.ImageColumns.ORIENTATION },
null, null);
query.moveToFirst();
int orientation = query.getInt(0);
orientation は整数で、0, 90, 180, 270 の値を取ります
あとはこの値になるように Matrix#postRotate(orientation) なんかで画像を回転させれば正しい向きの画像データが得られます
以上を踏まえて画像縮小アプリを作りました
yusukezzz/ImageReducer - GitHub
Softbank銀SIMで動作を確認
標準の3G Wifi Hotspotはうまく動かなかったけど、Barnacle Wifi Tetherっていうのを入れたら普通に出来た
意外と使い物になる感じなのでWiMAX解約しちゃっていいかなーと思った
多分1DAYで運用したほうが経済的だし、エリアを気にする必要がほぼなくなるので
連続30分ぐらいしかまだ使ってないけど、ニコ動とか見てもほんのり温かくなる程度
バッテリが厳しいのでその内BP-7Xに買い換えたいところ
追記:
2chのMotorolaスマートフォンスレで見かけたのですが、標準の3G Wifi Hotspotが動かなかったのは
X06HTから持ってきたSIMでAPN設定のAPN Typeにdunがないのが原因だったみたいです
default,mms -> defalt,mms,dun
のように変更すれば動きました
※今のところ定額内のようですが自己責任で設定してください