iPhoneの機種変更をした

2年に一回の恒例行事、iPhoneを機種変更しました。

環境は

というもの。

第一印象はでかいなぁって感じ。その後、ケースまでつけると分厚さも感じるようになりました。

こういう機種変更のログを残しておくとまた2年後に役に立つかなと思い、ログとして残してみることにしました。

事前準備

事前にやっておくのは、

  • Suica情報を削除
  • LINEの移行手続き
  • Apple Watchとのペアリング解除

ぐらい。各社案内を出しているので事前に目を通しておくとよいかと思います。

www.jreast.co.jp

official-blog.line.me

移行

あとは、iPhone XRに電源を入れてiPhone 7の近くに置くとすぐ「新しいiPhoneを設定」というメッセージが出てくるのであとは画面の指示に従うだけ。

support.apple.com

iTunesに繋げなくてもさくっと移行できたのでめっちゃ楽でした。大体1時間ぐらい。

ハマりポイント

最後にSIMをiPhone XRに入れて、IIJ mioのプロファイルを入れたらおしまい。IIJ mioのプロファイルを入れないと、無線LANがない場所ではデータ通信ができません。アンテナは普通に捕まえるので、めっちゃハマりポイント。実際ハマりました。

www.iijmio.jp

RubyWorld Conference 2018に行ってきた&Ruby Prize最終ノミネート者として表彰された

毎年恒例のRubyWorld Conference 2018に行ってきた。

今年も発表者募集に応募したのですが、採択されず。そのことについて若干いじられたりもして正直悔しい。来年はなにか発表できるように頑張りたい。

発表について

今年も多岐にわたる発表。Ruby = Railsっていう考えが多い中、本当に色々な所で使われているんだなあと。mrubyについては昨年までいろいろと取り組んでいたんだけれども、今年になって中断しているのでなんとかしたいなぁ。特にngx_mrubyについてはどこかで実戦投入したい。

ショートプレゼン

協賛企業の特典であるショートプレゼンも実施した。自社のRubyに対するこれまでの取り組みとこれからの取組みについて。発表後、NaClの井上社長から「迫力があってよかった」というお言葉をいただき、ちょっと嬉しかった。

Ruby Prize

Ruby Prizeの最終ノミネート者としてRubyWorld Conference 2018で表彰された。Rubyist Magazineに対する取り組みを評価していただいたとのことで、嬉しい。

f:id:miyohide:20181101234122j:plain

色んな人から「おめでとう」と声をかけていただき、やってきてよかったなと。RubyWorld Conferenceの場でも「記事書きますよ」と言っていただき、効果は抜群であった。

まだまだRubyist Magazineに対してはやりたいことがたくさんあるので、まだまだ続けていきたい。

Ruby Prize 2018にノミネートされた

るびま」ことRubyist Magazineの運営・編集・リリース管理などを数年やっていたら、Ruby Prize 2018にノミネートされました。ありがとうございます。

RubyPrize2018|候補者決定

発行ペースが落ちているのですが、これからも色々と記事を集めてるびまを続けていきたいと考えています。

Rails 5からbelongs_to associationを書くと親はデフォルト必須になった

はじめに

Rails 5(Rails 5.1?)からbelongs_to associationを書くと親が必須になっていました。これに今日はドハマリした...

具体的には、

class Post < ApplicationRecord
  belongs_to :article
end

というmodelがあったとして、rails consoleなどでPostインスタンスsaveしようとするとvalidationエラーが出ます。

> Post.new.save!
   (0.1ms)  begin transaction
   (0.1ms)  rollback transaction
Traceback (most recent call last):
        1: from (irb):3
ActiveRecord::RecordInvalid (Validation failed: Article must exist)
>

経緯

Rails 5.0から5.1にアプリをあげてテストを流していたときに大量にテストが落ちたことがきっかけです。解決に至ったのは、次のブログ。

48n.jp

回避

上記のブログにあるように、belongs_tooptional: trueをつければOKです。ソース全体を書くと

class Post < ApplicationRecord
  belongs_to :article, optional: true
end

と言った感じになります。

実際にrails consoleで確かめてみます。

> Post.new.save!
   (0.1ms)  begin transaction
  Post Create (0.5ms)  INSERT INTO "posts" ("created_at", "updated_at") VALUES (?, ?)  [["created_at", "2018-09-25 11:29:33.968321"], ["updated_at", "2018-09-25 11:29:33.968321"]]
   (1.3ms)  commit transaction
=> true
>

無事、生成できました。

Web App for Containers + PostgreSQLでコンテナ対応したRailsアプリを作ってみた

概要

Microsoftが提供しているパブリッククラウドサービス「Azure」の「Web App for Containers」を使ってRailsアプリを動かしてみました。Railsアプリと言っても、scaffoldで自動生成させたもので非常に単純なものです。Azureが提供しているPostgreSQLも合わせて使ってみたいと思い、ちょっとやってみました。

元ネタ

元ネタは「Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう! 」というSlideShare上にあったスライド。これをもとにRDBMSPostgreSQLに変更しただけです。

ハマったところ

  • Web App for ContainersがPortalにない
    • Web App on Linuxであった。
    • 言語設定が日本語版だからかもしれない。
  • Azure DB for PostgreSQLファイアウォールの設定に何を設定していいかがわからない
    • スライドでは、すべてのIPレンジを許可しているけど、さすがにそれはどうかなと
    • よくよく見てみたら、Web App for Containersの送信元はプロパティから見ることができるのでそこで制限すればできる。
  • PostgreSQLへの接続用環境変数設定漏れ
    • 環境変数の設定が漏れていて、ずっと「could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"? 」が表示されて困った困った。
    • ホスト、ユーザ名、パスワードを環境変数として設定すればOK。

