2010年12月27日月曜日

【まとめ】CG、シミュレーション関係の論文



CG、シミュレーション関係の論文を整理したので、一部をここに書いておく。


流体シミュレーション


Fluid Flow for the Rest of Us: Tutorial of the Marker and Cell Method in Computer Graphics - David Cline, David Cardon and Parris K. Egbert
→マーカー&セル法のチュートリアル

Smoothed Particles: A new paradigm for animating highly deformable bodies - Mathieu Desbrun, Marie-Paule Gascuel
→SPHを変形体のシミュレーションに応用

Particle-Based Fluid Simulation for Interactive Application - Matthias Muller, David Charypar and Markus Gross
→SPHを使った流体のシミュレーション。インタラクティブに動作することを目指す。

Smoothed Particle Hydrodynamics - J. J. Monaghan
→SPHの元祖。もともとは宇宙物理シミュレーションのための手法。

Lagrangian finit element analytics of newtonian fluid flows - R. Radovitzky and M. Ortiz
→ラグランジュアン有限要素法によって、巻き波のシミュレーションを実施

Animation and Rendering of Complex Water Surfaces - Douglas Enright, Stephen Marschner and Ronald Fedkiw
→複雑な流体表面のアニメーションについて、表面構築の新しい方法を示している

Two-way Coupled SPH and Particle Level Set Fluid Simulation - Frank Losasso, Jerry O. Talton, Nipun Kwatra and Ron Fedkiw
→SPHとレベルセット法を組み合わせた流体シミュレーション

自由表面の構築


Marching cubes: A high resolution 3D surface construction algorithm - William E. Lorensen and Harwey E. Cline
→マーチングキューブによる、表面の構築

Particle Splatting: Interactive Rendering of Particle-Based Simulation Data - Bart Adams, Toon Lenaerts and Philip Dutre
→粒子ベースシミュレーションのための表面構築の方法


■流体シミュレーションに関するエントリ
粒子法のプログラム第1回(概要)
粒子法のプログラム第2回(プログラムの大枠)
粒子法のプログラム第3回(データ構造)
粒子法のプログラム第4回(密度と圧力の計算)
粒子法のプログラム第5回(力の計算)
粒子法のプログラム第6回(境界条件と粒子位置の更新)
粒子法のプログラム最終回(粒子の出力)
【粒子法】粒子を流体としてレンダリング
3次元の粒子法シミュレーション
粒子法のシーンを2倍のサイズにしてみたが…
粒子法のシーンを2倍のサイズにしてみた
SPHによる巻き波のシミュレーション2
Haskell、OCamlでSPH法
このあとやりたいこと
カメラ位置を変えて流体をレンダリング
固液連成シミュレーション


■剛体シミュレーションに関するエントリ
粒子ベース剛体シミュレーション(プレビュー)
粒子ベース多体衝突シミュレーション
引き続き、粒子ベース剛体シミュレーション

--

2010年12月26日日曜日

【OCaml】スタンフォードバニーの読み込みライブラリ


スタンフォードバニーの読み込みライブラリを書きました。言語はOCamlです。

※.plyファイル全般には対応していない簡易版です

●実装ファイルとシグニチャ
PlyReader.ml
PlyReader.mli

●使用方法
使う関数は、以下の1つだけです。
PlyReader.read_ply : string -> vertex array * face array

読み込む.plyファイルを渡すと、頂点情報が入った配列と面情報が入った配列をタプルにして返します。



■流体シミュレーションに関するエントリ
粒子法のプログラム第1回(概要)
粒子法のプログラム第2回(プログラムの大枠)
粒子法のプログラム第3回(データ構造)
粒子法のプログラム第4回(密度と圧力の計算)
粒子法のプログラム第5回(力の計算)
粒子法のプログラム第6回(境界条件と粒子位置の更新)
粒子法のプログラム最終回(粒子の出力)
【粒子法】粒子を流体としてレンダリング
3次元の粒子法シミュレーション
粒子法のシーンを2倍のサイズにしてみたが…
粒子法のシーンを2倍のサイズにしてみた
SPHによる巻き波のシミュレーション2
Haskell、OCamlでSPH法
このあとやりたいこと
カメラ位置を変えて流体をレンダリング
固液連成シミュレーション


■剛体シミュレーションに関するエントリ
粒子ベース剛体シミュレーション(プレビュー)
粒子ベース多体衝突シミュレーション
引き続き、粒子ベース剛体シミュレーション

--

2010年11月22日月曜日

【Emacs】タブを使わずに空白のみでインデントするには


Emacsで、タブを使わずに空白のみでインデントするには、.emacsに以下を追記します。
(setq-default tab-width 4 indent-tabs-mode nil)

--

CommonLispの処理系SBCLで、コマンドラインからLispコードを実行するには


SBCLでコマンドラインからLispコードを実行するには、--scriptオプションを使って以下のようにします。
$ sbcl --script hello.lisp
同じようにして、コンパイルしたコードも実行できます。
$ sbcl --script hello.fasl

--

2010年11月15日月曜日

GnuTLSの使い方(第2回)

前回のエントリでは、「GnuTLSの使い方(第1回)」として、GnuTLSを使って、HTTPSでWebサーバに接続してHTMLを取得しようとしましたが、handshakeに失敗して通信できませんでした。

失敗の原因がどうもよく分かりません。APIの使い方の問題ではなさそうなものの、サーバの環境によるものか、GnuTLSを使う上で何か忘れているものがあるのか。

そこで、いったんGnuTLSの代わりに、OpenSSLを試してみることにしました。

「OpenSSL sample」で検索すると、
An Introduction to OpenSSL Programming(Part I)[PDF]
というちょうどいいドキュメントがひっかかるので、これを参考にします。

このドキュメントにはサンプルコードが用意されており、まずはこのサンプルを動かしてみます。

http://www.rtfm.com/openssl-examples/

まず、OpenSSLをインストールします。
手元の環境はMaxOS Xなので、MacPortを使います。
$ port install OpenSSL
次に、サンプルをビルドします。
$ ./configure --with-openssl=/opt/local/
$ make
MacPortを使ってOpenSSLをインストールしたため、そのインストール場所を--with-opensslオプションによって指定しています。

問題なくビルドができれば、SSLを通してウェブサーバからHTMLを取得してみます。
$ ./wclient -h twitter.com -p 443 -i
今度は、GnuTLSを使った場合と違い、すんなりとHTMLを取得できました。

GnuTLSを使ったときにhandshakeに失敗するのはなぜだろう?

とはいえ、これでSSL通信をする方法はわかったので、もともとのきっかけだった、HaskellからのSMTP over SSL/TLSを実装できそうです。

■関連するエントリ
GnuTLSの使い方(第1回)

--

2010年10月26日火曜日

GnuTLSの使い方(第1回)

GnuTLSとは


GnuTLSはSSL/TLSプロトコルのフリーな実装です。

SSL/TLSプロトコルの実装としてはOpenSSLが有名ですが、OpenSSLのライセンスはGPLに対し非互換のため、GPLの下にあるソフトウェアはOpenSSLを使うことができませんでした。

