問題タブ [d]

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.

0 投票する
2 に答える
572 参照

qt - Qt でペイントされたコンテンツが失われる

私は情報画面プログラムを書いています。フルスクリーン ウィジェットを作成し、その上にコンテンツを描画します。

TFT ディスプレイ デバイスの寿命を延ばすために、ピクセル シフト機能を実装したいと考えています。つまり、 X分ごとに、 Yピクセル分、画面を左/右/上/下にシフトします。

私のアプローチは次のとおりです。

  1. 2 つのレイヤー (2 つの QWidget) を使用します。
  2. 一番上のレイヤーにコンテンツをペイントします。
  3. ピクセルシフトが実行されると、指定されたオフセットの最上層を移動するだけです。
  4. そして、一番下のレイヤーに背景色を塗りつぶします。

ただし、問題が見つかりました:

最上層を 10 ピクセル上に移動すると、10 ピクセルのコンテンツが画面からはみ出してしまいます。しかし、このレイヤーを10ピクセル下に移動すると. 10 ピクセルのコンテンツは更新されず、なくなりました。

これらの 10 ピクセルのコンテンツを保持するにはどうすればよいですか? この問題を解決する魔法のウィジェット フラグはありますか?

更新 1: コードは言語 D で書かれていますが、理解しやすいです。

0 投票する
9 に答える
31931 参照

c# - 合理的に健全な HTML からテキストを抽出する方法は?

