iOSとSwiftの勉強をどうやろうかという話
2年ほど前よりiPhoneアプリの開発をほそぼそとやっていたのですが、 改めてiOSとSwiftの基礎固め!ということで、ここ1ヶ月ほど、経験者に教えていただいた以下のコンテンツをやっておりました。 結論としてやってよかったなぁと感じており、色々自分でも作れそうだなぁと思っております。@kei_qさんに感謝。
駆け足(= 各Lesson末にあるModifications and Extensionsは飛ばす など)ですがLevel1から4まで一通り終えたので、その感想を記しておきます。
良かったこと
気をつけたこと
- 基本的に「Teaching App Develpment」なので、教える側向けの教材であることに注意
- たとえば「ここで◯◯について説明すべし」なんていう部分があったりするので、それについては「俺が◯◯について調べるターン」に置き換えてドキュメントなどを自分で調べる
- ものすごく稀に指示漏れとかがあって、書いてある通りにやっても動かなかったりすることがある
- そういう場合は、今やっているところの次のLessonのXCode Projectを開いて現状との差分を見ると、なんとかなったりする
- 英語なので、日本語と比較すると読解に時間がかかる
- これは私の問題ですな...
- どうにも意味が掴めない時は、Kindleとかで買った日本語の書籍を検索してみたりした
今後は実際に実装をしつつ、引き続き学習していこうと思っていますが、なにかオススメ教材などありましたら教えて下さい〜。 特に「Segueを使わずStoryBoardを分割して開発したい」「Model分けとかの設計の指針」などが今気になっております。
ヘルシープログラマはあんまり面白くなかったよという話
先日、「ヘルシープログラマ」の感想をちょこっと書いたのですが、
ヘルシープログラマを読んだ感想を少しと、個人的な健康維持活動について - とにかく何か書く
ヘルシープログラマ ―プログラミングを楽しく続けるための健康Hack
- 作者: Joe Kutner,Sky株式会社玉川竜司
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/07/23
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (4件) を見る
すみません。仲間内に話していた本音をまるっと省略していました。
これ通りにやっていれば確かに、普段プログラミングに没頭している人の健康は改善されるでありましょう。
と書いたのは確かにそうなのですが、書かなかった本音を続けると
でも面白くなさそうだよね。続くのかねぇ
という言葉を飛ばしていたのでした。すみません。なんか悶々としているので続き書きます。
ユニットテストをしようだとかアジャイルだとか、プログラマにヒットしそうな言葉がちりばめられていますが、「なんかこちらが面白くないと思いがちなことを、プログラマ的な文言を用いてやらせようとしているな」という作為的なものを感じて、一気に読む気をなくしたのでした。
昔イングリッシュアドベンチャーという英語教材があり、広告のキャッチが「面白いから続けられる!」的なものだったような記憶がありますが(今でもあるのかな)、初級編を始めたとたんにstory的に不自然な形で数字を読み上げるシーンが出てきて「あーこれは数字を覚えさせようとしているんだな」と思い、身構えてそれ以降やらなくなってしまったのを思い出しました。 (つまりは天邪鬼な自分が悪いということなのでしょう)
そもそも自分の周辺のプログラマの皆さんは、日々つらみのあるギョームをやっていたとしても、基本的にはプログラミングやソフトウェアエンジニアリングが面白いと思ってやっている風に見えます。
この書籍に書いてあるストレッチやトレーニングのような、本質的に面白みの無い作業を、「ヘルシープログラマになるため」実施するっていうことは、果たして続けられるものなのでしょうか。 (「続けられるぜ!」という人は是非続けてください、効果は絶大です!!) 自分はこの本だけでスポーツを継続的に行うようになるのは、まず想像できません。
ではどうしろというんだという事になりますが、できれば自分が楽しいと思う活動を1つだけでも見つけることが、一番効果的だと感じています。
その点巻末に紹介されているIngress、素晴らしいですね!ハマってる人が周囲にたくさん居られますが、何も運動していない時と比較すると、きっとすっきりとした頭でよりよいプログラミング生活(そして美味しいお酒生活)を送られているのではないかと想像致します。「やった、健康診断で全部Aになった」という人の話も耳にしました。
ボルダリングも素晴らしいです!熱中している間に筋肉つきそうですし、この体重ではアカンとダイエットへのモチベーションにも繋がるのではないでしょうか。ボルタリングやってた知人もそんな感じでしたし。
で、自分の場合はというと...
合気道
社会人になってはじめてみたものの、縦社会っぷりが「そんなの会社で充分っす」ってことで半年で挫折(へたれ
バドミントン
中学生の頃から7年位やっていた。自宅に居た頃は家から徒歩5分の体育館でやっていたので手軽に継続。就職後は会社にバドミントン部があったので続けたが、転職してからは合うクラブが地元に無くて挫折。
ランニング
走るだけってのは自分には合わないと、1ヶ月で挫折
フットサル
好きだったけど人が集まらないとなかなかできず、計画が立ったとしてもコートが遠かったりして面倒に...
バスケットボール
身長高め/手がそれ以上に長めの自分は自然とセンターでリバウンド取る役になるんだけど、突き指だらけで業務に支障。楽しいんだけどなぁ
Wii
はじめの一歩レボリューションをクリアして終わり
テニス
はじめて7年目位、未だに継続。他のスポーツと比べると、スクールなど初心者が教えてもらえる環境がたくさんあるのが良く、はじめてでも辛くなかった。なにより自分にとっては面白い。レベルに応じてスクールや遊び場所を選択できるのが、飽きずに続けられている原因かなと推測。
上達してゲームができるようになれば、 テニスオフネット - テニス仲間探しの新しい形。テニスしたい、うまくなりたい! などで数百円でゲームを楽しむ事ができて手軽。 また草トーナメント(アマチュア同士の小規模な試合)に出てから「フィジカル強化しないと勝てないな」と思うようになり、筋トレや食事管理、ストレッチもやるようになった。
67歳になる義父もテニス現役、筋トレ始めて「サーブ速くなった!」とかやっていて、あぁあの歳になっても楽しめるんだなぁとモチベーションに。
ということで、個人的なおすすめはテニスです。動くもの見てると目の疲れも取れる感じしますし、腕振り回してると肩こりも軽減されます。Web業界の友人/知人が最近始めたので感想を聞くと、とにかく楽しそうです。
まとめ
Ingressでもボルダリングでもテニスでもランニングでも何でもいいんですが、何かそれそのものが面白いと思えるスポーツ的なものを1つでも見つけられたら、結果ヘルシープログラマへと近づけるのではないか、というお話でした。
ローカル開発環境のweb serverをthinからnginx + passengerにしてみた
Railsの重いアプリを動かしている際に、開発環境が遅かったので、使っていたthinからnginx + passengerに変えてみました。 rack-mini-profilerで測った結果、2倍位速くなった感じ。
時々nginx + passenger の組み合わせはやるんだけど手順を忘れがちなので、今回はメモしておくことにします。
参考にしたのは Local Rails Development with Nginx, Passenger 4, and Ruby 2 on Mac OS X | The Wayward Traveller だった気がするんだけど、色々つまみ食い的に読みながらやったので他にもあったはず...
前提
1. passengerを入れる
% brew install passenger
2. nginxを入れる
% brew install nginx --with-passenger
3. /usr/local/etc/nginx/nginx.confを編集する
http{ 内にpassenger_rootとpassenger_rubyを追加
http { include mime.types; default_type application/octet-stream; passenger_root /usr/local/opt/passenger/libexec; passenger_ruby /Users/{username}/.rbenv/versions/{your ruby version}/bin/ruby;
http{ 内にserver{} を追加、root 〜 access_logには自分が開発しているrails appの各ディレクトリを指定する
server { rack_env development; listen 8080; server_name {yourapp.local.com}; root /Users/{username}/project/{yourrailsapp}/public; access_log /Users/{username}/project/{yourrailsapp}/log/nginx_access.log; error_log /Users/{username}/project/{yourrailsapp}/log/nginx_error.log; passenger_enabled on; }
4. /etc/hostsを編集する
- server{}内に追加したserver_nameを指定する
127.0.0.1 {yourapp.local.com}
5. nginxを起動し、動作確認
nginxを起動
% nginx
ブラウザでhttp://yourapp.local.com:8080にアクセス => 自分のRailsアプリが起動していることを確認する
rvmからrbenvに移行した話
今までずっとrvmを利用してきました。Railsを使う際には必ずgemsetを作り、bundle execなどとtypeしなくて良い環境にしておきました。
最近手元の環境が不安定になり、どうも自分の環境だけrspecが通らない、ということがありました。環境を構築しなおすのであればこの際、rbenvに移行してしまえ!ということで、実行してみたのです。
「rbenv rvm 移行」とググると記事はたくさん出てくるので、それらを参考にさせて頂きつつ粛々と実施。 (rvm implode実施時は、数年分のrvmのgemsetを一気に消すと思うとドキドキしました)
sstephenson/ruby-build · GitHub sstephenson/rbenv · GitHub RVMからrbenvに移行した手順まとめ · GitHub
githubへの記載や各方面のblogなど通りにやれば問題なくできたので詳細は省きます。が、1点詰まってしかも解決できなかったことがあったのでメモ。
rbenvでruby-2.1.1 を入れようとすると、
% rbenv install 2.1.1 [~] Downloading ruby-2.1.1.tar.gz... -> https://dqw8nmjcqpjn7.cloudfront.net/c843df31ae88ed49f5393142b02b9a9f5a6557453805fd489a76fbafeae88941 Installing ruby-2.1.1... BUILD FAILED (OS X 10.10.4 using ruby-build 20150803) Inspect or clean up the working tree at /var/folders/_3/tbzctkwd5ndbyv_y0fq6mys40000gn/T/ruby-build.20150814163548.8417 Results logged to /var/folders/_3/tbzctkwd5ndbyv_y0fq6mys40000gn/T/ruby-build.20150814163548.8417.log Last 10 log lines: checking for unistd.h... yes checking minix/config.h usability... no checking minix/config.h presence... no checking for minix/config.h... no checking whether it is safe to define __EXTENSIONS__... yes checking for cd using physical directory... cd -P checking whether CFLAGS is valid... yes checking whether LDFLAGS is valid... no configure: error: something wrong with LDFLAGS="-L/Users/kouno/.rbenv/versions/2.1.1/lib " make: *** No targets specified and no makefile found. Stop.
うーん、何故でしょうねぇ......
brew doctorで怒られた箇所を全部直すとか、xcode入れ直すとか色々やったんですけど、結局解消しませんでした。 結局2.1.2を入れたら難なく入ったので、そのまま使っています。
rbenv
とtypeするのに慣れておらず時々ひっかかってますが、とりあえず問題なく開発を続けることができております。
ヘルシープログラマを読んだ感想を少しと、個人的な健康維持活動について
購入当時Amazonでは在庫が無かったのですが、早く読んでみたかったので、紀伊国屋書店の少ない在庫を取り置きしてもらった上で買ってきました。
ヘルシープログラマ ―プログラミングを楽しく続けるための健康Hack
- 作者: Joe Kutner,Sky株式会社玉川竜司
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/07/23
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (4件) を見る
食事の管理や運動による健康管理を行うことで、プログラマーを続けていく上での不健康な症状を解消できるよ、やりかたはこうだよ、と指し示してくれる本です。 これ通りにやっていれば確かに、普段プログラミングに没頭している人の健康は改善されるでありましょう。
そしてこの本を手に取る方も、自分なりのノウハウを1つや2つは蓄積しているのではないかと思います。 ということで、個人的に試したこと、効果があったなぁと思ったことを列挙してみます。
エアロバイクを漕ぎながらゲームをする
朝15分ちょっとのエアロバイク漕ぎをするだけで、血液の循環が改善され、頭の働きも良くなり、更に夜の寝付きもぐっとよくなりました。
一時期どうしても寝つきが悪く、グリシンのサプリメントやラベンダーなどのハーブなど、いろいろ試したのですが、結果としてこれが一番自分には合っていました。
ただエアロバイクを漕ぐだけだと飽きるので、iPhoneやPlayStationでゲームをしながら漕ぎました。両手はコントローラを持っているので、エアロバイクの椅子の上にバランスクッションを置き、まっすぐ姿勢を保持しながら実施することで、腹筋周りの鍛錬にもなります。
レベル上げが必要なゲームなど、正直「こんなことやってていいのか」的な罪悪感があるのですが、運動していると思うと軽減されて良いです。
またどこかの本で読んだのですが、1日を趣味で始めて趣味で終えると精神状態が良好に保てるとのこと。ゲーム好きの人であれば、例えば朝起きて30分エアロバイクとゲーム -> 仕事 -> 夜30分エアロバイクとゲーム などと組み立てると、心身ともに大変健康な状態を生み出すことができます。
余談ですが、真・戦国無双をやりながらエアロバイクを漕いでいたところ、「逃げる敵を追いかけているシチュエーションの時など、ペダルを漕ぐスピードが速くなって面白い」と嫁に指摘されました...
エアロバイクを漕ぎながらプログラミングをする
前述の方法で、両手フリーな状態でのエアロバイク漕ぎを習得したため、アイリスオーヤマのスチールラックを買ってきて、エアロバイクの前方に配置してテーブルにし、そのままプログラミングをしてみました。
進みはするのですが、汗かきな自分はすぐに手先まで汗まみれになり、PCのキーが湿ってきて壊れることに危険を感じ、あまり集中できませんでした。
ショートヨガ
- 出版社/メーカー: エイベックス・トラックス
- 発売日: 2006/03/23
- メディア: DVD
- クリック: 8回
- この商品を含むブログ (7件) を見る
結果としては大変効果的なDVDで、掲載されている15分位のショートヨガ・プログラムを継続的に実施することで、頭が冴え、右腰から右足の膝裏あたりまでの鋭い痛みも解消されました。
午後のけだるい時間に行うと効果てきめんなのですが、火の呼吸なる鼻からハナクソを飛ばすような勢いの激しい呼吸法を行う必要があるので、職場でやると目立ちます。
リクライニングベッド駆動開発
根詰めて作業をすると、右肩から首、頭にかけて、こりと痛みが発生します。 以前腰を痛めた時に、こんなのを作って対処をしたのですが、
数百円で作った割には結構良かったんですね。
で、もっと本格的にと思いまして...
- 出版社/メーカー: アテックス
- メディア: ホーム&キッチン
- この商品を含むブログを見る
鍼灸師の先生と「パソコン使う時にリクライニングベッドでも使おうかと思ってるんですが(笑)」「それは、とても良いですね(真顔)」という会話をしたのもあり、またアーロンチェアなど高い椅子と比較すれば安いもんよー!!などと勢いをつけて買ったのでした。
参考にしたのはこちら
あなたも今日から布団人!!3万円で始める介護ベッドでプログラミング生活 | 株式会社インフィニットループ技術ブログ
ベッドもテーブルもほぼ同様です。
メリット
- 肩こり/腰痛が激減
- 体調が多少悪くても、なんとか進捗がある
- 体調を回復させながら仕事ができる
デメリット
- 玄関に行くのが遅れて、配達が来たのを逃す
- 部屋が一気に狭くなる
- 気合はあまり入らない
一旦スタンバイしてしまうと立ち上がる気が失せてしまうので、実施する際にはあらかじめタスクを洗い出してから、それを淡々とこなす心がけでコックピットに乗り込むといいのではないかと思います。
インタビューの教科書
読みました。
- 作者: 原正紀
- 出版社/メーカー: 同友館
- 発売日: 2010/11
- メディア: 単行本
- 購入: 10人 クリック: 99回
- この商品を含むブログ (2件) を見る
純粋にインタビューのノウハウが詰め込まれた本です。 マーケティングのためのインタビュー専門の本ではなく、あらゆるインタビューに関する汎用的な内容でした。
コミュニケーションの基本的な事から話の掘り下げ方、メモの取り方やタイプ別の話の持って行き方など、著者の方の豊富なインタビュー経験に基づいたリアルなノウハウが詰まっています。
ページ数は多くなく、図が多くてさらっと読める本でした。
今まで読んだ本なども参考にして、今回やりたいインタビューの質問項目はまとまってきているので、この本をざっくり頭に入れた上で、インタビューに挑みたいと思います。
アンケート調査入門
なぜこんなに同じカテゴリの本の話ばかりかというと、以前高専時代の教官に「同じカテゴリの本を7冊読め、そうすれば職場でその分野の第一人者になれる」みたいな事を言われたのを思い出し、去年あたりからそれに近いことを実践しているからです。
何冊も同じカテゴリの本を読んでいると、難解なところでも違う角度から語られているので理解が進んだり、異口同音で述べているところは「常識だったり重要なところなんだろうなぁ」などと判断できたりする気がしています。
ということで読みました。
- 作者: 朝野熙彦,丸山 泰,五條 雅史,石原 聖子,小代 禎彦,高見 健治,星野 朝子
- 出版社/メーカー: 東京図書
- 発売日: 2011/10/08
- メディア: 単行本(ソフトカバー)
- 購入: 2人 クリック: 46回
- この商品を含むブログ (2件) を見る
だいぶ濃いぃ本で、アンケートというものの歴史的経緯の説明から、プロジェクトにおける位置付け、そして実務に関する詳細な説明まで一通り解説してあります。
今回アンケート手法について情報を集めている理由は、プロダクト開発初期(半ば企画段階)の仮説の検証をしたいからなのですが、この本によるとサービス・プロダクトを企画/開発/運営していく上でのアンケートの利用するタイミングというのが何箇所かあり、自分が今やりたいことはその第一段階あたりに位置するようです。
そういった俯瞰的な話から、実際にどのようにアンケートを設計するか、そして外注する場合は...など、実際に調査を専門としている実務についてとても詳しく書かれています。 完全に消化するのはだいぶ大変な気がしますが、それでもこの本のタイトルは「アンケート調査入門」なんですよねぇ(^^;
今回の目的のためだけではなく、プロジェクトを進める上で長く付き合っていける本であると思いました。