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

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

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

次スレは>>980が立てること

0952デフォルトの名無しさん2021/06/08(火) 21:14:25.34ID:TOKjPAZ1
そういや、ゾロ目の前後は競争率が高いとか散布図で図示した人って居なかったっけ?
別の話だったか?

0953デフォルトの名無しさん2021/06/10(木) 01:48:32.39ID:WxJUiwPc
データベースの物理設計と論理設計ってどう違うんでしょうか?
どちらもテーブル間のリレーション設計するだけだと思うんですが

0954デフォルトの名無しさん2021/06/10(木) 09:27:45.31ID:flmyYOFU
物理設計は具体的に何社のどれぐらいの容量のHDDをどこに置くか
もちろん電源容量とかコンセントの数が足りるかとかとか考える

論理設計は具体的にどういう論理的割り振りにするか考える

0955デフォルトの名無しさん2021/06/10(木) 10:10:59.52ID:/rzZEgjK
実際明確な違いはないから気にしなくていいよ
基本的に、コピペで工数を水増しするための無意味な重複工程だと思っていい
>>954の言うようにハードウェア構成にまで踏み込むのが本来の物理設計なのだけど、
島猿SIではその辺はだいたいインフラの仕事なんでそこまで厳密にDBの設計との整合性は気にしないで適当に大きなハード買って適当にクォータ設定しちゃうケースが多い

09569552021/06/10(木) 10:30:46.41ID:/rzZEgjK
ちなみに>>954を読むと物理設計としてハードウェアの枠を予め設計した上でその中身を論理設計するように読めるけど、これがまさに実態を表している
本来は全く逆で、論理設計の結果に基づいて物理設計でそれをどうハードまで落とし込むか決めるんだよ
オラクルとかのベンダーはまず自社の高い製品を買ってそれを前提に考えてほしいから逆にしたがる

0957デフォルトの名無しさん2021/06/10(木) 11:50:52.24ID:8j/+Fuuo
>>953
シンプルに言うとどのHDDにデータを置くかって話だ
自作PCでも起動ドライブはSSDでデータはHDDだったりするだろ?
DBだとどこにデータを置いたら高速になるかとか、インデックスがピンと張れる方法だとか
どのドライブに何月のデータを置けばいいのかとかだよ
OracleMasterSilverぐらいの知識があれば多少は何をするのかわかると思う
まずはデータベースのテーブルがどこのHDDにあるのか、テーブルごと、インデックスごとにどういう割り振りに出来るのか
そういうところからはじめてみてはどうか?

0958デフォルトの名無しさん2021/06/10(木) 14:33:39.07ID:dKgFtdxH
これが日本の現状なのか
それともこの板だけ異常に低レベルなのか

0959デフォルトの名無しさん2021/06/10(木) 14:38:57.39ID:vnbWNdgf
>>953
一般的なプログラマーはDBの論理設計の経験がないから物理設計との違いをよく理解してない

DB板で聞くか自分でググれ
ついでにリレーションの意味もググれ

0960デフォルトの名無しさん2021/06/10(木) 20:18:57.75ID:S0Lqp3Qd
>>955
でもお金で解決できるなら何も問題はないのでは?
下手にケチってピーキーに設計すると泣くぞ

0961デフォルトの名無しさん2021/06/10(木) 20:21:09.20ID:S0Lqp3Qd
足りなきゃ買えばいいんだよ、それが今のクラウド
しっかりとした物理設計なんて、ほとんど意味のない害悪

0962デフォルトの名無しさん2021/06/13(日) 16:57:15.84ID:STYy7gJY
>>881
ちなみに横からなんだけど、
文中のSTYLE) & ~WS_Vにある

) & ~
この部分ってどういう意味?

0963デフォルトの名無しさん2021/06/13(日) 17:05:30.29ID:Ldya/JSY
) and not

0964デフォルトの名無しさん2021/06/13(日) 20:56:19.05ID:STYy7gJY
>>963
すまん、ありがとう。
いや、そもそも横からなんだけどって言いかたが間違ってた。
普通に質問でよかった。
880あたりの書き込みは俺なのだが(880で書いてる一連のIDも俺)、
いま全力でCUIアプリからCについて勉強してる。
というより、このあとC++に進んでWINAPIもやらないと881にして頂いた話は何も進めないので、
正直泣きながらだ。
というより挫けてる。
Autohotkeyを使ってもGUI作成や32apiを使う点でつまるところWINAPIとセットでCやC++学んだほうがよさそうということで
はじめてはいるが、試練だなこれは。
よくわからん謎の開発環境?(VSではない)で、ウィンドウだけ出して喜んでるだけで、
その後が進まない。いや進めることができていない。

