Ruby SequelでFROMなしにSelectする

環境 Sequel 5.53.0 例 DB.dataset.select { Sequel.as(1, :num) } 参考 sequel/doc/sql.rdoc at master · jeremyevans/sequel · GitHub

PrimeVueのDialogのルート要素にscopedなクラスを適用する

Dialogをラップする要素を追加し、append-to="self"を指定する。 環境 Vue 3.2 PrimeVue 3.18 サンプルコード <template> <div class="dialog"> <Dialog v-model:visible="true" append-to="self" > <template #header> Header </template> <template #footer> <Button label="OK" class="button" /> <Button label="Cancel" class="button" /> </button></button></template></dialog></div></template>

Vuelidateで条件付きでValidationする

例えば、チェックボックスがONなら、10文字以内を検証OKとする。(OFFなら検証不要) 環境 Vuelidate 2.0.0 対応 orバリデータを使用する。エラーメッセージにパラメータが必要な場合、withParams()でパラメータを指定することができる。 const validators =…

MultiIndexなDataFrameの第一インデックス毎に累積和を求める

例えば、日時+αのMultiIndexなDataFrameで、日時毎の累積和を求める。 環境 pandas 1.5.2 例 import io import pandas as pd csv = """date,AM/PM,no 2022-01-01,AM,1 2022-01-01,PM,2 2022-01-02,AM,3 2022-01-02,PM,4 2022-02-01,AM,11 2022-02-01,PM,12 "…

SymPyで不等式を解く

solve_univariate_inequality()を使うのが良さそう。 環境 SymPy 1.11 例 import sympy as sp x = sp.Symbol('x', nonnegative=True) expr = x ** 2 + 4 * x + 4 threshold = 9 sp.solve_univariate_inequality(expr >= threshold, x, relational=False, con…

Ruby SequelのDatasetオブジェクトをextendする

環境 Ruby 3.1 Sequel 5.53.0 方法 Sequel::Dataset#with_extendを使用する。 参考 Sequel::Dataset

Apache + mkcertでクライアント(証明書)認証を試行する

環境 Apache 2.4.6 mkcert 1.4.3 macOS 12.3.1 手順 mkcert(CA)をインストールする $ brew install mkcert $ mkcert -install $ ls "`mkcert -CAROOT`" rootCA-key.pem rootCA.pem クライアント認証を要求するように設定する CA証明書をWebサーバーに配置す…

sshdを公開鍵認証できるようにする

例 ssh-keygen -t ed25519 ssh-copy-id -i ~/.ssh/id_ed25519.pub user@host

nmcliメモ

環境 CentOS7 例 IPアドレスを設定する sudo nmcli c mod en ipv4.method manual ipv4.address "192.168.0.100/24" デフォルトゲートウェイを設定する sudo nmcli c mod en ipv4.method manual ipv4.gateway "192.168.0.254" DNSを設定する sudo nmcli c mod…

Rails + Vite Ruby環境構築用テンプレート

Rails+Vite Rubyの環境をサクッと構築する。 環境 Rails 7.0.0 Vite Ruby 3.0.5 周辺環境 OS: macOS DB: MySQL Unit Test: RSpec テンプレート GitHub - commis1059/vite_rails_template 手順 $ curl -L -O https://github.com/commis1059/vite_rails_templa…

Vue3.2のsetup script記法にて、テンプレート参照(Template Refs)で子コンポーネントのメソッドを呼び出したい

Vue3.2から導入されたsetup script記法はとても便利ですが、テンプレート参照(Template Refs)経由で子コンポーネントのメソッドを呼び出す方法が分からなかったので、調べました。 環境 Vue 3.2 方法 子コンポーネント側で、公開するメソッドをdefineExpos…

RubyでCSVをクォートして出力したい。

以下のように、各要素をダブルクォートで括ったCSVを出力したい。 "NAME","AVG","HR","RBI" "YAMADA",". 272","34","101" "MURAKAMI",".278","39","112" 方法 :force_quotesオプションを使用する。 CSV.open(output_path, "w", force_quotes: true) {|csv| c…

ESLintに'defineProps' is not defined.(no-undef)と言われる

環境 ESLint 8.0.1 Vue 3.2.20 対策 ESLintの設定ファイルに、グローバル変数として定義する。 $ cat .eslintrc { "globals": { "defineProps": "readonly", "defineEmits": "readonly", "defineExpose": "readonly", "withDefaults": "readonly" } } 参考 U…

Rubymineのターミナルにバックスラッシュを入力できなくなった

2021.2で追加された設定が原因のよう。 環境 Rubymine 2021.2 macOS 11.5.2 対策 Preferences > Tools > TerminalのUse Option as Meta keyをOFFにする。 参考 https://intellij-support.jetbrains.com/hc/en-us/community/posts/360010239340-Unable-to-ent…

Ruby Sequelでテーブル名にエイリアスを割り当てる

SELECT * FROM usersを、 SELECT * FROM users AS t1のようにしたい。 環境 Sequel: 5.x 方法 Dataset#fromとSequel#asを使う。 例 DB[:users].from(Sequel.as(:users, :t1)) => SELECT * FROM users AS t1;

Ruby Sequelでカラム名にテーブル名を修飾させる

SELECT * FROM t1 INNER JOIN t2 ...を、 SELECT t1.*, t2.* FROM t1 INNER JOIN t2 ...のようにしたい。 環境 Sequel: 5.x 方法 Dataset#qualifyを使う。 例 DB[:table].qualify.sql => SELECT table.* FROM table;

Vite Rubyを使ってVueアプリケーションを動かしてみた

高速と噂のBetaがとれたViteで、BackendがRuby(Rack)なVueアプリケーションを開発できたら、最高かもしれない。 ということで調べてみると、Vite Rubyなるものがあったので動かしてみました。 参考 Getting Started | Vite Ruby 手順 事前準備 Node.jsのバー…

Splunkで結果がない場合、デフォルト値を含む行を挿入する

appendpipeで、結果がない場合に行を追加し、evalでデフォルト値を設定する。 環境 Splunk: 8.1 例 index="_internal" source="foo" | head 1 | appendpipe [stats count | where count=0 ] | eval host = if(isnull(host), "default value", host) 参考 Sol…

macOS11にnwdiagをインストールしたら、ノードがばらばらに出力されてしまった

上手く言えているかあやしいですが、以下のnetwork.diagを変換した場合、以下のようになるはずです。 nwdiag { network dmz { address = "210.x.x.x/24" // set multiple addresses (using comma) web01 [address = "210.x.x.1, 210.x.x.20"]; web02 [addres…

macOSをアップデートしたらVPN接続時にインターネット接続できなくなった

備忘録。 環境 macOS 10.15 Catalina -> 11 Big Sur 現象 macOSアップデート後、VPNに接続するとインターネット上の各サイトが見えなくなった。 アップデート前は見えていたはず。 対策 システム環境設定 > ネットワークにて、当該VPN設定を選択し、詳細を開…

Splunkのサーチでアプリ名を取得する

どのアプリでサーチを実行しているかを取得することができます。 環境 Splunk 8.0 方法 | rest /services/search/jobs splunk_server=local | addinfo | where sid = info_sid | rename eai:acl.app as appname | fields appname 参考 Solved: How to includ…

Splunkでルックアップ定義内の文字列をevalに返す

サブサーチ内で、ダブルクォートで括るところがポイントのようです。 環境 Splunk 8.0 方法 | makeresults 1 | eval foo = [ | inputlookup geo_attr_countries | where country="Aruba" | eval bar = "\""+country+"\"" | return $bar ] 参考 Solved: How t…

Splunkにてtimeフィールドでjoinする

結合元と結合先のtimeフィールドの型が異なっている(整数、小数)とjoinできない模様。 round関数で型を揃えると良い。 環境 Splunk 8.0.6 例 index="sample" | eval time = round(_time, 0) | join type=inner time [ | tstats max(_time) as latest where…

Splunkがモニターしているファイルの一覧を確認する

inputs.confのデバッグに使える。 環境 Splunk 8.0.6 コマンド $ /opt/splunk/bin/splunk list inputstatus

graphql-rubyでtotalCountをクエリできるようにする

こんなQueryを投げれるようになりたい。 { users(first: 5) { totalCount edges { cursor node { id } } } } 環境 graphql-ruby: 1.11.3 rails: 6.0.3.2 Ruby: 2.6.6 方法 GraphQL::Types::Relay::BaseConnectionの継承クラスを作成し、total_countを追加す…

Rubymineにブロック記法の自動変換をやめていただく

Rubymineにて、{} (brace)で記述したブロックを改行すると、do..endに変換されてしまう。 これをやめさせたい。 環境 Rubymine 2020.1.3 方法 PreferencesのEditor > Code Style > RubyのCode GenerationタブのConvert {} blocks to do..end by EnterをOFFに…

RSpec Mocksのwithをanythingで適用する

例えば、第一引数は何でもいいけど、第二引数で戻り値を振り分けたい場合などに使えます。 環境 RSpec: 3.8.0 例 cellの第二引数によって戻り値を変えたい場合。 before { allow(object).to receive(:cell).with(anything, 0).and_return("name") allow(obje…

Vuetifyのv-file-inputでファイルアップロード

Vuetifyのv-file-inputを使用して、ファイルをアップロードするサンプルです。 v-file-inputにデータバインディングし、紐付いた値(ファイル)をFormDataに追加して、アップロードします。 環境 Vuetify 2.2.3 サンプル <template> <form> <v-file-input v-model="file"> <template v-slot:append-outer> <v-btn height="32" :disabled="!file" @click="upload" >Upload</v-btn> </template> </v-file-input></form></template>

Chart.jsのdayjs用アダプターを書いてみた

Chart.jsの時間軸グラフに使用するアダプターを、他の日時ライブラリ用のアダプターを参考に、dayjsバージョンを書いてみた。 環境 Chart.js: 2.9.3 dayjs: 1.8.22 アダプター Chart.js date adapter using dayjs (Local Time Version) · GitHub Chart.js da…

YAMLのblock記法でインデント(行頭スペース)をキープする

ブロックのインデント数を明示的に指定すると、指定文字数を超える行頭スペースをYAMLの出力文字列にできる。 インデント数を明示しない場合、行頭のスペースは、YAMLのblockのインデントとみなされてしまうようだ。 Ansibleのblockinfileモジュールを使用す…