トップページ » 2008年02月

デフォルトのシェルを変更

macのrootユーザになった際のshellがどうも気に入らなかったのでデフォルトのシェルを変更

やり方は

sh-3.2# chsh -s /bin/bash root

でok.
一度ログアウトしてから再びrootになると

bash-3.2#

となってて変更できた。
シェルはパスをしっかりと指定しないといけないっぽい。

by   at 17:55  | Permalink

macportでphpをインストール

sudo port install php5 +apache2 +mysql5
sudo /opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so
sudo cp /opt/local/etc/php.ini-dist /opt/local/etc/php.ini

vi /opt/local/apache2/conf/httpd.conf

で、
Include conf/extras-conf/mod_php.conf


の最後の方に、
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
を追加。

/opt/local/apache2/bin/apachectl restart

apacheを再起動

by   at 17:48  | Permalink

macportでapacheインストール

macportを使ってapache2のインストールを行う

beck:~ katsuya$ sudo port install apache2

けれど、以下のようなエラーが発生してうまくいかない。

Error: The following dependencies failed to build: apr-util sqlite3 gawk gettext ncurses ncursesw readline pcre
Error: Status 1 encountered during processing.

その場合、sqllite3をアンインストールしてあげれば大丈夫。

beck:~ katsuya$ sudo port clean --all sqlite3
beck:~ katsuya$ sudo port install apache2

最後に自動起動のデーモンに追加しておわり

beck:~ katsuya$ sudo lauchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist

by   at 16:50  | Permalink

macでrootユーザを有効にする方法

Leopardでは、デフォルトでrootユーザが無効になっている。
そのため、

> sudo passwd root

とやってrootのパスワードを設定してあげればいい。

by   at 16:48  | Permalink

Flickr like horizontal menu

This tutorial explains how to implement an horizontal menu Flickr-like using CSS and Javascript to show/hide sub-menu:


Download this tutorial

Step 1: introduction
I used a simple javascript function showMenu() to show/hide sub-menu:

function showMenu(id_menu){
var my_menu = document.getElementById(id_menu);
if(my_menu.style.display=="none" || my_menu.style.display==""){
my_menu.style.display="block";
} else {
my_menu.style.display="none";
}
}

...take a look at this post for more infos about this function.

Step 2: HTML menu structure
The menu structure is the following:


...with sub-menu contained inside <li> element and (for default) with CSS display property set to "none";

HTML code is like this:

<ul>
<li class="menu" id="profile"><span><a href="index.html">Profile</a> <img src="arrow.png" name="arrow_profile"></span>
<!-- Submenu -->
<div class="sub_menu" id="id_menu_profile">
<a href="index.html">Modify Profile</a>
<a href="index.html">Contact List</a>
<a href="index.html">Add photo</a>
<a href="index.html">class="item_line">Invite your Friends</a>
<a href="index.html">Invite History</a>
<a href="index.html">Guest Pass History</a>
</div>
</li>
</ul>

To try it download the package!

by   at 15:47  | Permalink

セミナーを受ける前後にやっておきたい3つの習慣

無料のセミナーもありますが、有料・無料にかかわらず受講するからには「時間」という貴重なリソースを投下しているわけですから、何としてでも応分の“回収”はしておきたいものです。

そこでおすすめの習慣が次の3つです。

 1.受講前に、受講の目的を書き出す
 2.受講中に、受講後のタスクを書き出す
 3.受講後に、受講内容を人に話して聞かせる


1.受講前に、受講の目的を書き出す


何のために受講するのかを明確にしておきます。講師の話す内容すべてを持ち帰るのは不可能ですから、「少なくともこれだけは」という最低ラインを予め決めておくのです。

具体的には、セミナー申し込み時に「参加動機」を記入する欄があれば、そこに記入するといいでしょう(何を記入したかを控えとして手元に取っておきます)。

例えば、以下のようなイメージです。

 「○○について人に語れるようになる」
 「○○をもっとラクにできる方法を身につける」
 「○○の進め方について周りの人と意見交換する」

こういった、ミッションステートメントならぬ「受講ステートメント」とでもいうべき言葉をもってセミナーに臨めば、おのずと内容に集中できます。注意深く聞くところと流すところとのメリハリもついてきます。あるいは、講師に質問をしたくなるでしょう。

質問といえば、常々疑問に思っていることがあります。それは、「質問を何度しても、あるいは質問をまったくしなくても受講料金は変わらないのに、なぜ多くの人は質問をしないのだろうか?」ということ。

質問のタネをあらかじめ用意しておけば、質問せずにはおれないはずです。


2.受講中に、受講後のタスクを書き出す


せっかくお金と時間を投入したのですから、それを成果に結びつけたいものです。「成果に結びつける」というと大仰な感じがしますが、要は「これはいい!」とか「やってみよう!」と心動かされたこと──これがセミナーという現場に身を置くことで得られる最大のメリットでしょう──を、実行可能な形に変換することです。

セミナーという非日常で得られた“果実”を、日常に持ち帰って腐らせないうちに食べて“栄養”に変えるのが目的です。そのためには、すぐに食べられるように小分けにしておくことです。

具体的には、やろうと思ったことを、すぐにできるレベルにまで分解し、普段使っているタスクリストに盛り込むのです。こうすることで、日常のルーチンに組み込まれますから、確実にセミナーの“栄養”を摂取することができます。


3.受講後に、受講内容を人に話して聞かせる