GnuTLSは、その問題を解決しGNUプロジェクトのアプリケーションでもTLSのようなプロトコルを扱えることを目的として開発されました。

GnuTLSのインストール


MacOSXの場合は、MacPortを使うことで簡単にGnuTLSをインストールできます。
$ port install gnutls
他の環境でもパッケージシステムから同様にインストールできると思います。

GnuTLSのソースコードは、以下のページからダウンロードできます。
http://www.gnu.org/software/gnutls/download.html

GnuTLSを使ったサンプルを試してみる


GnuTLSのドキュメント7.3.1に、HTTPSでサーバに接続してデータを取得するサンプルがあるので、それを試してみました。

sample.c
/* This example code is placed in the public domain. */
 
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <gnutls/gnutls.h>
 
/* A very basic TLS client, with anonymous authentication.
 */
 
#define MAX_BUF 1024
#define MSG "GET / HTTP/1.0\r\n\r\n"
 
extern int tcp_connect (void);
extern void tcp_close (int sd);
 
int
main (void)
{
  int ret, sd, ii;
  gnutls_session_t session;
  char buffer[MAX_BUF + 1];
  gnutls_anon_client_credentials_t anoncred;
  /* Need to enable anonymous KX specifically. */
 
  gnutls_global_init ();
 
  gnutls_anon_allocate_client_credentials (&anoncred);
 
  /* Initialize TLS session 
   */
  gnutls_init (&session, GNUTLS_CLIENT);
 
  /* Use default priorities */
  gnutls_priority_set_direct (session, "PERFORMANCE:+ANON-DH:!ARCFOUR-128",
         NULL);
 
  /* put the anonymous credentials to the current session
   */
  gnutls_credentials_set (session, GNUTLS_CRD_ANON, anoncred);
 
  /* connect to the peer
   */
  sd = tcp_connect ();
 
  gnutls_transport_set_ptr (session, (gnutls_transport_ptr_t) sd);
 
  /* Perform the TLS handshake
   */
  ret = gnutls_handshake (session);
 
  if (ret < 0)
    {
      fprintf (stderr, "*** Handshake failed\n");
      gnutls_perror (ret);
      goto end;
    }
  else
    {
      printf ("- Handshake was completed\n");
    }
 
  gnutls_record_send (session, MSG, strlen (MSG));
 
  ret = gnutls_record_recv (session, buffer, MAX_BUF);
  if (ret == 0)
    {
      printf ("- Peer has closed the TLS connection\n");
      goto end;
    }
  else if (ret < 0)
    {
      fprintf (stderr, "*** Error: %s\n", gnutls_strerror (ret));
      goto end;
    }
 
  printf ("- Received %d bytes: ", ret);
  for (ii = 0; ii < ret; ii++)
    {
      fputc (buffer[ii], stdout);
    }
  fputs ("\n", stdout);
 
  gnutls_bye (session, GNUTLS_SHUT_RDWR);
 
end:
 
  tcp_close (sd);
 
  gnutls_deinit (session);
 
  gnutls_anon_free_client_credentials (anoncred);
 
  gnutls_global_deinit ();
 
  return 0;
}

このサンプルでは、同ドキュメントの7.3.10に書かれている、TCP接続のためのヘルパー関数を使うため、そのコードも用意します。

helper.c
/* This example code is placed in the public domain. */
 
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <unistd.h>
 
#define SA struct sockaddr
 
/* tcp.c */
int tcp_connect (void);
void tcp_close (int sd);
 
/* Connects to the peer and returns a socket
 * descriptor.
 */
extern int
tcp_connect (void)
{
  const char *PORT = "5556";
  const char *SERVER = "127.0.0.1";
  int err, sd;
  struct sockaddr_in sa;
 
  /* connects to server
   */
  sd = socket (AF_INET, SOCK_STREAM, 0);
 
  memset (&sa, '\0', sizeof (sa));
  sa.sin_family = AF_INET;
  sa.sin_port = htons (atoi (PORT));
  inet_pton (AF_INET, SERVER, &sa.sin_addr);
 
  err = connect (sd, (SA *) & sa, sizeof (sa));
  if (err < 0)
    {
      fprintf (stderr, "Connect error\n");
      exit (1);
    }
 
  return sd;
}
 
/* closes the given socket descriptor.
 */
extern void
tcp_close (int sd)
{
  shutdown (sd, SHUT_RDWR); /* no more receptions */
  close (sd);
}
※IP、ポートは適切に変更してください

ビルドするためにMakefileを用意します。

Makefile
sample: sample.o helper.o
 gcc -o sample sample.o helper.o `pkg-config gnutls --libs`

.c.o:
 gcc -c $< -I/opt/local/include

makeして実行してみると、handshakeに失敗してエラーになります。
$ make
$ ./sample
*** Handshake failed
GNUTLS ERROR: A TLS fatal alert has been received.

handshakeとは何でしょうか?HTTPSの仕組みを調べる必要がありそうです。

--

2010年10月24日日曜日

豪ドル高は危ない?


最近、豪ドル債が人気です。

しかし、豪ドルは今、円以上に米ドルに対して高くなっています。これは、輸出依存型であるオーストラリア経済にとって悪影響を与えないのでしょうか?

答えはNoです。日本と違い、オーストラリアにとって豪ドル高は経済への大きなマイナスにはなりません。

理由はなんでしょう?

2つあります。
  1. 豪ドル安へ誘導する余地があること
  2.  輸出入の内容が良いこと

豪ドルへ誘導する余地があること


オーストラリアは景気が過熱しないように金利を上げて抑えているため、その金利を下げることで豪ドル安へ誘導してコントロールする余地があります。

逆に、日本はもうこれ以上金利をさげることができないところまできているので、コントロール不能になってしまっています。

これが、オーストラリアと日本の違いの1つです。

輸出入の内容が良いこと


日本は5兆円の貿易黒字のため円高のマイナス影響が大きくなってしまいますが、オーストラリアの貿易収支はトントンです。

さらに、日本と違い、材料を輸出して製品を輸入する形になっているため、豪ドル高の場合は材料を売るのが安くなってしまいますがその分製品を買うのも安くすむので、それで相殺されます。そのため、日本ほど自国通貨高によるダメージを受けません。

これが、もう1つの違いです。

いかがでしょうか。

--

2010年10月12日火曜日

さくらインターネットでcronを使うときの注意点


さくらインターネットのレンタルサーバでcronを使おうとしたときにはまったのでメモ。

pythonスクリプトを動かすときには、
/usr/local/bin/python
のようにフルパスでpythonコマンドを指定しなければいけない。

単にpythonとだけ指定してもコマンドが動作しないので注意。

2010年9月4日土曜日

粒子法による固液連成シミュレーション


先日のエントリを、表面抽出をして奇麗にレンダリングしました。

前半は剛体の密度が流体より小さいケース、後半は剛体の密度が流体より大きいケースです。



シミュレーション上は剛体も粒子として扱い、レンダリングのときだけポリゴンで表現しています。



