« 2008年6月 | トップページ | 2008年8月 »

2008年7月

2008/07/31

dvipdfmxをインストールしてみたのだが

THE DVIPDFMx PROJECTからdvipdfmxの最新版のソースをダウンロードして、Fedora 8にインストールしてみたのだが、

dvipdfmx Could not find encoding file "H"

ってエラーがでる・・・

| | コメント (0) | トラックバック (0)

2008/07/30

Fedoraにlivnaリポジトリを追加

livnaリポジトリを追加するには

#rpm -ivh http://rpm.livna.org/livna-release-x.rpm

とします。(xにはFedoraのバージョンにあわせて7, 8, 9のいずれかを入力)

なお、rpm.livna.org(http://rpm.livna.org/rlowiki/)に行って「Fedora x repository RPM」をクリックしてもインストールすることができます。

| | コメント (0) | トラックバック (0)

2008/07/29

ランダムウォークとガウス分布

ランダムウォークで各粒子の到達距離を調べてヒストグラムをつくり、それがガウス分布(正規分布)に近づくことを確かめたいのだが・・・

Rwhistogram

このグラフは横軸が粒子の到達距離、縦軸が粒子の個数になっている。

問題設定は1万個の粒子が次の瞬間に[0, 1)の乱数ぶんだけ進んだときの到達距離を調べ、ヒストグラムにしている。(横軸の区間は[0, 最大到達距離]、このとき10回試行しているので[0, 10])

これを確率密度で表したいんだよなぁ・・・

| | コメント (0) | トラックバック (0)

2008/07/28

2次元ランダムウォーク

2次元ランダムウォークをプログラムにして可視化してみた。(ブラウン運動に関係しているので)

Link:2次元ランダムウォーク - Wikipedia

まず点を座標(x, y)=(0, 0)に置きます。次の瞬間この点がいる場所は確率1/4で以下のいずれかの場所にいることになる。

  • (x+1, y)
  • (x-1, y)
  • (x , y+1)
  • (x , y-1)

以上を任意のステップ数繰り返すだけ。例えばこのような軌跡を描く。

Randomwalk

プログラムは「randwalk.c」 。(そんなにいい乱数じゃないけどまぁいいや)

/*
  2008/07/28
   2次元ランダムウォーク
*/

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define N 100000

/* 乱数生成 */
void   setSeed() {srand(time(NULL));}
double genRand() {return rand()/(1.0+RAND_MAX);}

/* 座標 */
typedef struct {
  double x;
  double y;
} coordinate;

/* Plot Data */
void runGnuplot(FILE* gp)
{
  fprintf(gp, "set terminal x11\n");
  fprintf(gp, "unset key\n");
  fprintf(gp, "set title 'Random Walk'\n");
  fprintf(gp, "plot 'randwalk.data' w l\n");
}

int main(void)
{
  coordinate point = {0.0, 0.0};
  FILE*      fp    = fopen("randwalk.data", "w");
  FILE*      gp    = popen("gnuplot -persist", "w");
  int        i;

  setSeed();  // Set Random Seed
  
  for(i = 0; i < N; i++){
    double prob = genRand();
    if(prob < 0.25)
      point.x += 1.0;
    else if(prob >= 0.25 && prob < 0.5)
      point.x -= 1.0;
    else if(prob >= 0.5  && prob < 0.75)
      point.y += 1.0;
    else
      point.y -= 1.0;
    
    fprintf(fp, "%g, %g\n", point.x, point.y);
  }
  fclose(fp);

  runGnuplot(gp);
  pclose(gp);
  
  return 0;
}

| | コメント (0) | トラックバック (0)

2008/07/27

Office 2007のアドオン「SaveAsPDFandXPS」

この「SaveAsPDFandXPS」はOfficeでPDFもしくはXPS形式で保存などができるアドオン。

これをインストールしておけば、Office文書を閲覧できない人にもPDFにして渡すことができるので非常に便利。

Link:SaveAsPDFandXPS

| | コメント (0) | トラックバック (0)

2008/07/26

LyX

LyXはWYSIWYGなLaTeXエディタ。つまり、MS Wordのような感覚でLaTeXを編集することができる。

Lyx2

早速インストールしてみた。対応するOSはWin(2000/XP/Vista)/Mac/Linux。

Download:LyX Download

もしインストールするPCにLaTeXがインストールされていなくても、インストール時にLaTeXを同時にインストールしてくれる。(もちろん、すでにインストールしてあればそれを使うように指定することも可能)

LaTeXを同時にインストールする場合のみだと思うけど、インストールは結構時間がかかる。

インストールを完了して実際に使ってみると、MS Wordのような感覚で使うことができた。ツールバーからDVIファイル、PSファイル、PDFファイルに変換することもできる。しかし、日本語を変換することはできないようだ。(上のようこそ文書も変換することができない。ただし、英語は問題なく変換できる。)

結論から言えば、日本語TeX環境を整えてからLyXをインストールし、既存のシステムを使う設定にして使用するのがベターだと思う。

| | コメント (0) | トラックバック (0)

2008/07/25

3Dグラフィック作成ソフト「trueSpace」

もともとは700ドルくらいするソフトを無償化するとは、なんと太っ腹な。

私は3Dグラフィックソフトを使う機会はあまりないが、機会が訪れたら迷わずこれを使うことにしよう。(どうやら機能制限もないようだし)

Link:窓の杜

| | コメント (0) | トラックバック (0)

2008/07/24

三目並べ

三目並べ(○×ゲーム)はお互い最善を尽くすと、必ず引き分けになるそうな。

だからプログラムを作って実際に引き分けになるか確かめてみようと思う。アルゴリズムはミニマックス法を使うのが一般的なようだ。(これは三目並べの展開があまり枝分かれしないから。つまり、すべての可能性を検証しても大して時間がかからない。)

Link:三目並べ

Link:ミニマックス法

| | コメント (0) | トラックバック (0)

2008/07/23

日経Linux2008年8月号

特集3の「プリンタ最適設定術」が大変参考になる。研究室でもプリンタの設定が一番大変だったから、こういうのは助かるなぁ。

| | コメント (0) | トラックバック (0)

日経ソフトウェア8月号

最近はじっくり読む時間がとれないのが残念。(もう9月号きてるし)

「わかって楽しいアルゴリズム!」はもうちょっと誌面を割いて、詳しくやってほしいなぁ。(なるべく数式を使わずに説明する方針なのか具体例で説明しているので、かえって分かりにくいかも)

| | コメント (0) | トラックバック (0)

2008/07/22

Windows VistaのUpdateは安心してできないのだろうか?

TAとして授業にでていたら、

「Windows Vistaをアップデートしたら、アップデートを構成中の画面でシャットダウンを繰り返して起動しなくなってしまった。」

という1年生がいた。

問題解決を試みようと思ったが、授業中だったので彼1人に付きっ切りになるわけにはいかなかったし、バックアップもせずに迂闊なこともできなかったので、彼には隣の人の作業をみていてもらうことにした。

私は幸い、こういうトラブルに遭遇したことはないが、アップデートくらい安心してできるようにしてほしいものだ。

| | コメント (0) | トラックバック (0)

2008/07/21

こういう動画をもっと投稿してほしい

【ニコニコ動画】プログラミングをしてみない? 第一回

最近は著作権がらみの動画がどんどん姿を消しているらしいけど、こういう動画が増えてくれれば、それはそれで意義があるサイトになるのではないだろうか?

この動画はVBScriptを使ってプログラミングを紹介しているので、Windowsとメモ帳さえあればできるのがいい。

| | コメント (0) | トラックバック (0)

2008/07/20

vmxファイルとvmdkファイル

これは結構前に気づいていたのだが、vmxファイルやvmdkファイルはひとつ雛形があれば、後で新規に作る必要はないな。

vmxファイルは直接編集することで、異なるOSに対応できるし、vmdkファイルは容量の選択さえ誤らなければファイル名の変更だけで大丈夫。(もっとも、vmxファイルの設定しだいだが)

| | コメント (0) | トラックバック (0)

2008/07/19

Fedora 9 ビギナーズバイブル

Fedora 8ではなぜかでなかったけど、Fedora 9 ビギナーズバイブルがでてた。このシリーズの内容は面白いので、今後も続けてほしい。

| | コメント (0) | トラックバック (0)

2008/07/18

連休何しようか

この3連休なにしようかなぁ。

来週はゼミがないし、好きなことができる。

とりあえず、来週の1年生の授業で使う資料を作っておくかな。

| | コメント (0) | トラックバック (0)

2008/07/17

iPhone

iPhone。

正直欲しい。いや、いじってみたいと思っていた。発売前までは。

発売後のiPhoneの携帯電話としてのデメリットを知って、ビッグウェーブに不用意にのらなくてよかったと思った。

でも、iPhoneがVNCクライアントとして使えると聞くと、やっぱりいじってみたいと思ってしまう。

Link:ITmedia 「iPhoneからWindows、 Macの画面が操作可能に

でも、これをするためだけにiPhone買ってもしょうがないしねぇ。

| | コメント (0) | トラックバック (0)

2008/07/16

ThinkPad 全モデル一新

Intelがモバイル向けCore 2の新モデルを出して、新モバイルプラットフォーム「Centrino2」を発表し、少し前からlenovoがスペックを上げて英語キーボードを選択可能なThinkPadを販売してて、うぉ~すっげ!とか思ってたら、ThinkPad全モデルを一新するというニュース。

さらに既存のX/T/Rシリーズのほかに、ThinkPadとlenovo 3000の中間的なモデルSL400/500シリーズ、T61p後継のWシリーズが追加されています。

これらの新モデルで共通しているのは、「Centrino2」の採用(これによりバッテリ駆動時間が向上したとか)、ディスプレイのワイド化、無線LAN(MIMO)、WiMAX、ワイヤレスUSBなどの機能をサポート、となっています。

---詳細---

Link:レノボ・ジャパン ニュースリリース

Link:PC Watch

こんなの見たら欲しくなってしまう!

Thinkpad1

| | コメント (0) | トラックバック (0)

2008/07/15

大学一年生って

一年生の授業にTAとして出てきて思ったこと。

動物園みたいだ・・・。

基本的な情報処理を教える授業で、一年生が先生のカスタムメイドCygwinをVistaにインストールするのを支援するために駆り出されたのだが、一年生は授業がはじまってるにもかかわらずエミュレータでDQ5やってるわ、インストールの手順を説明しているのに聞かずに先走って失敗してるわ、果てはインストールディスクが読めないってんでディスクを取りだしてみたら裏表反対だわで大変だった。

| | コメント (0) | トラックバック (0)

2008/07/14

グラフの表示を遅延

Gnuplotのグラフアニメーションをじっくり見るために、時間制限付きキー入力待ちをselect()関数を使って実装しようとしていたけど、Gnuplotのpauseコマンドを使えば表示を遅延させられることを発見した。(なんで始めにGnuplotの機能を調べないんだ・・・)

使い方は簡単。

> pause time

ex)  > pause 0.1

