2006年11月28日

研究室とストップウォッチ作成(i-appliだよ)

 針生です。
 毎回友人の、ストップウォッチ内蔵携帯を借りていた針生です。

 いや、ね。
 うちの研究室には何故かストップウォッチがありません。
 しかし、やっぱりこの時分になるとアブストやら発表用にデータを取らざるを得なくて。
 毎度友人のストップウォッチ内蔵携帯を借りていたんですが。

 困った困ったと思っているとき、ふとひらめきました。

 無ければ作りゃぁ良いじゃないの。

 こういう時の為に携帯をDoCoMoに変えた甲斐があるってもんです。
 ただもじぴったんがしたかっただけじゃないんですよね。
 もう自作アプリが作れる事にこれほど感謝した事はありません。

 で、製作しようとしたんですが。
 何故かEclipseの新規プロジェクトにDoJaがない。
 そう言えばeclipseを3.1にしちゃってた……。
 ってことで古いバックアップからeclipseの2.11を引きずり出してくるとソコには既にDoJaの環境が整備されていまして。

 古いインターフェースに変な気分になりながら製作開始。

 針生は基本的にクラスを3つしか作りません。
 起動用クラス(I-appli継承)、実行スレッドも兼ねた本体(Canvas継承Runnable実装)、スクラッチパッド関連クラスDataManager(singletonのオリジナルクラス)。
 今回はスクラッチパッドは完全に関係無いのでDataManagerは削除。
 実行用の本体にオリジナルひな形をコピーしたらゴリゴリとCの様に作ります。
 もう本当にこのコードはJavaなんだろうかと疑わしくなってくるぐらい。

 で、まぁ30分ぐらいで出来ました。総容量5kb。
 やはり少ないクラスでやると実行時のオーバーヘッドも小さいし、作成される物も小さいし良い事ずくめです。

 で、こんなの。

 スクリーンショット

 もうシンプル極まりない。

 我々が一番必要とする「秒.ミリ秒」表記での経過時間とオマケのように「分:秒.ミリ秒」の表記を表示します。

 それだけ。

 気が抜けるようなアプリですが、こちらからどうぞ。

 HxStopWatchダウンロード

 携帯のメモリの片隅にでも置いて下さいな。
 あと、ソースが欲しい方は幾らでも差し上げます。メール下さいな。

投稿者 hiroto : 00:33 | コメント (0) | トラックバック

2006年10月13日

社のサーバにも導入&トラブル発生!?

 針生です。
 入れてみました、針生です。

 ってことで、先日言っていた激重サーバにインストールする事にします。

 ……。

 やっぱりこっちでも早い!

 メモリを贅沢に使うように設定したんで、より快適な感じで実行されてます。
 CPU負荷も微妙に下がったみたい。

 ってことで一安心してた針生なんですが。

 電話が掛かってきます。

「某データセンターのX番サーバがオカシイ! 残ディスク容量が0だしポスグレも動いてないし……」

 何てこったい。

 今日は一日その原因究明に時間を取られました。
 duしてみたり色々。

 発見した原因は、前任者がこのサーバをバックアップ用としてた事ともうひとつ。

 細かく言うとcronで日ごとに別サーバのデータをバックアップとして収集してたのが1G以上あったのと、ポスグレが吐いてたエラーログのテーブルが30Gぐらいに成ってた。
 そりゃポスグレも止まるし残ディスク容量も0になる。

 取り敢えずバックアップは消す。要らない分消す。

 ポスグレの方は、バックアップ消した後、pg_ctl startして再起動して、ゴニョゴニョしてエラーログ消した。

 針生は前任者の大体のクセ(どこに自作スクリプトを置くかとか)知ってるから何とか解ったけど、針生の後任者は大変だろうなぁ。
 あとschemeというか、gaucheスクリプトが散見されるのもどうしようかと……。
 lisp、使えない事はないし、改変出来ない事はないけど、教えられるほどは知らないし。

 後任者は大変です。
 gauche読めてPHP書けてJava書けて、シェルスクリプトも書けて、Perlも書けないとダメ。
 勿論linuxが解らないとダメ。PostgreSQLも解らないとダメ。vpopmail/Qmail/procmailの組み合わせでのメールサーバも解らないとダメ、その上、メール受信をトリガにしたスクリプト起動も解らないとダメ。
 その上に今回みたいな事が起こる。たまに起こる。
 あぁ、針生が教えるんだろうなぁ。

