あなたのサイトのモーダルはユーザを困らせている
モーダルの分類とユーザに与える影響。
Pluckのあるクエリでexplainをどうやって出力するか
idが1000より大きいユーザの地域一覧を取りたかった
User.distinct.where('id > 1000').pluck(:city)
というコードを書いて、「distinct意味ないじゃん」みたいなことを言われた
実はクエリの遅延評価によってpluckまでクエリに含まれるのだが、それを以下のコードを見せて証明しようとした
User.distinct.where('id > 1000').pluck(:city).explain
エラーが起きた。そりゃそうだ、pluckが返すのはArrayで、 Array#explain
はないのだから
これうまくやりたい。pluckしたあとでもexplainでクエリ見たい
解1
pluckはクエリを発行するが、explainに必要な情報は Activerecord#Relation
? 特殊変数に入れておく。で、explainで使う
解2
pluck_explain(:city)
というメソッドを生やす
解2はハックしてる感がないので1点。
心の科学と脳の科学の関係に関する考察
2012年に書いたレポートを発掘したので公表する。論文と呼ぶには体裁が整ってない上に、チェックもろくにしてないけどそのまま載っけることにする。
高校生のころ考えてたことをまとめて授業のレポートで提出したもの。
BigQueryで相関サブクエリがうまく動かなかった話
相関サブクエリ自体よくないやり方ではあるけれど、それを使ってみたらわかりにくい挙動をしていた
例えばこんな感じのクエリ
SELECT ( SELECT 1 FROM rdb.users WHERE users.total_pay < payments.pay ) FROM rdb.payments
payments.payに応じてusersを絞り込んでごねごねしたくて書くと、
invalidQuery: LEFT OUTER JOIN cannot be used without a condition that is an equality of fields from both sides of the join.
というエラーがでる
どうも、BigQueryでは効率をあげるために、サブクエリはJOINに変換されるらしく、相関サブクエリ内のWHEREが不等号だとエラー起きるっぽい
BigQuery Subqueries Efficient Join - Stack Overflow
バグじゃないかと思うけど、とりあえずの対処としては、相関サブクエリを書かないようにすること(CROSS JOINなどして条件絞り込みする)、そのためにサブクエリを書くときはWITHで分離できるときは分離してしまうこと、かな
RailsでDevise使った上でAPI作ろうとした話
Devise(GitHub - plataformatec/devise: Flexible authentication solution for Rails with Warden.)はユーザ登録・ログイン関係をよしなにやってくれるけど、フロントエンド用のAPI作ろうと思うと苦労する
ちょっと調べた感じだと色々書かないといけないっぽくて、それは嫌なので雑にハックした
macOS Sierra で brew updateできなかった話
brew update
しようとすると
Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
と言われた。秘密鍵は正しいのに。
問題はこれ
macOS Sierra のSSH接続で、秘密鍵へのパスを覚えてくれない問題 - Qiita
秘密鍵のパスワードを毎回求められるようになったけど、brew update
の際には途中でパスの入力を求めずにエラーを吐いてしまう
解決策はリンク先にあるように.ssh/config
に
Host * UseKeychain yes AddKeysToAgent yes
みたいなの書く