タグ

ブックマーク / teramako.hatenadiary.org (23)

  • -webkit-border-radius なんて書いているWeb開発者は腹を切って死ぬべきである - hogehoge @teramako

    地獄の火の中に投げ込むものである。 いや、まあそんなネタはどうでも良くて... そのベンダー接頭辞はいつまで書くの? | Unformed Building 書いてあることは至極真っ当なこと。もろ手をあげて賛成である。 また、 ベンダー拡張プリフィックスはそれそのものがWebを破壊することはないし、ベンダー独自のプロパティーや関数が数万追加されて使われまくったとしても当はWebは壊れない。またその文法が変更されても修正または追加すれば対応できるし、その余裕は十分にある。つまり壊れるのはほとんど全てのケースで開発者の怠慢に過ぎないので、ちゃんと仕様と実装を理解して必要ならば寝る間を惜しんで修正作業に血眼になるべき。みたいな実践を伴わない意識を僕は持っている。 なので憂うべきこの現状は、IE6が拡散して残り続けたことと同じようにベンダー側ではなくWeb開発者側に非があると思っている。 ベンダ

    -webkit-border-radius なんて書いているWeb開発者は腹を切って死ぬべきである - hogehoge @teramako
    send
    send 2012/05/15
  • jscomplete-vim - hogehoge @teramako

    https://github.com/teramako/jscomplete-vim 既存のvimに入っているautoload/javascriptcomplete.vimがアレだったので、もう少し賢そうなのを作りたいと思い、作り始めた。 初めてのVim scriptなので拙いコードだと思うけど。ある程度目的は達成できてきたと思うので、GitHubにアップしてみた次第。 .や[後のプロパティ名を補完することが目的。 そのために、ある程度の式をパースし、どんなオブジェクトが返るかを判断する。 "a,b,c,d" .split(",") .map(function(c){ return '"' + c + '"'; }) .join("\n") ._ // ↑カーソル位置 とある場合は、 "a,b,c,d" .split(",") .map(function(c){ return '"' +

    jscomplete-vim - hogehoge @teramako
    send
    send 2012/04/06
  • in 演算子と obj.hasOwnProperty() はどちらが早い!? - hogehoge @teramako

    http://jsperf.com/in-and-hasownproperty GoogleChromeでもFirefox4でもin演算子の方が速い結果だった。プロトタイプチェーンを遡るより関数実行の方がコストが高いようだ。 id:mooz さん、id:os0x さん、ありがとうございました。

    in 演算子と obj.hasOwnProperty() はどちらが早い!? - hogehoge @teramako
    send
    send 2011/02/05
  • 求む。インスタンスをArrayで拡張する方法 - hogehoge @teramako

    Arrayインスタンスを拡張したい。 prototype汚染はさせない Array.prototypeの上書き禁止 Arrayオブジェクトと同じ挙動 という条件。 下記、EXArrayというコンストラクタをArrayの様な扱いにしたいわけだ。 テストコードでも書いているが instanceof obj instanceof Array // true であること obj instanceof EXArray // true であること 配列要素は hasOwnProperty で true が返ること toStringが配列っぽく返ってくること までは実現できている。しかし、 JSON.stringify(obj) が Arrayっぽくない obj.toSource()がTypeError: Array.prototype.toSource called on incompatible O

    求む。インスタンスをArrayで拡張する方法 - hogehoge @teramako
    send
    send 2010/11/18
  • ハッカージャパンにあったFirefoxアドオンの脆弱性 - hogehoge @teramako

    Hacker Japan (ハッカー ジャパン) 2010年 07月号 [雑誌] 出版社/メーカー: 白夜書房発売日: 2010/06/08メディア: 雑誌購入: 3人 クリック: 66回この商品を含むブログ (4件) を見るの冒頭でFirefoxアドオンに関する脆弱性があるというので読んでみた。 あげられたアドオンは FireFTP :: Add-ons for Firefox ウェルカム・メッセージに悪意のあるコードがある場合、これをブラウザーが実行だそうです。 Wizz RSS News Reader - Rss, Atom & Podcast Feeds - Gmail Checker descriptionタグにあるHTMLJavaScriptを実行できるそうです。 CoolPreviews :: Add-ons for Firefox data://URLでXSSが可能だそう

    ハッカージャパンにあったFirefoxアドオンの脆弱性 - hogehoge @teramako
    send
    send 2010/06/22
  • どうにかしたい - hogehoge @teramako

    http://www.google.co.jp/search?q=vimperator&oe=utf-8&tbs=blg:1 http://d.hatena.ne.jp/keyword/vimperator

    どうにかしたい - hogehoge @teramako
    send
    send 2010/05/10
  • XULとの決別、XPCOMの廃止はありえるのか? - hogehoge @teramako

    Mozilla Labs » Blog Archive » Jetpack 50-Line Code Challenge Winner is Crowned[bookmark] jetpack feature installer おめでとうございます! http://bit.ly/5zueJf RT @teramako: そいえば、 #jetpack 50 line contest はどうなったんだ? Twitter / Gen Kanai: おめでとうございます! http://bit.ly/ ... コーヒー飲んでいる時だったら間違いなく噴いたね。 正直ネタとしてエントリしただけで入賞なんて全然狙ってなかった。 理由としてはエントリのために多少の変更を加えたものの id:piro_or さんが指摘されている .@teramako 受賞作3作のうち1つはXPConnect使用、1つはra

    XULとの決別、XPCOMの廃止はありえるのか? - hogehoge @teramako
    send
    send 2010/01/08
  • JetpackとGreasemonkeyが似ていると言われる件 - hogehoge @teramako

    たしかに両者は似ているところもあるのだが... 正直、僕はそんなに似ていると言いたくない。何か誤解を与えそうで怖いからだ。 いろいろと書く前に言葉の定義 Jetpack 拡張体 Greasemonkey 拡張体 JetpackScript Jetpackのエンジンで動作するスクリプト UserScript(ユーザスクリプト) Greasemonkeyのエンジンで動作するスクリプト 似ているところ Jetpack, Greasemonkey どちらも拡張機能であること どちらもスクリプトのエンジンであること JetpackScript, UserScript インストール/アンインストールにFirefox自体の再起動が必要ない JavaScriptで記述 制限を緩和するためのAPIがある 値を保持するためのAPI クロスサイトなXMLHttpRequest 似てないところ Jetpack

    JetpackとGreasemonkeyが似ていると言われる件 - hogehoge @teramako
    send
    send 2009/06/21
  • Growl/GNTP 1.1.1が危険すぎる - hogehoge @teramako

    今現在は修正されています! Growl/GNTP は危険じゃないよ!! あと、これはFirefox拡張の話で GNTP というプロトコルの話じゃないっす。ご注意を。 はてなユーザーがいま見ているページについてコメントをつぶやくグリモンを作った - 今日もスミマセン。でGrowl/GNTP :: Add-ons for Firefoxという拡張機能を知った。 Growl for WindowsというWindowsMacOSのGrowlという通知機能を有効にするデーモンと組み合わせて使う拡張機能だ。 ちょっと気になったのでソースを拝見したところ。と〜っても危険なことが分かった。 この拡張機能、特定タイプのDOM Eventを受け取って通知を受け取ることが可能で、Webコンテンツからも受け取れるようになっている。これだけなら、まぁ良いのだが、データの受け取り方に問題がある。 簡単に書くと、JS

    Growl/GNTP 1.1.1が危険すぎる - hogehoge @teramako
    send
    send 2009/06/19
  • Jetpackのセキュリティ性(続報) - hogehoge @teramako

    Jetpackのセキュリティ性の続き どうも待っているのは性に合わないようで、バグ登録してみた https://bugzilla.mozilla.org/show_bug.cgi?id=494779 *1 Jetpackのセキュリティ性で挙げた、XPCOMが利用可能なことに対する言及し、 do not require write access to the file system do not require Places access Labs/Extensions2/Target Add-ons - MozillaWiki に違反しているのでは? という内容だ(少なくともそのつもりで書いた。拙い英語なので分かりにくいかもしれないが。) 対して、プロダクト・リーダーのAza Raskinさん*2から返答があり、 最初は制限をとても強くして開発していたが、当初はJetpackAPI実装する

    Jetpackのセキュリティ性(続報) - hogehoge @teramako
    send
    send 2009/05/29
  • Firefox終了時にformhistory.sqliteを閉じてない? - hogehoge @teramako

    formhistory.sqliteでロックされているよという例外が投げられちゃう。 Fx終了時にSQLiteファイルのVACUUMとREINDEX - vimpな日々 - vimperatorグループ これがどうにかならないかと、やってみたこと Firefoxが終了時に投げる通知の中で最後のもの、xpcom-shutdown(Observer Notifications - MDC)というもの、を受け取ってVACUUMとREINDEXを実行してみた。 しかし、これでも例外が投げられてしまう。もしかすると、formhistory.sqliteはFirefoxのプロセスが完全になくなるまでつかみっ放しなのかも。 ちょいと探ってみた 調査対象は ロックされていないcookies.sqliteを操作しているCPPソース(mozilla1.9.1 mozilla/netwerk/cookie/sr

    Firefox終了時にformhistory.sqliteを閉じてない? - hogehoge @teramako
    send
    send 2009/05/25
  • Mozilla Jetpackについて調べたいこと - hogehoge @teramako

    Mozilla Labs Jetpack | Exploring new ways to extend and personalize the Web どうもWeb経由でインストールが可能っぽく、ステータスバーを更新しているサンプルからchromeコンテンツにアクセスできるっぽい。 スクリプトはどのコンテキストで実行されているのか Greasemonkeyのように個々のWebコンテンツ内か userChrome.jsのようにフルアクセスか chromeコンテキスト内だがevalInSandboxでxpconnectは禁止しているか 追記:2009-05-21T19:50 とりあえず、Components.utils.Sandboxを使って、evalInSandboxで実行しているみたい。ってことで気軽に作れる/インストールできる分制限がありますね。 また、拡張開発が簡単になると言われている

    Mozilla Jetpackについて調べたいこと - hogehoge @teramako
    send
    send 2009/05/24
  • Jetpackのセキュリティ性 - hogehoge @teramako

    Mozilla Jetpackについて調べたいことの続き。 Secure Provides access to only the privileges needed, with security issues always be presented in social-terms, and not technical-terms Short and easy to review code ensures that potential security issues are shallow, and review times short Mozilla Labs Jetpack | Exploring new ways to extend and personalize the Web とのことだが、しかし、穴があるのではないかと思った。 XPCOMの使用が可能 Componentsへのアク

    Jetpackのセキュリティ性 - hogehoge @teramako
    send
    send 2009/05/24
  • とにかく.でつなげて使うjsライブラリ? - hogehoge @teramako

    1〜2ヵ月前くらいに作ったやつをCodeReposのsvnにaddしたままcommitしてなったプラグインを思い出してcommitした。 http://coderepos.org/share/browser/lang/javascript/vimperator-plugins/trunk/i_love_echo.js 名はi_love_echo.jsであるw オイラは:echoコマンドが大好き。 タブ補完も大好き。 発想は、○○をあーしてこーして××して...という極めて日語的なことをするにはオブジェクト指向(?)って便利だよね。.で繋げれば良いんだもん、って感じ。 コマンドもマップもないプラグインである。あるのはメソッドのみで、:echo,:jsから呼び出すのが基。 起点のメソッドは $ $x のみ。 説明を書こうと思ったのだけれど、うまく書けそうにない。 ソースを読んで理解した人が

    とにかく.でつなげて使うjsライブラリ? - hogehoge @teramako
    send
    send 2008/11/16
  • codereposにカラースキーム追加 - hogehoge @teramako

    CodeRepos::Share – Trac CVS Headの方でcolorschemeコマンドがいつの間にか追加されていたので、それ用にtrunkの下にcolorsディレクトリを掘ってevening.vimpを追加した。 ~/.vimperator/colorsディレクトリに置いて、:colorscheme eveningで適用できるよ。 こんな感じ、 センスが無いので微妙。みんなもいろいろアップしてくれると良いな。

    codereposにカラースキーム追加 - hogehoge @teramako
  • 新規feedSomeKeys_2.js - hogehoge @teramako

    feedSomeKeys_2.js - CodeRepos feedSomeKeys.jsからフォークして新規仕様にした。CVS HEADで使用可能。 できるだけコメントを書いたので分かるかもしれないけど、変更点を fmap lhr1,rhr2 lhr2,rhr2と一気に登録できるように fmap!で"!"を付けたとき、今までの定義をクリアして再定義するように(旧バージョンでは仮想キーコードの使用オプションだった) fmap -v[key]で仮想キーコードの使用 fmap -d[epth] num ...でフレーム先の位置番号を指定可能にした どう変わったか JavaScript的な感じから脱出 "!"を使用することで事前にfmapcが不要に -depthオプションでフレーム先へも簡単に LDRの場合 feedSomeKeys.js では js <<EOF autocommands.add

    新規feedSomeKeys_2.js - hogehoge @teramako
  • もう、styleChanger.js はいらない - hogehoge @teramako

    mozdev.org/vimperator-cvs: changeset 2102:de327d91bd78 この変更で:sourceコマンドからCSSファイルの読み込みが出きるようになった。 起動時に読み込まれるのは今のところ$HOME/.vimperator/plugin((正確にはruntimepathオプション下にあるpluginディレクトリ))以下の*.jsと*.vimpファイルのみだから、.vimperatorrcか何かにsourceで指定する必要があるが、styleChanger.js のcolorschemaコマンドは必要ないだろう。 さらに、sty[[le]で一時的なCSSの適用も可能だし、hi[ghtlight]コマンドでコマンドライン・バッファに表示される要素へのスタイルも容易に変更できる様になった。 と、いうことで、もうstylechanger.jsはいらない...

    もう、styleChanger.js はいらない - hogehoge @teramako
  • プラグイン全滅の危機ですよっ! - hogehoge @teramako

    もう、恒例のこととなってしまったように感じるが、vimperatorの仕様が変更された。 影響範囲は結構でかい。 プラグインでコマンドを追加するとき、bang(!)を必要とする場合にはextraInfoオブジェクト内にbang: trueを入れておく必要が出てきた。さもないとE477: No ! allowedというエラーを吐く。 同様にコマンド先頭のカウント数が必要な場合にはcount: trueが必要になっている。 liberator.commands.addUserCommand(['commandName'], 'description', function(args, special, count){ // hogehoge },{ bang: true, count: true }); といった感じに変更する必要があるよー。

    プラグイン全滅の危機ですよっ! - hogehoge @teramako
  • LDRの未読件数をステータスバーに表示するプラグイン - hogehoge @teramako

    ldr_unread_counter.js 使用するには let livedoor_id = "id" とLivedoor IDを設定しておく必要があるよ。 let ldr_check_intervals = "120" とかでチェックする間隔(秒)も設定できるよ。 技術的な話 LDRの未読件数はhttp://rpc.reader.livedoor.com/notify?user=livedoorIDから取得可能であるが、このデータとLDRのアイコンを重ねて描画するにあたって方法が3つほどある。 XULのstack要素を使用する SVGを使用する canvasを使用する で、今回ははFirefox3からcanvasにテキストを描画できるようになったということで実験的な意味で3番目を採用してやってみた。 が、canvasには不慣れであることも相まってかなり苦労。こういうことするのにはSVG

    LDRの未読件数をステータスバーに表示するプラグイン - hogehoge @teramako
  • Re: autocmd が分からない - hogehoge @teramako

    稿を見るよりはニコニコ動画を快適化するvimperator設定まとめを参照した方が良いでしょう。 autcmd が分からない 卑怯な手であるが、 javascript <<EOF (function(){ liberator.autocommands.add('LocationChange','.*',['js ', 'var list=[["l","nngetlist"],', '["p","nicopause"], ["m","nicomute"],', '["v","nicomementvisible"], ["z","nicosize"], ["s","nicoseek"] ];', 'if(buffer.URL.indexOf("http://www.nicovideo.jp/watch") == 0){', ' for (var j=0; j<list.length; j++

    Re: autocmd が分からない - hogehoge @teramako
    send
    send 2008/08/01
    文字列配列とか可読性が低すぎるから Function.toSource() してぶっこんだ方がいいと思う