Home Software その他 setup-ruby setup-rubyにおける.ruby-versionを用いたバージョン指定 @wakairo 2024/09/27 12:25 最終更新 2024/09/27 12:26 GitHub Actionsの設定ファイルでsetup-rubyを使う時に、 以下のようにruby-versionのところで.ruby-versionと指定すると、 GitHubレポジトリからチェックアウトされたプロジェクトの中にある .ruby-versionという名前のファイルで指定されているrubyのバージョンが GitHub Actionsのsetup-rubyで使われます。 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: .ruby-version bundler-cache: true jobsが複数あって、同じバージョンで複数回setup-rubyをしているときなどには、バージョン記述の重複がなくなって有用だと思います。 (参考) この指定方法は、railsの新規アプリのGitHub Actionsの設定で利用されています。
Home Software その他 PostgreSQL PostgreSQLイメージとPodmanを利用した使い捨てのコンテナ環境 @wakairo 2024/09/20 21:42 最終更新 2024/09/20 21:56 PostgreSQLに関した練習やテスト、実験などを行うときにPostgreSQLが動いている一時的な環境が欲しくなるときがあります。 PostgreSQLイメージとPodmanを利用すると、特定バージョンのPostgreSQLに関する一通りの操作ができる一時的なコンテナ環境を用意することが出来ます。 以下にコンテナ環境の作成、利用、削除の流れと方法を示します。 コンテナ環境の作成 以下の3つのコマンドを実行することで、PostgreSQLのコンテナ環境を作成し、クライアント側のコンテナのbash環境に入ることが出来ます。 なお、コマンド内の「16」のところはPostgreSQLのメジャーバージョンに相当しますので、ご利用になりたいバージョンの数に変更してください。 また、-v "$PWD":/x -w /xのオプションにより、ホストOSのカレントディレクトリにコンテナ内からもアクセス出来る状態でbashが立ち上がります。 したがって、実験などに利用したいファイルをカレントディレクトリに置いてから以下のコマンドを実行すればコンテナ内でもそのファイルを利用できますし、 コンテナ内で/xのディレクトリに作成したファイルはコンテナ環境を終了した後もホストOSのカレントディレクトリに残ります。 podman pod create --name tmp_pg podman run --name tmp_pg-server --pod tmp_pg -e POSTGRES_PASSWORD=postgres -d postgres:16 podman run -it --rm -v "$PWD":/x -w /x --name tmp_pg-bash --pod tmp_pg postgres:16 bash 以下のようなプロンプトが表示されていれば成功です。クライアント側のコンテナのbash環境に入れました。 root@tmp_pg:/x# クライアント側のコンテナのbash環境の利用 このbash環境では、psqlなどのPostgreSQLのコマンドを一通り利用することが出来ます。以下に例を示します。 PostgreSQLのターミナルを開く例: psql -h localhost -U postgres -d postgres バックアップファイルを作成する例: pg_dump -Fc -h localhost -U postgres -d postgres -f backup.dump バックアップファイルをリストアする例: pg_restore --clean -h localhost -U postgres -d postgres backup.dump クライアントのコンテナを終了しそのbash環境から退出する場合はexitコマンドで抜けられます。 また、退出後にもう一度クライアントを使いたくなった場合は、後述のコンテナ環境全体の削除をまだしていなければ、 以下の3つめのコマンドだけ実行すれば、クライアントのコンテナをもう一度作成しそのbash環境に入ることが出来ます。 podman run -it --rm -v "$PWD":/x -w /x --name tmp_pg-bash --pod tmp_pg postgres:16 bash コンテナ環境全体の削除 以下のコマンドで、コンテナ環境全体の停止と削除が実行できます。 podman pod stop tmp_pg && podman pod rm tmp_pg
Home Software その他 Podman tオプションを付けてPodmanからリダイレクトでバイナリ出力を取り出すと壊れる @wakairo 2024/09/19 13:48 最終更新 2024/09/20 11:51 概要 Podmanで、-itオプション、厳密には-tオプションを付けっぱなしで、以下のようにリダイレクトを使うと、出力されたファイルの内容が壊れることがあります。-tオプションの意味を考えれば、出力をリダイレクトに回すときに指定する必要があるオプションではないのですが、コマンドを改変して流用するときなどに付けっぱなしにするとバイナリが壊れますのでご注意ください。 podman run -it --rm -v "$PWD":/x -w /x ruby:latest ruby print_bin.rb > podman.bin この問題は、以下のようにtオプションを外すことで回避できます。もちろんiオプションを残さず合わせて外してもOKです。 podman run -i --rm -v "$PWD":/x -w /x ruby:latest ruby print_bin.rb > no_t.bin また、この問題を回避方法として、以下のように、bash -cを使う方法もあります。 podman run -it --rm -v "$PWD":/x -w /x ruby:latest bash -c 'ruby print_bin.rb > bash.bin' ちなみにこの問題は、Dockerでも起きるようです。 詳細 例として、0x00から0xffまでの256バイトのバイナリを標準出力に出力する以下のRubyスクリプトを利用します。 print_bin.rb print (0..255).to_a.pack('C*') Podmanを使わずに、ローカルでこのスクリプトを実行して確認すると、以下のように正しく出力されているのが分かります。 $ ruby print_bin.rb > local.bin $ hexdump -C local.bin 00000000 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f |................| 00000010 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f |................| 00000020 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f | !"#$%&'()*+,-./| 00000030 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f |0123456789:;<=>?| 00000040 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f |@ABCDEFGHIJKLMNO| 00000050 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f |PQRSTUVWXYZ[\]^_| 00000060 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f |`abcdefghijklmno| 00000070 70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e 7f |pqrstuvwxyz{|}~.| 00000080 80 81 82 83 84 85 86 87 88 89 8a 8b 8c 8d 8e 8f |................| 00000090 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e 9f |................| 000000a0 a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad ae af |................| 000000b0 b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf |................| 000000c0 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 ca cb cc cd ce cf |................| 000000d0 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 da db dc dd de df |................| 000000e0 e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 ea eb ec ed ee ef |................| 000000f0 f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe ff |................| 00000100 では、Podmanで動かした出力をリダイレクトさせてみたものを確認するとどうなっているかといいますと、 0x09の後に0x0dが増えてしまっており、ファイルの中身が壊れていることがわかります。 $ podman run -it --rm -v "$PWD":/x -w /x ruby:latest ruby print_bin.rb > podman.bin $ hexdump -C podman.bin 00000000 00 01 02 03 04 05 06 07 08 09 0d 0a 0b 0c 0d 0e |................| 00000010 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e |................| 00000020 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e |. !"#$%&'()*+,-.| 00000030 2f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e |/0123456789:;<=>| 00000040 3f 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e |?@ABCDEFGHIJKLMN| 00000050 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e |OPQRSTUVWXYZ[\]^| 00000060 5f 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e |_`abcdefghijklmn| 00000070 6f 70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e |opqrstuvwxyz{|}~| 00000080 7f 80 81 82 83 84 85 86 87 88 89 8a 8b 8c 8d 8e |................| 00000090 8f 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e |................| 000000a0 9f a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad ae |................| 000000b0 af b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd be |................| 000000c0 bf c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 ca cb cc cd ce |................| 000000d0 cf d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 da db dc dd de |................| 000000e0 df e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 ea eb ec ed ee |................| 000000f0 ef f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe |................| 00000100 ff |.| 00000101 この問題を回避するために、今度は以下のように-tオプションを外します。 無事に正しく出力できていることが分かります。 $ podman run -i --rm -v "$PWD":/x -w /x ruby:latest ruby print_bin.rb > no_t.bin wakairo@DESKTOP-633O7R3:~/tmp$ hexdump -C no_t.bin 00000000 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f |................| 00000010 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f |................| 00000020 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f | !"#$%&'()*+,-./| 00000030 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f |0123456789:;<=>?| 00000040 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f |@ABCDEFGHIJKLMNO| 00000050 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f |PQRSTUVWXYZ[\]^_| 00000060 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f |`abcdefghijklmno| 00000070 70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e 7f |pqrstuvwxyz{|}~.| 00000080 80 81 82 83 84 85 86 87 88 89 8a 8b 8c 8d 8e 8f |................| 00000090 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e 9f |................| 000000a0 a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad ae af |................| 000000b0 b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf |................| 000000c0 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 ca cb cc cd ce cf |................| 000000d0 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 da db dc dd de df |................| 000000e0 e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 ea eb ec ed ee ef |................| 000000f0 f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe ff |................| 00000100 この問題を回避するために、今度は以下のようにbash -cを使ってみます。 こちらでも無事に正しく出力できていることが分かります。 $ podman run -it --rm -v "$PWD":/x -w /x ruby:latest bash -c 'ruby print_bin.rb > bash.bin' $ hexdump -C bash.bin 00000000 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f |................| 00000010 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f |................| 00000020 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f | !"#$%&'()*+,-./| 00000030 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f |0123456789:;<=>?| 00000040 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f |@ABCDEFGHIJKLMNO| 00000050 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f |PQRSTUVWXYZ[\]^_| 00000060 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f |`abcdefghijklmno| 00000070 70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e 7f |pqrstuvwxyz{|}~.| 00000080 80 81 82 83 84 85 86 87 88 89 8a 8b 8c 8d 8e 8f |................| 00000090 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e 9f |................| 000000a0 a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad ae af |................| 000000b0 b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf |................| 000000c0 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 ca cb cc cd ce cf |................| 000000d0 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 da db dc dd de df |................| 000000e0 e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 ea eb ec ed ee ef |................| 000000f0 f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe ff |................| 00000100
Home Software その他 Microsoft Copilot Studio Copilot Studioのニュースや記事 こぱいろっとスキー @copilot 2024/05/02 16:12 最終更新 2024/05/02 16:12 Copilot Studioに関するよくある質問 日本マイクロソフトの社員さんによる記事。ただし、「会社の公式見解ではない点をご承知おきください」とのこと。
Home Software その他 Microsoft Copilot Studio Copilot Studioのニュースや記事 @wakairo 2024/01/16 10:40 最終更新 2024/01/16 10:43 Microsoft Copilot StudioでデータソースをSharePointにしたCopilotの作成方法 Microsoft Copilot Studioで生成型回答をするCopilotの作成方法の続きとなる記事。
Home Software その他 Emacs Emacsで日本語とEmojiをとりあえず表示する方法 @wakairo 2023/12/21 16:45 最終更新 2024/08/13 19:49 まずは、OSに利用したいフォントをインストールします。 例えば、Ubuntuでは以下のコマンドで、Notoの日本語フォント(等幅フォントを含む)とEmojiのフォントをインストールできます。 sudo apt-get install fonts-noto-cjk sudo apt-get install fonts-noto-color-emoji 次に、.emacsに以下の設定を追記します。Emacsを再起動するなどして、この設定を反映させれば、とりあえず日本語とEmojiは表示されるようになります。 (create-fontset-from-ascii-font "Noto Sans Mono CJK JP" nil "Monospace") (set-fontset-font "fontset-Monospace" 'unicode "Noto Color Emoji" nil 'append) (add-to-list 'default-frame-alist '(font . "fontset-Monospace")) ちなみにフォントサイズは、以下のようにハイフン(-)の後ろの数字で指定できます。 (create-fontset-from-ascii-font "Noto Sans Mono CJK JP-12" nil "Monospace")
Home Software その他 Microsoft Copilot Studio Copilot Studioのニュースや記事 @wakairo 2023/12/18 16:36 【Copilot Studio】社内TeamsにCopilotを導入する手順目次 Web版Copilot Studioでボットを作成した場合 ボットをチーム内に共有する チームのアプリストアに反映させて共有する 権限の管理 Teamsアプリ内でボットを作成する場合 作成から導入の流れ まとめ:どちらの方法が良いのか?
Home Software その他 Microsoft Copilot Studio Copilot Studioのニュースや記事 こぱいろっとスキー @copilot 2023/12/14 19:50 最終更新 2023/12/14 19:52 Microsoft Copilot Studioで生成型回答をするCopilotの作成方法 以下の目次からも分かるとおり、手順を1つずつ丁寧に追っていて、分かりやすそうな記事です。 Micsofot Copilot Studioとは Micsofot Copilot Studioの利用方法 事前設定 Copilotの作成 Copilotのテスト Copilotの公開 まとめ
Home Software その他 Microsoft Copilot Studio Copilot Studioのニュースや記事 @wakairo 2023/12/12 12:02 Microsoft Copilot Studio を触ってみました!
Home Software その他 Microsoft Copilot Studio Copilot Studioのニュースや記事 @wakairo 2023/12/04 19:48 Microsoft Copilot Studio の生成 AI 機能が日本語環境でも使えるようになったので触ってみた
setup-rubyにおける.ruby-versionを用いたバージョン指定
GitHub Actionsの設定ファイルでsetup-rubyを使う時に、 以下のように
ruby-version
のところで.ruby-version
と指定すると、 GitHubレポジトリからチェックアウトされたプロジェクトの中にある .ruby-versionという名前のファイルで指定されているrubyのバージョンが GitHub Actionsのsetup-rubyで使われます。jobsが複数あって、同じバージョンで複数回setup-rubyをしているときなどには、バージョン記述の重複がなくなって有用だと思います。
(参考)
この指定方法は、railsの新規アプリのGitHub Actionsの設定で利用されています。
PostgreSQLイメージとPodmanを利用した使い捨てのコンテナ環境
PostgreSQLに関した練習やテスト、実験などを行うときにPostgreSQLが動いている一時的な環境が欲しくなるときがあります。 PostgreSQLイメージとPodmanを利用すると、特定バージョンのPostgreSQLに関する一通りの操作ができる一時的なコンテナ環境を用意することが出来ます。
以下にコンテナ環境の作成、利用、削除の流れと方法を示します。
コンテナ環境の作成
以下の3つのコマンドを実行することで、PostgreSQLのコンテナ環境を作成し、クライアント側のコンテナのbash環境に入ることが出来ます。
なお、コマンド内の「16」のところはPostgreSQLのメジャーバージョンに相当しますので、ご利用になりたいバージョンの数に変更してください。 また、
-v "$PWD":/x -w /x
のオプションにより、ホストOSのカレントディレクトリにコンテナ内からもアクセス出来る状態でbashが立ち上がります。 したがって、実験などに利用したいファイルをカレントディレクトリに置いてから以下のコマンドを実行すればコンテナ内でもそのファイルを利用できますし、 コンテナ内で/x
のディレクトリに作成したファイルはコンテナ環境を終了した後もホストOSのカレントディレクトリに残ります。以下のようなプロンプトが表示されていれば成功です。クライアント側のコンテナのbash環境に入れました。
クライアント側のコンテナのbash環境の利用
このbash環境では、
psql
などのPostgreSQLのコマンドを一通り利用することが出来ます。以下に例を示します。PostgreSQLのターミナルを開く例:
バックアップファイルを作成する例:
バックアップファイルをリストアする例:
クライアントのコンテナを終了しそのbash環境から退出する場合は
exit
コマンドで抜けられます。 また、退出後にもう一度クライアントを使いたくなった場合は、後述のコンテナ環境全体の削除をまだしていなければ、 以下の3つめのコマンドだけ実行すれば、クライアントのコンテナをもう一度作成しそのbash環境に入ることが出来ます。コンテナ環境全体の削除
以下のコマンドで、コンテナ環境全体の停止と削除が実行できます。
tオプションを付けてPodmanからリダイレクトでバイナリ出力を取り出すと壊れる
概要
Podmanで、
-it
オプション、厳密には-t
オプションを付けっぱなしで、以下のようにリダイレクトを使うと、出力されたファイルの内容が壊れることがあります。-t
オプションの意味を考えれば、出力をリダイレクトに回すときに指定する必要があるオプションではないのですが、コマンドを改変して流用するときなどに付けっぱなしにするとバイナリが壊れますのでご注意ください。この問題は、以下のようにtオプションを外すことで回避できます。もちろんiオプションを残さず合わせて外してもOKです。
また、この問題を回避方法として、以下のように、
bash -c
を使う方法もあります。ちなみにこの問題は、Dockerでも起きるようです。
詳細
例として、0x00から0xffまでの256バイトのバイナリを標準出力に出力する以下のRubyスクリプトを利用します。
print_bin.rb
Podmanを使わずに、ローカルでこのスクリプトを実行して確認すると、以下のように正しく出力されているのが分かります。
では、Podmanで動かした出力をリダイレクトさせてみたものを確認するとどうなっているかといいますと、 0x09の後に0x0dが増えてしまっており、ファイルの中身が壊れていることがわかります。
この問題を回避するために、今度は以下のように
-t
オプションを外します。 無事に正しく出力できていることが分かります。この問題を回避するために、今度は以下のように
bash -c
を使ってみます。 こちらでも無事に正しく出力できていることが分かります。Copilot Studioのニュースや記事
Copilot Studioに関するよくある質問
日本マイクロソフトの社員さんによる記事。ただし、「会社の公式見解ではない点をご承知おきください」とのこと。
Copilot Studioのニュースや記事
Microsoft Copilot StudioでデータソースをSharePointにしたCopilotの作成方法
Microsoft Copilot Studioで生成型回答をするCopilotの作成方法の続きとなる記事。
Emacsで日本語とEmojiをとりあえず表示する方法
まずは、OSに利用したいフォントをインストールします。
例えば、Ubuntuでは以下のコマンドで、Notoの日本語フォント(等幅フォントを含む)とEmojiのフォントをインストールできます。
次に、.emacsに以下の設定を追記します。Emacsを再起動するなどして、この設定を反映させれば、とりあえず日本語とEmojiは表示されるようになります。
ちなみにフォントサイズは、以下のようにハイフン(-)の後ろの数字で指定できます。
Copilot Studioのニュースや記事
【Copilot Studio】社内TeamsにCopilotを導入する手順
目次
Copilot Studioのニュースや記事
Microsoft Copilot Studioで生成型回答をするCopilotの作成方法
以下の目次からも分かるとおり、手順を1つずつ丁寧に追っていて、分かりやすそうな記事です。
Copilot Studioのニュースや記事
Copilot Studioのニュースや記事