ぷっぽプログラミング備忘録

linux, javascript, php, C#, そのうちScalaとかアプリ開発とかやってみたいです。

javascript クリップボードコピーはawaitした方が確実

題名通りです。 await navigator.clipboard.writeText('コピーさせたいテキスト'); 参考 クリップボードにテキストをコピーさせる機能を作った時、Document is not focusedになったら確認したいこと #JavaScript - Qiita

Linuxで特定のユーザーとしてコマンドを実行する

fooユーザーとしてlsを実行する sudo -u foo ls

nuxt3 + vuetifyの簡単インストール

結論 nuxt3をインストールした後 yarn add -D vuetify-nuxt-module する。 yarn add @mdi/font をしてもいいとのこと。 あとは、nuxt.config.ts を編集するだけでOK。 export default defineNuxtConfig({ devtools: { enabled: true }, modules: [ 'vuetify-…

dockerで一部のサブディレクトリだけvolumesの範囲から除外したい

概要(結論) 空のnamed volumesで除外したいサブディレクトリを上書きすればよい version: "3.9" services: frontend: build: ./xserver ports: - 3000:3000 volumes: - ./xserver:/app - dummy-volumes:/app/node_modules # node_modules はホストPCと共用…

phpのPDOで、 postgresqlのjsonb演算子(?)を使いたい場合

概要 php(PDO) + postgresql の生SQLを実行時に Invalid parameter number: mixed named and positional parameters が発生。 原因、postgresqlのjsonbの演算子などではよく「?」を使うことがあるが、これと、phpのPDOのプリペアドステートメントの「?」(疑…

postgresql 中身が配列になっているjsonb型の検索

前提 [ { "foo": "foo内容1", "bar": "bar内容1", "kore": "kore1" }, { "foo": "foo内容2", "bar": "bar内容2" }, { "foo": "foo内容3", "bar": "bar内容3" } ] 上記のように、配列の中にさらにjsonが入っているタイプのデータがjsonbカラムに入っていた場…

postgresqlのテーブルのシーケンスを調べる方法

概要 SELECT pg_get_serial_sequence('foo_bar_table', 'hoge_column'); foo_bar_table: 調べたいテーブルの名前 hoge_column: 調べたいテーブルのカラム名 だいたいは、カラム名はidとかが多いんじゃないでしょうか。 参考 Postgresqlのserial型カラムのシ…

Google検索で特定ファイルタイプで絞り込んで検索したい

概要 契約書 filetype:pdf とgoogleで検索すればOK。ポイントは filetype:ほげほげ 参考 Bing(Copilot)に教えてもらいました。

dbeaverのsqlエディタの文字を拡大・縮小する

結論 Windowsの場合は 拡大 Ctrl + Shift + 「+」(プラス) を同時押下 縮小 Ctrl + 「-」(マイナス) を同時押下 参考 EdgeのBing Chatで「How do I increase the font size in the SQL editor of DBeaver?」 と聞いた結果

VSCode で mdファイルをpdfファイルに変換する

概要 そこそこ綺麗なドキュメントを、WordとかGoogleのwebサービス以外でさっと作成したい。 → mdファイルならただのテキストなので、さくっと作成してpdfに変換したらよさそう 手順 VSCodeの「Markdown PDF」拡張を入れる Markdown PDF - Visual Studio Mar…

WindowsでSelenium入れてブラウザ自動実行

手順 pythonを公式からインストール Python Releases for Windows | Python.org ※pipも一緒に入るはず(デフォルトのままインストールすれば) seleniumをpipでインストール pip install selenium chromeのドライバーをpipでインストール pip install chrome…

docker-composeの.envの変数をDockerFileで使いたい

結論 .env ファイルに HOGE=aiueo と記載した場合 docker-compose.ymlで version: "3" services: foo: build: context: . dockerfile: "Dockerfile" # Dockerfile に渡す変数 args: # .env の HOGE を FOOBAR として渡す - FOOBAR=${HOGE} 最後に、DockerFil…

vueを一部だけ使いたい

@vitejs/plugin-vue、@vitejs/plugin-vue-jsxをインストールする npm i xxxxxx vite.config.ts に以下を加える import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' (中略) plugins: [ vue(), vueJsx({ // options are pass…

VSCodeでjsonを一行に整形するショートカット

概要 Preferences > Open Keyboard Shortcuts で join lines で検索。 デフォルトはCtrl + J といった情報もありますが私は違いましたので、ショートカット割り当てました。 (私の場合、今までCtrl+Jに割り当たっていたショートカットは使っていなかったた…

postgresqlでFROM側に配列を使い、規則性のあるデータを生成する

概要 UNNESTとARRAYを組み合わせたものをテーブルとして扱う 例)01,02...という内容の配列を、testTblとして扱う SELECT 'test_data_' || testTbl::text as test_val FROM UNNEST(ARRAY['01', '02', '03', '04']) AS testTbl ; 結果 test_val -------------…

Laravel collectionのkeyBy()メソッドで、pluck()と似たようなことができる

概要 Laravelで、DBテーブルの取得結果を、特定のカラムをキーとして取得したい場合、調べるとpluck()がよくでてくる。 ただ、KeyBy()でもできる。 QueryBuilderなどではget()などでいったん取得してきておいて、後から加工するほうがいいケースもありそうな…

postgresqlでmysqlのgroup_concatと同じことがしたいならstring_aggを使う

前提 postgresql バージョン9以上ぐらい? 結論 string_agg を使う 例)barテーブルのtype_idでgroup byしたときに、foo_nameカラムをカンマでひとまとめの文字列にする SELECT bar.type_id, string_agg(bar.foo_name, ‘, ‘) as foo_name_list FROM bar GROU…

vite + phaser + htmlのdomを使う

前提 viteでコンパイルしている phaser3で何か作っている phaesr3でhtmlのdomを使いたい 流れ start-dom-jsx をインストール (dom-jsx単体をインストールして設定をすればできるようですが、簡単そうなので、start-dom-jsxのほうを私は使うことにしました。…

Laravelのクエリービルダー(query builder)でLATERALを使う場合

例 DB::table('foo as f') ->leftJoin( DB::raw(" LATERAL ( SELECT MIN(goods.amount) as min_amount FROM goods WHERE foo.goods_id = goods_id ) as temp_min_amount "), DB::raw('1'), '=', DB::raw('1') ) ->select('f.*', 'temp_min_amount.min_amount…

heroku + Laravel で外部サーバー上にあるデータベースに接続する

結論 herokuはデプロイが独特ですが、中身は普通のサーバーなので、 Laravelのconfigのdatabase部分に、データベースの設定をすれば動きました。 ただし、ご存知のように、herokuのLaravelの設定は.envに書いても意味ありませんので…。 heroku config:set DB…

postgresql jsonbの一部を更新する

方法 jsonb_setを使います。 例 fooテーブルのidが55 のデータに対し、 jsonb型カラムjsn_clmnの中身が {"a":{ "b": "bar"} だったものを {"a":{ "b": "nyaa"} に変える UPDATE foo SET jsn_clmn = jsonb_set(jsn_clmn, '{a,b}', '"nyaa"') WHERE id = 55 ; …

herokuのconfigをまとめて設定する

Laravelの環境設定は.envで行います。 herokuには.envはpushできません。(.gitignoreで指定されているため) 方法は、 heroku config:set APP_DEBUG=false といった感じで、config:setで、.envに記載されたLaravelの環境変数を登録していく必要があります。…

dbeaverでsqlファイルを実行する

方法 対象のデータベースを右クリック 「ツール」を選択 → 「スクリプトを実行」を選択 ダイアログで実行したいsqlファイルを選択 「開始」を押下 参考 How to execute a SQL script in DBeaver? - Stack Overflow

macで同一アプリでウィンドウを切り替えるショートカットの設定

mac

macのデフォルト設定 command + F1 実際には command + fn + F1 ですね。押すの大変。 というわけで、好きなのに変えます。 [システム設定] --> [キーボード]--> [キーボードショートカット]-->[キーボード]-->「次のウィンドウを操作対象にする」 で好きな…

viteのbuildで静的ファイルをコピーする

結論 pluginをインストールする vite-plugin-static-copy - npm npm install -D vite-plugin-static-copy vite.config.ts に追記 上記pluginのサイトの説明のままですが。 export default defineConfig({ .... なんやかんや... build: { assetsInlineLimit: …

ESLint/Prettierに疲れ果てたのでrome を使う

typescript素人がtypescriptはじめてみてすぐ直面したのが、ESlint/Prettierの設定の面倒臭さです。 面倒くさいので調べたらromeというちょいマイナーな代替手段があるとのことなので、これ試しました。 インストール npm install --save-dev --save-exact r…

Postgresqlのデータベースコピー

■Postgresqlのデータベースコピー 例) source_dbをcopy_dbにコピーしたい場合 CREATE DATABASE copy_db TEMPLATE source_db;

postgresqlで不要なセッションを削除する

なるべく安全に削除したい SELECT * FROM pg_stat_activity where pid <> pg_backend_pid(); 上記で自分以外( pid <> pg_backend_pid() )の一覧を取得 backend_typeが「 client backend 」のもので、怪しいものを見つける。 該当のものを削除 SELECT pg_te…

WindowsのPATHをWSL側に反映したくない

概要 npmインストールして喜んでバージョン確認したら npm -v windows側のnpm呼ばれて「/bin/sh そんなの知らない」と言われた。 bad interpreter: No such file or directory /usr/bin/npm -v したらきちんとバージョン表示された 原因 Windows側のpathがWS…

gitのコマンドの範囲指定(pathspecを使う)

git

結論 pathspecを使えばいろいろと範囲を指定できる。 特に知らなかったのがMagic signaturesというもの。 例1 foo/bar以下のファイルだけgit add したい git add foo/bar 例2 jsだけ除外して、それ以外をgit diffしたい Magic signaturesの除外(exclude → s…