スレ立てるまでもない質問はここで 156匹目

レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
垢版 |
2021/02/20(土) 17:17:54.73ID:56yjs2OO
この板はプログラムを作る人のための板です。
あらゆる質問はまず
スレ立てるまでもない質問はここで
スレにしてください。

【前スレ】
スレ立てるまでもない質問はここで 155匹目
https://mevius.5ch.net/test/read.cgi/tech/1606439237/

次スレは>>980が立てること
956955
垢版 |
2021/06/10(木) 10:30:46.41ID:/rzZEgjK
ちなみに>>954を読むと物理設計としてハードウェアの枠を予め設計した上でその中身を論理設計するように読めるけど、これがまさに実態を表している
本来は全く逆で、論理設計の結果に基づいて物理設計でそれをどうハードまで落とし込むか決めるんだよ
オラクルとかのベンダーはまず自社の高い製品を買ってそれを前提に考えてほしいから逆にしたがる
2021/06/10(木) 11:50:52.24ID:8j/+Fuuo
>>953
シンプルに言うとどのHDDにデータを置くかって話だ
自作PCでも起動ドライブはSSDでデータはHDDだったりするだろ?
DBだとどこにデータを置いたら高速になるかとか、インデックスがピンと張れる方法だとか
どのドライブに何月のデータを置けばいいのかとかだよ
OracleMasterSilverぐらいの知識があれば多少は何をするのかわかると思う
まずはデータベースのテーブルがどこのHDDにあるのか、テーブルごと、インデックスごとにどういう割り振りに出来るのか
そういうところからはじめてみてはどうか?
2021/06/10(木) 14:33:39.07ID:dKgFtdxH
これが日本の現状なのか
それともこの板だけ異常に低レベルなのか
2021/06/10(木) 14:38:57.39ID:vnbWNdgf
>>953
一般的なプログラマーはDBの論理設計の経験がないから物理設計との違いをよく理解してない

