メイン

ソフト技術 アーカイブ

2007年12月24日

僕のFirefox: userChrome.js編

userChrome.jsはJavascriptによって,Firefoxを改造する拡張で,「僕のFirefox」シリーズを書く上での目玉.
これは本当にすごすぎて,吹いちゃうので,ワインを呑みながらは見ないように.

あらゆるスクリプトはuserChrome.jsに書く必要があるのですが,サブスクリプトローダを用いることで,
それぞれのスクリプトを個別のファイルに分けることが可能となります.
サブスクリプトローダはいろいろとあるようですが,
活発に更新されているSub-Script/Overlay Loader v3.0.2modを利用してます.
なお,FirefoxPEの場合,userChrome.jsは"%APP_DIR%\Data\profile\chrome"にあります.


context-encoding-menu.uc.js
コンテキストメニューから文字エンコーディングを指定できるようになります.
日本語は文字エンコーディングのしがらみからは逃れられない!

CopyURLLite.uc.js
コンテキストメニューからページタイトルやURLを簡単にコピーできるようになります.
ブログ書きの時の便利なアシスタント.

Ctrl+F押したらFindbarが出るけどもう一回押したら消える.uc.xul
Ctrl+Fで検索バーを呼び出せるが,再度Ctrl+Fを押すことで,消すことができる.
地味に便利.

expandsidebar.uc.js
サイドバーを自動開閉するスクリプト.
Sleipnir使いのボクとしては,このスクリプトの実用性は高い.

GrabScroll3.uc.xul
PDFのように画面を掴んでスクロールさせられる.
すげー便利だと思って導入したんだけど,それ程でもなかった.

LaunchIE.uc.js
現在のページをIEで開きます.それだけ.
Firefox未対応のページに便利.
IE TabFirefoxを遅くすることで有名です.
IE Viewがそのリプレイスになりますが,アドオンを入れなくても,このスクリプトで実現できます.

MouseGestures2.uc.js
私はこれでAll-in-One Gesturesをやめました.
ロッカジェスチャを含めて,デフォルトのまま利用していますが,
利用可能なスクリプト集が公開されていて,カスタマイズ可能です.
実は,戻ると進む以外のジェスチャって,使ったことがない・・・

SafariHighlight.uc.js
Safariのインライン検索のハイライトみたいに動作するスクリプト.
Safariを使ったことがないので,再現度がどれくらいかはわからない><
そもそも,ページ内検索をあまりしない人なんで,実は使わないかも?
目的の情報だけを取ってページから去るなんて,執筆者様に失礼ですぅ><

SelectSearchInTextArea.uc.js
Textarea内のテキストに対しても,文字列選択右クリ検索が可能となる.
この機能を初めて見たのはOperaで,異常に魅了されたことを覚えている.
Sleipnirでは,Ctrl+Shirf+Fで同様のことが実行できるようにしてある.
実はキーボードショートカット派.

TextLinkもどき
ttpやhttpなんだけどリンクされていない文字列をダブルクリックで開いちゃうスクリプト.
もうね.便利すぎて,何なのかと.

UserAgentSwitcherLite.uc.js
アドオンのUser Agent Switcherのリプレイス.
たまにしか使わないけど,あると便利.
アドオンである必要がないものは,スクリプトでリプレイスしてしまいましょう.


参考:
userChrome.js - Mozilla Firefox まとめサイト

僕のFirefox: userChrome.css編

前回のエントリーから,だいぶ日が空いてしまいました.
今回はuserChrome.cssによるカスタマイズを紹介します.

/* メニューバーをマウスオーバーで自動開閉 */
#toolbar-menubar{display: none;}
#navigator-toolbox:hover > #toolbar-menubar{display: -moz-box;}

/* タイトルバーとメニューバーの間の窪み横線を消す */
#navigator-toolbox {border-top: 0px !important;}

/* ブックマークツールバーをマウスオーバーで自動開閉 */
#PersonalToolbar {  display: none;}
#navigator-toolbox:hover > #PersonalToolbar { display: -moz-box;}

/* ロケーションバーのドロップマーカー(▼印)を消す */
#urlbar dropmarker {display:none !important;}

/* 検索バーの右側に履歴を出すボタンを表示 */
#searchbar .autocomplete-history-dropmarker {
display: -moz-box !important;
-moz-binding: url("chrome://global/content/bindings/autocomplete.xml#history-dropmarker");
}

/* Live Bookmarkの購読ボタンを隠す */
#livemark-button {
  display:none !important;
}

/*コンテキストメニューから[戻る][進む][更新][中止]を消す*/
/* 戻る */
#context-back {
display: none !important;
}
/* 進む */
#context-forward {
display: none !important;
}
/* 更新 */
#context-reload {
display: none !important;
}
/* 中止 */
#context-stop {
display: none !important;
}
/* 「中止」の下のセパレーター */
#context-sep-stop {
display: none !important;
}

/* コンテキストメニューから[リンクを送信][リンクURLをメールで送信]
[画像をメールで送信]を消す */
#context-sendlink, #context-sendpage, #context-sendimage {
display: none !important;
}

Take it easy!

2007年12月17日

NECが真面目にご乱心

「ローゼン」真紅が思い通りにしゃべります NECの音声合成実験サイト - ITmedia News

NEC様がご乱心.
音声合成エンジンを完璧にしたいという心意気は大変に評価するが,何故ローゼンか.
しかも,何故に真紅か.沢城みゆきか.
初音ミク然り,鏡音リン・レン然り.
声優の安売りというか,なんというか・・・どうなんでしょうね?

とりあえず,これは言える.

吃驚ローブ!回線細いよ!サーバ弱いよ!なにやってんの!

全然試せませんorz

  _  ∩
( ゚∀゚)彡 増強!増強!
 ⊂彡

2007年12月04日

僕のFirefox: Stylish編

無くてもきっと困らないけど,あった方がより便利.
今回はStylishによるカスタマイズ.
Sylishは再起動せずに反映・管理できるユーザースタイルシートのアドオン.
userChrome.cssやuserContent.cssと同じ機能を実現できます.


Stylish
071202_stylish.png


Ad Blocking FiltersetP
私はこれでAdblockを止めました.
本質的にAdblockとは対処方法が違いのだが,広告消しのためのフィルタ.
Adblockはコンテンツをブロックして,ダウンロードすらしないのに対して,
Stylishでの実現はあくまでもCSSとして表示をしないだけなので,ダウンロード自体は行われます.
そのため,広告が見えなければいい場合はStylishで,
広告が回線を圧迫するのを阻止したい場合はAdblock等を用いましょう.
しかしながら,Adblock PlusはFirefoxを遅くするようです.
モバイルユースを想定して,Adblockを入れておきつつ,無効にしておくのがいいのかも?

Gmail - display keyboard shortcuts
そもそも,Gmail上でキーボードショートカットは使っていませんでした.
それは簡単のことで,覚えられなかったからです.
これを使えば,簡単にキーボードショートカットで操作できます.
マウスなんて,極力使いたくないですよね.

PDF ファイルへのリンクにマークを付ける
PDFファイルへのリンクだった場合,リンクの後ろにPDFのアイコンを表示します.
このテクニックはWindowsじゃないと動かないみたいです.
Windows以外でも使える方法はこちらを参考にどうぞ
なお,userContent.cssに書くのが一般的のようですが,
Stylishに書いた場合は切替えを再起動せずに行える点が異なります.

mixi ad remove style
日本語でおk.
mixiの広告を強力にバッサリと消し去ります.

広告カット slashdot.jp
汎用広告カット
usercontent.css/広告カット - Mozilla Firefox まとめサイトを参考にして,必要そうなフィルタを導入します.
とりあえず/.だけ入れてみました.


関連:
userstyles.org
usercontent.css - Mozilla Firefox まとめサイト

僕のFirefox: Greasemonkey編

Firefoxを相当遅延させることで有名Greasemonkey
でも,便利すぎて離れられません.
そんな便利なGreasemonkeyスクリプトをご紹介.


・Greasemonkeyスクリプト
071202_gmscripts.png

Popup Alt
マウスオーバーで画像のALT属性を表示します.
それだけだけど,便利です.

HTTP-to-HTTPS redirector
HTTPでアクセスしても,強制的にHTTPSにリダイレクトしてくれちゃう.
Webメールを使うときは意識しましょう.特に,Gmail.

Google Button Search Now
「ウェブ全体から検索」「日本語のページを検索」をワンクリックで実行するだけ.
本当にそれだけ.メチャメチャ便利.

GoogleTagCloudMaker
Googleを超える検索エンジンはGoogleの上に作られる!
タグクラウドで絞り込み検索が簡単にできます.

AutoPagerize
神Greasemonkeyスクリプト.
Google検索ページやら,なんやらかんやら.
どんどんページをめくっていきます.
泣きそうなくらいに,便利です.

SBM Count With Google
Google検索結果の横にはてブ,Buzzurl,Livedoorクリップのブクマ数を表示します.
コメントアウトされてますが,del.icio.usも使えるようです.
個人的にははてブしか見てないので,他のは全部コメントアウトしてます.

Adds Site Search By Google
Googleによるサイト内検索(要するにsite:~を付けた検索)をしてくれる.
ページ内ではなく,サイト内である点が魅力的.
滅多に使わないけど,地味に便利.


関連:
Greasemonkey - Mozilla Firefox まとめサイト
Userscripts.org
GreaseMonkeyUserScripts - An Unnamed MoinMoin Wiki

2007年12月02日

僕のFirefox: アドオン編

来週の面接の準備やら,公聴会(予定)の準備やらで,精神的に追いつめられてます.
なので,現実から逃避するために,エントリー乱立中なヘタレブログ.
今日はオレ好みにカスタマイズされたFirefoxをご紹介します.

Mozilla Firefox, Portable Edition
ベースはPE版を使っています.
理由は環境のコピーが楽ちんだから.
自宅PCと研究室PCと学校共有ドライブと研究室ノートとUSBメモリで,同じ環境にしたい.
そうしたとき,普通のFirefoxだとダメじゃないですか.
そんな理由のPE版です.
思うにはね.
レジストリを使うWindowsの進化は間違いなんじゃないかって.
iniの方が良かったんじゃないかって.


・アドオン
071202_addon.png

Better Gmail
CustomizeGoogle
Googleをちょっと便利に利用するためのアドオン2種.
主には広告削除.
他にも添付ファイルがアイコンで表示されたり,HTTPS接続を強制したり.

Fasterfox
キャッシュやパイプラインを調整して,接続を高速化(最適化)します.
お行儀の悪い設定(ターボ)はダメですよ!

Firebug
Live HTTP Headers
Web Developer
Web開発系ツール群.
FirebugはFirefoxが遅くなると専らの話.
AjaxやJavascriptやHTMLやCSSをするときの必携ツールだけど,普段は使わないので,無効化してます.
Web Developerはコンテキストメニューからアクセスできるので,ツールバーはオフで.

FireFTP
Firefox上で動くFTPクライアント.
便利なような,そうでもないような?

Greasemonkey
Firefoxが遅くなると専らの話.
でも,依存症で止められません.
無効化にすらしてません.常に有効.
使いたいと思うGreasemonkeyスクリプトがないのであれば,削除した方がいいかもしれません.

Locationbar2
ドメイン強調やらURLデコードやら,便利な機能が満載.
071202_locationbar2.png
このように表示され,上位のディレクトリにも簡単アクセス!便利すぎ.

