問題タブ [dataflow]
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.
operators - この言語機能は既に存在しますか?
私は現在、継続的な環境でプログラミングするための新しい言語を開発しています (電気工学と比較してください)。特定の言語構築についていくつかのアイデアがあります。
機能を説明で説明し、次に定義で説明しましょう。
ここx
で は変数で、a
とb
は他の変数 (または静的値) です。a
これはとの間の結合のように機能しb
ます。重複も特定の順序もありません。
上記では、すべてのコードブロックが実行されますが、「スコープ」は各ブロックでどのようx
に解釈されるかが変わります。最初のブロックでx
は、 であることが保証されていますa
: したがって、x
そのブロック内での相互作用は で相互作用しa
ます。2 番目と 3 番目のコード ブロックは、この状況でのみ等しくなります (なぜならnot a
: しか残っていないからですb
)。x
最後のブロックは、少なくともa
またはであることを保証しb
ます。
さらに; U
は「ビットごとの or 演算子」ではありませんが、「and/or」演算子と呼んでいます。その定義は次のとおりです。
(私のブログhttp://cplang.wordpress.com/2009/12/19/binop-and-or/には、この演算子に関する (数学的な) 背景情報があります。集合に大まかに基づいています。異なる構文を使用すると、この質問で変更しました。)
更新: より多くの例。
Update2: より多くの例といくつかのコンテキスト。
背景情報: Java が「プラットフォームに依存しない」ように、「時間に依存しない」言語を構築しています。言語で述べられていることはすべて「そのまま」であり、継続的にアクティブに実行されます。これの意味は; プログラマーは、要素がどの順序で (構造を使用して明示的に記述されていない限り)、いつステートメントが実行されるかを知りません。言語は「時間」の概念から完全に分離されています。つまり、継続的に実行されます。
更新 3:
この言語機能の種類を熟考した後。これは、Netbeans プラットフォームの Lookup によく似ています。ここで、同期されたエージェントの各「with」ステートメントは、オブジェクトの特定の「フィルター」に取り組んでいます。型ベースではなく、変数ベースです (基本的にはまったく同じで、オブジェクトを識別する方法が異なるだけです)。
非常に洞察に満ちた情報と、私が研究できる素晴らしいトピックへのリンク/ヒントを提供してくれた皆さんに心から感謝します. ありがとう。
この構造がすでに存在するかどうかはわかりません。それが私の質問です。この言語機能はすでに存在しますか?
java - Java 同時実行 API を使用して動的データフローをモデル化する手法
EDIT:これは基本的に「Javaでデータフローエンジンを適切に実装する方法」の質問であり、これは単一の回答では適切に答えられないと感じています(「ORMレイヤーを適切に実装する方法」を尋ねて、誰かにHibernate などの詳細を書き出してください)、この質問は「閉じた」と考えてください。
Javaで動的データフローをモデル化するエレガントな方法はありますか? データフローとは、さまざまな種類のタスクが存在することを意味し、これらのタスクは任意に「接続」できます。たとえば、タスクが終了すると、終了したタスクの出力を入力として後続のタスクが並列に実行されたり、複数のタスクが終了したときにそれらのタスクが実行されたりします。出力は後続タスクに集約されます (フローベースのプログラミングを参照)。動的とは、タスクが終了したときの後続タスクのタイプと数が、その終了したタスクの出力に依存することを意味します。たとえば、タスク A は、特定の出力がある場合はタスク B を生成する可能性がありますが、ある出力がある場合はタスク C を生成する可能性があります。別の出力。別の言い方をすれば、各タスク (または一連のタスク) が次のタスクを決定する責任があるということです。
Web ページをレンダリングするためのサンプル データフロー: タスクの種類として、ファイル ダウンローダー、HTML/CSS レンダラー、HTML パーサー/DOM ビルダー、画像レンダラー、JavaScript パーサー、JavaScript インタープリターがあります。
- HTML ファイルのファイル ダウンローダ タスク
- HTML パーサー/DOM ビルダー タスク
- 各埋め込みファイル/リンクのファイル ダウンローダ タスク
- 画像の場合、画像レンダラー
- 外部 JavaScript の場合、JavaScript パーサー
- JavaScript インタープリター
- それ以外の場合は、HTML パーサー タスクの一部の var/field に格納するだけです
- 各埋め込みスクリプトの JavaScript パーサー
- JavaScript インタープリター
- 上記のタスクが完了するのを待ってから、HTML/CSS レンダラー (明らかに最適または完全に正しいわけではありませんが、これは簡単です)
- 各埋め込みファイル/リンクのファイル ダウンローダ タスク
- HTML パーサー/DOM ビルダー タスク
私は、ソリューションが何らかの包括的なフレームワークである必要があると言っているわけではありません (実際、JDK API に近いほど良いです)。重量級のものは、Spring Web Flow や宣言型マークアップ、その他の DSL などとはまったく異なります。 .
より具体的に言うと、Callables、Executors、ExecutorCompletionServices、およびおそらくさまざまなシンクロナイザー クラス (Semaphore や CountDownLatch など) を使用して Java でこれをモデル化する良い方法を考えようとしています。いくつかの使用例と要件があります。
- タスクが実行されるエグゼキューターについて、仮定をしないでください。実際、簡単にするために、エグゼキュータが 1 つしかないと仮定します。これは固定スレッド プールのエグゼキュータである可能性があるため、単純な実装ではデッドロックが発生する可能性があります (たとえば、別のタスクをサブミットし、そのサブタスクが完了するまでブロックするタスクを想像してください。これらのタスクのいくつかがすべてのスレッドを使い果たしていると想像してください)。
- 簡単にするために、データがタスク間でストリーミングされないと仮定します (タスク出力 -> 後続タスク入力)。終了タスクと後続タスクは一緒に存在する必要がないため、後続タスクへの入力データは、前のタスク (既に完了しているため)。
- データフロー「エンジン」が処理できる操作は、次の 2 つだけです。
- タスクがより多くのタスクをキューに入れることができるメカニズム
- 必要なすべての入力タスクが完了するまで、後続タスクがキューに入れられないメカニズム
- フローが終了するまでメイン スレッド (またはエグゼキュータによって管理されていない他のスレッド) がブロックされるメカニズム
- 特定のタスクが完了するまでメイン スレッド (またはエグゼキュータによって管理されていない他のスレッド) がブロックされるメカニズム
- データフローは動的 (タスクの入力/状態に依存) であるため、これらのメカニズムのアクティブ化はタスク コード内で発生する必要があります。
- データフローの「内部」は、タスク (Callable) 自体に公開しないでください。上記の操作のみをタスクで使用できるようにする必要があります。
- データのタイプは、すべてのタスクで必ずしも同じではないことに注意してください。たとえば、ファイル ダウンロード タスクは、入力としてファイルを受け入れますが、文字列を出力します。
- タスクがキャッチされていない例外 (すべてのデータフロー処理を停止する必要がある致命的なエラーを示す) をスローした場合、できるだけ早くデータフローを開始したスレッドまで伝播し、すべてのタスク (または致命的なエラー ハンドラーのようなより手の込んだもの) をキャンセルする必要があります。
- タスクはできるだけ早く開始する必要があります。これは、前の要件とともに、単純な Future ポーリング + Thread.sleep() を排除する必要があります。
- おまけとして、タスクが終了するたびに、または最後のタスクが終了してから X 時間が経過したときに、データフロー エンジン自体に何らかのアクション (ログ記録など) を実行させたいと考えています。何かのようなもの:
ExecutorCompletionService<T> ecs; while (hasTasks()) { Future<T> future = ecs.poll(1 minute); some_action_like_logging(); if (future != null) { future.get() ... } ... }
Java 同時実行 API を使用してこれらすべてを行う簡単な方法はありますか? または、JDK で使用できるものを使用しても複雑になる場合、要件を満たす軽量のライブラリはありますか? 私はすでに、私の特定のユース ケースに適合する部分的なソリューションを持っています (私は 2 つのエグゼキューターを使用しているため、ある意味でごまかしています。ご存じのとおり、上記の Web ブラウザーの例とはまったく関係ありません)。より汎用的で洗練されたソリューションを見たいと思っています。
ssis - SSIS Data Flow で '0.00' をフラット ファイルに入れるにはどうすればよいですか?
ADO.NET データ ソース (小さなテーブルのみ) を受け取り、select * クエリを実行し、クエリ結果をフラット ファイルに出力するデータ フローを備えた SSIS パッケージがあります (テーブル全体をプルすることも試みました)。 SQL select を使用しない)。
問題は、データ ソースが Money データ型の列を取得し、値が 0 でない場合はテキスト フラット ファイルに問題なく ('123.45' のように) 取り込まれますが、値が 0 の場合は表示されることです。宛先フラット ファイルでは「.00」として。先頭のゼロをフラット ファイルに戻す方法を知る必要があります。
通貨や文字列など、(フラット ファイル接続マネージャーで) 出力用にさまざまなデータ型を試しましたが、効果がないようです。
次のように、select で case ステートメントを試しました。
(それでも結果は「.00」になります)
私はこのようなバリエーションを試しました:
(それでも結果は '.00' になります)
と:
(結果は「.000000000000000000」)
このばかげた小さな問題は私を殺しています。ゼロの Money データ型データベース値を「0.00」としてフラット ファイルに取得する方法を誰か教えてもらえますか?
concurrency - データフローの同時実行性の良い動機付けの例は何ですか?
私はデータフロープログラミングの基本を理解しており、Clojure API、Jonas Bonerからの講演、GroovyのGParsなどで少し遭遇しました。Ioのような言語で普及していることは知っています(Ioについては勉強していませんが)。
私が見逃しているのは、並行プログラムを構築する際のパラダイムとしてデータフローを気にする説得力のある理由です。可変状態+スレッド+ロックモデル(Java、C ++などで一般的)やアクターモデル(ErlangまたはScalaで一般的)などの代わりにデータフローモデルを使用するのはなぜですか?
特に、上記の言語(およびScalaとRuby)でのライブラリのサポートについては知っていますが、このモデルのポスターチャイルドユーザーである単一のプログラムまたはライブラリについては知りません。誰が使っていますか?なぜ彼らは私が言及した他のモデルよりもそれが良いと思うのですか?
ssis - SSIS での条件付き分割の結果の処理
データ フロー タスクがあり、データを抽出するために OLE DB ソース コンポーネントを介してデータベースに接続しています。このデータは条件付き分割コンポーネントにフィードされ、単純な式に基づいてデータが分離されます。
この式の評価後、データは LocationA または LocationB の 2 つの場所のいずれかに配置されます。
よし、これですべての設定が完了し、正常に動作するようになった。データがこれら 2 つの場所に分離されると、レコードに対して追加の処理が実行されます。
ここで行き詰まっています。LocationB のレコードを処理する前に、LocationA のレコードを処理する必要があります。
どのタスクが他のタスクよりも優先されるかを設定する方法はありますか? そうでない場合、これを処理する最善の方法は何ですか? LocationA と LocationB のデータをデータベースに書き戻し、制御フローで新しいデータ フロー タスクを作成して、これらのレコードを処理する順序を処理する必要があるかもしれないと考えていました。
どんな助けでも大歓迎です!
c - C のデータフロー用ライブラリ
C でデータフロー (パイプとフィルター、ストリーム処理、フローベース) を行うにはどうすればよいですか? UNIXパイプではありません。
最近stream.pyに出会いました。
ストリームは、データフロー プログラミングと簡単な並列化を可能にするパイプライン メカニズムを備えたイテラブルです。
アイデアは、イテラブルを別のイテラブルに変換する関数の出力を取得し、それを別のそのような関数の入力としてプラグインすることです。関数合成を使用して既にこれを行うことができますが、このパッケージは >> 演算子をオーバーロードすることで洗練された表記法を提供します。
この種の機能の単純なバージョンを C で複製したいと考えています。特に、>>
関数構成の混乱を避けるために、演算子のオーバーロードが気に入っています。ウィキペディアは、1990 年の Usenet の投稿からこのヒントを指摘しています。
なぜC?マイクロコントローラーや他の高級言語 (Max、Pd*、Python) の C 拡張機能でこれを実行できるようにしたいからです。
* (Max と Pd が特にこの目的のために C で書かれていることを考えると、皮肉なことに – 私は必要最小限のものを探しています)
import - Magentoでのカテゴリのインポートが遅い
高度なプロファイルを使用して6Kカテゴリをインポートするためのカスタムアダプタを作成しました。インポートが遅すぎます。レコード数を1から5に増やしてみましたが、役に立ちません。カテゴリを保存する前に、-> setDisplayMode($ dispMode)と-> setIsMassupdate(true)も使用してみましたが、役に立ちません。
物事をスピードアップする方法はありますか?
magento - 管理製品グリッドからcsvに製品をエクスポートする
製品のインポートプロファイルを使用すると、エクスポートする製品を名前、SKUでフィルタリングできます...製品の管理ページで同じ機能を使用したいと思います。管理者はグリッド内の製品をフィルタリングし、[エクスポート]ボタンをクリックしてフィルタリングされた製品を取得します。
「エクスポート」ボタンを追加するにはどうすればよいですか?どのテンプレート/ブロックをオーバーライドする必要がありますか?管理者がボタンをクリックしたときに、フィルタリングされたコレクションを取得するにはどうすればよいですか?フィルタリングされたコレクションをcsvファイルにエクスポートするにはどうすればよいですか?そのためにデータフローを使用できますか?
ありがとう
video - Magento-モジュールVSデータフロー
Magento-モジュールVSデータフロー
---- MagentoDataFlowを使用してdbから情報を抽出し、ビデオCMSと連携させる可能性を検討しています。
開発時間を節約できるかもしれませんし、そうでないかもしれません。
より安定している可能性があります-またはそうでない可能性があります。
問題は、コアをハッキングしないモジュールとしてビデオシステムをマグネトに緊密に統合するか、データベースを直接クエリする方が良いかどうかです。マグネトコアの外部で動作する能力を解放しますが、それでも相互作用しますか?
開発の観点から、そして機能/日常の使用/保守の観点から、それがより良いかどうかを判断する必要があります。
-
更新1:
「あなたの投稿から、このデータがどこに行き着くのか、データベースに書き込んでいるのかどうかなどは不明です。」
モジュールとしてMagentoで実行した場合、ビデオとプレイリストはadminで構成されます。
これは、マルチプロトコルソース(http://erlyvideo.org/files、aws cloudfront、wowza、任意のサーバー、brightcove、youtubeなど)を取り込んでコードを吐き出し/構成できる一種の「メディアコンフィギュレーター」になります。ブロック(例:フラッシュ、html5ビデオ、js、php)。これは、コード/ URLを貼り付けるか、コンテンツをアップロードすることによって行われます。
-
Magentoで行われない場合、同じタイプのことが別のCMSで行われます(カスタムまたはdrupalやwordpressのようなもの)
-
発生する可能性のあるすべての対話についてはわかりませんが、メディアギャラリーには、お気に入りのシステム、保存されたセッション、ユーザーグループのアクセス許可、コンテンツのサブスクライブ(vod)があります。
単一のビデオインスタンスもストアページとブログで提供されますが、インタラクションはビデオの提供のみに制限されます。
更新2:
「このシナリオでMagentoはどのような目的を果たしますか?」
私が現在知る限り、保存されたセッション(任意のユーザー)、お気に入りのシステム(ログインしたユーザー)、保存された設定(ログインしたユーザー)、ユーザーグループのアクセス許可(任意のユーザーまたはログインしたユーザー+さまざまなユーザータイプ)。
ただし、VODインスタンス以外のメディアギャラリーの目的は次のとおりです。
A.無料のビデオクリップを提供しています。
B.ユーザーがクライアントのDVD製品の予告編を見ることができるようにする。
どちらも、それ自体では、多くの相互作用を必要としないようです。ただし、継続性を確保するために、必要に応じて、または利便性のために、より緊密に統合されているかどうかに関係なく、すべてを1つの管理者から構成された1つのデータベースに保持する方がよい場合があります。
しかし、最初に述べたように、おそらく、db / storeの外部で、より堅牢で用途が広い、または単にその独立性によってより安定したものが実現可能です。おそらく後者は、Magentoを本当に理解していないか、理解に限界があり、したがって分離に向けて助言する人々によって促進されています。知らない。
-
「動画が商品に関連している場合を除き、商品にタグを付ける理由はありません。」
今述べたように、これは予告編や無料の動画には意味があります。例外として、VODビデオまたはビデオのVODグループが考えられます。その場合、ビデオは特別に構成された製品であり、とりわけメディアギャラリーにも表示される方がよいとおっしゃっていると思いますか?
その場合、VOD、ビデオクリップ自体(またはそのコンテナ)は製品になります。プレビューして購入し、必要に応じてどこにでも配置できます。また、独自の製品ページ(必要な場合)もあります。それがコードの観点からどのように「作られる」かが問題です。
別のおそらく異なるアプローチは次のようになります:(ページがなくなりました)http://workbookproject.com/newbreed/2010/06/21/build-your-own-vod-portal/
これを試してください:http://filmutopia。 typepad.com/lone_gun_manifesto/2010/07/how-to-build-your-own-vod-portal-in-a-matter-of-hours-for-less-than-100-lgm.html。ユーザーが実際にページへのアクセスを購入している場所。
Zacは彼のサイトと記事で素晴らしい仕事をしました、そして私はこの種のことがMagentoで行われているのを見ることができました、しかしZakが彼の記事の最後で指摘するように、彼はFlashを使用しているので、私の解決策はさらに進んでHTML5ビデオおよび/または[任意のプロトコル]で配信します。
だから、MagnetoがZakのようにWPを使ってこの種のことをするのが面倒かどうかはわかりません。
-
「Magentoで通常のデータモデルを作成してデータベース呼び出しをラップすることは可能です。ビデオと製品の間に相互作用がない場合は、それらのモデルの1つを作成することでよりクリーンにトリックを実行できます。」
OK「Magentoのデータモデル」を読みましたが、この仕様のスキーマでは、それらが何に関係しているのか、物理的に何で構成されているのかわかりません。
Magentoで物事を行うための明らかに多くの方法。
DataFlow、データモデル、Magentoモジュール...一体...ウィジェットを投げてみませんか?? :)
-
これについてこれ以上の意見はありますか?とても有難い。