【機能強化】RDBMS/CSV/TSV/LTSVクライアントであるsqluvをhttps/s3/圧縮フォーマットに対応させ、カラースキームを追加

【機能強化】RDBMS/CSV/TSV/LTSVクライアントであるsqluvをhttps/s3/圧縮フォーマットに対応させ、カラースキームを追加

前書き:大幅に機能追加 nao1215/sqluvは、2週間前に「【Go】sqluvコマンド:DBMS用のTUI + CSV/TSV/LTSVにSQLを実行可能【開発背景や使い方、生成AIの活用】」に記事で紹介しました。この記事に対する反応がそこそこあったので、「これはチャンスだ」と考えて、大幅に機能追加/バグ修正をしました。 ...

2025年3月22日 · 6 分 · nchika
qhqで管理しているリポジトリをVS Codeで開くシェル関数

qhqで管理しているリポジトリをVS Codeで開くシェル関数

前書き 複数のリポジトリを用いて開発している人は、x-motemen/ghqでリポジトリを管理するケースが多いでしょう。本記事では、ターミナルからghqで管理しているリポジトリをVS Codeで開く方法を紹介します。 ツールインストール x-motemen/ghq および peco/peco を利用します。以下はgoコマンドを利用したインストール方法です。他のインストール方法を利用する場合は、公式サイトを確認してください。 ...

2025年3月17日 · 2 分 · 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
【Golang】fe3dback/go-arch-lintでアーキテクチャの破壊を防ぐ

【Golang】fe3dback/go-arch-lintでアーキテクチャの破壊を防ぐ

前書き:アーキテクチャは容易に壊される アーキテクチャリンターであるfe3dback/go-arch-lintをnao1215/sqlyに導入したので、使用方法のメモを記事として残します。結論としては、初期設定が面倒ですが、期待通りの効果が得られました。なお、既存コードがカオスなアーキテクチャの場合、go-arch-lintを採用できないと思われます。 まず、アーキテクチャをリンターでチェックする発想に至った理由から、説明します。以前、ペアプロ中にドライバ側(実装する人)がアーキテクチャルールに反しているのを偶然目撃しました。違反内容は、「外部サービス操作用パッケージ内でのみ使用できる構造体をユースケースレイヤーから呼び出した」というものです。構造体の定義場所が悪いと思いつつも、ルール違反してしまう理由はアーキテクチャを理解していないからだと考え、対策が必要と考えました(ちなみに、ドライバの方に「その使い方、ダメですよ」と声をかけたら、「そうなんですか?」と返答がありました) ...

2025年2月13日 · 7 分 · nchika
【退職エントリ代わり】バケットリスト(死ぬまでにやりたいこと)を書き出し、目標達成に向けて動き出した話

【退職エントリ代わり】バケットリスト(死ぬまでにやりたいこと)を書き出し、目標達成に向けて動き出した話

前書き:今回は詳細な退職エントリを書きません 2025年2月28日付でフラー株式会社を退職します。 前職の退社エントリでは、詳細な情報を記録として残しました。しかし、今回は完全に個人都合の退職であるため、詳細情報を残しません。在籍した3年間が楽しかったのは、間違いありません。狭い業界なので再会できると考え、意図的に個別の挨拶を避けました。フラーの皆さん、また周年懇親会でお会いしましょう。 最終出社日に、花束、色紙、中華ゲーム機のMiyoo mini plusを貰いました。私は人間ができていないので、「花束持って電車乗るのかー」と軽口を叩いてしまいました。何故、素直にありがとうと言えないのか。この場を借りて、感謝申し上げます。帰宅したら、息子が「おはな、だいすきなの」と抱きしめていました。 ...

2025年2月8日 · 7 分 · nchika
【何をどこに書く?】Pull Requestマージ速度を上げるためにドキュメンテーションコメントを書く

【何をどこに書く?】Pull Requestマージ速度を上げるためにドキュメンテーションコメントを書く

前書き:ドキュメンテーションコメントの書き方が分からん 本記事は、「【GitHub Actions】 github/issue-metrics でPRマージにかかる時間を分析」に関連する記事です。2024年は、Pull Request(以降PR)をマージするまでにかかる時間を如何に短縮するかに、課題感がありました。 ...

