X



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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2021/06/18(金) 22:50:39.76ID:dSkONN1n
この板はプログラムを作る人のための板です。
あらゆる質問はまず
スレ立てるまでもない質問はここで
スレにしてください。

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

次スレは>>980が立てること
2021/08/06(金) 15:25:19.39ID:5iNp8vEV
>>312
Tの異常検出のためには、チェックサム的にCRC符号をファイルの先頭にでも
書いておけばさらに安心か。
しかし、>>313の問題は残るな。
難しい。
2021/08/06(金) 15:41:30.52ID:5iNp8vEV
ファイルTをT2にバックアップしようとして
$ cp T T2
としてから、T と T2の一致検査をしてもメモリーにキャッシュされたものを比較する
ことになるだけだから、T2が本当に物理ディスクに書き終わったかまでを確かめた
ことにはならないよね。難しい問題だ。
2021/08/06(金) 18:33:49.96ID:17Uw3aqR
普通なら別途読み出してチェックしないか?
2021/08/06(金) 20:13:30.92ID:5iNp8vEV
物理ディスク用にOSが持っているバッファって、遅延書き込みされるから
何秒間かはフラッシュされないけど、
「長くても15秒後くらいまでにはフラッシュされるようにしなければならない」
と聞いたことがあるので、15秒間待てば確実に物理ディスクに書き込まれた
と仮定して良いかもしれない。
あとは、Linuxだったら、syncコマンドを実行するとか。
syncコマンドが管理者権限無しで実行できるのかは知らないけど。
2021/08/06(金) 20:29:38.69ID:5iNp8vEV
https://www.postgresql.org/docs/current/wal-reliability.html

PostgreSQLの場合:

29.1。信頼性
信頼性は深刻なデータベースシステムの重要な特性であり、PostgreSQLは信頼性の高い動作を保証するために可能な限りのことを行います。信頼性の高い操作の1つの側面は、コミットされたトランザクションによって記録されたすべてのデータを、電力損失、オペレーティングシステムの障害、およびハードウェア障害(もちろん、不揮発性領域自体の障害を除く)から安全な不揮発性領域に格納する必要があることです。コンピュータの永続ストレージ(ディスクドライブまたは同等のもの)へのデータの書き込みに成功すると、通常、この要件が満たされます。実際、コンピューターが致命的な損傷を受けた場合でも、ディスクドライブが存続すれば、同様のハードウェアを備えた別のコンピューターに移動でき、コミットされたすべてのトランザクションはそのまま残ります。

定期的にディスクプラッタにデータを強制することは簡単な操作のように見えるかもしれませんが、そうではありません。ディスクドライブはメインメモリやCPUよりも大幅に遅いため、コンピュータのメインメモリとディスクプラッタの間にいくつかのキャッシュ層が存在します。まず、オペレーティングシステムのバッファキャッシュがあります。これは、頻繁に要求されるディスクブロックをキャッシュし、ディスク書き込みを結合します。幸い、すべてのオペレーティングシステムは、アプリケーションにバッファキャッシュからディスクへの書き込みを強制する方法を提供し、PostgreSQLはそれらの機能を使用します。(これがどのように行われるかを調整するには、wal_sync_methodパラメーターを参照してください。)
2021/08/06(金) 20:50:07.29ID:vJnUxy1T
>>311
DBAがいなくて運用もすべて担当するならトランザクションログや復旧の仕組みは知っておく必要あるよ
DBAがいるならアプリから見たトランザクション管理方法を知っておけば十分
(同時実行制御、ロック、分離レベルとかの知識は必須)
2021/08/06(金) 21:34:55.20ID:9Wm7dl2u
どうでもいいよ
今時DBなんかAWSのRDSみたいなマネージドサービスでポチるだけだ
クラッシュなんかまず起きないし、万一起きても再起動すりゃ勝手に復旧する
DBを自前で立てないことが一番大事
2021/08/06(金) 22:22:10.90ID:vJnUxy1T
>>320
おいおい
RDSがクラッシュするケースなんていくらでもあるし
自動で復旧できる場合もあればできない場合もあるから

