2015年2月26日木曜日

Realm Tech Talk with JP Simard #2に参加

お疲れ様です。ZuQ9->Nnです。
2015/02/23(月)Realm Tech Talk with JP Simard #2が開催されたので参加しました

場所は恵比寿、広尾の株式会社Fablicさん、フリマアプリFrilを作成されています。
参加人数55名の講演会形式の勉強会。

実は、iOS開発に携わっていながら、このRealmが何かまったく
前提知識無しの状況で参加しました。まったくもってお恥ずかしい話。。

下記はイベント募集ページからの引用です。。
Realmにつて。SQLiteやCore Dataの代替テクノロジーとなるべく開発されている、
非常に高速でメモリ効率が良く、使いやすいAPIを備えた
iOS/Android両方で使用可能なモバイルデータベースだそうです。

会場ではピザと飲み物が用意されて、リラックスしながら話を聞くスタイルでした。

Realmの作者JPさんが英語で、先ほどの引用のような
Realmの特徴、なぜ、作ったかなどの説明がありました。

Realmは、なんといっても速い、それだけではなくオブジェクト指向で
プログラムを記述できて扱いやすいのが最大の特徴のようです。

SQLite直接と比べるとどうしてもおそくなるようですが
FMDBのようなObjective-cでのラッパーと比べるとかなり速く処理するそうです。

公演のあと質問タイムではかなり多くの質問がありました。
特に気になったのは、ディスクに直接書き込むから速いのはなぜか?
という質問でメモリからのディスクに書き込む処理を省くことで
速度を実現しているとの答えでした。

質問タイムのあと、少し休憩があり休憩のあと
Chatwork宮下さんがAndroidでRealmを導入した時のお話をLTでされていました。

なんでもAndroidでデータ永続化の選択肢が増えたのは大変嬉しかったそうです。
しかし、バージョンアップがかなり早く、それなりについていく覚悟が必要だそうです。

普段はWebと連携するアプリの作成がメインであまり端末にデータを保存しないのですが
他の技術者さんの話を聞くとパフォーマンスの改善も含めて
端末、ローカルにデータ保存するケースも多いそうです。

公演は常に英語でしたが@kitasukeの非常にわかりやすい通訳で
ストレスを全く感じず、時間が短く感じるくらいでした。
いや、ほんと、かっこいいし憧れますね。。
今後もRealm系のイベントは機会を作って参加予定です。

2015年2月23日月曜日

第五回 よこはまクラウド勉強会 「そろそろGitを触ってみたいと思っている方に向けて」に参加

お疲れ様です。ZuQ9->Nnです。
2015/02/21(土)
第五回 よこはまクラウド勉強会 「そろそろGitを触ってみたいと思っている方に向けて」
が開催されたので参加しました。
場所は、横浜の株式会社アットウェアさん。
参加人数15名ほどの講義とハンズオン形式を合わせた勉強会

まずは、Gitについての基本知識として
そもそもGitとは、分散バージョン管理とはの説明

集中型のバージョン管理と分散バージョン管理の違いについて
分散管理型のメリット、ソーシャルのGitHubなどなどが説明されました。

プロジェクトでGitを活用した事例を説明。
ここでアジャイルのスクラム開発、スプリントについて
自分のプロジェクトでGitを使い始めてから慣れるまでのプロセスを紹介。

痛い話として
  • Gitはなんでもできるのでリポジトリを簡単に壊せる。
  • 誤った履歴を操作
  • このツール大丈夫?
失敗して覚えるということもある。
大人数開発で目がいかないと危険
バックアップ重要だそうです。

最後にプロジェクトで使った時の感想として。
  • 短いスプリントでのブランチ開発は快適
  • 大規模プロジェクトでは、workflow機能を使うべき
  • pull request形式でmerge
  • 最初はトラブルが起きることを想定しておく
  • svnより結果としてgitを使ってよかった
とまとめられました。

その後少し休憩がりました、休憩時はこんな感じの
お菓子もくばられリラックス

休憩のあと、Gitのハンズオン開始、
ハンズオンは、ドットイントールを使用しました。

サーバーに環境を用意していただいて、
基本サーバーでLinuxのコマンドを叩きながら

まずは、git --version、which gitなどで
インストールするの確認

作業エリア、ステージング、リポジトリの説明
git config -global user.name、git config -global user.emailで
ユーザー名、emailの設定これは必須しかし実在している必要ないとのこと。

git initで初期化、vimでindex.htmlってファイルを作成
ファイルにline 1を入力し保存、git addでステージングに
git commitでリポジトリに保存。git logでlogの確認

index.htmlを編集、保存しgit statusで内容確認
git checkoutで変更の取り消し、git diffで差分確認

git add .でディレクトリにあるファイルを一気にステージングに乗せたり
ファイルを削除する場合はgit rmを使う
.gitignoreファイルで無視するファイルを指定する

git branch hogeでhogeブランチ作成、git checkout hogeでhogeブランチに移動
masterブランチのindex.htmlとhogeブランチのindex.htmlの一行目を書き換え
git add、git commit、git mergeでmergeして、コンフリクトをわざと起こす
手動でコンフリクトを解消し、commit、hogeブランチをgit branch -d hogeで削除

最後は、かなり疲れてきて、ついていくのがやっとでした。
gitそのもじゃなくて、まるでアジャイル系の勉強会のような
開発プロセスなどにも言及されていて、参考になりました。

話を聞いていて、自分の現場の遅れっぷりに不安を感じたり、
他人の現場を羨ましく思うだけなんですよね。。
かといって、具体的な改善の行動はいつも何もしないけど。。