@0tofuの備忘録...

プログラミングとか仕事の話とかFIT3 RS(GK5)のメンテナンス記録等の雑記

Raspberry Pi 3 Model B環境構築(マウス、キーボード不要) その1(microSDカード作成まで)

先日発表されたRaspberry Pi 3 Model Bが日本国内でも販売開始され、早速届いたので環境構築を行います。

akiba-pc.watch.impress.co.jp

用意するもの

  • Raspberry Pi 3 Model B
  • microSD card (今回は32GBのものを用意)
  • LANケーブル (ssh経由で設定する為、初期設定に必要。Wi-Fi設定後は不要)
  • microSDにraspbianを書き込む為のPC (私はmacで行っています)

microSDにRaspbianのイメージ書き込み

Raspbianの入手

下記リンクよりRASPBIAN JESSIE LITEを入手
www.raspberrypi.org

ddrescueのインストール

>||dd||<コマンドだとmicroSDへの書き込みが遅いので、代わりにddrescueコマンドで書き込む為homebrewよりddrescueをインストール

[~]$ brew install ddrescue
microSDをFAT32でフォーマット
[~]# 下記コマンドでmicroSDのマウントを確認
[~]$ diskutil list
/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *31.3 GB    disk2
   1:             Windows_FAT_32 boot                    62.9 MB    disk2s1
   2:                      Linux                         31.3 GB    disk2s2
[~]# 今回であれば/dev/disk2にmicroSDがマウントされているので、マウントポイントを指定してFAT32にフォーマット
[~]$ sudo diskutil eraseDisk FAT32 RASPBIAN MBRFormat /dev/disk2
Password:
Started erase on disk2
Unmounting disk
Creating the partition map
Waiting for the disks to reappear
Formatting disk2s1 as MS-DOS (FAT32) with name RASPBIAN
512 bytes per physical sector
/dev/rdisk2s1: 61145888 sectors in 1910809 FAT32 clusters (16384 bytes/cluster)
bps=512 spc=32 res=32 nft=2 mid=0xf8 spt=32 hds=255 hid=2 drv=0x80 bsec=61175806 bspf=14929 rdcl=2 infs=1 bkbs=6
Mounting disk
Finished erase on disk2
RaspianをmicroSDに書き込む
[~]# 先ほどのdiskutil listで確認したマウントされているmicroSDをアンマウント
[~]$ sudo diskutil umountDisk /dev/disk2
Password:
Unmount of all volumes on disk2 was successful

[~]# ddrescueコマンドでraspianをmicroSDに流し込む (microSDの速度にもよりますが、10分程度かかります)
[~]$ sudo ddrescue 2016-03-18-raspbian-jessie-lite.img /dev/disk2 --force
GNU ddrescue 1.20
Press Ctrl-C to interrupt
rescued:     1361 MB,   errsize:         0 B,    current rate:    589 kB/s
   ipos:     1360 MB,    errors:         0,      average rate:   1872 kB/s
   opos:     1360 MB,  run time:      12m 7s,  remaining time:         n/a
time since last successful read:          0s
Finished
Raspberry Piにセットして起動確認

作成したmicroSDカードをRaspberry Piにセットし、microUSBで電源を挿せば起動します。
起動した後、以下コマンドで問題なくRaspberry Piにssh接続できることを確認します。

[~]$ ssh pi@raspberrypi.local
Password:(初期パスワードはraspberry)

Raspberry Pi3 Model B (Element14)

Raspberry Pi3 Model B (Element14)


とりあえず今回はここまで・・・続きは別の記事に書きます。

Yahoo!から降雨データを取得して雨が降りそう(止みそう)か教えてくれるrubotyプラグインを作った

herokuにデプロイしたrubotyを使って何か便利なことをできないかと考えていたところ…
橋本商会さんのブログに降雨データを取得するhubotプラグインを作成されていたので、ruboty向けに作ってみた。

橋本商会 » Node.jsでYahooから天気予報とリアルタイム降雨データを取得する

私が作ったものはこれ

github.com

使い方

1.Yahoo! YOLP APIを使用する為、アプリケーション登録を行う。

developer.yahoo.co.jp

2.rubotyのGemfileに以下を追加する。
gem "ruboty-jpWeather", github: "0tofu/ruboty-jpWeather"

3.herokuに1.で登録したApplication IDを追加する。
heroku config:add YAHOO_YOLP_API_KEY="xxxxxxxxxxxxxxxxx"

4.変更後のGemfileをherokuへpush

5.rubotyで以下コマンドで結果が返ることを確認する。
ruboty rain 大阪
=> 大阪は雨は大丈夫そうです。

引数はスペース区切りで複数指定できます。

仕組み

単純に引数で指定した地名の緯度経度取得→緯度経度の地点の降水量を取得
実測値と予測値からこれから雨が降りそう(or止みそう)を判定

初めて簡単なgemを作ってみましたが、サクッと作れるので有益なgemを作っていければと思います。

↑のgemはバージョンアップして天気予報もできるようにしたいと思います。

GitHub実践入門のプルリクをマージ

以前購入したGitHub実践入門の中で、実際にPull Requestを送ってみよう!
というのがあり、該当リポジトリの更新権限を作者様より付与頂いていて
久しぶりにリポジトリを覗いてみると大量のプルリクがたまっていたので処理。

github.com

実際にプルリク送ってすんなりとマージされる!っていうのが初心者にとっては嬉しいことだったりするので、積極的にリポジトリ覗いてマージ作業した方がいいですな。。。

