さくせん:いろいろやろうぜ

いろいろなことをやって、楽しみます。

英語がそれなりに読め、TOEICでそれなりの点数を取ることができる勉強方法

自分はこんな感じに勉強した。

若かりし頃

授業は正直適当に受け流していた・・・。 英語の基礎知識について役に立ったのは以下。 文法→読解の順、単語は平行。音読・多読は暇な時に。

文法

英文法のナビゲーター(上・下) たぶん2,3回は読んだ。

大学入試英文法のナビゲーター 上 (研究社ナビゲーター・シリーズ)

大学入試英文法のナビゲーター 下 (研究社ナビゲーター・シリーズ)

読解

ビジュアル英文解釈(Part1, Part2) たぶん3,4回は読んだ。カバー取ると背表紙が赤くて雰囲気あって好き。

ビジュアル英文解釈 (Part1) (駿台レクチャーシリーズ)

ビジュアル英文解釈 (Part2) (駿台レクチャーシリーズ)

単語

単語王 一番難しいレベルは覚えていない。ジャケ買いした参考書だけどアタリだった

単語王2202

音読・多読

速読英単語必修編 寝る前とかに2つか3つ読んでた。

速読英単語1必修編[改訂第6版]

カーネルサンダースの話とか、蜂と犬の色覚の違いの文章は覚えている。

ビジュアル英文解釈をやれば英語が上から下、左から右に1度読むだけで英語の構文がわかり、1度で理解できるようになる。 自分にとってはリスニングでもこれが重宝して、リスニング・シャドウイングしながらも構文がつかめるようになった。


おとなになってから

TOEIC

公式問題集

リスニング

それぞれの教材のシャドウイング

その他

興味があるTech系のPodcast

おとなになってからはそんなにガチってない。

なお、実際のレベルは海外へ行くと本気出してなんとやりたいことを実現することができる程度で、ネイティブの日常会話のリスニングは本当難しい。聞き取れない。最近、sorry ↑?を覚えたのでなんども聞き返すことができるようになったのでその辺は進歩した。

それと英語ができるとプログラミングするときにみっともない関数名や変数名、クラス名を書かなくて済むのでエンジニアの人も英語は最低限やりましょう。英単語を適当に並べたメソッド名を見ると悲しくなります。

セパレートキーボードのBaroccoを買った。

少しタイピングの練習がてら書いてみる。
前から気になっていたキーボードが発売したので、週末に秋葉原へ行って実物を触って、欲しくなったので買った。
赤軸か茶軸かで悩んだが、なんとなく茶軸のほうがしっくりきたので茶軸を選択。
初めてのメカニカルキーボードの購入となった。

打鍵感についてはHappyHackingのほうが気持ち良い感じ。スコスコしている感じには勝てない。
これはBaroccoの話ではなくてメカニカル全体に言えることなので、まぁそういうもんだよねという感じ。
あと音。ちょっとうるさく感じる。
そう思い、静音化Oリングも買っていたので現在はそれを装着して使っている。少し静かになり打ち込む深さが若干浅くなった。

使ってみてセパレートしてみた感じだと、やはり他でも言われている通り胸が開いて使えて疲れない感じがする。
腕ってここにあるのが自然だったんだなーと。
タイピングの方は自分のタイピングのフォームはわりと整っているほうなので全く問題ない。
どうでもいいが、自分は「R」を中指でタイプする癖があるが。これはセパレートにしたところで問題がない。

そして、省スペースも1つの特徴のBaroccoだが、セパレートして使うと左右の間にできるスペースがデッドスペースになり結局場所を取ってしまう。
そこでマジックトラックパッドをセパレートした間に置いてみたがこれが結構よい。
しばらくこれで運用してみるが、スマホのアプリを開発する場合は真ん中にスマホを置くとデバッグがしやすいかもしれないので、週明けにこちらも試してみようと思う。

それとこれまでパームレストをタオルで代用していただが、これができなくなった。
タオルはリーズナブルで静音にも役立ち結構気に入っていたのだが、左右にキーボードがそれぞれ別れることで1つのタオルでは使えなくなった。
かといって、タオルを2枚用意すればよいかというとそれも違って、サイズ感が合わない。
これは解決策が今のところない。安いマウス用のパームレストを2つ買うか、タオルをカスタマイズするか(笑)

カーソル移動は基本、MacEmacsキーバインドなので何も問題ない。

