Apple Developer Programの支払から利用開始まで意外と時間がかかった話し

と、Appleにお布施を払ったものの、全然利用できるようにならない。

メンバーセンターに行くと、アカウント名の下にはPendingの文字が。

画面中央下にはYour purchase may take up to 48 hours to process.ってあるけど、48時間以上経っても使えない。

f:id:tenten0213:20161108191833p:plain

営業日計算か?でも2営業日以上経ってるよなって思いつつ、サポートに連絡してみる。

f:id:tenten0213:20161108193931p:plain

で、一旦返答待ち。

f:id:tenten0213:20161108193531p:plain

返信きた!

ん?もう年間契約が開始していると。

f:id:tenten0213:20161110002332p:plain

メールを探すとあった!って↑のメールの15分前とかじゃないか。
(2016年11月9日 9:50受信)

f:id:tenten0213:20161110003734p:plain

確かに使えるようになってる!

f:id:tenten0213:20161110001457p:plain

11/4(金) の朝8時に登録したので、11/8(火) の朝には使えるかな?と思っていたけど、実際に連絡が来たのは11/9(水) の朝だった。
48時間後は目安?ってとこなのかな。

土日挟んでて感覚的に長く感じたから問い合わせしてみたけど、とりあえず3営業日くらいはのんびり待ったら良い。

こんな記事もあって、支払情報と登録情報にズレがあると保留になったりもあるみたいなので怪しかったら確認したら良いと思う。

iOS / Swift開発環境構築メモ

直近ごりごりJavaでサーバサイドの処理を書いていたんだけど、次はiOSアプリをSwiftで作るってことになったので諸々調査とか準備を進めてる。

iOSは3年くらい前にちょーっとだけObjective-Cで遊んだことがあるくらい。

だいぶ開発環境周りも変わってるだろうからまとめておく。

OSの最新化

Xcode 8, Swift 3 でいくので、macOS Sierraにアップグレードしておく。

ここらへんはわりと緩い判断で、iOS 10のみのサポートで良いって言われたから最新でまとめている感じ。
リリース済のアプリケーションがある場合は結構大変そう。

Homebrewインストール

Mac用のパッケージマネージャ。なにかと便利なので入れておく。

以下を実行してインストールする。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

社内proxyに引っかかる場合は、http_proxyhttps_proxyを設定しておいてやる。

export http_proxy=http://example.com:proxyPort
export https_proxy=http://example.com:proxyPort

昔は気が向いた時にbrew updateしていたけど、最近は brew upgrade とか brew install したときに自動でupdateされるらしい。

Homebrew自体は上で設定した環境変数を見てくれるから、追加のProxy設定とかは必要ない。

Gitのインストール

プロジェクトではGitを利用するので、一応。

$ brew install git

インストールしたGitまでのパスを通しておく。

export PATH="/usr/local/Cellar/git/X.X.X/bin:$PATH"

バージョンを確認し、インストールしたバージョンだったらOK

$ git --version

Rubyのインストール

iOSアプリ開発におけるツール類がわりとRubyに依存しているので、Rubyをインストールしておく。

MacにデフォルトでRubyが入っているけど、global汚染だRubyのバージョンがーとか考えだすと面倒だからrbenvRuby入れることにする。

$ brew install ruby-build
$ brew install rbenv

以下のコマンドでインストール可能なRubyの一覧を確認。

$ rbenv install -l

最新安定版をインストールして、globalに設定する。

$ rbenv install 2.X.X
$ rbenv global 2.X.X
$ ruby -v

後々使うので、bundlerをインストールしておく。

$ gem install bundler

SwiftLintのインストール

Swiftの静的解析用にSwiftLintを入れておく。

$ brew install swiftlint

.swiftlint.yml を設定してプロジェクトルートに配置することで、ルールを変更することができる。
ルールは以下を参照。

以下のようにコマンドでルールを確認することが出来る。

$ swiftlint rules

チームで使うGemのインストール

チームでGemのバージョンは合わせたいので、Gemfileに依存関係を書いてbundlerでインストールする。

Gemfileの書き方は以下を参照。

source "https://rubygems.org"

