タグ

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

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

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

    WebKit サーバーというものを作ってみた - IT戦記
    kazeburo
    kazeburo 2011/08/31
  • 2010-09-22 - IT戦記

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

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

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

    サイボウズで学んだこと - IT戦記
    kazeburo
    kazeburo 2010/09/17
    @amachang おつかれさまでした!/なぜ写真がyusukebe
  • はじめての 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戦記
  • 英単語をダブルクリックで英英辞典を検索する Bookmarklet と Greasemonkey - IT戦記

    先に言っておきますが。Firefox 専用です。。。。 自分用に作ったんですが、なかなか便利なので公開します。 このブックマークレットを実行し、そのページ内の英単語をダブルクリックすると自動で英英辞典を検索してくれます。 javascript:document.addEventListener('dblclick',function(){var t=document.getSelection();if(t.match(/^[\w\d_\-\. ]+$/))location.href = "http://dictionary.cambridge.org/results.asp?searchword="+t;},false);void(0); Greasemonkeyはここから インストール ちなみに document.selection.createRange(); とかを使えば IE にも

    英単語をダブルクリックで英英辞典を検索する Bookmarklet と Greasemonkey - IT戦記
    kazeburo
    kazeburo 2009/02/10
  • Google App Engine で Tropy っぽいやつ作ってみた - IT戦記

    Google App Engine の SDK で 何か作ってみよう! というわけで、 Tropy みたいなやつを作ってみる python で 20 行以上のプログラムを書くのはたぶん初めてだ Tropy とは 以下が詳しいです。 Tropyとは - はてなキーワード ちなみに、以下のスクリーンショットは id:naoya さんが作った Tropy のクローンの Haropy です。 で、僕もそんな感じのものを作ってみた ソースを晒しておきます。 ファイル構成 PyGropy |-- app.yaml |-- edit.html |-- entry.html `-- pygropy.py app.yaml 設定ファイル application: pygropy version: 1 runtime: python api_version: 1 handlers: - url: /.* sc

    Google App Engine で Tropy っぽいやつ作ってみた - IT戦記
  • 動的スクリプトローディング(さんざん既出だと思うけど - IT戦記

    なんか、既出な予感もするんですけど 私製版を作ったので コード var load = function(src, check, next) { check = new Function('return !!(' + check + ')'); if (!check()) { var script = document.createElement('script') script.src = src; document.body.appendChild(script); setTimeout(function() { if (!check()) setTimeout(arguments.callee, 100); else next(); }, 100); } else next(); }; 考え方は、 このエントリ と同じです。 使い方 以下の場合 // 処理 1 // ← ここで jQu

    動的スクリプトローディング(さんざん既出だと思うけど - 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 を高速化する方法
  • IT戦記 - mixi の絵文字を無効化する JavaScript

    mixi の絵文字 うざいって人多いんじゃないでしょうか というわけで。 Greasemonkey などに「ご自由に」「積極的に」お使いください $$('.emoji').invoke('setStyle', {display: 'none'}); mixi は prototype.js 使ってるからコード注入がとても楽ちん

    IT戦記 - mixi の絵文字を無効化する JavaScript
    kazeburo
    kazeburo 2007/05/10
  • IT戦記 - ミニブログ「もごもご」を試す

    また Twitter クローンが出ました http://mogo2.jp/top 昨日の深夜ちょっと触ってみた感想 2ch の VIP にいるときと同じ気分だった。何よりもスピード感が楽しい。 Twitter があるからいらないじゃん? いやいや。 Twitter は日のミニブログのメインになり得ない そのたったひとつの理由は UI英語だから。 という訳で もごもごは 2ch ネラーをターゲットにしたらどうだろう。 日のミニブログの命になると思う。

    IT戦記 - ミニブログ「もごもご」を試す
    kazeburo
    kazeburo 2007/05/09
  • Class::Data::Accessor と Class::Data::Inheritable の違い - IT戦記

    Catalyst のソースを読んでいると Class::Data::Accessor と Class:Data::Inheritable が出てくる。つかわれかたは、ほとんど同じに見えるので、ちょっとソースを読んでみた。 読んでみると Class::Data::Accessor のほうは、オブジェクトメソッドとして呼ばれたときに、オブジェクトのデータにアクセスする。 こんな感じ。 use strict; use warnings; use base qw/Class::Data::Accessor Class::Data::Inheritable/; main->mk_classaccessor('hoge'); # Class::Data::Accessor main->mk_classdata('fuga'); # Class::Data::Inheritable main->hoge

    Class::Data::Accessor と Class::Data::Inheritable の違い - 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 系の概念
  • FireBug と benchmark.js を使って稼働中のサービスの JavaScript パフォーマンスをチェックする - IT戦記

    まずはこれを見てください。 http://sample.ecmascript.jp/bench.htm このような感じで FireBug のコンソールを表示させて 適当なサーバにある benchmark.js を読み込んで benchmark.at('firebug')({ 'テスト1': function() { ... } }); って感じで、どんなサイトでもパフォーマンスを計ることが出来ます。 何が嬉しいのか いちいちサービスの JavaScript を書き換えて計測する必要がない。 思いついたときに、パフォーマンスチェックができる。 FireBug を入れていない、または Firefox 以外でパフォーマンスを計りたい場合 URL 欄に javascript:(function(){var s=document.createElement('script');document.bo

    FireBug と benchmark.js を使って稼働中のサービスの JavaScript パフォーマンスをチェックする - IT戦記
  • Catalyst勉強会資料 - IT戦記

    けっこう前ですが、会社の勉強会で Catalyst についてやりました もったいないので、共有しときます。 http://sample.ecmascript.jp/Catalyst.ppt そんな矢先ですが、 Catalyst が 5.7 になったようですね。ちょっと調査しないと

    Catalyst勉強会資料 - IT戦記
    kazeburo
    kazeburo 2006/07/12
  • ScriptaculousのEffect実行順序を管理するJSを作ってみた。 - IT戦記

    仕事で使おうと思って作ったら意外といい出来だったので公開してみる。 だうそろーど たとえば、こう書くと var element = $('block'); var planner = new EffectPlanner( [ { Move: [element, {x: 200, y: 200}] }, { Move: [element, {x: 0, y: 300}] }, { Move: [element, {x: 300, y: 0}] }, { Move: [element, {x: 0, y: -300}] }, { Move: [element, {x: -300, y: 0}], next: 1 } ] ); planner.start(); こうなる http://sample.ecmascript.jp/20060523-00.html たとえば、こう書くと var col

    ScriptaculousのEffect実行順序を管理するJSを作ってみた。 - IT戦記
  • Prototype.js 1.5.0_rc0 - IT戦記

    最新が 1.5.0_pre1 から 1.5.0_rc0 になってたので調査。今回はあまり、面白い変更が見当たらない。Fix ばかりだ。 Prototype.js 1.5.0_pre1 からの変更点 CHANGELOG を見ながらソースを読んでまとめました。 可能な場合は、Element.extend を使わずに直接 HTMLElement.prototype を拡張。 Mozilla の bfcache を有効にするために、window.unload でイベントリスナを開放するのを IE のみとした。 Array.prototype.shift の定義を削除(再実装になるため)。 Array.prototype.reverse の再定義を防ぐ。 Enumerable.min および Enumerable.max の 0 を認識しないバグを修正。 IE7 では XMLHttpRequest

    Prototype.js 1.5.0_rc0 - IT戦記
  • IT戦記 - Prototype.js を使った JavaScript OOP 講座 #02

    社内の勉強会の資料をここに公開していきます。社内の人も社外の人も読んでください。 ※ターゲットは JavaScript は書いたことない、オブジェクト指向言語プログラマ。 ※信念は「教わるのではなく、必死に着いていきませう」 今週はかなりハードボイルドで全身タイツのような忙しさなので、みんなが春を分けて楽しんでいたり、香港に行って楽しんでいる間にせこせこ資料を作っています。 はぁ。 Section 00 Prototype.js の前に JavaScript と DOM とイベントの概要 HTML は読み込まれた後、すべての情報が JavaScript のオブジェクトに変換される。 イメージ的にはこんな感じ <html> <head> <title>タイトル</title> </head> <body> : : </body> </html>↓↓↓ var document = { doc

    IT戦記 - Prototype.js を使った JavaScript OOP 講座 #02
  • Prototype.js を使った JavaScript OOP 講座 #01

    社内の精鋭エンジニアを中心に定期的に勉強会をすることになった。んで、 JavaScript の講義は僕がやることになった。 資料を社内だけでとどめておくのはもったいないので、ここに公開していきます。社内の人も社外の人も読んでください。 講義の内容は基的にソース嫁。ソースレビュー形式。 ※ターゲットは JavaScript は書いたことない、オブジェクト指向言語プログラマ。 Section 00 Prototype.js の前に JavaScript のオブジェクトの概要・・・ オブジェクトを作ってみる。 var object = {};オブジェクトにメソッドとかプロパティを追加してみる。 var object = { field: 'IT戦士', method: function() { alert('hello ' + this.field); } }; object.method()

    Prototype.js を使った JavaScript OOP 講座 #01
  • Prototype.js Console - IT戦記

    昨日の Object Browser がそこそこアクセスあったのでコンソールのほうも改造して載せてみました。 http://www.ornithopter.jp/amachang/browser/console.html 鯖、貸してくれてありがとんクス! 使い方 ページの最下のフィールドに [1, 2, 3, 'ダアァァァー!'].each(alert);と入力する。

    Prototype.js Console - IT戦記
  • Prototype.js 1.5.0_pre0 - IT戦記

    最新が 1.5.0_pre0 になってたので調査 (自分用のメモなので読みにくくてもゴメンなさいってことで) Prototype.js 1.4.0 からの変更点 CHANGELOG より String.prototype.truncateを追加 String.prototype.gsub, String.prototype.sub, String.prototype.scan を追加。 Template クラスを追加。 $$ 関数を追加。 Selector クラスを追加。 Element.childOf を追加。 String.prototype.inspect を修正。 String.prototype.strip を追加。 String String.prototype.truncate 文章を短くする。 var text = 'とっても長い文章です。読むのがわずらわしいです。概要だけ

    Prototype.js 1.5.0_pre0 - IT戦記