■流体シミュレーションに関するエントリ
粒子法のプログラム第1回(概要)
粒子法のプログラム第2回(プログラムの大枠)
粒子法のプログラム第3回(データ構造)
粒子法のプログラム第4回(密度と圧力の計算)
粒子法のプログラム第5回(力の計算)
粒子法のプログラム第6回(境界条件と粒子位置の更新)
粒子法のプログラム最終回(粒子の出力)
【粒子法】粒子を流体としてレンダリング
3次元の粒子法シミュレーション
粒子法のシーンを2倍のサイズにしてみたが…
粒子法のシーンを2倍のサイズにしてみた
SPHによる巻き波のシミュレーション2
Haskell、OCamlでSPH法
このあとやりたいこと
カメラ位置を変えて流体をレンダリング
固液連成シミュレーション


■剛体シミュレーションに関するエントリ
粒子ベース剛体シミュレーション(プレビュー)
粒子ベース多体衝突シミュレーション
引き続き、粒子ベース剛体シミュレーション

--

2010年8月3日火曜日

【本】はじめてのCUDAプログラミング - 8.1 1次元配列へのアクセス


「はじめてのCUDAプログラミング」の「8.1 1次元配列へのアクセス」について。

メモリアクセスの例として、1次元配列への足し算を挙げている。

挙げられているサンプルは、要素数Nの配列A、B、Cについて、

C[i] = A[i] + B[i]

を計算するというもの。

GPUで計算した場合とCPUで計算した場合とでどのような違いがあるかというと、CPUでこの計算をするとN回の計算となる一方、GPUで計算すると1スレッドにつき1回の計算をするだけで済むことになる。

処理のステップは、
  • メモリ確保
    ホストとGPUそれぞれにメモリ領域を確保する

  • 初期値の用意
    ホストメモリ上で配列A,B,Cを初期化

  • GPUに初期値をコピー
    GPUメモリにホストメモリから初期値をコピー

  • カーネル関数をコール
    カーネル関数をコールすることで計算を実行

  • 解をGPUからホストにコピー
    計算結果をGPUメモリからホストメモリにコピー

  • 計算が正しく行われていることを確認

となっている。

その後実行性能を求めているのだが、理論値の1/10の性能しかでていないという。また、式をより複雑なものに変えても性能が変わらない。このことから、実はグローバルメモリ転送が処理時間の大半を占めていることが説明されている。ここから、8.3 メモリアクセスの最適化へとつながる。



--

2010年7月31日土曜日

固液連成シミュレーション


固液連成シミュレーションです。

剛体を粒子の集合として扱い、剛体粒子も流体粒子と同様に計算しています。

ムービーには2つのシーンが入っており、1つは固体の密度が流体より軽い場合、もう1つは固体の密度が流体より重い場合です。




■流体シミュレーションに関するエントリ
粒子法のプログラム第1回(概要)
粒子法のプログラム第2回(プログラムの大枠)
粒子法のプログラム第3回(データ構造)
粒子法のプログラム第4回(密度と圧力の計算)
粒子法のプログラム第5回(力の計算)
粒子法のプログラム第6回(境界条件と粒子位置の更新)
粒子法のプログラム最終回(粒子の出力)
【粒子法】粒子を流体としてレンダリング
3次元の粒子法シミュレーション
粒子法のシーンを2倍のサイズにしてみたが…
粒子法のシーンを2倍のサイズにしてみた
SPHによる巻き波のシミュレーション2
Haskell、OCamlでSPH法
このあとやりたいこと
カメラ位置を変えて流体をレンダリング
固液連成シミュレーション

■剛体シミュレーションに関するエントリ
粒子ベース剛体シミュレーション(プレビュー)
粒子ベース多体衝突シミュレーション
引き続き、粒子ベース剛体シミュレーション

--

2010年7月30日金曜日

Bloggerにソーシャルボタン機能がついた


Bloggerにソーシャルボタン機能がついたので、さっそく表示してみた。

--

2010年7月21日水曜日

【論文】Two-way Coupling of Fluids to Rigid and Deformable Solids and Shells


Fedkiwらによる、固液連成系のアニメーションについての2008年の論文である。

著者らによると、この論文で提案されている手法には以下の特徴がある。
  • 流体にオイラー法、固体にラグランジュ法を用いる
  • 完全な陰解法
  • 系の運動量が保存される
  • カルテシアン座標を使用
流体にオイラー法、固体にラグランジュ法を用いるという典型的なアプローチをとりながらも、従来手法と違い、系の運動量が保存されるという。

また、完全な陰解法のため時間が経った後や大きな密度比があるような場合でも安定した結果が得られる。

さらに、座標系にはカルテシアン座標を用いるため、四面体メッシュやALEが必要ない。

この方法は非常に汎用的で、煙、水、多相流体、剛体、弾性体、布やシェル状の物体にも適用できるという。

関連研究としてあげられているものに、
  • Yngve et al. 2000
  • Genevanx et al. 2003
  • Carlson et al. 2004
  • Guendelman et al. 2005
  • Losasso et al. 2006a
といった例があるが、これらは、陽解法もしくは半陰解法を使うため、安定性と精度の問題が残るという。

また、
  • Klinger et al. 2006
  • Chentanez et al. 2006
  • Batty et al. 2007
では、完全に陰解法を用いて安定した固液連成シミュレーションを行っているが、シェル状剛体や布には適用できないとのこと。

--

2010年7月18日日曜日

カメラ位置を変えて流体をレンダリング


以前の3次元の粒子法シミュレーションに載せているムービーを、カメラ位置を変えてまたレンダリングしてみました。



■剛体シミュレーションに関するエントリ
粒子ベース剛体シミュレーション(プレビュー)
粒子ベース多体衝突シミュレーション
引き続き、粒子ベース剛体シミュレーション

■流体シミュレーションに関するエントリ
粒子法のプログラム第1回(概要)
粒子法のプログラム第2回(プログラムの大枠)
粒子法のプログラム第3回(データ構造)
粒子法のプログラム第4回(密度と圧力の計算)
粒子法のプログラム第5回(力の計算)
粒子法のプログラム第6回(境界条件と粒子位置の更新)
粒子法のプログラム最終回(粒子の出力)
【粒子法】粒子を流体としてレンダリング
3次元の粒子法シミュレーション
粒子法のシーンを2倍のサイズにしてみたが…
粒子法のシーンを2倍のサイズにしてみた
SPHによる巻き波のシミュレーション2
Haskell、OCamlでSPH法
このあとやりたいこと
カメラ位置を変えて流体をレンダリング

--

sedコマンドの使い方

sedコマンドの使い方をいくつか解説します。

置換


文字列の置換を行うには、-eオプションに続けて置換したい文字列と置換後の文字列を指定します。

$ sed -e "s/置換したい文字列/置換後の文字列/g" ファイル名

出力先は標準出力です。リダイレクトを使えばファイルに記録できます。

$ sed -e "s/置換したい文字列/置換後の文字列/g" ファイル名 > 保存先ファイル名

