トップ 最新 追記

ヅラずれなるままに

職業/趣味プログラマの日記。
リンクはご自由に。ツッコミはお気軽に。
くだらない備忘録はヅラッシュドットに。
2002|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|
2008|02|03|04|05|06|07|08|09|10|11|

2003-04-01(Tue)

_ [C]指定したディレクトリ内のファイルを表示するプログラム

UNIX系とBorland C++(dirent.hがあるとはありがたい)でコンパイル可能。VC++の場合は、FindFirstFileとFindNextFileを使わなくちゃいけない。

#include <stdio.h>
#include <dirent.h>
#include <sys/types.h>
 
void test(char *name){
 
  /* DIR構造体へのポインタを宣言 */
  DIR *dirp;
 
  /* dirent構造体へのポインタを宣言 */
  struct dirent *entp;
 
  /* DIR構造体へのポインタを得る(引数はパス) */
  dirp = opendir(name);
 
  /* dirent構造体へのポインタを得る */
  while ((entp = readdir(dirp)) != NULL){
    /* ファイル名を出力 */
    printf("%s\n", entp->d_name);
  }
 
  closedir(dirp);
}
 
int main(int argc, char **argv){
  if(argc == 1){
    test(".");
  }else{
    test(argv[1]);
  }
 
  return 0;
}

file:///usr/include/linux/dirent.h に 構造体direntの宣言 がある。

dirent関数一覧
DIR *opendir(DIR *);
int closedir(DIR *);
struct dirent *readdir(DIR *);
void rewinddir(DIR *);
void seekdir(DIR *, off_t);
off_t telldir(DIR *);
int scandir(const char *, struct dirent ***t,
int (*)(const struct dirent *),
int (*)(const struct dirent **, const struct dirent **));
int alphasort(const struct dirent **, const struct dirent **);
size_t getdirentries(int, char *, size_t, off_t *);

Linuxで、構造体DIRが見つからない……どこだろ。とりあえず、他のプラットフォームでも。

Solaris9付属のdirent.hより、構造体DIRは、こんな感じ。

#if !defined(_POSIX_C_SOURCE)
  && !defined(_XOPEN_SOURCE)
 
typedef struct {
  int  dd_fd;   /* file descriptor */
  int  dd_loc;  /* offset in block */
  int  dd_size; /* amount of valid data */
  char *dd_buf; /* directory block */
} DIR;          /* stream data from opendir() */
 
#else
 
typedef struct {
  int  d_fd;   /* file descriptor */
  int  d_loc;  /* offset in block */
  int  d_size; /* amount of valid data */
  char *d_buf; /* directory block */
} DIR;         /* stream data from opendir() */
 
#endif

MinGW付属のdirent.hより、構造体DIRは、こんな感じ。

typedef struct
{
  /* disk transfer area for this dir */
  struct _finddata_t dd_dta;
 
  /* dirent struct to return from dir */
  struct dirent dd_dir;
 
  /* _findnext handle */
  long dd_handle;
 
  /*
   * Status of search:
   *   0 = not started yet
   *        (next entry to read is first entry)
   *  -1 = off the end
   *   positive = 0 based index of next entry
   */
  short dd_stat;
 
  /* given path for dir with
     search pattern (struct is extended) */
  char      dd_name[1];
 
} DIR;

参考:


2003-04-04(Fri)

_ [Zura]差出人不明-立方体の箱

--- 昨日 ---
家に帰ると、郵便局の不在通知書が投函されていた。
立方体の箱が届くらしい。差出人は不明。
電話で郵便局に訊ねると、立方体の大きさは1辺が6cm程度らしい。
不安なので、Webで似たような事例がないか探した。
まさか、炭疽菌(たんそきん)や爆弾では……?
特に同じような事例は見つからなかった。
ふと思った。ルービックキューブの大きさか?
まさか。そんなものが届く予定はない……

