タグ

ブックマーク / satoshi.blogs.com (161)

  • 「RESTful MVC」なアーキテクチャの話

    最近、増井君と私でアーキテクチャの話をすることが多いのだが、そんなディスカッションの中で気に入っているのは左の図のようなアーキテクチャ。 もちろん、核となるのはビジネスロジックを含んだModelの部分。そこをしっかりと実装し、内部構造を隠す粒度の荒いインターフェイスを定義し、外から何をされてもデータの整合性が壊れない様にすることは何よりも大切。 そして、そのModel層へのインターフェイスを特定の言語に依存したクラスやAPIではなく、HTTP上でJSON(XMLでもかまわない)をやりとりするだけの RESTfulなWeb Serviceにすることがミソ。こうすることによりにより、どんなに締め切りに負われようが、誰がControllerを実装しようが「ずるができない」ように作っておく(ずる=来使うべき外部インターフェイスだけでなく、Model内部に直接アクセスして依存関係を作ってしまう事)

    「RESTful MVC」なアーキテクチャの話
    yuiseki
    yuiseki 2009/10/18
  • 組み込み機器向けandroidに関してのつぶやき

    もともとは携帯電話向けに提供されていたGoogleandroidが、それ以外の組み込み機器向けのOSとして注目されている。私なりの見解もそれなりにあるのだが、勘違いしている部分もあるかも知れないので、確認のためにも私の見方をぽろぽろとTwitterでつぶやいてみたので、ぜひともフィードバックをいただきたい(Twitter、このブログのコメント欄やトラックバック、はてぶ、のいずれでも結構)。以下がつぶやきの内容。 androidが携帯だけでなく組み込み機器一般で注目されている背景には、「要求される機能が肥大化し開発費が膨大になり、機種ごとにOSから組み上げるのがコスト的に見合わなって来た」というのがある(リンク)。 それに加えて、GUIやマルチタスクなどの要求に対し、従来の組み込みOS(μiTron・VxWorksなど)が答えられなかったという状況もある(リンク)。 その答えの一つとして浮

    yuiseki
    yuiseki 2009/10/16
  • Ruby on Railsの「えせMVC」の弊害

    先日のエントリーでも少し触れたが、Ruby on Railsの最大の問題点は、それが持つ「一見そのフレームワークがMVCの形をとりながら、MVCの最も大切なところを外している『えせMVC』である」点にある。MVC(Model View Controller)がなぜ必要かを根底の部分でちゃんとと意識せずにRailsアプリケーションを作ると、後々ひどい目に会うので注意が必要である。 その意味では「RailsでMVCを学ぶ」などもっての他だし、「JavaにもRailsと同じようなフレームワークを作って業務用アプリの開発を効率化しよう」などという発想もとても危険である。 ということで、今日はまずはMVCの解説から。 MVCの発想の根底には、「モジュール化と情報の隠蔽により、プログラムがスパゲッティ化するの(コード間の相互依存関係が複雑に入り込んでしまってにっちもさっちも行かない状態になること)を避

    yuiseki
    yuiseki 2009/10/13
  • DellのAndroidケータイが意味するもの

    CNet/WSJにも書かれていたが(参照)、DellAndroidを使ったスマートフォンのリリースに向けて着々と準備を進めているらしい。 Microsoft/Intel連合がOSとチップセットという組み合わせでパソコンビジネス(ハード)への参入障壁を極端に低くし、大量の新規参入組と自然淘汰により一気にパソコンの低価格化・コモディテぃ化が進んだことは記憶に新しいと思うが、それと同じような波がようやく携帯電話の世界に押し寄せて来ている。 ここに来てはっきりと見えて来たことがいくつかある。 Androidにより参入障壁が大幅にさがり、中国台湾韓国などからメーカーが大量に参入してくる そういったメーカーに製造をまかせ、自分はデザインとブランドだけで勝負する企業も参戦する(Dellはだぶんここに位置することになる) スマートフォンとそれ以外の境があいまいになり、フルブラウザーを搭載するのがあた

    yuiseki
    yuiseki 2009/10/08
  • Life is beautiful

    「6年勤めたNTT退職しました」という記事が、注目を浴びているようですが、この筆者が NTT を辞めた理由が、私が32年前(1986年)に NTT を辞めた理由とあまり変わらないのに、少々驚きました。 私が NTT を辞めた件に関しては、これまで色々なところで話しては来たのですが、まとまって文章にしたことがなかったので、これを機会に書くことにしました。普段ならメルマガ(週刊 Life is beautiful)の読者限定で書くところですが、今回だけは、出来るだけ多くの人に読んで欲しいので、ブログ記事として公開します。 当時、NTTは電電公社から民営化したばかりで、1985年に入社した私は、NTTとしては第1期生でした。大学は、早稲田の理工学部電子通信学科で、修士課程まで行きました(当時は、情報学科はまだ独立しておらず、電子通信学科がソフトウェアとハードウェアの両方をカバーしていました)。

    Life is beautiful
    yuiseki
    yuiseki 2009/09/20
  • で、実際のところHTML5でどのくらいのアプリが実装できるのか実験してみた

    少し前のエントリーでも触れた事があるが、「このままHTML5が普及してくれればスマートフォン向けのアプリの大半はHTML+CSS+Javascriptだけで作れるんじゃないか」と感じ始めている私である。 もちろん、そうなるには「規格がきちんと統一される」「まともな実装をしたスマートフォンが十分に普及する」「iPhoneの一人勝ちにはならない」などの条件が満たされる必要があるため、必ずしもそうなるとは限らないが、少なくとも「そろそろキチンと勉強しておいて損はない」技術であることは確か。

    で、実際のところHTML5でどのくらいのアプリが実装できるのか実験してみた
    yuiseki
    yuiseki 2009/09/13
  • Life is beautiful

    「6年勤めたNTT退職しました」という記事が、注目を浴びているようですが、この筆者が NTT を辞めた理由が、私が32年前(1986年)に NTT を辞めた理由とあまり変わらないのに、少々驚きました。 私が NTT を辞めた件に関しては、これまで色々なところで話しては来たのですが、まとまって文章にしたことがなかったので、これを機会に書くことにしました。普段ならメルマガ(週刊 Life is beautiful)の読者限定で書くところですが、今回だけは、出来るだけ多くの人に読んで欲しいので、ブログ記事として公開します。 当時、NTTは電電公社から民営化したばかりで、1985年に入社した私は、NTTとしては第1期生でした。大学は、早稲田の理工学部電子通信学科で、修士課程まで行きました(当時は、情報学科はまだ独立しておらず、電子通信学科がソフトウェアとハードウェアの両方をカバーしていました)。

    Life is beautiful
    yuiseki
    yuiseki 2009/09/02
  • Life is beautiful

    「6年勤めたNTT退職しました」という記事が、注目を浴びているようですが、この筆者が NTT を辞めた理由が、私が32年前(1986年)に NTT を辞めた理由とあまり変わらないのに、少々驚きました。 私が NTT を辞めた件に関しては、これまで色々なところで話しては来たのですが、まとまって文章にしたことがなかったので、これを機会に書くことにしました。普段ならメルマガ(週刊 Life is beautiful)の読者限定で書くところですが、今回だけは、出来るだけ多くの人に読んで欲しいので、ブログ記事として公開します。 当時、NTTは電電公社から民営化したばかりで、1985年に入社した私は、NTTとしては第1期生でした。大学は、早稲田の理工学部電子通信学科で、修士課程まで行きました(当時は、情報学科はまだ独立しておらず、電子通信学科がソフトウェアとハードウェアの両方をカバーしていました)。

    Life is beautiful
    yuiseki
    yuiseki 2009/08/04
  • Life is beautiful

    yuiseki
    yuiseki 2009/04/25
  • Life is beautiful : ソウル(魂)のあるもの作り

    ソフトウェアエンジニアとしてのキャリアの大半をマイクロソフトで過ごした私であるが、一度だけ「アップルの文化」を肌で経験したことがある。アップル・ニュートンのチーフアーキテクトとして知られるスティーブ・キャップス(参照)としばらく一緒に働いた時のことだ。彼からは当に色々なことを学んだ。直感的なユーザーインターフェイスの大切さだとか、常に新しいものを作り出そうとする姿勢だとか、私の考え方に最も大きな影響を与えたトップ10人の一人である。 そのスティーブとたまたま「マイクロソフトとアップルのどこが違うか」という話題になった時に、彼が言った言葉が今でも心に残っている。 「マイクロソフトのプロダクツにはソウル(魂)が無い」 この言葉には当にまいってしまった。 私がマイクロソフトでOSの開発に関わっていた90年代の前半は、やはりアップルが最大のライバルで、いかにして相手よりも良いものを先に世の中に

    yuiseki
    yuiseki 2009/01/10
  • iPhoneに対抗するデバイスを作るには何をすれば良いか

    今日の朝に、IDCのNancy Gohringという人からiPhoneに関してのインタビューを受けたのだが、それがさっそく記事になっていたのでここで引用しておく。 "A lot of people are trying to steal the thunder from Apple," said Satoshi Nakajima, who spent more than a decade at Microsoft, started software platform developer UIEvolution and most recently started up iPhone application developer Big Canvas. "But unfortunately they are focusing on touch screen or bigger screens,

    yuiseki
    yuiseki 2008/12/04
  • Ruby on Rails: なぜActiveRecordが必要なのか?

    Railsの勉強がしばらくストップしてしまったので、今日はビデオを見てお勉強。Rails Envyの「ActiveRecord Tutorial」は長さも25分とちょうど良いし、「ActiveRecordとはなんぞや」を具体例を交えて簡潔に教えてくれるのでとても良い勉強になる。 英語だが、冒頭の部分を乗り越えればあとはプログラミングの話なので、日人にもそれほど難しくないはず。念のため、オープニングの部分のみ、超訳しておいた。 ActiveRecordのアイデアは、いったいどこから来たのか? まずは"Active Record"の意味から (ActiveRecordではない点に注意) "Active Record"とは、デザイン・パターンの一つ。 どうやってデータベースにアクセスするか? SQLにプログラムから直接アクセスする方法もあるが...ちょっと不便 データベースのテーブルをオブジェ

    yuiseki
    yuiseki 2008/10/27
  • セコイア・キャピタルのプレゼンに込められたメッセージ

    シリコンバレーのVCの中で頂点に位置すると言っても良いセコイア・キャピタルが、投資先のベンチャー企業のCEOを集めて緊急のプレゼンをしたそうだ(資料は「Sequoia Capital on startups and the economic downturn」にある)。今の金融危機が今後の景気や企業経営にどんな影響をもたらすだろうかの理解を深める意味でも、ベンチャー企業経営に関わっていない人も、目を通しておいて損はない資料だ。 この資料の中で、もっとも明確なメッセージが込められたのは49番目のスライド。 「このタフな環境で生き残りたかったら、これから会社に戻ってすぐに人を減らしてサバイバルに努めろ。それが出来ないベンチャー企業は生き残れないし、セコイアとしても支援できない」というのがセコイアからのメッセージ。 ここで言うところのDeath Spiralとは、資金繰りがうまく行かなくなってか

    yuiseki
    yuiseki 2008/10/23
  • 誰のための携帯電話か?

    このブログでも、日の携帯電話と比べてiPhoneがどう違うかという話をさんざんと書いて来たが、結局のところ一番質的な違いを生み出しているのは、「誰のために携帯電話を作っているか?」という点。 日の携帯電話メーカーが「NTTドコモに育ててもらった」ことに関しては誰も否定できないわけで、その意味では消費者よりもキャリアの意向を優先して作らなければならない。足並みがそろいやすい分「お財布ケータイ」みたいなことはやりやすいことは確かだが、iPhoneのような不連続的な進化はさせにくいのも事実。 これは、日以外の国でも言えて、 "The larger handset manufacturers had gotten really good at developing products that the wireless carriers want," said Jonathan Hurd,

    yuiseki
    yuiseki 2008/09/11
  • Life is beautiful: Google Chromeに関してひとこと

    今回Googleが発表したウェブ・ブラウザー、Google Chromeは、ひと言で言えば、「安定度・安全度を高めるために、それぞれのタブを別プロセスで走らせるタブ・ブラウザー」である。 95年にIE3.0を設計した時には、タブのコンセプトも存在せず、セキュリティの問題もそれほど強く意識していなかったので、ウィンドウごとに1スレッドを割り当てたマルチ・スレッドを選択した訳だが、ここまでウェブ・アプリケーションが重要になってくると、マルチ・プロセスに移行するのは当然。特定のページ上でのJavaScriptの挙動がおかしくなったからと言って、ブラウザーすべてが落ちてしまう今までの設計が異常。 一つのウィンドウ下で管理させるそれぞれのタブにプロセスを割り当てる、一般的に一つのウィンドウに一つのプロセスやスレッドを割り当てる通常のGUIアプリケーションとは異なるが、ユーザー・モデルとリソース管理は

    yuiseki
    yuiseki 2008/09/04
  • ネットに接続するとテレビは本当に今より面白くなるのか、という話

    ここのところPhotoShareのことばかり書いている私だが、久しぶりに「UIEの創業者・取締役」としてのお仕事。「次世代IPTVソリューションセミナー」というUIEジャパン主催のセミナーで、「ネット接続がテレビにもたらすUI変革」というタイトルで講演をするのだ。日時は9月19日、参加費は無料なので、ぜひとも「ネットに接続したテレビ」の話に興味のあるかたはご参加いただきたい。 ここのところ「ネットに接続した○○」というテーマでの講演やら話をする機会があるが、そもそもネットがもたらす価値は何か、という話を突き詰めて行くと、「情報」と「人」という話になる。iPhoneのケースで言えば、Google Mapアプリで得られるものは「ネットに存在する情報」だが、PhotoShareで得られるものは「ネットの向こう側にいる人たちとのコミュニケーション」である。 今回の講演では、テレビをネットを利用して

    yuiseki
    yuiseki 2008/08/30
  • ビル・ゲイツの家のトイレは流そうとすると「本当に流しますか?」と警告してくる

    今回のみずほ証券による株の誤注文事件は、1株を61万円で売るところを、オペレーターが誤って「61万株を1円で」と誤入力してしまったのが原因だが、その際に端末には市場価格との隔たりを示す警告が表示されたにもかかわらず、オペレーターが「(警告が)よく出るので慣れの中で結果的に無視してしまった」という点が注目に値する。 以前にも、「事故防止の難しさ」というエントリーで触れたことがあるが、「不必要な警告をしょっちゅう見ているとそれに慣れてしまい、当に対応が必要な時にも無視してしまう」というのは人間の性である。この手のミスをした人を一方的に非難したり、「これはヒューマン・エラーでした、今後はこのようなことを繰り返さないように注意します」と謝るのは簡単だが、それでは根的な事故防止はできない。 「不要な警告」と言えば、パソコンがその代表選手。ファイルを消去した時の「当に消去したいですか?」という警

    yuiseki
    yuiseki 2008/07/21
  • iPhoneとハイブリッド型ウェブ・アプリケーションの話

    デザイナーからもアイコンが届き、なんとかRC1(リリース・キャンディデート#1、つまり出荷版候補のNo.1)を達成。木曜日に追加したユーザーインターフェイスの改良が突然悪さをし始め、冷や汗ものだったが、なんとか原因を解明して解決。やはりあまり出荷寸前に機能追加をするもではないと少し反省。後は最終テストを経て出荷するばかりだ。 二年以上前に自分で書いた「ユーザー参加型コンテンツビジネスのまとめ」を久しぶりに読み直しりしながらリリースに備える。あとはユーザーにちゃんと価値を認めてもらうことを祈るばかりだが、これだけはリリースしてみないと分からない。私なりに出来る限りシンプルに分かりやすく作ったつもりだが、だからといってすべてのユーザーが理解してくれるとは限らない。来ならβ版をリリースしてユーザーからのフィードバックを受けながら作るべきなのだが、そうも行かなかったので、ある意味でこれがβ版。今

    yuiseki
    yuiseki 2008/07/06
  • Amazon ec2のエコノミー、月72ドルでレンタルするのと、999ドルのマシンを買うのはどちらが得か?

    最近、私のまわりにもAmazonのレンタル・バーチャル・サーバーであるec2を使用している人、もしくは使用を真剣に検討している人が増えて来た。「自分でサーバーを用意するのとどっちが得か?」という話は、ビジネスにもよるのでさまざまだが、ごくシンプルな「事務所サーバー」(もしくは「マンションサーバー」)を比較対象のモデルとして簡単に損得勘定を計算してみた。 もっとも安価な Small Instance (1.7 GB of memory, 1 EC2 Compute Unit, 160 GB of instance storage, $0.10/hour)だと、一日24時間使い続ければ月に720時間、つまり月に72ドル必要となる。 同じようなマシンを事務所(もしくはマンション)に置く場合、Dellのエントリーレベルのサーバー(Dual core Pentium, 1GB memory, 160

    yuiseki
    yuiseki 2008/07/04
  • iPhone SDK, ついに実機でのテストが可能に

    ようやくiPhone SDKのDeveloer Certificateも入手し、実機でのテストが可能になった。さっそく、エミュレータ上で作ってあった「はてな人気エントリー・リーダー」を走らせようとしたのだが、XMLパーサーとして使っていたXMLParserが(OS-Xには標準装備だが)iPhoneOSには存在しないことに気がつき、libxmlで代用することに。これに結構手間がかかったのだが、なんとか解決してビルドに成功。 WiFiに繋いだiPod touchにインストールすると、一発でちゃんと動く。非同期でブックマークの数を入手してくる仕組みもきちんと動いている。こうなったら、もう少し手を入れてからiTunes Storeで売ってみるのも悪くないかも知れない。これで会社は作れないだろうが、ブロガーの副収入としては十二分だろう(→はてなユーザーのみなさん:いくらぐらいなら買っても良いかのアン

    yuiseki
    yuiseki 2008/07/01