コレだけ。timeのところに遅延させたい時間を記述する。(恐らく単位は秒)

プログラムに組み込むときも、一行で済むから簡単。

実際どんな動きになるかは、下のサンプルプログラムを実行してみるとわかる。

/*
  $ gcc -Wall -O fou1.c -lm
  でコンパイル
*/
#include <stdio.h>
#include <math.h>

/* Parameter */
#define PERIOD    2*M_PI    // 区間
#define EDGE_L   -PERIOD/2  // 区間の左の端点
#define NP        1000      // プロットする点の数
#define DP        PERIOD/NP // 点と点の距離      
#define N_MAX     101       // 重ね合わせる回数

/*
  周期関数
   f(t) = -1 (-pi < t <= 0 )
        =  1 (  0 < t <= pi)
  フーリエ級数展開
   f(t) ~ a_0 + coef * sigma(n=1 -> inf){a_n*cos(var_a) + b_n*sin(var_b)}
   f(t) ~ 1/2 + 2/pi * sigma(n=1 -> inf){sin(2n-1)t/(2n-1)}
  座標データ
   f(t) = pt[NP]
     t  = EDGE_L + DP * ip (0 <= ip < NP)
*/

void func_t(double pt[], int n_max)
{
  int ip, in;
  
  for(ip = 0; ip < NP; ip++){
    double sigma = 0;
    double t     = EDGE_L + DP * ip;
    double a_0   = 1.0/2.0;
    double coef  = 2.0/M_PI;
    for(in = 1; in <= n_max; in++){
      double a_n   = 0;
      double var_a = 0;
      double b_n   = 1.0/(2.0*in-1.0);
      double var_b = (2.0*in-1.0)*t;
      
      sigma += a_n * cos(var_a) + b_n * sin(var_b);
    }
    pt[ip] = a_0 + coef * sigma;
  }
}

