atago-logo

CLI向けブラックボックス E2E テストランナー nao1215/atago を作った話

前書き:LLM の登場で自作 OSS の E2E テストを書く機会が増えた LLM が登場してから、E2E(End to End) テストを書くのが楽になりました。維持は相変わらず大変ですが。 ...

2026年7月4日 · 14 分 · nchika
japanese-resume-p-1-top-half

履歴書・職務経歴書・CVをyamlから生成するnao1215/careerを作った話

前書き:割と面倒な履歴書作成 妻との会話中、「履歴書の書き方」について話題に上がりました。妻はロシア人なので、日本のルールには詳しくありません。妻に説明するとき、私は過去の履歴書を思い出し、それぞれの作成方法に不満があったことを思い出しました。 ...

2026年6月14日 · 10 分 · nchika
omokage

文体の一致度を評価する nao1215/omokage を作った話

前書き:LLM の文章は読みたくないが、LLM に書かせたい 私は、あなたの文章が読みたいという記事で、二律背反な気持ちを吐露しました。 要約すると、「LLM が生成したと思われる文章を見ると拒否反応が出るのに、自分自身も PR やコミットメッセージ、ドキュメンテーションを LLM に委ねている」という矛盾であり、私はもはや LLM っぽい文章を咎める資格などとっくに失いました。構造化されたリストの乱用、無駄に長くて中身のない文章、太字や絵文字の過剰な装飾。ああいったものが嫌いなくせに、私自身が量産する側に回ってしまっているのですから、ダブルスタンダードも良いところでしょう。 ...

2026年6月2日 · 15 分 · nchika
truss-logo

【Rust】CLI・サーバー・Wasm で動く画像処理ツール truss を作った話

前書き 画像処理ツール nao1215/truss を開発したので、紹介します。読みは、「トラス」です。 truss は、画像の変換(拡張子変更)、リサイズ、ぼかし、透かし、切り抜き等ができるツールであり、JPEG、PNG、WebP、AVIF、BMP、SVG に対応しています。クロスプラットフォーム対応(Linux, macOS, Windows)であり、CLI・サーバー・Wasm で動作します。 ...

2026年3月14日 · 9 分 · nchika
sensitive-logo

【Golang】クレカ番号などを検出・マスクするsensitiveライブラリを作った話

前書き sensitive テキストを見つけ、必要であればマスクする nao1215/sensitive ライブラリ(Golang)を作ったので、軽く紹介します。Fintech に所属していれば、誰でも一度は作ろうと考えるタイプのライブラリですね。なお、暇つぶしで作っただけなので、現職の業務で利用予定はありません。 ...

2026年2月8日 · 6 分 · nchika
fileprep

【Golang】CSV、TSV、LTSV、Parquet、Excel に前処理とバリデーションを行う nao1215/fileprep を作った話

nao1215/fileprep(前処理ライブラリ) を開発した理由 理由は、データが汚れているからです。 私は、過去に nao1215/csv ライブラリ(パブリックアーカイブ済み) を開発していました。nao1215/csv は、struct tag でバリデーションルールを指定すると、CSV ファイルの読込み後に「どの行のどのカラムが不正値なのか」を教えてくれます。 ...

2025年12月7日 · 8 分 · nchika
レゴ

4年間続けたOSS開発を振り返る

OSS 開発を始めてから4年経った 本記事は、私の日記に近いポエムです。5年後に見返すために書いてます。なお、OSS 開発を初めて5年経過しているつもりで記事を書き始めたら、計算したところ4年でした。 ...

2025年11月30日 · 10 分 · nchika
onionlint-logo

【Golang】.onion(Torサイト)の匿名性チェックを行う nao1215/onionlint を作った話

onionlint とは nao1215/onionlint は、.onion(Torサイト)が匿名性を担保できないような実装になっていないかをチェックするツールです。普通の開発者が onionlint のお世話になることはないでしょう。onionlint には、34個のルールが搭載されており、以下の3カテゴリで構成されています。 ...

2025年11月25日 · 7 分 · nchika
tornago-logo

【Golang】tor client/server を実装するための nao1215/tornago ライブラリを作った話

悪用厳禁 本記事で紹介する nao1215/tornago は、Tor(The Onion Router)に関するライブラリです。Tor は、通信を暗号化して IP アドレスを隠蔽できるため、悪用されるケースが多々あります。 ...

2025年11月15日 · 9 分 · nchika
csv package logo

【Golang】バリデーション付き CSV 読み込み機能と DataFrame 機能を持つパッケージを作った話

