はてなキーワード: 変数とは
多人数マルチゲーや長時間配信で明らかに家庭用安物ルータが泡吹いて死んで「あれ~おっかしいな~繋がらないな~見えないな~」ってやってる時間。
立派なゲーミングパソコン揃えてるんだろうよ、回線も吟味して速い光回線引いてんだろうよ。でも間に入ってるそのルータ、nuroの必須ルータかバッファローのワイファイか知らねえけどさ、本棚の後ろに突っ込まれて熱暴走してるか、ソフトがポンコツでNAT溢れしてるかどっちかで死にかけてるだろ。
NVR500の中古でも何でもいいから強いルータに変えるなり安物ゲーミングならちゃんと風当てて冷やすなりパケロスしないようにしてくれよ。回線ガチャって言うけどネット回線の業者だけが変数じゃねえだろ。それかもうVPN張って無理矢理TCPセッションを1本に絞るとかさ、「また〇〇さんが繋がらないな~」「あれ~突然調子悪くなったな~」って毎回毎回毎回毎回毎回毎回毎回同じことすんなよ。裏ではDiscordで繋がってんだろ、何か知り合いのプロに聞いて同業者で対策回せよ。
昔の慣習に倣ってコメントを丁寧に書く人がいまだに居るけれど
以前のコードをコメントアウトしているようなソースは論外として
例えばメソッド・関数の頭にそれが何をする関数なのかを書いている人が多いけれど
メソッド名や引数名、戻り値の型をキッチリ付けておけば分からないことなんて無い
それ以上の複雑な処理をするなら機能分解するべきだし名前を付けにくい処理の場合はそもそもの設計がおかしい
昔は便利なIDEが無かったので変数や関数の名前に長い名前を付けると実装が大変で
仕方なくx1だとかval2だとかを使って実装してたのでコメントに書いておくようなこともあったけれど
Copilotを使える時代にコメントを書く必要なんて皆無だし
仮に意味が分からないコードがあってもCopilotに聞けばいいのでやっぱりコメントは必要ない
コメントがあった方が良い場合は「この実装はこのアルゴリズムに基づいて実装している」とURLのリンクを貼ったり
「この規則があるのでこういう実装をしている」とRFCを貼ったりするとかはあるけれど
それもほとんど変数名だとかで解決できるし、あっても1行で終わるレベル
そういう実装全体の設計に関するような話はReadmeに書けば良いのでソースコード内のコメントとしては必要無い
「それでも無いよりはいいでしょ?」みたいに言う人いるが逆に問題になることも多い
コメント内容と実装が違う場合にどっちが正解なのかが分からなくなったり
ソースコードの修正に対してコメントが修正されていなくて後々で揉めたりする
当然ながらコメント部分にはLintが効かないので(ChatGPT使えば作れそうな気もするが)
チェック内容も増えるし良いことがほとんどない
ヤバいJTCとかは「各行にコメントを書いて下さい」とか言ってきて正気の沙汰じゃ無い
まぁそういう案件が来たらChatGPTに丸投げするとは思うけれど下手すると「Copilot禁止」とかも言い出しそうだな
書いたところで誰も読まないのにアホすぎる
都市伝説によれば、かつてアインシュタインの古典的重力理論「一般相対性理論」を理解していたのは3人だけだったと言われている。
それが真実かどうかは別として、その3人のうちの1人がダフィッド・ヒルベルトである。彼は、今日の初学者でも一般相対性理論を理解できるように、それを数学で明確かつ正確(すなわち厳密)に形式化した。
古典的なアインシュタインの重力は、時空上の擬リーマン計量のモジュライ空間上のスカラー曲率密度汎関数の積分の臨界点の研究にすぎない。
物理学の基本的な理論は数学での基本的な定式化を持つべきだと信じたことで、ヒルベルトは本質的にアインシュタインを先取りすることができた。そのため、この汎関数は現在、アインシュタイン・ヒルベルト作用汎関数と呼ばれている。
ヒルベルトは、1900年の有名なヒルベルトの問題の一環として、この一般的なアイデアを以前から提唱していた。ここでヒルベルトの第6問題は、物理学の理論の公理を見つけることを数学者に求めている。
それ以来、そのような公理化のリストが見つかっている。例えば、
物理学 | 数学 |
力学 | シンプレクティック幾何学 |
重力 | リーマン幾何学 |
ゲージ理論 | チェルン・ヴェイユ理論 |
量子力学 | 作用素代数 |
トポロジカル局所量子場理論 | モノイダル(∞,n)-カテゴリ理論 |
このリストには注目すべき2つの側面がある。一方で、数学の最高の成果が含まれており、他方で、項目が無関係で断片的に見えることだ。
学生時代、ウィリアム・ローヴィアは「合理的熱力学」と呼ばれる熱力学の公理化の提案に触れた。彼は、そのような連続体物理学の基本的な基盤は、まず微分幾何学自体の良い基盤を必要とすることに気づいた。彼の生涯の出版記録を見てみると、彼が次の壮大な計画を追求していたことがわかる。
ローヴィアは、最初の2つの項目(圏論的論理、初等トポス理論、代数理論、SDG)への画期的な貢献で有名になった。なぜか、このすべての動機である3番目の項目は広く認識されていないが、ローヴィアはこの3番目の点を継続的に強調していた。
この計画は壮大だが、現代の基準では各項目において不十分である。
現代数学は自然にトポス理論/型理論ではなく、高次トポス理論/ホモトピー型理論に基づいている。
現代の幾何学は「変数集合」(層)だけでなく、「変数ホモトピー型」、「幾何学的ホモトピー型」、「高次スタック」に関する高次幾何学である。
現代物理学は古典的連続体物理学を超えている。高エネルギー(小さな距離)では、古典物理学は量子物理学、特に量子場理論によって精緻化される。
FANZAの検索結果から熟女を除外するブックマークレット がうまく動いたので、気を良くしてはてなブックマークのコメント欄をスター数順にソートするブックマークレットを作りました。
作った動機は、「注目コメントに入りきれなかったちょっといいコメント」をサクサク探したいから。結果として建設的コメント順位付けモデルを無効化していますが、あのアルゴリズムには特に不満は特にありません。
javascript: (async () => {
const wait = ms => new Promise(resolve => setTimeout(resolve, ms));
document.querySelector('.js-bookmarks-sort-tab[data-sort="recent"]').click();
window.scrollTo(0, document.body.scrollHeight);
await wait(1000);
window.scrollTo(0, 0);
await wait(1000);
const p = document.querySelector('.js-bookmarks-recent');
let l = Array.from(p.querySelectorAll('.entry-comment-contents'));
const g = e => {
let n = e.querySelectorAll('.hatena-star-star').length;
const c = e.querySelector('.hatena-star-inner-count');
return c ? n + Number(c.textContent) : n
};
l = l.filter(e => g(e) > 0);
l.sort((a, b) => g(b) - g(a));
p.replaceChildren(...l);
})();
ミニファイしたもの ※コードに一部誤りがありましたので訂正しました(2024-08-16 11:47)
javascript:(async()=>{const wait=ms=>new Promise(resolve=>setTimeout(resolve,ms));document.querySelector('.js-bookmarks-sort-tab[data-sort="recent"]').click();window.scrollTo(0,document.body.scrollHeight);await wait(1000);window.scrollTo(0,0);await wait(1000);const p=document.querySelector('.js-bookmarks-recent');let l=Array.from(p.querySelectorAll('.entry-comment-contents'));const g=e=>{let n=e.querySelectorAll('.hatena-star-star').length;const c=e.querySelector('.hatena-star-inner-count');return c?n+Number(c.textContent):n};l=l.filter(e=>g(e)>0);l.sort((a,b)=>g(b)-g(a));p.replaceChildren(...l)})()
FANZAの検索結果から熟女を除外するブックマークレット 参照
javascript:
ブックマークレットに必要な、URLの種類を示すスキーム名です。
(async () => {
// 処理
})();
ページに元々ある変数たちとバッティングしないように、まず無名関数でラップします。処理の中で await を使いたいので async 宣言しています。
const wait = ms => new Promise(resolve => setTimeout(resolve, ms));
document.querySelector('.js-bookmarks-sort-tab[data-sort="recent"]').click();
window.scrollTo(0, document.body.scrollHeight);
await wait(1000);
「新着コメント」タブをクリックし、ページの一番下までスクロールダウンしてから少し待つ動作です。新着コメントの後半部分(スクロールきっかけの遅延読み込みになっているところ)の読み込みをうながしています。
window.scrollTo(0, 0);
await wait(1000);
ページの先頭に戻ってまた少し待ちます。合計2秒の待ち時間は雰囲気で決めていますので、これでなければならない・これで過不足ないという値ではありません。単にコメントの読み込み完了を判定する処理を書くのがめんどうだっただけです。
const p = document.querySelector('.js-bookmarks-recent');
新着ブコメの親要素です。繰り返し呼び出すので名前をつけています。
let l = Array.from(p.querySelectorAll('.entry-comment-contents'));
const g = e => {
let n = e.querySelectorAll('.hatena-star-star').length;
const c = e.querySelector('.hatena-star-inner-count');
return c ? n + Number(c.textContent) : n
};
コメントのはてなスター数をカウントして返す関数です。たくさんスターがついてる ★256★ みたいなやつの数字も足します。
l = l.filter(e => g(e) > 0);
ソートする前に、無スターのコメントを消去しています。してもしなくてもいいことですが。
l.sort((a, b) => g(b) - g(a));
残ったコメントをスター数で降順ソートします。.querySelectorAll() で収集した要素を配列に入れ直したのは、この .sort() メソッドを使いたいからです(.querySelectorAll() が返す配列風の NodeList オブジェクトは、配列と共通のメソッドもいくつかあるものの、大半は使えないのです)。
p.replaceChildren(...l);
親要素の内容を、並び替えの終わったコメントでそっくり入れ替えて、処理完了です。画面を見ると新着コメントの中身が「スターのついたコメントのみ・スターの多い順」に並んでいます。元に戻す方法はないので、原状回復にはリロードします。ソート状態を示すフラグを立てておいてスター数ソート⇔日付ソートをかわりばんこに行うようにすればできそうだなと思ったけど実装はしません。連打スターを省く処理を追加してUU数でソートできればもっと厳正なランキングになるなーと今思いつきましたがそれも実装はしません。
私は熟女モノとか人妻モノは眼中にないのですが、なぜだか最近そっち系の作品が多くて閉口しています。
しかしFANZA側の検索システムはNOT検索できるようになっていません。そこで、検索結果から除外できそうなものを除外するブックマークレットを作ることにしました。
さいわい近年は内容の概要文をそのままタイトルにしたような作品ばかりなので、タイトルに含まれるキーワードで除外が簡単にできそうです。
「熟女」とか「五十路」のような単語を含む作品を非表示にしてしまえばよいのです。
javascript: (() => {
const r = /熟女|完熟|熟れ|四十路|五十路|六十路|人妻|奥様|妻|夫|母|ママ|おばさん|BBA|姑|嫁/;
const q = '#list>li';
document.querySelectorAll(q).forEach(l => {
if (r.test(l.textContent)) {
l.remove();
}
});
})();
javascript:(()=>{const r=/熟女|完熟|熟れ|四十路|五十路|六十路|人妻|奥様|妻|夫|母|ママ|おばさん|BBA|姑|嫁/;const q='#list>li';document.querySelectorAll(q).forEach(l=>{if(r.test(l.textContent)){l.remove()}})})()
このブックマークレットで、検索結果に含まれる熟女系作品の数を1/3くらいにまで減らすことができます。
ブックマークレットとは、ブックマークにURLではなくJavaScriptを登録して、閲覧中のページ上で自分(やほかの誰か)が作ったプログラムを実行できるしくみのことです。普通のブックマークと同じようにブックマークバーなどに並べておいて、クリックひとつで呼び出すことができて便利です。
①まず、どこのページでもいいので(今読んでいるこのページでもよい)ブックマークをひとつ作り、ブックマークバーなどの呼び出しやすいところに置きます。
②できたブックマークを右クリックして「編集...」を選びます。
③「名前」欄は、自分にわかりやすい名前に変更します。でも「FANZAフィルター」などあけすけな名前をつけると、誰かに画面を覗かれた時に困りますよ。
④「URL」欄に、上記したプログラムコードを入力します。ただし上記のコードは私向けのキーワード選定になっていますので、ご自身の好みに合わせたキーワード選定をしていただければよいかと思います。/単語1|単語2|単語3/
のように記述してください。
ふつうのソースコードと、改行・インデントなどを省いてミニファイ(最小化)したもの、どちらをコピペしても大丈夫です。
⑦このブックマークレットを起動します。すると、瞬時に検索結果が減ります。
キーワードだけが異なる複数のブックマークレットを登録しておいて、場面に応じて使い分けるなどの工夫もできるでしょう。
上記のスクリプトが何か悪さをするようなものではないことを説明するために、また、JavaScript を学習し始めたばかりの人のために、このシンプルなスクリプトの解説をします。
javascript:
URLの種類を示すスキーム名です。一般的なURLは https:
や mailto:
などで始まりますが、javascript:
と書くと、これに続くコードがプログラムとして実行されます。
(() => {
// 処理
})();
ここからが JavaScript です。まず処理全体をくるむ大きなカッコと最後に付け足された () は、自己実行無名関数という形式です。今回のブックマークレットは変数を含みますので、実行するページに元々ある変数たちとバッティングしないようこのようなかたちにします。
const r = /熟女|完熟|熟れ|四十路|五十路|六十路|人妻|奥様|妻|夫|母|ママ|おばさん|BBA|姑|嫁/;
除外したい単語を羅列した正規表現です。個人個人で設定が変わる部分なので、編集しやすいように切り出しておきました。
const q = '#list>li';
フィルター対象とするHTML要素群のクエリーセレクター文字列です。検索結果に一覧表示される、個々の作品要素を選択します。FANZAがシステム改修を行うと変わってしまう可能性がある部分なので、メンテしやすいようにここだけ切り出しておきました。
document.querySelectorAll(q).forEach(l => {
// 処理
});
クエリーセレクター q
に一致する要素 l
ひとつひとつについて反復して処理を行います。
if (r.test(l.textContent)) {
l.remove();
}
もし要素 l
内のテキストが正規表現 r
と一致していたら、要素 l
を取り除く、という処理です。正規表現 r
はキーワードの羅列ですので、テキストの一部にキーワードのどれかが含まれていたら一致したことになります。
今日は「幸福の資本論」を数学的に定式化することに挑戦してみたんやけど、これがほんまに奥深いテーマやわ。
この理論は、幸福を「金融資本」「人的資本」「社会資本」の3つの資本で説明してるんやけど、これを数学的に表現するのはなかなかの挑戦や。
まず、幸福を数式で表現するために、3つの資本をそれぞれ F(金融資本)、H(人的資本)、S(社会資本)とするやろ。
ほんで、幸福 U(utility)を求める関数を考えると、次のような多変数関数で表せるんちゃうか?
U(F, H, S) = α ⋅ log(F + ε) + β ⋅ log(H + ε) + γ ⋅ log(S + ε)
ここで、α, β, γ は各資本が幸福に与える影響の重みや。ε は、資本がゼロのときでも対数が定義できるようにするための小さな定数や。
例えば、資本が増えると幸福も増えるけど、その増え方は次第に鈍化する、
これを対数関数で表現することで、現実的なモデルになっとるわけや。
さらに、8つの人生パターンを考慮するためには、各資本の重み α, β, γ をパターンごとに変える必要があるんや。
これを行列で表現すると、人生パターンごとに異なる重みベクトル wᵢ = (αᵢ, βᵢ, γᵢ) を用意して、幸福関数を次のように拡張できるで:
Uᵢ(F, H, S) = wᵢ ⋅ [log(F + ε), log(H + ε), log(S + ε)]ᵀ
ここで、i は人生パターンのインデックスや。このようにして、個々の人生パターンに応じた幸福の計算ができるようになるんや。
さらに、これを最適化問題として考えることもできるで。例えば、限られたリソースをどの資本に配分するかを考えるとき、次の制約付き最適化問題を解くことになるんちゃうか?
maximize Uᵢ(F, H, S)
subject to C(F, H, S) ≤ B
連続時間モデルにおいて、最適投資戦略は Hamilton-Jacobi-Bellman (HJB) 方程式を解くことで導出される。
投資家の効用関数を U(x) とし、リスク資産の価格過程を幾何ブラウン運動
このとき、最適な投資比率 π*(t,x) は以下の HJB 方程式を解くことで得られる:
0 = sup_π { U'(x)(rx + (μ-r)πx) + ½U''(x)σ²π²x² + V_t }
ここで、V(t,x) は価値関数、r は無リスク金利である。
完備市場を仮定し、リスク中立測度 Q のもとでのオプション価格を導出する。
ヨーロピアン・コール・オプションの価格 C(t,S) は以下で与えられる:
C(t,S) = e^(-r(T-t)) E_Q[(S_T - K)⁺ | F_t]
ここで、K は行使価格、T は満期、F_t は時刻 t までの情報集合である。
Black-Scholes モデルの下では、この期待値は解析的に計算可能であり、以下の公式が得られる:
C(t,S) = SN(d₁) - Ke^(-r(T-t))N(d₂)
ここで、N(・) は標準正規分布の累積分布関数、d₁ と d₂ は所定の公式で与えられる。
Heston モデルなどの確率ボラティリティモデルでは、ボラティリティ自体が確率過程に従うと仮定する:
ここで、W¹ₜ と W²ₜ は相関 ρ を持つウィナー過程である。
このモデルの下でのオプション価格は、特性関数法を用いて数値的に計算される。
大口注文の最適執行を考える。Almgren-Chriss モデルでは、以下の最適化問題を解く:
min_x E[C(x)] + λVar[C(x)]
ここで、C(x) は執行コスト、x は執行戦略、λ はリスク回避度である。
市場インパクトを線形と仮定すると、最適執行戦略は時間に関して指数関数的に減少する形となる。
極値理論を用いて、稀な事象のリスクを評価する。一般化極値分布 (GEV) を用いて、最大損失の分布をモデル化する:
F(x; μ, σ, ξ) = exp{-(1 + ξ((x-μ)/σ))^(-1/ξ)}
ここで、μ は位置パラメータ、σ はスケールパラメータ、ξ は形状パラメータである。
これにより、通常の VaR や ES では捉えきれないテールリスクを評価できる。
確率制御理論を用いて、時間変動する市場環境下での最適資産配分を導出する。
dXₜ = μ(Xₜ,αₜ)dt + σ(Xₜ,αₜ)dWₜ
sup_α E[∫₀ᵀ f(Xₜ,αₜ)dt + g(X_T)]
Ωを仮に100次元の実ベクトル空間R^100とする。各次元は特定の神経活動パターンに対応する。
Ω = {ω ∈ R^100 | ||ω||₂ ≤ 1}
ここで||・||₂はユークリッドノルムである。τは標準的なユークリッド位相とする。
O : Ω → Ω
O(ω) = Aω / ||Aω||₂
ここでAは100×100の実行列で、||Aω||₂ ≠ 0とする。
S[ω] = -∫Ω p(x) log p(x) dx
S[O(ω)] ≤ S[ω] + log(det(AA^T))
dω/dt = F(ω) + G(ω, O)
F(ω) = -αω + β tanh(Wω)
G(ω, O) = γ(O(ω) - ω)
ここでα, β, γは正の定数、Wは100×100の重み行列、tanhは要素ごとの双曲線正接関数である。
g_ij(ω) = E[(∂log p(x|ω)/∂ω_i)(∂log p(x|ω)/∂ω_j)]
ここでE[・]は期待値、p(x|ω)は状態ωでの条件付き確率密度関数である。
ψ(x) = √(p(x)) exp(iθ(x))
Φ[ω] = min_π (I(X;Y) - I(X_π;Y_π))
ここでI(X;Y)は相互情報量、πは可能な分割、X_πとY_πは分割後の変数である。
勾配降下法を用いて定式化する:
ω_new = ω_old - η ∇L(ω_old, O)
L(ω, O) = ||O(ω) - ω_target||₂²
G = (V, E)
V = {v_1, ..., v_100}
E ⊆ V × V
各頂点v_iはω_iに対応し、辺(v_i, v_j)はω_iからω_jへの因果関係を表す。
このモデルはPythonとNumPyを用いて以下のように実装できる:
import numpy as np from scipy.stats import entropy from scipy.integrate import odeint import matplotlib.pyplot as plt class ConsciousnessModel: def __init__(self, dim=100): self.dim = dim self.omega = np.random.rand(dim) self.omega /= np.linalg.norm(self.omega) self.A = np.random.rand(dim, dim) self.W = np.random.rand(dim, dim) self.alpha = 0.1 self.beta = 1.0 self.gamma = 0.5 self.eta = 0.01 def observe(self, omega): result = self.A @ omega return result / np.linalg.norm(result) def entropy(self, omega): p = np.abs(omega) / np.sum(np.abs(omega)) return entropy(p) def dynamics(self, omega, t): F = -self.alpha * omega + self.beta * np.tanh(self.W @ omega) G = self.gamma * (self.observe(omega) - omega) return F + G def update(self, target): def loss(o): return np.linalg.norm(self.observe(o) - target)**2 grad = np.zeros_like(self.omega) epsilon = 1e-8 for i in range(self.dim): e = np.zeros(self.dim) e[i] = epsilon grad[i] = (loss(self.omega + e) - loss(self.omega - e)) / (2 * epsilon) self.omega -= self.eta * grad self.omega /= np.linalg.norm(self.omega) def integrated_information(self, omega): def mutual_info(x, y): p_x = np.abs(x) / np.sum(np.abs(x)) p_y = np.abs(y) / np.sum(np.abs(y)) p_xy = np.abs(np.concatenate([x, y])) / np.sum(np.abs(np.concatenate([x, y]))) return entropy(p_x) + entropy(p_y) - entropy(p_xy) total_info = mutual_info(omega[:self.dim//2], omega[self.dim//2:]) min_info = float('inf') for i in range(1, self.dim): partition_info = mutual_info(omega[:i], omega[i:]) min_info = min(min_info, partition_info) return total_info - min_info def causal_structure(self): threshold = 0.1 return (np.abs(self.W) > threshold).astype(int) def run_simulation(self, steps=1000, dt=0.01): t = np.linspace(0, steps*dt, steps) solution = odeint(self.dynamics, self.omega, t) self.omega = solution[-1] self.omega /= np.linalg.norm(self.omega) return solution def quantum_state(self): phase = np.random.rand(self.dim) * 2 * np.pi return np.sqrt(np.abs(self.omega)) * np.exp(1j * phase) # モデルの使用例 model = ConsciousnessModel(dim=100) # シミュレーション実行 trajectory = model.run_simulation(steps=10000, dt=0.01) # 最終状態の表示 print("Final state:", model.omega) # エントロピーの計算 print("Entropy:", model.entropy(model.omega)) # 統合情報量の計算 phi = model.integrated_information(model.omega) print("Integrated Information:", phi) # 因果構造の取得 causal_matrix = model.causal_structure() print("Causal Structure:") print(causal_matrix) # 観測の実行 observed_state = model.observe(model.omega) print("Observed state:", observed_state) # 学習の実行 target_state = np.random.rand(model.dim) target_state /= np.linalg.norm(target_state) model.update(target_state) print("Updated state:", model.omega) # 量子状態の生成 quantum_state = model.quantum_state() print("Quantum state:", quantum_state) # 時間発展の可視化 plt.figure(figsize=(12, 6)) plt.plot(trajectory[:, :5]) # 最初の5次元のみプロット plt.title("Time Evolution of Consciousness State") plt.xlabel("Time Step") plt.ylabel("State Value") plt.legend([f"Dim {i+1}" for i in range(5)]) plt.show()
by リチャード・ドーキンス&アラン・ソーカル 4/8米紙掲載(和訳)
https://note.com/wypcg332/n/n2fd87efc404f
ほぼすべての動物、および多くの植物が有性生殖を行います。有性生殖を行うすべての種において、これは大きな配偶子(卵子または卵と呼ばれる)と小さな配偶子(精子と呼ばれる)を組み合わせることで行われます。一部の雌雄同体の植物や動物は卵子と精子の両方を生産しますが、両方を生産する哺乳類の種は存在しません。哺乳類では、各個体は一種類の配偶子のみを生産します。(比較的少数の)卵子を生産する個体は雌(female)と呼ばれ、(大量の)精子を生産する個体は雄(male)と呼ばれます。哺乳類の胚が雄または雌に発達するかは、性染色体のペアによって決定されます:
簡潔に言えば、すべての動物における性別(sex)は配偶子の大きさによって定義され、すべての哺乳類における性別(sex)は性染色体によって決定され、そして性別(sex)は2つであり、ただ2つしかありません:
もちろん、これは全く新しい情報ではありません。これらは1世紀以上前から知られており、一応まともな高校の生物学の授業で扱う基本的な内容です。確かに、突然変異や出生前の発達の特異性により、一部の個体は生存可能な配偶子を全く生成できない場合があります。しかし、Y染色体を持つ不妊の個体は依然として雄であり、それはちょうど片足の人間が私達の二足歩行種の完全なメンバーであり続けるのと同じです。
XXとXY以外の染色体パターンを持って生まれる人間がごくわずかにいるという事実が、しばしば誤ってもっともらしく強調されます。
最も一般的なクラインフェルター症候群(XXY染色体)は、出生の約0.1%程度で発生します。これらの個体は解剖学的に男性ですが、しばしば不妊です。ドラ・シャペル(De la Chapelle)症候群(0.003%)や、スワイヤー症候群(0.0005%)などの非常にまれな状態は、おそらく標準的な男(male)/女(female)の分類から外れてしまうでしょう。それでもなお、性別(sex)の相違は、生物学において見られる他のどの区別と比べても、極めて明確に二元的(バイナリ)です。
ではここから考えると、「出生時に割り当てられた性別("sex assigned at birth")」に関する医療団体の主張はどうなるでしょうか?
赤ちゃんの名前は出生時に割り当てられます。これは誰も疑いません。しかし、赤ちゃんの性別(sex)は「割り当て」られるのではなく、受胎時に決定され、その後出生時に観察されます。まず外性器の検査によって、そしてもし疑わしい場合は染色体分析によって観察されます。もちろん、どんな観察にも誤りがある可能性があり、まれに出生証明書に記載された性別が不正確で、後に修正が必要になることがあります。しかし、観察の誤りやすさ(誤りがあり得るという性質)は、観察されるもの——人間の性別——が、「割り当て」られるものではなく、血液型や指紋のパターンと同じように客観的な生物学的現実であるという事実を変えません。医療団体の表明する見解は、社会構築主義が暴走した結果です。
性別(sex)は人類という種の根源的な特徴です。心理学、社会学、公共政策における重要な変数です。世界中で、殺人の大多数は男性によるものです。女性は男性よりもはるかにシングル・ペアレントになる可能性が高いです。これらの区別は絶対的ではなく統計的なものですが、とても重要です。
性別(sex)について率直に話し、書くことができなければ、私たちの公共の議論は貧弱になり、歪められます。そして、この損失が最も明確なのは医療の分野です。
何十年もの間、フェミニストたちは医学的診断と治療における性別という変数の無視、そして女性の身体が男性の身体と同じように反応・作用するという暗黙の前提に抗議してきました。2年前、権威ある医学誌『ランセット』がついにこの批判を認めましたが、しかし編集者たちは明らかに「女性」という言葉を使うことができませんでした。その代わりに、雑誌の表紙には「歴史的に見て、膣を持つ身体の解剖学と生理学は無視されてきた」と説明されました。しかし今や、この両刃とも見える譲歩さえも失われる可能性があります。生物学的性別(biological sex)の否定が将来の医師たちの訓練を弱体化させる恐れがあるからです。
医療機関が生物学的現実について正直に語ることをこのような新しい現象として躊躇しているのは、おそらくトランスジェンダーの人々の人権を守りたいという称賛に値する願望から来ているのでしょう。しかし、目標は賞賛に値するものの、選択された方法は誤っています。トランスジェンダーの人々を差別やハラスメントから守るために、性別(sex)がただ単に「割り当てられた」ものだと装う必要はありません。
社会的または政治的な大義のために事実を歪めることは、それがどんなに正しい目的のものであっても、決して正当化はされません。もし大義が本当に正当なものであれば、現実世界についての事実を完全に受け入れた上でそれを擁護することができるはずです。
そして、科学を自称する組織が社会的大義のために科学的事実を歪めるとき、その組織自身の信頼性だけでなく、科学全般の信頼性も損なわれます。もし医療機関が性別(sex)のような単純なことについて、このように明らかにあからさまに事実を誤って述べるのを見るとき、ワクチンのような他の論争的な問題 ——医学的コンセンサスが実際に正しい問題—— についての医療機関の声明を、一般公衆の人々がどうして信頼できるでしょうか?
え、おまえ本気で書いてる?
確率を理解できないバカって、確定してない事象をそのまま扱うということが出来ない奴が多いんだけど、まさにその典型だな。
リンダが「銀行員」である可能性を X% (X は0~100の任意の数値)と置けば、「フェミニスト運動に熱心な銀行員」は X% にさらにフェミニスト運動に熱心である可能性(0~100% のいずれか)が加わると、0~X% になるだろ。
だからリンダが「フェミニスト運動に熱心な銀行員」である可能性 0~X% は、リンダが「銀行員」である可能性 X% 以下なんだよ。
確定してない事象をそのまま扱うということが出来ないバカは X とか変数にしておけば考えやすくなるだろ。
後輩へ。「chatGPTやっぱ課金しないとダメっすね。人に聞いたほうが早いっすわ」ではない。
悪いのは君の質問文だ。
「あなたのアカウントがある、違いは」という質問文から「ChatGPTのアカウントの種類と、それらの違いを教えて」という意味を汲むのはなんぼChatGPTでもムリだ。
そして君が周りの人に聞くと問題が解決するのは、悪い質問文を良い質問文に翻訳するコストを他人に押し付けているからである。
でも彼、不思議なことにプログラムは書ける。いや変数名はぐちゃぐちゃだし、修正依頼したら他の箇所がバグって戻って来るなんてのは日常茶飯事なのだが、要求された機能をちゃんと動くものに仕上げて提出してくる力はあるのだ。だからたぶん、思考力はあって、それを自然言語を用いて整理したり、出力するのが不得手なだけなのだと思う。
でも君の雑談交じりのとりとめのない話から問題の要旨を汲むのは本当にきつい。
「こういう機能があって、昨日までは動いてたんですけど、いや違うな、一昨日までは動いてたんすよ、で、一昨日に修正してたら、突然緊急対応入って、それでやってたこと忘れちゃって、で、どんなんだっけなーっていろいろいじってたら、なんか動かなくなってたんすよね」ではない。
彼は本当にシームレスに、必要な話から雑談に移行するからいつも驚かされる。いつ動かなくなったかは問題ではない。何が動かないか聞きたいのだ。
https://anond.hatelabo.jp/20240625191650
念のため言っておくと底辺大や文系出身プログラマーも同様の傾向にある
入力値に想定外のものが入ることを考えていなかったりI/Oに関わるエラーについても配慮がない
「エラーが出たらとにかくtry-catchしてログ吐いて終わり」
ならまだマシな方で、「握りつぶして処理続行」みたいなことも平気でやる
とか滅茶苦茶多い
異常系の話と被るけど基本的に性善説でコード書くのでセキュリティの不備がめちゃくちゃ多い
API作らせてもリクエストの内容を信用して実装するしサニタイズチェックもしない
サーバー作らせてもrootか共通ユーザーだけで運用するしファイル管理も滅茶苦茶
とにかく「目の前に与えられた課題を解く」だけのコードなので他のことに関する配慮が全く無い
TypeScript使わせてもanyだらけだし、JavaとかだとObjectだらけ
うちはPythonでは型は使わないけど命名規則で担保してるのにそれもガン無視で実装する
結果としてできあがるのは
「一応、正常系では動いているけれど他の入力が来たときにどうなるか分からないし誰も修正できない」
っていうコード
最近はそういうコードはChatGPTにぶち込んで型付けて貰ったりするけど
8割ぐらいの確率でChatGPTも型付けできない状態になっててお手上げになる
そりゃ動くし性能も変わらないけど後でバグがあったり変更するときにすげー困る
これもChatGPTにぶち込んで「共通的な処理をメソッド化して」って言うとやってくれるのでめっちゃ便利
クソ重いwhileループになってるメソッドをフレンドリーに何回も呼び出したり
とにかく「最終的に出来上がるものが良好であれば時間がかかっても構わない」的なコードが非常に多い
競プロ系はこういう人はあんまりいないんだが機械学習出身者はマジでこれ
彼らはデータを解析したり優秀なモデルを作るために頑張ってきたので継続的に処理負荷を減らす、みたいなことに意識が回ってくれない
「これはPoCですから」
とか言うんだけど誰でも分かるようなクソ遅いコード書いておいて
とかしれっと言ってくる
気づいたらもう37歳。
マネージメント経験でもあればいんだけど、なまじ大きい所に潜り込んじゃったせいで未だにほぼ平だよ。
名前だけ係長だけど、どうしようもねー新人を教育して書類チェックするだけの最低ライン確保要員。
仕事はすっげーつまんねえ。
技術と関わることが全く出来ねえのがしんどすぎる。
個別の顧客についての情報収集、事情聴取、特に相手が言い淀んでるネガティブな要素を聞き出すためになだめすかして貸し借り作るのがメインで業務の8割は「嫌われる勇気」みたいなのを出力することだ。
潤滑油とか緩衝材とかまさにそんな感じで耐え続けるだけのオッサンだ。
メンタル削られにいって、削られた分を回復して、また使い潰されるのが俺の仕事だ。
辛いぜ。
デリカシーのないクズ扱いされながら相手に踏み込んで、無能扱いされながら念の為の確認を繰り返し、そんで結局最後には相手が大事なこと言ってね―のが俺のせいになって全部組み直しだ。
くだらねえ。
つうか技術の世界だって結局は誰かの思いつきとその場しのぎばっかじゃねえか。
何年も使うような変数の名前思いつきで決めてるようなアホばっかじゃねえか。
マジでくだらねえよ。
要するにだ、どうせどこ行ってもつまんなかっただろうなってことだ。
マジでムカつくわ。
おつかれさまです (どのような事に従事されているか存じ上げませんが、一旦それに割り込む形で私が対話者として主体的に関わってよろしいでしょうか?/”こちらから見て”あなたの大事な用はおおきいことであるのでひとしきり労をねぎらわせていただいて)
┗あんたがどれほど疲れてるかなんて知らんがな 格下の私からみたらすごい大変なんやろなって そんなんしたら疲れてまうわと思うけどこっちも用事があるんですんませんけど割り込んでええかって意味
┗「つかれてへんわ」って自分が自分の基準でなんもしてないアピールされても「すごいですね」としか言えんやろがい 自分を語ってくれるんはありがたいけどそんな事はきいてないというか聞いてほしいことがあるって言ってんの
ごくろうさまです (どんな方の何事も誰かのために大切な用でありその価値が自分の世界観からみて重くあるから労をねぎらって)
┗苦労してるかどうかとか人生についての価値観とかは聞いてない 尊重していますよというスタンスからの関係ない話をするけれども敵対的な目線でお聞きするのではないですよというアピール
┗「くろうなんかしてないわ」ってだれもあなたの人生を聞いたりしてへん いきなりちょっと関係ないっぽい話をするけどあくまで社会的な距離感たもつでって事
挨拶で使う場合は「おはようございます」でも同じで、自分がそこにおる/いなくなるを告知する儀を割り込ませるための発言でゆってみたら変数の宣言みたいなもん
いきなり出てきたら「はい!」で帰る時も「はい!」みたいなvarじゃなくてletとかconst使えって話
なんかするとゆうたらおらんなとおもったら「おるよ」とかそういえばおったっけとおもたらもういないみたいなtempな変数みたいな挨拶もせんやつに名前なんかいらんっちゅう話で個人名を「バイトくん」とかにしたらええって話
この度は って一期一会なのに何度もあるんかとか
何自分を枠に押し込めてるわけ?
人間には外部を含めたあらゆる変数があり、一人として同じ人間は居ないんだから、お前には無限の可能性があるんだが?
統計的科学的というけれど、それはあくまで指標であって、いくらでも例外はあるっつーの!そもそもお前はまだ確定していない動く点なのだから、まだ何も始まっちゃいねえよなあ!
まあ確かに苦手なもんはあるかもだけどさあ、人間の脳って基本成長するし、さっきも言ったけど同じ人間は居ないし指標はあくまで指標なんですわ!
つまり、お前自分の可能性を諦めんなよ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
あ~つれえ、くそ〜〜自分励ましててみても全然絶望取れないよ〜〜〜もう諦めたいよ〜〜〜ADHDでINFPってなんなんだ!!!うっせえ俺は自由意志を持つ人間様だぞ!!!!!バーーーーーカ