void gnuplot_run(FILE *gp, const double pt[], int n_max)
{
  int ip;
  fprintf(gp, "set terminal x11\n"); // gnuplot4.2.2ではwxtが不安定
  fprintf(gp, "unset key\n");
  fprintf(gp, "set title \"n=%d\"\n", n_max);
  fprintf(gp, "plot '-' w l\n");
  for(ip = 0; ip < NP; ip++){
    double t = EDGE_L + DP * ip;
    fprintf(gp, "%g %g\n", t, pt[ip]);
  }
  fprintf(gp, "end\n");
  fprintf(gp, "pause %g\n", 0.05); // pauseコマンドで指定秒数だけ遅延
  fflush(gp);
}
	      
int main(void)
{
  static double pt[NP];
  FILE *gp = popen("gnuplot -persist\n", "w");
  
  int in;
  for(in = 1; in <= N_MAX; in++){
    func_t(pt, in);
    gnuplot_run(gp, pt, in);
  }
  pclose(gp);

  return 0;
}

このプログラムはフーリエ級数が元の周期関数に近づく様子を見るために作ったもの。

pauseコマンドの部分をコメントアウトするとスピードが速すぎてじっくり見れない(マクロN_MAXを11とかにするとそりゃぁもう)けど、pauseをいれておけば様子がじっくり見れる。

