My Note Pad

エンジニアリングや日々の雑感を書いていきます

iPhone7を買ってしまった・・!

買ってしまいました。
iPhone7

www.apple.com

9月7日に行われていたAppleの発表会をリアルタイムで見ていて、その時から予約開始までずっと迷っていました。

今までNexus5Xを使っていましたが、買い換える必要性は皆無でした。
(たまに操作で待たされることがあるものの、基本的には快適に使っていました。)

iPhone7とNexus5Xの簡単な比較

iPhone7 Nexus5X
OS iOS 10 Android N
ディスプレイ 4.7インチ Retina HD 5.2インチ FHD
RAM 2GB 2GB
ストレージ 128GB 32GB
重さ 138g 136g
カメラ 12MP 12MP
ビデオ撮影 4k対応 4k対応
Felica対応 ×

正直、Felica対応が無かったら買い替えていません。
コンビニや自販機での支払いは基本、クレジットカード付帯のSuicaでしていて、チャージは改札通過時のオートチャージで行っています。
天気が良くて自転車で通う日が続くと自動でチャージされないので残高が不足してしまうこともしばしば・・
また、メインで使うクレジットカードとsuica付帯のクレジットカードが異なるので1本化したいなというのも今回の決め手に。

イヤホジャック廃止は、Bluetoothイヤホンを使っていたのでなくなっても困らない
カメラ性能はそこまで重視しない

あとはTouchIDがボタンじゃ無くなったので、何度押しても壊れなくなったのは精神衛生上いい感じ。

また、iPad Air2を持っていて家では基本的にiPad Air2を使うのでiPhone 7 Plusではなく4.7インチのiPhone7に。
カメラ性能にはあまりこだわらないし。

というわけで、無事発売日にゲット。
税込み9万オーバーはやっぱり高い・・・

f:id:yuki10k:20160918001315j:plain

また、カバーなどは装着してもすぐに外してしまうのでiPhone7は最初から裸 + ガラスフィルムで使うことにしました。
※念のためApple Care+に入りました・・ 高い・・

iijmioを使っているので、運用費は1700円で済んでいるので、長く使っていきたいと思います。

※新色ブラックを購入しましたが、色味・質感ともになかなかいい感じです!

Vagrant上のRailsアプリをRubyMineで開発・デバッグする

やりたいこと

  • Ruby on Railsの学習(開発)環境を作りたい
  • 普段はIntellijを利用しているので、RubyMine(Intellij)を使いたい
  • Macの環境はあまり汚さず、Vagrant上に環境を作りたい

上記の事を実現するために、色々調べて実際に環境を構築してみました。
躓いた部分がいくつかあったので、自分用にメモ
こちらの記事をかなり参考にさせていただきました。

keruuweb.com

必要なもの

  • RubyMine(有償)
  • Vagrant
  • Virtual Box

それぞれのインストール方法は省略。(rbenvとかも)
Macであればbrew caskとかで入れればOK
Windowsの場合はよくわからないので公式ドキュメントを参考に・・・

1.まずはVagrantのBoxを用意

今回は、rails-dev-boxを利用しました。

github.com

VagrantのBox作成@host

mkdir ~/Vagrant
cd ~/Vagrant
git clone https://github.com/rails/rails-dev-box.git
cd rails-dev-box
vim Vagrantfile

Vagrantfileにprivate_networkの設定を追加

  # private_networkの設定
  config.vm.network "private_network", ip: "192.168.33.11" 

Vagrantのプロビジョニングと起動@host

vagrant up

2.Vagrant上で新たにRailsアプリを作成

VagrantSSH接続@host

vagrant ssh

新規railsアプリ作成@vagrant

vagrant@rails-dev-box:~$ ruby -v
ruby 2.2.5p319 (2016-04-26 revision 54774) [x86_64-linux-gnu]
vagrant@mkdir workspace
vagrant@cd workspace/
vagrant@sudo gem install rails
vagrant@rails _5.0.0.1_ new sample_app

Gemfileにリモートデバッグ用のGemを追加@vagrant

vagrant@cd sample_app/
vagrant@sudo vim Gemfile

Gemfile@vagrant

#以下の設定を追加
group :development, :test do
 gem 'ruby-debug-ide'
 gem 'debase'
end

Bundleをインストール@vagrant

vagrant@bundle install
#失敗したのでエラーメッセージ通りに以下のgemをインストール
vagrant@sudo gem install ruby-debug-ide -v '0.6.0'
vagrant@bundle install