結局中身のDBMSの仕組みをしらないとまともな運用はできない
2021/08/06(金) 22:45:59.27ID:n7mHPNpK
>>321
どんなときにクラッシュするの?
2021/08/06(金) 23:04:16.95ID:9Wm7dl2u
>>321
まあ突然のフェイルオーバーと再起動は俺も見たことあるからそれが実際にはクラッシュなのかもしれんが、
仮にRDSがクラッシュして自動復旧もできなかったとして、DBMSの中身の知識をどう活用して対処するんだ?
インスタンスへのログインもトランザクションログの解析も許可されてなくて、できることなんて結局スナップショットからのリカバリくらいしかないのに
2021/08/07(土) 13:03:59.56ID:0XNcHXej
>>323
PostgreSQLならトランザクションログなどは自由に見られるのでは。
結局ファイルの集まりだし、トランザクションログを人間が見安い形で
見る方法もあるのでは。
RDMS自体のソースが有るわけだからそれを調べれば仕組みも分かるだろうし。
お金の関わることをする場合、DjangoやRailsなどを使っていてもやっぱり、
データベースの成り立ちを知ってないと怖い気がするな。
2021/08/07(土) 13:18:26.48ID:AEz+LKNR
趣味ならともかくお金払ってやるならデータベースの仕組みを調べるより冗長構成とバックアップ体制と保守契約をちゃんとやるべき
2021/08/07(土) 15:36:26.59ID:JTijiKKd
それは顧客に言えとしか
自分が決定権もってるなんて恵まれた奴、そんなにいる?
2021/08/07(土) 15:47:08.13ID:AEz+LKNR
受注の話なの?
なら要求仕様書に書いてある通りに構築しなよ
まさかと思うけど顧客からトランザクションログの解析まで要供されてるのか?w
2021/08/07(土) 17:43:21.87ID:EnA6xjt7
データベースのマニュアル読めばいいのに
2021/08/07(土) 19:34:39.41ID:dYY2396a
セキュリティを気にしすぎるあまり
冗長性を許さないという顧客もいるようだが
330デフォルトの名無しさん
垢版 |
2021/08/07(土) 22:32:02.89ID:D2wyEaFr
ええ、LANポート接続禁止でインターネットもイントラネットも接続致しません。
もちろんUSBメモリーも外付けハードディスク等もいっさい接続禁止です。
2021/08/07(土) 22:37:44.78ID:44Jp+lmm
>>329
それはセキュリティというより
確実にデータを消せるようにするためだな…
2021/08/07(土) 23:00:09.86ID:OG1sVILn
>>324
RDSではトランザクションログを見る方法はない
サーバーのファイルシステムも一切見えない
RDS使ったことないなら黙ってりゃいいのに
2021/08/07(土) 23:29:09.83ID:+3xGsL1L
トランザクションやトランザクションログの仕組みを理解しろって話と
ログの中身を実際に見れるかどうかって話は全然違う話やろ
2021/08/08(日) 00:21:05.30ID:gE3xMaIA
main() でははなくて WinMain() で始まるプログラムを
ネットで調べ調べして作り始め、とりあえず期待通りの
.exe はできたのですが。この .exe にアイコンを付ける
方法がネットで調べてもわかりません。

わからない原因はライセンスの関係で Developer Studio 97
という化石のように古い開発環境を使っているため、
新しい開発環境とやり方が違うからだとは思うのですが、
もし Developer Studio 97 時代のアイコンを付ける方法
を思い出してアドバイスしていただけるエロい方が居ると
ありがたいです。

