gaeの日記 #2

2009-12-25 (金)

[] 変更履歴の無駄を減らすメモ 16:54  変更履歴の無駄を減らすメモ - gaeの日記 #2 を含むブックマーク はてなブックマーク -  変更履歴の無駄を減らすメモ - gaeの日記 #2

show table status; をみたら、履歴を保存しているテーブルが一番大きかったので、小さくしたくなる。

タイトルデータ変更履歴は、履歴用のテーブルに元のデータをそのまんまコピーして残すというお手軽な方法で実装しているので無駄が多い。

試したことのメモ。

内容サイズ修正の容易さ
元データ92MB-
1. 大きいテキストのカラムをblobにしてCOMPRESS()で圧縮51MB★★★
2. 変更のないカラム部分をNULLで保存55MB★★
3. すべてのカラムをシリアライズしてCOMPRESS()で圧縮55MB★★
4. 1+229MB

2の場合、旧版と比較しなくても、どのカラムが変更されたかわかって便利そうだった。


いろいろ試したけど、そもそもすべての変更履歴を保存しておく必要はまったくないので、削除できるようにした方が良いかも(修正の容易さ: ★★★★★★★)しれないし、何年もやってたった100MB程度なんだからサイトの寿命がくるくらいまで放置してもいいかもしれない...。

2009-12-23 (水)

[][] サイドバー関連部分のcookieの仕様変更等 10:55  サイドバー関連部分のcookieの仕様変更等 - gaeの日記 #2 を含むブックマーク はてなブックマーク -  サイドバー関連部分のcookieの仕様変更等 - gaeの日記 #2

  • 2009-12-23
    • progedit.js チェックをダブルクリックして続きのデータを追加するとき、自動入力される時間が「ずれ」を含まない時間になるように修正
    • config サイドバーに表示される「カレンダー」と「最近の更新」のon/off項目を追加
    • callib サイドバーの表示項目に関するcookieの仕様を変更(複数のcookieをまとめて保存するように)
  • 2009-12-22
    • iCal_Parser 終日でないイベントに期限が設定されている場合に正常に処理できない問題を修正
    • view3 icsの終日でないイベントを上部のリストに表示しないように(終日イベントだけ上部、それ以外は番組表の中だけに表示)
    • view3 icsのLOCATIONをチャンネル、DESCRIPTIONをコメントとして表示するように
  • 2009-12-21
    • db2 検索時に「ぁぃぅぇぉ」と「あいうえお」の違いや、ひらがなとカタカナの違いを無視するように

これまでサイドバーに常に表示されていた「最近の更新」と「カレンダー」を消せるようにしました。


cookieの仕様を変更した関係で、サイドバー関連の設定は初期状態に戻されます。どう見ても手抜きです。お手数ですが再設定をお願いします。

2009-12-21 (月)

[][] iCalendar の読み込み 22:14  iCalendar の読み込み - gaeの日記 #2 を含むブックマーク はてなブックマーク -  iCalendar の読み込み - gaeの日記 #2

  • 2009-12-21
    • view3 icsファイルを混ぜて表示する機能を追加
      • ログイン後の設定のスクリプトの項目で「ics=http://...」の形式でURLを書く
      • icsファイルは番組表を開いた時点で取得しにいくため、レスポンスが悪化する
      • 取得したicsファイルは5分間キャッシュ

icsファイルのパーサを作ったので試しに組み込んでみました。

今のところ表モードでしか使えません。


iCalenaderのURLはプラグインスクリプトの設定のところで「ics=[URL]」と書きます。(この機能はログインしなければ使えません)

f:id:gae:20091221220128j:image

たとえば、Google Calendarのカレンダーの共有用のURLを登録すると、Google Calendarで入力した予定が、しょぼいカレンダー上でも表示されるようになります。

f:id:gae:20091221220129p:image

f:id:gae:20091221220130p:image


icsファイルの仕様の一部にしか対応していないので使い物にならないかもしれません。

2009-12-19 (土)

[][] データが中断しているものを抽出する機能追加 16:51  データが中断しているものを抽出する機能追加 - gaeの日記 #2 を含むブックマーク はてなブックマーク -  データが中断しているものを抽出する機能追加 - gaeの日記 #2

  • 2009-12-19
    • mng 最後のデータに「終」マークが付いていないものを抽出する機能を追加
  • 2009-12-17
    • fs 文字をさらに大きくして見た目を少し派手に

管理ツールに「最後のデータに[終]が付いていない放送」を追加しました。これを使うと、データの登録が止まっているものを一覧できます。ただし、映画、OVA、その他のカテゴリのものは対象外になっています。

また、自分の編集によるものがあった場合、「●」付きで表示されます。


以下のURLから確認できます。


追記

