2007/03/30

[技術系]   またIEはハブか!!

at 08:56JST
これが小飼弾氏流の格差社会への回答なのか…!!

とは思わないけど、例によってIEで動作確認してないみたいなので添削。コメント欄に書こうかと思ったが改行直してたら長くなりすぎちゃった。自分用メモ兼ね。

404 Blog Not Found:javascript+CSS - お手軽もんたメソッド
http://blog.livedoor.jp/dankogai/archives/50797726.html

Windows XP SP2 + (IE7|Firefox 2)で確認。
<html> 
<style>
div.mino {
border: outset 1px;
padding: 0.5em;
}
span.monta {
background-color: #000;
}
</style>
<body>
<div
class="mino"
>
みの氏は不二家報道の翌日の番組冒頭で、不二家について
「もうはっきり言って、廃業してもらいたい」
と言い放っているが、
TBSは「
<span
class="monta"
>
『廃業を覚悟して不退転で臨んでください』
という励ましの発言だったのでは
</span
class="monta"
>
」としている。
</div
class="mino"
>
<script>
function minomonta() {
var spans = document.getElementsByTagName( 'span' );
for (var i = 0, l = spans.length; i < l ; i++) {
var span = spans[i];
if ( span.className != 'monta' ) continue;
span.setAttribute(
'title',
'ここをクリックすると...'
);
span[ 'onclick' ] = function () {
this.style.backgroundColor = "transparent";
};

}
}
minomonta();
</script>


修正したのは太字箇所(だけ)。IEではsetAttributeでのイベント登録がうまくいかないことがあるので元のコードではダメ。さらに、attachEventもspan.attachEvent( 'onclick', ... )ではうまく動作しなかったので、無理矢理上書きする。これが美しい国のありかただ。

アルファブロガーがIEを見捨てても、私は最後までゲイツ様について行きますよ!

2007/03/29

[技術系]   POSレジ

at 22:47JST
このあいだ某所でPOSレジについて会話した。

それでPOSのことが頭の片隅に引っかかっていたのだが、今日、たまたまウチのGoogle AdSenseにPOSの広告が出てきた。思わず見に行った。

あ、ちなみに自分のサイトに貼ったAdSenseはクリックせず、プレビューツールを使おう。めんどくさいけど、Googleの人からメール来ちゃうので。
Google AdSense ヘルプ センター: Google AdSense プレビュー ツールとはどのようなものですか。
http://www.google.co.jp/support/adsense/bin/answer.py?answer=10004
Google AdSense ヘルプ センター: プレビュー ツールをインストール/アンインストールするにはどうすればよいですか。
https://www.google.com/adsense/support/bin/answer.py?answer=10005&topic=160

POS-navi 小売店・飲食店向けPOSの情報サイト
http://www.pcpos.co.jp/posnavi.html

こうして見ると、モノクロ液晶+ドロワータイプにディスクミラーリングで18万とか、けっこう安いんだなー。OS別途だけど。

さらにいろいろ眺めると、

日本システムプロジェクト 製品紹介 Web ORDER TOP
http://www.pcpos.co.jp/products/weborder/index.html

とかあって、PocketPCをターミナルにしたファミレス向けオーダーセットがあった。へー。ああいうのは専用端末が多いんだとばっかり思っていたが、PPC使うテもあるか。カンタンに作れるもんなあ。そういえば、最近はポリスメンどものもってる「自転車登録確認システム」もPPCベースだったりする。

こういうの見てると、なんか自分でもシステム作りたくなっちゃうよね。PC情報誌によくPOSレジタイプのPCケースの広告が出ていて、あれがまたどことなく購買欲をそそったりするわけだが、組み合わせていろいろ試行錯誤して…。

仕事じゃなかったらやってみたいなあ。

[技術系]   Yahoo! Mail Web Service

at 19:13JST
ヤフー、「Yahoo Mail」のAPIを公開--ウェブ開発者にアピール - CNET Japan
http://japan.cnet.com/news/media/story/0,2000056023,20346102,00.htm?ref=rss
Yahoo MailのAPIは、Simple Object Access Protocol(SOAP)かJavaScriptベースのJSONを通じて利用できる