ちなみに、アイコンを変更できるというフリーソフトも
試してみましたが、それもうまくいきません。
2021/08/08(日) 00:44:48.08ID:fXmypV8H
>>333
そりゃ無理があるだろう
>>324はRDSでトランザクションログを見れるはずってはっきり言ってるわけで、少なくともそれは完全に誤り
そして、そこに拘るってことは恐らく「DBMSの内部の知識を活かした運用」をする上でトランザクションログを見れることは必須だと考えているんだろうね
2021/08/08(日) 02:29:09.38ID:aconubWq
>>335
そいつも君も論点ズレてるよって指摘だったんだかな
何と戦ってんのか知らないけどまあ頑張って
2021/08/08(日) 12:32:35.77ID:KyFDvIQY
DB側にトランザクションの記録ないのん?
2021/08/08(日) 15:03:09.93ID:8+EE5eS9
>>337
あるよ
トランザクションログのバックアップやリカバリはRDSが用意してる機能を使うから直接触る必要がないってこと

中身を見れるかどうかはDBMS次第だけど
見れる場合もそれ使って直接ロールフォワードするような操作は出来ない
2021/08/08(日) 18:52:14.48ID:K9eCOFZN
ローカルで使用するちょっとした計算アプリを簡単に作りたいです
例えば
入力フォーム、AとB
計算結果、C
AとBはインクリメンタル入力(つまり入力したそばからCが計算される)出来てSI接頭辞使用可
ひとまずHTML/JavaScriptで作り初めてみたのですが日本語入力を制御する手段がないようで
困っています(あるにはあるみたいだけど環境依存性が高い)
何かもうちょっと良さそうな方法はないですかね?
2021/08/08(日) 19:34:33.79ID:3Qhfl9FY
フォームという点からGUI必須、入力と同時に計算という点からイベント駆動
日本語入力制御がというのが意味フではあるけどさておき、HTMLはNG、簡単に作るという点からVCもNG
C#とかVBといった.Netか、Javaになるだろうね
他に有名どころではあるけどHSPはやったことないから入力イベント扱えるか知らない
2021/08/08(日) 19:44:20.38ID:3Qhfl9FY
日本語の意味フと言うのは、IME使うなんて要件は無いんだからinactiveにしとけば?という意味
342339
垢版 |
2021/08/08(日) 20:10:45.02ID:K9eCOFZN
>>341
Webブラウザで日本語入力は使うしタブやウインドウを切り替えてもその状態は維持されるような
というか作っていて別のタブで日本語入力をONにしてググった後に戻ってくると
日本語入力がONのままになっていてこりゃ制御できないと使いにくすぎるとなりました
2021/08/08(日) 20:26:21.38ID:7BKdY7dG
CSSで日本語入力状態を制御できないの?
2021/08/08(日) 20:35:50.34ID:3Qhfl9FY
できる
ime-mode: inactive
345339
垢版 |
2021/08/08(日) 20:48:40.53ID:K9eCOFZN
ttps://developer.mozilla.org/ja/docs/Web/CSS/ime-mode
ime-modeはobsoleteなんだが・・・しかもIEとFirefoxだけ
Electron界隈とかどうしているんだろとググってみても
これという解決策は出てこない気が
346339
垢版 |
2021/08/09(月) 01:31:14.35ID:bWVDlgk2
これだけのためにでかいIDEをインストールするのも・・・と考えつつググっていたら
Chrome系はinputmode='email'みたいな感じで日本語入力がOFFになるっぽいという情報が
引っかかってやってみたら確かにその通りになりました
ime-modeと併用することでChrome系とFirefox/IE系ともにそれなりに使えそうな感じになりそうです
ただし日本語入力はOFFになってくれるけどフォーカスが外れたときに自動でONに戻って
くれないのでそれは不便なままですが

このためだけにVS入れてC#を覚えるのも気が進まないし、ime-mode&inputmodeでお茶を
濁そうと思います。しかし未だにIE全盛期みたいな実装を使わなければならないのか・・・(しかも将来性不透明)

