KOMIYA Atsushi
banner
k11i.me
KOMIYA Atsushi
@k11i.me
東京でソフトウェアエンジニアをやってます。

https://github.com/komiya-atsushi
先日の Maru-Jan のハッシュ値云々の件に関して、そちらの方面に詳しそうな方の見解が投稿されてた。これ読んでふと思ったんだけど、麻雀牌をシャッフルするには内部ステートのビット数が ceil(log2(136!)) = 773 ビット以上の暗号論的擬似乱数生成器 (CSPRNG) を利用しないとすべてのパターンを網羅できないはずだがそのあたりの考慮ってされてるのだろうか? シードを CSPRNG に与える場合も当然 773 ビット以上でなければならず、となると記事中にある SHA256 はシャッフルのシード値算出としては不適切なわけで。
qiita.com/satokan3/ite...
【なんでも解説】オンライン麻雀「Maru-Jan」の牌操作防止システムに感じたこと - Qiita
こんばんは! GMOコネクト 執行役員CTOな菅野 哲(かんの さとる)です。 「暗号っぽい話」が出てくると湧いてくる暗号おじさんです。 本記事は技術的な観点からの分析です。Maru-Janの取り組みを批判するものではありません。むしろ、このような透明性向上の試みがゲー...
qiita.com
December 22, 2025 at 1:19 AM
麻雀そのものには全く興味がないんだけど、これはちょっと面白い話だった。あらかじめハッシュ値を公開することに関して、ゲームを有利に進められてしまうような脆弱性のようなものはないんだろうか。

www.maru-jan.com/content/deve...
開発者コラム 第10話 牌操作のモヤモヤを解決 | オンライン麻雀 Maru-Jan 公式サイト
開発者コラム 第10話について記載しています。オンライン麻雀 Maru-Jan は、全自動卓を徹底追求したリアルな麻雀です。会員登録は無料。全国の会員との対局では、麻雀の知識、経験を駆使して真剣勝負できます。
www.maru-jan.com
December 19, 2025 at 5:27 AM
個人のローカル開発環境に立てている DB サーバーに接続してデータを覗きいじくる用途で GUI クライアントを利用するのはアリだと思う一方で、プロダクション環境に接続する目的で GUI のクライアントの利用をカジュアルに勧めるのはよろしくないかな、と思うのであった。テーブルビューに表示するデータを取得するため GUI クライアントによって発行されるクエリが計算リソース的にサービス提供に影響を及ぼす可能性が排除しきれないだろうし、そもそもプロダクション環境のデータを絞り込みなしでカジュアルに覗いていいものではないことも多いだろうし…

zenn.dev/wata_tsugari...
DBクライアントのすすめ
zenn.dev
December 18, 2025 at 4:42 PM
最近、検証目的を兼ねて Spec Kit を利用した SDD を新規開発の既存開発の両方でいくつか実践していて思ったこととして、仕様をきっちり詰めてから AI に実装させる開発サイクルを回そうとすると諸々のドキュメントのレビューでしんどくなるので、手戻りが発生することを前提として仕様書 (spec. md) が概ね良さそうだったらさっさと実装フェーズに移行し、実装時もしくは実装完了後の動作確認で見つかった問題を仕様書にフィードバックするやり方の方がトータルの開発にかかる時間と投下する労力が小さくできる気がしている。
December 18, 2025 at 12:43 PM
ちょっとした気まぐれで Lorem ipsum を Google 翻訳してみたんだけど、「必要最小限の費用で」とか「職務上の義務を負うものではありません」とか、もとの文章にはまったく存在しないであろう訳文が出てきて興味深い。
December 18, 2025 at 5:05 AM
例えばある程度の開発ボリュームが見込まれる機能を開発するとして、人間中心のソフトウェア開発の場合は複数のプルリクエストに分割してコードレビューを依頼することになるだろうけど、水平スライス的なアプローチで開発すると個別のスライス(レイヤー)を PR に仕立てることになり、それぞれのスライスは妥当そうな実装に思えても機能全体を通して実装をみたときの妥当性は必ずしも保証されなかったりするわけで。対して垂直スライスなアプローチでの開発だと、レビュー対象となるそれぞれのスライスはそれで機能(の一部)として完結しているので入力から出力までの一連の処理の流れをたどりやすい利点があると思ってる。
December 18, 2025 at 12:59 AM
この記事の内容について揶揄する意図はまったくないとして、コーディングエージェントを使うにしても使わないにしても、水平スライス的なアプローチではなく垂直スライス的なアプローチで開発した方がなにかとよい気がしている。