投稿者 hiroto : 23:59 | コメント (0) | トラックバック

2006年10月12日

Debian+apache2にeAccelerator入れてみました。

 針生です。
 最近仕事先で借りてる鯖のhttpdがめっぽう重い事を悩んでる針生です。

 いや、ね。
 原因はうすうす分かってるんです。

 針生が作ったWikiの様なモノがあるんですが……。
 結構高機能な上プラグインと称した拡張が出来るようになってるんです。
 PHPで組んだんですがね。

 そいつがテキストのソースからHTMLを起こす部分と、その部分でのプラグインの展開、実行等々で多数のファイルをrequireしてたりして。
 特にプラグインに至っては一つ一つの機能に対したプラグインをワザワザrequireするために、機能が増えるごとに重くなって来てたのは解ってたんです。

 PEARとか使ってないだけマシかなぁとか思ってたんですが、それにしても重い
 サーバ全体が重いのも、全部プロセスはhttpdの上にのってるんで、正確な負荷は解らないけど、原因の一因になってそうな事は確か
 まぁ、この一つのサーバにヴァーチャルホストが120個ぐらい載ってるってのが異常事態なんですが。
 その各バーチャルホスト上で例のWikiもどきが動いているという阿鼻叫喚

 で、思い出したのが、eAccelerator
 PHPを中間言語にコンパイルした結果をキャッシュするとかなんとか言う奴なんですがね。

 取りあえず自宅サーバ実験用ラットになってもらう事にしてインストール
 こいつは某スクリプト(PEAR使用)が稼働中なんで、requireしまくり。ちょうどいい。

 ってことで、Debianにインストールしてみました。
 phpizeとphp-configが変なところに入ってたんで困惑しながらも大体以下の手順でした。

$sudo aptitude install libtool1.4 libguile-dev automake
$sudo aptitude install g++

 何か必要だったのでインストール。

$wget http://keihanna.dl.sourceforge.net/sourceforge/eaccelerator/eaccelerator-0.9.4.tar.bz2
$bunzip2 eaccelerator-0.9.4.tar
$tar xvf eaccelerator-0.9.4.tar
$cd eaccelerator-0.9.4 

 落としてきて解凍、ディレクトリへ移動。

$su -

 何となくルートになる。

#export PHP_PREFIX="/usr/"
#PHP_PREFIX/bin/phpize
#./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config
#make
#make install

 configとmake。

#mkdir /usr/lib/php4/extensions
#ln -s /usr/lib/php4/20020429/eaccelerator.so /usr/lib/php4/extensions/eaccelerator.so 
#mkdir /var/cache/eaccelerator
#chown www-data:www-data /var/cache/eaccelerator

 取りあえずextensionsディレクトリが無かったんで作成して、その後にシンボリックリンク作成
 キャッシュディレクトリも作成。

#emacs /etc/php4/apache2/php.ini

 でPHPのini編集。

[eaccelerator]
zend_extension="/usr/lib/php4/extensions/eaccelerator.so"
eaccelerator.shm_size = "16"
eaccelerator.cache_dir = "/var/cache/eaccelerator"
eaccelerator.enable = "1"
eaccelerator.optimizer = "1"
eaccelerator.check_mtime = "1"
eaccelerator.debug = "0"
eaccelerator.filter = ""
eaccelerator.shm_max = "0"
eaccelerator.shm_ttl = "0"
eaccelerator.shm_prune_period = "0"
eaccelerator.shm_only = "0"
eaccelerator.compress = "1"
eaccelerator.compress_level = "9"
eaccelerator.keys = "shm_and_disk"
eaccelerator.sessions = "shm_and_disk"
eaccelerator.content = "shm_and_disk"
 メモリサイズは128MBしか積んでないので16MBにしてみました。
 保存してemacs終了。

