はてなキーワード: C++とは
「CRT をリンクせずに極小サイズの .exe ファイルを作ってやるぜー」とイキってたら
WSAStartup のせいで Visual Studio 先生が「memset が解決できねーじゃん?」とお怒りになる。
まじかー。
自前で偽物の memset() を用意しても「偽物はダメよ」と怒られる。さすが Visual Studio 先生、騙せないね・・。
C++ は CRT が絶対必要になるから、あえて古き良き C 言語でここまで頑張ってきたのに。
っていうか、じゃあ Debug ビルドだとリンクエラー起こさずにきちんと動作するの何でよ?
まーこの企みは諦めるか。
C++ でがっつり書き直したろ。
例えば、俺、CoffeeScriptが嫌いだったんだけど、なんで嫌いかっていうとRubyが嫌いだからなんだけど(諸説あります
でも、頑張ってCoffeeScriptゴリゴリ書いてた人たちっていると思うんだよね
自分はTypeScript登場時からずっとTypeScriptなんだよね
あの、DelphiとかTurbo PascalとかC++ BuilderとかC#の原作者だよ?
しかし、なんだ、こうやって陳腐化していくことがどれほど多いことか、IT関係は
これが理系で機械工学関係だったら、流体力学とか材料工学が陳腐化するなんてないよね?
だから、大学で習う情報工学だとしたら、やっぱりできるだけ普遍的なことを習ってるはずなんだよ
でも、ITはyak shavingが多いよね
本質的な知識を得るために、WindowsやLinux上の環境で学ばなければならないわけで、
落ち着いて情報工学の勉強をするために、Windowsの余計な情報を表示するウィジェットの閉じ方を学ばなければならなかったりする、馬鹿げてるよね
そう考えると、料理、絵、音楽、みんな普遍的なものの集まりだよね
料理の四面体なんてあるけど、煮る焼く炒める蒸すどれも不変な過程だよね
調理器具だって、フライパンや鍋が日進月歩に進化して、以前のバージョンが使えない、なんて買い替え需要を促すための嫌がらせをメーカーがしたりもしない
絵だって、証券用インクとペンだとしても、液晶ペンタブレットだとしても、筋肉の知識とか、パースの知識とか、不変だよね、永遠に変わらないものだよね
まあ、流行の絵柄とかは変わるけど、そういう流行に流されないのも大事だよね
個性がない、ってことは、誰かが絵を見て、これは~さんの絵だ、って気づかれないってことだから、商品価値がなくなっちゃうよね
音楽理論も変わらない、楽器の弾き方も変わらない、正直、ギターなんてどこのメーカー買ったって同じようなものなんだけど、
同じエレキギターを何本も持ってる人っているよね、お金持ちだよね、自分はチューニングがそれぞれ違うギター複数本持ってるけど、それはチューニングのためなんだよね
話を戻すと、ITクソつまらなくなった、の元の文章にもTypeScriptでクソアプリ書いてたときが楽しかったみたいな話があったけど、
俺がMacOSX 10.2だったかで作ったアプリは、現在のMacではまったく動かないからね
だったんだけど、今のWindowsはAppleみたいになっちゃったよね、足切り、足切り、Windows 10は動くけど、11は動かないマシンが大量発生
これはデカいと思うんだよな
Unityとか、Unrealとか、物理エンジンもBox2DとかBulletとか、当然昔はなかったので、みんな自前で書いてたはず
例えば、スーパーマリオの物理挙動とか衝突判定は当たり前だけど自前で書いてたはず
でも、今はブロック崩しさえUnityとかUnrealに含まれてる物理エンジンで剛体力学使って書けちゃう
なんかそういうの無駄な計算力だよなと思うけど、まあ書けちゃう、動いちゃう
昔はゲーム作るときって、リードプログラマーが1人いて、他も数人で、少人数で職人芸的に作ってたわけだよ
全て自前でやらなければいけないから、簡易的なものを作るにしても、一応大学でやった物理を再度勉強したりするわけだ
剛体力学とか、流体力学とか、材料力学とか、そのための数学とか勉強し直したりした
あと、ゲーム業界がバブル?だった頃は、海外なんかでは物理とか数学で博士号取ったような奴までゲーム産業に入って来た
彼らはゲーム業界に進まなければ、銀行とか保険会社、証券会社とかもある、もっと高給な仕事がいっぱいあるはずなのに、薄給のゲーム産業に飛び込んできた
彼らが高度な知識で色々な試みをしてくれたおかげで、今のゲーム産業があると言っても過言ではないと思う
だって、日本のゲームってどれも枯れた技術の水平思考ばっかりなんだもん
悪く言えば、保守的、必ず作り上げるという意思から石橋を叩きすぎたようなものを作る
例えば、初代のバイオハザードだったか、カメラ固定だったじゃん
今どきアローン・イン・ザダークかよwって思ったよなw
あの頃、自分はPCでDOSとかで普通にFPSやってたから、あくまで技術的にだけど、アホじゃないかと思ったんだよな
でも、周囲のプログラムとかIT業界に関係のない知人とかは喜んで遊んでる
日本のバイオが固定視点なのに対して、海外勢はFPSとか三人称視点ちゃんと作ってたよな
日本でFPSっぽいの初代PSでちゃんとやってたの、攻殻機動隊だと思うんだよね
今に至るまで、最も原作の意味をくみ取ってたアニメだったし、石野卓球なりの曲も良かった
時は流れて、今の日本のゲームもみんなUnityとかUnrealになった
Godot選択する人もいるかもしれないけど、あれ、良さそうだと思ったけど、情報少なすぎるよね
ソースは公開されてるんだから、ソースを読め的な感じもしたし、今どき?
独自スクリプト勉強するのもなんだな、と思って、ちょっと使う以上に使う気になれなかったんだよな
調べてもらわなくても、まあ、分かるだろうけど、UnityとかUnrealの開発者、日本人とかもいる、はかなり著名なゲームを開発した人も含まれてるよね
彼らは、当たり前だけどUnityとかUnrealがない時代は、当然自分たちで全てを書いてきた人たちだ
リードプログラマーが一人といったけど、かなりの分量をリードが書くはず
ほとんど一人開発と言ってもいい
あと、そういうリードプログラマーは職人みたいなものなので、自分で書いた数学ライブラリとか、物理エンジンとか、持ち歩いて会社を転々としてる人もいたはず
厳密には権利の問題もあるかもしれないけど、そういう優れた人材は引っ張りだこなので、会社を転々として、
その場その場で、自分で1行目から書いた、自分しか持ってない自前のvecmathライブラリとか、物理とか、ノウハウを財産として持って移動しまくってた
で、そうやって業界をサバイバルしてきた人たちのトップランナーが、今はUnityとかUnrealで開発とか営業とかやってる
多分だけど、もうコアな部分を書くことなんてなくなっているだろう
Unity、Unreal以前は、行く場所行く場所で、ゲームエンジンレベルからゼロから書いていた
でも、Unity、Unrealはそれを当たり前だけど共通化するわけで、そしたら一度書けば、それはずっと使われるコードになる、当たり前のこと言ってるけど
で、困っちゃうのは、そんなトップランナーになれなかったゲーム開発者だ
ゲームエンジンを開発するための、数学や物理、コードに関する能力、特にCやC++が多いだろうけど、そういう能力はある
自分は凡人以下だろうけど、かなり凄い人もいるんだろうけど、そういう人も含めて、ゲームエンジンレベルから作る職人芸は無意味、無価値になった
もちろん、まったく無駄にはならない
結局、Unity、Unrealを使うときに、単に使うだけでも中の挙動を勉強しなければいけない
でもね…
もう、ゲーム開発がコードをガリガリ書く仕事というより、コンテンツを作る作業にほぼなっちゃってないか?
3DCGのモデリング、シェーダー、ゲーム本体も含めて、箱と箱を線で繋ぐような作業でゲームができるようになってる、とっくになってる
そうすると、もうC、C++でガリガリゼロから書いていた人とか、
それこそ、PS2の開発はよく知らんが、悪評が高い、あれはOSレベルから書かされたりしていたように聞いてるし、
そういう人たちもゲーム開発の現場でそういった知識が活かされることはもうない
逆に、北欧で生活保護もらったりしてただろうNotchのマインクラフトとかの方が成功しちゃったりしてるよね
あれはゲームエンジン?と言っていいのか分からんけど、あの独特のボクセルの世界はゼロからJavaで書いたものだ
彼は時間制限でゲームを開発するイベントに数多く参加していて、いつもJavaでサクッとゲームを作っていた
だって、プロのゲームプログラマーっぽくはない、Javaでしか書いてないとか、それこそJavaの方が生産性が高いみたいに言ったら、日本のゲーム業界だったら鼻で笑われてただろう
彼はマインクラフトの前に、ゲーム会社に所属していたし、そこで開発していたのは、世界をすべて緻密に構築するようなゲームだったらしいけど、
自分の予想だけど、そんなの全地球シミュレーターの簡易版みたいなもので、無謀な試みというか、かなり複雑な仕組みになっていたはずだ、自分が聞いてたら、実現できるかさえ怪しい、と思っただろう
彼は世界を緻密なボクセルやポリゴンではなくて、大きなボクセルで実現することにした、まずそこが出発点であることは間違いないだろう
そこからセルオートマトンで川とか水を実現できるんじゃないかみたいに発想が膨らむよね、プログラマーなら
話をまとめると、ITがつまらなくなった話はゲーム開発にも置き換えることができる気がしている
昔のゲーム開発に少しでも携わっていた自分のような人たちは、今の時代では老害だということは重々承知しているし、
多分、今、ゲーム開発に興味がある子供とかがゲームに望んでいること、ゲーム開発でやりたいと思っていること、と自分たちの世代のゲーム開発者がやりたいと思ってたこと、やってきたことは、もう全然乖離してるんだと思う
考えてることが乖離してるんだから、話が通じないのはおかしくない
違う世界を生きてる人、偏差値がいくつ違えば会話が成立しないなんて話もあるように、今の子供たちと会話が成立しないのはおかしくない
そして、当たり前だが、現状を正しく認識しているのは、今の子供の方の可能性が高い
基本的にはCやC++で膨大なコードを短期間に書くことが要求される仕事だった
それが今の子供たち、というか、今の時代の環境に慣れた人たちにできる仕事とは到底思えない
そういうトッププレイヤーは、今はAIなり何か、最先端のものをそういった企業のコアの部署で、コアなものを開発しているはずだ
でも、そうなれなかった人たちはどうなる?
高度な彫り物とかするような職人が、NC工作機器とかで彫り物をするようになったら、職人は必要なくならないか?
伝統工芸だの、人間国宝だの、そうやって手で作ったものの方が温かみがあるみたいなオカルトに守られて生きられる人間がどれだけいるだろうか?
その、人間国宝レベルの人たちがUnityやUnrealのような企業に吸収されていく
あとは過去に開発したゲームのネームバリューを活かして講師職になるとか、そういう感じだろう
そうなれた人間がどれだけいるだろうか?
優れたリードプログラマーに触発され、職人になるべく数学や物理、プログラミングの知識習得を重ね、朝から晩までひたすらコードを書いていたのに、
今の生成AIは大したことないと自分も思うが、驚き屋wwwとか馬鹿にしてる奴らは、いつかうっかりAIに職を失われないか、よく普段から考えた方がいい
あと、AIに職を奪われたくないから、プログラミング頑張る、みたいな奴は、俺的には間違った頑張り方だと思うw
そのプログラミング自体がなくなるかもしれない、って言ってるんだって
技術習得とか、自分の技術でマウンティングし合ったりする暇があるなら、別業種のことでも勉強した方がいい
そういえば、優れたアニメーターだった人が、作画として年齢的に限界にあるし、親族にもアニメーター辞めるように言われてたらしいけど、
ある日バイク事故にあって、アニメーターを続けられなくなって、その人は年齢的にギリギリで清掃車運転する仕事についてたはず
立派な公務員になれて、空いた時間で絵を描いては、市役所などで販売してたはずだ
何が人生として幸運かなんて分からないけど、必ずしもアニメーターが庵野とか宮崎駿を目指すのが幸せなのだろうか?
どこかで自分の仕事を辞めて、それを趣味にして、安定した仕事に就いた方が、心の平安が得られるのではないだろうか?
というか、富野アニメなんか、やたら名誉を優先して失敗する人が出てくるよね
長い人生生きてきた老害には、ああいうのなんかよくわかるんだよね…😟
みんなが驚き屋って読んでる人たちは、基本的にPythonとかも書けないし、計算機科学とか数値計算の知識とか曖昧というか、まったくないような輩がいるし、
元の文章である「ITがつまらなくなった」だったかの文章にもあったように、ビジネスのアイディアだけある胡散臭い素人が乱入してきた感があるわけだけど、
でも、老害って若い世代とか新しいものを疑ったり反発しがちなんだよな、自分も含めて
だから、たしかに驚き屋の連中のかなりは胡散臭い、詐欺師みたいな、出まかせで大金持ちになったスティーブジョブズの極小コピーみたいな連中ばかりではあるけど、
でも、生成AIとか、これから汎用AIとかもどうなるのか分からんけど、どんどん素人に有利になってくと思うんだよな
だって、UnityとかUnrealで作ってる世代はガリガリC++書くのなんて馬鹿げてると思ってるだろうし、
プログラミン技術がもっと怪しいのはWebアプリ界隈も同じだと思うんだよな
RailsやPHPで書いてる連中と、C++で書いてる連中の世界は、見えてる世界がかなり違うんだよ
そもそも、そういう輩はLinuxとかWindows上で書いてるわけで、いわゆる家庭用ゲーム機とかでコード書いたことないだろ?
でも、Xbox発売時にビルゲイツが言ったように、(なんかSEGAだかソニーだか知らんけど)所詮ゲーム機なんて機能が制限されたパソコンだよね、
nVIDIAとかGPUカードどんどん作るんだし、パソコンの方が最先端のグラフィックスが体験できるよね、
みたいに言いつつ、Xbox発売したわけだけど、自分もそう思ったけど、あの預言は的中したよね
情弱と信者だけ任天堂Switchとか使ってるんであって、ビルゲイツが言ったように、ゲーム機の中身は機能が制限されたパソコンだよ
昔、TRONというプロジェクトがあって、あれを孫正義がクソミソに言ったという話があったと思うんだけど、
日本だけで閉じたプロジェクトを出発させても、アメリカの豊富な資金で、カネと資源という暴力で作られるオープンな世界に絶対負ける、ようなことを言ってて、
当然、そのあとIntelなりWindowsに日本は負けるし、半導体としては台湾に90年代で既に負け始めてたわけで、
家庭用ゲーム機も同じで、家庭用ゲーム機の新しいバージョンが出るまでのスパン、機能は固定されるから安定して確実に動作するゲームが販売できるとか、
色々利点はあるんだろうけど、でも、その間に日進月歩で、それこそnVIDIAみたいな企業がどんどん進んでいくわけで、
グラフィクスシンセサイザーwとか名前はカッコいいけどさ、名前に準じてたら、今頃ソニーNVIDIAに勝ってない?違うでしょ?
話を戻すと、どんどん素人が参入してきて、その素人が頓珍漢なことを言ってるのが不愉快だ、許せない、驚き屋氏ね、みたいな気持ちは分かるけど、
素人が参入できるようになった、というのは、世の中の流れが変わったわけで、そういう若い世代をただバカにするというのは、老害しぐさだよね
気持ちは分かるけど、ドラえもんのように生暖かく見守るとともに、老害も新しい技術とか、素人が驚いていることをちゃんと咀嚼して、吸収していく必要があるんじゃないの?
ちゃんと大学、大学院で計算機科学、情報科学をやってきったわけだし、あやふやな知識でイキってる若者に対して老人が取るべき態度ってそういうもんじゃないの?
例えば、子供が初めて何かを見て驚く、それを大人が見て、そんなのはありふれてる、驚き屋wwwと思うだろうか?
子供は素人だから初めて体験したわけで、なぜ子供がそれを見て驚いたのか?とか、子供の目線でちゃんと考えられる人は、教える人に向いてる人だと思う
他人に教えることがうまい人は、自分の経験、能力も整理することがうまい
C++書けない奴がRustやっての笑える🤣
この人は可哀想なことに「学校の言うことに従っておけば人生が幸せになれる」という
恐らくこの先20年ぐらい同じような失敗を繰り返してしまうのだと思う
副業で食っていけるようなITエンジニアを簡単に教育できるとは思えないし
そもそもなんだが、スクールや学校の言うことを全て丸暗記すれば大丈夫、というレベルの教育は小学生の早い段階で終わっていて
を知るためであって、塾で丸暗記を教わるために出しているのではない
興味を持って調べたことというのは誰かに教えて貰ったこととは違って記憶への定着や新しい着想に繋がるので
大学には興味・好奇心を持った人が更なる高等教育を受け、新しい発見をするために進学する
プログラミングやITに関する技術も同様で全てをスクールで教わるというのは非現実的で不可能だ
例えばよく使われるプログラミング言語だけでもC,C++,Java,JavaScript,TypeScript,Rust,Python,PHP,Ruby,Perl,ShellScript ぐらいはあって
これらの言語仕様を覚えるだけでも大変だしよく使われるライブラリなどが組み合わされるととても現実的ではない
なのであくまでもスクールや教育機関ではどれか1つの言語を選んでプログラミングの概念や思考法を教えているに過ぎないし
お金を貰えるレベルになるには少なくとも3年は自分でプログラムを書いていないと到達できない
興味がないものを3年も続けられるわけがないので、スクールや学校で「興味が無い」と思ったのならやめた方が良い
つまりスクールに通ってITエンジニアになるにはスクール外で興味を持って学習することが必要なのだが
残念ながらこの法則は小学校高学年から同様で、ちゃんと学校外で勉強してきたような人は大人になってからスクールに通ったりはしない
Akira Ransomwareは、近年特に注目されているランサムウェアの一つで、その動作は高度で多様な手法を取り入れています。以下に、Akiraランサムウェアの動作について詳しく説明します。
侵入経路
Akiraは主にフィッシングメール、リモートデスクトッププロトコル(RDP)の悪用、既知の脆弱性の悪用などを通じてシステムに侵入します。特に、未修正のソフトウェアやシステムの脆弱性を狙うことが多いです。
初期感染と展開
システムに侵入すると、Akiraはネットワーク内で横移動を試みます。これは、ネットワーク内の他のデバイスにも感染を広げるためです。横移動には、認証情報の窃取や利用可能なネットワーク共有の探索が含まれます。
ファイル暗号化の前に、Akiraはターゲットシステムの特定のディレクトリをスキャンし、暗号化対象のファイルをリストアップします。次に、強力な暗号化アルゴリズム(通常はAESとRSAの組み合わせ)を使用して、ファイルを暗号化します。
最近のバージョンでは、部分的な暗号化手法(インターミッテント暗号化)を採用することで、暗号化速度を上げつつ、検出を回避する手法が確認されています (Bitdefender)。
データの窃取
暗号化に加えて、Akiraは重要なデータを盗み出し、そのデータを公開することで二重に脅迫することがあります。これにより、被害者に対する身代金要求の圧力を強化します。
暗号化が完了すると、被害者のデスクトップに身代金要求メッセージが表示されます。このメッセージには、データを復号化するための手順と支払い方法が記載されています。通常、暗号通貨(ビットコインなど)での支払いが求められます。
特徴的な技術
RustとC++の利用
Akiraの一部バージョンはRustというプログラミング言語で書かれており、これによりコードの安全性が向上し、セキュリティ研究者による逆コンパイルが難しくなっています。また、C++で書かれたバージョンも存在し、多様な環境での実行が可能です (CISA)。
VMware ESXiの標的化
Akiraは特にVMware ESXi仮想マシンを標的とすることが多く、これにより企業の仮想環境全体に影響を与えることができます。
Akiraは単純なファイル暗号化にとどまらず、データ窃取やネットワーク内での横移動、他のマルウェアの導入など、多層的な攻撃手法を組み合わせています。これにより、攻撃の成功率を高め、被害者に対するプレッシャーを強化します。