<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SharpLab. &#187; WebScripting</title>
	<atom:link href="http://blog.sharplab.net/category/computer/scripting/webscripting/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.sharplab.net</link>
	<description>Shiroicaが学び、経験したことを綴る個人サイト。</description>
	<lastBuildDate>Thu, 12 Jan 2012 00:57:03 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>P2で自分のtwitterのログを保存開始</title>
		<link>http://blog.sharplab.net/blog/2009/04/15/p2%e3%81%a7%e8%87%aa%e5%88%86%e3%81%aetwitter%e3%81%ae%e3%83%ad%e3%82%b0%e3%82%92%e4%bf%9d%e5%ad%98%e9%96%8b%e5%a7%8b/</link>
		<comments>http://blog.sharplab.net/blog/2009/04/15/p2%e3%81%a7%e8%87%aa%e5%88%86%e3%81%aetwitter%e3%81%ae%e3%83%ad%e3%82%b0%e3%82%92%e4%bf%9d%e5%ad%98%e9%96%8b%e5%a7%8b/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 15:55:16 +0000</pubDate>
		<dc:creator>shiroica</dc:creator>
				<category><![CDATA[WebScripting]]></category>

		<guid isPermaLink="false">http://blog.sharplab.net/computer/scripting/webscripting/3023/</guid>
		<description><![CDATA[一昨日のWordCampでもMatt直々に紹介があったP2、自分も早速設置してみました。 P2 &#8211; SharpLab. おお～。素敵素敵。でも、Twitterの魅力である、TLを通じた他人とのインタラクションは一人でP2を使っているのでは得られないので（多分。P2にはFollowとかいう仕組みはないですよね？）、自分はこのP2を適用したBlogをTwitterの自分のTweetのログを収集するために使うことにしました。 利用したのはTwitter Toolsというプラグイン。自分のTwitterでのTweetを収集してサイドバーとかに表示したり、一日のTweetのサマリ記事をBlogに自動で投稿したりする機能を持った、TwitterとWordPressをつなぐ働きを持った多機能プラグインです。で、今回はこのプラグインの「Tweet毎にエントリを自動投稿する」機能を利用しています。 但し、Twitter ToolsとP2をあわせて使う上で注意点が一つ。Twitter ToolsもP2も、Services_JSONというPEARのクラスを利用するのですが、それぞれがServices_JSONを定義しようとするために衝突が起こってしまうという問題があります。そこでP2のテーマの中にある、inc/JSON.phpファイルを少し修正してやる必要があります。Services_JSONの定義を丸ごと、以下のif文で括ってやればOKです。（いかにもPHPな話ですね…。） if (!class_exists('Services_JSON')) { //Services_JSONの定義 } あとはTwitter Toolsの設定で&#34;Create a blog post from each of your tweets?&#34;という項目をYesに設定したり必要な設定を済ませるだけです！素敵ですね。]]></description>
			<content:encoded><![CDATA[<p>一昨日のWordCampでもMatt直々に紹介があったP2、自分も早速設置してみました。</p>
<p><a href="http://p2.sharplab.net/">P2 &#8211; SharpLab.</a></p>
<p><a rel="lightbox" href="http://blog.sharplab.net/wp-content/uploads/2009/04/image3.png"><img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="323" alt="image" src="http://blog.sharplab.net/wp-content/uploads/2009/04/image-thumb3.png" width="614" border="0" /></a> </p>
<p>おお～。素敵素敵。でも、Twitterの魅力である、TLを通じた他人とのインタラクションは一人でP2を使っているのでは得られないので（多分。P2にはFollowとかいう仕組みはないですよね？）、自分はこのP2を適用したBlogをTwitterの自分のTweetのログを収集するために使うことにしました。</p>
<p>利用したのは<a href="http://wordpress.org/extend/plugins/twitter-tools/">Twitter Tools</a>というプラグイン。自分のTwitterでのTweetを収集してサイドバーとかに表示したり、一日のTweetのサマリ記事をBlogに自動で投稿したりする機能を持った、TwitterとWordPressをつなぐ働きを持った多機能プラグインです。で、今回はこのプラグインの「Tweet毎にエントリを自動投稿する」機能を利用しています。</p>
<p>但し、Twitter ToolsとP2をあわせて使う上で注意点が一つ。Twitter ToolsもP2も、Services_JSONというPEARのクラスを利用するのですが、それぞれがServices_JSONを定義しようとするために衝突が起こってしまうという問題があります。そこでP2のテーマの中にある、inc/JSON.phpファイルを少し修正してやる必要があります。Services_JSONの定義を丸ごと、以下のif文で括ってやればOKです。（いかにもPHPな話ですね…。）</p>
<div class="wlWriterEditableSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:84611e3a-f415-4614-bb7e-98e114a6eaa1" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre name="code" class="php">if (!class_exists('Services_JSON')) {

//Services_JSONの定義

}</pre>
</div>
<p>あとはTwitter Toolsの設定で&quot;Create a blog post from each of your tweets?&quot;という項目をYesに設定したり必要な設定を済ませるだけです！素敵ですね。 </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sharplab.net/blog/2009/04/15/p2%e3%81%a7%e8%87%aa%e5%88%86%e3%81%aetwitter%e3%81%ae%e3%83%ad%e3%82%b0%e3%82%92%e4%bf%9d%e5%ad%98%e9%96%8b%e5%a7%8b/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>今年のニコ動のエイプリールフールネタ</title>
		<link>http://blog.sharplab.net/blog/2009/04/01/1892/</link>
		<comments>http://blog.sharplab.net/blog/2009/04/01/1892/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 16:16:25 +0000</pubDate>
		<dc:creator>shiroica</dc:creator>
				<category><![CDATA[WebScripting]]></category>
		<category><![CDATA[April Fools' Day]]></category>
		<category><![CDATA[Char]]></category>
		<category><![CDATA[NicoVideo]]></category>

		<guid isPermaLink="false">http://blog.sharplab.net/computer/scripting/webscripting/1892/</guid>
		<description><![CDATA[去年はコメント逆流だった。今年は何かなと思いふと見てみると…。 これは…… ニコ動はこういったflvplayerの挙動の切り替えにいつもプレイヤーのembedタグのflashvars属性を使っているのでソースを見てみた。 &#60;embed id="flvplayer" height="540" width="952" flashvars="v=sm6595043&#38;videoId=sm6595043&#38;deleted=0&#38;mylist_counter=5941&#38;movie_type=flv&#38;thumbImage=http://tn-skr4.smilevideo.jp/smile?i=6595043&#38;us=0&#38;ad=web_pc_player_marquee&#38;iee=1&#38;wv_id=sm6595043&#38;wv_title=%E3%80%90%E8%A8%9B%E3%82%8A%E5%AE%9F%E6%B3%81%E3%80%91%20%E3%83%AF%E3%83%B3%E3%83%80%E3%81%A8%E5%B7%A8%E5%83%8F%E3%80%80Vol%EF%BC%9A01&#38;wv_code=d806da3d&#38;wv_time=1238515393&#38;button_threshold=0&#38;thumbTitle=%E3%80%90%E8%A8%9B%E3%82%8A%E5%AE%9F%E6%B3%81%E3%80%91%20%E3%83%AF%E3%83%B3%E3%83%80%E3%81%A8%E5%B7%A8%E5%83%8F%E3%80%80Vol%EF%BC%9A01&#38;thumbDescription=%E2%94%80%E2%94%80%E6%9C%80%E5%BE%8C%E3%81%AE%E4%B8%80%E6%92%83%E3%81%AF%E3%80%81%E3%81%9B%E3%81%A4%E3%81%AA%E3%81%84%E3%80%82%E3%82%82%E3%81%86%E4%B8%80%E5%BA%A6%E3%81%8D%E3%81%BF%E3%81%A8%E4%BC%9A%E3%81%86%E7%82%BA%E3%81%AB%E3%80%81%E5%83%95%E3%82%89%E3%81%AF...&#38;weather1=%E3%81%8F%E3%82%82%E3%82%8A&#38;conjunction=%E6%99%82%E3%80%85&#38;weather2=%E9%9B%A8&#38;highest_temperature=13.0&#38;lowest_temperature=8.0&#38;chance_of_rain=40&#38;player_version_xml=1233560503&#38;marqueeVersion=1238147635&#38;theRevengeOfChar=1" allowfullscreen="true" allowscriptaccess="always" quality="high" bgcolor="#FFFFFF" name="flvplayer" style="" src="http://www.nicovideo.jp/swf/nicoplayer.swf?ts=1238491869" type="application/x-shockwave-flash"/&#62; flashvars属性の最後の部分に注目。 theRevengeOfChar=1 逆シャアですね、わかります。 ふとWikipedia引いてみた。 『機動戦士ガンダム 逆襲のシャア』（きどうせんし- ぎゃくしゅう-、MOBILE SUIT GUNDAM Char&#8217;s Counter Attack）は、1988年3月に松竹系で劇場公開されたガンダムシリーズのアニメ映画。宇宙世紀（UC）の2人の主人公、アムロ・レイとシャア・アズナブルの最後の対決を描いている。ファンの間では「逆シャア」や英題の頭文字を取り「CCA」などと略されることもある。 機動戦士ガンダム 逆襲のシャア 出典: フリー百科事典『ウィキペディア（Wikipedia）』 英語表記違うやん…。]]></description>
			<content:encoded><![CDATA[<p>去年はコメント逆流だった。今年は何かなと思いふと見てみると…。</p>
<p><a rel="lightbox" href="http://blog.sharplab.net/wp-content/uploads/2009/04/image.png"><img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="232" alt="image" src="http://blog.sharplab.net/wp-content/uploads/2009/04/image-thumb.png" width="404" border="0" /></a> </p>
<p><strong style="font-size: 2em; color: #ff0000">これは……</strong></p>
<p>ニコ動はこういったflvplayerの挙動の切り替えにいつもプレイヤーのembedタグのflashvars属性を使っているのでソースを見てみた。</p>
</p>
<div class="wlWriterEditableSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:a31afd99-7d25-4701-8db4-c947cfd2ac7d" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre name="code" class="xml">&lt;embed id="flvplayer" height="540" width="952" flashvars="v=sm6595043&amp;videoId=sm6595043&amp;deleted=0&amp;mylist_counter=5941&amp;movie_type=flv&amp;thumbImage=http://tn-skr4.smilevideo.jp/smile?i=6595043&amp;us=0&amp;ad=web_pc_player_marquee&amp;iee=1&amp;wv_id=sm6595043&amp;wv_title=%E3%80%90%E8%A8%9B%E3%82%8A%E5%AE%9F%E6%B3%81%E3%80%91%20%E3%83%AF%E3%83%B3%E3%83%80%E3%81%A8%E5%B7%A8%E5%83%8F%E3%80%80Vol%EF%BC%9A01&amp;wv_code=d806da3d&amp;wv_time=1238515393&amp;button_threshold=0&amp;thumbTitle=%E3%80%90%E8%A8%9B%E3%82%8A%E5%AE%9F%E6%B3%81%E3%80%91%20%E3%83%AF%E3%83%B3%E3%83%80%E3%81%A8%E5%B7%A8%E5%83%8F%E3%80%80Vol%EF%BC%9A01&amp;thumbDescription=%E2%94%80%E2%94%80%E6%9C%80%E5%BE%8C%E3%81%AE%E4%B8%80%E6%92%83%E3%81%AF%E3%80%81%E3%81%9B%E3%81%A4%E3%81%AA%E3%81%84%E3%80%82%E3%82%82%E3%81%86%E4%B8%80%E5%BA%A6%E3%81%8D%E3%81%BF%E3%81%A8%E4%BC%9A%E3%81%86%E7%82%BA%E3%81%AB%E3%80%81%E5%83%95%E3%82%89%E3%81%AF...&amp;weather1=%E3%81%8F%E3%82%82%E3%82%8A&amp;conjunction=%E6%99%82%E3%80%85&amp;weather2=%E9%9B%A8&amp;highest_temperature=13.0&amp;lowest_temperature=8.0&amp;chance_of_rain=40&amp;player_version_xml=1233560503&amp;marqueeVersion=1238147635&amp;theRevengeOfChar=1" allowfullscreen="true" allowscriptaccess="always" quality="high" bgcolor="#FFFFFF" name="flvplayer" style="" src="http://www.nicovideo.jp/swf/nicoplayer.swf?ts=1238491869" type="application/x-shockwave-flash"/&gt;</pre>
</div>
<p>flashvars属性の最後の部分に注目。</p>
<div class="wlWriterEditableSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:129d597d-6334-49af-b66d-6d7203bb817d" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre name="code" class="xml">theRevengeOfChar=1</pre>
</div>
<p><strong style="font-size: 2em; color: #ff0000">逆シャアですね、わかります。</strong></p>
<p>ふとWikipedia引いてみた。</p>
<blockquote>
<p>『<b>機動戦士ガンダム 逆襲のシャア</b>』（きどうせんし- ぎゃくしゅう-、<b>MOBILE SUIT GUNDAM Char&#8217;s Counter Attack</b>）は、<a href="http://ja.wikipedia.org/wiki/1988%E5%B9%B4">1988年</a>3月に<a href="http://ja.wikipedia.org/wiki/%E6%9D%BE%E7%AB%B9">松竹</a>系で劇場公開された<a href="http://ja.wikipedia.org/wiki/%E3%82%AC%E3%83%B3%E3%83%80%E3%83%A0%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA">ガンダムシリーズ</a>の<a href="http://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%8B%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E6%98%A0%E7%94%BB">アニメ映画</a>。<a href="http://ja.wikipedia.org/wiki/%E5%AE%87%E5%AE%99%E4%B8%96%E7%B4%80">宇宙世紀</a>（UC）の2人の主人公、<a href="http://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%A0%E3%83%AD%E3%83%BB%E3%83%AC%E3%82%A4">アムロ・レイ</a>と<a href="http://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%A3%E3%82%A2%E3%83%BB%E3%82%A2%E3%82%BA%E3%83%8A%E3%83%96%E3%83%AB">シャア・アズナブル</a>の最後の対決を描いている。ファンの間では「<b>逆シャア</b>」や英題の頭文字を取り「<b>CCA</b>」などと略されることもある。</p>
<p><cite><a href="http://ja.wikipedia.org/wiki/%E6%A9%9F%E5%8B%95%E6%88%A6%E5%A3%AB%E3%82%AC%E3%83%B3%E3%83%80%E3%83%A0_%E9%80%86%E8%A5%B2%E3%81%AE%E3%82%B7%E3%83%A3%E3%82%A2">機動戦士ガンダム 逆襲のシャア<br />
        <br />出典: フリー百科事典『ウィキペディア（Wikipedia）』</a></cite></p>
</blockquote>
<p><a href="http://ja.wikipedia.org/wiki/%E3%82%AC%E3%83%B3%E3%83%80%E3%83%A0%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA"></a></p>
<p>英語表記違うやん…。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sharplab.net/blog/2009/04/01/1892/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Related Post for Japanese 1.50 導入してみた</title>
		<link>http://blog.sharplab.net/blog/2009/03/15/1869/</link>
		<comments>http://blog.sharplab.net/blog/2009/03/15/1869/#comments</comments>
		<pubDate>Sun, 15 Mar 2009 12:50:11 +0000</pubDate>
		<dc:creator>shiroica</dc:creator>
				<category><![CDATA[WebScripting]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[SharpLab]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blog.sharplab.net/computer/scripting/webscripting/1869/</guid>
		<description><![CDATA[hiromasaさんが開発されたWordPress Related Post for Japanese 1.50、このサイトでも導入してみました。WordPress Related Post for Japaneseは、Yahoo! Japanの形態素解析APIを利用して関連エントリを取得・表示するプラグインです。実はver1.1のころから導入はしていて、裏で走らせてはいたのですが、そのころはBlogのエントリ数自体がまだ少なく、関連エントリを表示しようにも表示するエントリがないため精度が微妙だったので、表示するためのタグは張らずに遊んでいる状態でした。 でも今なら大丈夫！しっかり関連エントリが表示されています！ 原理上短いエントリの場合、どうしても精度が出ない場合もありますが、それは努めて長文エントリ書くようにする、という運用でカバーしていければと思いますｗ]]></description>
			<content:encoded><![CDATA[<p>hiromasaさんが開発された<a href="http://another.maple4ever.net/archives/705/">WordPress Related Post for Japanese 1.50</a>、このサイトでも導入してみました。<a href="http://another.maple4ever.net/archives/705/">WordPress Related Post for Japanese</a>は、Yahoo! Japanの形態素解析APIを利用して関連エントリを取得・表示するプラグインです。実はver1.1のころから導入はしていて、裏で走らせてはいたのですが、そのころはBlogのエントリ数自体がまだ少なく、関連エントリを表示しようにも表示するエントリがないため精度が微妙だったので、表示するためのタグは張らずに遊んでいる状態でした。</p>
<p>でも今なら大丈夫！しっかり関連エントリが表示されています！</p>
<p><a rel="lightbox" href="http://blog.sharplab.net/wp-content/uploads/2009/03/image1.png"><img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="316" alt="image" src="http://blog.sharplab.net/wp-content/uploads/2009/03/image-thumb1.png" width="614" border="0" /></a> </p>
<p>原理上短いエントリの場合、どうしても精度が出ない場合もありますが、それは努めて長文エントリ書くようにする、という運用でカバーしていければと思いますｗ</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sharplab.net/blog/2009/03/15/1869/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Vistaのlocalhost</title>
		<link>http://blog.sharplab.net/blog/2009/03/10/1848/</link>
		<comments>http://blog.sharplab.net/blog/2009/03/10/1848/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 13:59:56 +0000</pubDate>
		<dc:creator>shiroica</dc:creator>
				<category><![CDATA[WebScripting]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[localhost]]></category>
		<category><![CDATA[Vista]]></category>

		<guid isPermaLink="false">http://blog.sharplab.net/computer/scripting/webscripting/1848/</guid>
		<description><![CDATA[久しぶりにWindowsでXAMPPを立ち上げてみると、Apacheは起動しているのに画面が表示されないという不可解な現象に直面。Apacheは確かに起動しているのに、http://localhost/にアクセスしてみてもページ読み込みエラーが出るという…。散々悩んだ挙句、ふとhttp://127.0.0.1/ と打ち込んでみると見事にXAMPPのスプラッシュ画面が。どうやら、localhostを解決するためのhostsファイルが書き変わっていたためのようだ（近頃の、とあるR。 » localhostが動かなくなった より）。 前は動いていたのに、何のタイミングでこんなことになったのかなぁ…？ 2009-03-16追記：Windows Defenderのせいらしい。 Expression Blend and Design : &#34;Page Cannot Be Found&#34; Issue when Previewing via Expression Blend]]></description>
			<content:encoded><![CDATA[<p>久しぶりにWindowsでXAMPPを立ち上げてみると、Apacheは起動しているのに画面が表示されないという不可解な現象に直面。Apacheは確かに起動しているのに、<a href="http://localhost/">http://localhost/</a>にアクセスしてみてもページ読み込みエラーが出るという…。散々悩んだ挙句、ふと<a href="http://127.0.0.1/">http://127.0.0.1/</a> と打ち込んでみると見事にXAMPPのスプラッシュ画面が。どうやら、localhostを解決するためのhostsファイルが書き変わっていたためのようだ（<a href="http://www.denkasi.com/blog/2008/10/246">近頃の、とあるR。 » localhostが動かなくなった</a> より）。</p>
<p>前は動いていたのに、何のタイミングでこんなことになったのかなぁ…？</p>
<p>2009-03-16追記：Windows Defenderのせいらしい。   <br /><a href="http://blogs.msdn.com/expression/archive/2009/03/16/page-cannot-be-found-issue-when-previewing-via-expression-blend.aspx">Expression Blend and Design : &quot;Page Cannot Be Found&quot; Issue when Previewing via Expression Blend</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sharplab.net/blog/2009/03/10/1848/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse PDT+Aptana+Subclipse</title>
		<link>http://blog.sharplab.net/blog/2008/12/14/1456/</link>
		<comments>http://blog.sharplab.net/blog/2008/12/14/1456/#comments</comments>
		<pubDate>Sun, 14 Dec 2008 06:25:01 +0000</pubDate>
		<dc:creator>shiroica</dc:creator>
				<category><![CDATA[WebScripting]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.sharplab.net/computer/scripting/webscripting/1456/</guid>
		<description><![CDATA[WordPress2.7が出たのをきっかけに、いい加減PHPの開発環境を整えようということで、hiromasaさん御用達のEclipse PDTの導入と、WebオーサリングツールであるAptana、SubversionクライアントであるSubclipseの導入を行ってみました。 参考にしたサイトはこちら Eclipse+pdtインストール 日本語化してPHP開発環境を作る(Xampp) – delab Subclipseのインストール方法 基本的にこの二つのサイトの指示に従ってインストールを進められたのですが、途中、PDTの「PHPサーバーの設定」のところでつまづきました。あるはずの「このサーバーへプロジェクトを公開」の項が…ない！という問題。実行時にXAMPPのフォルダにプロジェクトをコピーしてくれるオプションだったので、これがないと書いたものを走らせることができないので困ります。 ググるとBug 216086 – Run command borked, can&#8217;t get ALL files to copyというページに行き当たりまして（via ひとり２ちゃん: Eclipse で PHP PDT）、どうやら「このサーバーへプロジェクトを公開」というオプションは、削除されてしまったみたいです。 理由は、 デカいプロジェクトだとコピーの作業って時間食うよね コード書き換えたらいちいちPublishしないといけないのはめんどうだよね、ブラウザでF5キー押すだけのほうがいいよね プロジェクトから削除したファイルがPublish先にゴミとして残ることがあるのはマズいよね とのこと。なるほど。そして代替策としてhttpd.confを使ってエイリアスの定義をするやり方が紹介されていました。 で、それら設定をすべて済ませて、レポジトリからチェックアウトしてきたWordPress2.7をステップ実行してみたの図。 おおー！これは凄い。そしてこれまでテキストエディタでWordPressのThemeを書いて、var_dump()を使ってデバッグをしていた自分の努力はなんだったんだ…。]]></description>
			<content:encoded><![CDATA[<p>WordPress2.7が出たのをきっかけに、いい加減PHPの開発環境を整えようということで、<a href="http://another.maple4ever.net/">hiromasa</a>さん御用達のEclipse PDTの導入と、WebオーサリングツールであるAptana、SubversionクライアントであるSubclipseの導入を行ってみました。</p>
<p>参考にしたサイトはこちら</p>
<p><a href="http://de-lab.com/article/eclipse/">Eclipse+pdtインストール 日本語化してPHP開発環境を作る(Xampp) – delab</a></p>
<p><a href="http://server.seasar.org/manual/install_subclipse.html">Subclipseのインストール方法</a></p>
<p>基本的にこの二つのサイトの指示に従ってインストールを進められたのですが、途中、PDTの<a href="http://de-lab.com/article/eclipse_setting/">「PHPサーバーの設定」のところ</a>でつまづきました。あるはずの「このサーバーへプロジェクトを公開」の項が…ない！という問題。実行時にXAMPPのフォルダにプロジェクトをコピーしてくれるオプションだったので、これがないと書いたものを走らせることができないので困ります。</p>
<p>ググると<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=216086#c3">Bug 216086 – Run command borked, can&#8217;t get ALL files to copy</a>というページに行き当たりまして（via <a href="http://quattrooooo.cocolog-nifty.com/blog/2008/05/eclipse_php_pdt_0cce.html">ひとり２ちゃん: Eclipse で PHP PDT</a>）、どうやら「このサーバーへプロジェクトを公開」というオプションは、削除されてしまったみたいです。</p>
<p>理由は、</p>
<ul>
<li>デカいプロジェクトだとコピーの作業って時間食うよね </li>
<li>コード書き換えたらいちいちPublishしないといけないのはめんどうだよね、ブラウザでF5キー押すだけのほうがいいよね </li>
<li>プロジェクトから削除したファイルがPublish先にゴミとして残ることがあるのはマズいよね </li>
</ul>
<p>とのこと。なるほど。そして代替策としてhttpd.confを使ってエイリアスの定義をするやり方が紹介されていました。    </p>
<p>で、それら設定をすべて済ませて、レポジトリからチェックアウトしてきたWordPress2.7をステップ実行してみたの図。</p>
<p><a href="http://blog.sharplab.net/wp-content/uploads/2008/12/image13.png" rel="lightbox"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="370" alt="image" src="http://blog.sharplab.net/wp-content/uploads/2008/12/image-thumb13.png" width="614" border="0" /></a></p>
<p>おおー！これは凄い。そしてこれまでテキストエディタでWordPressのThemeを書いて、var_dump()を使ってデバッグをしていた自分の努力はなんだったんだ…。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sharplab.net/blog/2008/12/14/1456/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XPathGraphでiKnowの進捗状況を描く</title>
		<link>http://blog.sharplab.net/blog/2008/05/17/112/</link>
		<comments>http://blog.sharplab.net/blog/2008/05/17/112/#comments</comments>
		<pubDate>Fri, 16 May 2008 15:44:58 +0000</pubDate>
		<dc:creator>shiroica</dc:creator>
				<category><![CDATA[iKnow]]></category>
		<category><![CDATA[WebScripting]]></category>

		<guid isPermaLink="false">http://www.sharplab.net/?p=112</guid>
		<description><![CDATA[id:amachangさんによる紹介記事を読んで知ったXPathGraphを使って、自分のiKnowの学習中アイテム数と学習完了アイテム数を表示するグラフを描いてみた。木曜の1限が休講になって、ボケっとしているうちに思いついたので勢いで書いたのだが、グラフが描かれるまで待ってたのでエントリが遅くなってしまった。 さて、XPathGraphはURLで指定したデータソースに対して、1日1回XPath式を実行し、得られる数字をグラフにしてくれるというサービス。 iKnowの学習中アイテム数は、Flashで作成されたブログパーツが使用しているXMLファイルから取得できることはiKnowLastAccessTimeCheckerを書いた時に確認済。これを使えばすぐ終わるかなと考えていたのだが…、XPathGraphは困ったことに、XMLファイルを解さないらしい。XPathなのに。…XPathなのに。その訳を調べてみると、どうやらXPathGraphはXPathの処理系にHTML::TreeBuilder::XPathとかいうHTML処理用？の奴を使っているらしく、XMLでもHTMLとして処理しようとする為らしい。仕方ないのでYahoo pipesという米Yahoo!のサービスと組み合わせてみようとしたところ、今度はiKnowのXMLファイルにXML宣言が無いせいでパースエラー。／(^o^)＼ナンテコッタイ という訳で最終的にはpipeにあたるものをphpで自作。要はXMLからデータを取ってきて、HTML化すれば良いわけだから、iKnowLastAccessTimeCheckerの時と同じ要領。 &#60;?php function getScores($id){ $req = 'http://www.iknow.co.jp/assets/user/' . $id . '/iknow_badge.xml'; $iknow = @simplexml_load_file($req); if($iknow===false){ echo('パースエラー'); exit(); } $studying = $iknow-&#62;history-&#62;fragment-&#62;score[0]; $finished = $iknow-&#62;history-&#62;fragment-&#62;score[1]; return array("studying"=&#62;$studying, "finished"=&#62;$finished); } ?&#62; &#60;?php $id = htmlspecialchars($_GET['id']); ?&#62; &#60;!DOCTYPE html PUBLIC '-/W3C/DTD XHTML 1.0 Strict/EN' 'http:/www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'&#62; &#60;html xmlns='http:/www.w3.org/1999/xhtml' xml:lang='ja' lang='ja'&#62; &#60;head&#62; &#60;meta http-equiv='Content-Type' content='text/html; charset=utf-8'&#62; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://d.hatena.ne.jp/amachang/">id:amachang</a>さんによる<a href="http://d.hatena.ne.jp/amachang/20080411/1207903422">紹介記事</a>を読んで知った<a href="http://xpath.kayac.com/">XPathGraph</a>を使って、自分のiKnowの学習中アイテム数と学習完了アイテム数を表示するグラフを描いてみた。木曜の1限が休講になって、ボケっとしているうちに思いついたので勢いで書いたのだが、グラフが描かれるまで待ってたのでエントリが遅くなってしまった。</p>
<p>さて、XPathGraphはURLで指定したデータソースに対して、1日1回XPath式を実行し、得られる数字をグラフにしてくれるというサービス。    <br />iKnowの学習中アイテム数は、Flashで作成されたブログパーツが使用しているXMLファイルから取得できることは<a href="http://blog.sharplab.net/star/83/">iKnowLastAccessTimeChecker</a>を書いた時に確認済。これを使えばすぐ終わるかなと考えていたのだが…、XPathGraphは困ったことに、XMLファイルを解さないらしい。XPathなのに。…XPathなのに。その訳を調べてみると、どうやらXPathGraphはXPathの処理系にHTML::TreeBuilder::XPathとかいうHTML処理用？の奴を使っているらしく、XMLでもHTMLとして処理しようとする為らしい。仕方ないのでYahoo pipesという米Yahoo!のサービスと組み合わせてみようとしたところ、今度はiKnowのXMLファイルにXML宣言が無いせいでパースエラー。／(^o^)＼ナンテコッタイ</p>
<p>という訳で最終的にはpipeにあたるものをphpで自作。要はXMLからデータを取ってきて、HTML化すれば良いわけだから、<a href="http://blog.sharplab.net/star/83/">iKnowLastAccessTimeChecker</a>の時と同じ要領。</p>
<div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:6fba91d7-23a8-4078-b22f-a163bf91337e" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre name="code" class="php">&lt;?php
function getScores($id){

    $req = 'http://www.iknow.co.jp/assets/user/' . $id . '/iknow_badge.xml';

    $iknow = @simplexml_load_file($req);
    if($iknow===false){
        echo('パースエラー');
        exit();
    }

    $studying = $iknow-&gt;history-&gt;fragment-&gt;score[0];
    $finished = $iknow-&gt;history-&gt;fragment-&gt;score[1];

    return array("studying"=&gt;$studying, "finished"=&gt;$finished);
}

?&gt;

&lt;?php
    $id = htmlspecialchars($_GET['id']);
?&gt;

&lt;!DOCTYPE html PUBLIC '-/W3C/DTD XHTML 1.0 Strict/EN'
    'http:/www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'&gt;
&lt;html xmlns='http:/www.w3.org/1999/xhtml' xml:lang='ja' lang='ja'&gt;
    &lt;head&gt;
        &lt;meta http-equiv='Content-Type' content='text/html; charset=utf-8'&gt;
    &lt;/head&gt;
    &lt;body&gt;
        &lt;p&gt;

&lt;?php
    if(!empty($id) &amp;&amp; (strpos($id,'/')===false)){
        $scores= getScores($id);
        echo('&lt;ul&gt;');
            echo('&lt;li class="studying"&gt;');
                echo($scores["studying"]);
            echo('&lt;/li&gt;');
            echo('&lt;li class="finished"&gt;');
                echo($scores["finished"]);
            echo('&lt;/li&gt;');
        echo('&lt;/ul&gt;');
    }
?&gt;

        &lt;/p&gt;
    &lt;/body&gt;
&lt;/html&gt;</pre>
</div>
<p>これをデポに設置したうえで、XPathGraphから以下のようにidをパラメータとして渡して呼び出し。 </p>
<div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:a27a4e45-0da5-412f-b974-ef3d426a4baf" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre name="code" class="xml">http://depot.sharplab.net/php/iknow/PipeToXPathGraph.php?id=shiroica</pre>
</div>
<p>XPathの方はこれだけ。</p>
<div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:3cb71c4a-24e7-4766-a111-ebdfa177a9c0" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre name="code" class="c#">//li[1]</pre>
</div>
<p>さて、<a href="http://xpath.kayac.com/graph/nNvHchoi3RGaDA">出来たグラフ</a>。まだ二点分のデータしかない（5/17時点）けど、まぁ動作しているのが確認できる。</p>
<p><a href="http://xpath.kayac.com/graph/nNvHchoi3RGaDA"><img alt="shiroicaのiKnow学習中アイテム数" src="http://graph.hatena.ne.jp/xpathgraph/graph?graphname=nNvHchoi3RGaDA" /></a> </p>
<p>そして学習完了アイテム数。</p>
<p><a href="http://xpath.kayac.com/graph/utK2bi4i3RGaYg"><img height="90" alt="shiroicaのiKnow学習完了アイテム数" src="http://graph.hatena.ne.jp/xpathgraph/graph?graphname=utK2bi4i3RGaYg" width="130" /></a></p>
<p>これで進捗状況が一目で分かるようになった。さぁがんばれ自分。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sharplab.net/blog/2008/05/17/112/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iKnowLastAccessTimeChecker</title>
		<link>http://blog.sharplab.net/blog/2008/05/03/83/</link>
		<comments>http://blog.sharplab.net/blog/2008/05/03/83/#comments</comments>
		<pubDate>Sat, 03 May 2008 02:03:12 +0000</pubDate>
		<dc:creator>shiroica</dc:creator>
				<category><![CDATA[iKnow]]></category>
		<category><![CDATA[Star]]></category>
		<category><![CDATA[WebScripting]]></category>

		<guid isPermaLink="false">http://www.sharplab.net/computer/scripting/webscripting/iknowlastaccesstimechecker/</guid>
		<description><![CDATA[一般に公開するphpスクリプトとしてはWordPressのテンプレートを除き、記念すべき第一弾かな？ 「iKnowのBlogパーツの通信を覗いてみた」というエントリで書いたように、iKnowではBlogパーツのために、ユーザーの学習中アイテム数などをxmlファイル形式で外部に公開している。今回は、その中の最終学習日時を表示するphpスクリプトを書いてみた。 &#60;?php function getLastAccesseTime($id){ $req = 'http://www.iknow.co.jp/assets/user/' . $id . '/iknow_badge.xml'; $iknow = @simplexml_load_file($req); if($iknow===false){ echo('パースエラー'); exit(); } $date = strtotime($iknow-&#62;history-&#62;fragment['date']); return $date; } ?&#62; &#60;?php $id = htmlspecialchars($_GET['id']); ?&#62; &#60;!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'&#62; &#60;html xmlns='http://www.w3.org/1999/xhtml' xml:lang='ja' lang='ja'&#62; &#60;head&#62; &#60;meta http-equiv='Content-Type' content='text/html; charset=utf-8'&#62; &#60;title&#62;iKnowLastAccessTimeChecker - &#60;?php echo($id); ?&#62; &#60;/title&#62; &#60;/head&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>一般に公開するphpスクリプトとしてはWordPressのテンプレートを除き、記念すべき第一弾かな？</p>
<p>「<a href="http://blog.sharplab.net/star/70/">iKnowのBlogパーツの通信を覗いてみた</a>」というエントリで書いたように、iKnowではBlogパーツのために、ユーザーの学習中アイテム数などをxmlファイル形式で外部に公開している。今回は、その中の最終学習日時を表示するphpスクリプトを書いてみた。</p>
<div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:912a1335-d302-4a33-967e-f0317275b5f7" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre name="code" class="php">&lt;?php
function getLastAccesseTime($id){

    $req = 'http://www.iknow.co.jp/assets/user/' . $id . '/iknow_badge.xml';

    $iknow = @simplexml_load_file($req);
    if($iknow===false){
        echo('パースエラー');
        exit();
    }

    $date = strtotime($iknow-&gt;history-&gt;fragment['date']);

    return $date;
}

?&gt;

&lt;?php
    $id = htmlspecialchars($_GET['id']);
?&gt;

&lt;!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
    'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'&gt;
&lt;html xmlns='http://www.w3.org/1999/xhtml' xml:lang='ja' lang='ja'&gt;
    &lt;head&gt;
        &lt;meta http-equiv='Content-Type' content='text/html; charset=utf-8'&gt;
        &lt;title&gt;iKnowLastAccessTimeChecker -
            &lt;?php
                echo($id);
            ?&gt;
        &lt;/title&gt;
    &lt;/head&gt;
    &lt;body&gt;
        &lt;p&gt;

&lt;?php
    if(!empty($id) &amp;amp;&amp;amp; (strpos($id,'/')===false)){
        $accessedTime = getLastAccesseTime($id);
        echo(date('Y年m月d日 H：i：s',$accessedTime));
    }
?&gt;

        &lt;/p&gt;
    &lt;/body&gt;
&lt;/html&gt;</pre>
</div>
<p>こんな感じ。get変数idを与えると、そのidを持つユーザーの最終アクセス日時を表示する。で、このスクリプトを早速デポにUPしてみたので、その検索窓を設置してみる。</p>
<form action="http://depot.sharplab.net/php/iknow/LastAccessTimeChecker.php" method="get">
<input name="id" />
<input type="submit" /> </form>
<p>自分のIDで試してみた例：<br />
  <br /><a title="http://depot.sharplab.net/php/iknow/LastAccessTimeChecker.php?id=shiroica" href="http://depot.sharplab.net/php/iknow/LastAccessTimeChecker.php?id=shiroica">http://depot.sharplab.net/php/iknow/LastAccessTimeChecker.php?id=shiroica</a></p>
<p>脆弱性対策はDirectory Traversal対策位しか思いつかなかったけど、大丈夫かな？</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sharplab.net/blog/2008/05/03/83/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>iKnowのBlogパーツの通信を覗いてみた</title>
		<link>http://blog.sharplab.net/blog/2008/05/01/70/</link>
		<comments>http://blog.sharplab.net/blog/2008/05/01/70/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 17:08:15 +0000</pubDate>
		<dc:creator>shiroica</dc:creator>
				<category><![CDATA[iKnow]]></category>
		<category><![CDATA[Star]]></category>
		<category><![CDATA[WebScripting]]></category>

		<guid isPermaLink="false">http://www.sharplab.net/star/iknow%e3%81%aeblog%e3%83%91%e3%83%bc%e3%83%84%e3%81%ae%e9%80%9a%e4%bf%a1%e3%82%92%e8%a6%97%e3%81%84%e3%81%a6%e3%81%bf%e3%81%9f/</guid>
		<description><![CDATA[飲み会などで中断を挟みながらも、なんとか順調にこなせているe-learningサイトのiKnow。このiKnowには、学習状況を表示できるBlogパーツがある。前回紹介した時に貼り付けたあれである。 で、今日はちょっとした好奇心からそのBlogパーツがサーバーと何を通信しているかを調べてみた。 使ったソフトはFiddler2。FiddlerはHTTP(s)トラフィックをモニタするためのツールで、ローカルプロキシとして実装されており、http://www.fiddlertool.com/fiddler/からDL可能。実行すると、自動的にアタッチされるので、左側のリストから任意のセッションを選択して内容を覗くことができる。 さて、Fiddlerで覗いてみると、それらしいリクエストとして http://www.iknow.co.jp/assets/user/shiroica/iknow_badge.xml?time_stamp=1209570292344 というものがあった。GETメソッドでtime_stamp=1209570292344というデータが送られているが、これは名前の通り、リクエストを送信する時点でのUNIXタイムスタンプ（ミリ秒単位）のようである。但し、この値を操作しても、返ってくる結果は変わらないようであるが。（5/2追記：よく考えたらキャッシュ対策ですね） で、そのボディの内容について。先のリクエストに対して返却されるデータは、ニコ動同様にXML形式であった。具体的には以下のように。 &#60;iknow&#62; &#60;version&#62;1.0&#60;/version&#62; &#60;title&#62;iKnow! バッジ&#60;/title&#62; &#60;link&#62;http://www.iknow.co.jp/clickback/iknow_public_badge/shiroica&#60;/link&#62; &#60;avatar&#62;/assets/users/49q1_small.jpg&#60;/avatar&#62; &#60;language&#62;ja&#60;/language&#62; &#60;description&#62;iKnow! で一緒に学習しよう&#60;/description&#62; &#60;history application="iknow"&#62; &#60;fragment date="Wed Apr 30 13:11:46 UTC 2008"&#62; &#60;score label="学習中アイテム"&#62;706&#60;/score&#62; &#60;score label="学習完了アイテム"&#62;9&#60;/score&#62; &#60;/fragment&#62; &#60;/history&#62; &#60;/iknow&#62; ということは、ユーザー名から母国語、アイコンのURL、最終学習日時（UTCであることに注意）、学習中アイテム数、学習完了アイテム数がとれるようである。 アイコンのURLと、学習中アイテム数、学習完了アイテム数はBlogパーツ上でも表示されるので、通信されているとは思っていたが、最終学習日時まで通信しているとは思わなかった。最終学習日時はプロフィールページなどでも公開されていないので、予想外の珍しいデータがとれたといえる。 「見て見て、ちゃんと勉強してるんだよ！」という意図でBlogパーツを貼り付けている自分みたいなタイプの人間は、こっちのデータも表示するようにできたらなぁと思ったりする。そのうちPHPでXMLを取得してきて最終学習日時を表示するスクリプトでも書いてみるかな。]]></description>
			<content:encoded><![CDATA[<p>飲み会などで中断を挟みながらも、なんとか順調にこなせているe-learningサイトのiKnow。このiKnowには、学習状況を表示できるBlogパーツがある。前回紹介した時に貼り付けたあれである。</p>
<p><a rel="lightbox" href="http://blog.sharplab.net/wp-content/uploads/2008/05/image-300x181.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="149" alt="image-300x181" src="http://blog.sharplab.net/wp-content/uploads/2008/05/image-300x181-thumb.png" width="244" align="left" border="0" /></a> で、今日はちょっとした好奇心からそのBlogパーツがサーバーと何を通信しているかを調べてみた。</p>
<p>使ったソフトはFiddler2。FiddlerはHTTP(s)トラフィックをモニタするためのツールで、ローカルプロキシとして実装されており、<a title="http://www.fiddlertool.com/fiddler/" href="http://www.fiddlertool.com/fiddler/">http://www.fiddlertool.com/fiddler/</a>からDL可能。実行すると、自動的にアタッチされるので、左側のリストから任意のセッションを選択して内容を覗くことができる。</p>
<p>さて、Fiddlerで覗いてみると、それらしいリクエストとして</p>
<div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:dca82c73-d06c-470e-b307-84f643b6af37" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre name="code" class="c">http://www.iknow.co.jp/assets/user/shiroica/iknow_badge.xml?time_stamp=1209570292344</pre>
</div>
<p>というものがあった。GETメソッドでtime_stamp=1209570292344というデータが送られているが、これは名前の通り、リクエストを送信する時点でのUNIXタイムスタンプ（ミリ秒単位）のようである。但し、この値を操作しても、返ってくる結果は変わらないようであるが。（5/2追記：よく考えたらキャッシュ対策ですね）</p>
<p>で、そのボディの内容について。先のリクエストに対して返却されるデータは、ニコ動同様にXML形式であった。具体的には以下のように。</p>
<div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:7201c5d8-a356-40f0-b277-c33c903ce6d7" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre name="code" class="xml">&lt;iknow&gt;
  &lt;version&gt;1.0&lt;/version&gt;
  &lt;title&gt;iKnow! バッジ&lt;/title&gt;
  &lt;link&gt;http://www.iknow.co.jp/clickback/iknow_public_badge/shiroica&lt;/link&gt;
  &lt;avatar&gt;/assets/users/49q1_small.jpg&lt;/avatar&gt;
  &lt;language&gt;ja&lt;/language&gt;
  &lt;description&gt;iKnow! で一緒に学習しよう&lt;/description&gt;
  &lt;history application="iknow"&gt;
    &lt;fragment date="Wed Apr 30 13:11:46 UTC 2008"&gt;
      &lt;score label="学習中アイテム"&gt;706&lt;/score&gt;
      &lt;score label="学習完了アイテム"&gt;9&lt;/score&gt;
    &lt;/fragment&gt;
  &lt;/history&gt;
&lt;/iknow&gt;</pre>
</div>
<p>ということは、ユーザー名から母国語、アイコンのURL、最終学習日時（UTCであることに注意）、学習中アイテム数、学習完了アイテム数がとれるようである。<br />
  <br />アイコンのURLと、学習中アイテム数、学習完了アイテム数はBlogパーツ上でも表示されるので、通信されているとは思っていたが、最終学習日時まで通信しているとは思わなかった。最終学習日時はプロフィールページなどでも公開されていないので、予想外の珍しいデータがとれたといえる。 </p>
<p>「見て見て、ちゃんと勉強してるんだよ！」という意図でBlogパーツを貼り付けている自分みたいなタイプの人間は、こっちのデータも表示するようにできたらなぁと思ったりする。そのうちPHPでXMLを取得してきて最終学習日時を表示するスクリプトでも書いてみるかな。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sharplab.net/blog/2008/05/01/70/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>入門　正規表現</title>
		<link>http://blog.sharplab.net/blog/2008/04/11/26/</link>
		<comments>http://blog.sharplab.net/blog/2008/04/11/26/#comments</comments>
		<pubDate>Fri, 11 Apr 2008 14:41:33 +0000</pubDate>
		<dc:creator>shiroica</dc:creator>
				<category><![CDATA[Book]]></category>
		<category><![CDATA[Scribble]]></category>
		<category><![CDATA[WebScripting]]></category>

		<guid isPermaLink="false">http://www.sharplab.net/scribble/%e5%85%a5%e9%96%80%e3%80%80%e6%ad%a3%e8%a6%8f%e8%a1%a8%e7%8f%be/</guid>
		<description><![CDATA[「入門 正規表現」を買った。まだ読み始めたばかりであるが、なかなか分かりやすくて良い本である。正規表現は、これまでJScriptを処理系に、リファレンス片手に少々触ったことがあるだけなので、ここで規則をマスターしておきたい。バイト先で予告された仕事内容の一つに、正規表現を使った入力チェックをクライアントサイドとサーバーサイドの両方で行う、というのがあるので、この前買った「PHPサイバーテロの技法―攻撃と防御の実際」とともに、勉強していこうと思う。]]></description>
			<content:encoded><![CDATA[<p>「<a href="http://www.amazon.co.jp/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.co.jp%2F%25E5%2585%25A5%25E9%2596%2580-%25E6%25AD%25A3%25E8%25A6%258F%25E8%25A1%25A8%25E7%258F%25BE-%7E%25E6%25A4%259C%25E7%25B4%25A2%25E3%2583%25BB%25E7%25BD%25AE%25E6%258F%259B%25E3%2583%25BB%25E3%2583%2586%25E3%2582%25AD%25E3%2582%25B9%25E3%2583%2588%25E5%2587%25A6%25E7%2590%2586%25E3%2581%25AB%25E5%25BC%25B7%25E3%2581%258F%25E3%2581%25AA%25E3%2582%258B-%25E5%25B2%25A9%25E8%25B0%25B7-%25E5%25AE%258F%2Fdp%2F477413404X%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1207924011%26sr%3D8-2&amp;tag=sharplab-22&amp;linkCode=ur2&amp;camp=247&amp;creative=1211">入門 正規表現</a><img height="1" alt="" src="http://www.assoc-amazon.jp/e/ir?t=sharplab-22&amp;l=ur2&amp;o=9" width="1" border="0" />」を買った。まだ読み始めたばかりであるが、なかなか分かりやすくて良い本である。正規表現は、これまでJScriptを処理系に、リファレンス片手に少々触ったことがあるだけなので、ここで規則をマスターしておきたい。バイト先で予告された仕事内容の一つに、正規表現を使った入力チェックをクライアントサイドとサーバーサイドの両方で行う、というのがあるので、この前買った「<a href="http://www.amazon.co.jp/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.co.jp%2FPHP%25E3%2582%25B5%25E3%2582%25A4%25E3%2583%2590%25E3%2583%25BC%25E3%2583%2586%25E3%2583%25AD%25E3%2581%25AE%25E6%258A%2580%25E6%25B3%2595%25E2%2580%2595%25E6%2594%25BB%25E6%2592%2583%25E3%2581%25A8%25E9%2598%25B2%25E5%25BE%25A1%25E3%2581%25AE%25E5%25AE%259F%25E9%259A%259B-GIJOE%2Fdp%2F4883374718%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1207924715%26sr%3D1-1&amp;tag=sharplab-22&amp;linkCode=ur2&amp;camp=247&amp;creative=1211">PHPサイバーテロの技法―攻撃と防御の実際</a><img height="1" alt="" src="http://www.assoc-amazon.jp/e/ir?t=sharplab-22&amp;l=ur2&amp;o=9" width="1" border="0" />」とともに、勉強していこうと思う。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sharplab.net/blog/2008/04/11/26/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ニコ動の外部プレーヤーの自動再生方法</title>
		<link>http://blog.sharplab.net/blog/2008/04/02/20/</link>
		<comments>http://blog.sharplab.net/blog/2008/04/02/20/#comments</comments>
		<pubDate>Wed, 02 Apr 2008 13:01:17 +0000</pubDate>
		<dc:creator>shiroica</dc:creator>
				<category><![CDATA[WebScripting]]></category>

		<guid isPermaLink="false">http://www.sharplab.net/computer/scripting/webscripting/%e3%83%8b%e3%82%b3%e5%8b%95%e3%81%ae%e5%a4%96%e9%83%a8%e3%83%97%e3%83%ac%e3%83%bc%e3%83%a4%e3%83%bc%e3%81%ae%e8%87%aa%e5%8b%95%e5%86%8d%e7%94%9f%e6%96%b9%e6%b3%95/</guid>
		<description><![CDATA[ニコ動の外部プレーヤーからの再生も、動画の再生数のカウンタを回すようだ。ということは、だ。外部プレーヤーに対して、読み込みと同時に自動再生させるように仕組み、それをページビューの多いページに張り付ければ、ビジターの数だけカウンタを回す工作が可能になるのではないだろうか？ と、いうことで実証コードを書いてみた。 &#60;embed type="application/x-shockwave-flash" id="nicoplayer" src="http://www.nicovideo.jp/swf/nicoplayer.swf?ts=1206973925" flashvars="fv_autoplay=1&#38;amp;thumbWatch=1&#38;amp;playerTimestamp=1206973925&#38;amp;v=sm1911846&#38;amp;thumbTitle=&#38;amp;thumbDescription=&#38;amp;thumbImage=&#38;amp;thumbPostedAt=&#38;amp;thumbPlayKey=1207198286.xBrJUYYRHY5hUTyx6wFoEdL4La4&#38;amp;mylist_counter=1140&#38;amp;movie_type=flv&#38;amp;wv_id=sm1911846&#38;amp;thumbWidth=485&#38;amp;thumbHeight=385" allowscriptaccess="always" bgcolor="#000000" quality="high" height="385" width="485"&#62; http://adfrontica.sakura.ne.jp/lab/test.htm どうだろう？読み込みと同時に再生が始まっただろうか？動画を張り付ける際に使うscriptが実際に吐き出すソースをFirefoxの「選択部分のソースを表示」という機能を使って取得したうえで、flashvars属性の中に、fv_autoplay=1というパラメータを付加したことで実現できた。もっとも、プレイキーが時間とともに変化するかもしれないから、実際に使うには改修する必要があるだろう。]]></description>
			<content:encoded><![CDATA[<p>ニコ動の外部プレーヤーからの再生も、動画の再生数のカウンタを回すようだ。ということは、だ。外部プレーヤーに対して、読み込みと同時に自動再生させるように仕組み、それをページビューの多いページに張り付ければ、ビジターの数だけカウンタを回す工作が可能になるのではないだろうか？</p>
<p>と、いうことで実証コードを書いてみた。</p>
<div class="csharpcode">
<div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:590b3a5c-5cd0-4fc3-ad05-1248ea0e9231" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre name="code" class="xml">&lt;embed type="application/x-shockwave-flash" id="nicoplayer" src="http://www.nicovideo.jp/swf/nicoplayer.swf?ts=1206973925" flashvars="fv_autoplay=1&amp;amp;thumbWatch=1&amp;amp;playerTimestamp=1206973925&amp;amp;v=sm1911846&amp;amp;thumbTitle=&amp;amp;thumbDescription=&amp;amp;thumbImage=&amp;amp;thumbPostedAt=&amp;amp;thumbPlayKey=1207198286.xBrJUYYRHY5hUTyx6wFoEdL4La4&amp;amp;mylist_counter=1140&amp;amp;movie_type=flv&amp;amp;wv_id=sm1911846&amp;amp;thumbWidth=485&amp;amp;thumbHeight=385" allowscriptaccess="always" bgcolor="#000000" quality="high" height="385" width="485"&gt;</pre>
</div>
<p><a title="http://adfrontica.sakura.ne.jp/lab/test.htm" href="http://adfrontica.sakura.ne.jp/lab/test.htm">http://adfrontica.sakura.ne.jp/lab/test.htm</a></p>
<p>どうだろう？読み込みと同時に再生が始まっただろうか？動画を張り付ける際に使うscriptが実際に吐き出すソースをFirefoxの「選択部分のソースを表示」という機能を使って取得したうえで、<span class="attr">flashvars属性の中に、</span><span class="kwrd">fv_autoplay=1というパラメータを付加したことで実現できた。もっとも、プレイキーが時間とともに変化するかもしれないから、実際に使うには改修する必要があるだろう。</span></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.sharplab.net/blog/2008/04/02/20/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ニコ動でidやnicknameが読み出せた件の追補</title>
		<link>http://blog.sharplab.net/blog/2008/04/02/19/</link>
		<comments>http://blog.sharplab.net/blog/2008/04/02/19/#comments</comments>
		<pubDate>Wed, 02 Apr 2008 12:39:41 +0000</pubDate>
		<dc:creator>shiroica</dc:creator>
				<category><![CDATA[WebScripting]]></category>

		<guid isPermaLink="false">http://www.sharplab.net/computer/scripting/webscripting/%e3%83%8b%e3%82%b3%e5%8b%95%e3%81%a7id%e3%82%84nickname%e3%81%8c%e8%aa%ad%e3%81%bf%e5%87%ba%e3%81%9b%e3%81%9f%e4%bb%b6%e3%81%ae%e8%bf%bd%e8%a3%9c/</guid>
		<description><![CDATA[前のBlogに載せた、ニコ動のPlayerから内部変数が読み出せる件は、合宿から帰ってきたら修正されていたが、どう修正されたかというと、 System.security.allowDomain("*"); という記述が書き換えられたようだ。allowDmainは、内部変数に対して操作を加えられるドメインを設定する機能のようだ。詳しくは以下のページを参照。 Adobe &#8211; デベロッパーセンター : Flash Player 8 のセキュリティ機能の変更点 んー、ニコ動以外にもこの記述を適切にできていないで、結果セキュリティリスクにしているWebサービスも、探せばあるかもね。]]></description>
			<content:encoded><![CDATA[<p>前のBlogに載せた、ニコ動のPlayerから内部変数が読み出せる件は、合宿から帰ってきたら修正されていたが、どう修正されたかというと、</p>
<div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:7ecf8157-82f8-4079-9ca7-cf8c49fee46d" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre name="code" class="js">System.security.allowDomain("*");</pre>
</div>
<div class="csharpcode">
<p>という記述が書き換えられたようだ。allowDmainは、内部変数に対して操作を加えられるドメインを設定する機能のようだ。詳しくは以下のページを参照。<br />
    <br /><a href="http://www.adobe.com/jp/devnet/flash/articles/fplayer8_security_09.html" target="_blank">Adobe &#8211; デベロッパーセンター : Flash Player 8 のセキュリティ機能の変更点</a> </p>
<p>んー、ニコ動以外にもこの記述を適切にできていないで、結果セキュリティリスクにしているWebサービスも、探せばあるかもね。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.sharplab.net/blog/2008/04/02/19/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

