富士フィルム X-M1

富士フィルム製ミラーレスカメラを入手

私はSONY α6000とリコーGR、NIKON D7000を所有しております。どれも好きなのですが、最近富士フィルムのミラーレスカメラのフィルムシミュレーションがとても良さそうだな、と思いまして、ついに富士フィルム X-M1を入手しました。

富士フィルム X-M1 + 25mm 1.8F

色々試してみて使用感をブログにアップしようと思います。

残業と勉強

私が思ったこと

残業とは定時内に業務が終わらず、時間を延長して業務を行うことですね。

私が残業について思うことを述べます。

仕事した分は会社はちゃんと払うべき

世の中、サービス残業が取り沙汰されておりますが、私の考えとしては仕事した分は支払えという考えです。サービス残業を強要するということは、対価を支払わないということなので、ゆくゆく会社の首を締めるはずです。また、従業員も離職の可能性が高まります。

じゃあ、勉強する時間にも金を払えということか!!

その勉強によってゆくゆくは業務への力と鳴るならば支払うべきだと考えます。

えー。業務と直接関係ない自己啓発にも払うの?

業務と直接関係ない例えば英語は全く使わないのに英語の学習をするとか。それは流石に管理職の方は「早く家に帰れ」と言ってください。

という前提で若い人の場合を述べます

最近の若い人の考え方は、「サービス残業はやらない。定時が終わったら即帰宅。仕事を言われたら明日やる。」だそうです。私もサービス残業を推奨するわけではないのでその意見はわかります。 が、こう考えてみてください。

若い頃の貴重な時間を業務習得に使わないのは、自分の成長が遅れるだけ、と。 仮に会社が残業は一切出さない。サービズzン業も許さん。という会社だったとして、若い人はやはり即帰宅、即遊びでしょうか。そういう人、多くなりましたね。

若い人なら早く業務がこなせるようになって早く会社の利益に繋げられるように勉強をするべきだと思います。そのためには自主勉強は必須だと思います。会社が金を出さないならば家で勉強でもいいので。

そうした方が、最終的に出世も早く、技術・業務知識が早く習得できますし、もっと良い会社に転職という道も若い頃なら可能です。

若い頃、残業代が出ないなら仕事しない、即帰宅、勉強もしない、という人は絶対に後悔すると思います。ああ、あの時頑張っておけばよかった、と。私がそうですから(苦笑)

余談

若い人を見ていると、上司から「この仕事やって」と言われて「○○なんでできません。他の人にお願いします」って、できない理由を延々言う人がいますね。

できない理由をよく言う人間はあまり出世しない気がします。私の見ている限りで。それは、上司の期限を損ねるから、という話ではなく、ちょっとした壁に対して逃げる癖がついていると言えるからです。

「○○をしてくれたら仕事をやります」って提案をしてください。例えばもう定時近いので今日中の仕事は無理ならば「2日時間をください。その間に仕上げます」とか「今持っている仕事が✗✗なんですけど、これの優先度を落として良いならばこちらを優先度を下げて良いならば、そちらの仕事を今日中に仕上げます」とか。

とにかく、新人や若い頃は残業をしてでも早く業務を身につけるべきです。残業代がでればそれに越したことは無いですが、出ないとしたら業務に役立つ勉強を家でするなどプライベートを削ってでも力をつけるべきだと思います。

それが自分の将来の成長のためです。これができない人間はたいていは成長が遅く、評価が下がっていくと思ってください。

もちろん、実力がついたときに、サービス残業やれとは言いません。ちゃんと仕事した分は給与を支払ってもらうべきだと理解していますよ。

あくまで若い頃は金を払ってでも勉強しろってことです。その勉強に会社がお金をだしてくれるならばそれに越したことは無いですし、金が出ないならば数年間は自宅で勉強して、そして会社に見切りをつけて他の会社に転職という手もあります。

老婆心ながら。

カメラα6000中古を購入した!

カメラ購入

つい最近、カメラを買いました。 ソニーのミラーレス一眼カメラ α6000 です。 といっても中古ですが。

f:id:unyonyopochi-snake:20220226173127j:plain
SONY α6000ブラックをRICOH GRで撮影
なんで購入したかについて説明します。

購入理由

私は風景撮影の他に室内撮影も行います。 何を室内で撮影するかといいますと、ネットオークションに個人出品する商品を撮影しています。 利益なんて期待してはいません。部屋で使わなくなったものを捨てるのがもったいないので、格安で出品しています。

ですが、できるだけ良い状態をお見せしたいとは思い、撮影にはいつも気を使っています。

ところが、私の持っているカメラで室内撮影をすると、暗いせいかISOを高く設定しなくては行けないし、それでもシャッタースピードが1/30とかになってしまってぶれて粗い写真になってしまうのです。 照明器具を揃えればいいのですが・・・部屋が散らかってしまうのが難点なんです。

「室内撮影=暗い」→「ISOを高く設定&シャッタスピードが遅くなる」→「ぶれて粗い写真になってしまう」→「商品が見にくいし、安く見えてしまう」

