Artemis

収益化の記録

自作LINEスタンプを無料で使う条件|AI生成のままでは申請サイズに合わなかった

AIでふくろうのLINEスタンプ8点を試作。生成画像が申請サイズを超えたため、寸法・余白・透過を調整しました。作者本人の無料利用と売上分配の条件、タブ画像など申請前の残件を公式情報とともに整理。未申請・未販売の制作記録です。
レビュー

AI時代のセキュリティ学習、どこから始める?資格・研修・教材の選び方

生成AIの情報漏えいや不正アクセスのニュースを読むと、「自分も何か勉強した方がいい」と感じるかもしれません。ただ、資格の問題集と、社員向けの研修と、AIエージェントの実装資料では、身につけたい力が違います。まず決めたいのは、学んだあとに何を...
レビュー

セキュリティ事例を読んだあとに確認すること

AIセキュリティ情報を自分の対策につなげるための無料ガイドセキュリティのニュースを読んで、何から確認すればいいのか分からなくなることがあります。個人でブログやSNSを運用しているなら、まず調べたいのは、自分が使っているサービスに関係するかど...
開発ログ

Node.jsの「fetch failed」だけでは原因がわからない|e.causeのcodeを足したらログにENOTFOUNDまで出た

Node.jsのfetchが「TypeError: fetch failed」としか言わない時、本当の原因はe.causeに入っている。ENOTFOUND・ECONNREFUSED・接続タイムアウトなどケース別にv24.14.0で実測した結果と、そのまま使えるログ関数、わたしの見回りAIが無人ツールで見つけて直した記録。
開発ログ

Playwrightでスクショ前に個人情報の写り込みを止める|見えないリンク先に本番IDが残っていた

自作GASアプリの画面を記事に載せるため、本番に触れず架空データで描画し、描画後の画面を走査して合格した画面だけ撮る「撮影用ダミーモード」を作りました。初回の走査で、画面には見えないリンク先に本番のデプロイIDが残っていたのを見つけています。仕組み、コード例、走査では拾えないものをまとめます。
AIエージェント

Claude Codeで定期タスクを見回って自動修復するスキル「CardinalSystem」を公開した|先に決めたのは「直させないもの」

自分で作った定期タスクや自動化を毎日見回り、条件を全部満たすものだけ自動修復するClaude Codeのスキルを作り、MITで公開しました。作った当日の初回診断で見つけた「80時間停止」は、監視側の誤検知でした。
Google Workspace・GAS

Googleコンタクトをチームの共有電話帳にする(GAS)|People APIで読み書きし、宛名ラベル印刷と地図表示まで

Googleコンタクトは基本的に1アカウントのもので、チームや家族で1つの電話帳を見るのが意外と難しい。GASで「共有用アカウントの連絡先を、許可した人だけが読み書きできる」Webアプリを作りました。People APIの使い方、宛名ラベルとFAX送信状の印刷、住所から地図にピンを立てる方法、HTTP 401などのつまずきをまとめます。
Google Workspace・GAS

GASのUSER_DEPLOYINGとUSER_ACCESSINGを分けた|管理画面に管理者が入れない

GASの共通ログイン管理画面で、登録済みの管理者が拒否される問題に対応しました。デプロイ者として動くAPIは残し、管理画面をアクセスした利用者として動かす構成に分離。本人確認と管理権限の判定を分けた理由と、確認できた範囲を記録します。
Google Workspace・GAS

GASライブラリで認証を共通化したら空のDBが397個できた|API方式に移すまで

GASで作った複数のWebアプリの「誰が使えるか」を1か所で管理するため、共通の認証ライブラリを作りました。ところがライブラリは呼び出し元の利用者の権限で動くため、DBを共有していない人が開くたびに空のDBが作られ、登録が消え続けました。原因、止め方、デプロイ者の権限で動くAPI方式に移した手順と判断表をまとめます。
開発ログ

WordPress REST APIの予約投稿が一覧に出ない話|–updateがfutureをdraftに戻した実測ログ

WordPress REST APIで予約投稿を自作スクリプトで管理していたら、一覧にfutureが出ない/--updateでdraftに戻る、という2つの穴にぶつかった。実測と修正の記録。