«Prev | | 1 || Next»

2010-04-07

ニーズに対応できていない

プログラマー「プログラムスキルに数学は必須!!」 別のプログラマー「…と、言ってるPGは情弱w」
自分から言わせてもらうと必須ですね。
集合論理はもちろんですが、とある計算式の補正値を求めたりとか
ある時間をスマートに簡単な計算式を使うとか。
簡略化になるってことはそれだけソースが見やすくなることに
繋がる訳なので必要といえば必要。

あとスレにもありますが英語も解った方がいいですよね。
ほとんどのソースは英語だし、とあるプロジェクトじゃ英語の仕様書を読んで
インプリしないといけないですしね。
createとmake、deleteとerase。
この言葉の違いを使い分けている人をみるとかっこいいですよね。
英語力もソースの読みやすさに繋がるのであった方が良いよねってことです。


まぁでもそんなことは基礎が出来てからの話で
これらと同時に技術力を養わないと時代にはついていけないよね。
ってところが技術屋の大変なところだよね。

2010-02-18

自分を騙し騙される

お仕事の話。

今日は自分で書いたコメント文に騙された…。

仕事で書くソースは関数ヘッダを付けるんですが、そこに書いたbool型の戻り値の説明が逆だった。
それを信用して処理を起こしたので意図する動作にならなかった…。
おかげで1時間無駄にしたし、先輩に聞いて恥をかいた…。
なんか自分のソースのミスってやっぱ自分で見つけるの難しいというか気づかないんですよね。
レビューは大切だよね。

と思った次第。
そんなミスを重ねて今最終電車で帰宅中。

2010-02-11

アマチュアレベル・・・仮にもプログラマ。

お仕事の話。

もうね、未だにアマチュアレベルだなと思った。ダメだ。
こんなミスをするのは伊達じゃない。
バカすぎる。

そんなミスを紹介。

*数値変換ミス

vector array;
・・・arrayに値セット。・・・

atoi((const char*) array[0]));

これですよ。
このとき自分はcharに入った文字を数値に直さなきゃ、とばかり思い込んでいました。
なにがまずいのか、すぐに解ったあなたは流石です。

では答えあわせ。

array[0] = 0x00
が格納されているとして
やろうとしてることは
atoi(0x00);
と同じ。0を0に変換とかおかしいよね。この時点で解りますよね。
さらにatoi関数の正しい使い方は以下。
0x00000000 = atoi("0");

そして、ポインタで0参照するのでセグメントフォルトするという。
バカすぎ。


あとはvector型だからできる、配列比較の論理。
普段STL使ってないから勉強しないとなぁ。
例)vector型AリストとBリストを比較してBリストになかったものを探す。

vector::iterator it;
for(it = BList.begin(); it != BList.end()+ it++)
  if(std::find(AList.begin(), AList.end(), *it) == AList.end()){
    ・・・ // *itはBリストになかった値
  }


find関数・・・便利だなぁ。
イテレータはJavaで先輩が良く使ってたなぁ。。
書かれてるものは解るんだけど、いざ自分が書くときは
イテレータを使おうと思わないんだよなぁ。
イテレータ恐怖症みたいな感じですね。
まぁ、勉強不足なだけなんですけど。


追記
機動戦艦ナデシコBlu-ray BOX【期間限定版】
この間、CM見てたらやっててマジで?!と思い確かめてみたら
ほんとにでるのか・・・。
これは買いだな。

2010-02-05

誰の管轄?

お仕事のお話。

常駐プロセス、一過性のプロセスがあって、
ファイルを作成、通常はファイルを残すがエラー時に削除という一連の流れを行いたい、ファイルは処理後絶対に残存してはいけない場合。

一過性のプロセスにて作成するファイルは誰が削除すべきか。

自分は作成した人が削除する、というスタンスだったので
一過性のプロセスに作成→削除の流れを仕込んだのだが、
先輩からすると、それは微妙らしい。

何故なら、一過性のプロセスは必ずしもファイルを削除できるとは
限らないからだそうだ。
一過性のプロセスは予期せぬ操作や、シグナルが飛んできた時に
その時点で落ちてしまうからとのこと。
(もちろん、シグナルハンドラを使えば後処理はできるだろうが今回それを使えなかった。)
それなら常駐プロセスに管理をまかせた方が良い。
常駐しているなら例え削除に失敗し残存したとしても、とある時間が経過したら削除するようにすれば残存することはない。
確かに。

こういうことは設計する際に、安全原理を考えないといけない。
それは
1.イレギュラーな操作があった場合、
特定の操作で回避できるように作ってあるか。
これは異常になった場合、初期化とか戻るボタンを
押せば正常にすることができるとか。

2.1で回避不可能なイレギュラーな操作があった場合、
その異常状態を保持し続けないようになっているか。
例えばある操作をしたらデッドロックになってしまい、
それを回避する方法がないとか。

などなど。


そんな話。

追記
仕事でPythonを使えるようにしたほうが良いよ。といわれたので
ちょっと勉強してみた。
なるほど、感覚的にはシェルとCの中間ってところか。
それにパッケージの概念があって、クラスも作成できるという。
なんか色々ごっちゃな言語だなぁ。
おまけにインデントでifなどの範囲が決まるので間違えると大変。
タブは非推奨なので半角スペースで頑張るしなかい。

でも触ってみるとなかなか面白いのでもう少し頑張ってみるか。

2010-01-29

よーく考えよう

unsigned int型に-1を代入するとどうなるか・・・。

答えがすぐに分かった人は頭いいね!

自分は先輩にヒント貰うまで分からんかった・・・。

という訳で+の余談。

unsigned intとint型の混合したforに気をつけよう!という話。

例えばカウンタがunsigned intの時に終了条件がカウンタが0未満とかやると
無限ループになるよ。ということ。

反対に

カウンタがintの時にintを超えるunsigned intの値を終了条件にもってくると
無限ループ。

charでも同じですね。

そんな技術的なお話でした。

まぁ、自分用メモ。

2008-12-04

そしてデスマへ

デスマーチへようこそ!

NEGIです・・。orz

リアルにデスマーチ中です。

あれ、冬休みは・・・?


とりあえず、ほかの人の分を自分に押し付けてくる天の人はもう少し考えるべきだと思うんだ。
まさにメイオウ攻撃。

もう無理ぽ。
このデスマ中の焦燥感を感じながら寝るのがつらい。
誰か助けて。

助ーけて、おじいさん。

助ーけて、おじいさん。

教えてー、VBのえらい人ー。

あぁ、デスマーチ、あぁ、デスマーチ

終わりのない計画

あぁ、デスマーチ、もう逃げるしかない。


追記
地味にHP更新。
オール手打ち。
«Prev | | 1 || Next»