月曜日, 28 3 月 2005

重いよ! この記事(重いよ!)を「はてなブックマーク」に追加 この記事をクリップ! この記事(重いよ!)を「del.icio.us」に追加

今日もリルがナモの上にのって寝てた。さぞかしナモは重かろうに…。

225ac1c7c2b3c495347b7012727d69be

金曜日, 25 3 月 2005

ネットワーク監視一行シェルコマンド この記事(ネットワーク監視一行シェルコマンド)を「はてなブックマーク」に追加 この記事をクリップ! この記事(ネットワーク監視一行シェルコマンド)を「del.icio.us」に追加

サーバへのネットワーク接続状況を監視するには通常ntopのようなツールを用いるが、シェルだけでもある程度監視することが可能だ。
以下のコマンドを使用すればサーバ上で待ち受けているポートへの接続状況がリアルタイムで監視出来る。(bsh系)
while true;do netstat -an | grep tcp | awk '{print $4,$6}' | sort | uniq -c | sort -r > /tmp/netstat.txt ;clear ;echo "Conns   Local Address   State";cat /tmp/netstat.txt; sleep 1 ; done
説明するとnetstatで出力される行の内tcpが含まれる行のみ抽出し、その行の中から4番目と6番目の列(Local Address,State)を抜き出し接続数の多い順に表示する、というものである。
また1秒間隔で自動更新するようになっているためtopのようにターミナルを開いておけば常時監視することができる。
各サーバプログラムに対してどれだけの接続があるかを監視するならこれだけでも十分だと思う。
Posted by tsujitako at 11:17 午前 in Linux/

日曜日, 20 3 月 2005

#Obfuscateが効かない この記事(#Obfuscateが効かない)を「はてなブックマーク」に追加 この記事をクリップ! この記事(#Obfuscateが効かない)を「del.icio.us」に追加

このブログを運用しているblojsomも2.24にバージョンアップしたところ不具合らしき現象が見つかった。
テンプレートにasualを指定している場合、asual-column.vmの中に#Obfuscate($BLOJSOM_BLOG.getBlogOwnerEmail())というマクロが使用されているが、2.24に上げるとこの#Obfuscate()がそのまま表示されてしまう。
この#Obfuscate()マクロはブログオーナーのメールアドレスを16進変換し表示するためだけのものだが、このマクロが無いとメールアドレスがそのまま表示されてしまいスパマー用クローラにメールアドレスを収集されるかも知れない、困った。
とりあえず原因を探るために調べ始めた。
#Obfuscate()がそのまま表示されてしまうということはVelocityに解析対象とみなされていないということなので#Obfuscate()が定義されているvmファイルを探すことに。
どうやらblojsom-plugins-templates-2.24.jar内のorg/blojsom/plugin/velocity/page-macros.vmに定義されているようだ。
早速開いて見てみると
#macro(Obfuscate $text)$BLOJSOM_PLUGIN_SIMPLE_OBFUSCATION.obfuscate($text)#end
と定義されていたが特に問題は無いように思える。
その下に#RSSEnclosure()というマクロも定義されていたので試しにこのマクロは使用できるかテンプレートでテストしてみたところこのマクロもそのまま表示されてしまった、やっぱりおかしい。
#Obfuscate()の前にある#MultiBlogFriendlyPermalink()もそのまま表示される。
しかしその前にある#MathCommentFormItem()は正常に処理され表示された。
どうやら#MultiBlogFriendlyPermalink()マクロに何か問題があるようだ。
見ると
#set ($entryLink = $entry.getMetaData().get("BLOJSOM_PLUGIN_INTERNAL_AGGREGATOR_BLOG_URL")
$categoryForEntry$entry.getDateAsFormat("yyyy")/$entry.getDateAsFormat("MM")/
$entry.getDateAsFormat("dd")/$entry.getPermalink()")
の部分に対応の取れていない"があったのでこれを削除してみた。
が、何も変わらず…。
その後足したり引いたりしてみて色々試してみたところ
$categoryForEntry$entry.getDateAsFormat("yyyy")/$entry.getDateAsFormat("MM")/
$entry.getDateAsFormat("dd")/$entry.getPermalink()"
の部分を削除すれば正常に処理される事が判明したが、削除するわけにもいかないのでとりあえずこの#MultiBlogFriendlyPermalink()マクロのブロックをpage-macros.vmの一番最後に移動させて#Obfuscate()マクロと#RSSEnclosure()マクロを有効にさせた。
結果として#Obfuscate()マクロは使えるようになったが#MultiBlogFriendlyPermalink()マクロはそのままなので依然使用できない。
でもこの#MultiBlogFriendlyPermalink()マクロはどこにも使用されていないようだし、そもそも使い道が分からないので気にしない。
Posted by tsujitako at 3:02 午前 in Java/blojsom/

