MacでArduinoをはじめた

Arduinoを購入したのでMacで動かしてみました

購入

買ったのは、サインスマートのUNO R3互換のボードです。 ブレッドボードやLEDなど基本的なパーツが揃ったセットになっているものです。

起動

今朝届いたので早速接続してみると、基盤のLEDが光りました! 動かすためのIDEArduinoのサイトからダウンロードしました。 HelloWorldをシリアル出力するサンプルコードを打ち込んで起動してみましたが、動かない。。 以下のエラーが出力されていました。

avrdude: ser_open(): can't open device "/dev/cu.usbmodem1411": No such file or directory
マイコンボードに書き込もうとしましたが、エラーが発生しました。
このページを参考にしてください。
http://www.arduino.cc/en/Guide/Troubleshooting#upload
対応

ネットで調べてみるとシリアルポートを選択する必要があるようです。 メニューのツール→シリアルポートから接続に使用するポートを選択して再度実行すると無事成功しました。 シリアルモニタを開いて Hello World!と出力することを確認できました。

ネットワークスペシャリスト受験してきました&解答速報まとめ

今日はネットワークスペシャリストを受験してきました。

私は午前Ⅰが免除になっているので、午前Ⅱが始まる10時30分頃に到着すればOKでした。試験会場が電車で1時間かかる場所だったので非常にありがたいです。 

 

さて、これから2ヶ月間は合格発表まで悶々とした日々を送ることになるのですが、資格の予備校が発表する解答速報を見てある程度合格/不合格を確認することができます。

 解答速報の確認

資格の学校TAC

リンク先に記載の公開予定日を目処に解答がPDFで掲載されます。

情報処理|解答速報| 資格の学校TAC[タック]

iTec

こちらもリンク先記載の公開予定日に公開されます。

情報処理試験の解答速報・自動採点サービス | 株式会社アイテック

 

時間があれば、私の解答も晒します!

 

【Bootstrap】ヘッダ固定時の地味に嫌な問題に対応する

Bootstrapでヘッダ固定した場合、navbarの高さ分bodyの開始位置を下げる必要があります。 ヘッダの高さが予めわかっている場合は、固定値でbodyに対してpaddingすれば対応できますが ウィンドウサイズ変更などでヘッダ内改行が発生する場合、bodyがヘッダに隠れてしまいます。

今回はその対応を備忘録として記載します。

・・・その前に、忙しい方のために結論ですが、javascriptで以下の処理を追加します。

$(window).on('load resize', function(){
    // navbarの高さを取得する
    var height = $('.navbar').height();
    // bodyのpaddingにnavbarの高さを設定する
    $('body').css('padding-top',height); 
});

前提

  • Boostrap3 v3.3.7
  • jQuery 1.1.11

現象の整理

問題を再現させるため以下のページを用意します。

<nav class="navbar navbar-default navbar-fixed-top">
  <div class="container-fluid">
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">Brand</a>
    </div>

    <!-- Collect the nav links, forms, and other content for toggling -->
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
      <ul class="nav navbar-nav">
        <li class="active"><a href="#">Link <span class="sr-only">(current)</span></a></li>
        <li><a href="#">Link</a></li>
        <li><a href="#">Link</a></li>
        <li><a href="#">Link</a></li>
        <li><a href="#">Link</a></li>
        <li><a href="#">Action</a></li>
        <li><a href="#">Another action</a></li>
        <li><a href="#">Something else here</a></li>
        <li role="separator" class="divider"></li>
        <li><a href="#">Separated link</a></li>
        <li role="separator" class="divider"></li>
        <li><a href="#">One more separated link</a></li>
      </ul>
    </div><!-- /.navbar-collapse -->
  </div><!-- /.container-fluid -->
</nav>
<h1>あいうえおきかけこたちつてとあああああああああああああ</h1>
</body>

以下のような表示になります。

①ヘッダ内改行なし(横幅最大)

