タグ

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

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

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

    フェイスブック、ミクシィ、グリーで使われている OGP (Open Graph Protocol) とは何か - IT戦記
  • JavaScript 的な考え方で C++ Template に入門してみた - IT戦記

    はじめに id:kazuhooku さんが Kazuho@Cybozu Labs: なんとなくリフレクション in C++ という記事を書いていて、なんか凄そう! わくわく! でも、読めません>< Template 怖い>< という訳で C++ Template の勉強をしてみよう! そいえば、ちょっと前に 1000speakers で上野氏に C++ Template はチューリング完全、関数型言語というようなことを聞いたきがする! じゃあ、いろんなことが出来るはず! という訳で JavaScript で出来ることが C++ で出来るかを試してみよう! まず 関数テンプレートと構造体テンプレートどっちで JavaScript の関数を表現するべきかを考えた。 C++ の文法を考える // これはできない>< void foo() { void bar() { void baz() { }

    JavaScript 的な考え方で C++ Template に入門してみた - IT戦記
    f99aq
    f99aq 2011/01/29
  • Effective Java 読書会 6 日目 「ジェネリクス!」 - IT戦記

    はじめに 今日からついにジェネリクスに突入しました! 今日読んだところ 101 ページ〜 125 ページ 前回はこちら http://d.hatena.ne.jp/amachang/20100222/1266850995 関数オブジェクト インスタンスメソッドを一つだけ持っているクラスのオブジェクト。 C++ の関数ポインタのような、 JavaScript のクロージャのような使われ方をする。 ストラテジーパターンで ストラテジーだけを渡すときに使う。 関数オブジェクトのインスタンスは複数いらない 以下のように、シングルトンにしたり、 public static final なフィールドに入れられたりする。 import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import j

    Effective Java 読書会 6 日目 「ジェネリクス!」 - IT戦記
    f99aq
    f99aq 2011/01/22
  • Effective Java 読書会 3 日目「それ Apache Commons で出来るよ」 - IT戦記

    はじめに じゃっばじゃばにしてやんよー♪っと ( ´ー`)フゥー...(゚Д゚)ハッ! どーん 今日読んだところ 45 ページ〜 66 ページ 前回はこちら Effective Java 読書会 2 日目 「equals night」 - IT戦記 hashCode 2 契約 シグニフィカントなフィールドを変更しなければ、いつ hashCode を呼び出しても値は変わらない x.equals(y) が true の場合は、 x.hashCode() == y.hashCode() が true equals をオーバーライドしたら hashCode もオーバーライドすべき 前述の 2 契約を守るために必要 x.equals(y) が false の場合 かならずしも、 x.hashCode() != y.hashCode() になる必要はないが、 値がバラけているほうが HashMap

    Effective Java 読書会 3 日目「それ Apache Commons で出来るよ」 - IT戦記
    f99aq
    f99aq 2011/01/22
  • Effective Java 読書会 1 日目「static メソッドの使い方などなど」 - IT戦記

    はじめに 社内で「Effective Java を 20 日で読もう」という勉強会が企画されて、今日がその一日目。 ノリノリな感じで。 どーん 今日読んだところ 5 ページ 〜 19 ページ という訳で いろいろ出た話題を残しておく 毎日続けるために、なるべく適当に書いていこうと思う あと、自分が勝手に解釈してる部分も多々あると思うます>< static ファクトリーメソッド static ファクトリーメソッドとは、コンストラクタの代わりに使われる static メソッドのことらしい。 コンストラクタは、名無し たしかに String コンストラクタとかごちゃごちゃしてて一個一個名前付けたほうがいいんじゃね?と思うなーと http://java.sun.com/javase/6/docs/api/java/lang/String.html#constructor_summary Strin

    Effective Java 読書会 1 日目「static メソッドの使い方などなど」 - IT戦記
    f99aq
    f99aq 2011/01/22
  • 要素が document につながっているかを高速に調べる方法 - IT戦記

    とある要素が document につながっているかどうかを調べたい! とりあえず、ほとんどすべてのブラウザで出来る方法としては、 parentNode で確認することができますね。 function isElementInDocument(node) { do { if (node === document) { return true; } } while (node = node.parentNode) return false; } でも 前の例だとちょっと遅いので contains や、 compareDocumentPosition を使うといいです! コードにすると以下のような感じ function isElementInDocument(node) { if (document === node) { return true } else if (document.compa

    要素が document につながっているかを高速に調べる方法 - IT戦記
  • Effective Java 読書会 11 日目 「Java マルチスレッド難しいいい」 - IT戦記

    はじめに 順番が前後しますが、都合上「並行性」の章を先に書きたいと思います。 読んだところ 251 ページ 〜 268 ページ 前回はこちら Effective Java 読書会 10 日目 「Java の基テクニック集」 - IT戦記 同期とは何か 同期 = 原子性 + 可視性 原子性(アトミック性) データの状態遷移の過渡的な不整合な状態が(どのスレッドからも)見えないという性質。 適切に相互排他することでデータの原子性を保証できる。(保護されたコードを実行できるスレッドは一つだけ。) 可視性(ビジビリティ) (どのスレッドからも)同じ値が見えるという性質。 普通、変数やフィールドの値はスレッドごとにキャッシュ(レジスタなど)されるなどしていて、スレッド間での同値性は保証されない。 同期するというのは、原子性を保証することだけではなく、可視性も保証することだということを忘れてはいけな

    Effective Java 読書会 11 日目 「Java マルチスレッド難しいいい」 - IT戦記
    f99aq
    f99aq 2011/01/11
  • Effective Java 読書会 14 日目 「シリアライズ!シリアライズ!」 - IT戦記

    お前をシリアルにしてやろうか! this photo is licensed by Horia Varlan はじめに いよいよ最後のページになりました!!! はりきっていきましょう!! 今回の範囲 279 ページ 〜 305 ページ 前回はこちら Effective Java 読書会 13 日目 「Java の例外めんどくさい」 - IT戦記 シリアライズって何? シリアライズとは、構造を持ったデータ(Java では、オブジェクトやプリミティブ)を、バイト列にすること。 たとえば、 オブジェクトをファイルに保存したい! 通信先にこのオブジェクトを送りたい! (具体的には、)ゲームデータをセーブしたい!(とか) などなどの用途で使えます。 Java のシリアライズ ObjectOutputStream にオブジェクトを書き込むと、 ObjectOutputStream がラップしているオブ

    Effective Java 読書会 14 日目 「シリアライズ!シリアライズ!」 - IT戦記
    f99aq
    f99aq 2011/01/10
  • サーバーサイド jQuery をやってみる! - IT戦記

    最近、社内で PHP Spidermonkey が流行って(?)いるようです><! Cybozu Inside Out: SpiderMonkeyを使ってPHPでサーバーサイドJavaScript id:ama-ch さすがです>< というわけで 僕も、 PHP の Spidermonkey でどのくらいのことが出来るのか試してみました>< まず、 Hello, world! <?php // new して $js = new JSContext(); // print 関数作って $js->registerFunction(function($v) { print $v; }, 'print'); // こんにちはこんにちは! $js->evaluateScript('print("Hello, world!!")'); Hello, world!おおお、簡単! 次は、 id:m-hiy

    サーバーサイド jQuery をやってみる! - IT戦記
  • for 文と無名関数のイディオム - IT戦記

    id:cho45 がチョロっと書いたコードが話題になっている 冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。 - subtech このような書き方は、自分もたまにする。 というわけで、この書き方をする利点を以下の順に解説して見る。 単純な for 文の問題点 with 文を使った解決方法と、その微妙な問題点 無名関数を使った解決方法 単純な for 文の問題点 まずは、以下の HTML に対して <ul> <li>hoge</li> <li>fuga</li> <li>piyo</li> </ul> 以下の JavaScript を実行して var list = document.querySelectorAll('ul > li'); for (var i = 0, len = list.length; i < len; i++) { var node = list[i]; v

    for 文と無名関数のイディオム - IT戦記
  • finally がマイブーム - IT戦記

    皆様お久しぶりです そろそろ、日記を書かないと「はてな市民権」を剥奪されそうなので、書いておきまつ>< 最近 finally がマイブームです どういうときに? 比較的に大規模な開発のとき(プロトタイプとかちゃんと使ってるとき) どんなコードで? こんなコード。 Fuga を継承した Hoge を作る場合とか var Hoge = function() { /* ...(snip)... */ }; Hoge.prototype = new Fuga(); // メソッドのオーバーライド Hoge.prototype.getValue = function() { return Fuga.prototype.getValue.apply(this, arguments); }; この return 〜 .apply(this, arguments) までは定型区みたいなもんなので、まず書い

    finally がマイブーム - IT戦記
  • Google Adsense の件について - IT戦記

    ちょっと時間がないのでなぐり書きです。 週末騒がれていたみたいですね 流れは、適当にブログとブクマコメント読んで把握していただけたらなあと思います。 http://d.hatena.ne.jp/webkit/20090108/p2 JavaScript なら IT戦記 http://d.hatena.ne.jp/ryocotan/20090107/p2 - ところてん - アットウィキ http://hachimitu.jp/blog/archives/2009/01/12214009.html http://d.hatena.ne.jp/sskhybrid/20090111/1231688328 [広告][DTP]ちょっと違うけど個人を中心に据えた広告 http://www.20kabu.com/blog/20090112.html#p01 http://d.hatena.ne.jp/k

    Google Adsense の件について - IT戦記
    f99aq
    f99aq 2009/02/08
  • サーバー起動用に JavaScript が 1 秒以上実行されなくて alert しないブラウザを作る - IT戦記

    はじめに サムネイルサーバーのようなサービスを作るときには、ウェブサーバー上にブラウザを乗せる必要があります。 問題 ただ、そういった用途でブラウザを使う場合。 JavaScript が無限ループに落ち入らないように配慮する必要があります。 ほとんどの場合は、 JavaScript 自体をオフにすることが多いのですが JavaScript を実行したいような場合もあるでしょう。 解決方法 今回は、 WebKit でその解決方法を紹介します。 1. まず WebKit のソースコードを取得する svn co http://svn.webkit.org/repository/webkit/trunk WebKit 2. 次に、タイマーの時間を短くする WebCore/bindings/js/JSDOMWindowBase.cpp を編集 JSDOMWindowBase::JSDOMWindow

    サーバー起動用に JavaScript が 1 秒以上実行されなくて alert しないブラウザを作る - IT戦記
  • 若者に一度だけ与えられる出会いの場、セキュリティ&プログラミングキャンプ - IT戦記

    はじめに 2008 年 8 月 13 日 〜 17 日まで、講師としてセキュリティ&プログラミングキャンプ 2008 に参加させていただきました。 セキュリティ&プログラミングキャンプって何? セキュリティキャンプ&プログラミングキャンプとは、 2004 年から始まった「若くて優秀なセキュリティ人材やプログラマーを育てちゃおうよ!」というイベントです。 キャンプの名のとおり 5 日間キャンプ形式で行わます。そして、毎日 8:00 〜 22:00 まで講義が行われるという大変ハードでエキサイティングなイベントです。 僕が経験したキャンプ 僕がキャンプの中で経験したこと感じたことを書いておきたいと思います。 楽しさを伝えることの重要性 僕は、 JavaScript の講義を担当していたのですが、前日まで作っていた資料とは全然違う資料を使って講義を行いました。 一日目、手を動かしながら目を輝かせ

    若者に一度だけ与えられる出会いの場、セキュリティ&プログラミングキャンプ - IT戦記
  • 次の JavaScript の仕様はこうなる! ECMAScript 3.0 から 3.1 への変更点まとめ - IT戦記

    はじめに JavaScript の標準仕様である ECMAScript 3rd Edition (ECMAScript 3.0) が 9 年ぶりにバージョンアップしようとしています。 実は、これまでも様々なバージョンアップの案が上がっては消え、また上がっては消えていました。 しかし、今回のバージョンアップには今までと違う点が一つだけあります。 それは、現時点での主要な ECMAScript インタプリタ(JavaScript の実行エンジン)を作っている全団体(以下を参照)がこの仕様に同意したことです。 Mozilla (Firefox) Apple (Safari) Microsoft (Internet Explorer) Opera (Opera) Adobe (Flash) Yahoo (Yahoo Widget) Google この同意は JavaScript のこれからを大きく

    次の JavaScript の仕様はこうなる! ECMAScript 3.0 から 3.1 への変更点まとめ - IT戦記
  • キャンプで出会った中学生三人組 - IT戦記

    中学三人組の出会い セキュリティ&プログラミングキャンプの小話。 プログラミングコースには、三人の中学生が参加していました。 id:qnighy id:javascripter id:gin5005 この三人がこのキャンプを通じて出会い、凄く仲良くなっていました。その話を書いておきたいと思います。 id:qnighy 情報オリンピックとかにも出ていたりする実力派の id:qnighy 君。 きっと同世代のエンジニアでは、ずば抜けて実力のある彼。そんな彼も、このイベントで id:javascripter 君や id:gin5005 君に会って、学校生活では得ることの出来なかった刺激を感じることができたようです。 「このイベントで、一生付き合っていけそうな親友(ライバル)を見つけた」 という彼の台詞が印象的でした。 id:javascripter JavaScript 界隈では結構有名なブロガ

    キャンプで出会った中学生三人組 - IT戦記
    f99aq
    f99aq 2008/08/31
  • ステップ・バイ・ステップで Pathtraq の API を使ってみよう - IT戦記

    はじめに 「このサイトの人気ページを見たい!」 「このページに、皆いったいどうやって来てるんだろう?」 「このページを見たあとは、どこを見に行ってるんだろう?」 そんなこと思ったことありませんか? Pathtraq API を使うことで、そんな情報をあなたのソフトウェア、ウェブアプリケーションに組込めるようになりました!やった! でも、難しいんでしょ><? 違うよ。全然違うよ。超簡単だよ。 というわけで、今日は JavaScript から Pathtraq API を使ってみましょう! Step 1 Pathtraq API を目で見てみよう! やり方は、簡単です。 http://api.pathtraq.com/pages?url=**ここに調べたい URL** とやるだけです。 試しに、このブログを見てみましょう。 RSS が出力されました。 これは、 IT 戦記内で最近人気のページを

    ステップ・バイ・ステップで Pathtraq の API を使ってみよう - IT戦記
  • onclick 属性問題について - IT戦記

    気でやるならonclick属性は避けてライブラリを活用すべき - 帰ってきたHolyGrailとHoryGrailの区別がつかない日記 に関して この先、 HTML に onclick と書いても石を投げられないように書いておく>< 僕も onclick 属性がダメだと思っていた時代もありました。でも、今は時々使うなあ。 (あ、でも、 HTML と JS で分業している場合は、使わないほうがいいよね^^;そこだけは言っておく。) JavaScript 入門の記事を書くときに onclick 属性がダメだとしたら、いろいろ質的でないことを説明しなきゃいけない。 現状では onclick 属性が、もっとも簡単に HTML にイベントをマッピングできる方法だから、そんなに目くじらたてなくてもいいんじゃないかなあ? たとえば 以下は、クリック時に href に GET を送るための oncli

    onclick 属性問題について - IT戦記
  • gdb の list コマンドの使い方がやっと分かった - IT戦記

    今まで (gdb) n 261 if(argc <= 1) (gdb) l 256 arch_flags = NULL; 257 narch_flags = 0; 258 all_archs = FALSE; 259 use_member_syntax = TRUE; 260 261 if(argc <= 1) 262 usage(); 263 264 /* 265 * Parse the arguments. (gdb) 「こんなちょっとのコード見ても何のことかわかんねーよ!!」 って思ってたんですけど そのままリターンキーを連打すれば良かったんですね! たとえば、 main 関数の全貌を知りたくなったら 「l main」って打ってリターン連打みたいな感じでいいのか。 こんな感じ (gdb) l main 242 int 243 main( 244 int argc, 245 char

    gdb の list コマンドの使い方がやっと分かった - IT戦記
    f99aq
    f99aq 2008/04/13
  • XPathGraph がすごい件と、XPath で出来ることのヒント - IT戦記

    XPathGraph とは http://xpath.kayac.com/ URL と XPath を指定すると一日に一回その URL をスクレイピングして XPath 式が示す値をグラフにしてくれる!という画期的なサービスです。 例えば、 URL と XPath を指定するだけで以下のようなグラフが作れてしまいます。 当に楽しいことが出来そうでワクワクしてます! でも まだ XPath を登録している人が意外と少ないので、「ひょっとして、このサービスの使いどころが分からないのかなあ。」と思いました。 というわけで XPath で出来ることのヒントを少し紹介したいと思います。 足し算、引き算、かけ算、割り算 XPath では普通に数値の演算ができます。 たとえば、 //div[@class=counter] で取得してきた div 要素が 1000 という数値を持っていたとすると 2 *

    XPathGraph がすごい件と、XPath で出来ることのヒント - IT戦記
    f99aq
    f99aq 2008/04/13