私もこの本で初めてプルリク送って、無事にマージされた時は嬉しかったです。
GitHubを本格的に使いたい!けどイマイチわからん…って方は是非この本を読んでGitHubに入門してください。

もれなく私がプルリクのマージを行いますw

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

 

 

NodeSchool 大阪 #14に行ってきました。

毎月開催されているnodejsの勉強会であるNodeSchool 大阪に参加してきました。

nodeschool.doorkeeper.jp

 

nodejsと呼ばれるサーバサイドのJavaScript勉強会で世界各地で開催されており、ワークショッパート呼ばれる学習用のモジュールに沿って自分の好きなように勉強できます。

NodeSchool

私は初めてということもあり、とりあえず基礎編の以下2つを試してみました。

javascripting

このコースはnodejsではなく、JavaScript初心者向けの課題になります。
JavaScriptは多少なりとも書けるのでサクッと終了。

learnyounode

このコースが実際にnodejsを使って順番に課題をこなしていくことになります。
モジュールを使ってみようというところから手が止まってしまいましたが…
外国人の気さくに話しかけていただけるメンターの方にアレヤコレヤ教えてもらって何とかクリア・・・

私の技術力の低さを身にしみて感じました。。。がんばろ

anyenv + phpenv + php-buildで複数のPHPのバージョンを管理する

ローカル環境で複数のバージョンをPHPを扱えるように、anyenvとphpenvとphp-buildを導入します。

anyenvの導入

作者様のサイト anyenvという**env系の簡易マネージャを作った - As a Futurist...

githubにINSTALL手順があるので、それに従って導入
github.com

INSTALL


$ git clone https://github.com/riywo/anyenv ~/.anyenv
$ echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.zshrc
$ echo 'eval "$(anyenv init -)"' >> ~/.zshrc
$ exec $SHELL -l

phpenvの導入

anyenvの導入が終われば以下コマンドでインストールできます。

INSTALL


$ anyenv install phpenv
$ exec $SHELL -l
...
$ anyenv version
phpenv: system (set by /Users/otofu/.anyenv/envs/phpenv/version)

php-buildの導入

phpenvのプラグインとして導入する為、プラグインディレクトリに展開します。

INSTALL


$ cd ~/.anyenv/envs/phpenv $ git clone https://github.com/CHH/php-build.git plugins/php-build

問題なく終わると、以下のコマンドでインストール可能なphpのバージョンが表示されます。

$ phpenv install
sage: phpenv install [--ini|-i <environment>] VERSION
       phpenv install [--ini|-i <environment>] /path/to/definition

Available versions:
  5.2.17
  5.3.10
  5.3.11
  5.3.12
  5.3.13
...
  7.0.0
  7.0.1
  7.0.2
  7.0snapshot
  master

php 5.6.11をインストール

ドットインストールのPHP入門で使用しているPHPのバージョンが5.6.11なので、同バージョンを導入します。

INSTALL


$ phpenv install 5.6.11
-----------------
|  BUILD ERROR  |
-----------------

Here are the last 10 lines from the log:

-----------------------------------------
configure: WARNING: This bison version is not supported for regeneration of the Zend/PHP parsers (found: 2.3, min: 204, excluded: 3.0).
configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
configure: error: mcrypt.h not found. Please reinstall libmcrypt.
-----------------------------------------

順調に進んだと思ったら…libmcryptをインストールしろとエラーが出たので…homebrewからインストールします。

$ brew install libmcrypt
==> Installing dependencies for mcrypt: mhash
==> Installing mcrypt dependency: mhash
==> Downloading https://homebrew.bintray.com/bottles/mhash-0.9.9.9.el_capitan.bottle.tar.gz
######################################################################## 100.0%
==> Pouring mhash-0.9.9.9.el_capitan.bottle.tar.gz
🍺  /usr/local/Cellar/mhash/0.9.9.9: 17 files, 451.5K
==> Installing mcrypt
==> Downloading https://homebrew.bintray.com/bottles/mcrypt-2.6.8.el_capitan.bottle.1.tar.gz
######################################################################## 100.0%
==> Pouring mcrypt-2.6.8.el_capitan.bottle.1.tar.gz
🍺  /usr/local/Cellar/mcrypt/2.6.8: 15 files, 394.6K

再度インストールphpenv install 5.6.11を実行

$ phpenv install 5.6.11
[Compiling]: /var/folders/bz/p53hlm2j05j050pg3xhv_lkm0000gn/T/php-build/source/5.6.11
[xdebug]: Installing version 2.3.3
...
[Success]: Built 5.6.11 successfully.

いくつかwarningは出ていますが、インストール自体は成功

正常にインストールが終了するとphpenv versionsコマンドにインストールしたPHPの一覧が表示されます。
(* は現在使用されているPHPになります。)


$ phpenv versions
* system (set by /Users/otofu/.anyenv/envs/phpenv/version)
  5.6.11

globalで使用するPHPを5.6.11に切り替え

以下のコマンドで使用するバージョンを切り替えます。

$ phpenv global 5.6.11
...
$ phpenv versions
  system
* 5.6.11 (set by /Users/otofu/.anyenv/envs/phpenv/version)
...
$ phpenv rehash
$ php -v
PHP 5.6.11 (cli) (built: Jan 19 2016 21:29:33)

無事に5.6.11に切り替わりました!

お手軽に複数バージョンのPHPを切り替え可能なので便利です。