他の周期関数が見たい人は自分でフーリエ級数展開しませう。

| | コメント (0) | トラックバック (0)

2008/07/13

タブとスペース

コードを編集していて、インデントにタブとスペースが混在するのは気持ちよくない。

Emacsの設定をいじって全てのタブをスペースにするのは大丈夫なんだろうか?

モードごとに設定を記述したほうがいいような気もする。

とりあえず、

M-x untabify

でタブをスペースに変換している。(リージョンを選択してから使用する)

| | コメント (0) | トラックバック (0)

2008/07/12

なぜだかわからないなぁ

なんで、切羽詰ると部屋の掃除をしたくなるのだろうか?

謎だ・・・

| | コメント (0) | トラックバック (0)

2008/07/11

雷が鳴り始めると、空の色が変な色になる。

これがいい。

| | コメント (0) | トラックバック (0)

2008/07/10

Leap-FrogとVerlet

TAとして出ている授業で、簡単なシンプレクティック法(積分と言った方がいいのだろうか?)の例として蛙飛び法(Leap-Frog)が紹介されていた。

この蛙飛び法、ベルレ法(Verlet)に似ている気がする。(速度ベルレ法のほう)

形式としては同じだと思うが、定義の仕方が違うんじゃないのだろうかと思う。しかし、単なる別称の可能性もあるなぁ。

