2015年2月27日金曜日

mixi iOS Training第4回に参加してきました

またmixi のiOS Trainingに参加してきました。
http://app-training.connpass.com/event/12019/

まず前座でCocoaPodsの紹介がありました。
http://cocoapods.org/
rubyのgemみたいなものだそうです。
プロジェクトを開くときには.xcode.xcodeprojじゃなくて.xcode.xcworkspaceを使う。

今回はUITabControllerとUIViewでした。
またメモったことをつらつらと載せます。

https://github.com/mixi-inc/iOSTraining/wiki/2.2-UITabController

・UITabControllerをてっとり早く試すなら新規でプロジェクト作って実行してみるとよい。

・タブを増やす
ViewControllerを追加してTab Bar Controllerからsegueをはる。
view controllersを選択。

・根っこのcontrollerをtabbarcontrolllerにすることが多い

・ViewControllerをstoryboardで作らないでコードで作るのは
ViewControllerの数が多くなってstoryboardがごちゃごちゃしてきたようなときとか。


https://github.com/mixi-inc/iOSTraining/wiki/3.1-UIView

・ViewControllerは枠組みであって、目に見えているものはすべてUIView

・ViewCOntrollerは作成時にUIViewを一個もっている
viewというやつ。これを消すとビルドできない
viewの内容は画面サイズに合った真っ白い四角

・UIButton
ボタンの表示内容はsetTitleでセットするのがデフォルト

・UIImageの画像の追加
Images.xcassets開いて、そこに画像をドラッグアンドドロップ
画像の種類
2x retina
3x iphone 6 plus
1x それ以外

・Textview
editableをYESにすると編集可能

・コードでViewを追加するのは出したり消したりってのを細かく制御したいときとか

・マルチサイズのデバイスに対応するにはautoLayoutで設定するので座標位置指定したりとかはあんまりやらない

・Viewのグルーピング(labelとbuttonとimageを一括で操作)をするとき
Viewを一個作ってそれのsubviewに追加するような感じ


そろそろお寿司が出るようです。

2015年2月17日火曜日

PowerDNSでDNSラウンドロビンしてみた

社内の環境的にPowerDNSを使っているのですが、
MySQLのslaveをDNSラウンドロビンで接続先を引けるようにしたかったので調べました。

PowerDNSのバージョンは3.3.1。

まずはCNAMEで登録してみました。
CNAMEでは最初に登録したレコードしか引けませんでした。
mysql> select * from records where id in(231,232);
+-----+-----------+-------------------------+-------+------------------------------+------+------+-------------+-------+
| id  | domain_id | name                    | type  | content                      | ttl  | prio | change_date | binip |
+-----+-----------+-------------------------+-------+------------------------------+------+------+-------------+-------+
| 231 |         1 | xxx-db-s.xxx.com        | CNAME | xxx-db1.xxx.com              | 3600 |   10 |        NULL |  NULL |
| 232 |         1 | xxx-db-s.xxx.com        | CNAME | xxx-db2.xxx.com              | 3600 |   10 |        NULL |  NULL |
+-----+-----------+-------------------------+-------+------------------------------+------+------+-------------+-------+
2 row in set (0.00 sec)


# nslookup xxx-db-s.xxx.com
Server:  10.26.20.103
Address: 10.26.20.103#53
 
xxx-db-s.xxx.com canonical name = xxx-db1.xxx.com.
Name: xxx-db1.xxx.com
Address: 10.26.20.209


次にAレコードで登録してみました。
Aレコードだと登録した2つのレコードが引けるようになりました。
mysql> select * from records where id in(231,232);
+-----+-----------+-------------------------+------+--------------+------+------+-------------+-------+
| id  | domain_id | name                    | type | content      | ttl  | prio | change_date | binip |
+-----+-----------+-------------------------+------+--------------+------+------+-------------+-------+
| 231 |         1 | xxx-db-s.xxx.com        | A    | 10.26.20.209 | 3600 |   10 |        NULL |  NULL |
| 232 |         1 | xxx-db-s.xxx.com        | A    | 10.26.20.210 | 3600 |   10 |        NULL |  NULL |
+-----+-----------+-------------------------+------+--------------+------+------+-------------+-------+
2 rows in set (0.00 sec)
 
 
# nslookup xxx-db-s.xxx.com
Server:  10.26.20.103
Address: 10.26.20.103#53
 
Name: xxx-db-s.xxx.com
Address: 10.26.20.209
Name: xxx-db-s.xxx.com
Address: 10.26.20.210


参考URL
https://twitter.com/satoh_fumiyasu/status/325039314205560832
http://mailman.powerdns.com/pipermail/pdns-announce/2003-December/000008.html

2015年2月13日金曜日

mixi iOS Training第3回に参加してきました

またmixiの勉強会に参加してきました。
http://app-training.connpass.com/event/11598/

今回もまずアプリエンジニアの方の話があり、先週のandroid trainingに続いての
drivemodeの@KeithYokomaさんの話でした。
iOSの勉強会でandroidメインの方だったので、少し微妙そうでした。。

また講義の中でメモったことをつらつらと書いていきます。

1.5 UIViewController3 ライフサイクル

・UIViewControllerの生成方法
生成方法はいくつかあるが、どの初期化メソッドで呼ばれてもいいように、
共通化した処理を作っておくのがよい。

・didReceiveMemoryWarningメソッドについて
動画開いたりとか他のアプリでメモリが圧迫されたりとかしたときによばれる。
ここで画像のメモリキャッシュをクリアしたりとかする。
しないでほっとくとOS側にプロセスがkillされる。
ちなみにiOS Simulatorのメニューの
Hardware - Simulate Memory Warning
から発生させることが可能。

2.1-UINavigationController

・ツールバーとタブバーは似てるけど別物ですよ。

・UIBarButtonItemのstyleはplainを指定するか、ゴリゴリに実装するかが多い

・@selector
メソッド名を関数にしてくれるような何かと思ってて。



会も3回目になったので、だんだんとあ〜こういう動きするアプリあるなぁみたいなことを思ったりしてます。
このまま続けていったら楽しい気がしてます。
あと、最近mixiの勉強会参加してきたのブログばっかりなので、次は違うこと書きたいと思います。