0965デフォルトの名無しさん2021/06/16(水) 19:45:11.88ID:181t9wct
昔のPS3やPS2のオフラインゲームでチートを作りたいから
アセンブラを学ぼうと思ってるのですが
https://gyazo.com/c0df66fb2407b84711fe5b62890f58a2
↑こういうの見て理解が出来るようになるにはx86アセンブラというのを覚えればいいんでしょうか?

0966デフォルトの名無しさん2021/06/16(水) 21:37:33.32ID:AzDBz8je
>>965
そもそもアセンブラレベルでパッチあてたりするには相当な理解力が無いと無理だから諦めたほうがいい

0967デフォルトの名無しさん2021/06/16(水) 22:17:06.52ID:181t9wct
>>966
オフラインのゲームなので
ollydbgやcheat engineの中身が読めるようになればいいです。
そこまで難しいレベルのことはやろうとしてないです

0968デフォルトの名無しさん2021/06/16(水) 22:40:53.92ID:7CrzTbcp
>>965
いわゆるリバースエンジニアリングと呼ばれる分野だが質問内容を見る限り全然足りていないように見える
コンピューター内で計算はどのように行われるのか、データの移動はどうするのか、周辺デバイスやOSの利用は
どうするのかなど低レイヤーの理解が無いと全く歯が立たないと思う
ちなみにCPUだがPS2はMIPS系、PS3はPPC系だ
以前に見たPS3のゲームを解析レポートだと確かIDAにPPCのプラグインを組み合わせて静的解析していたかな
それでもそれでも結構な知識と経験がいると思うが
とりあえずOSやISAの違い無視してもOllyDbgでWinゲームの改造は朝飯前くらいじゃないと話にならないのでは

0969デフォルトの名無しさん2021/06/17(木) 07:38:07.73ID:B6QT+gV0
x86アセンブラを覚えるには他のプログラミング言語同様
ハローワールドからやって覚えていくもの?
それともPCのオフラインゲー解析してたら覚えられるんでしょうか。

0970デフォルトの名無しさん2021/06/17(木) 07:46:05.74ID:IuszbmHt
アセンブラはCPUごとのレジスタやらメモリマップやらアドレッシングやら命令ごとのフラグへの影響やら、基礎を固めないと何もできない

0971デフォルトの名無しさん2021/06/17(木) 07:57:57.58ID:hZaFEnho
>>965
すでにそういうツールやノウハウがあるんだったら
そのツールの解析からはじめたほうがいいと思う

0972デフォルトの名無しさん2021/06/17(木) 08:42:16.10ID:B6QT+gV0
>>971
ツールの使い方はググって何とかなるのですが
https://gyazo.com/63c5590c01c304c07ff3a5c17a5d46ac
こういうの全く読めなくて手も足も出ない状況です・・
これに出てきてるのは何系のアセンブラなんでしょうか?

0973デフォルトの名無しさん2021/06/17(木) 08:59:56.36ID:MdpjMllh
>>972
ググって答えが見つかることしか分かりませんて状態なら、無理だから諦めろと言いたい
基礎的な知識がまったくない状態だから、遠回りしてでも基礎から地道に積み重ねるしかない

0974デフォルトの名無しさん2021/06/17(木) 09:45:33.10ID:hZaFEnho
>>972
SPU Assembly Language Specification

0975デフォルトの名無しさん2021/06/17(木) 10:55:12.84ID:B6QT+gV0
>>973
学ぶ意欲はあるので遠回りしてでも習得したいのですが
基礎的な必要知識がなんなのか分かってない状態です

0976デフォルトの名無しさん2021/06/17(木) 11:04:32.10ID:MdpjMllh
>>975
必要なところだけピンポイントで足場を固めて積み上げるなんてできないから、広く浅くでコンピュータやプログラミングの全般的なことを学びながら、段々に自分に必要な物が見えて来るようになるからそちらを深掘りしていくようにしたら?

0977デフォルトの名無しさん2021/06/17(木) 11:54:29.83ID:hZaFEnho
念のため補足しとくけどドキュメントの名称だからな
ここに全部書いてあるから

