Saturday, February 28, 2009

02/28/2009


  • 例のプロジェクトの最終日

  • 来月から別のプロジェクトで活動する予定

  • 勤務表を送付できず



Friday, February 27, 2009

02/27/2009


  • 例のプロジェクトで活動する最終日

  • 18:30 で就業




ICONV

% iconv -f SHIFT_JIS -t UTF-8 ${from_file} > ${to_file}

Thursday, February 26, 2009

02/26/2009


  • 今日も JavaScript な作業だった。

  • 来月からの仕事に就いて軽く説明をしてもらった。




Wednesday, February 25, 2009

Tuesday, February 24, 2009

Monday, February 23, 2009

02/23/2009


  • 23:00 まで仕事をした。

  • 別の JavaScript なカレンダーを組み込むはめに。

  • 代休をとれない予感。

  • 面談は明日にスケジュールされていた。


Learning C - an example of the file descriptor


#include <fcntl.h>
#include <unistd.h>

int main()
{
    int fd;
    char buf[10];

    fd = open("data.txt", 0);
    read(fd, buf, 10);
    write(1, buf, 10);
    close(fd);

    return 0;
}

Sunday, February 22, 2009

02/22/2009


  • 12:45 から 19:30 まで仕事だった。





Saturday, February 21, 2009

02/21/2009


  • 12:45 から仕事だった。

  • 22:00 まで...。

  • オープンソースカンファレンスに参加できなかった。

  • コンタクトレンズも購入できず。

  • 明日も仕事です。

Friday, February 20, 2009

02/20/2009


  • JavaScript に苦戦している。

  • 不要なイベントをキャッチしてしまって不要なダイアログが表示されてしまう。

  • オープンソースカンファレンスのため休む予定だったが、出社するはめに。

  • 休む、というか、土曜日は休みだ、普通。


JavaScript - showModalDialog()

Thursday, February 19, 2009

02/19/2009


  • JavaScript でカレンダーを作成する予定だったが

  • 4 月からの予定について社長から電話が

  • 22:00 まで仕事をしたが



Wednesday, February 18, 2009

02/18/2009


  • やや寝不足

  • JavaScript な調査

  • 22:00 過ぎまで残業

  • どこのチームにドナドナされるのか気になりはじめる


Learning C - Reading A File Line By Line


#include <stdio.h>

int main()
{
    static const char filename [] = "/etc/passwd";
    FILE *file = fopen( filename, "r");
    if (file != NULL)
    {
        char line [256];
        while (fgets (line, sizeof(line), file) != NULL)
        {
                fputs(line, stdout);
        }
        fclose(file);
    }
    else
    {
        printf("Error(s) occured\n");
    }
    return(0);
}

Tuesday, February 17, 2009

02/17/2009


  • 10 時に起きた、というか、配達員におこされた。

  • 12:00 くらいから 16:00 くらいまで昼寝...。

  • X31 に Debian GNU/Linux 5.0 をインストールした。

  • Wireless Network を有効にできない?


Learning C - #define Statement


#include <stdio.h>

#define INDEX 10

int main()
{
    int x;
    for (x=0; x<INDEX; x++)
    {
        printf("%d\n", x);
    }
    return(0);
}

Learning C - A Simple Pointer Example


#include <stdio.h>

int count = 0;

void increment_count(int *x);

int main()
{
    while (count < 10)
    {
        printf("%d\n", count);
        increment_count(&count);
    }
    return(0);
}

void increment_count(int *x)
{
    (*x)++;
}

Learning C - Pointer-To-Pointer Parameter

Here is one way that how you call the function with Pointer-To-Pointer parameter.

#include <stdio.h>

int x = 10;
int * x_ptr = & x;

void do_something(int ** number)
{
    printf("%d\n", ** number);
}

int main()
{
    do_something(& x_ptr);
    return(0);
}

Monday, February 16, 2009

02/16/2009


  • もうひとりのメンバは代休だった。

  • 21:30 まで残業した。

  • また調査だけだった。重要だけれど。

  • すべて最新のソースで確認すべきだったようだが、ソースのベースは古いままだった。


Learning C - Pointer-To-Pointer in C


#include <stdio.h>

int x = 10;

int * x_ptr = & x;

int ** x_ptr_ptr = & x_ptr;

