@0tofuの備忘録...

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

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を切り替え可能なので便利です。

PHPはじめました。

4月頃からプログラミング言語がPHPになるので・・・
今週からPHPの勉強を始めます。

動画で学習できるWEBサービス

paiza.jp

paiza.ioというブラウザ上にエディタが表示されているので、ローカルに開発環境を構築することなく学習が可能

dotinstall.com

こちらはPHP以外でも有名なドットインストールというサイトが運営しているサービス

どちらのサイトも1回3分程度の動画を見ていくだけなので、飽きることなく継続して学習ができそうです。

有名なドットインストールからやっていこう。

参考書

Amazonで見てみると評価が高そうなのは以下の本。
むしろ参考になる本があれば教えていただきたい…

 

~短期集中講座~ 土日でわかる PHPプログラミング教室 環境づくりからWebアプリが動くまでの2日間コース

~短期集中講座~ 土日でわかる PHPプログラミング教室 環境づくりからWebアプリが動くまでの2日間コース

 

 

いきなりはじめるPHP~ワクワク・ドキドキの入門教室~

いきなりはじめるPHP~ワクワク・ドキドキの入門教室~

 

 

進捗は随時あげていこうと思います。