<?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; iKnow</title>
	<atom:link href="http://blog.sharplab.net/category/life/study/iknow/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>iKnow1000語完了。</title>
		<link>http://blog.sharplab.net/blog/2008/08/07/496/</link>
		<comments>http://blog.sharplab.net/blog/2008/08/07/496/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 12:53:04 +0000</pubDate>
		<dc:creator>shiroica</dc:creator>
				<category><![CDATA[iKnow]]></category>
		<category><![CDATA[Study]]></category>

		<guid isPermaLink="false">http://blog.sharplab.net/life/study/iknow/496/</guid>
		<description><![CDATA[iKnowの学習完了アイテム数が1000を突破した。大学受験や定期試験があるわけでもなしに、よくここまで到達したものだと自分でも思う。これからも頑張りたい。]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.sharplab.net/wp-content/uploads/2008/08/image6.png" rel="lightbox"><img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="77" alt="image" src="http://blog.sharplab.net/wp-content/uploads/2008/08/image-thumb6.png" width="205" align="left" border="0" /></a> iKnowの学習完了アイテム数が1000を突破した。大学受験や定期試験があるわけでもなしに、よくここまで到達したものだと自分でも思う。これからも頑張りたい。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sharplab.net/blog/2008/08/07/496/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ある程度進むと…</title>
		<link>http://blog.sharplab.net/blog/2008/08/07/485/</link>
		<comments>http://blog.sharplab.net/blog/2008/08/07/485/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 15:19:46 +0000</pubDate>
		<dc:creator>shiroica</dc:creator>
				<category><![CDATA[iKnow]]></category>
		<category><![CDATA[Study]]></category>

		<guid isPermaLink="false">http://blog.sharplab.net/life/study/iknow/485/</guid>
		<description><![CDATA[それ以上一日には進められなくなるのな。前はそんなことなかったと思うのだが、何時の間に仕様変更が入ったのだろうか？]]></description>
			<content:encoded><![CDATA[<p>それ以上一日には進められなくなるのな。前はそんなことなかったと思うのだが、何時の間に仕様変更が入ったのだろうか？</p>
<p><a href="http://blog.sharplab.net/wp-content/uploads/2008/08/image3.png" rel="lightbox"><img title="image" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="374" alt="image" src="http://blog.sharplab.net/wp-content/uploads/2008/08/image-thumb3.png" width="484" align="left" border="0" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sharplab.net/blog/2008/08/07/485/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>この春はゆるふわ愛されiKnowアイテムバンクでキメちゃおう☆</title>
		<link>http://blog.sharplab.net/blog/2008/07/26/316/</link>
		<comments>http://blog.sharplab.net/blog/2008/07/26/316/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 17:04:32 +0000</pubDate>
		<dc:creator>shiroica</dc:creator>
				<category><![CDATA[FirefoxExtention]]></category>
		<category><![CDATA[IEExtention]]></category>
		<category><![CDATA[iKnow]]></category>
		<category><![CDATA[OpenSearch]]></category>

		<guid isPermaLink="false">http://blog.sharplab.net/computer/scripting/firefoxextention/316/</guid>
		<description><![CDATA[追記：cerego公式のブックマークレットがリリースされています。こっちの方が便利かも。 タイトルはホッテントリメーカーで生成したｗ 無駄に愛愛うるさい気もするが、まぁ気にしない。春じゃないのも気にしちゃいけない。 それはともかく。 iKnowは英語学習用SNSサービスで、英語を学ぶためのe-learningコンテンツと、SNSが融合したサービス。Ruby on RailsとFlashで作成された素晴らしい学習アプリが特徴で、TOEIC向け、TOEFL向けなど様々なコースを、目標日から自動で逆算されたペース配分に従って学習を進めることができる。 さて、そんなiKnowには、「iKnowアイテムバンク」という名前で、登録されている10万語超の英単語を調べることができる辞書機能が存在する。そして、その単語を集めて自分の英単語帳を作ることができる「マイリスト」という機能も存在している。作成したマイリストは、運営元のceregoによって提供されているコースと同じように、iKnowの学習アプリを使ってペース配分しながら勉強することが出来、iKnowを非常に効率的な英語学習プラットフォームとして活用することが出来る。 で、今回はそのマイリスト機能を活用するための基盤となる、iKnowアイテムバンクを検索するための検索プラグインを作成してみた。なお、iKnowアイテムバンクはAjaxを活用しているので、SearchQueryGeneratorは使えないので注意。 OpenSearchプラグイン Firefox向けOpenSearchプラグイン。以下のリンクからインストールできます。 iKnow ItemBank Searchをインストール（Firefox） これを使えば、 英語ページをブラウズ 分からない単語に出会う その単語を検索バーにD&#38;D 検索結果のページからマイリストに登録 分からなかった単語リストが出来て、しかもiKnowで復習できるので(゜Д゜)ウマー となれる。 検索エンジンの切り替えが面倒だ、という場合は、コンテキストメニューから検索できるようにするContext Searchという拡張を入れれば幸せになれるかも知れない。 なおこのOpenSearchプラグインはIEでは使用不能。iKnowが対応していないのか検索結果ページを上手く表示できない。残念…。よってIEコンポーネントブラウザであるSleipnir、Lunascape等も同様。]]></description>
			<content:encoded><![CDATA[<p>追記：<a href="http://www.iknow.co.jp/bookmarklet">cerego公式のブックマークレットがリリースされています。</a>こっちの方が便利かも。</p>
<p><a href="http://blog.sharplab.net/wp-content/uploads/2008/07/image8.png" rel="lightbox"><img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="266" alt="image" src="http://blog.sharplab.net/wp-content/uploads/2008/07/image-thumb8.png" width="484" border="0" /></a></p>
<p>タイトルは<a href="http://pha22.net/hotentry/">ホッテントリメーカー</a>で生成したｗ 無駄に愛愛うるさい気もするが、まぁ気にしない。春じゃないのも気にしちゃいけない。</p>
<p>それはともかく。    <br />iKnowは英語学習用SNSサービスで、英語を学ぶためのe-learningコンテンツと、SNSが融合したサービス。Ruby on RailsとFlashで作成された素晴らしい学習アプリが特徴で、TOEIC向け、TOEFL向けなど様々なコースを、目標日から自動で逆算されたペース配分に従って学習を進めることができる。</p>
<p>さて、そんなiKnowには、「iKnowアイテムバンク」という名前で、登録されている10万語超の英単語を調べることができる辞書機能が存在する。そして、その単語を集めて自分の英単語帳を作ることができる「マイリスト」という機能も存在している。作成したマイリストは、運営元のceregoによって提供されているコースと同じように、iKnowの学習アプリを使ってペース配分しながら勉強することが出来、iKnowを非常に効率的な英語学習プラットフォームとして活用することが出来る。</p>
<p>で、今回はそのマイリスト機能を活用するための基盤となる、iKnowアイテムバンクを検索するための検索プラグインを作成してみた。なお、iKnowアイテムバンクはAjaxを活用しているので、SearchQueryGeneratorは使えないので注意。</p>
<h3>OpenSearchプラグイン</h3>
<p>Firefox向けOpenSearchプラグイン。以下のリンクからインストールできます。    <br /><a href="javascript:window.external.AddSearchProvider('http://depot.sharplab.net/OpenSearchPlugin/iKnowItemBankSearch.xml');">iKnow ItemBank Searchをインストール（Firefox）</a></p>
<p><a href="http://blog.sharplab.net/wp-content/uploads/2008/07/image9.png" rel="lightbox"><img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="196" alt="image" src="http://blog.sharplab.net/wp-content/uploads/2008/07/image-thumb9.png" width="324" align="right" border="0" /></a> これを使えば、</p>
<ol>
<li>英語ページをブラウズ </li>
<li>分からない単語に出会う </li>
<li>その単語を検索バーにD&amp;D </li>
<li>検索結果のページからマイリストに登録 </li>
<li>分からなかった単語リストが出来て、しかもiKnowで復習できるので(゜Д゜)ウマー </li>
</ol>
<p>となれる。</p>
<p>検索エンジンの切り替えが面倒だ、という場合は、コンテキストメニューから検索できるようにする<a href="https://addons.mozilla.org/ja/firefox/addon/240">Context Search</a>という拡張を入れれば幸せになれるかも知れない。</p>
<p>なおこのOpenSearchプラグインはIEでは使用不能。iKnowが対応していないのか検索結果ページを上手く表示できない。残念…。よってIEコンポーネントブラウザであるSleipnir、Lunascape等も同様。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sharplab.net/blog/2008/07/26/316/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iKnow再開</title>
		<link>http://blog.sharplab.net/blog/2008/07/26/315/</link>
		<comments>http://blog.sharplab.net/blog/2008/07/26/315/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 15:32:48 +0000</pubDate>
		<dc:creator>shiroica</dc:creator>
				<category><![CDATA[iKnow]]></category>

		<guid isPermaLink="false">http://blog.sharplab.net/life/study/iknow/315/</guid>
		<description><![CDATA[テストも終わってはいないが大体片付いたので、iKnowを再開。TOEFLやら何やらで忙しかったのもあるが、二ヶ月近く放置していたのか…。反省。これからはまた10unit/日のペースに戻してゆきたい。]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.sharplab.net/wp-content/uploads/2008/07/image7.png" rel="lightbox"><img title="image" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="164" alt="image" src="http://blog.sharplab.net/wp-content/uploads/2008/07/image-thumb7.png" width="484" border="0" /></a> </p>
<p>テストも終わってはいないが大体片付いたので、iKnowを再開。TOEFLやら何やらで忙しかったのもあるが、二ヶ月近く放置していたのか…。反省。これからはまた10unit/日のペースに戻してゆきたい。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sharplab.net/blog/2008/07/26/315/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>あわわ・・・</title>
		<link>http://blog.sharplab.net/blog/2008/05/24/161/</link>
		<comments>http://blog.sharplab.net/blog/2008/05/24/161/#comments</comments>
		<pubDate>Sat, 24 May 2008 05:04:57 +0000</pubDate>
		<dc:creator>shiroica</dc:creator>
				<category><![CDATA[iKnow]]></category>

		<guid isPermaLink="false">http://blog.sharplab.net/life/study/iknow/161/</guid>
		<description><![CDATA[ちょっとパソコンから離れて時間を作ろうと、バイト先にラップトップを置いて帰ったらiKnowが大分遅れてしまった。カツカツなスケジュールを組んだ状態で後れが出ると大分キツいな・・・。]]></description>
			<content:encoded><![CDATA[<p>ちょっとパソコンから離れて時間を作ろうと、バイト先にラップトップを置いて帰ったらiKnowが大分遅れてしまった。カツカツなスケジュールを組んだ状態で後れが出ると大分キツいな・・・。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sharplab.net/blog/2008/05/24/161/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>i18n</title>
		<link>http://blog.sharplab.net/blog/2008/05/18/157/</link>
		<comments>http://blog.sharplab.net/blog/2008/05/18/157/#comments</comments>
		<pubDate>Sun, 18 May 2008 07:45:29 +0000</pubDate>
		<dc:creator>shiroica</dc:creator>
				<category><![CDATA[iKnow]]></category>

		<guid isPermaLink="false">http://blog.sharplab.net/life/study/iknow/157/</guid>
		<description><![CDATA[iKnowって英語表示に切り替えられたのか。素敵。Fiddlerで通信を覗いた時に、言語リソースを送っているのを確認していたが、ちゃんとi18nしてたのね。]]></description>
			<content:encoded><![CDATA[<p><a rel="lightbox" href="http://blog.sharplab.net/wp-content/uploads/2008/05/sc00041.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="250" alt="sc0004" src="http://blog.sharplab.net/wp-content/uploads/2008/05/sc0004-thumb1.png" width="516" border="0" /></a> </p>
<p>iKnowって英語表示に切り替えられたのか。素敵。Fiddlerで通信を覗いた時に、言語リソースを送っているのを確認していたが、ちゃんとi18nしてたのね。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sharplab.net/blog/2008/05/18/157/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iKnow500語完了!!!</title>
		<link>http://blog.sharplab.net/blog/2008/05/17/153/</link>
		<comments>http://blog.sharplab.net/blog/2008/05/17/153/#comments</comments>
		<pubDate>Sat, 17 May 2008 05:02:24 +0000</pubDate>
		<dc:creator>shiroica</dc:creator>
				<category><![CDATA[iKnow]]></category>

		<guid isPermaLink="false">http://blog.sharplab.net/life/study/iknow/iknow500%e8%aa%9e%e5%ae%8c%e4%ba%86/</guid>
		<description><![CDATA[遂にiKnowの学習完了語数が500を達成。いやはやiKnowは素晴らしい。ものぐさな自分でも毎日続くのだから。 そしてコミットメント効果を強化するために、「iKnow進捗状況」という独立ページを設け、進捗状況の可視化デモを纏めてみた。 「TOEFL Standard 3」の量の多さに心が折れないよう、頑張っていきたい。]]></description>
			<content:encoded><![CDATA[<p>遂にiKnowの学習完了語数が500を達成。いやはやiKnowは素晴らしい。ものぐさな自分でも毎日続くのだから。   <br />そしてコミットメント効果を強化するために、「<a href="http://blog.sharplab.net/iknow進捗状況/">iKnow進捗状況</a>」という独立ページを設け、進捗状況の可視化デモを纏めてみた。    <br />「<a href="http://www.iknow.co.jp/course/18">TOEFL Standard 3</a>」の量の多さに心が折れないよう、頑張っていきたい。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sharplab.net/blog/2008/05/17/153/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>iKnow300完</title>
		<link>http://blog.sharplab.net/blog/2008/05/13/99/</link>
		<comments>http://blog.sharplab.net/blog/2008/05/13/99/#comments</comments>
		<pubDate>Mon, 12 May 2008 15:01:38 +0000</pubDate>
		<dc:creator>shiroica</dc:creator>
				<category><![CDATA[iKnow]]></category>

		<guid isPermaLink="false">http://www.sharplab.net/life/study/iknow/iknow300%e5%ae%8c/</guid>
		<description><![CDATA[iKnow300語完了。そろそろDictationも真面目にやり始めるか・・・。]]></description>
			<content:encoded><![CDATA[<p>iKnow300語完了。そろそろDictationも真面目にやり始めるか・・・。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sharplab.net/blog/2008/05/13/99/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>「動詞コロケーション１」完了！</title>
		<link>http://blog.sharplab.net/blog/2008/05/09/91/</link>
		<comments>http://blog.sharplab.net/blog/2008/05/09/91/#comments</comments>
		<pubDate>Thu, 08 May 2008 16:06:52 +0000</pubDate>
		<dc:creator>shiroica</dc:creator>
				<category><![CDATA[iKnow]]></category>

		<guid isPermaLink="false">http://www.sharplab.net/life/study/iknow/%e3%80%8c%e5%8b%95%e8%a9%9e%e3%82%b3%e3%83%ad%e3%82%b1%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3%ef%bc%91%e3%80%8d%e5%ae%8c%e4%ba%86%ef%bc%81/</guid>
		<description><![CDATA[iKnowの「動詞コロケーション１」というコースが完了。始めたのが4/11だから、大体四週間ほどか。他にも三つのコースを進めているが、なんとか順調にこなせている。iKnowについて何度かこのBlogでも触れたが、もう一度まとめとくと、iKnowは初心者から上級者向けまで様々なコースがそろっており、単語・熟語を学習するにはもってこいのe-Learningサイト。こちらでもshiroicaというidで通しているので、やっている方、始めた方は、是非フレンドリクエストを下さいな。]]></description>
			<content:encoded><![CDATA[<p>iKnowの「<a href="http://www.iknow.co.jp/course/528">動詞コロケーション１</a>」というコースが完了。始めたのが4/11だから、大体四週間ほどか。他にも三つのコースを進めているが、なんとか順調にこなせている。iKnowについて何度かこのBlogでも触れたが、もう一度まとめとくと、iKnowは初心者から上級者向けまで様々なコースがそろっており、単語・熟語を学習するにはもってこいのe-Learningサイト。こちらでもshiroicaというidで通しているので、やっている方、始めた方は、是非フレンドリクエストを下さいな。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sharplab.net/blog/2008/05/09/91/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>iKnow</title>
		<link>http://blog.sharplab.net/blog/2008/04/26/49/</link>
		<comments>http://blog.sharplab.net/blog/2008/04/26/49/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 15:18:57 +0000</pubDate>
		<dc:creator>shiroica</dc:creator>
				<category><![CDATA[iKnow]]></category>
		<category><![CDATA[Web log]]></category>

		<guid isPermaLink="false">http://www.sharplab.net/web-log/iknow/</guid>
		<description><![CDATA[最近iKnowがマイブーム。今月の10日あたりから始めたのだが、今日ようやく一つのアイテムが学習完了phaseに移行したので紹介してみる。 iKnowは所謂e-learningサイトで、FlashベースのGUIで、単語・熟語のスペル・意味・発音をひたすら勉強できる。Flashというと、ノロくてモッサリ、というイメージが染みついて離れなかったのだが、これがどうしてサクサク動くので吃驚した。なるほどこれならAIRが騒がれるのも分からなくはない。まぁ、SilverLightとXBAPがある限り、AIRに勝ち目がないと自分は信じているけれども。 http://www.iknow.co.jp/]]></description>
			<content:encoded><![CDATA[<p>最近iKnowがマイブーム。今月の10日あたりから始めたのだが、今日ようやく一つのアイテムが学習完了phaseに移行したので紹介してみる。</p>
<p>iKnowは所謂e-learningサイトで、FlashベースのGUIで、単語・熟語のスペル・意味・発音をひたすら勉強できる。Flashというと、ノロくてモッサリ、というイメージが染みついて離れなかったのだが、これがどうしてサクサク動くので吃驚した。なるほどこれならAIRが騒がれるのも分からなくはない。まぁ、SilverLightとXBAPがある限り、AIRに勝ち目がないと自分は信じているけれども。</p>
<p> <embed name="iknow_public_badge" src="http://www.iknow.co.jp/widgets/iknow_public_badge.swf" width="150" height="40" type="application/x-shockwave-flash" flashvars="lang=ja&amp;username=shiroica&amp;color_bg=blue" wmode="transparent" />   <br /><a title="http://www.iknow.co.jp/" href="http://www.iknow.co.jp/intro">http://www.iknow.co.jp/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sharplab.net/blog/2008/04/26/49/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

