# 2009-01-07

# 2009-01-06

# 2009-01-05

# 2009-01-04

# 2009-01-03

# 2009-01-02

  • 萌え妹!!
  • 2ch譲渡 : ひろゆき@オープンSNS
    2ちゃんねる、海外企業に譲渡 ― 西村博之氏からPACKET MONSTER INC.へ譲渡完了:RBB TODAY (ブロードバンド情報サイト) 2009/01/02
  • ぶっちゃけこのくらいのスタイルでも結構見れると思うんだよなあ。class指定に依存せずにHTML+CSSを書いてみるのも面白い。はてなダイアリーの公開デザイン書こうかな。あれは元のマークアップに一部気に入らないところがあるのだけど(asin記法とか)。
  • emにアンダーライン(border-bottom含む)が使われてるとちょっと混乱したりする
  • 私は一般に言う「読みやすい横幅」が理解できない人間なので、リキッドマルチカラムにはあまり興味がない。必要とされているのはわかる。Googleマルチカラム化とかWikipediaの脚注はいいと思う。でも、本文には欲しくない。Googleとか脚注はlistだから許容できる。listといっても、このページの「list」は実質本文なので意味が異なる。
  • Jintrick氏の「Multicol Google Search」も、「書き換え」じゃなくて「継ぎ足し+ボタンクリック/キーダウンでスクロールによるページング」ならアリなんだけど(見返せる・Ctrl+Fできる)、履歴を守るのは義務なら継ぎ足しはできんわなあ、という。ページ遷移したら継ぎ足した分が消えるからね。ページ単位ならhashで特定ページに戻れるけども。
  • はてなブックマーク - deadspace

    jintrick misc これは面白い / RSSが一時的なリンクを提供するのはアリなのか? 2008/12/10

    ついでに書いておくと(リファラとかから見るかもしれないので)、これはナシだろうなあ、とは思う。hashとの関係を考えたらJavaScriptで退避先へのリンクを作るのが限界(一方的にlocation.replace()するのは好みじゃない)。そこはQUERY/PATHINFO+mod_rewriteとか使ってHTTPレベルでやるべきなんだろうけど、そうするとhashは使えない(hashはサーバに送信されない)。このページのコンセプトとしてはRSS 2.0以外全てstatic file+JavaScript依存のアプローチは極力排除ということなのでご容赦。実際その辺不十分なので、RDFベースのRSS 1.0や仕様が厳密なAtomは避けて、RSS 2.0にしています。アンテナのほうが読みやすいだろうけど、一応のインタフェースとして。
  • そもそもhashによるページスクロール自体がユーザビリティの低下を招くという話もあるけれど。
  • 静的ファイルにするとここが便利
    • ローカルでgrepできる
    • 更新終了したらRSS 2.0を410 Goneにするだけ
    • コンテンツ全体の移転に強い
    • Apatchのキャッシュ能力をフルに活用できる(Last-Modifiedがきちんと機能する)
    • サーバ・クローラーにやさしい
    ここが不便
    • 基本コピペ、ときどきブックマークレットで記述が面倒
    • URI設計がだめだめ、JavaScript依存
    • base要素+#アンカー問題(→2008-12-31
    • コメント・トラックバックできない
  • 一応、リンクは/deadspace/#dYYYYMMDD(INDEX、日付の前の#)に向けてもらえればJavaScriptでできる限り対処します(納得のいかない人もいそうだけど)。
  • YouTube - Herding the cat at 6 weeks old
  • UsiXML - Wikipedia, the free encyclopedia
  • Kiva - Loans that change lives
    Kiva - What Is Kiva?

    Kiva is the world's first person-to-person micro-lending website, empowering individuals to lend directly to unique entrepreneurs in the developing world.

  • XSLTdocument functionで最新月のXMLを取得したところで、所詮XSLTだからフィードとして取得する際には意味ないんだよなあ。XIncludeの実装状況はどんなもんなんだろう。
  • クライアントサイドXSLT自体はIE6でも機能する(多分XSLT 1.0まで)。Atom+XSLTでxsl:output[@method="html"]ならapplication/xmlで読めないこともないんだよな。application/atom+xmlだとダメだろうけど(多分Firefoxも)。案の定application/atom+xmlはデフォルト状態のIE6で読めなかった(ダウンロードダイアログが出る)。Firefox2もダメ。Firefox3は読めるんだけどXSLT変換されずにただのフィードとして扱われてしまう。
  • というか、フィードクローラーはXSLTを解釈しない、ブラウザはXSLTを解釈するという認識は合ってるんだろうか?(→3日
  • RSS 1.0は「RDF Site Summary」だから除外するとして、Atom+クライアントサイドXSLTならstatic fileな範囲でいろいろ便利な気はするんだけど。RSS 1.0じゃないRDF/XML+XSLTの場合は、XHTMLフラグメント(xhtml:div[@class="content"])をresourceとして扱えるのかがよくわからない。フィードリーダーに読ませたいからまずはAtomだなあ。
  • ひとりでやっても、検索エンジンにリスティングされないやらなんやらで不利な感じ
  • XMLでも、application/xmlとして配信できれば手書きできないことはない(構文の冗長さは別として)
  • さて、これは何周前の話題なんだろう……
  • 「他社より安くします」チラシのホントの理由(再掲) - Cahier de Siliqua_alta

    ところが、じつは、このサービスはもともと、価格を下げるためではなく、価格を高値で保つためのカルテルの手段としてアメリカで考案されたものなのです。

  • うるう秒 - nezuku - はてなハイク
    今年(2008-01-01T08:59:60+09:00)だったのか(遅い
  • 記事のタイトルと概要も表示:はてなダイアリーの新着一覧ページを作ってみた - 風柳メモ
    はてなダイアリー - 新着一覧Yahoo! PipesによるJSONPでクロスドメイン越え。マウスオーバーで全文取得。ちょっと不安定(Pipesが)。
  • 安価で動くやる夫がいろいろやるおっお - SLPY
    GIFアニメーション。
  • 高木浩光@自宅の日記 - 今年一年の日記を振り返る
    • ウイルス罪新設刑法改正が進まない件
    • iモードIDの全サイト送信が開始された件
    • 公開/非公開の区別が適切に説明されない件
    • 暴走し始めた行動ターゲティング広告の件
    • ストリートビューの件
  • TODO
    • はてなダイアリー公開デザインを作ってみる
    • Atom+XSLT書いてみる
    • Firefoxのプロファイルを整理して作り直す
  • XML データを表示した Internet Explorer を終了するとアクセス違反が発生する - Microsoft サポート オンライン

    Internet Explorer で XSLT スタイルシートを使用して XML データを表示しているページを開いた状態で、Internet Explorer を終了すると、アクセス違反が発生する場合があります。

    MSIE6.0のみ。
  • ‮妬嫉にちっのゆ
  • エゴサーチ最適化にRLOを使うのはうまいよなあ
  • あたらしいデザインを公開しました - mayokara memo @ hatena
    公開デザイン「greatest common divisor」 - はてなダイアリー
    できたー
  • jmblog.jp - 認証と許可

    英語でも、「Authentication(認証)」と「Authorization(許可)」とに分かれている。たまにモジュール名やメソッド名で “auth” という省略語を使ってたけど、これじゃどっちを指してるのか明確ではないですね。気をつけよう。

  • Perfumeは会話の種
  • !importantの数でCSSに対する考え方がわかる
  • 「橋下氏の強い地域、学力低い」と判明 - kei999の日記
    正解「率」・得票「率」で相関取るのっていいのかな。統計解析よくわからない。
  • id:htmlstricter
  • うわ、はてなダイアリーってdocument.compatMode === "BackCompat"なのか。Windows版IE6width: 95%; margin: 0 auto;効かない困る。HTML 4.01 TransitionalのDOCTYPE宣言にSystem Identifierつけてよはてな。
  • しょうがないので、IE6のみに通用するCSSトリック* html E {}とtext-align使った……
  • はてなアイデア - 互換モード表記を標準モード表記に変更願えませんか? 具体的にはDOCTYPE宣言を <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> として頂ければ。
    登録日時2005-08-07T21:35:30+09:00。今さら変えると影響大きくてできないんだろうなあ……
  • div要素直下にテキストノードを書くのは避けよう、と改めて思った(margin指定が増える)
  • LDR each - 0-9
    if (i>0) do {
      /* code */
    } while (--i);
    は自分では使わない(普通のwhileでやる)けど、RubyっぽくてHOT(1行目だけ見て言ってる)。Rubyのif構造がthenを使うのはわかってます。
  • 劇場版 スイーツ対リア充
  • 線形代数やばい。ちゃんと理解できてない。
  • ロケーションバーにrfc 4287などと入力することでHTMLRFCページに飛ぶスマートキーワード。Firefoxのブックマークに以下を登録。
    URL
    http://tools.ietf.org/html/rfc%s
    キーワード
    rfc
    みんなやってるかもしれないけど、便利。
  • ああそうか、kbd要素が入力で、samp要素が出力という対応関係になってるのか。で、var要素がプレースホルダ。何を勘違いしていたんだろう。というか、「kbd」=「入力」で「samp」=「出力」ってちっとも直感的じゃない……。暗黒HTMLだ。
  • スマートキーワード、自動でjavascript:(function(t,s){location.href=t.replace(/%S/g,s);})("http://tools.ietf.org/html/rfc%S","%s"||window.getSelection().toString());する拡張機能は何処?
  • 見つけた。けど、うまく動かない……
  • RFC 4287 - The Atom Syndication Format # 2. Atom Documents

    Both kinds of Atom Documents are specified in terms of the XML Information Set, serialized as XML 1.0 [W3C.REC-xml-20040204] and identified with the "application/atom+xml" media type.

    Atom文書は"application/atom+xml" media typeでidentifiedされる。
  • Firefox 2 でフィードの XSLT を有効にする: Days on the Moon
    The Web KANZAKI - ちょっとしたメモ - IE7もFirefox2もRSSを特別扱い
    The Web KANZAKI - ちょっとしたメモ - IE7、Firefox2でもRSS1.0にXSLTを適用させる
    これは2006年の情報だけど、手元で調べてみたところ、今に至ってもフィードにXSLTはブラウザ的に微妙な状況のようだ。
  • Atom+XSLTの場合、application/xmlにすれば、フィードクローラーの判定が怖いけどそこそこ上手くはいくみたい?
  • とりあえず現段階では、「application/atom+xmlな」Atom+XSLTはブラウザでHTMLに変換されない可能性が高い
  • あとはRDF/XML+XSLTか野良XML+XSLT。後者はまずないとして、前者はどうなんだろうなあ。仮にできたとしても、あまり実益がないような。一旦保留。
  • はぁ
  • やる気は緩やかに上昇している
  • clad……【形】覆われた、着た、装った
  • TwitterのReplyをメールに転送してくれる『TWPLY』が炎上中 | IDEA*IDEA
  • 心の不思議ホームページ - 東京学芸大学教育心理学講座 関口研究室
    頭のよさ、勉強、命、感情、人間関係、幸せ、好き、白雪姫。

# 2009-01-01

  • 2009、平成21年、丑年
  • URLに必要なのは作成日。文書タイトルはtitle要素で表せアンカーテキストにできるが、そこに作成日を加えるのはときに冗長となる。URLで作成日がわかれば、ドキュメントの風化度も把握しやすく列挙しやすい。
  • if (attrHref.indexOf("#") === 0) {}よりif (attrHref.charAt(0) === "#") {}のほうが無駄がない。うっかり。
  • 面白ラボBM11 88プロジェクト達成記念セール!!!
  • Firefox2/3。「表示」→「スタイルシート」→「スタイルシートを使用しない」。
  • 新しい$g
    function $g(xexp, context, type, thisp) {
      if (!context) context = document;
      var doc = context.ownerDocument || context,
          defaultNamespaceURI = context.lookupNamespaceURI(null),
          exp = doc.createExpression(xexp, function(prefix){ return doc.createNSResolver(context).lookupNamespaceURI(prefix) || defaultNamespaceURI; });
      switch (typeof(type)) {
      case "number":
         return exp.evaluate(context, XPathResult.NUMBER_TYPE, null).numberValue;
      case "string":
         return exp.evaluate(context, XPathResult.STRING_TYPE, null).stringValue;
      case "boolean":
         return exp.evaluate(context, XPathResult.BOOLEAN_TYPE, null).booleanValue;
      case "function":
        var results = [], xp = exp.evaluate(context, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
        for (var i=0,l=xp.snapshotLength,node; i<l; i++) {
          node = type.call(thisp, xp.snapshotItem(i), i, xp);
          if (typeof(node) !== "undefined") results.push(node);
        }
        return results;
      case "object":
        var results = [], xp = exp.evaluate(context, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
        for (var i=0,l=xp.snapshotLength,node; i<l; i++) {
          node = xp.snapshotItem(i),
          results.push((node.nodeType === 2) ? (node.nodeName === "href" || node.nodeName === "src") ? node.ownerElement[node.nodeName]
                                                                                                     : node.nodeValue
                                             : node.textContent);
        }
        return results;
      default:
        var results = [], xp = exp.evaluate(context, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
        for (var i=0,l=xp.snapshotLength; i<l; i++) results.push(xp.snapshotItem(i));
        return results;
      }
    }
    
  • ついでに$n
    function $n(tagName, attrs, childs) {
      var elem = document.createElement(tagName);
      for (var i in attrs) if (attrs.hasOwnProperty(i)) {
        elem.setAttribute(i, attrs[i]);
      }
      if (typeof(childs) === "string") {
        elem.appendChild(document.createTextNode(childs));
      } else {
        Array.forEach(childs, function(v){
          if (typeof(v) === "string") {
            elem.appendChild(document.createTextNode(v));
          } else {
            elem.appendChild(v);
          }
        });
      }
      return elem;
    }
    
    変なことやるよりベーシックにいったほうがいいかな、と。
  • Firefoxのプロファイル作り変えたら順次書き換えていく予定……
  • ECMAScript での var < 02 < December < 2005 < nulog, NULL::something : out of the headphone

    ときどき関数中で var a = b = c = 0; って書いているのを見かけるけど、この場合の b, c は Global オブジェクトのプロパティ (または途中であるならその変数オブジェクトのプロパティ) になる。var a, b, c; a = b = c = 0; とか書くのが正解。

  • NOTESを作った。あとで見返しそうなものはここに分類。
  • うるう秒のNTT時報‐ニコニコ動画(ββ)

    うるう秒のNTT時報です。左が普通の日の音、右がうるう秒の日の音です。音源はNTT DoCoMo、9時100秒前(8時58分20秒)から右側は0.01秒ずつ遅れます。

  • Firefox 3.1で採用される高速化技術 - Mozilla Flux
    DNSプリフェッチ
    Firefoxでは、Google Chromeのβ版がリリースされた直後から開発が進められ、11月中旬には実装に至っている。
  • style.css微調整。
    • ins、delはdisplay: block; text-decoration: none;してスタイル付けしたほうが見やすい
    • qはquotes: "「" "」" "『" "』";しないほうが中身の括弧と重複しなくてよい
    • tableはborder-collapse: collapse;して、thとtdにborderと左右paddingを指定する
    • preにはwhite-space: pre-wrap;を指定する
    • blockquoteとq、preとcodeは共通部分でまとめる
    • bodyにline-height: 1.5;
    • bodyに基準となるbackground-colorとcolorを明示しておく
    • font-family、cursor、content、prefixつき独自実装は極力使わない
  • ネットエンジェル 第一話「大学入試センター試験予想問題」 - GIGAZINE

    2009年01月01日 13時04分00秒 in コラム Posted by darkhorse

  • 浜崎あゆみのライブで販売された「1000円の年越しそば」が話題に。 | Narinari.com
  • 私の子供を守るのは、武器を持たないあなたの手 | 2ちゃんねるコピペブログを落札したJKさやさんがアダルトチャットの自称雌奴隷アユさん(20)だったらしい件について
  • 2009 - tomopara blog