ファイルに保存する別の方法として、-iオプションによって同名での上書き保存ができます。-iオプションの場合、同時に置換前のファイルがバックアップされるため便利です。

$ sed -i.bak -e "s/置換したい文字列/置換後の文字列/g" ファイル名

「-i.bak」と指定することで、ファイル名.bakがバックアップのファイル名になります。

ファイル名にワイルドカードを指定することで、複数のファイルを一度に置換できます。これは-eオプション単独ではできないので、-iオプションが便利です。

$ sed -i.bak -e "s/置換したい文字列/置換後の文字列/g" *

ここまで、sedを使った文字列の置換についてでした。

挿入


次は挿入についてです。sedは単なる置換用のコマンドではありません。Stream EDitorという名前の通り汎用的なエディタなので、テキストファイルに対して様々な編集が可能です。挿入もその1つです。

挿入する場合は-fオプションで外部ファイルからコマンドを読み込ませることで行います。
※複数業にわたるコマンドになるため、-eオプションでは不可

$ sed -f コマンドファイル名 編集対象ファイル名

コマンドファイルは以下のように記述します。
挿入したい行(何番目の行か){
i\
挿入したい文字列
}

挿入したい行として指定した行の手前に、挿入したい文字列が挿入されます。たとえば、
10{
i\
この文字列を挿入します。
}
とすると、10行目の手前、つまり9行目と10行目の間に「この文字列を挿入します。」という文字列が挿入されます。

出力先は置換の場合と同様に標準出力です。-iオプションで上書きできることも同様です。

--

2010年4月25日日曜日

【Haskell】正格フラグの使い方


Haskellのデータ構造は一般的にlazyである。それによって、評価されたときにエラーやプログラム停止をもたらすような要素をデータ構造に含めることができる。lazyなデータ構造によってHaskellの表現を高めることができ、Haskellのプログラミングの重要な側面となっている。

内部的には、lazyなデータオブジェクトは、thunkと呼ばれる構造でラップされており、内部にエラーが含まれていても影響がない。たとえば、("a", ⊥)というタプルを保持することができる(⊥は未定義な値を表す)。一方、ほとんどのプログラミング言語は正格で、値が評価されてからデータ構造に入れられる。

ところが、thunkにはオーバーヘッドが大きいというデメリットがある。構築と評価に時間が必要だったり、heapにthunkのためのメモリが必要になる。

Haskellでは、このオーバーヘッドを避けるために、正格評価させるフィールドに正格フラグをつけることができる。正格フラグを付けた方が良いケースとしては、実行中の特定のタイミングで評価されるべきものや、評価がシンプルで決してエラーとならないもの、部分的な未定義値が意味をもたないものがある。

正格フラグの例としては、複素数ライブラリのComplex型があげられる。
data RealFloat a => Complex a = !a +: !a
実部と虚部に正格フラグが付けられており、これらのフィールドには評価後の値が保持される。

正格フラグはデータコンストラクタでのみ使うことができる。逆に、関数の引数に対して正格処理をさせるようなフラグはないが、関数評価に!$演算子を使うことで同等のことを実現できる。

正格フラグを使うときの注意点としては、使用しないデータがメモリに残ってリークしがちな点がある。また、lazinessはHaskellの根本的な性質であり、正格フラグによってその性質を曲げることで、無限ループの発見が難しくなったり、予期せぬ結果をもたらす可能性はある。たとえば、循環定義がある場合には注意が必要である。



2010年4月18日日曜日

【書評】ソフトウェア企業の競争戦略


ソフトウェア企業の競争戦略(原題:The Business of Software)は、MIT(マサチューセッツ工科大学)スローン経営大学院教授のマイケル A.クスマノによる著書である。

著者はもともと70年代後半から、特に自動車の設計と製造に関する、日本の製造管理と品質管理の技術を研究していた。日本の製造業が急成長し、日米の貿易摩擦が顕在化し始めた時期である。

そんな中、著者は自動車の次に日本が挑戦するのはコンピュータ・ソフトウェアだろうと考え、日本企業が大規模な商業用ソフトウェア・システムをどのように構築しているか、すでに日本人が確立しているハードウェアのスキルに高度化されたソフトウェア・スキルをいかに追加しようとしているか、を研究し始めた。

研究を進めるうち、著者は、ソフトウェアが戦略と管理の面で特別な問題をはらむ独特のビジネスであると認識するに至る。85年のことだという。

本書は、著者の20年近くにわたるソフトウェア業界の研究、数十ものソフトウェア企業や組織へのコンサルタントとしてのかかわり合い、さらには1997年から続けられているMITでの「ソフトウェア・ビジネス」クラスでの教育経験から得られた観察をまとめたものである。

第1章には本書の概要を記してある。ソフトウェア・ビジネスが他のビジネスと異なっている点、技術としてのソフトウェア、日本企業からマイクロソフトに至る研究、欧米企業と日本企業の重要な違いについてまとめ、また、ソフトウェア・ビジネスの典型的な事例として、仏ビジネスオブジェクツと米i2テクノロジーズの2社を紹介している。

第2章では、ソフトウェア企業のとるべき戦略について述べている。製品企業なのかサービス企業なのか、ターゲットは個人か法人か、マスかニッチか、水平的か垂直的か、メインストリームを狙うのかキャズムを回避するのか、マーケットリーダーかフォロワーか補完製品メーカーか、会社にどのような特徴を持たせたいのか、といった問いが投げかけられている。

第3章は、ソフトウェアビジネスの歴史である。過去を研究する事で進むべき方向についての示唆を得られるとしている。1950年代にはハードウェアを販売する事が主目的でソフトウェアは付属品であった。独立したソフトウェア製品のビジネスが登場するのは60年代である。70年代に新しいプラットフォーム「PC」が出現する。「ワールド・ワイド・ウェブ(WWW)」という次のプラットフォームが90年代に現れる。この歴史を踏まえて、第4章以下で、次のビジネスチャンスがどこにあるのかを問うていく。

第4章では、ソフトウェア開発のベスト・プラクティスと銘打って、ソフトウェア開発を最適管理するにはどのようにしたら良いか考察している。ソフト開発で繰り返し発生している問題と、多くのソフトウェア・ファクトリーを通して試みられている技術の構造化、およびソフトウェア工学分野での取り組みについて紹介しつつ、それが誤った考え方を導くことになったと指摘し、重要になってくるのは繰り返しのプロセスを生み出そうというSEIの概念や、頻繁な同期と周期的な安定化だと結論づけている。

第5章は、ソフトウェア起業家精神についてである。製品開発の視点にとどまらず、とりわけ戦略とビジネスモデルにまで視点を広げ、ソフトウェアのスタートアップ企業を成功裏に設立するために本書の内容がどう当てはまるかを考察している。

第6章は、スタートアップ10社のケーススタディである。筆者が取締役、顧問、コンサルタントとして知るところとなったスタートアップ企業10社について、成功企業、失敗企業、現段階ではまだ何ともいえない企業の3つに分類して述べている。

