Ruby on Rails チュートリアル 1日目 - 開発環境のセットアップ

もともとスマートフォン(iOS, Android)アプリ開発をやってきた私ですが、「Webアプリはさっぱりわかりません」というわけにもいかないだろうということで、今日からぼちぼちRuby on Rails チュートリアルに挑戦してみることにしました。

railstutorial.jp


1日目

動作環境

OS X El Capitan
バージョン 10.11.1

範囲

第1章 ゼロからデプロイまで から 1.2.2 Railsをインストールする まで

所要時間

2時間


第1章 導入

1.1 はじめに

導入なので、特につまずきポイントはなし。
Ruby 言語自体の学習方法の紹介については、必要性を感じたら再度見てみるという姿勢で進めることにしました。

1.2 さっそく動かす

チュートリアルでは Cloud9 を使うように書いてあるのですが、

多少苦労しても構わないのでローカルPC環境でRuby on Railsチュートリアルを学習したいとお考えの方には、InstallRails.comに従って環境を構築することをお勧めします。

と書いてあったので、今後実際に使う時に役に立つだろうと思い、 InstallRails.com に従ってローカルに環境をセットアップしてみることに。

と言っても、8月に初めて Hamamatsu.rb に参加する際に Rails Girls インストール・レシピ を見て一度インストール済みだったので、確認程度のつもりでしたが、一点だけつまづいたポイントがありました。

Homebrew のセットアップ

Homebrew をすでにインストール済みだったので brew doctor を実行したところ、

Warning: /usr/local isn't writable. This can happen if you "sudo make install" software that isn't managed by Homebrew.

という警告が。

El Capitanのリリース後にみんな色々言ってたのはこれだったのね…
と今更理解しつつ、こちらの記事を参考に、以下のコマンドで /usr/local 以下のパーミッションを変更。

$ sudo chown $(whoami):admin /usr/local && sudo chown -R $(whoami):admin /usr/local

なかなかパーミッションが変わらなくて困っていたのですが、この$(whoami)$抜きでユーザ名に置き換えなければいけないのに$をつけてしまっていたのが原因でした。

追記
$(whoami)はそのままで良いようです。whoamiが現在のユーザ名を出力するコマンドで、$(〜) の部分は括弧内のコマンドの出力に置き換わるためです。
id:ochaochaocha3 さん、コメントでのご指摘ありがとうございました!
参考
bash Tips - コマンド置換と算術式展開、パラメータ展開 - Qiita
whoami(1) Mac OS X Manual Page

また、調べている途中に、Sophos Anti-Virus が原因で /usr/local/bin/, /usr/local/share の所有権が root に変更されてしまうという記事を見つけたため、 インストールしてあったSophos をアンインストールして Avast! をインストールをすることにしました。

それ以外は順調に確認ができ、無事sample_appを起動することができました。


今日はここまで。

日本Androidの会浜松支部 第55回ミーティング に参加しました

本日、日本Androidの会浜松支部 第55回ミーティングに参加しました。

実は前から行きたかったのですが、なかなか予定が合わず、今回初参加になりました。

今回のテーマは「Eddystone ハンズオンセミナー」で、株式会社芳和システムデザインの方を講師にお迎えして、 Eddystone とはなんぞや?というところから具体的な実用例などのお話を聞かせていただきました。

Eddystoneとは?

Eddystone というのは Google が発表したビーコンの規格の名称です。
前身となるのが Physical Web という規格だそうです。

Eddystone には以下の3種類があります。

  • Eddystone-TLM
    • TLM = TeLeMetry。バッテリレベル、温度、起動からの時間等を送信する。Eddystone 独自。
  • Eddystone-UID
    • UID = Unique ID。個別IDを送信する。iBeacon と同じような仕組み。
  • Eddystone-URL
    • URL を送信する。Physical Web からの継承。

過去の実証実験

などなど…

ハンズオン

