XPath で<li><b>hoge</b>ぼえ</li>で、「ぼえ」だけを取り出す方法

アマゾンの発売日前レビューってのがあまり好きじゃないんですよね。
発売日前のレビューは非表示にできるようにgreasemonkey(初体験)を書いてみようと思い、
とりあえずお知り合いのここを参照して調べる。

まずはアドオンでXpathCheckerをインストール。
ここでXPathつかったのはアマゾンのhtmlがひどかったから。web1.0っていうの?アレ。
<font size=”-2″>とか懐かしくて涙出てきた。

発売日を取得しようとしたんだけど、アマゾンでは発売日付近のhtmlは以下のようになってる。

<ul>
<li><b>なんか:</b>ああああ</li>
<li><b>なんか:</b>いいいい</li>
<li><b>発売日:</b>YYYY-mm-dd</li>
<li><b>なんか:</b>うううう</li>
</ul>

こんなかんじ。発売日の順番が商品によって違うので、
Xpathは
/html/body/table[1]/tbody/tr/td/div/ul[1]/li
でリストを配列で取得して走査。

ただこの状態だと
<b>発売日:</b>YYYY-mm-dd を取ってきてしまう。

YYYY-mm-dd部分のだけ取る方法ねーかなー正規表現で抜くかなーと悩んでたら
こんな感じでとれるよーとotchyさんに教えてもらた。

/html/body/table[1]/tbody/tr/td/div/ul[1]/li/child::node()[2]

child::node()はnode()でもおk

lists = $a(“/html/body/table[1]/tbody/tr/td/div/ul[1]/li/node()[2]“);
for(var i in lists){
var t = Date.parse(lists[i].nodeValue);
if(!isNaN(t)){
releaseDate = t;
}
}


node()[1]で前の部分が取れる。
最初テキストinnerHTMLで取ろうとしたら取れなかった…。(おそらくXMLだから?よくわからんけど。)
nodeNameをみたら#textだったのでnodeValueにしたら取れた。
$a はここの使ってる

なるほどねー。XPath初めて使ったけどコレは便利。
今回は習作として、今後ちょっといろいろ作ってみようと思った次第でした。

Left 4 Dead

[tmkm-amazon]B001KBYQLM[/tmkm-amazon]
1人でやるゲームじゃないねえ。これ。
みんなでわいわいチャットしながらやるべき。

開発者の開発話もあって、
「どんなうまい人がいても1人じゃどうにもできないゲーム」
このコンセプトがいいなあと思った。
1人でおれつええして突っ込むと後ろがついてきてなくて死ぬとかね。

haloとかGoWでcoopするときも相方が強いと後ろからついてくだけでいけちゃうんだよねえ。
GoWは分断されるときはあるけど。
ま、それはそれで。

あとは状況を自動で判断してゲームレベルの調整をしてくれてるっぽいのがすごい。
余裕だなーとか思ってたりするといきなりどかーんとやられたりする。
厳しい!って思ってんのに厳しいままのときもあるがw

対戦はダメージはノーマル、敵思考がエキスパート以上って感じ。そりゃ感染者もプレイヤーだしね。
連携とってくるようになるとこんなにも厳しくなるもんだなあと。

しばらくは飽きなさそうです。

こっちはPC版。スペックあるならPC版かったほうがいいかもね。
[tmkm-amazon]B001K7HX16[/tmkm-amazon]

なんでもポケットサイズ。

http://av.watch.impress.co.jp/docs/20090108/sony23.jpg

http://petite-soeur.dyndns.org/cgi-bin/up2/src/ps21555.jpg

http://market-uploader.com/neo/src/1231428591106.jpg

ポケットサイズVAIO!

http://sankei.jp.msn.com/photos/economy/it/090108/its0901081201000-p6.jpg

入って無さ過ぎて吹いた。

あけましておめでとうございます。

今年もよろしくお願いします。

今年のお楽しみは
・Diablo3
・Diablo3
・Diablo3
です。

自分の中の最近のゲームの傾向として
RPG以外のジャンルはネットワークによる「coop」または「対戦」がないと買わない流れになってます。
去年買ったゲームでそれに該当しないのはGeometry wars2のみ(だと思う)。

RPGでも白騎士やらなんやらでコンシューマーでもcoopできるものが増えていくと思うので
今後もネット化に期待していきたいなあと。

しかし一般人は未だにPS2やDSなんだよなあ。うーん。

良いお年を。

実家に帰らせていただきます。