--- 今日 ---
Techオリジナル ルービックキューブでした(^_^;
っていうか、差出人ぐらい書いてほしい>Tech総研
あと、無闇にJavaScriptを使ってるのもいまいち!
キューブはありがたくもらうけど。


2003-04-05(Sat)

_ [Zura]岐阜県先端科学技術体験センター サイエンスワールド

行きました。ほとんど金のかからないデートスポット? ほとんど、子供連れ家族ばかり……カップル皆無!


2003-04-06(Sun)

_ [Music]NOVAうさぎのエングリッシュトゥアー 〜いっぱいきけて、いっぱいしゃべれるCD〜

ついにCD化。「いっぱいきけて,いっぱいしゃべれるソング」が5つのバージョンで収録されているらしい。初回特典は、スーパーピクチャーレーベル, 腰フリNOVAうさぎPOP. 発売予定日は2003-04-23.


2003-04-09(Wed)

_ [Java]^C の入力などによるユーザ割り込みに反応する

java.lang.Runtime#addShutdownHook(Thread)を利用して、プログラムの終了時に任意の処理を入れることが可能。

_ [Zura]カウネット

の紙パンフレットのパンフレット?を見たけど、「おやつ」は見つからず。

「キャサリンは頼んでたぞ、お・や・つ!」


2003-04-12(Sat)

_ [Music]Sister Queen / The Album

オカマ風2人組のノリの良いダンスミュージック。9曲目の "Safe Sex" あたりが良い感じ。

_ [Book]たった3ヵ月で英語の達人―留学なんて無駄!お金のかからない速習法

「キャリア・コース」と「ミーハー・コース」に分けているけど、「ミーハー・コース」のアドバイスが少ない。作者が短期集中型&キャリアな人だからかなぁ。長期日常組み込み型の自分にはあまり参考にならない気がする。中身の話は読みやすくておもしろいから、読み物としては良かった。


2003-04-15(Tue)

_ [Works]第一の関門を突破(謎)

次もうまくいくといいなぁ。結果出るの早すぎ……

本日のツッコミ(全4件) [ツッコミを入れる]

_ カリウド [おぉ!それはオメデトウ。しかし早いねぇ(^^; 次はいつ??]

_ NI-Lab. [次の日が決まった。さて、どうやって休もうか……]

_ NI-Lab. [月曜日って、近いなぁ。]

_ カリウド [カゼ休でしょ(笑)]


2003-04-16(Wed)

_ [Zura]小学生の成績表

又聞きの又聞き、小学校の教師から聞いた話。

最近は、子供の成績を見て、学校へ乗り込んでくる親がいるらしい。「なんでウチの子の成績が下がってるの! 説明しなさいよ!」みたいな感じだろうか?

教師は成績が下がった理由を説明しなければならないらしい(^_^;ふぅ。

_ [Book]それでもSEになりたいか

読み物としておもしろい(お笑い系?)。技術系として役に立つ情報はそれほどないけど、なかなか現場の生の声っぽいところがいい。

著者の経歴を見ると……転職したことがないなら、転職に関してはここまで自分の意見を書かないほうが良いのでは? と思う。

途中途中にあるイラストは、なかなかシュール。比喩表現を淡々と絵にした感じ。イラストレーターは Akihiro Sakaguchi とクレジットされてる。Webを軽く検索したけどみつからないなぁ。


2003-04-19(Sat)

_ [Zura]ひまつぶし用パズルと手品グッズ。

本日のお買い物。ルービックキューブチャイナリング


2003-04-20(Sun)

_ [sh]wcにrecursive機能を

指定したディレクトリ以下に対してコマンドが発行できたらいいなぁ。**/*とかで実現できる気もするけどよくわからない。-r オプションが存在しないコマンドって使いにくいなぁ。

以下は、指定したディレクトリ以下のファイルすべての行数を出力するスクリプト。Bourne Shell 使用。

#!/bin/sh
 
# if paramters are not exist,
# the START_POINT is set current directory.
if [ $# -eq 0 ]
then
  START_POINT=.
else
  START_POINT=$1
fi
 
echo $START_POINT
 
find $START_POINT | while read FILENAME
do
  if [ -f $FILENAME ]
  then
    LINE=`cat $FILENAME | wc -l`
    echo "$LINE $FILENAME"
  else
    echo "00000000 $FILENAME"
  fi
done

コメント部分の英語が英語圏の人に通じるといいなぁ。英語勉強中。

横着プログラミング: 小粒なツールたちを見ると、whileでたくさんのファイルをひとつづつ処理することについて書いてある。while使いになれば -r オプションがなくても問題なし?

_ [Zura]素数表の作成

C言語の学習用に素数のリストを作成するプログラムを書いた。たぶん3年前。

数値が素数であるかチェックする方法: 対象数値未満の整数(1を除くすべて)で割り切れなければ素数。って、1001が素数であるかを調べるには最高で1000回の計算をしなければいけない……2 * 500 = 1000 だから 500 以上で割るプロセスは無駄になるし……効率がすばらしく悪い。

そこで、知人に教えを請うたところ「割り切れる数値にフラグを立てる」というアルゴリズムを紹介してくれた。対象の数値が素数であるかチェックするのではなく、素数でない数値にフラグを立てていく。この手法は知人のオリジナルだと思いこんでいたのだが……

久々にそんなことを調べていたら IDM | 素因数分解 | エラトステネスの篩い なるページを見つけた。先の手法は「エラトステネスの篩い」という「最も古典的な素数表作成アルゴリズム」であるらしい。数学っておもしろそうだなぁ。


2003-04-21(Mon)

_ [AWStats]AWStatsのインストール

アクセス解析をしてみようと思って、有名なツールをいくつかインストールしてみた。

Analogをインストールすると部分部分で文字化けが発生。他に検索エンジンの検索文字列が化けないように対処するパッチもあるみたいだけどちょっと面倒っぽい。

Webalizerはけっこう画面が綺麗。検索文字列はやっぱり化けるが、対処方法があるみたい。インストールがけっこう面倒な感じなので、バージョンアップ時等は苦労しそう。

//面倒っぽいWeblizerのインストール風景
# tar zxf libpng-1.2.5.tar.gz
# cd libpng-1.2.5
# ./configure
# cp scripts/makefile.std Makefile
# make
# make test
# make install
# cd ..
# tar zxf gd-2.0.12.tar.gz
# cd gd-2.0.12
# ./configure
# make
# make check
# make install
# cd ..
# tar zxf webalizer-2.01-10-src.tgz
# cd webalizer-2.01-10
# ./configure --with-language=japanese
# make
# make install

AWStatsは、見た目が綺麗で、高機能で、コンパイル不要(Jcode.pmのインストールってコンパイルしてないんだろうか……)な感じなので期待大。最新版は5.5みたいだけど、5.0を「完全」日本語化してくれている方がいるので、それを利用する。AWStats Ver.5.0完全日本語版のページを参考にしてインストールしたが、特に難しくない(CGIは使わない)。解析結果を見てみたが、いい感じ。パッと見は検索文字列も化けていない(と思ったがいくつか化けてる……)。で、ログファイルの扱いに関してのチューニングは後日するとして、サーバの運用に組み込んだので、とりあえず様子見。

_ [Zura]ハッピーシングル宣言!をちょっとだけ読んで思ったこと。

「結婚したいけど、いい男がいない」って言っている女性は単にわがままなのでは?

何かを捨てなきゃ、何かを手にすることは難しい。いろいろ欲しけりゃ、今以上の努力が必要なのでは?

_ [Works]第二の関門で失敗(謎)

結果は不明だが、撃沈の予感。なんだか鬱々。

本日のツッコミ(全4件) [ツッコミを入れる]

_ binn [何をやったんですか?]

_ NI-Lab. [相手のヅラをとりました(^^;……いや、手ごたえがなく空回りな感じだったので。]

_ NI-Lab. [参考: http://www.nilab.info/zurazure/20040520.html#p02]

_ NI-Lab. [ [AWStats]AWStats Ver.6.0 完全日本語版のページ http://www.nilab.info..]


2003-04-22(Tue)

_ [Zura]アクセス解析の結果驚くべき事実が発覚!

誰ですか! 「ペニス」「サイズ」というキーワードで検索してここに来る人は!

というわけで、Googleでそんなのを検索したら、わはははははははは。おもしろいサイトが次々に見つかる。以下、引用しまくり。

ペニスのサイズについて改めて考えましょう
上記のデータを参考にすると、日本人の平均的なペニスのサイズは、13・14cm前後と言えそうです。ほとんどのデータはペニスを付け根(膀胱のすぐ上)から測っています。まずはご自分のサイズを確認してみてください。ホッとひと安心という方が多いのではないでしょうか。
まず太ってお腹が出ている方は、腹部のダイエットから始めましょう。太った状態だとペニスの根元あたりにも脂肪がついており、体位によっては下腹部が邪魔をして女性との距離を離す事になりますので、深いインサート感が得られない場合があります。
ずーっと昔からある「真空ポンプ」型のペニス増大器具は、いまだに通販で根強い人気を誇っているようです。
最後の手段として外科手術があります。有名な高須クリニックでも、長茎術などのサービスを行っています。

ついにギネスにペニスサイズ部門
インチキ対策も万全で、長さの測定は医者が行わなければならず、それに加えて2人の証人が必要。ギネスブック広報担当者は「これまでオッパイサイズ部門があったので、このペニスサイズ部門を加えることで男女公平になった」とコメントしている。

サイズアップ・アカデミー ペニス増大に関する研究団体
本学は、ペニスの増大に関する専門的な研究・新旧の製品のあらゆる情報を集約し、現代日本の男性諸氏に寄与するための研究団体です。

_ [Programming]ソースコードのインデント

スラッシュドット ジャパン 国民投票 のネタ。

ソースコードのインデントはを見ると、今のところ「TABにきまってるじゃん」が圧倒的に多い。他人をソースコードを共有することが多い会社員としては、ちょっと安心。自分もTAB派。

「TAB+SPACE混在」はやめてほしい。ホントに。っていうか、ドキュメントとか書くのに TABと半角空白と全角空白を混ぜこぜにしてる人も何とかならんのか……

本日のツッコミ(全5件) [ツッコミを入れる]

_ カリウド [確かにTABだよねぇ。でも、TABを2,4,8のどれに設定するのかも決めておかないと表示が崩れるのがヤだね。個人的に..]

_ カリウド [っつーか、何でそんなキーワードでココが引っかかるんだ!?(笑) さすがNI-Lab氏だ。]

_ NI-Lab. [TABの桁数で崩れる問題は、イコールの左辺右辺を合わせるからでは? インデントのみに使えば崩れないはず。UNIX文化..]

_ NI-Lab. [「サイズアップ・アカデミー」という名前にはワラタ。]

_ NI-Lab. [ペニスの《カリ》はなんのためにある? ( http://www5.big.or.jp/~hellcat/news/0..]


2003-04-23(Wed)

_ [Zura]例えば、客のシステムよりも自分のメンツのほうが大事なSEがいたとして

そして、システムの質はどんどん悪くなる。

本日のツッコミ(全2件) [ツッコミを入れる]

_ カリウド [良いシステムを創りたいのであれば顧客と対等であることが絶対条件でしょう。御用聞きでは無理ですな。]

_ NI-Lab. [なぁなぁの顧客だと頭が上がらないのかも。もっと安くて高品質のシステムを作ってくれるほうに頼まないでいてくれるから、御..]


2003-04-24(Thu)

_ [Works]第二の関門を突破(謎)

というわけで、次の関門は最終とのこと。ここまできてしくじることはそうそうないと思うが……

本日のツッコミ(全3件) [ツッコミを入れる]

_ カリウド [おめでとう!!!これで誘爆2連発だ(笑)]

_ カリウド [某社案件・・・もうだめぽ。]

_ NI-Lab. [タイミングがいいのか悪いのか(^_^; ]


2003-04-25(Fri)

_ [Memo]システムダイアリーとフランクリン・プランナーについて

参考リンクをメモ。

SDこぼれ話(2)SDの根幹‐ファイリングシステムによると、アメリカでは高校でファイリングシステムを学ぶらしい。

このごろ思うこと。メモの技術って自分の生涯のテーマのひとつ? っていうか、けっこう多くの人がメモについて語る/悩むことを考えると、人類のテーマのひとつか(^_^;

ChangeLogメモを書きはじめてもう1年。これはいいメモツールだ。特に検索には使いやすい。自分の場合は、TODOリストもまぜて書いていたりする。参考: 横着プログラミング: Unixのメモ技術


2003-04-26(Sat)

_ [Zura]選挙カーうるさい!キキ----(゜皿゜)-----

と妻が申しております。

今日も朝から意味のない「清き一票をよろしく」連発。

「私は○○をやります。○○ができます」という具体案を言ってくれる選挙カーを見かけないなぁ。

選挙活動って失敗している転職活動みたい……

_ [Works]デスマーチって何?

デスマーチ撲滅委員会を見ていて思ったこと。ソフトウェア開発プロジェクトにおけるデスマーチ(death march, 死の行進)の定義ってなんだろう? というわけで、以下ちょっと調べてみた結果。

Edward Yourdon 著 「デスマーチ―なぜソフトウエア・プロジェクトは混乱するのか」によると、以下の4つのどれかに当てはまるプロジェクトは、デスマーチプロジェクトであるらしい。

  • 開発期間が半分以下
  • 開発者が半分以下
  • 予算や必要資源が半分以下
  • 機能や性能要求が倍以上

理想的や常識的なものと倍の差があるということかな。

デスマーチ突入の原因は、以下のようなことらしい(本を読まずにウェブページでいろいろ見た情報を書き出しただけ……)。

  • 困難なプロジェクトを引き受けてしまう(積極的/消極的を含む?)
  • 現実的でない納期設定
  • 社内政治
  • 能力欠如

参考:


  _  ∩
( '∀')彡 ゴッゴル! ゴッゴル!
(   ⊂彡
|     |
し/⌒J

ヅラがずれたらエラいこっちゃ!
書き手: NI-Lab.

トップ 最新 追記
[tDiary 参考になるリンク]
www.tdiary.org
www.tdiary.net
SourceForge.net: Project: tDiary
tDiary-users Project
tDiary のテーマ一覧
tDiary ドキュメント
tDiary.Net 運営委員会