最後に第7章で、ソフトウェアのスタートアップ企業にとって「理想的」もしくは「ベストの」モデルは何かを一般化することは考慮すべき変数があまりにも多く難しいとしつつも、少なくとも法人向けソフトウェア企業の場合、ビジネスモデルの判断基準は製品企業、サービス企業、ハイブリッド企業のどれを目指すのかという1つに帰結できると結んでいる。

ソフトウェア開発に関する本は、開発手法やプロジェクト管理についてのものはそれこそ掃いて捨てるほどあるのだが、ビジネスという視点から論じているものは驚くほど少ない(大きめの本屋でコンピュータ関連の棚を見てみればわかるだろう)。ソフトウェア企業の競争戦略は、ソフトウェアをビジネスの面から論じた数少ない本であり、かつ、内容としても非常に優れた良書である。



■その他、本に関係するエントリ

研究開発を着実に利益に結びつける方法
CUDAの入門本
最近読んでいるマーケティング本
コンピュータ将棋のいま

-

引き続き、粒子ベース剛体シミュレーション

引き続き、粒子ベース剛体シミュレーションです。

重力を追加し4つのキューブが落下するシーンを計算しました。

■Δt=0.0033sec


さらに、タイムステップによる挙動の違いを見るために、Δtを変えていくつか計算しました。先ほどの動画はΔt=0.0033secです。

■Δt=0.0017sec


■Δt=0.0008sec


■Δt=0.0004sec


■Δt=0.0002sec


これらを見比べると、タイムステップを変えるだけでキューブの挙動が変化しています。タイムステップを変えていき、Δt=0.0004secとΔt=0.0002secまで小さくすると、だいぶ挙動の違いがなくなってきています。


■剛体シミュレーションに関するエントリ

粒子ベース剛体シミュレーション(プレビュー)
粒子ベース多体衝突シミュレーション


■流体シミュレーションに関するエントリ

粒子法のプログラム第1回(概要)
粒子法のプログラム第2回(プログラムの大枠)
粒子法のプログラム第3回(データ構造)
粒子法のプログラム第4回(密度と圧力の計算)
粒子法のプログラム第5回(力の計算)
粒子法のプログラム第6回(境界条件と粒子位置の更新)
粒子法のプログラム最終回(粒子の出力)
【粒子法】粒子を流体としてレンダリング
3次元の粒子法シミュレーション
粒子法のシーンを2倍のサイズにしてみたが…
粒子法のシーンを2倍のサイズにしてみた
SPHによる巻き波のシミュレーション2
Haskell、OCamlでSPH法
このあとやりたいこと
-

2010年4月15日木曜日

粒子ベース多体衝突シミュレーション

いま、粒子ベースのアプローチで多体衝突シミュレーションを実装しています。



剛体を粒子の集まりとして表現することで、衝突判定と応力の計算を行います。

この方法の強みは、ポリゴンベースのアプローチに比べて、アルゴリズムが単純なことと、複雑な形の物体について効率良くシミュレーションできることです。

上のムービーでは立方体の衝突をシミュレーションし、立方体を表現するために使っている粒子をそのままレンダリングしています。

■関連する記事
粒子法のプログラム第1回(概要)
粒子法のプログラム第2回(プログラムの大枠)
粒子法のプログラム第3回(データ構造)
粒子法のプログラム第4回(密度と圧力の計算)
粒子法のプログラム第5回(力の計算)
粒子法のプログラム第6回(境界条件と粒子位置の更新)
粒子法のプログラム最終回(粒子の出力)
【粒子法】粒子を流体としてレンダリング
3次元の粒子法シミュレーション
粒子法のシーンを2倍のサイズにしてみたが…
粒子法のシーンを2倍のサイズにしてみた
SPHによる巻き波のシミュレーション2
-

2010年4月13日火曜日

このブログのアクセス傾向

このブログは粒子法関連のキーワードではいってくる人が多いんだけど、春休みシーズンや年末年始はアクセスが減る傾向がある。

きっと学生さんが見にくることが多いんだろう。

2010年4月4日日曜日

理想的なベッドの選び方


ここのところ数ヶ月、どうも疲れが抜けない。寝ても疲れて、どんどん消耗する困った状態になっている。原因が分からず、運動してみたり仕事の負荷を下げてみているのだが、いっこうに良くならない。

そこで、もう原因として残っているのはベッドだなと思い、ベッドを変えてみることにした。

いま使っているベッドは、折りたたみできる簡易的なもので、その上に布団を敷いて寝ている。以前にもベッドが原因ではないかと疑って床にマットと布団を敷いて寝てみたのだが、そのときは特に改善がみられなかったので、ベッドが原因ではないだろうと思っていた。

とはいえ、寝て起きるときが一番しんどかったり、腰や背中が痛かったりと、症状としては寝疲れなので、思い切ってベッドを変えてみる。

ベッドの選び方


ベッドは、主にベッドフレームとマットレスからなっている。このうち、寝心地に元も影響があるのはマットレスなので、マットレスに絞って調べてみた。

マットレスを決めるポイント


マットレスを決める要素としては、
・スプリング
・枠材の有無
・詰め物の層
・生地
・一層か二層か
といった点があげられる。

これらのうち、寝たときの姿勢に最も影響するのがスプリングである。スプリングについては、最も重要な要素なので下方で詳述する。

その他の要素として、枠材というのは、スプリングの外側、マットレスの周囲に沿って構造材を入れるかで、これはマットの耐久性に関係する。スプリングだけ では寝返り時の横ズレでスプリングがへたりやすくなるため、周囲に構造材を埋めることでスプリングの耐久性を増すことができる。

詰め物の層とは、スプリングの上に層状に入れられたもので、これは通気性や表面の感触に関係する。マットによっては表面と裏面で材質を変えて、片方は通気性に優れた夏用、もう片方は保温性に優れた冬用、といった機能を持たせているものもある。

生地はマットの一番外側の布地で、これは純粋に肌触りや視覚的な効果に関係する。キングストンなど値段の高いメーカのマットは、このあたりで差別化を図っている。とはいえ、寝たときの姿勢をサポートするというマットレス本来の機能という点では影響しないところでもある。

最後に一層か二層かというのは、マットレスのスプリング層と詰め物層の間にしきりをいれることで、詰め物層で柔らかく体をつつみ、スプリング層でしっかり支える、というもの。二層の方が質が高く、その分高価になる。

スプリングについて


さて、これらのポイントのうち最も重要な要素がスプリングだというのは前で書いた。それでは、スプリングにはどのような種類があるのかというと、大きく2種類あり、
  • ボンネルコイル
  • ポケットコイル
となっている。

ボンネルコイルというのは昔からあるスプリングの種類で、1本のワイヤをいくつものコイルに巻いて敷き詰めた形になっている。特徴としては、体を面で支え、横ズレに強く、通気性が良い。フィーリングとしては堅い印象。ポケットコイルよりも価格は安く、半値になることも。

一方、ポケットコイルというのは、独立したコイルを布で包み、それをマットの中にたくさん敷き詰めた構造となっている。体を点で支えるのが特徴で、より体 全体を包み込む柔らかいフィーリングとなる。ただ、横ズレに弱く、スプリングを布で包むため通気性が悪くなりがちで、値段としては、製造に手間がかかるのでボンネルコイ ルに比べ高価になりやすい。とはいえ、体全体を包み込まれる感じはとても優れている。

