<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Articles on Fairy Select</title><link>https://portfolio.fairy-select.com/posts/articles/</link><description>Recent content in Articles on Fairy Select</description><generator>Hugo -- gohugo.io</generator><language>en-US</language><lastBuildDate>Sat, 16 Nov 2024 16:35:32 +0900</lastBuildDate><atom:link href="https://portfolio.fairy-select.com/posts/articles/index.xml" rel="self" type="application/rss+xml"/><item><title>オープンソースをゼロから作成する中で学んだこと</title><link>https://portfolio.fairy-select.com/posts/articles/open-source-development/</link><pubDate>Sat, 16 Nov 2024 16:35:32 +0900</pubDate><guid>https://portfolio.fairy-select.com/posts/articles/open-source-development/</guid><description>&lt;p&gt;こちらの記事は &lt;a href="https://qiita.com/advent-calendar/2024/trustbank" target="_blank" rel="noopener"&gt;トラストバンク Advent Calendar 2024&lt;/a&gt;
の 20 日目の記事です。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="tldr"&gt;TL;DR&lt;/h2&gt;
&lt;p&gt;この記事では、Python 製のオープンソースパッケージをゼロから作成し、
パッケージサイトへデプロイする過程で学んだことについて紹介しています。
GitHub を利用したリポジトリの作成、環境管理およびパッケージビルド、複数バージョン対応、静的解析、エラーハンドリング、
コミットログの書き方など、オープンソース開発に役立つ具体的なポイントを網羅しています。&lt;/p&gt;</description></item><item><title>Go 製フレームワーク Gin を使って REST API を作成してみる</title><link>https://portfolio.fairy-select.com/posts/articles/golang-gin-rest-api/</link><pubDate>Sun, 19 May 2024 18:16:37 +0900</pubDate><guid>https://portfolio.fairy-select.com/posts/articles/golang-gin-rest-api/</guid><description>&lt;p&gt;REST API を Go 製フレームワーク Gin を使って作ってみる記事です。&lt;br&gt;
単に実装するだけでなく、業務で使用することも踏まえて API の動作を検証するテストコードにも触れていきます。&lt;/p&gt;</description></item><item><title>Windows PC のセットアップを楽にする</title><link>https://portfolio.fairy-select.com/posts/articles/bootstrap-win/</link><pubDate>Sun, 14 Apr 2024 18:00:29 +0900</pubDate><guid>https://portfolio.fairy-select.com/posts/articles/bootstrap-win/</guid><description>&lt;h2 id="背景"&gt;背景&lt;/h2&gt;
&lt;p&gt;新しく PC を購入した際、最初に自分が普段使っているアプリケーションをまとめてインストールすると思いますが、
PC を高頻度で買い替える場合、このインストール作業が非常に大変だと思います。&lt;/p&gt;</description></item><item><title>同じ Docker コンテナを使っているのに Mac の人だけインストールできないアプリケーションがあった話</title><link>https://portfolio.fairy-select.com/posts/articles/docker-pull-in-different-architecture/</link><pubDate>Sun, 07 Apr 2024 09:45:55 +0900</pubDate><guid>https://portfolio.fairy-select.com/posts/articles/docker-pull-in-different-architecture/</guid><description>&lt;h2 id="tldr"&gt;TL;DR&lt;/h2&gt;
&lt;div class="alert info"&gt;
&lt;span&gt;&lt;i data-feather="info"&gt;&lt;/i&gt;&lt;/span&gt;
&lt;span&gt;&lt;strong&gt;Docker のイメージのアーキテクチャを揃えるとうまくいくことがあります。
でもパフォーマンスの問題とトレードオフです。&lt;/strong&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;現職で Windows ユーザと Mac ユーザが両方いる状況で Docker を使用した開発を行う際、
Docker コンテナを使って環境を揃えたはずなのになぜか Mac の人だけ特定のアプリをインストールできないということがありました。&lt;/p&gt;</description></item><item><title>Codeigniter におけるバリデーションルールの設定ミスを動作確認前に検知するためのアプローチ</title><link>https://portfolio.fairy-select.com/posts/articles/codeigniter-validation-extended/</link><pubDate>Sat, 18 Nov 2023 13:39:00 +0900</pubDate><guid>https://portfolio.fairy-select.com/posts/articles/codeigniter-validation-extended/</guid><description>&lt;p&gt;こちらの記事は &lt;a href="https://qiita.com/advent-calendar/2023/php" target="_blank" rel="noopener"&gt;PHP Advent Calendar 2023&lt;/a&gt;
の 8 日目の記事です。&lt;/p&gt;
&lt;hr&gt;
&lt;div class="alert success"&gt;
&lt;span&gt;&lt;i data-feather="check-circle"&gt;&lt;/i&gt;&lt;/span&gt;
&lt;span&gt;&lt;strong&gt;今回紹介しているコードはこちらにも記載しています。&lt;br&gt;
&lt;a href="https://github.com/noritakaIzumi/codeigniter-validation-extended/tree/20231118/Validator" target="_blank" rel="noopener"&gt;https://github.com/noritakaIzumi/codeigniter-validation-extended/tree/20231118/Validator&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;CodeIgniter のバリデーションルールは通常、&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$validation&lt;span style="color:#f92672"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;setRule&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;username&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;Username&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;required|max_length[30]|min_length[3]&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;のように文字列で指定されますが、&lt;/p&gt;</description></item><item><title>個人開発におけるセキュリティチェックのススメ</title><link>https://portfolio.fairy-select.com/posts/articles/security-checks-for-personal-development/</link><pubDate>Sat, 11 Nov 2023 09:41:01 +0900</pubDate><guid>https://portfolio.fairy-select.com/posts/articles/security-checks-for-personal-development/</guid><description>&lt;p&gt;こちらの記事は &lt;a href="https://qiita.com/advent-calendar/2023/snyk" target="_blank" rel="noopener"&gt;Snykを使ってコードをセキュアにした記事を投稿しよう！ by Snyk Advent Calendar 2023&lt;/a&gt;
の 16 日目の記事です。&lt;/p&gt;
&lt;hr&gt;
&lt;div class="alert success"&gt;
&lt;span&gt;&lt;i data-feather="check-circle"&gt;&lt;/i&gt;&lt;/span&gt;
&lt;span&gt;&lt;strong&gt;セキュリティチェックは、いいぞ。&lt;/strong&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;現職で Snyk というツールを知ってから、早速個人開発しているリポジトリにも導入してみたところ、すごく良かったので共有させていただきます。&lt;br&gt;
ここでは Snyk の具体的な導入方法については省略しますが、GitHub のリポジトリを連携してトークンを登録するだけなのでとても簡単でした。&lt;/p&gt;</description></item><item><title>Web エンジニアの私がたったの 4 時間で Android エンジニアになった方法</title><link>https://portfolio.fairy-select.com/posts/articles/introduce-capacitor/</link><pubDate>Thu, 09 Nov 2023 06:12:27 +0900</pubDate><guid>https://portfolio.fairy-select.com/posts/articles/introduce-capacitor/</guid><description>&lt;p&gt;こちらの記事は &lt;a href="https://qiita.com/advent-calendar/2023/trustbank" target="_blank" rel="noopener"&gt;トラストバンク Advent Calendar 2023&lt;/a&gt;
の 2 日目の記事です。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;普段は Web エンジニアとして開発をしている私ですが、いつかモバイルアプリを作ってみたいと思っていました。&lt;br&gt;
しかし、必要なソフトをインストール・設定したり、新たな言語を学習したり、アプリストアの審査を通したりと、複雑な工程がたくさんあり、
なかなかやる気が起きずにいました。&lt;br&gt;
そんな中、Capacitor というツールが Web アプリケーションを簡単にモバイルアプリを作れると知り試してみたところ、
確かに簡単だと感じたので、紹介させていただきます。&lt;/p&gt;</description></item><item><title>Docker を利用して複数の PHP バージョンを切り替える</title><link>https://portfolio.fairy-select.com/posts/articles/multiple-php-version-docker/</link><pubDate>Sat, 25 Feb 2023 00:00:00 +0900</pubDate><guid>https://portfolio.fairy-select.com/posts/articles/multiple-php-version-docker/</guid><description>&lt;p&gt;PHP で複数バージョンを切り替える方法は調べるとたくさん出てくるのですが、今回は Docker を利用してバージョンを切り替える方法を考えてみたのでご紹介します。&lt;/p&gt;</description></item><item><title>自分の書いたコードを自分でレビューする効果的な 3 つの方法【個人開発にも使える】</title><link>https://portfolio.fairy-select.com/posts/articles/self-codereview/</link><pubDate>Mon, 30 Jan 2023 00:00:00 +0900</pubDate><guid>https://portfolio.fairy-select.com/posts/articles/self-codereview/</guid><description>&lt;p&gt;みなさんは自分の書いたコード、どうやって見直してますか？ &amp;#x270f;&amp;#xfe0f;&lt;/p&gt;
&lt;p&gt;自分で書いたコードの間違いや改善点を見つけ出すのは難しいものです &amp;#x1f914;
社内にレビュアーがいればいいですが、いない場合や、個人開発している場合などはなかなか時間が割けないことも・・・
自分自身の知見には限りがありますし、固定観念などが入ってしまうこともあります &amp;#x1f622;&lt;/p&gt;</description></item><item><title>An unexpected error は "happened" より "occurred" だとレビューした、あの時の私は正しかったのか</title><link>https://portfolio.fairy-select.com/posts/articles/unexpected-error-happened-or-occurred/</link><pubDate>Fri, 20 Jan 2023 00:00:00 +0900</pubDate><guid>https://portfolio.fairy-select.com/posts/articles/unexpected-error-happened-or-occurred/</guid><description>&lt;h2 id="tldr"&gt;TL;DR&lt;/h2&gt;
&lt;div class="alert info"&gt;
&lt;span&gt;&lt;i data-feather="info"&gt;&lt;/i&gt;&lt;/span&gt;
&lt;span&gt;&lt;strong&gt;&lt;p&gt;正しいとも言えるし、正しくないとも言えます。
&amp;ldquo;happened&amp;rdquo; と &amp;ldquo;occurred&amp;rdquo; はエラーを &lt;strong&gt;誰目線で解釈するか&lt;/strong&gt; によって変わり、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;プログラム目線で解釈すると &amp;ldquo;happened&amp;rdquo;&lt;/li&gt;
&lt;li&gt;我々開発者目線で解釈すると &amp;ldquo;occurred&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;になるのではないかと考えます。&lt;/p&gt;</description></item><item><title>【Docker】Apache と Perl を別コンテナで動かす</title><link>https://portfolio.fairy-select.com/posts/articles/docker-apache-perl/</link><pubDate>Wed, 18 Jan 2023 00:00:00 +0900</pubDate><guid>https://portfolio.fairy-select.com/posts/articles/docker-apache-perl/</guid><description>&lt;p&gt;業務において Movable Type の開発案件を引き受けることがあるのですが、Docker 環境で開発するにあたり Apache と Perl でコンテナを分けることで、環境の軽量化を図りたいと思いました。&lt;/p&gt;</description></item><item><title>電卓をチームで開発してみよう～5. 動作確認とまとめ</title><link>https://portfolio.fairy-select.com/posts/articles/_team-development/calculator/5/</link><pubDate>Fri, 19 Feb 2021 00:00:00 +0900</pubDate><guid>https://portfolio.fairy-select.com/posts/articles/_team-development/calculator/5/</guid><description>&lt;p&gt;いよいよ、動作確認とまとめをします。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="動作確認"&gt;動作確認&lt;/h2&gt;
&lt;p&gt;前までで編集した 2 つのコミットを合わせて動作確認してみます。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;main&lt;/code&gt; ブランチに戻り、2 つのコミットを cherry-pick します。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;index.html&lt;/code&gt; を開いて実際に電卓を操作します。&lt;/p&gt;</description></item><item><title>電卓をチームで開発してみよう～4. 開発者 2 のコーディング</title><link>https://portfolio.fairy-select.com/posts/articles/_team-development/calculator/4/</link><pubDate>Fri, 12 Feb 2021 00:00:00 +0900</pubDate><guid>https://portfolio.fairy-select.com/posts/articles/_team-development/calculator/4/</guid><description>&lt;p&gt;今回は開発者 2 について、コードを書いていきます。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;作業するブランチは &lt;code&gt;developer-2&lt;/code&gt; です。&lt;/p&gt;
&lt;p&gt;開発者 1 の繰り返しになる部分もありますが、あらかじめ決めた条件を確認します。&lt;/p&gt;</description></item><item><title>電卓をチームで開発してみよう～3. 開発者 1 のコーディング</title><link>https://portfolio.fairy-select.com/posts/articles/_team-development/calculator/3/</link><pubDate>Fri, 05 Feb 2021 00:00:00 +0900</pubDate><guid>https://portfolio.fairy-select.com/posts/articles/_team-development/calculator/3/</guid><description>&lt;p&gt;ここからは実際に開発をしていきます。
GitHub で空のリポジトリを作成し、&lt;code&gt;developer-1&lt;/code&gt; ブランチと &lt;code&gt;developer-2&lt;/code&gt; ブランチを作成します。&lt;/p&gt;
&lt;p&gt;まず、開発者 1 について、コードを書いていきます。&lt;/p&gt;</description></item><item><title>電卓をチームで開発してみよう～2. 話し合いをせずに開発するために必要な情報</title><link>https://portfolio.fairy-select.com/posts/articles/_team-development/calculator/2/</link><pubDate>Fri, 29 Jan 2021 00:00:00 +0900</pubDate><guid>https://portfolio.fairy-select.com/posts/articles/_team-development/calculator/2/</guid><description>&lt;p&gt;ここからは、それぞれの開発者が独立して開発するために必要な情報の洗い出しを行います。&lt;/p&gt;
&lt;p&gt;電卓のボタンを押したとき、計算ロジック側との間で送受信するデータは次の通りです。&lt;/p&gt;</description></item><item><title>電卓をチームで開発してみよう～1. 開発条件</title><link>https://portfolio.fairy-select.com/posts/articles/_team-development/calculator/1/</link><pubDate>Fri, 22 Jan 2021 00:00:00 +0900</pubDate><guid>https://portfolio.fairy-select.com/posts/articles/_team-development/calculator/1/</guid><description>&lt;p&gt;当ブログ初のシリーズものです。今回のテーマは、&lt;/p&gt;
&lt;div class="alert primary"&gt;
&lt;span&gt;&lt;i data-feather="alert-circle"&gt;&lt;/i&gt;&lt;/span&gt;
&lt;span&gt;&lt;strong&gt;電卓をチームで開発してみよう&lt;/strong&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;です。このシリーズは週に 1 回のペースで公開していきますので、よろしくお願いいたします。&lt;/p&gt;</description></item><item><title>Docker in Docker を体験する～ブラウザでコードを書いて実行するアプリを Docker で作ってみた～</title><link>https://portfolio.fairy-select.com/posts/articles/create-repl-mock-app/</link><pubDate>Thu, 24 Dec 2020 07:00:00 +0900</pubDate><guid>https://portfolio.fairy-select.com/posts/articles/create-repl-mock-app/</guid><description>&lt;div class="alert info"&gt;
&lt;span&gt;&lt;i data-feather="info"&gt;&lt;/i&gt;&lt;/span&gt;
&lt;span&gt;&lt;strong&gt;こちらの記事は &lt;a href="https://qiita.com/advent-calendar/2020/docker" target="_blank" rel="noopener"&gt;Docker Advent Calendar 2020 - Qiita&lt;/a&gt; 25 日目の記事です。&lt;/strong&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;最近は IDE でコード補完の助けを受けながら開発をしている筆者。&lt;/p&gt;
&lt;p&gt;ずっとコード補完に頼りっきりではいつか困ったりしない？と思い始めています。&lt;/p&gt;</description></item><item><title>AtCoder のプログラミングコンテストに初めて参加しました</title><link>https://portfolio.fairy-select.com/posts/articles/pariticipate-atcoder-first-time/</link><pubDate>Sat, 05 Dec 2020 23:57:19 +0900</pubDate><guid>https://portfolio.fairy-select.com/posts/articles/pariticipate-atcoder-first-time/</guid><description>&lt;div class="alert info"&gt;
&lt;span&gt;&lt;i data-feather="info"&gt;&lt;/i&gt;&lt;/span&gt;
&lt;span&gt;&lt;strong&gt;こちらの記事は &lt;a href="https://qiita.com/advent-calendar/2020/competitive-programming" target="_blank" rel="noopener"&gt;競技プログラミング Advent Calendar 2020 - Qiita&lt;/a&gt; の 10 日目の記事です。&lt;/strong&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;始めて AtCoder のプログラミングコンテストに参加したので、その感想を書きます。&lt;/p&gt;
&lt;p&gt;今回参加したコンテストはこちらです。&lt;/p&gt;</description></item><item><title>とある開発環境の反向代理（リバースプロキシ）</title><link>https://portfolio.fairy-select.com/posts/articles/reverse-proxy-usage/</link><pubDate>Sun, 29 Nov 2020 00:03:21 +0900</pubDate><guid>https://portfolio.fairy-select.com/posts/articles/reverse-proxy-usage/</guid><description>&lt;h2 id="mailbox_with_mail-背景"&gt;&amp;#x1f4ec; 背景&lt;/h2&gt;
&lt;p&gt;むかしむかしあるところに、某広告効果測定ツールの開発チームがいました。&lt;/p&gt;
&lt;p&gt;そこには、 Web サイトを訪問した際に裏で別ドメインの JavaScript を読み込んで実行し、そのスクリプトがさらに別ドメインの PHP にデータを送信してアクセスを計測する、という仕組みがありました。&lt;/p&gt;</description></item><item><title>たった 1 行だけど OSS にコミットした</title><link>https://portfolio.fairy-select.com/posts/articles/commit-oss-first-time/</link><pubDate>Sat, 14 Nov 2020 11:35:43 +0900</pubDate><guid>https://portfolio.fairy-select.com/posts/articles/commit-oss-first-time/</guid><description>&lt;p&gt;このサイトで使っている Hugo のテーマに不具合を見つけて「どうせだしプルリク送るかー」と思ってプルリクを送ったらマージしてもらえたときのお話です。&lt;/p&gt;
&lt;h2 id="bug-見つけた不具合"&gt;&amp;#x1f41b; 見つけた不具合&lt;/h2&gt;
&lt;p&gt;&lt;img src="images/table-of-contents.png" alt="Table of contents"&gt;&lt;!-- @IGNORE PREVIOUS: link --&gt;&lt;/p&gt;</description></item><item><title>Hugo で立ち上げたブログの記事をカッコよく管理する</title><link>https://portfolio.fairy-select.com/posts/articles/hugo-posts-management/</link><pubDate>Tue, 10 Nov 2020 16:15:37 +0900</pubDate><guid>https://portfolio.fairy-select.com/posts/articles/hugo-posts-management/</guid><description>&lt;h2 id="bulb-まとめ"&gt;&amp;#x1f4a1; まとめ&lt;/h2&gt;
&lt;p&gt;
&lt;div class="alert info"&gt;
&lt;span&gt;&lt;i data-feather="info"&gt;&lt;/i&gt;&lt;/span&gt;
&lt;span&gt;&lt;strong&gt;Hugo でブログを立ち上げたとき、ブログの記事は別リポジトリで管理するとコミットログが汚くならない&lt;/strong&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;div class="alert info"&gt;
&lt;span&gt;&lt;i data-feather="info"&gt;&lt;/i&gt;&lt;/span&gt;
&lt;span&gt;&lt;strong&gt;CI/CD を使ってブログ記事のリポジトリをクローン・ビルドするパイプラインを組んでおけば、ブログ本体のソースを触る必要がなくなる&lt;/strong&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;/p&gt;</description></item></channel></rss>