あぼぼーぼ・ぼーぼぼ

のんびり生きたい

potatotips #32 (iOS/Android開発Tips共有会) に参加しました

8/23に、potatotipsに参加してきました potatotips.connpass.com

iOSブログまとめ枠で参加したので、iOSに関するTipsをまとめます。

ちなみにめっちゃオシャレな会場でとても素敵でした

iOS Tips

CocoaPods Carthage @JPMartha_jp

(資料が見つかりませんでした...)

  • CocoaPodsとCarthageのお話
  • SwiftPMが出てきて「どうなるのか...」って感じだけど、活発に活動してるし、Appleも協力する姿勢を示してるよ

メーリングリストでしっかり動向をウォッチしていて、すごいなーという印象。

すごい。

チーム開発にSwiftLintを導入してみた @ikamon

(資料が見つかりませんでした...)

  • 開発メンバーが増えたのでLint導入してみた
  • 最初素直にあててみたらめっちゃエラーとワーニングでた
  • ルールをカスタムしたりした
  • すぐ直せないものはTODOコメントやルール無効にしたりした
  • さらにjenkinsでCIして、可視化してみた

すぐ直せないものにTODOコメント入れておく、みたいなのってすっごく重要ですよね。こういうのがチームに定着していくさまを見るのが好きです。

あとそれだけでなくjenkinsでCIして可視化とかすごい。

プロジェクト内のURLをAssociated Valuesで管理してみる @marty_suzuki

speakerdeck.com

  • 文字列によるURLの管理は文字列ミスったりしてツライので、Associated Values使って幸せになろう

QitaのAPI clientを作ったそうです。型安全に使えるとのことなので試してみたいなー。

サクッと作っちゃうところがすごい。

github.com

あとこれスター数やばい。

github.com

Realm 中心設計 @susieyy

  • バイル向けデータベースであるRealmを中心に、RxSwiftとMVVM、あとReduxにインスパイアされて考えた設計
  • Realmは配列の差分index通知がすごくよさげ
  • Like問題なんかに対応できる

キタ!設計のお話。設計の話は飽きませんな。

設計を考えて発表できるってことがすごい。

OnBoarding @akatsuki174

  • ライブラリ漁りが趣味w
  • OnBoardingは、ユーザーの第一印象を決め、ユーザーに価値を伝えられる大切なもの
  • 離脱率も下げられるかも!

導入が簡単そうだなーという印象なので、使ってみたくなりました。

あとコダック可愛い

iOSアプリのライブラリ依存管理ツールとしてSwiftPMを使うのはまだしばらく先かなと思った話 @_mono

www.slideshare.net

  • Carthage/CocoaPodsにとってかわるかと思ったけどサンプルが動かなかったり...
  • 今はまだ早い感
  • 実際触ってみたよ

いずれにしろAppleが作っているというアドバンテージは大きいと思うので、時間の問題かなーと思います。

それよりもAppleのサンプルにプルリク送ってマージされたのがすごい。

WWDC2016で話されたDependency Injectionを活用してリファクタリング @yoichitgy

  • View ControllerはLEGOブロックなので自由に組み立てられるようにしよう、DIを使ってね
  • 全てのView ControllerがApp Delegateに依存することを避けよう
  • 古いプログラムとかで事情がある場合はprotocol使ってちょっとずつリファクタ

みんな大好きDIをSwiftで取り入れるお話。DI使うとテスト書きやすくなったりするんで有効に使いたいですね。

かなり英語に慣れてそうだったのがすごい。

おわりに

僕はまだ初心者ですが、とても勉強になりました。皆さんメーリングリストを用いて情報収集していることに衝撃を受けました..すごいぜ...マネしよう...

全体的にすごいしか言ってない気もしますがこれでまとめと致します。

美味しいお酒・食べ物と一緒に開催していただいた主催者の方や会場提供のWantedlyさん、その他関係者の方々に感謝デス!

ISUCON5でmy.cnfに遊ばれた

9月27日に、「Oishinbo」というチームでISUCON5に参加しました。

公式:ISUCON5まとめ

チームメンバーは以下のとおりです。

  • @ktaro_w
    • 全体
  • @sota1235
  • @suxisuxido(僕です)
    • データベース周り