gem 'rake'
gem 'fastlane', '~> 1.2', '>= 1.2.3'
gem 'cocoapods', '~> 1.1.1'
gem 'xcode-install', '~> 1.3'
gem 'jazzy', :git => 'git@github.com:realm/jazzy.git'

インストール

$ bundle install --path=vendor/bundle

使うときはbudle exec する。 付けないとシステムにインストールした方が使われる。

$ bundle exec pod install

Xcode 8のインストール

手動

OSが古いとコケたりするみたいだけど、OS最新にしてからなら大丈夫っぽい。
互換性のところに、OS X 10.11.5以降と書かれている。

$ xcode-select --install

でインストールする。

xcode-install使う場合

チームでバージョン合わせたいし、後々スクリプト化とか考えたときにもCLIで実行出来たほうが良いので、こっちでいきたいとこ。 まぁ人数少ないし、人の増減もほとんど予定していないので別に良いんだけども。

userIdとかpasswordを求められたら、AppleのIDとpasswordを入れれば良い。

$ bundle exec xcversion update
$ bundle exec xcversion list
$ bundle exec xcversion install 8.0
$ bundle exec xcversion select 8.0

Xcodeプラグインインストール

Xcode8でプラグインを使用するためには各プラグインにUUIDを追加する必要があるとかで、それをやってくれるgemをインストールしておく。

$ gem install update_xcode_plugins
$ update_xcode_plugins

プラグインマネージャのインストール

プラグインマネージャはAlcatraz一択っぽい感じ。昔も使ってたし。

以下を実行することでインストールできる。

$ curl -fsSL https://raw.githubusercontent.com/supermarin/Alcatraz/deploy/Scripts/install.sh | sh

なにはともあれVim

XVim入れる。

Xcode8に入れる場合は手順が違うので注意。

あとはお好みで

便利そうなの入れる

まとめ

とりあえずまとめてみた。 次は自動化できるところは自動化するようにするのと、CIあたりをまとめたい。

第3回 マイクロサービスアーキテクチャ読書会を開催 & 発表してきました

f:id:tenten0213:20160720234852p:plain

2016-07-16(土)に第3回 マイクロサービスアーキテクチャ読書会を開催 & 発表してきました。

今回で3回目ですが、40人近く集まり、ディスカッションも活発に行われていました。

マイクロサービスを実際に運用している人、これから構築していこうとしている人、現在のアーキテクチャに課題を感じている人、ServicerだったりSIerだったりと全然立場が違う人が集まってディスカッションをするので難しい面もあるのですが、実際の体験談であったり、普段とは異なる視点での話しを聞けるので個人的には面白いと思っています。

内容

今回は3回目だけど4章を対象として読書会を行いました。

自分が担当した前半部分のスライドは以下になります。

後半部分、 @syobochimのスライドは以下になります。

200ページ以上ある大作!

感想

マイクロサービスアーキテクチャの肝である「統合」を扱う章だけあって、かなりボリューミーで中味の濃い章でした。

発表を担当することで、理解が曖昧なまま読み進めてしまっていた「コレオグラフィ」や、「HATEOAS」などについてかなり調べてまとめることが出来ました。

説明は極力丁寧にするように心がけましたが、時間の都合と説明力不足でどこまで伝わったか心配なところです。

後半担当の @syobochim は、自分が理解した内容を噛み砕いて相手に伝えるような資料と発表になっていて、かなり分かりやすかったです。

特に、「UI部品合成」について説明するときに、 はてなブログに埋め込んでいるTwitterのブログ・パーツを例にした説明は分かりやすくて秀逸だと思いました。

Survival って単語が読めなくて笑いも取るし、しょぼちむさんさんホント流石です。

今後について

第4回は、「5章 モノリスの分割」を対象に8月末あたり(お盆明けあたり?) に開催予定です。

予定が決まり次第報知しますので、気になる方はコミュニティへの参加お願いします。

… 資料作成が大変だったけど、発表を担当すると勉強になるので埋まらない章があったら立候補するかなー

【7/9(土)】Doma勉強会 in 東京 に参加してきた

f:id:tenten0213:20160710123302p:plain

【7/9(土)】Doma勉強会 in 東京 - dots. [ドッツ] に参加してきました。