なんとなくJSONを使えるというところが気になって、
「ほんならJavaScriptで
 チョロリと簡単なアプリが書けるのかしら」
とAPIをなめてみることにした。

…なんでAPIのページのアドレスを書いておかないんだ>CNET Japan
米Yahoo!のトップページにデベロッパー向けページへのリンクが見あたらず、ひととおり探してしまった。こういうのって探すの大変だよ。日本向けのサーチエンジンで「Yahoo web api」とか検索すると日本のYahoo!のサイトがひっかかっちゃうし。結局、米Yahoo!で「Yahoo developer」と検索してようやくたどりついた(前にデベロッパートークンもらってるんだからそのメールから調べればよかったんだけど思い当たらず)。

リリース:
Introducing the Yahoo! Mail Web Service (Yahoo! Developer Network blog)
http://developer.yahoo.net/blog/archives/2007/03/mail.html

コードサンプル:
http://developer.yahoo.com/mail/code/

…よく考えたらユーザーに認証を踏ませないといけないんだよね。だからそんな簡単でもなかった。とはいえ、Perlのegスクリプトを見た範囲では、フォルダ一覧とかをけっこう簡単に拾える。

これで何ができるかなあ。biffっぽいものを作る意味はあんまりないし。5月から米Yahoo!のメールは容量制限が撤廃されるので、gmailみたいにフィードを溜める場所にするとか? ぼくには興味のない利用法だ。AJAXバリバリですごいメールフロントエンドを作るというのもアリだろうが、どっちかというとYahoo! MailのシンプルなWeb UIのほうが好まれそうだ。

さて?

2007/03/19

[技術系]   Bar++

at 21:03JST
http://memo.hirosiki.jp/article/36181502.html

Bar++ -- a stochastic word segmenter
http://barpp.sourceforge.jp/
現在のところ Windows のバイナリのみ配布しています


配布してねーじゃん(怒)。それともあれか。非モテには見えないバイナリかなんかってオチか!

いや、別に怒られる筋合いはないとは思いますが、ちょっと興味があるので(できあがってるなら)公開してください…。

2007/03/18

[技術系]   クロールの下調べをしてみる

at 01:42JST
Yahoo!ブログ検索 - 検索オプション
http://blog-search.yahoo.co.jp/option

はキーワード無指定・期間指定の検索はできないが、

(て に を は が あ い う え お か き く け こ さ し す せ そ)

をフレーズ検索してやると、ほぼ指定期間のエントリがすべてヒットする。この手法は、某所で企業情報をねこそぎ引っ張ったりするときにもキーワードに「株」を入れるとゴニョゴニョ…ということで。

試しに2005年から各年の一月のヒット件数をまとめてみると、
期間			総件数	1日	1時間あたり
2005/01/01-2005/01/31 297177 9586 399
2006/01/01-2006/01/31 2982408 96206 4008
2007/01/01-2007/01/31 4804278 154976 6457

ということがわかる。とはいえ、2007年は3月までしかないので母集団の偏りをなくすためには対象にできないだろう。

仮に、これを使って2005/01/01〜2006/12/31に毎日1時間おきに10件ずつのエントリURLを取得した場合、

10*24*365*2=175200

ということで、26万2千800件の文書を収集できることになる。

カケラの樹キーワード抽出
http://yune-kotomi.tarenari.jp/page/show/%E3%82%AD%E3%83%BC%E3%83%AF%E3%83%BC%E3%83%89%E6%8A%BD%E5%87%BA%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%B3

が、87091件のコーパスを使用しているということなので、これよりも量的には多いことになる。量が多ければいいというものでもないけど。問題は、
・blogに特化し
・広汎で
・偏りのない
資料を収集できるかどうかだ。

Yahoo!はブログ検索への参入がやや遅かったので、2005年あたりのデータに偏りがある危険性が否定できない。でも、gooブログは

ブログの詳細検索 - goo ブログ
http://blog.goo.ne.jp/search_goo/?MT=&st=time&da=all&dc=10&dp=all&ts=goo&tg=all

日付指定ができない。Technorati JAPANも

テクノラティブログ検索
http://www.technorati.jp/search/

できません。つーことで代替リソースは存在しないような気がする。

