2006年12月13日 (水)

JavaWebStartでiText

iTextというのはJavaでPDFを作成できるライブラリです。.NET用に移植もされているようです

以前PerlでPDFを作れるPDFJを使ってCGIを作りました。こちらも簡単に使えました。既存のPDFファイルを加工する機能は付いてませんが、iTextの場合はそういうこともできます。

http://www.ee.e-mansion.com/~egami/iText/を参考に日本語用のiTextAsian.jarも入れましたが、とりあえず私がしたかったことは既存のPDFファイルに数字を埋め込んで新たなPDFを作るというもので、日本語は使いませんでした。

iTextのページからリンクされてますが、Tutorialがあり(日本語に翻訳されているページがiText.NETに移植して公開されているページ内のここにあります)、サンプルも豊富なので非常にありがたかったです。APIはここに。

でこのiTextをJavaWebStartで配布するアプリケーションで使用したいのです。PDFJでCGIも考えましたが、今回はネット上を漂ってほしくないデータを利用するのでJavaWebStartとJNLP APIを使うことにしました。JavaWebStartに自己署名したらいちいち警告出ることなくローカルへフルアクセスできますが、自己署名した時に半年で無効になります、、などと書いてあり、自己署名だから信用できないという警告が出るので(もちろん出てもらわないと困りますが)余計にユーザーを混乱させるかと思い、JNLP APIを使うことにしました。

続きは近日追加予定m(_ _)m

| | コメント (0) | トラックバック (1)

2006年10月29日 (日)

Firefox2.0入れてみました

Firefox2.0と言うことで遅ればせながら入れてみました。

Firefoxの画面を閉じずに入れようとして警告が出たので閉じたのですが、なぜかその時はあらゆる設定が引き継がれなかったため、再インストール。ちゃんとブックマークなども引き継げました。

でも、困ったことに(既知ですが)拡張機能のTabMixPlusが対応していないと言うことで無効になってしまいました。どうしようかと思ったのですが、今更戻すのもなんかイヤなので、TabMixPlusのページを見たらDev-build版があります。対応バージョン見たらこっちは一応使えそうということのようです。最後のセッションを取り出したかったので、無効で使えないよりはと思いダウンロードして入れてみました。何の問題もなく今のところ使えてます。Firefox本体の昨日とバッティングする機能があるしいつどうなるか判りませんが、とりあえずは順調です。

開発版を見つける前にDocument&Setting\ApplicationData\Mozilla以下に保存してあるファイルを見つけたのでそこから復元しようかとも思ってましたが、助かりました。

| | コメント (0) | トラックバック (0)

2006年10月25日 (水)

ナローバンドとGoogleNotebook

Google Notebookで大変残念な事を体験しました

Gmailでは簡易表示をすすめられ、ま、使えるし良いかな。と思っていましたが、Google Notebookはミニアプリを入れても全然使えません。選択範囲を登録することと登録した内容を見ることは可能ですが、一切編集ができません。Go to full page viewを選んでも検索ボックスだけのWindowが表示されてしまい、Mybooksの検索は一切できません。

FirefoxもIEも同じ結果になるのでブラウザには関係なく、しかもADSLで繋いでいるPCからはこれらの問題はなく利用できます。編集できないのは非常に残念な結果です。

そろそろDocomoもあと一年でPHSから撤退することですし、PHSはそろそろ卒業しないとダメでしょうか。

Google Docs & Spreadsheetsはちゃんと使えそうなんですけど、こちらはイマイチ便利さが判りません。どこでもOfficeなのでしょうけど大容量のUSBメモリがあるのでちょっと。USBメモリ使えないPCなら便利かもとも思いますが、メールで送れば済むことで。数人で編集できるというのは魅力ですけど、重要書類の作成をここでするのはちょっと抵抗があります。メールに添付しても途中で見られる可能性はあるんですけどね

と思いながら、ちょうど今やってみたら何にも無かったかのようにPHSでも使えてます。IEでもFirefoxでも。。ど~~なってるのでしょう。まぁちゃんと動いたらタダだし何の不満もないです。Googleさんがんばってくださいね

Firefox2.0リリースされたそうですが、しばらくは待ってみようと思います

| | コメント (0) | トラックバック (0)

2006年10月21日 (土)

先祖返り?(lynx)