リストに表示されないもの

  • 実行した日の1ヶ月前より以前のデータ
  • タイトルが * から始まる番組(「*アニメ関連特番」のような番組を除外)
  • カテゴリが映画、OVA、その他、メモの番組

ほかにも、ノイズを減らすために随時追加していく予定...。

追記 2009-12-20

  • 注が付いているものを無視するように(ただし注と終が付いているのもは含める)
  • 回数がNULLのものを無視するように

2009-12-16 (水)

[][] 編集履歴へのUserIDの保存、iTunes Storeへのリンク追加等 22:37  編集履歴へのUserIDの保存、iTunes Storeへのリンク追加等 - gaeの日記 #2 を含むブックマーク はてなブックマーク -  編集履歴へのUserIDの保存、iTunes Storeへのリンク追加等 - gaeの日記 #2

  • 2009-12-16
    • progedit,progedit2 編集者のUserIDを保存するように
    • titlehistory 履歴一覧で自分が編集したものに「(あなた)」の表示がされるように
    • proghistory 履歴一覧で自分が編集したものに「(あなた)」の表示がされるように
    • titlehistory 差分抽出の実装を Text_Diff を利用したものに変更
    • tid/ iTunes Storeへのリンクを表示する機能を追加(ただしデータの登録は今のところ管理人しがてきない)
    • config 広告リンクを削除する設定を追加(復活)
    • config 設定保存後、何も表示されないことがある問題を修正

変更履歴で自分が編集したデータがわかるようにしました。

iTunes Storeへのリンクも思いつきで実装してみました。例によってデータの登録も完全に手動です。これは管理人しか登録できません。


また、今まであった Amazon へのリンクとiTunes Storeへのリンクを削除する設定項目を追加しました。この設定を使うと、番組表の「ニューリリース」、tidページでの「グッズ」タブや商品の発売予定のリストも表示されなくなります。

2009-12-15 (火)

[] 個々のデータへのUserIDの保存について 23:34  個々のデータへのUserIDの保存について - gaeの日記 #2 を含むブックマーク はてなブックマーク -  個々のデータへのUserIDの保存について - gaeの日記 #2

これまでしょぼいカレンダーのデータベースには、変更を加えた人のIPアドレスしか保存されていませんでした。このため「どのアカウントが変更を加えたか」を調べるのは結構大変で、編集者が「過去に編集したデータをみたい」と思ったとしても、それを表示することはできませんでした。


今後は個々のデータにUserIDを保存するように変更していきます。ただしUserIDが直接表示されることはありません。(任意で表示名を選択できるようにするかもしれません) すでに 2009-12-12 よりタイトルデータについては変更を加えた人のUserIDを保存していますが、今後は他のデータについても編集を行った人のUserIDを保存していきます。


まだどう実装して行くか考えがまとまっていませんが、現在編集者でない人でも「ゆるい編集」ができるようにしていく予定です。


[][] 検索画面の仕様変更等 23:03  検索画面の仕様変更等 - gaeの日記 #2 を含むブックマーク はてなブックマーク -  検索画面の仕様変更等 - gaeの日記 #2

  • 2009-12-15
    • usr ユーザIDの重複登録時のエラーメッセージの不具合を修正
    • config,tid_user,usr,uc フォームのバリデーションの内容を増やした
    • find フォームの見た目を変更。使えない項目を隠すようにした
    • find 放送時間検索のときタイトル、サブタイトル、チャンネル、コメントを別々に指定するようにした
    • find タイトルと放送時間を同時に検索する機能を削除
    • find 放送時間の全文検索にTokyo Cabinetを使うように

タイトルの検索に続いて、放送時間単位のデータ(サブタイトルやコメント)の検索にも Tokyo Cabinet を使うようにしました。

放送時間単位のデータというのは「野球のためxx分延長」みたいなテキストのデータです。今までこれを検索しようとすると、10秒以上かかったりしていましたが今はすぐに応答できるようになりました。

2009-12-14 (月)

[][] cal_chk.phpのパラメータ追加 22:55  cal_chk.phpのパラメータ追加 - gaeの日記 #2 を含むブックマーク はてなブックマーク -  cal_chk.phpのパラメータ追加 - gaeの日記 #2

  • 2009-12-14
    • cal_chk.php startとdaysのパラメータを追加
    • cal_chk.php クエリの内容を最適化してレスポンスを改善
    • db ProgInfoのLastUpdateにインデックス追加(これが無いせいで更新順リストの更新にものすごく時間がかかっていた)

なんか未だにcal_chk.xmlへのアクセスが止まらないのですが、cal_chk.phpを呼び出してみるとえらいレスポンスが悪かったので調べたら問題がみつかったので修正。cal_chk.xmlの更新は近々停止するので、いま使っている人は cal_chk.php に変更してください。

文字コードが UTF-8 になっているというだけで、ほかの部分は同じはずです。