bekkou68 の日記

Gogengo! や IT 技術など。

Travis CI で bundle install が毎回走らないようキャッシュする

はじめに Travis CI で CI のたびに bundle install が毎回走っていました。その時間がテストの時間の大部分を占めていたので短縮したかったのでした。 やりかた こちらに書いてありました。 .travis.yml に一行追加するだけです(diff 形式)。現在はプライ…

Rails アプリを Travis CI で動かすためのメモ

.travis.yml を PROJECT_ROOT に追加 (2014/09/04 更新) language: ruby rvm: - 2.1.0 before_script: - mysql -e 'create database myproject_test;' notifications: hipchat: '<TOKEN>@<ROOM NAME>' # CI時に submodule を無視 git: submodules: false # bundle install をキ</room></token>…

Localizable.strings で選ばれるデフォルトの言語を設定する

やりたいこと 20カ国に公開するアプリをつくっていて、まずは日本語と英語だけの Localizable.strings を用意しているとします。 そのアプリを言語設定を母国語にしているアーロンさんが使うとします。彼の母国語は日本語・英語以外ではない言語です。彼がア…

shenzhen で TestFlight へのアップロードを自動化する

はじめに TestFlight はアプリを配布するのにとても便利な Webサービスです。ただ、その配布するまでのプロセスを愚直にやろうとすると少し面倒な手順を踏みます。 具体的には XCode で Archive して、Organizer で Provisioning Profile を指定して IPA を…

UILabel の高さによって UITableViewCell の高さを変える

はじめに 表題を実現するためのコードをメモします。 sizeWithFontメソッドは iOS7 で非推奨なので boundingRectWithSizeメソッドを使います。 UILabel のカテゴリとして実装しました。 コード カテゴリで追加したメソッドが衝突しにくように、メソッド名に…

Objective-C で Google Analytics SDK 3 をセットアップする手順

はじめに Objective-C で Google Analytics を使えるように GoogleAnalytics-iOS-SDK 3 を導入する例を書きます。ミニマムコードから共通化の例までご紹介します。公式のドキュメントはこちらです。 ミニマムコード編(2014年06月16日更新) まずは動作させ…

Rails 3 + Nginx/Unicorn を Amazon AWS に Capistrano 3 でデプロイする

はじめに Amazon AWS 環境下で Rails 3 のアプリを Nginx/Unicorn で動くように Capistrano 3 でデプロイする手順をまとめました。 以下を前提に話を進めます デプロイ対象のアプリ/DBインスタンスはすでにつくられているとします デプロイ対象のアプリイン…

『EdTech Night! 第1夜』に参加しました

はじめに 教育とIT というテーマについて語り合う『EdTech Night! 第1夜』に行ってきました。自分自身、英単語を語源で学ぶ Gogengo! というサービスを運営していることもあり、とても興味のあるテーマです。 当日の公演のメモや感想を書きます。 開会のあい…

Nginx でベーシック認証をかける手順メモ

nginx.conf ファイルの存在するディレクトリに移動して htpasswd ファイルを作成する。 $ cd /etc/nginx $ sudo htpasswd -c htpasswd <username> 新規に作成するユーザのパスワードが求められるので入力する。nginx.conf を編集する前に念のためバックアップとる。 $ </username>…

Amazon RDS の MySQL を Munin で監視する

はじめに Munin のセットアップおよびアプリインスタンスのリソース監視をする方法はこちらのエントリをご覧ください。『Amazon EC2 で Munin + Apache でリソース監視環境をセットアップする』 このエントリは前述したエントリの手順が終了しているという前…

Amazon EC2 で Munin + Apache でリソース監視環境をセットアップする

はじめに Amazon EC2 のアプリインスタンスで Munin を Apache で動かす手順をまとめました。 Munin そのものを学びたい時はこのスライドがオススメです。インフラと監視の昔と今、Munin の仕組みや使い方がとても分かりやすく紹介されています。 ゴール Mun…

サンフランシスコの Twitter社に遊びに行ってきました

はじめに これは日本帰国前日のお話しです。 Protonight - Pair Programming Hack Session に参加したときに Mikeさんとお話ししました。それがきっかけで、Mikeさんの勤めるサンフランシスコの Twitter社でランチをいただけることになりました。ホスピタリ…

How to get status of Nginx HttpProxyModule (proxy_cache) - Just Logging and Collecting Log

Introduction I run a Unicorn + Nginx server with cache by HttpProxyModule. I'd like to get status of cache, for example, in memcached, we can get status like this. But, it seems there are no commands for doing that. Finally, my co-worker a…

Protonight - Pair Programming Hack Session に参加しました

はじめに 残すところあと4日ほどで日本に帰ります。帰る前にもう一つイベントに参加したいなあと探して見つけたのが Protonight - Pair Programming Hack Session でした。 どんな場か 公式ページに詳しく書いてあります。かんたんにまとめると、 色んな人と…

iOS でアプリ内課金を実装するために必要な情報メモ【Objective-C】

はじめに iOS で課金を実装するためのめっさ短いメモです。自分用です。 やること 商品の事前登録。テストする前にやっておく! この 2サイトを見ればOK 失敗しない iOS In-App Purchase プログラミング 公式PDF

メモリ使用量・空きメモリ量・ユーザCPU時間・システムCPU時間をログで表示する【Objective-C】