int main()
{
    printf("%d\n", x);
    printf("%d\n", * x_ptr);
    printf("%d\n", ** x_ptr_ptr);
    return(0);
}

Learning C - extern modifier

The "extern" modifier means that a variable or function is defined in another file. Here is an example :


// sub.h

void do_something()
{
    printf("do_something()\n");
}



use "extern" modifier to use variables or function defined in another file.


// main.c

#include <stdio.h>
#include "sub.h"

extern void do_something();

int main()
{
    doSomething();
    return(0);
}

Sunday, February 15, 2009

02/15/2009


  • 12:45 から 19:30 まで仕事だった。

  • 代休の予定は、次の火曜日だ。つまり 17 日。

  • 行き帰りの電車で Successful Lisp を読んだ。

  • 18 日のセミナに参加できなさそうな。

  • C 言語の勉強を少しだけ...

Learning C - static modifier


#include <stdio.h>

void counter();

int main()
{
    int x;
    for (x=0 ; x<10; x++)
    {
        counter();
    }
    return(0);
}

void counter()
{
    int y = 0;
    //static int y = 0;
    y++;
    printf("%d\n", y);
}

Learning C - typedef

C programming language allows us to define our own variable types through the typedef statement.


#include <stdio.h>
#include <string.h>

typedef struct cat
{
    char name[50];
    int age;
} c;

c kitty;

int main()
{
    strcpy(kitty.name, "tama");
    printf("%s\n", kitty.name);
    return(0);
}

Getting Started With Git and GitHub

// TODO : this article is being updated

Git の使用についてまとめよう。とりあえず、普段、ほぼ毎日、実行するであろう操作についてまとめる。Subversion をベースとして用語を使用するため、間違っているかも。そのうち見直して修正する。環境は、クライアントに Ubuntu Linux 8.10 を、リポジトリに GitHub を想定する。

checkout

% git clone git@github.com:satoshiabe/example.git


add a file

% git add ${filename}


state

% git state


diff

// TODO


commit

% git commit ${filename}

とか

% git commit -m "Added a README.txt" --author="Satoshi ABE <s.a@example.com>"


push

% git push git@github.com:satoshiabe/example.git

Saturday, February 14, 2009

02/14/2009


  • 仕事だった。

  • 寝坊したと思ったら 1 時間くらい勘違いしていた。

  • 21:30 まで仕事をした。



Friday, February 13, 2009

02/13/2009


  • 昨晩、早く寝たのでスッキリ、みたいな。





 

Thursday, February 12, 2009

02/12/2009


  • 顔色が悪い?からか、体調が悪いと思われてしまったようだ。





Installing Eclipse Git Plugin

JGit :
http://www.jgit.org/

Eclipse Update Site :
http://www.jgit.org/update-site/

Wednesday, February 11, 2009

02/11/2009


  • 12:45 から現場で仕事だった。

  • 21:00 まで残業した。




Tuesday, February 10, 2009

02/10/2009


  • 耳栓をして寝たら寝坊した。

  • 現場を紹介してくれた営業さんからも電話をかけてきたようで。

  • とりあえず、最悪な状況だった。

  • 21:30 まで残業した。フレックス?

  • GitHub について記載した。

Version Control With GitHub.com

普段、自分は複数のマシンを使用してプログラミングをしていて、すべてのマシンでソースコードを共有したいと思っている。当初、Amazon Web Services の VM にリポジトリを作成し、必要なときだけ VM を起動してリポジトリのデータを共有する予定だった。しかし、VM のデータを保存する手順を面倒に感じた --- S3 で保存する --- ため、別のサービスを利用しようと思っていた。以前から GitHub の存在を認識していたが、アカウントを作成しただけだった。git の操作を身につける good chance だと考え、GitHub のサービスの利用を決定した。


サービスを利用する環境は、以下のとおり。メインのクライアントマシンだ。

Model : ThinkPad T61
OS : Ubuntu Linux 8.10 ( 64-bit version )


git を使用するのだから、git に関連するパッケージをインストールする。git クライアントは、"git-core" に含まれている。

% sudo apt-get install git-core



GitHub は、バージョンコントロールシステムなソフトウェアである git をサービスとして提供してくれる。無料と有料の会員が区別されており、内容を以下の URL にて確認できる。

