タグ

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

  • プレゼンテーション・ツールとしての Blender

    メルマガの読者はご存知だが、私は今年の「夏の課題」として3Dモデリング・ツール Blender の習得を選んだ。3Dモデリング・ツールの習得には以前から興味があったが、はっきりとしたニーズがない上に最初の敷居が高いためになかなか手を付けられなかった。 今回、学ぶべきと判断した理由は3Dプリンタの普及である。詳しくはエンジニアtypeの「20年後もソフトウエアエンジニアとして『真ん中』にいたいから、今、3Dモデリングを学ぶ」に書いたが、これから10年、20年先を考えた時に、人々のライフスタイルに最も大きな影響を与えそうなのが、3Dプリンタだと直感しているからだ。 それであれば、今のうちから3Dモデリング・ツールを習得し、まずは身の回りの簡単なものから3Dプリンタで作りながら、その大きな変化に黎明期から関わっていたいと感じているのだ。 ちなみに、実際に Blender が使えるようになって気が

    プレゼンテーション・ツールとしての Blender
  • 日本の大学生はなぜ勉強しないのか

    今週号のメルマガ「週刊 Life is Beautiful」に向けて、「日の大学生はなぜ勉強しないのか」という文章を書いたのだが、特に冒頭の部分はぜひとも多くの人に読んで欲しいので、引用する。 NHKニュースで「日の大学生が予習復習のために費やす勉強時間は一日平均39分」というデータが発表されていました。まさに「ぬるま湯大学」です。私が大学(早稲田大学)に通っていた時も似たような状況でしたがが、これが日の国際競争力をなくしている原因の一つであることをより多くの人が強く認識すべきだとつくづく思います。 私は米国の大学(University Washington)でも勉強した経験がありますが、日の大学とは全く異なっていました。まず第一に、予習をしていかなければ全く授業について行けません。授業にもよりますが、90分の授業の準備に1〜3時間の予習が必要です。 例えばビジネス戦略の授業の場合

  • 特許庁のシステム開発が破綻した本当の理由

    特許庁と東芝の新システム開発契約打ち切りについて、なぜこの開発プロジェクトが破綻したのかについて私なりの解説をしようとバックグラウンドを調べたところ、調べれば調べるほど、この問題の根底には(1)コスト意識が欠如し自分たちが「公僕」であることを忘れてしまった霞ヶ関官僚、(2)霞ヶ関から流れて来るお金にたかる IT ゼネコン、(3)そのお金の流れに対する影響力を利用して票を稼ぐ政治家、という原子力業界と全く同じような構図があることが明らかになり、ウンザリしてしまった。 破綻の原因は、ソフトウェア・アーキテクチャやプロジェクト・マネージメントにあったのではなく、「競争原理が正しく働かない社会構造」そのものにあるのだ。これではうまく行くはずがないし、たとえうまくいったとしてもやたらと高くつく。 そもそも破格だと言われた99億円という落札価格も、私から見ればどうみても高すぎる。特許庁のシステムであれ

    特許庁のシステム開発が破綻した本当の理由
  • node.js と thread hog の話(1)

    ここ数日、 node.js で色々と作りはじめているのだが(node.js が一番力を発揮するのは、xmpp server や、push notification server のようにソケットを開きっぱなしにして非同期通信をするケースだと思うのだが、それについては来週のメルマガで詳しく解説する)、これで思い出すのが Microsoft 時代の「"thread hog" 退治」だ。 "thread hog" とは私が作った造語で、"memory hog" (メモリをやたらと使うプログラムのこと)と同じように、thread を不必要に作るプログラムのこと。 最初に出会った thread hog は、Microsoft が作っていた proxy server だった。コネクションが1000を超すとやたらと遅くなり、しまいには落ちてしまうという欠点を持っていたため、一時は「出荷出来ないところか、

  • Life is beautiful: Javascript、クロージャを使ったプライベート関数の隠蔽について

    (このエントリーは「Javascriptクイズ:無名関数と実行効率の話」の続編。) 「???」と頭をかしげる太郎に、「じゃあ、これだったらどうかな?」と三郎はコードを書き始めます。 function code2name(code) { var mapping = { 'us': 'United States', 'ja': 'Japan', 'ko': 'Korea', 'ru': 'Russa', 'uk': 'United Kingdom', 'fr': 'France', 'cc': 'China', 'gw': 'Germany' }; return mapping[code] || '(unknown)'; } 「カントリーコードを国名に変換しているんですね。」と太郎。 「どこが問題だか分かる?」 「うーん、マッピングのためのオブジェクトを毎回作り直しているところかな。」 「そう

  • 「空気に支配される大人」にはならないで欲しい

    「孫正義ソフトバンク社長が、経団連の理事会に出席し、経団連が一致して決議しようとした原発再稼働への賛成・推進に対して、反対し、執行部の姿勢を強く批判した」と報道されている(参照)。いかにも孫さんらしい行動だが、問題視すべきなのは、300社以上の出席者からは、孫社長の意見に対する反論も同調する意見もなかったという点。 経団連を牛耳る原発推進派の企業により「満場一致で原発再稼働に賛成する」という空気が作られるなか、その「空気作り」が許せなかった孫社長が真っ向から反対したが、残りの「空気が読める、空気に支配される大人たち」は黙ってしまったのである。 この状況は、学校で「いじめ」が起こった時に、一部のいじめっ子たちにより「あの子はいじめて良い」という空気が作られた時に他の生徒が黙認してしまう(そして、結果としていじめる側に回ってしまう)状況に似ている。そんな空気の中で「こんないじめは良くないよ」と

  • Life is beautiful: 言語・ローカルビジネスに対応した Siri の実力

    にもすでに iPhone 4S を入手した人は沢山いると思うが、日語のSiriは来年まで待たなければならないそうだ。そこで今日は、その時になればどんなことが実現されるのかの予告編として、米国(シアトル)での使い心地を電話帳を中心に実例で示してみる。 まずは、"Japanese Restaurant(日レストラン)" と言ってみる。 近いところにある日レストランを教えてくれる。レストランを選んでタップすると、地図上にレストランが表示され、そこから道順を調べたり、電話をかけることができる。 つぎに、"Call Japanese restraunt (日レストランに電話して)"と言ってみる。 同じく近くのレストランが表示されるが(なぜリストが異なるかは不明)、今度はレストラン名をタップすると、地図には飛ばずに、直接電話してくれる。とても便利だ。 そこで "Direction t

    Life is beautiful: 言語・ローカルビジネスに対応した Siri の実力
  • Life is beautiful: ソフトウェアの仕様書は料理のレシピに似ている

    先日、経済産業省向けの仕事をしている知り合いと事をしたのだが、彼によると経済産業省の今の悩みは、「IT産業の階層化の弊害によっておこる下流のプログラマーの収入の低下」だそうである。「プライムベンダー」と呼ばれる「上流コンサルタント」たちがインドや中国にも仕事を発注できることを理由に、激しく値切り始めたために、今やわずか一人月30万円というケースもあるという。 こんな話を聞くと当に悲しくなる。まず第一に「プログラムを書く」という仕事は簡単な仕事ではない。数学的な頭を持っていないとかなり辛いし、基礎がしっかりと出来ていないとろくなソフトウェアは作れない。物価の安いインドや中国なら許せるが、米国よりも生活費の高い日で一人月30万円とはあまりにも低すぎる。 「彼らは下流のエンジニアで、詳細仕様書に従った通りのプログラムを書くだけの簡単な仕事をしているから給料が安い」という説明を聞いたことがあ

  • 「今の日本の若い人たちには元気がない」は本当か?

    最近、「日の若い人たちの元気がない」という声を聞く。「若い人たちはすぐ辞めてしまう」とも聞く。当に若い人たちに元気がなくなってしまったのだろうか?今の若い人たちは、高度成長期の「企業戦士」のように努力する事ができなくなってしまったのだろうか? 私は決してそんなことはないと思う。一番の問題は、そんな若い人たちを雇う企業、そしてそこの経営者たちにある。グローバル化が大きく進む中で、過去の成功体験にしがみついて旧態依然とした体質のままの大企業。自分が退職金をもらうまでだけは会社が存続してくれれば良いと、リスクを避けて問題を先送りにする「逃げ切りメンタリティ」の経営者。「雇用を守る」との名目で競争力を失った大企業を無理矢理存続させる日政府。不要になった人員を整理する事を禁じ、日企業の国際競争力を奪う雇用規制。その雇用規制が故に出来上がった、「終身雇用が保証された正社員」と「使い捨ての派遣社

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

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

  • 日本のケータイが「ガラパゴス化」した本当の理由

    「ガラパゴス」という言葉が今年の流行語大賞の候補に選ばれたということを聞いていたので、密かに受賞しないかと期待していたのだが、残念ながら大賞は逃したようだ(もし大賞に選ばれていたら、私が受賞することになったのかどうかの疑問はこれで解けずに終わってしまった)。しかし、この言葉をずいぶん前から使っている私としては、この言葉が一人歩きしているようでなんとも言えない気持ちなのでひと言。 まず最初に断っておくと、私が2001年のCTIA(米国の携帯電話業界で一番大きなカンファレンス)のスピーチでこの言葉を使った時は、単に日という「単一民族で、国民の大半の生活レベルが同じで、家電とか携帯電話のようなガジェットに流れるお金が比較的多い」という特殊な環境で、iモードを中心に「ケータイ・ライフスタイル」が異常なスピードで進化をとげていることを表して、「ガラパゴス現象」と呼んだだけのこと。決してネガティブな

  • appengine アプリ開発日誌:おまかせニュース・リーダー(アルファ・リリース)

    ここのところ、iPhone/iPad アプリの開発から Google App Engine 上のサービス(neu.Notes ユーザー向けのプレミアムサービス)の構築に少しづつ比重を移している私だが、格的な商用サービスを立ち上げる前に、もう少し app engine 上のサービスの構築・運営に慣れておく必要があると感じて作ったのがこれ。 正式名称もないしドメインも取得していないのだが、 仮の名前は「おまかせニュース・リーダー」。世の中の動きを効率良くつかむためには、主要なニュースの少なくともヘッドラインに目を通す事は大切。はてなブックマークの人気エントリーはノイズが多すぎるし、かといって、わざわざ自分でRSSフィードを登録したりメンテナンスしたりするのは面倒。 そこで、特になにもしなくても、自然に使っているうちにしだいに賢くなって自分向けのニュースを選んでくれるサービスというのがあれば良

  • iPadアプリ開発日誌: ダウンロード数とランキングの関係

    先日iPad向けにリリースした「加速する創作系マガジン『暫』」、とても好評で発売3日目には書籍部門で1位、4日目には総合で2位(瞬間風速では一時的に1位)という快挙。 「どのくらいダウンロードがあるとランキングの上位にい込めるのか」という質問を良く受けるので、発売後8日間のダウンロード数と、(日での)総合順位をグラフにしてみたのがこれ。 グラフの一番右下が初日の結果で(248ダウンロード/総合65位)、ダウンロード数が急速に伸びるとともに順位も上がり、4日目のピークで、2781ダウンロード/総合2位に達している。 アップルがどのくらいの期間のダウンロード数を目安にランキングを決めているかが不明なので、このグラフが100%正しいとは言えないが、大体の感覚はつかんでいただけると思う。重要なことは、このグラフが直線ではなく、大きくカーブしていること。 これは無料アプリのカーブだが、当然有料ア

    iPadアプリ開発日誌: ダウンロード数とランキングの関係
  • 言語対決:JavaScript 対 Objective-C

    ここのところ、サーバー側(Google App Engine)のコードはPythonで書き、クライアント側のコードはiPhone/iPad 向けはObjective-Cで、ブラウザー向けはJavaScriptで書く、という毎日が続いている私である。 それぞれの言語は難しくないのだが、さすがにこの3つを頻繁に行き来していると、pythonのコードに間違ってセミコロンを付けてしまったり、PythonJavaScriptのどっちがTrueでどっちがtrueだか混乱したりする。 ちょうど昨日は、以前JavaScriptで書いたコード(写真をアップロードするコード)をObjective-Cに移植する機会があったのだが、とても分かりやすい結果が出たので、ここで比較してみる。 まずは元の JavaScript のコード。 SNBinder.get("/blob/create_upload", {},

  • 1