おかしいな。いいカメラ(RICOH GRを愛用)を使っているのに。

そこで、ISOを高くしても拡大しても粗くならない写真が撮影できるカメラ=高解像度で既存のレンズを流用できるα6000を買おう!!と思いました。

新品は高額。リスクはあるが中古で購入

というわけで中古を購入しました。

試してみると、解像度がすごい。 Lightroomで拡大してもピクセルの粗さが少なくてとてもきれいです。

f:id:unyonyopochi-snake:20220226173726j:plain
a6000で撮影 「H」文字のあたりがフォーカスポイント

オブジェクト指向言語の継承関係

オブジェクト指向言語の継承関係

オブジェクト指向言語でソフトウェアを開発する時、一番、設計で悩むのはこの継承関係ではないでしょうか。

継承関係とは抽象度の大小で関係性を示すことで、後のコーディング量の削減やメンテナンスのしやすさに関わってきます。

例えば、「人」「男性」「中学生」とキーワードが並ぶと、抽象度で順列をつけると 【「人」> 「男性」>「中学生」】 となります。

尤も、中学生には女性もいるでしょう。上記は常には正しくないわけです。

ソフトウェア開発における継承関係

このブログで言いたいのはまさに「上記は常には正しくないわけです。」のところです。

あるシステムでは 【「人」> 「男性」>「中学生」】  は正しいのですが、あるシステムでは間違いという点です。

継承関係を考える上では実装したい世界はどのような範囲なのかを捉えることが絶対に必要になります。

話を戻しますね。【「人」> 「男性」>「中学生」】 が正しい世界。それは、 例えば、 ・男子中学の名簿システムなので男性=中学生か、男性の先生しかいないシステムでよい こうです。

はい、女性が登場しないシステムならば【「人」> 「男性」>「中学生」】で良いのです。

 1年後、この学校では将来女性も入学することが判明しました。

さて、エンジニアは困りました。なにせ、【「人」> 「男性」>「中学生」】という概念で 実装していたシステムに女学生が加わることになりました。

こうなると、システムの全更改ですね。多分、【「人(+性別属性)」>「中学生」】みたいな 設計に変更しないといけません。メンテナンス性の良かったオブジェクト指向がむしろ仇となりました。

つまりエンジニアは 「後々にどのようなシステム拡張や変更が行われるかを意識して継承関係を設計する必要がある」 のです。

これがエンジニアを悩ませる継承話なのです。将来の拡張なんてわかるわけが無いというのに。

某宗教団体

学生のときに怪しげなサークルの勧誘にあいました

私が大学生(今から20年以上前)のとき、サークルの勧誘にあいました。 その頃は私も強く言えない人間でしたので、とりあえず話を聞くことに。 そして半年ほどそのサークルに所属しました。

そのサークルの目標「学生時代を有意義に過ごそう」

なんじゃ、それは。と言いたくなるようなのサークルですね。 でもまだ学生だった私は先輩には強く言えず。 合宿やら合コンやらがあるとのことで、そのまま参加することに。

1ヶ月後にはサークルの目的が某宗教団体の学生部に加入することでした。 内容は仏教系。

話していることは間違っていない

私とて危険な宗教には気をつけていたつもりですが、先輩のススメだし先輩には色々便宜を図ってもらえている、というのが足かせになり簡単には抜けられませんでした。

そして話は「家族は大切にしよう」とか「大学生になって何をしたいかを考えるべき」とか「疑ってかかれ」と言われ、それらは至極まっとうな話だと思ってしまったのです。

なんか違和感が。

さらに1ヶ月後には某宗教団体の学生部に加入しました。 会費はいくらでも良い、と言われたので3,000円を布施しました。 まー仏教系だし、そこまで問題はないだろうぐらいに思っていました。

ところが、話を聞き続けるといくつか活動に疑問が出てきました。   先輩「実家にはサークルのことは言わないほうがいい」    私「え?家族を大切にしろという話と矛盾していませんか?」   先輩「言うと心配するからね。これも方便だよ。心配をかけるとサークル活動がしにくくなるかもしれないからね」    私(あれ?方便といえば通ると思っている?)   先輩「家族とトラブルになったら言って。僕と部長も説明しに行くから」    私(ん?心配させてまでサークルにいる意味があるの?)

で、その後。   私 「サークルは脱会したいと思うのですが。」   部長「ふざけるな。おまえ、大人じゃないな。今まで真剣に聴聞ができていないのか。ガキな服装して。そんなんだから成長しないんだよ」   私 (抜けるだけで服装や性格のことまで言われないといけないの?) 

これで、頭に来ました。目が冷めたというか。

この経験から判ったこと

①「俺、宗教には引っかからないぜ」  「おれ、神信じてないもん」  「おれは俺のことしか信じてない」  「他人の意見に左右されないぜ」 と思っている人ほど簡単に転びます。

そういう人は周囲の意見や入ってくる情報で簡単にネジ曲がることを知らないのです。

ちなみに、私のサークルの母体である○○会では「人生の目的」とは何かを求める団体でした。 「人生に目的がなければ何も考えず死ぬまでいきているだけだよ」 「そんなの惨めじゃない?どう?」