私の質問はこの質問のようなものですが、さらに制約があります:

  • 私は文書がかなり正気であることを知っています
  • それらは非常に規則的です(それらはすべて同じソースから来ました
  • 表示されるテキストの約 99% が必要です
  • 実行可能なものの約 99% はテキストです (それらは多かれ少なかれ HTML に変換された RTF です)。
  • 書式設定や段落の区切りも気にしません。

これを行うために設定されたツールはありますか、それとも RegexBuddy と C# を分解したほうがよいでしょうか?

コマンド ラインやバッチ処理ツール、C/C#/D ライブラリにオープンです。

0 投票する
1 に答える
79 参照

d - ディレクトリを設定しています。dsss を使用した構造

私はdsssでディレクトリ構造をセットアップしようとしています:

ディレクトリで正しく動作dsss.confしていません。./proj

そのような構造をより適切にセットアップする方法に関する詳細情報をどこで入手できるかについてのアイデア。フォルダ構造情報を配置する適切な場所が見つかりません。

私が達成しようとしている主なことは、dsss によって生成されたファイルを./objおよび./binディレクトリにのみ保持することです。

0 投票する
7 に答える
7363 参照

algorithm - 標準数学関数のアルゴリズムはどこにありますか?

言語のコンパイル時関数評価機能を使用して、コンパイル時に std.math の多くを評価できるようにする D プログラミング言語標準ライブラリにパッチを提出しようとしています。コンパイル時の関数評価にはいくつかの制限がありますが、最も重要なものは次のとおりです。

  1. アセンブリ言語は使用できません。
  2. C コードまたはソースが利用できないコードを呼び出すことはできません。

いくつかの std.math 関数はこれらに違反しており、コンパイル時のバージョンを作成する必要があります。対数、指数、累乗、三角関数などを計算するための優れたアルゴリズムに関する情報はどこで入手できますか? 私は、次の 2 つの理由から、実際のコードよりもアルゴリズムの高レベルの説明だけを好みます。

  1. 法的なあいまいさを回避し、著作権を所有していることを確認するために、コードをソースと「十分に異なる」ように見せる必要を避けるため。

  2. シンプルで移植可能なアルゴリズムが必要です。少なくとも漸近的に効率的である限り、マイクロ最適化は気にしません。

編集: D のコンパイル時の関数評価モデルでは、コンパイル時に計算された浮動小数点の結果が実行時に計算された結果と異なる場合があるため、コンパイル時のアルゴリズムが実行時のバージョンとまったく同じ結果を返さなくてもかまいません。実際にかなりの程度まで精度が低下しない限り。

0 投票する
5 に答える
4861 参照

floating-point - 文字列を完全な精度で浮動小数点数に変換する方法は?

C の strtold への呼び出しを置き換えるために、D プログラミング言語で関数を作成しようとしています。(理論的根拠: D から strtold を使用するには、D 文字列を C 文字列に変換する必要がありますが、これは非効率的です。また、コンパイル時に strtold を実行することはできません。)最下位ビットの精度がいくらか失われるようです。

アルゴリズムの興味深い部分のコードを以下に示します。精度の低下の原因はわかりますが、それを取り除く方法はわかりません。(読みやすくするために、コア アルゴリズムに関係のないコードの多くの部分を省略しました。) string-to-float アルゴリズムは、結果が IEEE 番号にできるだけ近いことを保証します。行を文字列で表される値に変更します。

また、古いバージョンの単体テストを使用しています。これは次のようなことを行いました。

私の関数によって生成される答えは、浮動小数点リテラルを解析するときにコンパイラが生成する表現よりも実際には正確である可能性がありますが、コンパイラ (C++ で記述されている) は常に strtold と正確に一致します。浮動小数点リテラル?

0 投票する
5 に答える
865 参照

coding-style - 重い関数呼び出しのネスティングの可読性?

頻繁にネストされた関数呼び出しは読み取り不能であるため、使用すべきではないと主張しているのをよく見ました。ただし、代わりに一時変数を使用すると、多くの不必要な冗長性が作成され、読者は各一時変数をそれが表すものに精神的にリンクする必要があります。Lisp コードが一般的にフォーマットされている方法を見て、入れ子を反映するようにフォーマットすると、ネストされた関数呼び出しを実際に非常に読みやすくすることができることに気づきました。例えば:

ネストされた関数形式で最初の例のようなものを書くことは、私見ですが、より手続き型のコードで次のことを行うことと同等です。

どちらの場合も、本当の問題は不適切なフォーマットであり、過度のネストではありません。適切にフォーマットされたネストされた関数バージョンと一時変数バージョンの読みやすさ/わかりやすさをどのように評価しますか? 最大の読みやすさのためにフォーマットされていても、重い関数呼び出しの入れ子は悪いスタイルだと思いますか? もしそうなら、なぜですか?

0 投票する
3 に答える
546 参照

python - 連想行列?

私は、2つの文字列キーでインデックス付けされた数値の行列を格納する必要があるプロジェクトに取り組んでいます。マトリックスはギザギザではありません。つまり、任意の行に列キーが存在する場合は、すべての行に存在する必要があります。同様に、行キーがいずれかの列に存在する場合は、すべての列に存在する必要があります。

これを表現する明白な方法は、連想配列の連想配列を使用することですが、これは厄介で非効率的であり、ギザギザのないプロパティを強制しません。人気のあるプログラミング言語は、言語に組み込まれている、または標準ライブラリの一部として関連付けられたマトリックスを提供していますか?もしそうなら、APIと実装レベルの両方でどのように機能しますか?このプロジェクトではPythonとDを使用していますが、APIを調べて、PythonまたはDで同様のものを実装するための最良の方法を見つけることができるため、他の言語の例も引き続き役立ちます。

0 投票する
5 に答える
1188 参照

multithreading - (いつ) 並列ソートが実用的になり、効率的なものをどのように作成しますか?

D プログラミング言語の並列化ライブラリに取り組んでいます。基本的なプリミティブ (並列 foreach、map、reduce、タスク/フューチャー) にかなり満足しているので、より高レベルの並列アルゴリズムについて考え始めています。並列化のより明白な候補の中にソートがあります。

私の最初の質問は、並べ替えアルゴリズムの並列化されたバージョンは現実の世界で役立つのか、それともほとんど学術的なものなのかということです。それらが役立つ場合、どこで役立ちますか? 私が個人的に仕事でそれらを使用することはめったにありません。単純に、単一の sort() 呼び出しよりもはるかに粒度の粗いレベルの並列処理を使用して、すべてのコアを 100% に固定するためです。

第二に、大規模な配列の場合、クイックソートはほとんど恥ずかしいほど並列であるように見えますが、得られるはずであると信じているほぼ線形のスピードアップを得ることができません。クイック ソートの場合、本質的にシリアルな部分は最初のパーティションだけです。各パーティションの後で、2 つのサブアレイを並列にソートすることで、クイック ソートを並列化してみました。簡略化された疑似コードでは:

最初のパーティションにかかる時間が無視できる非常に大きな配列の場合でも、アルゴリズムの純粋なシリアル バージョンと比較して、デュアル コアでは約 30% の高速化しか得られません。ボトルネックは共有メモリアクセスだと思います。このボトルネックを解消する方法、またはボトルネックが他に何であるかについての洞察はありますか?

編集:私のタスクプールには、システム内のコア数から1を引いた数に等しい固定数のスレッドがあります(メインスレッドも機能するため)。また、私が使用している待機のタイプは作業待機です。つまり、タスクが開始されたが終了していない場合、スレッド呼び出しworkWait()はプールから他のジョブを盗み、待機中のジョブが完了するまでそれらを実行します。タスクが開始されていない場合は、現在のスレッドで完了します。これは、待機が非効率的ではないことを意味します。実行する作業がある限り、すべてのスレッドはビジー状態になります。

0 投票する
3 に答える
2673 参照

d - D言語用の無料の3Dゲームエンジンを探しています

DevMaster.net では、RealmForge しか見つかりませんでした。これが唯一の選択肢ですか?C/C++ ゲーム エンジンは D に適していますか? はいの場合、彼らと協力するにはどのような困難を克服する必要がありますか?

0 投票する
4 に答える
1367 参照

c++ - double を 8 バイト境界に揃えますか?

頻繁にアクセスされるすべてのスタック割り当て double が 8 に整列されるようにするために、数値コードに一般的な移植可能なイディオムがありますか (私は D で書いていますが、言語に依存しない C および C++ の回答も私に役立ちます)。 -バイト境界?私は現在、スタックに割り当てられた倍精度浮動小数点数 (4 バイト境界でのみ整列) が正しく整列されていないために、約 1.5 倍から 2 倍のパフォーマンス ヒットを引き起こしているいくつかの数値コードを最適化しています。