設定したといえばMacの設定で、CapsLockとControlを入れ替え、CommandとAltの場所を入れ替えた。
それとこれまで同様に、Karabinerで左右のコマンドをシングルクリックで英数とかなで動くようには設定した。

そのほか、キーボード側でいろいろカスタマイズできるようであるが特に今は何もいじってない。
あえていじるとすると、HHKに合わせてバックスペースとパイプを入れ替えようか、ってくらい。

問題点はバッククオートとチルダがFnやShitとの同時押しであることか。
これもカスタマイズで右Ctrlあたりに割り当てたら上手くいくのであろうか。

そしてなぜかめちゃんこ高騰している。

これからも使って肩こりが改善されれば嬉しい。
HHKを7年使ってきたが一旦、こちらに浮気してみようと思う。
コンパクトタイプで静電容量無接点方式でセパレート型が出たらまた買ってしまうんであろうな・・・。

Xamarin Test Cloudを試してみたら、ハマった

iOSアプリをXamarin Test Cloudでテストしてみるというお話。 あとのためにメモ。

こちらのCalabash - XamarinのQuickStartを試してみた。 英語だが手順通りに進めていく。 ローカルでテストが通るところまでできた。 テストはRubyのcucumberのサンプルを利用。

Submitting the iOS App And Test - Xamarinまできて、Xamarin Test Cloudのいよいよ登場だというときに、

  1. Select the SimpleCreditCardValidator-cal target and specify iOS Device

これが見当たらない。Xcode7.3。参る。

とりあえずクラウド上でテストするためにはipaファイルが必要なので、Archiveをしてみてipaを作り、test-cloudコマンド(ipaをXamarin Test Cloudへアップロードするコマンド)で実行するがエラーが出る。 内容は「calabash.frameworkが含まれていない」というもの。

ちなみにtest-cloudコマンドには引数が多いが、 Xamarin Test CloudのNew Test Run からひな形が作成できる。

たしかにcalabash.frameworkはリリースビルドではリンクしないよう今回のチュートリアルで設定した。 なので、Archiveをデバッグビルドで行い、calabash.frameworkをipaに含めてみる。なんだかダメな予感がするが。

再度、デバッグビルドでArchiveしたipaをtest-cloudコマンドを使って試すと、rubyでエラー。 うーん。わからない。

ググっても情報が少ないのが、なかなかつらいです。 ちょうどこの日は無駄にやる気があったのでXamarin Forumで質問する。

Can not upload ipa file which is created sample code to Test Cloud - Xamarin Forums

今読み返すと、ところどころ英語が変だが通じるものだ。 そして、回答をいただく。

  1. Build My.app for arm arches
  2. $ mkdir Payload
  3. $ mv My.app Payload
  4. $ xcrun ditto -ck --rsrc --sequesterRsrc --keepParent Payload My.ipa

こんなのどこにも書いてなかったのですが・・・。 しかし、これで作成したipaをtest-cloudコマンドで指定するとなんと処理が始まるではないか。

なお上記フォーラムで「この方法、どこかに書いてあるの?」聞いたら、「ないんじゃない?ドキュメント更新するように伝えておくよ、フィードバックありがとう!」と中の人からコメント。 うーむ。クイックスタートくらいはスムーズに出来てほしいものだ。

何はともあれこれで行けるとおもいきや、またrubyのエラー。

Make sure that gem install json -v '1.8.2' succeeds before bundling.

環境はQuickStartのはじめのほうのInstalling the Calabash Sandbox - Xamarinでcalabash.sandboxをインストールしたのだけれども、なぜ。

エラーログを見ると、変なところのrubyが使われている。Server.app内のrubyだった気が(メモ忘れた)。意味不明。

素直にDocumentationを見て、rbenvで挑戦。Updating Ruby using rbenv - Xamarinを参照する。

ひさしぶりにbrewを使うとEl Capitanだからなのかエラーが起こる。brew updateが出来ない。 El Capitanにする前に/usr/local/が作られているから大丈夫だと思ったのに、そうではなかった。

Mac OS X El Capitan にアップデートした後に brew update が動かない場合の対処方法 | gotohayatoを参考にして直す。感謝。

諸々環境を整え、再度実行したら成功。 クラウド上でテストも動いた。ステップごとにスクリーンショットやメモリ使用量、CPU使用率も表示され、至れり尽くせりな感じ。