#/etc/init.d/apache2 restart

 で、サーバ、再起動!

 ……。

 早い!!

 兎に角早い。もう爆速
 体感速度は相当変わりました

 肝心のCPU負荷はうちの鯖、非力なんでアテにならない上に、インストールする前の負荷を見てないんでわからないんですが、キャッシュの状態を表す付属のPHP、eaccelerator.phpによると、ちゃんとキャッシュも働いている模様

 相性の悪いPHPも特になさそうなので、仕事先で借りてるサーバにも取りあえずインストールだけしておきました。
 今は取りあえずphp.iniの例の部分をコメントアウトしてあります。

 稼働は明日上司が居る時に……。

投稿者 hiroto : 23:58 | コメント (2) | トラックバック

2005年03月25日

アレがJIS通過

 はい、針生です。

 針生はメモの管理が下手です。
 いや、テキストファイルでおいといても、無くしたりして。

 で。

 自作のメモ管理ソフトを昔は使ってたんですが、この前のディスククラッシュでどこかにやってしまいました。
 いや、VB製のショボい奴なのに意外に便利だったんです。

 ソレが無くなってからと言うもの、もう仕事中でも
「あれ? あのファイルどこだっけ?」
「あの鯖のパスどこに書いたかな」
 そんなノリですよ。

 コレはいかん、と言う事で、また作ろうと企んだわけです。
 で、まぁそのソフトに必要な機能