2025年1月26日 · 10 分 · 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
2024年の振り返り & 2025年の抱負

2024年の振り返り & 2025年の抱負

前書き 2023年に引き続き、2024年の振り返りと来年の抱負をまとめます。 2024年は元旦に能登半島地震があり、息子を抱えながら坂を駆け上るところからスタートでした。新潟は、狭い範囲でも場所によって被害状況が異なり、私が当時住んでいた地区はそれなりに被害がありました。地震が発生した直後、まずはTVが倒れないように押さえていました。目の前で本棚が二つ倒れ(本棚が壁に穴を開け)、食器が盛大な音を立てながら一斉に割れたのを見て、「あっ、人生で一番大きい地震だ」と察しました。玄関を出たら、温水器タンクが倒れ、目の前の道路は割れ、水道管が破裂した影響で道路の一部が水浸しになっていました。2011年の津波が脳裏をよぎりました。最終的には無事でした。住まいの周辺は液状化や地盤沈下が見られ、電柱の押しボタンが足元まで沈んでました。断水が1週間程度続いたため、実家に避難していました。 ...

2024年12月27日 · 19 分 · 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
実装ではなく、Pull Requestレビューから経験値を得るようになった話

実装ではなく、Pull Requestレビューから経験値を得るようになった話

パワーワード:経験値泥棒 君は分かるだろうか。 「経験値泥棒」という単語に衝撃を受けたオッサンの気持ちが。 2024年時点で、私は34歳です。約10年、エンジニアとして働いてきました。 ...

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
33歳児(1990年生)が愛聴しているアルバム(その1)

33歳児(1990年生)が愛聴しているアルバム(その1)

前書き 私は昔、ネットに書かれたアルバム批評を読むのが好きだった。書き手の思い出と一緒に綴られたアルバム評が好きだった。「最近見かけなくなったな、自分で書くか」と寝る前にふと思ったので、眠くなるまで書き殴ろうと思う。 ...

2024年1月12日 · 10 分 · nchika
2023年の振り返り & 2024年の抱負

2023年の振り返り & 2024年の抱負

前書き:サクッと振り返って、来年も良い年に! 2022年に引き続き、2023年の振り返りと来年の抱負をまとめます。 OGP画像は、両親と一緒に行った弥彦菊祭りで「菊より珍しいな!」と思っておもむろに撮影した日本酒です。画像右上にある「景虎」は息子に名付ける予定だった名前の一つで、字面が強すぎるから見送りました。「虎雪」も候補でしたが同じ理由で却下。 ...

2023年12月27日 · 12 分 · 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
GitHub ActionsでBSD(FreeBSD、OpenBSD、NetBSD、Dragonfly BSD)のユニットテスト環境を構築する方法

GitHub ActionsでBSD(FreeBSD、OpenBSD、NetBSD、Dragonfly BSD)のユニットテスト環境を構築する方法

前書き:BSDはクロスプラットフォーム対応の鬼門 私は、GolangでOSSを開発することが多く、Golangは様々なOS向けの実行バイナリを簡単に作成できる特徴があります。この特徴を活かして、「クロスプラットフォーム対応しよう!」と考えるのは自然なことです。 ...

2023年9月16日 · 5 分 · nchika
【Docker】DynamoDB localをローカル起動する方法【管理画面付き】

【Docker】DynamoDB localをローカル起動する方法【管理画面付き】

前書き:DynamoDB、はじめまして 本記事では、DynamoDBをローカルで起動する方法を説明します。DynamoDBは、AWSが提供するNoSQLデータベースです。サーバーレスのKey Valueストアであり、フルマネージドサービスです。 検証環境 本記事は、Ubuntu環境で検証しています。Docker Composeを使用するため、別途インストールが必要です。 ...

2023年9月10日 · 3 分 · nchika
【golang】io.Readerを使いまわしてContentType判定、S3アップロードしたらハマった話

【golang】io.Readerを使いまわしてContentType判定、S3アップロードしたらハマった話

