2007年8月31日金曜日

予稿と議事録の大切さ

ミーティング(会議)を行う際にとても大切なのが予稿と議事録です。

■予稿
ミーティングで何をするのかの進行予定(スケジュール)を記述したもの。
内容としては以下のものである。
・何を話し合う予定なのか?
・どれぐらいの時間がかかりそうなのか?
・何を得たいのか?

■議事録
ミーティングの内容を記述したもの。
・決定事項
・その決定事項に至った経緯
・その他、重要だと思われる発言

予稿を事前に配布する事で、
参加者全員がこのミーティングで何をするのかの意識統一になります。
また、ミーティングの準備をして参加できるようになり、
進行予定の代わりにもなるためミーティングがスムーズに進む事でしょう。
予定より遅れている場合にはどうしても決めておきたいことなどを
先に決めるなどの対処も行いやすくなります。

ミーティング中はしっかり議事録をとりましょう。
何を話しあったのか何が決まったのかを記録しておくと
後で助かる事間違いなしです。
記録が無かったがために、問題になったりする事もあります。

そして、議事録は必ず参加した人全員に配布するようにしましょう。
議事内容を共有するために議事録を記述しているので、配布しなければ意味がありません。
時間があればミーティングの最後に
議事録の内容を確認してもらうようにすれば良いですね。


こんなことが解消されると思います。
・ミーティング中の時間がダラダラして無駄だな~
・話が脱線しすぎてミーティングの内容が薄い
・そもそも何を議論する場であったのかを忘れてしまう
・残りの議題が解らない。
・そのため、後どれぐらいミーティングが続くのかが解らない。


予稿と議事録で有意義なミーティングを!
.

2007年8月30日木曜日

全角スペースを判断(shift-jis)

全角スペースを取り除きたくて
Shift-Jisの文字コードについて調べた。

・1バイト目が0x81~0x9F、0xE0~0xFFの場合がマルチバイト(全角)文字扱いとなる。
・全角スペースの文字コードは 0x81,0x40 (カンマで区切って1バイトづつ表記)

C言語でちょこっと書いてみた。
------

for (int i = 0; i <= strlen(str); ++i) {

// shift-jis 全角文字判定
if (((char)0x81 <= str[i] && str[i] <= (char)0x9F) ||
((char)0xE0 <= str[i] && str[i] <= (char)0xFF)) {

if ((str[i] == (char)0x81) && (str[i + 1] == (char)0x40)) {
// 全角スペースの時の処理
} else {
// 全角スペース以外の全角文字の処理
}
++i; // 全角文字なので1つ進めておく
}
}
------


forの条件式内で関数呼び出すのはよろしくないけど…
直感的に解りやすくするためです。
.

2007年8月27日月曜日

愚痴の考え方

さて、私事ですが最近思いっきり愚痴ったときに感じたことをちょっと。
愚痴を言うのはかっこ悪いとか結構思われているようですが
考え方によってはなかなかいいものです。
あげるとすれば

・ストレス発散
・自分のことを相手に知ってもらえる
・自分の道標になる

ストレス発散はまぁ、言えばすっきりするというのは当たり前ですね。

次に自分のことを相手に知ってもらえるです。
愚痴を言うのにはやはり背景をしゃべって自然と自分の秘密の立場を
伝えてることになるんですね。
つまり、腹を割って話してもらえてる、信用されてる、頼られていると
感じられることだってあるかもしれないです。
少なくとも言われたとき私は少し感じます。

最後の道標。
愚痴ってのは結局、周りの気に入らないこと(自分の気に入らないこと)
が愚痴となって出てくるわけです。
つまり、そこを改善すれば自分は幸せになる可能性があるということ。
自分と周りへのクレームですね。
また、愚痴ってのは、言えば言うほど出てくることで
普段自分では気づかない一面も見えてくることがあります。
つまり、問題点を明確にできるわけです。

当たり前のことだったかもしれないですが自分で気づいたこと。
頭の片隅におきながら愚痴ってみると案外面白いかもしれないです。

ただやっぱり、愚痴の言い過ぎは相手に疎まれることもあるので
ほどほどが一番ですな。

2007年8月25日土曜日

