はじめに
こんにちは。ganariyaです。
7月頃からGitHubのアップデートで、自分のアカウントページにプロフィールに関するREADMEを書けるようになりました。
「自分の履歴書」として、一箇所に情報をまとめられるため便利です。
GitHubのREADMEの機能の追加により、以下のようなバッジを追加する記事が増え、自分もなにかバッジにまつわるツールを作りたいなと考えました。
そこで、競技プログラミングに関するバッジを作成しようと思い至り
以下のようなバッジツールの作成のお手伝いをしました。
CP-Badgesの発見
競プロのバッジを作ろう!と思い立ったあたりで、ちょうど学会が近づきスライド作成・発表で多くの時間を取られていました。
その結果、2週間ほど開発時間が取れず、なかなか足を踏み出せずにいました。
ようやく学会が終わり、「よし作成するか!一応既存サービスあるか調べるか!...あるねぇ!!」となりました。悲しいですね。
CP-Badgesというリポジトリです。
[](https://atcoder.jp/users/ganariya2525)
バッジの詳しい作り方はREADMEを御覧ください。
プルリクエスト
先駆者様がいましたが、「ええぃ!僕が1からさらに作ってもっとすげぇのにしてやる!」とはなりませんでした。
他の方のリポジトリに貢献・コントリビュートできたほうが嬉しいからです。
まだCP-Badgesに追加されていない機能として
- YukiCoderのレベル
- TopCoder
があったためこれらを追加するプルリクエストを投げました。
リポジトリ作成者のkehsihba19から以下のような温かい言葉をいただき
Thank you for adding the support of Yukicoder OJ.
I will be happy to merge the pull request and add you as an active contributor to the repo.
Thanks again.
Good Work :)
ganariyaはとても嬉しい気持ちになりました。
OSS開発は 技術者の方とつながることができますしレビューなどもいただけてとても嬉しいです!
もっとやっていきたいですね。
課題
CP-Badgesですが、毎回のバッジ作成時にBeautifulSoupでスクレイピングをしてAtCoder, Codeforces, CodeChefのレーティングをとっている実装のようです。
これだとユーザが増えるにつれて重くなっていく可能性が高いです。
そのため、時間を見つけて
- APIを用いた高速化
- データベースを用意してキャッシュ
- cronなどで定期データベース更新
などのプルリクエストを投げてみようかなと思います。
最後に
OSS開発楽しいですね!
もっともっと積極的にやっていこうと思います。