問題タブ [high-level]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - 高レベルのテストを行っている方法よりも優れた代替手段を持つことは可能ですか?
まあ、私はテストにまったく慣れていませんが、プログラミングを次のレベルに引き上げて、テストを開始したいと思います。単体テストではなく、高レベルのテストです。たとえば、次のようにします。ジョブを挿入し、結果で入力を確認して有効かどうかを確認します。または別の例: ジョブを挿入し、ワーカー X がそれを開始しました。ここで、ジョブとワーカーの両方のプロパティをチェックして、それらが有効な状態にあるかどうかを確認します。
しかし、これは非常に複雑なので、各テストで環境とインスタンスを実行することを考えていました。各環境はサーバーのインスタンスを作成し、空のデータベースを割り当てて作業します。
たとえば、開始ジョブの高レベルのケース:
この例は、実際には非同期コールバックを使用するため、非常に単純化されています。
environmentValidator は、環境からのデータを使用して、ジョブが有効な状態にあるかどうかを確認します。また、たとえば、ジョブで作業しているワーカーを取得して、状態がビジーかどうかを確認します。
しかし、私はこれが非常に優れているとは思いません。私はテストの作成を始めたばかりなので、これらの高レベルのテストを行う方法を改善できるかどうか尋ねます.
また、そのようなテストのための既存のフレームワークがあるかどうかを知りたいですか?
ありがとう
実際のコードですが、ジョブを挿入した後の状態を確認するためだけです:
そして検証ファイル:
networking - メッセージ送信デッドロックの TCP 仕様
私は TCP の高レベルの理解を得ようとしていますが、混乱するポイントに達しています。
接続されているサーバー S とクライアント C があるとします。
S が C にメッセージをプッシュした場合、C がメッセージが送信されたことに気付く前に、S にもメッセージをプッシュします。
現在、S はメッセージ ACK を待っており、C も ACK を待っている状態です。
仕様はこの種のデッドロックをどのように回避していますか? オンラインのリソースの多くは、特定の実装の詳細をすぐに説明しますが、代わりに、これらのデッドロックがどのように処理されるかについての高レベルの説明を見つけようとしています.
(答えはバッファリングに関係していると思いますが、トピックに関する特定の情報は見つかりませんでした。)
high-level - eeprom で使用する高水準言語をコンパイルできますか?
eeprom で使用する高レベルのプログラミング言語をコンパイルできるかどうかを知る必要があります。コンパイルされたバイナリからヘッダーを削除できることは知っていますが、アドレスがどのように影響を受けるかはわかりません。
これを「質問ではない」とマークしないでください。私はこのサイトで、ばかげた質問と質問ではない何かとの違いを見分けられない人々から、多くの愚痴をこぼします。
eeprom で使用する高水準言語をコンパイルできますか?
(編集) Winbond 27C512 EEPROMを視野に入れています。
performance - 実行時間、高水準プログラミング言語と低水準プログラミング言語
高水準プログラミング言語と低水準プログラミング言語の間の実行時間について話すとき、低水準言語は高水準言語よりもパフォーマンスが少し優れているとよく耳にします。
もちろん、プログラマーやアルゴリズムによっては、低レベルが高レベルよりもパフォーマンスが低下する可能性があります。しかし、さまざまなタスクを実行するために必要な最小限のコードを使用する場合. 異なる言語の抽象化レベルにより、実行時間に違いが生じることが最も多いでしょうか?
また、この種のトピックに関する良い本を誰か知っていますか?
matlab - 変化するカウンターで値を平均化するこのループを実装する正しい方法は何ですか?
この質問への回答をインターネットで徹底的に調べましたが、他の場所での回答には具体的すぎるようです。これが私の最後の停留所です。
はじめに、これは宿題の問題ではありませんが、クイズに合格したオンライン Coursera コースを基にしています。正解は出ましたが、ほとんど運でした。また、これはコースに関連するものというよりは、プログラミングに関する一般的な質問であるため、公開フォーラムで質問する権利があることは承知しています。
最後に、MatLab でこれを実行しようとしています。ただし、C++、Python、またはその他の高水準言語での回答がある場合は、それらのソリューションを MatLab 構文に簡単に適応させることができるので、それは素晴らしいことです。
ここにあります:
T と M の 2 つのベクトルがあり、それぞれに 600,000 の要素/エントリ/整数があります。
T は昇順で 1 から 600,000 までのミリ秒として入力され、M の各要素は、T の対応する各ミリ秒エントリの「オン」または「オフ」(それぞれ 1 または 0 として入力) を表します。 T で 1 ~ 600,000 の特定のミリ秒に対応する M。
T の 150 ミリ秒から始めて、そこから 150 要素/ミリ秒単位で (包括的に)、150 のグループの平均ミリ秒値を取得する必要がありますが、エントリが M で 1 であるミリ秒のみです ('on ')。たとえば、T の最初の 150 ミリ秒を見て、M の値が 1 であるミリ秒を確認し、それらを平均化する必要があります。次に、T のエントリ 151 から 300、次に 301 から 450 などでもう一度実行する必要があります。これらの新しい平均も新しいベクトルに格納する必要があります。問題は、M の対応する 1 の数が、T の 150 ミリ秒のすべてのグループで同じにならないことです (そして、ミリ秒の実際の値を平均しようとしているので、使用している値はT のエントリの順序は同じになります)。
私の試み:
M には 53,583 個のランダムな 1 しかないことがわかります (600,000 個のエントリのうち、残りは 0 です)。「検索」演算子を使用して、M から 1 であるエントリを、T に対応するミリ秒値を持つ新しいベクトル K に抽出しました。そのため、K は昇順の乱数の束のように見えます。これは単なるリストです。 「オン」になっている T のすべてのミリ秒 (M に 1 が割り当てられます)。
したがって、K は [2 5 11 27 39 40 79 ...... 599,698 599,727 など] (M の 1 であるすべてのミリ秒値) のようになります。
したがって、150 のグループで平均する必要があるすべての値であるベクトル K がありますが、問題は、ベクトル T (1 から 600,000) に基づいて 150 のグループに入る必要があることです。 T の 150 ミリ秒のすべてのグループで常に同じ数の 1 (または K の値) になるとは限りません。つまり、各グループの平均を得るために割る必要がある数は、 150. 150 エントリごとに平均ミリ秒値を計算するためにループを使用する必要があることはわかっていますが、分割数 (1 または「オン」が割り当てられた 150 の各グループのエントリ数) を取得するにはどうすればよいですか?ループの反復ごとに変更しますか? T と M をバインドして、M に 1 がある場合は常に K からの必要な値のみを使用し、単純なカウンターを使用して平均化する方法はありますか?
複雑な問題ではありませんが、説明するのは非常に困難です。ごめんなさい!できる限り明確に説明したいと思います。最初に質問があると思いますが、どんな助けもいただければ幸いです。
どうもありがとうございました!
webgl - 3D フォトリアリスティック レンダリング: 拡散、レイ トレーシング
部屋のインテリアの写真のようにリアルな静的レンダリングを作成したいと考えています。オープンソースのレンダラーにどのようなオプションがあるか知りたいです。すばやくレンダリングする必要はありません。最初にスケッチアップとフォト レンダラー プラグインを試してみましたが、費用がかかり、プログラミングでできることと比べて扱いにくく、機能と品質が行き当たりばったりのようです。次の機能が必要です。
拡散
- 例: 半透明のすりガラス
素材の色合い
- 例: 着色された車の窓
反射
- 鏡のようなもの: 例: 半反射性で滑らかな表面を持つ色付きの素材
- 壁に反射する点光源によって生成される環境光などの拡散反射
影
- 例: ソフト エッジの影を生成するオブジェクトの非ポイント ライト シャドウ
私の好みのソリューションは、WebGL でプログラムすることです。それは上記のことを行うことができますか?私は特に、プログラミングが簡単な高レベルのライブラリまたは同様のものに熱中しています。
ありがとう
python - Pythonでブール演算よりもビット演算を使用する利点は何ですか?
Python のような高水準言語でビット単位の演算子を使用する理由を理解するのに苦労しています。高水準言語と低水準言語について私が学んだことから、高水準言語は通常、コンピューターに入るマシン コードについてあまり心配する必要がないように設計されているということです。私の知る限り、それを避けるように設計された言語でプログラムを少しずつ操作する意味がわかりません。
graphics - 純粋に愛好家向けのレンダリング エンジンの作成に関する提案の募集
OpenGL ES 2.0 を使用して、単純なレンダラーを独自に作成しました。基本的に、これは特定のスプライト テクスチャに従ってクワッドをレンダリングするための単なるクラスです。詳しく説明すると、四角形を表すオブジェクトを受け入れるのは、実際には 1 つのオブジェクトにすぎません。各クワッド オブジェクトは、ワールド トランスフォームおよびオブジェクト トランスフォーム マトリックスを維持し、指定されたフレーム数にわたってそれらをトランスフォームするためのメソッドを提供し、スプライトへのテクスチャ オフセットも指定します。このクワッド クラスは、行列に対して実行する変換操作のリストも保持します。レンダラー クラスは、クワッドからこれらすべてのプロパティを読み取り、VBO を設定してレンダー リスト内のすべてのクワッドを描画します。
例えば:
実装の観点から、各フレームで、命令に従って各オブジェクトのベース頂点を変換し、アルファ値に関する情報を含む VBO にそれらすべてをロードし、シェーダー プログラムに渡してすべてのクワッドを一度に描画します。
これは明らかに私がレンダリング エンジンと呼ぶものではありませんが、3D ジオメトリの代わりに 2D クワッドをレンダリングするためだけに同様のタスクを実行します。その場しのぎのレンダリング エンジンを開発するための正しい軌道に乗っているかどうかについては、ただ興味があります。ほとんどの場合、確立されたレンダリング エンジンを使用してそれらを理解することは素晴らしいことだと思います。それがどのように機能するかを学びます。