前書き:バリデーション付きCSV読み込み機能は2024年に開発 本記事で取り上げるのは、2024年に開発した nao1215/csv です。本来の予定では、新規に開発した機能の紹介だけ書く予定でした。しかし、本ブログで一度も nao1215/csv の説明をしていなかったようなので、まずは基本機能を説明した後に新機能(DataFrame)について紹介します。 ...

2025年11月15日 · 7 分 · nchika
【TypeScript】ファイルを分割し、任意の分割ファイル数で復元できる nao1215/horcrux を作った話【分霊箱】

【TypeScript】ファイルを分割し、任意の分割ファイル数で復元できる nao1215/horcrux を作った話【分霊箱】

前書き: jesseduffield/horcrux を参考にした 「Yet Another Horcrux を作ったよ」というお話をします。 Horcrux は、ハリーポッターに登場する用語で、日本語では分霊箱と訳されています。闇の魔法使いが不死になるために自らの魂を分割して、自らの魂を隠した物体を指します。この物体が存在する限り、現世に留まれることができます。予め断っておきますが、私はハリーポッターがそこまで好きではありません。ネタとしては好き。「フォフォイのフォイさ」や「ハリー< 二次会は嫌だ、二次会は嫌だ…… 組分け防止 < フィリピンパァアアアアアアアブ!!! 」とか。 ...

2025年10月5日 · 4 分 · nchika
【nao1215/prompt】コードを読むのが辛いから、放置されたOSSをforkせずに作り直した話

【nao1215/prompt】コードを読むのが辛いから、放置されたOSSをforkせずに作り直した話

前書き:OSSが放置されることは当然のようにある 「OSSは、人気があれば活発にメンテナンスされる」 そのように考えている方がいらっしゃるのではないでしょうか。現実は、そこまで甘くありません。私が利用していた c-bata/go-prompt(5.4 stars)は、ライブラリとして採用した時点でメンテナンスが滞っており、結局3年間殆ど更新はありませんでした。 ...

2025年9月20日 · 6 分 · nchika
【Golang】CSV, TSV, LTSVをsql.DBで操作するfilesqlパッケージを作った話

【Golang】CSV, TSV, LTSVをsql.DBで操作するfilesqlパッケージを作った話

前書き:同じ機能を持つコマンドのメンテが面倒だった filesql パッケージは、SQL ドライバーであり、SQLite3 のSQL 構文を使用してCSV、TSV、LTSV ファイルにクエリを実行できます。リリースして1週間経っていませんが、過去2番目の勢いで GitHub Star を獲得できています。嬉しいことですね。 ...

2025年8月28日 · 8 分 · nchika
GoユーザーがHaskell/OCamlのライブラリ配布で面食らった話

GoユーザーがHaskell/OCamlのライブラリ配布で面食らった話

前書き 本記事画像には、Gopherを用いています。オリジナルのThe Go gopher(Gopherくん)は、Renée Frenchによってデザインされ、CC BY 4.0ライセンスが適用されています。 ...

2025年6月28日 · 9 分 · nchika
GitHub Personal Access Tokenをコミットする人がいた話、類似例、漏洩対策ツール【GitHub Secret scanning、gitleaks、git-secrets、gitguardian】

GitHub Personal Access Tokenをコミットする人がいた話、類似例、漏洩対策ツール【GitHub Secret scanning、gitleaks、git-secrets、gitguardian】

 前書き:セキュリティのお勉強中 本記事は、ユーザー2376名のGitHub リポジトリ8017件を調べたら、GitHub Personal Access Token 16件(全て失効済み)が見つかったという話です。悪用されたら困るので、トークン探しに使ったコードは公開しません。 ...

2025年4月27日 · 5 分 · nchika
【Go】sqluvコマンド:DBMS用のTUI + CSV/TSV/LTSVにSQLを実行可能【開発背景や使い方、生成AIの活用】

【Go】sqluvコマンド:DBMS用のTUI + CSV/TSV/LTSVにSQLを実行可能【開発背景や使い方、生成AIの活用】

sqluvとは nao1215/sqluv は、DBMS(例:MySQLやPostgreSQL)クライアントの一種であり、Text User Interfaceを提供します。 sqluvは、ローカルのCSV/TSV/LTSVファイルをインポートし、それらのファイルに対してSQLを実行する機能も持ちます。この機能は、私が以前開発したnao1215/sqlyコマンドから移植しています。 ...

2025年3月8日 · 6 分 · nchika
【GitHub Copilot】「もっとAIを使った方が良いですよ」とアドバイスする時代になった