せいぜい150行程度のHTMLを作るのに結構な時間を潰してしまったorz
2021/08/09(月) 03:34:39.17ID:pGDDviy4
計算サイトは接頭辞までをも入力したりはしないで
コンボボックスで選択するんだけどな
2021/08/09(月) 10:39:58.44ID:Zs3Qsaso
emailとかnumberってIME状態復帰しないのかよ…ショックだ
まじアメリカ人ばかりに最先端の技術開発させてないで、CJKの国のみんなも頑張ってくれー
2021/08/09(月) 12:03:00.50ID:wbJLy1Ju
どうでもいいな
そのために技術の進歩が遅れるくらいなら極東猿の面倒な言語の都合なんかガン無視してくれていい
2021/08/09(月) 12:24:15.96ID:UR8L0HdQ
これで進歩が遅れるとか極論w
2021/08/09(月) 21:21:26.03ID:qrhzKsrp
アセンブリ言語(x86_64)を初めて触っています
gcc -Sで出力されたコードを見ていると、raxを1で初期化する操作を movl $1, %eax で行っているようです
movq $デカい, %rax を直前に書き足しても問題が起こらないので64bitを書き換えているようですが、これは仕様でしょうか?
2021/08/09(月) 21:23:43.79ID:qrhzKsrp
>>351
初期化するってのは変な書き方でしたね…すみません
2021/08/09(月) 22:26:18.86ID:ONkXNtnD
https://stackoverflow.com/questions/11177137/why-do-x86-64-instructions-on-32-bit-registers-zero-the-upper-part-of-the-full-6
2021/08/09(月) 22:55:44.24ID:qrhzKsrp
>>353
Intelのドキュメントに記載されているのですね
ありがとうございます!
2021/08/10(火) 00:45:23.63ID:YXwAmg8T
>>351
なんか知らなそうなので補足しておくと、そもそもx86-64を開発・実装したのはIntelではなくAMD
なのでリファレンスはIntelじゃなくAMDだし、AMDのサイトにはAMD64のプログラミングマニュアルが
公開されている。あとリリースされた当時はAMD64命令セットに関する解説記事もいろいろあった

AMD64 Architecture Programmer's Manual Volume 1: Application Programmingの29p
> 3.1.2.3 Zero-Extension of 32-Bit Results
読めば判るけどmovだけでなく32bitの算出演算命令なども同様に上位32bitはゼロ拡張される
356デフォルトの名無しさん
垢版 |
2021/08/10(火) 01:49:18.74ID:/z4Yiavc
現在高校生で将来はaiや機械学習を学ぼうと考えてるのですが、その一方で競プロにも興味があります。プログラミング自体への理解度を深める為競プロは役に立つという情報もありますが、ai開発が目標の場合も十分に有益でしょうか?初心者質問で申し訳ないです。
357351
垢版 |
2021/08/10(火) 01:59:49.68ID:2NkovIB1
>>355
なるほど、経緯から詳しくありがとうございます
アーキテクチャのマニュアルを確認します!
358デフォルトの名無しさん
垢版 |
2021/08/10(火) 08:36:33.20ID:vGxtUCly
>>356
いますぐAIと機械学習の勉強はじめるのが一番効率的
2021/08/10(火) 09:28:53.99ID:468EC6Yg
>>356
プログラミングは幅広い知識があるほうが有利
高校生なら時間ありそうだから競プロもやればいいよ
2021/08/10(火) 17:15:11.68ID:OMlKC5pQ
C++でゲームを作成してフレームごとにスクリーンショットをpythonのプログラムに送信しようと思っているのですが、
この際にスクリーンショットの受け渡し方法には何を選ぶと良いでしょうか?
TCP/IPで試していたところ1パケットの上限が65536で画像を転送するには取り扱いが不便だったので他の方法を探そうとしています
画像のサイズは最大でも8MB程度です
2021/08/10(火) 17:24:47.89ID:mO9F1ls8
C++からPythonの共有メモリ機能にアクセスする方法とかあるのか良くわからないけど
TCP/IPのデータは別に1パケットで渡さなければならない訳ではないよ
おりあえず「c++ python プロセス間通信」で検索してみて
2021/08/10(火) 18:46:04.80ID:9wi/dlAk
フレーム毎とは、1秒間に60回も処理するの?
Python では、そんなに速く処理できないでしょ

