<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Reveal My Ignorance</title><link>https://mather.github.io/</link><description>Recent content on Reveal My Ignorance</description><generator>Hugo</generator><language>ja</language><lastBuildDate>Sun, 03 May 2026 14:32:28 +0900</lastBuildDate><atom:link href="https://mather.github.io/index.xml" rel="self" type="application/rss+xml"/><item><title>開発したもの</title><link>https://mather.github.io/pages/dev/</link><pubDate>Sun, 03 May 2026 14:32:28 +0900</pubDate><guid>https://mather.github.io/pages/dev/</guid><description>&lt;h2 id="synctimer"&gt;
 SyncTimer
 &lt;a class="heading-link" href="#synctimer"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://sync-timer.netlify.app/" class="external-link" target="_blank" rel="noopener"&gt;https://sync-timer.netlify.app/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/mather/sync-timer" class="external-link" target="_blank" rel="noopener"&gt;リポジトリ&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;YouTubeなどの同時配信用のタイマーとして開発したもの。無料で提供中。&lt;/p&gt;
&lt;p&gt;マイナスからスタートできるのでカウントダウンからそのまま動画再生時間になる。&lt;/p&gt;
&lt;p&gt;開発履歴は&lt;a href="https://mather.github.io/tags/synctimer/" &gt;ブログ&lt;/a&gt;にて公開中。&lt;/p&gt;
&lt;p&gt;技術スタック：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://elm-lang.org/" class="external-link" target="_blank" rel="noopener"&gt;Elm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Netlify (Hosting + CI)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="leaction"&gt;
 LeacTion!
 &lt;a class="heading-link" href="#leaction"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://leaction.web.app/" class="external-link" target="_blank" rel="noopener"&gt;https://leaction.web.app/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/tegehoge/leaction" class="external-link" target="_blank" rel="noopener"&gt;リポジトリ&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;オフライン・オンラインでの勉強会で登壇者へ質問や同意・応援などを送れるサービス。無料で提供中。&lt;/p&gt;
&lt;p&gt;LT + Reaction で LeacTion! と命名した。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://tegehoge.connpass.com/" class="external-link" target="_blank" rel="noopener"&gt;Webナイト宮崎&lt;/a&gt;などのイベントの際に使用していた。&lt;/p&gt;
&lt;p&gt;特徴：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;イベント管理者だけユーザー登録すれば参加者は自由にログイン不要で投稿できる&lt;/li&gt;
&lt;li&gt;他の人の投稿に「いいね」を送れる&lt;/li&gt;
&lt;li&gt;リアルタイムに投稿が反映される&lt;/li&gt;
&lt;li&gt;一つのイベントに複数のトークが設定できるので、話題がゴチャゴチャにならない。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;技術スタック：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.solidjs.com/" class="external-link" target="_blank" rel="noopener"&gt;Solid.js&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;GitHub Actions&lt;/li&gt;
&lt;li&gt;Firebase
&lt;ul&gt;
&lt;li&gt;Hosting&lt;/li&gt;
&lt;li&gt;Auth&lt;/li&gt;
&lt;li&gt;Firestore&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>2022から2025までのSyncTimerのアクセスを振り返ってみる</title><link>https://mather.github.io/posts/2026/04/analysis-synctimer-2022-2025/</link><pubDate>Thu, 30 Apr 2026 01:12:16 +0900</pubDate><guid>https://mather.github.io/posts/2026/04/analysis-synctimer-2022-2025/</guid><description>&lt;p&gt;&lt;a href="https://sync-timer.netlify.app/" class="external-link" target="_blank" rel="noopener"&gt;SyncTimer&lt;/a&gt;を開発してから6年ほど経とうとしています。
それほど手を加えているわけではないんですが、今どのくらいアクセスされているのか気になったので昨年までの推移を振り返ってみようと思いました。&lt;/p&gt;
&lt;h2 id="ga4のデータから"&gt;
 GA4のデータから
 &lt;a class="heading-link" href="#ga4%e3%81%ae%e3%83%87%e3%83%bc%e3%82%bf%e3%81%8b%e3%82%89"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;2022年から2025年末までのアクティブユーザー数と新規ユーザー数の推移はこんな感じになっています。&lt;/p&gt;
