タグ

セルクマに関するago_kyoのブックマーク (31)

  • JsTestDriverのAsyncTestCase

    この内容はJsTestDriver WikiのAsyncTestCaseを意訳したものではありません。 http://code.google.com/p/js-test-driver/wiki/AsyncTestCase TestCaseはAsyncTestCaseの同期実行版なので基的にAsyncTestCaseを使いましょう。 (TestCaseをAsyncTestCaseに置き換えるだけでそのまま実行できます) assert関係はこちらからどうぞ Assertions http://code.google.com/p/js-test-driver/wiki/Assertions 以下の二つはTestCaseと互換の基的な実行方法です。 オブジェクトリテラルを渡す方法 AsyncTestCase(‘testCaseName’, { 'setUp’ : function () {},

    JsTestDriverのAsyncTestCase
    ago_kyo
    ago_kyo 2012/02/04
    あとで会社のブログにまとめたい
  • JavaScriptエンジニア向け!スマートフォンで動くブラウザゲームの作り方

    自己紹介 ども。KAYACでJS書いてる@kyo_agoです 去年(2011年)はSVG Girl(SVG女子)とか、HTML5花火大会(のベースコード)とか、HTML5実力テスト(のJS問題)とか、www.kayac.comのJS書いたりとか、html5とか勉強会で話したりとかしてました。 最近はスマホ環境で色々JS書いてます

    ago_kyo
    ago_kyo 2012/01/21
    30分では無理でした
  • jQueryのCSSセレクタAPIを高速に扱う方法 - KAYAC engineers' blog

    最近Androidとの抗争が激化しているago(@kyo_ago)です。 jQueryはCSSセレクタを多用する特徴がありますが、jQuery内では実行ブラウザやCSSセレクタの記述によって呼び出されるブラウザAPIが変わり、それによって実行速度にも影響が出ます。 この記事では「セレクタAPIとはなにか」、「CSSセレクタの記述によって呼び出されるセレクタAPIの種類」、「高速なセレクタAPIを使用するための方法」、「高速なセレクタAPIが使われるかどうか確認する方法」などを紹介したいと思います。 (※この記事はJavaScript Advent Calendar 2011 (フレームワークコース) : ATNDの1日目の記事です) セレクタAPIとはなにか セレクタAPIとは「#hoge .huga」のようなCSSセレクタから、DOM上に存在する要素を取得するためのAPIです。 jQue

    jQueryのCSSセレクタAPIを高速に扱う方法 - KAYAC engineers' blog
    ago_kyo
    ago_kyo 2011/12/01
    久々のtech.kayac.com
  • フリック用JSまとめ

    flipsnap.js http://webtech-walker.com/archive/2011/03/28205254.html iScrollの切り出し版。Androidでちょっと動きが微妙(指の動きに追従しない) コード短くて読みやすい。-webkit-transform3dで実装。brunchにwebkit以外の実装版もある。 イベントの範囲が対象要素のみなので使いやすい。 Androidに追従するバージョン作ったけど、他のライブラリのほうがなめらかかも。 http://jsdo.it/kyo_ago/8zAd iScroll http://cubiq.org/iscroll-4 超多機能。Androidでdemoが動かなかった。 でかすぎてコード読む気せず。 イベントを貼る範囲がでかいの注意(inner scroll実装してるから) jQuery.flickable http

    フリック用JSまとめ
    ago_kyo
    ago_kyo 2011/11/16
    コードに対しての批評があるので会社の場所じゃなくて自分の場所にまとめた
  • モテるJS系女子力を磨くための4つの心得 - KAYAC engineers' blog

    1. あえてECMAScript3.0以前の実行環境を使う あえてECMAScript3.0の実行環境を使うようにしましょう。そしてATNDで好みの男がいたらLT参加を告知し、わざとらしく発表準備段階でコンソールを出していじってみましょう。そして「あ~ん! この実行環境当にマジでチョームカつくんですけどぉぉお~!」と言って、男に「どうしたの?」と言わせましょう。言わせたらもう大成功。「ECMAScriptとか詳しくなくてぇ~! ずっとコレ使ってるんですけどぉ~! Object.keysが使えないんですぅ~! ぷんぷくり~ん(怒)」と言いましょう。だいたいの男は新しい実行環境を持ちたがる習性があるので、ECMAScript5の実行環境を使っているはずです。 そこで男が「新しい実行環境にしないの?」と言ってくるはず(Object.prototypeの拡張を勧める男はその時点でガン無視OK)。

    モテるJS系女子力を磨くための4つの心得 - KAYAC engineers' blog
    ago_kyo
    ago_kyo 2011/05/10
    久しぶりのネタ記事
  • SVG Girlの公開と内部実装 - KAYAC engineers' blog

    乗り換え以外で初めてアメリカ行きました。ago(@kyo_ago)です。 すでに先週のこととなってしまいましたが、jsdo.it上でSVG Girlというコンテンツを発表したのでご紹介させていただきます。 (現在IE9のリリースに合わせて英語版のみ公開しています。日語版は26日の日語版IE9リリースにあわせて公開を予定しています) SVG Girlって? SVG GirlはSVGを使ったアニメーション作品で、動画コンテンツの中身をすべてSVGのみで表現しています。 先週開催されたMicrosoft主催のMIX11のキーノートでも発表され(00:08:40ぐらいからご覧いただけます)、大画面に表示されたアニメーションで会場をわかせました。 SVGって? SVGはテキストで表現されたベクターデータで、XMLで線画情報を保持しています。 ブラウザ上からは通常のDOM API経由で操作すること

    SVG Girlの公開と内部実装 - KAYAC engineers' blog
    ago_kyo
    ago_kyo 2011/04/18
    ラスベガスでは全く金使いませんでした
  • jQuery.stopのjumpToEnd引数が便利すぎてやばい(JavaScript Advent Calendar 2010 5日目) - KAYAC engineers' blog

    JavaScript Advent Calendar 20105日目のago(@kyo_ago)です。 jQueryのソースを眺めててjQuery.stopに引数があることに気づいたので調べてみました。 まず、簡単なスライドダウンメニューを作ってみたいと思います。 jQuery.stop 1 - jsdo.it - share JavaScript, HTML5 and CSS JS部分は以下の通りです。 $(function () { $('div').hover(function () { $(this).find('ul').slideDown(); }, function () { $(this).find('ul').slideUp(); }); }); 少し触ると分かると思いますが、マウスがmenuから外れた後も何度も.slideDown、.slideUpが実行されるため非常に

    jQuery.stopのjumpToEnd引数が便利すぎてやばい(JavaScript Advent Calendar 2010 5日目) - KAYAC engineers' blog
    ago_kyo
    ago_kyo 2010/12/05
    最初見つけたときは便利すぎて叫びたくなるくらいショックだった
  • 「たった一行追加するだけでサイトの滞在時間を13.8%伸ばす方法・・・」をMTで実装する方法 - KAYAC engineers' blog

    べるラー油デビューしました。ago(@kyo_ago)です。 たった一行追加するだけでサイトの滞在時間を13.8%伸ばす方法・・・を参考に弊社デザイナーブログへ「n分で読めるよ!」表示を追加してみたのでその方法を紹介したいと思います。 ブログ自体はMTで作られているため、この機能もMTの標準機能で実装しています。 具体的な記述は以下の通りです。 <MTSetVarBlock name="body_count"><$mt:EntryBody count_characters="1"$></MTSetVarBlock> <MTSetVarBlock name="body_count" op="+"><$mt:EntryMore count_characters="1"$></MTSetVarBlock> <$MTGetVar name="body_count" op="/" value="8

    「たった一行追加するだけでサイトの滞在時間を13.8%伸ばす方法・・・」をMTで実装する方法 - KAYAC engineers' blog
    ago_kyo
    ago_kyo 2010/08/05
    実際使うときは1行にした方がいいです(空白はいるので)
  • Firebugの意外と知られていない機能紹介(プログラマ向け) - KAYAC engineers' blog

    羊毛布団を洗濯機にかけられないことを知りました。ago(@kyo_ago)です。 意外と知られていない機能が多い!?Firebugの使い方を見て、プログラマ向けも欲しくなったので書いてみました。 1. ショートカット一覧 以下のページでFirebugのショートカット一覧が公開されています。 http://getfirebug.com/wiki/index.php/Keyboard_and_Mouse_Shortcuts 取り合えず以下の二つだけでも覚えておくと効率的かもしれません。 F12でFirebugの有効、無効の切り替え 広いコマンドラインモード時にCtrl+Enterでコードを実行 また、以下のメニューからショートカットの変更も行えるので、他の拡張等とショートカットがかぶった場合でも別のキーで使用することが出来ます。 2. Firefox体のツールバーに「要素を調査」ボタン Fi

    Firebugの意外と知られていない機能紹介(プログラマ向け) - KAYAC engineers' blog
    ago_kyo
    ago_kyo 2010/07/29
    ちなみに今日誕生日
  • 8行でjQueryのデバッグが楽になるjQuery.pの紹介 - KAYAC engineers' blog

    週末はオレ標準JavaScript勉強会のUstreamを眺めてました。ago(@kyo_ago)です。 以前jQuery使いが陥りやすい罠の中で「4 何でも一行で書こうとする」という点を上げたのですが、以下のようなmethodを定義することでmethod chainのデバッグが楽になるので紹介したいと思います。 $.fn.p = function (id) { var arg = [this]; if (id) arg.unshift(id); if (!window.console) return this; var c = window.console || { 'log' : function () {} }; (c.debug || c.log).apply(c, arg); return this; }; 具体的な使い方ですが、以下のように確認したいmethodの後に.p()を

    8行でjQueryのデバッグが楽になるjQuery.pの紹介 - KAYAC engineers' blog
    ago_kyo
    ago_kyo 2010/07/27
    呼び出し元functionの行番号とる方法が分からない。。。
  • NILScriptでZenCoding出来る環境を開発しました - KAYAC engineers' blog

    日は花火大会なので夕方から和装になる予定のago(@kyo_ago)です。 先週土曜日にブラウザー勉強会へ参加させていただき、「NILScriptでどこでもZenCoding」というLTをさせていただいたので資料を公開したいと思います。 NILScriptでどこでもZenCoding NILScriptとは NILScriptで公開されている、JavaScriptベースのスクリプト実行環境です。 個人的には「JavaScriptで書ける高機能なAutoHotkey」と言う印象を持っています。 実際、DOMが無い以外は普通のJSと同じように書けるので、OSに関連する部分以外であればほぼブラウザ上と同じ感覚で実装できます。 ZenCodingとは zen-codingで公開されている、css selectorからhtml等へ展開するためのライブラリです。 具体的には以下のような記述から… d

    NILScriptでZenCoding出来る環境を開発しました - KAYAC engineers' blog
    ago_kyo
    ago_kyo 2010/07/21
    実際検証以外でZenCoding使ったことなかったりするw
  • DOM Ready前にイベントを設定する方法(jQuery.liveの紹介) - KAYAC engineers' blog

    健康診断で身長伸びてました。agoです。 今開発中のサイトで$().liveを中心にした実装を行っているので簡単にまとめてみました。 $().liveって? jQuery 1.3系からサポートされた、イベントハンドラの設定用methodです。 $().bindとどこが違うの? $().bindは指定されたhtml elementsに対して直接ブラウザの機能を使ってイベントを設定しますが、$(selector).liveは一旦document objectでイベントをキャッチした後、jQueryが発生元の要素とselectorをつきあわせて一致した場合イベントハンドラを呼び出します。 何がいいの? 以下のような利点があります。 DOM Readyを待たずにイベントを設定できる。 通常jQueryでは$(function () {});(DOM Ready)内で初期化を行いますが、htmlの量

    DOM Ready前にイベントを設定する方法(jQuery.liveの紹介) - KAYAC engineers' blog
    ago_kyo
    ago_kyo 2010/06/16
    176.6 -> 177.2になりました(身長)!(`・ω・´)シャキーン
  • IEでswfを複数読み込んでいる場合の$('object:first').find('param')が正常に動作しない件に関して - KAYAC engineers' blog

    名字を検索するとサジェストに「読み方」が表示されます。agoです。 mist.jsでIEがswfを複数読み込んでいる場合に$('object').find('param').lengthが$('object:first').find('param').lengthと同じ値になる問題がありその内容に関して調査してみました。 症状 以下のようなtagを読み込んでいるとき、IEで$('object:first').find('param').lengthすると4が返ります。 (IE以外の場合、2が返る) サンプル <object data="http://wonderfl.net/swf/index.swf" width="100" height="100" type="application/x-shockwave-flash"> <param name="movie" value="http

    IEでswfを複数読み込んでいる場合の$('object:first').find('param')が正常に動作しない件に関して - KAYAC engineers' blog
  • そこそこ規模が大きくても何とかなるjavascriptの設計(URL dispatcherの薦め) | tech.kayac.com - KAYAC engineers' blog

    弁当生活始めました。agoです。 以前のjavascriptの開発はサーバサイドと同じPGが開発することが多く、機能をファイル単位で分割してそのページで必要なファイルのみを読み込むと言うことが行われていました。 ただ、最近はサーバサイドとクライアントサイドの分業が進んだことや表示速度の兼ね合いもあり、単一ファイルに全体を記述しサーバサイドでは全ページでその一ファイルのみを読み込むような形になることが多いです。 単一ファイルの利点としてはサーバサイドの実装に依存せずに任意の機能を追加できることがありますが、欠点として機能毎の切り分けが難しくなると言う点があります。 jQueryを使用して$('.selector')で切り出す方法もありますが、マークアップの全体像を正確に把握できていないと不要なページで間違って実行されてしまう危険性もあります。 そこで、以下のようなJSを先に読み込み、各URL

    そこそこ規模が大きくても何とかなるjavascriptの設計(URL dispatcherの薦め) | tech.kayac.com - KAYAC engineers' blog
    ago_kyo
    ago_kyo 2010/05/27
    MEの方とかにおすすめ
  • ブラウザ上で動作するjavascriptエディターの比較 - KAYAC engineers' blog

    衣替えしました。agoです。 最近使い始めて便利だなーと思ったので、ブラウザ上から入力されたjavascriptを実行してくれるオンラインjavascriptエディターを比較したいと思います。 jsdo.it http://jsdo.it/ 弊社運営のwonderflのJS版サイトです。 使い方 コードを書くにはまずログインする必要がありますが、認証にはOpenIDとOAuthをサポートしているため一般的なネットサービスを使用しているのであれば新規にアカウントを作成する必要はありません。 使い方は左にJS、CSShtmlを記述し、右側でプレビューします。 その他細かい機能については弊社大塚の記事をご覧ください。 jsdo.it at jstudy サンプル JSBin (JS Bin) http://jsbin.com/ シンプルなのでぱっと見である程度使い方が分かると思います。 使い方

    ブラウザ上で動作するjavascriptエディターの比較 - KAYAC engineers' blog
    ago_kyo
    ago_kyo 2010/05/21
    ほんとはサンプル( http://jsbin.com/itigi3/7 )を紹介したかっただけなのは内緒
  • canvasをバイト単位で修正する方法(ImageDataの使い方) - KAYAC engineers' blog

    引っ越ししました。agoです。 思いっきりネタがかぶってますが、あまり気にせずcanvasネタを書いてみたいと思います。 今回はcanvasの中でもImageData関係をまとめて見ました。 ImageDataってなに? canvas内のバイト列を扱うためのObjectです。 canvas内の各バイト毎に赤、緑、青、透明度の情報を配列として保持しています。 何に使うの? canvas内をバイト単位で修正したい場合に使います。 canvas内に図形等を書く場合、通常提供されているlineTo等を使用することも出来ますが、こういった抽象メソッドは一回ごとの呼び出しコストが大きいため、細かい単位の操作には向きません。 その点、ImageDataであればバイト単位での操作しかできない代わりに呼び出し毎のコストが小さいため、細かい単位の操作も高速に行うことができます。 ただ、もちろん線を引く、丸を書

    canvasをバイト単位で修正する方法(ImageDataの使い方) - KAYAC engineers' blog
    ago_kyo
    ago_kyo 2010/05/14
    あー、そういえばそうだった。。。>s/バイト/ピクセル/g。書いててなんか違和感あったんだよなぁ
  • mixi app framework mist.jsを開発しました : tech.kayac.com - KAYAC engineers' blog

    KAYACモバゲー参入に伴いAmazon Web Serviceと格闘中のagoです。 弊社ではPC版mixiアプリもいくつか作成しておりますが、今回そこで得られたノウハウを集めてmixiアプリ フレームワークを公開しました。 ソースコード github opensocialに関しては過去にjquery.opensocial-simple.jsを公開しておりますが、社内からも「JSなしでmixi appを作りたい」と言う要望もあり、今回frameworkの形で公開いたしました。 コンセプト JSを書かなくてもそこそこリッチなmixi appが作れるフレームワーク 機能 OWNER、VIEWER情報の取得 マイミク情報の取得 指定mixi IDユーザ情報の取得 画面遷移の制御 表示領域の自動調整 「日記に書く」リンクの自動設定 アクティビティの発行 「友達を誘う」機能の追加 詳細はgithu

    mixi app framework mist.jsを開発しました : tech.kayac.com - KAYAC engineers' blog
    ago_kyo
    ago_kyo 2010/02/03
    サーバサイドだけでmixiアプリが作れるFW
  • javascriptプログラマのレベル10 : tech.kayac.com - KAYAC engineers' blog

    週末料理をしていて足を切ってしまいました。agoです。 以前Perlは書いていたんですが、その頃以下の記事を読んで非常に感銘を受けました。 Perlプログラマのレベル10 - Perlプログラミング救命病棟より - naoyaのはてなダイアリー 当時あまりコミュニティとのつきあいがなかったので、「自分のスキルの絶対位置」、「次のレベルへ行くために必要なもの」を知ることで非常に安心感を感じた記憶があります。 いま確認したところ、「JavaScriptプログラマのレベル10」はないようなので書いてみました。 Perlプログラマ Schemeプログラマ Rubyプログラマ (家に直接リンクできるURLが無かったため、参照ページへリンクしています) haskellプログラマ 堕落したCプログラマ HTML知識レベル プログラマレベル 企業法務 JavaScriptの業務スキルレベル 判別表 (5

    javascriptプログラマのレベル10 : tech.kayac.com - KAYAC engineers' blog
    ago_kyo
    ago_kyo 2009/12/22
    「ブラウザベンダーへのバグ報告」ってのをどこかに入れた方が良かったかも
  • tech.kayac.comで公開されたjQuery関連記事まとめ(~2009年版) : tech.kayac.com - KAYAC engineers' blog

    最近、このブログの方向性に危機感を抱いています。agoです。 そろそろあちこちで「2009まとめ」的な記事が見られるようになってきましたが、tech.kayac.comでもjQueryに特化してまとめてみたいと思います。 jQueryを使ってphpで言うところのstrip_tagsとかhtmlspecialcharsする方法 かなり簡易的な方法ですが、それぞれ一行で出来たので記事にしてみました。 JSをphp的に使用したい場合、php.jsと言うのもあるようです。 jQuery.liveをfirefoxで使うときの注意点 jQuery 1.3系でサポートされた$().live()で実際はまった問題の紹介です。 JS制作に欠かせない3つのツール Flash制作に欠かせない3つのツール・まとめ編 | エントリー | _level0.KAYAC _level0.KAYACとの連動記事です。 jQ

    tech.kayac.comで公開されたjQuery関連記事まとめ(~2009年版) : tech.kayac.com - KAYAC engineers' blog
    ago_kyo
    ago_kyo 2009/12/14
    deliciousのブックマーク数画像はAPIが死んでたので表示できませんでした
  • jQueryを使ってphpで言うところのstrip_tagsとかhtmlspecialcharsする方法 - KAYAC engineers' blog

    以下のコードは状況により脆弱性が発生する可能性があるため別の方法で実装ください。 先日始めてsquidの設定を行いました。agoです。 今日はjQueryを使ってphpで言うところのstrip_tagsとかhtmlspecialcharsする方法を紹介したいと思います。 普通jQueryを使ってescapeする場合、$().text()で要素を追加すればいいのですが、これだと「文字列template内に埋め込むために事前に文字列をescapeしたい」や、「ユーザの入力値はescapeしたいけど、改行をbrに変換するから$().text()で要素を追加したくない」といった場合に使えるかもしれません。 具体的には以下のようなコードを読み込むことによって$.strip_tags()や$.htmlspecialchars()が使えるようになります。 jQuery.extend({ 'strip_t

    jQueryを使ってphpで言うところのstrip_tagsとかhtmlspecialcharsする方法 - KAYAC engineers' blog
    ago_kyo
    ago_kyo 2009/12/09
    でも、よく考えたら改行消えるので「ユーザの入力値はescapeしたいけど、改行をbrに~」には向かないかも