zenn.dev/shinpr_p/art...
Claude Codeの「結合したら動かない」、5分の準備でだいぶ防げるようになった
zenn.dev
December 18, 2025 at 12:49 AM
子供用にと思ってニトリのパイプ枕を買ってみたが、なんか枕から新車の車内の臭いに近しい臭いがして、水洗いしてもあまり改善する気配もなく、これはどうしたらいいのだろうか…
December 15, 2025 at 5:04 PM
自宅のインターネット回線、マンション的に各戸への光配線が困難とのことらしいので現時点での高速化の手段としては au ひかりタイプ G への乗り換えしか残されていない。幸いにしてマンションはタイプ G に対応しているものの、プロバイダーの変更が伴うのが煩わしいんだよなあ…
December 8, 2025 at 2:12 AM
自宅の Wi-Fi ルーターを Google Wifi (初代) から ASUS のルーター (ゲーミングではないやつ) に買い替えたことでついに IPoE で通信できるようになり、fast.com 計測で 10Mbps ぐらいの速度向上が確認できた。
December 8, 2025 at 12:54 AM
AI vs AI の時代が訪れたことをひしひしと感じている
December 3, 2025 at 8:22 AM
Amazon アウトレットで中古品の Nintendo Switch ソフト (パッケージ版) を購入したら、パッケージがバキバキに割れた状態のものが配送されてきた。まあ、ゲームができればそれでいいんだけど、状態がどのようなものかはもうちょっと詳しく知りたかった。
December 3, 2025 at 4:25 AM
Max プランを契約して Claude Code を積極利用するようになって、いつかは開発ライフサイクルの多く (設計からコーディング、レビューまで) を AI エージェントたちに任せられるんじゃないかといろいろ試しているところだけど、一方で IT 全般統制や ISMS のような組織・業務上の制約が存在することを考えると、人間が AI の成果物をレビューする必要は (将来的にはどうなるかわからないにしても) 現時点ではなくならないわけで、でも AI の成果物をすべてレビューするとなると明らかに人間がボトルネックになるのでそのあたりの折り合いをどうつけたらいいかで最近悩んでいる。
December 3, 2025 at 2:35 AM
人間中心のソフトウェア開発における原則として長い間用いられてきている DRY, KISS, YAGNI といった概念が、はたして agentic coding の時代でも適切な概念たりうるのか、ちょっと疑問に思っている。AI が生成するコードを人間が細かにレビューしたりメンテナンスするのであれば引き続き有効だとは思うが、一方でコーディングエージェントにとってメンテナンスがしやすいコードが人間にとってのそれとは異なる可能性があるのでは? という気がしている。
December 3, 2025 at 2:06 AM
ブラウザ上で Google カレンダーの invite された予定に参加する操作をしようとするときに、ほぼいつも Google Meet の参加ボタンを押し間違いしてしまう。
December 1, 2025 at 4:03 AM
まあでも、保険料の情報を手入力する苦労を思えば遥かにマシではある。けれども、SmartHR などのサービスと保険会社各社が連携して電子データのダウンロードすら不要になる世界が訪れてくれてくれることを切に願うのであった。
November 25, 2025 at 3:40 AM
SmartHR の登場や保険料控除証明書が電子データとして提供されるようになって年末調整の作業は一昔前と比べて非常に楽になったと思う一方で、今度は保険を複数契約しているがゆえに保険料控除証明書の電子データのダウンロードが億劫になってしまって年末調整の着手がなかなかできない問題が発生している。保険会社が各社各様のポータルサイトを持っていて、昨今の不正アクセスの情勢もあってログインに OTP を求められたり電子データダウンロードのページにたどり着くまでにサイト内を彷徨う必要があったりとあれやこれやが面倒。
November 25, 2025 at 3:37 AM
直近にリノベーションされているとは言え、築50年をゆうに超えてかつ50平米に満たない物件が坪単価300万円台半ばで売られているのを見て、こんな物件誰が買うんだろ… と思ってしまう。
November 23, 2025 at 1:19 AM
しかし実装を深く理解していくにつれ何かと非効率的な実装が目について「なんでこんな実装にしてしまったんだろ…」というお気持ちが湧いてくる。あと不具合ではないけど不具合に近しい挙動もあったりするし。
November 18, 2025 at 3:15 PM
lz-string の圧縮アルゴリズムを再実装しようとしてみてわかったこととして、これは LZW よりもその源流である LZ78 に近いアルゴリズムだということ。Unicode の 16 ビットコードユニットの列を相手にするため、LZW のようにすべての出現しうる文字を事前に辞書に登録してしまうと最初から 1 文字の符号化に要するビット数が 16 ビットを超えてしまい効率的ではなくなるので、LZW を採用しないことは確かに理にかなってる。
November 18, 2025 at 3:03 PM
この週末に興味本位で lz-string のコードを眺めていたんだけど、圧縮アルゴリズムは LZW ベースのはずなのにデータ構造が trie を使わずにトークンそのものをキーにしたハッシュテーブルになっていて、メモリの利用効率が悪そうだな… というお気持ちになった。