f:id:sawarasawara:20161015232532p:plain:w500

②ヘッダ内改行あり(横幅中くらい)

f:id:sawarasawara:20161015231511p:plain:w500

③ヘッダ内改行なし(横幅最小)

f:id:sawarasawara:20161015232655p:plain:w500

文字が隠れてしまっていますね。

一般的な対応

単純に、スタイルシートに以下の記載を追加して、bodyの開始をずらします。

body { padding-top: 70px; }

しかしこれでは「②ヘッダ内改行あり(横幅中くらい)」の場合に対応できません。 それを解決するのが次項になります。

高さの変化に対応

高さの変化に動的に対応するため、javascriptに以下の記載を追加します。

$(window).on('load resize', function(){
    // navbarの高さを取得する
    var height = $('.navbar').height();
    // bodyのpaddingにnavbarんぼ高さを設定する
    $('body').css('padding-top',height); 
});

これで、以下の通り全てのパターンに対応できました。 *1

f:id:sawarasawara:20161015233419p:plain:w500f:id:sawarasawara:20161015233425p:plain:w500f:id:sawarasawara:20161015233435p:plain:w500f:id:sawarasawara:20161015233444p:plain:w500

まとめ

以上、対応を記載しました。 もしどなたかのお役に立てれば幸いです。

読んでいただきまして、ありがとうございました!

*1:ページロードとウィンドウサイズ変更以外のトリガでヘッダの高さが変わる場合は、そのイベントにも同様の処理を追加する必要があります。

転職しました(1)

突然ですが、私は半年前に九州から東京へ転職しています。 九州では社員百数人程度のソフトハウスにいまして、SIerからシステム開発の依頼を請けて開発を行っていました。 現在は東京で大手コンサル会社に勤務しています。

九州から東京への転職は、面接のたびに会社を休まないといけないため、日程調整が難しかったです。 そんな私の転職活動を時系列を追ってお伝えしたいと思います。

転職を意識したきっかけ

転職を意識したのは社会人3年目の時でした。 きっかけは、3年目に要件定義から参加したプロジェクトで大失敗したことです。 それまで私は、詳細設計・実装・テストを主にやっていましてお客さんにヒアリングして要件を固めるような仕事は初めてでした。

結果として、

  • お客さんの言っていることが私に伝わっていない
  • 私の言っていることがお客さんに伝わっていない
  • ヒアリング項目の不足

などなど、全くうまくいかずスケジュールがずるずる伸びていきました。 上司と相談しながら最後はなんとか形にしましたが、痛い失敗体験として強く心に残りました。

その時から「一からシステムが作れないのに、システム作ってますって言っていいんだろうか?」という思いを持ちまして、もっとこういう経験を積みたい!と考えるようになりました。

ただ、地方の中小のソフトハウスのためこのような案件は滅多にありませんでした。 私は転職を考えるようになりました。

ぼんやりとした転職活動

私はまず「リクナビNEXT」や「DODA」といった検索型転職サイトに登録しました。 検索型転職サイトとは、自分にマッチした求人を利用者自身が探して応募するタイプのサイトです。 後述するエージェント型と正反対のタイプで、たくさんの求人から選べますが、自己分析をしっかりして自分でマッチングする必要があります。

登録して求人を探しまくりましたが、具体的にどうアクションすれば良いのかわからず、求人リストを眺める日々が続きました。

その後「CodeIQ」に登録して、問題をいくつか解いてみました。 CodeIQはサイト内で出題される問題を利用者が解答して、その解答を元に企業がスカウトするという方式です。 しばらくするとスカウトメールが結構な数来たのですが、どれも応募するというアクションを起こせませんでした。 アクションを起こせない理由は以下のようなことがあった気がします。

  • 企業からのメールが定型文チックで一斉送信ではないかという疑念が生まれた
  • そのためCodeIQで応募するアドバンテージが薄いと感じた(リクナビから普通に応募するのと変わらないのでは?)
  • 面接の日程は企業へ利用者が調整しないといけないため面倒