一旦、Amazon SQS, Redis, Memcached みたいなキューに入れてから、ゆっくり処理すれば?

>>351
LLVM も見た方がよい
2021/08/10(火) 18:49:39.04ID:beMLlP/1
>>360
もうちょっと詳しく書いた方が良いと思うよ
送信頻度とか、画像のサイズって全データの総量?フレーム単位の最大量?
シングルイベント時のスクリーンショットをPythonに渡すのと、60fpsで動作している
ゲームの全フレームをPythonに渡すのでは全然違うしね
後者は処理能力的に難しいと思うけど
2021/08/10(火) 19:00:12.07ID:OMlKC5pQ
>>361-363
ありがとうございます
やりたいこととしては60fpsで動作させたいのではなくて、1回の通信で1フレーム進める感じです
ゲームのキャプチャを送信(C++からpython) → pythonで解析して行うべき動作を決める → キー操作を送信(pythonからC++) → 操作を入れてゲームのフレームを進める
2021/08/10(火) 19:09:12.84ID:beMLlP/1
>>364
ということはパフォーマンスはかなり妥協できるのかな?
パフォーマンスは二の次で良いからお手軽にならテンポラリファイルが簡単そう
TCP/IP等のネットワークプロトコル経由でももちろん出来るかと。>>361氏も書いているけど
1パケットに収まらない分は自動で分割されて受け取った側で再結合される
ガチでやるなら「プロセス間通信」になるだろうね。PythonだとFFIでOSのAPIを叩く必要が
あるかもしれないけど
プラットフォームにもよるけど方法は結構あると思うよ。8MB程度ならクリップボードも使えるかも
2021/08/10(火) 19:40:17.30ID:8rfaPNuy
昔の大戦略的なやつかな
367デフォルトの名無しさん
垢版 |
2021/08/10(火) 20:48:06.38ID:PJ1bHB/F
簡単なのは
フォルダに投げてpyのwatchdogでバインドじゃね?
2021/08/10(火) 21:07:27.87ID:WX7p38hi
フォルダに投げてファイル名だけネットワークで通知するとか
2021/08/10(火) 23:58:22.82ID:OMlKC5pQ
すみません色々試してみたんですが、結局pythonからC++に通信が発生して同期もしたいのですべてTCP/IPでやることにしました
先頭4byteにデータサイズを送ることでファイルサイズの問題は解決しました
2021/08/11(水) 09:01:04.44ID:sOdrsbt7
>>334
リソースにアイコンファイルのファイル名を書く。
2021/08/11(水) 09:01:04.47ID:sOdrsbt7
>>334
リソースにアイコンファイルのファイル名を書く。
2021/08/11(水) 09:27:22.43ID:Z6PNV5dP
>>369
通信など待つだけのものはよく止まるから、同期処理しない。
非同期が基本