どちらのマットを選ぶのが良いか?


どちらのマットが良いかは、体格や体重にもよるので人それぞれだが、販売員の方の話では、ポケットコイルを好む人が7割だそうだ。

ベッドを販売しているお店に行けば実際に横になって寝心地を試すことができるので、一度行ってみると良いだろう。


■最近のエントリ
subversionでテキストがバイナリに誤認識されてしまう場合
WiMAXを契約したのでそのまとめ
Haskell(GHC)をMac OSX 10.6 Snow Leopardにインストールする方法
Silverlightとトロイの木馬
ghciのコマンドまとめ
-

subversionでテキストがバイナリに誤認識されてしまう場合には


subversionに日本語のUTF-8ファイルを追加したときに、テイストファイルであるにも関わらずバイナリと誤認識されてしまうことがあります。バイナリと認識されてしまうと、svn diffで差分を表示することができずに困ります。

バイナリと認識されてしまっていることは、svn addしたときに(bin)と表示されるのでわかります。また、次のようにしても調べられます。
$ svn propget svn:mime-type hoge.tex
application/octet-stream
これはmime-typeがapplication/octet-streamになってしまっていることを表しています。

バイナリと誤認識されたファイルをテキストとして再認識させるには、mime-typeをtext/で始まる文字列にすれば大丈夫です。あるいは単にmime-typeを消すだけでもOK。
$ svn propset svn:mime-type text/x-tex hoge.txt
$ または svn propdel svn:mime-type hoge.txt
$ svn commit -m ''
さらに文字コードを指定したい場合は svn:mime-type 'text/plain; charset=euc-jp' などとすればよいです。

■最近のエントリ
WiMAXを契約したのでそのまとめ
Haskell(GHC)をMac OSX 10.6 Snow Leopardにインストールする方法
Silverlightとトロイの木馬
ghciのコマンドまとめ
MacBookPro用インナーケースまとめ
-

2010年3月28日日曜日

WiMAXを契約したのでそのまとめ


WiMAXを契約してきた。契約は、UQコミュニケーションとではなく、UQコミュニケーションからMVNOでサービス提供をしているビックカメラのBIC WiMAX Serviceを契約した。

同時購入した端末は2,800円。UQブランドのものが通常12,800円、キャンペーンで半額の6,400円となっているのと比べると安い。

モノとしてはUQブランドで提供されているものと同じで、製造元はシンセイコーポレーション。端末には製造元の他に開発元と販売元も記載されていて、開発元はMODACOM、販売元はラネットとなっている。

MODACOMは韓国のWiMAX機器メーカーで、シンセイコーポレーションにOEM販売しているようだ。実際、端末の型番はBDSS01と契約時に伝えられていたのだが、端末に記載されている型番はMW-2510となっている。MODACOMのサイトにMV-2500という型番のMobile WiMAX USB Modemが載っているのでそれだろう。

端末のデザインは、端末自体は特にどうというものでもないが、ツヤ黒で指紋が目立つのは勘弁して欲しい。それ以外はとくに不満はない。箱はiPhoneやiPod touchを参考にした感じで、「高級感」というと言い過ぎだが一定の洗練を感じさせるものとなっている。

販売元と記載されているラネットは、会社概要を見ると「携帯電話の小売、及び大手カメラ量販店内における販売代理店」とあり、どうやらもともと携帯ショップから始まった会社のよう。大手カメラ量販店内における販売代理店とあるので、ビックカメラで応対してくれたのはラネットの人なんだろう。

加えて、Wi2 300を提供するワイヤ・アンド・ワイヤレスと提携しているとのことで、「BIC WiMAX Service」にWi2 300がビックカメラオリジナルプランとして含まれているのは、この関係と思われる。

シンセイコーポレーションは、もともと新星貿易株式会社といって、兵庫県姫路の商社である。もともと1973年に輸出入貿易から始まり、その後IT製品、エレクトロニクス製品へ手を伸ばしている。WiMAXの端末は韓国MODACOMからのOEM販売のようだ。MODACOMが「開発元」シンセイコーポレーションが「製造元」とあるので、日本向けの製造はシンセイコーポレーションが行っているのかもしれない。ちなみにMADE IN KOREAとある。

「UQ WiMAX」と「BIC WiMAX Service」についてプレイヤーを整理すると、

■UQ WiMAX
・UQコミュニケーションズ
→通信事業者
・シンセイコーポレーション - MODACOM
→端末提供

■BIC WiMAX Service
・ビックカメラ - UQコミュニケーションズ
→通信事業者。ビックカメラはMVNO
・シンセイコーポレーション - MODACOM
→端末提供
・ラネット - ワイヤ・アンド・ワイヤレス
→販売代理、Wi-Fi提供

といったところか。

ワイヤ・アンド・ワイヤレスがビックカメラと提携するのは、契約者を増やしたいというのがあるのだろう。一方で、ビックカメラがMVNOで通信事業を行うのはなぜなんだろう?他の量販店との競争の中で、少しでも他ではやっていないキャンペーンを打ちたいということだろうか?通信料金の分配はどのようになっているのだろう?

■最近のエントリ
Haskell(GHC)をMac OSX 10.6 Snow Leopardにインストールする方法
Silverlightとトロイの木馬
ghciのコマンドまとめ
MacBookPro用インナーケースまとめ
欧米企業のソーシャル・メディア・マーケティングの普及状況

2010年3月21日日曜日

Haskell(GHC)をMac OSX 10.6 Snow Leopardにインストールする方法


Mac OSX 10.6 (Snow Leopard)にGHCをインストールするときの注意点をまとめました。

Mac Portsではインストールできない


MacPortsのghcはまだOSX 10.6には対応していないので、MacPortsからGHCをインストールすることはできません。

$ sudo port install ghc
---> Computing dependencies for ghc
---> Fetching ghc
Error: Target org.macports.fetch returned: ghc is not yet supported on Mac OS X 10.6.x (SnowLeopard)

ではどうやってインストールするのか?


OSX 10.6にGHCを入れるには、Haskell Platformにあるバイナリを使います。

HaskellPlatform

ところが・・・

それでも動かない!


実は、HaskellPlatformのバイナリをインストールしても、そのままでは動きません。

理由は、Snow Leopardとその中にあるコンパイラが基本的に64bitでの処理となったことに伴い、GHCがOSX用に生成する32bitのコードでは、アセンブラとリンカがエラーを出してしまうためです。

じゃあどうすればいいの?


GHCが動作するようにするには、ghcにパッチを当てて、32bitコードのままバイナリが生成されるようにします。

具体的には、/usr/bin/ghc (GHC自体を呼び出すためのシェルスクリプト)をテキストエディタで編集して、オプションに-optc-m32 -opta-m32 -optl-m32を追加します。

/usr/bin/ghc
#!/bin/sh