土曜日, 19 3 月 2005

blojsom 2.24リリース この記事(blojsom 2.24リリース)を「はてなブックマーク」に追加 この記事をクリップ! この記事(blojsom 2.24リリース)を「del.icio.us」に追加

blojsom 2.24がリリースされた模様。
Changelogによると変更点は
・BlojsomListenerインターフェイスにprocessEvent(BlojsomEvent event)メソッドを追加
・暗号化パスワードのサポート
・フランス語ローカライズ
・ Fetcher Helper Plugin,Language Selection Plugin,Markup Selection Plugin,Pingback Plugin,Plugin Helper Pluginのプラグイン追加 ・#DatelessFriendlyPermalink($entry),#MultiBlogFriendlyPermalink($entry)のテンプレートマクロ追加
など。

暗号化パスワードのサポートは確かにありがたいかも。
今までパスワードはauthorization.propertiesに平文で書かれていたため正直不安だった。
既存のパスワードを暗号化するためには以下のようにコマンドラインから入力する。(カレントディレクトリがblojsom/WEB-INF/の場合)
java -cp lib/blojsom-core-2.24.jar org.blojsom.util.password.EncryptedPasswordConversion default/authorization.properties
上記コマンドを実行すると既存のauthorization.propertiesが上書きされ平文パスワードが暗号化されたパスワードになる。

あとエントリを書き込むフォームにもLanguage選択のプルダウンとかが追加されてた。
個人的にこれは使わんな…。
Posted by tsujitako at 9:41 午後 in Java/blojsom/

木曜日, 17 3 月 2005

恥ずかしがるナモ この記事(恥ずかしがるナモ)を「はてなブックマーク」に追加 この記事をクリップ! この記事(恥ずかしがるナモ)を「del.icio.us」に追加

写真を撮られるのが恥ずかしいのか顔を隠すナモ。それとも笑ってるのかな?
Posted by tsujitako at 1:56 午前 in フェレット/

水曜日, 16 3 月 2005

Galerieでお手軽アルバム この記事(Galerieでお手軽アルバム)を「はてなブックマーク」に追加 この記事をクリップ! この記事(Galerieでお手軽アルバム)を「del.icio.us」に追加

デジカメで撮りためた写真はiPhotoで管理する事が多いと思うが、そこからHTML形式でのアルバムを作るには.Macの会員である事が必要だ。
だがGalerieを使用すれば.Mac会員でなくてもiPhoto内のアルバムから簡単にHTMLアルバムを作ることが出来る。
使い方は簡単でGalerieを起動し、サムネイルの並びや画像情報の表記、画像の画質などを必要であれば変更してHTMLの書き出しを選び、iPhoto内のアルバムを選択するだけでアルバム内の画像がHTMLアルバムとして書き出される。
Galerieのインターフェースの基本的な部分は日本語にもローカライズされているのでほとんで戸惑うことなく使用できる。
またテンプレートを使用すれば基本的なレイアウトの変更や画像に対するエフェクトをかけることが可能だ。
このGalerieを使ってサンプルアルバムを作ってみた。こちら


ローカライズされ使いやすいインターフェース
Posted by tsujitako at 3:07 午前 in Mac/

火曜日, 15 3 月 2005

Show Me Moreプラグイン この記事(Show Me Moreプラグイン)を「はてなブックマーク」に追加 この記事をクリップ! この記事(Show Me Moreプラグイン)を「del.icio.us」に追加

blojsomは標準で書き込んだエントリ全文を表示するようになっているので長い文章を書いたときなどはエントリ一覧のページが長くなり目的のエントリを見付けるのに苦労する事がある。
こういう場合はShow Me Moreプラグインを利用するといい。
Show Me Moreプラグインはエントリの書き込みが決められた文字数を超えた場合、続きを別ページに表示させ一覧のページを見やすくさせるプラグインだ。
使用するにはまず/WEB-INF/plugin.propertiesに
show-me-more=org.blojsom.plugin.showmore.ShowMeMorePlugin
show-me-more-admin=org.blojsom.plugin.showmore.admin.ShowMeMoreAdminPlugin
と追加する。というか既にあった。
次に/WEB-INF/(blog-id)/plugin.properties内のhtml.blojsom-plugin-chainにshow-me-moreを追加する。
その後/WEB-INF/web.xmlに
<init-param>
  <param-name>plugin-showmemore</param-name>
  <param-value>showmemore.properties</param-value>
