2008/11/21


追記2
動いた。どうやらjQuery lightboxと併用するとCPU100%になったり、lightboxのオーバーレイが変になったりするみたい。
調べた所、lightboxのdomReadyよりも先にTypePad Connectのjavascriptが読み込まれるとまずい様なので $(function () {
    $.getScript("http://profile.typepad.com/services/embed/tpc/{your-id}/embed.js", function() {
        $.getScript("http://static.typepad.com/.shared/js/profile/blogside.js");
    });
});
この様にlightboxのdomReadyよりも後に読み込むように修正した。とりあえず動いている。
コメント歓迎です!

ただIEだとエラー出るなぁ...
unknown-yahoo
って事でIE以外の人、コメントよろしく!

さらに追記。Google ChromeやSafariでも重くなる。よってFirefoxとOperaだけ!
追記1
なぜだか、コメントが0件場合にCPUが100%になる現象が見られたので、一時的に外しました。
日を改めて調査し、出来れば導入したいと思います。

blosxomなので、flavourにそのまま貼り付け。
コードの生成はこちらから
Connect a blog - TypePad

Choose a blog to have TypePad Connect installed on

http://www.typepad.com/connect/site/blogs/create
↓の方にコメント欄ぽいのがあるので、よかったらコメント付けて見て下さい。

関連URL: YappoLogs: TypePad Connect Betaつけた
Posted at by



2008/11/20


追記

svn/trunkに取り込まれました。


ちょっとしたパッチですが...
まずエビデンス
remedie-ie6

そしてパッチ
Index: root/static/js/remedie.js
===================================================================
--- root/static/js/remedie.js   (revision 207)
+++ root/static/js/remedie.js   (working copy)
@@ -12,7 +12,7 @@
   current_id: null,
 
   initialize: function() {
-    if (!jQuery.browser.safari && !jQuery.browser.mozilla) {
+    if (!jQuery.browser.safari && !jQuery.browser.mozilla && !jQuery.browser.msie) {
       alert("Your browser " + navigator.userAgent + " is not supported.");
       return;
     }
@@ -170,7 +170,7 @@
           } else {
             alert(r.error);
           }
-        },
+        }
       });
     }
 
@@ -217,7 +217,7 @@
         dataType: 'json',
         success: function(r) {
           item.props.embed = { code: r.code };
-        },
+        }
       });
     }
 
@@ -377,20 +377,20 @@
         } else {
           alert(r.error);
         }
-      },
+      }
     });
   },
 
   newChannelDialog: function() {
     $.blockUI({
-      message: $("#new-channel-dialog"),
+      message: $("#new-channel-dialog")
     });
     return false;
   },
 
   importDialog: function() {
     $.blockUI({
-      message: $("#import-opml-dialog"),
+      message: $("#import-opml-dialog")
     });
     return false;
   },
@@ -443,7 +443,7 @@
         } else {
           alert(r.error);
         }
-      },
+      }
     });
     return false;
   },
@@ -484,7 +484,7 @@
           'div', { id: 'channel-items', className: "clear" }, null
         );
 
-        r.items.forEach(function(item) {
+        $.each(r.items, function(index, item) {
           remedie.items[item.id] = item;
           $("#channel-items").createAppend(
            'div', { className: 'channel-item channel-item-selectable', id: 'channel-item-' + item.id  }, [
@@ -504,7 +504,7 @@
                ],
                'h3', { id: 'channel-item-title-' + item.id,
                        className: item.is_unwatched ? 'channel-item-unwatched' : '' }, item.name,
-               'p', { className: 'item-infobox-description' }, item.props.description
+               'div', { className: 'item-infobox-description' }, item.props.description
              ],
              'div', { className: "clear" }, null
            ]
@@ -629,7 +629,7 @@
           $.event.trigger('remedieChannelUpdated', channel); // Fake updated Event to cancel animation
           alert(r.error);
         }
-      },
+      }
     });
   },
 
@@ -653,7 +653,7 @@
         } else {
           alert(r.error);
         }
-      },
+      }
     });
   },
 
@@ -665,7 +665,7 @@
       dataType: 'json',
       success: function(r) {
         $("#collection").children().remove();
-        r.channels.forEach(function(channel) {
+        $.each(r.channels, function(index, channel) {
           remedie.channels[channel.id] = channel;
           remedie.renderChannelList(channel, $("#collection"));
           remedie.redrawUnwatchedCount(channel);
@@ -769,5 +769,5 @@
       message.children("a.command-unblock").click($.unblockUI);
       $.blockUI({ message: message });
       return false;
-  },
+  }
 };
Index: Makefile.PL
===================================================================
--- Makefile.PL (revision 207)
+++ Makefile.PL (working copy)
@@ -21,6 +21,7 @@
 requires 'String::CamelCase';
 requires 'URI';
 requires 'XML::RSS::LibXML';
+requires 'Image::Info';
 
 build_requires 'Test::More';
 use_test_base;
単なるカンマ取りと、一部タグをpからdivに変えないと動かなかったのを修正したくらい。あとImage::Infoが無いと言われたのでMakefile.PLのrequiresに足しただけ。

今の所、私んところのIE7でもご機嫌良く動いてる。
Posted at by



2008/11/13


Gist GitHubが提供するコードスニペットサービス(という言い方で良いのかな?)、「Gist」をvimから扱えるvimscript「Gist.vim」を書いた。
内部はcurlコマンドを使っており
  • 一覧
  • 閲覧
  • ポスト
  • プライベートポスト
が出来る様になっています。導入にはcurlコマンドとgitコマンドが必要です(コマンドライン版gistコマンドやrubyは必要ありません)。ただし、グローバル変数に"github_user"と"github_token"さえ設定していればgitコマンドも必要ありません。
使い方は、適当にバッファを開いて :Gist
とすればポストされ、公開URLがコマンドライン上に表示されます。
またビジュアル選択して :'<,'>Gist
で部分的にポストする事も出来ます。なお引数として :Gist -p
もしくは--private
を指定するとprivateモードでポストします。 GistのIDが分かっている場合には :Gist XXXXX
とID指定でgistを開く事も出来ます。
さらに :Gist -la もしくは--listall
で全ユーザの最新gist一覧 :Gist -l mattn もしくは--list mattn
でユーザ指定一覧、といった使い方も出来ます。

現在、github上で開発を進めておりvim.orgでも公開しています。
よかったら使ってみて下さい。

Posted at by