トップ 最新 追記

yoggy's diary

〜せかいのすみっこから〜


2005-05-02

Gmailのショートカット

微妙にvi風味なのね(笑


2005-05-03

ごろ寝 de スク

おー,これは便利そうかも?と思ったのですが,良く考えたら座った状態でこの机をセットするのが面倒そうな罠?(笑

AKIBA PC Hotline経由で.

Libretto U100をお店でさわってきた

キータッチがすこしやわらかくてなれない感じ.個人的に小さいキーボードは押した感じがしっかりわかる様に少し固めの方が好みかも?

ちなみに購入する予定はないですよ(笑


2005-05-04

Thinkpadを傾けてWindowを動かそう(hirax.net)

ThinkPadの加速度センサーを使ったアプリケーション.

dumpbin.exeとRECを使って調べているところがなかなか(笑

ThinkPadといえば

製品紹介のサイトがLenovoにかわってますね…

T2'05 Challenge

RECで普通に逆アセンブルすると中身が全然見えない。どうもUPXとかみたいな感じで中身を見えなくしている様子なので、OllyDbgとかでランタイムでデバッグしないとだめみたい。id:tessyさんところ経由で。

#T2のロゴが失意体前屈に見えるのは私だけ?(笑

創作童話 博士(はくし)が100にんいるむら

なんだかすごい現実だなぁ…


2005-05-05

Sarge is now frozen!(debian-devel-announce)

ついにSargeがリリース前のフリーズ状態に入ったみたいです.5/30にリリース予定だそうです.

KeN's GNU/Linux Diary経由で.

今日のGoogle

こどもの日バージョンですねー


2005-05-06

Debianの"Sarge"の次は何?

と疑問に思ってたら,次は"Etch"なのね.

GStreamer

調べ物をしているときに脱線ついでに発見したのでメモ.DirectShowと似た雰囲気のマルチメディアライブラリ.Rhythmboxとかで使われているらしいです.

以下はちょっとだけGStreamerに付属のgst-launchで使ってみたときのメモ.

$ apt-get install 'gstreamer*'
$ gst-launch-0.8 filesrc location=data.mp3 ! mad ! audioscale ! osssink

mp3のファイル->デコーダー->オーディオデバイスの順に接続して再生しています.

音が鳴っているだけだと寂しいので,ちょっと派手なVisualizationを使ってみる例.

$ gst-launch-0.8 filesrc location=data.mp3 ! mad ! audioscale !
  tee name=t ! osssink \{ t. ! queue ! audioconvert ! synaesthesia ! ximagesink \}
   \{ t. ! queue ! audioconvert ! goom ! warpTV ! ximagesink \}

	※実際には1行で入力する

映像をリアルタイムで歪ませるwarpTVの処理が重いので, ちょっとパワーのあるPCで試した方がいいかもしれないです.

あと,DirectX SDKに付属のというのがあるので,こちらでもいろいろ試してみることができるみたいです.


2005-05-07

プログラミングのなぞなぞ - Python Challenge(/.-J)

初めの方の問題って,別にPythonじゃなくてもいいような気がしないでもなかったり…

CGIごにょごにょ系(?)の問題が載っているサイトはいくつか見たことありますが,"Python"とうたっているところがちょっと新鮮な感じ(笑

追記

Level5からはPythonを知ってないとダメな様子.下記はLevel0〜4まで解いてみたときの個人的なメモです.

本日のツッコミ(全2件) [ツッコミを入れる]

mikl [Rubyで挑戦してる人いたっ。 Level5 は http://www.python.org/peps/pep-03..]

nido [ruby-listに投げて達人の解答例を見たいところだけどネタばれになるか・・。 ちなみにlevel1は text...]


2005-05-09

ねこ

ねこ

風博士で試しに書いてみるテスト

Firefoxよりも動作が軽いような気がするかも?

なんでもRSS!

素のHTMLからうまく日付と文章情報を切り出してRSSを出力してくれるサイト。

文章の切り出し方がうまいなぁーと感心したのでメモ。

NDO::Weblog経由で。


2005-05-10

るびま 0006 号

後で読むメモ.毎回インタビューが楽しみ.

新しいデジカメを仕入れたのでテスト

何を仕入れたか知りたい人はJPEGの中身をチェック(笑 becksにて 近所のねこ

はてなRSS

後で試してみるメモ.

Metasploit Framework 3.0がPerlからRubyにのりかえる件について

ついに登場したRubyのダークサイド?(違

PDFの資料のP108に

We love Ruby

* Used for our prototypes, leading candidate for msf3
* Clean and simple language that is easy to learn
* Strong object model, and we use every inch
* Library support is decent, often better than Perl
* Native Win32 builds, Cygwin as backup
* 2.x will stay Perl and continue in parallel

とあるのが興味深いです.id:hiro-tさんところ経由で.


2005-05-12

CSS で WindowsXP

これはすごいなー

にわか鯖管の苦悩日記より。

jigブラウザを使ってみた。

Gmailは見られないのね(笑

jigブラウザ


2005-05-13

zsh

最近,bashを使ってるのもアレだなーと思ってzshを使うようにしてみたり.

とりあえずTABを連打しておけば,状況にあわせて補完してくれるcompsysが素敵ー

起動

$ zsh                     <-zshを起動
$ autoload -U compinit ; compinit   <-compsysの起動.~/.zshrcに書いておいても可

killallコマンドの場合

$ killall -T                       <-ここまで打ってTABキーを押す
-TERM  -TRAP  -TSTP  -TTIN  -TTOU

    ※Tではじまるオプション一覧が表示される


$ killall -TERM                    <-ここまで打ってTABキーを押す
emacs  ps     ruby   zsh

    ※killallできるプロセス名一覧が表示される

w3mの場合

$ w3m http://www.saba                        <-ここまで打ってTABキーを押す
$ w3m http://www.sabamiso.net/yoggy/tdiary/

    ※過去に訪れたことがあるURLならここまで補完される


$ w3m http://www.sabamiso.net/yoggy/tdiary/  <-またここでTABキーを押す
http://www.sabamiso.net/yoggy/tdiary/                http://www.sabamiso.net/yoggy/tdiary/\?date=20050510
http://www.sabamiso.net/yoggy/tdiary/\?date=20050512 http://www.sabamiso.net/yoggy/tdiary/update.rb

    ※過去に訪れたことがあるURLが表示される

Subversion(svn)の場合

$ svn <-ここまで打ってTABキーを押す
add       checkout  copy      export    info      merge     propdel   proplist  revert    update
blame     cleanup   delete    help      list      mkdir     propedit  propset   status
cat       commit    diff      import    log       move      propget   resolved  switch

    ※後につづくサブコマンドの一覧が表示される


$ svn add       <-ここまで打ってTABキーを押す
test1.c test2.c

     ※ カレントディレクトリがsvn checkoutしたディレクトリの場合,
        svn addしていないファイルの候補が表示される

まだリポジトリに入っていないファイルだけをaddの候補として補完してくれる機能は,ちょっと感動してしまった.

scpの場合

 $ scp yoggy@dummy.sabamiso.net:/home/yoggy/ <-ここでTABキーを押す
 Mail/  bin/  coredumptest/  coredumptest.tgz  evidence_locker/  src/  tmp/

     ※ リモート上のファイル一覧が表示される.

あらかじめ,ssh-agentを動かしおくこと.

本日のツッコミ(全2件) [ツッコミを入れる]

hiro-t [compinitとcompinitの間に";"が要りますよね?]

よぎ〜 [あー、忘れてました。修正しましたー(汗]


2005-05-14

中華街

中華街東門 中華街大通り もらったプレゼント?ありがとうー


2005-05-15

Bloglinesがメンテ中

"plumber"って「配管工」という意味なのね(笑

Bloglinesのおじさん

デジタル蚊取り線香

妙に気になったのでメモ.

はてなRSSにOPMLインポート機能が追加されたので

試しに,BloglinesでエクスポートしたOPMLをはてなRSSにインポートしてみる…

…あー,Bloglinesの出力するOPMLの中身が文字化けしてるよ.この辺りが関連してるのかな?(;´Д`)


2005-05-17

SDメモリカードを仕入れてみたよ

通勤途中のお店でA-DATAのSDメモリカード(1G)が9000円弱で売っていたので購入。

買ってから調べてみたのですが、この辺を見ていると、省電力性はなかなか優れてそうな雰囲気。

A-DATAのSDメモリカード

jumperz_net_075.jar released

こんな感じでグラフを表示してくれるコンソールが追加されている様子.

++age

C++風に前置演算子で書いてみるテスト.

近所のねこ

本日のツッコミ(全1件) [ツッコミを入れる]

まっちゃだいふく [あっ、おめでとうございます!!! いつも、日記とても参考になっています。 これからもがんばってください〜。]


2005-05-18

MTのアレ…

そのうち,https使ってないから脆弱性がありますよーと素で言い出す人が出てきそうな気がしないでもなかったり…


2005-05-19

ここを書いている途中で、

ブラウザがおちて、途中まで書いていた内容が消えてションボリ。

久しぶりにGREEをのぞいてみたら

++age関連でメッセージをいただいていることに今頃気づく罠(汗

メッセージありがとうございました。これからもよろしくおねがいしますーm(_ _)m>メッセージを送って頂いたみなさま

あと、mixiの足あと機能みたいな「アクセス履歴」機能がいつのまにか追加されていてびっくり。

Release of Sebek version 3

Whats New in version 3:

Sebek version 3 clients help create a more unified view of host and network activity. This is accomplished with the addition of new monitoring techniques:

- Process Tree Monitoring.

- Socket tracking to relate host and network activity.

- File Opening monitoring to identify all files opened by

 a process.

近いうちにWIn32版とLinuxのカーネル2.6版がでるかも?ということもあわせて書いてあったのでメモ。


2005-05-20

age++と++ageの違い?

Cで++演算子といえば,前置演算子と後置演算子の2通りの使い方があって,

$ cat test.c
#include <stdio.h>

int main(int argc, char **argv){
        int a,b,c,d;
        a=b=1;
        c=a++;
        d=++b;
        printf("a=%d b=%d c=%d d=%d\n",a,b,c,d);
        return 0;
}

$ gcc test.c
$ ./a.out
a=2 b=2 c=1 d=2

となるのは有名な話です.

後置演算子の場合は変数(式)が評価された後に 変数に1が加えられるので,c=a++と書いた場合は,

  1. aの評価値1がcに代入される
  2. aの値に1が加えられる
  3. 結果としてc=1,a=2

という順番で実行されます.

逆に前置演算子の場合は変数に1が加えられた後に 式が評価されるので,d=++bと書いた場合は,

  1. bの値に1が加えられる
  2. bの評価値2がdに代入される
  3. 結果としてb=2,d=2

という順番で実行されます.

…で,これを踏まえてage++と++ageの違いを考えてみると,

int age;
age=20;
printf("age=%dです\n",age++);

と書いた場合,結果としてはageは1増えるけれども, printfで表示される(age++)の評価値自体は前のageと変わらないため, 結果として

age=20です

と表示されます.

誕生日を迎えた際に++ageと書かずにage++と一般的に書かれているのは, 実は,

年を取ってしまったが,その心(評価値)は以前と同じ年のまま

という年を取ることを惜しむ気持ちのあらわれなのかな?と考えてみたり. 表現ひとつ取ってもなかなか奥が深い(笑

C++では前置演算子の方が使われる理由

C++の場合、++演算子はintやlongなどの基本的な型以外にも、 演算子がオーバーロードされていれば使用することが可能です。(例えばSTLのiteratorとか)

後置演算子の場合、

   Huge a,b;
   a=1;
   b=a++;

というコードがあった場合、b=a++の処理は++を実行する前のaの値を bに代入する必要があるため、一般的には、

   Huge tmp = a;
   a++:
   b=tmp;

(1)aのコピーを作成。(2)a++を実行する。(3)1で保存しておいたaのコピーをbに代入。 といった感じの流れで処理を行います。

ここで(1)の処理が知らないうちに行われてしまうことが、実はかなりくせ者で、 Hugeクラスのインスタンスが小さい場合はいいのですが、例えば、Hugeクラスの定義が、

$ cat huge.cpp

#include <iostream>

using namespace std;

#define BUFFER_SIZE 10000000

class Huge
{
private:
    char   *buf;
   int    val;
public:
   Huge() : val(0) {
       buf=new char[BUFFER_SIZE];
   }
   Huge(const Huge &other) : val(other.val) {
       cout << "copy constructor!!" << endl;
       buf=new char[BUFFER_SIZE];
       memcpy(buf, other.buf, BUFFER_SIZE);
   }
   ~Huge(){
       delete [] buf;
   }
   Huge &operator=(const Huge &other){
       if (this != &other) {
           memcpy(buf, other.buf, BUFFER_SIZE);
           val=other.val;
       }
       return *this;
   }
   Huge &operator=(const int &val){
        this->val=val;
        return *this;
   }
   Huge &operator++(){
       ++val;
       return *this;
   }
   Huge operator++(int){
       Huge tmp(*this); // <-create temporary instance
       val++;
       return tmp;
   }
   int getVal(){ return val; }
};

int main(int argc, char **argv)
{
   Huge a,b;
   a=1;
   b=a++;
   cout << "a.val=" << a.getVal() << endl;
   cout << "b.val=" << b.getVal() << endl;
}

といった巨大データを持つ場合、bに代入する・しないに関わらず、 a++を実行するだけで

   Huge operator++(int){
       Huge tmp(*this); // <-create temporary instance
       val++;
       return tmp;
   }

の部分で一時的に巨大オブジェクトのコピーが行われてしまいます。

$ g++ huge.cpp
$ ./a.out
copy constructor!!
a.val=2
b.val=1

以上の理由でC++では、予期しない巨大データのコピーを防ぐために ++は前置演算子として使われることが多いみたいです。


2005-05-21

天気いいなぁ…

近所のねこ


2005-05-22

Google Maps Reveals UFO(O'Reilly Network)

Google MapsにUFOが写っている写真があるとか(笑

GoodPic.Com経由で.

挑戦者、“白箱”ことiTunesと連携した自作NASキット「LANTANK」(Broadband Watch)

個人的にはiTunes関連の機能はどうでもいいのですが,ミラーモードをサポートしているところと,シリアルコンソール用のケーブルが別売りで用意されている点がいいなぁ…

今は自宅ファイルサーバに使っているLANDISKですが,シリアルコンソールが無かったからえらい苦労したような思い出が(笑

あたらしいR4,T4,W4,Y4を触ってみたよ

近くのヨドバシにならんでいたのでちょっとだけ触ってみました。

W4はW2と比べてドライブの位置が変わっているのと、バッテリ形状がまったく違う物に替わってしまっているのにびっくり。

キーボードを打った感じが前のモデルにくらべてちょっとだけしっかりしているように感じたのは気のせいかな…?


2005-05-23

近所のねこ

近所のねこ


2005-05-29

JVN#FCAD9BD8 メールクライアントソフトにおける mailto URL scheme の不適切な解釈

影響があるメーラーについてはJVN#FCAD9BD8を参照。

たとえば、

 user1@example.com?bcc=user2@example.com

とmailto:で指定されていた場合、メーラー側でBcc:を非表示にしてしまっていると、ユーザが知らないうちにuser2にもメールを送ってしまいますよーいう話。

以下JVN#FCAD9BD8から引用。

mailto URL scheme については RFC2368 で定義されていますが、この文書の "Security Considerations" セクションにおいて、以下のような指摘がなされています。

- メールクライアントは、mailto URL scheme の記述をもとに作成したメールの全体をユーザに確認させるべきである

- とくにヘッダについては宛先だけでなく、その他のヘッダについても明示的に表示すべきである

- メール配送に関係するヘッダを mailto URL scheme の記述に基づいて設定することは不適切である

一方、いくつかのメールクライアント実装では、メール配送に関係するヘッダを mailto URL scheme の記述に基づいて設定したり、設定したヘッダを明示的に表示しないことが確認されています。

LLDN 開催のお知らせ

5/27からチケットが発売されているみたいなので、さっそくローソンへ行ってチケットを購入。

Loppi端末で購入するときに、いちいち名前&電話番号をタッチパネルで入力しないといけないのはちょっとダルいよなぁ…と思ってみたり。

[www][neta] FreeMindで議事録をとることの利点 LifeHacksまとめ(void GraphicWizardsLair( void ); //)

FreeMindとSubEthaEditを知らなかったのでメモ。

WikiでFreeMindに近い使いかたができると便利そうだなぁ…。


2005-05-30

Flash Communication Server MX

某イベントに向けて使えるかどうかちょっとだけ調べていたのですが, 使っているうちに自由度が高い分,意外と手間がかかることに気が付いてしまう罠.

とりあえず,

  • サーバーサイドのAction Scriptをデバッグする方法(汗
  • 簡単な認証をどうやって実装するか考えなきゃだめだなぁ…

というあたりが,付属のオンラインマニュアルとかGoogleで調べただけではよくわからなかったので, とりあえずAmazonでProgramming Flash Communication Serverを注文.

#本格的にさわれるのは7月に入ってから?(汗

鶴亀メールでのmailto:プロトコルに関係した脆弱性について

Windows環境で鶴亀を使っているので確認してみたのですが、ちょっと微妙な対応…

以前にも対応がアレという話があったような気がしますが、事の顛末と今後の対応について書いてあるので、今後に期待ということで。

とりあえず、鶴亀メール Version 4.15時点で見つかった脆弱性についてという話もあるので、鶴亀を使っている人は4.16にアップデートしましょう。

Selenium

Webアプリケーションのテストツール。気になったのでメモ。

Selenium is a test tool for web applications. Selenium tests run directly in a browsers, just as real users do. And they run in Internet Explorer, Mozilla and Firefox on Windows, Linux and Macintosh.

seculoggerさんところ経由で。

[rails:109] Re: sqliteでの謎の挙動

チュートリアルを見ながらRailsの勉強をしていたのですが,そのまま

./script/generate controller Friends list display new edit

の実行と,app/views/friends/display.rhtmlを作っていると,なぜか@personがnilになってしまう罠.

とりあえず"display"という名前を別のものにすればいいみたいなのですが, これで3時間ほどはまってしまった…ションボリ


2005-05-31

[rails:109] Re: sqliteでの謎の挙動

チュートリアルを見ながらRailsの勉強をしていたのですが,そのまま

./script/generate controller Friends list display new edit

の実行と,app/views/friends/display.rhtmlを作っていると,なぜか@personがnilになってしまう罠.

いろいろ調べていると, [rails:109] Re: sqliteでの謎の挙動で指摘されているように"display"という名前を別のものにすればいいみたいなのですが,これに3時間ほどはまってしまってションボリ…

先に0005-RubyOnRailsで紹介されている scaffoldに気づいておけばよかったかな?この仕組みはなかなかお手軽でよさげ(笑

Covert Channelの資料

を見ていて,なんだかSteganographyに話が似ているなーと思ってよく考えてみたら,

  • Steganography
    • あるデータの中に,わからないように別の情報を埋め込む技術
    • 暗号化したデータを埋め込むケースがが多い
  • Covert Channel
    • Steganographyを利用して確立する通信経路

のような気がしてきたり.

なんとなく音楽ストリーミングを聴いているふりをしつつ,実はmp3の中に別のデータが埋め込まれている状況とかを想像してみるテスト.双方向だったらVoIPとか?(笑

もんたメソッド

最近はいろんなプレゼン手法が開発されてますなー

Keynoteがクラッシュしてたらしいですが…(笑

本日のツッコミ(全4件) [ツッコミを入れる]

wakatono [あ、まさにそんなニュアンスです。 が、Covert Channelの定義に沿うならば、「データ(というかペイロード)..]

よぎ〜 [わざわざ解説していただきありがとうございますーm(_ _)m ヘッダの中に埋め込むケースが多い(?)のは,普通に動..]

しかP [いや、やっぱ傍目に通常通信と見分けにくいからでしょう>ヘッダ埋め込み]

よぎ〜 [例えば他の通信に便乗するようなCovert Channelを実現するLKMを作ろうとしたときに、どんなデータが入って..]


トップ 最新 追記

2003|01|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|
2010|01|02|03|