ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

はいだしょうこ画伯人気がとまらない。こりゃNHKがコンテンツ公開したら。。

2006-05-24 19:48:09 | Weblog

 いやーすごいですね。はいだしょうこ画伯人気。
 まだ、スプーの絵描き唄、gooブログランキングで1位ですよ!(24日19:00現在)

 昨日も書いたけど、さらに本家でも書いたけど。。

 まず、スタートは、この
スプーのえかきうた
http://www.youtube.com/watch?v=R-fjqo3dNhg

(注意;クリックすると、すぐに音が出ます

のおねーさん(はいだしょうこ画伯)の絵が、「ありえねー!」ということだったわけだが、いや、3年前

スプーの絵描き歌ver3年前
http://www.youtube.com/watch?v=3FT9b-0MA1I

(注意;これもクリックすると、すぐに音が出ます
は、もっとうまかったとか(ただし、これは以前指摘したように、2分18秒あたりのところを、よーくみてね!)

さらに、「NHKの歌のお姉さんが草画伯を超えた件について」のブログの追記のところに書かれている、

はいだしょうこ画伯のドラえもん
http://www.hiroiro.com/entry/164.html

(これは、写真ですので、音は出ません)
のドラえもんが。。。ありえねー(>_<!)だったりと。。。

急速に広がりつつありますね。




 この間、まったくニュースがなかったかといえば、そんなことはなく、
 杉村議員がブログで盗作=指摘受け削除とか
 保釈後心境、文書で公表―堀江被告では、堀江被直筆の文書が見れるし、
 薮本元アナの話も話題になってるし
 ダ・ヴィンチ・コードの話題とか、
 いろいろあったのに、そんなのを押さえての1位独走です(@_@!)




 ウィリアムのいたずら自身、今日は、「おかあさんといっしょ」を見てしまったし。。(えかきうたはなかった)

 これでNHKが、今まで放送したアーカイブを検索してアクセスできるようにしたら、しょうこ画伯の過去の絵を検索して見ようとする人がいっぱいででしまい。。。

 うーん、そー言う意味でも、NHKのアーカイブが検索できて、ダウンロードできるようになったら、いろんな?コンテンツを持っているNHKは強いよね。
 これを一挙に公開した日にゃー

 うーん、民業圧迫??

 なことない??


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Web2.0とは何か?

2006-05-24 17:11:53 | リンク集

ってことを調べてます。
で、その中で、うん、読んでおこうとおもったもののメモ。

特集 ―― Web 2.0とは
http://www.sophia-it.com/category/web2.0.jsp

web2.0の未来
http://blog.japan.cnet.com/kenn/archives/002402.html

Web 2.0:次世代ソフトウェアのデザインパターンとビジネスモデル(前編)
http://japan.cnet.com/column/web20/story/0,2000055933,20090039,00.htm

「Web 2.0」の魔性に惑わされない心得
http://japan.cnet.com/column/ncompany/story/0,2000057834,20102438,00.htm

そのたもろもろ
http://headlines.yahoo.co.jp/hl?a=20060519-00000010-zdn_n-sci
http://ja.wikipedia.org/wiki/Web_2.0
http://blogs.itmedia.co.jp/web15/2005/08/web20_8a41.html
http://blog.japan.cnet.com/watanabe/archives/002103.html
http://blog.drecom.jp/naito/archive/275
http://e-words.jp/w/RSS.html

そのうち、成果をご報告する予定??



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

IHTMLVIEWERの具体的な使い方(7)データ取得とデータ表示

2006-05-24 15:46:06 | ケータイ

ひさびさに、BREWのほうです。IHtmlViewerでカーソル移動を自由に行う方法のつづき。
いままでのまとめは、ここ(http://www.geocities.jp/xmldtp/bw_html.htm)にあります。今回は、そこの

(3)データ取得とデータ表示

についてです(表題は、通し番号なので、数字がちがっています)。




■概要
 IHTMLVIEWERの値のとり方は、ほかにもあります。
 しかし、今回は、このやり方をします。

IHTMLVIEWER_GetViewStateで、画面の値を取得し
IHTMLVIEWER_SetViewStateで、画面の値を設定(表示)します。

 なぜ、こうするかというと、上記の関数で、カーソル移動、スクロール移動もできるので、全部、いっぺんにできるからです。これなら、修正も少ないです。
 
 というのも、前回までで、IHTMLVIEWER_GetViewStateの値は、testhtml1_DecodeHtmlStateで、カーソルの値とスクロールの値を取得していますので、ついでに、画面の表示の値も取得するようにします。
 そして、IHTMLVIEWER_SetViewStateの値はtesthtml1_EncodeHtmlStateで設定していますので、ここで、画面の表示の値を設定します。

 そのため、上記のtesthtml1_DecodeHtmlState、testhtml1_EncodeHtmlStateの関数を修正します。




■IHTMLVIEWER_Set/GetViewStateの値

 IHTMLVIEWER_Set/GetViewStateの値は、CGIのように、漢字などの部分を%16進で値をエスケープします。このため、ここで示したように、IWEBUTIL_UrlEncode,IWEBUTIL_UrlDecode関数を使って、値を変換します。




■ソースについて
 ソースは、ここにあります。
 前回までのソースは、ここにあります。
 ということで、diffなどで差分をとっていただくと分かりますが、違いは、大きくいうと

(1)testhtml1_EncodeHtmlState,testhtml1_DecodeHtmlStateで値を扱う
(2)実際の処理部分の追加(testhtml1_doJob1,testhtml1_doJob2)
(3)上記に関係するヘッダ部分や初期化、終了、イベント部分の変更

になります。以下、それぞれについて説明します




■testhtml1_DecodeHtmlState
 ?(あるいは&)のあと、=がくるまでをキー、&がくるまでを値として、値を取得したら追加しています。そして、それを繰り返しています。
 そうすると、最後の1項目は、&がなくて終わってしまうので、最後の1項目分の処理を付け足しています。

 testhtml1_setItemDataで、引数に、項目を追加しています。

 なお、ここに限らないのですが、エラー処理はしていません。
 その理由は

1.エラー処理を書くと、長くなって説明しにくくなる

 ということもあるのですが、それ以上に

2.このあと、エラー処理をまとめてやる方法を書きます。その際、個別のエラー処理を書くと、あとで消す必要があるので

 というのが主な理由です。

 これが、今まで言っているカオル姫方式で、それを使う場合、エラーが起こると、エラールーチンにとび、そこで共通のエラー処理をして、今までとった領域をすべて開放して、終了するなり、なにするなり自由にできるのですが、今回は、そこまでの説明に行かないため(複数画面を作った後の話になると思います)今回から、その話をするまでの間、エラー処理は書かないことになると思います。

■testhtml1_EncodeHtmlState

 項目数文、値のところをIWEBUTIL_UrlEncodeで変換して、つなげていっています。




■実際の処理部分の追加(testhtml1_doJob1,testhtml1_doJob2)
testhtml1_doJob1で、開始時間を設定、
testhtml1_doJob2で、現在時間から開始時間をひいて、時刻を求め、
入力値から、正解率を求めています。

 結果を、書き出しエリアに設定しています。





■ヘッダ部分や初期化、終了、イベント部分の変更
変更箇所は、以下のとおり
・AEEWebの追加
・ヘッダにデータ入力・表示エリア(dataとname)、開始時間、IWebUtilを追加
・上記関数のプロトタイプ宣言追加/修正
・初期化のところで、ヘッダに追加した部分の領域確保
・HandleEventで
  testhtml1_EncodeHtmlState,testhtml1_DecodeHtmlStateの引数変更
  「挑戦する」ボタンが押されたら、testhtml1_doJob1実行を追加
  「打ち終わった」ボタンが押されたら、testhtml1_doJob2実行
・FreeAppDataで、今回追加したものを、解放する。




 これで、1画面分の作成は終わりました。
 次は、本来なら、複数画面に入るわけなのですが、その前に、画面が増えても共通に使えるところを切り出していきます。
 このシリーズの次回は、それをやる予定ですが、いつやるかは、未定だったりします。



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

BREWのIWEBUTIL_UrlEncode関数の第5引数に関して

2006-05-24 14:58:07 | ケータイ

 BREWで、IHTMLVIEWER_SetViewStateなどで値を設定したいとき、漢字などは、POSTのように、%81%40のような16進で表現する。
 で、このことをやってくれる関数がIWEBUTIL_UrlEncodeである。

 逆にIHTMLVIEWER_GetViewStateでうけとった値は、上記のように漢字が表現されているので、その値をふつうの漢字に直すには、IWEBUTIL_UrlDecodeを使う。




 で、IWEBUTIL_UrlEncodeのとき
 関数の書式は以下のとおり
char * IWEBUTIL_UrlEncode(IWebUtil * pIWebUtil, const char * cpcIn,
        int * pnInLen,char * pcOut, int * pnOutLen);

ここで第一引数は、インスタンスなのでいいとして
   第二引数は、変換しようとする値
   第三引数は、変換しようとする値の長さ
   第四引数は、変換結果を入れるところ
   第5引数は、変換結果の長さ
ということは、第五引数は、値入れなくてよさそうに見えてしまう(ポインタだけ渡せば)
そうでははない。
 第五引数には、第四引数の大きさ(長さ)を必ず入れてから呼び出すこと
 つまり、ここは書き換えられる。

 もし、第五引数をいれないで呼び出すと、ここが0クリアされていれば、第四引数に変換結果が入ってこない。変な値が入っていれば、その値を長さとみなして処理してしまう。
 
 IWEBUTIL_UrlDecodeもそうかもしんない。
 どっちのときもやっておいたことにこしたことはない。

 つぎのBREWネタを書く前に必要なので、つけたしといた



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

で、Javaのプログラムつくって、優秀なロボットを選んで、総額5億円の話の続きなんだけど。。

2006-05-24 12:48:29 | Weblog

 本家のほうでかいた、「総額5億円を優秀ロボットに運用させる!という次回カブロボットコンテストって。。。」で、


トレンドがあるときのロボットを、もみ合いに使うとうまくいかないよ!


って書いたけど、この理由をかいてなかった。
ちょっと、理由を書いておくと、こんなかんじ。
(コンピューターっぽい話になるので、分家に書いておいた)




株の自動売買ロボットを作成しようとした場合、大きく2とおりの方式がある。

1つは、逆張りに反応する方法
  株価が安くなったら買う、高くなったら売る

もう一つは、トレンド、順張りに反応するように作る方法
  株価が高くなってきたら買う、安くなってきたら売る

 逆張りの方法は、もみ合いのとき有効。安いところで買って、高いところで売るから。
 しかし、この方法は、大きなトレンドが出てしまった場合問題。
 はじめっから高かったら、買えないし、株は一本調子で上がらないので、安くなったら、売ってしまう。ところが、そのあと、窓をあけて上がるから、その窓の分+手数料分損する。

 順張りの方法は、逆にトレンドが出れば、一本調子で買っていく(あるいは売っていく)ので、そのトレンドが出ているのなら儲かる。でも、もみあいだと、その期間上下して、結局+-0っていうこともありえる。

 つまり逆の動きをするので、トレンドが出てるときに儲かるロボットが、もみ合いで儲かるとはかきらないと思う。




 ただ、順張りの場合、小さなトレンドを狙えばいいんじゃないのとおもうかもしんないけど、今度は、だましがある。
 なので、どの程度のトレンドだと、最高益になるかというのは分からない。

 ってことで、ウィリアムのいたずらが1回目に作ったロボットは、トレンドフォローなんだけど、その「どの程度」という部分をパラメータで調整できるようにしている。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

アンケートなどの回答を入力するためのデータ設計方法

2006-05-24 09:00:32 | Weblog

 きのう(時間的には日付回ってたので今日)のNHK高校講座情報Aをみて。。
 コリン君、ちょっとまった!
 ここで、アンケートを入力するとき、表計算ソフトをつかって

 1行目に番号
 3行目に1番目の回答
 5行目に2番目の回答
 7行目に3番目の回答

を書いているよねえ。。つーことは言い換えれば、
たとえば、番号1番目の人の回答は、B列、2番目の人の回答はC列。。
と、1レコード(1解答用紙)1列に書いているよねえ。。。

 う、その書き方はまずい。
 きっと、その書き方をしたら、小倉優子が、コリン語で、コリンコリンといいだすぞ(出さないって)

 その理由も、含めて、アンケートの回答のデータ設計について、まとめておきますか。。




■アンケートの回答には、大きく3種類ある

 アンケートデータを入力するとき、まず、回答の方法から、3種類にわける。
 これによって、レコードの作り方が違う

●(1).単一回答(シングルアンサー:SA)
 あなたの性別はA.男 B.女のように回答が1つしかない(1つに限定している)もの

●(2).複数回答(マルチアンサー:MA)
 あなたの好きな教科は(複数回答可)
 1.数学 2.地学 3.生物 4.日本史 5.世界史 6.地理
 のように、複数の回答が可能なもの

 なお、これには2種類あって、
 (2-1)上記のように、回答範囲は限定されているものと
 
 あなたの好きな、NHK高校講座の司会者、生徒役を3人書いてください
 のように、

 (2-2)回答範囲がアンケート上には、記載されていないものがあります。
(この場合、浅沼コリンはOK、でも、コリン星の小倉優子っていうのは、出てないのでXとなるが、アンケート上には、解答欄が3つあるだけで、だれを回答していいのか、かかれていない)

●(3).自由回答(フリーアンサー)
 高校講座の感想を書いてください。のように、自由にかけるもの。
 記述式(あるいは論述式?)の回答




■アンケートは1人分1レコード1行が原則

 アンケートは、「1人分1レコード1行が原則」です。

 理由は、以下のとおり
・エディタで入れる場合、1人分1列にして入れると、やれないことはないけど、めんどくさい

・表計算ソフトで処理したい場合、列の制限が256程度の場合がある。
 このとき、1人分1列ごとに入れると、256人分ということになるが、256人以上回答者があるアンケートというのは、ざらにある(というか、そのほうが多い)
 これが行だと、数万になるが、何万人にも回答してもらうアンケートは少ない。

 逆に、256個の項目があるアンケートというのは、回答するほうも大変で、むしろ、避けるべきである。



  
■原則どおりにならない場合と、その対処法
 ただし、原則どおりにならない場合がある。こんなとき

・とはいっても、回答が256個以上になる

・アンケートが3ページくらいになっていて、表計算で入力するとき、
 1シート1ページ1行のほうが入力しやすい場合がある

 この場合、番号部分を必ず入力するようにして、分割してかまわない。
 1シート1ページ1行のときは、アンケート用紙の各ページに回答番号を振っておくのがいい。
 なお、この回答番号をいれないで、同じ行なら、同じ人とやるのは危険。
 しらずしらずにずれてしまうことがあり、そのとき、手が付けられなくなる。
(入力中に休憩を取ったとき、その合間に回答用紙を落としてじゅんばんわかんかくなっちゃった!なんていうときに起こる)

・自由回答の場合でテキストエディタで入れる場合で、回答が長い場合
 この場合は、回答番号をファイル名にして、タグ付けしていれる。
 なお、短い回答なら、表計算に直接入力していいが、その場合は、改行の文字を何かに置き換える。普通\nで、\は全角の¥を使うか、\\を使う。
 



■入力方法
 で、1つの設問に対して、どの項目に入力するか。

 上記に書いた

1.単一回答(SA)の場合は、
 1列に1問。たとえば、上にあげた情報Aのケースでは、回答はSAなので(1問につき1つの答え)1問目はB列、2問目はC列のように、1問1列で回答する。

2.複数回答(MA)の場合は、
 2とおりある。

 (2-1)のような、複数回答のケースでは、1選択項目1列にする
 つまり、例
 1.数学 2.地学 3.生物 4.日本史 5.世界史 6.地理
 の場合は、
 B列が数学、C列が地学、D列が生物。。。のように、選択項目1つに1列を当てる。チェックしてあったら1、チェックしてなかったら0にする。
 この場合、集計するときは、COUNTIFを使ってもいいけど、単純にSUMでいい。

 (2-2)のような複数回答のケースでは、回答欄分、列を用意する
 つまり、例
 あなたの好きな、NHK高校講座の司会者、生徒役を3人書いてください
 の場合は、3人=3個の解答欄、B,C,D列のように3列用意する。
 この場合、集計するときは、COUNTIF(B1:D200,"浅沼コリン")のように集計
 してもいいけど、ここに書いたように、
 シートを分けてしまって集計したほうが、やりやすいこともある。
 詳しいことや理由は別の機会(気がむいたら)。

 ただし、これは、「集計方法」であって、入力時点では、別シートにわけず、
 いっぺんに入力したほうが、しやすい。

 なお、複数回答なんだけど、回答数が決まっていない場合、
 あなたの好きな、NHK高校講座の司会者、生徒役を書いてください(好きなだけ)

 の場合は、カンマなど、区切り文字をきめて、後述(3)のように入力する。
 このとき、最後の言葉にも、区切り文字を入れておくと、集計が便利。
 集計のときは、項目名+区切り文字が何件あるか?というカタチで集計する

(3)自由回答の場合は、1回答項目1列にする。




■ちなみに、解答用紙の作り方
1.単一回答(SA)の場合は、ラジオボタンまたはコンボボックス、リスト

2.複数回答(MA)で
 2-1のように、選択の場合は、チェックボックス、複数選択可のリスト
 2-2のような場合は、回答数分、テキストボックス

3.自由回答の場合は
 テキストボックス(テキストエリア)

を使うのが普通だと思う。




で、このあと、手順とか、集計方法、とくに、複数回答でシートを分けたほうがいいケースとその理由(回答項目にゆれがあったり、得点化するときに使う)について書くべきなんだけど、それは情報Aの昨日の話しから、それそうなので、別の機会に、覚えていて、気が向いたら書きます。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする