プログラミング初心者のsyakiっとした道のり

まったくのプログラミング初心者が日々勉強しどこまでいくのか暖かい目で見守るブログです。

OSI参照モデル

こんにちは、けーすけです^^

 

OSI参照モデルというのは「通信機能を階層化したモデル」とよく表されたりしているようです。

これを調べようと思ったきっかけは、ラズパイで無線でネットワーク接続しようとした時に上手くいかず、どこに原因があるか分からないときに問題解決の手法として教えてもらったからです。

 

以下、OSI参照モデルです。

OSI参照モデル プロトコル 機器
第7層(レイヤー7) アプリケーション層 HTTP、DNS
SMTPSSH
TELNET
ファイアーウォール、
ロードバランサ
第6層(レイヤー6) プレゼンテーション層
第5層(レイヤー5) セッション層
第4層(レイヤー4) トランスポート層 TCPUDP
第3層(レイヤー3) ネットワーク層 IP、ICMP ルータ、L3スイッチ
第2層(レイヤー2) データリンク層 EthernetARP L2スイッチ、ブリッジ
第1層(レイヤー1) 物理層   リピータハブ

 このように7層に分かれていて、重要なことは下位の層が正しく機能していることを前提として上位の階層が機能するということです。また、レイヤー1~3が主なものになるようです。

なので何かうまくいかないときは、まず第一層から考えるということになります。今回のラズパイのネットワーク接続だったら、まず電源が入っているか、無線LANアダプタが正しく接続されているかを確認する。レイヤー2ですが今ではあまり見られないそうです。次にルーターを確認するという流れになると思います。

今日はこんなところで。

参照

http://www.network-engineer.info/network_beginner/osi%E5%8F%82%E7%85%A7%E3%83%A2%E3%83%87%E3%83%AB%E3%82%92%E3%82%8F%E3%81%8B%E3%82%8A%E3%82%84%E3%81%99%E3%81%8F%E8%AA%AC%E6%98%8E%E3%80%80%E9%9A%8E%E5%B1%A4%E5%9B%B3/

では👋

Raspberry Pi と Arduino

こんにちは、けーすけです^^

 

今回までRaspberry Piラズベリーパイ)とArduino(アルドゥイーノ)について書いてきましたが、「そもそもこの二つはなんなんだ??」という人もいるかと思います。というか、自分が疑問に思いました。特にこの二つの違いについて。

f:id:singen623:20160827230635j:plain

僕からすると、正直見た目一緒に見えます(^^;

なので、今回はこの二つの違いについて自分なりの考えを書いていきたいと思います。

 

Arduino

・OSが無い。シンプル。リアルタイム性が確保できる。

・多様なセンサーからのインプット情報をもとにモーターを動かしたり、音声を出力するなどの様々なアウトプットが可能。

・ハード面がメイン

 

 

Raspberry Pi

・OSがある。複数の動作を同時に遂行できる。リアルタイム性を確保できないことがる。

・CPU速度が速い。インターネットに無線でつながる。機能的にはPC並。

・ソフト面がメイン

 

共通点 

・安くて小さい

・もともと教育用

 

こんな感じでまとまりました。Arduinoは外部からの刺激を受け取ってそれを何かしらの形で出力することや簡単な命令に即座に従うことが得意。Raspberry Piは簡易版のPCのようなもので、更にネットワーク接続の面が強いのでIoTとの親和性が高いのではないかという結論に至りました。それぞれ自分の作りたいものによって、どちらを使うか選ぶことが大事なのだと思います。今度、何か実際に作ってみたいです。今は特に具体的なものは思いつきませんが…使うならArduinoかな。

 

では👋

Arduino LED点灯

こんにちは、けーすけです^^

タイとベトナムは思ったより涼しい場所でした。もちろん暑いですが。予想よりは涼しいって感じです。向こうは雨季で雨も降るのでそのせいもあるのかな。縁あって7社くらい工場を見たり働いたりしました!学び多き場所でした。今度は一人で行きたいです。

 

今日はArduinoでのLED点灯について書いて行こうと思います。

 

これが個人的に今までやってきた中で一番すんなり出来て、視覚的に結果が分かり達成感がありました!

 

今回やったことはオープンソースハードウェアであるArduino(LEONARDO)を使いLEDを点灯させるといったことです。

初歩の初歩でArduinoに触れてみるといった意味合いを持つようです。

 

これの手順については調べればすぐに出てくると思うので割愛しますが(ちなみに参考にしたのはhttp://blog.livedoor.jp/meloom/archives/20249923.html)、個人的に少し戸惑ったのはシリアルポートの設定と使用するArduinoの設定です。難しくはないのですが、普段することのないことだったので注意しておきたいです。

 

今回は簡単にプログラムを見様見真似で書いてみましたが、書いている意味が分かると面白いです。今回の僕の理解ではPCで書いたプログラムでArduinoに命令して、LEDを光らせたという認識です。合っているのか今は分かりませんが、もう少し勉強し「なぜプログラミングで機械が動くのか」ということも理解したいです。

 

では👋

Raspberry Pi 日本語設定

今回Raspberry Piのセットアップを行い苦労したことなどを書いていきたいと思います。

 

セットアップは簡単に言ってしまうとソフトや機器を使えるように準備するという解釈であってると思います。

 

今回はRaspbianというソフトウェアを使ってセットアップしたのですが、その中で一番苦労したのは日本語の設定です。

 

手順通りに設定したのですが、何回やっても文字化け(文字が四角になってしまう)してしまいました。

 

自分のやった手順としては

1.Raspi-configを起動して「Innternnatiolisation Options」を選択
2.Change Localeを選択
3.ja_JP.UTF-8をチェックしてデフォルト言語に選択
4.日本語フォントのインストール「sudo apt-get install ttf-kochi-gothic xfonts-intl-japanese xfonts-intl-japanese-big xfont-kaname」
5.日本語を入力するためのメソッドをインストール「sudo apt-get install uim uim-anthy
6.jfbtermをインストール。「sudo apt-get install jfbterm」

7.jfbtermを起動

といったことをしましたが、何回やってもうまくいきませんでした。

違うフォントでも試してみたり、幾度かreboot(再起動)したのですがうまくいきませんでした。

 

これに関しては、ハマってしまってかなり時間をとられてしまいました。

こういう時は最終目的がなんなのか考え、そのことを達成するためにどうしてもそれが必要か一度考えることが必要だということを教わりました。

今回は英語の場合は文字化けせずに使うことができ、それで十分に使用できたので英語で使用することにしました。

また、再チャレンジしてみたいと思います。

 

では👋

 

今月の目標

続けてプログラミングとは関係ない話になってしまうのですが、今月(8月)の目標について書いていこうと思います。

今月はまず7月に学んだことを、ひとつ前の記事に書いたブログのコンセプトに則ってすべて書こうと思います。本当は毎日更新したいのですが、半月は海外にいたり、もう半月は家にいなかったりするので電源やネット環境が無く毎日更新できる約束ができないので一月で30記事という約束にさせてもらいたいと思います。

また、いままでスケジュール管理が甘く毎日を一生懸命過ごしていたら充実した一日が終わっているという日々の過ごし方だったので中長期的な視点を持ちつつスケジュール管理をしてタスク・学習をこなしていきたいです。

 

大きく分けてこの二点を達成したいと思います。

 

では👋

ブログについて考え直してみました。

こんばんは、けーすけです^^

今までブログを書いてきたのですが、何か引っかかりがあったのでここで整理しておこうと思います。

そもそもこのブログの目的は何なのか?

それは僕を雇ってくれている方に、進渉状況を確認してもらうため。

というのが本来の目的なのだと思います。

しかし、僕はそれを書くだけであるなら雇用してくれている方に直接文章を送ればいいのであって、ブログである必要はないのだと心の隅でぼんやりと思っていました。

また、娯楽や日記ではなく、実学的ななことをブログという形で外部に発信していくからには何かしらの有用性がなければいけないのだろうということも同時に思っていました。その有用性とは、僕の中では初心者の人が僕のブログを見てスムーズに学習する手助けという定義でした。

この狭間で僕の考えは揺れて中途半端なものになってしまっていたのだと思います。

なので、これからは僕がやったこと・学んだこと、初心者の人に参考にできることを出来れば並行し、無理な時は分割して書いていきたいと思います。

プログラミングも興味深く勉強しているのですが、他にも経営学(ときたま経済学)や仏教哲学、海外インターン・Start up program・ベンチャーインターンについてやヒッチハイクで出会った楽しい人たちのことも発信していきたいと思います。こういうのはFacebookでやったほうがいいんでしょうか。

多くの人に助けられていることに感謝しつつ、このテーマはこういう解釈で一度まとめておこうと思います。

では、これからもよろしくお願い致します👋

 

Git

今日はGitについて書いていきたいと思います。

 

Gitというのは「バージョン管理システム」です!

僕は何のことかよくわかりませんでした(^^;

このGitというのは・・・僕が説明するよりずっとうまく紹介してくれている人がいるのでそちらを紹介します(笑)

言葉だけで説明してもいいのですが、やはり図があった方が格段に分かりやすいので。

以下、お勧めサイトです。

 

uxmilk.jp

こちらのサイトの上から二番目が分かりやすかったです!

 

www.backlog.jp

こちらはとても丁寧に使い方が書いてあってとても分かりやすいです!サルが博多弁なのも面白いですね(笑)

 

kray.jp

こちらは「addはなんでしなくちゃいけないのか?」「HEADとはなんなのか?」という細かい気になることを分かりやすく書いてくれています。

 

僕が今までgitを使ってきた中である程度の定まった手順が見えてきたので書いておきます。

①git clone リモートリポジトリからコピーする

②git branch branchを作る。

③git add ファイル名 INDEXに追加。

④git push リモートリポジトリに追加。

⑤Pull Rrequest 追加したことをお知らせする。

⑥marge 統合する。

 

今回はこんな感じです。

初めての人には少し難しいと思いますが、一緒に頑張りましょう!

 

では👋