タグ

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

  • neu.Node リリースのお知らせ

    去年の暮れから準備を進めて来た neu.Node だが、ようやく今日、オープンソース・プロジェクトとして github に公開することができたので報告する。 https://github.com/snakajima/neunode 詳しくは README.md ファイルに書いたが、neu.Node は iOS 上で Node.js の API を使って作った マイクロ・サーバーを走らせる仕組みである。iTunes ストアで配布する iOS アプリに組み込んでも良いし、自分や仲間だけで楽しむ「手作りアプリ」に組み込んでいただいても良い。ライセンスは MIT で、ライセンス料フリーで、非営利・商用、無料・有料の区別なく使える。 neu.Node が目指すのは、新しい形の分散コンピューティングである。「モバイル・デバイスはクライアント、サーバーはウェブ・サービス」という垣根をとっぱらい、全てのモ

  • スティーブ・ジョブズに学ぶプレゼンの秘訣

    ベスト・セラー「スティーブ・ジョブズ 驚異のプレゼン」の著者で、Business Week のコラムニストでもある Carmine Gallo が書いた "10 ways to sell your ideas the Steve Jobs Way!" という資料を手に入れたので、簡単に内容を紹介する。 1. 最初は手書きで考えをまとめろ いきなりパワポの資料を作らず、まずは紙やホワイトボードなどで(訳注:neu.Notes+ でももちろんかまわない^^)、プレゼンの大まかな「流れ=ストーリー」を作るべき。つまらないプレゼンでは、観客はすぐに飽きてしまう。語るべき「ストーリー」がないうちにパワポの資料を作っても意味がない。 2. Twitter 向きの短いフレーズを使え Twitter の「口コミ効果」に関しては、いまさら強調するまでもないが、それを最大限に活用するには、140字以内に収まる

  • そしてスティーブ・ジョブズは伝説の人となった

    CNetにGuy Kawasakiの "What I learned from Steve Jobs" という文章が出ているので一読をおすすめする。12項目のメッセージを簡単に解説するとこうなる。 評論家と呼ばれる人たちは実は何も分かっていない。彼らに耳を傾ける必要はあるが、振り回されてはいけない 顧客に何が欲しいかをたずねても答えは見つからない 不連続な変化を起こせ 難しいことにチャレンジするからこそすばらしい仕事ができる デザインへの徹底的なこだわりが違いを生み出す プレゼンの時には大きなフォントと大きな画像を使え 間違いに気がついたら恥じらいもなく方向転換をしろ 「価値」は「価格」とは違う 優秀な人材は自分より優秀な人材を雇いたがる。だめな人材はもっとだめな人材を雇いたがる 当のCEOは、自分自身で商品のデモをする 会社に必要なのは「研究者」ではなく「エンジニア」だ 「個性的」でか

  • エンジニアの役割

    技術評論社の WEB+DB PRESS に連載中のコラムが新しくウェブで公開されたので、ぜひとも読んでいただきたい。 エンジニアの魔法の手〜面白いプロジェクトの関るには このコラムで一番注目していただきたい部分は、以下の一節。 自分が関わっているプロジェクトの方向性がおかしいと思ったら,自分がどんな立場にいようと強く主張すべきだ。会社はそんなエンジニアを必要としているし,当に会社のためになるのであれば必ず耳を傾けてもらえるはずだ。「そうは言っても,難しいんだよ」などと逃げを決める上司は怒鳴りつけてやればよい。 会社にとって最悪なのは,「こんなものを作っても誰も使わないんじゃないか,会社の価値を上げることにつながらないんじゃないか」と思いながらも黙々と仕事をするエンジニアだ。そんなエンジニアばかり集まっている会社は絶対に市場で成功しない。プロジェクトに関わるエンジニア全員が,「自分たちがど

  • JavaScript HTMLテンプレートエンジン SNBinder 公開

    先日予告したSNBinderのオープンソース化、GitHubに簡単なREADME付きでアップロードしたのでご覧いただきたい。 https://github.com/snakajima/SNBinder SNBinderは、ひと言で言えば「ブラウザー上でView(テンプレート)とData(JSON)を結合して HTML を生成するテンプレートエンジン」である。 90年の半ばから急速に広まったインターネット。サーバー側でダイナミックに生成したHTMLページをブラウザーで閲覧するだけ、というシンプルでエレガントなアーキテクチャゆえの成功だ。しかし、ブラウザーの高機能化に伴い、JavaScriptを駆使して使いやすさを向上しようという試みが色々なウェブサイトで行われている。GMail、Google Docs、Facebookなどは良い例だ。 その方向性を究極にまで突き詰めると、サーバー側は(MVC

  • UIEngine、自動車に載る(Toyota Entune)

    今回のCESではいくつもの発表があったが、その中でも私として一番うれしかったのが、Toyotaが発表したEntune。米国のトヨタ純正カーナビには、bing(検索)、Pandra(インターネットラジオ)、MovieTickets.com(映画情報)、OpenTable(レストラン予約)などの「アプリ」が走るのだが、そのアプリとアプリのローンチ画面のUIを担当するのがUIEngineなのである。 UIEvolutionは、私が2000年に「これからはいろいろなデバイスがネットに繋がり、その結果、さまざまなプラットフォームが乱立する戦国時代に突入する。その問題を一気に解決するのがUIEngine。携帯電話から、テレビ・自動車・冷蔵庫までいろんなデバイスにUIEngineを載せて組み込み機器のUIの開発を大幅に簡単にする」というビジョンを掲げて起業した会社だが、10年たってようやく自動車に到達。

    UIEngine、自動車に載る(Toyota Entune)
  • google appengine に関してひと言

    ここ数日、Twitter上で appengine に関する発言をたくさん目にする。それを見る限り、「注目をされてはいるが、手を出しかねている人が多い」というのが現状だろう。そこで、私からもひと言。 App Engine は純粋なソフトウェア・エンジニアにとっての天国 私自身、色々な開発環境を試して来たが、私のようにプログラミングが大好きで、新しい言語や環境を学ぶのが楽しくて仕方が無いエンジニアにとっては、「App Engineは天国」というのが正直な感想。SQLRailsのように一見開発効率を良くしてはくれるが、直感的に実行効率とかが把握できない「補助輪付きプログラミング」と違い、App Engine上でのプログラミングは、ちょっと手を抜くとすぐに実行効率の悪さとして跳ね返ってくる「一輪車プログラミング」。 新しい言語を学ぶのが苦ならApp Engineは避けた方が良い 現時点で、Pyt

  • スタートダッシュ型仕事術:実践編

    昨日書いた「『時間に余裕があるときにこそ全力疾走で仕事し,締め切りが近づいたら流す』という働き方」というエントリー、Twitterやハテブでたくさんのフィードバックをいただいたが、その中で気になったものの一つが、「そうは言っても仕様がころころ変更になるからスタートダッシュで仕事をしていたら時間が無駄になる」というもの。 まず最初に言っておくと、「仕様がころころ変更になる」のはソフトウェアの宿命。どんなに頭の良い人が設計しても、「作ってみなければ分からない」「使ってみなければ分からない」ことはどうしてもあるので、「アーキテクチャの大幅な変更」「ユーザーインターフェイスの大幅な変更」があるのはあたりまえ。 ぜひとも認識して欲しいのは、「だからこそスタートダッシュで肝となる部分を一気に作って、早めに(仕様変更が必用かどうかの)見極めをする必用がある」という点。特に「作って見なければ分からない」部

    スタートダッシュ型仕事術:実践編
  • Life is beautiful: 私のとっておきのプログラミングスタイル

    404 Blog Not Found の「LiveCoding に学ぶプログラミングの三原則」を読んでいたらどうしても書きたくなったので。あくまで私のスタイルなので、参考にするもしないもご自由に。 1. スタードダッシュでできるだけはやくめどをつける 学生時代から夏休みの宿題は7月中に終わらせていた私とすれば、ラストスパートよりはスタートダッシュで勝負する。どのみち、どこかで思いっきり頑張らなければならないのであれば、締め切り間際ではなく、スタート間際に頑張るべきというのが私のポリシー。十週間のプロジェクトであれば、最初の二週間が勝負。そこで八割がたのめどをつけておき、後は流す。最初の二週間がめどが立てられなければ、十週間で完成できる可能性は低いと考える。常にそういう姿勢でいれば、締め切りぎりぎりになって致命的な欠陥が見つかって痛いめにあったり、当は大幅な設計変更をすべきなのに応急処置で

  • iPadアプリ作成日記:書き心地重視のneu.Notesリリース!

    先日予告した「書き心地重視の『手書きメモ』アプリ」、ようやくiTunesストアに並んだのでここで発表させていただく。名前は neu.Notes("neu"はドイツ語で「新しい」という意味)。読み方は「ノイ・ノーツ」。日頃のちょっとしたメモや、ミーティングや授業のノートを取る時に便利な様に、使い勝手と書き心地を最重視して作ったアプリ。無料なので、iPadをお持ちの方は、ぜひともお試しいただきたい(iTunesストア上のneu.Notesへのリンク)。 これを作るきっかけを与えてくれたのは、Adobe Idea。最初に見た時には「やられた」と思った。簡単なメモを取るには十分な機能があるし、何よりもベクター・データのままIllustratorに渡せるという部分がすばらしい。描いた線をなめらかにしてくれる機能もなかなかしゃれている。これで私にとっての「メモアプリ」の座は決まりだと思った。 しかし、

  • iPad上でHTML5 Widgetを走らせて遊ぼう

    昨日の「HTML5: W3C Widget とその応用を考える会」は参加者も多く、私自身とても良い勉強になったが、そこでも予告した通り、iPad発売を記念してWidgetのサンプルをいくつか用意したので、ぜひともお試しいただきたい。 手順は以下の通り。 ステップ1. iPadにCloudReadersをインストールする(iTunes ストアへのリンク) ステップ2. 以下のWidgetをダウンロードする Download 3dClock.wgt (2.5K) ー CSS3を使った3D時計 Download TimeTrial25.wgt (7.8K) ー タイムトライアルゲーム Download JSCalc.wgt (3.4K) ー 電卓 Download QuadraBench.wgt (2.5K) ー Canvas のベンチマークプログラム ステップ3. iPadPC/Macに繋げ

  • iPadに最適化したPDFファイルの作り方

    iPad向けにPDF/マンガリーダーCloudReadersを発表してから、いままで直に付き合いがなかった出版業界の人たちからちょくちょくコンタクトをいただくようになった。その中で良くある質問の一つが、「iPad向けに最適化したPDFファイルの作り方」。そこで今日は、そのあたりのノウハウをまとめて書いてみる。 まもなく日でも発売されようとしているiPadは色々な意味で画期的なデバイスだが、あくまで位置づけはモバイル・コンピューターであり、パソコンではない。画面も大きく、CPUも高速になったとは言え、搭載するメモリ(RAM)の量はiPhone 3GSと同じだ。 そのため、メモリがふんだんにあるパソコン用に作ったPDFファイルを読もうとすると、メモリ不足でアプリが落ちたり、極端に遅くなったりしてしまう。アプリを作る側もいろいろと対応はしてはいるが(参照)、やはり快適にiPad上でPDFファル

  • iPadのインパクト、私の予想8

    iPadの米国でのローンチまで10日となったわけだが、色々と思うことがあるので書いてみる。 予測1:4月3日のローンチは成功する これは99.9%確実である。この手のデバイスのローンチには、(1)開発者に魅力的なプラットフォームを提供してアプリを作らせ、(2)ブロガーの興味をそそって発売前からせっせとブログエントリーを書かせ、(3)アーリーアダプターの心をくすぐって注文予約させれば良いのだが、まさにその戦略に100%ハマっている私がここにいる(笑)。 先日のエントリーで書いた様に、開発者としては、iPad用のクラウド棚付きeBookリーダー「Cloud Readers」をすでにAppleに審査のために提出済みである。ブロガーとしてはこのエントリーも含めてiPadに関しては何度も書いて来ているし、当然アーリーアダプターとしてiPadはオンラインで注文してある。Appleから表彰状をもらいた

    hatanaoki
    hatanaoki 2010/03/26
    "タブレットという新しい形のデバイスを使って、普通の人がウェブブラウジングをする・本を読む・絵を描く・音楽を演奏する・ゲームをする時代がまさに来ようとしている"/気持ちよく絵が描けるようになれば欲しいな
  • Google App Engine入門:実践編

    今週に入って、Tiny Message に続く二つ目の Google App Engine ベースのサービスをリリースした。3日ぐらいで試験的に作った Tiny Message とは異なり、今回のものは、丸二ヶ月間寝る間も惜しんで作った力作である。 米国向けのサービスな上に招待制のSNSなので、ここではサービスそのものは公開しないが、いくつかこだわって作った部分があるので、それについて語ってみようかと思う。 1. 対象となるユーザーの絞り込み FacebookやTwitterのような巨人が存在している中で、それにまっこうから対抗するようなソシアル・ネットワーク・サービスを作ったところで無謀なだけである。そこで、逆に対象にするユーザー層を究極にまで絞り込んで、彼らのライススタイルに徹底的にマッチしたサービスを作ることにより差別化をはかる、という戦略を選択。対象は「LAに住む20〜30代の社交

    Google App Engine入門:実践編
  • Google App Engine上のベスト・プラクティス、その1: Datastore

    Google App Engine上でアプリを作りはじめて約二ヶ月。いろいろと分かって来たこともあるので、自分へのメモも含めてまとめてみる。まずは、Datastoreの話から。 なによりも大切なのはデータベースの設計 あたりまえと言えばあたりまえの話だが、App Engine上でアプリを作る上でもっとも大切なこと(=頭を使うべきところ)は、データベースの設計である。特にリレーショナル・データベース(RDB)上でのアプリ作りに慣れた人には、大きな「発想の転換」が必要なので、ここは注意が必要。 特に絶対にやっては行けないのは、 将来RDB上へ移行できるようにレイヤーを作って、その上にアプリを作る RDB上に作ったアプリをデータモデルを大幅に変更せずにApp Engine上に移植する RDBを前提に設計されたフレームワークをApp Engine上に載せて、その上にアプリを作る など。App En

  • 無名関数を使った非同期通信のススメ(JavaScript)

    ここ最近はブラウザーの上で動く思いっきりRIAなアプリケーションを書いている私。こと通信の部分になると JavaScript での開発効率が、C++/Java/Objective Cなどと比べて格段に高いことをつくづく感じている毎日なので、今日は、そのあたりを少し解説してみようかと思う。 サーバーのAPIにアクセスするプログラムを書く方法は色々とあるが、「サーバー上の特定のURLにHTTPでアクセスして結果をXMLやHTMLやJSONで受け取る」というケースに限定すれば、基的に3つのパターンに分けられる。 1. 同期通信 result = urlfetch.fetch("http://www.google.com/") if result.status_code == 200: doSomethingWithResult(result.content) その書きやすさのために、実務経験の

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

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

    「RESTful MVC」なアーキテクチャの話
  • Ruby on Railsの「えせMVC」の弊害

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

  • 書評:Fortune Favors the BOLD(知識資本主義)

    少し前のエントリーでも引用したが、Lester Thurowの「Fortun Favors The BOLD (邦訳:知識資主義←ちなみに、この邦題はすごくセンスが悪い)」は非常に面白い。世界中のさまさまな経済の動きが分かりやすく解説してあるだが、特に目を引くのは日の「失われた10年」に関する部分。 驚くべきなのは、日がバブルの崩壊で経験したメルトダウンそのものではない。どの国であれバブルの後には遅かれ早かれメルトダウンを経験するものだ。特筆すべきは、日にバブル崩壊が残したさまざまな問題をさっさときれいにする能力が欠如している点にある ... バブル崩壊の結果、日不動産ローンを抱えている人の40%は借金の残高の方がその担保である持ち家の価格より高いという債務超過の状態に陥っている。...米国であれば、そんな人はさっさと持ち家の鍵を銀行に渡して新しい人生をやり直すことができるが

  • プラットフォームを選ぶということ

    この業界で仕事をしていると、しばしば迫られるのが「どのプラットフォームに向けて商品開発をして行くのか」という決断。会社としての経営判断の場合もあれば、個人のスキルアップやキャリアパスのための判断の場合もあるが、いずれにしろ限られたリソース・時間をいかに有効に使うか、という点ではとても大切。 パソコン用のソフトウェアであれば、「Windows向けに作るのかMac向けに作るのか」というOSレベルでの選択肢もあるし、「Windows Vista独自の機能を使って差別化を図るのか、それともWindows XPでもちゃんと動くように作ってまずは大きな市場をとりに行くのか」というOSのバージョンレベルでの選択肢もある。もちろん「そもそも特定のOS向けのアプリを作るべきか、それとも、すべてウェブ・アプリケーションとして作るか」というアーキテクチャ・レベルでの選択肢もある。 「少なくともここ数ヶ月はiPh