アプリなどを開発するブログ

React Native / Swift / Ruby on Railsなどの学習メモ。


DynamoDB初めて触る前に読むべき記事

DynamoDB触ってます。
NoSQLと聞いてたのでMongoっぽいの想像してたんですがそういうわけでもないんですね。
意外とできない事が多いという印象。
その代わりスケールも管理も全部AWSに任せられるというのはいいですけどね。

以下、読んでよかったと思う記事まとめです。

qiita.com

blog.brains-tech.co.jp

qiita.com

dev.classmethod.jp

dev.classmethod.jp

www.uplift.agency

今日は史上稀に見る体調の良さなのでその条件をメモ

いつも朝起きるとだいたい気だるくて、ギリギリまでだらだらしてしまうが、
今日は何だかやる気にみなぎっています。
体の奥から生きるエネルギーが無限に湧いてくる感じ!

毎日こんなんだったら生きるの楽だなー!!
という事で、生きるの楽にするために、これをできるだけ毎日再現したく、発生条件をメモしておきます。

1. 夜、クラブで踊った

久々に友人に誘われてクラブに行ってきました。
40代中心のイベントだったので、死ぬほど騒ぐわけでもなく、上がる品のいい曲がずっとかかってる感じで、
2時間ほど踊ってました。
普段通勤の徒歩30分を除けば全く運動していない私にはよかったと思います。

2. 夜、湯船につかった

踊った汗を流してゆっくりするために湯船に。
上がったあとに水シャワー。
これで血行がよくなったのでは。

3. 朝、瞑想をした

瞑想すると心がさっぱりして調子がよくなることは経験上わかっているのですが、
なかなか忘れがちになってしまいます。
これを久々にやったのがよかったんでしょう。

4. 朝、ポケモンGOのために散歩をした

朝散歩をして体を動かしておくと、体も目覚めていい感じです。
朝はおっくうではありますが、ポケモンのためなら歩けます!

5. 朝、水シャワーを浴びた

お湯が出るのを待つのが面倒だったしうっすら汗もかいて暑かったので、
思い切って水のシャワーを浴びました。
結構冷たいので「しゃあああっ!!」って気合入れながらじゃないと無理。
それが生存本能を呼び覚ます感じでよかったのでは

体調いいとマジで気持ちいい!
これを維持するために頑張ります!!

Deviseでサインイン後に新しいsession idを取得する

deviseのcontrollerでログイン処理を書く時、

sign_in(user)

しても、sessionのidは更新されません。
actionの処理を抜けると初めて更新されます。

調べてるとこれが出てきました。
stackoverflow.com

で、この記事が参照してるのがこちら。
stackoverflow.com

2つの記事をまとめるとこんな感じ

class SessionsController < Devise::SessionsController
  def create
    self.resource = warden.authenticate!
    sign_in(resource_name, resource)
    commit_session_now!
    render json: { session_id: session.id }
  end

  private

  def commit_session_now!
    return unless request.session_options[:renew]

    session_data = session.to_hash.delete_if { |_k, v| v.nil? }
    session_store.send(:set_session, env, session_id, session_data, request.session_options)

    request.session_options[:renew] = false
    request.session_options[:id] = session_id
  end

  def session_store
    @session_store ||= request.session_options.instance_variable_get('@by')
  end

  def env
    @env ||= request.session_options.instance_variable_get('@env')
  end

  def session_id
    @session_id ||= session_store.send(:destroy_session, env, session.id || session_store.generate_sid, request.session_options)
  end
end

採用すべきでないやり方ですが、こんなのもありました。
319ring.net

おまけ

Railsガイドのセキュリティ対策に関するページ。
読み応えありますね。 Railsのセキュリティ | Rails日本語ドキュメント | Ruby STUDIO

【OpenCV バグ】i2 >= 0 && i2 < static_cast<int>(keypoints2.size()) in function drawMatches

動画からリアルタイムでBruteForceMatcherでオブジェクトを検出しようとしていて、
cv::drawMatchesで以下のエラーが出て困り果てていました。

i2 >= 0 && i2 < static_cast<int>(keypoints2.size()) in function drawMatches

バグとのことでした。 answers.opencv.org

検出対象画像とカメラ画像の順番を入れ替えるとうまくいくとのこと。
私の環境でも無事動きました。

XCode 7.3で黒背景の時でもカーソルを見やすく

7.3からbetter-xcode-ibeam-cursorが使えなくなってしまいました。

カーソルファイルの位置が変わったのが原因のようです。
以下のパスにあるファイルを、以下のファイルAssets.car に差し替えればOKです!

/Applications/Xcode.app/Contents/SharedFrameworks/DVTKit.framework/Versions/A/Resources/Assets.car

https://github.com/egold/better-xcode-ibeam-cursor/files/185722/Assets.car.zip

参考

iOSで局所特徴量AKAZEを使うまとめ

AKAZEを使って局所特徴量抽出、記述、マッチングをやってみます。
そのための勉強記事まとめ。

qiita.com

dronebiz.net

astertune.com

iOSでのAKAZE最適化

GitHub - pablofdezalc/akaze: Accelerated-KAZE Features

AKAZEで取得したのをfindHomographyでゆがみ取得する

qiita.com

[おまけ]ORBだとこちらが参考になる

pukulab.blog.fc2.com

OpenCV3.0のtraincascadeコマンドでLBP指定できない問題

分類器を作ろうとして./opencv_traincascadeコマンドに -featureType LBP を渡すと、永遠にプロセスが進まない問題。

こちらに解決策が。 github.com

openCVインストール時に、コードを並列実行するためのtbbも一緒にインストールしないといけなかったみたい。
一度OpenCVをアンインストールして、以下で再度インストール。

brew install opencv3 --with-tbb

これでOK。

LBPは学習速度がHAARに比べて非常に早く、ありがたいです。