Pricing - GitHub
http://github.com/plans

要するに、こんな感じだ。

無料でも利用できるが、 public なリポジトリでスペースは 100 MB だけ。有料な会員になると、private なリポジトリを作成できて、300 MB 以上のスペースを利用できる。


で、さっそくアカウントを作成しよう。手順を省略する。この手順を理解できない人は、まず、いないだろう。注意点 : 普通の Web サービスにおいてアカウントを作成すると、直後に "登録ありがとうございました。あなたのアカウントは ... です" 的なメッセージが記載されたメールを受信する。ただし、GitHub の場合、この手順をスキップするようだ。少なくとも、そのようなメールを私は受信していない。

ところで、私は、より多いディスクスペースを利用したかったため、無料のアカウントから有料へアップグレードした。最も安い USD $ 7 / month なプランだ。クレジットカードの情報を入力すると、簡単に申し込める。お試しあれ。

To be honest, 私は git を使用した経験をもちあわせていないため、コマンドの実行を、ひとつも理解していなかった。おそらく "git" というコマンドが存在するだろうと思っていたが、どのようにオプションを指定するか、また、どのようなオプションが存在するかを認識していなかった。そこで、アップグレードの後に Google で検索しようとしたところ、既に次からの操作が画面で説明されていた。どうやらクレジットカードによる支払いの手続きを完了すると、画面に簡単な guide が表示される --- 後述 --- ようだ。とりあえず、ここからスタートしてみたいと思う。


具体的な作業を開始しよう。GitHub にリポジトリを作成するが、GitHub との通信に SSH を使用する。Linux ディストリビューションを使用しているなら、OpenSSH クライアントがインストールされているだろう。Windows を利用している人は、自分で調べましょう。好んで利用しているはずでしょうから。Mac OS X にも OpenSSH クライアントがインストールされているので、同様に操作できるはず。まず、キーのペアを作成する。public と private だ。以下のような作業で大丈夫と考えられる。

% ssh-keygen -t rsa

任意の passphrase を入力しろ、とリクエストされるが、ENTER を押下し、それを設定せずに作業する。以下のファイルが生成されるはずだ。

/home/satoshiabe/.ssh/id_rsa
/home/satoshiabe/.ssh/id_rsa.pub

この public キーを cat して、つまり、

% cat /home/satoshiabe/.ssh/id_rsa.pub

してコンソールに表示される内容を、GitHub.com において自分のアカウントの "SSH Public Keys" というカテゴリに登録する。

続いて、リポジトリを作成する。GitHub にログインすると、どこかに "Create a New Repository" のようなリンクが表示されているはず。そのリンクをクリックして、以下の情報を入力する。

- Project Name
- Description
- Homepage URL
- Who has access to this repository ?

とりあえず、それぞれを以下

- example
- what a nice project ever !
- http://www.example.com/
- checked : "Only the people I specify"

と想定して続ける。


さて、事前の準備を完了したはずだ。続いて、以下の作業を開始する。これは、ほぼ画面 --- クレジットカードを登録した後に表示される --- に表示されたとおりの内容を記載した。なお $ は変数を意味しており自分の環境に読みかえること。

% mkdir ${projectName}
% cd ${projectName}
% git init
% touch README
% git add README
% git commit -m 'first commit'
% git remote add origin git@github.com:${yourAccount}/${projectName}.git
% git push origin master


つまり、このようになる。ちなみに、Linux アカウントを "you" と想定する。

% mkdir example
% cd example
% git init
% touch README
% git add README
% git commit -m 'first commit'
% git remote add origin git@github.com:you/example.git
% git push origin master


以下のメッセージが表示されたら、コミットできたはず。

% git push origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 208 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@github.com:you/example.git
* [new branch] master -> master
%

以下の URL を Web ブラウザで表示すれば、リポジトリの内容を確認できる。

https://github.com/${you}/example/tree/master

Monday, February 09, 2009

02/09/2009


  • 正しくないソースで試験していたらしい。

  • Eclipse のキャッシュ?に悩まされた。

  • 22:30 まで残業した。

  • github.com の有料会員になってみた。


Sunday, February 08, 2009

02/08/2009


  • 非常に強い風が吹いた一日だった。

  • Seam で、更新と削除とページングなどをコーディングした。

  • コーディングっていうか、Seam のサンプルを真似ているだけ。

  • 横浜へなちょこプログラミング勉強会