2007/03/16

[技術系]   時計が狂う件が気になるのだが…

at 20:16JST
CLON - 2007/03/16 - colinux とかまだつかってるの
http://unknownplace.org/memo/2007/03/16#e002

ぼくもcoLinux派なんだけどなんでほかの仮想化ソフトじゃないかというと、いちど作った環境を移行するのがめんどくさいのはさておき、

「Linuxを入れたときに時計がずんどこズレていく」

件があるからなのだが…。

ふんとはcoLinuxに落ち着く前は、VirtualPCのまだ商用版だったやつを試したりしたんだけど、一時間で数十分ズレるというていたらくに閉口して。おまけにカーネルを再構築したりいろいろしてみたけど、どーにもならんのでやめたのよね。
(ホストにSMBで時刻を聞いて毎分セットしなおすとかいうスクリプトを組んだ気もするのだが、あれどうしたんだっけ…)

風の便りによれば、VMwareでもクロックずれは起きる(まあLinuxだから…)そうなので移行しないでいる。提供ツール使えばどうにかなるとかいう問題なの? ちなみにディストリビューションはSlackwareです(どうせmakeするので関係ないけど)。

あと、別にUML系とかVM系とか使わなくても、Interix使ったらいーじゃねーかという話をする人は誰もいないのだろうか。いちばんパフォーマンスなどのトラブルが起きない気がするぜ。

2007/03/15

[技術系]   こんどは広告をつけた

at 16:09JST
つーことで、関連エントリ検索にコンテキストマッチ広告もどきをつけた。

ToDo:
・[BUG] なぜかときどき広告にパスされるキーワードがundefinedになる
・特殊/amazon/楽天の自動切り替え機能を追加
・表示幅を現在のものを最小にして、長くカスタマイズできるようにもする

ここまでいちおう一週間か。のんびり。

2007/03/14

[技術系]   「関連エントリ自動表示パーツ」できた

at 15:21JST
やった、やった。
過去記事を自動検索して表示するようにできたぞ。

キーワードレベルでは精度がイマイチだと思ってたけど、こうして見るとそれなりにそれっぽい表示になってるような気もする。

あとは広告欄追加だな。

[技術系]   BulkfeedsのAPI

at 12:47JST
今さらながらというか、一年ぶりくらいにチェックしてみたんだけど、BulkfeedsのSimilarity Searchとかって基本的に動作してないよね。なんでやろ。

Bulkfeeds: Developer's API - RSS Directory & Search
http://bulkfeeds.net/app/developer.html

やっぱ負荷が高そうだから、誰も突っ込まないのかね。

2007/03/13

[技術系]   blog検索API

at 21:52JST
んー…。

いろんなところがblog検索のWeb APIを提供しているわけだが。いざそれを使おうと思って調べてみると、なかなかいいのがないなあ…。

ほうぼうでまとめられてはいるんだろうけれど、ざっと見ると、たとえば、

・Technorati JAPANのAPI

がまずあるわねえ。

テクノラティ:ディベロッパープログラム登録
http://www.technorati.jp/developers/signup.html

から、ディベロッパープログラムに登録。

テクノラティ: APIキー
http://www.technorati.jp/developers/apikey.html

で、APIキーを取得すれば使えるんだけど、

テクノラティ利用規約
http://www.technorati.jp/about/tos.html
このAPIキーはテクノラティAPIを個人で、かつ非営利目的のために使う場合のみ利用できます


なので広告と組み合わせるような事例ではダメだろう(別にAdSenseを掲載しているサイトじゃダメ、とかいう話ではなくて、いまぼくが作ってるものについてね)。

Technorati JAPANは、改めてチェックしてみるとずいぶんヒット率がよくなっているので惜しいなあ。

・BLOGRANGER 2.0 - goo ラボ

のほうは、

BLOGRANGER 2.0 - goo ラボ
http://ranger.labs.goo.ne.jp/webapi/webapi.php
利用者は、利用者の個人的かつ非営利の目的の範囲内で、利用者が運営または利用する任意のウェブサイト(以下「利用者サイト」といいます)内に検索エンジン(以下「検索エンジン」といいます)を生成する目的で