3.VagrantRailsサーバーを起動

rdebug-ideRailsサーバーを起動する
指定するIPアドレスVagrantfileに指定したprivate_networkIPアドレスを指定する。
今回の場合、192.168.33.11

railsサーバー起動@vagrant

vagrant@rails-dev-box:~/workspace/sample_app$ rdebug-ide --host 192.168.33.11 --port 1234 --dispatcher-port 26162 -- bin/rails s -b 192.168.33.11 -p 3000

4.RubyMineで新規プロジェクト作成

f:id:yuki10k:20160905163902p:plain

まずはCreate New Projectを選択

f:id:yuki10k:20160905163920p:plain

ここではRailsのNew Applicationではなく、RubyのNew Applicationを選択
Location:プロジェクトのディレクトリ・プロジェクト名
Ruby SDK: RubySDK
を入力し、Create

f:id:yuki10k:20160905165202p:plain

↑のように新規にプロジェクトが作成される。

続いてVagrantへの接続情報を定義する。

Prefereces -> Build, Execution, Deployment -> Deploymentを選択

f:id:yuki10k:20160905165314p:plain

+ボタンでAdd Serverメニューを開く。
Name:好きな名前
Type:SFTP
を選択してOK

f:id:yuki10k:20160905165655p:plain

Connectionタブで以下の情報を入力
SFTP host: 192.168.33.11 (Vagrantfileに定義したIPアドレス)
Port: 22
User name: vagrant
Password: vagrant

Test SFTP connection...して接続できることを確認しておく。

f:id:yuki10k:20160905165754p:plain

続いてMappingsタブで以下の情報を入力
Local path: Macのプロジェクトのrootパス
Deployment path on server "Vagrant": vagrant上のRailsアプリのパス

f:id:yuki10k:20160905170057p:plain

入力が終わったらOK

続いて、ローカルとvagrant上のプロジェクトを同期する
Tools -> Deployment -> Sync with Deployed to Vagrant...と選択する。

f:id:yuki10k:20160905170308p:plain

↑のように差分が表示されるので、Synchronize Allで同期する。
(▶▶みたいなボタン)

f:id:yuki10k:20160905170634p:plain

同期完了

続いてbundle install
Tools -> Bundler -> Installを選択

f:id:yuki10k:20160905170717p:plain

※自分はsudoじゃないとパーミッションエラーとなってしまったので、Run with sudoにチェックを付けて実行

f:id:yuki10k:20160905170847p:plain

bundle install 完了

続いてリモートデバッグ設定
Run -> Edit Configrationを選択

f:id:yuki10k:20160905170928p:plain

+ボタンを選択し、更にRuby remote debugを選択
以下のようにリモートデバッグ情報を入力していく。

f:id:yuki10k:20160905171054p:plain

Remote host: 192.168.33.11 (Vagrantfileに設定したIPアドレス)
Remote port: 1234 (デフォルト値)
Remote root folder: vagrantのアプリケーションルート
Local port: 26162 (デフォルト値)
Local root folder: ローカルのアプリケーションルート

入力したらOK

適当にブレークポイントを置く

f:id:yuki10k:20160905171206p:plain

↑で設定したリモートデバッグ設定を選択して、虫のアイコンを選択
コンソールがConnectedになっていればリモートと接続OK

f:id:yuki10k:20160905171218p:plain

あとはhttp://192.168.33.11:3000/ブレークポイントを設定した箇所にアクセスするとブレークポイントで停止してデバッグができる。

f:id:yuki10k:20160905171229p:plain

余談

rubySDKについて

Preferences -> Languages & Frameworks -> Ruby SDK and GemsからRubyのバージョンを指定できる。
rbenvなどでVagrantとバージョンを合わせておくか、Vagrantの設定を読み込む。
Vagrantの設定を読み込むには、+ボタン -> New RemoteでVagrantfileを選択すれば自動的に探して設定してくれる。

f:id:yuki10k:20160905172159p:plain

今回は以上。

英語学習途中経過

以前、以下の記事を描いた。

yuki10.hatenablog.com

それからどうなったのかというと
なんとか続いてます。

基本的にiKnow!をひたすらやり続けています。

学習時間はそろそろ100時間に届きそうという所。

f:id:yuki10k:20160821231519p:plain

大体、週に10時間前後くらい学習できているかなという感じです。

f:id:yuki10k:20160821231625p:plain