今回のまとめ

以上、いろいろと挙げてみましたが、結局転職のことをぼんやりと考えていただけで受け身だった私には合わなかっただけのようです。 自分から能動的に動ける人、関東にお住いで気軽に面接にいける方は、むしろ検索型やCodeIQが良い気がします。

長くなったので次回に回したいと思います。

ここまで読んでいただきまして、ありがとうございました。

            

明日のネットワークスペシャリスト試験、受験します

明日は秋のIPA試験の受験日です。 私はネットワークスペシャリストを受験しますが、今回は転職の時期と重なっていたこともあり、ほとんど勉強できていません。 去年も受験しましたが落ちてしまったので今回が2回めの受験です。

現在もっている資格は

の4つです。

私は主にWeb系の開発をしているプログラマーですが、データベースやセキュリティに比べてネットワークスペシャリストはハードルが高いですね。 データベースやセキュリティはソフト面でプログラムに直接関わってきますが、ネットワークはフレームワークやライブラリに隠蔽されている部分が多く、イメージがつきにくいです。

特にWeb系のプログラマーには「データベース」と「セキュリティ」がおすすめです。

申し込んで受験に行かないと5000円が無駄になってしまうので、明日行って爆死してきます^^;

ブログ始めました

新しくブログを始めてみました。 IT関係の仕事をしているので、仕事を通じて得た知識や思いをアウトプットするためです。

なぜブログを始めようと思ったか? 「自分がアウトプットが苦手なこと」「どうすればよいか」「これからについて」の3点でお話します。

僕はアウトプットが苦手です

仕事でアウトプットが苦手だと思うことがよくあります。

資料作成が苦手

仕事柄、設計書や全体の説明資料を作成するのですが、なかなか手が進みません。 時間をかけて作った説明資料を上司に見せても、良い反応が得られることは少ないです。 よく言われるのは、

  • 「この資料の主題がわからない。」

  • 「この資料で何を伝えたいの?」

  • 「この資料の◯ページ目は、別の資料に入れるべきでは?」

といったことです。

プロジェクトメンバーへの説明がわかってもらえない

メンバーへ説明する際もあまり良い反応ではありません。 よく言われるのは、

  • 「資料のどの部分を話しているかわかりにくい」

  • 「今の話がどこに向かっているか見えにくい」

などです。 また、実装フェーズで仕様が正確に伝わっていなかったことが判明することがあります。 システムエンジニア失格です。

話している最中に支離滅裂になることに気づくが、軌道修正できない

資料を作成しているときも口頭で説明をしているときも、自分自身が迷走していることに気づいています。 ただ、軌道修正が自分ではできません。 特に話している最中は、メンバーの落ち着かない表情を見て察知はできているのですが、なんとかならないことが多いです。

どうすればよいか?

とにかくアウトプットする

これは本によく書かれていますね。 苦手なんだったら積極的にやっていこうという話です。同時に頭の整理にもなるそうです。

まずは全体の構成を伝える

基本的な話だとは思うのですが、全体の構成を理解してもらってから詳細の説明に入ること。 分かっていながらできていないことが多いので、こちらもアウトプットする上で気をつけなければいけません。 また、説明の順番も順序立ててしないと混乱してしまいますね。

マジックナンバー7±2に気をつける

人間が一度に理解できる数は7つまでだそうです。 人によって±2のバラつき(5〜9)があるそうで、一度に説明する要素を5つまでに絞ると多くの人に理解されます。 複雑な話の場合は、5つまでの要素を含むグループ分けを行って、理解する手助けをします。

どんどんブログを書いていきます!!

以上のことから、

  • 全体の構成を伝えること
  • 一度に伝えるのは5つまで

ということに気をつけて、どんどんブログを書いていきます!

どうぞよろしくお願いします。

もし「もっとこうした方がいい」など、アドバイス等々ありましたらぜひコメントいただけると助かります!