なので、やっぱり非営利限定。まあ、そもそもここは返却データがJSONなのでperlで使うにはどうよ? という気もするんだけど。

そうすると、あとは、

・Yahoo!

に戻ってくるしかないわけで。

Yahoo!デベロッパーネットワーク - Yahoo!検索 - ウェブ検索
http://developer.yahoo.co.jp/search/web/V1/webSearch.html

をblog検索に転用するというのも可能だからね。でも、
http://developer.yahoo.co.jp/faq/#tos
を見ると、商用目的での利用は制限していないんだけど、blog検索に使った場合、エントリ作成日時が返されないのでやや不便。

ただ、Yahoo! にはもうひとつ「API」があって、

Yahoo!ブログ検索 - 検索オプション
http://blog-search.yahoo.co.jp/option

のRSS出力を取得すればいいんだよね。

たださあ、

[を] Yahoo!ブログ検索のRSSをブログ検索APIとして使う
http://chalow.net/2006-10-04-1.html

と、「Yahoo!の中の人」も言っているんだけど、別に規約として
「OKよ!」
と言ってるわけじゃないから、そこがちょっと…。うーん。

まあ、別に一日1,000以上もリクエスト飛ばすようなことはないだろうからいっか。Webデベロッパー規約に沿った範囲で使えば。

RESTっぽく使うには、たとえばここのblogを(amazon mx)(←OR表現)で検索する場合、

http://blog-search.yahoo.co.jp/search?p=%28amazon+mx%29+site%3Ahttp%3A%2F%2Fmemo.hirosiki.jp%2F+datef%3A--------+datet%3A--------&yuragi=on&so=dd



http://blog-search.yahoo.co.jp/rss?p=%28amazon+mx%29+site%3Ahttp%3A%2F%2Fmemo.hirosiki.jp%2F

とすればRSSで返ってくる。たぶん、

http://blog-search.yahoo.co.jp/rss?yuragi=on&p=%28amazon+mx%29+site%3Ahttp%3A%2F%2Fmemo.hirosiki.jp%2F

で、ゆらぎにも対応するのだろう。

2007/03/12

[技術系]   Interixメモ

at 22:05JST
旧Services for UNIX。

ちょっと、あとでインストールしよう(Cygwinにイラつきはじめた)。

@IT:製品レビュー:Microsoft Windows Services for UNIX 3.0 日本語版
http://www.atmarkit.co.jp/fwin2k/productreview/sfu30/sfu30_04.html
Interix memo.
http://air.s.kanazawa-u.ac.jp/~ohara/interix.html
【特集】マイクロソフトSFU vs Cygwin
http://journal.mycom.co.jp/special/2004/sfu/001.html

[技術系]   Scalix日本語版リリース

at 20:51JST
AjaxベースのWebメール「Scalix」日本語版が発売 − @IT
http://www.atmarkit.co.jp/news/200703/12/scalix.html

これ、ITmediaオルタナティブblogにポートしてる人が記事書いてたから注目してたんだよね。んで、
・無料で利用できる
・Fedoraなどにバイナリが、そのほかソースも公開
されているコミュニティ版をちょいとダウンロードしてみた。

Scalix Japan
http://www.scalix.co.jp/

で、ざっと眺めてみたんだが…。

当然というか、日本語化されている短いインストールガイドはバイナリパッケージ導入が前提。ぼくは
「なんでもソースからインストールだぜ!」派
なので、tarボールを開いてみた。…うにゃー。

バックエンドはPostgreSQLで、(たぶんメールの認証関係で)cyrusのヘンな(ヘンじゃないけど)デーモンとか使うのね。IMAPが絡んでなきゃいいんだけど…。あと、インストーラ部分のソースを見たら拡張子pyのファイルが…。そのほかうじゃうじゃと。

なんか依存するものが多すぎて、一瞬でmakeする気が失せた。

えーと、まともな人にはたぶんおすすめなプロダクトだと思います。インストーラはXにも対応しててグラフィカルだし。やっぱExchange互換ってのは魅力的だよ。

でもなー、makeしてインストールする人にはねー…。昔のサイボウズみたいにバックエンドもオリジナルのDBで、とか根性入れて作ってくれるとうれしいんだけどな。あー、そしたらソース公開しないか。