DB板で聞くか自分でググれ
ついでにリレーションの意味もググれ
2021/06/10(木) 20:18:57.75ID:S0Lqp3Qd
>>955
でもお金で解決できるなら何も問題はないのでは?
下手にケチってピーキーに設計すると泣くぞ
2021/06/10(木) 20:21:09.20ID:S0Lqp3Qd
足りなきゃ買えばいいんだよ、それが今のクラウド
しっかりとした物理設計なんて、ほとんど意味のない害悪
2021/06/13(日) 16:57:15.84ID:STYy7gJY
>>881
ちなみに横からなんだけど、
文中のSTYLE) & ~WS_Vにある

) & ~
この部分ってどういう意味?
963デフォルトの名無しさん
垢版 |
2021/06/13(日) 17:05:30.29ID:Ldya/JSY
) and not
2021/06/13(日) 20:56:19.05ID:STYy7gJY
>>963
すまん、ありがとう。
いや、そもそも横からなんだけどって言いかたが間違ってた。
普通に質問でよかった。
880あたりの書き込みは俺なのだが(880で書いてる一連のIDも俺)、
いま全力でCUIアプリからCについて勉強してる。
というより、このあとC++に進んでWINAPIもやらないと881にして頂いた話は何も進めないので、
正直泣きながらだ。
というより挫けてる。
Autohotkeyを使ってもGUI作成や32apiを使う点でつまるところWINAPIとセットでCやC++学んだほうがよさそうということで
はじめてはいるが、試練だなこれは。
よくわからん謎の開発環境?(VSではない)で、ウィンドウだけ出して喜んでるだけで、
その後が進まない。いや進めることができていない。
2021/06/16(水) 19:45:11.88ID:181t9wct
昔のPS3やPS2のオフラインゲームでチートを作りたいから
アセンブラを学ぼうと思ってるのですが
https://gyazo.com/c0df66fb2407b84711fe5b62890f58a2
↑こういうの見て理解が出来るようになるにはx86アセンブラというのを覚えればいいんでしょうか?
2021/06/16(水) 21:37:33.32ID:AzDBz8je
>>965
そもそもアセンブラレベルでパッチあてたりするには相当な理解力が無いと無理だから諦めたほうがいい
2021/06/16(水) 22:17:06.52ID:181t9wct
>>966
オフラインのゲームなので
ollydbgやcheat engineの中身が読めるようになればいいです。
そこまで難しいレベルのことはやろうとしてないです
2021/06/16(水) 22:40:53.92ID:7CrzTbcp
>>965
いわゆるリバースエンジニアリングと呼ばれる分野だが質問内容を見る限り全然足りていないように見える
コンピューター内で計算はどのように行われるのか、データの移動はどうするのか、周辺デバイスやOSの利用は
どうするのかなど低レイヤーの理解が無いと全く歯が立たないと思う
ちなみにCPUだがPS2はMIPS系、PS3はPPC系だ
以前に見たPS3のゲームを解析レポートだと確かIDAにPPCのプラグインを組み合わせて静的解析していたかな
それでもそれでも結構な知識と経験がいると思うが
とりあえずOSやISAの違い無視してもOllyDbgでWinゲームの改造は朝飯前くらいじゃないと話にならないのでは
2021/06/17(木) 07:38:07.73ID:B6QT+gV0
x86アセンブラを覚えるには他のプログラミング言語同様
ハローワールドからやって覚えていくもの?
それともPCのオフラインゲー解析してたら覚えられるんでしょうか。
2021/06/17(木) 07:46:05.74ID:IuszbmHt
アセンブラはCPUごとのレジスタやらメモリマップやらアドレッシングやら命令ごとのフラグへの影響やら、基礎を固めないと何もできない
2021/06/17(木) 07:57:57.58ID:hZaFEnho
>>965
すでにそういうツールやノウハウがあるんだったら
そのツールの解析からはじめたほうがいいと思う
2021/06/17(木) 08:42:16.10ID:B6QT+gV0
>>971
ツールの使い方はググって何とかなるのですが
https://gyazo.com/63c5590c01c304c07ff3a5c17a5d46ac
こういうの全く読めなくて手も足も出ない状況です・・
これに出てきてるのは何系のアセンブラなんでしょうか?
2021/06/17(木) 08:59:56.36ID:MdpjMllh
>>972
ググって答えが見つかることしか分かりませんて状態なら、無理だから諦めろと言いたい
基礎的な知識がまったくない状態だから、遠回りしてでも基礎から地道に積み重ねるしかない
2021/06/17(木) 09:45:33.10ID:hZaFEnho
>>972
SPU Assembly Language Specification
2021/06/17(木) 10:55:12.84ID:B6QT+gV0
>>973
学ぶ意欲はあるので遠回りしてでも習得したいのですが
基礎的な必要知識がなんなのか分かってない状態です
2021/06/17(木) 11:04:32.10ID:MdpjMllh
>>975
必要なところだけピンポイントで足場を固めて積み上げるなんてできないから、広く浅くでコンピュータやプログラミングの全般的なことを学びながら、段々に自分に必要な物が見えて来るようになるからそちらを深掘りしていくようにしたら?
2021/06/17(木) 11:54:29.83ID:hZaFEnho
念のため補足しとくけどドキュメントの名称だからな
ここに全部書いてあるから
2021/06/17(木) 13:47:27.99ID:xNFu7F8M
wikipediaでx86を調べて
そこでわからない単語を片っ端から
wikipediaやググってみたら?
2021/06/17(木) 15:36:52.47ID:rI4RyUy5
PS2やPS3のゲームを改造したいのになぜx86なのか。それが判らない
2021/06/17(木) 17:14:07.40ID:ooZzmu2N
>>972の内容は、まぁexeだしレジスタ名称とかニーモニックからX86だろうけど
アセンブラって基本的な部分はある程度同じなんで、いきなりX86とかMIPSとか
PPCとかフル機能のCPUのアセンブラから勉強しようとするとすぐに詰むよ

アセンブラを眺める程度ならHP拾い読みでも良いけど、開発とかを行うならば
もう少し簡単なPICとかのアセンブラをしっかり勉強してからの方が近道だと思うよ

そして根本的な話でPS2とかPS3とかの開発をしたいならば別にアセンブラを
使わなくてもC++のSDKとか開発されているので、よほど低レベルな部分の
開発を行うのでなければアセンブラ必要ないよ

ps2 sdkとかps3 sdkで検索してみて
981デフォルトの名無しさん
垢版 |
2021/06/17(木) 19:05:41.15ID:JkvBpemd
>>980
コンパイラが吐いたフル機能使いまくりのコードを
逆アセして読み解こうとしている天才がいるんだよ
アセンブラの命令すらマニュアル無しで解読する能力の持ち主なんだ
すごいだろ?
2021/06/17(木) 19:46:46.81ID:mjY/8PfV
チートの程度にもよるけど、やねうらおの書籍「解析魔法少女 美咲ちゃん」は参考になったよ
2021/06/17(木) 20:28:00.57ID:IuszbmHt
その昔の素朴なCPUだと16進ダンプを直読みする強者が
2021/06/18(金) 11:44:25.11ID:DLEaHmmC
日本では、情報処理試験の仮想アセンブラ・CASL2 が基本。
世界では、LLVM のサイトで、仮想アセンブラを学ぶ