タスク化することに加えて効果的なのが、セミナーで得たことを同僚や知人に話して聞かせること。当然、講師と同じようにはいきませんから、その濃度はぐっと薄くなります。それでも、相手にわかってもらうべく努力しますから、学んだ内容を頭の中で整理することになり、自分のためにもなります。というよりむしろ、自分のためにやっているといったほうがいいでしょう。

人に話すことのメリットは、それによって相手から質問される可能性が高いことです。あいまいにしか理解できていなければ、

 「それはどうして?」
 「○○じゃなくてもいいんじゃない?」

などのツッコミを前にたじろいでしまうでしょう。逆にこれらのツッコミにきちんと答えられれば、そのセミナーの内容をきちんと自分のものにできた証拠といえます。

これを「模擬セミナー」と呼んでいますが(受験指導で有名な和田秀樹氏が「模擬授業」と呼んでいたのにちなんで)、これをするとしないのとでは、セミナーへの時間投資効果はまったく違ってきます。

 「ランチおごるから、オレの模擬セミナーを聴いてくれ!」

くらいの勢いでも十分にモトを取れるはずです。

by   at 13:01  | Permalink

リアルタイム顔認識

スタンフォード大で開催されたメタバースサミット(そんなのやってたのか)で、リアルタイム顔認識技術のseeingmachinesという会社のデモをRobert Scobleが絶賛しているので見てみた。

ノートPC(Mac)のカメラとソフトウェアで、目や口の位置をリアルタイムに追跡して、顔の位置を追っていSeeing Machinesという会社のデモ。

facelab-hui-diagram.jpg

アイトラッキング用の技術
は普及しているようだが、まばたきや口の動き、画面を向いているか注意がそれているか、画面はつけているけど別のところ(テレビとか)を見ているとかもリアルタイムで取れるということだ。ウェブサイト上に起こった動きに対して起こる反応や、目と口の位置の変化から感情も取れたりするのかも。

メタバース(セカンドライフに代表される仮想世界)のカンファレンスに来ているということは、カメラで撮った自分の動きを3D内のキャラクターに再現させるような用途も考えているのだろう。サイトにはこういうデモ画像もあった。

facelab-biometrics-animation.gif

ライブラリとしてライセンスもされているということだ。これを使えば、Ustreamで自動的に目線を入れるとか、ヒゲチェンのリアルタイム版とかも作れるのかも。

送った写真を動かすようなものはあるけど、動いているものにそのまま対応するようなサービスってもうあったっけ?

by   at 12:59  | Permalink

ミーティングで使えるちょっとした話法いろいろ

  • 「今日何を決めますか?」
  • 特に外部の人とミーティングする場合、ミーティングの作法が違うことが往々にしてあります。そうした場合、お互いの出方を伺いつつやるので時間の無駄になりがち。

    そうしたときはこの質問を最初にしましょう。成果にフォーカスさせることにより、メンバーがちょっとだけ真剣になりますよ。

  • 「今日は何時までですか?」
  • 終わりの時間が決まっていないとだらだらミーティングが終わります。最初に決めておいて、ホワイトボードに書いておきましょう。当たり前だけど往々にして決まっていないことが多い。もしくは参加者間で意識の違いがある場合が多いです。

  • 「他にアジェンダありますか?」
  • アジェンダはミーティングの最初に全員に確認しましょう。「今日、あのこと決まるのかなぁ・・・」は大きなストレスになります。

  • 「何分いります?」
  • しゃべりすぎる人には事前にこう聞くようにしましょう。こう聞いておけば「○分経ちましたよ」と話を中断しやすくなります。

  • 「じゃ、○○が解決したとして・・・」
  • なにか問題があって議論が前に進まないときは(よくある)、とりあえずそれが解決したと仮定して話を進めましょう。往々にして最初の問題が問題じゃなくなることがあります。

  • 「質問ですか?コメントですか?リクエストですか?」
  • だらだらとしゃべる人に向けて。本人もわかっていない場合が多い。

  • 「あまり時間はないですが、今何を決めますか?」
  • 議題のわりに時間がない、というシーンはよくあります。司会は時間を見ながら「今決められないことについて、今どうするか?」を常にウォッチしていなくてはなりません。

  • 「いつまでにやりますか?」
  • 期限の決まっていないタスクのなんと多いことか・・・(と思いません?)。

  • 「どうフォローアップしましょうか?」
  • 重要なタスクに関してはフォローアップする方法を決めておきましょう。誰か他の人に頼むといいですね。

  • 「他にもやることありますよね?」
  • 見積もりが甘い人は仕事を引き受けがち。そういう人はウォッチしておいて、「他にも仕事あるんだから、今うけない方がよくない?」とやんわりと警告しましょう。

  • 「じゃ、To Doをまとめますか」
  • ミーティングの成果はそこで決められたTo Doで決まります。最後に「誰が」「いつまでに」「具体的に何をするか(何がどうなったらそのタスクが終わりなのか)」を確認して終わりましょう。

by   at 12:57  | Permalink

トイデジカメ「VQ1005」が楽しそう!

何がいいって、まずはそのサイズ。

幅6cm x 奥行2cm x 高さ3.8cmってどんだけー。タバコの半分で、まさにキーホルダーです。重さも15gです。

で、小さいだけでなく、撮影できる写真がこれまた味のある。「LOMO」などのトイカメラ風の写真が撮れる訳です。Flickrで見ても良い感じ。

そして!

価格も4,680円となかなかお手頃。