Doma自体はちゃんと利用したことが無いのですが、昔S2JDBCは利用したことがあったので気になっていたこと、Enkan で使われていること、うらがみさんが常々おすすめしていて気になっていたなどの理由から参加してみました。

Domaの紹介 - @backpaper0 さん

トップバッターはうらがみさんで、Domaの紹介。 自身がDomaを利用したことが無かったので、丁寧な説明で分かりやすかったです。

以下良いなーと思ったポイント。

  • 2-way SQL
    • コピペでそのままSQLを実行できるので便利
  • Java8 対応
    • DAOメソッドの引数や戻り値をOptionalで包める
    • StreamやCollectorを利用できる
  • エンティティリスナー
    • 思考停止で登録日時とか更新日時を入れさせられることが多いので便利そう
  • コンパイル時のチェック
    • しょうもないミスは結構防げそう
  • JAR1つに依存するだけ
    • 他のJARに依存しない
    • 導入の敷居がかなり低い

全体的に機能は充実しているのですが、割りきって切り捨てている(※) ところもあり、シンプルになっていると感じました。 ※ 検索系は必ずSQLを書かせる、SQLファイルのincludeなどは提供しない、など

ドメインクラスの話 - @backpaper0 さん

引き続きうらがみさんの「ドメインクラスの話し」。 ドメインクラスと言ってもDDD的なアレではなく、Domaで扱える値オブジェクトのこと。

普通にやるとIntegerやStringなどの基本型だらけになるカラムのマッピングで値オブジェクトを利用できる。

引数の順番誤りを防いだり、値の導出をユーティリティクラスでやらず、値オブジェクト自体に閉じ込めることが出来たりして良い。 他にも可読性(引数や戻り値のシグネチャに現れる)やIDEの補完などでもメリットがあるよ、という話しを聞いて納得。

Webアプリケーションにおけるデータの流れと値クラスと基本型の境界の図はとても分かりやすかったです。 (こうゆうのちゃんと整理できるようになりたい)

うらがみさんは、アプリケーションのレイヤでは基本型を使わず、全てドメインクラスを使うようにしているとのこと。(凄い…)

Domaに限らず参考にできるエッセンスが多く、仕事で活用できそうなヒントをいっぱい貰えました!

とあるDoma2の使い方 - @gakuzzzz さん

自分は何の勉強会に来ていたんだっけ?となるインパクトのある内容でした。

基本的にImmutableにするため、資料の全てのフィールドはfinal…!

そんな@gakuzzzz さんのDomaの使い方のお話。

最初はEntityをImmutableにするという話で、IDをDBの機能で自動生成している場合の対応を紹介していました。

IDクラスや、notAssigned()というIDが未割り当てだという状態を定義する、notAssigned()同士はequals が成り立たないようにする、など様々な工夫が紹介されており、普段あまり考えて設計してないことを痛感。。。

