トップ «前の日(07-16) 最新 次の日(07-18)» 追記

2002|01|02|03|04|05|06|07|08|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|02|03|04|07|

2003-07-17

_ サイト全部をWeb XP化した (13:50)

サイト全体をWeb XP管理下に置いた。一応この程度の機能だったらなんとか表現し切れるみたいだな。まだまだやるべきことは残っているけれども、ひとまず基本機能に関しては初期実験は終了といった感じか。どのくらいの負荷がかかるかをチェックしてみないとな。

ついでにいろいろコンテンツ整理した。すでに整理済みだったものを合わせて、だいぶすっきりした状態になった。あとは生き残っているものたちをさらにリファインしていく作業か。いやその前に、まだ基本機能を充実させていった方がいいかな。

_ CSSはよくわからない (13:50)

スタイルシートって、必要なパーツに対しての装飾用でしか使ったことがないから、真面目にHTML論理構造マッピングさせて使おうとすると、根本的な知識の不足を感じる。一からちゃんと勉強すればいいんだろうけど、デザイナーじゃない人間がそこまで覚えなければならないのかよ、という気もしていまいちやる気にならない。でも論理的なスタイルシートベースのデザインが出来るデザイナーって少なそうだし、ここまでプログラマーの領分だと考えておいた方がいいんだろうか。

とか考えながら、味も素っ気もなかったこのサイトにデザイン要素を載せてみた。まだ試行錯誤中&ブラウザ互換性はあんまり考えられていないかも。一応ネスケ4でもそれなりには見えていた気がするけど。


2005-07-17


2006-07-17

_ メモ情報取得API

主にメモデータバックアップ目的のためのメモ情報取得APIを用意しました。すみません。API仕様を変更してます。戻り値を直接ルートノードから返すのではなく、必ず"result"ノード下に収納することにしました。

リスト取得

  • URL - http://1470.net/api/memo/list
  • パラメータ(QUERY_STRING)
    • userName - 1470.netユーザーID(省略可)。指定すると、そのユーザーのメモ情報のみが対象となる。
    • updt - 更新日時(省略可)。指定するとその更新日時以降に更新されたメモのみが対象となる。
  • リクエストメソッド - GET
  • 戻り値
    • データ形式 - JSON
    • 例 {"info": {"totalCount": 1234}, "result": [{"id" : 998, "updt" : "2006-06-30 02:16:20"}, {"id" : 999, "updt" : "2006-06-30 02:16:21"}, ...]}
    • info.totalCount - 該当した総項目数(2000を超えている場合、各項目として返るのは最初の2000件)
    • result.* - 各項目
      • id - メモID。メモにつけられたユニークなID。
      • updt - メモの更新日時(JST)
    • ソートオーダー
      • updt asc。
  • 制約
    • 結果が2000件を超える場合は、最初の2000件のみを返す。その場合updtパラメータ指定などを使って、続きの情報を取得し直す必要がある。

メモ情報取得

  • URL - http://1470.net/api/memo/[メモID]
  • パラメータ - なし
  • リクエストメソッド - GET
  • 戻り値
    • データ形式 - JSON
    • 例 {"result": {"id" : 34553, "url" : "http://1470.net/user/ishinao/2006/07/01#m_34553", "title" : "集英社 ハチミツとクローバー 9 (9) 羽海野 チカ", "comment" : null, "eval" : null, "tags" : ["羽海野 チカ", "ハチクロ", "マンガ"], "groups" : {}, "uri" : {}, "mono" : [{"asin" : 4088653521, "uri" : "http://www.amazon.co.jp/exec/obidos/ASIN/4088653521/ref=nosim/ishinao-22", "title" : "集英社 ハチミツとクローバー 9 (9) 羽海野 チカ"}], "map" : {}, "event" : [{"name" : "集英社 ハチミツとクローバー 9 (9) 羽海野 チカ 発売日", "stdt" : "2006-07-14 00:00:00", "eddt" : null}], "todo" : null, "rgdt" : "2006-07-01 14:04:38", "updt" : "2006-07-16 20:55:51"}}
    • 項目
      • id - メモID
      • userName - ユーザーID
      • url - メモURL
      • title - メモタイトル
      • comment - コメント
      • eval - 評価
      • tags - タグ(配列)
      • groups - グループ(配列)
      • uri - メモに添付されたURI情報(配列)
        • url - URL文字列。
        • title - URIで示されたドキュメントのタイトル。
      • mono - メモに添付されたMONO情報(配列)
        • asin - ASINコード。
        • url - Amazon個別商品ページURL。
        • title - 商品情報(タイトル+著作者情報)。
      • map - メモに添付された位置情報(配列)
        • name - 位置情報名。
        • latitude - 緯度。
        • longitude - 経度。
        • zoom - Google Maps APIにおけるズーム情報。
      • event - メモに添付されたイベント情報(配列)
        • name - イベント名。
        • stdt - イベント開始日
        • use_sttime - イベント開始日で時間要素も有効かどうか
        • eddt - イベント終了日
        • use_edtime - イベント終了日で時間要素も有効かどうか
      • todo - メモに添付されたToDo情報
        • name - 次に行うToDo名。
        • tododt - その予定日。
      • rgdt - メモ登録日
      • updt - メモ更新日

バックアップクライアントサンプル実装

require_once 'Zend/Json.php';
 
$userName = 'ishinao';
$dataDir = '/tmp/backup';
$listUrl = 'http://1470.net/api/memo/list';
$itemUrl = 'http://1470.net/api/memo/';

$touchFile = $dataDir . '/touch';
$updt = filemtime($touchFile);

$rawListData = file_get_contents($listUrl . '?userName=' . urlencode($userName) . '&updt=' . urlencode(date('Y-m-d H:i:s', $updt)));
$decodedListData = Zend_Json::decode($rawListData);
$list = $decodedListData['result'];
foreach ($list as $row) {
    $memoId = intval($row['id']);
    if (!$memoId) {continue;}

    $dataFile = $dataDir . '/' . $memoId . '.txt';
    if (file_exists($dataFile) && (filemtime($dataFile) == strtotime($row['updt']))) {continue;}

    $rawItemData = file_get_contents($itemUrl . $memoId);
    $decodedItemData = Zend_Json::decode($rawItemData);
    $item = $decodedItemData['result'];
    if ($item['id'] != $memoId) {
        throw new Exception('memo cannot read: ' . $memoId);
    }
    
    file_put_contents($dataFile, $rawItemData);
    touch($dataFile, strtotime($row['updt']));

    touch($touchFile, strtotime($row['updt']));
}
Tags: API 1470.net

_ 携帯用ユーザーページを追加しました

携帯ページにユーザーページ(ユーザーごとの新着/ToDo表示)を追加しました。これで出先でToDo(っつーか買物リスト)をチェックしやすくなったな。

携帯(フルブラウザ以外)でもツール系の機能を使えるようにするべきかなー。携帯は閲覧さえできればそれで十分かなー。と迷いつつちょろっと試してみたところ、TypeKeyやはてな認証APIはEZWebから接続できない(SSL証明書が携帯非対応)ことが判明。ひとまず無理か。俺自身はW-ZERO3+Operaでフル機能使えるしなー。


2007-07-17