ファインダーを覗いて撮影するのですが、液晶がないので確認はできません。このあたりはフィルムカメラっぽさがあります。

バッテリの持ちとかどうなんだろうと思って調べたら「VQ1005 | Genie III world」という素晴らしいサイトがありました!

vq15000_toy_digicame_11.png

海外のサイトで見ましたが、高性能の単四(AAA)アルカリ乾電池でも「8 時間ももたねーじゃんか!!」とお怒りになっている方がいるくらいで、バッテリーの減りには十分ご注意ください。
背面のステータス・ディスプレイ右横に縦長のモードボタンがあるので、3 秒押し続けます。 「ピッ」というビープ音が準備 OK の合図です(ディスプレイになにやら表示されます)
(ファインダーは)まったくアテになりませんので、覗いて「オレ(私)は撮影してるんだ」と主張する以外は不要な動作となりますのでご注意ください。
2 秒じっとしているのは正直きついです。狙った獲物(?)が2 秒そこにとどまっているよう祈るのも正直しんどいです

やっぱりバッテリの持ちはあまりよろしくなくて、シャッターが切れるまでタイムラグもあって、ファインダーもやっぱり飾りで‥‥と何かと不便そうなのですが、撮れる写真は味があるんですねぇ。

小さくてオモチャみたいなものだから、一つくらいはカバンに忍ばせておいてもいいかな、という気もしますが。

動画もこんな具合に‥‥

やはり味がありまくりです。

けっこうそそられますね‥‥。

海外のデジカメで、日本だと楽天市場で購入が可能でした。ただし、いつでも在庫がある訳ではないみたいです。

by   at 12:56  | Permalink

大量の情報を“放し飼い”にしながらアイデアを生み出す方法

情報の「放牧」と「交配」の手順


本書よりプロセスだけ抜き出すと次のようになります。

 1.集める
 2.寝かせる
 3.放牧する
 4.化学反応を起こさせる(交配)
 5.アイデア!

このプロセスだけ眺めると、ジェームス・ヤングの『アイデアのつくり方』を連想させます。

 1.事実を観察する(収集)
 2.咀嚼する(整理)
 3.放り出す(寝かす)
 4.アイデアが飛び込んでくる(ユーレカ!)
 5.現実に適用する(実用化)

でも、微妙に違うところがあることに気づくでしょう。そう、「放牧」と「化学反応」というステップの存在です。この2つに注意しながら、それぞれ見ていきます。


1.集める


ソースを大きく2つに分類しています。

 1.本や雑誌
 2.上記以外のすべて(人から聞いた話、テレビやラジオで耳にしたこと等)

1については、気になったところにどんどん付箋を貼っていきます(使用する付箋としてはこちらでもご紹介した、一部が透明になっているポストイット・フラッグが推奨されています)。

2については、「二軍ノート」を用意せよ、とあります。「二軍」というからには「一軍」もあるわけですが、著者はいずれのノートもモールスキンがよい、としています。

使い分けについては以下。

日々目にする、耳にする情報、面白かったことなどは、まずは第一ステップとして二軍ノートに記録しておくのです。

そして、その中からこれは面白い、興味深いと思ったものをあとでセレクトし、一軍ノートにデビューさせるのです。(p.72)

二軍ノートの段階では、ムダと思ってもとにかくメモをすること。後から必要ないと判断したら、一軍に昇格させなければいいだけだ、としています。


2.寝かせる


付箋を貼った本や雑誌、あるいは二軍ノートに書いたメモの一部が一軍に移されるわけですが、その前に1ヶ月寝かすべきだと主張されています。その理由としては次のようなことが書かれていますが、

 ・ウィスキーやワインの熟成のように、寝かせると味わいが出る
 ・寝かせることによって記憶のシナプスを強化させる

いずれも料理番組における「きつね色になるまで〜」のような曖昧さが残ります。著者は明示していませんが、ここで大切なことは、「一定の成果を得るにはそれなりの時間が必要なのだ」という真理ではないかと個人的には思います。オーブントースターに入れたグラタンがこんがりと焼き上がるまでワクワクしながら待つ、そんなイメージと重なったからです。

それよりも、日々収集している情報ごとに「どの情報が一ヶ月の熟成期間を終えたか」を管理するノウハウが気になります。おそらく厳密さは要求されないのだと思いますが、冷蔵庫の中の賞味期限が気になる身としては、

 「しまった、気づいたら2ヶ月寝かせてしまった!Σ(゚ロ゚ )!」

 という事態は避けたいため、何らかのリマインダーをセットしているのかな、と思いながらこのあたりを読み進めていました。結局、関連する言及は見あたりませんでした、おそらく、どうでもいいのでしょう。


3.放牧する


いよいよ放牧の時がやってきました。時間がかかった分だけ期待も膨らみます。

でもフタを開けてみると、

 ・手帳に連番を付けて書いていく

だけでした。片づけずに、すなわち整理分類は一切せずに、生のまま「ひたすら出てきた順に情報を並べていくだけ」だといいます。

手帳は、いつでも、どこでも、パラパラとページをめくることができると書きましたが、このアトランダムな情報の羅列もそういう読み方を可能にさせます。情報の羅列だから、どこから始まってどこで終わるということはありません。開いたページから牧場のチェックが始められます。(p.100)

これが放牧の実態、ということになります。著者はこの方式でモールスキンの手帳を何冊も情報で埋め尽くし、旅に出る時には、適当に数冊選んで持ち出すといいます。さしずめ“ポータブル放牧”というところでしょうか。ちなみに、1冊あたり約1000の情報が収まるそうです。