x86 なら、OllyDbg・やねうらお・うさぴょんが有名
985デフォルトの名無しさん
垢版 |
2021/06/18(金) 12:03:44.02ID:7Huy+AZL
漏れもやねうらは好きな方だが
初心者ならやねうらより
ISBN 4839909865
2021/06/18(金) 12:32:20.21ID:194Cy0xO
CASLはどうみても68系ベースの簡略版で、68プログラマーでもあった俺はインストラクション眺めただけで楽勝だった
2021/06/18(金) 12:35:29.33ID:/PK0wqbC
gyazoとかいうゴミで画像貼んな
988デフォルトの名無しさん
垢版 |
2021/06/18(金) 13:39:45.56ID:WThQkiL7
func(list):
_if list[0]=a:
__for i in list:
____conv_a(i)
____write(i)

_elif list[1]=b:
__for i in list:
____conv_b(i)
____write(i)

空撃ちしたときと本番で処理違うみたいなので
こう書きがちなんだけど、よくないなっていう自覚があります
配列→微妙に異なる処理→出力 のとき、どう書いたら上手いですか?
2021/06/18(金) 13:46:33.95ID:Jo75oGSb
>>988
仕様がクソならコードもクソにしかならん
そういう状況になるのはたいてい抽象化がヘタクソ
990デフォルトの名無しさん
垢版 |
2021/06/18(金) 14:15:44.89ID:ru+U9KL5
python で代入文は if の条件に描けないぞ
2021/06/18(金) 14:18:50.64ID:H41XlXnl
>>988
Pythonぽいけどdefないし等号も違うから何の言語か分からなかった
Pythonみたいに関数を変数に入れられる言語なら最初に適用する関数を決めるとすっきりしそう

func(list):
 # 適用する処理(conv)を設定
 if list[0] == a:
  conv = conv_a
 elif list[1] == b:
  conv = conv_b

 # リストに処理を適用して出力
 for i in list:
  conv(i)
  write(i)

aとbでlistのインデクスが違うのが気になったけど無視する
2021/06/18(金) 14:22:04.15ID:EhVYURYt
変数名に list 使うな

func(l):
if l[0] != a && l[1] != b: return
f = (conv_a, conv_b)[l[0] != a]
for i in l:
f(i)
write(i)
2021/06/18(金) 14:27:15.83ID:rMpkljNE
>>990
正確には
Pythonでは代入は文なので、条件式には入れられない。
Cなどでは代入が式なので条件式にも入れられる。
2021/06/18(金) 14:40:28.04ID:dSkONN1n
>>988
>配列→微妙に異なる処理→出力 のとき、どう書いたら上手いですか?

高階関数を使う
995デフォルトの名無しさん
垢版 |
2021/06/18(金) 15:01:02.87ID:WThQkiL7
すいませんpythonスレじゃないので曖昧な書き方のがいいのかなと思って…
def func(l):
_if l[0][0] == 0:
__for i in l:
___write(conv_a(i))

_elif[0][0] == 1:
__for i in l:
___write(conv_b(i))

です.ほんとは各処理もうちょっと関数続くんですけど
いずれにせよ途中だけが微妙に違うほぼ同じ処理をきれいに書きたい

>>991
おー.見やすいです
996デフォルトの名無しさん
垢版 |
2021/06/18(金) 15:45:26.03ID:PuJK3NPt
>>991 は仕様(実装)にバグがある
2021/06/18(金) 17:03:01.08ID:194Cy0xO
うん、>>992のようにチェック入れるべきだね
でもreturnより例外吐くべきでは?
2021/06/18(金) 18:04:22.88ID:tKtuqq6N
責務の分離が上手くできてない関数の中身だけいじくり回してもキレイにはならないよ
呼び出し側やデータ構造なんかも含めて考え直さないと
2021/06/18(金) 18:38:56.71ID:9pPslW7o
メインルーチンとサブルーチンを明確に意識して
メインルーチンは処理の流れがわかるように
サブルーチンはテストして結果が出ればよしと分ける
1000デフォルトの名無しさん
垢版 |
2021/06/18(金) 21:22:28.52ID:FdpzvR5V
>>998
もっと具体的に言わないと役に立たないと思うが
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 118日 4時間 4分 34秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況