実際に Eddystone のビーコンモジュール BLEAD-E と アプリ Physical Web を使用して

  • アプリからビーコンモジュールに URL を書き込む
  • アプリでビーコンを受信して URL を開く

という動作を確認するところまでできました。
つまり、前述の Eddystone-URL を試すことができたということですね。

複数のビーコンを同時に書き込みモードにするとアプリ側(iOS / Android デバイス)が両方拾ってしまい、アプリが編集対象のビーコンを拾えなかったり、他人のを拾ってしまったりするので、近くで同時に複数のビーコンに書き込もうとしない方が良いようです。

感想

Eddystone については全く知らなかったので、知る良いきっかけになりました。
今度はビーコンを受けるアプリ側の実装とかもやってみたいと思いました。

あと、せっかくビーコンモジュール買ったので、何か家で使える仕組みを自分で作ってみたい。

Hamamatsu.rb #58 に参加しました

一昨日、Hamamatsu.rb #58に参加しました。

参加まで

ブログに書いていなかったのですが、先月(#57)は風邪のため欠席してたのでした。
今回は静岡方面からも人が集まると聞いていたので楽しみにしていました。
(自分の住まいは静岡県中部で、浜松より静岡の方が近い)

やったこと

自己紹介

人数が多かったので自己紹介。
静岡県中部の方やAndroidな方が結構いらっしゃって嬉しかったです。
それなのに、自分はAndroidアプリやってるって言うのを忘れてしまったのが残念。
自己紹介でいつもテンパるので、自己紹介テンプレ作っておきたいです。

CodeKataKata

今回は、こちらをRubyで解いてしまおう、というのがお題。

1~8で作った数の和は?(2012年算数オリンピック、トライアル問題より): 算数オリンピック問題に挑戦!

提出したコードはこちら。

算数してしまって、何も面白くないコードになってしまいました。

permutationを使っている方がほとんどでしたが、combinationを使っている方がいておーっと思いました。
実行時間を計測できたら面白かったかも。

LT

@kazuomatz さん

シズオカアプリコンテスト の紹介

shizuoka-app-awards.jp

静岡市のオープンデータを使って、静岡市を元気にするアプリを作って応募してねというお話でした。
自分の趣味も兼ねて道路交通系のアプリを作ってみたいな〜とぼんやり考えてます。

@macha1972 さん

日本Androidの会浜松支部 第55回ミーティング の紹介

実は日本Androidの会浜松支部のGoogleグループには登録してあるのですが
予定が合わなくて未だに参加できていなかったのです。 今回は初めて参加できるかも。

Android Bazaar & Conference Diverse 2015 Kanazawaの紹介

シズオカアプリコンテストのハッカソン の紹介

前述のコンテストに浜松からも参加しようじゃないかということで、ハッカソンをやる予定とのこと。

@osarusystem さん

静大情報&OSC浜名湖2016プレカンファレンス合同LT大会 の紹介

懇親会 もあるそうです。

@jacoyutorius さん

itamaeで一撃サーバー構築

とにかく必要なものがシンプルに使える、というところがメリットのようです。
サーバサイドの知識が全然ないのであまり理解できていませんが、いつかのために名前を覚えておきます(覚えやすい)。

参加後の感想

悪い意味で自分の手を動かしがちなので、もっとコンピュータに頼れるようになりたいと思いましたw

本当は反省会にも参加したかったのですが、終電で帰るとすると1時間もいられないんですよね…終電がもう少し遅ければなぁ。

次回は忘年会っぽいので楽しみです。
人の名前を覚えるのが苦手で、未だに顔と名前とアイコンが一致しない方が多く…覚えるチャンスですね。

余談

自己紹介でRailsを勉強しますって宣言しちゃったので、
Ruby on Rails チュートリアルをやってみようかな〜と思ってます。

このブログ、結局今までHamamatsu.rbの参加記録しか書いていないので
チュートリアルをやってみた記録でもつけてみようかなと現段階では考えていたり。

Hamamatsu.rb #56 に参加しました

昨日、Hamamatsu.rb #56 に参加しました。

参加まで

台風による激しい雨風で開催が危ぶまれたものの、
開催当日のお昼頃からはとても良い天気になり、無事開催されました。

前回参加後、

また次回も参加したいので、それまでに「初めてのRuby」を通読しておきたいです。

Hamamatsu.rb #55 に参加しました - marilla716のブログ

とか言っていたのですが、結局2章までしか読み終えず。

やったこと

CodeKataKata

今回は、2チームに分かれてpaizaオンラインハッカソンの問題に取り組むことに。 paiza.jp

私は六村リオちゃんの問題に挑戦。
提出したコードは以下の通り。

標準入力から複数行を受け取るところで少しつまづいたものの
KataKataタイム終わりまで(40~50分くらい?)で100点クリアすることができました。

自分で調べるのに集中しすぎてしまった感があり、
もう少しいろんな人に聞いてみたりしてもよかったな、と反省。。
どうですか〜と声をかけてもらって、助かりました。

LT

  • Rails 5 (立花さん)
    • Rails自体はわからないのですが、「こんな風に便利になったよ」という内容は聞いてて興味深かったです。
  • mRuby(Ryo Ishigakiさん)
    • MobiRuby知りませんでした。RubyiOSアプリが開発できるんですね。

参加後の感想

共通のお題を解くと他の人のコードが見たくなるし、
見ると色々な書き方があって、面白いし勉強になりました。
やっぱり、エンジニア同士で集まると何かしら話題が盛り上がって楽しいな。

paizaの問題も適度な難易度で面白かったので、他の2問にも挑戦してみます。

Hamamatsu.rb #55 に参加しました

Hamamatsu.rb #55 に参加しました。

きっかけ

8月上旬に静岡県に引っ越してきて半月。
静岡県には遊びに来たことこそあるものの*1 知人が全くいなかったことと、
エンジニアとリアルで関わる機会がなくなって孤独を感じていたこともあり、
静岡県内のIT系の勉強会を探したところ、開催前日にHamamatsu.rbを知りました。

Ruby、前々から話を聞いたりして(主に思想の話)気になっていたものの
仕事で使わないし。。と今まで触れてこなかったのですが、
これを機会に書いてみよう!と思い立ち、前日夜に参加を決意したのでした。

参加するまで

当日、自宅でRails Girls インストール・レシピを参考に環境をセットアップ。
参加前にちょっとは書いてみようということで、参加のしおりで紹介されていた
「初めてのRuby」を購入して1時間程度予習しました(当日、浜松に着いてから)。

初めてのRuby

初めてのRuby

参加してやったこと

今回のテーマはCodeKataKataということで、
みんなで同じ課題に取り組むチームと自分の課題にそれぞれ取り組むチームに分かれたので
私はそれぞれチームで「初めてのRuby」のサンプルコードを動かしてみることにしました。
時間いっぱいでちょうど第1章を読み終えて、Rubyのことをちょっと知ることができた感じです。

やってみた範囲でのRubyの印象

  • snake caseにまだ目が慣れない
  • 実行するのが簡単
  • irb楽しい
  • ブロックが簡単に書ける*2

感想

コーディングは、同じ課題を取り組む方が他の方のコードを見るのが面白そうだったので、 今度はそちらに参加できるレベルに達していたいです。

LTは会話の内容についていくのに必死でしたが、
みなさんとても楽しそうに語るので、聞いているだけで自分まで楽しくなりました。

また次回も参加したいので、それまでに「初めてのRuby」を通読しておきたいです。

*1:浜松オートとかスズキ歴史館とか

*2:これまでObjective-C, Javaやってきて、今年に入ってSwiftで初めてクロージャ書いた自分の感覚で

はじめまして、はてなブログ

エンジニアとしてのアウトプットの場を作ろう。

ということで、はてなブログをはじめることにしました。

 

技術ネタや読んだ本のことなどをちまちま書いていきたいなと思っています。