Amazon SQS, Redis, Memcached みたいなキューを使えば、前後の処理を疎結合にできる。
普通は、AWS SQS, Lambda などで、つないでいく
373デフォルトの名無しさん
垢版 |
2021/08/11(水) 13:09:21.50ID:AOLFMzC9
普通、生贄にするのは山羊だと思うんですが、生きた山羊が手に入らない場合、何を代わりにすれば良いのでしょうか?
最悪の場合、ヘビでもいいですか?
2021/08/11(水) 13:35:31.26ID:g1IYA5yx
3Dプリンターで山羊の像を作り、Arduinoを組み込んで啼かせなさい
2021/08/11(水) 14:08:00.91ID:pDQXM97a
メエ惑なこったな
2021/08/11(水) 14:35:56.54ID:g/sGqW8W
SMSでHTMLのレンダリングは不可能ですか?
URLを書けば勝手にハイパーリンクに置き換えてくれるのはわかるんですけど
もっとボタンとか画像とか置きたいです
2021/08/11(水) 15:12:48.01ID:PP6w+xfs
それは受信クライアント次第なんじゃね
2021/08/11(水) 18:33:18.37ID:g/sGqW8W
言われてみるとそりゃそうですね
379デフォルトの名無しさん
垢版 |
2021/08/12(木) 17:51:53.88ID:V5jOqTRS
デザインパターンの本(結城さんの本)を読んで、疑問に思う点があり質問させてください。

Brigeパターンの目的は「機能」(機能の定義)の階層と「実装」(機能の実装)の階層に分けることと理解しました。
Bridgeパターンを用いて「機能」の階層を拡張する(つまり、新たなメソッド追加)する場合は、
機能クラス(Abstraction)を継承したサブクラス(RefinedAbstraction)に実装が書く形になるかと思いますが、
これだと機能の階層と拡張分の実装が混在することとなり、分離ができていないように思えますが、
これは私の理解が誤っておりますでしょうか?
380デフォルトの名無しさん
垢版 |
2021/08/12(木) 18:27:09.99ID:7L6DqvbP
>>379
ノートパソコンのキーボードに10キーを付けるかどうか
とファンクションキー押す事で何が起きるかは別だよん
2021/08/12(木) 18:30:32.86ID:kHTfASj4
>>379
なんでもかんでも継承するんじゃなくて適宜委譲を使って継承関係をぶった切ろうぜという以上のものではないよ
後から実装を再利用したくなったときに委譲を選択したときに結果的にこういう構成になるだけ
2021/08/12(木) 18:40:58.12ID:hfCPkAL3
現在の角度と目標角度が与えられて時間経過で目標角度に近づくプログラムを作ろうとしています
角度は0<=角度<360の範囲で値を取るようにしているのですが、
現在の角度xから目標角度yに近づけるとき、単純に更新量を(y-x)*dtとすると、
例えば0度から350度に変化させたいとき遠回りになってしまいます
常に近い回転方向になるように更新量を決めるにはどうしたらよいでしょうか
2021/08/12(木) 18:49:16.44ID:sCucAs83
180より多かったなら360から引けば
2021/08/12(木) 19:00:28.21ID:2IJnEwav
結城本はデザインパターンを学ぶときに1番読んじゃダメな本
今読んでも「何なのこの解説はwww」って思っちゃう
385デフォルトの名無しさん
垢版 |
2021/08/12(木) 19:03:45.09ID:V5jOqTRS
>380, 381
コメントありがとうございます。
いただいたコメントといくつかの解説サイトを見て、自分なりに理解しました。
2021/08/13(金) 10:43:13.03ID:drxTNS6J
あーもうわかんね
AmazonのSNS、SQS、MQ、Pinpointってなにが違うんだ…
387デフォルトの名無しさん
垢版 |
2021/08/13(金) 12:30:53.25ID:WYN4Ytah
>>386
Amazon Simple Notification Service
フルマネージド型 pub/sub メッセージング、SMS、電子メール、およびモバイルプッシュ通知

Amazon Simple Queue Service
マイクロサービス、分散システム、およびサーバーレスアプリケーション用の
完全マネージド型メッセージキュー

Amazon MQ は、クラウド内でメッセージブローカーの設定や運用を簡単に行えるようにしてくれる、
WebSocket といったメッセージング向けの業界標準 API およびプロトコルに直接アクセスできます。
アプリケーション内のメッセージングコードを書き換える必要がないので、Amazon MQ に簡単に移行できます。