結果

development環境としてまずは動かすことができました。

ソースは以下においてあります。

github.com

production環境で動かすためには、

をすればできそうですが、やってません。今後の課題ということで。

今後は

今後は、

  • Production環境で動かすこと
  • Application Insightsを試してみる

ことがもっぱらの目標です。いつになるか分かりませんが、ゆっくりとやっていきます。

Ruby Business Users Conference 2018に参加してきた

今年も開催されたRuby Business Users Conference 2018に参加してきました。

Ruby Business Users Conference 2018

Ruby Business Users ConferenceはRubyを活用しているビジネス事例が紹介される場として、Rubyアソシエーションが毎年2月頃に開催している場です。

今回は、

  • Matzの基調講演
  • 金川 祐太郎さんが「モバイル決済アプリ開発における動的・静的型付け言語の比較と考察」と題してPixiv Pay開発を通して感じたRuby/Rails開発の考察
    • 2ヶ月ほどでサービスリリースのスピード感がすごい。
    • Rubyではリファクタリングで名前変更するのが難しい。JavaだとIDEで一発変換。RubyMine頑張って欲しいとのこと。
  • 高宮 知弘さんが「コミュニケーションデザインRubyRubyで繋がる~」と題してWeb接客システムON SKYの紹介
    • チャットシステムはコミュニケーションの最初のステップとしてハードルが低い。
    • 完璧を目指すのではなく、最初のフィルタリングとしてのWeb接客システム。だが、効果は高い。
  • 角 幸一郎さんが「Rubyを使ったシステム開発における様々なコードレビュー」と題してコードレビューの広がりとその観点・取り組みについて
    • ここ数年でコードレビューがかなり浸透してきた感じ。開発のスピードが上がってレビューの頻度も増えてきた。
    • Pull Requestがコードレビュー手段として一気に台頭。
    • どの観点でレビューをするかをキチンと決めておくこと。
      • 個人的には、いわゆるインデントとかは機械で自動フォーマットしたい。
  • Tomoya Kawanishiさんが「Ruby on Rails プロジェクトでの他言語エコシステムとの共存方法」と題してエネチェンジ社におけるWebサービスの設計について
    • 将来の変更とサービス対応を見越してどのようにシステムを組んでいくか。ひとつが疎結合
      • 料金計算ロジックのライブラリ化やVueJSの取り込み方針など
  • 深谷 篤生さんが「esa.ioの育て方」と題してesa.ioにおけるシステム設計について
    • まさしく要望を受けてからの対応完了までのスピードが段違い。
    • コンテナ化とかマイクロサービス化など、言葉では知っているものが非常に自然に取り込まれている感じ。

という内容。どの発表も各社、各人のサービスの考えや設計を詳細に語っていただき、大変勉強になりました。

今年は基調講演が40分枠、その他の講演が20分枠。20分枠だと発表内容をかなり絞り込む必要があり、もっと話を聞きたいという思いが残りました。懇親会でフォローできればよかったのですが、ちょっと今回は参加できず。こういう場はスライドを見るだけではなく講演者と話をして理解が深まるものと思っていますので、ちょっと無理してでも参加すればよかったかな。

第56回愛媛マラソンを走ってきました

第56回愛媛マラソンを走ってきました。

f:id:miyohide:20180204145609j:plain

タイムは、グロスタイムで3:59:41、ネットタイムで3:55:42。自己ベストより7分ほど遅く、サブ4達成とは言えちょっと残念なレースとなりました。

気候としては最悪に近い状況。今季最強寒波が西日本を襲う中、普段は温暖な愛媛県もかなり冷え込み、スタート時点で気温1.5度、最高でも3度に届かず、常時5メートル程度の風が吹くというコンディション。寒いのが苦手な自分にとって悪条件が揃いましたが、それでもやるのがマラソンです。

そのため普段は半袖Tシャツにアームウォーマーという格好で走っていますが、この日に限っては寒さ対策で長袖シャツの下にアームウォーマーをつけるという感じで走りました。それでもちょっと寒い感じで、止まったら低体温症が待っていると半分恐怖を感じながら走りました。

5キロごとの結果は、以下の通り。例によって前半飛ばしすぎです。トイレに駆け込んだのをリカバリーしようとしたのが駄目だったのかなぁ。

距離 ラップタイム 備考
スタート〜5km 27:39 スタート地点の混雑は1kmすぎたあたりで抜けることができた。
5km〜10km 28:40 途中でトイレに駆け込む。
10km〜15km 26:17 順調に走れる。ちょっと早い感じ。
15km〜20km 26:06 ちょっと早い感じ。止まらない感じ。
20km〜25km 26:15 ちょっと早い感じ。止まらない感じ。
25km〜30km 26:38 ようやくいい感じに走れる。これからの坂が怖い。
30km〜35km 30:01 34キロ過ぎに急にハムストリングスに違和感。ちょっと歩く。
35km〜40km 32:46 走ったりジョグしたり。平田の坂を降りた後から徐々にスピードを上げる。
40km〜ゴール 11:20 声援とペースメーカーを見つけて元気が出る。

とりあえず、今シーズンはこれでおしまいです。これからどうやって次のシーズンまでトレーニングをつもうか色々と思案中です。が、全然整理できないでいます。何したらいいかよく分かっていない。まずは決められたペースを守って走るってことかなぁ。