</init-param>
と書き加え(これも既に入っていた)、最後に/WEB-INF/(blog-id)/showmemore.propertiesに
entry-length-cutoff=400
entry-text-cutoff=<more/>
show-me-more-text=More ...
entry-text-cutoff-start=<cut>
entry-text-cutoff-end=</cut>
と書き加えると設定完了だ。
上記showmemore.propertiesにあるentry-length-cutoffによりエントリ一覧で表示させる各エントリの最大表示文字数を変更することができる。
エントリ内の文字数がこの値を超えた場合show-me-more-textに設定している文言に別ページへのリンクが張られ全文を参照することができるようになる。
強制的に別ページへのリンクを作る場合はentry-text-cutoffに設定したタグをエントリ内に含めることでそこで表示が止められ別ページへのリンクが現れる。
entry-text-cutoff-startとentry-text-cutoff-endはその設定したタグでエントリ内の文章をくくるとその部分だけが一覧に表示されなくなり別ページへのリンクで置き換えられる。ただしこのタグを使用した場合でもentry-length-cutoffで設定した文字数は有効なので2重にリンクが現れる事もあるので注意が必要だ。
Posted by tsujitako at 2:41 午前 in Java/blojsom/

月曜日, 14 3 月 2005

jcommenterでコメント雛形 この記事(jcommenterでコメント雛形)を「はてなブックマーク」に追加 この記事をクリップ! この記事(jcommenterでコメント雛形)を「del.icio.us」に追加

Javaでコードを書いてるとついて回るのがJavaDoc用のコメント書きだ。
複数人で開発するなら当然だが一人だけの場合でも以後のメンテナンス性を考えればコメントはあるに越したことはない。
だがクラスやメソッドを追加するたび、/**やら@versionやら@paramやらを書いていくのは冗長で正直面倒だ。
この場合開発環境にvimを使っていればjcommenterを使用すればこの煩わしさから解放される。
jcommenterとはJavaソース内のクラスやメソッドのコメント雛形を自動で生成してくれるvimスクリプトの一つだ。
使い方はまずjcommenterの公式サイトから落としてきたjcommenter.vimを$VIMRUNTIME/macrosに配置する。
その後~/.vimrcなどのvim設定ファイルに
autocmd FileType java source $VIMRUNTIME/macros/jcommenter.vim
autocmd FileType java map <C-c> :call JCommentWriter()<CR>
と書き加える。
上記設定が完了後、Javaソースファイルを開き
public class test
のようなクラス名記述の行に移動しCtrl-cを入力すると
/** 
 * 
 * 
 * @author 
 * @version 
 */
public class test
と自動でコメント入力のための雛形を生成してくれる。
@authorなどの後に続く名前などの情報はjcommenter.vim内の記述を変更することでデフォルト値を設定することが可能だ。
メソッドの場合も同じように
public String doSomething(String value)
のような部分でCtrl-cを入力すると
/** 
 * 
 * 
 * @param value
* @return */ public String doSomething(String value)
という形で雛形を生成してくれるのでパラメータが多い場合など非常に重宝する。
EclipseなどのIDEを使わずJDK+vimで開発する場合は割と必須なvimスクリプトだと思う。
Posted by tsujitako at 3:04 午前 in Java/

日曜日, 13 3 月 2005

Drive-Thruのお買い得コンピ この記事(Drive-Thruのお買い得コンピ)を「はてなブックマーク」に追加 この記事をクリップ! この記事(Drive-Thruのお買い得コンピ)を「del.icio.us」に追加

タワーレコードに行くとDrive-ThruレーベルのコンピレーションアルバムDrive-Thru Records And Purevolume.comが店頭に並んでいた。
Drive-ThruというとNew Found Glory、Finch、Midtownなどのポップパンク・エモ系のレーベル。かなり好みな音がそろっているのでこれは買うしか。
CDは二枚組で全25曲入り。それに加えてMP3形式でCDトラックとは別の楽曲がなんと120曲も収録されている。でも価格は1365円。ありえない。
収録されているMP3はPurevolume.comの協力を得ているらしい。
CDトラックに収録されている楽曲のアーティストは以下の通り。
Abbott Hayes
Day At The Fair
The Early November
Echo Screen
Fall Out Boy
Firescape
For Felix
The Format
The Goodbye Celebration
Halifax
The Hanks
Hellogoodbye
Hidden In Plain View
Houston Calls
Jack's Mannequin
The Juliana Theory
Madelyn
Matchbook Romance
Never Heard of It
Park
Say Anything
Self Against City
Sleep Station
Steel Train
The Track Record