メインはTOEIC対応コースを進めていて、470点、600点のコースは全コース実施しました。
いくつかクリアアイテムにはなっていますが、マスターは未だに0。。
やり方が悪いんでしょうか。。

しかし、学習を始める前と比べて語彙はかなり増えていると感じます。

この本を難なく読み終える事ができました。
もちろん知らない単語は沢山出てくるのですが、後ろに単語帳が付いているのでぱぱっと調べられて便利でした。
学習前だったら絶対に挫折していたと思います。。

www.ibcpub.co.jp

また、学習を始めてすぐくらいの頃にTOEICも受けてみました。
学習の成果というよりは現在の英語力がどんなものかを測りたかったので。

結果はまあ、、「察し」。

f:id:yuki10k:20160821232254p:plain

Listeningがうまくいかなかった気がしていなかったけど、何故かRedingの方が低かった。
最後の15問くらいは塗り絵だったし、仕方ない。

という事で、ガチで英語ができない人という事が分かって頂けたかと思います・・
大学入試は推薦だったのでセンター試験の勉強は全くしなかったのですが、それが今になって効いてきている・・

次は10月のTOEICに申し込みました。

以下のページによると

TOEIC(R)試験の点数を上げるために必要な勉強時間 | フィリピン語学学校|フィリピン留学ならサウスピーク

TOEIC 500点から600点 ⇒ 250~300時間 と言われているので
厳しいのは承知で、600点を目標に学習を続けたいと思います。

学習コンテツは引き続き iKnowと、TOEICの公式問題集を買って解いてみようと思います。

英語学習を始めてから、エンジニアリングの学習ができていないので時々不安を覚えるものの、
やはり英語を使えることによってエンジニアのスキルアップの効率も大幅に上がると思うので
引き続き英語学習メインで頑張りたいと思います。

ようやくデバイス環境がしっくりくるようになった(気がする)

今まで色々とデバイスを手に入れたり、手放したりしてきましたがようやくしっくりくる環境になった気がするので紹介していきます。

主に使うデバイ

  • Nexus 5X

www.google.com

http://www.apple.com/jp/ipad-air-2/

MacBook Pro - Apple(日本)

・・・はい、普通ですね。
上のデバイス達とは別に、月に1度だけ Kindle Fireでオーナーライブラリから適当に1冊読んだりします。
(オーナーライブラリはKindleバイスからじゃないと読めないので・・)

シチュエーション毎のユースケース

外出時

基本的にはNexus5Xとモバイルバッテリーしか持ち歩きません。
(勉強会に出るなど明確な目的があるときはMacを持って行ったりしますが)

そもそも、ごちゃごちゃとデバイスを持ち歩きたくないというのが根底にあります。
昔は2台持ちとかもしていたのですが、、どうしても自分には合いませんでした。
なのでiPad Air2はWiFi版で家でしか使いません。
昔は家用のデバイスも別に・・という感じだったのでNexus6の一台にまとめようとしていたのですが、電車などで片手で扱う場合、どうしても使いにくい場合がありました。
特にパターンロック解除は辛い・・

それがNexus5Xでは、画面サイズは多少小さくなるものの、指紋認証でロック解除できるので片手でも扱いやすくなりました。
指紋認証が背面にあり、人差し指をかざすだけでロック解除できるのもグッドです。

家にいるとき

何をするかによりますが、基本はiPad Air2とMac Book Proを使っています。
主な用途はそれぞれ以下のとおりです。

  • iPad Air2
    • ネットサーフィン
    • Kindleアプリで読書
    • たまに白猫プロジェクトとかゲーム
  • Mac Book Pro
    • ブログを書く
    • コードを書く
    • エンジニアリングの学習

大体、インプットはiPad Air2を使い、アウトプットはMac Book Proを使うという感じになっています。
iPadは布団やソファーでゴロゴロしながらインプットできるので気に入ってます。
また、iPad Air2はかなりサクサク動作するのでストレスも無いです。

Surfece Bookとかなら1台にまとめられるのかもしれないですが、今のとろこの開発環境としてはWindowsよりMacの方が快適なので暫くはこのまま様子見という感じ。

どうせまた買い換えるんじゃないの?

かもしれません。
が、今の所はこの環境が一番自分には合っているなという感じです。

Nexus5Xのスペックはミドルレンジじゃん と思うかもしれませんが、自分の用途では充分なスペックです。
(ゲームをする人は、iPhone6sや5SE、Galaxy S7Edgeなんかがいいのかもですが、、)
毎月Googleからセキュリティパッチを受けられるというのも自分には欠かせない要素です。