このあたり、アイデアマラソンの樋口健夫さんによる『「金のアイデア」を生む方法』とも重なります。

これを続けるのだ。そうすれば、必ず宝物を見つけることができる。これが本書のメインテーマである。

事実、私は23年間、アイデアマラソンを継続してきた。この経験を通して確信を持って言えることがある。それは感じたことを毎日、少なくとも一個、ノートか、手帳に(場合によっては、パソコンかブログに)、書き続けたおかげで自分の求めていた貴重な思いや、発想を見つけ出すことができた。また、多くのことを実現することができた。



4.化学反応を起こさせる(交配)


さて、このような手帳を活用した放牧を通じて次の3つの力が発揮できるといいます。

 1.雑談力
 2.プレゼン力
 3.企画力

特に最後の企画力については次のように指摘します。

手帳における情報交配の一番気持ちがいい効果は、見知らぬ情報が出会って、そこからさらに新しい企画が生まれることです。Aという情報とBという情報から、Cというまったく新しい指針、アイデア、つまり企画が生まれるケースです。(p.111)

こうした“交配”はしかし、一朝一夕にできるものではありません。そこで、「交配を進めるためのちょっとした訓練」の方法が紹介されています。キーワードは既成概念。いいかえれば常識でしょう。


5.アイデア!


最後はゴールであるアイデアが生まれる瞬間です。

このように、一見、無関係な情報が交配して、そこに「筋」を通すひらめきがあると企画が出来上がっていきます。その組み合わせのタイミングの、ジャンプ力こそ企画力だと考えます。意表をついた組み合わせ、え、そっちに飛んでいくのという意外性。それをドシドシ鍛えていきましょう。(p.134)

by   at 17:23  | Permalink

mysqlデータ移行

mysqldump -u root -q wordpress_horn -p --default-character-set=binary
> horn-binary.sql

mysql -u yoshi -p wordpress_horn < horn-binary.sql

by   at 12:57  | Permalink

mysql環境構築

[root@fedora ~]# mysql -u root ← MySQLサーバーへrootユーザでログイン
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6 to server version: 5.0.21

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> select user,host,password from mysql.user; ← 登録済ユーザ、パスワード確認
+------+----------------------+----------+
| user | host | password |
+------+----------------------+----------+
| root | localhost | | ← ホスト名がlocalhostのrootユーザにパスワードが設定されていない
| root | fedora.fedorasrv.com | | ← ホスト名が自ホストのrootユーザにパスワードが設定されていない
| root | 127.0.0.1 | | ← ホスト名が127.0.0.1のrootユーザにパスワードが設定されていない

+------+----------------------+----------+
4 rows in set (0.00 sec)

mysql> set password for root@localhost=password('rootパスワード'); ← ホスト名がlocalhostのrootユーザにパスワード設定
Query OK, 0 rows affected (0.00 sec)

mysql> set password for root@'fedora.fedorasrv.com'=password('rootパスワード'); ← ホスト名が自ホストのrootユーザにパスワード設定
Query OK, 0 rows affected (0.00 sec)

mysql> set password for root@127.0.0.1=password('rootパスワード'); ← ホスト名が127.0.0.1のrootユーザにパスワード設定

Query OK, 0 rows affected (0.00 sec)

mysql> select user,host,password from mysql.user; ← 登録済ユーザ、パスワード確認
+------+----------------------+------------------+
| user | host | password |
+------+----------------------+------------------+
| root | localhost | **************** | ← ホスト名がlocalhostのrootユーザにパスワードが設定された
| root | fedora.fedorasrv.com | **************** | ← ホスト名が自ホストのrootユーザにパスワードが設定された
| root | 127.0.0.1 | **************** | ← ホスト名が127.0.0.1のrootユーザにパスワードが設定された
+------+----------------------+------------------+
4 rows in set (0.00 sec)

mysql> exit ← MySQLサーバーからログアウト

Bye

[root@fedora ~]# mysql -u root
 ← ホスト名がlocalhostのrootユーザでパスワードなしでMySQLサーバーへログインできないことを確認
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

[root@fedora ~]# mysql -u root -h 'fedora.fedorasrv.com'
 ← ホスト名が自ホストのrootユーザでパスワードなしでMySQLサーバーへログインできないことを確認
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

[root@fedora ~]# mysql -u root -h 127.0.0.1
 ← ホスト名が127.0.0.1のrootユーザでパスワードなしでMySQLサーバーへログインできないことを確認
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

[root@fedora ~]# mysql -u root -p ← MySQLへrootでログイン
Enter password:  ← MySQLのrootパスワード応答

ホスト名がlocalhostのrootユーザでパスワードありでMySQLサーバーへログインできることを確認
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6 to server version: 5.0.21

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> exit ← MySQLサーバーからログアウト
Bye

管理者権限を持つユーザを登録する

MySQLのユーザ「root」と同じ、管理者権限を持つユーザ「user1」を登録するには、次のような2つのGRANT構文を実行します。MySQLのユーザ「user1」にはパスワードを設定しています。

例:管理者権限を持つユーザを登録する
mysql> GRANT ALL PRIVILEGES ON *.* TO user1@"%"
    -> IDENTIFIED BY 'パスワード' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO user1@localhost
    -> IDENTIFIED BY 'パスワード' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