Amazon Pinpoint は柔軟でスケーラブルなアウトバウンドおよびインバウンドマーケティングコミュニケーションサービスです。
E メール、SMS、プッシュ、音声などのチャネルで顧客とつながることができます。
Amazon Pinpoint はあらゆるマーケティングコミュニケーションシナリオに柔軟に対応します。
2021/08/13(金) 12:32:26.60ID:drxTNS6J
>>387
完全に理解した
2021/08/13(金) 12:42:56.14ID:S8120IP7
皆、各サロンから、AWSのくろかわこうへいのサロンにも入っている

YouTube で有名な、雑食系エンジニア・KENTA のサロンの、AWS 部の大ボスとか、
やんばるCODE のRuby on Rails の守護神・たけとか、
Udemy のRails の神・はむさんとか、すごい人も来てる

くろかわこうへいのお勧め本

Amazon Web Services パターン別構築・運用ガイド 改訂第2版 (Informatics&IDEA)、
NRIネットコム株式会社、2018
2021/08/13(金) 13:49:49.15ID:ri3hZUm3
string_array = ["4000文字","4000文字","4000文字","4000文字"....x100000]

↑のような4000文字×10万程度の、大量の文字列データを含むデータを外部から受け取って
これらを1つずつ取り出して処理する場合、1度に配列内に入れてしまうと
メモリの消費量が多くなってしまう気がするのですが、メモリの消費量を減らすにはどうしたら良いでしょうか?

配列に入れずに、1度、テキストファイルとして保存して1行ずつ読んでいくとかの方が良いのでしょうか?
2021/08/13(金) 14:07:44.50ID:S8120IP7
動画みたいなStream。
1行ずつ読んで処理したら、メモリから捨てる

それか、Amazon SQS, Redis, Memcached みたいなキュー。
1つずつキューに投入して、キューから取り出して処理する
2021/08/13(金) 14:21:47.45ID:6H+1e2fK
まず全部一度に受け取らないといけないルールなのかどうかを最初に判断する
たとえば入り口がデータベースならカーソルという仕組みがある
2021/08/13(金) 16:18:07.80ID:ri3hZUm3
>>392
全てのjsonがネットワーク経由で一括で送られてくる仕様になっています
なので、一度に受け取った後に処理する感じです
394デフォルトの名無しさん
垢版 |
2021/08/13(金) 17:29:37.18ID:soDF4PG/
pythonだと典型的なyield(ジェネレーター)の使い所ネ
2021/08/13(金) 17:30:01.69ID:6H+1e2fK
parse対象のJSON文字列の時点でギガバイト級のメモリを食うね
1GBなら許容できるけどなるべく2GBにはしたくない、といった前提だと仮定する
配列に入れずにJSONをSAXっぽく読んで、処理結果のデータもメモリに溜め込まずに逐次出力するのがいいんじゃないかな
2021/08/13(金) 17:33:01.14ID:6H+1e2fK
ネットワーク経由で一括というけど、もしマルチパートなのだとしたら読みながら処理する
2021/08/13(金) 18:38:52.12ID:U7QB3I8T
メモリマップファイル
2021/08/13(金) 20:06:10.60ID:FT9FF6Ap
出力側がストリーミングできる形のJSONじゃないなら
一括処理するか文字列のストリームとして自力でパースする以外ない

自力パースの場合は前から読んでいって対象配列の開始終了位置や各要素の区切りの判別を自分でやることになる
面倒くさい上にJSONのフォーマット方法にも依存するので変更に対して脆弱

メモリ使用量が気になるなら
ストリーミングできる形を出力側に用意してもらうのが一番
2021/08/13(金) 23:01:54.74ID:KPM0TC/Z
[追加テーブル]
key,選択肢のkey,その他

[選択肢テーブル]
key,選択肢1,選択肢2,その他

1、ユーザーにセレクトボックスから選択肢1、2を選択してもらう
2、追加テーブルに選択肢1、2の組み合わせに応じた選択肢のkeyを登録