お次はDomaを使ったCollect検索の話し。序盤はおお、便利そう!って感じだったのが徐々に…いや、しょぼちむの頭が邪魔でコードが読めなかったってことにしておこう!…(´・ω・`)

後から資料をじっくり見なおしてみると理解できる部分も多く、1:nや、n:mの検索はかなり便利に思えました。

@gakuzzzz さんのツイートこんな感じで怖い人だ!って思っていましたが、とても優しい型でした!

Domaの開発で大切にしている10のこと - Qiita - @nakamura_to さん

最後はDoma開発者の @nakamura_to さん。 初めてQiita Slide見た!

Domaって7年も前からあるんですね。自分がIT業界に入って8年目なので、新人の時からあったのか。

7年間も開発を継続して、新機能の追加やJava8対応など利用者の要望や、新しい言語機能を積極的に取り入れているのホント凄い。

内容としてはDomaを開発するうえのフィロソフィのようなもので、シンプルさを重視しつつ、プロダクトの核となる部分は曲げない。

でもトレンドや利用者の要望は取り入れていくし、逃げ道(JDBCを自由に使える)を用意してあるので別のライブラリへの切り替えも容易(そもそも1JARだし)である、といった話でした。(絶対スライドを見たほうが良い!)

捨てるところは捨てる、プロダクトのコア・バリューとなる部分は曲げない、というバランスが素晴らしくて感心を通り越して感動してしまいました。(何様だって感じだけど良い言葉が思いつかない)

LT

Doma2とMVC1.0でJava EE Webアプリを作ろう! // Speaker Deck - @suke_masa さん

Java EE 成分濃い目でした。とはいえDoma2はもちろん、MVC1.0、Payara Micro、Thymeleafなどてんこ盛りな構成で面白かったです。

Doma2 with Kotlin - @yy_yank さん

大トリはやんくさん。 さすがの巨匠の風格でLTなのにnakamura_toさんより長く話していましたw

NASAのロゴは、うん、似ている気も…?

Togetter

おわり

懇親会ではnakamura_toさんやうらがみさん、がくぞさん、とーますさんの話しに付いて行くのでいっぱいいっぱいだったけど、かなり楽しかった! うらがみさん、発表でも懇親会でもかなり緊張していて、本当にDomaが好きで、憧れているのがわかった。 こういった、ユーザが好きだから開く勉強会は熱量が多くて刺激になる。

発表者の方々、運営をされていたとーますさん、dotsの方々、ありがとうございました!

会場、めっちゃお洒落で良かったです。

MacBook Airのバッテリーを自分で交換した

MacBookを持って勉強会に行ったら20分くらいでバッテリー切れた。

 さすがにマズイと思って調べたら、どうやら修理に出さないでも自分で交換できる模様。

早見表とは異なるが、MacBookの裏面を見たらA1466と書かれていたので、以下のバッテリーを購入。

 

www.amazon.co.jp

 

バッテリー交換に必要な工具も買っておいた。

 

www.amazon.co.jp

 

 

 

www.amazon.co.jp

 

 作業手順は以下のiFixitのサイトを参照。

特に難しいことはなく、ドライバーでネジを外してバッテリーを外して交換して、また元に戻すだけ、という至って簡単な手順だった。 

 

f:id:tenten0213:20151015232944j:image

 
初めて開いたので、結構ホコリが溜まっていた。
 
f:id:tenten0213:20151015232955j:image
 
f:id:tenten0213:20151015233004j:image
 
修理に出すと数営業日必要なところ、自分で作業すれば30分程度で済むし掃除もできるのでオススメ。

(WIP) Seasar Conference 2015に参加してきた

f:id:tenten0213:20150928032045j:plain

Seasar2との出会いは4年半くらい前だった気がする。既に枯れてはいたが、それまでCOBOLや自社フレームワークを利用してきた自分には驚きと新鮮な刺激の連続でのキャリアに大きな影響を与えた、とても思い入れのあるフレームワークだ。

とはいえ、もう3年くらい使ってはいないわけなんだけど。そんなSeasar2の作者やコミッタ、ヘビーユーザだったエンジニアの、過去や現在、未来の話しが聞けそうだぞ!ってことで参加した。

続きを読む

hubot-irof作った

これはいろふ Advent Calendar 2014 - Adventarの4日目です。

3日目はid:sue445さんのいろふさんグッズを作った - くりにっきでした。

やばい、マグカップ欲しい。

いろふさんとの思い出

Twitter上ではちょくちょくやり取りしていたけど、インスタンスとはDevelopers Summit 2012 Kansaiで初めて遭遇した気がする(もしかしたら違う勉強会で会ってたかも?) 家に泊めてもらった時に見た技術書の量に衝撃を受けた記憶がある。

JJUG CCC 2014 Fall(11月15日開催) | 日本Javaユーザーグループで久々に会って、いろふさんが執筆者として参加したJavaエンジニア養成読本にサイン貰った。ありがたや〜(T人T)

f:id:tenten0213:20141203011528j:plain

本題

Hubotスクリプト作った。

ライセンスはいろふ・ライセンス

npmにも上げているので、自分で作ったHubotのディレクトリでnpm install --save hubot-irofして、external-scripts.jsonhubot-irofを追加すれば使えるようになる。

コマンドはhubot irof meしかない。

f:id:tenten0213:20141203010630p:plain

いろふさんを召喚したい時とか、反応に困った時、なんとなく賑やかしに…ご利用ください。

5日目は…緊急参戦の@yy_yankさんのJavaプログラマーのはしくれダイアリー: マジ感謝ないろふさんに俺のライムを送るです!+(0゚・∀・) + ワクテカ +