このまま安定してくれれば環境としては良さそうな感じ。
あとはUIテストをどこまで書くか、かな。こればかりはどのプラットフォームを使っても辛いイメージ。
もう少し検証をしたかったのだけど、トライアル期間ではここまでとなりそう。
あとはお仕事でやるときがあれば、って感じ。

Xamarin Test Recorderを試してみた

きっかけ

Xamarin Test CloudはXamarinで作っていないアプリでも使えるらしいので興味が湧いた。

インストール・起動

Mac(Yosemite)で試す。
公式からダウンロード、インストール。
APIキーの入力が促され、リンクがあるのでそこから入手する。 f:id:kykomi:20160410222342p:plain

しかし入手できず。
ダイアログに書いてあるリンクに自分でアクセスすると取得できたので、コピペをしてOKをクリック

しばらく経って強制終了。

Macの再起動やTest Recorderを再インストールしても、同じ現象。

公式フォーラムを見ると同様の現象が報告されており、Macをバージョンアップしたら治ったと記載あり。
とくに躊躇するタイミングではないのでこれをきっかけにEl Capitanにアップグレード。ちょうどいいタイミングだった?(笑)

その後、無事起動。

操作を記録

手持ちの自作iOSアプリで試す。 適当にipaファイルを指定すればできるかと思っていたがどうやら違うらしい。
公式の動画を見てみるとappファイルを指定しているではないか。

実機でレコーディングするにはipaファイルで、シミュレータでレコーディングするにはappファイルを指定するようだ。

実機を繋いでipaファイルを指定するとプロビジョニングファイルが無いと言われる。実機にインストールできていて、実機にインストールしたipaファイルを指定しているのになぜ?
ハマりそうだったので保留に。

シミュレータで試してみる。
appファイルはビルド後に「~/Library/Developer/Xcode/DerivedData/アプリ名+ランダム文字列/Build/Products/Debug-iphoneos」にできる。
シミュレーターをiPad Proに、ファイルは上記のパスにあるappファイルを指定すると無事起動。 レコードもできた。

シミュレータをiPhone4Sにして操作を記録しようとして、レコードボタンを押すと「アプリの起動→ホームへの遷移」が連続で繰り返されしばらく 経つと「起動できません」と言われる。原因は不明。

記録した操作を実行

Playボタンを押して実行。動くが・・・結構な割合で落ちる。
記録した操作通りに自動操作ができないと、適宜この処理をどう扱うか(再記録、何もしない)を聞くダイアログが表示される。

キーボードの切替などがうまく動作していなかったようだが、これは初回切替時のアラートが出てきて操作に差が生じたからかもしれない。
このようなケースはどう解決するんだろう。

Test Cloudへアップロード

ipaでレコードしたテストしかアップロードできないとのこと。
今回は前述の通りipaでの操作記録ができなかったので当然アップロードもできなかった。

まとめ

本当はAndroidの多端末のテストしたく、まずは慣れているiOSでやってみようとしたらこんな感じに。
現段階では結構つらい。
preview release なので温かい目で見守りたいと思います。
Test Cloudが良いと思うのでまた試そう。

try! Swiftの「文化を調和させる」をクラス図でまとめる

まとめ

try! Swiftの「文化を調和させる」の後半部分は自分の理解が足りていなくて少し置いて行かれた感じがあったので復習してみます。
後半はいろいろなプロトコルやクラスが出てきてたので、それらをクラス図にしてみました。

f:id:kykomi:20160313162738p:plain

実際のコードは書いていませんが、全体像を把握することができました。

所感

  • クラス図にしてみると見通しがよくなった
  • 修正箇所が局所化されている
  • DataSourceで一部仮実装を行うのに違和感。仕方ないか。
  • HandDataSource内でダウンキャストを行っているのが気になった。ダウンキャストするのに抵抗があるけど、そんなに気にする必要ない?
  • セクションが複数でそれぞれのセクションで別のモデルを表示する場合はDataTypeを実装する構造体を増やしていく?

抱負

来年もtry! Swiftが開催されたら行きたい。

参考資料

2016年 始まりましたね

あけましておめでとうございます。

新年を迎えると同時に、転職して働く組織・場所も変わりちょうど1年が経つことになります。
地方か東京に出てきていろいろ変化があった1年でしたが、無事健康で1年間生活できました。よかった。

