備忘録

備忘録

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

UbuntuにPostgreSQLをインストールする方法

Ⅰ. はじめに

タイトルの通り「UbuntuにPostgreSQLをインストールする方法」です

Ⅱ. 環境

  • Ubuntu 20.04

Ⅲ. 手順

1. pgdg.list を作成する
sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
2. 公開鍵を登録する
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
3. アップデートする
apt-get update
4. インストールする
sudo apt-get -y install postgresql-15
5. 自動起動設定
systemctl enable postgresql
6. 外部アクセスを許可する
$ vim /etc/postgresql/15/main/postgresql.conf
listen_addresses='0.0.0.0'

$ vim /etc/postgresql/15/main/pg_hba.conf
host all all 0.0.0.0/0 scram-sha-256

$ sudo -u postgres psql
ALTER ROLE postgres PASSWORD 'my_password';
7. パスを通す(initdb等を利用できるようにする)
vim ~/.bashrc
PATH="$PATH":/usr/lib/postgresql/15/bin/