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

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

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…

gitのパッチ(patch)の作成と適用

git

結論(基本形) パッチファイル作成 git diff > hogehoge.patch パッチファイル適用 git apply hogehoge.patch 少し応用(特定のコミットからの差分をパッチファイルとおする) 状況としては、既にある程度メインのブランチからは差分がでてしまっている開発…