はてなキーワード: PIとは
企業研究者が大学PIポストへ続々登用される現状はポスドククライシスと呼んでもいいのではないか。
私はAI系の任期制職(以下簡単のためにポスドクと書く)で働いて3年目であり、年間600万円ほどで主に研究室のプロジェクトに従事している。
業務割合はPIのプロジェクト仕事(研究):その他仕事:自分の研究=5:2:3くらいであり、将来のアカデミアのポストのため非常勤講師もしてきた。
この春、何人かの企業研究者の方の大学への准教授・教授職の就任が同時に観測された。
もちろん、各々の方は業績的にも学術界活動的にも素晴らしいし、それに異論はないのだが、あまりにもこのような現象は自分のようなポスドクにとって報われないと思っている。
ご存知の通り、情報系、特にAIはアカデミアと産業界の賃金格差が凄まじい(軽く2倍はあると思う)。なので、アカデミアではポスドク不足が嘆かれて久しいのだが、その中でも自分のようなアカデミアに残って研究がしたい少数の人が、長年労働力になって下支えしてきた。
事実、自分の博士の同期で卒業後もアカデミアに残った人は一人もいない、前後を見てもほぼいない。
同期や後輩が自分より圧倒的に良い給料をもらって資産形成しているのを横目に、歯を食いしばって将来のために耐えているのが今のAI系ポスドクの立場だと思う。
それがどうだろう。非常勤講師に時間を割き、企業の研究費と比較したら雀の涙のような額の科研費若手で研究を行い、貧弱な計算リソースでできる研究テーマを絞り出し、小さい研究グループや貧弱な組織力、バックオフィス機能の不足によって生じる不可解なほどの量の事務作業。。。そんな私たちより圧倒的に良い待遇で生活・研究して業績を出してきた(僻みが多分に含まれるが)企業人研究者が私たちの頭を飛び越して大学のPIに就いてしまう。。。
こんな現状で卒業後アカデミアを選ぶAI系の博士がいるだろうか<いやいない>。実際、私はもうアカデミアを見限ったし、民間への転職活動を始めている。将来いい感じに業績が積み上がったらぼちぼちJrecinを眺めてPI職へ応募するつもりだ。
この傾向は今後どんどん加速するだろうが、そうなったら研究室運営の泥臭いところを担うのは一体誰なのか?
業績などをフラットに考慮すると優秀な企業人が今の時代上に来るのも分かるし、AI研究は今や産業界がリードしていることを考慮すると、アカデミアー企業間の人材の流動性は重要だと思うのだが、何か救済がないとしんどいですよ
単位変換
光速 = 299792458m/s =9.46 x 10e15 m/year
ご飯 100g = コロッケ小=パン1枚 = 150kcal
銀1匁 = 70文
天保通宝最終レート.008円
1里 =3927.2727m = 36丁
1間 = 1.81818m = 6尺
1尺 = .30303m = 10寸
1寸 = .030303m
1斗 = 18L = 10升
1升= 1.8L = 10合
1合 = .18L
1m = 39.37inch = 3.2808feet = .00062137119miles
1inch = .0254m
1feet = .3048m = 12inch
1yard = .9144m = 3feet
1hectare = 2.47105acre = 10,000m2 = 1町歩
1acre = 4046.86m2
東京ドーム面積 = 4.6755ha = 122 x 122m x 3.14
1L = 1,000cm3 = .2642 US gallon = .22 UK gallon = 1kg(water) = 2.20462pounds
US gallon = 3.785L
UK gallon = 4.5L
1pound = 453.5929g
ling yi er san si wu liu qi ba jiu shi bai qian wan
lim h->0 (1+h)1/h = e = 2.7182818284 = 1.64872127 x 1.64872127
ln2 = .69314718
ln 3 = 1.09861228866
ln 4 = 1.38629 = 2 ln2
1/e = (e)-1 = .3678794411
(e)2 = 7.38905609
pi/ 2 = 1.57079
2 = 1.259921 x 1.259921 x 1.259921 = 1.414213562 x 1.414213562
3 = 1.44224957 x 1.44224757 x 1.44224957 = 1.7320508 x 1.7320508
4 = 1.5874010519 x 1.5874010519 x 1.5874010519
5 = 1.7099759x 1.7099759 x 1.7099759 = 2.2360679 x 2.236079
11 = 3.31662479 x 3.31662479 ← 修正: 旧「3.1662479 x 3.31662479」
13 = 3.6055512751 x 3.605551275
golden ratio = 1 : 1.6180339 = (1 + (5)1/2) / 2
1 + tan2 x = 1 / cos2 x
sphere volume = 4/3 pi r3, surface area = 4 pi r 2
cone volume = 1/3 pi r2 H, surface area = pi r (r + L) = pi r2 + pi r L
日本の川長い順
1信濃川367
2利根川322
3石狩川268
4天塩川256
5北上川249
6阿武隈川239
7最上川229
7木曽川229
1富士山3776
2北岳3193
3奥穗高岳3190
3間ノ岳3190
5槍ヶ岳3180
6悪沢岳3141
7赤石岳3120
9塩見岳3052
10仙丈ヶ岳3033
11乗鞍岳3026
12立山3015
13聖岳3013
14剱岳2999
15水晶岳2986
16甲斐駒ヶ岳2967
17木曽駒ヶ岳2956
18白馬岳2932
19薬師岳2926
20鷲羽岳2924
21赤岳2899
22笠ヶ岳2897
23鹿島槍ヶ岳2889
24空木岳2864
25常念岳2857
26黒部五郎岳2840
26鳳凰山2840
28五竜岳2814
29白山2702
30金峰山2599
31光岳2591
32日光白根山2578
33浅間山2568
34蓼科山2530
35男体山2486
36甲武信ヶ岳2475
37火打山2462
38焼岳2455
39妙高山2454
40燧ヶ岳2356
41四阿山2354
42高妻山2353
43大雪山2291
44鳥海山2236
45瑞牆山2230
46至仏山2228
47恵那山2191
48草津白根山2171
49武尊山2158
50苗場山2145
51皇海山2144
52トムラウシ2141
52平ヶ岳2141
55飯豊山2105
56十勝岳2077
57大菩薩嶺2057
58幌尻岳2052
0日本橋2里
1品川2里半
2川崎2里半
3神奈川1里9丁
4保土ヶ谷2里9丁
5戸塚1里30丁
6藤沢3里半
7平塚27丁
8大磯4里
9小田原4里8丁
10箱根3里28丁
11三島1里半
12沼津1里半
13原3里6丁
14吉原2里30丁
15蒲原1里
16由比2里12丁
17興津1里3丁
18江尻2里29丁
19府中1里半
20丸子1里29丁
21岡部1里29丁
22藤枝2里8丁
23島田1里
24金谷1里24丁
25日坂1里19丁
26掛川2里16丁
27袋井1里半
28見附4里7丁
29浜松2里30丁
30舞阪1里
31新居1里24丁
32白須賀2里16丁
33二川1里20丁
34吉田2里22丁
35御油16丁
36赤坂2里9丁
37藤川1里25丁
38岡崎3里30丁
39池鯉鮒2里30丁
40鳴海1里半
41宮7里
42桑名3里8丁
43四日市2里27丁
44石薬師27丁
45庄野2里
46亀山1里半
47関1里24丁
48坂下2里半
49土山2里25丁
50水口3里12丁
51石部2里25丁
52草津3里24丁
53大津3里
54三条大橋
1368 174応安8
1379 176康暦3
1381 177永徳4
1384 178至徳4
1387 179嘉慶3
1389 180康応2
1390 181明徳5
1394 182応永35
1428 183正長2
1429 184永享13
1441 185嘉吉4
1444 186文安6
1449 187宝徳4
1452 188享徳4
1455 189康正3
1457 190長禄4(5)
1461 191寛正7(6)
1466 192文正2
1467 193応仁3
1469 194文明19
1487 195長享3
1489 196延徳4
1492 197明応10
1501 198文亀4
1504 199永正18
1521 200大永8
1528 201享禄5
1555 203弘治4
1558 204永禄13
1570 205元亀4
1593 207文禄5(4)
1645 211正保5(4)
1648 212慶安5
1652 213承応4
1655 214明暦4
1658 215万治4
1661 216寛文13
1673 217延宝9
1684 219貞享5
1704 221宝永8
1741 225寛保4
1801 233享和4
1804 234文化15
1818 235文政13(14)
1845 237弘化5(4)
1848 238嘉永7(8)
1855 239安政7(6)
5億年前 カンブリア紀
7.4万年前 eruption of mount Toba ← 修正: 旧「7万年前」
2570 BC 縄文時代 pyramid of Khufu constructed, 231 x 231 x height probably 146.5m, 138.5m now ← 修正: 旧「163.34m, 147m now」
79 eruption of mount Vesuvius
113 Trajan's Column
199 呂布眠
6th century 古墳時代 eruption of 榛名山
794 平安京
1499 明応8年 Pieta by Michelangelo ← 修正: 旧「1500 明応9年」
1505 永正2年 Mona Lisa by Leonardo da Vinci
1582 天正10年 October 4->15 Gregorian calendar
1616 元和2年 William Shakespeare died
1653 承応2年 Bentheim castle by Jacob van Ruisdael
1666 寛文7年 great fire of London
1687 貞享4年 Philosophiae Naturalis Principia Mathematica by Isaac Newton
1689 元禄2年 Montesquieu born
1707 宝永4年 eruption of 富士山, Carl Linnaeus born
1768 明和5年 Mars and Venus surprised by Vulcan, by Lewis Jean Francois Lagrenee the elder, 258 years ago
1776 安永5年 United states declaration of independence
1780 安永9年 Jean Dominique Ingres born
1789 寛政元年 French revolution
1797 寛政9年 Franz Schubert born
1814 文化11年 Jean Francois Millet born
1826-1827 文政9-10年 oldest photograph 'View from the Window at Le Gras' by Nicephore Niepce ← 修正: 旧「1825 'Boy and his horse'」
1833 天保3年 東海道五十三次歌川広重 北斎漫画葛飾北斎
1863 文久3年 emancipation proclamation
1866 Romain Rolland born
1867 Jean Dominique Ingres died, 夏目漱石生 ← 修正: 「1875 Jean Dominique Ingres died」の行を削除
1874 Lucy Maud Montgomery born
1875 高橋由一 ← 修正: Ingres died(誤記)を削除
1885 Adventures of Huckleberry Finn by Mark Twain
1888 十五少年漂流記 by Jules Verne, eruption of 磐梯山
1890 Harland David Sanders born
1898 The war of the worlds by H. G. Wells, Lewis Carroll died, 井伏鱒二生 四芸術 by Alphonse Mucha
1903 John von Neumann born
1904 Salvador Dali born
1908 Anne of Green Gables by L. M. Montgomery
1908 松本清張生
1919 Auguste Renoir died
1923 関東大震災
1969 moon landing, 57 years ago
1970 三島由紀夫眠45才
1980 Harland David Sanders died, 90 years old
1988 辻井伸行生
1989 Salvador Dali 手塚治虫昭和天皇眠GBテトリス発売
1993 Audrey Hepburn 井伏鱒二眠
1995 阪神淡路大震災
2197.1 s
00:36:37.1
start 13:35:06
stop 14:11:43
4.825 t/s
10601 types
2.713 c/s
type - char
4640
dorawiiより
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 https://anond.hatelabo.jp/20260106075207# -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaVzeSgAKCRBwMdsubs4+ SFHdAQCKBDYKFAnMKm5kWVBawvNuzCHqSKqjKdmU1Ns/ZkthmQEAngI7W4MxtSPt WVXUs9j3D7z5LO+pI/uPmA5XJPHBjww= =2BuE -----END PGP SIGNATURE-----
つまりそれはお前らが大嫌いだった新しいものを否定する保守的な親そのものだな
情報技術者なら誰しもが認める事として現在の情報技術界はLinuxの知識が事実上の必修科目になっている
その影響によって世界中のSTEM・ICT教育はLinuxを学校教育へ導入する需要が高くなった。その結果が安価に導入でき学校教育グループウェアGoogle Classroomが製品パッケージとして存在するChromeOSだったんだよ
しかもより先進的なSTEM・ICT教育を導入する日本の有名私立や進学校(例えば灘や開成)、情報学科学部を持つ高校・高専・大学、ラズパイの発祥の地である英国、そして米国はラズパイを義務教育の中に導入した
更にNASAと連携したラズパイの学習プロジェクト「Astro Pi」は国際宇宙ステーションへ常駐する宇宙飛行士によって子供たちがコーディングしたプログラムを実行して宇宙実験するという非常に野心的な学習プロジェクトが行われている
これらの結果を知って確実に来るであろう未来を想定するならば、今後10年以内に裕福な家庭や先進的なSTEM・ICT教育を導入する学校出身者であればあるほどLinuxを学んで社会に出てくるという確定的未来だ
世界各国地域でシェアは違うけれど、それが貧困家庭であってもSTEM・ICT教育で投入される学習コンピューターの6割〜8割がChromeOSであることを踏まえると、低い割合を想定しても新社会人の2人に1人はLinuxで学んで社会に出てくるんだよ
大卒が約半数となった日本で、我が子により良い教育を施したいと考えるのであれば、このSTEM・ICT教育の大激変である「WindowsやMacではなくLinuxを学ぶ」という動きは子供の将来を考える親ならば察知していなければならず、子供の需要に応えるのが親の努めならば親こそがLinuxを学んでおく必要があるんだよ
気持ちはわかる。発端の夫を倒したい元増田で夫も言及しているように「一般目線で考えるならばWindows」であることは間違いない。しかしその一般目線には前提として言葉を1つ追加する必要がある
それは「現在の親世代・経験豊富な社会人世代の一般目線ならばWindows」という形だ。誰に聞いても間違いがない。親世代・経験豊富な社会人世代はリアルタイムの今まさに仕事でWindowsを使っている。プログラマーやクリエイターならばMacという選択もあるだろう
しかし既に我々は知った。現行のSTEM・ICT教育は「WindowsやMacではなくLinuxを学ぶ」であることを。それはつまり「未来の社会の中心となっていく子供世代の一般目線ではLinux」という時代が到来しつつあり、更に言えば未来の日本をリードしていくであろう先進的なSTEM・ICT教育を受けている裕福な上流層の子供の一般目線は輪をかけてLinuxになっていくんだ
「Windowsを学ぶ方が良いだろう」「学校教育で導入されるタブレットはiPadの方が安定していて高性能だ」
大人ならそう考える。しかしそれは現在のSTEM・ICT教育がどうなっていて未来の人材がどのような一般目線を持っているかを想定しないという、今自分の生活が大事で革新性に拒否感を示す保守的な大人ならではの直感でしかないんだ
「WindowsやMacではなくLinuxを学ぶ」という現在のSTEM・ICT教育から予測できる確実に訪れる未来へ先行投資できるか否か。この話題はそれを機敏に察知できるかのリトマス試験紙としての側面を持っていた深い話題なのだよ
欧米や裕福な日本の家庭はLinuxを、ラズパイを教育に導入している。それを知った我々がどうしなければならないかなんて言うまでもないだろう
かわいそうなやつw
←誰もそんな話してないしお前がいまさっき勝手に言い出したこと。そんな話してない。
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 https://anond.hatelabo.jp/20250929164256# -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaNo4gwAKCRBwMdsubs4+ SNdaAQDJc1CodyDqLMzPk/N+3kBiHKOyvV7UW8689p3WzzE6CQD/VDyKkqUMmGlf FTGGCZqEqS+n+9usFizaGsWiKyKJVAg= =0+pI -----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 https://anond.hatelabo.jp/20250910175736# -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaME9hAAKCRBwMdsubs4+ SODIAQDsNWSs+N4fPbJh8Xvw1ZhwAcVf9loeuL3Wk1jxIi6wHAEAtoh90st8dn9+ kOnYpAZjsz5i3d3yUEMPdZbCjdb+RA8= =U+Pi -----END PGP SIGNATURE-----
はてなブックマークをするときのリクエストの実体がわからない。
とりあえず保存するボタンを押した瞬間に作られるリクエストの送信先urlをurl:/api/で絞ったものの一覧がこれ。
どれ見てもコメントを格納してるっぽいリクエストが見つからない。
https://b.hatena.ne.jp/api/internal/bookmarks/shares_and_clicks
b.hatena.ne.jp/api/related_entries/https%3A%2F%2Fanond.hatelabo.jp%2F20250809150325
b.hatena.ne.jp/api/my/bookmark/https%3A%2F%2Fanond.hatelabo.jp%2F20250809150325
b.hatena.ne.jp/api/my/recommended_tags?url=https%3A%2F%2Fanond.hatelabo.jp%2F20250809150325
b.hatena.ne.jp/api/entry/https%3A%2F%2Fanond.hatelabo.jp%2F20250809150325/editing_ability
b.hatena.ne.jp/api/entry/https%3A%2F%2Fanond.hatelabo.jp%2F20250809150325/editing_ability
b.hatena.ne.jp/api/my/ignore_users?limit=10000
b.hatena.ne.jp/api/my/following_bookmarks
b.hatena.ne.jp/api/my/external/share_config
o148425.ingest.sentry.io/api/4504286861066240/envelope/?sentry_key=cbbc3ab77bbb42fa8c09ca0f1b7dc3cb&sentry_version=7&sentry_client=sentry.javascript.browser%2F7.47.0
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 https://anond.hatelabo.jp/20250809200738# -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaJcr+wAKCRBwMdsubs4+ SLTYAP4pb8fMaDacP69j8aAlqgmTDqimUmU6I6bvh/yREFo7+AEAq2ibhp1t4MwK a+5esw/9FyuZavaPZ02HmmHMmLey+Aw= =kEhJ -----END PGP SIGNATURE-----
てんぷら @TEMPUrA_y
よく人生において音ゲーが何の役に立つの?って言う人がいるけど正しい努力は報われるという成功体験は人生において重要だと思うのでそれが音ゲーによって得られるならば大いに役立つと言えると思う
https://x.com/TEMPUrA_y/status/1788125549988360556?t=WgmrtJ9AYHKNVP4HmzlEDw&s=19
てんぷら @TEMPUrA_y
それが音ゲーである必要はないが、努力の結果が数値としてはっきり映し出される音ゲーは他に比べて努力が成功したと実感しやすいので成功体験を得るには向いていると思う
1曲約2分の短い勝負をする音ゲーの性質上PDCAサイクルを回すのにも向いている
https://x.com/TEMPUrA_y/status/1788127138362818583?t=GrF2KbjO_GrP5xVfVkIagA&s=19
のん @non_otoge
これなんだよな〜〜〜〜〜
僕は音ゲーで初めて「努力のコツ」を知って、そこから誇張抜きで人生変わった
どんくらい変わったかって言うと32×32のモノクロドット絵がフルHDのカラー動画になった感じ これも誇張抜きね
ただ、みんながみんなこれをできる訳じゃない でも選択肢があった方が良い(続く)
https://x.com/non_otoge/status/1788131676562006257?t=ja3xeFfSG-SS1qwfyq2N-A&s=19
しそごはん用研究者(薬学部講師PI)@ONODA_in_Onodac
大学教員やっていると、「この子は本当に努力の仕方がわからないんだな」って思う大学生に出会うことが多々あるんだけど、そういう学生には、ここ最近のワールドトリガーを読んでって言いたい。
努力するには、目標を正しく「刻んで」、「期限」を設けるんだ。
https://x.com/ONODA_in_Onodac/status/1864606915696972059?t=NCtRNdKGl0Pf7VR3sXuvLA&s=19
Kuroly @Kuroly7
何かに本気で取り組んだり挫折した経験がなく、現実との折り合いをつけ成長する機会を逃すと、根拠のない自信に満ち溢れて自負と現実のギャップが取り返しのつかないことになる『幼児的万能感』ってやつ
https://x.com/Kuroly7/status/1930108365763387528?t=3Q3QNlkA_LIAwcPawaewBQ&s=19
こういうの見るたびに、努力したことない自分が悲しくなってくる。
そもそも先延ばし癖があるせいで習慣化できないのと、習慣化に成功してもPDCAサイクルを回すコツがわからない。
rieru£ @r_02er
偏差値60台の高校、"高校受験までノー勉でなんとかなってしまったせいで勉強習慣が身についていない層"が存在する
https://x.com/r_02er/status/1938583747634643386?t=3jIDbDK214q20eYPlLxiHg&s=19
これのさらに酷い版で、大学受験も推薦でなんとかなってしまった故に、全く努力の習慣が身についていない。
なんというかなあ、はてな界で言うなら、黄金頭氏が一番自分の人生に近いものがあるかもしれない。
https://goldhead.hatenablog.com/entry/2018/01/18/215038
ただ、一瞬、一瞬。運良く持って生まれた何らかの才気の単発的な発現。わかりやすく言えば「その場しのぎ」。こればかりがおれを救い、そして苦しめる。人生の底、社会の底に着くところまで行かせない。安定飛行させるわけでもなく、超低空飛行を続ける。賽の河原で石を積んでは、すぐさま鬼に崩される。積むのはおれ、崩すのもおれ。いったいぜんたい、おれは詰んでいる。おれにはその詰将棋は解けないし、何手詰めかもわかりゃあしない。でも、詰将棋の本に載ってしまっている。それはわかる。わかっていながら、ここまで生きてきてしまった。死ぬのはたやすい。それでも死ぬのは怖い。八方塞がりだ。八方塞がって、上も下もない。タイマーが切れるまで、アルコールで精神を安寧にしておきたい。アルコールを買う金はせめてほしい。それだけだ。それだけなんだ。
https://goldhead.hatenablog.com/entry/2019/11/25/201810
努力してなにかを得る? はて。勉強して資格に合格する? さて。なんなんだろうかね、それは。なにが人間をそれに向かって起動させて、どういった心境の持続力があってそれを続け、達成したらどんな気持ちになるのかしらん。
追記(2025/07/09)
ブクマ結構ついてる。ありがとうございます。
コメントを見て、なぜ努力できるようになりたいか考えてみたんだけど、
B : 対人ゲームのメタを話してる人たちや、プログラミングの高度な話をしている人たち、あとKubecon(Kubernetesっていうツールのイベントらしい)みたいな技術イベントなど、努力して何かしらを身につけた人同士がやってるコミュニティに憧れを感じたから。
って感じかなあ。
<html lang="ja"> <head> <meta charset="UTF-8"> <title>GrokのPONGゲーム</title> <style> body { display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background: #1a1a1a; } canvas { border: 2px solid #00ff00; background: #000; } #score { color: #00ff00; font-family: 'Courier New', monospace; font-size: 24px; position: absolute; top: 20px; width: 100%; text-align: center; } </style> </head> <body>0 : 0<canvas id="gameCanvas" width="800" height="400"></canvas> <script> const canvas = document.getElementById('gameCanvas'); const ctx = canvas.getContext('2d'); const scoreDisplay = document.getElementById('score'); // ゲームオブジェクト const ball = { x: canvas.width / 2, y: canvas.height / 2, radius: 10, speedX: 5, speedY: 5 }; const paddleLeft = { x: 10, y: canvas.height / 2 - 50, width: 10, height: 100, speed: 8 }; const paddleRight = { x: canvas.width - 20, y: canvas.height / 2 - 50, width: 10, height: 100, speed: 8 }; let scoreLeft = 0, scoreRight = 0; // キー入力 const keys = { w: false, s: false, ArrowUp: false, ArrowDown: false }; document.addEventListener('keydown', e => { if (keys.hasOwnProperty(e.key)) keys[e.key] = true; }); document.addEventListener('keyup', e => { if (keys.hasOwnProperty(e.key)) keys[e.key] = false; }); // ゲームループ function gameLoop() { // 移動 if (keys.w && paddleLeft.y > 0) paddleLeft.y -= paddleLeft.speed; if (keys.s && paddleLeft.y < canvas.height - paddleLeft.height) paddleLeft.y += paddleLeft.speed; if (keys.ArrowUp && paddleRight.y > 0) paddleRight.y -= paddleRight.speed; if (keys.ArrowDown && paddleRight.y < canvas.height - paddleRight.height) paddleRight.y += paddleRight.speed; // ボール移動 ball.x += ball.speedX; ball.y += ball.speedY; // 壁衝突 if (ball.y + ball.radius > canvas.height || ball.y - ball.radius < 0) ball.speedY = -ball.speedY; // パドル衝突 if ( (ball.x - ball.radius < paddleLeft.x + paddleLeft.width && ball.y > paddleLeft.y && ball.y < paddleLeft.y + paddleLeft.height) || (ball.x + ball.radius > paddleRight.x && ball.y > paddleRight.y && ball.y < paddleRight.y + paddleRight.height) ) { ball.speedX = -ball.speedX * 1.05; // 少し加速 } // 得点 if (ball.x < 0) { scoreRight++; ballReset(); } if (ball.x > canvas.width) { scoreLeft++; ballReset(); } // 描画 ctx.fillStyle = '#000'; ctx.fillRect(0, 0, canvas.width, canvas.height); ctx.fillStyle = '#00ff00'; ctx.fillRect(paddleLeft.x, paddleLeft.y, paddleLeft.width, paddleLeft.height); ctx.fillRect(paddleRight.x, paddleRight.y, paddleRight.width, paddleRight.height); ctx.beginPath(); ctx.arc(ball.x, ball.y, ball.radius, 0, Math.PI * 2); ctx.fill(); scoreDisplay.textContent = `${scoreLeft} : ${scoreRight}`; requestAnimationFrame(gameLoop); } function ballReset() { ball.x = canvas.width / 2; ball.y = canvas.height / 2; ball.speedX = (Math.random() > 0.5 ? 5 : -5) * (Math.random() * 0.5 + 0.75); ball.speedY = (Math.random() * 4 - 2); } gameLoop(); </script> </body> </html>
<html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>PONG Game</title> <style> body { margin: 0; padding: 0; background-color: #000; display: flex; justify-content: center; align-items: center; min-height: 100vh; font-family: 'Courier New', monospace; color: white; } ``` .game-container { text-align: center; } canvas { border: 2px solid white; background-color: #000; } .score { font-size: 24px; margin: 20px 0; letter-spacing: 2px; } .controls { margin-top: 20px; font-size: 14px; opacity: 0.8; } .start-button { background-color: #333; color: white; border: 2px solid white; padding: 10px 20px; font-size: 16px; cursor: pointer; font-family: 'Courier New', monospace; margin: 10px; } .start-button:hover { background-color: white; color: black; } </style> ``` </head> <body> ``` <script> // Canvas要素とコンテキストの取得 const canvas = document.getElementById('gameCanvas'); const ctx = canvas.getContext('2d'); // ゲームの状態管理 let gameRunning = false; let animationId; // スコア要素の取得 const playerScoreElement = document.getElementById('playerScore'); const computerScoreElement = document.getElementById('computerScore'); // ゲームオブジェクトの定義 const game = { // プレイヤーのパドル(左側) playerPaddle: { x: 10, y: canvas.height / 2 - 50, width: 10, height: 100, speed: 5, upPressed: false, downPressed: false }, // コンピューターのパドル(右側) computerPaddle: { x: canvas.width - 20, y: canvas.height / 2 - 50, width: 10, height: 100, speed: 3.5, // プレイヤーより少し遅く設定 targetY: canvas.height / 2 - 50 }, // ボールの設定 ball: { x: canvas.width / 2, y: canvas.height / 2, radius: 8, speedX: 4, speedY: 3, maxSpeed: 8 }, // スコアの管理 score: { player: 0, computer: 0 } }; // キーボード入力の処理 const keys = {}; // キーが押されたときの処理 document.addEventListener('keydown', (e) => { keys[e.key.toLowerCase()] = true; // ゲームが停止中にスペースキーでゲーム開始 if (e.key === ' ' && !gameRunning) { startGame(); } }); // キーが離されたときの処理 document.addEventListener('keyup', (e) => { keys[e.key.toLowerCase()] = false; }); // パドルの移動処理 function updatePaddles() { // プレイヤーパドルの移動(W/S キーまたは矢印キー) if (keys['w'] || keys['arrowup']) { game.playerPaddle.y -= game.playerPaddle.speed; } if (keys['s'] || keys['arrowdown']) { game.playerPaddle.y += game.playerPaddle.speed; } // プレイヤーパドルの画面外移動を防ぐ if (game.playerPaddle.y < 0) { game.playerPaddle.y = 0; } if (game.playerPaddle.y > canvas.height - game.playerPaddle.height) { game.playerPaddle.y = canvas.height - game.playerPaddle.height; } // コンピューターパドルのAI処理 // ボールの位置を追跡するが、完璧ではない動きを実装 const ballCenterY = game.ball.y; const paddleCenterY = game.computerPaddle.y + game.computerPaddle.height / 2; // ボールとパドルの中心の差を計算 const difference = ballCenterY - paddleCenterY; // 反応に少し遅れを持たせる(人間らしい動き) if (Math.abs(difference) > 10) { if (difference > 0) { game.computerPaddle.y += game.computerPaddle.speed; } else { game.computerPaddle.y -= game.computerPaddle.speed; } } // コンピューターパドルの画面外移動を防ぐ if (game.computerPaddle.y < 0) { game.computerPaddle.y = 0; } if (game.computerPaddle.y > canvas.height - game.computerPaddle.height) { game.computerPaddle.y = canvas.height - game.computerPaddle.height; } } // ボールの移動と衝突判定 function updateBall() { // ボールの位置を更新 game.ball.x += game.ball.speedX; game.ball.y += game.ball.speedY; // 上下の壁との衝突判定 if (game.ball.y - game.ball.radius < 0 || game.ball.y + game.ball.radius > canvas.height) { game.ball.speedY = -game.ball.speedY; } // プレイヤーパドルとの衝突判定 if (game.ball.x - game.ball.radius < game.playerPaddle.x + game.playerPaddle.width && game.ball.x + game.ball.radius > game.playerPaddle.x && game.ball.y + game.ball.radius > game.playerPaddle.y && game.ball.y - game.ball.radius < game.playerPaddle.y + game.playerPaddle.height) { // ボールがパドルに当たった位置によって跳ね返り角度を調整 const hitPos = (game.ball.y - (game.playerPaddle.y + game.playerPaddle.height / 2)) / (game.playerPaddle.height / 2); game.ball.speedX = Math.abs(game.ball.speedX); game.ball.speedY = hitPos * 4; // ボールの速度を少し上げる(ゲームをエキサイティングに) if (Math.abs(game.ball.speedX) < game.ball.maxSpeed) { game.ball.speedX *= 1.02; } } // コンピューターパドルとの衝突判定 if (game.ball.x + game.ball.radius > game.computerPaddle.x && game.ball.x - game.ball.radius < game.computerPaddle.x + game.computerPaddle.width && game.ball.y + game.ball.radius > game.computerPaddle.y && game.ball.y - game.ball.radius < game.computerPaddle.y + game.computerPaddle.height) { // ボールがパドルに当たった位置によって跳ね返り角度を調整 const hitPos = (game.ball.y - (game.computerPaddle.y + game.computerPaddle.height / 2)) / (game.computerPaddle.height / 2); game.ball.speedX = -Math.abs(game.ball.speedX); game.ball.speedY = hitPos * 4; // ボールの速度を少し上げる if (Math.abs(game.ball.speedX) < game.ball.maxSpeed) { game.ball.speedX *= 1.02; } } // ボールが左右の壁を越えた場合(得点処理) if (game.ball.x < 0) { // コンピューターの得点 game.score.computer++; updateScore(); resetBall(); } else if (game.ball.x > canvas.width) { // プレイヤーの得点 game.score.player++; updateScore(); resetBall(); } } // ボールをリセット(得点後の処理) function resetBall() { game.ball.x = canvas.width / 2; game.ball.y = canvas.height / 2; // ランダムな方向でボールを発射 game.ball.speedX = (Math.random() > 0.5 ? 4 : -4); game.ball.speedY = (Math.random() - 0.5) * 6; } // スコア表示の更新 function updateScore() { playerScoreElement.textContent = game.score.player; computerScoreElement.textContent = game.score.computer; } // 描画処理 function draw() { // 画面をクリア ctx.fillStyle = '#000'; ctx.fillRect(0, 0, canvas.width, canvas.height); // 中央の点線を描画 ctx.setLineDash([5, 5]); ctx.beginPath(); ctx.moveTo(canvas.width / 2, 0); ctx.lineTo(canvas.width / 2, canvas.height); ctx.strokeStyle = '#fff'; ctx.stroke(); ctx.setLineDash([]); // プレイヤーパドルを描画 ctx.fillStyle = '#fff'; ctx.fillRect(game.playerPaddle.x, game.playerPaddle.y, game.playerPaddle.width, game.playerPaddle.height); // コンピューターパドルを描画 ctx.fillRect(game.computerPaddle.x, game.computerPaddle.y, game.computerPaddle.width, game.computerPaddle.height); // ボールを描画 ctx.beginPath(); ctx.arc(game.ball.x, game.ball.y, game.ball.radius, 0, Math.PI * 2); ctx.fillStyle = '#fff'; ctx.fill(); // ゲームが停止中の場合、メッセージを表示 if (!gameRunning) { ctx.fillStyle = '#fff'; ctx.font = '20px Courier New'; ctx.textAlign = 'center'; ctx.fillText('ゲーム開始ボタンを押してください', canvas.width / 2, canvas.height / 2 + 60); } } // ゲームのメインループ function gameLoop() { if (!gameRunning) return; updatePaddles(); updateBall(); draw(); animationId = requestAnimationFrame(gameLoop); } // ゲーム開始 function startGame() { gameRunning = true; gameLoop(); } // ゲームリセット function resetGame() { gameRunning = false; if (animationId) { cancelAnimationFrame(animationId); } // スコアをリセット game.score.player = 0; game.score.computer = 0; updateScore(); // ボールとパドルの位置をリセット game.ball.x = canvas.width / 2; game.ball.y = canvas.height / 2; game.ball.speedX = 4; game.ball.speedY = 3; game.playerPaddle.y = canvas.height / 2 - 50; game.computerPaddle.y = canvas.height / 2 - 50; draw(); } // 初期描画 draw(); </script> ``` </body> </html>
注:すべての女子枠利用者がモンスター化するわけではありません。すばらしい先生も多数おられます。
事例1:
(注:このような書き方がされている場合、男性のESは初期段階で落とされる。)
PI(研究室を主として持つ教員のこと)だったので、4月には学生が配属された。修士に進学する学生もおり、快く受け入れた。
ある国立大学の女性限定公募があり、同時に進行していたが、理事会での決定が遅れていたのだという。
(注:大学教員の採用活動は、学部の先生方の判断でほぼ決定する。理事会での決定にはそれから2ヶ月程度かかることがある。そこでNGとなることはほぼない。)
つまり、退職することがわかっていながら、4月に私立大学に着任したのである。
学部はパニック、人事もパニック、学生はもっとパニックである。
結局、定年退職したおじいちゃん先生を呼び戻して代打とすることになった。
学生はいまさら配属を変えることはできないので、お互い望まぬおじいちゃん先生の下で3年間を過ごすことになったのである。
事例2:
教員Bは産休の2年間の休みが明け、4月から復帰することとなった。
そのため、前年末からは教員の業務の割り振りを決める会が実施され、教員Bにも業務が割り振られた。
(注:事例1と同様、内々には早い段階で採用が決定している)
つまり、退職することがわかっていながら、産休明けで復帰すると宣言し、業務の割り振りに同意していたのである。
結局、残業という概念のない教員たちが業務を請け負うこととなった。
事例3:
2ヶ月後から産休開始ということで、規定ギリギリでの申告であった。
ところが、有給休暇を同時に消化したいという。
これにより、申告から2週間後が最終出勤日となった。
まさか、その後産休に入るとはつゆ知らず、旅行ですか~?などと気楽に考えていた現場は、突然の引き継ぎ業務発生にパニックである。
彼女らに共通するのは、規定は守っている、そのような権利があるという意識である。
確かに、産休や退職というのは言い出しづらく、事前に調整するのには心理的負担があるかもしれない。
まるでポイ活の裏ワザを活用するかのように、自分の負担を1減らすために、10人の他人に10ずつの負担を押し付けていく。
import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D from matplotlib import animation # --- パラメータ設定 --- x = np.linspace(-2, 2, 50) y = np.linspace(-2, 2, 50) X, Y = np.meshgrid(x, y) # 初期状態のM2ブレーン (単純な膜) def membrane_vibration(X, Y, t): return 0.3 * np.sin(2 * np.pi * (X**2 + Y**2 - 0.5 * t)) fig = plt.figure(figsize=(8, 6)) ax = fig.add_subplot(111, projection='3d') # 初期プロット Z = membrane_vibration(X, Y, 0) surf = [ax.plot_surface(X, Y, Z, cmap='viridis')] def update(t): ax.clear() ax.set_zlim(-1, 1) Z = membrane_vibration(X, Y, t) surf = ax.plot_surface(X, Y, Z, cmap='viridis') ax.set_title(f"M2-brane vibration at t = {t:.2f}") return surf, ani = animation.FuncAnimation(fig, update, frames=np.linspace(0, 4, 100), interval=100) plt.show()
この解釈は、シュレーディンガー方程式の時間発展を維持しつつ、意識と観測の役割を強調する点で、エヴェレットの「多世界解釈」や量子ベイズ主義(QBism)に似た要素を持ちつつ、それらと異なる独自の特徴を持っています。
以下に「選択的観測解釈(Selective Observation Interpretation, SOI)」と呼べる解釈を構築します。
物理系は通常の量子力学と同様にシュレーディンガー方程式に従ってユニタリーに時間発展する。
iℏ∂/∂t|ψ(t)⟩ = Ĥ|ψ(t)⟩
ここで、|ψ(t)⟩ は時刻 t における量子状態、Ĥ はハミルトニアンである。
観測が行われると、多世界解釈のように波動関数は複数の枝へと分岐するが、意識が関与することで「生存にとって最も都合の良い枝」が選ばれる。
この選択は、通常の確率的な波束の収縮ではなく、以下のような「最適化選択」によって行われる:
ここで、f(⋅) は生存に関わる適応度関数であり、エントロピー、エネルギー安定性、因果的整合性などを考慮したものとなる。
観測を行うと、観測者の持つ知識が状態の選択に影響を与える。これは、以下のように解釈できる:
選択的観測は「量子ダーウィニズム(Quantum Darwinism)」と類似する側面を持つ。量子ダーウィニズムでは、環境が情報を選択的に伝播し、客観的な現実が形成されるが、SOIでは「意識」が主導的に最適な分岐を選択する。
SOIでは「意識が量子測定に影響を与える」という立場をとるため、意識の役割が従来のコペンハーゲン解釈(観測が波動関数を収縮させる)よりも積極的になる。
これはウィグナーの「意識による波動関数の収縮」に類似しつつ、「生存適応度」という要素を加えたものとなる。
意識がより生存に有利な分岐を選択するため、ある種の「未来予測」が可能になるかもしれない。
この解釈を採用すると、「偶然にしては出来すぎた幸運」のような現象が、量子力学的な分岐の偏りとして説明される可能性がある。
観測によって知識が状態に影響を与えるという点では、量子ベイズ主義(QBism)に似ている。
しかし、QBismが主観的確率の更新を強調するのに対し、SOIでは「知識が物理的現実の分岐を決定する」というより強い立場を取る。
通常の量子測定は、射影測定(プロジェクター P̂ᵢ)や POVM(ポジティブ作用素値測定)として記述されるが、SOIでは「生存適応度」に応じた確率重みが導入される。
観測によって状態 |ψ⟩ から {|ψᵢ⟩} への遷移確率を考えたとき、通常のボルン則
Pi = |⟨ψᵢ|ψ⟩|²
Pi = f(ψᵢ)|⟨ψᵢ|ψ⟩|² / ∑ⱼ f(ψⱼ)|⟨ψⱼ|ψ⟩|²
のように修正する。
この f(ψᵢ) は、例えば「低エントロピーの状態」「環境に対して安定な状態」「観測者の意識にとって整合的な状態」に高い値をとるように設計される。
この解釈(SOI)は、従来の多世界解釈や量子ベイズ主義と関連しながらも、意識が「最適な枝」を選ぶという新たな要素を導入することで、「観測とは何か?」という問題に独自の答えを与える。
特に、「なぜ私たちはこの世界線を経験しているのか?」という疑問に対して、「意識が最適な分岐を選び続けた結果である」という説明を与えることができる。
学会の飲み会で色々鬱っぽくなってしまって自分の居場所なんかどこにもないんじゃないかという気持ちになったので、冷静になるために考えを吐露します。
自分は多人数でのコミュニケーションが苦手で飲み会などは楽しいと思ったことがない。
でも周りのから常に、「学会は人と繋がるための場所である」と喧伝されているので、行かなくてはという気持ちになって、参加してはしんどくなるのを学生時代から繰り返している。世間一般からしたら社会不適合者の典型みたいな感じかもしれない。(が、飲み会が苦手な人は研究界隈で結構いる気がしていて、そういう人の意見は透明化されていると思っている。学会近辺は飲み会大好き/コミュ強の人の声が大きすぎて、そういう意見が正として扱われすぎている。その結果、自分みたいな人はめちゃくちゃ鬱になってるはず)
学会飲み会でも私/僕はこういう人と繋がっていて、こんな話を聞いたみたいな話ばっかりで、しかも自分は大体の人名を知らなくて胡散臭いセミナーに出てるかのような気分になる。そして、そういう人は往々にして学会の運営委員などになっているので、ものすごい劣等感に苛まれる。
劣等感だけならいいのだが、AI界隈は狭いので、この場に馴染めないような自分にはAI界隈にいる権利はないのではないかという気になってくるので、ポスドク3年目も相まって相当きつい。
なぜ劣等感や所在なさを感じてしまうか?それは人との繋がりが(アカデミアや民間での)キャリア形成に役立つと一般に常識として考えられているからだと思う。
本当にそうなのかを延々と考えた。
アカデミアでのキャリアの最重要な要素といえば論文数である。論文数を増やすためには共著に入れそうな主著者を探すのが大切であると言える。実際、自分の周りにも学会で繋がって共著に入って論文数を増やしている人はかなりいる。
しかし個人的な見解では、共著数が増える一番大きな要因は所属研究室であると思う。
必死になって学会で将来の共著を探すよりもビッグラボやデカめのプロジェクトを運営してる研究室に助教に入るだけで共著は爆増する。(全然優秀でない助教の人がその研究室に所属しているというだけで論文爆増しているのを身近に何度も見てきた)
よって、本当にキャリアにおいて論文を爆増させたいなら(今の環境がそうでないなら)転職すべきであると思うし、学会でうぇぇぇいwの正当化には弱い。
学会の委員は完全に飲み会で決まっている印象があるので、飲み会に参加しない人間はノーチャンスっぽい。というか、Xのフォロワー数と綺麗に相関する気がする。
これもノーチャンス。見た感じ顔が広い人にしかお鉢が回ってきていない。
ポスドクでの研究費は個人で採用されるものがほとんどなので、あんまり関係ないと思うし、業績的にも自分が代表になる大きめの研究費にチャレンジすべき。しかし、将来的にPIなどになればお仲間を集める/に入れてもらう必要がある。
国内学会の賞もかなり飲み会出席率/Xのフォロワー数に相関してる。ハロー効果がえぐい。審査がシングルブラインドでもないのが悪いし、ブラインドにした途端顔ぶれが入れ替わると思っている。(しかし、自分には運営に発言権がないのでどうにもできない)
ポスドクでの雇用決定はPIの独断であることが多いため、人との繋がりは大きく役に立つ。有名で飲み会好きなお金持ちPIと仲良くなっておけば雇ってくれることも多々あると思われる。しかし、現状AIのポスドク慢性的に不足しており、今は公募に応募しても全然職にありつける。自分もそうだし、周りを見てもニューラルを全然学生時代にやってきてない人がポスドクで採用されたりしている。みんな任期付で働きたくないからね。
任期なしの雇用は今まで上げたような要素の総合点で決まると聞く。飲み会に出ないマイナス要素で言えば、「学会運営への寄与」「講演経歴」「国内学会賞」ぐらい?しかし他にも「論文数」「国際学会賞」「教育歴」「研究資金の獲得」「国際的な活動」などなどがあり、これは飲み会に影響されない。論文数は戦略的に就職活動をすればいいし、国内学会賞が取れなければ国際学会賞を取れば良いし、国内学会の委員にしてもらえなければ国際学会の委員にして貰えばいい(ハードルはだいぶ上がるけど…)。まだ転職戦線に飛び込んでないけどあまり影響ない(と思いたい。)
民間の雇用は関係ない。学会 or Xで積極的に誘ってくる企業は人手が足りない or 人気がない企業なので、個人的には就職先は声がかかるところではなく、自分で探したほうがいい企業に行けると思う。
「学会で人と繋がらないと〜」みたいな脅しは、ポジショントークのただのまやかしであるので学生諸氏は気をつけるべし。気に病まなくて良い。多人数コミュニケーションが苦手な人(私を含め)に私はエールを送りたい。飲み会には出なくていいです。
(あと、国内でのコネクションを強くするのは基本的に弱者の戦略で、学生が気にするべきはトップ学会に主著をなるべく多く通すことだと思う。)
学会がXのフォロワー数が多い人を中心に回っているのが全て悪いと思う。みんなポジショントークしかしないし、そのせいで苦しんでいる人が多くいるのをわかってほしい。
あと研究ネタがXの流行に引っ張られるのが意味わからん。しょうもないネタをフォロワー多い人がいい研究といったのが発端で学生がやり出すのが見てられない。
ちょっと元気になってきました、ありがとうございます。