前書き:同じハマりを繰り返す Single Page Application(SPA)をAmazon S3にアップロードする機能を持つspareコマンドを開発しているとき、io.Readerの使い方を間違えて少しハマってしまいました。ハマりの原因はio.Readerで読み出すデータが欠損していたことであり、欠損の原因はio.Readerを使いまわしたことです。 このハマり方は2回目なので、備忘録として記事にします。 ...

2023年9月10日 · 6 分 · nchika
Golangを用いたサーバーサイド:技術選定と現状の小さな課題

Golangを用いたサーバーサイド:技術選定と現状の小さな課題

前書き 本記事では、Golangを用いてRESTful APIを開発する上で私が使用している技術(OSS)を述べた後、より良い開発体験を得るための改善したい点(解消したい課題)について述べます。 ...

2023年5月19日 · 11 分 · nchika
AndroidプラットフォームアーキテクチャでJavaが採用されている理由は、エンジニア人口が多いから

AndroidプラットフォームアーキテクチャでJavaが採用されている理由は、エンジニア人口が多いから

前書き:何故AndroidはC/C++がメインではないのか AndroidでJavaを採用した理由が気になって夜しか眠れなかったので、調べました。 まず、前提をおさらいします。Androidプラットフォームは、ハードウェアを制御するためにLinux Kernelを採用しています。その上にハードウェアを抽象化するためのHALレイヤーがあり、C/C++とJavaランタイム(Android Runtime)がHALの上にあります。最近では、NativeライブラリにRustも採用され始めたと聞いています。 ...

2023年4月17日 · 6 分 · nchika
【マネージャー視点】エンジニアとして貢献できないもどかしさとメンバを不快にさせる恐怖

【マネージャー視点】エンジニアとして貢献できないもどかしさとメンバを不快にさせる恐怖

前書き:マネージャーと称されるお仕事、やってます 本記事はポエムです。答えが出ていない状態で、文章を書き始めています。息子を寝かしつけて、勉強する元気がなかったので思考の整理として記事を書いています。 ...

2023年4月15日 · 6 分 · nchika
32歳の子持ちエンジニアがキャリアパスに悩んだ話(結論:フルスタックを目指します)

32歳の子持ちエンジニアがキャリアパスに悩んだ話(結論:フルスタックを目指します)

前書き:新築一戸建ての検討、迫りくる恐怖 マイホームの購入の検討を始めました!検討が加速しているだけですが! 家の購入を検討し始めた理由は、息子が1歳になった時期に「深夜はあなたが思うより音が響く。眠れない」旨の苦情の手紙を受け取ったことです。手紙を呼んだ時は精神的なダメージが大きく、かつ「親でさえ泣き声に参っているから他人なら尚更」と反省しました。 ...

2023年4月2日 · 7 分 · nchika
【Android Studio】JSON To Kotlin ClassプラグインでAPIレスポンス用モデルの作成を楽に

【Android Studio】JSON To Kotlin ClassプラグインでAPIレスポンス用モデルの作成を楽に

前書き Androidアプリでは、RESTful APIの実行結果(≒ jsonデータ)に対応するdata classを作成し、kotlinx.serializationでjsonをdata classにデシリアライズする処理があります。 ...

2023年4月1日 · 4 分 · nchika
2022年の振り返り & 2023年の抱負

2022年の振り返り & 2023年の抱負

前書き:サクッと振り返って、来年も良い年に! 会社の自席から見える景色と共にお届けします。 なお、弊社はフリーアドレスなので、座席は自由です。ここはこたつスペースであり、高頻度でサーバーサイド民(軟体生物)がぐでっとした感じで生息しています。 ...

2022年12月24日 · 7 分 · 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
【Golang】Windows対応でハマった箇所【ファイルパス、一時ファイル削除エラー】

【Golang】Windows対応でハマった箇所【ファイルパス、一時ファイル削除エラー】

 前書き:Windows君さぁ…… 私は、GolangでCLIツールをよく作ります。CLIツールの品質を担保するために、GitHub Actionsでユニットテスト(Linux、Mac、Windows向け)を継続的に実施しています。 ...

2022年11月27日 · 3 分 · nchika