hypweb.net
XOOPSマニア  最新情報のRSS(サイト全体)
[ 自宅サーバーWebRing |ID=54 前後5表示乱移動サイト一覧 ]

TOP » UsersWiki » calendar nao-pon/blog/2006.06
Archives
2003
1 2 3 4 5 6 7 8 9 10 11 12
2004
1 2 3 4 5 6 7 8 9 10 11 12
2005
1 2 3 4 5 6 7 8 9 10 11 12
2006
1 2 3 4 5 6 7 8 9 10 11 12
2007
1 2 3 4 5 6 7 8 9 10 11 12
2008
1 2 3 4 5 6 7 8 9 10 11 12
2009
1 2 3 4 5 6 7 8 9 10 11 12
2010
1 2 3 4 5 6 7 8 9 10 11 12
2011
1 2 3 4 5 6 7 8 9 10 11 12
2012
1 2 3 4 5 6 7 8 9 10 11 12
2013
1 2 3 4 5 6 7 8 9 10 11 12
2014
1 2 3 4 5 6 7 8 9 10 11 12
2015
1 2 3 4 5 6 7 8 9 10 11 12
2016
1 2 3 4 5 6 7 8 9 10 11 12
2017
1 2 3 4 5 6 7 8 9 10 11 12
2020
1 2 3 4 5 6 7 8 9 10 11 12
2021
1 2 3 4 5 6 7 8 9 10 11 12
2022
1 2 3 4 5 6 7 8 9 10 11 12
2023
1 2 3 4 5 6 7 8 9 10 11 12
<< 2006.6 >>
[nao-pon/blog]
        1 2 3
4 5 6 8 9 10
11 12 13 14 15 16 17
18 19 20 23 24
25 26 28 29  
 

Yahoo!JAPAN Webサービス API anchor.png

Tag: プログラミング
Yahoo!JAPAN の Webサービス APIで PukiWikiMod 用のプラグインを作ってみた。

とりあえず、動作させてみただけ。アウトプットのレイアウトをこれから煮詰める予定です。 :)

結構、イケルかも。 :D

Page Top

サンプルです。 anchor.png

Page Top
Web検索 (KAT-TUN) anchor.png
Google のサーバーに接続できませんでした。
Page Top
画像検索 (KAT-TUN) anchor.png
Google のサーバーに接続できませんでした。
Page Top
動画検索 (KAT-TUN) anchor.png
Google のサーバーに接続できませんでした。




 

XREA で容量オーバー anchor.png

Tag: ネット

XREA でもサーバースペースを借りています。容量は 1000M なので、まだまだ余裕だと思っていたところ、FTPでファイルを上げていたら「容量が足りません」ってメッセージ。

おかしいな?って。でも思い当たる節が・・・

サムネイルの作成で、画像サイズが大きい場合 GD で作成しようと思うと、PHPのメモリー制限に引っ掛かり PHP が落ちてしまいます。

画像をメモリー上に展開してから、縮小するので当然といえば当然です。

そこで、考えました。「Image Magick」を使おう!って。

でも、XREA は PHP が SAFE MODE で動いているので、 exec() が使えません。

そこで、また考えました。その部分を CGI動作させて実現しよう!って。

そんな、こんなで、テストしていたところ、縮小率を誤って 5000% とかしちゃって、しかも出力先が間違っていたんですね。

でその出力ファイルを SSH でシェルにログインして探してみたら・・・ありました!

/tmp ディレクトリに馬鹿でかいファイルが2個、オーナーが私のアカウントで!

早速、削除して事なきを得ましたとさ。 :D

で、原因となった「Image Magick」を SAFE MODE でも動作させてみようという試みは、上手くいっています。

そのうち、CVSに投入します。 ;)





 

HypCommonFunc を更新 anchor.png

サーバーに imagemagick や jpegtran がインストールされている場合は、サムネイル作成のリサイズや画像回転で、それらを利用するようにしました。

多くのサーバーでは、/usr/bin ディレクトリにインストールされていると思います。その場合は何もしなくても動作するようになっています。

ただし、XREA など PHP がセーフモードで動いている場合は、image_magick.cgi に実行権限を与えてやる必要があります。

XREA の場合、パーミッション 744 でOKのようです。

これらを利用することで、PHPのメモリー制限に縛られずにおおきな画像も処理することができます。

また、jpegtran が使えれば、JPEGのロスレス回転*1が可能になります。

セーフモードに対応させるため、ちょっと工夫が必要でした。

とりあえず XREA での動作を確認していますが、どんな環境でもOKというわけにはいかないでしょう。

なにか、ありましたらコメントをお寄せください。 :D


