スレ立てるまでもない質問はここで 156匹目
レス数が1000を超えています。これ以上書き込みはできません。
この板はプログラムを作る人のための板です。
あらゆる質問はまず
スレ立てるまでもない質問はここで
スレにしてください。
【前スレ】
スレ立てるまでもない質問はここで 155匹目
https://mevius.5ch.net/test/read.cgi/tech/1606439237/
次スレは>>980が立てること そういや、ゾロ目の前後は競争率が高いとか散布図で図示した人って居なかったっけ?
別の話だったか? データベースの物理設計と論理設計ってどう違うんでしょうか?
どちらもテーブル間のリレーション設計するだけだと思うんですが 物理設計は具体的に何社のどれぐらいの容量のHDDをどこに置くか
もちろん電源容量とかコンセントの数が足りるかとかとか考える
論理設計は具体的にどういう論理的割り振りにするか考える 実際明確な違いはないから気にしなくていいよ
基本的に、コピペで工数を水増しするための無意味な重複工程だと思っていい
>>954の言うようにハードウェア構成にまで踏み込むのが本来の物理設計なのだけど、
島猿SIではその辺はだいたいインフラの仕事なんでそこまで厳密にDBの設計との整合性は気にしないで適当に大きなハード買って適当にクォータ設定しちゃうケースが多い ちなみに>>954を読むと物理設計としてハードウェアの枠を予め設計した上でその中身を論理設計するように読めるけど、これがまさに実態を表している
本来は全く逆で、論理設計の結果に基づいて物理設計でそれをどうハードまで落とし込むか決めるんだよ
オラクルとかのベンダーはまず自社の高い製品を買ってそれを前提に考えてほしいから逆にしたがる >>953
シンプルに言うとどのHDDにデータを置くかって話だ
自作PCでも起動ドライブはSSDでデータはHDDだったりするだろ?
DBだとどこにデータを置いたら高速になるかとか、インデックスがピンと張れる方法だとか
どのドライブに何月のデータを置けばいいのかとかだよ
OracleMasterSilverぐらいの知識があれば多少は何をするのかわかると思う
まずはデータベースのテーブルがどこのHDDにあるのか、テーブルごと、インデックスごとにどういう割り振りに出来るのか
そういうところからはじめてみてはどうか? これが日本の現状なのか
それともこの板だけ異常に低レベルなのか >>953
一般的なプログラマーはDBの論理設計の経験がないから物理設計との違いをよく理解してない
DB板で聞くか自分でググれ
ついでにリレーションの意味もググれ >>955
でもお金で解決できるなら何も問題はないのでは?
下手にケチってピーキーに設計すると泣くぞ 足りなきゃ買えばいいんだよ、それが今のクラウド
しっかりとした物理設計なんて、ほとんど意味のない害悪 >>881
ちなみに横からなんだけど、
文中のSTYLE) & ~WS_Vにある
) & ~
この部分ってどういう意味? >>963
すまん、ありがとう。
いや、そもそも横からなんだけどって言いかたが間違ってた。
普通に質問でよかった。
880あたりの書き込みは俺なのだが(880で書いてる一連のIDも俺)、
いま全力でCUIアプリからCについて勉強してる。
というより、このあとC++に進んでWINAPIもやらないと881にして頂いた話は何も進めないので、
正直泣きながらだ。
というより挫けてる。
Autohotkeyを使ってもGUI作成や32apiを使う点でつまるところWINAPIとセットでCやC++学んだほうがよさそうということで
はじめてはいるが、試練だなこれは。
よくわからん謎の開発環境?(VSではない)で、ウィンドウだけ出して喜んでるだけで、
その後が進まない。いや進めることができていない。 昔のPS3やPS2のオフラインゲームでチートを作りたいから
アセンブラを学ぼうと思ってるのですが
https://gyazo.com/c0df66fb2407b84711fe5b62890f58a2
↑こういうの見て理解が出来るようになるにはx86アセンブラというのを覚えればいいんでしょうか? >>965
そもそもアセンブラレベルでパッチあてたりするには相当な理解力が無いと無理だから諦めたほうがいい >>966
オフラインのゲームなので
ollydbgやcheat engineの中身が読めるようになればいいです。
そこまで難しいレベルのことはやろうとしてないです >>965
いわゆるリバースエンジニアリングと呼ばれる分野だが質問内容を見る限り全然足りていないように見える
コンピューター内で計算はどのように行われるのか、データの移動はどうするのか、周辺デバイスやOSの利用は
どうするのかなど低レイヤーの理解が無いと全く歯が立たないと思う
ちなみにCPUだがPS2はMIPS系、PS3はPPC系だ
以前に見たPS3のゲームを解析レポートだと確かIDAにPPCのプラグインを組み合わせて静的解析していたかな
それでもそれでも結構な知識と経験がいると思うが
とりあえずOSやISAの違い無視してもOllyDbgでWinゲームの改造は朝飯前くらいじゃないと話にならないのでは x86アセンブラを覚えるには他のプログラミング言語同様
ハローワールドからやって覚えていくもの?
それともPCのオフラインゲー解析してたら覚えられるんでしょうか。 アセンブラはCPUごとのレジスタやらメモリマップやらアドレッシングやら命令ごとのフラグへの影響やら、基礎を固めないと何もできない >>965
すでにそういうツールやノウハウがあるんだったら
そのツールの解析からはじめたほうがいいと思う >>971
ツールの使い方はググって何とかなるのですが
https://gyazo.com/63c5590c01c304c07ff3a5c17a5d46ac
こういうの全く読めなくて手も足も出ない状況です・・
これに出てきてるのは何系のアセンブラなんでしょうか? >>972
ググって答えが見つかることしか分かりませんて状態なら、無理だから諦めろと言いたい
基礎的な知識がまったくない状態だから、遠回りしてでも基礎から地道に積み重ねるしかない >>972
SPU Assembly Language Specification >>973
学ぶ意欲はあるので遠回りしてでも習得したいのですが
基礎的な必要知識がなんなのか分かってない状態です >>975
必要なところだけピンポイントで足場を固めて積み上げるなんてできないから、広く浅くでコンピュータやプログラミングの全般的なことを学びながら、段々に自分に必要な物が見えて来るようになるからそちらを深掘りしていくようにしたら? 念のため補足しとくけどドキュメントの名称だからな
ここに全部書いてあるから wikipediaでx86を調べて
そこでわからない単語を片っ端から
wikipediaやググってみたら? PS2やPS3のゲームを改造したいのになぜx86なのか。それが判らない >>972の内容は、まぁexeだしレジスタ名称とかニーモニックからX86だろうけど
アセンブラって基本的な部分はある程度同じなんで、いきなりX86とかMIPSとか
PPCとかフル機能のCPUのアセンブラから勉強しようとするとすぐに詰むよ
アセンブラを眺める程度ならHP拾い読みでも良いけど、開発とかを行うならば
もう少し簡単なPICとかのアセンブラをしっかり勉強してからの方が近道だと思うよ
そして根本的な話でPS2とかPS3とかの開発をしたいならば別にアセンブラを
使わなくてもC++のSDKとか開発されているので、よほど低レベルな部分の
開発を行うのでなければアセンブラ必要ないよ
ps2 sdkとかps3 sdkで検索してみて >>980
コンパイラが吐いたフル機能使いまくりのコードを
逆アセして読み解こうとしている天才がいるんだよ
アセンブラの命令すらマニュアル無しで解読する能力の持ち主なんだ
すごいだろ? チートの程度にもよるけど、やねうらおの書籍「解析魔法少女 美咲ちゃん」は参考になったよ その昔の素朴なCPUだと16進ダンプを直読みする強者が 日本では、情報処理試験の仮想アセンブラ・CASL2 が基本。
世界では、LLVM のサイトで、仮想アセンブラを学ぶ
x86 なら、OllyDbg・やねうらお・うさぴょんが有名 漏れもやねうらは好きな方だが
初心者ならやねうらより
ISBN 4839909865 CASLはどうみても68系ベースの簡略版で、68プログラマーでもあった俺はインストラクション眺めただけで楽勝だった 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)
空撃ちしたときと本番で処理違うみたいなので
こう書きがちなんだけど、よくないなっていう自覚があります
配列→微妙に異なる処理→出力 のとき、どう書いたら上手いですか? >>988
仕様がクソならコードもクソにしかならん
そういう状況になるのはたいてい抽象化がヘタクソ python で代入文は if の条件に描けないぞ >>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のインデクスが違うのが気になったけど無視する 変数名に 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) >>990
正確には
Pythonでは代入は文なので、条件式には入れられない。
Cなどでは代入が式なので条件式にも入れられる。 >>988
>配列→微妙に異なる処理→出力 のとき、どう書いたら上手いですか?
高階関数を使う すいません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
おー.見やすいです うん、>>992のようにチェック入れるべきだね
でもreturnより例外吐くべきでは? 責務の分離が上手くできてない関数の中身だけいじくり回してもキレイにはならないよ
呼び出し側やデータ構造なんかも含めて考え直さないと メインルーチンとサブルーチンを明確に意識して
メインルーチンは処理の流れがわかるように
サブルーチンはテストして結果が出ればよしと分ける >>998
もっと具体的に言わないと役に立たないと思うが このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 118日 4時間 4分 34秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。