1.最前面に表示
2.自動保存
3.ユーザ毎にファイル保存
4.簡易タグ(行頭に*を付けた行だけ一覧で出せて、ジャンプ出来る

 これだけの機能なんで、選択肢はそれなりにありそうです。
 ちなみに、Win32で考えてます。

VB
 今更もういい。
Java
 Tigerじゃないと1が出来ない。
C
 めんどい
C++
 大げさ
Perl/Tk
 2バイト文字に弱い上にAlwaysOnTop出来ない。
Delphi
 VCLが好きじゃない
 WinMainから書くには意味がない
 重い
 コンパイル言語の癖にオーバーヘッド大きい。
 関数の呼び出し規約がキショい。
 何よりパスカルが嫌い。

 さて、八方ふさがりです。
「こうなったらCで書くか」
 そんな風にすら思えてきます。

 が、そんな針生、SlashDot見てたら「C#がJIS通過」とか発見しちゃったりなんかして。

 これしかあるまい。
 何より、

 おもしろそう。

 一瞬でSharpDevelop落として、ペペっとやってみました。
 C#について思った事。

・何かJava臭い。
・でもTemplate使える
・構造体が使える
・なんか構造体に関数持たせられる

 コレ、便利そう。

 っていうことで、何となく作り始め。

 ……
 …………

 一瞬で出来ました。
 意外にカンタンです。
 C#便利かも。

画面
memoclip.zip

 隠し機能というか、メニューに付けるのが面倒だったのですが、
 下のタグ選択のコンボボックスに、
#aot
 って入れてエンター押せば「常に最前面に表示」がon/offされます。

投稿者 hiroto : 00:39 | コメント (1) | トラックバック

2005年03月12日

テクノじじいの掃きだめ-三人目-i-appli Networkspeed Benchmark

 針生です。めちゃくちゃ無駄な物作りました。
 i-appli(i-mode)のネットワーク転送速度を測るi-appliです。
 Down方向だけですが。ベンチマーク的にどうぞ。

 スクリーンショット

 HPNV携帯版も、HPNVの更新もせずに何をやってんだとお怒りかもしれませんが。
 まぁ許してくださいな。

 あと、1パケット0.2円時の料金なんかも表示されます。
 ドコモさんが結構えげつない料金体系してるなぁ、と思える瞬間かも。

 パケ放題の人以外使用禁止でお願いします。危ないから。


 携帯から上のQRコード読んで行くか、それか

http://k.divby0.com/appli/index.html

 に携帯から行けばDL出来ます。

 ごめんなさい。PC切って。
 Javaなんで逆コンパイルされちゃうと色々と危うい事に。
 いや、悪いコードな訳じゃないんですがね。

 針生が家で作った→バイト先に持っていった→VerUPしちゃった。

 そんなクラスが含まれてるんで、不味いです。

 あと、あんまり無茶して使わないでね。
 転送量が怖い。ドコモさんに怒られそうだし。

 23:17 こっそり(c)追加。

投稿者 hiroto : 20:21 | コメント (0) | トラックバック

テクノじじいの掃きだめ-二人目-自己編集PHP

 針生です。
 今日はもう寝られません。

 いや、ね。

 ちょっと便利そうで変な物を作ってみました。
 その名も自己編集PHP。
 いや、いちいちテキストを編集しただけでFTP立てるのとか面倒だし。

 更新履歴のページとかにどうぞ。

 針生が最初に触ったときはパスはtestでした。
 サンプル
 ソース

 設置方法。

1.ソースの方をDLする。
2.ファイル名の最後の.txtを取る。
3.好きなファイル名にする。
4.FTPでUPする。パーミッションは666で。
5.おもむろにUPしたファイルをブラウザで開く。
6.真っ白ならひとまずOK。
7.?editと付けてみてまたブラウザでアクセス。
8.編集画面っぽい物が出ればまたOK。
9.適当に内容を書き込んで、「新しいパス」の所に好きなパスを書き込んでから「更新」を押す。
10.中途半端な画面が出るが、迷わず「更新」を押す。
   エラーが出たらパーミッションをチェック。
11.でなけりゃ完成。

投稿者 hiroto : 03:42 | コメント (0) | トラックバック

2005年02月23日

テクノじじいの掃きだめ、一人目。フリー投票システム

 いやまぁ、テクノロジーを無駄に使おう、というコーナーです。

 Javaで無意味に作ったRSAとかもあるんですが、それより。

 簡単投票君。

 このエントリの一番下みたいなのが作れます。すぐに。

 書き捨てレベルの卓越した汚さなんで、適当にどうぞ。
 トラバ送って貰えれば嬉しいです。

 ソースは
本体
表示のテンプレ
 です。

 使い方
 まず両方をPHPにして保存。
 1.easyvote.phpの6行目、保存ディレクトリを修正。
 そのディレクトリを作成。パーミッションは606とか666とかなんしか書き込めるやつで。
 2.8行目のColumnsを変更。
 数はいくら多くても構いません。""でくくって、「,」で区切ってください。
 3.Template.phpを弄って好きなデザインにする。
 PHPが解らない人は<?と?>で囲まれた場所は触らないように。
 4.ページに貼る。
<iframe src='http://[設置した場所]/easyvote.php?page=[ページ名]' height=100 width=400 style='border-width: 0px;border-style: none;' marginwidth="0" frameborder="0" marginheight="0"></iframe>
こんな感じで。
ページ名は投票毎に適当につけてください。

投稿者 hiroto : 14:25 | コメント (2) | トラックバック

2004年09月23日

i-appli

あれです、最近ずっとi-appli作っています。
なんて言うか、うちのページに、RorLっていうゲームあるじゃないですか。
アレに、可愛い女の子の絵がのる感じです。

グラフィッカーは今のところ秘密。言っちゃっていいか確認しとくから勘弁(ぉ
まぁそんなこんなで。

他のゲームのネタ下さい(ぉ

投稿者 hiroto : 21:09 | コメント (0) | トラックバック

2004年09月22日

Movabletypeのカスタマイズ

さて、MovableTypeをここ数日弄っているわけですが…。
他の人のブログを見ていて、発見しました…。
これって、スタイルシートで色々弄れるんですね。

何も考えず入れたので全く気にしてなかったのですが。
ちょっとこれから弄ってみようかと。

ちなみに、トラックバックの使い方、いまいち解ってないんですが、これでいいんでしょうか(汗

投稿者 hiroto : 16:02 | コメント (1) | トラックバック

2004年09月21日

技術的な感じで

針生、解りました。
分けておかないと、技術系に興味が無い人はさっぱり解らなくなってつまんなくなる事請け合いだと思ったのです(ぉ

って事で、技術系は技術系カテゴリとしておいておくという事でw

投稿者 hiroto : 14:15 | コメント (0) | トラックバック