Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AIが無かった頃の素敵な出会いの話
Search
コドモン開発チーム
July 20, 2026
Programming
390
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AIが無かった頃の素敵な出会いの話
コドモン開発チーム
July 20, 2026
More Decks by コドモン開発チーム
See All by コドモン開発チーム
AI時代のPHP開発にASTクエリツール で コードベースの地図を作る / ast-query-tool-php-codebase-map
codmoninc
0
15
コネクションをピン留めさせずに SELECTクエリのタイムアウトを設定した話
codmoninc
0
21
コドモンに入社してAI活用により、 設計がより重要だと感じた背景
codmoninc
0
36
実装・設計だけでなく、運用・保守にもAIを広げてみた / We Took AI Beyond Coding and Into Operations and Maintenance
codmoninc
0
25
5分で問診!Composer セキュリティ健康診断
codmoninc
0
900
アラート疲れからの脱却 - リソースタグで仕分けるSlack通知戦略 / Breaking Free from Alert Fatigue – A Slack Notification Strategy Using Resource Tags for Routing
codmoninc
0
45
SREに優しいTerraform構成 modulesとstateの組み方 / terraform-modules-state-for-sre
codmoninc
0
400
モノリスなプロダクトの「ほどよい」リプレイス戦略 / A "Just Right" Replacement Strategy for Monolithic Products
codmoninc
0
290
Don't Just Patch — MOTTAINAI! Learn Security from Laravel CVE Diffs
codmoninc
0
270
Other Decks in Programming
See All in Programming
PostgreSQL 18で考えるUUID主キー
kazuhiro1982
0
460
OpenSpecのproposalにbrainstormingを持たせてみた
tigertora7571
1
200
AI時代、エンジニアはどう育つのか -未経験エンジニアの成長を間近で見て考えたこと-
thasu0123
0
220
テーブルをDELETEした
yuzneri
0
140
Google Apps Script で Ruby を動かす
kawahara
0
130
Apache Hive: Toward a Cloud Native Lakehouse
okumin
0
180
言葉の格闘技のススメ~紙とペンと言葉から始める、キャリアの描き方~
progresscicada
2
140
AI時代に設計が 最大の生産性レバーになる 意図駆動開発とデータを消さない設計|Don't Delete Your Data or Your Intent — Design as the Deepest Lever in the AI Era
tomohisa
1
720
2年かけて Deno に DOMMatrix を実装した話 / How I implemented DOMMatrix in Deno over two years
petamoriken
0
210
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
290
ここ半年くらいでAIに作らせたR用ツール
eitsupi
0
370
S3 を使うアプリケーションをローカル完結で動かすことに全力を注いでみた / Running S3 Apps Offline
contour_gara
0
370
Featured
See All Featured
Building Applications with DynamoDB
mza
96
7.2k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
580
Building AI with AI
inesmontani
PRO
1
1.1k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
470
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.3k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Designing for humans not robots
tammielis
254
26k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
280
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
620
Skip the Path - Find Your Career Trail
mkilby
1
180
Documentation Writing (for coders)
carmenintech
77
5.4k
Transcript
AIが無かった頃の 素敵な出会いの話 株式会社コドモン 松浦 康介
※先にご案内※ 5分ギリギリなので 早口です🙏 2
いやはや AI時代ですね 3
Github Copilotの登場は 2021年 4
ChatGPTの登場は 2022年 5
ここ4年ですごく浸透 6
今日はAI時代の前の ノスタルジーな話 7
さて、それは何年前の話? 8
今から遡ること 9
444年前の話 10
1582年 11
時は戦国 12
安土桃山時代 13
1582年の 有名な出来事 14
本能寺の変 (1582年6月21日) 15
1582年6月 歴史が変わった 16
この年の10月 17
暦史も変わった 18
ここでクイズ 19
1582年10月4日の翌日は? 20
1582年 Q. 10月4日の翌日は? A. 10月15日(+11日) 21
123 4 5 6 7 8 9 10 11 12
13 14 15 10日間くらい スキップされてる 22
1582年は 10月5日〜14日 存在しないらしいです 23
ウソみたいな真実 24
え?何言ってるの? って感じですよね? 25
でも本当なのです 26
何が起きたか 27
当時使われていた ユリウス暦から 28
現行のグレゴリオ暦に 変わった 29
ユリウス暦はうるう年の 考慮がやや弱く 30
実世界と暦が10日間くらい ズレてしまっていた 31
例: 夏至とか冬至の日付と 実世界の明るさがズレちゃう (あくまでイメージとして) 32
グレゴリオ暦では うるう年の扱いを改善する 33
ユリウス暦→グレゴリオ暦 に変えよう in 1582年 34
by グレゴリウス13世 35
変えるにあたって すでに約10日ズレいる 36
まあ、省いちゃおう (強気の運用回避) 37
みたいな流れらしい 38
ちなみに 39
うるう年の判定 40
as 隠れ Hello World (みんな一度は通るのでは?) 41
覚えてますか? スラスラ言えちゃう? 42
(私は言えない) 43
西暦年号が 1. 4で割り切れること 2. ただし、100で割り切れて 400で割り切れない年は平年 44
一般解 45
function isLeapYear($year) { // 「4の倍数かつ100の倍数でない」 // または「400の倍数」なら true return (
($year % 4 === 0 && $year % 100 !== 0) || $year % 400 === 0 ); } 46
実はこれ、 現行のグレゴリオ歴での うるう年の定義 47
ユリウス暦の判定は シンプル 48
function isLeapYear($year) { // 「4の倍数かつ100の倍数でない」 // または「400の倍数」なら true return (
($year % 4 === 0 && $year % 100 !== 0) || $year % 400 === 0 ); } 49
function isJulianLeapYear($year) { // 4の倍数はうるう年 return $year % 4 ===
0; } 50
4で割り切れたらうるう年 という割り切り 51
でも実運用上のズレは 割り切りにくい 52
そのズレを抑える例外が グレゴリオ暦では追加 53
ユリウス暦(4の倍数) + いくつかの修正(例外) = グレゴリオ暦 54
みたいなイメージ (コード上は) 55
ここから小話 56
私がなぜこれを知ったか 57
私のキャリアが始まった 2009年(グレゴリオ暦) 58
Javaを勉強 JavaDocとか色々読んでた (PHPじゃなくてごめんね) 59
日付関連のパッケージで 偶然訪れた素敵な出会い 60
java.util.Calendar setLenient(boolean) 61
Lenient means 寛容 62
setLenient(true) 不正な日付を黙って繰上げ補正 (ちなみにデフォルト動作) 63
setLenient(false) 不正な日付で IllegalArgumentException 64
「不正な日付」とは? 65
うるう年 ◯2028年2月29日 ×2029年2月29日 66
存在しない日付 ◯2026年7月31日 ×2026年7月32日 67
存在しない日付2 ユリウス暦とグレゴリオ暦の狭間 ×1582年10月5〜14日 68
これを「暦狭間の戦い」と言う (言わない) 69
この暦の「狭間」の話 70
PHPでの暦の扱いは? 71
基本、寛容らしい 72
checkdate() 73
1582年10月5〜14日の 存在しない日付 →許容(優しい) 74
グレゴリオ歴の仕様上は◯ その運用実績としては△ 75
こういうことなのかな (正確じゃない、ごめんね) 76
これはAIに聞いた (誠実であろう) 77
ちなみにグレゴリオ暦も 完璧じゃなく、ズレるらしい 78
実際の1年(太陽年) 約365.2422日 365.0日ではない 79
「1年」の長さ 天文学的な1年 (太陽年) 約365.2422日 0.2422日の端数 ユリウス暦 平均365.2500日 約11分長い グレゴリオ暦 平均365.2425日
約26秒長い 80
1年あたり26秒ズレ 81
どうやら 約3300年に1日ズレるらしい 82
つまり、今から1274年後の 西暦3000年 83
現行グレゴリオ歴と実世界は 1日ズレる 84
その日まで 共に長生きしましょう 85
西暦年号が 1. 4で割り切れること 2. ただし、100で割り切れて 400で割り切れない年は平年 3. 4000で割り切れる年は平年 86
うるう年の判定に 条件を追加する案もあるらしい 87
が、まだ実現していない 88
なぜなら、 1000年以上も先のこと 89
かつ、 地球の自転速度も関係する 90
ちなみに、地球の自転は 少しずつ遅くなっているらしい (1000年後の予測が難しい) 91
つまり、自然現象の話と 制度としての暦の話があり 現時点で決めにくい 92
AIに聞いても答えが出ない系 面白いですね〜 93
そしてうるう年の話は 「AIに答えを聞く」じゃ 辿り着きにくい系 94
これで私の話は おしまいなのですが 95
デフォルトで「寛容」な みなさんへ改めてお願い 96
ここまでの話、 間違いがあるかもしれないので 97
setLenient(true) //寛容 98
とご理解いただけると ありがたいです 99
なにとぞ 🙏 100
さて、 地球(自転)を取り巻く環境も 大切ですが 101
子どもたちを 取り巻く環境も大切 102
私はそういう思いが強く そういう会社にいます 103
お時間あれば スポンサーブースに ぜひお越しください 104
ありがとうございました 105
None