exec /Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.4/ghc -optc-m32 -opta-m32 -optl-m32 -B/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.4/. -dynload wrapped ${1+"$@"}

これで、OSX 10.6でGHCを使えるようになります。


■最近のエントリ
Silverlightとトロイの木馬
ghciのコマンドまとめ
MacBookPro用インナーケースまとめ
欧米企業のソーシャル・メディア・マーケティングの普及状況
Google Analyticsのカスタム変数機能とは?
-

2010年3月14日日曜日

Silverlightとトロイの木馬

MacのQuicktimeプレーヤでWindows Media Videoを見られるようにするプラグインに、Flip4Macというのがある。

先日Macを新しくしたので、Flip4Macも新しくインストールしようとして検索すると、Microsoftのダウンロードセンターから落とすようになっていた。名前も、Flip4Macではなく、QuicktimeComponentsとなっている。昔はFlip4Macのサイトから落としていたのに。

なんでMicrosoftなんだろうと思いつつインストールを進めると、理由がわかった。

Flip4MacがMicrosoftから提供されている理由は、Flip4Macのインストールすると一緒にSilverlightも潜り込ませるようにするためだった。


なるほどねぇ。

Flashの対抗馬としてのSilverlightだから、とにかくたくさんのPCにインストールされていることが至上命題。たくさんのPCにインストールされていれば、開発者も集まってくる。

このFlip4Macも、Yahooの映像トピックスも、いい線をついてくる。この辺は、流石Microsoftというところか。

■最近のエントリ
ghciのコマンドまとめ
MacBookPro用インナーケースまとめ
欧米企業のソーシャル・メディア・マーケティングの普及状況

2010年2月15日月曜日

ghciのコマンドまとめ

Haskellの実装の1つであるGHCの、インタラクティブ実行環境ghciのコマンドまとめです。

:type <expr>
<expr>の型を表示する。:typeは:tに省略可能。<expr>は型を持ったものでないといけないので、データコンストラクタは指定できない。

:info [<name> ...]
<name>についての情報を表示する。表示される情報は、<name>の定義やどこで定義されているか、また何の型クラスのインスタンスか、など。

-

2010年2月12日金曜日

MacBook・MacBook Pro用ケースまとめ

大学時代から使っていたPowerBookG4を壊してしまったので、MacBook Proに買い替え。

使っていたPowerBookG4は12インチで、新しく買ったMacBook Proは13インチ。なので、当然これまで使っていたケースに入らず、新しいケースを買おうとしています。

どんなのを買おうかと探してみた。

▼まず1つめ。よくある感じの黒のケース。

安さが魅力で、アマゾンのレビューをみると機能的にも問題なさそう。

▼2つめは、ネットで検索してみつけたこれ。

ファスナーがついていなくて、口がみょーんと伸びて入れるタイプ。
シンプルで出し入れしやすそう。

▼3つめ。
1415_03.jpg
assistOnというところで見つけたもの。
柄がオシャレで、形もかわいい。
バッグに入れるよりは、手持ち用かな。

▼4つめ。これは・・・
001.jpg
古洋書のようなデザインのケースだって。
おもしろい。

▼最後に、アマゾンで見つけたこれ。

フェルトのハンドメイドで封筒入れみたいなのがオシャレ。
6,000円といい値段します。
これいいなー

しばらく悩んでみてから買おう♪

MacBook Proについては、
・グレア液晶について
・SnowLeopardについて
・Chrome for Macについて
・キーボードについて
などなど、いろいろ思ったことがあるので、少しずつ書いていきたいなー。

-

2010年1月26日火曜日

トランスコスモス、DART事業を米Googleに譲渡


■トランスコスモス、DART事業を米Googleに譲渡
http://www.sem-r.com/news-2010/20100125234759.html

==================

▼1997年
ダブルクリック株式会社は、1997年の創業当時に、米国DoubleClick社
とDART技術を用いた製品及びサービスを日本国内で永続的かつ独占的に
販売する権利を取得し、事業展開を行ってきた

▼2002年12月
TOBにより、米DoubleClick社からトランスコスモス株式会社に経営権移動
※ダブルクリック社沿革より

▼2003-
トランスコスモスはDART事業を積極展開せず
※推測

▼2007年4月
米DoubleClickは米Googleによって買収される(完了は2008年3月11日)
しかし、過去に締結された独占的ライセンスにより、GoogleはDART技術
を取得したにもかかわらず、日本国内でDART技術を用いたネット広告配
信が展開できないという事態になっていた。

==================

日本でDARTが広がっていなかった理由の1つはこれ。

今回の譲渡によって、数年内にGoogleが日本でDARTの積極展開を始める
可能性がある。
-

2010年1月23日土曜日

欧米企業のソーシャル・メディア・マーケティングの普及状況


TachCrunchJPのこのエントリによると、欧米(欧≒イギリス)のマーケティングはソーシャルメディアに大きく傾斜してきているとのこと。


ソーシャル・メディア・マーケティング(SMM)の普及状況に関するAlterianのレポートによると、

  • 調査の対象は、欧米の1000人のマーケティング専門家
  • 2010年にSMMに「投資する」と答えたのが66%
  • そのうち40%(全体の25%)は、従来のダイレクト・マーケティング予算の1/5以上をSMMにシフトさせると回答
  • ソーシャル・メディアのモニタ、分析のためのツールに何らかの支出をしていたのが回答者の1/3
  • クリックストリームやウェブ分析のデータを顧客データベースやメール・データベースと連動させていないのが半数近く
  • 従来のキャンペーン方式のダイレクト・マーケティングから顧客との会話を重視する多チャンネルのマーケティングへの移行を「努力している」と回答したのが半数

日本ではまだまだキャンペーンサイトを設置してそこに広告から誘導してくるキャンペーン方式が主流で、一部twitterやブログを使ったPRが試みられている段階。一般にネットでは日本は5年遅れてアメリカに追いつくといわれているので、数年後には日本でもSMMが普及してくるか。

あるいは、日本では従来のマスの影響力の大きさ&ヤフーのような準マス媒体の存在から、独自路線で進んだりする可能性もあり。

中国はそのまま欧米路線に進むのでは?

■最近のエントリ
Google Analyticsのカスタム変数機能とは?
研究開発を着実に利益に結びつける方法
おすすめブーツスタンド
タジンなべって知ってます?
冷たくて美味しい水をいつでも!
木村カエラ:Butterfly
-

2010年1月22日金曜日

Google Analyticsのカスタム変数機能とは?


Google Analytics 日本版 公式ブログ: カスタム変数 概要によると、Google Analyticsにはカスタム変数という機能がある。

機能としてはアクセスデータをセグメントするためのもので、詳しく何ができるかというと、
  • カスタム変数では、ビジターレベルに加えてセッションレベル、ページレベルで属性を定義して、データをセグメントすることができる
  • カスタム変数のデータは、レポート画面の[ユーザー]セクションの[カスタム変数]レポートでみることができる
  • 変数名をクリックすると、その変数に含まれる値ごとにセグメントすることができる
  • カスタム変数は1ページあたり最大5つの異なる変数を設置することができる
