![Amazon.co.jp: Domain-Specific Languages (Addison-Wesley Signature Series (Fowler)): Fowler, Martin: 本](https://cdn-ak-scissors.b.st-hatena.com/image/square/cdd2b6ae845b720b64b964e824f942026a6a7bef/height=288;version=1;width=512/https%3A%2F%2Fm.media-amazon.com%2Fimages%2FI%2F51zR8RakfoL._SL500_.jpg)
DIコンテナやらOSGiやら使う程でもないけど、最低限の拡張性はとりあえず担保しておきたいので使う感じなのだけど、コアAPIに含まれているjava.util.ServiceLoaderは本当に使い辛い。 というか、そのままでは使えないのでユーティリティ的でいつも似てるけどちょっと違うコードをそこら中に書き散らす訳で。 まずは、javadocをちゃんと読んでクダサシ。 java.util.ServiceLoader<S> 作成するリソースは、最低4つ。ファイルの配置はこんな感じ。 実装を切り替える為のインターフェース package conf; /** * @author taichi */ public interface Service { String getName(); void execute(String parameter); } 定義したインターフェースのデフォルト実装 p
「#MA6 Mashup Camp - Chrome Extensions / Web Apps Day」というイベントに参加してきました。 http://atnd.org/events/8390 Google chrome extension(わかりやすく言うと、web browserのプラグイン)作成を覚えてきたので、紹介しときます。 まとめ&その他 必要な環境はchromeのみ。( + html, javascriptなどを編集するエディタ ) 必要な知識はほぼjavascriptのみ。あとはextensionの構造やextension関係のAPIを理解すればだいたいOK. たったこれだけでブラウザ拡張できるってすごくない? そしてさらに デバッガなどのデベロッパーツールが充実している。 http://gihyo.jp/dev/feature/01/devtools とりあえずchr
某所のチャットで話題になって、流れ去りそうだったのでもったいないから転載しておいた。事後承諾で。 MIYAMOTO Daisuke: 型の継承と実装の継承を区別する方法がないんだよな。 西尾泰和(nishio.hirokazu): 型を継承させずに実装を継承させたい→それ移譲で ってことかな? MIYAMOTO Daisuke: そそ。そもそも、クラスに「型としての役割」と「実装としての役割」という複数の責務があることに、俺は長い間気づかなかった。これに気づかないと、型継承と実装継承が頭の中で整理できない。 西尾泰和(nishio.hirokazu): 僕が最近気づいたことも加えると、クラスには「ユーザ定義型」「インスタンスを作成する道具」「実装の再利用の単位」という3つの役割がある。 MIYAMOTO Daisuke: あぁ、インスタンスの生成器ね。 西尾泰和(nishio.hiroka
ややヒマネタに類する話であるが、例によってゲージが溜まってウェブ無双が勃発していた境さん周辺でクラウド定義話にてボヤが。 2010-10-11(Monday) お役所とコンサルと技術者の三角関係に関する補足 http://d.hatena.ne.jp/masays/20101011 しかも、お相手しているのがこれまた例によって楠さんだというところが縁側将棋というか千日手な感じがする感じですが、そこに何故かガートナーの本好さんがややキレ気味に参戦。リング上にはfinalvent氏まで登場するというバトルロイヤルな展開になっており、好感が持てます。 しかも、話の結実点としてはクラウドの定義など実際にはどうでもいいというあたりもまた秋の気配が色濃く漂っており面白いわけです。 http://twitter.com/masanork/status/27083881347 [引用]え!法文に入れる必要
October 10, 2010 - PHP 先日のPHPMatsuriのハッカソンにて作成したXHProfの結果がみれるCustomPanelですが、そのまま公開するにはお恥ずかしい感じだったので、多少マシに改修したものを公開してみます。 DebugKit, XHProfPanelとは CakePHPのDebugKitというプラグインがあり、それを使えばいろんなデバッグ情報がWeb画面上で確認できます。で、これにXHProfというphp拡張を使ってプロファイラ情報を見れるようにしてみました。 こんな感じです。 で、パネルを開くとこんな感じに各関数呼び出しごとの負荷情報などを閲覧できます。 さらに、"xhprof Result"というリンクをクリックすれば、XHProfが用意してくれているビューアを開くこともできます。ビューアではコールグラフも閲覧できます。 カスタムパネルの追加方法 he
この春、ドワンゴに技術者として28人の新卒社員が入社しました。 ドワンゴでは、実務に入る前に仕事の流れを覚えてもらうための技術者向け研修を行っており、彼らにも研修を受けてもらいました。 本日はその研修について紹介します。 研修の内容は"ニコニコ動画の公開マイリストをカテゴリ分けし、ブラウジング可能とするシステムの開発"としました。 言い換えると、"感覚的にニコニコ動画の公開マイリストを探せるシステムを作る"というものです。 この内容を、1チーム4人、7チームに分かれて行ないました。 期間は4月30日~6月4日までの、およそ1ヶ月。 新卒社員たちはその期間内で、設計から、開発、ドキュメント作成までを行いました。 開発期間終了日の翌日(6月3日)に、各チームが本部長、及び部長の前で出来上がったシステムのプレゼンテーションをしました。そこで優秀だと評価されたチームが研修最終日に表彰されま
なんか今日のツイッターのTLをチラ見してたらFacebookがやたらHOTになってたので一言。 Facebookは日本じゃ流行らないんじゃね? なんでかって? ミクシィ()笑があるから。 GREE()があるから。 モバゲー(ry なんでかって? 一部のネットジャンキーや情報強者様達は新しく生まれてくるウェブサービスやトレンドに敏感で、 それらに飛びついては居心地が良いところを探し、一定以上定着すると次を探し求めて行く。 一方で情報弱者な日本の一般ユーザは、マスメディアで取り上げられて、話題の的にされたものじゃないとまず使わない。 ツイッターも最近になりようやくマスメディアに取り上げられることも増えたけど、それでも日本でのアクティブユーザが 爆発的に増えたかというとそうでもない。そしてコア利用者層と違い、それらの人々はクライアントを使わない(クライアントの存在を知らない) ツイッターはクライ
Ajaxを使うためにはページ内リンク (hash fragment=URLの#以降) を使うのが一般的*1 hash fragmentはサーバに送信されないから、JavaScript非対応のブラウザだと動作しない 特にサーチエンジンのクローラ等で問題になる*2 そこで Google は、#! が含まれる URL を hash を含まないものに読み替える仕組みを提唱している。例えば「www.example.com/ajax.html#!key=value」のサーチエンジン用URLは「www.example.com/ajax.html?_escaped_fragment_=key=value」になる。 TwitterやFacebookはこの仕様に従うことで、Ajax な UI と SEO を同時に実現している、というわけ。ということを調べたなう。 参照: Getting Started |
なんだか突発的に盛り上がってる facebook ですが、アプリが気になっていじってみました。mixi アプリは PC 版がクローズドオープンだった頃にお遊びでいくつか公開していたのだけど、それより格段に手軽かつ自由度が高いなぁ、という印象です。 で、日本語で解説しているページがほとんどなさそう&あってもなんだか古そうなので丁寧めに以下書いてみるよ。言語は PHP ですぞー。 facebook アプリを登録 マイアプリケーション一覧:http://www.facebook.com/developers/apps.php に移動し、右上にある「新規アプリケーション登録」をクリック 名前を適当に決めて登録(あとで変更可能) 登録できたら、そのアプリの「設定を編集」をクリックすると、以下のような画面になるはず。ここの「Facebook Integration」タブをクリック アプリの URL と
Webアプリケーション開発三種の神器 Webアプリケーション開発には、プログラムを書くためのエディタはもちろんのこと、小さなコマンドラインツールからデバッガ、大きなテスト用ツールまでさまざまなものを利用します。それらすべてを紹介するのは難しいので、ここではわたしが個人的に「三種の神器」と思っている次の3つのソフトウェアを紹介します。 GNU Emacs(テキストエディタ) GNU screen(端末マルチプレクサ) Zsh(シェル) エディタはGNU Emacsで決まり プログラムを書くに当たって最も利用頻度が高いものといえば、間違いなくエディタだと思います。わたしは以前からEmacsを愛用しています(図3)。 Emacsの何が良いかは挙げればきりがないのですが、一言でいうと「プログラマーがプログラムを書くために作られたエディタ」であるところでしょう。 例えばプログラムを書く際には、カーソ
JavaScriptで作られていたブラウザで動作するゲームをiOSで動く様に変換するエンジン「Impact for iOS」を作成された方が登場しました。しかも、アクションゲームにも関わらずiPhone 3GSで60フレームで動作しているそうです。 Biolab Disaster on the iPhone 3GS from Dominic Szablewski on Vimeo. Impact for iOS - PhobosLab http://www.phoboslab.org/log/2010/10/impact-for-ios 制作者はこちらのエントリーで紹介した「Biolab Disaster」の作者、Dominic Szablewskiさん。 Chrome上のJavaScriptで動作する各種デモ - 強火で進め http://d.hatena.ne.jp/nakamura0
coryroloff's environment-badge at master - GitHub WEBアプリの開発環境であることを分かりやすくバッジ表示できるjQueryプラグイン。 プラグインを読み込んで初期化すると次のように右上に固定でバッジを表示することができ、今自分が開発環境で作業していることをより分かりやすくすることが出来ます。 クリックするとサーバの情報等を追加で表示させることも可能です。 スクリプト側で、開発環境の場合はこのjQueryプラグインを呼び出すように設定しておくと、開発している状況・環境にもよりますが、謝って本番環境で作業してしまうというのを防ぐことも出来るケースがありそう。 開発・本番の分けというのを示すためだけではなく、利用者に対する通知としてのインタフェース実装に使ってもよい気がしますね。 関連エントリ Twitterのようにスマートな通知バーを一瞬で実
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く