memori

Alternative facts

Kintone にダミーデータを入れたくなったのでちょっとしたツールを書いた

できるだけ接点を持ちたくない気持ちがあった Kintone に、ちょっとしたアプリを作ることになり、色々試す中で適当にレコード数を増やしたくなったのですが、自分でぽちぽちするのは辛いなあと思ったので、それを楽にするツールを作りました。

www.npmjs.com

まずは認証情報を雑に設定して(ここちゃんと書き直したいな〜)

export KINTONE_BASE_URL="https://YOURKINTONEURL.cybozu.com"
export KINTONE_USERNAME="YOUR KINTONE USERNAME"
export KINTONE_PASSWORD="YOUR KINTONE PASSWORD"

そして適当なアプリを対象に、今のフィールドリストを作ります。

kintone-faker generate-base-fields --appId 1 --output nippo.js

こんなファイルができます。

// Generated by kintone-faker.
const { faker } = require("@faker-js/faker/locale/ja");

const fields = {
  "文字列__複数行__0": {
    label: "所感、学び",
    value: () => faker.lorem.lines(),
  },
  "文字列__複数行_": {
    label: "業務内容",
    value: () => faker.lorem.lines(),
  },
};

exports.fields = fields;

faker-js のサンプルが自動的に入るので、場合によってはちょっと編集するなりして入れたいデータを設定してやって、

# 10 件入れる
kintone-faker add-records --appId 1 --rows 10 nippo.js

こんな感じで実行すると、ダミーデータを作れます。

とりあえず自分が使いたいデータにしか対応してないので、まだ公開するようなレベルじゃないけど、、、
とはいえこれから積極的にアップデートする気もそんなにないのでもしよければどうぞ、、、w

Deno Deploy 使ってみた

個人的に小さな Deno ブームが来ていて、Deno Deploy 使ってみたいのと Fresh を使ってみたかったのでプロフィールが古くなってた riaf.jp を書き換えてみた。

github.com

書き換えるたびに内容がなくなっていき、ついには RSS 取ってきて表示するだけになってしまった。

suin さんに紹介されちゃった FizzBuzz エンドポイントちゃんと実装しました

それにしても Deno Deploy は反映がクソ早くて楽しい。
なんか色々使いたくなっちゃうなー。

VS Code の Remote Containers だけで開発したい

開発環境をリモートホストのコンテナに閉じ込めて、それをどこからでも使えるようにしようと実験しているのですが、 既存のプロジェクトを動かすのは割とやりやすいものの、まっさらな環境を作るのってどうしたらいいかなと思いまして。

手元の環境に手を入れず手っ取り早くやるには GitHubリポジトリ作るのが楽そう、という結論。

github.com

今回は試しに React で簡単なアプリを作ってみようかなと。 まずは node の環境がありそうな microsoft/vscode-remote-try-node を開いて Use this template から新しいリポジトリを作りまして

GitHub - microsoft/vscode-remote-try-node: Node.js sample project for trying out the VS Code Remote - Containers extension

そうしたら VS Code 開いて Remote-Containers: Clone Repository in Container Volume から新しいリポジトリの URL を入れて

いらない server.js とかは消しつつ、コードをちょろっと書きつつ

あ、そうそう。ホスティングは firebase hosting でいいかなと思ったので VS Code のターミナルから firebase-tools をインストールしてドキュメント通りにセットアップして

初めて VS CodeGUI で Git 操作したけどいまいちよくわからんね。お試しなので、ちゃんと使う時はきっとターミナルから git コマンドを使いそう。 firebase のセットアップで GitHub Actions を使ったデプロイの設定までしてくれちゃったので、push したらデプロイされました。

icons.riaf.dev

これ、何なん?

とりあえず、目的は達成できたので満足。

ngx_small_light を使って画像を最適化する

Cloudinary で f_auto とかすると、クライアントに応じてイメージのフォーマットを最適化してくれるんですね。具体的には、webp が使えるクライアントに対しては webp で配信してくれるんです。

それくらいなら、ngx_small_light ですぐ出来そうだなって思ってやってみたらすぐ出来た。便利だなあ...。

# 簡単に書くとこういう感じ
# (Nginx での変数連結とかまでここにはるとマジで行数がひどいことになるので)

map $http_accept $small_light_params {
    default   "dw=...";
    "~*webp"  "dw=...,of=webp";
}

server {
  listen 80;

  # ...

  location / {
    # 例えばこういう感じで
    add_header Vary Accept;
    proxy_pass http://127.0.0.1:8080/small_light($small_light_params)/image_path$uri;
  }
}

RSS とか Atom とかちゃんと使ってくれない

RSS とか Atom とかを正しく使って吐いてくれるニュースサイト少ないし、提携システム作ってても謎の仕様を要求してくるサービスが多い。 各ポータルがフィードを再発明しているのは何故だろう。標準的なライブラリ、どの言語にもありそうなもんだけど。

っていうかいつまで XML (とかそれに似たもの) でやるんだ問題はあって、Amazon Alexa の Flash Briefing Skills は JSON フィードも読んでくれて良い。 ただその標準がないとまたオレオレ JSON Feed が蔓延するので、結局幸せになれない。

例えばそういうのを統一して行く流れで RSS とかをフォーマットし直して再配信するサービスとか便利そうだけど法的にどうなんだろう。文句つけられそー。