Stylish
説明には「見た目をカスタマイズ」と書いてあるが,そんなチャチなもんじゃねぇ.
見た目の変化が作業の効率化に与える影響は大きいですよ.

SwitchProxy Tool
研究室と学内とお出かけ先などなどのプロキシ切替え.
色々なプロキシの設定を覚えておくのは困難なので,こういうアドオンが便利.

Tab Mix Plus
今ひとつ好きになれないが,タブブラウザを強化してくれるアドオン.
オレの使い方ではSleipnirに激しく劣るため,なかなか移行が進みません><

userChrome.js
今回,これらのエントリーを起こそうと思った切っ掛けのアドオン.
Javascriptを用いて,Firefox自体をカスタマイズしてしまう強力なアドオン.
詳しくは別エントリーを投稿予定.

はてなブックマークカウンタ
見ているページがはてブでどれだけブクマされているかを表示します.
ついでに,表示領域をクリックすることで,ブクマ登録等もできます.
ブックマークレット要らずですね.
後継としてSBMカウンタというのがあるようです.
乗り換えた方がいいかな?

2007年11月23日

MTでEntityRefButtonが使えないときに読むエントリー

人力検索はてなを眺めてて,ハッ!とした.
ただ単に思い出しただけなのだが・・・

このブログがMovable Typeでできているのは,一目瞭然です.
そして,閲覧者には全く関係がないが,プラグインとして,EntityRefButtonを入れているのだ.
入れてはいるのだが,使えないのだ.
編集画面に"&"マークが表示されないのだ.
設置方法には全く問題が無く,「利用可」と表示されているのが,悩ましい.

で.それを思い出してしまったので,対策を探してみた.
探してみたのだが,これまた,結構な勢いで見つからない.
これは困った.
困り果てた.
困り果てた末に,見つけた.
参照元のサイトは消滅しているようで,リンクを張るべきかどうかも悩ましい.

あー.駄文が続いたので,さっさと結論.

BigPAPIと競合します

以上.
BigPAPIを無効にすることで,めでたくEntityRefButtonが使えるようになりました.
BigPAPIを無効にしてしまったが,どのプラグインのためにインストールしたのか・・・
思い出せない・・・悩ましい.

2007年11月15日

SleipnirでもAutoPagerize

はてブを読んでいて,ハッとした.
FireFoxの強力なGreasemonkeyの1つであるAutoPagerizeがSleipnirでも使えるというのだ!


早速探してみた.

必要なもの!
SeaHorse
UserAction Extension
・AutoPagerize

AutoPagerizeはリンクを張りづらい・・・
Sleipnir Unofficial Extensions Center簡易アップローダにありました.


使ってみた.

まぁ,FireFoxのそれとほとんど変わりません.
ただ,ダブルクリックで有効/無効を切り替えるには,
添付されているUserActionスクリプトのAutoPagerizeStateToggleをダブルクリックに割り当てる必要あり.
ふむ.ほぼFireFoxだ.


それにしても,FireFoxへの完全移行を目指しているんだが・・・
なかなかSleipnirの便利さから離れられないorz


参考:
フィギュアクリップ補足ブログ:SleipnirでAutoPagerizeとLDRizeを使ってみた

2007年10月30日

アマグラマーのすすめ

404 Blog Not Found:アマグラマーのすすめ - 目次

プログラミングを知らずしてコンピューターを使うのは、エッチを知らずして人生を語るのも同然だと。

404 Blog Not Found:アマグラマーのすすめ - はじめに

いきなり名言が飛び出して,素敵.
順次追加されていくらしく,今日現在で3つしかエントリーがない.
公開されている分を読んでみたが,これは期待せざるを得ない.

2007年10月29日

続・青森大の「携帯電話での出欠確認システム」

なんかMLが回ってきた.
以前に新聞記事を取り上げた青森大開発の「携帯電話による出欠確認システム」についての続報のようだ.
要約すると,

弘前大にも試験導入されます!記事が掲載されてます!見てみて!

ってことらしい.
では見てみようではないか.

大学新聞 - 連載 出欠確認の教育効果

学力向上のスタートは講義であり、最も重要なのも講義である。しかし、これらは学生が授業に出席することを前提とした方法であり、学生が授業に出てこなければ全く効果が無い。

出欠確認の教育効果(2)

その通りです.
授業に出てこない学生に,どうやって学ばせるのか.
「授業に来ないのは教員の指導が悪いからだ」とか無茶苦茶なことをいう人もいる.
なんで高校まではちゃんと学校に行ってたのに,大学になると突然サボり始めるのだろうか.
真面目に登校するのもサボるのも自由だが,単位が取れなくてキレてる連中は一体何なんだ.

高校生であれば学校を休むことを社会的“悪”に位置づけられ、何が何でも学校に行かされる。しかし、大学生が授業を少しぐらいサボっても社会は寛容である。社会は大学生を大人扱いし、「自主的に勉強する」ことを重んじてきた。なぜ、高校生と大学生ではこれほどまで社会の扱いが違うのであろうか。それは、1877年(明治10年)に唯一の大学として設立した東京大学以来、大学生が優秀だった時代が長く続いたからではなかろうか。

出欠確認の教育効果(2)

おお!そうなのか.
なんだかとってもよく調べられていて,読物としても参考になるではないか.
しかしながら,明治と平成を比べても・・・
どんだけ社会は適応能力も学習能力もないんですか.

良い授業を行うことで、学生の出席を促すのは当然であるが、それだけで現代の全学生の出席率を高めるのは不可能である。学校を休みがちな学生に「休んではいけない、遅刻してはいけない」と、真面目な学生に「いつも頑張ってるね」とメッセージを送るのが出欠確認である。

出欠確認の教育効果(2)

「良い授業を行うだけではダメ」というのは如何か.
「良い授業を行っても出席を(ゆるやかな)強制しなくてはならない」という主張だろうか.
ところで,休みがちな学生にメッセージが本当に伝わるのだろうか.
「うぜー」って思われるだけのような気がするのだが・・・
出欠確認にそれ程までの可能性が秘められているとは.

私は出欠確認により、大部分の学生の学力を向上させることができると考えている。授業は聞かないより聴いた方が良い、聴いた方が学力も向上するのは明らかである。これが出欠確認による教育改革であり、その効果である。しかし、改革の実現には、多大な努力と労力が必要であり、それが継続できないために挫折することが多い。事実、従来の方法では、正確に出欠確認を行うためには多くの時間が必要である。だから、出欠確認が教育改革につながらない。

出欠確認の教育効果(2)

論理展開が飛躍している.
出欠確認と学力向上の関係性が明確ではない.
何故,厳密に正確に出欠確認ができると,学生は授業を聞くのだろうか.
青森大はそうなるのかもしれないが,
東海大では登校してきてニコニコをみたり,youtubeをみたり,mixiをみたりしています.
あまつさえ,寝ていたり,喋ってたり,どっかいっちゃったり.
始業時に登校してきているからって,授業を聞いているとは限らない.
そりゃぁ確かに,始業時にいる学生と遅刻してくる学生とでは大違いだが,
出欠確認の正確さと授業への真面目さは関係がないと思うのだが,如何だろうか.

しかし、残念ながら学生達の反応は逆である。「せこい」、「こそく」などあまりよくない評価を受けることが多い。なぜなら、ほとんどの学生は「ズル」をしていないからだ。一部の「ズル」をする学生対策のために出欠カードに押印すれば、大部分の学生は「どうしてここまで疑われないといけない!」と思うからである。

出欠確認の教育効果(3)

よく分かっていらっしゃる.
正にその通りだ.
しかし,間違っている.
「せこい」「こそく」などと評価してくるのは「ズルをしていない」学生ではない.
「ズルをしている」学生である.
真面目な学生なら,どういう方法で出席を取られようと気にしないはずだ.
疑っているわけではない.それがルールなのだ.
ましてや,指定の出席カードにハンコが押されているだけで,学生にとっての面倒は何一つ無い.
面倒があるのは,サボろう,楽をしよう,うまくかいくぐろう,と考えるものだけだ.
さらに言えば,真面目に毎日登校してくる学生は1回くらいの遅刻や欠席は全く気にしない.
だって,そうでしょ?
出席をしに来てるんですか?勉強をしに来てるんですか?

七色の声を使う場合も、出欠カードに友人の名前を書く場合もどちらも教員がいる教室内で行なう行為である。「教員に隠れて」行なうのである。その行為は僅かながらでも「罪の意識」がある。

出欠確認の教育効果(3)

「罪の意識」なんて,ないないw
カンニングして見つかっても「やってません」と頑なに認めない.
言い訳をすることしか考えて無く,自分が悪くなければどうでもいいと思ってる.
あっ!もしかして,ウチの大学だけ??

読み取らせて教室に入るつもりだったが、読み取らせた直後にお腹が痛くなったら教室に入ることができない。おなかは痛くならなくとも、読み取らせた直後に急に用を思い出すこともあるだろう。この場合は、授業にいなくても罪ではない。

出欠確認の教育効果(3)

ものすごくよく分析されすぎてて大興奮.
でも,この例は適切ではない.
これはどんな出欠確認システムでも同じである.
ただ,出欠確認が授業開始後なのか開始前なのかという違いだけ.
小中高なら授業中にトイレに行くことは稀だが,大学生なら授業中だって平気でトイレに行く.
ズボンにRFIDでも埋め込んで,各座席にRFIDリーダを付けるとかしないと,この手の攻撃は防げない.
防ぐ必要があるかという気はするけど・・・

第二が「パソコンが使えない教員でも使える容易性」であった。

出欠確認の教育効果(3)

超重要なことです.
情報系学部の教授だって,怪しいですよ?


さて,ここからは技術的に理解できない点を挙げていく.

学生の携帯電話を活用することで、低コストで、代返を防止し、簡単、効率的に出欠確認ができるシステムを独自開発した。具体的には、
①学生に携帯電話で出席登録のWeb画面にログインさせ、
②教員がその場で思い付いた一桁の番号を学生に選択させ、
③教員の指示で全員同時に登録させるのである。

出欠確認の教育効果(2)

やはりこの出欠確認フェーズがよく分からない.
1桁の番号は適当にその場で決めるようだが,
システム側にはどうやってその番号が指定の番号であると示すのだろうか.
教員は携帯電話を操作しないという構成になっているようだが・・・

これは想像だが,記録されるデータはアクセスした時間と数字だけなのかな?
数字が教員の指定した番号かどうかはチェックしないのかもしれない.
後からPCで操作する際に,指示外の番号を入れた学生をはじくのかもしれない.
しかしながら,「1分以内に入力する」ではなく,「1分以内に入力が終わる」だと思われるので,
この推測が正しいなら,メールで来ていない学生に番号を伝えられそうだ.

また,以前のエントリーで問題にした代返防止に使われる「起立して名前を告げる」という話の答えを見つけた.
以前のエントリーで示した新聞記事では「メールで」となっていたが,解説サイトでは出席結果に表示されるようだ.
これなら,メール不着の問題は回避できますね.


まとめ
やっぱり分からない.
何故,出欠確認を厳密に行うと,学力が向上するのだろうか.
青森大では2005年4月から導入されているようですから,是非とも学力の推移を明らかにして欲しい.
結果が目に見えれば,眉唾のオレも納得するだろう.

