タグ

ブックマーク / amachang.hatenablog.com (19)

  • IT戦記 - 複雑で重くなった JavaScript を超高速化する方法。

    以下のスクリプトを他のすべてのスクリプトよりも前に読み込む。 var nativeSetInterval = window.setInterval; _setInterval = {}; window.setInterval = function(process, delay) { var entry; if(typeof process == 'string') { entry = new _setInterval.Entry(function(){eval(process);}, delay); } else if(typeof process == 'function') { entry = new _setInterval.Entry(process, delay); } else { throw Error('第一引数が不正です。'); } var id = _setInterv

    IT戦記 - 複雑で重くなった JavaScript を超高速化する方法。
  • (function(){})() と function(){}() - IT戦記

    自分用メモ // JavaScript でクロージャを書くときこう書く事が多い (function() {})() // 何故なら // function() {}() // と書くと // function() {} が式ではなく、文として解釈されてしまうからだ。 // 文として解釈されないためには、文の途中(最初以外)に function と書いてやる必要がある // なので、まず開きカッコを書いてやる。 ( // の後に function() {} // と書いてやると function は式になる ) // 正確には、カッコの対は The Grouping Operator という演算子である。 // カッコ以外にも var a = // のように代入演算子のあとでもいい function() {} // つまり、以下のような記述も可能である。 var b = function()

    (function(){})() と function(){}() - IT戦記
  • 関数一発でプロトタイプチェーンに繋げて、オブジェクトをクローンする。 - IT戦記

    最近、プロトタイプ的継承の話しが盛り上がっています。 http://blog.livedoor.jp/dankogai/archives/50662064.html http://labs.cybozu.co.jp/blog/kazuho/archives/2006/10/javascript_string.php http://blog.livedoor.jp/dankogai/archives/50662606.html 最終形がやたら複雑になっています でも、実際はあそこまで複雑に書かなくても、できると思います ^^; そう思う理由 P 関数は object 関数の中でローカルのものである。コンストラクタとして使える必要はない。なので、 Atomic な場合でも P は function(){} でいい。 method 関数では P.prototype のプロパティに関数が代入されて

    関数一発でプロトタイプチェーンに繋げて、オブジェクトをクローンする。 - IT戦記
  • JavaScript OOP におけるクラス定義方法 - IT戦記

    クラスを定義する方法です。考え付くだけでも、これだけたくさんの方法があります。やっぱり、 JavaScript って柔軟であり複雑な言語ですね。 ちなみに、以下のすべての例はこのクラスを定義しています。 ちなみに、僕は一番下の書き方ですね。 皆さんはどのようにプログラミングしていますか? プロトタイプを使わない。クロージャを使う。 // プロトタイプを使わない。 // クロージャを使う。 function Item(price) { this.showPrice = function() { alert(price); }; } プロトタイプを使わない。クロージャを使わない。 // プロトタイプを使わない。 // クロージャを使わない。 function Item(price) { this.price = price; this.showPrice = function() { aler

  • WebKit サーバーというものを作ってみた - IT戦記

    みなさん お久しぶりですヽ(´ー`)ノ夏休みの宿題終わりました? 毎日が夏休みの最終日みたいな生活してるあまちゃんです! さてさて 今日は WebKit サーバーというものを作ってみたので、紹介してみます。 WebKit って何? WebKit っていうのは Chrome や Safari の中に入ってるブラウザのエンジンのことです! 実はブラウザっていうのは、エンジン部分と見た目の部分(タブとかボタンとかね)に別れていて、意外と違うブラウザでもエンジン部分は同じものを使ってるってことも多いんですよ(*´ー`) ブラウザのサーバーってどういうこと? 要は、サーバーサイドでブラウザを起動して JavaScript を実行したり、 JavaScript が実行されないと読めないページから値を持ってくるのに使ったりしようという魂胆です。 今まではそういうのなかったの? 実は、今までは JavaS

    WebKit サーバーというものを作ってみた - IT戦記
    sagaraya
    sagaraya 2011/08/31
    これは!スクリーンショット撮ったりもできるんだろうか
  • Google+ が解決した、たった一つのフェイスブックの問題点 - IT戦記

    今までの SNS はプライベート空間を分けることが出来なかった これじゃ、お父さんがかわいそうヽ(´Д`;)ノ と、言うわけで Google+ はそれを解決した ( ・`ω・´)キリッ (・∀・)ウホッ まとめ インターネットでは、友達が増えるたびどうしても話題が最大公約数的になりすぎてしまう 自分も今まではそう思っていなかったのですが。 今回、 Google+ を使ってみて、いつも知らず知らず我慢していた自分に気が付きました。 Google+ はこの問題を気で解決しようとしているように見えます。 まだまだ、機能が少なくて荒削りな部分も多いですが、この一点を解決したというのは非常に価値があるのではないでしょうか。 だ、だめ。言いたいことも言えちゃうこんな SNS じゃ

    Google+ が解決した、たった一つのフェイスブックの問題点 - IT戦記
  • IT戦記 - JavaScript を学ぶ際に一番重要なのに、誤解されがちな setTimeout 系の概念

    おそらく、JavaScript を使いこなす肝は setInterval、setTimeout、イベントによる関数の実行を理解することだと思う 例えば 次のコードの結果を考えたとき document.write("hoge\n"); setTimeout(function(){ document.write("fuga\n") }, 1000); document.write("piyo\n");普通に JavaScript を使いこなしてる人なら、hoge → piyo と表示して、 1 秒後に fuga が表示されるな。って思うはずなんです。 でも、 JavaScript を始めたばっかりの人の中には、 hoge と表示したあと 1 秒後に fuga → piyo と表示するな。って思ってる人が非常に多い。(経験的に) 何故か? たぶん、どのサイトの setTimeout の説明を見て

    IT戦記 - JavaScript を学ぶ際に一番重要なのに、誤解されがちな setTimeout 系の概念
  • フェイスブック、ミクシィ、グリーで使われている OGP (Open Graph Protocol) とは何か - IT戦記

    みなさん、こんにちは お元気ですか?僕は元気です。 さて 最近よく、「いいね!」ボタンや「ミクシィチェック」ボタンによって、ウェブページを紹介し合う文化が少しずつ定着してきたなーと思います。 そんな中で、今後重要になってくるんじゃないかと思われる OGP (Open Graph Protocol)と言われる仕様があります。今日はそのことについて書いてみたいと思います。 OGP? おーじーぴー??とはなんでしょうか。 OGP とは 簡単に言うと「このウェブページは何のことを書いているか」という情報を、プログラムから読める形で HTML に付加する記述方法のことです。 まあ、普通のウェブページは人間が読めばだいたい何のことが書いてあるか分かりますよね。 ですが、プログラムは人間ほど頭が良くないので、そのウェブページ内の文章だけではそのページが何のことについて書かれているページなのか正確に識別す

    フェイスブック、ミクシィ、グリーで使われている OGP (Open Graph Protocol) とは何か - IT戦記
    sagaraya
    sagaraya 2011/02/04
    これはいいかもしれない
  • 勝屋さん、高須賀さんの AJITO に潜入してきた! - IT戦記

    みなさん、こんにちは! お元気ですか?僕は元気です。 勝屋さんと高須賀さんのオフィス AJITO に行ってきました! 先日、弊社の米良と東大の松尾さんと、勝屋さんにお仕事相談を兼ねてオフィス AJITO に行ってきました! 左から、勝屋久さん(@katchamans、VentureBeat-Japan)、米良はるかさん、松尾豊さん、僕、高須賀宣さん (@ttakasuka、 id:ttakasuka) です。 オフィスに入ると、高須賀さんもいらっしゃってみんなでワイワイお話してきました! それが、素晴らしい体験だったので、ブログに残していただきたいと思います。 勝屋さんのスケッチブック お話する中で、勝屋さんのスケッチブックを見せてもらいました。 一見ふつうのスケッチブックなのですが…、開いてみると…? 携帯電話の写真ではきっと伝わりきらないかもしれないのですが、言葉と絵とそのコンテキス

  • 2010-09-22 - IT戦記

    はじめに 今日から、オーマ株式会社の二人目の社員として、オーマ株式会社に入社いたしました。(大事なことなので2回言いました) よろしくお願いいたします。 オーマ株式会社では あのひと検索スパイシー というサイトを作っています。 僕も、これれから SPYSEE の企画、開発、運用、そして、様々なサポート(トイレ掃除とかね!)をやっていこうと思っています。 みなさま、よろしくお願いいたします! 今日は、僕が「この会社で何をやっていきたいのか」を書いておきたいと思います。 これから何をやっていきたいか 僕がこれから SPYSEE でやっていきたいことは三つあります。 それは、 「運命の出会い」の確率をあげたい! 人の背景を知ることで、コミュニケーションをもっと楽しくすること アピールが苦手な人(シャイなあんちくしょう)でも損をしない仕組みを作ること です。 これは、あくまでも「今、僕が考えている

    2010-09-22 - IT戦記
  • サイボウズで学んだこと - IT戦記

    はじめに 2010 年 9 月 15 日を持ちまして、サイボウズ・ラボを退職いたしたました。 報告も兼ねて、久しぶりにブログを書いてみたいと思います。 (写真はゆうすけべーさんです) この会社に入って、たくさんの学びと思い出がありました。 その一つ一つをまとめていければ、素晴らしい記事になるのかもしれませんが、僕は文章が苦手です。 ですので、うまく退職のエントリを書き上げることができません。 言葉にできない。そんな感じです。 なので、このエントリはサイボウズ・ラボやサイボウズ社の仲間たちへのありがとうの気持ちをこめて、自分らしく最後まで JavaScript のことを書きたいと思います。 サイボウズでの最後の仕事 僕にとって、サイボウズでの最後の仕事は「JavaScript で新しいユーザーインタフェースを作ること」でした。 そして、その中で始めて複数人による大規模な JavaScrip

    サイボウズで学んだこと - IT戦記
  • はじめての mixi アプリ - IT戦記

    IE ではたぶん動きません。 友達一覧取得 <?xml version="1.0" encoding="UTF-8" ?> <Module> <ModulePrefs title="simple mixi Appli"> <Require feature="opensocial-0.8"/> </ModulePrefs> <Content type="html"> <![CDATA[ <script type="text/javacript"> var req = opensocial.newDataRequest(); req.add(req.newFetchPeopleRequest(opensocial.newIdSpec({ userId: 'OWNER', groupId: 'FRIENDS' }), { max: 1000 }), 'friends'); req.send(fu

    はじめての mixi アプリ - IT戦記
    sagaraya
    sagaraya 2009/04/09
    何かつくるときの参考に
  • 若者に一度だけ与えられる出会いの場、セキュリティ&プログラミングキャンプ - IT戦記

    はじめに 2008 年 8 月 13 日 〜 17 日まで、講師としてセキュリティ&プログラミングキャンプ 2008 に参加させていただきました。 セキュリティ&プログラミングキャンプって何? セキュリティキャンプ&プログラミングキャンプとは、 2004 年から始まった「若くて優秀なセキュリティ人材やプログラマーを育てちゃおうよ!」というイベントです。 キャンプの名のとおり 5 日間キャンプ形式で行わます。そして、毎日 8:00 〜 22:00 まで講義が行われるという大変ハードでエキサイティングなイベントです。 僕が経験したキャンプ 僕がキャンプの中で経験したこと感じたことを書いておきたいと思います。 楽しさを伝えることの重要性 僕は、 JavaScript の講義を担当していたのですが、前日まで作っていた資料とは全然違う資料を使って講義を行いました。 一日目、手を動かしながら目を輝かせ

    若者に一度だけ与えられる出会いの場、セキュリティ&プログラミングキャンプ - IT戦記
  • プログラミング未経験者が JavaScript でプログラミングを始めるまでに必要なこと - IT戦記

    (執筆中) (文章の練習も兼ねてぐだぐだと執筆中、現時点で読んでも日語になってないと思います。) (執筆途中だけど、こうしたらいい!とか、アドバイスがあれば教えてください><読者みんなが編集者!とか言ってみる) (あ、はてな記法のパッチを送ってくれてもいいです^^) (ちょっと、 Shibuya.JS in Kyoto → PHP カンファレンスがあるので、次の更新はそれ以降になるかも) 自分の知り合いに「まったくのプログラミング未経験だけど、自分のウェブサイトを作ってみたい!」という人がいるので、プログラミングを始める前に必要な知識や心構えや準備などを書いておこうと思います。もちろん、最初に使う言語は JavaScript です。 この文章は、プログラミングまったくの未経験者が読んで分かる文章を目指しています。もし、分からない部分がある場合は指摘してください。聞いてください。自分で調べ

    プログラミング未経験者が JavaScript でプログラミングを始めるまでに必要なこと - IT戦記
  • Developers Summit 2008 の資料を公開します。 - IT戦記

    話のメインは オブジェクト指向です。 というよりも、僕が JavaScript のオブジェクト指向をこう理解している。という話です。 リンク http://amachang.art-code.org/devsum2008/ 言い訳 口頭で説明した個所も多いのですが、楽しんでいただけたら嬉しいです。

    Developers Summit 2008 の資料を公開します。 - IT戦記
  • IT戦記 - 一行で IE の JavaScript を高速化する方法

    以下の一行をすべての JavaScript の前に読み込む /*@cc_on _d=document;eval('var document=_d')@*/ この一行を読み込むことによって IE での document へのアクセスが 5 倍速くなります。 たとえば 以下のように、読み込む前と読み込んだ後を比較してみます。 // Before var date = new Date; for (var i = 0; i < 100000; i++) document; alert(new Date - date); // 643 /*@cc_on _d=document;eval('var document=_d')@*/ // After date = new Date; for (var i = 0; i < 100000; i++) document; alert(new Date -

    IT戦記 - 一行で IE の JavaScript を高速化する方法
  • JavaScript の配列と連想配列の違い - IT戦記

    id:cheesepie:20070131:1170172709 最近は、こういう風に JavaScript を勉強する人が増えていてとても嬉しいです ^^ id:cheesepie さん頑張ってください! で、ちょっと配列と連想配列の使いかたが違うようなので、エントリーを書こうと思いました。おせっかいだったらすみません>< ! やっぱり、このへんが JavaScript の難しいところのひとつなのだろうか。 ということで、 JavaScript の配列と連想配列の違い いってみよおー 連想配列とは JavaScript では連想配列は一番シンプルなオブジェクトのことである。つまり、すべてのオブジェクトは連想配列である。 以下のすべての連想配列はまったく同じものである。 // 1 var obj = { hoge: 'hoge' }; // 2 var obj = { 'hoge': 'h

    JavaScript の配列と連想配列の違い - IT戦記
  • IT戦記 - CSS の勉強会をしました

    2007 CSS Study Meeting http://artcode.g.hatena.ne.jp/keyword/2007%20CSS%20Study%20Meeting 発表をしましたので資料を置いておきます。 http://usrb.in/amachang/static/cssstudy/200701/ Firefox で動きます。IE でもぎりぎりうごきます。あ、でも、横長な表示域じゃないと崩れる可能性大です。 左右キーで操作してください。また、ソースは実行できるようになってるので、実際に実行しながら読んでいっていただけるとうれしいです。 他に事前に CSS のセレクタのバグリストとプロパティ一覧を作りました。 プロパティ一覧は element.style に辞書アタックを掛けて各種ブラウザから抽出したプロパティです。 http://usrb.in/amachang/stat

    IT戦記 - CSS の勉強会をしました
  • 勉強が出来ない奴はプログラマになれ!(バカだからできる勉強法) - IT戦記

    どのくらいの人がこのブログを読んでいるか分かりませんが、 もし、勉強が出来ない人が周りにいたら、このブログを紹介してあげてください。 ふと 勉強が出来ない人は、プログラマになったほうがいいと思った。 僕はというと 自分でも驚くくらい勉強というものが出来ない。ものごとを知らない。 はっきり言ってバカなのである。 たとえば、 大学行ってない。 株式公開と上場の違いを知らなくて、一同ぽかーん。 つい最近まで、サイバーエージェントを知らなかった。(技術者には必要ない) 英語が一切読めない。 宮崎料理「冷や汁」を「冷や飯」だと思ってた。 基的に会議とかでよく出る英語、「さじぇっしょん」とか、「あさいん」とか、「ぶらんでぃんぐ」とか、「うぇぶつーぽいんとおー」とか、よく分からん。 人力(じんりき)検索を入力(にゅうりょく)検索だと思っていた たぶん、まだまだあるけど、自分がバカだから気がつかないんだ

    勉強が出来ない奴はプログラマになれ!(バカだからできる勉強法) - IT戦記
  • 1