備忘録

備忘録

AWSのECS内のbashに接続する方法

Ⅰ. はじめに

タイトルの通り「AWSのECS内のbashに接続する方法」です

Ⅱ. 手順

1. AWS IAM で以下2つを用意する
  • AWS Access Key ID
  • AWS Secret Access Key
3. AWS CLIをインストールする
5. SessionManagerPlugin をインストールする
6. AWS CLIの初期設定をする
aws configure
7. クラスタ名を取得する
aws ecs list-clusters
8. サービス名を取得する
aws ecs list-services ^
  --cluster arn:aws:ecs:ap-northeast-...
9. タスク名を取得する
aws ecs list-tasks ^
  --cluster arn:aws:ecs:ap-northeast-... ^
  --service arn:aws:ecs:ap-northeast-...
10. コンテナに接続する
aws ecs execute-command --cluster arn:aws:ecs:ap-northeast-... ^
  --task arn:aws:ecs:ap-northeast-... ^
  --interactive ^
  --command "/bin/bash"

実行結果

省略

C#でlibvipsを利用して画像を変換する方法

Ⅰ. はじめに

タイトルの通り「C#でlibvipsを利用して画像を変換する方法」です。

Ⅱ. 手順

1. 必要なパッケージをインストールする

dotnet add package NetVips --version 2.4.1
dotnet add package NetVips.Native.win-x64 --version 8.15.2

2. サンプルプログラムを書く
Program.cs

using NetVips;

using var image = Image.NewFromFile("c:\\image.png");

image
  .Crop(0, 0, 100, 100)
  .Pngsave("c:\\out.png");

image.png

実行結果

out.png

FAQ

Q. libvipsを利用するメリットは何ですか?

A. libvipsは高速に動作します
ベンチマーク

Plopを利用して任意ファイルを自動生成する方法

Ⅰ. はじめに

タイトルの通り「Plopを利用して任意ファイルを自動生成する方法」です。

Ⅱ. 手順

1. plopをインストールする
npm install --save-dev plop
2. ファイルを編集する

package.json

  "scripts": {
+   "plop": "plop"
  }
2. ファイルを作成する

plopfile.mjs

// export している function の 第一引数の型 は NodePlopAPI
// import { NodePlopAPI } from 'plop'

export default function (plop) {
  plop.setGenerator('test001', {
    description: 'テスト用',
    prompts: [
      {
        type: "input", // input, number, password, list, rawlist, expand, confirm, editor, checkbox, ... etc
        name: "name",
        message: "名前を入力して下さい",
      }
    ],
    actions: [
      {
        type: "add", // add, modify, directory, ... etc
        path: "src/{{name}}.ts",
        templateFile: "plop/templates/say_hello.ts.hbs",
      },
      "ファイルを作成しました!"
    ],
  })
}

plop/templates/say_hello.ts.hbs

console.log('Hello {{pascalCase name}}')

実行結果

$ npm run plop
? 名前を入力して下さい tanaka
✔  ++ \src\tanaka.ts                                                                                                                                                                 
ℹ ファイルを作成しました!

$ cat src/tanaka.ts
console.log('Hello Tanaka')

FAQ

Q. Visual Studio Code で *.hbs ファイルのシンタックスハイライトを有効にする方法は?

A. 以下をインストールする
https://marketplace.visualstudio.com/items?itemName=ItsMeAdarsh.vsc-handlebars-ext

Vitestを利用してテストする方法

Ⅰ. はじめに

タイトルの通り「Vitestを利用してテストする方法」です

Ⅱ. 手順

1. vitestをインストールする
npm install -D vitest
2. ファイルを作成すする

src/sum.ts

export function sum(a: number, b: number): number {
  return a + b
}

src/sum.test.ts

import { expect, test } from 'vitest'
import { sum } from './sum'

test('adds 1 + 2 to equal 3', () => {
  expect(sum(1, 2)).toBe(3)
})
3. package.json を編集する
 {
   "scripts": {
+   "test": "vitest"
   }
 }

実行結果

 ✓ src/sum.test.ts (1)
   ✓ adds 1 + 2 to equal 3

 Test Files  1 passed (1)
      Tests  1 passed (1)
   Start at  17:27:17
   Duration  13ms

その他

Visual Studio Codeで *.test.ts を階層別けして表示させる方法

.vscode/settings.json

{
  "explorer.fileNesting.enabled": true,
  "explorer.fileNesting.patterns": {
    "*.ts": "${capture}.*.ts"
  },
}


UIを利用する方法

npx vitest --ui

各OSでファイルを検索する最善の方法

Ⅰ. はじめに

タイトルの通り「各OSでファイルを検索する最善の方法」です

Ⅱ. 方法

Windows

Linux

  • mlocate を利用する
$ apt install mlocate
$ locate initdb
/etc/alternatives/initdb.1.gz
/usr/lib/postgresql/15/bin/initdb
/usr/share/locale/de/LC_MESSAGES/initdb-15.mo
...(以下省略)

# DB更新
updatedb