タグ

ブックマーク / dayflower.hatenablog.com (13)

  • JavaScript でかんたん XUL アプリに挑戦 - daily dayflower

    こんにちは! みなさんガジェットつくってますか! なんだか最近、色々な種類があるみたいですね! (以下略!) そしたら意外と簡単だった…! これならぼくにも作れそう!! ってことで、ちょっとメモしておきますね! どれにしようかな…! おもしろいこと Ubuntu で動けばいいや*1 自分とこで書きやすいのがいい こんな感じで考えていくと… 最終的に XUL アプリケーション,ってことになりました! XUL で作られたツールなら,いつも使っているよ! (Firefox とか Thunderbird とかね) だから XUL アプリに決定! つくるのむつかしそう? XUL のアプリって C から libxul をゴリゴリ触らないとダメなんじゃないの? なんて思っていた時期がぼくにもありました…! 大丈夫!XULRunner を使えば(HTML に似た)XUL と JavaScript だけでで

    JavaScript でかんたん XUL アプリに挑戦 - daily dayflower
  • V8 (Google JavaScript Engine) を embed した感想とかあれこれ - daily dayflower

    なぜ CodeRepos に登録しないのか べつだん深意や確執があるわけじゃなくて,華々しく 500 人めのコミッタになろうと思ったら,現在 461 人だったからです。ということで 38 人の方々,コミッタ登録してください ;P 冗談はともかくおまえの書いた汚いコードを早く添削したいんじゃという方がいらっしゃったら,代理でいれといて構いません。 Acme::JavaScript::V8(Perl XS)を書くときに苦労したこと New ていうのが XS での define 値だったので困りました。V8 側だと,new / delete するんじゃなくて Class::New() する流儀なので。 ですから,#undef New してあります。他のマクロで使われていたらマズいなぁと思いますが,動いたからよしとします。 エンベッダーズガイド V8 JavaScript engine を読む s

    V8 (Google JavaScript Engine) を embed した感想とかあれこれ - daily dayflower
  • v8 (Google JavaScript Engine) を Perl XS モジュールにしてみた - daily dayflower

    やはりやっつけで。Joke module です。 いろいろ書きたいことがあるけど,そのうち(追記するかも)。 libv8 と XS の間をとりもつ bridge.cc。 /* bridge.cc */ #include <v8.h> #include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" /* harmful macro!, but, but, ... */ #undef New #include "bridge.h" using namespace v8; class V8Context { public: V8Context() { HandleScope scope; Handle<ObjectTemplate> global = ObjectTemplate::New(); Handle

    v8 (Google JavaScript Engine) を Perl XS モジュールにしてみた - daily dayflower
    HolyGrail
    HolyGrail 2008/09/05
    dayflowerさん仕事がいろいろと早い。
  • v8 (Google JavaScript Engine) を Apache のモジュールにしてみた - daily dayflower

    ちまたでは Google Chrome より v8 がアツいらしいので,やっつけでつくりました。Joke module です。 ふつーに CGI モジュール的につくってもよかったんですが,なんとなくテンプレート的にしました。ほんとうは mod_perl みたいにサーバのあらゆるところに hook をかけれるようにしたほうがおもしろいんでしょうけど。 <html> <head> <title><?js print('Hello, world!'); ?></title> </head> <body> <ul> <?js for (var i = 0; i < 10; i ++) { ?> <li><?js print(i + 1); ?></li> <?js } ?> </ul> </body> </html> UA のリクエストとか全然処理してない(エンジンにわたしていない)です。だから

    v8 (Google JavaScript Engine) を Apache のモジュールにしてみた - daily dayflower
  • PL_check hack - daily dayflower

    (あとでかく) XS くらいいじれないと Shibuya.pm に加入できないらしいので,とりあえず書きましたー。今回は実践編なので,あまりわかりやすい内容&たいした内容ではないです。わっふるさせてごめんなさい。 ゴール #!/usr/bin/perl eval 'print "Hello ' . $ARGV[0] . '!\n"'; とか危険ですよねー*1。こんな機能があるなんてけしからん。ですので,eval の実行を抑制するモジュールを書いてみました。 というのは冗談で,eval の実行主体となる OPCODEが,システム内で「完結」してます(んーうまく表現できない)。なのでサンプルとしていじりやすく,この題材をとりあげました。 評価型 eval はどのような OPCODE に変換されるのか まずは単純なコードを書いて,OPCODE がどのようになるのかたしかめてみます。 use st

    PL_check hack - daily dayflower
  • JavaScript ファイルの圧縮・再訪 - daily dayflower

    JavaScript ファイルの圧縮と一口にいってもおおまかに次の3種類があります。 コンテンツの圧縮(gzip);ブラウザ機能による伸長 コンテンツの圧縮(compress);JavaScript による伸長 コンテンツの縮小(minify) それぞれについて説明します。 コンテンツの圧縮;ブラウザ機能による伸長 ブラウザが圧縮コンテンツをサポートしている場合,リクエストヘッダの Accept-Encoding に gzip(や deflate)という値を渡します。この場合,サーバは圧縮されたコンテンツを渡すことができます。 一番簡単で安全なのは mod_deflate を使うことです*1。基動作として*2リクエストヘッダの Accept-Encoding に gzip が指定されている場合のみ,モジュールが圧縮して伝送してくれます。 フィルタモジュールなので,CGI(PHP)等による

    JavaScript ファイルの圧縮・再訪 - daily dayflower
  • JavaScript の圧縮 - daily dayflower

    2007/11/14 追記:より包括的な「JavaScript ファイルの圧縮・再訪 - daily dayflower」も書きました。 亜細亜ノ蛾さんの報告にもある通り,gzip 圧縮した JavaScript ファイルをおいとけばブラウザがきちんと読み込んでくれる。odz さんのところの議論によると Safari でも Content-Type を適切に定義すればオッケーぽい。 …………あたりのことを知らなかったゆえ JavaScript 圧縮機について調べてました。 Huffman JavaScript Compression 方式: 文字単位のハフマン符号化(推定) 符号表の格納とバイナリデータの文字列化(4/3倍)があるため,たいていの JavaScript が元サイズより大きくなってしまう(笑) ということで非実用/実験向き? packer 方式: 静的辞書+可読文字符号化 c

    JavaScript の圧縮 - daily dayflower
  • 図解: Perl と Unicode 文字列 - daily dayflower

    id:tomi-ru さんが [http://e8y.net/mag/015-encode/:title] というとてもプラクティカルな [http://search.cpan.org/perldoc?Encode:title=Encode] 入門をお書きになったので,わたしも違う切り口で書いてみたくなりました。 いちおうの基礎(読み飛ばし可) 文字セット, キャラクタセット, 文字集合, 文字集合 - Wikipedia エンコーディング, 符号化方式, 文字符号化方式 - Wikipedia この2つは異なります。とくに知らなくても下記の文書を読むことはできますが,理解しているとためになります。くわしく知りたい人は自習してください。 文字セットの例 Unicode JIS X 0208 ひらがなとかカタカナとか漢字とか ASCII 文字 エンコーディングの例 UTF-8 ISO-202

    図解: Perl と Unicode 文字列 - daily dayflower
  • ファイルハンドルをめぐる冒険(ただしマニア向け) - daily dayflower

    以下は Perl 5.8.8 のソースを元に記述しました。Perl 5.10 でもそう変わってはいないと思いますが,結構内部が変更されているので違うかもしれません。大まかには同じだと思います。 イントロダクション Perl でのファイルハンドルは内部的には [http://search.cpan.org/perldoc?IO::Handle:title=IO::Handle] オブジェクトとして保持されています。そのような記述は perl5004delta くらいでしか見つかりませんでした。ラクダにもなかったような。 Internal change: FileHandle class based on IO::* classes File handles are now stored internally as type IO::Handle. The FileHandle module

    ファイルハンドルをめぐる冒険(ただしマニア向け) - daily dayflower
  • JavaScript の「本気」な勉強 - daily dayflower

    まだひっぱるのもなんですけど。たぶん,言葉の指す対象にいろいろブレがあると思うんですよね。 勉強する人 まったくの初学者 さわりの文法などは知っているが,現実になにをどう書けばいいかわからない 勉強のスタイル 気で勉強したい 気で深く勉強したい 気でひととおり使えるようになりたい 勉強する対象 ブラウザで使う JavaScript HTML JavaScript (ECMAScript) Core DOM ともかく,もやもやと思ったことをとりとめもなく羅列してみます ライブラリの功罪 ライブラリは流行り廃りが激しいから、特定のライブラリに依存した「おまじない」ばかり覚えているのはどうかと思うなあ やっぱり、 DOM を直接書けたほうが、知識としては幅広く使えると思いますよ。 onclick 属性問題について - IT戦記 僕自身はなんだかんだで仕様原理主義者な所が今も強いわけで、その

    JavaScript の「本気」な勉強 - daily dayflower
    HolyGrail
    HolyGrail 2008/05/20
    概ね同意見かなー。ちょっと時間を見てエントリ書いてみる
  • JavaScriptのイベントハンドラ説明

    気でやるならonclick属性は避けてライブラリを活用すべき - 帰ってきたHolyGrailとHoryGrailの区別がつかない日記 を読んで,思うところあって書いてみました(決してカウンターアーティクルではない)。 むかしむかし JavaScript を触っていた むかしむかしに書かれた JavaScriptで勉強している/した 人向けに。大元記事(そろそろ気で学びませんか? | Think IT(シンクイット))の想定読者に近いかなと思います。よって以下は JavaScript の初学者にはまったくおすすめできない(余計な知識がついてしまう)です。 Step 1: はじめのいっぽ ボタンを押したらメッセージボックスが出現する HTML を書いてみます。 <html><body> <script type="text/javascript"> function ShowMes

    JavaScriptのイベントハンドラ説明
    HolyGrail
    HolyGrail 2008/05/16
    ↓こまけぇwwwwww/とてもよい記事。お疲れ様でした!/↓確かにwこう書いたりするのは頭おかしいかな、やっぱ「var func = function Func(){}」
  • UTF8 フラグあれこれ - daily dayflower

    UTF8 フラグについてわかってるつもりだったんですが,utf8::is_utf8 considered harmful - Bulknews::Subtech - subtech を読んで混乱したので,自分なりにまとめてみました。間違いがありましたらご指摘よろしく。 まとめ スカラー変数の内部表象の状態を示すものとして UTF8 フラグというものがある スカラー変数は(リファレンス等は別として)下記のものを格納できる (A) 文字列(内部表象: UTF-8) (B) 文字列(内部表象: ISO-8859-1) (C) バイナリ列 純粋なバイナリストリーム(画像ファイル等)かもしれないし, UTF-8 octet stream かもしれないし, CP932 octet stream かもしれないし,etc, etc ... Perl は(後方互換性確保などの理由から)ISO-8859-1

    UTF8 フラグあれこれ - daily dayflower
  • YAPC::Asia 2007 1 日目の感想 - daily dayflower

    YAPC 初参加。たぶん出席した方々にしかわからないメモ書きです。 全般 はてなガムもろた かなり前列のほうに座ってたんですが,プロジェクタが見づらかったのはフォーカスがあってないのか眼鏡の度がずれてきたのか Ingy a.k.a. Mr. Net の [謎] Kwiki は svn でアプリケーション全部配布とのことですが,XS モジュールとかは無視なのか全アーキテクチャ分ビルドするのか;あと環境によってインストール後が変わるモジュールもあるような Amazon Web Service Evangelist さんの Xen 等の Full / Para Virtualization より OS Level Virtualization のほうが向いているような サービス/アプリケーション間の粗結合大事,につながるのかな m.j.d. さんの あんまり Perl に限定されないような…と思

    YAPC::Asia 2007 1 日目の感想 - daily dayflower
  • 1