Saturday, February 07, 2009

02/07/2009


  • 自社へ出社する予定だったが連絡もないので休んだ。

  • あと少しだけプロジェクトに勢いあってもいいかな、と思う。




Friday, February 06, 2009

02/06/2009


  • 土曜日も出社しなければならないような状況だったりする。

  • 担当した画面を、いちおう動作させられた。

  • 営業さんへメールしまくり。



Thursday, February 05, 2009

02/05/2009


  • 朝、大手町で乗り換えて三田線で三田まで移動した。

  • すごく勘違いしていると気づいてしまった、マズい。

  • 21 時まで残業。

  • 帰りの電車で立ち寝しそうだった。


JSF - h:outputLink

Example :

<h:outputLink id="link1" value="http://www.yourcompany.com">
    <f:param name="projectId" value="123" />
    <f:param name="userId" value="45" />
    <h:outputText value="Open Project" />
</h:outputLink>


HTML Output :

<a href="http://www.yourcompany.com?projectId=123&userId=45" id="link1">Open Project</a>

Wednesday, February 04, 2009

02/04/2009


  • 山の手も混雑しすぎ。

  • 別々の仕事をアサインされるらしい。

  • 彼はチューニングなど、自分はバグフィックスとテストなど、らしい。

  • とりあえず、関連した機能の調査を実施した。改善できないかもしれない...。


Tuesday, February 03, 2009

02/03/2009


  • とりあえず彼のおかげでチューニングできた。

  • 仕事をしていないように受け取られてしまったかも。

  • 明日から対応する業務は未定だ。

  • UQ Communications の無料モニターを申し込んだ。


Performance Problem with Seam and Hibernate

/* メモ */

seam hibernate performance problem - Google Search

Hibernate Forums - View topic - Performance Problems with Hibernate 3.2.4.sp1 (Seam2)

developer bits: Turning on Hibernate Logging using Seam on JBoss 4.2

seam hibernate too many queries - Google Search

Monday, February 02, 2009

02/02/2009


  • 客先の初日だった。

  • パフォーマンスチューニングを依頼された。

  • Hibernate がクエリを約 5 per second とか実行していて検索が完了するまで 60 秒くらいかかっていた。長くても 5 秒ほどで終了させたい処理だ。

  • なぜ同様のクエリが実行されているか不明だった。

  • 自分は、過去の事例や設定を確認してみた。

  • いくつか設定を変更してみたが効果はなかった

Learning C - struct and malloc

% vi main.c


/* main.c */
#include <stdio.h>
#include <stdlib.h>

struct person
{
    int id;
    char name[50];
    int age;
};

int main()
{
    printf("started...\n\n");

    struct person *person_a_ptr;
    person_a_ptr = malloc(sizeof(struct person));

    (*person_a_ptr).id = 10;
    printf("%d\n\n", (*person_a_ptr).id);

    if (person_a_ptr == NULL)
    {
        fprintf(stderr, "out of memory\n");
        exit(10);
    }

    // The function "malloc" gets memory from the heep.
    // You shoud free that memory after you are done with it, use the function "free".
    free(person_a_ptr);
    person_a_ptr = NULL;

    printf("ended...\n");
    return(0);
}


%
% gcc -g -Wall -omain main.c
% ./main
stared...

10

ended...
%

Learning C - include

% vi add.h

/* add.h */
int add(int x, int y) {
    return x+y;
}


%
% vi main.c

/* main.c */
#include <stdio.h>

#include "add.h"

int main()
{
    printf("%d\n", add(2, 3));
    return(0);
}

%
% gcc -g -Wall -omain ./main.c
% ./main
% 5

Sunday, February 01, 2009

02/01/2009


  • 強い風が吹いた日だった。

  • 午前中に起床する予定が 15:30 とな。

  • C 言語を学習をした。

  • 現場に合流してから現場のことを考えることに。


Learning C - preprocessor

/* bash のソースファイルを読んで C 言語を学習するテスト */

bash-3.2.48 の alias.c 26 ~ 31

#if defined (HAVE_UNISTD_H)
#  ifdef _MINIX
#    include <sys/types.h>
#  endif
#  include
#endif