実家はネット環境がありませんのでこれが今年最後の更新となります。
また来年も続けていけるといいですね(ぉ

うごメモはてな

gifアニメみたいなのをDSiで気軽に!みたいな。

⇒にも張ってみました。
⇒にはリストを表示するようにした。
音が出ちゃうそうなので個別の作品は続きを読んでね!

絵描きツールがまたひとつ増えるわけです。私はかけませんが。
かけない人もカメラやマイクのツールでいろいろできるぽ?なら欲しい。

続きを読む

ToDo管理のUIで思ったこと。

あなたのTo Doリストをぐっと改善してくれる「time taggin」のすすめ

結論からいうと出来たのはこれ。

経緯
「time taggin」のすすめを読んで、社内ツールの機能にある、ToDoリストを作り直そうと思った。
これ自体入社した直後に作ったものなんだが、あまり利用度が高くない。

持っていた機能

  • 重要度(重み付け)
  • 日付 (定期的にあるものに関しては日課、週末、月末の3種の追加オプション)
  • タイトル
  • 進捗度 0-100%(そのつど変更可)
  • カテゴリ(プロジェクトとか)

と、いろいろある。
これはみんなの意見を取り入れて拡張していった結果なのだが、ほとんど使われていない。
ユーザー二桁に対してToDoが一桁とか利用率が半端なく低い。
使われてない理由をいろいろと考えてみた。

欠点/難点

  1. ToDoを記入するのに入れる項目が多すぎる。
    • ToDoを記入することに1分以上かかってたら本末転倒だと思った。
    • ToDoを管理するToDoが必要になってくる。
    • 思いついたら入れておこう、ぐらいで出来るのがいい。
  2. 進捗度は進行度を把握するのに便利だと思ったが、結局はつかわない。0か1でいい。
    • 自分の頭の中に正しい進捗度が把握できてるのだからわざわざ変更手続きがメンドクサイ。
    • 0-100刻みなのだが1-99が使われたことはない。出来たか、まだ出来てないか、レベルのことを入れるべきなんだなあ
    • 他者が進捗を管理する場合はいるが、それはプロジェクトのタスクでやるべきで、ToDoという細切れにされたものに関してはやる必要がない。
  3. 日付だか週末だとかはフリーテキストでいい。
    • 1週間以内にできればいいや、というToDoに対して日付をきっちり決めるとその最後の日にやろうとする人が増える。このへんはファジーな感じにしたほうがいい気がする。⇒日付が近づくとアラートを出す、とかが出来なくなるかも⇒そのへんは解析できるような仕組みを入れればいいかなあ。

なのでちょっと考えた結果、項目は以下でいい気がする。

改善

  • 日付入力欄(入力フリー、ただしY-m-dや(月)とか特別な書き方に対してフォローをする)⇒結局しませんでした。
  • タイトル(やるべきこと)
  • 処理にかかる予想時間(0-60分)

そしてtime-tagging。予想時間を書かせることによって、以前の進捗度合いに代わるものが出来る。
進捗度に関しては0-60分という短いタスクに分けることにより、必要がなくなる。できたら消せばいい。すごい楽だな。まさに目から鱗。

こんな感じで作り直してみようと思う。

出来たもの。
・移動できる付箋紙機能とあわせてToDoを実装しなおした。
・重要度に関してこれで解決できた。移動機能とあわせて実装することでリスト表示にはできない自由な配置によるグルーピング、重み付けができるようになった。自動でソートする機能を実装すればリストみたいな運用もできるだろう。

とりあえずこれで運用してみる。

トップにも張ったけど、画像はこんな感じ。

社内GWなのでソース公開できないけど、こんな感じに。
ToDoはためしに適当に書き出してみた。Ajax利用、×押せば消える、D&Dで移動。
※時間の部分だけなんかわかりやすくしたほうがいいかな。

ありがとうtime-taggingのアイデア。利用率の調査に関してはまたしばらく様子見します。

・コメントにあるMindmapで思ったんだが、親、子の関係で結べたりすると便利だな。JavaScriptでライン引いたりして実装できたりするんだろうか。あとで試してみよう。(複雑機能にするとまた使われなくなるぞ、という訓戒も忘れずに)

蔵書管理、というより新刊管理。

うちも似たような理由で始めたのを思いだした。

作る際に、ルールとして作ったのが3点

  1. 一応サービスとして不特定多数が使えるような実装にする。
  2. でも機能は自分が必要なものしか作らない。
  3. なるべく運用は手を抜きたい。

そして以下が運用までの道のり

  1. 蔵書管理できたら便利じゃね。
  2. 本のデータベースどうしよう、いちいち入力したくない⇒アマゾンから引っ張ればよくね。
  3. アマゾン、本の表記(副題部分とか巻数)が統一されてねえ、使えねえなあ。買った本をいちいち検索してデータ登録するのめんどい。⇒バーコード読み取りでも実装する?⇒バーコードリーダーたけー。いらねえ。⇒月の発売リストをマスターでもっとけばよくね?定期的にメンテいるけど、クリックだけでよくなりそう。(ここでそれまでのソースすべて排除して1から作り直した)
  4. 携帯閲覧とブラウザのUIにAjaxいれてみよう。ついでに2で作りかけたアマゾン機能であふぃりえいとだ!
  5. なんかそこらへんのサービスの劣化版みたいなのが完成しちゃったけど、購入予定の登録もできるし、蔵書管理にはちと弱いけど(一応出来るけど)、自分が利用する分には便利だからもういいや!
  6. ユーザー10人。アクティブユーザが数人の小さな小さなサービスができる。いまココで運用中

弱点

  • UI貧弱。
  • ほんとに最低限の機能しかない。ソート?なにそれ。
  • エントリーレベルな時期に作ったせいでソースやDB構成がアレすぎてこれ以上改良する気がおきない。

とまあこんな感じですが。蔵書管理からやや離れて本の発売日管理サービスとなっております。まあでもこれで、新冊に関してはダブりを防げるようになりました(確認せずに買ったせいでダブった例がありますけどw)。中古に関しては自分は基本使わないので必要ありません!

愛着があるので他の蔵書管理サービスとかは使ってなかったりするのです。DIY最高!ですよね?(誰)

忘年会におすすめ、誰でも簡単にできる一発芸「人間恐竜」 - GIGAZINE


忘年会におすすめ、誰でも簡単にできる一発芸「人間恐竜」

こんな大手サイトで公開されたらもうできねーじゃねーかw

でもやる