どのホストからでもサーバに接続できるようにするために、「user1@"%"」と「user1@localhost」を指定した、2つのGRANT構文を実行しています。(localhostから接続できるようにするためには、「user1@localhost」を指定する必要があります)

また、「WITH GRANT OPTION」によりGRANT構文の実行権限を与えています。

管理者権限を与えるパラメータについて
権限:ALL PRIVILEGES(すべての権限)
データベース名.テーブル名:*.*(すべてのデータベースのすべてのテーブル)
ユーザ名:user1@"%"      (すべてのホスト「"%"」の、ユーザ「user1」)
          user1@localhost(ローカルホストの、ユーザ「user1」)
GRANT実行権限:(GRANT構文を実行する権限)


by   at 10:02  | Permalink

macportsのインストール

インストールの準備

MacPortsはソフトウェアをコンパイルしてインストールするので、コンパイラやらがいろいろと必要。そこで、Xcode Toolsをインストールする。これは、Mac本体に付属のOSインストールディスクか、http://connect.apple.com/から手に入るけど、インストールディスクからがおすすめ。

最近のマシンだとOSのインストールディスクの



  • Xcode Tools/XcodeTools


を実行すればOK。


MacPortsのインストール


準備が済んだら、MacPortsをインストールする。MacPortsのバイナリは、http://svn.macosforge.org/repository/macports/downloads/からダウンロードできる。dmg形式のアーカイブを使うのが最も手軽で、Mac OS X 10.4を使ってる人は、DarwinPorts-1.3.1/DarwinPorts-1.3.1-10.4.dmgをダウンロードしよう。

ダウンロードができたら、マウントしたディスクの中のインストーラを実行して、インストールを完了する。


環境変数の追加


MacPortsは、MacPorts自身を含めたファイルをすべて/opt/local以下にインストールする。なので、各種パスを/opt/localに通しておく必要がある。そこで、自分のシェルの環境変数を以下のように設定しておく。


export PATH=/opt/local/bin:/opt/local/sbin/:$PATH
export MANPATH=/opt/local/man:$MANPATH

Mac OS Xデフォルトbashの場合は、自分のホームディレクトリの.bashrcに上の2行を書き込んでおく。


MacPortsのアップデート


ここまでくれば、コマンドラインからportコマンドが使えるようになっているはず。MacPorts自身を最新の状態にアップデートした後、インストールできるソフトウェア一覧を更新する。それぞれ、以下のコマンドを実行すれば良い。

$ sudo port -d selfupdate
$ sudo port -d sync

MacPortsの使い方


アップデートの時少し触れたようにMacPortsを操作するにはportコマンドを利用する。このコマンドはたいがい/opt/local以下を変更するので、sudoと組み合わせて利用することが多い。


以下、うちがよく使う操作を並べてみた。もっとステキな機能があるのかもしれないので、気になる人はman portをチェックしてみて。あと、portに-dオプションをつけて実行すると、コンパイルの詳細な出力が見れるので、コンパイル風景を眺めるのが好きな人はやると良さそう。


ともあれ、以下のコマンドで自分の好きなツールをいろいろいれれるのでお試しアレ。

ソフトウェア一覧の更新

初期設定時にも行ったsyncアクション。これをしないとソフトウェア一覧が古いままなので定期的にやるべし。


$ sudo port sync

ソフトウェアの検索

自分の利用したいソフトウェアがMacPortsで使えるのかを調べるのには、searchアクションを使う。zshで検索すると、


$ port search zsh
zsh shells/zsh 4.2.6 Zsh is a UNIX command interpreter (shell)
zsh-devel shells/zsh-devel 4.3.2 Zsh is a UNIX command interpreter (shell)

てな感じに、普通のzshとzsh-develという開発版があるということがわかる。


ソフトウェアのインストール

文字通り、installアクションを使う。


$ sudo port install zsh-devel

実行すると、依存関係の解決、ソースコードのダウンロード、コンパイル、インストールが自動で行われる。

variantsの表示

MacPortsにはvariantsという仕組みがあって、ソフトウェアをインストールする際に追加機能を選択することができるようになっている。どんなvariantsがあるのかは次のように調べられる。


$ port variants zsh-devel
zsh-devel has the variants:
darwin_8
dp_completion
utf8

zsh-develには、darwin_8、dp_completion、utf8という3つのvariantsがあることがわかる。これらを指定することで、機能を有効にした状態でソフトウェアがビルドされる。指定するには以下のように、


$ sudo port install zsh-devel +dp_completion +utf8

のように+を付けて指定する。ちなみに、darwin_8とかのMac OS X専用オプションは自動で付加されるので指定しなくても良い。

あと、varinantsを変えて同じソフトウェアをインストールすると、別物あつかいになって、もとからあるやつと衝突するので注意。先にアンインストールするか、deactivateしておく。


ソフトウェアのアップグレード

$ sudo port upgrade zsh-devel

ソフトウェアのアンインストール

$ sudo port uninstall zsh-devel

ソフトウェアのdeactivateとactivate

MacPortsには、deactivateといってソフトウェアを完全に削除せずに一時的に無効にする機能がある。異なるvariantsを指定したあるソフトの複数のバイナリを切り替えてためしたいときなどに便利。


$ sudo port deactivate zsh-devel

逆はactivate


$ sudo port activate zsh-devel

インストール済みソフトウェアの表示

$ port installed

インストール済みソフトウェアをすべてアップグレードしたいときはupgradeと組み合わせて、


$ sudo port upgrade installed

とすれば良い


アップグレード可能なソフトウェアの表示