Page Top
ロスレス回転のサンプル anchor.png

元画像

www.yunphoto.net_yun_3298.jpg

180度回転画像

yun_3298.jpg




 

HEAD method でのレスポンスが遅いのはなぜ? anchor.png

HypCommonFunc の Hyp_HTTP_Request クラスのHTTPクライアントで HEAD method でヘッダ情報のみ受け取ろうと思って試してみたところ、一部のサーバーにて 404 の時レスポンスがなかなか帰ってこなくて、数秒待たされる。

なぜ?

色々調べてみたけど、よく分からない。サーバーの設定によるのだろうか?仮にサーバー側の設定だとすると、こちら側ではどうしようもできない。

ファイルの存在確認を HEAD method で軽快に行おうと思ったのに、GETよりも遅いんじゃ意味がないので、しょうがなく GET method でリクエストして、ヘッダが完了した時点で接続を切るようにしてみた。

ん〜こんなんでいいのか?

誰か〜 Help me! ;)





 

XSS クロスサイトスプリクティング anchor.png

JavaScript を使った動的なサイトページ作成方法の中に、Ajax を利用してサーバーと通信を行い、随時ページ内容を書き換える方法がありますが、ひとつ難点があります。閲覧中のページ同じドメインのサーバーからしかデータを受け取れないということです。

そこで、別ドメインのサーバーから随時データを受け取りたい場合は、<script>タグを動的に書き換えることで、それが可能になります。

そこで、面白いことを思いつきました。

YouTube NAVI という YouTube API を利用するサイトを運営中ですが、その検索タグをリアルタイムで表示できるような仕組みを考えてみました。

1
<script id="youtube_navi_js" src="http://youtube.navi-gate.org/js/tags.js" type="text/javascript" charset="UTF-8"></script>

任意のページにこのHTMLを貼り付けると、リアルタイムで検索タグが表示されます。

こんな感じです。現状は5秒ごとに内容が更新されます。 :)

html(): no argument(s).

もちろんローカルに置いたHTMLでもOKです。 :D

Page Top
仕掛け anchor.png

上記の HTML から呼び出される JavaScript tags.js は次のような感じです。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
(function(){
	var elm;
	if (! (elm = document.getElementById('youtube_navi_tags')))
	{
		var scr = document.getElementById('youtube_navi_js');
		elm = document.createElement('span');
		elm.id = 'youtube_navi_tags';
		elm.className = 'youtube_navi_tags';
		scr.parentNode.insertBefore(elm,scr);
	}
	elm.innerHTML = "この部分にタグのHTMLが入ります";
	setTimeout(function(){
		var scr;
		if (scr = document.getElementById('youtube_navi_js')){scr.parentNode.removeChild(scr);}
		scr  = document.createElement('script');
		scr.id   = 'youtube_navi_js';
		scr.src  = 'http://youtube.navi-gate.org/js/tags.js';
		scr.setAttribute('type','text/javascript');
		scr.setAttribute('charset','UTF-8');
		document.body.insertBefore(scr,document.body.firstChild);
	},5000);
})();

変数汚染をしないように、無名関数に閉じ込めてあります。

  1. タグのHTMLを表示するコンテナ <span id="youtube_navi_tags"></span> がなければ この <script> の直前に作成
  2. id="youtube_navi_tags" の <span> の内容を書き換え。
  3. 5秒後に自分自身を書き換え

たったこれだけです。

肝心の tags.js は、PHP にて随時書き換えを行っています。

ただ、ブラウザが IE の場合は、タイムスタンプが変わってもキャッシュが有効のままで書き換わらないため、.htaccess に次のような記述をしてキャッシュコントロールを行っています。

1
2
3
4
5
<Files tags.js>
	Header add "Expires" "Thu, 01 Dec 1994 16:00:00 GMT"
	Header add "Pragma" "no-cache"
	Header add "Cache-Control" "no-cache"
</Files>

思いのほか、すっきりとできちゃいました。 :p


タグは100件保存しているので、100件表示バージョンも作ってみました。

1
<script id="youtube_navi_js100" src="http://youtube.navi-gate.org/js/tags100.js" type="text/javascript" charset="UTF-8"></script>

html(): no argument(s).






*1 画像を劣化させることなく回転ができる

トップ 印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
このページのTopへ
メインメニュー
ログイン

ユーザー名:


パスワード:





パスワード紛失  |新規登録
最近の更新
オンライン状況
414 人のユーザが現在オンラインです。 (9 人のユーザが UsersWiki を参照しています。)

登録ユーザ: 0
ゲスト: 414

もっと...
サイト情報