なので、今後買い換える可能性があるのは、

  • Nexusシリーズ後継機

くらいかなと思っています。
(あくまで個人の見解です)
また、iPhone7で本当に「後から振り返った時に『これなしでどう生きていたんだ?』と思うようなもの」が実装されるのであれば考えるかも。
iPhoneは非常に高価なのでよっぽどの事がないと買い換えないですが、、

iphone-mania.jp

また、iPad Air2はもう完成度が高いのでこちらもしばらくは使えそうです。
iPad Pro 9.7インチも自分にとってめぼしい物は無かったので。

あまりまとまりがない内容になりましたが、ようやく長く使えるデバイス環境が揃ったので、しっかり愛用していきたいと思います。

そういえばPlayStation VRは9時前からAmazonに張り付いていたのですが、以下の手口にやられました。

keikenchi.com

おかげで少しVR熱が冷めたので、発売後のレビューなんかを見てじっくり考える事にします。。。

重い腰を上げて英語の勉強を始めた

英語の勉強、始めました。

これまでも何度か英語の勉強をしようと思って参考書を買ったりしたこともありましたが、結局は3日坊主になってしまい、全く継続できませんでした。
とはいえ、転職する前に比べると英語を目の前にしても逃げたくなる気持ちが減ってきたように思います。
以前は技術的な課題に直面したとき、Google検索で1番上に表示されるStackOverflowあたりは華麗にスルーして、日本語の記事を探して読んでいました。
今思うと、無駄な時間を過ごしていたのでは・・と考えてしまいます。

今のレベルは?

今はどの程度のレベルなのか・・と言われると、StackOverflowなんかはなんとなく意味が理解できるかな・・という程度です。
コード例も乗っていたりするので、「あーそういう事か」とはなるのですが、本質が理解できていない事も・・・。
TOEIC受けたら悲惨な事になりそう。。

そもそも英語学ぶ理由って?

英語のドキュメントを読みたい

新しい技術はドキュメントが英語のみという事が殆どです。
キャッチアップしていくためにも、英語のドキュメントが読めるだけのスキルは必須。
(遅れて日本語翻訳されたりもしますが、大体最新の内容じゃなかったり、既に乗り遅れてしまっていたり。。)

英語でコミットコメントやissueを書きたい

GitHubが登場してから、以前にも増して世界中でOSS開発が活発に行われるようになりました。
気軽にブランチをforkしてpull requestを投げたり、issueを上げたりできるようになったものの、やり取りする為の言語は基本的に英語です。
読めばある程度理解できるけど、、日本語から英語に翻訳して書くときにしょっちゅう手が止まってしまい、自分の伝えたい事が表現できていないなーという歯がゆさがありました。

エンジニアは英語できて当然だよねという風潮

最近益々、「エンジニアは英語できないとね」という風潮が高まっていると感じるようになりました。
SIerにいたときから騒がれていたと思いますが、その頃は殆どが国内の仕事でオフショア先は中国でした。更にオフショア先の方々は日本語が喋れる人が多かったので、それに甘んじており、自分には関係ないことだ・・と逃げていたような気がします。
今は受託開発からサービスを提供する側になったことで、以前よりもエンジニアとしてのスキルを求められるようになりました。
また、SOFT SKLLSを読んで、自己ブランディングをする上でも英語は必要だな・・と感じるようになりました。

日経BP書店|商品詳細 - SOFT SKILLS ソフトウェア開発者の人生マニュアル

三日坊主だったのに続くの?

ちゃんと続けられそうと思うまでにいくつか続かなかったのも事実です。
まずは単語暗記系の参考書やアプリを少し試してみました。
しかし、「ちゃんと覚えた」という実感を持てないなど、モチベーションの維持にはつながりませんでした。 続いて、Grammar in Use

www.amazon.co.jp

こちらは文法の説明なども全て英語ですが、難しい単語はあまり出てこないので意味もなんとなく理解できます。
しかし、自分にはまだ少し早かった印象です。
レベルを上げて再度チャレンジしたい所・・・

もう少し基礎をやろうと思い、続いてはこちらをやりました。

Amazon.co.jp: 中学・高校6年間の英語をこの1冊でざっと復習する: 稲田 一: 本

ざっと流し読みし、終了。
復習するには良かったと思います。

続いて瞬間英作文
こちらはまだ途中なのですが、寝る前に少しづつ進めています。
始めたばかりなので、効果はこれから・・