$ port outdated

by   at 01:19  | Permalink

macportsを利用してmysqlのインストール

Mac mini サーバにmysqlをインストールする。今回はmysql.comからバイナリ/ソース/パッケージをダウンロードせず、Macportsを使ってインストールしてみよう。

インストール

[yuanying@Magnus ~]$sudo port -uv install mysql5 +server
Password:
...
(中略)
...
--->  Creating launchd control script
###########################################################
# A startup item has been generated that will aid in
# starting mysql5 with launchd. It is disabled
# by default. Execute the following command to start it,
# and to cause it to launch at startup:
#
# sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
###########################################################
******************************************************
* In order to setup the database, you might want to run
* sudo -u mysql mysql_install_db5
* if this is a new install
******************************************************

+serverバライアントをつけてmysql5をインストールしてやる。このバライアントをつけることによって自動起動用の設定ファイルも一緒にインストールされる。

初期データベースのインストール

[yuanying@Magnus ~]$sudo -u mysql mysql_install_db5
Password:
Installing MySQL system tables...

ログの最後に書いてあったようにsudo -u mysql mysql_install_db5と実行し、初期データベースを作成してやる。

設定ファイルの編集

[yuanying@Magnus ~]$sudo cp /opt/local/share/mysql5/mysql/my-small.cnf /opt/local/etc/mysql5/my.cnf
[yuanying@Magnus ~]$sudo vim /opt/local/etc/mysql5/my.cnf
[yuanying@Magnus ~]$more /opt/local/etc/mysql5/my.cnf
...
(中略)
...
# The MySQL server
[mysqld]
...
(中略)
...
## USER-SETTINGS
default-character-set = utf8
default-storage-engine=innodb
skip-character-set-client-handshake
##
...

mysqldセクションに私は上の三つの設定を書き足した。

サーバの起動

launchctlを使ってサーバを起動する。loadすることで自動起動されるようになるぽい。Linuxでいうchkconfig mysql5 onと/etc/rc.d/mysql5 startを組み合わせた感じ?

mysqlをインストールするときに+serverバライアントを追加しておくと、/Library/LaunchDaemonsフォルダにorg.macports.mysql5.plistという名前の自動起動用の設定ファイルが生成されているので、それを利用する。

[yuanying@Magnus ~]$sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist

クライアントから接続してちゃんと動作しているか確認してみる。

[yuanying@Magnus ~]$mysql5 -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.0.45 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>


OK。


参考


by   at 01:17  | Permalink

日立製作所のライフ顕微鏡によるライフタペストリー

温度や加速度センサーを個人についてその人の行動パターンを分析する「ライフ顕微鏡」というシステムを研究をしている日立製作所がユニークな論文を公開している。この画像はその論文にある「ライフタペストリー」の画像だ。ヒマナイヌの「ライフスライス」もこれを写真で行うことができるので「記憶のレントゲン」として被験者の見てきたであろう主観画像をタペストリー状にしたものを作成。2002年の文化庁メディア芸術祭で特別賞を受賞している。

%E3%83%A9%E3%82%A4%E3%83%95%E3%82%BF%E3%83%9A%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC.png

by   at 22:45  | Permalink

完璧な.vimrc

文字コードの自動認識

以下を .vimrc に書いておけば日本語の文字コード識別は多分完璧 :D


" 文字コードの自動認識
if &encoding !=# 'utf-8'
set encoding=japan
set fileencoding=japan
endif
if has('iconv')
let s:enc_euc = 'euc-jp'
let s:enc_jis = 'iso-2022-jp'
" iconvがeucJP-msに対応しているかをチェック
if iconv("\x87\x64\x87\x6a", 'cp932', 'eucjp-ms') ==# "\xad\xc5\xad\xcb"
let s:enc_euc = 'eucjp-ms'
let s:enc_jis = 'iso-2022-jp-3'
" iconvがJISX0213に対応しているかをチェック
elseif iconv("\x87\x64\x87\x6a", 'cp932', 'euc-jisx0213') ==# "\xad\xc5\xad\xcb"
let s:enc_euc = 'euc-jisx0213'
let s:enc_jis = 'iso-2022-jp-3'
endif
" fileencodingsを構築
if &encoding ==# 'utf-8'
let s:fileencodings_default = &fileencodings
let &fileencodings = s:enc_jis .','. s:enc_euc .',cp932'
let &fileencodings = &fileencodings .','. s:fileencodings_default
unlet s:fileencodings_default
else
let &fileencodings = &fileencodings .','. s:enc_jis
set fileencodings+=utf-8,ucs-2le,ucs-2
if &encoding =~# '^\(euc-jp\|euc-jisx0213\|eucjp-ms\)$'
set fileencodings+=cp932
set fileencodings-=euc-jp
set fileencodings-=euc-jisx0213
set fileencodings-=eucjp-ms
let &encoding = s:enc_euc
let &fileencoding = s:enc_euc
else
let &fileencodings = &fileencodings .','. s:enc_euc
endif
endif
" 定数を処分
unlet s:enc_euc
unlet s:enc_jis
endif
" 日本語を含まない場合は fileencoding に encoding を使うようにする
if has('autocmd')
function! AU_ReCheck_FENC()
if &fileencoding =~# 'iso-2022-jp' && search("[^\x01-\x7e]", 'n') == 0
let &fileencoding=&encoding
endif
endfunction
autocmd BufReadPost * call AU_ReCheck_FENC()
endif
" 改行コードの自動認識
set fileformats=unix,dos,mac
" □とか○の文字があってもカーソル位置がずれないようにする
if exists('&ambiwidth')
set ambiwidth=double
endif

