タグ

ブックマーク / amachang.hatenablog.com (15)

  • フェイスブック、ミクシィ、グリーで使われている OGP (Open Graph Protocol) とは何か - IT戦記

    みなさん、こんにちは お元気ですか?僕は元気です。 さて 最近よく、「いいね!」ボタンや「ミクシィチェック」ボタンによって、ウェブページを紹介し合う文化が少しずつ定着してきたなーと思います。 そんな中で、今後重要になってくるんじゃないかと思われる OGP (Open Graph Protocol)と言われる仕様があります。今日はそのことについて書いてみたいと思います。 OGP? おーじーぴー??とはなんでしょうか。 OGP とは 簡単に言うと「このウェブページは何のことを書いているか」という情報を、プログラムから読める形で HTML に付加する記述方法のことです。 まあ、普通のウェブページは人間が読めばだいたい何のことが書いてあるか分かりますよね。 ですが、プログラムは人間ほど頭が良くないので、そのウェブページ内の文章だけではそのページが何のことについて書かれているページなのか正確に識別す

    フェイスブック、ミクシィ、グリーで使われている OGP (Open Graph Protocol) とは何か - IT戦記
    kicchomu3
    kicchomu3 2011/01/18
  • はてなブックマークのコンテンツの JavaScript を高速化する - IT戦記

    はじめに 「新はてなブックマーク」になったということで、とっても便利になったのですが、ブックマーク一覧ページ*1が若干 JavaScript に時間が掛かっているみたいです。 というわけで 調査してみたいと思います。調査して、改善できそうなところは後で纏めて「はてなアイデア」にでも登録しようと思います。 この日記は調査しながら、過程を書いていくつもりです。 準備 まずは、人のサイトの JavaScript を書き換えて試してみるための環境を作ります。 作業用ディレクトリを作る とりあえず、ホームに HatenaJS というディレクトリを作ります。 $ mkdir HatenaJS $ cd HatenaJS CocProxy をダウンロードしてくる 以下から CocProxy というツールをダウンロードしてきます。 http://coderepos.org/share/wiki/CocPr

    はてなブックマークのコンテンツの JavaScript を高速化する - IT戦記
  • Safari4 と IE8 で実装された DOM Storage とは何か - IT戦記

    はじめに 皆様 JavaScript のスピード競争が激化し、 ECMAScript 3.1 の仕様の策定が進むなど、激動の JavaScript 時代をいかがお過ごしでしょうか。 さて今日は、今、ちまたで大ブレイクの兆しを見せている DOM Storage という仕様を紹介したいと思います。 DOM Storage とは何か まず、 DOM Storage とはどんなものなのでしょうか。 とても簡単に言ってしまえば、とてもたくさんのデータが保存できてサーバーに自動で送られない Cookie みたいなものです。 さらに、 Cookie とは違って JavaScript からとても扱い易く作られています。 では、この DOMStorage の具体的なソースコードを見てみましょう。 <!DOCTYPE html> <html> <head><title>DOMStorage の使い方</tit

    Safari4 と IE8 で実装された DOM Storage とは何か - IT戦記
  • Apple 謹製の JavaScript デバッガ「Drosera」が便利な件 - IT戦記

    Drosera とは 1000speakers 後のハッカソンで 山岸くん が「Drosera っていうアプリがある!」って発見して、教えてもらいました。 Drosera は WebKit 用の JavaScript デバッガで、 Windows XP でも Mac でも動くみたいです。 WebKit Build Archives | WebKit からダウンロードした WebKitアーカイブの中に同封されています。 で、実際に使ってみた感じ できること ステップ実行 コールスタックを見る レキシカルな変数をウォッチする などなどです。 まとめ Web インスペクタと併用すれば効果抜群ですね!

    Apple 謹製の JavaScript デバッガ「Drosera」が便利な件 - IT戦記
  • 1981 世代のエンジニアで集まってなんかしよう - IT戦記

    エロギークで有名な yusukebe さんの呼びかけ woremacxさんと同じ年生まれが発覚。amachangも1982年1月生まれなので同期! 81s結成じゃ!! http://d.hatena.ne.jp/kamawada/20071128/1196228938 ということで、他の 81s 世代(付近)のエンジニア集まろうよ! まだ IRC しかないみたいけど #1981@freenode どんどん参加しちゃおう! なんか楽しい事 しよう!

    1981 世代のエンジニアで集まってなんかしよう - IT戦記
    kicchomu3
    kicchomu3 2007/11/30
    僕も81世代!
  • XPath は jQuery や Prototype.js と競合する技術ではなく、むしろ共存する技術です - IT戦記

    昨日のエントリのブクマやコメントで jQuery からの移行がめんどう 時代は jQuery のようなコメントがありました。 これらのコメントから おそらく、「XPath が jQuery や YUI、Prototype.js、Dojo、MochiKit などの汎用 JS ライブラリと競合する」と思ってる方が多いのかなと思いました。 結論 XPath は汎用 JS ライブラリとは競合する技術ではなく、共存する技術だと僕は考えています。 理由 汎用的な JS のライブラリには、大きく以下のような機能があります。 DOM ツリー上の要素やノードを取得する DOM に新しい要素やノード、属性、プロパティ、イベントなどを追加する その他、クロスブラウザとか それに対して XPath が提供するのは DOM ツリー上の要素やノードを取得する というシンプルな機能だけです。 つまり、 XPath は汎

    XPath は jQuery や Prototype.js と競合する技術ではなく、むしろ共存する技術です - IT戦記
  • JavaScript-XPath をリリースしました!さあ、あなたも XPath を使おう!(解説付き) - IT戦記

    JavaScript-XPath とは JavaScript-XPath は、 DOM 3 XPath を実装していないブラウザに対して、実用的な速度で動作する DOM 3 XPath のエンジンを追加します。 一言で乱暴に言ってしまえば、どのブラウザでも document.evaluate って関数で XPath 使えるようになるよ!ってことです。 以下が公式サイトになります。 http://coderepos.org/share/wiki/JavaScript-XPath DOM 3 XPath ってなんなの!? めっちゃ簡単(で、ちょっとだけ適当)なDOM 3 XPath の説明をします><。 JavaScript でよく使う document.getElementById や document.getElementsByTagName って関数ありますよね? DOM 3 XPath

    JavaScript-XPath をリリースしました!さあ、あなたも XPath を使おう!(解説付き) - IT戦記
  • IT戦記 - 一行で IE の JavaScript を高速化する方法

    以下の一行をすべての JavaScript の前に読み込む /*@cc_on _d=document;eval('var document=_d')@*/ この一行を読み込むことによって IE での document へのアクセスが 5 倍速くなります。 たとえば 以下のように、読み込む前と読み込んだ後を比較してみます。 // Before var date = new Date; for (var i = 0; i < 100000; i++) document; alert(new Date - date); // 643 /*@cc_on _d=document;eval('var document=_d')@*/ // After date = new Date; for (var i = 0; i < 100000; i++) document; alert(new Date -

    IT戦記 - 一行で IE の JavaScript を高速化する方法
  • JavaScript < jQuery < Lisp ? - IT戦記

    はじめに 僕は jQuery も Lisp も触ったことがないので、このエントリが言ってることは間違えてる可能性があります>< もし、「それ違うよ」ってのがあれば指摘してくれると嬉しいです>< そういえば 初めて dankogai さんと会ったときに「S 式とアセンブラは両極端にいながら データ==プログラム というところが同じだ」というようなことを言っていた(気がする)。 データ==プログラムというのは当にすごい データとしてプログラムを直接書き換えたりいろいろなことができる。当にすごい。 もちろん、他の言語でも、リフレクションすることや、変数やプロパティに関数を格納することでそれと似たようなことは可能だ。でもそれは、データ=プログラムとは全然違う。 バイトコード書き換えは似ているが、バイトコードの世界がデータ==プログラムなのであってその言語自体はそうじゃない。でも、バイトコードを

    JavaScript < jQuery < Lisp ? - IT戦記
  • IT戦記 - IEを華麗に撃墜する一行

    はい! こんにちは!!!!! 今日は、偶然ブラクラ発見しちゃったから、それをお伝えしますね! これだよ! <script>document.createStyleSheet().addRule('html > body', 'display:block');</script> → サンプル (IEだとブラウザが固まった上にメモリ 1.5 GB くらいくっちゃうよ! 注意してね!) IE6とかIE6のコンポーネントブラウザだと確実に落ちちゃうみたいだね!IE7は落ちないけど! CSSStyleSheet オブジェクトに addRule で子孫セレクタをあてるとダメなかんじかな! ちなみに display:block の箇所はどんなプロパティでも落ちるよ! なにこれ!よくわかんないけど面白いね…! FirefoxとかOpera大好きっ子は、これをたくさんバラまいてIEのシェアをどんどん下げちゃ

    IT戦記 - IEを華麗に撃墜する一行
  • Mac 2 日目の僕でも出来た! XCode を使った Firefox デバッギング - IT戦記

    ちょっと釣りっぽいタイトルでごめんなさいw でも、当に簡単に出来るので皆様もお試しあれ。あと、 Mac まだよくわかってないのですごい回りくどいことやってるかもしれないので、そのときは指摘してくだしあ>< じゃあ、いってみよう! 1. Firefox のソース持ってくる! $ mkdir ~/source $ cd ~/source $ export CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot $ cvs login pass:anonymous $ cvs co mozilla/client.mk mozilla/browser/config $ cd ~/source/mozilla $ make -f client.mk pull_all MOZ_CO_PROJECT=browserとやるとソースがダーっとダ

    Mac 2 日目の僕でも出来た! XCode を使った Firefox デバッギング - IT戦記
  • 濃い JavaScript のテクニック集見つけた - IT戦記

    jslibs の wiki を眺めてたら、 JavaScript のテクニック集を見つけてしまった http://code.google.com/p/jslibs/wiki/JavascriptTips 内容 Firefox 限定のテクニックも含まれてますが、 JavaScript のテッキーな書き方満載です。 例えば カンマ演算子 var a = (1, 2, 3, 4); alert(a); // 4 var b = ( a += 3, a *= 6, a ); とか、普通やらないようなこともいろいろあって楽しかったです。

    濃い JavaScript のテクニック集見つけた - IT戦記
  • 「勝手に添削 - JavaScript 入門」を勝手に添削 - IT戦記

    このエントリーは以下のエントリーへの解答です 404 Blog Not Found:javascript - 勝手に添削 - JavaScript入門 はじめに 僕はあまりブログを一生懸命書くのは嫌いです。で、いつも適当に言葉は少なめにソースだけで解説しているが。今回は、それだけでは伝わらないところまで突っ込まれてしまったので、僕が伝えたかった意図をこと細かく説明していこうと思います。 文章が苦手なので、変な言い回しで読み辛かったりすると思いますがよろしくお願いします。 一応、弾さんには断っておきますが、別に弾さんに噛みついている訳ではないです。ただ、弾さんのような有名人に突っ込まれたら、僕の講義を聞いてくれたエンジニアが嘘を教えられたと不安になってしまうのではないかと思ったのです。僕の講義を聞きにくれた人には、虚像でもいいから 100 % の自信と勇気を付けて欲しい(プログラムを書く上で

    「勝手に添削 - JavaScript 入門」を勝手に添削 - IT戦記
  • DBIx::Class::Schema::Loader で 34 秒くらいで Schema クラス生成 - IT戦記

    既存 DB から以下のワンライナー一発で DBIx::Class の Schema が生成できる $ perl -MDBIx::Class::Schema::Loader=make_schema_at,dump_to_dir:./lib -e 'make_schema_at "Hoge::Schema", {relationships => 1, debug => 1}, ["dbi:mysql:hoge","user","password"]' やりかた。 まず、クラスを作りたいディレクトリ付近に移動 さっきのコマンドの dump_to_dir: の箇所にクラスツリーの起点となるディレクトリを指定 make_schema_at の第一引数に生成する Schema のパッケージ名を指定 外部キー制約とかを考慮して has_many とか belongs_to とかを自動で設定して欲しい場合

    DBIx::Class::Schema::Loader で 34 秒くらいで Schema クラス生成 - IT戦記
  • Class::C3, Algorithm::C3 を勉強したよ! - IT戦記

    DBIx::Class を少し使ったことがあったので Class::C3 をなんとなくで理解していたんです。(ふーん幅優先版の NEXT モジュールでしょ?みたいな感じで。) でも、これは絶対にちゃんと細かい挙動まで勉強しといたほうがいいと思いました。 多重継承とか mixin とかに強くなりたいなと C3 C3 というのは Python 2.3 のドキュメントに書いてある MRO(Method Resolution Order 多重継承したときにどんな感じでメソッドを探索するかという順番) を決めるアルゴリズムで。Algorithm::C3 っていうのがそのアルゴリズムの Perl 実装なんです。 それに! Parrot でも使えるみたいだし! ちなみに MRO ってこんな感じね A には add というメソッドがある B にも add というメソッドがある C は A と B を多重継

    Class::C3, Algorithm::C3 を勉強したよ! - IT戦記
  • 1