Get request data (URL, etc)

Hi, thanks for the awesome package.
We are trying to integrate with Cloudflare Stream. After the upload starts, the URL changes, including then, the videoId. More info in the Cloudflare docs below.
https://developers.cloudflare.com/stream/getting-started/uploading-command-line/#uploading-your-video
This ID cannot be set, and it's required to later retrieve more info about the video.
Is there anyway to access the request information so we can get this video from the upload URL?
Thank you

Thanks for the kind words. I have never worked with Cloudflare Stream, so I can't help you with anything specific there.
However, it seems as if the video ID is part of the upload URL. The upload URL can be accesses by the urlproperty (https://github.com/tus/tus-js-client#tusuploadurl) after an upload has been started. From this URL you should be able to extract the video ID using a simple regular expression, I think.

I adapted the existing node.js example for use with Cloudflare Stream. The video ID is available through the upload.url as @Acconut previously mentioned.
Install the tus client
npm install tus-js-client

Set up a index.js and configure your endpoint using your Cloudflare account and appropriate auth headers:
var fs = require("fs");
var tus = require("tus-js-client");

var path = __dirname + "/test.mp4";
var file = fs.createReadStream(path);
var size = fs.statSync(path).size;

var options = {
  endpoint: "https://api.cloudflare.com/client/v4/accounts/<CLOUDFLARE ACCT ID>/media",
  headers: {
    'x-auth-email': '<CLOUDFLARE EMAIL>',
    'x-auth-key': '<CLOUDFLARE AUTH KEY>',
  },
  resume: true,
  metadata: {
    filename: "test.mp4",
    filetype: "video/mp4"
  },
  uploadSize: size,
  onError: function (error) {
    throw error;
  },
  onProgress: function (bytesUploaded, bytesTotal) {
    var percentage = (bytesUploaded / bytesTotal * 100).toFixed(2);
    console.log(bytesUploaded, bytesTotal, percentage + "%");
  },
  onSuccess: function () {
    console.log("Upload finished:", upload.url);
    var index = upload.url.lastIndexOf("/") + 1;
    var mediaId = upload.url.substr(index)
    console.log("Media id:", mediaId);
  }
};

var upload = new tus.Upload(file, options);
upload.start();

Run the upload
node index.js

@prestonp Thank you for the example code! I am going to close this issue since the question was answered.


Does rotation work as expected?

Hello. I have a simple web app with route, which performs rotation of image using sharp. Simplified code of route action looks like this:
let image = await sharp(imagePath)
await image.rotate(180).toFile(tmpImagePath)
// Delete old image
deleteImage(imagePath)
// Replace it with tmp image (rename tmp to image)
renameImage(tmpImagePath, imagePath)
The problem is that rotation works only one time per app launch. I.e. if i start my app and call this action, everything works fine, but if i call the action another time, nothing will happen with image. It looks like rotated image is been reading as unrotated original image. Like it was cached somewhere, but it shouldn't happen. Please provide me some guidelines. Thank you.

Hello, did you see cache? libvips will cache input files, so if you plan to recycle filenames you'll probably want to disable the file cache.

Yes, that did the trick. Thank you very much, sir!


ported dev portal doc changes back

Using my new find/replace script, I commented out all the HTML blocks and replaced all the relative URLs with absolute URLs. This update contains all the changes I've made to the documentation on the dev portal since the last pull request, which is mostly typo fixes.

Does this need further follow-up @lumberj @mDuo13

I just merged this PR into my existing one, https://github.com/ripple/ripple-rest/pull/292, since I'm already updating the README there

So this PR should be closed and we continue our convo there?

Yes. To make things easier, I'll paste the diff of the two READMEs. The main difference is that on #292 I changed issuer to be counterparty so the README reflects that. Other differences include changes to the examples of the payment object (ledger, state are no longer inside the object but at the root).
diff --git c/README.md w/README.md
index e015f7b..969cbab 100644
--- c/README.md
+++ w/README.md
@@ -312,7 +312,7 @@ Example error:
     "success": false,
     "error_type": "invalid_request",
     "error": "Invalid parameter: destination_amount",
-    "message": "Non-XRP payment must have an issuer"
+    "message": "Non-XRP payment must have a counterparty"
 }
 \```

@@ -327,7 +327,7 @@ You should parse these numbers into a numeric data type with adequate precision.

 There are two kinds of currency on the Ripple network: XRP, and issuances. XRP is the native cryptocurrency that only exists in the network, and can be held by accounts and sent directly to other accounts with no trust necessary.

-All other currencies take the form of *issuances*, which are held in the *trust lines* that link accounts. Issuances are identified by a `counterparty` on the other end of the trust line, sometimes also called the `issuer`. Sending and trading issuances actually means debiting the balance of a trust line and crediting the balance of another trust line linked to the same account. Ripple ensures this operation happens atomically.
+All other currencies take the form of *issuances*, which are held in the *trust lines* that link accounts. Issuances are identified by a `counterparty` on the other end of the trust line. Sending and trading issuances actually means debiting the balance of a trust line and crediting the balance of another trust line linked to the same account. Ripple ensures this operation happens atomically.

 Issuances are typically created by Gateway accounts in exchange for assets in the outside world. In most cases, the `counterparty` of a currency refers to the gateway that created the issuances. XRP never has a counterparty.

@@ -342,8 +342,8 @@ When an amount of currency is specified as part of a JSON body, it is encoded as
 |-------|------|-------------|
 | value | String (Quoted decimal) | The quantity of the currency |
 | currency | String | Three-digit [ISO 4217 Currency Code](http://www.xe.com/iso4217.php) specifying which currency. Alternatively, a 160-bit hex value. (Some advanced features, like [demurrage](https://ripple.com/wiki/Gateway_demurrage), require the hex version.) |
-| counterparty | String | (New in [v1.4.0](https://github.com/ripple/ripple-rest/releases/tag/1.4.0-rc1)) The Ripple address of the account that is a counterparty to this currency. This is usually an [issuing gateway](https://wiki.ripple.com/Gateway_List). Always omitted, or an empty string, for XRP. |
-| issuer | String | (Prior to 1.4.0) **DEPRECATED** alias for `counterparty`. Some methods may still return this instead. |
+| counterparty | String | (New in [v1.3.2](https://github.com/ripple/ripple-rest/releases/tag/1.3.2-rc4)) The Ripple address of the account that is a counterparty to this currency. This is usually an [issuing gateway](https://wiki.ripple.com/Gateway_List). Always omitted, or an empty string, for XRP. |
+| issuer | String | (Prior to 1.4.0) **DEPRECATED** alias for `counterparty`. |

 Example Amount Object:
@@ -407,7 +407,7 @@ An example Payment object looks like this:
     "source_amount": {
         "value": "0.001",
         "currency": "XRP",
-        "issuer": ""
+        "counterparty": ""
     },
     "source_slippage": "0",
     "destination_address": "rNw4ozCG514KEjPs5cDrqEcdsi31Jtfm5r",
@@ -415,7 +415,7 @@ An example Payment object looks like this:
     "destination_amount": {
         "value": "0.001",
         "currency": "XRP",
-        "issuer": ""
+        "counterparty": ""
     },
     "invoice_id": "",
     "paths": "[]",
@@ -448,14 +448,14 @@ Submitted transactions can have additional fields reflecting the current status
 | Field | Type | Description |
 |-------|------|-------------|
 | direction | String | The direction of the payment relative to the account from the URL, either `"outgoing"` (sent by the account in the URL) or `"incoming"` (received by the account in the URL) |
-| state | String | The current status of the payment in transaction processing. A value of `"validated"` indicates that the transaction is finalized. |
 | result | String | The [Ripple transaction status code](https://wiki.ripple.com/Transaction_errors) for the transaction. A value of `"tesSUCCESS"` indicates a successful transaction. |
-| ledger | String | The sequence number of the ledger version that includes this transaction. |
-| hash | String | A hash value that uniquely identifies this transaction in the Ripple network. |
 | timestamp | String | The time the ledger containing this transaction was validated, as a [ISO8601 extended format](http://en.wikipedia.org/wiki/ISO_8601) string in the form `YYYY-MM-DDTHH:mm:ss.sssZ`. |
 | fee | String (Quoted decimal) | The amount of XRP charged as a transaction fee. |
+| balance_changes | Array | Array of [Amount objects](#amount_object) indicating changes in balances held by the perspective account (i.e., the Ripple account address specified in the URI). |
 | source_balance_changes | Array | Array of [Amount objects](#amount_object) indicating changes in balances held by the account sending the transaction as a result of the transaction. |
 | destination_balance_changes | Array | Array of [Amount objects](#amount_object) indicating changes in balances held by the account receiving the transaction as a result of the transaction. |
+| destination_amount_submitted | Object | An [Amount object](#amount_object) indicating the destination amount submitted (useful when `payment.partial_payment` flag is set to *true* |
+| source_amount_submitted | Object | An [Amount object](#amount_object) indicating the source amount submitted (useful when `payment.partial_payment` flag is set to *true* |

 ### Memo Objects ###
@@ -573,7 +573,7 @@ Randomly generate keys for a potential new Ripple account.

 <!-- <div class='multicode'> -->

-*REST*
+<!-- *REST* -->

 \```
 GET /v1/wallet/new
@@ -614,7 +614,7 @@ Retrieve the current balances for the given Ripple account.

-*REST*
+

 \```
 GET /v1/accounts/{:address}/balances
@@ -682,7 +682,7 @@ Retrieve the current settings for a given account.

 <!-- <div class='multicode'> -->

-*REST*
+<!-- *REST* -->

 \```
 GET /v1/accounts/{:address}/settings
@@ -749,7 +749,7 @@ Modify the existing settings for an account.

-*REST*
+

 \```
 POST /v1/accounts/{:address}/settings?validated=true
@@ -848,7 +848,7 @@ Get quotes for possible ways to make a particular payment.

 <!-- <div class='multicode'> -->

-*REST*
+<!-- *REST* -->

 \```
 GET /v1/accounts/{:source_address}/payments/paths/{:destination_address}/{:amount}
@@ -888,7 +888,7 @@ You can then choose one of the returned payment objects, modify it as desired (f
       "source_amount": {
         "value": "1.008413509923106",
         "currency": "USD",
-        "issuer": ""
+        "counterparty": ""
       },
       "source_slippage": "0",
       "destination_account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH",
@@ -896,7 +896,7 @@ You can then choose one of the returned payment objects, modify it as desired (f
       "destination_amount": {
         "value": "1",
         "currency": "USD",
-        "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q"
+        "counterparty": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q"
       },
       "invoice_id": "",
       "paths": "[[{\"account\":\"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B\",\"type\":1,\"type_hex\":\"0000000000000001\"},{\"currency\":\"USD\",\"issuer\":\"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q\",\"type\":48,\"type_hex\":\"0000000000000030\"},{\"account\":\"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q\",\"type\":1,\"type_hex\":\"0000000000000001\"}],[{\"account\":\"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B\",\"type\":1,\"type_hex\":\"0000000000000001\"},{\"currency\":\"XRP\",\"type\":16,\"type_hex\":\"0000000000000010\"},{\"currency\":\"USD\",\"issuer\":\"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q\",\"type\":48,\"type_hex\":\"0000000000000030\"},{\"account\":\"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q\",\"type\":1,\"type_hex\":\"0000000000000001\"}]]",
@@ -909,7 +909,7 @@ You can then choose one of the returned payment objects, modify it as desired (f
       "source_amount": {
         "value": "61.06103",
         "currency": "XRP",
-        "issuer": ""
+        "counterparty": ""
       },
       "source_slippage": "0",
       "destination_account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH",
@@ -917,7 +917,7 @@ You can then choose one of the returned payment objects, modify it as desired (f
       "destination_amount": {
         "value": "1",
         "currency": "USD",
-        "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q"
+        "counterparty": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q"
       },
       "invoice_id": "",
       "paths": "[[{\"currency\":\"USD\",\"issuer\":\"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q\",\"type\":48,\"type_hex\":\"0000000000000030\"},{\"account\":\"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q\",\"type\":1,\"type_hex\":\"0000000000000001\"}],[{\"currency\":\"USD\",\"issuer\":\"rpDMez6pm6dBve2TJsmDpv7Yae6V5Pyvy2\",\"type\":48,\"type_hex\":\"0000000000000030\"},{\"account\":\"rpDMez6pm6dBve2TJsmDpv7Yae6V5Pyvy2\",\"type\":1,\"type_hex\":\"0000000000000001\"},{\"account\":\"rHAwwozJw6FHfnJfRQaFXrkGHocGoaNYSy\",\"type\":1,\"type_hex\":\"0000000000000001\"},{\"account\":\"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q\",\"type\":1,\"type_hex\":\"0000000000000001\"}],[{\"currency\":\"USD\",\"issuer\":\"rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc\",\"type\":48,\"type_hex\":\"0000000000000030\"},{\"account\":\"rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc\",\"type\":1,\"type_hex\":\"0000000000000001\"},{\"account\":\"rEtr3Kzh5MmhPbeNu6PDtQZsKBpgFEEEo5\",\"type\":1,\"type_hex\":\"0000000000000001\"},{\"account\":\"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q\",\"type\":1,\"type_hex\":\"0000000000000001\"}],[{\"currency\":\"USD\",\"issuer\":\"rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc\",\"type\":48,\"type_hex\":\"0000000000000030\"},{\"account\":\"rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc\",\"type\":1,\"type_hex\":\"0000000000000001\"},{\"account\":\"rKvPTQrD8ap1Y8TSmKjcK6G7q7Kvx7RAqQ\",\"type\":1,\"type_hex\":\"0000000000000001\"},{\"account\":\"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q\",\"type\":1,\"type_hex\":\"0000000000000001\"}]]",
@@ -941,7 +941,7 @@ Submit a payment object to be processed and executed.

-*REST*
+

 \```
 POST /v1/accounts/{address}/payments?validated=true
@@ -958,7 +958,7 @@ POST /v1/accounts/{address}/payments?validated=true
     "source_amount": {
       "value": "5.01",
       "currency": "USD",
-      "issuer": ""
+      "counterparty": ""
     },
     "source_slippage": "0",
     "destination_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59",
@@ -966,7 +966,7 @@ POST /v1/accounts/{address}/payments?validated=true
     "destination_amount": {
       "value": "5",
       "currency": "USD",
-      "issuer": ""
+      "counterparty": ""
     },
     "invoice_id": "",
     "paths": "[[{\"account\":\"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B\",\"type\":1,\"type_hex\":\"0000000000000001\"}]]",
@@ -1039,7 +1039,7 @@ Retrieve the details of a payment, including the current state of the transactio

 <!-- <div class='multicode'> -->

-*REST*
+<!-- *REST* -->

 \```
 GET /v1/accounts/{:address}/payments/{:id}
@@ -1067,50 +1067,65 @@ The following URL parameters are required by this API endpoint:
     "source_amount": {
       "value": "0.00001",
       "currency": "XRP",
-      "issuer": ""
+      "counterparty": ""
     },
     "source_slippage": "0",
     "destination_account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
     "destination_tag": "",
     "destination_amount": {
+      "value": "0.00000005080000000000001",
       "currency": "USD",
-      "issuer": "rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc",
-      "value": "0.01"
+      "counterparty": "rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc"
     },
     "invoice_id": "",
     "paths": "[]",
     "no_direct_ripple": false,
     "partial_payment": true,
     "direction": "outgoing",
-    "state": "validated",
     "result": "tesSUCCESS",
-    "ledger": "8924146",
-    "hash": "9D591B18EDDD34F0B6CF4223A2940AEA2C3CC778925BABF289E0011CD8FA056E",
     "timestamp": "2014-09-17T21:47:00.000Z",
     "fee": "0.00001",
-    "source_balance_changes": [
-      {
-        "value": "-0.00002",
-        "currency": "XRP",
-        "issuer": ""
-      }
-    ],
-    "destination_balance_changes": [
-      {
-        "value": "5.08e-8",
-        "currency": "USD",
-        "issuer": "rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc"
-      }
-    ]
-  }
+    "balance_changes": [{
+      "currency": "XRP",
+      "value": "-0.00002",
+      "counterparty": ""
+    }],
+    "source_balance_changes": [{
+      "currency": "XRP",
+      "value": "-0.00002",
+      "counterparty": ""
+    }],
+    "destination_balance_changes": [{
+      "currency": "USD",
+      "value": "5.08e-8",
+      "counterparty": "rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc"
+    }],
+    "order_changes": [],
+    "destination_amount_submitted": {
+      "value": "0.01",
+      "currency": "USD",
+      "counterparty": "rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc"
+    },
+    "source_amount_submitted": {
+      "value": "0.00001",
+      "currency": "XRP",
+      "counterparty": ""
+    }
+  },
+  "client_resource_id": "",
+  "hash": "9D591B18EDDD34F0B6CF4223A2940AEA2C3CC778925BABF289E0011CD8FA056E",
+  "ledger": "8924146",
+  "state": "validated"
 }
 \```

 | Field | Type | Description |
 |-------|------|-------------|
 | payment | Object | A [payment object](#payment-objects) for the transaction. |
+| hash | String | The hash of the payment transaction |
+| ledger | String | The sequence number of the ledger version that includes this transaction. |

-If the `payment.state` field has the value `"validated"`, then the payment has been finalized, and is included in the shared global ledger. However, this does not necessarily mean that it succeeded. Check the `payment.result` field for a value of `"tesSUCCESS"` to see if the payment was successfully executed. If the `payment.partial_payment` flag is *true*, then you should also consult the `payment.destination_balance_changes` array to see how much currency was actually delivered to the destination account.
+If the `state` field has the value `"validated"`, then the payment has been finalized, and is included in the shared global ledger. However, this does not necessarily mean that it succeeded. Check the `payment.result` field for a value of `"tesSUCCESS"` to see if the payment was successfully executed. If the `payment.partial_payment` flag is *true*, then you should also consult the `payment.destination_balance_changes` array to see how much currency was actually delivered to the destination account.

 Processing a payment can take several seconds to complete, depending on the [consensus process](https://ripple.com/consensus-whitepaper/). If the payment does not exist yet, or has not been validated, you should wait a few seconds before checking again.

@@ -1123,7 +1138,7 @@ Retrieve a selection of payments that affected the specified account.

 <!-- <div class='multicode'> -->

-*REST*
+<!-- *REST* -->

 \```
 GET /v1/accounts/{:address}/payments
@@ -1158,100 +1173,58 @@ Optionally, you can also include the following query parameters:
 \```js
 {
   "success": true,
-  "payments": [
-    {
-      "payment": {
-        "source_account": "rBvktWhzs4MQDaFYScsqPCB5YufRDXwKDC",
-        "source_tag": "",
-        "source_amount": {
-          "value": "1166313.057",
-          "currency": "JPY",
-          "issuer": "r94s8px6kSw1uZ1MV98dhSRTvc6VMPoPcN"
-        },
-        "source_slippage": "0",
-        "destination_account": "rBvktWhzs4MQDaFYScsqPCB5YufRDXwKDC",
-        "destination_tag": "",
-        "destination_amount": {
-          "value": "600000",
-          "currency": "XRP",
-          "issuer": ""
-        },
-        "invoice_id": "",
-        "paths": "[[{\"currency\":\"XRP\",\"type\":16,\"type_hex\":\"0000000000000010\"}]]",
-        "no_direct_ripple": false,
-        "partial_payment": false,
-        "direction": "passthrough",
-        "result": "tesSUCCESS",
-        "timestamp": "2015-02-06T03:59:30.000Z",
-        "fee": "0.012",
-        "source_balance_changes": [
-          {
-            "currency": "JPY",
-            "value": "-1164533.852420654",
-            "issuer": "r94s8px6kSw1uZ1MV98dhSRTvc6VMPoPcN"
-          },
-          {
-            "currency": "XRP",
-            "value": "599999.988",
-            "issuer": ""
-          }
-        ],
-        "destination_balance_changes": [
-          {
-            "currency": "JPY",
-            "value": "-1164533.852420654",
-            "issuer": "r94s8px6kSw1uZ1MV98dhSRTvc6VMPoPcN"
-          },
-          {
-            "currency": "XRP",
-            "value": "599999.988",
-            "issuer": ""
-          }
-        ],
-        "order_changes": [
-          {
-            "taker_pays": {
-              "currency": "JPY",
-              "counterparty": "r94s8px6kSw1uZ1MV98dhSRTvc6VMPoPcN",
-              "value": "-67605.3"
-            },
-            "taker_gets": {
-              "currency": "XRP",
-              "counterparty": "",
-              "value": "-34300"
-            },
-            "sequence": 3751,
-            "status": "closed"
-          }
-        ],
-        "memos": [
-          {
-            "MemoType": "636C69656E74",
-            "MemoFormat": "7274312E332E31",
-            "parsed_memo_type": "client",
-            "parsed_memo_format": "rt1.3.1"
-          }
-        ]
+  "payments": [{
+    "payment": {
+      "source_account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
+      "source_tag": "",
+      "source_amount": {
+        "value": "20",
+        "currency": "XRP",
+        "counterparty": ""
       },
-      "client_resource_id": "",
-      "hash": "E485D1E18D946ACD410AD79F51E2C57E887CC206286E6CE0A1CA80FC75C24643",
-      "ledger": "11547185",
-      "state": "validated"
-    }
-  ]
-}
+      "source_slippage": "0",
+      "destination_account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n",
+      "destination_tag": "",
+      "destination_amount": {
+        "value": "20",
+        "currency": "XRP",
+        "counterparty": ""
+      },
+      "invoice_id": "",
+      "paths": "[]",
+      "no_direct_ripple": false,
+      "partial_payment": false,
+      "direction": "outgoing",
+      "result": "tesSUCCESS",
+      "timestamp": "2015-02-09T23:31:40.000Z",
+      "fee": "0.012",
+      "balance_changes": [{
+        "currency": "XRP",
+        "value": "-20.012",
+        "counterparty": ""
+      }],
+      "source_balance_changes": [{
+        "currency": "XRP",
+        "value": "-20.012",
+        "counterparty": ""
+      }],
+      "destination_balance_changes": [{
+        "currency": "XRP",
+        "value": "20",
+        "counterparty": ""
+      }],
+      "order_changes": []
+    },
+    "client_resource_id": "",
+    "hash": "1D381C0FCA00E8C34A6D4D3A91DAC9F3697B4E66BC49ED3D9B2D6F57D7F15E2E",
+    "ledger": "11620700",
+    "state": "validated"
+  }
+]
 \```

 If the length of the `payments` array is equal to `results_per_page`, then there may be more results. To get them, increment the `page` query paramter and run the request again.

-The `payment` objects include additional transactional metadata:
-
-| Field | Type | Description |
-|-------|------|-------------|
-| source_balance_changes | Amount | The balance changes of the Ripple address that submitted the payment |
-| destination_balance_changes | Amount | The balance changes of the Ripple address that received the payment |
-| order_changes | Order | The changes in the orders of the perspective account |
-
 *Note:* It is not more efficient to specify more filter values, because Ripple-REST has to retrieve the full list of payments from the `rippled` before it can filter them.

  An order transaction either [places an

-*REST*
+

 \```
 GET /v1/accounts/{:address}/orders/{:hash}
@@ -1738,7 +1711,7 @@ Retrieves the top of the order book for a currency pair.

 <!-- <div class='multicode'> -->

-*REST*
+<!-- *REST* -->

 \```
 GET /v1/accounts/{:address}/order_book/{:base}/{:counter}
@@ -1911,7 +1884,7 @@ Retrieves all trustlines associated with the Ripple address.

-*REST*
+

 \```
 GET /v1/accounts/{:address}/trustlines
@@ -1982,7 +1955,7 @@ Creates or modifies a trustline.

 <!-- <div class='multicode'> -->

-*REST*
+<!-- *REST* -->

 \```
 POST /v1/accounts/{:address}/trustlines?validated=true
@@ -2056,7 +2029,7 @@ Get a notification for the specific transaction hash, along with links to previo

-*REST*
+

 \```
 GET /v1/accounts/{:address}/notifications/{:id}
@@ -2124,7 +2097,7 @@ Perform a simple ping to make sure that the server is working properly.

 <!-- <div class='multicode'> -->

-*REST*
+<!-- *REST* -->

 \```
 GET /v1/server/connected
@@ -2152,7 +2125,7 @@ Retrieve information about the current status of the Ripple-REST API and the `ri

