![]() |
zunbe |
![]() |
|
| [<<先頭] [<前へ] [ 1 2 3 4 5 6 ] [次へ>] [最後>>] | ||
2005/09/04
|
今回は、プログラミングの話ではない。
先日、会社に税務調査が来たのだが、調査官が終日社内にいるので、電話を受けたときに以下の様に対応するように指示をしておいた。
・電話を取り次ぐ場合は、相手先の会社名、名前などはメモに書いて渡しなさい。
ところが、社員はこの指示を受けて、かかってきた電話「すべて」について、会社名と名前をメモに書いて渡してきた。
なんでやねん。
一から十まで説明しないといけないのだろうか。
基本的には来客中なのであるから、まず用件を聞き、急ぎでなければこちらから電話するように伝えるとか、そういった対処をするべきだろう。
なんでもかんでもメモに書いて渡してくるなよ。
かかってきた電話にどう対処するかくらい、自分で判断できんのか。
そもそも、わざわざずんべが「メモに書いて渡しなさい」と指示をしなくても、来客中であれば、メモに書いて渡すべきである。
来客中に「○×会社の○△さんからお電話です」などと、声に出して言うべきではない。
来社している人が税務署の調査官であろうとなかろうと関係ないのである。
もう少し考えて行動してくれよ。
このエピソードはいかがでしたか? ![]() ![]() | ![]() |
投稿者 zunbe : 2005/09/04 02:01:47 | コメント (0)
2005/08/29
|
今日も、こんなことがあった。
このエピソードの続き。
で、ビットパターンを説明し、論理積を説明し、どのように値を求めるべきか説明し、コードを修正させた。
出てきたコードはこれだ(かなり省略)。
-----
Const FILE_READ_DATA = 00020000
AccessMask = (アクセス権のパターン値をAPIから取得)
If (("&h" & AccessMask) And ("&h" & FILE_READ_DATA)) Then
' アクセス可能
End If
-----
何だこれは?
まったくとんちんかんなコードである。
(1).FILE_READ_DATA に代入している値は、いったいなんだ?
(2).「"&h" & AccessMask」や「"&h" & FILE_READ_DATA」の演算は、いったいなんだ?
どんな結果が求められるんだ?
(3).そもそも、なんで変換なんかしようとしてるんだ?
なんで変換しようとしているのか、社員に聞いてみると、こうのたまう。
「AccessMask は10進数で入ってきますよね。だから16進数に変換しないと計算できません。」
言っている事の意味がまったく理解できません。
宇宙人と話をしているみたいです。
ちっとはコンピュータ概論を勉強しやがれ。
情報処理でも受験してこい。
このエピソードはいかがでしたか? ![]() ![]() | ![]() |
投稿者 zunbe : 2005/08/29 10:38:49 | コメント (0)
2005/08/26
|
今日も、こんな事があった。
社員に、Windows用のバックアッププログラムを作らせていた。
コピーを行う際、ファイルのアクセス権を取得し、読み取り可能であれば、コピーを実行するように指示を出した。
その「読み取り可能であるか」の判定で、社員が書いたコードはこうだ。
-----
AccessMask = (アクセス権のパターン値をAPIから取得)
If (AccessMask = 1179817) Or _
(AccessMask = 1245631) Or _
(AccessMask = 2032127) Or _
(AccessMask = 1180095) Or _
(AccessMask = 786496) Or _
(AccessMask = 1180063) Or _
(AccessMask = 1179785) Or _
(AccessMask = 278) Then
' アクセス可能。
End If
-----
何だこれは?
比較している数値が「読み取り」「書き込み」などのアクセス権の状態であろうという事は容易に推測できるが、どう考えても、このコードでは、すべての設定パターンを網羅できないのは明白だ。
要するに、社員は以下の事が理解できていない/知らないのである。
・アクセス権がビットパターンで表現されているという事実。
・あるビットが立っているかどうか判断する方法。
こんな程度の事をいちいち教えなければコードが書けないのだろうか。
あまりにも知識がなさすぎる。
このエピソードはいかがでしたか? ![]() ![]() | ![]() |
投稿者 zunbe : 2005/08/26 00:21:04 | コメント (0)
2005/08/11
|
今日も、こんなことがあった。
社員に、バックアッププログラムをWSHで作らせたんだな。
そして、「バックアップ対象のディレクトリの一覧を標準入力から取り込んで実行するようにしなさい」と指示を出した。
出てきたプログラムの実行例はこうだ。
-----
hoge.vbs C:\auau C:\eiei
-----
何でやねん。
「標準入力から」と言っとるだろうが。
ついこの間まで、フィルタ・プログラムの作成で標準入出力を散々使ったろうが。
何でWSHだと、標準入力がコマンドライン引数になってしまうんだ。
若いモンの考えはよくわからん。
このエピソードはいかがでしたか? ![]() ![]() | ![]() |
投稿者 zunbe : 2005/08/11 06:53:29 | コメント (0)
2005/08/07
|
今日も、こんな事があった。
サイトの負荷テスト用のプログラムを社員に書かせた。
プログラムを fork して複数のプロセスを実行し、同時にターゲットのサーバにアクセスするプログラムである。
社員は、プロセスを fork するコードとして、以下のようなコードを書いてきた。
-----
$pid = fork()
if (defined($pid))
{
# 親プロセス
}
else
{
# 子プロセス
}
-----
おいおい、fork の戻り値は、-1、0、正の整数 のいずれかだろう。
どこから「defined で判定する」という発想が出てくるんだよ。
そんな判定、ありえないだろう。
要するに、社員は、変数の型を意識してプログラムを書くという事を知らないのである。
「型を混合した演算は一切するな」と口すっぱく言っているのだが、いつまでたっても、型をごちゃ混ぜにして使う。
型を意識する事を知らないから、数値に対して defined で判定するという、とんちんかんなコードを書く。
まったく、困ったもんです。
このエピソードはいかがでしたか? ![]() ![]() | ![]() |
投稿者 zunbe : 2005/08/07 00:56:37 | コメント (0)
| [<<先頭] [<前へ] [ 1 2 3 4 5 6 ] [次へ>] [最後>>] | ||