【GitHub Copilot】「もっとAIを使った方が良いですよ」とアドバイスする時代になった

前書き:AIが当たり前の時代に OpenAIが2022年11月にChatGPTをリリースしてから、AIを利用した様々なツールが登場しました。AWS Summitに行けば、Amazon Bedrockを用いて業務生産を向上させた事例がメイントピックでした。直近の技術系の話題(例:ブロックチェーン、web3.0)と比較すると、AIの普及速度が早く感じました。 ...

2025年1月25日 · 6 分 · nchika
【どうやって見積もりしてますか?】プロジェクト工数を見積もるときの私なりのやり方【ボトムアップ見積り】

【どうやって見積もりしてますか?】プロジェクト工数を見積もるときの私なりのやり方【ボトムアップ見積り】

前書き:超概算見積もり?KKD法でいいですか? 私は、立場上、プロジェクトの工数を見積もることが多いです。 しかし、自分が担当していない領域(例:iOSやAndroid)の見積もりは流石にできません。そこで、他メンバに作業を依頼します。そのタイミングで、次のような質問を受けることがあります。 ...

2025年1月11日 · 7 分 · nchika
【GitHub Actions】 github/issue-metrics でPRマージにかかる時間を分析

【GitHub Actions】 github/issue-metrics でPRマージにかかる時間を分析

前書き:PRマージに時間がかかっていた 2024年は、私のPull Request(PR)がなかなかマージできない課題がありました。 このように書くと「あなたが書いたPRのサイズが大きかったり、色々と他者に配慮できていないだけでは?」と考える人もいらっしゃるかもしれません。その可能性は当然あります。 ...

2024年12月31日 · 5 分 · nchika
【Golang】Value Objectを生成するvogenライブラリをお試しで作った話

【Golang】Value Objectを生成するvogenライブラリをお試しで作った話

前書き:GolangでValue Objectを作りづらい 2025年の抱負で「ブログのアウトプットを増やす(リンク先の末尾を参照)」と宣言したので、早速アウトプットします。 今回取り扱うValue Objectとは、主に以下のような特徴を持ちます(本記事の本題と関係ない要素は意図的に省略しています) ...

2024年12月28日 · 6 分 · nchika
【寄稿】Software Design 2024年12月号 第1特集 第4章 落し穴に落ちないシェルスクリプト開発のススメ

【寄稿】Software Design 2024年12月号 第1特集 第4章 落し穴に落ちないシェルスクリプト開発のススメ

祝!Software Design 3回目の寄稿 技術評論社のSoftware Design 2024年12月号 第一特集に寄稿させていただきました。3回目です。びっくり!未読の方は、是非ご一読ください。 過去2回に引き続き、内容はシェルスクリプトに関する記事です。2022年1月号はPythonに関して説明していますが、シェルスクリプトと比較した記事になっています。過去の寄稿に関する感想は、別記事でまとめてあります。 ...

2024年12月7日 · 7 分 · nchika
【Golang】AWS Rainbowプロジェクト始めました - インタラクティブにS3操作するs3hubコマンド

【Golang】AWS Rainbowプロジェクト始めました - インタラクティブにS3操作するs3hubコマンド

前書き 2023年に「2024年のOSS活動は、AWSユーティリティツールに絞ること」と目標を立て、AWS関連のOSSをまとめるRainbowプロジェクト(nao1215/rainbow)を作り始めました。早いもので2024年も1ヶ月経ったので、何か作ってないと進捗上マズイですよね!一つ作りましたよ!(後述) Rainbowは、私の好きなRitchie Blackmore’s Rainbowから拝借しました。複数のツールやライブラリを集約する予定なので、虹というネーミングは無難なところだと思ってます。 ...

2024年2月5日 · 5 分 · nchika
【Golang】hottest - ユニットテストのエラーメッセージを抽出するCLI/GitHub Actionsを作った話

【Golang】hottest - ユニットテストのエラーメッセージを抽出するCLI/GitHub Actionsを作った話

前書き 本記事は、フラー株式会社 Advent Calender 2023 の4日目の記事です。3日目は、@ujikawa1026さん の「マネージャーはなぜ忙しいのか。3年間やって少し分かってきたこと」です。 本記事の主題:hottestの紹介/宣伝 本記事では、2023年に私が開発したOSSの中で出来が良い部類のnao1215/hottest を紹介します。hottestは、E2Eテスティングフレームワークであるgo-spectest/spectestの開発中に生まれたサイドプロジェクトです。 ...

