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 になっているというだけで、ほかの部分は同じはずです。

mikiomikio2010/02/27 11:57cal_chk.phpからデータをいただき録画ソフトを作成しております。
cal_chk.phpから提供される番組の開始、終了時間は時間変更に対応してないのでしょうか。
例:日本テレビ犬夜叉 完結編 20100228放送分
cal_chk.php 開始時刻 02:20:00
rss.php 開始時刻 02:55:00

2009-12-12 (土)

[][] 検索関係の修正 22:53  検索関係の修正 - gaeの日記 #2 を含むブックマーク はてなブックマーク -  検索関係の修正 - gaeの日記 #2

  • 2009-12-12
    • titleedit 見た目と動作はほぼそのまま、ソースを整理して作り直し
      • エラー発生時の動作を改善
      • タイトルデータ更新時に更新者のIPアドレスではなくUserIDから生成した値を保存するように
      • タイトルデータ更新時にchglog.htmlが無駄に2度更新される不具合を修正
      • タイトルデータのリンクだけを抽出する処理でブラケットで囲まれていないリンクが抽出されない問題を修正
    • common.js 検索窓で検索結果が見つからないときに「見つかりません」と表示するように
    • common.js 検索窓で入力してから検索するまでの遅延を300msから250msにして若干結果が早く表示されるように
    • db2 検索窓から検索したときの検索の処理に Tokyo Cabinet を利用するようにした
      • 不要になったテーブルを削除して、関連していた処理を書き直し
    • rank2 検索機能を削除
    • json 検索窓から検索したとき結果が0件の場合、コメントデータを検索した結果を表示するように
      • キャラの名前とかでも出てくるように
    • cal.cfg アカウントのアクティブ判定の閾値を4日から7日に変更
    • find タイトルをキーワード検索したとき、無関係なタイトルがヒットする問題を修正
    • find タイトル検索でTCを利用するように

2009-12-05 (土)

[][] 検索すると何でもヒットする不具合修正 22:51  検索すると何でもヒットする不具合修正 - gaeの日記 #2 を含むブックマーク はてなブックマーク -  検索すると何でもヒットする不具合修正 - gaeの日記 #2

  • 2009-12-05
    • find ローマ字変換できないキーワードで検索されたとき、読みが登録されていないタイトルがすべてヒットする問題を修正

2009-12-04 (金)

[][] 検索窓での検索方法とグラフ表示の変更 21:56  検索窓での検索方法とグラフ表示の変更 - gaeの日記 #2 を含むブックマーク はてなブックマーク -  検索窓での検索方法とグラフ表示の変更 - gaeの日記 #2

昨晩はいろいろ不安定で申し訳なかったです。

  • 2009-12-04
    • graph 自作のグラフ表示Flashを使うのをやめて Chart API を使うようにした
    • rank2 グラフを追加して見た目を変更
    • commmon.js ヘッダの検索窓の候補をクリックしたときにリンク先に移動できない問題を修正(したつもり)
    • db2 検索窓で検索したときの処理をいろいろ変更
      • 検索の方法をN-Gramを使った方法に変更(今までLIKE使ってた)
      • インデックスに翻訳したタイトルも含めるようにした
      • 入力された文字列が不完全なローマ字だったとき、かな変換ししないようにした(今まで"air"を"あい"で検索していた)

やりかけて放置していたものを出してみるキャンペーン中。


意味は無いですが今までグラフ表示に自作のしょぼいFlashを使っていたところを、Google Char APIを使った処理に切り替えました。Google Visualization APIという高級っぽいやつもありますが、前にやりかけていたコードがあったので...。

f:id:gae:20091204215006p:image

いろいろ手抜きなので見た目が整っていないですが...。


それから、Google翻訳が簡単に使えることがわかったので検索用のインデックスに入れてみた。

f:id:gae:20091204213711p:image

ただのアンじゃないわ。終わりに e のつくアンよ。(いかにも関係ないものが混ざっているのは修正していくつもり...)

f:id:gae:20091204214457p:image

「タイトル(英語)」の編集基準が定まらずに、空白になっているタイトルが多いですが、自動翻訳をインデックスに加えることである程度不満が解消できた感じです。

2009-12-02 (水)

[][] ヘッダの検索窓の動作変更 00:39  ヘッダの検索窓の動作変更 - gaeの日記 #2 を含むブックマーク はてなブックマーク -  ヘッダの検索窓の動作変更 - gaeの日記 #2

  • 2009-12-03
    • header 検索窓の動作を変更
      • 前後1週間の予定表示をやめて、普通のタイトル検索結果に

いままで前後一週間の放送予定のうちキーワードにマッチしたものを表示していましたが、使い勝手がいまいちでほとんど使わなかったので、普通にタイトル検索して結果を表示するようにしました。

最近はシリーズものが増えて、うっかり別タイトルに飛んでしまうことが増えていましたが、入力段階で複数の候補が出ていれば間違いが減りそうです。

ついでに検索結果をカーソルキーで選んでタイトルに直接飛べるようにしました。

利用者の一人利用者の一人2009/12/03 13:44この改造でとっても便利になりました!

gaegae2009/12/04 22:19よかれと思って修正しても「前のに戻して」とよく言われるので新鮮ですね:D