タグ

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

  • Life is beautiful: Ajaxの本質、「非同期メッセージ型ウェブ・アプリケーション」のススメ

    最近、「これからのウェブ・アプリケーションはAjaxだ」という声を良く聞く。ソフトウェアを生業としているエンジニアとしては、この手の「流行もの(hype)」に触れた時には、表面的なものに踊らされずに、その質を自分なりにしっかりと捕らえて消化・吸収して自分のものにしなければいけない。今までも、「オブジェクト指向」、「マルチ・ティアー・アーキテクチャー」、などの言葉が一人歩きするたびに、「これからは○○だ」とか「○○の時代は終わった」などと、過激なことを言って読者の目を引こうとだけするマスコミや企業のマーケティング戦略に数多くの人が踊らされてきた。 そんなノイズだらけのメッセージに混乱させられた結果、「Cではオブジェクト指向のプログラミングは出来ない」と信じているエンジニアがいまだに沢山いることは全く嘆かわしいことだ。「オブジェクト指向のプログラミング」は、設計姿勢・プログラミングスタイルに

  • iPadアプリ開発日誌:neu.Annotate 1.20

    iPadアプリの一つとして無料で配布している neu.Annotate PDF、「書き心地」をさらに改良した描画エンジンを含む version 1.20 をリリースしたのでここで報告していただく。 neuシリーズのアプリは描画エンジン "Canvas" を共有している。それぞれのアプリを進化させるために必要な機能を追加しつつ、どのアプリにも共通して活用できる機能だとか改良を逐次追加して行く、という開発方針を取っている。 こんな作り方をしている一番の理由は、相棒のPeteと私の仕事の分担を明確にすることにある。私がエンジンを担当し、Peteがそれを活用したアプリの担当となり、互いの仕事にいろいろと注文やケチを付け合いながら開発する、という作り方をしているのだ。インターフェイスさえ明確に定義しておけば並行して開発ができるので、「会議がきらい、自分の好きな時間にマイペースで仕事をしたい、でも自分

    iPadアプリ開発日誌:neu.Annotate 1.20
  • で、実際のところHTML5でどのくらいのアプリが実装できるのか実験してみた

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

    で、実際のところHTML5でどのくらいのアプリが実装できるのか実験してみた
  • Life is beautiful: 「時間に余裕があるときにこそ全力疾走で仕事し,締め切りが近づいたら流す」という働き方

    かれこれ30年以上もこの業界でプログラムを毎日のように書いて来た私。当然、自分なりの働き方のノウハウみたいなものも会得して来たつもりだ。以前ここに「私のとっておきのプログラミングスタイル」というエントリーを書いたので、まだ読んでいないプログラマーの方にはぜひとも読んでいただきたい。 ちなみに、そんな中でも後輩とか部下に教えるのが一番難しいのが、「スタートダッシュでできるだけはやくめどをつける」という仕事スタイル。どのエンジニアも、ちゃんと説明すればこの働き方の効用は理解してもらえるのだが、実際の現場でちゃんと実行できる人は100人に1人もいない。 「人はみな怠惰だから、締め切りに迫られなければがんばれないんだ」と言ってしまえばそれまでだが、「まがりなりにもプロとして仕事をする限りは、ペース配分ぐらいはちゃんと考えて仕事をすべき」というのが私の主張。トップクラスのマラソンランナーでペース配分

  • Ruby on Railsの「えせMVC」の弊害

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

  • スティーブ・ジョブズ、「Flashは重すぎて、Flash liteは使えない」と発言

    As my colleague Tom Krazit reported Tuesday afternoon, Jobs used the Apple shareholders' meeting to publicly dismiss the the full-blown PC Flash version as "too slow to be useful" on the iPhone. He then went on to describe the mobile version--Flash Lite--as "not capable of being used with the Web."【Adobe bites its tongue after iPhone Flash jab | Coopより引用】 この発言で、AppleiPhoneにFlashを載せない理由が明確になった。「大き

  • Life is beautiful: 私のとっておきのプログラミングスタイル

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

  • Life is beautiful: プレゼン初心者が覚えておくべき3つのポイント

    プレゼンの初心者にありがちな失敗は、 ・自分の未熟なプレゼンのテクニックを気にしすぎてあがってしまう ・情報は多い方が良いと勘違いして、スライドをたくさんの文字で埋め尽くしてしまう ・その結果、観客に話しかけるのではなく、観客に背中を見せてスライドを読んでしまう ・結局何が言いたいのか全く伝わって来ない など。今日はそんな人に覚えてほしい三つのポイント。 1. 観客は「未熟なプレゼン」には寛大だが、「何を伝えたいのか分からないプレゼン」には厳しい 「自分はプレゼンが不得意」と思い込んでいる(もしくは悩んでいる)人はたくさんいると思うが、そんな人がまず覚えておくべきことは、観客が「未熟なプレゼン」にはけっこう寛大であること。小中学生ならいざしらず、社会に出てから「プレゼンターの未熟さ」笑う人はまずいないので、心配しなくても良い。逆に、観客が許してくれないのは「何を伝えたいのかが分からないプレ

  • ユーザーに尋ねても必ずしも正しい答えは返ってこない

    今日はたまたま「ユーザーからのフィードバックを集めることの難しさ」が話題になったので、それに関連するエントリー。 もの作りにおいて、「ユーザーが何を必要としているか」を知ることは大切だが、だからと言ってユーザーに尋ねれば正しい答えが返ってくる訳ではないところが難しいところ。具体的な例としては、こんなものがある。 1. サイレント・マジョリティの声は聞こえてこない これはMicrosoftで実際にあったことだが、Outlookのチームではユーザーから寄せられる機能追加のリクエストに従って色々な機能を足していた時期があったが、その結果不必要な機能ばかり増えて、単純な作業が逆にやりにくくなってしまった(たとえばカスタム・フォームが良い例)。このケースでは、ごく一部のヘビー・ユーザーばかりが声がでかく、「今の機能で十分、これ以上複雑にしないで欲しい」というユーザーは何も言ってこない(こういう人たち

  • 心理トリック:Anchoring

    "The Hidden Traps in Decision Making" という Harvard Business Review の記事を読んでいて面白い問題を見つけた。 問題1:トルコの人口は3千5百万人より多いでしょうか少ないでしょうか? 問題2:トルコの人口は何人ぐらいだと思いますか? これ以上進む前に、上の二つの問題に対する自分なりの答えを考えておいて欲しい。 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ 興味深いのは、この二つの問題を、問題1の数字だけを変えて(例えば「1億人より多いでしょうか?」として)二つのグループに与えてみると、問題1で使った数字と問題2で返って来た答えの間に強い相関関係があることである。あたりまえといえばあたりまえの話だが、問題2を解くときに「問題1で3千5百万人より多いか少ないか、と尋ねているのだから、正しい答えはその前後に違いない」と思うのが人

  • ブロガーをレンガ職人にたとえてみる

    ブログを書き始めて4年近くたつが、私にとってのブログを書くことのの一番のメリットは、自分の頭の中が整理できることである。 私にとって、「ブログのエントリーを書く」という作業は、自分の頭の中に他の考えと混ざり合って混沌(こんとん)としている粘土状のアイデアや考えを、ブログエントリーという型に流し込んでから軽く焼きを入れてブロック状のレンガにして積み上げて行く作業のようなものである。 私自身にとってもっとも価値があるのは、この「型に流し込んでから焼きを入れる」という作業そのもの。これは単に「自分の頭の中にあるものを文章化する」という比較的簡単な作業の場合もあれば、「少し調査をして自分の主張がある程度正しいことを確認する」という手間のかかる作業である場合もあるが、いずれにせよそうやってブログエントリーというレンガをひとつひとつ「型に入れて、焼いて、積み上げる」という作業を4年近くも繰りかえすこと

  • Photoshop CS3の「クイック選択ツール」が便利な件について

    少し前からPhotoshopを使っているのだが、どうしても上手にできなかったのが写真から人物や物を切り取ること。私の知る「Photoshop使い」たちは、皆口を揃えたように「パスを使いこなせ」というが、その方法はあまりにも手間がかかりすぎて私には向いていない。今日Photshop CS3がやっと届いたので、うわさの「クイック選択ツール」を試してみると、ものの5分ぐらいで以下の切り抜きに成功した。 やり方は以下の通り。 1.まずは「クイック選択ツール」で大まかな選択をする。微妙な部分は少しはみ出しても気にしない。 2.選択を反転させる 3.はみ出した部分とそうでない部分のコントラストの差が一番大きいものをRGBチャネルから選び、今度は外側から内側に向かって再び「クイック選択ツール」を使ってはみ出した部分だけを選択するようにクリックして行く 4.だいたいの修正が終わったら、選択を再び反転させる

  • ユーザー・インターフェイスの設計に大切なのはデザイン・ポリシー

    何かの「ユーザー・インターフェイス」を決める時に大切なことは、自分なりのはっきりとした「デザイン・ポリシー」を持って、誰が何と言おうと最後までそれをしっかりと押し通すこと。そういう「柱」をしっかりと持たないで作ったものは、往々にして「妥協の産物」になってしまう。 私が常に心がけていること(つまり、私のデザイン・ポリシー)は、「ユーザー・シナリオを80:20ルールで切り分け、常に80の方(つまり多くの人が使うだろう機能)を最優先にした設計にし、20の方(あった方が良いかもしれない機能、一部の人が必要とするかもしれない機能)は思い切って犠牲にする」こと。 典型的な良い例が、Youtubeを見るためのサービス、Rimo と oreseg。 機能的には、カテゴリー分けはしてくれているし、サムネールから自分で見たいものを選べるし、oresegの方が上である。しかし、「ただだらしなく面白そうなビデオを

  • その「頭がいい人は成功して当然」という発想が甘すぎる

    はてなの人気エントリーに見つけた「頭のいい人が成功できるかどうかの境目」というanonymousなエントリー。ちょっと彼(そのエントリーの作者)の将来が心配になったのでひと言。 そもそも「頭が良さ」が一つのものさしで計れると思っている点が大間違い。百歩譲って、「旧帝大の大学院にトップクラスの成績で入れるぐらいの学力がある」=「頭がいい」という彼のものさしを認めたとしても、「俺はこんなに頭がいいのになぜ成功できないのだろう=頭がいい人は成功して当然」という発想はあまりにも甘すぎる。子供のころから、「東大に入りさえば幸せになれるのよ、○○ちゃん」という母親の一途な価値観だけに踊らされて塾に通い続けた学歴社会の被害者、とで言えば良いのだろうか。 これを読んで思い出したのが、大学時代の同期の一人。成績は文句なくクラスでトップ。ものすごく頭の切れる男で、修士号取得後に霞ヶ関の官僚になったのだが、彼が

  • Life is beautiful: 複数のbookmarkletの機能を一つにまとめた「シオレット」

    Bookmarkletの存在を知ってから、いくつか気に入ったものをインストールしたり、自分で作ってみたりして遊んで来たのだが、普通のウェブページへのリンクも含めて数が増えてくるとツールバーが一杯になってしまい、使い勝手がぐっと悪くなる。 そこで、いくつかのBookmarkletの機能を一つにまとめた、メタBookmarkletを自分のために作ったのだが、せっかくなので、ここで公開。名づけて「シオレット」だ(bookmark=しおり)。 【シオレットのインストールの仕方】 [シオレット] ← このリンクを右ボタンでクリックして「お気に入り/bookmark」として追加する。左ボタンでクリックしてしまうと、シオレットがこのページ上で動いてしまうので注意(その場合は、グレーの部分をクリックすればメニューを閉じることができる)。 追加する場所としては、Firefoxの場合は Bookmark To

  • ビルゲイツの面接試験-ビジネス編

    ここのところ、正解が一つだけの数学パズルばかり出してきたので、今回は少し趣向を変えて答えが一つとは限らないビジネスの問題。 まずは、下の二つの文章を読んで欲しい。 【1】 チープ革命の波は企業だけでなく個人にまで押し寄せている。個人が会社に属さずにウェブでビジネスをして十分にって行くことができる時代が来ようとしている。 【2】 クレジット・カード詐欺やフィッシング詐欺が増えた結果、消費者がオンラインで個人情報を与えることにとても慎重になっている。その結果、Amazon、Walmartなどの「信頼できる大手e-コマースサイトでしかオンライン・ショッピングをしない」消費者が増えている。 この一見矛盾する二つの情報をあなたならどう解釈するか、そして、そこに何らかのビジネスチャンスを見出すことができるか、というのが今回の問題である。 数学の問題と違って答えが一つだけではないところがこの手の問題の

  • 1