ところで,大人数の授業には向かないが,授業開始直後に小テストを行うという古典的な手法はどうですか?
授業に出席しなくてはテストを受けられない(出席を促す),
テストの点は成績評価に反映されるので勉強をしっかりする(学力低下に歯止め),
そしてテストを採点し,成績簿に記す(出欠確認).
青森大の方式を導入しても小テストの採点結果入力の手間は変わりませんよね.
だったら,古典的な手法の方が圧倒的に教育的でよいと思うのですが,如何でしょうか.


関連:
Yahoo!ブログ - 青森大学 福永栄一
福永栄一 携帯電話での出欠確認
携帯電話を利用した出欠管理システム(大学・短期大学・専修学校殿向け)

2007年07月30日

DAI-HIPs DEMO 始動

DAI-HIPs DEMO

夏合宿の研究発表ネタのために,博論を放り出して注力したDAI-HIPs DEMOが日の当たる場所へ.
デモ公開しますので,皆様におかれましては,万難を排して実験にご協力下さい.
注意事項や安全性や個人情報の取り扱いや使い方については,デモページに色々書いておきました.

DAI-HIPsの正式な発表は8/4に山中湖で開催される辻・山本研究室合同夏合宿で行われます.
聴講は自由ではありません.あしからず.
学会発表の予定はありません.
好評だったら,考える.考えたくない.

2007年07月29日

東海大学学位申請書類(博士)のLaTeX版

学位申請書類がWordで作られている上に,全く美しくなかった.
TeXnicianとしてこれを許せなかったので,勝手にLaTeX版を作成した.

東海大学学位申請書類(博士)一式(課程博士,和文)