github.com/pieroxy/lz-s...
github.com
November 17, 2025 at 2:19 AM
JetBrains IDE で GitHub の pull request が見れなくなってもうずいぶんと (1年以上) 経つんだけど、ふと原因を調べてみようと思って色々探ったら脆弱性の影響でトークンを発行し直す必要があることにいまさら気づいた。実際に既存トークンを revoke して発行しなおしたら pull request が再び見られるようになった。

blog.jetbrains.com/security/202...
Updates for security issue affecting IntelliJ-based IDEs 2023.1+ and JetBrains GitHub Plugin | The Security Blog
A new security issue was discovered that affects the JetBrains GitHub plugin on the IntelliJ platform, which could lead to disclosure of access tokens to third-party sites. The issue affects all Intel...
blog.jetbrains.com
November 14, 2025 at 7:35 AM
決済システム的なものに深く関わったことがないので何とも言えないのだけど、なんかこう、容疑者のスキル云々というよりシステム開発における初歩的なミスが問題な気がしてならない。

www.yomiuri.co.jp/national/202...
「モバイルオーダー」悪用、2万8400円分の弁当代を不正決済…23歳無職男を容疑で逮捕
【読売新聞】 スマートフォンなどから注文できる「モバイルオーダー」で不正に決済し、弁当代の支払いを免れたなどとして、警視庁が東京都国分寺、無職の男(23)を詐欺と私電磁的記録不正作出・同供用などの容疑で逮捕したことが、捜査関係者への
www.yomiuri.co.jp
November 14, 2025 at 2:56 AM
キャラクターもののお菓子、あんまり可愛く作ると食べるのが忍びなくなってしまう問題がある。なおワドルディはかなりケミカル感のある味わいで人を選ぶ気がした。
November 12, 2025 at 7:51 AM
Vitest 最新メジャーバージョンの 4.x 系を使うと WebStorm からテストを実行できなくなってしまっていたけど、2025.3 のバージョンで解消する見込みかしら。

youtrack.jetbrains.com/issue/WEB-75...
youtrack.jetbrains.com
November 7, 2025 at 12:14 AM