タグ

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

  • Effective Java 読書会 13 日目 「Java の例外めんどくさい」 - IT戦記

    IOException の catch に何を書いていいか分かりません><! はじめに 順番が前後しますが、今回は Java の特徴のひとつである例外機構についてです。 今回の範囲 223 ページ 〜 250 ページ 前回はこちら Effective Java 読書会 12 日目 「スレッド・セーフってなによ!!」 - IT戦記 Java の例外 throw 可能なオブジェクト Throwable インタフェースを実装したもの Exception を継承しない Throwable は基的に使わない チェック例外 メソッドの実装者が「呼び出し元が回復可能」だと考えている例外 ちゃんと「なぜ、例外だったのか」理由が提供されるべき 呼び出し元は try catch で囲むか throws 宣言を書く必要がある Exception を継承していて RuntimeException を継承していな

  • フェイスブック、ミクシィ、グリーで使われている OGP (Open Graph Protocol) とは何か - IT戦記

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

    フェイスブック、ミクシィ、グリーで使われている OGP (Open Graph Protocol) とは何か - IT戦記
  • WebKit サーバーというものを作ってみた - IT戦記

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

    WebKit サーバーというものを作ってみた - IT戦記
    escape_artist
    escape_artist 2011/08/31
    一番わかりやすいのはテスト用途だよね。Seleniumは重いし、少しでも軽い選択肢があるのはうれしい。
  • JavaScript で遅延評価 - IT戦記

    ぶっちゃけ 僕は遅延評価のことたぶんあんまり理解してないと思います。 でも、とりあえずこんなの作ってみた function l(a) { return typeof a == 'function' ? a() : a } // lazy の l こうやって使う function add(i, j) { return l(i) + l(j) } var count = 0; alert(add(1, 1)); // 2 alert(add(1, function(){ return 1 })); // 2 alert(add(1, function(){ return count++ })); // 1 alert(add(1, function(){ return count++ })); // 2 alert(add(1, function(){ return count++ }));

    JavaScript で遅延評価 - IT戦記
    escape_artist
    escape_artist 2011/06/03
    Numberへキャストされるときに.valueOf()を処理系が呼んでいると。うーん。
  • アイデアひとつで何かを実現するサイト! READYFOR? をリリースしました!

    READYFOR? というサイトをリリースしました! みなさん、お久しぶりです!元気ですか?僕は元気です>< 最近、 READYFOR? という日初のクラウドファンディングサービスをリリースしました! ですので、今日はそのサービスの紹介と、新しい資金集めの形である「クラウドファンディング」というものを紹介したいと思います! クラウドファンディングって何? クラウドファンディングとは、簡単にいうと ウェブ版、「マネーの虎」 のような仕組みです! つまり、何か「やりたいこと」がある人(実行者)がそのアイデアを披露して、それに賛同した人(支援者)に必要なお金を支援して貰うという仕組み、それをウェブや SNS と連携してやっちゃおうじゃないか!というのがクラウドファンディングサービスです。 クラウドファンディングを使うと、誰でも「こういうモノを作りたい!」というアイデアさえあれば、それを世の中に

    アイデアひとつで何かを実現するサイト! READYFOR? をリリースしました!
  • IT戦記 - JavaScript の名前空間

    JavaScript での大規模開発では シンボルの衝突が非常に大きな問題となる。その代表例が Firefox の拡張機能内のシンボルである。 で、こんな記述ルールはどうだろう window['http://d.hatena.ne.jp/amachang/']={}; // URI (function(){with(this){ // ここにコードを書く }}).apply(window['http://d.hatena.ne.jp/amachang/']); // URI 例えば window['http://d.hatena.ne.jp/amachang/']={}; (function(){with(this){ var hoge = 'hoge'; // このスコープ内で共有するシンボル this.fuga = 'fuga'; // 同じ名前空間で共有するシンボル window.p

    IT戦記 - JavaScript の名前空間
    escape_artist
    escape_artist 2011/01/05
    わかりやすい書き方
  • フェイスブックの新 API でフェイスブックアプリのテストを自動化しよう。 - IT戦記

    みなさま お久しぶりです。最近フェイスブックアプリを作ったりしてますが、やっぱりテストが大変ですよね>< と思っていたら、今日以下のような API が公開されたみたいです! Test User - グラフAPI - ドキュメンテーション - 開発者向けFacebook アプリをインストールしている、テストユーザーを API で作ってそのユーザーを使ってテストできるようになるんですね! すばらしい! と、いうわけでさっそく試してみた。 まずはアプリの access_token ゲット! まずは、アプリの access_token を取得します。 以下のように POST してください。 $ curl -F grant_type=client_credentials -F client_id=ここにアプリケーションのID -F client_secret=ここにシークレットキー https://

    フェイスブックの新 API でフェイスブックアプリのテストを自動化しよう。 - IT戦記
    escape_artist
    escape_artist 2010/11/22
    プラットフォームがテスト用APIを提供する、っていいなー
  • クックパッドに行ってきた! - IT戦記

    料理男子は好きですか? はじめに どうも、こんにちはあまちゃんです。 かわいい系男子の id:mirakui さんと id:secondlife さんに会いにクックパッドに行ってきました! とっても楽しかったので、ブログを書いておこうと思います。 まずは入り口 てくてく クックパッドに付いたよー! いい質感。かべかわいいよかべ! 入り口を進むと… じゃーん、これがクックパッドのキッチンやで! や、やるじゃねえか!べ、べつにくやしくなんてないんだからね! なんか、メオトカップとかあったりするのかなーなんてニヤニヤしていると… id:mirakui と id:secondlife が料理をしだした! しかし、このふたり絵になるなあ。萌え。 あ、クックパッドエプロンいいな!いいな!欲しいな!それ欲しいな!(くれないそうです) そして、完成! 手料理だー! わー!わー!すごい! しかもうまい! (

    クックパッドに行ってきた! - IT戦記
    escape_artist
    escape_artist 2010/10/14
    これはいいどや顔
  • フェイスブックが面白い - IT戦記

    フェイスブック楽しい! はじめに みなさんこんにちは!フェイスブックしてますか? ゆうすけべーが書いているように、最近当にフェイスブックがおもしろいなーと感じます。 ゆーすけべー日記 というわけで、一人で使っていたときから人が増えてきたときまでの雰囲気を思い出しつつ、僕が感じているフェイスブックのおもしろさ、特徴、楽しみ方などを紹介していけたらと思います。 ちょっと長くなっちゃいますけど、よろしくお願いします! フェイスブックの一番の面白さは「速さ」 僕が感じているフェイスブックの良さは、一言で言ってしまえば「コミュニケーションの速さ」なんだと思います。 速さと言っても、システム的な速さだけではなくって「コミュニケーション」の速さです。 フェイスブックの「コミュニケーションの速さ」は主に以下の3点にあると思っています。 「左下」の通知が素早い 書き込むより早く「いいね!」が伝わる 「一緒

    フェイスブックが面白い - IT戦記
    escape_artist
    escape_artist 2010/10/11
    俺のようなコミュニケーション恐怖症でもやっていけるだろうか
  • 2010-09-22 - IT戦記

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

    2010-09-22 - IT戦記
    escape_artist
    escape_artist 2010/09/22
    期待します
  • サイボウズで学んだこと - IT戦記

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

    サイボウズで学んだこと - IT戦記
  • JsonML を使う高速テンプレートエンジン「JsonML.Template」 - IT戦記

    というのを作ってみた JsonML とは JSON を使ったマークアップ言語です。 http://jsonml.org/ 使いかた // テンプレートの作成 // <div class="section"><h2>タイトル</h2><p>文</p></div> var t = $T(['div', {class: 'section'}, ['h2', 'タイトル'], ['p', '文'] ]); // 要素の生成 document.body.appendChild(t()); // 呼び出すだけ // テンプレートの作成 var t = $T(['div', {class: 'section'}, ['h3', function(c){return c.getVar('title')}], // タイトルを動的に生成 ['p', function(c){retur

    JsonML を使う高速テンプレートエンジン「JsonML.Template」 - IT戦記
    escape_artist
    escape_artist 2010/09/13
    こんな応用があるのかー
  • 関数一発でプロトタイプチェーンに繋げて、オブジェクトをクローンする。 - 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戦記
    escape_artist
    escape_artist 2010/07/30
    意味がわかるようになってきた
  • サーバーサイド jQuery をやってみる! - IT戦記

    最近、社内で PHP Spidermonkey が流行って(?)いるようです><! Cybozu Inside Out: SpiderMonkeyを使ってPHPでサーバーサイドJavaScript id:ama-ch さすがです>< というわけで 僕も、 PHP の Spidermonkey でどのくらいのことが出来るのか試してみました>< まず、 Hello, world! <?php // new して $js = new JSContext(); // print 関数作って $js->registerFunction(function($v) { print $v; }, 'print'); // こんにちはこんにちは! $js->evaluateScript('print("Hello, world!!")'); Hello, world!おおお、簡単! 次は、 id:m-hiy

    サーバーサイド jQuery をやってみる! - IT戦記
    escape_artist
    escape_artist 2010/02/09
    応用例が今ひとつピンとこない。
  • PHP で引数をそのまま返す関数を作っておくと便利 - IT戦記

    PHP では以下のように new してすぐメソッドを呼べない <?php new DateTime()->getOffset(); なので、引数をそのまま返す関数を作ってやると <?php function expr($a) { return $a; } expr(new DateTime())->getOffset(); // OK! 便利だなー おまけ 配列アクセス用のも作っておくと便利 <?php function expr($a) { return $a; } function idx($array, $i) { return $array[$i]; } echo idx(idx(expr(new DateTimeZone('Asia/Tokyo'))->getTransitions(), 0), 'abbr') . "\n"; おまけ2 無名関数をそのまま呼ぶときにも使える。 <

    PHP で引数をそのまま返す関数を作っておくと便利 - IT戦記
    escape_artist
    escape_artist 2009/08/04
    メソッドチェーンしたいときはいいかも。
  • Y コンビネータって何? - IT戦記

    このエントリの 親友へ。ブログを書こう。 - IT戦記 y がブログを始めたみたいなので、読んでみた。 で、最新のエントリを読んでみたら、 Y コンビネータというものについて書いてあったので、 Y Combinatorが凄すぎる! - yuji1982の日記 Y コンビネータって何ってところから、自分でもいろいろ考えてみた。 結局なんなのかさっぱり分からなかったんですが、自分が考えたことをまとめておく まず、フィボナッチ数を求める fib を定義する var fib = function(n){ return (n <= 2) ? 1 : (arguments.callee(n-1) + arguments.callee(n-2)); }; fib(10); おお! JS すげー!名前は n しか使ってねーよ! めでたし、めでたし。。。。じゃなくて! JS が素晴らし過ぎて話が終わってしま

    Y コンビネータって何? - IT戦記
  • ブラウザでお絵描きプログラミング! Processing.js 登場! - IT戦記

    はじめに 今日、 jQuery の作者として有名な John Resig さんが Processing.js という JavaScript のライブラリを公開しました。 John Resig - Processing.js このライブラリを使うと、比較的簡単に以下のようなグラフィックスやアニメーションを書くことができるようになります。 というわけで、公開されたばかりのこのライブラリを簡単な使い方から詳しい使い方までとことん掘り下げてみたいと思います。 Processing.js 概要 まず、 Processing.js とは何かという話をします。 Processing.js とは、ブラウザで Processing というプログラミング言語を実行する JavaScript のライブラリです。 では、 Processing とはどのようなプログラミング言語なのでしょうか。 Processing

    ブラウザでお絵描きプログラミング! Processing.js 登場! - IT戦記
  • 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戦記

    以下のエントリを見てすごくすごく悲しい気持ちになったので、感情でエントリを書きます。 モバイルサイトで年収4000万稼ぐ18歳のお話なんですが*ホームページを作る人のネタ帳 さて、4000万稼ぐ方法に対して『そんな紹介はゴミを増やすだけ』は正しいのか*ホームページを作る人のネタ帳 僕はその行為やビジネスが法律的に判例的に既成事実的に正しいかという話をするつもりもありません。ただ、やめて欲しいという気持ちを込めてエントリーを書きます。 それは、学生時代に父が僕に「授業をさぼるな」と言っていたようなもので、従う義務もないし、その言葉どおり行動しなければならないというものでもありません。 まず、「広告は選ぶべき」なんですよね? この言葉が正しいかどうかはビジネス音痴な僕にはわかりません。ただ、この言葉はあなたが Yamada さんが以前ブログに書いた言葉です。 やはり広告を選ぶべき 健全に努力し

    ホームページを作る人の品格 - IT戦記
    escape_artist
    escape_artist 2008/01/10
    発言力と発言内容の齟齬。
  • JavaScript-XPath をリリースしました!さあ、あなたも XPath を使おう!(解説付き) - IT戦記

    JavaScript-XPath とは JavaScript-XPath は、 DOM 3 XPath を実装していないブラウザに対して、実用的な速度で動作する DOM 3 XPath のエンジンを追加します。 一言で乱暴に言ってしまえば、どのブラウザでも document.evaluate って関数で XPath 使えるようになるよ!ってことです。 以下が公式サイトになります。 http://coderepos.org/share/wiki/JavaScript-XPath DOM 3 XPath ってなんなの!? めっちゃ簡単(で、ちょっとだけ適当)なDOM 3 XPath の説明をします><。 JavaScript でよく使う document.getElementById や document.getElementsByTagName って関数ありますよね? DOM 3 XPath

    JavaScript-XPath をリリースしました!さあ、あなたも XPath を使おう!(解説付き) - IT戦記
    escape_artist
    escape_artist 2007/11/14
    XSLTのために勉強しなおし