0978デフォルトの名無しさん2021/06/17(木) 13:47:27.99ID:xNFu7F8M
wikipediaでx86を調べて
そこでわからない単語を片っ端から
wikipediaやググってみたら?

0979デフォルトの名無しさん2021/06/17(木) 15:36:52.47ID:rI4RyUy5
PS2やPS3のゲームを改造したいのになぜx86なのか。それが判らない

0980デフォルトの名無しさん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で検索してみて

0981デフォルトの名無しさん2021/06/17(木) 19:05:41.15ID:JkvBpemd
>>980
コンパイラが吐いたフル機能使いまくりのコードを
逆アセして読み解こうとしている天才がいるんだよ
アセンブラの命令すらマニュアル無しで解読する能力の持ち主なんだ
すごいだろ?

0982デフォルトの名無しさん2021/06/17(木) 19:46:46.81ID:mjY/8PfV
チートの程度にもよるけど、やねうらおの書籍「解析魔法少女 美咲ちゃん」は参考になったよ

0983デフォルトの名無しさん2021/06/17(木) 20:28:00.57ID:IuszbmHt
その昔の素朴なCPUだと16進ダンプを直読みする強者が

0984デフォルトの名無しさん2021/06/18(金) 11:44:25.11ID:DLEaHmmC
日本では、情報処理試験の仮想アセンブラ・CASL2 が基本。
世界では、LLVM のサイトで、仮想アセンブラを学ぶ

x86 なら、OllyDbg・やねうらお・うさぴょんが有名

0985デフォルトの名無しさん2021/06/18(金) 12:03:44.02ID:7Huy+AZL
漏れもやねうらは好きな方だが
初心者ならやねうらより
ISBN 4839909865

0986デフォルトの名無しさん2021/06/18(金) 12:32:20.21ID:194Cy0xO
CASLはどうみても68系ベースの簡略版で、68プログラマーでもあった俺はインストラクション眺めただけで楽勝だった

0987デフォルトの名無しさん2021/06/18(金) 12:35:29.33ID:/PK0wqbC
gyazoとかいうゴミで画像貼んな

0988デフォルトの名無しさん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)

空撃ちしたときと本番で処理違うみたいなので
こう書きがちなんだけど、よくないなっていう自覚があります
配列→微妙に異なる処理→出力 のとき、どう書いたら上手いですか?

0989デフォルトの名無しさん2021/06/18(金) 13:46:33.95ID:Jo75oGSb
>>988
仕様がクソならコードもクソにしかならん
そういう状況になるのはたいてい抽象化がヘタクソ

0990デフォルトの名無しさん2021/06/18(金) 14:15:44.89ID:ru+U9KL5
python で代入文は if の条件に描けないぞ

0991デフォルトの名無しさん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のインデクスが違うのが気になったけど無視する

0992デフォルトの名無しさん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)

0993デフォルトの名無しさん2021/06/18(金) 14:27:15.83ID:rMpkljNE
>>990
正確には
Pythonでは代入は文なので、条件式には入れられない。
Cなどでは代入が式なので条件式にも入れられる。

0994デフォルトの名無しさん2021/06/18(金) 14:40:28.04ID:dSkONN1n
>>988
>配列→微妙に異なる処理→出力 のとき、どう書いたら上手いですか?

高階関数を使う

0995デフォルトの名無しさん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
おー.見やすいです

0996デフォルトの名無しさん2021/06/18(金) 15:45:26.03ID:PuJK3NPt
>>991 は仕様(実装)にバグがある

0997デフォルトの名無しさん2021/06/18(金) 17:03:01.08ID:194Cy0xO
うん、>>992のようにチェック入れるべきだね
でもreturnより例外吐くべきでは?

0998デフォルトの名無しさん2021/06/18(金) 18:04:22.88ID:tKtuqq6N
責務の分離が上手くできてない関数の中身だけいじくり回してもキレイにはならないよ
呼び出し側やデータ構造なんかも含めて考え直さないと

0999デフォルトの名無しさん2021/06/18(金) 18:38:56.71ID:9pPslW7o
メインルーチンとサブルーチンを明確に意識して
メインルーチンは処理の流れがわかるように
サブルーチンはテストして結果が出ればよしと分ける

1000デフォルトの名無しさん2021/06/18(金) 21:22:28.52ID:FdpzvR5V
>>998
もっと具体的に言わないと役に立たないと思うが

10011001Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 118日 4時間 4分 34秒

10021002Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php

レス数が1000を超えています。これ以上書き込みはできません。