&lt;p&gt;&lt;img src="SyncTimerAnalytics.png" alt="SyncTimerユーザー推移グラフ"&gt;&lt;/p&gt;
&lt;p&gt;ありがたいことにずっと右肩上がりにユーザーが増え続けている状況です。
時々新規ユーザー数が跳ね上がっているときがありますが、こういうときはフォロー数の多い有名な方の配信で概要欄に載っていたり、Xなどで紹介されたりしたときのようです。&lt;/p&gt;
&lt;p&gt;折れ線グラフの真ん中に入っている曲線はトレンドラインといって、グラフのおおよその形を多項式で表現してみたものです。アクティブユーザーはおおよそ2次関数でフィットできました。新規ユーザーの増加はおおよそ線形（1次関数）です。
このことから、次のようなことが推測できます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SyncTimerを使う人が増えて紹介いただける数が増えたことで、新規ユーザーも増えている。（あるいは同時配信などの配信数がどんどん増えている）&lt;/li&gt;
&lt;li&gt;リピーターが多い。加速度・速度・距離の関係のように、新規ユーザー数の増える勢い（加速度）に対して2次関数的にアクティブユーザー（距離）が増えている。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;2023年頃にもゆるやかな右肩上がりだなーと思っていましたが、まさか2次の勢いでアクティブユーザー数が増えていたのはちょっと驚きでした。
たくさんのリピーターに使ってもらえて、開発者としてはとても嬉しいです。&lt;/p&gt;
&lt;h2 id="今後について"&gt;
 今後について
 &lt;a class="heading-link" href="#%e4%bb%8a%e5%be%8c%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;映像の時間に対してカウントダウンを並記してほしい、などいくつか要望は届いています。ただ、そのような機能要望についてはSyncTimerで対応する予定はありません。あくまで当初の設計である「マイナスからカウントダウンし、そのままカウントアップに入るタイマー」で行こうと思っています。&lt;/p&gt;
&lt;p&gt;また、このサービスによる収入はありませんし、本業にしっかりと取り組む必要があるため、これ以降の追加開発はないと思っていてください。（これまで何回か言ってますね…）&lt;/p&gt;
&lt;p&gt;もし、フォークして開発してみたい物好きな方がいれば、ご自由にお使いください。もちろん、うまくいかなくても責任は取れませんが…。&lt;/p&gt;
&lt;p&gt;また機会があればアクセス数などの状況を確認して報告できるかもしれません。&lt;/p&gt;
&lt;p&gt;それでは。&lt;/p&gt;</description></item><item><title>プロフィール - Profile</title><link>https://mather.github.io/pages/profile/</link><pubDate>Sat, 18 Apr 2026 00:00:00 +0900</pubDate><guid>https://mather.github.io/pages/profile/</guid><description>&lt;p&gt;(2026 年 4 月現在の情報です)&lt;/p&gt;
&lt;h2 id="桑畑英資-kuwahata-eisuke"&gt;
 桑畑英資 (Kuwahata Eisuke)
 &lt;a class="heading-link" href="#%e6%a1%91%e7%95%91%e8%8b%b1%e8%b3%87-kuwahata-eisuke"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;宮崎県宮崎市在住の 43 歳男性&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;認定こども園「セミナーレ潮見こどもの家」園長&lt;/li&gt;
&lt;li&gt;元ソフトウェアエンジニア（開発、教育）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="略歴---history"&gt;
 略歴 - History
 &lt;a class="heading-link" href="#%e7%95%a5%e6%ad%b4---history"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;宮崎県宮崎市出身&lt;/li&gt;