まあ、感じたことがごちゃごちゃしててまとまらんのだが、
「依存するプロダクトが多くて、しかもコミュニティベースで、
 顧客側じゃおっかけきれないからサポート買うことになって、
 それがけっこうイイお値段だったら、
 ホントのExchange導入したほうがよくね?」
という不安がほんわかと…。

オープンソースベースでビジネスするなら、ASP的な展開でやったほうがわかりやすいんじゃないだろうか。ローカル側のシステムみたいに面倒なところは、MSにまかせればいいじゃん。

[技術系]   そんなWeb標準は要らない

at 17:49JST
いつのまにかgooブログトップページのコーディングスタイルが変わっているようだ。

goo ブログ
http://blog.goo.ne.jp/

で、XGA環境でIE7を最大化して表示したときはこう見える。

200703120mage1.png


が、ウィンドウ幅がXGAより小さいとこうなる。赤枠内。

20070312mage2.png


別に一カ所だけではなく、全般的にこう。たとえば、

20070312mage3.png


は、

20070312mage4.png


こう。

なにがどうなっているのかまではいちいち書かないが、実にバカげている。Webというのは
「ごくふつうの人」
が閲覧するものだ。そういう人たちは、こういうものを見れば当然混乱するし、自分が悪いのかとさえ思って怖がる。

人を怖がらせることがWeb標準だというのなら、そんな標準は要らないと思う。

インターネットの基礎を作ってきたもののひとつにRFCによるコンセンサスがあるが、アレはより多くの人が幸せになれるようにゆるい取り決めを
「コメント求む(Request For Comments)」
として公開したものであって、居丈高な権威を作り出すためのものではなかった。W3Cは、多くの局面でそれとは異なる精神の発露を見せつけてきた気がする。個人的な意見だが。

gooが悪いとは思わない。しかし、こんなコーディングをして自己満足に浸っている“自称デザイナー”や“自称コーダ”は、即刻腹を切るべきだ。

ゆるいデファクトスタンダードこそがひとを幸せにする。

追記:
スタッフblogを見たら9日にリニューアルだったらしい。

gooブログ スタッフブログ ブログトップページのリニューアル
http://blog.goo.ne.jp/staffblog/e/72c1b3eb702bece42dd973848fefa825

[技術系]   特徴語抽出

at 10:17JST
ということで、特徴語抽出を実現してみた。

下に表示されてる↓

帰ってきたらもうすこし精度を高めて、そんでもって次のステップに入ろう。

2007/03/11

[技術系]   perlにおいてサブルーチンからエラーを返すのは「return;」である

at 03:04JST
よく忘れてハマる…。写経のつもりで書いておこう。

my $i = subroutine() 
or die;

sub subroutine {
if ( 1 == 1 ) {
# エラー
return undef;
}
return 2;
}


としてはいけない。サブルーチンがスカラー値を返すことを前提にしているときはこれで動くが、

my @i = subroutine() 
or die;

sub subroutine {
if ( 1 == 1 ) {
# エラー
return undef;
}
return( 1, 2 );
}


のように、リストコンテキストではエラーが検知できなくなるから。

正しくは「生return」を書く。そうするとコンテキストに応じたエラーが返る。

my @i = subroutine() 
or die;

sub subroutine {
if ( 1 == 1 ) {
# エラー
return; # エラー
}
return( 1, 2 );
}


単に
return;
だと明示的でなくてわかりづらいので、
return; # エラー
と書くクセをつけてみる。

…ということを前に考えてコメントするようにしていたはずなのだが、いつのまにかだんだん忘れてまたハマった。まったく学習機能がない!

2007/03/10

[技術系]   プライベートアドレスの判定

at 10:18JST
perlでプライベートIPアドレスの判定をするのに、10進表記に直してやったらラクかな? と思ったが、