アクセス解析から検索ロボットのことを調べると検索ロボットから見たサイトはテキストブラウザで見たのと同様とのことで、lynxを入れてみました。アクセシビリティーやSEO対策などで需要があるようです

これはなかなかいいですね。以前viやEmacsを触っていた私にはしっくりくるように思います。キーボードだけで対応できるのがいいですね。慣れるとマウスジェスチャーとかメニューからたどらないといけないとかって手を動かすことはしみじみ面倒だということを実感します。

いつもの見慣れたサイトをいろいろ見てみましたが、見え方が非常にあっさりになり、画像や余計なレイアウトのためのテーブルなどを読まない分非常にスムーズです。

HTMLソースを頻繁に見るので、Firefoxのショートカットも重宝してますが、lynxでは1キーで切り替えできるんです。

純粋にテキストだけを見たいときには非常に使い勝手が良さそうです。

でも、今のところ印刷やメール送信がLynxで設定できてないんですよね。どっちも情報が見当たらなさそうで、lynx.cfgの説明を見ても、、、

| | コメント (0) | トラックバック (0)

2006年10月14日 (土)

Googlebotのアクセスを捕まえたい

今使っているアクセス解析は、前に載ってるように<script>タグを認識したらdocument.writeでスクリプトがOFFなら<noscript>内で<img>を使ってCGIへアクセスしてIPやUserAgentをチェックしていると検索サイトの巡回ロボットはinktomisearch.com(Yahoo)しか捕まえられていません。

Googleのロボット(Googlebot)ぐらいは見つけたい。ということで(Googlebotのアクセスがわかったからと何も無いのですが、やっぱり知りたい。ただそれだけ)