-*REST*
+

 \```
 GET /v1/server
@@ -2241,7 +2214,7 @@ Returns a Ripple transaction, in its complete, original format.

 <!-- <div class='multicode'> -->

-*REST*
+<!-- *REST* -->

 \```
 GET /v1/transactions/{:id}
@@ -2448,7 +2421,7 @@ Retrieve the current transaction fee, in XRP, for the `rippled` server Ripple-RE

-*REST*
+

 \```
 GET /v1/transaction-fee
@@ -2476,7 +2449,7 @@ Generate a universally-unique identifier suitable for use as the Client Resource

 <!-- <div class='multicode'> -->

-*REST*
+<!-- *REST* -->

 \```
 GET /v1/uuid


How to modify an already merged operator?

The readme states "Pull request can't modify already merged operators"; so what is the protocol for updating an already merged operator bundle?
After we merged this PR, we discovered a problem with the OperatorHub installer for OCP v4.8.
(For the curious, it's a problem that this PR addresses: https://github.com/operator-framework/operator-registry/commit/8720e3daeac4084753bb26d210b0fd6fce1432c5 -- our bundle is too big and v4.8 has no gzip option.)
Now we want to update all our 5.3.0 bundles so that the minimum OCP is 4.9. How do we go about updating this already merged operator bundle? Is there a set protocol that we can do or do we require different permissions to, say, delete the operator 5.3.0 bundle and re-add it with the appropriate changes?
(Duplicate of https://github.com/k8s-operatorhub/community-operators/issues/2092 since this affects both repos, in case there's a solution that covers both.)

@benjaminjb  We're quickly approaching EOY shutdown, but the usual method of redacting a release is to version bump and push a new bundle that skips the previous bundles.
The issue here is that your versions 5.3.0+ aren't compatible with OCP 4.8, so the only way to fix the v4.8 index is to manually remove the entire operator from the index, and then incrementally add back 5.1.0, then 5.1.2, 5.1.3 and 5.2.0 (as that's the entire update graph that I can see).
Then, I would suggest pushing a fixed version of the 5.3.0 bundle with the com.redhat.openshift.versions="v4.9" label in annotations.yaml, versioned as 5.3.1.
I only have developers on hand who can sign the 4.8 index today, and then we're going dark until January.
There is one major roadblock, though: I can't currently pull the digest for the 5.1.0 bundle, and I ran into this while troubleshooting #367. The rest of the bundle versions appear to be published, however.

@benjaminjb I can resolve this for certified-operators. I'm able to pull all bundle releases for certified-operators, and you haven't yet pushed v5.3.0 to redhat-marketplace yet, so this isn't affected there.
I'll post once this is fixed. You will end up with v5.2.0 and earlier for OpenShift v4.8, with v5.3.0 and earlier on all later versions.

@benjaminjb I've effectively removed v5.3.0 from the OpenShift v4.8 index.
Moving forward, I do suggest my earlier suggestion, as doing this should prevent v5.3.0 from publishing on v4.8 in the future.

Create a new bundle version 5.3.1, otherwise identical to 5.3.0 (except the version and name within the CSV).
Ensure that version 5.3.1 has com.redhat.openshift.versions="v4.9" reflected in metadata/annotations.yaml
Set this to "skip" version 5.3.0

You can do this for both certified-operators and redhat-marketplace, however I do expect to run into the same issue as before with redhat-marketplace (where I can't pull the v5.1.0 bundle). This is likely why the index sync didn't occur properly for RHM, as the base version was missing or unpublished.

Hi @jsm84, first, thanks for working on this.
Second, I've made a PR with the updated version (4.8->4.9) as I'm hoping that we can move forward with that, but if that's a problem, please let us know.
(And I'll update the unmerged bundles so they match.)

(Or do we need to merge a PR that removes the files and then open another PR with the corrected files?)

Hey @jsm84, just wanted to double-check on this: is there a best practice for this situation?

@benjaminjb Unfortunately, you cannot modify a release that has already been published.
The PR cannot merge because it's modifying files/directories which already exist in the repo.
The way forward, without me having to completely remove your operator from the certified index for OCP 4.9 thru 4.12, and sequentially restore each point release, is to push 5.3.1 as a new bundle set to skip the 5.3.0 release.

@benjaminjb You could also just address this at the time of the next release (5.4.0?) with the changes (skip 5.3.0, minimum OCP version 4.9) mentioned previously.

Thanks for the help and just want to clarify: can we merge a PR that removes the 5.3.0 bundle?
There's a little precedent here that I'm trying to check out:
https://github.com/redhat-openshift-ecosystem/certified-operators/pull/775 : 5.1.0 bundle was completely removed
https://github.com/redhat-openshift-ecosystem/certified-operators/pull/776:  5.1.0 bundle was re-added with fix
Do you know if there was some special operation that Tony did behind the scenes with those PRs?

Yes there absolutely was a special operation that Tony did. This was back when we had first implemented this process. He removed 5.1.0 via deleting the files, and then someone on your side created a new PR with a fixed version of v5.1.0.  This was only possible because, at the time, v5.1.0 was at the tip of the OLM skips/replaces chain. It was also before we modified the rules for manual work: due to the existing workload on engineers , we cannot spare the time to perform the manual steps required to work around the documented process - which is to use 'skips' or 'skipRange' directives to skip over bad versions.

Talking with the team now about our way forward, but just wanted to thank @jfrancin and @jsm84 for answering and clarifying the issue! Happy new year!

Thx for the help, we've found a situation that works for us for now.


Production build imports all icons !

i am only loading the following
import {
  PhLockKeyOpen,
  PhUser,
  PhSun,
  PhMoon,
  PhPlayCircle,
  PhImage,
} from 'phosphor-vue'

import Vue from 'vue'

Vue.component('PhLockKeyOpen', PhLockKeyOpen)
Vue.component('PhUser', PhUser)
Vue.component('PhSun', PhSun)
Vue.component('PhMoon', PhMoon)
Vue.component('PhPlay', PhPlayCircle)
Vue.component('PhImage', PhImage)

the build result creates big javascript file

Got the same problem. Any news?

Got the same problem. Any news?

No, but i switched to vue-feather-icons

Take a look at this https://github.com/phosphor-icons/phosphor-vue/issues/11#issuecomment-877591576

Same issue here, Any solutions yet ?
@hypernova7 your solution seems to be for those who want to import everything. We don't want to import everything and just need to import what we need.
I'm importing only 14 icons and webpack-bundle-analyzer shows 19.2MB (1.36 Gzipped)  of my build size is from phosphor-vue.esm.js ! which is a lot

I couldn't fix the issue and there are no words from the maintainer so I decided to move on from this project and use what @kgnfth  suggested earlier ( feather icons ) but I use it's svg sprite version which adds a ~60KB  to your page and you can use any icons you need. I really had enough of importing each icons individually 😅

What I did to import them separately was to create a nodejs script where I created an array with the list of all the icons.  And based on that list, generate all Vue.component for each icon in a separate script, then import and use them globally.  Something like that:
node script
const fs = require('fs');
const icons = ['PhX', 'PhUser']
const content = ''
const iconComponentsDir = 'phosphor-vue/src/components'
icons.forEach((icon) => {
  content += `Vue.component(${icon}, require('${iconComponentsDir}/${icon}.vue'))`
})
fs.writeFileSync('./src/phosphor-icons.js', content);

main.js
import Vue from 'vue'
import './src/phosphor-icons'

new Vue({
  el: '#app'
})

Have same issue

Did you use it with Vue 3? On the Vue 3 branch, it says in the docs that there is a known bug in Rollup that prevents tree shaking. I think this issue is related.

Let's hope the maintainers are still active

Hey all. Lack of tree-shaking sucks, I'm with you. While my partner and I are generally still quite active on the Phosphor project, I am not a Vue dev, nor am I currently planning to be. This port was originally submitted by a community member, and it'll take community members to keep it running and improving.
Being unfamiliar with the state of Vue and its build tools, I don't have a fix for this. But, if you'd like to contribute, or to join as a maintainer, please let me know.

@rektdeckard Thanks for letting us know! I've fixed tree shakability as well as updated several packages, and brought the project structure to the newest sfc-vue project structure standard. It would be great if you could review it :smile:

In the vue3 branch "sideEffects": false in the package.json is missing. When adding this directly in the node_modules folder and rebuilding it seems to enable treeshaking at least for projects which respects the setting (webpack and vite, maybe others).
The sideEffects option is also enabled for the vue2 branch so not sure why it is omitted from the vue3 branch, probably just a mistake.

Update: This issue will be solved with the next major release. For now you can install a pre-release alpha version via npm install @phosphor-icons/vue@next. Note that this pre-release is in alpha and bound to change.


Add metrics output

[X] Make search configuration optional, allows generating metrics for all processes
[X] Convert alert output summary text into prom comment strings
[X] Add procstat metric family output for Sumo Logic dashboard compatibility
[x] Add processes metric family output for Sumo Logic dashboard compatibility

I think we might need to bump the version in go.mod to 1.17... otherwise I was getting a compile error on UnixMilli
$ go build
# github.com/sensu/sensu-processes-check
./metrics.go:24:21: time.Now().UnixMilli undefined (type time.Time has no field or method UnixMilli)
$ go version
go version go1.16.3 linux/amd64

I think we should drop the hard-coded host.name tag. I know it's there for dashboard compat, but we should use output_metric_tags for that. We should try to keep any built-in tags as minimal as possible.

Encountered an error when configured with output_metrics_format: prometheus_text:
{
  "check": "process-monitoring",
  "component": "agent",
  "error": "unable to extract metric from check output",
  "level": "error",
  "msg": "text format parsing error in line 3: expected '=' after label name, found '.'",
  "namespace": "default",
  "time": "2022-05-12T01:07:02Z"
}


is there any option to manually drawing?

is there any option to manually drawing ? for example draw a line or bar on the chart like tradingview chart

No, it is not possible https://github.com/tradingview/lightweight-charts/issues?q=is%3Aissue+sort%3Aupdated-desc+drawings+is%3Aclosed+.


[Enhancement] Add shadow to welcome tour pop-up's in line with Design System changes

Summary
Design system changes provides a shadow for dropdowns and pop-up. So keeping with this theme, the pop-up's during welcome tour also needs a shadow effect to keep up with current changes
Additional Context

hey @ramsaptami i would love to work on this issue if it's available .

@ashish-patwal Please go ahead. The shadows are most likely to be added [to the onboarding helperdiv].(https://github.com/appsmithorg/appsmith/blob/release/app/client/src/components/editorComponents/Onboarding/Helper.tsx#L21).

@akash-codemonk are there any specific dimensions to the shadow that needs to be applied to the pop ups

You could pick this up from https://github.com/appsmithorg/appsmith/blob/release/app/client/src/components/ads/Menu.tsx#L25
cc: @albinAppsmith

PTAL @akash-codemonk

Hey! As I can see that no one is working on this issue. So Can I work on it??

The issue is not longer valid as the UI has been updated. @Vishrut19


Icon request: ClearScore

URL for the brand / site / app
https://www.clearscore.com/
Logo resources for the icon
No response
Proof of the Aegis-compatible 2FA
https://help.clearscore.com/hc/en-us/articles/360011249579-How-do-I-enable-disable-Two-Factor-Authentication-2FA-
Anything else?
Inside their webpack (webpack://global-website/node_modules/@clearscore/) are directories for rainbow.icons.clearscore, rainbow.icons.clearscore-logo-symbol and rainbow.icons.clearscore-logo-wordmark, each exporting SVGs.  These generate the parts of the icon in the top left of the screen.  The logomark alone is probably good.
Confirmation

[X] I have read and followed the issue guidelines & issue form.

Here you go!
https://github.com/aegis-icons/aegis-icons/blob/master/icons/1_Primary/ClearScore.svg
https://github.com/aegis-icons/aegis-icons/blob/master/icons/2_Variations/ClearScore bg.var.svg

:question: How to add icon(s) to Aegis?
:star: Support this project by giving a star! Just adding like to this comment is also appreciated.


Add non-blocking IO with mio

Please check if the PR fulfills these requirements

[X] The commit message follows our guidelines
[ ] Tests for the changes have been added (for bug fixes/features)
[ ] Docs have been added / updated (for bug fixes / features)

What issue does this fix?
Fixes #10

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)

Performance improvement

What is the current behavior? (You can also link to an open issue here)

See #10 for detailed info

Other info:

A version bump might be needed for this.

I did more benchmarking, and even the fastest way to implement mio is way slower than the current way lol

Like, 16x slower

Using async_std also makes it slower (which is crazy) at ~1k request/second less

Conclusion: The current implementation is way faster, and such it shouldn't be changed for mio.

Apparently this exists which might be a gamechanger

reopen, try with tokio

ok this is just dumb 16k requests/s using every performance thing I've found

I THINK I KNOW WHAT THE ISSUE IS

ok so it seems it can't handle multiple requests over the same conn and I'm working on that

doesn't quite work yet. idk why

UPDATE: it seems like a broken pipe error


update_1.7.0

Linter check found the following problems:
The following problems have been found:
INFO: /tmp/abs_b65gesiz98/clone/recipe/meta.yaml:60: invalid_url: https://pypi.python.org/pypi/rope : URL domain redirect pypi.python.org ->  pypi.org
WARNING: /tmp/abs_b65gesiz98/clone/recipe/meta.yaml:61: documentation_overspecified: Using doc_url and doc_source_url is overspecified
Warnings were found


Submit to Logseq plugin marketplace

See https://github.com/logseq/marketplace

https://github.com/logseq/marketplace/pull/30

Need to add:

[ ]  a valid CI workflow action for Github releases. (Optional for theme plugin only)
[x]  a legal package.json file.
[ ]  a clear README file.
[ ]  a license in the LICENSE file.


TLS 1.3 not working with application

Driver version
mssql-jdbc-12.2.0.jre8.jar
SQL Server version
SQL 2022
Client Operating System
both the application and DB are running on Windows 2022.
JAVA/JVM version
C:\Users\naher>java -version
java version "1.8.0_333"
Java(TM) SE Runtime Environment (build 1.8.0_333-b02)
Java HotSpot(TM) Client VM (build 25.333-b02, mixed mode)
Table schema
--
Problem description
My standalone java application is working fine with TLS 1.3 using the encrypt=strict option. However, my actually application is not working with the exact same DB, with matching settings of the stand alone java application.
Expected behavior
Successful communication with Database with TLS 1.3
Actual behavior
Application not working with SQL database with TLS 1.3.
[2023-06-30 02:54:43.802] ERROR [1688118883802] The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 1 (""): Data type 0x00 is unknown.
[2023-06-30 02:54:43.802] ERRORDTL [1688118883802]com.microsoft.sqlserver.jdbc.SQLServerException: The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 1 (""): Data type 0x00 is unknown.
Error message/stack trace
[2023-06-30 02:54:43.802] ERROR getSIVersion()
[2023-06-30 02:54:43.802] ERROR [1688118883802] The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 1 (""): Data type 0x00 is unknown.
[2023-06-30 02:54:43.802] ERRORDTL [1688118883802]com.microsoft.sqlserver.jdbc.SQLServerException: The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 1 (""): Data type 0x00 is unknown.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:265)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1695)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:620)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:539)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7685)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:4048)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:272)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:246)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(SQLServerPreparedStatement.java:457)
at com.sterlingcommerce.security.lc.LM.getSIVersion(LM.java:955)
at com.sterlingcommerce.security.lc.LM.loadMap(LM.java:2582)
at com.sterlingcommerce.security.lc.LM.loadOldSet(LM.java:3114)
at com.sterlingcommerce.security.lc.LM.reload(LM.java:3380)
at com.sterlingcommerce.security.lc.LM.refresh(LM.java:3319)
at com.sterlingcommerce.security.lc.LM.(LM.java:3454)
at com.sterlingcommerce.security.lc.LicenseVerify.checkAndInstallLicense(LicenseVerify.java:57)
at com.sterlingcommerce.security.lc.LicenseVerify.checkSfgLicense(LicenseVerify.java:28)
at com.sterlingcommerce.security.lc.LicenseVerify.checkLicenses(LicenseVerify.java:17)
at com.sterlingcommerce.woodstock.ops.server.PassPhrase.startup(PassPhrase.java:325)
at com.sterlingcommerce.woodstock.ops.server.PassPhrase.main(PassPhrase.java:137)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:90)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
at java.lang.reflect.Method.invoke(Method.java:508)
at com.sterlingcommerce.woodstock.noapp.NoAppLoader.main(NoAppLoader.java:99)
[2023-06-30 02:54:43.802] ERROR<PHONE_NUMBER>00 GLOBAL_SCOPE getSIVersion()
Any other details that can be helpful
Its puzzling why the standalone program is working but not working with application. The same works with TLSv1.2.
JDBC trace logs
Not available.

Hi @4devwithgit,
What is the connection string you are using?

This is the connection properties, which is not working with TLSv1.3,
mssqlPool.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
mssqlPool.url=jdbc:sqlserver://b2biqawinmk2.in.syncsort.dev:1433;databaseName=B2BTEST13;SelectMethod=cursor
mssqlPool.trustStore=C:/B2BI/6200/MSSQLServer2022_TLS1.3_103.35/truststore.jks
mssqlPool.trustStorePassword=password
mssqlPool.encrypt=strict
mssqlPool.hostNameInCertificate=b2biqawinmk2.in.syncsort.dev
mssqlPool.trustServerCertificate=false
mssqlPool.sslProtocol=TLSv1.3
mssqlPool.user=b2biuser
mssqlPool.password=password
#mssqlPool.maxconn=20
mssqlPool.storedProcClassName=com.sterlingcommerce.woodstock.util.frame.jdbc.SybaseStoredProcQuery
mssqlPool.varDataClassName=com.sterlingcommerce.woodstock.util.frame.jdbc.MSSQLVarData
mssqlPool.catalog=B2BTEST13
mssqlPool.type=remote
mssqlPool.transaction=true
mssqlPool.testOnReserve=true
mssqlPool.testOnReserveQuery=SELECT PRODUCT_LABEL from SI_VERSION where PRODUCT_LABEL = ?
mssqlPool.testOnReserveInterval=60000
mssqlPool.maxRetries=100
mssqlPool.blobPageSize=1024000
mssqlPool.compressBlob=true
mssqlPool.dbvendor=mssql
mssqlPool.buffersize=500
mssqlPool.maxsize=30
mssqlPool.initsize=1
mssqlPool.factory=com.sterlingcommerce.woodstock.util.frame.jdbc.ConnectionFactory
mssqlPool.behaviour=2
mssqlPool.lifespan=0
mssqlPool.idletimeout=86400000
mssqlPool.housekeepinginterval=3600000
mssqlPool.waittime=1000
mssqlPool.errorMissingTable=16945
mssqlPool.systemPool=true
useNewStateAndStatusLogic=true
useMSSQLConvert=

Okay and what is the statement? This - Parameter 1 (""): Data type 0x00 is unknown makes me think there is an issue there.

The above parameters worked fine in simple java application. So, there are two possibilities,

either application is not reading them properly, doing some additional stuff
Some additional settings are required on DB or application to make TLSv1.3 work inspite of working correctly in java program, and query were run from java program as well.

If TLS 1.3 is working fine in the "simple" Java application, then the issue is in whatever the difference is between the "simple" application and the "actual" application.
I was asking for information on the query because that's what the error points to, please look into what is being passed in at that point by your application.
Since you are able to use the driver correctly with TLS 1.3, this seems to me like an issue with either your application or the data being passed in. We'll keep this open for a bit, and please update us if you run into further issues or get more information from testing on your end.

hi @4devwithgit
Given that everything works fine in a standalone java application and only not in your "actual" app this points to the problem being in your "actual" app and not a driver issue so you will need to debug that at your end. We will be closing this please feel free to request reopening if you have more driver related questions.

In my standalone program too if I use "SelectMethod=cursor" in the url as,
String url = "jdbc:sqlserver://b2biqawinmk2.in.syncsort.dev:1433;databaseName=B2BTEST13;SelectMethod=cursor";
I get below error in SQL query statement execution, which is similar,
Querying values from table
Connection Failed! Check output console
com.microsoft.sqlserver.jdbc.SQLServerException: The incoming tabular data stream (TDS) protocol stream is incorrect. The stream ended unexpectedly.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:265)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1695)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteCursored(SQLServerStatement.java:2093)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:894)
at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:814)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7685)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:4048)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:272)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:246)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeQuery(SQLServerStatement.java:736)
at SQLServer.main(SQLServer.java:120)
And without SelectMethod, it goes to completion without any errors. Not sure why this is coming into picture only when TLS version in use is TLSv1.3, which is using TDS 8.0 stream.

I see the errors are not in getting the connection objects, but rather in the execution of the Prepared Statement.
Below are two examples, where code is throwing errors with tls1.3 but not with tls 1.2

     prep_stmt = conn.prepareStatement("select LIC_PROD_VER from SI_VERSION where UPPER(PRODUCT_LABEL) = ?");
     prep_stmt.setString(1, LICENSED_PRODUCT_LABEL.toUpperCase());
     **rs = prep_stmt.executeQuery();**

connect();
PreparedStatement stmt = conn.prepareStatement(sql);
System.out.println("-------------------------------------------------");
System.out.println("command: " + sql);
System.out.println("-------------------------------------------------");
stmt.execute();
int count = stmt.getUpdateCount();

I'm also seeing the same error. Were you able to resolve the issue?

yeah, it required the correct driver, and also the correct SQL version. It was an issue with the SQL Server.

I just figured out that I need to install the cumulative update to fix this bug. Thank you!


Parallel Frustum Culling

Objective
Working with a large number of entities with Aabbs, rendered with an instanced shader, I found the bottleneck became the frustum culling system. The goal of this PR is to significantly improve culling performance without any major changes. We should consider constructing a BVH for more substantial improvements.
Solution

Convert the inner entity query to a parallel iterator with par_for_each_mut using a batch size of 1,024.
This outperforms single threaded culling when there are more than 1,000 entities.

Below this they are approximately equal, with <= 10 microseconds of multithreading overhead.
Above this, the multithreaded version is significantly faster, scaling linearly with core count.

In my million-entity-workload, this PR improves my framerate by 200% - 300%.

log-log of check_visibility time vs. entities for single/multithreaded

Changelog
Frustum culling is now run with a parallel query. When culling more than a thousand entities, this is faster than the previous method, scaling proportionally with the number of available cores.

@superdump do we have an example to visually test if frustum culling is working, like:
https://raw.githubusercontent.com/aevyrie/bevy_frustum_culling/master/docs/demo1.webp

I did some profiling, it looks like there is a lot of room for improvement by swapping the Arc<RwLock> with something that doesn't require waiting on locks. Does bevy have a favored dependency for channels? Seems like this could be solved will with flume or something similar. Just need to be able to yeet visible entities into a list and collect it at the end.

I believe bevy already uses crossbeam-channel

Setup:
1,000,000 entities, camera at origin, pointing out along z axis. Should result in culling 5/6 of entities.
Measurement:
Mean system duration
baseline: 49.929203ms
parallel rwlock: 55.170353ms 😳😳😳
parallel channel: 34.951794ms

This suggests I should run this benchmark across a number of entities to ensure it isn't slower for a small number of entities.

I was about to ask for this :D

@alice-i-cecile, ask and ye shall receive.

Entities
parallel b = 10,000
baseline

125
0.041ms
0.027ms

1000
0.17ms
0.14ms

27,000
1.00ms
1.70ms

125,000
2.86ms
7.21ms

1,000,000
11.50ms
49.93ms

##log-log system runtime [ms] vs. method (single/multithreaded)

As the number of entities decreases, the existing single threaded implementation starts to become faster at around 2,500 entities. It's worth pointing out that when you get down to 125 entities, the absolute advantage is on the order of 20 microseconds. Another important note - these tests were run on a mobile i7-11800H with 8 cores and 16 threads.

Sorry to be a bother but could you take some more measurements between 1000 and 27000?

@superdump do we have an example to visually test if frustum culling is working, like:
https://raw.githubusercontent.com/aevyrie/bevy_frustum_culling/master/docs/demo1.webp
Edit: maybe a benchmark would be even better?

I had responded to this and I was certain I’d pressed send. I had a similar kind of thing when i was testing but it would be good to have an example or visual test, for sure. I’ll probably reuse/extend it for cascaded shape maps and maybe clustered forward rendering. All of which have important culling related to frusta.

@superdump I've updated the data, plots, and supporting text.
I suppose it makes sense the multithreaded tapers off just before 10k - it's not a continuous function but a piecewise function as it is only parallel across batches. 10k entities is the first point at which we should even be able to see any improvement. This suggests to me that the delta between multi/single below 8000 entities is probably within the noise.
I wonder if sizing batches to n_entities/n_cpus would be fruitful?

@superdump I've updated the data, plots, and supporting text.
I suppose it makes sense the multithreaded tapers off just before 10k - it's not a continuous function but a piecewise function as it is only parallel across batches. 10k entities is the first point at which we should even be able to see any improvement. This suggests to me that the delta between multi/single below 8000 entities is probably within the noise.

Maybe it's unnecessary, but I'm feeling like 0.05ms is not insignificant, given it is over half a percent of the frame time at 120fps.  So maybe it's worth switching whether to do it in parallel or serial depending on the number of entities to be culled?

I added b=1024 and re-ran all the tests, I mistakenly had the power unplugged for some. The results show parallel with b=1024 is the best pick. Now the only time singled threaded has an advantage is <1000 entities, and the gap is only ~10 microseconds. I can take a more precise look at this if you think it's significant.

I added b=1024 and re-ran all the tests, I mistakenly had the power unplugged for some. The results show parallel with b=1024 is the best pick. Now the only time singled threaded has an advantage is <1000 entities, and the gap is only ~10 microseconds. I can take a more precise look at this if you think it's significant.

Nope. All good for me.

Did you try varying the amount of threads available too?

Did you try varying the amount of threads available to the task pool too when trying to determine batch size?

Good point. It doesn’t need to block this PR imo and can come separately, but noting the idea: as I’ve discussed previously, I feel we should make each task pool able to use all cores, and only deal with contention issues when they arise. Otherwise the parallelism when using the pools is artificially limited. So perhaps reconfigure the compute task pool to be able to use various numbers of threads up to about 1.5x your logical threads, and see how the batch size behaves then?

It turns out the many_cubes example (with the sphere flag) is a good test case for this.

Threads
b= 10000
b=1024
b=512
b=32

1

5.69

4

4.13

6

3.85

8

3.48

12
3.08
2.70
3.70
6.63

3.47

Method
runtime

baseline
7.72

for_each
7.02

filter_map
7.56

@aevyrie what is the second table about there? the baseline vs for_each vs filter_map? It looks like we always have a performance improvement with the channel batch size set to 1024, right?

@aevyrie what is the second table about there? the baseline vs for_each vs filter_map?

That table was an attempt at using the original single-threaded version, but using iterators instead of for.

It looks like we always have a performance improvement with the channel batch size set to 1024, right?

Correct, even when only a single thread is used, though I am not certain why.
I think we could favor merging #4663, assuming it is approved, instead of this PR. It uses this approach in addition to a few other improvements.

I think we could favor merging https://github.com/bevyengine/bevy/pull/4663, assuming it is approved, instead of this PR. It uses this approach in addition to a few other improvements.

@aevyrie I'm removing Ready-For-Final-Review as a result. This PR also needs to be rebased :)

@alice-i-cecile I actually would suggest merging this first. If only because this one is well benchmarked and profiled so far: it's clearly a win for giant scenes, and it provides an in-engine example for testing the changes in #4663 as well as #4777. It'd also make #4663 easier to compare against this one.

Sounds good. I'm happy to do that; @aevyrie if you're on board a rebase would be appreciated.

bors r+

bors retry


Remove Advertising Terms & Conditions links from footers

 Remover Footer Link for Advertising Terms and Conditions from all sites


re-add docs symlink

Got removed in 80483a5a105ad19dc8a0e389275f40eb4ee8da67 for no apparent
reason.
This broke our rtd build.

ack

Pushed to master via https://github.com/crate/crate/commit/49600719fc027b7cfa8d97041038b114e0c13213


Get marker delimitation

Hello,
I am writing a WYSIWYG Markdown editor focused on math and science, and I want to use Markdown as the base format. The problem I am going to describe is present in many other Markdown parsers,  as a result I decided to completely write a new parser from scratch (in C++) and make some modifications to the Markdown standard to fit my own needs (this is the result).
The prototype I wrote was working okay, but now I've decided to rewrite the whole application in Rust, and also decided to not maintain my own parser which is much more prone to bugs and crashes.
The marker delimitation problem
I am rewriting what I wrote here: https://github.com/jokteur/ab-parser#the-delimitation-marker-problem.
For my WYSIWYG application, I need to know where the markers of a specific block / span are, to temporarily display to the user the markers, like on this demo here: https://github.com/wooorm/markdown-rs/assets/25845695/420c1496-7306-4c69-b7ca-74059ec95886
Let's say that we have the following Markdown example:
- >> [abc
  >> def](example.com)

This example would generate an abstract syntax tree (AST) like:
DOC
  UL
    LI
      QUOTE
        QUOTE
          P
            URL
              TEXT

How do we attribute each non-text markers (like -, >, [, ...) to the correct block / span ?
My parser was created to solve this specific problem, while keeping reasonable performance. To do this, each object (BLOCK or SPAN) is represented by an vector of boundaries. A boundary is defined as follows:
struct Boundary {
    line_number: usize,
    pre: usize,
    beg: usize,
    end: usize,
    post: usize,
}

This struct designates offsets in the raw text which form its structure. line_number is the line number in the raw text on which the boundary is currently operating. Offsets between pre and beg are the  pre-delimiters, and offsets between end and post are the post-delimiters. Everything between beg and end is the content of the block / span.
Here is a simple example. Suppose we have the following text: _italic_, which starts at line 0 and offset 0 then the boundary struct would look like {0, 0, 1, 7, 8}.
Going back to the first example, we now use the following notation to illustrate ownership of markers: if there is x, it indicates a delimiter, if there is _ it indicates content, and . indicates not in boundary. Here are the ownership for each block and span:
- >> [abc
  >> def](example.com)

UL:
_________
______________________

LI:
xx_______
xx____________________

QUOTE (1st):
..x______
..x___________________

QUOTE (2nd):
...xx____
...xx_________________

P:
.....____
....._________________

URL:
.....x___
.....___xxxxxxxxxxxxxx

TEXT:
......___
.....___..............

Is there any simple way to rewrite this kind of information ?
Currently, markdown-rs provides positional information like this:
Text { value: "abc\ndef", position: Some(1:7-2:10 (6-19)) }

I may have a workaround to rewrite this kind of information (after it has been parsed, go from leaf nodes, compare the text with raw text, and check which chars are part of the node or node, and attribute them to the parent). This workaround may be slow, but it is okay for my usage because I only need marker delimitation information where the cursor is (not on the whole document).
I don't really know how well markdown-rs works, how difficult would it be that have this information built-in the parser ?

Welcome @jokteur! 👋
The overview of the project is a good starting point. https://github.com/wooorm/markdown-rs#overview
The process to parse markdown looks like this:
                    markdown-rs
+-------------------------------------------------+
|            +-------+         +---------+--html- |
| -markdown->+ parse +-events->+ compile +        |
|            +-------+         +---------+-mdast- |
+-------------------------------------------------+

If you want to work with raw events/tokens, rather than the AST, use the parse file/function.

And would they be any way to use the parser file/function without forking the project ? Because currently this API is private, which doesn't allow me to implement my own compiler on top of markdown-rs.

In the JavaScript side there is a lower level package micromark that exposes this.
@wooorm may be able to comment on the intent on the rust side.


LangChain tool errors when running with controlflow built from main (works fine with 0.8.2)

Description
Ran script in #222 in a fresh environment.
Errors with AttributeError: 'DuckDuckGoSearchRun' object has no attribute 'to_lc_tool'
Example Code
Version below changes how agents are passed to avoid deprecation warning (ran it both ways).

# uv pip install langchain-community, duckduckgo-search

import controlflow as cf
from langchain_community.tools import DuckDuckGoSearchRun

summarizer = cf.Agent(
    name="Headline Summarizer",
    description="An AI agent that fetches and summarizes current events",
    tools=[DuckDuckGoSearchRun()],
)

extractor = cf.Agent(
    name="Entity Extractor",
    description="An AI agent that does named entity recognition",
)

@cf.flow
def get_headlines():

    summarizer_task = cf.Task(
        "Retrieve and summarize today's two top business headlines",
        agent=summarizer,
        result_type=list[str],
    )

    extractor_task = cf.Task(
        "Extract any fortune 500 companies mentioned in the headlines and whether the sentiment is positive, neutral, or negative",
        agent=extractor,
        depends_on=[summarizer_task],
    )

    return summarizer_task, extractor_task

if __name__ == "__main__":
    headlines, entity_sentiment = get_headlines()
    print(headlines, entity_sentiment)

Version Information
Same package versions in working and non-working cases other than controlflow:
controflow         0.8.3.dev54+gc90dfbb

duckduckgo-search         6.1.12
langchain                 0.2.7                    pypi_0    pypi
langchain-anthropic       0.1.19                   pypi_0    pypi
langchain-community       0.2.7                    pypi_0    pypi
langchain-core            0.2.16                   pypi_0    pypi
langchain-openai          0.1.15                   pypi_0    pypi
langchain-text-splitters  0.2.2                    pypi_0    pypi

Additional Context
09:49:07.241 | ERROR   | Flow run 'cerulean-coyote' - Encountered exception during execution: AttributeError("'DuckDuckGoSearchRun' object has no attribute 'to_lc_tool'")
Traceback (most recent call last):
  File "/opt/homebrew/Caskroom/miniforge/base/envs/cfmain/lib/python3.12/site-packages/prefect/flow_engine.py", line 635, in run_context
    yield self
  File "/opt/homebrew/Caskroom/miniforge/base/envs/cfmain/lib/python3.12/site-packages/prefect/flow_engine.py", line 676, in run_flow_sync
    engine.call_flow_fn()
  File "/opt/homebrew/Caskroom/miniforge/base/envs/cfmain/lib/python3.12/site-packages/prefect/flow_engine.py", line 655, in call_flow_fn
    result = call_with_parameters(self.flow.fn, self.parameters)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Caskroom/miniforge/base/envs/cfmain/lib/python3.12/site-packages/prefect/utilities/callables.py", line 208, in call_with_parameters
    return fn(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Caskroom/miniforge/base/envs/cfmain/lib/python3.12/site-packages/controlflow/decorators.py", line 120, in wrapper
    flow_obj.run()
  File "/opt/homebrew/Caskroom/miniforge/base/envs/cfmain/lib/python3.12/site-packages/controlflow/flows/flow.py", line 134, in run
    orchestrator.run(steps=steps)
  File "/opt/homebrew/Caskroom/miniforge/base/envs/cfmain/lib/python3.12/site-packages/controlflow/orchestration/orchestrator.py", line 114, in run
    agent._run(context=context)
  File "/opt/homebrew/Caskroom/miniforge/base/envs/cfmain/lib/python3.12/site-packages/controlflow/agents/agent.py", line 202, in _run
    for event in self._run_model(messages=messages, tools=context.tools):
  File "/opt/homebrew/Caskroom/miniforge/base/envs/cfmain/lib/python3.12/site-packages/controlflow/agents/agent.py", line 227, in _run_model
    model = self.get_model(tools=tools)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Caskroom/miniforge/base/envs/cfmain/lib/python3.12/site-packages/controlflow/agents/agent.py", line 159, in get_model
    model = model.bind_tools([t.to_lc_tool() for t in tools])
                              ^^^^^^^^^^^^
AttributeError: 'DuckDuckGoSearchRun' object has no attribute 'to_lc_tool'
09:49:07.370 | ERROR   | Flow run 'cerulean-coyote' - Finished in state Failed("Flow run encountered an exception: AttributeError: 'DuckDuckGoSearchRun' object has no attribute 'to_lc_tool'")
Traceback (most recent call last):
  File "/Users/jeffhale/Desktop/prefect/demos/cf/cf_example.py", line 38, in <module>
    headlines, entity_sentiment = get_headlines()
                                  ^^^^^^^^^^^^^^^
  File "/opt/homebrew/Caskroom/miniforge/base/envs/cfmain/lib/python3.12/site-packages/prefect/flows.py", line 1326, in __call__
    return run_flow(
           ^^^^^^^^^
  File "/opt/homebrew/Caskroom/miniforge/base/envs/cfmain/lib/python3.12/site-packages/prefect/flow_engine.py", line 798, in run_flow
    return run_flow_sync(**kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Caskroom/miniforge/base/envs/cfmain/lib/python3.12/site-packages/prefect/flow_engine.py", line 678, in run_flow_sync
    return engine.state if return_type == "state" else engine.result()
                                                       ^^^^^^^^^^^^^^^
  File "/opt/homebrew/Caskroom/miniforge/base/envs/cfmain/lib/python3.12/site-packages/prefect/flow_engine.py", line 243, in result
    raise self._raised
  File "/opt/homebrew/Caskroom/miniforge/base/envs/cfmain/lib/python3.12/site-packages/prefect/flow_engine.py", line 635, in run_context
    yield self
  File "/opt/homebrew/Caskroom/miniforge/base/envs/cfmain/lib/python3.12/site-packages/prefect/flow_engine.py", line 676, in run_flow_sync
    engine.call_flow_fn()
  File "/opt/homebrew/Caskroom/miniforge/base/envs/cfmain/lib/python3.12/site-packages/prefect/flow_engine.py", line 655, in call_flow_fn
    result = call_with_parameters(self.flow.fn, self.parameters)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Caskroom/miniforge/base/envs/cfmain/lib/python3.12/site-packages/prefect/utilities/callables.py", line 208, in call_with_parameters
    return fn(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Caskroom/miniforge/base/envs/cfmain/lib/python3.12/site-packages/controlflow/decorators.py", line 120, in wrapper
    flow_obj.run()
  File "/opt/homebrew/Caskroom/miniforge/base/envs/cfmain/lib/python3.12/site-packages/controlflow/flows/flow.py", line 134, in run
    orchestrator.run(steps=steps)
  File "/opt/homebrew/Caskroom/miniforge/base/envs/cfmain/lib/python3.12/site-packages/controlflow/orchestration/orchestrator.py", line 114, in run
    agent._run(context=context)
  File "/opt/homebrew/Caskroom/miniforge/base/envs/cfmain/lib/python3.12/site-packages/controlflow/agents/agent.py", line 202, in _run
    for event in self._run_model(messages=messages, tools=context.tools):
  File "/opt/homebrew/Caskroom/miniforge/base/envs/cfmain/lib/python3.12/site-packages/controlflow/agents/agent.py", line 227, in _run_model
    model = self.get_model(tools=tools)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Caskroom/miniforge/base/envs/cfmain/lib/python3.12/site-packages/controlflow/agents/agent.py", line 159, in get_model
    model = model.bind_tools([t.to_lc_tool() for t in tools])
                              ^^^^^^^^^^^^
AttributeError: 'DuckDuckGoSearchRun' object has no attribute 'to_lc_tool'

Thank you! Replicated, looking.


Move discussions to staticman

See https://gohugo.io/templates/internal/#disqus

closing this for now. utteranc.es works quite well. adding static man to dnb-hugo


BitShares crashes on startup.

I compiled Bitshares myself and I get the user agreement window, which is bigger than my monitor by the way, and I accept it but then it crashes immediately once I get past it.  It tries to free the same memory twice.

Can you provide some more info about your build process? For example, what OS are you compiling on?

Certainly: Linux/Slackware 32-bit i86 boost 1.55
I couldn't get the thing to build as is.  I apply this patch below for the Makefiles.  To get it to build.  I tried the HEAD version after git checkout.  I am trying v<IP_ADDRESS> now with the patch below.  it also crashes.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0d9597d..972f90c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -42,7 +42,6 @@ LIST(APPEND BOOST_COMPONENTS thread
context
locale)
-set(Boost_USE_STATIC_LIBS ON)
IF( WIN32 )
SET(BOOST_ROOT $ENV{BOOST_ROOT})
set(Boost_USE_MULTITHREADED ON)
@@ -161,7 +160,6 @@ else( WIN32 ) # Apple AND Linux
endif()
endif()

set(Boost_USE_STATIC_LIBS ON)
endif( WIN32 )

list(APPEND LEVEL_DB_SOURCES "${LEVELDB_PORT_FILE}")
diff --git a/libraries/client/CMakeLists.txt b/libraries/client/CMakeLists.txt
index c0965cd..ebd8111 100644
--- a/libraries/client/CMakeLists.txt
+++ b/libraries/client/CMakeLists.txt
@@ -20,7 +20,7 @@ endif(MSVC)
target_link_libraries( bts_client
PRIVATE bts_db bts_blockchain bitcoin fc leveldb

                  PUBLIC bts_api bts_net bts_wallet bts_cli bts_rpc bts_rpc_stubs bts_mail )

                  PUBLIC bts_api bts_net bts_wallet bts_cli bts_rpc bts_rpc_stubs bts_mail atomic )

target_include_directories( bts_client
PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include"
PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/include" )
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0fbd5ce..510af13 100644
--- a/libraries/fc/CMakeLists.txt
+++ b/libraries/fc/CMakeLists.txt
@@ -44,7 +44,6 @@ IF( WIN32 )
SET(BOOST_ROOT $ENV{BOOST_ROOT})
set(Boost_USE_DEBUG_PYTHON ON)
set(Boost_USE_MULTITHREADED ON)

set(Boost_USE_STATIC_LIBS ON)
set(BOOST_ALL_DYN_LINK OFF) # force dynamic linking for all libraries
FIND_PACKAGE(Boost 1.53 REQUIRED COMPONENTS ${BOOST_COMPONENTS})
@@ -62,7 +61,6 @@ IF( WIN32 )
ELSE(WIN32)
MESSAGE(STATUS "Configuring fc to build on Unix/Apple")

SET(Boost_USE_STATIC_LIBS ON)
LIST(APPEND BOOST_COMPONENTS coroutine)
FIND_PACKAGE(Boost 1.53 REQUIRED COMPONENTS ${BOOST_COMPONENTS})
@@ -231,7 +229,7 @@ target_include_directories(fc
target_link_libraries( fc PUBLIC easylzma_static udt ${Boost_LIBRARIES} ${OPENSSL_LIBRARIES} ${ZLIB_LIBRARIES} ${PLATFORM_SPECIFIC_LIBS} ${RPCRT4} ${CMAKE_DL_LIBS} ${rt_library})

add_executable( ntp_test ntp_test.cpp )
-target_link_libraries( ntp_test fc )
+target_link_libraries( ntp_test fc atomic )
add_executable( task_cancel_test tests/task_cancel.cpp )
target_link_libraries( task_cancel_test fc )

I only build the qt wallet.  I cannot build the other client yet.

@shawnpringle Can you get a stack trace of the crash by running in gdb/lldb?

On 01/19/2015 02:27 PM, Vikram Rajkumar wrote:

@shawnpringle Can you get a stack trace of the crash by running in gdb/lldb?

Reply to this email directly or view it on GitHub:
https://github.com/BitShares/bitshares/issues/1266#issuecomment-70530548

done:
#0  0xb43739dc in raise () from /lib/libc.so.6
#1  0xb43751f3 in abort () from /lib/libc.so.6
#2  0xb43b4e4a in __libc_message () from /lib/libc.so.6
#3  0xb43bcd78 in _int_free () from /lib/libc.so.6
#4  0xb4575a2f in operator delete(void*) () from /usr/lib/libstdc++.so.6
#5  0xb51b9e74 in QMouseEvent::~QMouseEvent() () from
/usr/lib/libQt5Gui.so.5
#6  0xb5a30cba in QWebPageAdapter::adjustPointForClicking(QMouseEvent*) ()
from /usr/lib/libQt5WebKit.so.5
---Type  to continue, or q  to quit---
#7  0xb582260b in QWebPage::event(QEvent*) () from
/usr/lib/libQt5WebKitWidgets.so.5
#8  0xb5813c0b in
QGraphicsWebView::mousePressEvent(QGraphicsSceneMouseEvent*) ()
from /usr/lib/libQt5WebKitWidgets.so.5
#9  0xb7d8dd0f in QGraphicsItem::sceneEvent(QEvent*) () from
/usr/lib/libQt5Widgets.so.5
#10 0xb7df3566 in QGraphicsWidget::sceneEvent(QEvent*) () from
/usr/lib/libQt5Widgets.so.5
#11 0xb5815ae6 in QGraphicsWebView::sceneEvent(QEvent*) () from
/usr/lib/libQt5WebKitWidgets.so.5
#12 0xb7db889e in ?? () from /usr/lib/libQt5Widgets.so.5
#13 0xb7db8cb9 in ?? () from /usr/lib/libQt5Widgets.so.5
---Type  to continue, or q  to quit---
#14 0xb7dc1b07 in ?? () from /usr/lib/libQt5Widgets.so.5
#15 0xb7dc2017 in
QGraphicsScene::mousePressEvent(QGraphicsSceneMouseEvent*) ()
from /usr/lib/libQt5Widgets.so.5
#16 0xb7dcc344 in QGraphicsScene::event(QEvent*) () from
/usr/lib/libQt5Widgets.so.5
#17 0xb7a67254 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
from /usr/lib/libQt5Widgets.so.5
18 0xb7a6c651 in QApplication::notify(QObject*, QEvent*) () from
/usr/lib/libQt5Widgets.so.5
#19 0x084bbb1c in BitSharesApp::notify (this=0xbffff4b0,
receiver=0xa12c240, e=0xbfffe620)
---Type  to continue, or q  to quit---
at
/home/shawn/development/pkg/bitshares/programs/qt_wallet/BitSharesApp.cpp:547
#20 0xb4d52cea in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
from /usr/lib/libQt5Core.so.5
#21 0xb7a658cd in ?? () from /usr/lib/libQt5Widgets.so.5
#22 0xb7dea1f3 in QGraphicsView::mousePressEvent(QMouseEvent*) () from
/usr/lib/libQt5Widgets.so.5
#23 0xb7aa94be in QWidget::event(QEvent*) () from
/usr/lib/libQt5Widgets.so.5
#24 0xb7bc751c in QFrame::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#25 0xb7c57fb4 in QAbstractScrollArea::viewportEvent(QEvent*) () from
/usr/lib/libQt5Widgets.so.5
---Type  to continue, or q  to quit---
#26 0xb7deb7bf in QGraphicsView::viewportEvent(QEvent*) () from
/usr/lib/libQt5Widgets.so.5
#27 0xb7c58b06 in ?? () from /usr/lib/libQt5Widgets.so.5
#28 0xb4d52f21 in
QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) ()
from /usr/lib/libQt5Core.so.5
#29 0xb7a67231 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
from /usr/lib/libQt5Widgets.so.5
#30 0xb7a6d22a in QApplication::notify(QObject*, QEvent*) () from
/usr/lib/libQt5Widgets.so.5
#31 0x084bbb1c in BitSharesApp::notify (this=0xbffff4b0,
receiver=0xa138338, e=0xbfffeb28)
---Type  to continue, or q  to quit---
at
/home/shawn/development/pkg/bitshares/programs/qt_wallet/BitSharesApp.cpp:547
#32 0xb4d52cea in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
from /usr/lib/libQt5Core.so.5
#33 0xb7a6b4b9 in QApplicationPrivate::sendMouseEvent(QWidget*,
QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer&, bool)
() from /usr/lib/libQt5Widgets.so.5
#34 0xb7ac9845 in ?? () from /usr/lib/libQt5Widgets.so.5
#35 0xb7acbe34 in ?? () from /usr/lib/libQt5Widgets.so.5
#36 0xb7a67254 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
---Type  to continue, or q  to quit---
from /usr/lib/libQt5Widgets.so.5
#37 0xb7a6c651 in QApplication::notify(QObject*, QEvent*) () from
/usr/lib/libQt5Widgets.so.5
#38 0x084bbb1c in BitSharesApp::notify (this=0xbffff4b0,
receiver=0xa381548, e=0xbfffeec0)
at
/home/shawn/development/pkg/bitshares/programs/qt_wallet/BitSharesApp.cpp:547
#39 0xb4d52cea in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
from /usr/lib/libQt5Core.so.5
#40 0xb51ab241 in
QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*)
() from /usr/lib/libQt5Gui.so.5
---Type  to continue, or q  to quit---
#41 0xb51acb00 in
QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*)
() from /usr/lib/libQt5Gui.so.5
#42 0xb5190316 in
QWindowSystemInterface::sendWindowSystemEvents(QFlagsQEventLoop::ProcessEventsFlag)
() from /usr/lib/libQt5Gui.so.5
#43 0xb07f8cc1 in ?? () from /usr/lib/qt5/plugins/platforms/libqxcb.so
#44 0xb420c83e in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#45 0xb420cbe8 in ?? () from /usr/lib/libglib-2.0.so.0
#46 0xb420cca8 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#47 0xb4db240d in
QEventDispatcherGlib::processEvents(QFlagsQEventLoop::ProcessEventsFlag)
()
from /usr/lib/libQt5Core.so.5
#48 0xb07f8ec6 in ?? () from /usr/lib/qt5/plugins/platforms/libqxcb.so
#49 0xb4d50526 in
QEventLoop::processEvents(QFlagsQEventLoop::ProcessEventsFlag) ()
from /usr/lib/libQt5Core.so.5
#50 0xb4d50944 in QEventLoop::exec(QFlagsQEventLoop::ProcessEventsFlag) ()
from /usr/lib/libQt5Core.so.5
#51 0xb4d588ed in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
---Type  to continue, or q  to quit---
#52 0xb51a2e94 in QGuiApplication::exec() () from /usr/lib/libQt5Gui.so.5
#53 0xb7a65744 in QApplication::exec() () from /usr/lib/libQt5Widgets.so.5
#54 0x084bc36b in BitSharesApp::run (this=this@entry=0xbffff4b0)
at
/home/shawn/development/pkg/bitshares/programs/qt_wallet/BitSharesApp.cpp:413
#55 0x084bccd7 in BitSharesApp::run (argc=@0xbffff500: 1,
argv=argv@entry=0xbffff594)
at
/home/shawn/development/pkg/bitshares/programs/qt_wallet/BitSharesApp.cpp:316
#56 0x0848cda7 in main (argc=1, argv=0xbffff594)
at /home/shawn/development/pkg/bitshares/programs/qt_wallet/main.cpp:11

Formatting not working on previous comment:
#0 0xb43739dc in raise () from /lib/libc.so.6
#1 0xb43751f3 in abort () from /lib/libc.so.6
#2 0xb43b4e4a in __libc_message () from /lib/libc.so.6
#3 0xb43bcd78 in _int_free () from /lib/libc.so.6
#4 0xb4575a2f in operator delete(void*) () from /usr/lib/libstdc++.so.6
#5 0xb51b9e74 in QMouseEvent::~QMouseEvent() () from
/usr/lib/libQt5Gui.so.5
#6 0xb5a30cba in QWebPageAdapter::adjustPointForClicking(QMouseEvent*) ()
from /usr/lib/libQt5WebKit.so.5
---Type <return> to continue, or q <return> to quit---
#7 0xb582260b in QWebPage::event(QEvent*) () from
/usr/lib/libQt5WebKitWidgets.so.5
#8 0xb5813c0b in
QGraphicsWebView::mousePressEvent(QGraphicsSceneMouseEvent*) ()
from /usr/lib/libQt5WebKitWidgets.so.5
#9 0xb7d8dd0f in QGraphicsItem::sceneEvent(QEvent*) () from
/usr/lib/libQt5Widgets.so.5
#10 0xb7df3566 in QGraphicsWidget::sceneEvent(QEvent*) () from
/usr/lib/libQt5Widgets.so.5
#11 0xb5815ae6 in QGraphicsWebView::sceneEvent(QEvent*) () from
/usr/lib/libQt5WebKitWidgets.so.5
#12 0xb7db889e in ?? () from /usr/lib/libQt5Widgets.so.5
#13 0xb7db8cb9 in ?? () from /usr/lib/libQt5Widgets.so.5
---Type <return> to continue, or q <return> to quit---
#14 0xb7dc1b07 in ?? () from /usr/lib/libQt5Widgets.so.5
#15 0xb7dc2017 in
QGraphicsScene::mousePressEvent(QGraphicsSceneMouseEvent*) ()
from /usr/lib/libQt5Widgets.so.5
#16 0xb7dcc344 in QGraphicsScene::event(QEvent*) () from
/usr/lib/libQt5Widgets.so.5
#17 0xb7a67254 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
from /usr/lib/libQt5Widgets.so.5
18 0xb7a6c651 in QApplication::notify(QObject*, QEvent*) () from
/usr/lib/libQt5Widgets.so.5
#19 0x084bbb1c in BitSharesApp::notify (this=0xbffff4b0,
receiver=0xa12c240, e=0xbfffe620)
---Type <return> to continue, or q <return> to quit---
at
/home/shawn/development/pkg/bitshares/programs/qt_wallet/BitSharesApp.cpp:547
#20 0xb4d52cea in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
from /usr/lib/libQt5Core.so.5
#21 0xb7a658cd in ?? () from /usr/lib/libQt5Widgets.so.5
#22 0xb7dea1f3 in QGraphicsView::mousePressEvent(QMouseEvent*) () from
/usr/lib/libQt5Widgets.so.5
#23 0xb7aa94be in QWidget::event(QEvent*) () from
/usr/lib/libQt5Widgets.so.5
#24 0xb7bc751c in QFrame::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#25 0xb7c57fb4 in QAbstractScrollArea::viewportEvent(QEvent*) () from
/usr/lib/libQt5Widgets.so.5
---Type <return> to continue, or q <return> to quit---
#26 0xb7deb7bf in QGraphicsView::viewportEvent(QEvent*) () from
/usr/lib/libQt5Widgets.so.5
#27 0xb7c58b06 in ?? () from /usr/lib/libQt5Widgets.so.5
#28 0xb4d52f21 in
QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) ()
from /usr/lib/libQt5Core.so.5
#29 0xb7a67231 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
from /usr/lib/libQt5Widgets.so.5
#30 0xb7a6d22a in QApplication::notify(QObject*, QEvent*) () from
/usr/lib/libQt5Widgets.so.5
#31 0x084bbb1c in BitSharesApp::notify (this=0xbffff4b0,
receiver=0xa138338, e=0xbfffeb28)
---Type <return> to continue, or q <return> to quit---
at
/home/shawn/development/pkg/bitshares/programs/qt_wallet/BitSharesApp.cpp:547
#32 0xb4d52cea in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
from /usr/lib/libQt5Core.so.5
#33 0xb7a6b4b9 in QApplicationPrivate::sendMouseEvent(QWidget*,
QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool)
() from /usr/lib/libQt5Widgets.so.5
#34 0xb7ac9845 in ?? () from /usr/lib/libQt5Widgets.so.5
#35 0xb7acbe34 in ?? () from /usr/lib/libQt5Widgets.so.5
#36 0xb7a67254 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
---Type <return> to continue, or q <return> to quit---
from /usr/lib/libQt5Widgets.so.5
#37 0xb7a6c651 in QApplication::notify(QObject*, QEvent*) () from
/usr/lib/libQt5Widgets.so.5
#38 0x084bbb1c in BitSharesApp::notify (this=0xbffff4b0,
receiver=0xa381548, e=0xbfffeec0)
at
/home/shawn/development/pkg/bitshares/programs/qt_wallet/BitSharesApp.cpp:547
#39 0xb4d52cea in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
from /usr/lib/libQt5Core.so.5
#40 0xb51ab241 in
QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*)
() from /usr/lib/libQt5Gui.so.5
---Type <return> to continue, or q <return> to quit---
#41 0xb51acb00 in
QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*)
() from /usr/lib/libQt5Gui.so.5
#42 0xb5190316 in
QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>)
() from /usr/lib/libQt5Gui.so.5
#43 0xb07f8cc1 in ?? () from /usr/lib/qt5/plugins/platforms/libqxcb.so
#44 0xb420c83e in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#45 0xb420cbe8 in ?? () from /usr/lib/libglib-2.0.so.0
#46 0xb420cca8 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#47 0xb4db240d in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
()
from /usr/lib/libQt5Core.so.5
#48 0xb07f8ec6 in ?? () from /usr/lib/qt5/plugins/platforms/libqxcb.so
#49 0xb4d50526 in
QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
from /usr/lib/libQt5Core.so.5
#50 0xb4d50944 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
from /usr/lib/libQt5Core.so.5
#51 0xb4d588ed in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
---Type <return> to continue, or q <return> to quit---
#52 0xb51a2e94 in QGuiApplication::exec() () from /usr/lib/libQt5Gui.so.5
#53 0xb7a65744 in QApplication::exec() () from /usr/lib/libQt5Widgets.so.5
#54 0x084bc36b in BitSharesApp::run (this=this@entry=0xbffff4b0)
at
/home/shawn/development/pkg/bitshares/programs/qt_wallet/BitSharesApp.cpp:413
#55 0x084bccd7 in BitSharesApp::run (argc=@0xbffff500: 1,
argv=argv@entry=0xbffff594)
at
/home/shawn/development/pkg/bitshares/programs/qt_wallet/BitSharesApp.cpp:316
#56 0x0848cda7 in main (argc=1, argv=0xbffff594)
at /home/shawn/development/pkg/bitshares/programs/qt_wallet/main.cpp:11

@shawnpringle What version Qt are you using?

On 01/19/2015 04:44 PM, Vikram Rajkumar wrote:

@shawnpringle What version Qt are you using?

Reply to this email directly or view it on GitHub:
https://github.com/BitShares/bitshares/issues/1266#issuecomment-70549497

I am using Qt5 5.3.2.

This is what I get from compiling with ' cmake -DCMAKE_BUILD_TYPE=Debug . && make '
and runnging with gdb:
.....
3342219ms th_a       ClientWrapper.cpp:137         initialize           ] Starting client with data-dir: /home/camponez/.BitShares
Loading config from file: /home/camponez/.BitShares/config.json
[New Thread 0x7fff91bf8700 (LWP 3838)]
[New Thread 0x7fff911f6700 (LWP 3839)]
[New Thread 0x7fff909f5700 (LWP 3840)]
[New Thread 0x7fff83fff700 (LWP 3841)]
[New Thread 0x7fff837fe700 (LWP 3842)]
[New Thread 0x7fff82ffd700 (LWP 3843)]
[New Thread 0x7fff827fc700 (LWP 3844)]
[New Thread 0x7fff817e5700 (LWP 3845)]
[New Thread 0x7fff6284f700 (LWP 3848)]
[New Thread 0x7fff6204e700 (LWP 3849)]
[New Thread 0x7fff6184d700 (LWP 3850)]
[New Thread 0x7fff6104c700 (LWP 3851)]
[New Thread 0x7fff6084b700 (LWP 3852)]
[New Thread 0x7fff43fff700 (LWP 3853)]
[New Thread 0x7fff437fe700 (LWP 3854)]
[New Thread 0x7fff42d6f700 (LWP 3855)]
[New Thread 0x7fff315ea700 (LWP 3856)]
[New Thread 0x7fff30be8700 (LWP 3857)]
[New Thread 0x7fff2bfff700 (LWP 3858)]
[New Thread 0x7fff2b7fe700 (LWP 3859)]
[New Thread 0x7fff2affd700 (LWP 3860)]
[New Thread 0x7fff2a3fc700 (LWP 3861)]
/index.html
/css/app.css
/js/app.js
/locale-en.json
/img/logo-ico.svg
[New Thread 0x7fff168e7700 (LWP 3863)]
/webfonts/opensans-regular.woff
/webfonts/fontawesome-webfont.woff
/img/xt-background.jpg
/img/xts-logo-xl-white-shadow.png
Program received signal SIGSEGV, Segmentation fault.
0x00007fffe7e2b138 in ?? () from /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so

The same command as componez (with my changes I referred to earlier) above yields
[ 48%] Built target ntp_test
[ 49%] Building CXX object libraries/fc/CMakeFiles/real128_test.dir/tests/real128_test.cpp.o
Linking CXX executable real128_test
/usr/lib/gcc/i486-slackware-linux/4.8.2/../../../crt1.o: In function _start': /glibc-tmp-54d4f9a739bee778aed982975d53262e/glibc-2.17/csu/../sysdeps/i386/start.S:113: undefined reference to main'
collect2: error: ld returned 1 exit status
make[2]: *** [libraries/fc/real128_test] Error 1
make[1]: *** [libraries/fc/CMakeFiles/real128_test.dir/all] Error 2
make: *** [all] Error 2
To build the default target, this also needs -shared option to c++

@shawnpringle Is this still occurring in 0.6.0 ?

On 02/09/2015 06:13 PM, Vikram Rajkumar wrote:

@shawnpringle Is this still occurring in 0.6.0 ?

Reply to this email directly or view it on GitHub:
https://github.com/BitShares/bitshares/issues/1266#issuecomment-73591168

I have quit testing bitshares.
Shawn


Update docs/changelog for 2.1.1 tag/release

update sdk-components-ng to 2.1.1 release
update sdk-graph-components to 2.1.1 release
update version to 2.1.1

updating this to 2.1.2 since there are bugfixes in there for that.


Windows Support

Using Python 3.11, pytorch 2.5.1, cuda 12.4 here.
I was able to install a triton wheel of this windows port to ensure compatibility.
https://github.com/woct0rdho/triton-windows
I also locally built a complete wheel for flash attention 2.6.3 to support training, not just inference.
The following command gets pretty far:
pip install --upgrade "unsloth[cu124-ampere-torch250] @ git+https://github.com/unslothai/unsloth.git"

The following prerequistes were satisfied:
Requirement already satisfied: bitsandbytes>=0.43.3 in c:\users\jim\appdata\local\programs\python\python311\lib\site-packages (from unsloth@ git+https://github.com/unslothai/unsloth.git->unsloth[cu124-ampere-torch250]@ git+https://github.com/unslothai/unsloth.git) (0.44.1)
Requirement already satisfied: packaging in c:\users\jim\appdata\local\programs\python\python311\lib\site-packages (from unsloth@ git+https://github.com/unslothai/unsloth.git->unsloth[cu124-ampere-torch250]@ git+https://github.com/unslothai/unsloth.git) (24.1)
Requirement already satisfied: ninja in c:\users\jim\appdata\local\programs\python\python311\lib\site-packages (from unsloth@ git+https://github.com/unslothai/unsloth.git->unsloth[cu124-ampere-torch250]@ git+https://github.com/unslothai/unsloth.git) (<IP_ADDRESS>)
Requirement already satisfied: flash-attn>=2.6.3 in c:\users\jim\appdata\local\programs\python\python311\lib\site-packages (from unsloth@ git+https://github.com/unslothai/unsloth.git->unsloth[cu124-ampere-torch250]@ git+https://github.com/unslothai/unsloth.git) (2.6.3)
Requirement already satisfied: torch in c:\users\jim\appdata\local\programs\python\python311\lib\site-packages (from bitsandbytes>=0.43.3->unsloth@ git+https://github.com/unslothai/unsloth.git->unsloth[cu124-ampere-torch250]@ git+https://github.com/unslothai/unsloth.git) (2.5.1+cu124)
Requirement already satisfied: numpy in c:\users\jim\appdata\local\programs\python\python311\lib\site-packages (from bitsandbytes>=0.43.3->unsloth@ git+https://github.com/unslothai/unsloth.git->unsloth[cu124-ampere-torch250]@ git+https://github.com/unslothai/unsloth.git) (1.26.4)
Requirement already satisfied: einops in c:\users\jim\appdata\local\programs\python\python311\lib\site-packages (from flash-attn>=2.6.3->unsloth@ git+https://github.com/unslothai/unsloth.git->unsloth[cu124-ampere-torch250]@ git+https://github.com/unslothai/unsloth.git) (0.8.0)

Unfortunately, this is the current obstacle:
ERROR: xformers-0.0.28.post2-cp311-cp311-manylinux_2_28_x86_64.whl is not a supported wheel on this platform.

We plan to fix up pyproject.toml to enable Windows support!!

@jtabox Sorry on the delay - could you try pip install unsloth unsloth _zoo --no-deps - you will have to install all dependencies manually though


Develop all the required sorting functions for the main game DB

Complete by IcySergio in cinema-db. However, will probably not be of much use right now (maybe, later on?)


Support for THttpClient Transport

Are there any plans to support the THttpClient from the original thrift implementation?

No current plans, but that's only because we haven't had that need.  I'm not opposed to it, but don't personally have the time or inclination to do the work myself.  I'd be happy to help guide a PR.

I will give it a try, but this may take some time, as I have to document on this in topic

@benjamin-bader I'm also interested in seeing this happen (especially given the server-side thrift stuff that looks to be landing soon). Can you point me to the places that I should start looking to build the new transport?

Most transports live in https://github.com/microsoft/thrifty/tree/master/thrifty-runtime/src/commonMain/kotlin/com/microsoft/thrifty/transport.
For convenience you might start putting your code here, but I see a few issues to be resolved prior to merging:

this is "common" code and most HTTP libraries are platform-specific.  Maybe OkHttp is multiplatform now?
a main goal of this project is to be as lightweight as possible in terms of method references.  It may be desirable to put this transport into its own module.

I think this can be close now as it was added in https://github.com/microsoft/thrifty/pull/449 :)

Done!


No module named 'requests'

Alright so maybe I am an idiot, but I installed this by going to "Code" and downloaded the zip file, unzipped it and then ran the "steam_auto_cracker.py" file and this error came up, the issue persisted after going to command prompt and using pip to install the 'request' module.
Traceback (most recent call last):
File "C:\Users\Austin Polley\Downloads\SteamAutoCracker-main\steam_auto_cracker.py", line 4, in
import requests
ModuleNotFoundError: No module named 'requests'

Probably caused by you having multiple Python installations. Had the same problem for a long time.
If you're running using the py command, try py -m pip install requests

Thank you this worked well, however I have encountered another issue :( this time it says that it is missing the module win32api that is imported in the get_file_version file, I have tried the trick you just taught me however I keep getting this error:
ERROR: Could not find a version that satisfies the requirement win32api (from versions: none) ERROR: No matching distribution found for win32api
Sorry to bother you again but I can't seem to figure this one out on my own, and if you need to know, I am running an official version of windows 10 standard that has not been altered in any way (to my knowledge).

You should check this: https://pypi.org/project/pywin32/
The module is pywin32, and contains a lot of smaller modules, like win32api. It is pretty hard to install though, and I had trouble fixing those bugs. I hope it'll work for you!

This was the final issue I had with your program and now it works properly, Thank you for being so kind and patient with me :)

Glad we managed to solve the problems, and sorry for not documenting the requirements enough.
I should take some time for that but damn I'm lazy :(

Hey there, as a good rule of thumb, always use a virtual environment when working with different python versions or having dependencies on external libraries. This way you won‘t clog your local python installation with different external libraries and you can easily change the python version you are working with. IDEs like JetBrains PyCharm create one automatically.

Hey there, as a good rule of thumb, always use a virtual environment when working with different python versions or having dependencies on external libraries. This way you won‘t clog your local python installation with different external libraries and you can easily change the python version you are working with. IDEs like JetBrains PyCharm create one automatically.

True but it takes a bit of time to set up and understand. I do use virtual envs to 'compile' SAC to avoid bundling too many useless modules, but I have to admit, for most small scripts I do and use, I don't.
I should consider getting an IDE but I don't like how most want to associate with every possible file extension known to man. Already had problems with IDEs downloading multiple installations of python. At one point, I had 3 installed at once and it got pretty buggy. I nuked everything and now I just don't want to go back to that bs 😆

I should consider getting an IDE

Are you telling me you are developing in IDLE??

I don't like how most want to associate with every possible file extension known to man. Already had problems with IDEs downloading multiple installations of python.

Well, that's stuff that doesn't happen with PyCharm, it'll use your existing python installation (if none found, will ask to install or "show" where your python is) and create a venv for every project you have going with it, so no python installations will ever make it to your root fs (unless you explicitly tell it to). Also it has zero file associations (I couldn't find any) with it's default installation.

I use Notepad++

In conclusion, you should really give it a try

You sold it pretty well, I'll try it.


Fix

Restored property => Property Concrete\Package\VividStore\Src\VividStore\Tax\TaxRate::$taxIncluded does not exist

The value of countriesSelected was not passed to the controller. This was because the select element name was not set. It is fixed by setting name to name="countriesSelected[]"

can you resubmit this without the taxIncluded restoration. That should not be there. If you upgrade the package, it should fix issues related to it.


Adding tests harness to example code

Probable setup:

Mocha
Chai
SinonJS

or

Jasmine
Karma

After evaluation goal is to to run tests that are written in TypeScript without transpilation and with directly importing using SystemJS module loading with plugin for typescript.
Good read fro reference:
https://medium.com/javascript-scene/why-i-use-tape-instead-of-mocha-so-should-you-6aa105d8eaf4#.vc7h4khlk
https://medium.com/javascript-scene/what-every-unit-test-needs-f6cd34d9836d#.jxt0aapkl
<EMAIL_ADDRESS>Currently I'm convinced to use below simple setup:

write tests using Tape and run in node using jspm run to load JSPM packages

When need arise for more complex testing I'll implement:

complex setup with Karma runner and Jasmine or Mocha

module.exports = function(config) {
config.set({
basePath: '.',

frameworks: ['jspm', 'jasmine'],
plugins: ['karma-jspm', 'karma-jasmine', 'karma-chrome-launcher'],
jspm: {
  // "baseURL": "base",
  // stripExtension: false
  config: "config.js",
  loadFiles: [
    'tests/example0.ts'
  ],
  serveFiles: [
    // 'jspm_packages/**/*.*',
    'src/**/*.*'
  ]
},

// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
// browsers: ['PhantomJS'],
// autoWatch: true,
colors: true,
// concurrency: Infinity,
singleRun: false

});
};
baseUrl in jspm config has to be empty or cannot exist! - karma-jspm very buggy right now, alternative karma-systemjs

Added test harness setup using Tape (blue-tape) - included example code and @types


Bug: IDE removing wire import line

So I've installed the plugin recently and wanted to test it out. It seems like when it is active, upon file save the IDE removes from import line "github.com/google/wire", from wire.go file, and this in turn causes wire command to return error:
wire: /home/dawidd/projects/di/wire.go:13:2: undeclared name: wire
wire: generate failed

The file looks as follows. It's the 9th line that disappears upon save:
//go:build wireinject
// +build wireinject

package di

import (
	"gin_tutorial/data/repositories"
	"gin_tutorial/server/controllers"
	"github.com/google/wire"
	"github.com/sirupsen/logrus"
)

func InitializeTextController() controllers.TextController {
	wire.Build(controllers.NewTextController, logrus.New, repositories.NewTextRepository)
	return *new(controllers.TextController)
}

This is not the case if the plugin is disabled or not installed. Let me know if I should provide you with any additional detail.

Hi @Gumkle,
Thanks for using the plugin and providing feedback, I could reproduce the bug using the sample code you provided.
I have fixed the bug and merged the changes. Released version 0.0.8
Thanks again.

Hi, I can confirm this has been resolved. Thank you


Fix service catalog permissions

Still need to test but I think we can fix the sc breakage for now with this
fixes https://github.com/jim-minter/azure-helm/issues/3
/hold

@jim-minter fyi

$ oc logs servicecatalog-api-5fc6947b9c-jqkz2
I0626 12:50:16.999777       1 feature_gate.go:190] feature gates: map[OriginatingIdentity:true]
I0626 12:50:16.999891       1 hyperkube.go:192] Service Catalog version v3.10.0-rc.0+8d6748f-dirty (built 2018-06-26T01:24:38Z)
W0626 12:50:17.278963       1 authentication.go:232] Unable to get configmap/extension-apiserver-authentication in kube-system.  Usually fixed by 'kubectl create rolebinding -n kube-system ROLE_NAME --role=extension-apiserver-authentication-reader --serviceaccount=YOUR_NS:YOUR_SA'
Error: open /var/run/secrets/kubernetes.io/serviceaccount/token: no such file or directory

hrm

@jwmatthews

Opened https://github.com/kubernetes-incubator/service-catalog/pull/2158

Removed the test env, running off of the upstream PR applied on our fork, seems to work fine.