コーディング規約(C#)

C#の実装をしていて、統一的な変数や関数の命名方法がないかなと探してみた。

すぐに見つかりましたよ!
http://www.objectclub.jp/community/codingstandard/
さすがオブジェクト倶楽部ですね。

早速 PDF をダウンロードして参考にさせてもらっています。

.

Visual C# 2008 インストール

早速インストールしてみた。

1、以下のサイトより「Visual C# 2008 Express Edition Beta 2 日本語版」を選択し
setup.exeをダウンロードする。
http://www.microsoft.com/japan/msdn/vstudio/future/download.aspx

2、ダウンロードしたsetup.exeを実行

・・・

後はインストーラーの通りで
特に問題なくインストール完了しちゃいました。。。

VC2005の時はいろいろあったのに。今回はすんなりw

.

2007年8月16日木曜日

プロセスIDを取得する(.NET)

自分自身のプロセスのIDを取得する
Processクラスを使用すれば簡単に取得できた。

自分自身のプロセスIDの取得方法
---
using namespace System::Diagnostics;
Process^ process;
process = Process::GetCurrentProcess();//自分自身のプロセスを取得
int id(process->Id) // プロセスIdを取得する
---

他にもプロセスの一覧を取得する関数などもありました。
Process::GetProcess()

.

2007年8月7日火曜日

STL(for_eachでメンバ関数を使う)

STLの勉強中に詰まったところ。

#include <algorithm> に宣言されている for_each 関数を使用してみた。
for_each とは STL の iterator を使って全ての要素に対して処理を行なう関数です。
これがなかなかの曲者でして…

使用例
----
#include <algorithm>
#include <vector>
#include <cstdio>

void Print(int x) {
printf("[%d]\n", x);
}

int main() {
vector v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
for_each(v.begin(), v.end(), Print);
return 0;
}

----

これやと普通に使えるのですが、
メンバ関数を for_each で使おうと思うと…コンパイルエラー
↓これやとコンパイルエラー
----
#include <algorithm>
#include <vector>
#include <cstdio>

class hoge {
public:
hoge();
void Foo();
void Print(int x) { printf("[%d]\n", x); }
};

void hoge::Foo() {
std::vector v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
std::for_each(v.begin(), v.end(), &(this->Print));
}

int main() {
hoge h;
h.Foo();
return 0;
}

----

他いろいろ試してみたが…どれもダメやった。
std::for_each(v.begin(), v.end(), this->Print);
std::for_each(v.begin(), v.end(), hoge::Print);
std::for_each(v.begin(), v.end(), &(hoge::Print));

調べた結果
メンバ関数を使用するには
functional を include して
mem_fun と bind1st を使うといけるとのこと。
ソースを書き直してみたら見事コンパイル通った!
----
#include <algorithm>
#include <vector>
#include <cstdio>
#include <functional>

class hoge {
public:
hoge(){};
void Foo();
static void staticPrint(int x) { printf("[%d]\n", x); }
void Print(int x) { printf("[%d]\n", x); }
};

void hoge::Foo() {
std::vector v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
std::for_each(v.begin(), v.end(), std::bind1st(std::mem_fun(&hoge::Print), this));
std::for_each(v.begin(), v.end(), &hoge::staticPrint);
}

int main() {
hoge h;
h.Foo();
return 0;
}
----

こそっと static のメンバ関数も使ってみたけど
static のメンバ関数は普通に呼び出せる。

mem_fun とか bind1st を使う事を考えれば…
メンバ関数を使わない方がよさそう。

.

一行クラッシュ

1行のコードでIE6.0がクラッシュするコードです。
単なるブラクラですが、うん、華麗ですね。
ちなみにそのコードはこれ

<style>*{position:relative}</style><table><input></table>

IE7は落ちないそうな

2007年8月1日水曜日

Athlon64X2とCore2Duo

PCを新調しようかと思ったのでCPUについて調べたこと。
今のところAthlon64とCore2Duo(C2D略すw)は言われてるほど大差はなさそう。
Athlon 64 X2 4200+(2.2GHz,L2 512KB×2)とCore 2 Duo E6300(1.86GHz,L2 2MB)の
比較イベントがあったがAMD主催だし微妙・・・ (このときはもちろんAMDに軍配)
他サイトからの比較表(6000+とE6600の比較)
http://www.4gamer.net/news.php?url=/review/athlon_64_x2_6000/athlon_64_x2_6000.shtml
(こっちはAMD負けとる)
コストパフォーマンス的にはAthlonがいいらしい?(最新は違うみたい
だが、全体的にAMDのほうが能力は別にして安い
低発熱省電力はCore2DuoらしいがマザボがAMDのマザボに比べて
消費電力多いらしくどっこいどっこいになるらしい・・・
ゲームなどの3D処理系はAthlonがましらしい
エンコ、π処理はC2Dがいいらしい
複数処理?多重スレッド処理?多重起動だったかな?はデュアルコアは苦手らしく
とくにC2Dはもっさりするらしいがいまいち怪しい。
64BitはAthlonのほうが速いらしいが対応ソフト少なすぎて無視しても・・・
マザボを考えるとIntelのほうが安定性があるらしい
でも、そんなもの運のところが大きそう
ゲームするなら、好きなほう買ってメモリとグラボ強化したほうが効果的
・・・・
結論、好きなほう買っとけに収まりそう。
お金なければAMD、余裕あるしブランド好きはIntelかな・・・
個人的には安さからAMDに流れる予定。
昔からAMD好きだし、一応3Dはそれなりの
定評があり、昔からマルチコア設計をもくろんでのコア設計だったらしいので
まぁ、どちらにせよPen4やAthlonXPと比べると天と地なのは間違いない

USBキーボードの認識

USBキーボードを接続したところ半角全角キーが効かなかったので調べてみた。
どうやら106キーボードではなく101キーボードとして認識してるらしい。
キーボードのレジストリ値を変えれば難なく認識してくれた。
やる場合はバックアップ必須!へますると起動しなくなるよw

困ったときのレジストリ。
ファイル名指定実行の「regedit」レジストリエディタを実行し
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters\LayerDriver JPN
の値を101から106に変更
再起動で終了
ちなみに、今回はWIN2k
すべての実行は自己責任で

ラベル