操作
19,225 2:02 | ➔ | 0.10000000000000007 ħ |
19,225 2:02 | 🡰 | -0.1 ħ |
19,226 2:02 | 0.1 ħ | ➔ | #t-130001 | (+0.1 ḥ ⇌ Mindey) |
各スレッドにはリングバッファがあり、ソケットが受け入れられるとメッセージがリングバッファに置かれ、スレッドはそのユーザーのリッスンを開始します。
他のすべてのスレッドにはすべてのユーザーが通知されるため、データをエコーすることもできます。
スレッドは数千万の接続に対応でき、複数のスレッドがあるため、これは効率的です。
マルチスレッドの一般的な問題の 1 つは、1 つのスレッドから複数の種類のイベントの 1 つを処理することです。私はリングバッファと epoll をポーリングしているという事実に依存しています。
The idea is that each thread has a ringbuffer, when a socket is accepted, a message is put on the ringbuffer and the thread begins listening to that user.
All the other threads are notified of all the users so they can also echo data to them.
This is efficient as a thread can serve thousands-millions of connections and there are multiple threads.
One problem, which is a generic problem for multithreading is servicing one of multiple kinds of events from one thread. I rely on the fact I am polling a ringbuffer and epoll.
私の vagrant セットアップでは永続ディスクを使用し、ansible を使用して cronjob と同期スクリプトをデプロイします。 YAMLファイルで構成されています。 psycopg2 もインストールしました。Postgres でデータベース内のテーブルを取得する方法に関するドキュメントを見つけました。あとは同期アルゴリズムを書くだけです。
私の問題は、どちらの側が勝者のコピーであるかを検出することです。
一方がデータを変更すると、異なるハッシュが存在し、変更された行が検出されます。この部分はわかります。
問題は、どちらの側が最新の変更であり、どちらの側が勝つべきかを検出することです。バージョン列を導入する必要があるかもしれません。
最後に更新されたタイムスタンプ フィールドがあれば、それを使用できます。またはバージョン列ですが、スキーマに新しい列を導入することを明示的に避けようとしています。それははるかに難しいことを意味します。
My vagrant setup uses persistent disks and uses ansible to deploy the cronjob and sync script. It is configured by YAML file. I've also installed psycopg2 and I found documentation on how to retrieve the tables in a database in Postgres. It's just a matter of writing the sync algorithm now.
My problem is detecting which side is the winning copy.
When one side changes the data there shall be a different hash and the changed rows are detected. This part I understand.
The problem is detecting which side is the latest change and which side should win. I might need to introduce a version column.
If I had a last updated timestamp field I could use that. Or a version column but I am expressly trying to avoid introducing new columns to the schema. It means it's a lot harder.
現在、デフォルト言語のドメインのプロファイルは、デフォルト言語を持たないドメインを除いて、現在選択されている言語のみ (または「汎言語」がオンになっている場合はすべて) で質問とコンテンツとともに表示されます。
Now, it the profiles on domains with default language, appear with questions and content only in the currently selected language (or all, if "Panlingual" is switched on), except for the domains that have no default language.
以下は、ユーザーの登録と連絡がどのように機能するかの説明です。また、ユーザーとの会話のコンテンツの一部をパブリック プロファイルまたはコミュニティ プロファイルの一部にする方法。
The below is a description, of how does the registering and contacting a user works. Also, how some of the content from conversations with users can be made a part of public or community profile.
現時点では、インフィニティ プロファイルへのリンクを誰かに提供し、自分のアイデアやプロジェクトを確認して対話を開始するための快適さを期待する方が便利です。
Right now, it is more convenient to give someone a link to one's Infinity profile, and expect them to have comfort to review one's ideas and projects, and start interacting.
⬜️ JSON ドキュメントを数字にマッピングする必要があるため、「document id 0 hobbies[0].name=sam」は 0@0.0=sam になります。これにより、数字の間のキーの範囲をスキャンすることで効率的な検索が可能になります。 ⬜️数字をフィールド名に戻すコードを書く必要がある ⬜️キースペース オプティマイザーを統合する必要があります。たとえば、ドキュメント 0 = {"hobbies":{("name": "God"),{"name": "databases"), {" name": "computers")}) hobbies が 0、name が 1 で、3 つのリスト項目 0、1、2 がある場合、同じ種類のすべてのリスト インデックスを並べ替え反復子で隣接させたいので、それらを反転させます。最後まで 0@0[1]="God" は 0@1.0, 0@1.1 0@1.2 になります ⬜️ SQL 結合に使用するキー値を作成する必要がある ⬜️ JSON ドキュメントで期待される結合を定義するドキュメントを作成する必要がある
⬜️ need to map a JSON document to numbers so "document id 0 hobbies[0].name=sam" becomes 0@0.1=sam" this allows for efficient retrievals by scanning a range of keys between numbers. ⬜️need to write code to turn numbers back into field names ⬜️need to integrate keyspace optimiser, as we reorder numbers for efficiency of joins across lists for example document 0 = {"hobbies":{("name": "God"),{"name": "databases"), {"name": "computers")}) hobbies might be 0, name might be 1 and we have 3 list items 0, 1, 2 we want all list indexes of the same kind to be adjacent in the sort iterator, so we flip them to the end so 0@0[1]="God" becomes 0@1.0, 0@1.1 0@1.2 ⬜️ need to create keyvalues for what is used for SQL joins ⬜️ need to create a document which defines the joins that people expect to do on a JSON document
ストレージを提供する 1 つのドライブを備えた 3 台のマシンがあります ドライブは、すべてのマシンのストレージを備えた 1 つの大きなドライブとして公開されます
I have 3 machines each with 1 drive that provides storage The drive is exposed as one large drive with storage from all the machines
キーをアップロードしていませんが、するかもしれません。それらは単なるテストキーです。
virtualbox vagrant 永続ボリュームの使用に取り組んでいます。つまり、各 VM にストレージ ディスクを関連付けることができます。
I haven't uploaded the keys, but I might. They're just test keys.
I am working on using the virtualbox+vagrant persistent volumes. This means I can have a storage disk associated with each VM.
私はこれに数時間を費やしました。
これをプログラムのすべてのループに適用すると、さらに効率的なプログラムを作成できます。
I spent a few hours on this.
If this was applied to all looping of programs, we could have even more efficient programs.
真のマルチスレッドを使用できるように、PythonコードをJavaで書き直します そのスレッド番号に一致するN番目の製品を繰り返し実行しようとするループランナースレッドを実装します
Rewrite Python code in Java so true multithreading can be used Implement loop runner threads that repeatedly try execute Nth product that matches that thread number
A.在庫管理に適したシステムを選択してください。 次のリストが必要です: 1-コンポーネント 2-材料 3-製品 4-梱包材 5-パッケージングソリューション 6- ATO -コンポーネント(受注組立) 7-生産情報ファイル
B.すべてのリストを定義します。
A. Choose a suitable system for INVENTORY management.
I need LISTS of:
1- Components
2- Materials
3- Products
4- Packaging materials
5- Packaging solutions
6- ATO-components (Assemble-to-order)
7- Production info file
8- Raw MAterials resources (nu)
9- Empty spots of land dumps (nu)
10- Drivers of trucks that are independent (nu)
B. Define ALL my LISTS:
Communities
Locations
Routes
Distribution centers and supermarkets
システムをコピー左に回します。
だから私は自分が想像するシステムをコミュニティベースのブランドに最適なものとして構築し、それをすべてコピーレフトにします。
これが私の意見で自由になる唯一の方法です。
コメントは歓迎です。
TURN MY SYSTEM TO COPY-LEFT.
SO I BUILD THE SYSTEM THAT I IMAGINE IS BEST FOR MY COMMUNITY-BASED BRAND, AND I MAKE IT ALL COPY-LEFT.
THIS IS THE ONLY WAY TO FREEDOM IN MY OPINION.
COMMENTS ARE WELCOME.
2時間 私は自分が作成したものにかなり満足しています。 APIの方がいいと思います。または、結果を待つ実装の方が良い場合があります。 ネストされたループがあるため、新しい結果があるかどうかを確認するための計算にはコストがかかります。これはもっとうまくできると思います。 理想的には、ネストされたループは、いくつかのdivmod命令と追加のみを必要とします。それ以外の場合は、使用されるパフォーマンスを支配します。
2 hours I am fairly happy with what I created. I think the API could be better. Or the implementation of waiting for results could be better. The calculation to see if there are any new results is expensive due to nested loops. I think this could be done better. Ideally nested loops should only take a few divmod instructions and additions. Otherwise they shall dominate performance used.
2〜4時間いつ始めたのか思い出せない
エントリが重複しています。
親ループは次のようになります。
文字の文字の場合: 数の数の場合:
シンボル内のシンボルの場合:
次に、innerloop内の新しい並行ループで拡張してみます。
しかし、各反復は同じように見えます!これと同等ではありません:
文字の文字の場合: 数の数の場合:
シンボル内のシンボルの場合:
ネストされたコードの場合: ネストされた絵文字の場合: print(文字番号記号ネストされた絵文字)
ループのツリーのように、ループを任意の数のループに拡張する方法が必要です。
2-4 hours I cannot remember when I began
I get duplicate entries.
The parent loop looks this:
for letter in letters: for number in numbers: for symbol in symbols:
Then I try extend it with a new concurrent loop inside the innerloop.
But each iteration would look the same! It's not equivalent to this:
for letter in letters: for number in numbers: for symbol in symbols: for nested in codes: for emoji in nested: print(letter + number + symbol + nested + emoji)
I need some way of extending the loop through an arbitrary number of loops, like a tree of loops.