MP3データとして収録されている楽曲のアーティスト。
A Sense Of Belonging
Abagnale
The Acadamy Is
Act As If
Addison
Adelphi
All Time Low
Almost Tomorrow
American Ave
American Diary
An Angle
anadivine
Ashbury
Aspen It Is
Asteria
Automora
Awake And Dreaming
The Bank Robbers
Bel Air Academy
Best Interest
Best Of Enemies
Big City Dreams
Bleed The Dream
Burning Rosewood
Calico Drive
Closed At Sunset
Codie
The Consequence
Daphne Loves Derby
David Melillo
Dexter Danger
Distance From Afar
Down For The Count
Down In The Park
The Drive Back
The Early Rising
Echo Freddy
Elite Stranger
Elseworth
Evermore
The Fall Of Autumn
Farewell Madison
First On Mars
Furthest Drive Home
Gibbler
The Goodwill
The Goodyear
Grandview
Gym Class Heroes
Halfway Home
The High Life
Hyperbole
I Can Make A Mess Like Nobody's Business
Ice Nine
Interference
Jenoah
John Connor
Kicking Howard
Lakeside
The Lifestyle
Lost In Line
The Maple State
Mashlin
Mikoto
Monday Mourning
Motionless
Mourning September
My Former Self
My Getaway
My Lost Cause
NICOTINE
No Easy Answer
Normal Like You
Nural
On My Signal
The Outcome
Overise
Parker Theory
Paulson
Peatent Pending
Pensive
The Plus Nomination
Preston
The Prize Fight
Punos
Reubens Accomplice
Rory
The Secret Handshake
The Semester
Sherwood
Small Towns Burn A Little Slower
Socratic
Someday Never
Stars Hide Fire
State Unfair
The Station Blues
Stimulis
Strike Fire Fall
Summer Hero
Team Hate Nelson
These Green Eyes
This Day & Age
This Providence
Three Weeks Yesterday
Tourmaline
Tripside
Underscore
Waking Ashland
Wasteed On Envy
Wester
What Truth Is
Wings Of Azrael
X's For Eyes
The Years Gone By

CDトラックとMP3を合わせた楽曲の合計時間は8時間42分。新幹線で東京-大阪間を往復してもまだ聴き終わらない計算。すげぇ。


これはお買い得。

Amazon
Drive-Thru Records and Purevolume.com
Posted by tsujitako at 4:11 午前 in 雑記/

金曜日, 11 3 月 2005

JCaptchaで不正登録防止 この記事(JCaptchaで不正登録防止)を「はてなブックマーク」に追加 この記事をクリップ! この記事(JCaptchaで不正登録防止)を「del.icio.us」に追加

CaptchaとはCompletely Automated Public Test to tell Computers and Humans Apartの頭文字を取った造語で日本語で説明するとユーザーが人間かコンピュータか区別する自動化されたテストの事、となる。
具体的な例をあげるとYahooなどの会員登録の際に読みづらい文字が描かれた画像中の文字を判別させて入力させるフォームなどがそうだ。
言うまでもなくこれはプログラムなどによる不正な会員登録を防止するための措置でYahooに限らず最近は他のサイトでも見かけるようになってきた。
この読みづらい文字が描かれた画像を生成するJavaの実装がJCaptchaだ。
使用方法はcom.octo.captcha.engine以下のパッケージに用意されているImageCaptchaEngineの実装クラスからImageCaptchaオブジェクトを取得し文字の書かれた画像を生成する。
以下のサンプルはDeformedBaffleListGimpyEngineを使用し画像生成を行う。
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.InputStreamReader;
import java.io.BufferedReader;

import javax.imageio.ImageIO;

import com.octo.captcha.engine.image.gimpy.DeformedBaffleListGimpyEngine;
import com.octo.captcha.engine.image.ImageCaptchaEngine;
import com.octo.captcha.image.ImageCaptcha;


public class test
{
  public static void main(String[] args)
  throws Exception
  {
    File file=new File("challenge.jpg");

    ImageCaptchaEngine engin=new DeformedBaffleListGimpyEngine();
    ImageCaptcha captcha=engin.getNextImageCaptcha();

    BufferedImage image=captcha.getImageChallenge();
    ImageIO.write(image,"JPEG",file);
    System.out.println(captcha.getQuestion());

    BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));

    String ans=reader.readLine();
    if(captcha.validateResponse(ans).booleanValue())
      System.out.println("OK");
    else
      System.out.println("NG");
  }
}
上記サンプルを実行するとカレントディレクトリにchallenge.jpgという名前で文字の描かれた画像が生成された後、標準入力から入力待ちになるので読みとった文字を入力して正解ならばOK間違いならばNGと表示される。
生成される画像は以下のような感じ。

上の場合だと「coldly」で正解となる。
ただDeformedBaffleListGimpyEngineを使うと人間が見ても読めないかもしれない文字が作られる場合もあるのであまりおすすめ出来ない。
描かれる文字や背景のカスタマイズはImageCaptchaEngineを使わずダイレクトにcom.octo.captcha.image.gimpyパッケージのGimpyFactoryなどを使えば自由に変更することが可能だ。
Posted by tsujitako at 2:08 午後 in Java/
前のページ   1 > 2   次のページ