すげー難しいよ、これ。検証に使う場合は、これを使うことになるようなプランを立てるのが難しい。逆に、プランを立てるためのインプットにしようにも、あらかじめタグを埋めたデータしかとれない。

活用している人がいたら、ぜひ教えてください!

■最近のエントリ
研究開発を着実に利益に結びつける方法
おすすめブーツスタンド
タジンなべって知ってます?
冷たくて美味しい水をいつでも!
木村カエラ:Butterfly
CUDAの入門本
-

2010年1月20日水曜日

研究開発を着実に利益に結びつける方法


研究開発について、こんな課題を感じていないでしょうか?
  • 明確な目標がない
  • 目標があっても、誰も欲しがらない製品を一生懸命作るような目標になってしまう
  • あるいは、最初から開発投資の一部しか回収できないとわかっている
研究開発は、すぐに利益に結びつくものではないため、目標設定が不適切なまま、スケジュールやマイルストンがずるずると続いてしまうということがよくあります。

では、研究開発を着実に利益に結びつけるとはどういうことでしょうか?「ザ・プロフィット」には、マネジメントによって大ヒットを創造し利益を生み出すというモデルが書かれています。

マネジメントによって大ヒットを創造するにはどうすればいいでしょう?ポイントは3つあります。
  • まず、何をどうすべきかを明確に洗い出し、大ヒットの可能性を秘めたプロジェクトにフォーカスをすること
  • 次に、あらゆる不確実性を排除することはできないことを認め、統合的なリスク・マネジメント体制を整えること
  • 最後に、リード・プロジェクトが失敗しても次の製品に教訓を活かせるように、バックアップとしての研究開発を設けること
上記のポイントを押さえるには、マネジメントの強力なリーダーシップが必須です。さらに、一番重要な鍵となるのが組織の活気です。大ヒット製品は組織の活気から生まれてくるのです。

Amazonで「ザ・プロフィット」を見てみる

■最近のエントリ
おすすめブーツスタンド
タジンなべって知ってます?
冷たくて美味しい水をいつでも!
木村カエラ:Butterfly
CUDAの入門本
最近読んでいるマーケティング本
-

2010年1月12日火曜日

おすすめブーツスタンド

先月ブーツを買ったのだが、ブーツスタンドを持っていなかったので、脱いでそのままにしておくとくたっとなってしまう。

仕方なく500mlのペットボトルで代用していたものの、いくらなんでもみっともない(ォィ

そんなわけで、ブーツスタンドを買いました。

100110_2256~001.jpg

1,000円なのに、結構材質とか質感がしっかりしていて、いい感じ。

あと、エッフェル塔に入ったラインストーンもキラキラして、ワンポイント効いてる。

これもいい買い物だ!

それはそうと、またパリ行きたいー



■最近のエントリ
タジンなべって知ってます?
冷たくて美味しい水をいつでも!
木村カエラ:Butterfly
CUDAの入門本
最近読んでいるマーケティング本
-

2010年1月10日日曜日

タジンなべって知ってます?


タジンなべって知っていますか?

タジンなべというのは、こんな変わった形↓をしたなべ。今日渋谷のロフトで見かけて、衝動買いしてしまった。



なんでこんな形をしているのかというと、もともとタジンなべは西アフリカのモロッコの伝統的な調理器具で、モロッコのような乾燥地帯では水がとても貴重だったりする。

そんな貴重な水をできるだけ使わずにおいしい蒸し料理を作るにはどうしたらいいだろう?

その解として、食材自体に含まれている水分をうまく対流させて効率良く蒸しあげられるように、こんな円錐形をしているんだそうな。

さっそく、豚ともやしの蒸し物を作ってみた。

▼蒸す前


▼できあがり


まぁタジンなべじゃなくても作れるけど、雰囲気も大事ということで、食事とあわせてモロッコ感もいただきました。



■最近のエントリ
冷たくて美味しい水をいつでも!
木村カエラ:Butterfly
CUDAの入門本
最近読んでいるマーケティング本
--

冷たくて美味しい水をいつでも!


コンビニとかでペットボトル入りの水を買うのってちょっともったいない。

水に150円払うのもなあというのもあるし、ペットボトルの資源を使ってしまうし。

そこで、小さい水筒を買ってきた。250ml入りでカバンに入れても邪魔にならないサイズ。見た目もおしゃれで、触った時の質感もグッド!

もともと家ではブリタの水を飲んでいて、これがまたすごく良くて水道水がほんとに美味しくなるんですが、これからはその水を水筒にいれて持って行くつもり。

我ながらいい買い物をした!



■最近のエントリ
タジンなべって知ってます?
木村カエラ:Butterfly
CUDAの入門本
最近読んでいるマーケティング本
--

2010年1月8日金曜日

木村カエラ:Butterfly


去年いとこの結婚式でかかっていた曲で、この曲だれのだろうと思っていたのが、木村カエラのButterfly。

紅白でたまたまみて、「あ、この曲だ!」と。

結婚式の定番ソングらしくて、実際、Butterflyはカエラが友達の結婚式のために作ったんだって。

すごくいい曲です。
iTunesでアクセスするにはこちら木村カエラ - Butterfly - Single - Butterfly
-

CUDAの入門本


本屋に行くと、CUDAの入門本が売ってました。

はじめてのCUDAプログラミング―驚異の開発環境[GPU+CUDA]を使いこなす!

GPGPUが論文で流行っていたのが5年くらい前だったので、それがだいぶ裾野まで広がってきたという感じですね。

この本は、本当に入門向けで、「まずCUDAを使ってみましょう!」という内容に1冊まるまる使っています。書いた目的はNVIDIAのサンプルでは難しすぎるからとのこと。ターゲティングがはっきりしてますね。良い。

粒子法のGPU実装やりたいなぁ。体が2つあったらいいのに。
-

最近読んでいるマーケティング本


最近集中的に読んでいる本があります。

マーケティング ビッグ・ピクチャー」という本で、MBAのテキストに使われるようなジャンルのもの。

マーケティング戦略の立て方を、トップダウンで統合的にまとめてあります。

本の目的として、最近のマーケティングのテキストは細分化されて相互の関係がわかりづらいという学生の声に応えて、実践につながるように書かれています。確かに、学者が書いた本にしては、比較的実践よりかと。

興味があればどうぞ
-

近況


最近、CG系のエントリをまったく書けていない。仕事が忙しくて。

先月シーグラフアジアにいってきたので、それについてのエントリを何か書きたいと思いつつ、もう1月になってしまったよ。

剛体シミュレーションのエントリは、実装が進まず、そのためエントリも書けず。

あと、CG系の論文をまた読みたいなぁ。

そうそう、アバターとカールじいさんの空飛ぶ家を、昨年末に観てきました。同じ日に2本。自分的映画Dayでした。

俺も空飛ぶ家が欲しい。寝てる間に会社まで飛んで行ってくれるようなやつ。
-

このブログの月間PVが5,000を越えた!



このブログの12月の月間PVは、5636でした。

月間5,000PVを突破!

どうも見て頂いてありがとうございます。

-