はてなキーワード: アーキテクチャとは
ほんま下記ですわ。太字にしたところ、増田(anond:20241118142246、anond:20241118185811)のことなのよ?
文章読めない&音声もなんらの事情で理解できないの、どう考えても固有ハードやメーカーのファンである事と無関係だからな
SONYは自分たちの客層やファン層をよくよく理解した方がいいし、そういう人らに対して誠実な振る舞いをすべき(2回目)
増田のそれ、やっぱ、信仰とも学習障害ともちょっと違うよね。難しいことはひとつも書いていないんですけどね
英語圏でPS fanboyのコメントは見たけど、これ信仰じゃなさそう・・・みたいなのは見掛けなかったな
(動画中にテロップが出て、音声で読み上げられているのに、それでも理解しない人をゴロゴロ見掛けるのは、日本だけ)
というかこの話題は増田には難しいので、PS5 Pro を転売したら儲かる!の方が興味を持てるんじゃない?
まぁ中華需要がある間に都合よく海外から友人・親戚が来てくれるか?問題はあるけどな
ちなみに、PS5 Pro 、まぁそれなりに中華需要はあるみたいで、117,000円で買い取ってるところとかフツーにあるみたいなんですよね
(プレイステーション5 プロ 買い取り で検索して自分で探してね)
増田がなんらかの手段で免税使えるなら(海外から友人や親戚が来るとか)、11月17日時点では利益出そうです(免税使えば、11万以下で買えるので)
文章が読めないので無駄だと思いますけどこちらも送りますね。AIちゃんもちゃんと調べて買おうねって言ってるよ?(文章読めない人は無理だけど)
通常、信仰(PS信者)、ゲーム機コレクター、PCアレルギーがあってプライベートでは絶対触りたくないなど、明確な理由がなければ買わない機種です
PS5 Proは、たくさんの人に買ってもらうために、「めちゃくちゃ性能が良いゲーム機」とアピールしています。でも、本当にすごいのでしょうか。たとえば:
PS5 Proより前に出た「Xbox Series X」というゲーム機がありますが、PS5 Proはそれと性能がほぼ同じか、少しだけ劣るところもあるみたいです。
ゲーム用のパソコン(ゲーミングPC)には、PS5 Proよりもずっと性能が良いものがあります。PS5 Proは「PCに負けない」と言っているのは、ちょっと言い過ぎかもしれません。
PS5 Proは「PlayStation Spectral Super Resolution」という技術を使って、画面をキレイに見せる工夫をしています。でも、これは本当に強い力(性能)があるわけじゃなくて、キレイに見せる「トリック」のようなものです。
同じくらいのお金(たとえば12万円)を使えば、PS5 Proよりも強いゲーム用のパソコンを作ったり買うことができます。
パソコンを作ったり、部品を選んだりするのは少し大変なので、「簡単に遊べるゲーム機」を選ぶ人もいます。PS5 Proはそういう人向けかもしれません。
PS5 Proを作ったSONY(ソニー)は、ゲーム機をたくさん売りたいので、「世界最高の性能!」と言っているのかもしれません。でも、実際に中身を見てみると、同じ値段のパソコンや他のゲーム機に負けてしまう部分もあります。
PS5 Proは「とても性能が高い!」と言われているけど、本当にすごいかどうかは比べてみないとわかりません。他のゲーム機やパソコンの方が性能が良い場合もあるので、「どれが一番いいのか」をちゃんと調べることが大事です!
PS5 Proが「ゲーミングPCにも劣らないハイエンド」を謳っている背景には、SONYの市場戦略やユーザー層に関する認識の偏りがある可能性があります。以下にその理由や問題点を詳しく分析します。
SONYがPS5 Proを「ハイエンド」と位置づけるのは、技術的な裏付けよりもマーケティング的な効果を狙ったものです。特に以下のような目的が考えられます:
ハイエンドPCやXbox Series Xと比較して実際の性能が劣っていたとしても、「家庭用ゲーム機としてはトップクラス」という印象を与え、カジュアルゲーマーに訴求しようとしている。
実際にはアップスケーリング技術や最適化に依存する部分が大きいにもかかわらず、これらの表現を使うことで、一般ユーザーに「PCと互角」という錯覚を与えている。
PS5 ProのGPU性能がRTX 4060以下、場合によってはRTX 3060に近いことを考えると、「ハイエンド」を名乗るには無理があります。特に、4060や3070は「ミドルレンジ」とされるため、これを超えられない性能ではPCゲーマーにとって「準ハイエンド」とさえ言えません。
Zen2ベースのCPUは、現代のPC用CPU(Zen4、Intel 13th/14th Gen)と比較して著しく劣ります。この性能差がゲーム全体のパフォーマンスに影響するにもかかわらず、マーケティングでは触れられないままです。
PS5 Proは、4年遅れて発売されたにもかかわらず、Xbox Series Xとほぼ同世代のアーキテクチャ(Zen2、RDNA2)を採用しています。一部の検証では、起動速度やフレームレートがXbox Series Xに劣るとされていますが、倍近い価格差があります。この状況で「ハイエンド」を主張するのは疑問を抱かざるを得ません。
SONYは、PCゲーマーよりも家庭用コンソールのカジュアルユーザーがPCのスペックや価格に疎いことを理解しており、これを利用している可能性があります。例えば:
実際には、自作したり中古PCを購入すれば、PS5 Proよりも高性能なPCが同価格で手に入りますが、これを認識していないユーザーをターゲットにしている。
SONYがPS5 Proを「ハイエンド」として推す背景には、PCリテラシーと収入の相関について過小評価している可能性があります:
一般的に、高価格帯のゲーミングデバイスを求めるユーザーはPCの基本的な構成や性能比較にも詳しい傾向があります。この点でPS5 Proは本来のターゲット層と矛盾している可能性があります。
Appleユーザー層(高価格帯、利便性重視)を意識している可能性もあります。ただし、iPad Pro は実際に高性能であり、PS5 Pro にそのまま当てはめるのは無理があります。PSNアカウントの使用が複雑な場合、PCリテラシーが低いユーザーには抵抗感を抱かせる可能性も高いです。
コンソールは「買ってすぐに使える」「特定の環境で最適化されている」点を強調しますが、これは性能が劣ることを隠す手段にもなり得ます。例えば、AIアップスケーリングやソフトウェア最適化を活用して、実際の性能以上に「快適さ」を演出しています。
PS5 Proが「ゲーミングPCに劣らないハイエンド」を謳うのは、主にカジュアルユーザーやコンソール市場をターゲットとしたマーケティング上の戦略です。ただし、実際のスペックや性能を考えると、この主張は過剰であり、「詐欺的」と感じられる要素も少なくありません。
SONYがAppleのような高価格帯ユーザー層を狙っている可能性は否定できませんが、それが実現できるかは疑問です。特に、性能やコスパを重視するゲーマー層には、PS5 Proの訴求力は限定的と言えるでしょう。
まず言っておきたいのは、コメントってやっぱり大切だってこと。
コードを書いた人の意図を後から見た人が理解できるようにするためのものだし、未来の自分が「あれ、これ何書いたっけ?」と迷うのを防ぐためにも、コメントは欠かせない。
でもうちの会社にいる“バリバリできる人”、仮にSさんとしておきましょう。
このSさん、そもそもプログラムのスキルが超ハイレベルで、コードをめちゃくちゃ書ける人。
みんなが「あれどう書くんだっけ?」ってなるような複雑なロジックをサクサク書けるし、妙なバグも即座に見抜く。もう尊敬しかない。
で、Sさんのコードは、当然コメントもバッチリ入っているわけですよ。ただね…これが実に困った問題なんだけど、そのコメント…意味がわからない。
だって、Sさんの説明って、どこか抽象的だったり、ちょっと暗喩(暗号?)染みてるんです。
言葉としては正しいし、ちゃんと書いてくれてるんだけど、どうも頭に入ってこない。
たとえば「このループは不変量を維持するための役割を果たす」とか、やたらと専門用語が並ぶ感じ。
で、読んだ結果「何をどうしてるんだっけ?」と逆に混乱してしまう。
それで、しまいには「Sさんのコメントの意味がわからないから、誰かもう少しわかりやすい説明を足してくれませんか?」っていうリクエストが社内で上がるようになった。
この“コメントに対するコメント”という新しい文化が生まれつつある。
Sさんが「ここは変数の定義です」と書くと、誰かが「この変数の定義がなぜ必要かについて補足します」とか、「ここでの不変量とは何か解説します」とか言い出すわけですよ。
Sさんが「このアーキテクチャがスケーラビリティを保つためのものである」と書けば、「スケーラビリティの具体的な定義についてもここにメモしておきます」とか。まるで辞書の注釈がついていくみたいに、コメントがどんどん増えていく。
こうなると、なんというか「天才の思考の跡をたどる」って感じになってきて、普通のエンジニアとしては大変なんよ。
Sさんとしては、きっとわかりやすく書いてるつもりなんでしょうが、僕たちからするとSさんのコメントを読み解くためにさらに別のコメントをつけていく状況。
こうして、コメントの数だけが増え、肝心のコードがどんどん見づらくなっていく。
なんだか本末転倒な気もするけど、仕方ない…。
コメントがないとわからないし、でもコメントがあってもわからない。
いやー、天才ってすごい。
フロントエンドにクリーンアーキテクチャとかDDDの考え方入れようとしてみたんよな。
具体的には、外部APIやローカルストレージとのやり取りをlinterで限定したり、業務知識はライブラリに依存しないEntityとしてモデリングしたり、
あと、Service層みたいなの導入して、テストしにくい処理とかは抽象化してDIできるようにしようとした。
テスト時にモックをDIせずにglobalスコープで上書きしたり、コンポーネントがAPIから取得したDTOみたいなデータに直接依存してたり、バックエンドと文化がだいぶ違うなって感じた。
そもそもクリーンアーキテクチャとかDDDってフロントに適用するもんじゃないのか?って疑問も湧いてきた。
バックエンドだとフレームワークに依存しすぎないようにして、例えばSpring+RESTからgRPCに移行なんてのもクリーンアーキテクチャの思想に則って作ってれば規模にはよるけどそこまで大きくならなかったりするけど、
ReactからVueに切り替えるって考えて、どんなに設計頑張っても、それってほぼ作り直しになるだろうし、バックエンドほどのメリットも感じられない気がする。
俺が目指してるのってなんか根本的に間違ってる気もするんだが、どうなんだろうか?
フロントエンドの人教えてー
「漫画家イエナガの複雑社会を超定義」の「量子コンピューター」の回がこの後1:20からNHK総合で再放送するようなので、本放送を見たときの自分の感想を改めてここにまとめる。
一般のメディアにおける「量子コンピューター」の取り上げ方はいつも、専門知識を持っている人間から見たらとんでもない誇張と飛躍で充ちている。もはやSTAP細胞詐欺か何かに近い危険性を感じるので、こういう話に接する時の注意点、「ここを省略していることに気づくべき」要点を解説する。
メディアにおける「量子コンピューター」の説明は、大体いつもストーリーが似通っている。
件の軽い調子の番組だけでなく、ニュートンだろうと日経サイエンスだろうと、まあおおよそ複素関数論の「ふ」の字も紙面に出したら読者がついてこれなくなる程度のメディアではほとんど同じ構成である。
これはこの20年ほど変わらない一種のパターンになっているが、実はこのそれなりに繋がっているように見える一行一行の行間すべてに論理的な問題を孕んでいる。
この行間に実は存在する論理の省略、あるいは嘘と言っても良い誤摩化しをひとつひとつ指摘していこうと思う。
量子ビットには重ね合わせの状態が保持できる。これに対して計算処理をすれば、重ね合わせたすべての状態に並列に計算を実行できる。ように見える。
しかし、これも一般的に聞いたことがあるはずなので思い出して欲しいが、「量子力学の重ね合わせの状態は、『観測』により収束する」。
つまりどういうことか? 量子ビットに対する処理が並列に実行出来たとしても、量子コンピュータの出力はそれをすべて利用できるわけではない。
量子コンピュータの出力とは、量子ビットに対する並列処理の結果の、確率的な観測に過ぎない。
なので、手法的な話をすれば、量子アルゴリズムとはこの「確率(確率振幅という量子状態のパラメータ)」を操作して、望む入力に対する結果が観測されやすくする、というちょっとひとひねりした考え方のものになる。
単に並列処理ができるから凄いんだという説明は、増田自身一般向けの説明に何度も繰り返したことがあるが、まあ基本的には素人相手の誤摩化しである。
ここさえ踏まえれば、知識がなくともある程度論理的にものを考えられる人には、量子コンピュータに対する色々な期待も「そう簡単な話ではない」となんとなく感じられると思う。
量子コンピュータのキラーアプリとされている暗号解読は「ショアのアルゴリズム」という非常に巧妙な計算を通して得られる。
上で説明したように、量子コンピュータは単に「並列計算だから」なんでも高速な処理ができる訳ではない。暗号解読については、この「ショアのアルゴリズム」という自明でない計算手法(高速フーリエ変換の応用)が見つかってしまったからこそ問題になっているのであって、このアルゴリズムの実行が出来なければ暗号解読ができるとは言えない。
さてここからは量子力学というより計算機科学の話になるが、あるチューリングマシン上のアルゴリズムが別の計算モデルで実行可能かどうかは、その計算モデルがチューリング完全であるかどうかによるというのはプログラマには常識である。
これは量子コンピュータにおいても変わらない。量子コンピュータの一般に知られる多くのアルゴリズムはドイチュの量子チューリングマシンを前提に作られており、チューリング完全でないアーキテクチャでは実行できない。できるはずがない。ショアのアルゴリズムも当然そうだ。
しかしながら、この20年弱、D-Wave社が最初の「自称・量子コンピュータ」を開発したと発表して以来、さまざまな企業が「開発に成功した」と発表した「量子コンピューター」の中で、このチューリング完全なものは何一つ存在しない。
これらでは、今後どれだけ「性能」が伸びようとも、暗号解読の役には立たないのである。
以上の議論から総合すればわかると思うが、量子コンピュータで世界が一変するなんてヴィジョンははっきり言ってSF以下のファンタジーというレベルでしかない。
第一に、量子コンピュータの利用できるドメインは非常に限られたものであるし、第二に、その中の最も宣伝されているものである暗号解読の可能な量子チューリングマシンの開発の目処などまったく立っていない。どころか、業界のほとんど誰も挑戦することすら本気では考えていない。
現状の「自称・量子コンピュータ」(量子情報システム、とでも言おうか)にも利用の可能性はある。何より量子状態そのものが作れるので、物理学や化学領域の量子システムをシミュレーションするのに適しているのは言うまでもないだろう。しかし、まあ、現状あり得る比較的現実味のある用途というのは、それくらいではないか。
このように、メディアが量子コンピュータについて語るとき、そこには非常に多くの誤摩化しや飛躍が含まれる。これは結構業界の根幹に関わる問題なのではと思うが、時間が来たので総括は後述にでもすることにする。
何か質問があればどうぞ。
ごくごく常識的な内容だった
標準的なRailsアプリならDBはRDBだし、I/O待ちはほとんどDBアクセスと言っていい
RailsユーザーがRailsのイベントでRailsユーザー向けにやってるトークなんだからそこは前提だろ
スライドの大筋は古典的なI/OバウンドとCPUバウンドの話題であり、DBアクセス以外のI/O待ちにも触れてる
要するにどう見ても最低限の知識があるはずの人間がなんでそんなタイトルを付けてるのかっつーと、I/Oなんて言っても意味が分からない程度の初級者のための配慮だろうがよ
どう見てもやべーのはお前だから
自分はこの元増田の意見に関しては、基本的に好意的に受け取っている。
ただし、AIの性能差に関する考察がないため補足をした方が良いと思う。
音楽と絵の分野では、現時点では看過できないほどAIの性能の差はある。
Suno AIなどが有名だが、遊びとしては面白いが音の平板さが目立ち、正直これを使えると思う人は少ないだろう。
状況としてはMidjourneyの初版が出た2022年時のクオリティに近い。ゲーミングち⚪︎ぽ華道部などといってネットが平和的に盛り上がっていた時の性能だ。
一方で絵に関しては、絵の素人の目なら騙せるぐらいの性能になってきている。
パースの狂いなど、まだまだトップの絵のレベルよりは落ちるが、ちょっとした背景なら十分使えるレベルだ。
これは現状の深層学習のアーキテクチャーが音楽などの時系列データとそこまで相性がよくないことなどが予想される。
が、現代の深層学習の盛り上がりを考えると、数年で音楽のAIも「使える」レベルのクオリティで出力することも考えられる。
その時に現状の音楽業界のような平和的な盛り上がり方で済むかどうかは分からない。
クリックデータの集計において、毎回全データに対して集計SQLを実行すると時間がかかりすぎ、一方でバッチ処理で集計結果を保存すると、その後に発生したクリックをリアルタイムで反映できないという問題があります。この課題を解決するためには、以下の方法を検討すると効果的です。
---
---
---
### **3. データウェアハウスとマテリアライズドビューの利用**
---
---
### **5. キャッシュとインメモリデータグリッドの使用**
---
---
---
---
### **まとめと提案**
---
1. **要件の明確化**: リアルタイム性の程度、データ量、システムリソースなどを考慮して要件を定めます。
2. **プロトタイプの構築**: 小規模なデータでインクリメンタル集計やストリーミング処理のプロトタイプを作成し、性能を評価します。
3. **システムの実装**: 選定した方法とツールを用いて、実際のシステムを構築します。
4. **モニタリングと最適化**: システムのパフォーマンスをモニタリングし、必要に応じて最適化やスケールアップを行います。
---
---
ご質問の課題に対して、リアルタイム性とパフォーマンスを両立する方法として、インクリメンタル集計やストリーミング処理の導入を強くお勧めします。これにより、新しいクリックデータを即座に集計結果に反映しつつ、全データに対する集計処理の負荷を大幅に削減できます。
PS5 proのスペックと同じスペックのPCを用意しようとした場合、モニターとOSこみで14万円かかる。
本体のみだと11万円となりPS5 Proと値段がほぼ変わらないことになる。
(PS5 ProはASK税込みの1ドル180円で計算した場合、108,000から126,000円ぐらいと思われる)
G.SKILL F4-3200C16D-16GIS (DDR4 PC4-25600 8GB 2枚組)
4,820円
XPG PYLON 550W PYLON550B-BKCJP
6,667円
中古 Intel Core i7-12700 (2.5GHz/TB:4.8GHz) Bulk LGA1200/8C/16T/L3
42,980円
中古 _MSI PRO B660M-E DDR4 (B660 1700 mATX DDR4)
8,590円
Ultimate SU630 ASU630SS-480GQ-R
4,980円
13,262円
SPARKLE Intel Arc A750 ORC OC Edition SA750C-8GOC
31,700円
11,000円
16,090円
合計 140,089円
Intel arc a770(16GB)はfp16だと39tflops程度で、中古だと3.2万円から4万円台で売られており、新品だと4万円から5万円台程度なので、運が良ければps5 proとメモリー以外全く同じやつが手に入ってしまうことになる。
以下、そうなる根拠。
公式発表では、PS5におけるGPUの処理能力は「10.3TFLOPS」。この数字は、RTX2080に相当します。しかし「TFLOPSの数字」と「実際のグラボの性能」は、百パーセント一致するものではなく、性能ほど実パフォーマンスは高くならないのが一般的です。
CPU:CPU周波数最大4.4GHz、Zen4ベースアーキテクチャ、5nmプロセス製造。台湾TSMCが製造を担当。CPUのクロック周波数を10%増加させ、3.85GHzで動作させるモードが搭載される。
(Apple M2と同じく、TSMC製4nmプロセスSoC搭載の可能性もあるとのこと)
CPUキャッシュ:コア毎に64kBのL1キャッシュ、512kBのL2キャッシュ、8MBのL3共有キャッシュ
性能:PS5標準モデルと比べ、通常時で2倍、レイトレーシングでは2.5倍の性能アップ
プロセッサ:30基のWGP(Work Group Processors)、60基のCU演算コア
ROP(Rasterize OPeration unit):96~128基
メモリ:18gbps GDDR6 256bitメモリ、メモリ容量16GB、バス幅576GB/s、18000MT/s(現行PS5のメモリは14000MT/s)
GPU:GFX1115。GPUコアが現行の18個から30個に増加。これは約1.66倍の増加
GPUキャッシュ:L1キャッシュが128KBから256KBに倍増、L0キャッシュが16KBから32KBに倍増
グラフィック性能:PS5比で45%向上。可変レートシェーディングやハイブリッドMSAAのサポートなど、DirectX 12 Ultimateの新機能を搭載。GPUのアーキテクチャがRDNA 2からRDNA 3に変更される可能性があり、これにより各GPUコアの演算機が2倍になる。
超解像技術:ソニー独自の超解像技術を搭載。高精細と高フレームレートを両立。AMD FSR2等の採用は無し。アップスケーリング/アンチエイリアスソリューション
(AMDのFSR(FiedelityFX Super Resolution)を搭載との話も)
Theoretical Performance
268.8 GPixel/s
Texture Rate
537.6 GTexel/s
FP16 (half)
34.41 TFLOPS (2:1)
FP32 (float)
PSのCPUはRayzen 7 7700X相当で、Intel Core i7-11700だと7割の性能で、Intel Core i7 12700で同じぐらいの性能となる。
そもそも、鉄道というものが近代における先端技術であったのだから、ナレーターを人工音声で置き換える流れは、鉄道というものの思想(先端技術による生活の改善)に合致していると言える。
そして、そういった人工音声は、鉄道というのは、今も先端技術により更新され続けているのだと強く感じさせてくれる。
運行システムしかり、車両のワンマン化しかり、改めて言われれば、そういう技術が使われていることはわかるのだが、
それらは裏方に回っているものが多く、乗客がそれらに気づくことは少ない(もちろん、技術というものは一般的にそうあるべきなのだろうが)。
だからこそ、公然として先端技術の存在に気づかせる人工音声は、鉄道にとって素晴らしいのだ。
鉄道は先端技術を取り入れ続けていると気づかせ、その鉄道駅という空間を未来的な空間だと納得させるためにも、多くの駅で人工音声が使われていけばよいと思う。
ある方が「遺書だったもの」というブログ・エントリーを公開してはてなブックマークで注目を集めています。
https://kirimin.hatenablog.com/entry/2024/09/04/001242
一読しただけで大変な状況の中ご本人が精一杯頑張ってきたことが伝わってきました。
普通の人は不登校になったあとに就職したり(それもB社側からの打診で正社員に!)、アメリカ出張、趣味でイラストや競技プログラミング、といった活動は出来ません。
なにより踏みとどまるという意思を持たれていることが一番素晴らしいと思います。
ブログの内容について、アドバイス、というより考えてみるきっかけを提供できればと思い、以下に書いておきます。
"アドバイス"という言葉は上から目線のニュアンスがあるため私は嫌いですが、分かりやすさのためにあえて"アドバイス"と記載しております。
"アドバイス"の手がかりとして、世の中の多くの人たちと異なっている点を特徴として捉え、そこに着目して述べていきます。
多くの人は、自死を取りやめた場合は遺書を公開しません。ここが最大のポイントです。
他にも、元カノの話や学校で友達を作りたかった話、インターネット掲示板、会社の同僚との関わりなど、コミュニケーションについて多く言及していることもかなり特徴的です。
心理的な安定のためには、インターネットで構わないので、コミュニケーションの場への参加を増やしてしてみると良いかもしれません。
私も同世代で、2005年~2007年ごろには2chで政治家をおちょくるコラージュ写真を作って遊んでいたので、当時の雰囲気は知っています。当時と似たコミュニティはもはやほとんどなく、ネット掲示板よりもLINEのオープンチャットあたりのほうが雰囲気が近いかもしれません。
仕事やそれに近い競技プログラミングの能力・モチベーションでご自身の価値をはかる表現が目立ちます。
仕事への情熱はご自身の能力開発、社会貢献、金銭獲得のために素晴らしいことです。
一方で能力・モチベーションで全人類のトップに立つことは出来ない以上、どこかで自分の能力に見切りをつける必要があります。
それが今なのかな、と漠然と感じました。
人には能力の限界・投入できる時間の長さの制約があり、その制約のもと各自それぞれのペースで頑張るしかなく、他に選択肢はないため、ある面で人より劣ることを認めざるを得ません。
しかしだからといって人間として価値がないとか、死ぬべきだということは論理の飛躍です。
劣ることを認めたうえで、それがどうした、自分が死ぬ必要はないじゃないか。むしろ優れた人たちが素晴らしい社会を作ってくれてありがたい、と感謝すればよいと私は思います。ご自身にもその気持があるはずです。その証拠にA社のリーダー、B社のプロダクト、元カノ、といったものを称える文章があります。これは称賛の気持が奥底にあるからだと思います。
というより本当は人間という存在自体が自他に価値を評価される必要がなく、各自勝手に生きて構わないと私は思います。評価という行為自体が発生しないのが通常の状態であり、仕事では給料の分配という特別な目的のために上司が評価するという例外的なシチュエーションが発生していると私は理解しています。つまりそもそも職場以外での「自己評価」は必須ではないと私は考えています。
そのうえで、それでもなお自己評価が必要であれば、いくつもの会社で働くことができ、しかも先方から声をかけてもらっているというのは素晴らしいことだと思います。普通の人には声をかけませんよね。仕事の以外の面に目を向けると、イラスト、VR、他の投稿ではお母様にテレビゲームを教えたりと多方面に活動している点が素晴らしいと思います。競技プログラミングで高レート帯の方々はこうした活動と両立できるのでしょうか。ほとんどNoだと思います。総合的に見れば特別劣っているように私には見えません。
この点は次の第3の特徴に続きます。
文章には「多くの人から嫌われ、失望され、迷惑をかけながら生きていたくない。」と書かれています。
しかしきりみんさんは、嫌われている人・失望されている人・迷惑をかけている人に対して、死ねとは言わないと思います。そういう人柄だと文章で分かります。
それなのに自分に対して厳しいのはダブルスタンダードで、ご自身を不必要に傷つけているように見えます。ご自身に対して厳しすぎるダブルスタンダードを持つ理由は何でしょうか。ダブルスタンダードを持つメリットはあるのでしょうか。これについて考えると楽になれる部分があると思います。
きりみんさんは、自分より仕事ができない人に死ねと言わないと思います。競技プログラミングが下手な人に死ねと言わないと思います。その理由は劣っていても死ぬ必要はないとご自身が理解しているからです。そうであればきりみんさんが死ぬ理由もないと私は思います。
昨年、一念発起して100kgの大台から70kgまで、30kgの減量に成功した。
やたらと知見を共有したがるのはエンジニアの美点の一つだが、私もその例にならい、ここにダイエット中に学んだことを共有しようと筆を執っている。
ダイエットとはそもそも、日常の食事のことを指し、それが転じて食習慣の適正化を意味するようになった。
減量の本質もそこにある。
人は食べたものからできている。食習慣を適正化すれば、自然と健康的になる。
30kgもの減量に成功した最大の要因は、自分がエンジニアであったことだと思う。
そもそもプログラミングとは、入力されたデータに対して任意の出力データを得るために加工する、その計算方法を設計し、実装することを指す。
料理もまた同じで、食材という入力に対して、調理を実施し、料理という出力を得る。
そのため、体重と食習慣の適正化というプロジェクトに対して、プロジェクトのマネジメント手法が応用可能なのだ。
メモリ4GBのオンボロPC抱えてパイプ椅子で開発すすめても、ろくに進捗しないのと同じだ。
ただし、闇雲に金をかければよいというものでもない。投資すべきものというのは、だいたい決まっている。
どれも無くても減量自体は可能なものばかりだが、あったほうが効率が良い。
そもそも減量はモチベーション管理のゲームなので、自動化、簡易化できるところはやったほうがいい。
金を払って健康を買っていると考えればよい。
まったくアーキテクチャを考えず、行き当たりばったりでファイルごとに違う設計のプロジェクトは悲惨な結果を招く。
最初にこのアーキテクチャで行くと決め、ひとまずはそれを続けることが大事だ。
減量で言えば、ローファットでいくかローカーボでいくかということだ。
日によって低脂質でいったり低糖質でいったりするのは全く良くない。
自分は低脂質でいくことにした。そのほうが筋肉量の減少を抑えられるし、コレステロール値の改善にも効果的だからだ。
金融系プロジェクトにありがちな細かすぎるコード規約は有害無益で時間と金の無駄だが、余りにフリーダムなのも混乱のもとである。
減量でいえば、目標カロリー量とPFCバランスだ。ここがいい加減だと、到底うまくいかない。
カロリー量はハリス・ベネディクト方程式から出される基礎代謝の1.5倍とかに設定すればよいだろう
そのうえで、低脂質ならP:30%, F:20%, C:50%のように割り振ろう。
たとえば1600kcal目標なら、P: 480kcal = 120g, F: 320kcal = 35g, C: 800kcal = 200g、といった感じだ。
この規約を守るためにも、あすげん/カロミルがあれば、計算が楽だったというわけだ。
プログラミングでは、実行時に行うと重すぎる計算はビルド時など事前に行ったりすることがある。
初代スーパーマリオブラザーズのジャンプは、1フレームごとに重力係数をかけて計算しているわけではなく、加速度がハードコードされている。
ブロック崩しでさえ物理演算するような現代においても、似たようなことをすることはある。
ダイエットで言えば、時間的余裕のあるタイミングで、できることをしておけということになる。
キャベツを千切りにしたり、きゅうりやトマトを切ったり、オートミールに材料混ぜておくことは事前にできることなのだ。
夜寝る前などにやっておき、明日の調理工数を最低限にしておくことが大事だ。
処理したものはジップロックコンテナにでも入れて、冷蔵庫にしまっておこう。
よく食べる鶏むね肉や牛もも肉なんかもキロ単位で大量買いして、1食量ごとに切り分け、ジップロックバッグに入れて冷凍庫に入れておこう。
適切なキャッシュがもたらす実行速度の向上効果は非常に大きい。
これは料理についても言える。
毎食ごとに献立を考え、材料を揃え、包丁で切ったり、コンロで焼いたり…などの調理を行うのは非常に非効率である。
いわば冷蔵庫はメモリキャッシュであり、冷凍庫はディスクキャッシュのようなものである。
よく1人分作るのも3人分作るのも変わらないよ〜などと言うが、同じ理屈で1食分作るのも、3食分作るのも、手間としてはたいして変わらない。
すでに広く使われ、実績のあるライブラリがあるのに、なぜ一から作らなければならないのか。
これはダイエットについても言える。
安価で大量に手に入るカット野菜などは、買ってしまえばいいのだ。
たとえばきんぴらごぼう。作ると面倒なきんぴらごぼうだけど、その面倒さの9割はごぼうを千切りするところにある。
千切りして水にさらし終わったら、きんぴらごぼうの調理工程の9割は終わっている。
しかもこの部分は、工数が量に依存しているため、大量作成の恩恵を受けづらい部分だ。O(n)である。
一方でカットごぼうを大量買いすれば、あとは炒めるだけなので量に依存せず、大量作成が容易になる。O(1)にすることができる。
他にも、オイコスヨーグルトとか、サラダチキンとか、Baseブレッドなどの外部サービスを使うのも良い。
プロジェクトの初期段階、リードエンジニアが重要なクラス群とサンプルとなるクラスをいくつか作った後は、それをひらすらに横展開していくことになる。
この段階では天才エンジニアなど必要なく、コピペマンでじゅうぶんになる。むしろ下手に独自の考えを持たず従順に開発してくれるぶん、そのほうが良いことさえある。
ダイエットについても同じことが言える。
なぜ毎食毎食、独自の健康メニューを考え出さないといけないのか。食事の都度、栄養成分を計算し、調整しなければならないのか。
あすけんで一度100点をとったらあとは、ひたすらそれをこすり続ければいいだろう。
朝
蒸しかぼちゃ
昼
ふかしたさつまいも
蒸しかぼちゃ
夜
りんご(皮ごと)
蒸しかぼちゃ
毎食似たようなものを食べていることがわかるだろう。
これは日単位でも同じで、別の日は牛もも肉が刺し身になったり、さつまいもが蕎麦になったりはするが、その程度の差だ。
どうしても違うものが食べたくなったら、そのときに改めて計算すれば良いのだ。
そうすれば手持ちのカードが増えていく。
インシデントが発生したとき、必要なのはリカバリーであって、そんな時に人を責めても何の役にも立たない。時間の無駄だし、士気も下がるだけだ
こうしたとき、自分を責めても仕方がない。自分をクビにはできないし、ダイエットは長期戦なのだ。
ある日に食べすぎたからと言って、次の日にその分を減らすと、必要な糖質や脂質が不足して代謝が落ちてしまったり、だるさが抜けなくなったりするため、そういう方向でのリカバリーはやめよう。
しっかりと痩せる食事スタイルが確立しているなら、それを続ければ良いだけだ。
どうせ1食程度ではそんなに太ることはできない。
計測は減量期間中だけでなく、むしろ減量終了後にこそ必要になる。
そもそも、減量前の食事が減量前の体重を作り上げてきたのだから、減量前の食事に戻せば、体重も戻るのは当然のこと。
もとの体重に戻りたくないなら、新たな食習慣を作り上げる必要がある。
プロダクトリリース後、つまり減量後の運用フェーズにうつったら、減量飯でもデブ飯でもない、心にも体にも良い食習慣へと移っていこう。
急激なUI変更がユーザーの反発を招くように、急激な食事変更は体重の反発(リバウンド)を招く。
そこで、オートミールだったところを玄米ごはんにするとか、ささみだったところを蒸し鶏にするとか、ちょっとずつ維持するためのご飯へと変えていき、どのくらいの量なら大丈夫なのかを見つつ、ソフトランディングしていこう。