タグ

2008年6月26日のブックマーク (10件)

  • http://www.csg.is.titech.ac.jp/~chiba/javassist/html/index.html

  • Javassistを使って実行時のクラス拡張をやってみた。 - うなの日記

    Javassistを使うと、実行時のクラス拡張(コンパイル済みのクラスをJavaプログラム実行時に改変し、メソッドに処理を追加したり、フィールドを追加したりすること。)ができます。以下は簡単なサンプルとはまったところについてのメモです。 簡単なサンプル "com.example.Kitten"を"名前を話すcom.example.Kitten"に拡張してみます。基的な手順は次の通り。Javassistは3.4を使用しています。 ClassPoolを作る。 CtClassを作る。 CtClassのAPIを呼び出し、クラスを拡張する。 CtClass#getDeclaredMethod(String)で修正するメソッドを取得。 CtMethod#setBody(String)でメソッドの体を修正。 CtClass#toClass(ClassLoader, ProtectionDomain)

    Javassistを使って実行時のクラス拡張をやってみた。 - うなの日記
  • Javassistチュートリアル 4.イントロスペクションとカスタマイズ

    miya2000
    miya2000 2008/06/26
    特殊変数
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • Greasemonkeyスクリプトとウインドウ間で安全に通信する - ロックスターになりたい

    追記2008.6.24 イベントによる通信について、nanto_viさんがGreasemonkey スクリプトとイベントで通信: Days on the Moonでより有用でフォーマルな情報を提供されています。 まじめに書こうと思ったら予想より使えなかった。 むかしsnj14がはてなブックマークが勝手にj/kにキー割り当てて、サービスはデータを出すだけにしてUIはユーザが好きにできるようにするべきだっていうのを書いてた気がするけど見つけられませんでした。 自分は、そうはいってもfirefox+Greasemonkey+LDRizeのようなUIの統一を図るスクリプトが極めてマイナーな現状でサービスがいらんことすんなっていうのも、ついていけない正しい話だなーと思ってるので、まずはLDRizeがあったら独自のバインディングをやめる、という妥協策が必要だと思う。そうすればはてなブックマークでj/k

    Greasemonkeyスクリプトとウインドウ間で安全に通信する - ロックスターになりたい
  • Firebug 1.2 ‘console’ implementation 和訳 « ku

    Firebug - Web Development Evolved » Blog Archive » Firebug 1.2 ‘console’ implementationの和訳です。 実装はソースコードに書いてあるのそのまま(あたりまえ)。webページに書かれてある悪意あるコードを特権つきで実行しないようにするための細工だっていうことがわかったところが収穫でした。 FF3betaでFirebugの1.1のコマンドが動かなくなりました。これを直すのがすごい難しくてコマンドラインとコンソールを作り直す必要がありました。はじめにコンソールについて書いて、次回コマンドラインの実装について書きます(訳注:けっきょく2008.5.16現在まだ書かれてないです)。 Firebugの’console’を使ってWeb開発者はテキストやオブジェクトをFirebugのコンソールパネルに出力することができます

  • Greasemonkey スクリプトとイベントで通信: Days on the Moon

    「Greasemonkeyスクリプトとウインドウ間で安全に通信する」にて、DOM イベントを用いた Web ページと Greasemonkey スクリプトとの通信について述べられています。そちらでは dispatchEvent メソッドの返り値による 1 bit 通信に触れていますが、やはりもっと自由にデータをやり取りしたいもの。そのためにはどのような方法があるでしょうか。 独自プロパティ 真っ先に思いつくのは、Web ページ側でイベントオブジェクトを作成した際、独自プロパティを追加する方法ですが、これはだめです。Greasemonkey スクリプト側ではイベントオブジェクトの独自プロパティを取得できません。event.wrappedJSObject.myProperty のように wrappedJSObject を介せば取得できますが、せっかく安全のため Firefox 側でラッパーに包

    miya2000
    miya2000 2008/06/26
    「大切なことなので 2 回言いました。」
  • 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戦記
  • .Interface - AOPの使い方

    AOPとは何か? http://s2container.seasar.org/ja/aop.html ここにはこういう説明があります。 AOPとは、Aspect Oriented Programming (アスペクト指向プログラミング) の略です。 プログラム来の目的とは異なる処理を内部に埋め込まず、外から織り込むように作ることです。 開発者はプログラム来の目的だけに集中したいのですが、異なる処理、つまりロギングやトランザクション管理などにも気を配る必要があります。これはこれまでの開発の常識だったと思います。AOPでこの問題に対処できます。 またこのような説明もあります。 オブジェクト指向では顧客からの要求である機能(Core Concern)とロギング機能、宣言的トランザクション、DBコネクションの取得・解放、例外処理、セキュリティ機能や分散処理などの非機能要求 (Crosscutt

    .Interface - AOPの使い方
    miya2000
    miya2000 2008/06/26
  • Javassist 入門

    Java Press vol. 35, pp.76--85, March 2004. Java プログラムの"舞台裏"大追跡 Javassist -- Java バイトコードを操作するクラスライブラリ -- 入門 先端J2EE サーバJBoss が,人知れず内部で行っていること 千葉 滋 東京工業大学・大学院情報理工学研究科 はじめに Java バイトコードを変換するライブラリとしては Jakarta BCEL が有名です。BCEL は Java クラスファイルのデータ構造を直接操作する場合には便利ですが、Java クラスファイルの内部仕様、つまり Java バイトコードに詳しくないと使いこなせません。一方、Java バイトコードにあまり詳しくない開発者でもバイトコード変換を実装できるようにするライブラリが Javassist です。 バイトコード変換 はっきりいって、つい最近までJava