2022-06-01から1ヶ月間の記事一覧
ちょっと腹痛
Ruby Enumerable#map { |item| ... } -> [object] 配列等のオブジェクトに対し、mapメソッドを呼ぶ。Arrayが返るが、Enumerable#lazyを使って下記のように書けば、遅延評価することもできる。 val = (1..99999999).lazy.map { |i| i.to_s } => #<Enumerator::Lazy: ...> val.to_a # </enumerator::lazy:>…
要旨 # 10以上の数(=最低で10)が欲しい場合 [1] pry(main)> [3, 10].max => 10 [2] pry(main)> [15, 10].max => 15 関連 blog.dogwood008.com
要旨 # 10を超えない数(=最高で10)が欲しい場合 [1] pry(main)> [3, 10].min => 3 [2] pry(main)> [15, 10].min => 10
要旨 (0..10).to_a.map(&:to_s) => ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] 詳細 「Proc展開」 "Proc coercion" 等の名前で呼ばれていることがあるが、特定の呼び名は決まっていないようだ。 参考 docs.ruby-lang.org
要旨 [1] pry(main)> p 'test' "test" => "test" 詳細 手っ取り早く表示させるのに便利。 参考 docs.ruby-lang.org
要旨 console.log('log') console.warn('warn') console.error('error') それぞれの見た目 詳細 主要なブラウザは、全て対応している。 console.log() では埋もれてしまうくらい沢山の出力がある際、特定の出力を目立たせる時に便利。 参考 developer.mozill…
要旨 背景 用語 詳細 要旨 AWS Load Balancer Controller で指定するACMのARNが誤っていると、構成によっては502が返る。 これは、ALBのホスト名に対し直接httpsで繋ぎに行くと、ブラウザのアドレスバーからたどれる証明書を見ることで確認できる。 背景 Rou…
左目が開かないので、今日も休みます。。。
昨日は熱があったけど、今日は下がった!明日からは普段通り!
コロナではなさそう。
要旨 ^ と $ の場合 [1] pry(main)> regex = /^https:\/\/.+$/ => /^https:\/\/.+$/ [2] pry(main)> 'javascript:exploitcode() /* https://safesite.example.com */'.scan(regex) => ["https://safesite.example.com"] rubular.com \A と \z の場合 [3] pry…
要旨 とりあえずここに書いてあることを真似しておけばOK。 詳細 詳細はまた別の日に記載するとして、ひとまずコードだけを置いておく。個人的には非常に便利に使用しているので、きちんと使用方法やTipsを話をまとめ直したい。 import sys from logging imp…
要旨 # カレントユーザに所属する最新のコンテンツについて、 # 公開済みならそのタイトルを、未公開なら「(下書き)」を返す latest_title = current_user.contents.last.then { |content| content.published? ? c.title : '(下書き)' } 詳細 Object#yie…
要旨 import pandas as pd df = pd.DataFrame(some_list).astype(int) 詳細 DataFrame.astype(type) で、好みの型に変換できる。 ただし、 timezone-naive な型(タイムゾーンが付加されていない)を timezone-aware な型(タイムゾーンが付加されている)へ…
要旨 find_each を使おう。 batch_size を指定すれば、一度に取得するレコード数を制限できる。 Model.find_each(batch_size: 100) do |model| ~~~ end 詳細 #all は、一度に全てのレコードを取得するので、まずデータベースに負荷がかかってしまう。さらに…
概要 # Python variable = 'Trueの時の値' if condition else 'Falseの時の値' 詳細 RubyやJavaScriptだとこんな感じ。 # Ruby or JavaScript variable = condition ? 'Trueの時の値' : 'Falseの時の値' ちなみに、三項演算子は英語で Ternary operator とい…
背景 asyncDataもfetchも、どちらも非同期にデータを外部サーバへ取りに行く処理を定義するための関数である。どちらも似たような処理ができるものの、2つ用意されているという事はそれぞれに異なる用途がある事を示す。 ここではCSR (Client-Side Rendering…
要旨 $ export SOOME_VALUE=abcde $ echo ${SOME_VALUE?} sh: SOME_VALUE: parameter null or not set SOME_VALUE を定義したつもりで、できていないときに気付くことができる。 詳細 変数名の後ろに ? を付けると、その変数が定義されていないときにエラー…
概要 {} === {} // => false 詳細 JavaScriptでの比較は、落とし穴が多い。詳しくは参考に挙げたページを見てもらえるとわかるが、 +0 === -0 が false になったりと良く知っていないとハマりがちである。 ではどうやって object 同士を比較すれば良いか、と…
要旨 user_id = params[:user_id].tap { |uid| p User.find(uid).name } contents = Content.made_by(user_id) ... 詳細 Object#tap は self 自身を返す。なので、ちょっと中身を覗いたりするのに便利。上記の例で言えば、 uid に self すなわち params[:use…
要旨 method('some_method').call(arg1, arg2) 詳細 methodに String, Symbol を渡すと、 Method オブジェクトが返る。これに対して Method#call を呼ぶと、そのメソッドを実際に呼ぶ事ができる。 呼びたいメソッドに引数を渡したい場合、 call(arg1, arg2, …
概要 変数に対してメソッドチェインの途中で String#capitalize 等の String クラスのメソッドが挟まる場合、変数の初期段階で Object#to_s を読んでおくと不用意に Nil#some_method が出てしまうことを回避できる。 詳細 Object#to_s は、 Object が nil の…
要旨 「3の倍数と3のつく数字」だけを String に変換した Array<String> を得る方法: (1..100).filter_map { |i| i.to_s if i % 3 == 0 || i.to_s.include?('3') }.to_a # => ["3", "6", "9", "12", "13", "15", "18", # "21", "23", "24", "27", "30", "31", "32",</string>…
概要 %w[a b c d e].include?('c') == 'c'.in?(%w[a b c d e]) 詳細 Array#include? Ruby 標準のメソッド。一方、 Object#in? は Active Supportを require すると使えるようになるメソッド。 ただし、 Active Support全体を require する必要はなく、下記の…
www.ruby-lang.org ブラウザでRubyが動く時代が来る…のか?
要旨 less +F も tail -f も、基本的な動作は同じ。 その動作は、監視対象のファイルに追加書き込みがあった場合、その内容を随時標準出力(ほとんどの場合画面上)に出力し続けるというもの。 ただし、 less +F は通常の less と変わらない動作モードへ変更…
要旨 下記のように -p オプションを付けると、その深さまで必要に応じてディレクトリを掘ってくれる。 mkdir -p /path/to/the/directory/you/want なお、既に存在する場合も終了コードが0となり、正常終了扱いになる。 詳細 これ以上書くことはあまりない。R…
Google Tag Manager (GTM) は、Google Analytics のトラッキングコードを配信する目的で、良く使用される事が多い。しかし、その他の使い方として、任意のHTMLを配信することもできる。もちろん、<script></script>で囲めばJavaScript (JS)を配信することもできる。 やり方は…
要旨 ブロックを使うのがおすすめ。 詳細 Hash#fetch は、Hashに指定したKeyが存在する際に、そのValueを返すメソッドである。 このメソッドは、指定したKeyが存在しなかった際、デフォルト値を返すことができる。その際、デフォルト値の与え方は下記の2通り…