Amazon CAPTCHA

で、最終的にiknowに行き着きました。

iknow.jp

実はこれ、有料です。

  • 1ヶ月プラン 1,480円/月
  • 6ヶ月プラン 980円/月
  • 12ヶ月プラン 780円/月 (6/13までに申し込むと25%OFFで585円/月)

せっかくなので、ちゃんと続ける!と願いながら12ヶ月プランにしました。
(後で知ったのですがDMM英会話のユーザは無料で使えるようです・・)

何が自分に合っていると思ったかというと、以下の点です。

  • 複数の端末で学習できるため、場所や時間に応じて利用しやすいという点。
    • 本とか持ち歩かなくていいし。
  • 目的やシーンに合わせてコースを選択できる。
    • 自分はTOEIC600コースにしました。
  • 単語・センテンス全てに音声がある
  • 単語ごとに複数のセンテンスが用意されている
  • 自分の学習状況が表示されるようになっており、続けようと思える

↓こんな感じでコース内の進捗が確認できます。

f:id:yuki10k:20160612211431p:plain

とりあえず、iknowで暫く学習して効果を見ていきたいなと思います。
もっと学生時代にちゃんと学んでおけば良かったと後悔・・・

たった数日でFire TV Stickを箱に戻した

先日、AmazonのセールでFire TV Stickを購入しました。

yuki10.hatenablog.com

購入した主な理由はプライムビデオを大画面のTVで見たい
見るものがなくなったらいずれはNetflixあたりも。。

という感じです。

が、「本日、ネットでPS4でプライムビデオを見ることができる」ということを知りました。。。

www.amazon.co.jp

また、最近のテレビでは最初から対応しているようです。

というわけで、早速帰宅してからPS4で試してみました。
アプリをダウンロードしてAmazonアカウントでログインすると何事もなくプライムビデオを視聴することができました。

PS4はスペックもFire TV Stickよりはるかに良いので、サクサクです。
さらにコントローラーも持ち慣れている上にスタンバイモードからの起動も一瞬です。

というわけで、今後はPS4でプライムビデオを見ることにしました。

Fire TV Stickは、、帰省したときにでも実家に置いてこようと思います。

Fire TV Stick購入!

Fire TV Stickを購入しました。

http://www.amazon.co.jp/Amazon-W87CUN-Fire-TV-Stick/dp/B00ZVNYLS8

以前はChrome Castを使用していました。

Chrome CastからFire TV Stickに切り替えた理由としては以下の通りです。

  • Fire TV Stickがセールで安くなっていた
  • Chrome CastはAmazon Prime Video非対応
  • Fire TV Stickはリモコン付き
    • スマホからキャストするのが面倒くさい
    • スマホはNexus 5Xを使っているため、そこまで面倒ではないのですが・・
  • YouTubeはあまり見ない

Prime会員なので、オーダーした翌日には到着しました。
パッケージはこんな感じです。

f:id:yuki10k:20160607231455j:plain

外のパッケージを外すと意外に地味なパッケージ

f:id:yuki10k:20160607231523j:plain

蓋を開けると、リモコンとFire TV Stick本体。
音声入力機能は特に必要なかったので通常のリモコン版です。

f:id:yuki10k:20160607231541j:plain

さらにその下には、

  • 説明書
  • 電源アダプタ
  • USBケーブル
  • 電池
  • HDMI延長ケーブル(USBケーブルの下に入っています)

が入っていました。
電池が入っているのは親切です。

f:id:yuki10k:20160607231554j:plain

安っぽさが無いのは好印象でした。

実際にテレビに接続してWi-Fiのセットアップまですると、自分のAmazonアカウントと紐付けされていました。
Fireタブレットもそうですが、一体どうやっているんだろう・・
オーダー時にシリアルIDか何かと紐付けているんでしょうか・・

ともあれ特に難しい設定もなく、40インチのテレビでPrime Videoを見ることができるようになりました。
画面が大きいと画像が荒くなるかなと懸念していましたが、通信回線が安定していればそんなこともなくキレイな映像が楽しめます。

Prime Videoは作品が少ないと言われていますが、見たい作品は沢山あるので自分としては満足です。
そのうち、見たいものがなくなってきたらNetflixあたりを検討するかもしれません。
それもFire TV Stickがあれば楽しめるので気兼ねなく利用できそうです。

とりあえず、弱虫ペダルを全部観ようと思います。