検索ロボットを捕まえるタグってのを教えてくれるサイトがあるそうですが、登録とかをものすごく面倒に思うので、そこに頼るのは止めて(気になる方はhttp://goukou.com/blog/archives/001045.html)他のタグを使ってみようと思います。
とりあえず、強制的に読み込むタグでスタイルシートの指定。一応<head>内限定らしいですが、<body>に入れてページを読み込んでみたところ、とりあえずファイルを読みに行くみたいなので、<body>に入れてしばらく放置。

でも当然だめ。探し回った挙句、結局CGIへのリンクを作りました。リンクをたどるので、拡張子がCGIだから無視する。とか言うのじゃなければ少なくともそのリンクをたどろうとしたことは判るはず。で、またまたやってみました。
今度はちゃんとgooglebotを捕まえられました。今のところこれしかないようです。

ただ、リンクは見てる人がクリックしてしまうことがあるのとそのリンクを無視されたらどうしようもないのと、ロボットはリファラー全然返してくれないのですよね。inktomisearch.comを見ていると必ずリンクを見に行っているわけじゃないようです。googlebotもホントはもっと頻繁に来てるかもしれませんが

| | コメント (0) | トラックバック (0)

2006年9月27日 (水)

検索サイトから消す

SEO全盛で、いかに検索サイトで上位に表示させるか!が商売になる時代にこういう事を考える人っているのでしょうか。

とりあえずYahooとGoogleとWindowsLive(MSN)を考えれば、他サイトはだいたいこれらの検索ロボットの結果を利用しているみたいなので、

日本では一番人気のYahooはhttp://help.yahoo.co.jp/help/jp/search/indexing/index.html(Yahoo!ヘルプサイト管理者向け)

日本で二番手のGoogleはhttp://www.google.co.jp/intl/ja/remove.html(Googleページの削除)や左のリンク先が参考になるかも

WindowsLiveサーチ(MSN)はトップページhttp://www.live.com/からヘルプへ飛んで、左フレームの「Windows Live Search」と表示されているところでWindows Live Search Webmastersを選んだら、FAQが出ますし、検索語句を入れても良いと思います。

いちおう他のポータル検索サイト

gooはhttp://help.goo.ne.jp/door/crawler.htmlでもhttp://help.goo.ne.jp/door/url.htmlを見るとGoogleを使っている様子InfoseekはGoogle検索がデフォルト。Infoseek独自の検索についてはhttp://www.infoseek.co.jp/Help?pg=help_touroku.htmlに。FreshEyeはhttp://www.fresheye.com/guide/info/faq.html  などなど

でも、YahooとGoogleとWindowsLive(MSN)でほとんど用が足りるように見えます。

私自身の検索は思いっきりGoogle派。Yahoo検索を使うのは、誰かに検索して。というときにYahooといえばほぼ間違いなく通じるので、どんなサイトがどの辺りに表示されるか前もって知りたい時。WindowsLiveはMSN時代はFirefoxでアクセスするといちいち警告出てたので(WindowsLiveは出ないようです)使ってません。

ユーザーIDはGoogle,Yahoo!,WindowsLiveとも持っていますが、日常的に使うのはGoogle。Gmailが開放されてからはほんとに一日中GoogleのどれかのサービスがFirefoxのタブにあります(スプレッドシートはまだ使ったこと無いです)。Yahooはブリーフケースを使いたいためのID取得で、MSNは理由不明(WindowsMessenger使いたいから?)。

| | コメント (0) | トラックバック (0)

2006年9月23日 (土)

アクセス解析(生IP)JavaApplet編

前回記事にも書きました生IPの方法でJavaAppletを使う方法を

>参考までにJavaAppletでやる方法はhttp://tuka.s12.xrea.com/index.xcg?p=CGI#p12とかhttp://www.nurs.or.jp/~sug/homep/spam/spam4.htmにあります。

と書いてました。でxrea.comのページを丸々いただいてやってみました。圧縮したファイルがあるようなことを書いておられましたが、私はそれをとってくることが出来なかったので、表示されているソースをそのまま貼り付け。JavaはそのままjavacでOK。Perlはパスとホスト名やCGIへのパスなどを設定したら問題なし。

で、クライアントCGIへアクセスしてみたところ、ちゃんと通信できました。
FirefoxでもIEでも大丈夫、テトリスのためにだけ立ち上げるOpera(失礼?)でさえも警告など表示されずに使えました。ただ、やはりJavaを起動するので非常に重いです。

ところで、Javaってインストールしなくても使えるんでしょうか。私はBorlandC++CompilerとjavaSEとActivePerlとFireFoxはまず最初に入れるので、PCはインターネットしか使わない。という方の環境は全然想像できないのですが、IE見てもJavaVMが・・・と書いてあるので使えるようになっているのでしょうね。ただ、デフォルトがどうなのか?というのと大抵のサイトでは必要ない機能で、設定で無効にできるので、Javaを使わないと非常に不便なサイトにするなどの工夫はやはり必要なのかもしれません。

GmailでGoogleアカウント取ったのでホームページをPersonalized Homepageにしてるのですが、今日見たらいきなり英語が表示されてびっくりしました。英語は苦手なもので(プログラミングの解説なんかは雰囲気で読めるのですが)。よく見たらタブが出現してました。いろんな場合に分けてページを使い分けられるので良いのでしょうね。

でもGoogleさん、そんなことをする前にPersonalized HomepageでGmailやCalendarやニュースなどを表示してますが、それらをクリックしたときに別ウィンドウで表示されるようにしてくれませんかねぇ。ブラウザのHomePageボタンを押したらいいんですが、複数タブをホームページに設定しているので、そういうわけにも行かないんですよねぇ。Gmail見た後にPersonalized Homepageへ戻るのがなかなか面倒で。

Calendarだけは別のサービスへのメニューが左上にでているのですが、

| | コメント (0) | トラックバック (0)

2006年9月21日 (木)

アクセス解析(生IP)telnet編

アクセス解析。プロクシとか生IPとかそういうところが知りたくなるもので、

プロクシって何?って事は調べていただくとして、アクセスがプロクシ経由かどうか。いろいろな判断方法があると思います、解析を見ていてホスト名にIPアドレスの羅列があったり複雑なホスト名の場合は多分プロクシ経由じゃない。IPアドレスから名前が取り出せればプロクシだとしても出所がはっきりしているプロクシでしょう。他にはサイトアクセスしたときにプロクシ特有の環境変数を取り出せる事があるので、そういう環境変数をチェックする。

http://www.ne.jp/asahi/setuna/multi-factory/index/env.html
http://www.remus.dti.ne.jp/~shenron/secure/cgi_script/
http://blog.arasitaisaku.com/?cid=21833
などに書いてあります。

プロクシはプロバイダが用意していたり、プロクシの杜でさがして見てください。で、診断くんhttp://www.futomi.com/cgi-bin/env_var/your_env.cgiなど環境変数をチェックできるサイトいろいろあるのでそこへアクセスしてみてください。でもそれらの環境変数を吐かないプロクシも結構あるので、ホスト名や逆引きの可否なども含めて判断する必要があります。それと、Operaでのアクセスはこういう場合はたちの悪いことにプロクシと見間違えるような環境変数を吐くので要注意です(OperaはデフォルトでIEやMozillaに化ける機能を提供しているので環境変数だけ見てIEやMozillaのアクセスでプロクシ経由だと思っていたら、Operaからのアクセスで生IPだということもあります)

で、ADSLやら光とかいうご時世にサイトアクセスの高速化やネット資源の有効利用を考えてプロクシを使う人なんて居ないでしょうから、どんな理由があったとしても自分のアクセスを隠したいという目的での利用がほとんどだと思います。生IPで掲示板やブログなどの荒らし行為などをするならプロバイダがわかるのでそのプロバイダに連絡できますが、プロクシの杜で紹介されているような公開プロクシの場合は連絡してプロクシのログを取得など一苦労でしょう。そういうときに自力で生IPを抜こうということで、いろんなサイトで紹介されている方法としては

上にも挙げましたが、---CGI in Secure ---に書かれているようにJavaAppletやtelnet,WindowsMediaPlayerなどhttp以外のプロトコル(IEならツール-インターネットオプション-接続-設定-プロキシを設定するのチェックをして詳細設定で自動でプロキシが設定されるプロトコル以外)を使うことでプロキシを通さずにアクセスさせるという方法になるようです。とりあえず今回は手軽そうなtelnetを使ってやってみました。もちろんtelnet.exeが立ち上がるので何かいつもと違うというのは見ている人にはわかります。しかも私の環境なのですがNortonInternetSecurityを使っているとtelnetで通信する前に警告が出てしまいます。 ブラウザがFirefoxならtelnet立ち上げる前に外部プログラムですが?と警告が出ますので、telnetでIP抜く時はアクセスログなどでUAやリファラーの状況を見た上でやった方が良いと思います。もし警告が事前に出そうな環境に思えるなら、JavaAppletを使ったやり方のほうが良いかもしれません。少し読み込みが長くなり違和感あるのと、Javaを無効にしているかもしれませんが、警告画面の心配はしなくて済むように思います。

PerlのソースコードはUse telnet[telnet 雑技室]にその名もズバリ「telnetプロトコルによるIP抜き」という項目内にリンクがあります。ソースコードをそのままコピーしてPerlのパスとホスト名とファイル名を変えてtok2サーバーで試したところ、全然ダメ。その理由はポートが閉じていたというお粗末なものでした。ポートを決め打ちしてなんどか挑戦したところ、大きめのポート番号を使えば、ソース自体に何の手を加えることもなく生IPが表示されました。

参考までにJavaAppletでやる方法はhttp://tuka.s12.xrea.com/index.xcg?p=CGI#p12とかhttp://www.nurs.or.jp/~sug/homep/spam/spam4.htmにあります。

自由にポートを空けられてアクセスログを見れたり常駐でそのポートを見張るソフトを入れられるなら、imgタグやframeタグなど強制的に読もうとするタグのsrc="telnet://ホスト名:ポート番号"などとするが手っ取り早いように思います(http://2.csx.jp/~stwalker/proxy.htmの真ん中辺り参照)。

で、しばらくこのコードを眺めていたところ、
http://www.remus.dti.ne.jp/~shenron/secure/cgi_script/#2-1
http://hp.vector.co.jp/authors/VA003991/kouza/senior/kouza_socker_perl.html
http://www.7key.jp/nw/study1.html
http://kansai.anesth.or.jp/gijutu/perl/man-socket.php#f_socket

この辺りに書いてある、一般的なPerlでTCP/IPサーバーのソースと同じであることに気づきました。結局普通にポートを監視するようにして、それに対してHTMLの仕組みで自動的にアクセスさせてアクセス元を取り出しているだけなのです。この自動でアクセスさせるところがミソですね。

プロクシの話題だけじゃないですが、ネットスキルアップ講座は面白いと思いました。imgタグにフロッピーのパス(A:\)を入れて嫌がらせするなんて思いもしませんでした。アクセス解析と組み合わせてJavaScriptで不心得モノのIPに対してこういうタグを書き出すようにするのも面白いかもしれません。後が怖いですが。でも最近のPCには残念ながらフロッピー付いてなかったりするんですよね。

今回は生抜きする前に荒らしが収まったので、実際には使ってませんが、次回のためにメモメモです。JavaApplet利用したものの方が目立たずできそうなので、こちらもやってみようと思ってます。

| | コメント (0) | トラックバック (0)

2006年9月14日 (木)

アクセス解析(露骨に拒否)

またまたアクセス解析ネタ

参考にしたのはhttp://www.broadband-xp.com/hidesource/cgi.html

CGIの呼び出しをここに書いてあるように
<script type="text/javascript" src="js.cgi"></script>
にして、CGIでprintを使ってJavaScriptを書き出すように。

で、CGIの最初の出力も
print "Content-Type: application/x-javascript\n\n";
から始める。
そうするとCGIでIPやUserAgentなどの値を使ってアクセスを拒否したい(粘着系の方々)相手を絞ることは可能なはず。その辺はCGIでも頻出の条件分岐とか正規表現ですね。

で、履歴に残したい場合はCGIでprint文を使って

document.write("<img src='./acs.cgi?");
document.write(document.referrer + "' width=1 height=1>");
を出力すれば良く、

拒否したい相手なら、見てるサイトに近いデザインのページに飛ばす(粘着系が新たなターゲットを見つけたら申し訳ないですが)とかブログサイトのトップページへ飛ばすとか。飛ばすためにはCGIのprint文でLocation.hrefを書き出せば解決。

いちおうこれで完成ですが、このままではアクセス元を調べるのに1回、ログ用に1回。で、合計2回CGIを呼ばなければいけないことになり、なんか釈然としない感じ。

それで、CGI呼び出しを元に戻して、1回の呼び出しで済むように。

<script type="text/javascript">
<!--
document.write("<script type='text/javascript' src='./acs.cgi?");
document.write(document.referrer +"'></script>");
//-->
</script>

ただ、本文中にこれを入れると、その時点まで読み込んだ後で別のページへ行くことになるので、ものすごくわかりやすく拒否されてる感があります。出来る限り早い時点で処理されるようにするべきです。

もちろんJavaScriptを無効にしているとなんの意味もありませんけど。

 

| | コメント (0) | トラックバック (0)

2006年9月 7日 (木)

アクセス解析。呼び出しの工夫

前々回にアクセス解析。まるで教科書どおりのようなCGIとJavaScript

<script language="javascript">
<!--
document.write("<img src='http://CGIを設置したアドレス/CGIファイル名?");
document.write(document.referrer + "' width=1 height=1>");
//-->
</script>

で作りましたが、そのブログ主がアクセス解析あるよ。とわかる風な書き方をしてしまったためか、書き込みに飽きたからなのかわかりませんが、最近は挑発的なコメントを書いていた人が書かなくなったようです。確かにこれじゃあ見ただけでわかるよなぁ。と思います(imgタグでcgiですから)。タグとか見たこと無ければ<img>やreferrerとかさっぱりわからないでしょうし、そもそもHTMLソースを見よう(見れる)とは思わないでしょうから、飽きたか、それなりの危険察知能力のある人なのか、多少HTML周りを理解しているんでしょう。

そこで、ちょっとわかりにくい呼び出しは無いのかなぁ。と探してみたところ、これならわかりにくいかな。というのを見つけました。

http://www.melma.com/backnumber_29889_3220974/です。この次の記事も同様ですが、imgタグとImageオブジェクトを連動させています。ということはimgタグではほんとにイメージファイルを呼び出せば良い。ということです(imgタグひとつに画像ひとつで違和感ないでしょ?)。それに加えてファイル名や別サーバーの場合のURLについては、特徴的な部分については、JavaScriptで文字コード変換のString.fromCharCodeとかescape,unescapeを使えば、さらにわかりにくいでしょう。escapeはいかにもURLっぽいのがちょっとね。というところですが、%の部分や特定の文字を置き換えて、正規表現で戻してunescapeとか、、、(そこまでするかなぁ)例えばサイト名はちゃんとhttp://~~と書いてファイル名について同名のjpgとcgiファイルを置いてImageオブジェクトの呼び出しの時に加工するとか。

| | コメント (0) | トラックバック (0)

«BlogWriteから投稿(HEAD部分に文字を入れたい)