vim の文字コード判定の仕組みは以下の通りです。

  • fileencodings の設定を前から順に試してはじめにマッチしたものが採用される
  • encoding や fileencoding の設定値が途中に発見されるとそこで判定を止めてしまい後の設定は無視される
    • この動作により、UNIX環境(euc-jpの場合)では euc-jp が fileencodings の前の方に設定されていると、cp932 や utf-8 で書いたファイルが文字化けてしまうので気をつける必要がある。
  • encoding に設定される文字コードは fileencodings に見つからなかったときのデフォルト値に使われるので fileencodings に設定する必要は無い。

上記の設定では実行環境に合わせてそれらが吸収できるので windows 環境でも unix 環境でも上手く判定できる。

■追記

  • EUC-JPで「〜(波線)」が文字化ける問題を修正(eucjp-msが使える場合はそれを使うように)した。 2006-10-06 (金) 02:24
  • fileencoding=utf-8で編集中、□や○があるとその行でカーソル位置がずれる問題があったのだが、解決する設定(ambiwidth=double)を追加した。 2006-11-17 (金) 21:48
  • 日本語を含まないファイルを開いたときにfileencodingがiso-2022-jpになってしまう問題があったが、日本語の有無を再チェックしてより望ましい値(encodingの値)をfileencodingに設定するようにした。 2007-01-10 (水) 11:38

文字コードを指定してファイルを開きなおす

普通は上記の自動認識で問題ないと思うが、それでも文字化けする場合や、わざと違う文字コードで開いてみたい場合に使う。

例えば以下のようにするとeuc-jpでファイルを開き直せる。

:e ++enc=euc-jp

文字コードを変更して保存する

cp932 (Shift-JIS) にするには以下のようにする。

:set fileencoding=cp932

この状態だとまだ保存してないので :w してやれば文字コードを変更して保存になる。

改行コードの自動認識

以下を .vimrc に書いておけばよい。

set fileformats=unix,dos,mac

新規ファイルの場合 fileformats の最初の改行コードが使われるようなので好みにより順番を変えます。

順番を変えても自動判定が失敗することは経験上無いようです。

改行コードを変更する

:set fileformat=改行コードの種類

ff は fileformat の短い形式なので ff でも良い。
改行コードの種類で指定できるのは dos, max, unix の3つです。

例)Windows形式の改行コードに変更するには以下のようにします。

:set fileformat=dos

改行コードの見分け方(UNIX環境前提)

改行コードが unix でない場合、^M という文字が大量に表示されることがあります。これは mac で使われる改行文字です。 これを見たらきっと改行コードが違うんだなと思ってください。

見分け方は以下の通りです。

  1. 普通に改行されていて特に問題を感じない → 改行コードは unix
  2. 全ての行末に ^M がくっついている → 改行コードは dos
  3. ^M が沢山表示されるうえに全てが1行に表示されてしまう → 改行コードは mac

改行コードが分かったら以下を実行すれば正常に表示されるようになります。(dosと分かった場合)

:e ++ff=dos

検索語が画面の真ん中に来るようにする

.vimrc に以下のようなキーマッピングを書いておきます。

nmap n nzz 
nmap N Nzz 
nmap * *zz 
nmap # #zz 
nmap g* g*zz 
nmap g# g#zz

解説:zz はカレント行を画面の中心にします。 (つまり n で検索語にカーソル移動したら勝手に zz でカレント行が画面の真ん中なるようにスクロールされるようになる)

暗号化

vim は単体で PKZIP とかと同じ暗号化アルゴリズムでファイルを暗号化することが出来ます。

  1. ファイルを暗号化する
    1. 暗号化したいファイルを以下のように -x オプションを付けて起動します。
      vim -x secret.txt
    2. 起動すると暗号化に使うパスワードの入力を求められます。確認の為2回聞かれます。
    3. 開いたら今まで通り普通にファイルの編集画面になります。
    4. このまま普通に :w などで保存すればファイルは暗号化して保存されます。
  2. 暗号化されたファイルを編集する
    1. vim によって暗号化されたファイルを開くには普通に vim で開くだけです。
      vim secret.txt
    2. 起動時にパスワードを要求するプロンプトが出るので正しいパスワードを入れれば普通に開いて編集できます。
    3. 間違ったパスワードを入れても復号化されますがそれは意味の無い只のバイナリデータに見えるはずです。

  3. 暗号化を解除する、もしくはパスワードを変更する。
    1. まずは普通に起動してパスワードを入力してファイルを開きます。

    2. 以下のコマンドを実行すると新しいパスワードを要求されます。
      :X

    3. パスワードの変更後は普通に保存すれば新しいパスワードで暗号化されて保存されます。

    4. 暗号化を解除したい場合は :X でパスワードを空(何も入力せずにEnter)にして保存するだけです。

  4. 注意点
    1. 保存されたファイルは暗号化されますが、スワップファイルは暗号化されません。それを読むことが出来る人はパスワードを知らなくても内容を見ることが出来ます。
      1. vim の起動時に -n を付けて起動すればスワップファイルは作成されません。

バイナリ編集

vim でバイナリを編集したい場合ですが、よくある16進ダンプとそれのテキスト表示があると便利です。