論文博士や英文が必要な人は,オフィシャルの資料を見ながら,勝手に作り替えてください.
そもそもこのLaTeX版も片手間で作っているので,でたらめな作りになっています.
見た目の美しさを重視してるので,中身のソースは美しくないです.
そこまで拘っている時間があれば,博論を書けと小一時間(ry

どうぞご自由にご利用下さい.
ただし,非公式ですし,無保証ですし,無責任ですから,
この書式で作られた書類を提出して突き返されたとしても,一切責任はとれません.
本来ならば,大学がLaTeX版を準備するべきである.

常識的に考えて,普通はLaTeXだろ.
Wordってなんなの?
それ.vineで動くの??

2007年07月09日

Microsoft謹製のネットワーク解析ツール

窓の杜 - 【NEWS】MS、ネットワーク解析ツール「Microsoft Network Monitor」の最新版v3.1を公開

こんな便利なツールがあるなんて,知らなかった.
ネットワークプロトコルアナライザといえば,Etherealが有名(今はWiresharkというらしい)であるが,
ご存じの方も多いと思うが,WinPcapのインストールが必須である.
Linux系のソフトをWindowsで使おうと思うと,何かと困難がつきものです.

そんな中,さすがはMicrosoft謹製ツールだけあって,WinPcapは必要なし.
楽ちん.

Microsoftのデベロッパツールって妙に便利ですよね.
さすがはWindowsを作ってるメーカだけはあると思った.

2007年07月04日

そんな書き方は嫌だ!

今日もDAIを作っていたのだが,ふとした壁にぶつかった.
条件分岐を行うのだが,その分岐先において,複数行のHTMLを出力したかった.
なんてことはないこと.

最初は,複数のechoで表示をしていたのだが,大変に美しくない.
次に,ヒアドキュメントを使ったのだが,今度は変数が展開されなかった.
そこで,エースプログラマ安政に相談したところ,彼はこのようなコードを書いた.
実装に関わる問題があるので,一部改変しているが,以下のコードである.

<?php if($rec = mysql_fetch_array( $, )){
?>
<h2>認証成功</h2><h2>ようこそ<?php echo $; ?>さん!</h2>
<form action=".php" method="POST">
<input type="hidden" name="" value="1">
<input type="submit" value="ログアウト">
</form>
<?php
}else{
?>
<h2>認証失敗</h2>
<h3><a href=".php">もう一度挑戦する</a></h3>
<?php } ?>

ウソだ!ウソだ!ウソだ!
こんなコードは嫌だ!
明らかにおかしいじゃないか?
おかしいよね?おかしいだろ?おかしいんだよ.

こんな書き方は断固拒否したい!
のだが,他にスマートな書き方が見つからなかったので,仕方なく採用.
このコードの書き方って,PHPの世界では日常なの??

2007年07月02日

DAI-HIPs絶賛開発中

昨日の今日でも,大絶賛開発中です.
もちろん,博論なんて手を付けてない.
理想的な現実逃避です.

基本的な部分は作成できたので,デモに耐えます.
ユーザ登録とパスワード変更部分ができていない.
DBの準備が全然できてない.
CSSも書いてない.
そもそもセッション管理が甘くて,簡単にハイジャックできる.
いや,そういう状態じゃないと,いちいち戻ったりなんだりが(言い訳)
公開するときはちゃんと作りますよ!
一応,認証だしね.
今のデモだと認証されるかされないかだけど,それ以外のどこにも影響を与えないけど.

そんな現在の開発環境はこんな感じ.
070702_dai-hips.png
Firefox様々です.

最近,メインブラウザをFirefoxにしようかどうしようか,本気で悩んでいる.
Windowsなのにあらゆるウィンドウをフルスクリーンでしか使わないオレとしては,
Sleipnirのカーソルを左端に持って行くと自動的に左サイドバーが開く機能が必須に近い.
Firefoxでこれができるならば,事実上Firefoxに完全移籍できる状態になっている.
っていうか,Greasemonkeyを含めて,Firefoxの方が明らかに高機能なんですが・・・

「こうすればいいよ!」っていうFirefox愛用者や信者や拡張員の方がおられましたら,教えてくだしあ><

Firebugがすごすぎる件

結局,昨日のアレで,Firebugが動かなくて困りすぎたので,新しいFFPEを入れた.
というわけで,Firebug専用のFFPEを入れた次第である.
このFirebugがすごすぎて,便利すぎる件.

JavaScriptデバッガとしてだけではなく,色々とすごすぎる.
ルーラやレイアウトビュが搭載されており,デザインを視覚的に計測できる!
HTML/CSS/スクリプト/DOMに加えて,接続状況も確認できる!
ファイルのサイズに転送時間にパラメータにヘッダにレスポンスも個別に確認できる!
スクリプトデバッガも強力で,ブレイクポイントが設定できるし,各変数を監視することができる!

便利すぎて,昨日のトラブルは一瞬で解決した.鼻血ブーだ.
これにWeb Developerlivehttpheadersを入れておけば,困らなさそう.
すごいぞ!Firefox!いけいけ!Firebug!
生産性が1.4倍に向上した!

関連記事:
【レビュー】これは凄い! Ajax最強のデバッグツール"FireBug 1.0"リリース (1) デベロッパのアツい視線を受ける実力派エクステンション | エンタープライズ | マイコミジャーナル
IT戦記 - FireBug の新しいバージョンが便利すぎる件について

DAI-HIPs作ってます

基本アルゴリズムはだいぶ前に完成していたのだが,色々と忙しくて・・・
先週,エースプログラマ安政がプロトモデルを作ってくれたので,現在鋭意作成中.
PHPとsessionでやり取りする部分は出来ているので,あとはインタフェイス.
JavaScriptで頑張って書いてます.

それにしても,スクリプト系ってデバッグが面倒ですねぇ・・・
というか,JavaScriptのデバッグって,みんなはどうしてるの??
Firebugはエラーで動かないのですよ.FireFoxが落ちちゃう.

ボスケテ!

2007年06月18日

ヤフーが形態素解析APIを公開

ヤフー、文章を解析できるAPI「日本語形態素解析Webサービス」を公開 - CNET Japan

ふむふむ.ヤフーが開発した形態素解析エンジン「Web MA」がそのまま利用できるようだ.
これは便利そうだ.
24時間で5万リクエスト(max 100KB/リクエスト)だそうだ.
現実的に利用できそうな気がする.

PHPとかPerlとかのスクリプトを一生懸命書かなくても,
マッシュアップだけで作れるものの可能性が広がってきましたね.

タグクラウドなアレに使えませんかね?>kakku

2007年06月17日

辻研の研究テーマ

万が一にも誤解してる方がいると,オレではない誰かが大変に困ると思うので,
確認の意味を込めて,強調しておきます.

透過ディスプレイもARも辻研の研究テーマには存在しません.
あれは研究の域に達するようなものではなく,本流の研究を促進するための息抜きです.
いうなれば,サイボウズの50%ルールのようなものです.
オレにとっては,息抜きの方が圧倒的に本流の様相を呈していますが・・・

オレは研究室では研究を極力しないように心がけています.
そのため,研究を進めるときは,自宅にこもるわけです.
かといって,研究室に行かないわけでもなく,週5日は在室しています.
その時間は何をやっているか?
息抜きで趣味の研究をしていたり,最新のネタに乗っかってたり,
他の研究室生とコラボレーションするために,トークしてたり・・・
研究室には色んな学生がいますから,知識の吸収ができるし,
新しい発想の手がかりが見つかるかもしれないのです.

透過ディスプレイやARを真面目に研究してると思われると,ちょっと困ります.
研究というよりは,遊んでる感じです.
でも,遊んでるというレベルでは有り得ませんが.

でも,遊びから研究に発展することもあります.
大会優秀賞を受賞した吉田君のタグクラウドは,最初は遊びだった.
Web2.0って言ってみたかった.集合知って言ってみたかった.
ただ,それだけ.
それを面白可笑しく説得力がありそうな形にしたのが,あれのプロトモデル.
あんなのは,とてもじゃないが,研究としては使えなかった.
それを吉田君の努力で研究レベルに昇華させたのだ.

まとめ.
透過ディスプレイもARも研究としては扱われていません.
将来的に研究ベースに昇格するかもしれませんが,それはやる人次第です.
研究しかやらない研究室なんて,窒息してしまうよ.
オレは耐えられない.

2007年06月08日

ARToolKitでサッチーを召喚

「攻殻機動隊」「電脳コイル」の世界を実現! - ARToolKitを使った拡張現実感プログラミング

またもや,平然とはてブにインスパイアされてみる.
ARToolKitを用いて,今流行のサッチーを召喚してみました.

ちょっと導入に躓いたので,うまくいった方法を書きます.

SourceForgeから必要なファイルをダウンロードします.
まずは指示通り

ARToolKit-2.72.1.tgz
DSVL-0.0.8b.zip
OpenVRML-0.14.3-win32.zip
【1】 ファイルの解凍とコピー
  1. ダウンロードした3つのファイルをそれぞれ解凍してください. 解凍すると「ARToolKit」「DSVL」「OpenVRML」という3つのフォルダができます.
  2. 「ARToolKit」を「C:\Program Files\」に移してください.
  3. 「ARToolKit」の中に「DSVL」と「OpenVRML」を移してください.
  4. 以下の3つのDLLファイルを「ARToolkit\bin\」にコピーしてください.
    • ARToolKit\DSVL\bin\DSVL.dll
    • ARToolKit\DSVL\bin\DSVLd.dll
    • ARToolKit\OpenVRML\bin\js32.dll
  5. 「ARToolKit\Configure.win32.bat」をダブルクリックして実行してください.

で.このままコンパイルを始めるとうまくいかないので,先にOpenGLを入れます.
これは指示通り.
次に,ライブラリのパスを先に通すような気がします.

次にライブラリのパスを通します.これは開発環境にライブラリの場所を教える作業です.
VisualC++のメニューを「ツール>オプション」とたどり,出てきたダイアログの「ディレクトリ」タブをクリックします.
まず「表示するディレクトリ」を「インクルードファイル」にした状態で,下の空白の横にある「...」ボタンをクリックして

   C:\PROGRAM FILES\ARTOOLKIT\INCLUDE

を追加してください.
次に「表示するディレクトリ」を「ライブラリファイル」にした状態で,同様にして

   C:\PROGRAM FILES\ARTOOLKIT\LIB

を追加してください.できたらOKボタンを押して終わりです.

その後に,バッチビルドでokだと思います.
少なくとも,研究室ではこの手順でうまくいきました.

あとはめくるめくARの世界に・・・
といきたいところですが,カメラの性能が悪いせいか,うまくサッチーが出ません.
至近距離だと上手く表示されるんだけど,全身が表示されるように引きで撮ると上手くいかない.
キャリブレーションなどを行って,試行錯誤します.

2007年05月30日

WordPressはじめました

はてブにインスパイアされてみたい.
研究室サーバの資源をふんだんに使えるのは,研究室在籍中だけ.
サーバを無茶苦茶に弄り倒して遊べるのも,研究室在籍中だけ.
何事も経験.
というわけで,WordPressを導入してみました.

ヘタレ系DのWordPress

テンプレートはデフォルトのまま.
いくつかプラグインを放り込んでみた.
ソフトウェアの性格上,パーミションを緩くするか,apacheに権限を与えておく必要があるみたい.
とりあえず,666でテスト運用.
細かいことは後で考える.

ちょっとさわってみてわかったいいところ
1. 静的なページも作成・管理できる
自己紹介や業績リストを作るときに便利ですね.

2. mod_rewriteバリバリ
最近,個人的にはまってるだけです.

3. W3C準拠
100点だったり,validだったり,大好き.

4. アンチスパム
標準でアンチスパム機能が搭載されているらしい.


ちょっとさわってみてきづいたいやなところ
管理画面の動きが緩慢.
PHPだから,APCが有効になっているはずなんだが・・・
あとは慣れの問題かも知れないから,しばし様子見.


結論
Movable TypeよりもWordPressの方が好みに合っています.

2007年05月22日

フォルダ構造の限界

努力をしてきたが,ダメなものはダメだ.
新しい世界を知ってしまうと,どうしても古い世界には戻れない.

フォルダ構造による分類は限界である.

論文を書く関係上,論文や資料を大量に保存することになる.
関連性の高いものは集中的に管理できるように,同じフォルダに集めている.
さらに,フォルダ名には日付情報を入れてある.時系列管理のために.

今,あるファイルをどこかに保存しようと考えた.
この論文は信学技法で発表されたもので,PKCやACといったキーワードを持つ.
さて,PC内のフォルダには,論文集・研究会報告・PKI・属性情報・暗号・セキュリティ・SSOといったフォルダがある.
さぁ.この論文をどこに保存しようか?
私は研究会報告とPKIと属性情報とセキュリティのフォルダに置きたいと考えている.
それはどのようにして実現するか.

1. 全てのフォルダにコピーを置く
2. どこかのフォルダに置き,ハードリンクを張る

1の方法では,整合性が保てない.
論文の例では上手く説明できないが,情報がアップデートされた場合,
全てのフォルダのファイルを置き換えて回らなくてはならない.非現実的.
2の方法はとても上手くいくが,ハードリンクを張る手間があるし,
どこに実体を置くのかという悩みがつきまとう.

タギングという言葉をご存じだろうか.
現在のご時世,聞いたことくらいはあるだろう.
Web2.0全盛期において,一世を風靡したフォークソノミーがそれである.
Gmailはてなブックマークで用いられている.

私とタギングの出会いはGmailになるわけだが,最初はその便利さがよく分からなかった.
しかし,その便利さは数日としないうちに明らかとなった.
Gmailはタギングを採用しているので,フォルダという概念がない.
全てのメールがフラットな状態で,タグが付与される.
必要に応じて,タグからのメール抽出が可能である.
例えば「研究室」タグを選べば,研究室関係のメールが抽出される.
例えば「国際会議」タグを選べば,国際会議関係のメールが抽出される.

ボスと国際会議の投稿についてのやりとりをしたとしよう.
このメールは「研究室」に分類するのか?「国際会議」に分類するのか?
従来のフォルダ構造であれば,悩み所であるが,
タギングなら,関係する全てのタグを付与すればいい.
考えるんじゃない.タグを付与するんだ!

ほぼ同様のことが全文検索によって実現されるが,それはなかなか難しい.
何故か.
対象が文章であるとは限らないからだ.
例えば,画像.例えば,音声.例えば,映像.
ファイル名にタグを付けておけばいいじゃないかという反論が出そうだ.
Windowsの場合,半角255文字まで大丈夫な設計らしいが,そうでもないらしい.
どっちにしても,ファイル名が長くなるのは美しくないし,一覧性が悪い.

で.ローカルのファイルに対して,タギングを行うソフトがあるようだ.
SPEED TAGというソフトなのだが,個人ライセンスは無償だ.
・・・・・・まだ試してないけど.

Windowsが標準でこの機能を提供してくれればいいのだが・・・
WinFSってのがそれだったような気がするけど,断念しちゃったよね.
難しいのかなぁ.
需要は高そうな気がするけど.

2007年05月11日

svchost.exeがCPUを100%食べ尽くす件

各所で結構騒がれていた話題.
Windows Updateを実行すると,svchost.exeがCPUを100%食べ尽くす件.
我が家では,ノートPCがその症状に見舞われております.
いぇ.私物ではなく,学校のですが.が.が.
合わせて,同じ環境の研究室PCも該当しています.
WindowsXP+Office2003であることが共通.
悪意に満ち溢れている.

まず対策として,KB927891を行ったが,ダメ.
諦めて,ノート君は自動更新をオフにしておいて,手動更新することに.
そして,ついに今日,マイクロソフトから公式情報が!
KB937383として,完全修正方法が!

つまり,KB927891+WUA3.0で解消するらしい.
今まではKB927891だけだったので,うまく直らなかったようだ.
そこで,速攻でWUA3.0を入れてみました!
完全に直りました.
快適なMicrosoft Update生活に戻れました!

それにしても,月例更新の後に情報公開する辺りが,いやらしい.
困ったちゃんですねっ!


関連情報:
Shngの日記 [Windows][WindowsUpdate] Svchost.exe プロセスが100%のままになる不具合が解消できる
トラブログ | svchost.exe (cpu使用率 100%) まとめ
マイクロソフト、Windows Updateが終了しない場合の対応策を発表 - GIGAZINE
セキュリティホール memo - KB937383 - Microsoft Update または Windows Update が終了しない


200705171921追記:
研究室のPCが軒並み該当している事実を知りました.
みんな!自己申告して!
というわけで,修正を施していたんですが,ここで注意.
修正を当てる前に,あらかじめ症状がでないようにしておいた方が良いです.
症状が出る状況で修正を当てると,修正を当てている最中にCPUが100%喰われます.
トラブログ | svchost.exe (cpu使用率 100%) まとめを参考に,
Microsoft UpdateからWindows Updateにしておきましょう.


200705232350追記:
Windows Updateの不具合に関する更新プログラムが自動配布に
やっと収束でしょうか.

2007年04月22日

RFCを印刷する方法

きっとみんな読んでるRFC
RFCのtxtファイルには制御文字の改ページFF(0x0c)が入っているのだ.
だから,制御文字を解釈できるソフトを使うことで,適切に印刷ができるのだ.

ご存じのように,私の愛用しているテキストエディタはEmEditorなのだが,
こいつは残念なことに制御文字を解釈してくれない.
解釈させる方法があるのかもしれないが,知らない.
あるなら教えてっ!

で.制御文字を解釈してくれるテキストエディタがWindowsには標準装備なんです.
そうです!ワードパッドです!

しかしながら,日本語環境のワードパッドでは,欧文仕様のRFCは上手く印刷できません.
そこで,フォントの調整をしましょう.
以下のように設定すると,快適に印刷できると思います.

フォント:Courier New
フォントサイズ:9pt

enjoy!

2007年03月18日

UTF-8 / UTF-8N

UTF-8には,BOMありとBOMなしの2種類がある.
BOMがなんなのかと訊かれると,困るから,訊かないでくれ.
そんで,BOMありのことを「UTF-8」,BOMなしを「UTF-8N」と呼ぶこともある.
既に,「UTF-8」という語に二重の意味がある・・・

最近知ったんだけど,Web系で「UTF-8」と書いてあったら,
それは「BOMなしUTF-8」のことを指すらしい.
暗黙の了解らしい.
だったら,UTF-8Nって書いてくれよ・・・
「UTF-8」という語に三重の意味が発生したのでありました.ちゃんちゃん.

2007年03月13日

USBで環境を持ち歩く方法

USBで環境を持ち歩く方法のまとめです.
あくまでリンクベイティングです(ウソ

・USBメモリ
価格の下落が早い昨今,1GB以上をお勧めします.
しかしながら,安かれ悪かれでは,安物買いの銭失いです.
ReadyBoost対応のものがいいと思います.

PStart日本語化
解説記事を読んでもらえればわかると思いますが,ランチャです.
様々な環境で使うUSBメモリに,固定のドライブレターが割振られることはありません.
そのため,ドライブレターを必要とするようなパラメータを渡すときには,このPStartが大活躍してくれます.
また,単純にランチャとしても便利です.
タスクトレイに格納できるし,オートランのメニューに表示させることも可能.
さらに,このソフトの起動時や終了時をトリガーにして,指定のアプリケーションを実行させることができる.
ぇ?それの何が便利だって??
それはこの後に紹介するソフトをしればいいのに!
解説記事:
USBメモリを活用しよう!(PStart) - パソコンを活用しよう!
USBメモリを活用しよう!(PStart-2) - パソコンを活用しよう!
Going My Way: USBドライブで使うPortable Skypeの設定方法

UnplugDrive Portable
しればいいのに!なアプリケーション.
これを実行すると,「ハードウェアの安全な取り外し」を実行できるのだ.
もうわかりますよね?
このアプリケーションをPStartの終了時トリガーにセットしておけば・・・
PStartはオートランで起動して,タスクトレイに常駐し,作業終了でPStartを閉じれば・・・
あああ!便利すぎる!!!
参考記事:PStartで目的のソフトを一発起動:USBメモリー徹底活用術

Firefox Portable
言うこと無し.記事を読んで

UTF-8 TeraTerm Pro with TTSSH2
SSHで研究室サーバに入るので,必須です.
PuTTYとかでもいいんですけど,TTPROに慣れてるんで・・・

PDIC+英辞郎
英語辞書の必携装備.オフライン最強.

Foxit Reader
軽量のPDFビュア.
Adobe Readerが万が一にも入ってないという場合を考えて.
ZIP版を使えば,インストール不要だよ.

Skype
Skypeを持ち歩いちゃうぞ!
USBフォンを持ち歩けば,どこでも国際通話可能です.最強.
海外旅行の強い味方です.
参考記事:Going My Way: USBドライブで使うPortable Skypeの設定方法

IrfanView
画像ビュア.一応.

Media Player Classic
VLC Media Player Portableの方がいいかもしれないけど,どっちでもいいよね.

BZ
Stirling
バイナリエディタ.何かと便利ですよ.

Rekisa
差分表示ソフト.もう離れられない.

Archive Decoder
なんでも良かったんだけど,解凍ソフト.
圧縮ソフトも持ち歩いた方がいいのかなぁ・・・

Schwertkreuz
極めつけはこれ.レジストリを利用するアプリを持ち歩くためのアプリ.
この中にはEmEditorをフルカスタマイズした自宅仕様のものを入れてあります.
紹介記事:窓の杜 - 【NEWS】レジストリを使うソフトをUSBメモリで持ち運べるようにする「Schwertkreuz」


私のUSBメモリはこんな感じです.
アプリだけで300MBくらい使ってますが,環境が持ち出せることの方が重要です.

これ以外に,Web開発者だったら,XAMPP Liteを入れておいたらどうでしょうか?
さぁ!みんなも自分のUSBメモリをレッツ・カスタマイズ!

ブラウザを持ち歩けるPortable Firefox

IEがセキュリティ的に許容できるのは自宅までだよね!
なんて言ってみるテスト.

そんなわけで,持ち歩けるブラウザ環境を紹介してみます.
あくまでリンクベイティングです(ウソ

Portable Firefox
IEはOSに密着しすぎです.持ち歩けません(できるのかもしれないけどさ)
というわけで,シェアをグングン伸ばしてるFirefoxの出番ですね.
通常版ではなくPortableを利用するのが通.
環境を持ち歩けることに意味があるのです.


このFirefoxに入れてるアドオンなどをご紹介.

Adblock
Adblock Filterset.G Updater
広告遮断は快適なブラウジングに必要です.
ポップアップとか,ウザ過ぎるの極み.
広告を出すなら,Webページと調和してください.

All-in-One Gestures
マウスでグリグリ操作しちゃうぞ!
一度使い始めると,なかなか手放せません.
ノートのタッチパッドでは操作しづらいですね.仕方がない.

Fasterfox
加速系ツール.
一部お行儀が悪い設定がありますので,ご利用は計画的に.

Forecastfox
天気予報が表示されます.それだけ.

Greasemonkey
あれば便利.無くても・・・まぁ困らないかな?
キラースクリプトに出会ったことがありません><

Live HTTP Headers
HTTPヘッダが表示できます.
サーバのチェックやWeb構築の時には役立ちますよ~♪

SwitchProxy Tool
プロキシ切替えツール.
学校とモバイルとプロキシ無しを簡単に切替えますよ~♪

Tab Mix Plus
タブの機能拡張.必須です.

Web Developer
Web構築時に役立ちます.
が.それ以外でも大活躍!
モバイルの低速環境の時に,画像全カットが可能です.
色々と役に立ちます.はい.


最後に,利用しているGreasemonkeyスクリプトを.

G+?B
Googleの検索結果に,はてなブックマークの件数が表示されます.
あれば便利.

2ch URL Modify
ttpをhttpに置き換えてくれる.
2chだけなら専ブラを使えば使えばいいが,
ttp置きは2ch以外でも使われることがあるので,さりげなく便利.

Popup Alt
マウスオーバーで画像のALTを表示してくれる.それだけ.

GoogleTagCloudMaker
Googleの検索結果に基づいたタグクラウドを表示してくれる.
絞り込みをするときに大活躍.
これは必携かな.

HTTP-to-HTTPS redirector
何気にHTTPで接続しちゃっても,HTTPSにリダイレクトしてくれます.
Gmailで大活躍♪必携.

2007年03月11日

初めてのActionScript 3.0

なんか流行ってるらしいので,乗っかってみた.
サンプルを見ながら,時刻表示を行うプログラムを書いてみました.

うーん.AS3.明らかにFlash.
プログラムをバリバリ書けるんだったら,Flashを買う必要がないですね.
これで何か面白いものが作れないかなぁ・・・

参考:
ActionScript 3.0メモ

2007年02月27日

タグクラウドなアーカイブ

タグクラウドを用いた注目情報提示方式

思い立ったから,すぐにやる.スピードは重要.
吉田君のタグクラウドを夜毎23:59に保存するようにした.
ここにアーカイブされていくはず
200702272333現在では,まだアーカイブがありませんのだ!

何故そんなことをしたかというと・・・
逐次情報が書き換わっていくので,網羅性調査をするときに,過去のデータが無いと困ると思ったのだ.
保存しておけば,何月何日はどんな表示だったかが,すぐに確認できる.
アーカイブしておけば,あとは情報を色々と加工できるかもしれない.
前後1日を含む3日間を並べて表示してみるとか,スライダーで時間を遡る的ajaxとか.
オレはやらないけどw

ちょっと欲を言うならば,吉田システムを改変したい.
最新のRSS情報は何月何日何時何分に取得されたのか.
現在のタグクラウドは何月何日何時何分に出力されたのか.
なんてことが表示されると,嬉しいなって思った.
思っただけ.やれなんて言ってないよ?にやにや.

2007年02月13日

東海大学紀要LaTeXスタイルファイル

なにやら,東海大学紀要のLaTeXスタイルファイルを探している方がおられるようだ.
物好きな人だ・・・
ワードのテンプレートが準備されているのに,敢えて茨の道を選ぶとは.
茨の道を選ぶときは,自分でどうにかするものです.

そんなこといっても仕方がないので,必要でしたら,持って行ってください.

東海大学紀要 LaTeXスタイルファイル

完全にアンオフィシャルだし,どうにかなっても知りません.
必要なパッケージは以下です.
適切に導入してください.

pLaTeX2e 新ドキュメントクラス(jsarticle)
geometry.sty
balance.sty

2007年02月02日

IPSJ69でタグクラウドなアプローチを発表します

IPSJ69 6S

告知です.
3月6日~8日に早稲田大学大久保キャンパスで行われる第69回情報処理学会全国大会で,
タグクラウドなアプローチを発表します.

3月8日 14:30~17:00 学生セッション 6S ユーザビリティ

登壇者は私ではなく,学部生の吉田君です.
ご興味のある方は,是非とも会場へ足を運んでください♪
なお,私も会場にいますので,ファンの方は声をかけてください(いるのか?w)

2007年01月12日

読みにくいC

Geekなぺーじ:ひたすら読みにくいCコード

読みにくい.
だが,読みにくいだけではないから,面白い.
一部には,読みにくいとかいう次元ではないものも混在しているが・・・

こういう系統の話をするならば,Binary2.0 Conference 2006のHello, binary world!も見逃せない.
大爆笑ですね.
偉そうなmain関数を蹂躙しちゃいましょう!

2007年01月11日

楽天グリーティングはダメ

大憤慨ですよ.
楽天グリーティングは日本最大級のグリーティングカードサービスを名乗っている割には,ずさんです.
どのようにずさんなのかを実例を挙げて,説明しましょう.

その前に,歴史的背景を説明しましょう.
何故,私が楽天グリーティングを利用しているかというところから説明しよう.
私はYnotグリーティングカードを利用していたのだが,
2006年4月4日から楽天グリーティングに生まれ変わったのだ.
生まれ変わったと言えば聞こえは良いが,要するに乗っ取られたわけだね.
乗っ取られたとしても,名前が変るだけなら良かったんだが・・・

グリーティングメールなんて,滅多に使わないんです.
滅多に使わないどころか,年に1回だけです.
そうです.年賀メールです.
特に,携帯電話に対する送信が主です.
しかしながら,携帯メールの場合,ドメイン指定受信によって,送れない場合があります.
仕方がありません.
でも,それに対する「よくある質問」がおかしいんです.

相手の方にメールの指定受信の設定を『ドメイン指定受信』にしていただき、『greeting.rakuten.co.jp 』をドメインに追加登録していただければ、次回よりグリーティングカードを受け取っていただくことができます。

グリーティングメールを送ろうとしてることが,バレバレじゃんw
まぁ.これは他の業者でも同じでしょう.
いやいや.指摘したいのは,これじゃない.

今から説明する事象は,RFC違反とかではない.
あくまで,サーバの設定が不十分なだけであり,素人の所行と思われる.
さぁ.今こそ,暴露しよう.

ハイフンで始まるメールアドレスに対して,メール送信ができない.

これはpostfixでは有名なトラブルであり,対処方法も簡単である.
しかしながら,楽天グリーティングのメールヘッダを見ると,以下の文字列を確認できる.

Received: (from ynot@localhost) by wgrt03c.db.rakuten.co.jp (8.13.4/8.13.4/Submit) id l056UhLl020225;

これより,楽天のMTAはpostfixではなく,sendmailであると推測できる.
では,sendmailでハイフン問題はどのように解決されるのか?
簡単なことですよ.ちょっと調べれば,解決方法はすぐに見つかるんです.
簡単ですよね?

では,何故今まで対処されていなかったのか.
間違いなく,エラーが残っているはずなのにだ.
それは簡単ですよ.
楽天はそういう企業だってことですね.誠意がない.
エラーが出てても,黙殺.っていうか,読む能力がない?
楽天の中の人「どうせ存在しないメールアドレスなんだろ?」
きっと,管理者は素人ですね.

何故こんな問題が発生するのか.
そうです.
携帯のメールアドレスに指定できるからなんです.
少なくとも,auでは可能です.
だって,オレのメアドも先頭がハイフンだしw

auの説明にあるように,ハイフン入りは迷惑メール対策に,多大な効果をもたらします.
オレの携帯に迷惑メールが来たことは,1度もありません.
1度もないって,かなりすごいことだと思いませんか?
それだけ,このメールアドレスは特別視されているんです.
恐らく,スパム業者はオプションの設定をちゃんとしていないんだろう.

で.話を戻すと.
要するに,少なくともauはこのような特殊なメールアドレスを利用できるわけであり,
それはRFC違反ではありません.
いや,RFC違反になるメールアドレスも取得可能ですが・・・
RFC違反のメールアドレスの存在は,携帯キャリアが悪いとしても,
ハイフンで始まるメールアドレスはRFC違反ではありません.
よって,そういったメールアドレスをサポートしないのは,楽天の怠慢である.
「日本最大級のグリーティングカードサービス」が聞いて呆れるぜ!

この件に関して,対処する気があるのか,
そもそも問題自体を把握しているのかを問い合わせてみた.
それに対する返信が素晴らしくテンプレ.

お客様より頂いた問合せに関しては、
弊社にてしっかりと受け止め、今後より良いサービスを目指していくための
材料とさせて頂きたいと思います。
今すぐお役に立てず、本当に申し訳ございません。

もう使いません.

2006年12月28日

情報処理学会全国大会LaTeXスタイルファイル

ヘタレ系DのBlog: 情報処理学会全国大会TeXスタイル

情報処理学会全国大会向けのLaTeXスタイルファイルを公開することにします.

情報処理学会全国大会向けLaTeXスタイルファイルをダウンロード

使い方はサンプルを見ていただければわかると思います.
でたらめな作りでごめんなさい.

関連:
同志社大学・大学院論文用スタイルファイル

2006年12月26日

TMTOWTDI

TMTOWTDIの謎を探る(調査報告:単純さと複雑さの関係とは?)

There's more than one way to do it.
「やり方はひとつではない」

Perlで使われるスローガン.

2006年12月24日

Excelで先頭に0が入ったCSVを取り込む方法

教えて! 年賀状&パソコンのおてほん

そうです.そうです.
この時期に際した話題ですね.

普通にCSVをエクセルで開くと,電話番号の先頭の"0"が消えてしまうのです.
エクセルは数字の並びを数値列として扱うので,先頭の"0"は無意味なんですね.
だから,消して下さってるわけですが,それは数値じゃねぇぇ!!

というわけで,それをうまくやる方法.
以下,引用.

データにゼロが入っているのでしたら、[データ]-[外部データの取り込み]-[データの取り込み]と進み、読み込むCSVファイルを指定します。 元のデータの形式は、カンマでしたらそのまま次に進み、カンマやスペース区切りを選択し、次へ進みます。 そこでもう一度、セパレータ記号を正しく選択し、データのプレビューでも正しく区切られていることを確認します。 次に進み、ゼロを表示したいフィールドをクリックして選択し、右上の列のデータ形式を文字列に変更します。 規定値では標準の形式になっているので数値として認識され、無意味なゼロが削除されてしまいます。 住所録などを読み込んだ場合など、番地をハイフォンでつないであったりすると日付になってしまうことがありますが、これも文字列とすればそのまま入ります。 逆に日付を標準で読み込むと、通産日として表示されてしまいますので、その場合は、データ形式を日付とすればOKです。

完璧すぎ.
これで年賀メールシーズンに際した一斉送信にもバッチリ対応ですねっ!

と,ここまで書いたけど,メールを送るだけだったら,電話番号いらないじゃんorz

2006年11月28日

プログラマがC言語を学ぶ理由

404 Blog Not Found:プログラマがC言語を学ぶべきたった一つの理由
Geekなぺーじ:プログラマがC言語を学ぶべき10の理由

この「○○が××な10の理由」ってやつは,常々考えさせられる.
「自分が存在しても良い10の理由」とか自問自答したら,なんだか悲しい結果が出てきそう.

閑話休題.
プログラマじゃないし,プログラマ志望でもないから,よくわからない.

C言語がわかれば、あなた用のプログラミング言語を書くことが出来るから

ってのは,明らかにプログラマ視点ですね.
僕たちのような,自らのアルゴリズムが正しいか検証するためにプログラムを叩く人間とは違います.
僕らがプログラムを使う理由は検証目的なので,
行おうとしているプログラムを最も高効率に書くことができる言語を選ぶだけです.

といいつつも,やっぱり習うのはC言語なので,Cで書くことが多いわけですが・・・
論文に載せるときはpascalで書くし,セキュリティ系で多倍長整数が必要になればjavaを使うし,
手っ取り早くGUIが欲しければVBで書いちゃったり,web系ならperlやPHPとかね.
得手不得手を把握して,適切な言語を選んで使っちゃう僕らは,プログラマではないよね.

情メは一応プログラマを育てる意識もあるような学科なので,
何かの参考になればと思いながら,エントリ投稿.

2006年11月08日

検索班のCSVで思ったこと

「それでいいよ」って言ったような気がするけど,
今さらながらに気になって気になって寝れないから,書く.

CSVで出力する際に,
出力したい情報に続けて,カンマを出力する.
例えば,

fprintf(fout,"%lf,",a[i][j]);

のような感じ.
必要に応じて,適宜改行コードを出力する.

出てくるCSVは以下のようなイメージ.


1,
2,3,
4,5,6,
7,8,9,10,

ここで注意すべきは,行末に","が余計に付与されていること.

CSVから入力する際は,ちょっとした工夫を施すことで,
これを問題ないものにすることができる.

まずは,fgetsで行単位で取得する.
取得したデータをsscanfで変数に格納する.
行単位で扱うので,行末の","を無視して扱えばいい.

このようにプロトコルを定めることで,
入力・出力インタフェイスの作成にかかる労力を減らせる.
というか,よくわからん文字列処理系関数が必要なくなる.
個人的に文字列処理は使いたくないし,
元々は数値情報なんだから,文字情報にしたくない.


関連情報:
scanf,fscanfは使わず fgets,sscanfのペアを使う
C言語プログラミングの基礎訓練
Programming Language I
というか.
fgets sscanf - Google 検索

2006年10月11日

謎の水平グラデバグを解明

本日のアドプロで発生した謎の水平グラデバグ.
言葉で説明するのは難しいので,画像を見ていただきたい.
before_ga.png
これは期待通りの出力ではありません.
左側が黒,右側が白の水平グラデーションが出力されるはずでした.
この画像は256*256のpngになってますが,
実際は2048*2048のbmpです.
その辺は都合ですので,適当に解釈してください.本質じゃない.

学校ではツール類が充実してないので,細かい検証ができなかったので,
自宅に帰ってから,バイナリエディタで調査してみた.
それがこれ.
before_bi.png
もうね.明らかにおかしいでしょ.
水平256ピクセルだから,同じ数値が3つ並ぶはずなのに,
0D0A 0D0A 0D0A
って・・・

これを見た瞬間.理解しました.
0AはLF(改行)で,0DはCR(復帰)です.
つまり,0Aを出力しようとしたので,ご丁寧にもCRLFにしてくれたんです.

もうわかりますね.
出力モードがバイナリではなく,アスキーになってるんです.

原因箇所は以下の1文.
if(0 == (fp=fopen(file_name,"w")))
これをバイナリモードに変更します.
if(0 == (fp=fopen(file_name,"wb")))

バイナリエディタで確認.
after_bi.png
確かに,0Aが0D0Aに変換されていません.

ビュワで確認.
after_ga.png
ktkr!


結論:
freadやfwriteを使うときは,バイナリモードに注意しよう!

2006年10月05日

タグクラウドなアプローチ その3

カエルチュウイホウ - perl5.8で日本語を扱うこと

やっと理解した.
原文ママ引用.

で後者の正規表現のマッチがよくわからんという部分は、mecabのパース$m->parseToNode($word)でutf8フラグがたたないことが原因だった。わかってみればそりゃそうだと思えるが。

だから,decodeすればいいんだ.
ということは?
TermExtractが動かないのも同じ原因かな?
眠いから今日(日付は替わっているが)はもうやらないけど・・・

文字コードをこんなに真面目に調べたの・・・きっと初めて.
日本語ってめんどくさいね.

2006年10月02日

タグクラウドなアプローチ その2

06年10月02日00時48分頃のスクリーンショット.
0610020048.png
不要なキーワードのパージが行われていなかったり,
名詞抽出をしているだけなので,キーワードが分断されているが,
「ディープインパクト」とか「腎臓」「臓器」「売買」といった旬なワードに反応している.

特に「ディープインパクト」の凱旋門賞は00時35分に発走だった.
2chのニュー速はこういった注目記事に対して,複数のスレッドが乱立する傾向にあるので,
最新の注目記事のウェイトを上げる効果があると期待できる.
いや,通常時はノイズに過ぎない気がするが・・・

というわけで,ちょっと実験的なデータが採取できたと思います.

やるべきこと!
・不要なキーワードのパージ
・単純な名詞抽出をやめて,もっと賢く!
・RSS毎にウェイト設定と更新間隔の調整
・もっと色んなニュース系RSSを探す

2006年10月01日

タグクラウドなアプローチ その1

タグクラウドなアプローチで,研究を進行中.
研究ベースでプログラミングするのは,院に入ってからは初めてです!

プログラムはperlで書いてるので,四苦八苦.
サブルーチン化に何日かかったことか・・・
引数での受け渡しも,戻り値の受け取りもよく分からない.
そもそも,変数と配列はいいとしても,ハッシュ変数ってのがよくわからん.
配列のようなもののようだけど・・・
こんな風に渡して, ($tag) = &rss_parse($file,\%$tag);
こんな風に処理してる. my %tag = %{shift()};
見た目が美しくないから,きっと実装上の不備があるはず.
でも,よくわからない.困った困った.

成果物は一応公開してます
今は産経新聞の社会面と2chのニュー速とはてなの注目ニュースと朝日新聞のRSSを取得中.
サイクルは30分で,毎時15分と45分.深い意味はなし.
今後はスケジューリングの調整と時間軸でのデータ保管を考えよう.
それからMeCabで名詞を抜き出してるだけなので,不要語のパージが必要.
もしくは,専門用語自動抽出のTermExtractを用いるとか・・・
何か考えないといけないね.

がんばろう.

2006年09月27日

Mecabの辞書をUTF-8に

研究絡みで,Mecabの辞書がEUC-JPじゃ都合が悪くなってきたので,UTF-8に変更しました.
やり方はオフィシャルページを参考に.
既にMecabは導入済みなので,辞書の変更だけです.

# wget http://keihanna.dl.sourceforge.jp/mecab/20904/mecab-ipadic-2.7.0-20060707.tar.gz
# tar zxvf mecab-ipadic-2.7.0-20060707.tar.gz
# cd mecab-ipadic-2.7.0-20060707
# ./configure --with-charset=utf8
# make
# make install

簡単だね.
そんで,現在進行中の研究がこれ
未完成だから,見ても何が何だが.
今現在のものは,産経社会からRSSを引っこ抜いて,RSSをパースして,
記事タイトルをMecabに放り投げて,名詞だけ表示してる.
ただそんだけ.
Perlで書いてますよ!PHPじゃないよ!Rubyでもないよ!
いや・・・ただ単に,perlの資料が見つかりやすかったから・・・

進まなかった理由!
UTF-8とEUC-JPであーだこーだ悩まされてた.
スパッとMecabをUTF-8にしてしまうべきだったね.

2006年09月17日

PCと会話する

情報系で研究をする以上,プログラミング能力は基礎と言っても過言ではない.
自分の考えが如何に正しいかを証明するのが実験だ.
物性系だったら,それこそ本当に実験をすればいい.
情報系では,プログラムを書いて,性能評価を行うわけだ.
実験結果というのは,客観的な事実であり,理解されやすい.

で.そんなヘタレ系Dはどんな言語でPCとお話しているのか?
皆さんも気になるでしょ?
ならないとか言わない!

背景を述べよう.
初めて使ったプログラミング言語は,ROM-BASICだ.
当たり前だよね.
電源を入れたら,それが起動したし.
この頃はまだプログラムなんて書けなかった.
適当にキーボード叩いて,エラーが表示される.
初めての対話だよ.一方的に怒られてただけだけど.
齢一桁だ.

次に使ったのは,当然N88-DISK BASICだ.
これは結構長いこと使ってた.
そうだなぁ.6年くらいはやっただろうか?
この年齢の6年は長いぞ.中学~高校で6年だからな.
N88でもまともなプログラムは書いてない.
初期においては,ベーマガのゲームを打ち込んでただけだし,
後期は確かに自分でコードを書いてはいたが,ゲームだ.
所詮,コンピュータなんて,ファミコンの延長線上だったんだ.

大学に入る頃になると,少しハイレベルな世界に憧れ始める.
まず最初に手を出したのは,Turbo Cだ.
高校の頃に手を出すものの,即挫折.
まだまだ子供だった.

次に手を出したのは,Visual Basicだ.
高校末期から学部時代まで,これまた5年近くは使ってた.
GUIでの開発はVBが初めてだったと言える.
VBでは実用プログラムをかなり作った.
その一部はVectorに公開されている.
完全に放置プレイだが・・・
一時期はフリーソフトプログラマを名乗ってた.
お陰様で,EmEditor秀丸もテクニカルライセンス所有者です☆

大学に入るとプログラミングの授業でC言語を習う.
そうだ.挫折したTurbo Cの仲間だ.
だがしかし,不思議なことに再挫折することはなかった.
きっと,大條先生の教え方が上手かったんだねっ!
(授業は数回しか出席してない上に,テストは5分で終わっちゃって満点だったけど)
きっかけってのは,よく分からないものです.
挫折したC言語ですが,今では主力です.

学部中期になると,Delphi 6 Personalが無償提供されたので,Delphiを使い始める.
厳密に言えば,Delphi 6の頃はDelphiではなく,Object Pascalなのだが・・・
まぁ.同じだ.名前の問題だ.
Delphiは修士時代まで活躍してくれました.
ほら.アルゴリズムの表記とかだと,Pascal表記が多いじゃん.
だから,修士の授業の課題をPascalで書くとカッコイイかなって.
そんだけ.
でも,Delphiも結構役に立ってます.

で.結局,お前は何の言語でPCと会話するのか?
CUIなら圧倒的にC言語だ.BCC32最強.
GUIならDelphiだろうか.
実はこれだけでは済まず,多倍長整数を使うときは・・・
要するに公開鍵暗号をやるときなんだけど,明らかにJava
BigIntegerクラス様々ですよ.

このように,私は複数の言語を場面によって使い分けてます.
得意な言語は?って訊かれたら,一応Cって答えておきます.
でも,本当に得意な言語は日本語ですけどね.

続きを読む "PCと会話する" »

2006年09月09日

Amazon Bookmarklet

amazonの検索から飛んだ先では,前に書いたスクリプトが動かない.
それはちょっと困るので,正規表現を使った方法に見直しました.
かなりスッキリして,良いものになったと思います.

AmazonアソシエイトID入りのページを開くBookmarklet.

var assoc='yocchan440-22';
var u=document.location.href;
var asin=u.match(/[A-Z0-9]{10}/);
void(window.open('http://www.amazon.co.jp/exec/obidos/ASIN/'+asin+'/'+assoc));


200609102117追記:
Bookmarkletだと書いておきながら,リンクを張り忘れました.

AmazonアソシエイトID入りのページを開くBookmarklet

2006年08月01日

Delphi: simei

久しぶりにプログラムを書いてみた.
マイマシンには授業用のBorland C++ Compilerしか入ってないので,
GUIを作るにはちと不便.
というわけで,Borland Delphi6 Personalをインストール☆
The Student DayでもらったVisual Studio .Net 2003でも良かったんだけど,
.Netはインストールに時間が掛かるからなぁ・・・でかいし,重いし.

ソフト名: simei
開発言語: Borland Delphi6 Personal
目的: 発表会等の質問者選定
作成時間: 20分

まぁ.なんだ.
インストールに要した時間と作ってた時間は同じくらいかな.
しかも,中身はヤッツケ仕事.
FormもLabelもButtonもデフォルトのまま.
ただ単にランダムでLabelを書き換えるだけのヤッツケ.
技術的な工夫なんて有り得ない.
言うなれば,Hello, world!レベル.

でも,忘れるな.
簡単なプログラムが無用の長物とは限らない.
シンプルでありながら有用なソフトウェアこそ,美しいプログラムである.
これはこれで,一つの完成形.
山中湖中間発表に実戦投入します!

2006年07月31日

Amazonスクリプト

Amazon.co.jpA9になったせいかどうかはわからないが,
既存のスクリプトが使えなくなっている.
原因はURLにASIN/{ASIN文字列}という構成ではなくなっているから.
product/{ASIN文字列}という構成に変わっている.
全てのURLがそうなったのかどうかは知らないが,
オレが利用するコンテンツはこの表記になっている.
もちろん,従来のASIN/{ASIN文字列}でもアクセスはできるのだが,
旧スクリプトでは,そもそもASIN文字列を取得できなくなっている.
じゃぁ直そう.そう思った.

critical angle: Sleipnirスクリプト
まずは,Sleipnir用のスクリプトを修正する.
修正箇所は34行目.


asin = asin.replace(/.*ASIN\//, '');



asin = asin.replace(/.*product\//, '');

にするだけ.
簡単ね☆

改良スクリプトはこちら♪
Amazonアソシエイトの個別リンク用のタグを作るSleipnirのスクリプト(改)


続いて,ブックマークレット版もいじくる.
Going My Way: AmazonアソシエイトID入りのリンクタグを作成するBookmarklet

ちょっとこっちはあっちこっち弄くってしまった.
リンクを作ったら,新しいWindowで開くようにしました.
Sleipnirでしか使わないから,IEやFirefoxでどんな挙動になるのかはしりません.
変な動きをしてたらごめんなさい.

Amazonリンク作成(改)

2006年07月02日

ALPSLAB clip!テスト

ALPSLAB clip!

Movable Typeに地図を簡単に貼り付けることができるようになるpluginが,
ALPSLABから公開されているようなので,テストしてみる!

まずは,大学の住所を入力してみよう.
ピポパ.
神奈川県平塚市北金目1117

ふむふむ.プレビュー画面では表示されませんなぁ・・・
公開されるときには表示されるけど・・・

そんでは,もっと厳密に,我々の本拠地を指し示してみよう.
ポチッとな.
35/21/27.194,139/16/40.419

ふむふむ.なかなか便利だ.

どこかに行ったとか,どこどこで何があったとか,
そういうエントリーを書くこともあるだろうから,
こういった機能は便利だと思います.

なお,Movable TypeとGoogle mapsの組み合わせで,
DAILY ARCHIVEという実装がある.
これはこれで,一つの完成系だと思う.
最初の方で語られているように,
位置情報と無関係なエントリーの時に,困るね.
でも,とても面白い可能性の提示だと思う.

個人的には,こういう地図機能はSNSでこそ,本領を発揮すると思う.
OpenPNEにGoogle mapsを実装する試みが,どっかにあったような気がした.
オレも頑張って実装しようかなっと.

2006年06月29日

Movable Type 3.3 正式リリース

Six Apart - Movable Type News: Movable Type 3.3 正式リリース

Movable Type3.3正式版が公開されたので,早速更新してみた!
うん.いや.なんだ.
オレにとっては,それ程変わらないかなぁ・・・
テンプレ職人には大きな変更なのかな?
ウィジットも追加されたみたいだから,職人さんの活躍が期待されます.

なお,簡易投稿画面が見にくいです.
管理画面もね.
どっかをカスタマイズしないとダメかな?
めんどくさいなぁ・・・

2006年06月22日

Ajaxと混戦中

DM03の中のD: Ajax style

思い立ったが吉日.
特に何の意味もないのだが,研究室サーバの自分のindexをAjax化した.
ドラッグ&ドロップでグリグリ移動するぜ!
背面のオブジェクトもクリックで手前に引っ張れるぜ!
一応,IE6.0SP2とFirefox1.5.0.3とOpera9.00で動作確認済み☆
Ajax非対応のindexはこちら

両ページを見比べてもらうと分かるんだけど,
Ajax非対応の従来のページは,XHTML 1.0 Strictで,
Ajax対応のページは,HTML 4.01 Transitionalなんですよ.
これには理由があるんです.

最初はXHTML 1.0 Strictで書いてたんです.
もちろん,メインブラウザであるIE6では動いてたんです.
完成が近づいたので,クロスブラウザテストをしたんです.
Operaは問題なく動いたんです.意外に素直.
問題はFirefoxだった.
動かないでやんの!
それはそれは焦りますよ.
どのくらい焦ったかって?
AjaxはJavaScriptなのに,JREを入れちゃうくらいw

この解決に関しては,JavaScript クロスブラウザに関するメモが役に立った.
どうやらQuirksモードで動かないとダメらしい.
StrictはStandardモードで解釈されるらしい.
解決方法として,DOCTYPEを変える方法とJavaScriptを変える方法が示されているが,
どこをどう書き換えていいのかが,わからない・・・
ちっ!Ajax初心者め!(オレ
仕方なく,XHTML 1.0 Strictを諦めて,HTML 4.01 Transitionalにしたわけです.

お陰様で,問題は解決しました.
ぅぅぅ.オレはStrictで書きたいのに・・・
Ajaxは難しいねっ!

参考にしたURI:
第五章 クライアントサイドの技術:ドラッグ処理を行う
JavaScript クロスブラウザに関するメモ - とみぞーノート
DOCTYPEスイッチ ◁ The Trap of Web Design

2006年05月30日

続・鍵管理システム PaSoRi版

ヘタレ系DのBlog - 鍵管理システム PaSoRi版

その後談.
実運用直前まで来ていたのだ.
しかし,トラブルは発生した.
リーダの制御には,こちらのソフトを利用させていただいている.
しかし,こやつがカード除去時にエラーを発するのだ.

最初は,動作対象外のWindows Server 2003を使ってるのが原因かと思い,
テストマシンのWinXP ProやWin2k Proで試すも,ことごとくエラー.
鍵管理システム作成者の武田に助言を求めるも,
打開策が見当たらなかったのである.
超えられない壁だ.

しかし,そんな問題もオレの知識によって,解決した.
情報系研究室を名乗っていますので,開発ツールやランタイムは潤沢です.
もちろん,.NET Frameworkも2.0と1.1を導入しております.
それが落とし穴.
.NET Framework 1.1を要求されているのが,
2.0は無関係だと思ってはいけない!
2.0が導入されていると,どうにもダメなようだ.
アンインストールしたところ,キビキビと動き出した.
困ったお子様だ.

原因はわかったが,根本的な解決ではない.
ソフトウェアの関係上,サーバから.NET Framework 2.0を消すわけにはいかない.
一難去ってまた一難.

どうしようか思案中.

2006年05月19日

テンプレート更新

ここのテンプレートを更新してみたのだが,どうだろうか?
何か不具合があるかもしれない.
十分にテストできていない.
でも,それを気にせずに適用してしまうのが,Dクオリティ.
不具合を見つけたら,コメントでお願いします.

2006年04月12日

CDブートしたよ

ちゃうねんで?(挨拶)

CDブートしないトラブルに見舞われてた,本研究室.
問題が解決しました.
問題点は2点.

1つ!
SP4適応済みWindows2000を作る上での,元となるディスクがダウト!
何がダウトかって?
PC/AT互換機用とNEC PC-9800シリーズ用があるのだ!!
バクァヌァ!!
見事にPC-9800シリーズ用を使ってましたorz
そりゃぁ・・・ブートしなくても,納得だよね・・・
むぎゃしゃー!!!

2つ!
これは,検証に時間がかかった.
SP4適応済みディスクを作るのに,SP+メーカーを使っていたわけだが,
どうにもこうにも,「ISOイメージファイルを最適化する」を有効にしていると,
ブートができないCDができあがるようだ.
理由は,さっぱり見当も付かない.意味不明.
最適化をしないことで,ブートするディスクができあがったわけだが・・・
XPのSP適応済みは,この設定でもうまくいっている.
よくわかりません.

というわけで,この作業に忙殺されてる所為で,
ここ数日,論文が全く進んでいないわけです.
もう,研究室メンバを全員,計算機環境担当にするのはどうだろうか?
やっぱり,却下されるか・・・

院生が減ると,負担が多くなって,困るわん★

2006年03月30日

Web2.0覚え書き

忘れないように,ここに書き留めておく.

O'Reilly -- What Is Web 2.0
Web 2.0:次世代ソフトウェアのデザインパターンとビジネスモデル(前編) - CNET Japan
Web 2.0:次世代ソフトウェアのデザインパターンとビジネスモデル(後編) - CNET Japan

Web2.0とは? - Web1.5 [ITmedia オルタナティブ・ブログ]
Web2.0に関する考察ノート:前編 - Speed Feed [ITmedia オルタナティブ・ブログ]
Web2.0に関する考察ノート:後編 - Speed Feed [ITmedia オルタナティブ・ブログ]

Web 2.0 - Wikipedia, the free encyclopedia
Web 2.0 - Wikipedia

Web2.0時代のお金・情報の流れをつかむ - @IT
Web2.0時代に、ユーザーが経験しておくべき10のこと :Heartlogic
Web2.0 とは -7つの分類と要素MAP | 近江商人 JINBLOG
今日から始める! Web 2.0超入門講座  ~初心者でもよくわかる「これからのWeb」のすべて~

2006年03月07日

SambaでPDF失敗

SambaでGhostscriptを使って,ps2pdfして,
PDFを出力するプリンタを作ろうと試みた.
参考にしたサイトは,以下.
Samba でPDF サーバを作る
SSR悪魔研Tips・・・PDF
Ghostscript+samba
Samba で PDF

結論から言うと,失敗.
「アクセス拒否 - 接続できません」となる.
各サイトによると,そう表示されても,平気らしい.
と思って,テストプリントしたが,上手くいかない.

そもそも,linuxにプリンタを繋いだことがないので,
どういう挙動をとるのかを全く知らない.
理論だけで,戦うのは無理がある.

なかなか思い通りにいかないものだ.

2006年02月18日

Wiki2PDF

Wiki2PDF - yocchan::wiki

WikiからSmartDocに変換し,SmartDocをTeXに変換し,
TeXをdviに変換し,dviをPDFに変換するという,
変換祭を完全自動化し,WikiからPDFが作れるようになるという,
画期的なようで別に大したことがないWiki2PDFが完成した.

開発背景には,当研究室のゼミメモが酷すぎるという現状がある.
Wikiならみんなが編集できるから,間違ってたら直せるのになぁ・・・
という所から,開発が始まっている.

数日前に完成はしていたのだが,
検討事項とソースを公開する恥ずかしさと格闘していた.
結果的には,
ソースは公開するけど,批判しないでね☆
というスタンスで行くことにした.

自由にご利用ください.
私はこれで満足なので,開発を継続することはありません.
保守を行う程度でしょう.
これをやったところで,論文にも学位にもなりませんから.

改良したい方は,どんどん改良してください.

2006年02月15日

Wiki2PDF 試作2

一応は完成を見ました.
ただ,環境依存が激しい.
参考にしたソースのライセンス上,ソース公開をしないといけないだろう.
もちろん公開もするし,導入方法も解説するが,
如何せん公開するのが恥ずかしいソースに仕上がったので,
暫く熟孝する猶予を頂きたい.

来週中には成果物として披露できるだろう.
なお,試してみたい方は,こちらで体験してみてくだされ.
ページ下部のLast-modifiedの左にあるPDFリンクをポチっとな!

2006年02月13日

Wiki2PDF 試作1

Wiki2PDFを現実のものにするべく,動き始める.
リフトに乗ってる間の暇な時間に,ちょっと考えてみた.
実装可能な雰囲気になったから,モチベーションが下がらないうちに試してみる.
試作記なので,完成したら,しっかりとまとめます.

・導入
SmartDocをインストールする.
JDKが必要な気がするので,入れておきましょう.
インストールはガイド通りで行けます.問題なし.

PukiWikiのプラグインを導入する.
これも説明通りでOK.編集するところもない.
PukiWikiPlus!を使ってるので,違う人は適宜読み替えて!
default.skin.phpのどこかにSmartDocに変換するリンクを置こう.
オレは130行目に,
<a href="<?php echo "$script?plugin=smartdoc&page=$r_page" ?>">SmartDoc</a>
を追加した.どこでもいいと思う.

・試験
適当なページでSmartDocのリンクをクリックすると,
表示しているWikiページをSmartDocに変換できる.
問題なし.

・SmartDoc2TeX
SmartDocに変換されたファイルを保存する.
このファイルはEUC-JPで保存されるようだ.
しかし,次のコマンドは宜しくない.
# sdoc -format:latex2e smartdoc.sdoc.xml
これは,なんてこったい!Shift_JISを吐き出す!
VineのTeXはEUC仕様になってるので,SJISはちょっと・・・
そこで,オプションを付けてみる.
# sdoc -format:latex2e -latex2e.encoding:euc-jp smartdoc.sdoc.xml
大変宜しいです.これで宜しいです.

・TeX2PDF
まぁ.ここから先は,TeXの領分です.別になんてことはない.
# platex smartdoc.sdoc.tex
# dvipdfmx smartdoc.sdoc.dvi
これでPDFが完成します.

(参考:Wiki2TeX

後は,これを自動化してやればいい.
自動化案というか,スクリプトの大半を利用できそうなのが,
奥村氏のTeXをWebでです.
これは既に設置実績があるので,参考にしやすい.
ガンバル!

ふと思ったが,オンデマンドで変換しなくても,
Wikiが更新される度に,変換したものを添付ファイルでくっつけるのはどうだろうか?
頻繁にWikiが更新される環境には適さないと思うけど,
研究室のゼミメモレベルだったら,そっちの方が楽かなって.
思っただけです.やるかどうかは不明☆

2006年02月09日

Wiki2PDF

wikiで論文作成? - ATN
Wiki2TeX

考えることはみんな一緒ですね.
Wikiで週報,月報,ゼミメモを書かせる.
特に,ゼミメモはミスがあったら即時直せばいいし,必要があれば追記すればいい.
Wikiは非常に便利なツールだと思う.

しかしながら,紙媒体での提出や掲示をしようとすると,見栄えがどうしても悪い.
そこで,PDFに変換すればいいと思うわけですよ.至極当然.

というわけで,そのうち作ってみようと思う.
PukiWiki -> SmartDoc -> TeX -> dvi -> PDF
これを完全自動化させれば,そこそこ実用的だろう.
前半部分は紹介しているサイトがあるし,
後半部分はTeXをWebから使う方法があるので,
その間をブリッジさせればいいだけだ.

うん.なんかすごいものを作ろうとしてるように見えるけど,
既存技術の継ぎ接ぎです.実はすごくない.
早くて来週,遅くて再来週から開始しまーす♪

2005年12月03日

Webalizer 検索語文字化け解消

論文をやらなきゃいけないが,
関係ないことがすごく気になる.

Webalizerの検索語が文字化けしている.
いや.ここ最近の問題ではなく,導入した当初からだ.
めんどくさくて目を瞑っていたのに,忙しいときにやりたくなる.
そんなもんです.

基本ガイドラインは,こちらを参考にしましたよ.

### /usr/local/bin/decode.pl 700
#!/usr/bin/perl

use Jcode;

open (IN ,$ARGV[0]);
while (<IN>){
$_ =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
Jcode::convert(\$_,euc);
print $_;
}
close (IN);
exit;

### /usr/local/bin/webalizer.pl 700
#!/usr/local/bin/perl

$conf = '/etc/webalizer.conf';
$decode = '/usr/local/bin/decode.pl';
$outdir = '☆秘密☆';

`/usr/local/bin/webalizer -c $conf`;

@htmls = <$outdir/*.html>;
foreach (@htmls) {
$filename=$_;
`$decode $filename > $filename.euc`;
`mv $filename.euc $filename`;
}

exit;

文字化けは解消されました.
ふぅ.論文やろうかなっと.

2005年09月20日

POGOのためのPHP設定 改

登校したら,ソージーからレスポンスがあった.
どうも,ソージーがレンタルしてる場所の設定では,
safe_mode=on,safe_mode_gid=onではないらしい.
でも動いてるらしい・・・
ソージーとエリッチの両サーバのphpinfoをもらって,自サーバと比較する.
そして,正しいかどうかは分からないが,以下の結論に達した.

×safe_mode = on
×safe_mode_gid = on
○magic_quotes_gpc = on

なお,magic_quotes_gpcの初期値は"1"・・・つまり on だ.
何故,offになってたのか・・・わからない・・・わからなさすぎる・・・
と思って調べたが,どうもこの設定は深い.色々ある.
どちらが良いとは一概に言えなさそうである.
.htaccessで変更可能なパラメータなので,臨機応変にお願いしたい.
自サーバの設定は, on にすることとする.
参考にしたサイト

まとめます.
つまり,POGOシステムは,PHPを以下のように設定することで動作する.

POGO以外も動かす前提の汎用設定
php.ini ------------------

register_globals = off
display_errors = on
safe_mode = off
safe_mode_gid = off
magic_quotes_gpc = on
[mbstring]
mbstring.encoding_translation = on
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = pass
mbstring.detect_order = auto
mbstring.substitute_character = none

.htaccess ----------------

php_flag register_globals OFF
php_flag magic_quotes_gpc ON
php_value default_charset none
php_value mbstring.language Japanese
php_flag mbstring.encoding_translation ON
php_value mbstring.detect_order auto
php_value mbstring.internal_encoding EUC-JP
php_value mbstring.http_input auto
php_value mbstring.http_output SJIS
php_flag output_buffering ON
php_value output_handler mb_output_handler
php_value mbstring.substitute_character none

POGO以外は動かさない前提の専用設定
php.ini ------------------

register_globals = off
default_charset = none
display_errors = on
safe_mode = off
safe_mode_gid = off
magic_quotes_gpc = on
output_buffering = on
output_handler = mb_output_handler
[mbstring]
mbstring.encoding_translation = on
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.detect_order = auto
mbstring.substitute_character = none

2005年09月19日

POGOのためのPHP設定

色々解析した結果,こうしないとPOGOは動かない.
スタータキットを作るときの参考にしようではないか.

POGO以外も動かす前提の汎用設定
php.ini ------------------

register_globals = off
display_errors = on
safe_mode = on
safe_mode_gid = on
[mbstring]
mbstring.encoding_translation = on
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = pass
mbstring.detect_order = auto
mbstring.substitute_character = none

.htaccess ----------------

php_flag register_globals OFF
php_value default_charset none
php_value mbstring.language Japanese
php_flag mbstring.encoding_translation ON
php_value mbstring.detect_order auto
php_value mbstring.internal_encoding EUC-JP
php_value mbstring.http_input auto
php_value mbstring.http_output SJIS
php_value output_buffering ON
php_value output_handler mb_output_handler
php_value mbstring.substitute_character none


POGO以外は動かさない前提の専用設定
php.ini ------------------

register_globals = off
default_charset = none
display_errors = on
safe_mode = on
safe_mode_gid = on
output_buffering = on
output_handler = mb_output_handler
[mbstring]
mbstring.encoding_translation = on
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.detect_order = auto
mbstring.substitute_character = none

2005年09月11日

文字コード変更

ここのブログの文字コードをEUC-JPからUTF-8に変更した.
なお,MTのデフォはUTF-8.
じゃぁ,何故EUC-JPにしたのかと申しますと・・・

なんとなくLAMP的に親和性が高そうだと思ったから

まぁ.全く意味ありませんけどね.
トラックバック絡みでUTF-8じゃないと化けたりするらしいので,
UTF-8に戻してみました.

当たり前ですが,別になんてことありません☆