とか

「朝は元気かもしれないけど、夕方に事故を起こして死んでしまうかもね。違うかな?」 「じゃあ、今を全力で生きないとね。」 「で、今を真剣に生きている?今日死んだら悔いは無いかな?」

こんな話を延々としていましたね。

で、 「今は元気だから ”おれ、今を真剣に生きていますよ。こんなサークルいなくたっていいです” と  思うかもしれないけど、いざ、不治の病に倒れたら絶対後悔すると思うよ。真剣に考えてそれでも”サークル怪しい”っておもうならもう一度話し合おう。」 「疑問は何でも聞いてね。疑ってかかってほしい。疑って、疑って、それで間違っていると判明したら抜けて構わないよ。だけどよく考えて結論を出してね。一生の話なんだから真剣に考えて。」

みたいな言われ方をしました。 真剣に考えれば考えるほど、そして、疑ってかかれば疑うほど正しく感じました。 そして、サークルの術中にハマりましたね。

そうなんです。 「自分は真実にたどり着けることが出来る」 「自分は正しいと判断できる人間だ」 「だから、他人の言っていることは信じない」 と過信している人ほど簡単に洗脳者の術中にハマるんです。 こういう人はふとしたことで考えがひん曲がりやすく、しかも自分が正しい真実にたどり着いているという過信があるから周囲の説得に応じない人間になりやすいです。

ほら、洗脳されている人が映ったVTRを見ると周囲が何を言っても聞かないでしょう。 家族の説得に応じない人がいますよね。 あれ、自分自身でよく考えて真実にたどり着いたと思っているからなんです。

「教祖の言っていることを疑ってかかった」 「疑って、間違っていることを指摘してやる!」    : 「考えて考えて・・・教祖の言うことが真実だと判った!」 「ああ、教祖が言っていることがすべて正しかったよ。」 「これだけ考えたんだ。おれが正しい事を突き止めた。」 「洗脳されたわけでもない。」 そして 「親に教祖のことを話したら否定された」 「俺の言っていることの方が真実だよ。親は真実を知らずにかわいそうに。」 「親にも教祖の話を聞いてほしい」 「親が押しかけて俺を羽交い締めにする。親も敵だ」

こんな感じになります。

このことが理解できたので

私は半年後に脱会しました。二ヶ月間ぐらい追い回されてきつかったですね。友人の家とか泊まって逃げ回りましたよ。 今でも当時のことを考えると不安で震えます。

私の若い頃の話をさせていただきました。

トラックボール買い替え

買い替えた

私はトラックボールマウスを使っていますが、ラバーコーティングがボロボロになってきたので 買い替えました。

f:id:unyonyopochi-snake:20220123163328j:plain
logicool Ergo

やっぱり新しいマウスは使っていて気持ちが良い手触りです。

C言語:ポインタ

C言語のポインタとは

C言語JAVAやその他の言語に比べて低級言語です。 ちなみに低級言語とは質の良し悪しではなくマシン語に近いかという意味です。

そのため、メモリ番地を意識したコードを書くことができます。 メモリ番地のことを「アドレス」といいます。そして、そのアドレスを指し示す変数のことをポインタ変数(以降、ポインタ)と言います。

ポインタの例

例えば、下記のようなものです。ポインタ変数「pVal」の宣言の書き方です。

   int *pVal;

変数「pVal」の手前に「*」がついています。これがポインタを意味する文字です。 pVal変数は「int型のポインタ変数」といいます。pValにはアドレスが格納できます。

ポインタ変数の使い方

まず、ポインタ変数を宣言しただけでは数値を代入できません。

   int *pVal;
   pVal = 10;   //コンパイルエラー

ポインタ変数の頭に「*」をつけるとポインタの示す変数になるんでしたね。では下記のようにしてみましょう。

   int *pVal;
   *pVal = 10;   //実行時エラー

うん、これだとエラーになります。理由は何でしょうか。

答えは、「ポインタ変数の先が無いから」です。早い話、pValはアドレス型ですが、まだ宣言しただけでpValには値が入っていません。よって、ちゃんと”int型のアドレス”を代入する必要があります。

  int *pVal;
  int. x = 0;
  pVal = &x; // 変数xのアドレスをpValに代入

  *pVal = 10;  //正常
  printf("x = %d¥n", x ); //画面に「x = 10」が表示される

  x = 50;
  printf("*pVal = %d¥n", *pVal ); //画面に「*pVal = 50」が表示される

変数の戦闘に「&」を付与すると変数が格納されたアドレスを意味します。 上記のように、変数xのアドレスをpValに代入すると、xとpValの先が同じアドレスになるため、*pValに値を代入すると、xの値が変化しますし、xに値を代入するとpValの指し示す先のint型の値が変わっています。

C言語のポインタは難しい?

確かにややこしいですが、ポインタを理解するとコンピュータのCPUの計算の動きがわかるようになります。 プログラマとしては損ではないと思いますよ。デバッグのときに重宝します。