探してみたところこのサイトで xxd を使ってバイナリ編集をする方法を紹介していたので試してみたところ便利そうなのでメモ。
但しそのままだと少し問題があった*1 のでそれを修正した版が以下の設定です。

"バイナリ編集(xxd)モード(vim -b での起動、もしくは *.bin ファイルを開くと発動します)
augroup BinaryXXD
  autocmd!
  autocmd BufReadPre  *.bin let &binary =1
  autocmd BufReadPost * if &binary | silent %!xxd -g 1
  autocmd BufReadPost * set ft=xxd | endif
  autocmd BufWritePre * if &binary | %!xxd -r | endif
  autocmd BufWritePost * if &binary | silent %!xxd -g 1
  autocmd BufWritePost * set nomod | endif
augroup END
by   at 02:04  | Permalink

ホームディレクトリのフォルダ名を日本語から英語に変更するには

 Fedora 8などでは、ホームディレクトリに「ダウンロード」や「ドキュメント」などの日本語名のフォルダが作成される。


[ユーザ]パネル
初期状態のホームディレクトリ

 GUIでの操作であればフォルダ名が日本語になっていても問題ないが、CUIではかな漢字の変換作業を行わなければならないので面倒だ。ここでは、ホームディレクトリのフォルダ名を日本語から英語に変更する方法を説明する。






【関連記事】

ホームディレクトリ下のフォルダ作成を停止するには

 まず、GNOMEが起動している状態で、[アプリケーション]メニューの[システムツール]−[端末]を選択して、GNOMEのターミナルエミュレータを起動する。そして、以下のコマンドを実行する。

$ LANG=C xdg-user-dirs-gtk-update

 すると、画面上に「フォルダの言語を変更しますか?」と確認する英文のダイアログボックスが表示される。

[ユーザ]パネル
フォルダ名の変更を確認するダイアログボックス

 フォルダ名を変更する場合は[Update names]ボタンをクリックする。次に、[システム]メニューの[設定]−[ユーザ向け]−[セッション]を選択して、[セッション]ダイアログボックスで[User folders update]のチェックマークをオフにする。

[ユーザ]パネル
[セッション]ダイアログボックス

 [閉じる]ボタンをクリックして[セッション]ダイアログボックスを閉じたら、作業は完了だ。

by   at 14:18  | Permalink

Zenphoto

外国の方向けに写真サイトを作ってみました。

Zenphotoで作りました。Zenphotoはインストールが簡単でしかもファイルをサーバのファイルシステム上に置けば、それを自動的に認識してページを作ってくれます。meta情報はファイル名と関連づけられてデータベースに保存されています。

http://www.tymy.net/~matsu/photo/

by   at 11:55  | Permalink  | Comments (0)  | Trackbacks (0)

研究計画書の4つのポイント:カスッてない



 研究のよしあしは「細部」に宿ることがあります。その領域にどっぷりつかった人でなければ、わからないことも多々あります。そうした「細部」は、僕にはわかりません。

 しかし、「わかること」がないわけではありません。「研究計画書で提案されている微細な内容」や「研究内容の細部の斬新さ」については、わからないこともあるのですが、

「その研究計画書が、ちゃんとしているのか、していないのか」

 については、たとえ分野が違ってもわかるものなのです。

 その際には、4つのポイントをチェックしているような気がします。

1.研究で取り組みたいポイントが焦点化されているか?
2.文章の論理展開は正しいか?
3.研究方法はちゃんと記述されているか?
3.参考文献などをきちんと引用しているか?

 これら4点をざっとチェックしていけば、だいたい「研究計画書の善し悪し」はわかってしまいます。非常に重要なのは「型」ですね。この段階で、「型」が完璧にマスターされていることはないとは思うのですが、少なくとも「意識」されている必要があるでしょう。
 そして、この中で最も差がでるのが1の「焦点化」です。

 例えば、今、仮に

「本研究では、学力向上をめざす教育手法の開発を行いたい」

 という研究計画があったとします。このままでは全く「焦点化」されていない研究です。でも、実際にこのくらい「曖昧な研究計画」が提出されることは少なくありません。わたしの言葉で言えば、「カスッてない:フォーカスがあたっていない」。

 この場合ですと、例えば

●学力とは何か?
 ・基礎的な問題の解決の早さなのか?
 ・問題解決の早さなのか?

 ・批判的思考?

●誰が対象者なのか?
 ・小学校?
 ・中学校?
 ・高校?
 ・大学版PISAをねらうのなら、大学生?

●教育手法
 ・どんな手法?

 ・ドリル?

 ・ITによる支援?

 ・教師がやるのか?

●いつ、使うの?
 ・授業中?
 ・放課後?

 上記のことを明確にした上で、今までの研究・実践になかった、この研究の「ウリ=オリジナリティ」は「ひとつ」、一語でいうと、ズバリ「何」か?

 のようなことを考えていく必要があるでしょう。

 これらの問いに答え、ある程度、研究のスコープ(研究がカバーする範囲)をしぼることが必要になります。それが「研究の焦点化」に他なりません。

 あれもこれもとよくばる必要はないのです。ひとつの研究で、解決する問題はひとつ(One paper, One conclusion!)です。

 イメージ的にいうと、「焦点化された研究計画」は、「一番最初に思い描いた研究計画」の5分の1から10分の1になるのではないでしょうか。人によっては、100分の1かもしれません。
 研究とは、そのくらい「焦点を絞らないと」、厳密に論理展開できなくなってしまいます。

by   at 11:53  | Permalink  | Comments (0)  | Trackbacks (0)