はじめに "Received memory warning"ドキッとするエラーです。このエラーが出た場合や、予防したい場合はメモリと CPU をモニタリングするのがよいアプローチだと思います。 ゴール 5秒おきにメモリ使用量・空きメモリ量・ユーザCPU時間・システムCPU時間が…

第1回技術交換会をやりました【iOSプログラミング】【Illustrator】 #techxchange

はじめに サンフランシスコに少人数のチームでお仕事にきてからはや2ヶ月が経ちます。はやいものです。あと2週間で日本に戻ります。 サンフランシスコに来て 1ヶ月半経った頃のお話です。「せっかく少人数だし、お互いに無いスキルを高めあえるといいね」と…

デバッグログを開発環境だけで表示する【Objective-C】

はじめに NSLog が本番のビルドに含まれていると、実機を Mac につないでログを確認できてしまいます。秘密にしておきたい情報などが漏れてしまう恐れがあります。 でも、クライアントはテストしにくい現実があり、ログをいたるところに仕込んでおきたい。そ…

Tutorial of mopub SDK integration on iOS &lt;Google AdMob&gt; &lt;Millennial Media&gt; &lt;iOS5 iOS6&gt; &lt;w/ ARC&gt;

Introduction I've integrated mopub SDK and wrote how to do that. There are few documents on the Internet so I made many efforts X(日本語版のエントリはこちら。 What is mopub? mopub is a system of ad management. Once you integrate SDK, you c…

iOS で mopub SDK を組み込んでバナー広告・全画面広告を表示する手順【Google AdMob】【Millennial Media】【iOS5 iOS6】【ARC 対応】

はじめに mopub SDK を組み込む機会があったのでエントリにまとめます。公式以外のドキュメントが少なくてだいぶ苦労しました。In English is here. mopub とは mopub とは広告を総合管理してくれるシステムです。一度 SDK を埋め込めば、管理画面から広告媒…

UINavigationController で画面遷移する 【Objective-C xib pushViewController】

はじめに 自分用メモです。 前提 つくりたてのプロジェクト。xibファイルを使うとします。 やりたいこと ViewController.h から NextViewController.h へ遷移させます。 手順 新規画面を追加する手順(XCode 4.6.1) AppDelegate.h の入っているディレクトリ…

date_select メソッドを呼ぶと can&#39;t convert Symbol into String とエラー

現象 date_select メソッドを呼ぶと can't convert Symbol into Stringというエラーが起きる。 解決策 ja.yml に order: からの4行を追加して解決しました。 ja: date: + order: + - :year + - :month + - :day 原因 config/application.rb において config.…

Pivotal Tracker で日本語二重入力されてしまう件が In Progress になりました

はじめに Pivotal Tracker でストーリ登録時に日本語を入力するときに、二重で入力されてしまう現象が起きていました。弊社チームメンバーに聞いたりつぶやいてみたら、他にも沢山の人が同じ現象で困っていることがわかりました。 今でしょ!! Pivotal Tracke…

SF Demo Night April に参加しました【イベント】【サンフランシスコ】

はじめに サンフランシスコにきてから半月くらい経って生活に慣れてきたので、現地のコミュニティに顔を出しはじめたのでした。 当日の様子 行くときに見かけたお店。気になる。 会場に着きました。303 の圧倒的存在感。 会場は Symantec さんです。 会場の…

NSMutableArray で Ruby の slice! をしたい【Objective-C】

結論 NSMutableArray *arr = [NSMutableArray arrayWithArray:@[@"a", @"b", @"c"]]; NSArray *sliced = [arr subarrayWithRange:NSMakeRange(0, 2)]; [arr removeObjectsInRange:NSMakeRange(0, 2)]; NSLog(@"%@", arr); //=> @[@"c"] NSLog(@"%@", sliced)…

CSS の margin 等の &quot;上右下左&quot; を分かりやすく覚えるには

div { margin: 1px 2px 3px 4px; } と指定した時に、それぞれの px がどの方向に適用されるかを調べて忘れてを毎回くり返していました。それに終止符をうつため、何か良い覚え方はないかと思い調べていたらありました。 "They all go clockwise, starting fr…

Amazon ELB を作成し Amazon EC2 への負荷を分散する設定

はじめに Amazon ELB を作成し Amazon EC2 への負荷を分散する設定をメモします。 ゴール Amazon ELB に Amazon EC2 のアプリインスタンスが 2つ紐づいた状態で負荷分散されていること。 前提 Amazon EC2 のアプリインスタンスは 1つできているとします(以…

Gitリポジトリ中のサブディレクトリを別リポジトリへ移行する

Git

はじめに モバイルの開発をしていて、クライアントとサーバを同じリポジトリにいれていました。ある時、クライアントとサーバとを別のリポジトリに分けたくなりました。その手順をメモします。 やりたいこと oldproject に client/ を残し、newproject には …

グローバル変数を定義して参照する【Objective-C】【宣言】

おことわり (2014年09月23日 追加) 現在、筆者は以下の記事にあるようなグローバル変数 (グローバルな連想配列) は影響範囲が広すぎるので使っていません。モデルは property で定義してクラス間で渡したり、global singleton にする等しています。定数やシ…

RVM で Ruby2.0 をインストール

今更ですが。RVM で Ruby2.0 をインストールしたのでメモしておきます。 $ rvm get latest $ rvm reload $ rvm install 2.0.0 RVM の更新が必要であることに気づくのに時間がかかったのでした・・。