事前準備/練習として、各々ISUCON4の問題で練習をし、その知見の共有をしました。

当日の流れ

10:00前に会社に集まって、貸切状態の会議室を使いました。

いざ始まると、@sota1235がせっせこインスタンスの準備とかしてくれて、その間に僕と@ktaro_wはレギュレーション読んだりしてました。

  • 10:30 クーポン利用するアカウント間違える事件が発生。詳しくは@sota1235がブログ書いてくれると思います←
  • 11:00 はじめてのベンチマーク、はたしか0点。インスタンスの設定ミスが原因でした。
  • 11:30 インスタンスの設定を直し再度ベンチーマーク、300点ぐらいだったかな?
  • 12:00 nginx、unicorn周りをごにょごにょしてベンチマーク6点を出す
  • 12:30 6点の原因を探す旅にでる。途中僕がアカウントのプロフィールを自分のものに変更したことが疑われる、悲しい。
  • 13:00 みんなでとんかつを食べに行き、幸せになる。
  • 13:30 unicorn起動時にproduction設定になっていなかったことが6点の原因だと判明、再度ベンチ走らせ一桁を脱出する
  • 14:00 ~ my.cnfと遊ぶに遊ばれる
  • 18:00 終了間近、最後のあがきでmysqlクライアントにて直接インデックスをはったりして結局最終スコアは1300点ぐらい

gitでmy.cnfを管理しようとして/etc/my.cnfシンボリックリンクはったり/etc/mysql/my.cnfシンボリックリンクはったり色々やったけど設定反映されず。

この辺は当日やってる最中、意味がわからずただただ目が疲れました。

感想

というわけで感想としては、チームメンバー2人が幅広い知識であの手この手でチューニングを試みるなか、データベース周りに集中させてもらったにもかかわらずmy.cnfの設定すら反映させられなかったのが申し訳なかったです。

あとはISUCON4で練習したといっても、その環境とちょっと違うだけでこんなに手も足も出なくなるんだと、知識が紐付いてないことを実感しました。

ただイベント自体はとても楽しかったです。6点出したときとか、6点から脱出したときとか、最後のあがきでちょっとずつスコアが上がったときとか、めちゃめちゃ盛り上がりました。

来年こそは...!! 絶対にmy.cnfを反映させるんだ!

MacOSXでMySQLクライアントのmycliをインストールする

mycliとは

公式:mycli

シンタックスハイライトとか補完がイケてるMySQLクライアントです

環境

install

公式githubに書いてあるとおりMacOSXなら下記コマンドで簡単にインストールできます

$ brew update
$ brew install mycli

※Homebrewがない人はこちら Homebrew

使い方

標準のMySQLクライアントと同じです

$ mysql -u root -p

などの代わりに

$ mycli -u root -p

MySQLに接続できます

Gyazo

補完がマジ素晴らしいです

余談(Access deniedの解決策)

ちなみに余談ですがrootで接続を試みる際、

Access denied for user ‘root’@’localhost’ (using password: NO)

が出てきて接続できなかったので、下記コマンドで初期設定をしてやりました。

$ mysql_secure_installation

初期設定の過程でいくつか聞かれますが、基本的に全てY(Yes)で答えてオッケーです。

※詳しい解説はこちら CentOS7にmysqlを導入し初期設定までやってみた

まとめ

  • インストール簡単
  • 補完いい
  • 色付くのいい
  • データベース触るの楽しくなる(かも)

Sublime Text 3上でC++を実行できる環境を構築する

環境

C++を実行できる環境を構築する

  1. MinGWの入手とインストール

  2. MinGWツールをインストール

    • MinGWのインストールが終わるとMinGW Installation Managerが開くので、進んでいく

    • 下記3つのツールをチェックして、左上のInstallation⇒Apply Changesでインストール

      • mingw-developer-toolkit
      • mingw32-base
      • mingw32-gcc-g++
    • ちなみにインストールはそこそこ長かった

  3. システム環境変数にC:\MinGW\bin;C:\MinGW\msys\1.0\binを追加

  4. .cppファイルを用意

  5. Sublime Text 3 標準装備のビルドシステム「C++ Single File」でビルド&ラン!!!

感想

Sublime Text が便利になったというよりもWindowsが便利になった感