まずは環境が変わった1年をざーっと振り返ってみます。

  • 冬が寒くなくて過ごしやすくて快適。天気も以前居たところと比べ良い日が多くて気持ち良い
  • アウトドアに疎遠になった
    • バス釣りの回数が激減して残念
    • ボードもできません
    • 地方の山は良いものです
  • 以前居たところの友人とは少し疎遠になったが、東京近郊にいる友人と会う機会が増えた
  • 都会には美味しいものが多くあり、1日3食であるのが寂しいくらい
  • 1日6000歩は歩くようになり、ふと気づくと平日でも1万歩歩いていることが多くなり少し運動量が増えた
  • 電車通勤もなれた。通勤時間が結構遅めなので通勤の電車もそんなに苦では有りません。
  • 地方にいたころは終電を意識することがなかったが、終電を意識するようになった
    • 週末の終電は本当に満員でヒドイ
  • 意外にも地方にいたころよりも家族「全員」で集まる機会が増えた
    • 東京はアクセスしやすいです

このように東京に出てきてもそんなに消耗していません。以前のほうが消耗していた気がします。 特に自分は寒がりの冷え性なので冬が少しでも暖かいと本当に助かります。

さて、これから東京にでてきて2年目となりますが、どう暮らしましょう。

東京はお金さえあればたいていの欲を満たすことができる場所といいます。 苦労・ストレスはそのままでお金をもっと稼ぐことで楽しく過ごせたらいいな、と思います。

そのためには、時間を有効活用してインプット・アウトプット。
仕事での拘束時間は以前よりも少なくなっているので、その分の時間を有効に使っていく。

とりあえずは年末年始はAppleの「The Swift Programming Language 」をほぼ読了しました。

年齢もそれなりになってきているので歳相応の能力を身につけ、またキャリアパスのようなものも考えていかないといけない歳だなーと改めて思う今日このごろです。

今年もよろしくお願いします。

OS X ServerとXcodeのBotsでiOSアプリ開発をCIしてみる

一人開発を嗜んでいますが、暇つぶしがてら少しいじってみたのでメモ。
まずは、OS X Serverをインストール。
昔の勝手な記憶だとサーバーのアプリはお高かったようですが今は2400円。
ただし、Apple Developer に加入しているとタダでインストールができる。
なのでApple Developer Center内のDownload - OS X - Apple Developer でダウンロードをしてインストール。
正確にいうとApple Developerの場合はギフトコードがこのページで取得できる様子であった。

もろもろの設定などは一番下の公式の参考資料を見ればできるので、そちらを参考に。

ここでは特徴をざーっとまとめる

特徴

  • Server.app をインストールした端末にあるXcodeでビルドする
    • ビルドするXcode.app を選択した
  • ローカルのXcodeのプロジェクト上からビルドの命令を飛ばすことができる
  • Gitリポジトリに対応(SVNなどにも対応しているらしい)
  • ビルドのタイミングは、コミット(=push?)、定期的、手動が選べる
  • ビルド後に参照できる情報は、
    • ビルドの成功可否
    • Analyzeによる issue の数
    • Warning数
    • テスト結果
  • バイナリファイルを生成
    • ビルドの前にApple Developer のチームメンバーとしてXcode Server を追加する
      • これはXcode上から自動でできた
  • ビルドのスキーマXcodeのプロジェクトでBots用に設定する
  • ビルドの前と後にスクリプトの実行が可能
    • ここでチャット飛ばしたりできそう
    • デフォルトでメール通知が用意されてはいる
  • Server.appが動いているマシンと同一ネットワークであればブラウザからCIの結果を参照できる
    • 無駄にUIがかっこいい
    • ここからAppStoreへの申請もできる
    • ipaファイルのダウンロードもできる
  • iOS端末からCIの結果ページに行くとそこからバイナリをインストールできる
    • インストールするまえにServer.app の証明書のインストールが必要
    • 青いInstall ボタンを押すと証明書のインストールが促されるので、それに従うとボタンが緑になり、その状態で押すとインストールされる
    • OTAでインストール出来るのは良い
    • TestFlightとは別?未調査

感想

  • 手軽にCIができた
    • CIは環境を作るのが大変なイメージがあったが、これは楽であった。
      • 自宅の環境であったためとも言えるか
  • 細かいチューニングはできない
    • カスタマイズ性ではJenkins優位か
    • 便利スクリプトも全部自作する必要がある

参考資料

以上、メモでした。