タグ

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

  • Chrome4以降でoAutoPagerizeが動作しない件 - os0x.blog

    Google ChromeのUserScriptsに関する仕様変更で、複数のUserScriptsで連携することが難しくなりました。このため、Chrome版のoAutoPagerize、LDRize、Minibufferは当面最新版のChromeをサポートしません。 代わりに、Extensions版のAutoPagerizeか、AutoPatchWorkをどうぞ。Minibuffer、LDRizeの代わりは、そのうち… oAutoPagerize ver1.3.0 (Google Chrome 3用の更新) - 0xFFで対応しました。LDRizeはもう少々お待ちください 以下余談。 なんとか回避策はないかと検証してみましたが、contentWindowの廃止に伴って、完全にページ側のコンテキストと分離され、さらにUserScript同士も完全に別コンテキストとして実行されるようになってし

    Chrome4以降でoAutoPagerizeが動作しない件 - os0x.blog
  • オレ標準JavaScript勉強会を開催しました - os0x.blog

    Twitterでこっそりと募集して、オレ標準JavaScript勉強会というイベントを開催しました。 id:edvakfさんが来日されるということで、「会いましょう→何かやりましょう→勉強会とかどうでしょう」というTwitter上の軽いノリで企画され、みんなで短いネタを披露し合う一品持ち寄りの少人数勉強会をやってみよう、ということになりました。で、そのままTwitter上で参加者を呼びかけてみたところ、半日もたたずに15名集まって、しかもそうそうたる顔ぶれに! 当日 色々と反省があったので、少し書き出しておきます。 まず、会場*1には有線LANしかないので、自前のルータで無線LANをやろうとしたんですが、設定がなかなかうまくいかず、だいぶ手間取ってしまいました。やはり、安物のLANは駄目ですね…。大人数で繋ぐと安定しないし、有線をいっぱい用意したほうが良かったです。 で、Ustreamに挑

    オレ標準JavaScript勉強会を開催しました - os0x.blog
  • 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
  • JavaScriptの勉強会資料を公開 - os0x.blog

    私が講師役をしている社内向けJavaScript勉強会の資料をまとめて公開しました。 実践JavaScript - 株式会社ALBERT 社内勉強会資料 1回目を書いてからだいぶ間が空いてしまいましたが、その分6回分をまとめて、インデックスや見た目等々を整理してあります。 コードのハイライトには google-code-prettify - syntax highlighting of code snippets in a web page - Google Project Hosting を使用してみたのですが、すごく重かったので出力結果を静的に使っています。 オススメ回は実践JavaScript - JavaScript特有の問題・クロスブラウザなど - 株式会社ALBERT 勉強会資料でしょうか。特にクロスブラウザなDOMサイズ取得は自分でも良く参照してます。 間違いなどありましたら

    JavaScriptの勉強会資料を公開 - os0x.blog
  • Extensions連載第3回とChromeの起動オプション - os0x.blog

    先取り! Google Chrome Extensions:第3回 Chrome Extensionsの作り方#2|gihyo.jp … 技術評論社 はい、第3回も無事掲載されました。Chrome3のリリースで、stable版、beta版ではExtensionsが無効にされるというちょっとしたハプニングもありつつですが…。まあ、記事の内容自体には大きな影響がなかったの幸いです。 さて、今回はHome · hatena/hatena-bookmark-xul Wiki · GitHubを参考にした機能を実装してみました。機能が増えて拡張らしくなってきました。が、そうなるとほしくなるのはアレですね。そちらは次回のお楽しみということで。 さて、おまけで現在使っている起動オプションを紹介してみます。*1 enable-user-scripts これはもう説明不要ですね。ただ、ChromiumはUs

    Extensions連載第3回とChromeの起動オプション - os0x.blog
  • Tween3とsetTimeoutの最適化 - os0x.blog

    JSTweener ライクなアニメーション code snippets - 0xFF、Tween2.js - 0xFFの続編です。 今までは、複数のアイテムを動かす時に動かすモノの数だけタイマーが必要でした。対して、JSTweenerはタイマー一つで動くように作られていて、自作Tweenもそうしたいと思いつつ、そういう場合は素直にJSTweener使えばいいかと思っていました。 が、ちょっと極力コンパクトな実装(ブログパーツ的なものに貼り付けたりするので、サイズ的にも、名前空間的にも)が必要になったので、改めて実装してみました。 http://gist.github.com/188922 で、JSTweener Example (Motion Typo)を Tween3で再現してみたり Tween3.js (JSTweener Example (Motion Typo)) まあ、割といい感

    Tween3とsetTimeoutの最適化 - os0x.blog
  • 毎秒100回JavaScriptが実行ってのがどの程度なのか - os0x.blog

    非ネットで聞いた話なども含め、ここまでやっても信じない人もいっぱいいるみたいで、そこまで疑う人のためにとりあえずパッチは出しておいたのだが、みんな「怪しいよね」って陰で言うだけで、誰も追試はしてくれなかったみたいだ。他人の書いた、しかもCPU使用率なんて割とどうでもいい系のエントリなんてわざわざ検証する人はそりゃいないだろうとは思うけど、気分が悪いのも確かだ。どうせ誰も試さないなら、パッチ自体は次のネタにとっときゃよかったなぁ…。 http://d.hatena.ne.jp/tkng/20091003/1254578195 では折角なので、検証を。Firefox前提なら、Firebugのプロファイル機能で一発なので、検証用マシン*1で以下のスクリプト実行。 // ==UserScript== // @name google stats // @namespace http://ss-o.n

    毎秒100回JavaScriptが実行ってのがどの程度なのか - os0x.blog
  • AutoPagerizeで継ぎ足された部分に自分のスクリプトを適用する方法あれこれ - os0x.blog

    以前からある手法から順番に見ていきます。 ページの高さの監視 setIntervalでページの高さを監視して、増えていたらAutoPagerizeが動いたとみなして処理を行う var THRESHOLD = 300; var _height = window.innerHeight; setInterval(function(){ if (window.innerHeight - _height > THRESHOLD) { // 処理 } _height = window.innerHeight; }, 300); メリット AutoPagerizeだけでなく、はてなダイアリー・ブックマーク、Twitterなどでのサイト側でのページの継ぎ足しにも対応できる デメリット THRESHOLDをいくつにするかなど、一概に決められない。タイマーをたくさん回すと重くなる。Floatしている要素を継

    AutoPagerizeで継ぎ足された部分に自分のスクリプトを適用する方法あれこれ - os0x.blog
  • 最近のdev Chromeさんのextensions - os0x.blog

    だいぶ間が空いたので(仕事のほうでFlashLiteに虐められてました…)、リハビリ的な適当更新で、最近のdev版Google ChromeのExtensions関連についてメモ書きです。 バージョンが4に つまり、早ければ今月中にもstableが3になる、かもね WebStorage、WebDatabaseがテスト可能に Extensionsを有効にしていれば(起動オプションで--enable-extensionsをつければ)使用可能です enable-local-storage、enable-session-storage、enable-databasesでそれぞれ個別に有効にすることもできます。 ExtensionのAutoUpdate Page not found - The Chromium Projects まだ試してないです メッセージなしでパッケージング pack-exte

    最近のdev Chromeさんのextensions - os0x.blog
  • バッチファイルをJScriptとして実行し直すイディオム - os0x.blog

    JScript でハマる日々 - m2の別パターン 以前、コメントで教えてもらったやつです。 まず、winbatchとしてハイライト。 rem=0;/* cscript -E:JScript %0 exit */ remで始まる行はコメント扱いに。 2行目で自分自身をJScriptとして実行。 3行目のexitで終了。 バッチファイルとしては以上。 続いて、JScript(javascript)としてハイライト。 rem=0;/* cscript -E:JScript %0 exit */ これはもう見たまま。/* */でコメントアウトされてます。 rem=0が気になるといえば気になるけど。 どちらかといえば、void 0でundefinedにして置いたほうが気持ちマシかな。 rem=void 0;/* cscript -E:JScript %0 exit */

    バッチファイルをJScriptとして実行し直すイディオム - os0x.blog
  • Chrome Extensionsの作り方 2009/06/25版 - os0x.blog

    続きは、特集:先取り! Google Chrome Extensions|gihyo.jp … 技術評論社 と、 連載:続・先取り! Google Chrome Extensions|gihyo.jp … 技術評論社をどうぞ。 用意するもの Google Chrome 3.0.190.1以降(dev版か、latest Chromium snapshotがオススメ。) 最低限必要なもの manifest.json JSON(not JavaScriptなので、値を'ではなく"で囲まないといけないなど、割と厳格なので注意)で書く拡張の定義ファイルです。 一応必須といえるのはnameとkeyの2つですが、とりあえずはnameさえあればOK。keyはパッケージするときに自動で振られるので自分で書く必要はありません。 { "content_scripts": [ { "js": [ "all.js"

    Chrome Extensionsの作り方 2009/06/25版 - os0x.blog
  • 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
  • OperaのCanvasでParticles(Sand/Snow) - os0x.blog

    ふと、Saqoosha 先生の Snow*1をCanvasで出来たりするのかなーと気になって、ちょっと調べてみたら、OperaのCanvasが凄いと言われたので、早速移植してみました。 http://ss-o.net/test/opera.snow.html (Operaのロゴは404: Page not foundから) んー、(簡略化したのに)重いし、(簡略化したから)あんまり綺麗じゃないですね…… フィルターもないしこれ以上は難しいかなぁ。 一度に動かしすぎなだけか、もうちょっと改良しよう nitoyon先生のHello Snow!!!を参考に改良してみた。そこそこ良い感じになったかな。 snowってよりsandっぽいデモだったので、snowっぽいバージョンに更新した。 sandはこっちに http://ss-o.net/test/opera.sand.html ちょっと気になったの

    OperaのCanvasでParticles(Sand/Snow) - os0x.blog
  • 空から降ってくる女の子(ゲームっぽく) - os0x.blog

    空から女の子が降ってくる - ぼくはまちちゃん!(Hatena) id:murky-satyr先生 の http://gist.github.com/45346 を勉強目的に読んでたら、自分でも書きたくなってついやってしまった。すごく出遅れ感あるけど、折角なので公開。 <br /> javascript:H='http://hamachiya.com/g';E='.gif';R=Math.random;Q=new Image;Q.src=H+1+E;N=90;P='%';I=0;L=function(Y,r,V,f,S){S=(V=Q.cloneNode(r=R(Y=N)+1)).style;S.position='absolute';S.right=R()*N+P;(B=document.body).appendChild(V);f=function(){Y>2?(S.bottom=(Y

    空から降ってくる女の子(ゲームっぽく) - os0x.blog
  • IEでのテキストノード走査の高速化 - os0x.blog

    に釣られて。 HatenaStar.js 1380 行目 テキストノード走査 一番のボトルネックはやはりここですね。IEなので、こんな感じでベタに計測。 makeTextNodes: function(c) { if (c.textNodes || c.textNodePositions || c.documentText) return; if (Ten.Highlight.highlighted) Ten.Highlight.highlighted.hide(); c.textNodes = []; c.textNodePositions = []; var isIE = navigator.userAgent.indexOf('MSIE') != -1; var texts = []; var pos = 0; var st = new Date*1; (function(node,

    IEでのテキストノード走査の高速化 - os0x.blog
  • XPath でページの好きなところにリンクする Greasemonkey Script の実験版 - os0x.blog

    ここギコ!: Xpathでページの好きなところにリンクするGreasemonkeyスクリプトのアイディアが気になったので、自作の実験版を書いてみました。今回は実験なので、http://*でunsafeWindowを使っています。安全ではないので、その点はご了承ください。 と、その前に、元記事にツッコミをしておこう。user.jsの場合、対象はFirefoxであると思うので、JavaScript-XPath は不要です。IE以外の主要ブラウザ(Firefox, Safari, Opera)は XPath を実装しています。JavaScript-XPathはIEとSafari2でXPathを使うためのライブラリです。 XPointerというそのものずばりな仕様があるらしい。後で調べる。 http://gist.github.com/17904 #TEXT=文字列とすると、その文字列が最初に含ま

    XPath でページの好きなところにリンクする Greasemonkey Script の実験版 - os0x.blog
  • 1