2023年12月3日 · 8 分 · nchika
GitHub Actionsが全成功かつパッチ/マイナーアップデートの場合は、Dependabotが作成したPRを自動マージする設定

GitHub Actionsが全成功かつパッチ/マイナーアップデートの場合は、Dependabotが作成したPRを自動マージする設定

前書き 今どきは、zero dependency(依存なし)で開発を進めるよりも、便利なOSS(ライブラリ)を利用してサクッと開発する方が多いのではないでしょうか。他の人が開発したライブラリは日々改良されていくので、ライブラリ更新をサボっていると「自分のOSSが知らない間に動かなくなってしまった!」という状況になるかもしれません。 ...

2023年10月11日 · 5 分 · nchika
DependabotでGitHub ActionsのActionを最新に保つ方法

DependabotでGitHub ActionsのActionを最新に保つ方法

前書き:絶滅へ向かうJenkinsオジサン 結論ですが、GitHub公式ドキュメント「Dependabot でアクションを最新に保つ」を読めば、GitHub ActionsのActionを最新に保つ方法が分かります。ちなみに私は、現職のテックリードから教えていただいて「なにこれ便利だ」と思った記憶があります。 ...

2023年9月30日 · 3 分 · nchika
【Golang】CSV/TSV/LTSV/JSONにSQLを実行するsqlyコマンドを作った話【開発背景/設計/使い方】

【Golang】CSV/TSV/LTSV/JSONにSQLを実行するsqlyコマンドを作った話【開発背景/設計/使い方】

前書き 本記事は、フラー株式会社 Advent Calendar 2022の5日目の記事です。4日目の記事は、「フラーを卒業していった優秀な学生アルバイトに向けたポエム(@furusax)」です。ポエムと言いつつ、技術的なお話でしたね。 本記事では、CSV/TSV/LTSV/JSONに対してSQLを実行する"sqly"コマンド(自作ツール)について解説します。sqlyの基本機能を簡単に説明した後、開発した背景、設計、使用しているパッケージについて説明し、利用例と今後の展望を説明します。 ...

2022年12月2日 · 11 分 · nchika
【寄稿】Software Design 2022年6月号 第1特集(第3章 シェルスクリプトの使い方)

【寄稿】Software Design 2022年6月号 第1特集(第3章 シェルスクリプトの使い方)

Software Design誌 2回目の寄稿! 技術評論社のSoftware Design 2022年6月号 第1特集 第3章 「シェルスクリプトの使い方」に寄稿する機会をいただきました!2022年1月号に続いて、2回目の寄稿です。表紙がワンちゃんからネコちゃんに戻っています! ...

2022年5月15日 · 4 分 · nchika
GitHubで初めてStar 50個以上を獲得した感想と実施した内容【Redditで宣伝】

GitHubで初めてStar 50個以上を獲得した感想と実施した内容【Redditで宣伝】

前書き:人生で初めてGitHub Star 50個超え “go install"したバイナリをアップデートするgupコマンドが、公開から一週間でGitHub Starを50個以上獲得しました!ちょっと嬉しい。最新の仕様は、Zennで説明しています。 ...

2022年2月26日 · 5 分 · nchika
【Golang】go installで取得した$GOPATH/bin以下のバイナリを一括更新するgupコマンドを試作

【Golang】go installで取得した$GOPATH/bin以下のバイナリを一括更新するgupコマンドを試作

前書き:バイナリの更新が面倒 Golangでは、MacやLinuxのパッケージマネージャ(brew, apt, dnf, snap, etc)を利用せずに、"$ go install"でバイナリをインストールできます。"$ go install"は、開発者がパッケージのスペックファイルを作成せずにバイナリを配布できるメリットがあります。 ...

2022年2月20日 · 6 分 · nchika
【Golang】goa(ver 1.x)frameworkのlinter(goavl)を試作【go/astを利用】

【Golang】goa(ver 1.x)frameworkのlinter(goavl)を試作【go/astを利用】

前書き:DSLに半日悩み、カッとなって作った goaは、DSLで記述されたデザインをもとに、Web APIホスティングに必要なベース処理(ルーティング、コントローラ、Swaggerなど)を生成するFrameworkです。goaを採用している会社の例は、DMM。goaを使うとコード記述量が減り、APIドキュメントが自動生成される利点があります。 私は、2022年1月からgoaを開発で使用するようになりました。goaは、DSLを覚えるコストが小さくはありません。DSLを書き間違えると、当然goa-designから各種ファイルの生成処理でエラーとなります。 ...

2022年2月11日 · 12 分 · nchika