Highlights
- Visited Tokyo DisneySea for the first time during the holiday season!
- Purchased a new chair for my home office.
- Opened my own blog website finally!
- I used to use Naver Blog but started this new blog website!
- dan-dev.me
- Why did I choose this domain name?... Nobody knows😅
- Invented a safe average salary calculation algorithm in TokyoDisneySea.
- I'll explain the algorithm later in this post.

Books
This month, I read...
- パスキーのすべて
- I work in an account platform and when I attended the internal meeting about Passkey, I couldn't understand some parts of the technical explanation. This book helped me fill in those gaps and gave me a clearer understanding of how Passkeys function in authentication systems.
- ふつうの Linux プログラミング
- Worked on HTTP server implementation only a little bit after work.
- Soft Skills: The Software Developer's Life Manual
- My team leader recommended this book to me! and started reading this book. I haven't read all of it yet, but so far, I found some of important points about carrer development.
There are other books that my team leader recommended to me and I plan to read them in the future. Some of them are about team management and leadership.
TokyoDisneySea
I went to TokyoDisneySea with the members who participated in the internal hackathon event at my company and they are my 同期!
"同期" means colleagues who joined the company in the same year.
We got a prize at the hackathon! and we went there together to celebrate our victory!
Let me share some photos from TokyoDisneySea!




Some people say there is a voice actor behind Crush, but it's not. Look at this diagram! The actual Crush comes to us through a wall of glass!
This is how Turtle Talk works.

We had a dinner at FantasySprings. This hamburger is called "Dream Burger" and it was full of dreams🤔!
Introduction to Safe Average Salary Calculation Algorithm
While having the dinner in TokyoDisneySea, we discussed how we can calculate average salary safely without leaking individual salaries.
One of my 同期 brought up an interesting solution to calculate average salary without leaking individual salaries.
May be this algorithm is already known, but I haven't heard about it before, so let me share it here.
In this section, I will explain the algorithm.
Requirements
- Calculate average salaries of N people without leaking individual salaries.
- There may be someone who tries to know individual salaries maliciously.
- The algorithm should be robust against such attempts.
Situation to consider
- There are N people: p_1, p_2, ..., p_N
- Calculate the average with iPhone's calculator app.
- Each participant enters their value into the calculator app in order.
Algorithm
Algorithm explanation should be correct and understandable. so, I provide English and Japanese versions so that readers can choose the one they are more comfortable with.
Japanese Version
注意:ブラウザの翻訳機能を使うと、この日本語の説明が正しく表示されない可能性があります。一旦オフにしてから読むことを推奨します。
-
初期化ステップ
- 参加者のうち 1 人が初期値
seedを決め、電卓アプリに入力する。この初期値を決める人をp_seedとする。 seedはどんな値でも良いが、給与らしい値である必要がある。seedは他の参加者に秘密にしておく必要がある。
- 参加者のうち 1 人が初期値
-
加算ステップ(2 ラウンド行う)
- 参加者が 1 人ずつ給与を電卓アプリに入力する。
- しかし
p_seedは一番最後に入力する必要がある。もしp_seedが 2 番目に給与入力を行う場合、p_seedはp_1の給与を知ることができる。推測を難しくするために、一番最後に入力させる。
- しかし
- 2 ラウンドのうち、どちらか一方は本当の給与、どちらか一方はダミー給与を入力する。
- どちらのラウンドで本当の給与を入力するかは参加者が自由に決めて良い。
- ダミー給与は給与らしい値であることを推奨する。
- 入力したダミー給与を覚えておくこと。
- 参加者が 1 人ずつ給与を電卓アプリに入力する。
-
減算フェーズ
- 加算フェーズで入力したダミー給与を 1 人ずつ減算していく。
-
平均計算フェーズ
- 最終的な合計値を N で割り、平均給与を計算する。
English Version
-
Initialization Step
- One of the participants chooses an initial value called
seedand enters it into the calculator app. This participant is referred to asp_seed. - The
seedcan be any value, but it should resemble a plausible salary. - The
seedmust be kept secret from the other participants.
- One of the participants chooses an initial value called
-
Addition Step (performed in 2 rounds)
- Each participant takes turns entering a salary value into the calculator app.
- However,
p_seedmust enter their value last. Ifp_seedenters their value second, for example, they would be able to learn the salary ofp_1. To make inference more difficult,p_seedmust always go last.
- However,
- Across the two rounds, each participant must enter their real salary in one round and a dummy salary in the other.
- Participants may freely choose which round contains their real salary.
- The dummy salary should look like a plausible salary.
- Participants must remember the dummy salary they entered.
- Each participant takes turns entering a salary value into the calculator app.
-
Subtraction Phase
- Each participant subtracts the dummy salary they entered during the addition phase.
-
Average Calculation Phase
- Divide the final total by N to compute the average salary.
New Chair for My Home Office
I bought the Aeron Chair above at Herman Miller Shop in Shibuya!