てのをやりたいんですが、

・[選択肢1+選択肢2]:[選択肢のkey]という連想配列を用意して取得する
・登録時にwhereで選択肢1&選択肢2からkeyを取得

くらいしか思いつきません
何かもっとこういい感じのあれありますか?
2021/08/13(金) 23:19:29.69ID:uSVPf0zU
>>399
選択肢テーブルは選択肢1,2を複合主キーとしてkeyは廃止
whereではなくjoinして使う
2021/08/14(土) 02:27:42.79ID:nbllDOVS
>>400
とりあえず複合主キーで考えてみます。
上の二つも結局は複合キーから主キーみたいな感じだし
それなら初めから複合主キーでやる方が簡単か。
2021/08/14(土) 17:04:57.95ID:aiChFsUR
[選択肢1+選択肢2]の組み合わせが主キーなのか属性なのかは扱うデータの中身による

例えばピザを注文する時のサイズ(S/M/L)と生地の種類(レギュラー/クリスピー/パン生地)の組み合わせは
冷凍生地の管理IDに紐付いてるから主キーじゃなくて属性
2021/08/14(土) 18:20:20.49ID:+tGlLYFV
macでsafari使ってるんですが広告消すプログラムとか初心者でも書けますか?
htmlやjavascriptをいじるのか、starling等を使ってバイナリごと書き換えるのか・・・
広告ブロッカー色々試したけどどれも使えなかったので自分で作れたら作りたいです
2021/08/14(土) 18:23:56.99ID:Hh1U6c2M
>>403
そんなもんDNSサーバーをAdGuardやNextDNSのサーバーに変えるだけだぞ
特別なソフトなんか要らん
2021/08/14(土) 18:59:43.71ID:xURSQPzn
>>402
それは冷凍生地の管理IDを選択肢テーブルのキーにすべきか検討する話
2021/08/14(土) 19:09:06.74ID:SYbiUcuB
多分ブロックしたい要素をdisplay:none!importantしたcssをユーザースクリプトで読み込ませればいけると思う
2021/08/14(土) 19:21:39.98ID:YGU1QZEs
>>399
選択肢 = 選択肢Repository.findBy選択肢1選択肢2(入力選択肢1, 入力選択肢2);

if (選択肢) {
追加.選択肢のkey = 選択肢.key;
追加Repository.register(追加);
}
2021/08/14(土) 22:01:29.86ID:aiChFsUR
>>403
とりあえずWWDCの動画見るといいと思う
https://developer.apple.com/videos/play/wwdc2020/10665/
https://developer.apple.com/videos/play/wwdc2021/10027/
409403
垢版 |
2021/08/15(日) 12:07:38.93ID:7jmgCbrR
>404
>406
>408
ありがとうございます
全部調べたり試してみます
410デフォルトの名無しさん
垢版 |
2021/08/16(月) 10:13:10.88ID:BL5W3h54
「エスケープシーケンス」と「制御文字」ってIT業界では同じ意味で使われてますか?
411デフォルトの名無しさん
垢版 |
2021/08/16(月) 10:58:16.81ID:BL5W3h54
ファイルの場所を示す方法で、絶対パス表記の場合ドットは使わないですか?
.←これです
2021/08/16(月) 11:21:37.38ID:y8NmmMtj
>>410
違う意味で使われています
エスケープシーケンスは後続文字に特殊な意味を与える記号と、後続文字との組み合わせ
制御文字は改行やタブ、ベルなど、文字として表されないキャラクターコード

エスケープシーケンスの特殊記号のことを広義の制御文字として会話で使う人もいる
control codeではないので対訳の制御文字を使うのは厳密に正しい用法ではない
けどいちいちそれって誤用ですよねと議論するのもバカバカしい程度
2021/08/16(月) 11:22:12.11ID:y8NmmMtj
>>411
拡張子やドットファイルの名前に含まれるね
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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