タグ

ブックマーク / os0x.hatenablog.com (17)

  • valueOfとtoStringとToPrimitive - os0x.blog

    valueOfとtoStringメソッドの水深43cmぐらいの深さの話 - 三等兵のもう少し深いお話。コメント欄に書こうかとも思ったけど、最近ブログ書いてない気がしたのでちゃんと記事にしてみる。 まずは問題です。次のコードを実行したときにtrueかfalseのどちらがalertされるかそれぞれ当ててみてください。 var date = new Date(); var date_string = date.toString(); var date_value = date.valueOf(); alert(date == date_string); alert(date == date_value); true, true false, false true, false false, true (難しい問題ではないと思いますが、)この問題の答えは最後に。 続いて、もっとシンプルな問題です。

    valueOfとtoStringとToPrimitive - os0x.blog
  • プログラミングに最適なConsolasとかInconsolataとか - os0x.blog

    でInconsolataだけが紹介されているので、おまけ情報を少々。 Inconsolataというのは、Windows Vista/7 に標準で付属しているConsolasフォントに感銘を受けた作者がConsolasを意識して作ったフォントです。 ConsolasのほうはVista/7だけでなく、Visual Studioに付属してたりもします。一応、こちらからダウンロードもできるようです。 Download: Consolas Font Pack - Microsoft Download Center - Download Details Windows(少なくとも7では)ではConsolasのほうがより(ClearTypeの効きが)綺麗だと思います。というか、InconsolataはWindowsだとどうも今一つ…、ただMacLinuxではWindowsでのConsolasと同じくら

    プログラミングに最適なConsolasとかInconsolataとか - os0x.blog
  • NinjaKit - os0x.blog

    NinjaKit*1というChrome/Safari拡張を公開しました。 Chrome:Chrome Web Store - NinjaKit Safari:NinjaKit for Safari Source: os0x/NinjaKit · GitHub これはFirefoxのアドオンであるGreasemonkey相当の機能を実装することを目指しています。 今のところ、 GM_xmlhttpRequest GM_addStyle GM_getValue GM_setValue GM_deleteValue(new in ver 0.7) GM_listValues(new in ver 0.7) GM_log GM_openInTab GM_registerMenuCommand(Safari版は未サポート) Metadata @include @exclude @require @b

    NinjaKit - os0x.blog
    tsukkee
    tsukkee 2010/06/21
    ChromeおよびSafari用Greasemonkeyみたいなの
  • Safari拡張の作り方 - os0x.blog

    Safari拡張をいくつか作って大体感覚は掴めたので、ざっくりと拡張の作成手順を解説してみます。 なお、Windows版で作業していますが、Macでもほとんど同じだと思います。 Safari拡張とは 最初に、Safari拡張とはなにか、について。Safari拡張はHTML/CSS/JavaScriptをベースに、ブラウザ側が用意したAPIを使ってブラウザを便利にするモジュールです。通常、JavaScriptだけではクロスドメインの問題など、実現できることに制限がありますが、その点を拡張用に用意されたAPIで補います。そのため、APIが用意されていない部分については対応できないという制限があります。しかし、開発のし易さ、ウェブとの親和性の高さからアイディア次第で便利で強力なツールとなるのがSafari拡張・Chrome拡張です。 なお、現状のAPIは暫定的なもので、ここで紹介するのもあくまで

    Safari拡張の作り方 - os0x.blog
  • Safari5の拡張作ってみた - os0x.blog

    Chrome拡張をとりあえず3つだけSafari拡張に移植というか、どちらでも動くようにしてみました。以下からインストールできると思いますが、今のところ拡張は頻繁にクラッシュしますし、正式リリースされてないということは色々と問題が残っているということですから、そのあたりをご理解の上、ご利用は自己責任でお願いします。 http://ss-o.net/safari/extension/AutoPatchWork.safariextz AutoPatchWorkのSafari拡張版。いわゆるAutoPagerizeクローン。アイコンの色がおかしい?アイコンの色は制限されているみたいです。ちょうどいい機会なのでアイコンを廃止してページの下にラインを出すようにしました。 http://ss-o.net/safari/extension/SocialCounter.safariextz SocialC

    Safari5の拡張作ってみた - os0x.blog
  • CSSセレクタの高速化の話を検証 - os0x.blog

    CSSセレクタの高速化の話し - Webtech Walkerの件。元ネタは続・ハイパフォーマンスWebサイト ―ウェブ高速化のベストプラクティスで、元ネタの元ネタはWriting Efficient CSS for use in the Mozilla UI - MDC。 先に書いておくと、この元ネタのMozillaの記事には、in the Mozilla UIとある通り、FirefoxなどのUIレベルの話です。Mozillaの場合、ウィンドウとかタブとか、とにかくなんでもCSSでスタイルを指定できる(している)のでCSSのパフォーマンスについて考慮する点が他のブラウザとはズレています。 とはいえ、実際にどうなのか検証したことなかったので、少し試してみました。 今回の検証方法は、dl>dt+ddを5重に入れ子にした300KB強の大きめなHTMLを用意して、CSSを動的に適用したときの時間

    CSSセレクタの高速化の話を検証 - os0x.blog
  • 加速スクロールをユーザースクリプトでやってみた - os0x.blog

    ChromeのマウスジェスチャーExtensionで実験的に実装してみたやつが意外と面白かったので、少し手を入れてFirefox, Opera用にユーザースクリプトにしてみました。このスクリプトも実験的なものなので、その点はご了承ください。 Scroll Acceleration for Greasemonkey (Operaで使う場合はファイル名を.user.jsではなく.jsで保存推奨です) これはいわゆる加速スクロールってやつで、マウスホイールを素早く動かすと、速く動かした分だけたくさんスクロールするという代物です。 マウス自体や、マウスジェスチャーソフト(かざぐるマウスとか)にそういう機能があるみたいで、それをJavaScriptで実現してみました。 ちなみになぜ実験的なのかというと、こういう制御はユーザースクリプトのようなレイヤーではなく、OS寄りのところで実装するべきだと思うか

    加速スクロールをユーザースクリプトでやってみた - os0x.blog
  • IE6,7のためにArray.join("") による文字列連結を使うべき - os0x.blog

    理由がない限り、Array.join("") による文字列連結は使わないほうがいいみたい - latest log の件について。 IE6の+による文字列結合が遅くて、Array.joinで連結するとマシになるよって話を(私が)初めて聞いたのはShibuya.js第1回の id:amachang の発表だったと思います。 Shibuya.js Technical Talk #1 を終えて。 - IT戦記 *1 少なくとも3年以上前のバッドノウハウが未だにIE6のみならず、IE7でも有効という現実に気が遠くなりそうですね。 で、IE6,7は基的なパワー不足で、同じJavaScriptでも他のブラウザより処理が遅いことがほとんどです。遅いブラウザに合わせてチューニングをするほうが一般的なので、特に理由がなければArray.joinを使っておいたほうが無難だと思います。 Array.join

    IE6,7のためにArray.join("") による文字列連結を使うべき - os0x.blog
    tsukkee
    tsukkee 2009/09/01
    逆に言うとIE6, 7切り捨てならArray.join("")は使わない方が良いということか
  • Event Driven JavaScript - os0x.blog

    document.createEventとdispatchEvent、addEventListenerを使ってイベントドリブンに書いたJavaScriptがオレブーム(ただし、IE非対応*1 )なので、軽く紹介してみたいと思います。 具体的には、AutoPatchWork (Google Chrome Dev用のextension)をイベントドリブンで実装しています。 AutoPatchWork.jsが2009/06/11 21:00時点のソース(id:nanto_viのコメントをうけて#を.に変更済み)。シンプルさを重視しているので、324行と短めです(CSSは別ファイルですが)。 window.addEventListener('scroll', check_scroll, false); window.addEventListener('AutoPatchWork.request',

    Event Driven JavaScript - os0x.blog
  • XMLHttpRequest Level 2 と wedata バックアップ - os0x.blog

    http://ss-o.net/json/ 以下に対して、.htaccessで Header append Access-Control-Allow-Origin: *という指定をして、ヘッダーにAccess-Control-Allow-Originをつけているので、(*はすべてのドメインからのリクエストを許可) http://ss-o.net/json/wedataAutoPagerize.json http://ss-o.net/json/wedataLDRize.json などのファイルについてはFirefox3.5、Safari4、Google Chrome 2、IE8*1などのブラウザではクロスドメインでXMLHttpRequestを投げることができます。 サンプルコード javascript:(function(){ var xhr=window.XDomainRequest?

    XMLHttpRequest Level 2 と wedata バックアップ - os0x.blog
  • Twitter用AutoPagerize - os0x.blog

    2009/04/30あたりのTwitterのリニューアルでAutoPagerizeがうまく動作しなくなりました。(Pager部分がJavaScriptを動的に生成するようになったため、SITEINFOだけでは対応できなくなってしまいました) 2009/05/07あたりから、oAutoPagerizeならデフォルトのままで動作するようになったみたいです。 FirefoxというかGreasemonkeyでは、 AutoPagerizeTwitterFilter - SWDYHがお勧めです。 JavaScriptを有効にしていないとページを遡ることもできなくなったので、その点に関して修正が入ればAutoPagerizeが再び動作するようになることも期待できるのですが、残念ながらそういった様子はないみたいです。 というわけで、Twitter用のAutoPagerizeを書きました*1。 twitt

    Twitter用AutoPagerize - os0x.blog
  • Googleの検索結果からキーワードハイライトするGreasemonkey Script - 0xFF

    先々週くらいからコツコツと書いていたキーワードハイライトするGreasemonkey Script(もしくは UserJavaScript)をリリースします。 word highlight for Greasemonkey 今のところ、Opera9.5+(Operaで使う場合はファイル名をword_highlight.jsで保存してください。.userはつけないでください)、Firefox3+、Google Chrome2(Devリリース)、WebKit Nightlyあたりで動作します。Safari3、4は後で対応するかも。 検索語を強調表示&ショートカットが快適なグリモンスクリプト :教えて君.netで紹介記事頂きました。ありがとうございます。記事書くのすげー早い。しかも、要点書いてあるし、画像付きでわかりやすいし、ほんと嬉しいです。 特徴 高速(だと思う) XPathを使って検索する

    Googleの検索結果からキーワードハイライトするGreasemonkey Script - 0xFF
  • wedataのダウンでAutoPagerizeが動かない(効かない)件 - os0x.blog

    wedataが落ちているためAutoPagerizeが動かないという状態が年末から断続的に続いています。 追記(2009/01/09):wedataが復旧し、正常にSITEINFOを取得できるようになった模様です。これに伴い、http://ss-o.net/databases/AutoPagerize/items.json の中身は空の配列になっています。うちのミラーを使用したいという方は、 http://ss-o.net/json/wedataAutoPagerize.json のJSONを利用いただけます。静的ファイルでgzipにも対応しているので、wedataより軽いはずです。ただし、wedataとの時間差があり、callback指定(JSONP)もできません。どっちが良いか分からない場合はとにかく最新のAutoPagerizeを使っておけばOKです。 追記(2008/12/24 1

    wedataのダウンでAutoPagerizeが動かない(効かない)件 - os0x.blog
  • AutoPagerize のページ区切りにスタイルをあてる - os0x.blog

    ふと思い立ってやってみた。 /* AutoPagerize */ .autopagerize_page_separator{ border:none; } p.autopagerize_page_info{ margin:5px 15px 10px; background:#aaaaaa; -webkit-border-radius: 0.4em; -moz-border-radius: 0.4em; border-radius: 0.4em; line-height:1.5; font-size:140%; text-align:center; }

    AutoPagerize のページ区切りにスタイルをあてる - os0x.blog
  • リンクになっていないURLを新規タブで開くGreasemonkey Script - os0x.blog

    Text URL Linker という Greasemonkey Script を CodeRepos (と Text URL Linker for Greasemonkey) にあげました。Firefox の Greasemonkey, Opera(9.50以降) の UserJavaScript, Safari の GreaseKit, Google Chrome の Greasemetal, Chromium の Greasemonkey で動作します。 はてなダイアリーのコメント欄など、リンクになっていないURL (一応 ttp://hoge のようなURLにも対応) を新規タブで開くリンク(通常のリンクと区別するため overline 入りカーソルをhelp) にする Script です。Firefox の人には Piro さんの Text Link でお馴染みのあれです。同種の

    リンクになっていないURLを新規タブで開くGreasemonkey Script - os0x.blog
  • Bug 442333 - Remove eval's optional second argument - os0x.blog

    442333 – Remove eval's optional second argumentの件。 peter.michaux.ca - Module Pattern Provides No Privacy...at least not in JavaScript(TM)によるとFirefox3.1でevalの第2引数は削除されるって話だったけど、http://d.hatena.ne.jp/nokturnalmortum/20080925#1222336042 によると3.0.2で既に動かないらしい。 これで動かなくなる Add-ons や Greasemonkey Script はそこそこありそうです。 # Bugzillaの見方がいまひとつ。。mozilla1.9.1a1 ってのはJavaScript1.9のことなのかな? だとしたら Function.prototype.bind

    Bug 442333 - Remove eval's optional second argument - os0x.blog
    tsukkee
    tsukkee 2008/10/13
    evalの第二引数が削除されるらしい
  • Safari3 * GreaseKit1.4 oAutoPagerize - 0x

    GreaseKit 1.4でセキュリティの問題からGM関数が削除されました。GreaseKit および Creammonkey の GM 関数に関する脆弱性 そのため、jAutoPagerizeなど多くのScriptが動作しなくなっています。*1 そこで、同じくGM関数がない前提で作成しているoAutoPagerizeを動かしてみました。 インストールはoAutoPagerize - 0xFFからどうぞ。 Opera用は.jsでしたが、こちらは.user.jsに 例によって数時間おきにSITEINFOが更新されています Safariだとheadタグ内のlinkが消えてしまうようで、はてなダイアリーなどで3ページ目を取得できません はてなダイアリーのSITEINFOを体に持つようにしたので、ダイアリーでも動作するようになりました jAutoPagerizeを参考にして、とりあえず動くように

    Safari3 * GreaseKit1.4 oAutoPagerize - 0x
  • 1