DynamoDB初めて触る前に読むべき記事
DynamoDB触ってます。
NoSQLと聞いてたのでMongoっぽいの想像してたんですがそういうわけでもないんですね。
意外とできない事が多いという印象。
その代わりスケールも管理も全部AWSに任せられるというのはいいですけどね。
以下、読んでよかったと思う記事まとめです。
今日は史上稀に見る体調の良さなのでその条件をメモ
いつも朝起きるとだいたい気だるくて、ギリギリまでだらだらしてしまうが、
今日は何だかやる気にみなぎっています。
体の奥から生きるエネルギーが無限に湧いてくる感じ!
毎日こんなんだったら生きるの楽だなー!!
という事で、生きるの楽にするために、これをできるだけ毎日再現したく、発生条件をメモしておきます。
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を使って局所特徴量抽出、記述、マッチングをやってみます。
そのための勉強記事まとめ。
iOSでのAKAZE最適化
GitHub - pablofdezalc/akaze: Accelerated-KAZE Features
AKAZEで取得したのをfindHomographyでゆがみ取得する
[おまけ]ORBだとこちらが参考になる
OpenCV3.0のtraincascadeコマンドでLBP指定できない問題
分類器を作ろうとして./opencv_traincascadeコマンドに -featureType LBP を渡すと、永遠にプロセスが進まない問題。
こちらに解決策が。 github.com
openCVインストール時に、コードを並列実行するためのtbbも一緒にインストールしないといけなかったみたい。
一度OpenCVをアンインストールして、以下で再度インストール。
brew install opencv3 --with-tbb
これでOK。
LBPは学習速度がHAARに比べて非常に早く、ありがたいです。