シンプレクティック法を理解するための第一歩としてはちょうどいいかもしれない。でも、解析力学の講義とか真面目に受けてなかったから正準変換とかよく覚えてねぇ・・・

| | コメント (0) | トラックバック (0)

2008/07/09

ノートや資料って

ちゃんと整理してまとめておかないとだめだね。

| | コメント (0) | トラックバック (0)

2008/07/08

PuTTY

Windowsで使うSSHクライアントソフトはやはりPuTTYかな。

Link:PuTTY ごった煮版

| | コメント (0) | トラックバック (0)

2008/07/07

入力待ち

時間制限付きキー入力待ちってどうやるんだろう?

例えば、Gnuplotでアニメーションを作るとき、基本的には勝手に表示をしてくれればいいけど、表示をストップさせてじっくり眺めたいときもある。

・・・どうすれば?

次の画像に差しかわるまでの秒数を指定できるようにもしたいなぁ。

| | コメント (0) | トラックバック (0)

2008/07/06

ゲームで学んでみようじゃないか。シェルスクリプト。

まだ、パラパラっとめくってみただけだけど、なかなか面白そうだ。

ゲームのアルゴリズムを中心に書いているのかと思ったけど、シェルスクリプトの基本や画面制御などが序盤に書かれていて、これを応用してゲームを作っていく感じ。

作るゲームは3つ。「テトロミノゲーム」、「タイピングゲーム」、「スネークゲーム」だったかな。

| | コメント (0) | トラックバック (0)

2008/07/05

OpenOfficeの日本語コミュニティサイト

Link:OpenOffice.org コミュニティ フォーラム

こういうサイトがあると便利だなぁ。

活発に活動して欲しい。

| | コメント (0) | トラックバック (0)

2008/07/04

ビデオ会議システム

大学院GPとかいう、他大学との連携(交流?)プログラムのために、私の所属学科独自のビデオ会議システムを設置した。(と言っても、専用機器のセットアップ)

以前書いたe-learningシステムの構築もこの関係。

普段こういう機器をさわることはないから、始めは操作や設定に苦労したが、何とか他大学と通信をするところまでこぎつけた。

でも、受信する映像にノイズが入るんだよなぁ・・・

大学内でのテスト通信では、送信する映像にノイズは入ってなかった。

う~ん、わからん。

| | コメント (0) | トラックバック (0)

2008/07/03

OSSオープン・ラボ

IPA(独立行政法人 情報処理推進機構)がオープンソースソフトウェアの開発・評価・体験などに利用できる実証評価環境「OSSオープン・ラボ」を開設したそうです。

Link:IPA OSSオープン・ラボ

利用者が複数のOSやツールライブラリから必要なものを組み合わせて実験用環境を構築し、インターネットからリモート操作することができるらしい。(しかも無償で利用資格に制限は特になし)

OSはCentOSやUbuntuなど多数のLinuxディストリビューションが用意されているようです。

| | コメント (0) | トラックバック (0)

2008/07/02

Adobe Reader ver.9

Adobe Reader ver.9がリリースされた。

ver.9はver.8の2倍の速度で起動するらしい。

Adobe9

Link:Adobe

現時点ではWindows版とMac版のみでLinux版は公開されていないみたい。

| | コメント (0) | トラックバック (0)

2008/07/01

PowerPointをFlashに変換するツール

PowerPointをFlashに変換するツールがあるそうで。

Link:MOONGIFT

このiSpring FreeはPowerPointのツールバーにインストールされるソフトで、クリックひとつで変換できるようだ。

対応するバージョンはPowerPoint 2000/XP/2003/2007

気になる日本語への対応は、MOONGIFTによると

日本語も表示されたが、フッタで日付やページ数を挿入している場合にうまく再現されないようだ。

らしいので、注意が必要か。

Link:iSpring Free

| | コメント (0) | トラックバック (0)

« 2008年6月 | トップページ | 2008年8月 »