<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>落ちこぼれ組み込みエンジニアの戯言集</title>
<link>https://ameblo.jp/mkp0618/</link>
<atom:link href="https://rssblog.ameba.jp/mkp0618/rss20.xml" rel="self" type="application/rss+xml" />
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com" />
<description>普通やら当然と、経験則で作業が行われて、システムに比べると随分、手法に遅れが見られる組み込み。でも、覚えることは、システム以上に多い。だから、それを忘れないようにするための戯言を集めてみました。</description>
<language>ja</language>
<item>
<title>達人プログラマー</title>
<description>
<![CDATA[ <br>さて、仕事の方を頑張る気力が復活したので、blogを再開しようと思います。<br><br><a href="http://www.amazon.co.jp/gp/product/4894712741?ie=UTF8&amp;tag=mkp0618-22&amp;linkCode=as2&amp;camp=247&amp;creative=1211&amp;creativeASIN=4894712741">達人プログラマー―システム開発の職人から名匠への道</a><img src="https://www.assoc-amazon.jp/e/ir?t=mkp0618-22&amp;l=as2&amp;o=9&amp;a=4894712741" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;"><br><br><br>以前、協力会社の方に紹介してもらった書籍です。<br><br><br>内容は、プログラムの書き方とかあり方などを細かく記載してあります。<br><br><br><br><br>・・・といって内容を書いてしまうのですが。<br><br><br><strong>1章 達人の哲学</strong><br><br>基本的に、仕事をどう進めるべきかということを格言を交えて記載しています。<br><br><strong>・仕事を人のせいにしない</strong><br><strong>自分の任せられている範囲は、自分で責任を取るようにしましょうとのこと</strong><br>これだと、誤解があるので、<strong>いい加減な言い訳よりも対策を用意するということ。</strong><br><br><br><strong>・ソフトウェアのエントロピーに負けない</strong><br>ソフトウェアというのはどこか無秩序(エントロピー)である。<br>だが、デリケートなものであるということ。<br>また、ニューヨークの割れた窓を題材にし、ソフトウェアとはひとつの腐食が、全てに及ぼす影響を<br>記載してます。<br><br><br><br><strong>・周りを巻き込む</strong><br>自分がチームの触媒となり、よりよい方向にプロジェクトを持っていくこと。<br>これも解りやすい例で紹介。<br>軍人の石鍋とか。<br><br><br><strong>・ソフトウェアに完璧を求めない。</strong><br>完璧なコードはあるかもしれないが、十分な程度にとどめておくものが良い。<br>やめ時を見極められなければ、ソフトウェアが台無しになるということ。<br><br>リファクタリングをしすぎと、コードの可読性なりをあげることはできるけど、<br>本来の要求を満たせなくなっていたりとかする場合もありうる。<br><br>では、十分なものとは何か。<br><br>それは、顧客の品質の要求を満たすものであるということである。<br>それが出来ていれば十分なコードなのである。<br><br># 新人の時によく言われたな・・・ｗ<br><br><strong><br>・定期的な知識の</strong>供給<br>常に知識を供給すべし。<br>１年にひとつ、ふたつの言語を習得すべし。<br>言語によって問題の解決方法があったりして、それが他の言語で適用することも出来たり<br>するとかあるらしい。<br>昔の知識を思い出して完璧にするとか。<br># 細かく書くとあれなので、このあたりで。<br><br>まぁ、学習の機会は作り出せるから、そのときにしっかり学習ということですね。<br><br><br><strong>・伝達について</strong><br>良い聞き手になること、言いたい事を理解するということについて記載。<br><br>まぁ・・・これはよく言われることですね。<br><br>-------------------------------------------------------------------------<br>ざっと書いたけど、結構、よく言われることが書いてありますね。<br><br>でも、ソフトウェアのだめになることを割れた窓というように書いてあるのは、<br>結構新鮮でした。<br><br><br>２章が読み終わった時点でまた、まとめる形式で記載をします。
]]>
</description>
<link>https://ameblo.jp/mkp0618/entry-10278166612.html</link>
<pubDate>Thu, 11 Jun 2009 00:09:47 +0900</pubDate>
</item>
<item>
<title>4ヶ月が経ってしまいました。</title>
<description>
<![CDATA[ <p>色々悩み続けた結果、ひとつの結論が出ました。</p><br><br><p>・今の会社には、長々といるべきではない</p><br><br><p>給与もそうですが、僕が頑張っても、上長の期待は得られなさそうだ。</p><br><p>とりあえず、景気はあと１年から２年で上向いてくるだろう。</p><br><p>そのときを狙い、転職をします。</p><br><br><p>そのときの準備として、色々勉強して行こうと思います。</p><br><p>そのフィードバックをこのblogに綴ります。</p>
]]>
</description>
<link>https://ameblo.jp/mkp0618/entry-10278146925.html</link>
<pubDate>Wed, 10 Jun 2009 23:56:40 +0900</pubDate>
</item>
<item>
<title>コンピュータの原点</title>
<description>
<![CDATA[ <p>今更で、お恥ずかしいことだと思いますが・・・。</p><br><br><p>「<strong>入力</strong>」「<strong>処理</strong>」「<strong>出力</strong>」の3つが基本となっているのですね。</p><br><br><p>ハードウェアも何かを与えたら(入力)、計算して(処理)、何かを出す(出力)。</p><br><br><p>これを念頭にしてプログラムを見ると、プログラムが本当に綺麗なのかなと、思ったりします。</p><p># まだ実践していませんが。</p><br><br><p>その機能は、何かを与えられることによって、これを計算して、何かを出すということを考える。</p><p># その前に関数の分割がうまく出来ないとだめだろうけど。</p><br><p>コードを書く上での意識をすると、その関数の目的の明確化、更には機能についての明確化も出来そうですね。</p>
]]>
</description>
<link>https://ameblo.jp/mkp0618/entry-10201042696.html</link>
<pubDate>Sun, 01 Feb 2009 00:40:45 +0900</pubDate>
</item>
<item>
<title>コード設計  (1)</title>
<description>
<![CDATA[ <p>コード設計についてまとめようと思います。</p><br><p>今後、後輩を見ることになるし、何よりも、他人のコードを多く見ていくことにもなる。</p><p>さらに見られるようになる。</p><br><p>良いコードとは何かを考えてみようと思う。</p><br><p>現在、当該内容について、読んでいる本。</p><br><br><p><strong>・達人プログラマー(発行：株式会社ピアソン・エデュケーション)</strong></p><br><p>個人的な意見として、組み込みの分野の人は、特に我が強い人種だと思います。</p><p>自分のやっていることについて、間違いと言わない人が多いと思います。</p><br><p>この本については、良いプログラマーになる上での内容を記載しています。</p><br><p>読み終えたら、どんなことが書いてあったか、</p><p>この本から、僕はどのようにコードを書かないといけないかをまとめようと思います。</p><p># 今月から、来月のエントリーで書こうと思います。</p><br><br><p>さて話が逸れましたが、現在、自分がコード設計をするうえでどのようにしているかを記述しようと思います。</p><p># ひょっとしたらこの本を読むことで変わるかもしれませんね。</p><br><p>コードの設計と一重に言っても、いっぱいありますね。</p><p><strong><br></strong></p><p><strong>・ドキュメントからコードに起こす上で初めにすること</strong></p><p><strong>・実際のコーディング</strong></p><p><strong>・全体的に心がけること。</strong></p><br><p>製造(メイク、コーディング)という工程の中で考えると沢山あります。</p><p>今回は、<strong>コードを書く前に行うこと</strong>を書こうと思います。</p><br><br><p><strong><u>全体像の把握</u></strong></p><p>以下のことを洗い出します。</p><p><strong><br></strong></p><p><strong>・自分が何を作るか</strong></p><p><strong>・それにはどのような機能が必要か</strong></p><br><p>人によっては、</p><p><strong><u><br></u></strong></p><p><strong>・このシステムにはどのような機能が必要か</strong></p><p><strong><u><br></u></strong></p><p>から考える人もいると思います。</p><br><p>これは、必要な分だけの機能だけ、設計・作成することが出来れば、問題ないと思いますが、</p><p>使わないものまで、残るパターンが多いです。</p><br><p>そうすると、使用しない機能(関数)が残り、</p><br><p><strong>「本当にこの関数は必要なのだろうか？」</strong></p><p><strong><br></strong></p><p>ということになってしまいます。</p><br><p>後々、コードを見る人にとってやさしくありません。</p><br><p>やはり、コードは、他人に優しくなければいけないと思います。</p><br><br><p>話はそれましたが、</p><p>要は、システムの機能を<strong>ボトムアップ</strong>で設計するか、<strong>トップダウン</strong>で設計するか</p><p>というところに集約されます。</p><br><p>組み込みの場合、</p><p>ある程度、どのようなものを作るか、システムの全体像が決まっていることが多いと思います。</p><br><p>ですから、トップダウンの設計で問題ないのかなと私は思っています。</p><br><p>あくまでも私が携わっているHWに近いプログラムでのお話ですが。</p><p>SWになると、トップダウンとボトムアップを組み合わせないといけないかもしれません。</p><br><p>利点としては、不要なコードが減るといったところですかね。</p><br><p>コードというのは、後々誰かに見られ、保守・管理されていくものだと思っています。</p><p># 使い捨てのコードというものは、聞いたことありません。</p><br><p>保守・管理の人達にとって困るものは、コードにおける不具合だと思っています。</p><br><p>いつまでも、そのコードを作った人が、保守･管理をするということはありません。</p><p>不具合が出たとき、誰かが対応します。</p><br><p>そのときに、<strong>「本当にこのコード必要？」</strong>という疑問を持つでしょう。</p><p>そのようなことはコメントでカバーも出来ますが、必要でないものは、オブジェクトサイズを</p><p>考えないといけない場面もあると思いますし、よろしくないと思います。</p><br><p>結論から言うと、「全体を考えて作成」することがよいコード作りの入り口になると思っています。</p>
]]>
</description>
<link>https://ameblo.jp/mkp0618/entry-10197691009.html</link>
<pubDate>Sun, 25 Jan 2009 10:12:00 +0900</pubDate>
</item>
<item>
<title>バイトオーダー</title>
<description>
<![CDATA[ <p># 凄く間が空いてしまいましたが、これからは、週1ペースで更新をするようにします。</p><br><p>いかんせ、私は、まだ駆け出しの組み込みエンジニアであるゆえ、間違いもあると思います。</p><p>誤りを見つけられた場合は、ご指導のほどよろしくお願いいたします。</p><br><p>----------------------------------------------------------------------------------------</p><br><p>組み込みの仕事をすると、よく聞きます。</p><br><p><strong>「リトルエンディアン」</strong>とか<strong>、「ビックエンディアン」</strong>とか。</p><br><p>これについて初めのエントリーとして書いてみます。</p><br><br><p><strong>・バイトオーダーとは</strong></p><p>「2bytesや4bytesといった多バイトで表現する数値をメモリに格納する際のバイトごとの並び。」のことです。</p><p>(参考：ASCIIデジタル用語辞典)</p><br><p>最上位バイトが下位にあるのがビッグエンディアン。</p><p>最下位バイトが上位であるのがリトルエンディアン。</p><br><p>言語で言うと、Javaは、ビッグエンディアンで、C言語はリトルエンディアン多バイトを表しますね。</p><p># 社会人1年目のPJでネットワークシステムで、サーバJava、クライアントC言語といったシステムで、</p><p># 通信ではまったこともあったりして、この辺りはなんとなく覚えていたりする。</p><br><p>では、そもそも、何故バイト、オーダーって存在するのでしょうね。</p><br><br><p><strong>・何故、二つのエンディアンが存在するのか？</strong></p><p># これについては完全に調べ切れていません</p><br><p><strong>　インテル系のCPU (IBM) = リトルエンディアン</strong></p><p><strong>　モトローラ系のCPU(SUN / Apple) = ビッグエンディアン</strong></p><br><p>おそらくは、インテルやモトローラが作ったものが、リトルエンディアン、ビッグエンディアンを採用したからと</p><p>思われます。</p><p># 調べていくと皆、そういう風な回答になりますね。</p><br><p>では、何で、各メーカーは、そのエンディアンを採用したのでしょう。</p><br><p>何かもっと深い理由がありそうですね。</p><br><p>用途の問題なのでしょうかね。</p><p>I/Oについては、リトルが多いし、画像系の規格であれば、ビッグが多いし。</p><br><p>各用途によって、早くなるのかな。</p><br><p>TCPとかはビッグを利用するから、AppleやSUNのPCの方が早そうだけどなぁ。</p><br><br><p><strong>・長所、短所</strong></p><p>ここまで考察してみましたけど、結果的に、長所・短所がわらからないのと、選定する場合には何を基準にして</p><p>選定するのでしょうか、不明ですね。</p><br><p>そもそも、何故二つの規格というところに戻ってしまいます。</p><br><br><p><strong>・エンディアンが違った場合、変わった場合に注意すること</strong></p><p>現在、両エンディアンに対応するようなプログラムを作成しているので、本内容を題材にしました。</p><br><p>どのようなところに注意すべきか。</p><br><p>　・多バイト長アクセス　→　32bitでデータを扱う場合は、32bit変数、16bit変数の考慮が必要です。</p><p>特にレジスタアクセスの場合は、32bit幅でアクセスしたほうが無難かも</p><p>しれませんね。</p><br><p>・DMAなどのメモリ転送 → メモリとプログラムで扱うエンディアンが違った場合、正しく転送されません。</p><br><p>・ネットワークを利用した通信 → DMAと同じですが、対向のエンディアンが同じであればよいですが、</p><p>　　　　　　　　　　　　　　　　　　　　　　違った場合は、変換の必要がありますね。</p><br><br><p>ここからは不明。</p><p>宿題な方向で。</p><p>・変数のマスクについては、ひっくり返すべき？</p><p>・両エンディアンの必要性</p><br><p>次回は・・・正しいコードの記述について考えてみようかと思います。</p><!-- google_ad_section_end(name=s1) --><!--entryBottom-->
]]>
</description>
<link>https://ameblo.jp/mkp0618/entry-10189888668.html</link>
<pubDate>Fri, 09 Jan 2009 09:27:25 +0900</pubDate>
</item>
<item>
<title>チェックリスト</title>
<description>
<![CDATA[ <p>ここ2週間、リーダーが休暇中ということから、私がリーダーの代わりをし、そのサポートとして課長が付くという形で作業をしています。<br><br>ぎこちない部分が多々ありますが、なんとかプロジェクトは回っています。<br><br>課長と作業しているせいか、色々と指摘を受けます。<br><br>今日はいくつかあるうちの中で、これは誰でも実践すべきだと思ったことを書きます。</p><br><br><p><strong>・チェックリストの作成</strong></p><p><strong><br></strong></p><p>作業工程でレビュを行い、指摘受けることがあります。</p><br><p>それについて、指摘を直して、その工程完了・・・・ってなる人って多いのではないでしょうか？</p><p># 少ないよ、ということを言われると、話が進みませんので、多いということで進めます。</p><br><br><p>私は、それで完了という人間です。</p><br><p>本日、レビュを行い、課長が些細なミスを指摘しました。</p><p>そこで、私にケアレスミスが多いと踏んだ課長が私に提案したこと</p><br><p>それが<strong>チェックリストの作成</strong>でした。</p><br><p>何かというと、<strong>「今まで指摘された事項をまとめなさい。」</strong>ということでした。</p><br><p>まとめた結果、毎回レビュ前に<strong>「それに書かれている内容を確認しなさい」</strong>ということです。</p><br><p>チェックリストを作ることによって、今までの自分の財産となり、今後、後輩を指導するようになったとき、</p><p>それを見せるようにすることによって、作るものの品質があがるというプラスの効果が期待されます。</p><br><p>今からでも遅くないので、それを実践しようと思います。</p>
]]>
</description>
<link>https://ameblo.jp/mkp0618/entry-10119710647.html</link>
<pubDate>Thu, 24 Jul 2008 21:40:33 +0900</pubDate>
</item>
<item>
<title>1日の作業</title>
<description>
<![CDATA[ <p>作業を行う上での内容を書こうかなと思います。</p><br><p>&lt;朝&gt;</p><p>・15分前くらいには出社。本日の作業内容の確認</p><br><br><p>・・・といった具合でしょうか。</p><br><p>よくネットとか、やって、作業時間を迎える人がいるけど、やはり、作業は、定時から始まるもので、</p><p>その終了時間の前に、どの程度の成果が出せて、そして、それを元にどの程度、残業すればよいのかとかを</p><p>考えるのかな。</p><br><p>目標の設定という意味でもあるから、これを外すと、何をどこまでするのか、わからなくなるのかな。</p><br><p>&lt;昼&gt;</p><p>作業。</p><p>睡魔が天敵だけど、どのようにすればよいのかしら。</p><p>コーヒーをガブ飲みすればよいのかしら。</p><p>集中力がなくなってきたときの気分転換方法とかも謎だけど。</p><br><p>これは、後日考えるとするかしら。</p><br><p>&lt;夕&gt;</p><p>・作業内容の成果確認</p><br><p>基本的に残業はしない。</p><p>明日出来るようであれば明日片付ける。</p><br><p>日数が迫っているもであれば、早めに終わらすのも手。</p><br><p>ただ、僕は、残業について反対であるのと、会社にとって必要悪と思っていないので、</p><p>貰わないようにするものだと思っています。</p><br><p>何かを履き違えて、残業しようとする人も多いですが、この姿勢は、基本的に、変わらずにやって行きたいと思います。</p><br><br><p>・・・ということで、1日の作業についてまとめると。</p><br><p><strong><br></strong></p><p><strong>朝</strong></p><p><strong>・本日の目標設定</strong></p><p><strong><br></strong></p><p><strong>昼</strong></p><p><strong>・その目標の実践</strong></p><p><strong><br></strong></p><p><strong>夕</strong></p><p><strong>・目標に対するアウトプットの確認</strong></p><p><strong><br></strong></p><p><strong>→完了してれば、作業終了</strong></p><p><strong>→完了していなければ、その目標内容について、あとどれくらい行えば、完了するかを見積もる。</strong></p><p><strong>　状況によって残業。</strong></p><br><p>それが出来たらよいのかな。</p>
]]>
</description>
<link>https://ameblo.jp/mkp0618/entry-10118726980.html</link>
<pubDate>Mon, 21 Jul 2008 23:36:03 +0900</pubDate>
</item>
<item>
<title>転職について</title>
<description>
<![CDATA[ <p>転職して３年経ちますが、自分の転職については失敗といます。</p><br><p>考察した結果、以下の通り。</p><br><p>１．転職を目標として、仕事をしていた。</p><p>２．実は自分が出来る人間だと思い込んでいた。</p><p>３．まだ、実は、答えが出せるものではない。</p><br><br><p>１について。</p><p>転職したことで目標が達成されてしまいました。</p><p>次の目標を探していない状態なのではと思われます。</p><br><p>私は、そういう状態なのです。</p><br><p>今の会社で、技術者として成長したいなと思っています。</p><p>でも、ソフトウェア開発者というのは決して、技術者というカテゴリに入らないんですよね。</p><p># このことについては、後日書くとして。</p><br><p>・・・ということに気づいた瞬間、マネージメント系のエンジニアにならないと、この会社では</p><p>生きていけないのだろうなと思っています。</p><br><p>仕事のモチベーションを上げるために、今一度、今年の目標と数年の目標を決めないと</p><p>いけないのであろうなと思います。</p><br><br><p>２．について。</p><p>やはり、仕事の基本ができていなかったために、大目玉を仕事で食らいました。</p><br><p>だから、これもいえるのかなと。</p><br><p>例えば、報連相ができないとか。</p><br><p>リーダーが仕事をするもので、その手伝いをするのだから、基本、仕事はリーダーの</p><p>意思決定で決まるということ。</p><br><p>まぁ、リーダーがそういう認識で仕事をしていなかったら微妙ですが。</p><br><br><p>３．について</p><br><p>やっぱり、３年やそこらでうまく、言えるものでもないだろう。</p><p>・・・もともと第２新卒のようで入ったわけだし。</p><br><br><br><p>とりあえず、今は、今年の目標と、近い未来の目標を立てないといけないのだと思います。</p><br><p>・・・・目標が無いが故に、今迷っているのかもしれません。</p><br><p>あとは、どういう風になればよいのだろうというのが見えないんだろうね。</p><br><p>ｘｘｘに詳しくなるとか、組み込みの分野では、ハードウェアの知識が多く求められて、</p><p>ドライバを作るようであれば、そのハードがどのように動くとかまで、理解しなければいけないわけで、</p><p>難しいところ。</p><br><p>今は、少なくとも、設計、プログラムやら、コーディング、テストといった工程の精度を上げることが</p><p>求められるのかな。</p><br><br><p>でもそれだけでは、ダメだと思うので。</p><br><p>少しずつ、ハードの知識もここでまとめながら、ひとつのシステムについて、提案できるように</p><p>なれるくらいまでなれればよいのかな。</p><br><br><p>とりあえずは、今年は、実装系の内容をちゃんとできるようにを目標にします。</p><p>最低限のことを出来るように。</p><br>
]]>
</description>
<link>https://ameblo.jp/mkp0618/entry-10114667310.html</link>
<pubDate>Thu, 10 Jul 2008 00:51:32 +0900</pubDate>
</item>
<item>
<title>はじめに</title>
<description>
<![CDATA[ <p>今回、仕事の内容の備忘録ということで、blogにまとめて行こうと思います。</p><br><p>システムで3年、組み込みで3年、仕事をしている私ですが、今だに、組み込みでの仕事に慣れません。</p><br><p>そして、今まで行ってきた作業での知識というものをまとめずにいたということもあり、</p><p>今でも未熟なエンジニアとして扱われている状況を打開したいがために、このblogを開設しました。</p><br><p>更新間隔は不明ですが、拙い文章になるかもしれませんが、よろしくお願いいたします。</p>
]]>
</description>
<link>https://ameblo.jp/mkp0618/entry-10114327875.html</link>
<pubDate>Wed, 09 Jul 2008 00:52:10 +0900</pubDate>
</item>
</channel>
</rss>