&lt;li&gt;宮崎県立宮崎西高等学校（通称：西高）理数科卒業&lt;/li&gt;
&lt;li&gt;一浪し京都大学理学部へ入学&lt;/li&gt;
&lt;li&gt;京都大学、京都大学大学院で数学を専攻し修士課程修了
&lt;ul&gt;
&lt;li&gt;メインテーマは代数学（整数論・暗号理論）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;東京で就職
&lt;ul&gt;
&lt;li&gt;デジタルフォレスト
&lt;ul&gt;
&lt;li&gt;アクセス解析サービスの開発、QA、インフラ整備、運用&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;GeoCloud
&lt;ul&gt;
&lt;li&gt;タクシー配車業務システムのスタートアップ開発&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;パイプドビッツ
&lt;ul&gt;
&lt;li&gt;マーケティングサービスのメールシステム保守開発&lt;/li&gt;
&lt;li&gt;投票券用のシリアルコードの作成、投票システムの開発・運用 (ref. &lt;a href="https://gihyo.jp/book/2014/978-4-7741-6205-8" class="external-link" target="_blank" rel="noopener"&gt;過負荷に耐えるWebの作り方 - 技術評論社&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;宮崎で活動開始
&lt;ul&gt;
&lt;li&gt;アラタナ
&lt;ul&gt;
&lt;li&gt;EC システムの保守・開発&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;フリーランス
&lt;ul&gt;
&lt;li&gt;ソフトウェア開発&lt;/li&gt;
&lt;li&gt;エンジニアのメンター&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;セミナーレ潮見こどもの家
&lt;ul&gt;
&lt;li&gt;認定こども園の事務職員から園長へ&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="好きなこと---favorites"&gt;
 好きなこと - Favorites
 &lt;a class="heading-link" href="#%e5%a5%bd%e3%81%8d%e3%81%aa%e3%81%93%e3%81%a8---favorites"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;スキューバダイビング
&lt;ul&gt;
&lt;li&gt;PADI MSD 取得&lt;/li&gt;
&lt;li&gt;経験本数は約 400 本&lt;/li&gt;
&lt;li&gt;今までで最高のツアー → コモド諸島クルーズ&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;全般的にカメラガジェット好き
&lt;ul&gt;
&lt;li&gt;ドローン&lt;/li&gt;
&lt;li&gt;全天球カメラ&lt;/li&gt;
&lt;li&gt;スマホ用スタビライザー&lt;/li&gt;
&lt;li&gt;VR ゴーグル&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;数学
&lt;ul&gt;
&lt;li&gt;代数(整数論)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;プログラミング言語
&lt;ul&gt;
&lt;li&gt;関数型言語 (Scala, Elm, Haskell など)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="苦手なこと---avoids"&gt;
 苦手なこと - Avoids
 &lt;a class="heading-link" href="#%e8%8b%a6%e6%89%8b%e3%81%aa%e3%81%93%e3%81%a8---avoids"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;満員電車&lt;/li&gt;
&lt;li&gt;わさび・からし&lt;/li&gt;
&lt;li&gt;酒（全く飲みません）&lt;/li&gt;
&lt;li&gt;ハイスピード（ジェットコースターとか）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="スキルセット---skills"&gt;
 スキルセット - Skills
 &lt;a class="heading-link" href="#%e3%82%b9%e3%82%ad%e3%83%ab%e3%82%bb%e3%83%83%e3%83%88---skills"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;プログラミング言語
&lt;ul&gt;
&lt;li&gt;Java&lt;/li&gt;
&lt;li&gt;Scala&lt;/li&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;Ruby&lt;/li&gt;
&lt;li&gt;C&lt;/li&gt;
&lt;li&gt;JavaScript, TypeScript&lt;/li&gt;
&lt;li&gt;Golang&lt;/li&gt;
&lt;li&gt;Elm&lt;/li&gt;
&lt;li&gt;PHP (あまり得意ではない)&lt;/li&gt;
&lt;li&gt;趣味程度に Haskell など&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Web フレームワーク
&lt;ul&gt;
&lt;li&gt;Play Framework&lt;/li&gt;
&lt;li&gt;Ruby on Rails (知識としてはだいぶ古い)&lt;/li&gt;
&lt;li&gt;Flask&lt;/li&gt;
&lt;li&gt;Vue, React, Solid, Nuxt.js, Next.js&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ミドルウェア
&lt;ul&gt;
&lt;li&gt;PostgreSQL&lt;/li&gt;
&lt;li&gt;Redis&lt;/li&gt;
&lt;li&gt;MongoDB&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;サービス
&lt;ul&gt;
&lt;li&gt;AWS (Lambda, DynamoDB, etc&amp;hellip;)
&lt;ul&gt;
&lt;li&gt;Serverless Framework&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;GCP (BigQuery, Cloud Functions, etc)&lt;/li&gt;
&lt;li&gt;Firebase&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;設計手法
&lt;ul&gt;
&lt;li&gt;DDD (Domain Driven Design, ドメイン駆動設計)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;マネジメント
&lt;ul&gt;
&lt;li&gt;アジャイル&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="思考の癖"&gt;
 思考の癖
 &lt;a class="heading-link" href="#%e6%80%9d%e8%80%83%e3%81%ae%e7%99%96"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;数学を考えるときと同じような癖のようなものがあります。&lt;/p&gt;</description></item><item><title>SyncTimerのコードをいくつかのモジュールに分解した</title><link>https://mather.github.io/posts/2023/03/synctimer-split-modules/</link><pubDate>Mon, 13 Mar 2023 17:28:02 +0900</pubDate><guid>https://mather.github.io/posts/2023/03/synctimer-split-modules/</guid><description>&lt;p&gt;これまで &lt;code&gt;Main.elm&lt;/code&gt; だけで作ってきた Elm のコードが増えて見通しが悪くなってきたので、いくつかのモジュールに分解した。
今回はリファクタリングなので機能の変更はなし。&lt;/p&gt;</description></item><item><title>SyncTimerにフォントを追加した</title><link>https://mather.github.io/posts/2023/02/synctimer-font/</link><pubDate>Sat, 25 Feb 2023 18:00:00 +0900</pubDate><guid>https://mather.github.io/posts/2023/02/synctimer-font/</guid><description>Loraというセリフ体のフォントを追加してタイマー表示で選択可能にしてみた</description></item><item><title>早送り・早戻しボタンを追加してみた</title><link>https://mather.github.io/posts/2022/12/add-ff-bwd-button/</link><pubDate>Fri, 09 Dec 2022 19:40:52 +0900</pubDate><guid>https://mather.github.io/posts/2022/12/add-ff-bwd-button/</guid><description>&lt;p&gt;エゴサーチしながらライブを拝見してたら、
とある方がタイマーを停止したときのコメントを話していたのでフィードバックとして受け取り、
簡単ながら「1秒戻る・1秒進める」ボタンを追加してみた。&lt;/p&gt;</description></item><item><title>カウントダウン時の残り時間をバーで視覚化する</title><link>https://mather.github.io/posts/2022/12/add-progress-countdown/</link><pubDate>Wed, 07 Dec 2022 19:00:17 +0900</pubDate><guid>https://mather.github.io/posts/2022/12/add-progress-countdown/</guid><description>&lt;p&gt;カウントダウンの表示に追加要素として進み具合をバーで視覚化できるようにしてみた。&lt;/p&gt;</description></item><item><title>Mini Type Puzzle</title><link>https://mather.github.io/posts/2022/12/mini-type-puzzle/</link><pubDate>Wed, 07 Dec 2022 17:39:53 +0900</pubDate><guid>https://mather.github.io/posts/2022/12/mini-type-puzzle/</guid><description>Elm アドベントカレンダー 2022 の記事。 型がカチッとはまって意図通りの関数が作れたときは気持ちいいよね。</description></item><item><title>Elmアプリケーションとしての規模を小さくする</title><link>https://mather.github.io/posts/2022/12/reduce-elm-scope/</link><pubDate>Sun, 04 Dec 2022 17:00:00 +0900</pubDate><guid>https://mather.github.io/posts/2022/12/reduce-elm-scope/</guid><description>&lt;p&gt;SyncTimerのリファクタリングを行った。今回のテーマは「どこまでをElmで管理すべきか？」ということ。&lt;/p&gt;</description></item><item><title>SyncTimer の紹介ページを作った</title><link>https://mather.github.io/posts/2022/11/about-synctimer-page/</link><pubDate>Sun, 27 Nov 2022 18:40:11 +0900</pubDate><guid>https://mather.github.io/posts/2022/11/about-synctimer-page/</guid><description>&lt;p&gt;タイトルそのままなのだが、これまでモーダルとして表示していた使い方動画なども紹介ページへ移動してみた。
これはもともと存在していたのだが、Github Pages として公開しておりアプリケーションと同じドメインではなかったので、同じドメインに &lt;code&gt;/about&lt;/code&gt; として表示するようにした。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://sync-timer.netlify.app/about/" class="external-link" target="_blank" rel="noopener"&gt;https://sync-timer.netlify.app/about/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;モーダルのほうがわかりやすかっただろうか？という疑問もあるが、一旦公開することにした。&lt;/p&gt;</description></item><item><title>時間の表示を切り替えられるようにした</title><link>https://mather.github.io/posts/2022/11/sync-timer-hide-hours/</link><pubDate>Fri, 18 Nov 2022 00:29:11 +0900</pubDate><guid>https://mather.github.io/posts/2022/11/sync-timer-hide-hours/</guid><description>&lt;p&gt;タイマーの利用状況をたまに観察していると、1時間未満（アニメなどはおおよそ30分未満）の動画再生などに使われるケースもそれなりに多いため、
「時・分・秒」ではなく「分・秒」の表示だけに切り詰めたほうがレイアウトとしても便利かもしれない、と思ったので機能を追加してみた。&lt;/p&gt;</description></item><item><title>SyncTimerのリファクタリング</title><link>https://mather.github.io/posts/2022/11/sync-timer-refactor/</link><pubDate>Tue, 15 Nov 2022 22:32:53 +0900</pubDate><guid>https://mather.github.io/posts/2022/11/sync-timer-refactor/</guid><description>&lt;p&gt;&lt;a href="https://github.com/mather/sync-timer/pull/45" class="external-link" target="_blank" rel="noopener"&gt;SyncTimerのコードをリファクタリング&lt;/a&gt;してみた。&lt;/p&gt;
&lt;p&gt;リファクタリングとは、動作を変更させずにコードを整理する作業のことである。
繰り返している無駄な機能をまとめたり、わかりやすく整理することで保守しやすくすることができる。&lt;/p&gt;</description></item><item><title>SyncTimerのレイアウトを変更</title><link>https://mather.github.io/posts/2022/11/synctimer-layout-change/</link><pubDate>Thu, 10 Nov 2022 10:42:00 +0900</pubDate><guid>https://mather.github.io/posts/2022/11/synctimer-layout-change/</guid><description>&lt;p&gt;開始・リセットボタンとタイマーの表示設定の配置を変更した。&lt;/p&gt;</description></item><item><title>SyncTimer に Google Analytics を導入した</title><link>https://mather.github.io/posts/2022/04/google-analytics/</link><pubDate>Sat, 30 Apr 2022 19:00:00 +0900</pubDate><guid>https://mather.github.io/posts/2022/04/google-analytics/</guid><description>&lt;p&gt;たぶん使ってる人はいるんだろうなー、と思いつつも利用報告をしてくれるユーザーはほぼいない。
それは当然で、報告するメリットもないし、不具合があったり使い勝手が悪いなーと思っても似たような手段はいくらでもあるので別のツールに切り替えるだけになる。
だったら自分で調べるしか無いよね、ということで Google Analytics を導入して実際のアクセスを調査するしか無いのである。&lt;/p&gt;
&lt;p&gt;今回は Elm で書いたアプリケーション内のイベントをGA4に送信する実装のお話。&lt;/p&gt;</description></item><item><title>SyncTimerの使い方動画を作りました</title><link>https://mather.github.io/posts/2022/03/synctimer-usage-movie/</link><pubDate>Tue, 15 Mar 2022 19:00:00 +0900</pubDate><guid>https://mather.github.io/posts/2022/03/synctimer-usage-movie/</guid><description>&lt;p&gt;SyncTimerはシンプルなので、使い方は細かく書かなくても分かってくれるかなーと思ってたので書かなかったが、
やはり具体的な使い方を説明したほうがいいかなーと思ったので動画を作って公開した。&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/m1Basm-TqGU?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
 &lt;/div&gt;

&lt;p&gt;おおよその内容は&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SyncTimerってどんなタイマーか&lt;/li&gt;
&lt;li&gt;設定の変更方法&lt;/li&gt;
&lt;li&gt;URLが連動していること&lt;/li&gt;
&lt;li&gt;OBSでの使い方の例&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;といったところ。使う人が迷わないといいな。&lt;/p&gt;</description></item><item><title>続・ランダム生成IDの衝突確率について</title><link>https://mather.github.io/posts/2022/02/another-form-for-hash-collision/</link><pubDate>Thu, 10 Feb 2022 17:25:18 +0900</pubDate><guid>https://mather.github.io/posts/2022/02/another-form-for-hash-collision/</guid><description>&lt;p&gt;&lt;a href="https://mather.github.io/posts/2022/02/hash-collision" &gt;前回&lt;/a&gt; では数学的な側面として誕生日パラドックスに関する確率を求めた。&lt;/p&gt;
&lt;p&gt;$$ P_{\text{nc}}(n) = \frac{M}{M}\frac{M-1}{M} \dots \frac{M-(n-1)}{M} = \frac{M!}{M^n (M-n)!} $$&lt;/p&gt;
&lt;p&gt;$$ P_{\text{c}}(n) = 1 - P_{\text{nc}}(n) = 1 - \frac{M!}{M^n (M-n)!} $$&lt;/p&gt;
&lt;p&gt;これは余事象である「一度も衝突しない確率」を求めることで計算したが、余事象を使わずに求めることができるだろうか？&lt;/p&gt;
&lt;h2 id="余事象を使わない方法"&gt;
 余事象を使わない方法
 &lt;a class="heading-link" href="#%e4%bd%99%e4%ba%8b%e8%b1%a1%e3%82%92%e4%bd%bf%e3%82%8f%e3%81%aa%e3%81%84%e6%96%b9%e6%b3%95"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;「 \(n\) 回目までに衝突が発生する確率」を求めるには&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1回目に「初めて」衝突する確率 \(P_\text{fc}(1)\)( = 0 )&lt;/li&gt;
&lt;li&gt;2回目に「初めて」衝突する確率 \(P_\text{fc}(2)\)&lt;/li&gt;
&lt;li&gt;&amp;hellip;&lt;/li&gt;
&lt;li&gt;\(n\) 回目に「初めて」衝突する確率 \(P_\text{fc}(n)\)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;をそれぞれ求めて足し合わせれば良い。
注意すべきポイントはそれぞれの「初めて衝突する事象」が重複していないことである。&lt;/p&gt;
&lt;p&gt;具体的に求めていこう。&lt;/p&gt;
&lt;p&gt;\(n = 1\) ならばどれが選ばれても衝突しないので、&lt;/p&gt;
&lt;p&gt;$$ P_\text{fc}(1) = \frac{0}{M} = 0$$&lt;/p&gt;
&lt;p&gt;となる。次に \(n = 2\) ならば、1つ目は何を選んでもよく、最初に選んだ1つと一致した場合なので、&lt;/p&gt;
&lt;p&gt;$$ P_\text{fc}(2) = \frac{M}{M}\frac{1}{M} = \frac{1}{M}$$&lt;/p&gt;
&lt;p&gt;となる。続いて、 \(n = 3\) ならば、2つ目までは衝突せず、先に選ばれた2つと一致した場合なので、&lt;/p&gt;</description></item><item><title>ランダムに生成したIDが衝突する確率の議論</title><link>https://mather.github.io/posts/2022/02/hash-collision/</link><pubDate>Thu, 03 Feb 2022 20:00:00 +0900</pubDate><guid>https://mather.github.io/posts/2022/02/hash-collision/</guid><description>&lt;p&gt;「ランダムなIDをあるパターンに従って生成するとき、どう設計すべきか？」という質問があったので技術的な側面と数学的な側面で説明してみよう。&lt;/p&gt;</description></item><item><title>同時視聴配信用のタイマーを作った話</title><link>https://mather.github.io/posts/2021/08/sync-timer/</link><pubDate>Mon, 16 Aug 2021 16:43:12 +0900</pubDate><guid>https://mather.github.io/posts/2021/08/sync-timer/</guid><description>SyncTimerを作るきっかけと、どんなライブラリを使っているかの話</description></item><item><title>自分が感じる東京と宮崎の勉強会の違い</title><link>https://mather.github.io/posts/2019/12/09/miyazaki_meetups/</link><pubDate>Mon, 09 Dec 2019 14:01:16 +0900</pubDate><guid>https://mather.github.io/posts/2019/12/09/miyazaki_meetups/</guid><description>&lt;p&gt;&lt;a href="https://qiita.com/advent-calendar/2019/miyazaki" class="external-link" target="_blank" rel="noopener"&gt;宮崎 IT 関連勉強会 Advent Calendar 2019&lt;/a&gt; 9 日目の記事です。
投稿がものすごく遅れてしまい申し訳ない…。&lt;/p&gt;
&lt;p&gt;数年前まで東京でお仕事をしていたときにも勉強会に参加していたのですが、宮崎でも積極的に勉強会に参加するようになって思ったことをつらつらと書いてみます。&lt;/p&gt;
&lt;h2 id="東京の場合"&gt;
 東京の場合
 &lt;a class="heading-link" href="#%e6%9d%b1%e4%ba%ac%e3%81%ae%e5%a0%b4%e5%90%88"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;まずはそもそもエンジニア を含む人口密度が大きいために、勉強会の開催数や参加人数がものすごく多いです。
そのため、こんなことが起こります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;細分化 : 地域型、専門化、ニッチな領域の勉強会&lt;/li&gt;
&lt;li&gt;参加枠が埋まりやすいためとりあえずで登録する人がいるため、キャンセル率がそれなりに高く、キャンセル連絡もなく来ないケースも多い&lt;/li&gt;
&lt;li&gt;ピラミッド構造 : エヴァンジェリスト、積極的にコミュニティ運営する人、ある程度質問などをする人、聞くだけの人などに分かれやすい&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="宮崎の場合"&gt;
 宮崎の場合
 &lt;a class="heading-link" href="#%e5%ae%ae%e5%b4%8e%e3%81%ae%e5%a0%b4%e5%90%88"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;エンジニアの人口密度が低いです。そのため、当然ながら勉強会の開催頻度もそこまで多くないです。
東京の場合とは逆に次のような状況です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;総合化 : 各回でテーマはそれなりに決めるけど、細かすぎず参加しやすいテーマを選ぶ傾向がある&lt;/li&gt;
&lt;li&gt;キャンセル率が低い（これは僕も結構驚き）&lt;/li&gt;
&lt;li&gt;ある程度定番の登壇者や LT 登壇者がいる&lt;/li&gt;
&lt;li&gt;多くても 30 人程度なので、参加者の顔が認識しやすく、質問とかはしやすい&lt;/li&gt;
&lt;li&gt;ゆるふわ&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="まとめ"&gt;
 まとめ
 &lt;a class="heading-link" href="#%e3%81%be%e3%81%a8%e3%82%81"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;僕自身は良い悪いということを論じるつもりはなく、人口密度の違いによってコミュニティの形は自然とこのような違いになっていくんだと思います。&lt;/p&gt;
&lt;p&gt;宮崎は点と点の結びつきでアットホームなコミュニティが形成されている面白い場所だと感じています。
そのようなコミュニティをより盛り上げていくために、会社という枠を超えたところでエンジニア同士の会話や意見交換を楽しむ場として勉強会の形を模索していくことになるでしょう。&lt;/p&gt;
&lt;p&gt;これからは地方を拠点として活動するエンジニアの幅も大きくなってきて、ワーケーションとかフルリモートで活動される方も増えてくると思います。
そのような方々と接点を作る場としても、定期開催（または随時思いつきで開催）される勉強会を積極的に作っていきたいですね。&lt;/p&gt;</description></item><item><title>ポートフォリオサイトを Hugo で Github Pages + Github Actions で構築する話</title><link>https://mather.github.io/posts/2019/12/08/hugo_with_github_pages/</link><pubDate>Sat, 07 Dec 2019 23:57:04 +0900</pubDate><guid>https://mather.github.io/posts/2019/12/08/hugo_with_github_pages/</guid><description>&lt;p&gt;&lt;a href="https://qiita.com/advent-calendar/2019/miyazaki" class="external-link" target="_blank" rel="noopener"&gt;宮崎 IT 関連勉強会 Advent Calendar 2019&lt;/a&gt; 8 日目の記事です。&lt;/p&gt;
&lt;p&gt;皆さん、Github 活用してますか？&lt;/p&gt;
&lt;p&gt;Github には Github Pages という機能があり、静的サイトのホスティングを行うことができます。
特に、 &lt;code&gt;[アカウント名].github.io&lt;/code&gt; という名前のリポジトリの場合はドメイン直下のページが作成できます。&lt;/p&gt;
&lt;p&gt;参考: &lt;a href="https://help.github.com/ja/github/working-with-github-pages/about-github-pages#github-pages-%E3%82%B5%E3%82%A4%E3%83%88%E3%81%AE%E7%A8%AE%E9%A1%9E" class="external-link" target="_blank" rel="noopener"&gt;GitHub Pages サイトの種類&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;それに加えて、&lt;a href="https://github.blog/changelog/2019-11-11-github-actions-is-generally-available/" class="external-link" target="_blank" rel="noopener"&gt;Github Actions が一般に公開されました&lt;/a&gt;。
これは Push などのイベントをトリガーとしてビルド、テスト、デプロイなどが自動的に実行できる仕組みです。いわゆる CI(継続的インテグレーション)や CD(継続的デプロイ)として機能させることができますし、他にもプルリクのレビュー補助や通知などの機能にも利用できるでしょう。&lt;/p&gt;
&lt;p&gt;これらを組み合わせると、以下のようなワークフローが可能になります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;静的サイトジェネレーター(Hugo, Jekyll, etc&amp;hellip;) でサイトを作る&lt;/li&gt;
&lt;li&gt;ローカルでレビューし、問題なければ指定のブランチにプッシュ&lt;/li&gt;
&lt;li&gt;Github Actions でプッシュを検知し、静的サイトをビルド&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[アカウント名].github.io&lt;/code&gt; の場合、ビルド完了した静的サイトを &lt;code&gt;master&lt;/code&gt; ブランチにデプロイ
&lt;ul&gt;
&lt;li&gt;それ以外のリポジトリの場合は &lt;code&gt;gh-pages&lt;/code&gt; ブランチがデプロイ先となります&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;今回はこれを &lt;a href="https://gohugo.io/" class="external-link" target="_blank" rel="noopener"&gt;Hugo&lt;/a&gt; でやってみよう、という話です。&lt;/p&gt;
&lt;h2 id="ポートフォリオを作る"&gt;
 ポートフォリオを作る
 &lt;a class="heading-link" href="#%e3%83%9d%e3%83%bc%e3%83%88%e3%83%95%e3%82%a9%e3%83%aa%e3%82%aa%e3%82%92%e4%bd%9c%e3%82%8b"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Hugo をインストールします。Mac なので Homebrew でインストールできます。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ brew install hugo
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;今回は空っぽの Jekyll サイト(5 年ほど前に作って放置してた)を削除して作り直しますので、既存のファイルを削除したあとは以下のように Hugo の初期化を行います。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ hugo new site . --force
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Hugo のテーマはシンプルな &lt;a href="https://themes.gohugo.io/hermit/" class="external-link" target="_blank" rel="noopener"&gt;hermit&lt;/a&gt; にしてみました。
個人的にはこのくらい落ち着いた色合いが好みです。&lt;/p&gt;</description></item></channel></rss>