my $host = 
( $url =~ m#http://([^/]+)/?# )[0];
if ( $host =~ /^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/ ) {
my @c =
( $host =~ /^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/ );
my $dec = $c[0]*(256**3)+$c[1]*(256**2)+$c[2]*(256)+$c[3];
return 1
if (
( ( 167772160 <= $dec ) && ( $dec <= 184549375 ) )
|| ( ( 2886729728 <= $dec ) && ( $dec <= 2887778303 ) )
|| ( ( 3232235520 <= $dec ) && ( $dec <= 3232301055 ) )
);
}


正規表現のほうが早いような気もしないでもない…。

ちなみに、
#Class A	10.0.0.0〜10.255.255.255		167772160〜184549375 
#Class B 172.16.0.0〜172.31.255.255 2886729728〜2887778303
#Class C 192.168.0.0〜192.168.255.255 3232235520〜3232301055
のはず。

2007/03/08

[技術系]   動画の縦横を変換する:いちばん手間のかからない方法

at 16:12JST
Windowsでは↓このソフトを使う。再エンコードの手間さえ不要なすぐれものです。
http://www.portrait.com/jp/products/pp_overview.html

ぼくは最近、ハードウェアで解決するようにしました。ラクチンですよ。

縦で撮ってしまった動画を90度回転させる方法 | P O P * P O P
http://www.popxpop.com/archives/2007/03/90.html

404 Blog Not Found:動画の縦横変換 - Windows以外の場合
http://blog.livedoor.jp/dankogai/archives/50781606.html

ちなみにDanさんの挙げてるQuickTime Proでの例は、QuickTimeの縦横フラグを書き換えてるだけなんだよね。だから再生側の対応が不完全だとうまく再生できないこともある。このフラグを書き換えるフリーのツールをもっていたのだけど、このあいだ10年来貯めてきたフリーソフトアーカイブがクラッシュしたので行方不明に…。

2007/03/07

[技術系]   キミたちの添削例はまだまだだ

at 18:36JST
404 Blog Not Found:勝手に添削 - Ajaxでデバッグしよう - @IT
http://blog.livedoor.jp/dankogai/archives/50780781.html

naoyaグループ - naoyaの日記 - CGI
http://naoya.g.hatena.ne.jp/naoya/20070307/1173255756

Web経由でログを閲覧できるインタラクティブ機能を追加したうえで、ミニマルにつきつめて添削したらこうなりました。

#!/bin/sh 
/bin/cat <<_EOF
Content-Type: text/plain

_EOF
/bin/tail -100 /usr/local/apache/logs/access_log


Ajaxでデバッグしよう - @IT
http://www.atmarkit.co.jp/fwcr/special/ajax_debug/03.html
# エージェントはGETメソッドだけを使用するのでPOSTは考慮しない


だそうなので、なんにもスクリプト組まなくてもこれでApacheのログ見ればいいだけなのでは…。

[技術系]   Webマイニング講座

at 05:42JST
Webマイニングというか、いちおうクラスタリング的な技術について解説するようだが。無料ならけっこうお得じゃないか?

https://e-support.ehdo.go.jp/pseminar/sem_applicate.php?SEM_ID=432

ひまつぶしに行ってみるか。しかし、4月末まで覚えていられるかどうかが問題だ。

2007/03/05

[技術系]   そういうときはぼくの書いた汚いスクリプトを使うんだハァハァ

at 10:40JST
小野和俊のブログ:mixi で外部ブログを使っている人への提案
http://blog.livedoor.jp/lalha/archives/50155360.html


ひろ式めもちょう: RSSからmixiに自動転載
http://memo.hirosiki.jp/article/26439203.html

最近ちょっとおかしいけど。
参考:http://memo.hirosiki.jp/article/34349888.html

Plagger? なにそれ(怒)。
さらに過去の記事
2009/04 (1)   2008/12 (3)   2008/11 (9)   2008/10 (10)   2008/09 (20)   2008/08 (2)   2008/07 (23)   2008/06 (16)   2008/05 (22)   2008/04 (11)   2008/03 (21)   2008/02 (20)   2008/01 (21)   2007/12 (32)   2007/11 (37)   2007/10 (46)   2007/09 (63)   2007/08 (33)   2007/07 (41)   2007/06 (81)   2007/05 (173)   2007/04 (168)   2007/03 (113)   2007/02 (123)   2007/01 (92)   2006/12 (111)   2006/11 (185)   2006/10 (20)  

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。