1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

育休中の個人開発活動の振り返り

Last updated at Posted at 2025-03-31

はじめに

半年間の育休中にスキマ時間で個人開発した内容を振り返ってみます。
(開発の話しかしないので、育児の話に興味がある方は「男性ワンオペ育休6ヶ月間の振り返り」も合わせてお読みいただければと思います)

全体的には、生成AI,音韻・音楽解析、CI/CDなどその時々で興味のある調査や開発をしました。

半年間でQiitaの記事59本(26週連続投稿)、GitHubのプルリクエスト59件、学会ワークショップでの発表1件、RAGコンペ参加1回、OSSパッケージ公開4件をしました。

image.png

育休中なので趣味に使える時間は主に子どもの睡眠中に限られていました。スクリーンタイムなどから見積もった実働時間は半年間で540時間ほどでした。4時間半に1回、記事かプルリクエストを出していた計算であり、時間に対する成果で考えると、個人的な感覚としてはまあまあ妥当か、少し頑張れた程度かなと思います。

開発環境にはCursorを使っており、開発加速にかなり貢献してくれました。

以下では主な開発トピックをもう少し詳細に振り返ってみます。

生成AI

音声対話

キーワード検索の改善

高速化

検索精度向上

日本語時間表現の解析

音韻・音声処理

音韻埋め込み

日本語音韻検索データセット

音声テキストアライメント

空耳替え歌分析

  • 音韻類似性に伴うユーモアへの理解を深めるため、[「〇〇で歌ってみた」と呼ばれる空耳替え歌の歌詞を分析し、コンクールでの高評価につながる音韻的な要因を考察]しました。
  • 公開中の空耳自動生成プログラムの辞書を更新しました。

CI/CD、開発環境整備

uvとGitHub ActionsによるCI/CDテンプレート

開発振り返り用の集計プログラム(Qiita、GitHub API)

機械学習用パソコンの初期設定

対外的な活動

学会ワークショップ発表

RAGコンペ参加

OSSパッケージ

xfmido

  • 歌詞情報を含むYamaha拡張仕様(XF仕様)のMIDIファイルパーサーxfmidoを開発しました。本家midoにもマージしてもらえるか相談中です。

kanasim

  • 日本語かな文字列の音韻類似度を高精度に計算するライブラリkanasimを開発しました。

soramimi-phonetic-search-dataset

qiitareactioncounter

おわりに

半年間の振り返りをしてみました。
我ながらバラバラなことをやっているなと思いましたが、pydantic-settingsやuv、GitHub Actionsなど新規のライブラリやフレームワークに手を出せたのは良い経験でした。対外発表も密かに目標にしていたので実現できてよかったです。

反省としては、バラバラなことをやりすぎて全体的に浅い成果になってしまったので、せっかく540時間も稼働するならもう少し1つのことを深く掘り下げられればよかったです。子どもの体調や睡眠によって、開発の中断・再開のタイミングが左右されるので、どうしても小ぶりに成果が出るものばかりに取り組みがちになりました。同じ理由で、全く新しい新規のものに手を出すこともあまりできていませんでした。今後、同じような機会があるかはわかりませんが、もし訪れたら、長期的な時間の使い方にも勇気を出して取り組みたいなと思いました。

この記事では、開発トピックについての定性的な振り返りをしましたが、QiitaやGitHub上での活動指標から定量的に振り返ってみるのも面白そうだと思っているので、時間があれば取り組みたいです。特にCursorを本格的に使いだしてから生産性が上がった印象があり、それを量的に示唆できると面白いかなと思っています。

以上、ここまで記事を読んでいただきありがとうございました。

付録

半年間で書いた記事、成果物一覧

記事タイトル一覧の取得に用いたコード

import os

import requests

# アクセストークンとユーザーIDの設定
access_token = os.environ["QIITA_TOKEN"]
user_id = USERNAME

# 取得期間の設定
start_date = "2024-10-01"
end_date = "2025-03-31"

# APIエンドポイントとヘッダーの設定
url = "https://qiita.com/api/v2/items"
headers = {"Authorization": f"Bearer {access_token}"}

# クエリパラメータの設定
query = f"user:{user_id} created:>={start_date} created:<={end_date}"
params = {"query": query, "per_page": 100, "page": 1}

# 記事情報の取得と出力
all_articles = []
while True:
    response = requests.get(url, headers=headers, params=params)
    if response.status_code != 200:
        print(f"Error: {response.status_code}")
        break
    articles = response.json()
    if not articles:
        break

    all_articles.extend(articles)
    params["page"] += 1

# created_atでソートして出力
sorted_articles = sorted(all_articles, key=lambda x: x["created_at"])
for article in sorted_articles:
    title = article["title"]
    article_url = article["url"]
    print(f"[{title}]({article_url})")
 % uv run qiita_titles.py
[pydantic-settingsで環境変数とコマンドライン引数を同時管理](https://qiita.com/shimajiroxyz/private/381a8683bd8edb40b24d)
[uvとGitHub ActionsでpythonパッケージとドキュメントのCI/CD](https://qiita.com/shimajiroxyz/private/24e25d9edbe0eb9807aa)
[Qiita記事のリアクション数を自分と全体で比較するプログラム](https://qiita.com/shimajiroxyz/items/a453218349a229d864cc)
[Pydantic BaseSettingsにおけるCLI引数、環境変数、コンストラクタ引数の優先順位](https://qiita.com/shimajiroxyz/private/f6d972411bd584679e6f)
...
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?