callback function not matching on a subscribed topic though another does

I'm using pubsubclient with wemosD1 mini and NodeRed for a "weathernode" project. The two callbacks I am currently trying to use are "setSleepTime" which sets the esp8266 sleeptime and "Upgrade" that is a simple switch node to check a server for an upgrade or do not check.
setSleepTime works wonderfully, Upgrade does not match on the callback and I just can't figure out why so I really need a 2nd pair of eyes to look at this if you have time.
Following is a paste of relevant code (please ask for more if I left something out), serial output of my debugs,  mosquito log grepped for what I think is correct stuff and also tcpdump.
Please let me know if I can supply more info , in the meantime I will keep poking at this.
Thanks to all contributors for both pubsubclient and NodeRed, both are awesome!
///////////////////////////// pubsubclient functions on ESP8266 ////////////////////////////
#ifdef Wemos
WiFiClient(wemosTestClient);
PubSubClient client(wemosTestClient);
const char* Client = "wemosTestClient/";
void callback(char* topic, byte* message, unsigned int length) {
char TOPIC[64];
char sleepTime[5];
char temp[4];
char *ret;
byte count = 0;
Serial.println();
Serial.print(F("!!!!!!!Message arrived on topic: "));
Serial.println(topic);
Serial.println(F("Building message"));
Serial.print(F("Message =  "));
for (int i = 0; i < length; i++) {
Serial.print((char)message[i]);
}
Serial.println();
strcpy(TOPIC, Client);
/*********************** setSleepTime section ********************************/
strcat(TOPIC, "setSleepTime");
if (!strcmp(topic, TOPIC)) {
Serial.println(F("!!!*** Matched on setSleepTime ********!!!"));
Serial.print(F("Current sleeptime = "));
Serial.println(sleeptime);
Serial.print(F("changing sleeptime to: "));
for (int i = 0; i < length; i++) {
    sleepTime[i] = (char)message[i];
    count++;
 }

sleepTime[count] = '\0';
Serial.println(sleepTime);
sleeptime = atoi(sleepTime);  // Change global sleeptime

Serial.print(F("Just before checking for upgrade, topic = "));
Serial.println(topic);
 }

/********************  Upgrade section *************************/

strcpy(TOPIC, Client);
strcat(TOPIC, "Upgrade");

Serial.print(F("In Upgrade section, looking to match on "));
Serial.println(TOPIC);

if (!strcmp(topic, TOPIC)) {
Serial.println(F("!!!*** Matched on Upgrade *******!!!"));
}
else {
  Serial.print(F("TOPIC we are looking for is "));
  Serial.println(TOPIC);
  Serial.print(F("Topic we recieved is "));
  Serial.println(topic);

}

//else ( Serial.println(F("Did not match on any callback functions other than Sleeptime!!")));
}
//}
void reconnect() {
char Topic[64];
strcpy(Topic,Client);
// Loop until we're reconnected
while (!client.connected()) {
Serial.println(F("Attempting MQTT connection..."));
// Attempt to connect
if (client.connect(Client)) {
Serial.print(F("!!!!! In recconect, connected to "));
Serial.println(Client);
Serial.print(F("Building Topic with Client "));
Serial.println(Topic);
Serial.println(Client);
  /****************  Subscribe to Topic setSleeptime **********************/
  strcat(Topic,"setSleepTime");
  Serial.print(F("now added setSleepTime, Topic = "));
  Serial.println(Topic);
  client.subscribe(Topic);
  Serial.print(F("subscribed to "));
  Serial.println(Topic);

  /*************************Subscribe to Topic Upgrade ***********************************/
  Serial.println(F("Attempting to subscribe to Upgrade Topic"));
  strcpy(Topic, Client);
  strcat(Topic, "Upgrade");
   Serial.print(F("now added Upgrade, Topic = "));
  Serial.println(Topic);
  Serial.print(F("Subscribing to topic "));
  Serial.println(Topic);
    if (client.subscribe(Topic)){
       Serial.print(F("Successfully subscribed to "));
       Serial.println(Topic);
  }
  else {
    Serial.print(F("FAILED SUBSCRIBE to "));
    Serial.println(Topic);

  }
  //client.subscribe(Topic);

}
else {
  Serial.print(F("failed, rc="));
  Serial.print(client.state());
  Serial.println(F(" try again in 5 seconds"));
  // Wait 5 seconds before retrying
  delay(5000);
}

}
}
//******************* END PUBSUB FUNCTIONS ************************************
///////////////////// ESP8266 serial output //////////////////////////////////////
*********** forceing modem sleep ************
Current sleeptime =  13
Free Heap      = 43280
starting Wifi
Connecting to BlueZebra
......done OTA.handle
Attempting MQTT connection...
!!!!! In recconect, connected to wemosTestClient/
Building Topic with Client wemosTestClient/
wemosTestClient/
now added setSleepTime, Topic = wemosTestClient/setSleepTime
subscribed to wemosTestClient/setSleepTime
Attempting to subscribe to Upgrade Topic
now added Upgrade, Topic = wemosTestClient/Upgrade
Subscribing to topic wemosTestClient/Upgrade
Successfully subscribed to wemosTestClient/Upgrade
done with if not client.connect
done with client.connect to
starting Client.loop()
!!!!!!!Message arrived on topic: wemosTestClient/setSleepTime
Building message
Message =  13
!!!*** Matched on setSleepTime ********!!!
Current sleeptime = 13
changing sleeptime to: 13
Just before checking for upgrade, topic = wemosTestClient/setSleepTime
In Upgrade section, looking to match on wemosTestClient/Upgrade
TOPIC we are looking for is wemosTestClient/Upgrade
Topic we recieved is wemosTestClient/setSleepTime
Free Heap      = 42688
sleeptime now equals 13
sleeptime now equals 13
************ forceing modem sleep ************
Current sleeptime =  13

////////////////////// mosquito log | grep Upgrade  ///////////////////////////////////
pi@MesaPi1:/var/log/mosquitto $ tail -f mosquitto.log | grep Upgrade
1533261575:     wemosTestClient/Upgrade (QoS 0)
1533261575: wemosTestClient/ 0 wemosTestClient/Upgrade
1533261575: Sending PUBLISH to wemosTestClient/ (d0, q0, r1, m0, 'wemosTestClient/Upgrade', ... (1 bytes))
1533261575:     wemosTestClient/Upgrade (QoS 0)
1533261575: wemosTestClient/ 0 wemosTestClient/Upgrade

////////////////////// mosquito log | grep setSleepTime ///////////////////////////////
pi@MesaPi1:/var/log/mosquitto $ tail -f mosquitto.log | grep setSleep
1533262748:     wemosTestClient/setSleepTime (QoS 0)
1533262748: wemosTestClient/ 0 wemosTestClient/setSleepTime
1533262748: Sending PUBLISH to wemosTestClient/ (d0, q0, r1, m0, 'wemosTestClient/setSleepTime', ... (2 bytes))
1533262748:     wemosTestClient/setSleepTime (QoS 0)
1533262748: wemosTestClient/ 0 wemosTestClient/setSleepTime
1533262748: Sending PUBLISH to wemosTestClient/ (d0, q0, r1, m0, 'wemosTestClient/setSleepTime', ... (2 bytes))

/////////////////////// mosquito log showing subsciptions ////////////////////////////////
533262900: New connection from <IP_ADDRESS> on port 1883.
1533262900: Client wemosTestClient/ already connected, closing old connection.
1533262900: Client wemosTestClient/ disconnected.
1533262900: New client connected from <IP_ADDRESS> as wemosTestClient/ (c1, k15).
1533262900: Sending CONNACK to wemosTestClient/ (0, 0)
1533262900: Received SUBSCRIBE from wemosTestClient/
1533262900:     wemosTestClient/setSleepTime (QoS 0)
1533262900: wemosTestClient/ 0 wemosTestClient/setSleepTime
1533262900: Sending SUBACK to wemosTestClient/
1533262900: Sending PUBLISH to wemosTestClient/ (d0, q0, r1, m0, 'wemosTestClient/setSleepTime', ... (2 bytes))
1533262900: Received SUBSCRIBE from wemosTestClient/
1533262900:     wemosTestClient/setSleepTime (QoS 0)
1533262900: wemosTestClient/ 0 wemosTestClient/setSleepTime
1533262900: Sending SUBACK to wemosTestClient/
1533262900: Sending PUBLISH to wemosTestClient/ (d0, q0, r1, m0, 'wemosTestClient/setSleepTime', ... (2 bytes))
1533262900: Received SUBSCRIBE from wemosTestClient/
1533262900:     wemosTestClient/Upgrade (QoS 0)
1533262900: wemosTestClient/ 0 wemosTestClient/Upgrade
1533262900: Sending SUBACK to wemosTestClient/
1533262900: Sending PUBLISH to wemosTestClient/ (d0, q0, r1, m0, 'wemosTestClient/Upgrade', ... (1 bytes))
1533262900: Received SUBSCRIBE from wemosTestClient/
1533262900:     wemosTestClient/Upgrade (QoS 0)
1533262900: wemosTestClient/ 0 wemosTestClient/Upgrade
1533262900: Sending SUBACK to wemosTestClient/
1533262900: Sending PUBLISH to wemosTestClient/ (d0, q0, r1, m0, 'wemosTestClient/Upgrade', ... (1 bytes))
1533262901: Received PUBLISH from wemosTestClient/ (d0, q0, r0, m0, 'wemosTestClient/temperature', ... (6 bytes))
1533262901: Sending PUBLISH to mqtt_684225d2.e73dcc (d0, q0, r0, m0, 'wemosTestClient/temperature', ... (6 bytes))
1533262901: Received PUBLISH from wemosTestClient/ (d0, q0, r0, m0, 'wemosTestClient/humidity', ... (6 bytes))

////////////////////////////// TCPDUMP for upgrade (0 = no upgrade) ///////////////////////////////////////
sudo tcpdump -aeX -i wlan0 | grep -B 7 -A 7 Upgrade
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes
0x0030:  6d6f 7354 6573 7443 6c69 656e 742f 5570  mosTestClient/Up
0x0040:  6772 6164 6500                           grade.
19:31:54.816491 b8:27:eb:bf:09:9a (oui Unknown) > a0:20:a6:26:73:94 (oui Unknown), ethertype IPv4 (0x0800), length 87: MesaPi.lan.1883 > <IP_ADDRESS>.7502: Flags [P.], seq 83:116, ack 161, win 29200, length 33
0x0000:  4500 0049 dc79 4000 4006 136b c0a8 64ee  E..I.y<EMAIL_ADDRESS>0x0010:  c0a8 648b 075b 1d4e 9abe 5074 0008 fa22  ..d..[.N..Pt..."
0x0020:  5018 7210 c895 0000 9003 0004 0031 1a00  P.r..........1..
0x0030:  1777 656d 6f73 5465 7374 436c 6965 6e74  .wemosTestClient
0x0040:  2f55 7067 7261 6465 30                   /Upgrade0
19:31:54.858891 a0:20:a6:26:73:94 (oui Unknown) > b8:27:eb:bf:09:9a (oui Unknown), ethertype IPv4 (0x0800), length 60: <IP_ADDRESS>.7502 > MesaPi.lan.1883: Flags [.], ack 116, win 5725, length 0
0x0000:  4500 0028 0e7a 0000 8006 e18b c0a8 648b  E..(.z........d.
0x0010:  c0a8 64ee 1d4e 075b 0008 fa22 9abe 5095  ..d..N.[..."..P.
0x0020:  5010 165d 4485 0000 0000 0000 0000       P..]D.........
19:31:54.858945 b8:27:eb:bf:09:9a (oui Unknown) > a0:20:a6:26:73:94 (oui Unknown), ethertype IPv4 (0x0800), length 87: MesaPi.lan.1883 > <IP_ADDRESS>.7502: Flags [P.], seq 116:149, ack 161, win 29200, length 33
0x0000:  4500 0049 dc7a 4000 4006 136a c0a8 64ee  E..I.z<EMAIL_ADDRESS>0x0010:  c0a8 648b 075b 1d4e 9abe 5095 0008 fa22  ..d..[.N..P...."
0x0020:  5018 7210 c873 0000 9003 0005 0031 1a00  P.r..s.......1..
0x0030:  1777 656d 6f73 5465 7374 436c 6965 6e74  .wemosTestClient
0x0040:  2f55 7067 7261 6465 30                   /Upgrade0
19:31:54.869247 b8:27:eb:bf:09:9a (oui Unknown) > 3c:90:66:85:95:21 (oui Unknown), ethertype IPv6 (0x86dd), length 108: fe80::8cb:b107:c74:a3f.36727 > fe80::3e90:66ff:fe85:9521.domain: 27183+ PTR? <IP_ADDRESS>.in-addr.arpa. (46)
0x0000:  6006 bfe1 0036 1140 fe80 0000 0000 0000<EMAIL_ADDRESS>0x0010:  08cb b107 0c74 0a3f fe80 0000 0000 0000  .....t.?........
0x0020:  3e90 66ff fe85 9521 8f77 0035 0036 0b03  >.f....!.w.5.6..
0x0030:  6a2f 0100 0001 0000 0000 0000 0331 3339  j/...........139
0x0040:  0331 3030 0331 3638 0331 3932 0769 6e2d  .100.168.192.in-
0x0050:  6164 6472 0461 7270 6100 000c 0001       addr.arpa.....
////////////////////// TCPDUMP for setSleepTime (13 seconds) /////////////////////////////////////////
pi@MesaPi1:/var/log/mosquitto $ sudo tcpdump -aeX -i wlan0 | grep -B 7 -A 7 setSleepTime
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes
0x0030:  6d6f 7354 6573 7443 6c69 656e 742f 5570  mosTestClient/Up
0x0040:  6772 6164 6500                           grade.
19:33:10.995416 b8:27:eb:bf:09:9a (oui Unknown) > a0:20:a6:26:73:94 (oui Unknown), ethertype IPv4 (0x0800), length 93: MesaPi.lan.1883 > <IP_ADDRESS>.1757: Flags [P.], seq 44:83, ack 131, win 29200, length 39
0x0000:  4500 004f 3f65 4000 4006 b079 c0a8 64ee  E..O?e<EMAIL_ADDRESS>0x0010:  c0a8 648b 075b 06dd e4c1 95a6 0009 b296  ..d..[..........
0x0020:  5018 7210 732e 0000 9003 0003 0031 2000  P.r.s........1..
0x0030:  1c77 656d 6f73 5465 7374 436c 6965 6e74  .wemosTestClient
0x0040:  2f73 6574 536c 6565 7054 696d 6531 33    /setSleepTime13
19:33:10.998658 a0:20:a6:26:73:94 (oui Unknown) > b8:27:eb:bf:09:9a (oui Unknown), ethertype IPv4 (0x0800), length 84: <IP_ADDRESS>.1757 > MesaPi.lan.1883: Flags [P.], seq 131:161, ack 83, win 5758, length 30
0x0000:  4500 0046 0f0a 0000 8006 e0dd c0a8 648b  E..F..........d.
0x0010:  c0a8 64ee 06dd 075b 0009 b296 e4c1 95cd  ..d....[........
0x0020:  5018 167e 9597 0000 821c 0005 0017 7765  P..~..........we
0x0030:  6d6f 7354 6573 7443 6c69 656e 742f 5570  mosTestClient/Up
0x0040:  6772 6164 6500                           grade.
19:33:10.998716 b8:27:eb:bf:09:9a (oui Unknown) > a0:20:a6:26:73:94 (oui Unknown), ethertype IPv4 (0x0800), length 87: MesaPi.lan.1883 > <IP_ADDRESS>.1757: Flags [P.], seq 83:116, ack 161, win 29200, length 33
^C390 packets captured
487 packets received by filter
0 packets dropped by kernel

minor update: I am using  pubsubclient v2.6.0 and tried inserting client.loop() after the 1st subscription with no luck.  I'll try subscribing to all topics starting with the "Client" string next with "#' though I doubt it will make a difference.

unintended close, sorry for the spam

ok, subscribing to all clients for "Client" made no difference (though I do like the global option and will use it from now on).  Must be upstream in my code, will continue to look. Any other eyes taking a quick look will appreciated.

Tried
1; deleting and re-adding the nodes in NodeRed - no change
2: deleting and re-entering the lines for Upgrade in both the callback and reconnect functions - no change
3: publishing from the mosquitto broker with "mosquitto_pub -h <IP_ADDRESS>  -i wemosTestClient -t Upgrade -m '1' " - it never hit the callback (though I am not this would so this may not be a valid test).
starting to loose hair though I'm sure its just some small thing I have overlooked.

If I switch the subscribe order, Upgrade now matches in callback and setSleepTime does not - so likely  an ordering issue or some line of code I am missing between the two calls.
Current pubsubclient callback and reconnect routines:
//************************ PubSub Callbacks - Reconnect etc *******************************************
void callback(char* topic, byte* message, unsigned int length) {
char TOPIC[64];
char sleepTime[5];
char temp[4];
char *ret;
byte count = 0;
Serial.println();
Serial.print(F("!!!!!!!Message arrived on topic: "));
Serial.println(topic);
Serial.println(F("Building message"));
Serial.print(F("Message =  "));
for (int i = 0; i < length; i++) {
Serial.print((char)message[i]);
}
Serial.println();
strcpy(TOPIC, Client);
/*********************** setSleepTime section ********************************/
strcat(TOPIC, "setSleepTime");
if (strcmp(topic, TOPIC)== 0 ) {
Serial.println(F("!!!*** Matched on setSleepTime ********!!!"));
Serial.print(F("Current sleeptime = "));
Serial.println(sleeptime);
Serial.print(F("changing sleeptime to: "));
for (int i = 0; i < length; i++) {
    sleepTime[i] = (char)message[i];
    count++;
 }

sleepTime[count] = '\0';
Serial.println(sleepTime);
sleeptime = atoi(sleepTime);  // Change global sleeptime

Serial.print(F("Just before checking for upgrade, topic = "));
Serial.println(topic);
 }

/********************  Upgrade section *************************/

strcpy(TOPIC, "");
strcpy(TOPIC, Client);
strcat(TOPIC, "Upgrade");

Serial.print(F("In Upgrade section, looking to match on "));
Serial.println(TOPIC);

if (strcmp(topic, TOPIC) == 0 ) {
Serial.println(F("!!!*** Matched on Upgrade *******!!!"));
}
else {
  Serial.print(F("TOPIC we are looking for is "));
  Serial.println(TOPIC);
  Serial.print(F("Topic we recieved is "));
  Serial.println(topic);

}

//else ( Serial.println(F("Did not match on any callback functions other than Sleeptime!!")));
}
//}
void reconnect() {
char Topic[64];
strcpy(Topic,Client);
//strcat(Topic, "#");
// Loop until we're reconnected
while (!client.connected()) {
Serial.println(F("Attempting MQTT connection..."));
// Attempt to connect
if (client.connect(Client)) {
Serial.print(F("!!!!! In recconect, connected to "));
Serial.println(Client);
Serial.print(F("Building Topic with Client "));
Serial.println(Topic);
Serial.println(Client);
/****************  Subscribe to Topic setSleeptime **********************/
strcat(Topic,"Upgrade");
Serial.print(F("now added Upgrade, Topic = "));
Serial.println(Topic);
client.subscribe(Topic);
Serial.print(F("subscribed to "));
Serial.println(Topic);
/*************************Subscribe to Topic Upgrade ***********************************/
//delay(100);
//client.loop();
  Serial.println(F("Attempting to subscribe to setSleepTime Topic"));
  strcpy(Topic, Client);
  strcat(Topic, "setSleepTime");
   Serial.print(F("now added setSleepTime, Topic = "));
  Serial.println(Topic);
  //client.subscribe(Topic);
  Serial.print(F("Subscribing to topic "));
  Serial.println(Topic);
    if (client.subscribe(Topic)){
      //if (client.subscribe("wemosTestClient/Upgrade")){
       Serial.print(F("Successfully subscribed to "));
       Serial.println(Topic);
       //client.connect(Client);
       }
  else {
    Serial.print(F("FAILED SUBSCRIBE to "));
    Serial.println(Topic);

  }
 // client.subscribe(Topic);

}

else {
  Serial.print(F("failed, rc="));
  Serial.print(client.state());
  Serial.println(F(" try again in 5 seconds"));
  // Wait 5 seconds before retrying
  delay(5000);
}

}
}
Serial Output:
Connecting to BlueZebra
......Attempting MQTT connection...
!!!!! In recconect, connected to wemosTestClient/
Building Topic with Client wemosTestClient/
wemosTestClient/
now added Upgrade, Topic = wemosTestClient/Upgrade
subscribed to wemosTestClient/Upgrade
Attempting to subscribe to setSleepTime Topic
now added setSleepTime, Topic = wemosTestClient/setSleepTime
Subscribing to topic wemosTestClient/setSleepTime
Successfully subscribed to wemosTestClient/setSleepTime
done with if not client.connect
done with client.connect to
starting Client.loop()
!!!!!!!Message arrived on topic: wemosTestClient/Upgrade
Building message
Message =  true
In Upgrade section, looking to match on wemosTestClient/Upgrade
!!!*** Matched on Upgrade *******!!!
Free Heap      = 43136
sleeptime now equals 40
sleeptime now equals 40
************ forceing modem sleep ************
Current sleeptime =  40
Plugging away, if anyone sees something obvious (or not so obvious) please let me know.

Since it always matched on the 1st topic but not the 2nd I thought it might be some issue with some substring match issue with strcmp since both topics start with the same Clientid

sorry, closed accidentally

Looked at my setup and loop sections for pubSubClient and cleaned them up a bit and added a couple checks:
In Setup:
// MQTT setup
client.setServer(mqtt_server, 1883);
client.setCallback(callback);
Serial.println(F(" In setup, just set lcdState to 1"));
In main loop
if (!client.connected()) {
reconnect();
}
Serial.println(F("done with if not client.connected(), starting client.loop()"));
client.loop();
// Note, I never see this
if (!client.loop()){
   Serial.println(F("client.loop failed, delay 100 then try again, delay 500 then client.connect(client)"));
   delay(1000);
   client.loop();
   //delay(500);
   //client.connect(Client);
   }
Serial.println(F("done with client.loop(), it better be loopy "));
//Serial.println(Client);

// Serial.println(F("starting Client.loop()"));
//client.loop();
// This delay added so subscribe works, it used to work without it!
//delay(100); Note, disregard this

Looks like I was wrong about it being the ordering, I could not reproduce that after making a very minimal sketch
That said I have this working now but sure about the behavior.
In the main loop, added this after
if(!client.connected()) {
reconnect();
}
// Added these three lines
if(!client.loop));
client.subsribe(setSleepTime);
client.subscribe(Update);
Notice that I changed topic Upgrade to topic Update, this workaround would not work for topic Upgrade (possible reserved word??)
Anyways, working now. Closing ticket


Updated face.js to export scale data as well

Calculate dynamic scale to augment perspective camera
Example usage -
trackedObject.position.copy(track.position)
trackedObject.rotation.setFromRotationMatrix(track.rotation)
trackedObject.scale.setScalar(originalScale*track.scale)

tried this and it works well. Maybe the solution should be more in the spirit of the OG code and integrated in the class?


Actions Menu on Product Detail

@mmoebeck can you resolve the conflicts in your package-lock.json file by reinstalling locally after merging changes from development and then push up?


I'm not getting any results from Facebook search. Is it App ID and App Secret are still working?

Hi sbehrens,
i am also facing same issue, can you please provide a solution.


Hook in web view context into web view menu command call

As a user, I want to be able to run menu items on web views that do things for those web views or projects so I can do meaningful things in web view menus.

[ ] In the webView menu owner(s), add an argument to all menuItem commands that is the webViewId of the current webView. Maybe this is just toolbar.component.tsx.
[ ] Add a function to the webView service that returns properties of the webView with a given webViewId. Those properties must include at least the open project(s) in the webView. TJ thought that perhaps adding the IDs to WebViewDefinitionUpdatableProperties would make sense, but it's up to whomever picks this up to provide that appropriately. In an ideal world any updates to the ID(s) would trigger an update so React can pass down the changes to components, but if this isn't doable in a reasonable amount of time then a one-time snap of the data when requested is fine.

Settings & State Design Doc

Could be cool to write unit tests for this, but might also be hard because of all the mocking, depends on how much time you have.

Test Repo steps:
In my test extension updated the menus.json with the following
"webViewMenus": {

    "paranextExtTesting.reactTC20": {
      "includeDefaults": false,
      "topMenu": {
        "columns": {
          "paranextExtTesting.results": {
            "label": "%webView_paranextExtTesting_results%",
            "order": 1
          }
        },
        "groups": {
          "paranextExtTesting.resultsTop": {
            "column": "paranextExtTesting.results",
            "order": 1
          }
        },
        "items": [
          {
            "label": "%webView_paranextExtTesting_results_pass_te%",
            "group": "paranextExtTesting.resultsTop",
            "order": 1,
            "command": "paratextExtensionTest.resultsPass"
          },
          {
            "label": "%webView_paranextExtTesting_results_fail_te%",
            "group": "paranextExtTesting.resultsTop",
            "order": 2,
            "command": "paratextExtensionTest.resultsFail"
          }
        ]
      },
      "contextMenu": {
        "groups": {},
        "items": []
      }
    }

Added function in main.ts for the  "command": "paratextExtensionTest.resultsPass"
On the web-view added code to display the values from the 'Pass' menu click function
On the UI I can display Web-view Id and Project details.


Target dart2wasm failed: ProcessException: Process exited abnormally:

I'm trying to integrate WebAssembly to the Flutter Web and I'm following this article: https://blog.logrocket.com/getting-started-webassembly-flutter-web/
I understand that as of this writing, WebAssembly is still experimental:

Warning: Development of WebAssembly support for Dart and Flutter remains ongoing.
You can preview Wasm and WebAssembly garbage collection (WasmGC) in the master channel. As Flutter provides these features as previews, ongoing development might result in frequent changes. Revisit this page for the latest updates.
Last updated May 23, 2023

I only have 1 dependency: wasm_interop so I'd be able to interact with my methods from WebAssembly in Flutter or Dart.

Flutter doctor result:
[✓] Flutter (Channel master, 3.13.0-12.0.pre.40, on macOS 13.5 22G74 darwin-arm64, locale en-SG)
    • Flutter version 3.13.0-12.0.pre.40 on channel master at /Users/<user>/tools/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 46f83ce636 (3 hours ago), 2023-07-30 22:31:35 -0400
    • Engine revision b84c936016
    • Dart version 3.2.0 (build 3.2.0-15.0.dev)
    • DevTools version 2.25.0

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
    • Android SDK at /Users/<user>/Library/Android/sdk
    • Platform android-33, build-tools 33.0.2
    • ANDROID_HOME = /Users/<user>/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E300c
    • CocoaPods version 1.12.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] VS Code (version 1.80.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.68.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 13.5 22G74 darwin-arm64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 115.0.5790.114

[✓] Network resources
    • All expected network resources are available.

• No issues found!

@joshualitt

I'm not too familiar with package:wasm_interop so I'm not sure if it should work on Dart2Wasm or not.
However, you can try package:web which I think has some WebAssembly JS APIs, but package:web is very much still under development. We're hoping package:web will start stabilizing very soon though, and assuming it meets your needs then it might be the best path forward in the future.
That said, you're best bet for now is to build your own DOM shims like what we did in the Flutter web engine: https://github.com/flutter/engine/blob/main/lib/web_ui/lib/src/engine/dom.dart

flutter build web --release --wasm
console
┌─ New feature ────────────────────────────────────────────────────────────────────────────┐
│   WebAssembly compilation is new. Understand the details before deploying to production. │
│   See https://flutter.dev/wasm for more information.                                     │
└──────────────────────────────────────────────────────────────────────────────────────────┘

Target dart2wasm failed: ProcessException: Process exited abnormally with exit code 64:
Error: Wasm compilation failed while optimizing output
[wasm-validator error in function NumberFormat._round] break type must be a subtype of the target block type, on
(block $label$2 (result i64)
 (br_on_non_null $label$2
  (global.get $global$22226)
 )
 (call $NumberFormat._maxInt)
)
[wasm-validator error in function NumberFormat._integerDigits] break type must be a subtype of the target block type, on
(block $label$4 (result i64)
 (br_on_non_null $label$4
  (global.get $global$22226)
 )
 (call $NumberFormat._maxInt)
)
[wasm-validator error in function NumberFormat._maxDigits] break type must be a subtype of the target block type, on
(block $label$1 (result i64)
 (br_on_non_null $label$1
  (global.get $global$22226)
 )
 (call $NumberFormat._maxInt)
)
Fatal: error validating input
  Command: /home/miliy/flutter/bin/cache/dart-sdk/bin/dart compile wasm --packages=.dart_tool/package_config.json --extra-compiler-option=--dart-sdk=/home/miliy/flutter/bin/cache/dart-sdk
  --extra-compiler-option=--platform=/home/miliy/flutter/bin/cache/flutter_web_sdk/kernel/dart2wasm_platform.dill --extra-compiler-option=--delete-tostring-package-uri=dart:ui
  --extra-compiler-option=--delete-tostring-package-uri=package:flutter --extra-compiler-option=--import-shared-memory --extra-compiler-option=--shared-memory-max-pages=32768 -Ddart.vm.product=true
  -DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/fad88cb16d038d7819aa567d1bd3a0455fcb3f82/ -DFLUTTER_WEB_AUTO_DETECT=false -DFLUTTER_WEB_USE_SKIA=false -DFLUTTER_WEB_USE_SKWASM=true
  --extra-compiler-option=--depfile=/home/miliy/workspaces/backend_manager_webpage/.dart_tool/flutter_build/a90e37fd1e2d4be642b7f49877bf9c6b/dart2wasm.d -O4 --no-name-section -o
  /home/miliy/workspaces/backend_manager_webpage/.dart_tool/flutter_build/a90e37fd1e2d4be642b7f49877bf9c6b/main.dart.wasm
  /home/miliy/workspaces/backend_manager_webpage/.dart_tool/flutter_build/a90e37fd1e2d4be642b7f49877bf9c6b/main.dart
#0      RunResult.throwException (package:flutter_tools/src/base/process.dart:122:5)
#1      _DefaultProcessUtils.run (package:flutter_tools/src/base/process.dart:318:19)
<asynchronous suspension>
#2      Dart2WasmTarget.build (package:flutter_tools/src/build_system/targets/web.dart:329:5)
<asynchronous suspension>
#3      _BuildInstance._invokeInternal (package:flutter_tools/src/build_system/build_system.dart:867:9)
<asynchronous suspension>
#4      Future.wait.<anonymous closure> (dart:async/future.dart:524:21)
<asynchronous suspension>
#5      _BuildInstance.invokeTarget (package:flutter_tools/src/build_system/build_system.dart:805:32)
<asynchronous suspension>
#6      Future.wait.<anonymous closure> (dart:async/future.dart:524:21)
<asynchronous suspension>
#7      _BuildInstance.invokeTarget (package:flutter_tools/src/build_system/build_system.dart:805:32)
<asynchronous suspension>
#8      FlutterBuildSystem.build (package:flutter_tools/src/build_system/build_system.dart:634:16)
<asynchronous suspension>
#9      WebBuilder.buildWeb (package:flutter_tools/src/web/compile.dart:92:34)
<asynchronous suspension>
#10     BuildWebCommand.runCommand (package:flutter_tools/src/commands/build_web.dart:230:5)
<asynchronous suspension>
#11     FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:1393:27)
<asynchronous suspension>
#12     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
<asynchronous suspension>
#13     CommandRunner.runCommand (package:args/command_runner.dart:212:13)
<asynchronous suspension>
#14     FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:372:9)
<asynchronous suspension>
#15     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
<asynchronous suspension>
#16     FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:308:5)
<asynchronous suspension>
#17     run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:130:9)
<asynchronous suspension>
#18     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
<asynchronous suspension>
#19     main (package:flutter_tools/executable.dart:93:3)
<asynchronous suspension>

Compiling lib/main.dart for the Web...                             33.1s
Error: Failed to compile application for the Web.

Doctor output
[✓] Flutter (Channel master, 3.22.0-31.0.pre.16, on Fedora Linux 40 (Workstation Edition) 6.8.9-300.fc40.x86_64, locale zh_CN.UTF-8)
    • Flutter version 3.22.0-31.0.pre.16 on channel master at /home/miliy/flutter
    • Upstream repository https://github.com/flutter/flutter
    • Framework revision 839ba6b3e3 (4 小时前), 2024-05-10 23:01:23 -0400
    • Engine revision fad88cb16d
    • Dart version 3.5.0 (build 3.5.0-143.0.dev)
    • DevTools version 2.36.0-dev.5

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /home/miliy/Android/Sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /home/miliy/Android/Sdk
    • Java binary at: /home/miliy/jetbrains/android-studio-5/jbr/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11609105)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop
    • clang version 18.1.1 (Fedora 18.1.1-1.fc40)
    • cmake version 3.28.2
    • ninja version 1.11.1
    • pkg-config version 2.1.0

[✓] Android Studio (version 2023.3)
    • Android Studio at /home/miliy/jetbrains/android-studio-4
    • Flutter plugin version 79.0.2
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)

[✓] Android Studio (version 2024.1)
    • Android Studio at /home/miliy/jetbrains/android-studio-5
    • Flutter plugin version 79.0.3
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11609105)

[✓] IntelliJ IDEA Ultimate Edition (version 2024.1)
    • IntelliJ at /home/miliy/jetbrains/intellij-idea-ultimate
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] Connected device (2 available)
    • Linux (desktop) • linux  • linux-x64      • Fedora Linux 40 (Workstation Edition) 6.8.9-300.fc40.x86_64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 124.0.6367.201

[✓] Network resources
    • All expected network resources are available.

• No issues found!

https://flutter.dev/wasm

I've consulted the documentation and solved the problem.


enable amazon platform support for splunk forwarder install

Description
This change adds support for the amazon linux family allowing the install of splunk-forwarder on
the Amazon Linux AMI.  Added test kitchen file for testing against Amazon EC2.
Signed-off-by: Christopher Richard<EMAIL_ADDRESS>Mentioning as co-contributor
@tfitch

@cbrichard You'll need to sign off the individual commits in this PR before we can accept it. Also instead of using a kitchen ec2 config you can use either the amazonlinux docker container in dokken or the amazon linux virtualbox image for the standard test kitchen config.
Check it out at https://github.com/chef-cookbooks/activemq/blog/master/.kitchen.yml

@tas50 I made this commit from my work laptop this time.  Just FYI, you will see the email address is different.
I wanted to comment as an FYI I have been working with @tfitch (Tyler Fitch) on this contribution and when running the tests we noticed that the server specific test were failing.  We filter out those checks during the kitchen test and verified that that all the client test passed which my change only adds support for the chef-splunk forwarder client install and nothing dealing with the server.
Please let me know if this will suffice or if you need more detail or testing before merging.

Is there anything preventing this from being merged @tas50?

Nope. Sorry for the delay. I'll get this released


Suggestion: Replacing \

When replacing \ in the title, it has the title act as the path (I'm assuming) and ignores all files because it replaced \ with whatever. This is an issue because uploading videos will all have \ in the title

Of course!


Browser Stopped issue On Mac

Hello.
I love this bot!!!!
Unfortunately i'm having an issue... when it tries to log in to Discord after I log in, it loads up the functionality and then shuts the window and i get a Browser Stopped prompt in Terminal. Would anyone know how to address this?
Thanks!!!!

I think this was fixed here https://github.com/igolaizola/bulkai/pull/69
Try it again with the latest version


python38Packages.pymatgen: 2022.0.16 -> 2022.0.17

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python38Packages.pymatgen is: "A robust materials analysis code that defines core object representations for structures and molecules"
meta.homepage for python38Packages.pymatgen is: "https://pymatgen.org/"
meta.changelog for python38Packages.pymatgen is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
/nix/store/z0drsizh1pnz7il39hqgqkgryxmwiy5i-python3.8-pymatgen-2022.0.17/bin/gaussian_analyzer passed the binary check.
/nix/store/z0drsizh1pnz7il39hqgqkgryxmwiy5i-python3.8-pymatgen-2022.0.17/bin/feff_plot_dos passed the binary check.
/nix/store/z0drsizh1pnz7il39hqgqkgryxmwiy5i-python3.8-pymatgen-2022.0.17/bin/.feff_plot_dos-wrapped passed the binary check.
/nix/store/z0drsizh1pnz7il39hqgqkgryxmwiy5i-python3.8-pymatgen-2022.0.17/bin/.gaussian_analyzer-wrapped passed the binary check.
/nix/store/z0drsizh1pnz7il39hqgqkgryxmwiy5i-python3.8-pymatgen-2022.0.17/bin/get_environment passed the binary check.
Warning: no invocation of /nix/store/z0drsizh1pnz7il39hqgqkgryxmwiy5i-python3.8-pymatgen-2022.0.17/bin/.feff_plot_cross_section-wrapped had a zero exit code or showed the expected version
/nix/store/z0drsizh1pnz7il39hqgqkgryxmwiy5i-python3.8-pymatgen-2022.0.17/bin/.get_environment-wrapped passed the binary check.
/nix/store/z0drsizh1pnz7il39hqgqkgryxmwiy5i-python3.8-pymatgen-2022.0.17/bin/.pmg-wrapped passed the binary check.
Warning: no invocation of /nix/store/z0drsizh1pnz7il39hqgqkgryxmwiy5i-python3.8-pymatgen-2022.0.17/bin/feff_plot_cross_section had a zero exit code or showed the expected version
Warning: no invocation of /nix/store/z0drsizh1pnz7il39hqgqkgryxmwiy5i-python3.8-pymatgen-2022.0.17/bin/pmg had a zero exit code or showed the expected version
5 of 10 passed binary check by having a zero exit code.
3 of 10 passed binary check by having the new version present in output.
found 2022.0.17 with grep in /nix/store/z0drsizh1pnz7il39hqgqkgryxmwiy5i-python3.8-pymatgen-2022.0.17
found 2022.0.17 in filename of file in /nix/store/z0drsizh1pnz7il39hqgqkgryxmwiy5i-python3.8-pymatgen-2022.0.17

Rebuild report (if merged into master) (click to expand)

18 total rebuild path(s)

9 package rebuild(s)

9 x86_64-linux rebuild(s)
9 x86_64-darwin rebuild(s)

First fifty rebuilds by attrpath
docbookrx
python38Packages.castepxbin
python38Packages.pymatgen
python38Packages.pymatgen-lammps
python38Packages.sumo
python39Packages.castepxbin
python39Packages.pymatgen
python39Packages.pymatgen-lammps
python39Packages.sumo

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/z0drsizh1pnz7il39hqgqkgryxmwiy5i-python3.8-pymatgen-2022.0.17 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python38Packages.pymatgen https://github.com/r-ryantm/nixpkgs/archive/ffebe059bb7d1c5e693607a7e49749ce5978d824.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/z0drsizh1pnz7il39hqgqkgryxmwiy5i-python3.8-pymatgen-2022.0.17
ls -la /nix/store/z0drsizh1pnz7il39hqgqkgryxmwiy5i-python3.8-pymatgen-2022.0.17/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages marked as broken and skipped:

python38Packages.pymatgen-lammps
python39Packages.pymatgen-lammps

6 packages built:

python38Packages.castepxbin
python38Packages.pymatgen
python38Packages.sumo
python39Packages.castepxbin
python39Packages.pymatgen
python39Packages.sumo

Maintainer pings
cc @PsyanticY for testing.

diff: https://github.com/materialsproject/pymatgen/compare/v2022.0.16...v2022.0.17
changelog: https://github.com/materialsproject/pymatgen/releases/tag/v2022.0.17
The broken dependencies (pymatgen-lammps) have been broken for a long time. LGTM.


Failed to terminate running task, and VS Code is prevented from restarting/reloading

VSCode Version: 1.5.3
OS Version: Windows 10 Build 14926

Seems to be different from #4684.

This is my tasks.json configuration, using TypeScript 2.0:
{
    "version": "0.1.0",
    "command": "npm",
    "isShellCommand": true,
    "args": ["run", "build", "--", "-w"],
    "showOutput": "silent",
    "isWatching": true,
    "problemMatcher": "$tsc-watch"
}

Steps to Reproduce:

Execute build command.
Execute terminate running task command or just try to close/reload VS Code.

It's now working on one of my laptop after rebooting Windows. Closing for now.


Error when moving a file that is open in another application

PermissionError: [WinError 32] The process cannot access the file because it is being used by another process:

Unable to replicate this at the moment. Permission denied error working when trying to move a file that is open in an application.
Will leave issue open for now in case I come across it again.


Add default-address-pool setting

Add the ability to pass --default-address-pool settings to dockerd.

@microsoft-github-policy-service agree company="github"


Added randomcase method and some CSS

So I added the randomcase method which generates a 50/50 chance using the global Math variable, etc. So the returned string letters are randomly changed to upper or lowercase. I also updated some of the CSS, I don't know how you will feel about it. I personally think that it looks better with my additions/deletions. Also added randomcase to the tests. But it is like the randomize method in that it still can fail. I hope you enjoy my code. Love the repo. And hope to contribute more. :)

Oh yeah, I also didn't want to update/edit the README.md until I get your approval. :+1:

Love your code. I have no issue with the CSS changes on the test page. And yes please update the README. Thanks for PR and the compliment on the repo.

Okay, I added another = sign and added documentation to the README. :)

Hey, so I updated a lot in the tests directory because I saw that the css was not really compatible with the right HTML id names and such, and also added highlighting for the method names in Javascript. I hope you like what I did.

I'll probably be changing test-styles.css to tests.css in the next version, but for now they need to keep the original filename to prevent merge conflicts when I merge the rest of the changes.

Fixed things.

Okay, I think I fixed everything. Next pull request won't be as sloppy, I swear. :)


Update options reference when updating axis scales

Fixes #269

Haven't actually tried this (if only there was a dist I could easily pull ;) ), but not sure this is addressing the same issue as in #269. That issue is for the following case:
var c = new Contour({
   xAxis: { max: ()=>  Math.floor(Math.random() * (10 - 5)) + 5}
});
c.render();

I'd expect the max to change each time the chart is re-rendered. Does this PR address that?

Hi, I'll test that case tonight, but I think is covered. The problem is was the the updated materialized options were not being passed to the scale generator after the first render, so line 229 (his.xScaleGenerator.update(this.xDomain, this.dataSrc, this.options);) should take care of that... I'll test that case anyway

I tested the case that you refer to and it works as expected. Re-rendering the chart changes the max value for the xAxis


Missing dependencies

Hi, after installing lm-format-enforcer from pypi in a clean container, it fails to import some modules.
Running from lmformatenforcer import CharacterLevelParser, JsonSchemaParser
  File "/usr/local/lib/python3.10/dist-packages/lmformatenforcer/external/jsonschemaobjectutil.py", line 29, in <module>
    from packaging import version
ModuleNotFoundError: No module named 'packaging'

  File "/usr/local/lib/python3.10/dist-packages/lmformatenforcer/external/jsonschemaobjectutil.py", line 69, in <module>
    from yaml import CSafeLoader as SafeLoader
ModuleNotFoundError: No module named 'yaml'

installing packaging and PyYAML fixes this.

I don't think it has anything to do with poetry. These dependencies are not present in pyproject.toml and both pip and poetry do not install them.

Fixed in v0.9.1


Disable another device whilst running a device

When rates are low (for me below 3.5p per kW/h) I want to disable my gas water heater controller  (in my case Evohome) and enable my immersion heater. Once rates ago above set value I want to re-enable the gas water heater controller.
This would mean I get to heat water using be best cost method.
I hope this makes sense!

Hi @ademobile, I think this might be easiest for you using an automation in home assistant based on the entity sensor.octopus_agile_current_rate. You can have it turn things on/off based on the value of that sensor by calling the homeassistant.turn_on/off service.
Let me know if that is enough or if there is something more you need?


Link to real, official HTML rendering of arXiv postings. Fix title parsing.

Per https://blog.arxiv.org/2023/12/21/accessibility-update-arxiv-now-offers-papers-in-html-format/ we now get official (beta) HTML versions of everything! This is what I wanted when I made the HTML link in the mailer, and we finally have an officially supported way of getting them.
I also did some cleanup to handle cross-listed abstracts (e.g. from hep-ph).


Update django

Django 4.0 is out and it's time to drop support for all versions older than the most recent LTS.

I think we can prepare a release after we merged this.


[HUDI-4081][HUDI-4472] Addressing Spark SQL vs Spark DS performance gap

Tips

Thank you very much for contributing to Apache Hudi.
Please review https://hudi.apache.org/contribute/how-to-contribute before opening a pull request.

What is the purpose of the pull request
In our internal benchmarks we've detected that there's a very clear performance gap b/w following sequences even though they are using essentially the same underlying infra:

Spark SQL: INSERT INTO statement
Writing via Spark DS

The issue turned out to be inadvertent dereferencing of the incoming Dataset into RDD[Row], entailing the penalty of deserialization of every row.
After resolving both of this code-paths have comparable runtime.
Brief change log

Cleaning up shaping up flow to avoid unnecessary conversions
Cleaning up schema reconciliation and evolution handling to fix improper nullability handling
Avoiding the conversion loop Dataset > RDD[Row] > Dataset
Tidying up

Verify this pull request
This pull request is already covered by existing tests, such as (please describe tests).
Committer checklist

[ ] Has a corresponding JIRA in PR title & commit

[ ] Commit message is descriptive of the change

[ ] CI is green

[ ] Necessary doc changes done or have another open PR

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

CI is green:

https://dev.azure.com/apache-hudi-ci-org/apache-hudi-ci/_build/results?buildId=10397&view=results

@nsivabalan it was in InsertIntoHoodieTableCommand

CI is green:

https://dev.azure.com/apache-hudi-ci-org/apache-hudi-ci/_build/results?buildId=10430&view=results


wg-components Status Update 2021-06-07

What was accomplished

Session Analytics PRs out for SessionId, CreationTimestamp, and SessionCount (https://github.com/ampproject/amphtml/issues/33990)
AMP form rollback, adding missing support for validation on change (https://github.com/ampproject/amphtml/pull/34849)
amp-render binding API change
amp-render validation changes
launched amp-tiktok
amp-dailymotion bento version PRs

Lessons learned
What's next

Session Analytics: LastEventTimestamp and Engaged
New AMP component for quicklinks, design
amp-iframe bug
amp-render finish misc PRs
amp-dailymotion continue work

@micajuine-ho, it would be a nice addition to include links to the relevant issues/PRs when possible

@dmanek  @rebeccanthomas  Can you add your PR links when you have a chance?


Add mod test; to lib.rs and use first_project

Preview is available here:http://soroban-docs-pr160.previews.kube001.services.stellar-ops.com/


Update README.md

Relates to:

Risks

Background
What does this PR do?
What kind of change is this?

Documentation changes needed?

Testing
Where should a reviewer start?
Detailed testing steps

SORRY IDK WHAT I AM DOING
THANK YOU FOR THIS TECH


Review users not assigned to groups

Background

Review LastPass users to identify users not assigned to a Group. If a user is not attached to a share then their account will be deactivated.
Approach

Review group access and deactivate any users who are not inside a LastPass group.
Acceptance Criteria

[ ] Users who meet the criteria are deactivated.

Reference
How to write good user stories

Done. Users deactivated.


Wrong variable is auto-fixed

Environment information
N/A

Rule name
noNonNullAssertion
Playground link
https://biomejs.dev/playground/?code=YwB1AHIAcgBlAG4AdABGAG8AbwBCAGEAcgBJAGQAWwBpAHQAZQBtAC4AZgBvAG8AXwBpAGQAIQBdAD8ALgBmAG8AbwBfAGIAYQByAF8AaQBkAA%3D%3D
Expected result
Autofix should not replace my variable with a different variable.
Actual Result
item.foo_id?[item.foo_id!]?.foo_bar_id
Code of Conduct

[X] I agree to follow Biome's Code of Conduct

Hey @tylerlaprade , thank you for reporting. I believe this bug has been fixed in https://github.com/biomejs/biome/pull/1757. Could you please try the latest nightly release to confirm if the issue still persists?

Gladly, although I'm not sure how to do that. I'm on 1.5.3, which is the latest I have available:

Closing as resolved. The playground now shows the the result


Improve round-start TEG on Marathon Station

About the PR
Improves the round-start piping to encourage more use of the TEG on Marathon Station.
Why / Balance
The TEG was added, but there are still a lot of engineering players that don't set it up either because it's too much work, or because of skill issue (not knowing how to operate a TEG). This problem is particularly amplified on Marathon where the TEG setup left my head scratching. OK'd by emisse.
This PR changes the round-start TEG layout to hopefully make using the TEG a bit easier. It encourages use of the atmos burn chamber, and then piping the burn over to TEG, where it is spent and exhausted.
Despite this, operating the TEG still requires some technical know-how, because with this setup, you still must:

Set up pipes and mixers to create a burn mix.
Turn on the pump and light the chamber.
Charge the coolant loop with a coolant.
Turn on the coolant pump.
Open the exhaust blast doors.
Turn on the hot end valve.

Technical details

Media

[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes

Changelog

This makes it even less accessible to regular engineers as all the input connectors for burn chamber gases were removed.
Those leftover radiators inside the burn chamber seem out of place, they are not even connected and it's not how radiators work in this game, they end in a pipe cap.

I can remove them if you want. These weren't functional before.

I assume you removed the pipes under the plasma windows, meaning anyone wanting to utilize either of the chambers in TEG room will need to first dismantle the windows.

Do not assume. The pipes for the radiators are still there.

This setup is also entirely against how TEG itself is designed, by which I mean that TEG regulates how much energy it generates based on network power draw. Here it just goes straight into space without any sort of limit.

This claim is not true. While it is true that the TEG only extracts as much power from the gas as needed, that does not make this design against "entirely against how TEG itself is designed".
In this setup, it is true that unextracted energy is wasted by ejecting it out to space. The intended way for you to waste less fuel is, you guessed it, having atmos pump less plasma into the burn chamber.

I'm not sure how this is meant to be easier to setup than the previous layout, as it's now only accessible to atmos techs without a full rebuild. The atmos burn chamber will be used for making tritium and dismantled every other shift, making it even more of a hassle to setup TEG for the laymen.

These concerns seem to stem out of a mindset of using the old layout. The old layout used pumps on the hot end, which artificially limit the transfer rate through the hot end and cap the power output. The old layout's pumps also choke the exhaust from the burn chamber, causing the burn to sometimes go in and out. This new design improves this on all fronts.
In short, I think you should give this setup a try in game instead of just looking at the picture and thinking "this looks completely different from the setup I understand, it must be wrong."

There's only 1 burn chamber for atmospherics. There's 2 "burn chambers" for TEG.

That is correct. I can remove the previous two unused obsolete leftovers if you prefer. Why does atmos need a separate burn chamber to produce tritium? Why can't they produce tritium and feed the TEG using the same burn?

theres no real hot loop here since the fuel line just feeds into it and it exhausts into the chamber

theres no real hot loop here since the fuel line just feeds into it and it exhausts into the chamber

Why does there need to be a hot "loop"? You're intended to try to extract all of the heat out of the gas in one go, then vent it out. If you don't need that much power, reduce the plasma flow into the burn chamber. Gas is always flowing, despite there not being a loop, by virtue of the burn chamber producing more gas.

if you are doing a teg setup like that always just pump it into a lattice tile theres no reason to keep it around
inb4 gas miners will go away, then these setups will finally die and we will use chambers and radiators properly

Moved burn chamber into TEG room.

Overcome by events.


Dead or Alive 5 → "insufficient VRAM"

When I launch the game, there is a white screen then a error about VRAM (it works without d9vk)
Software information
Dead or Alive 5

System information

GPU: Nvidia GT 730M
Driver: 430.26-9
Wine version: Proton 4.2
DXVK version: 0.13

Apitrace file(s)
steam.trace.tar.gz
https://mega.nz/#!mrog2KJa!ySKt1DfKcYwEFXUtR-k9aNUiWBdddOHNf8Ho7SfOLno
Log files
game_d3d9.log

This is an OpenGL trace which is not useful to me. Please provide a D3D trace.

D3D trace (without d9vk installed):
https://mega.nz/#!mrog2KJa!ySKt1DfKcYwEFXUtR-k9aNUiWBdddOHNf8Ho7SfOLno

Could be related: https://github.com/doitsujin/dxvk/issues/1100

That error isn't in the log but the log is also pretty old. I think Josh modified the way D9VK reports available memory since 0.13 so if the error still persists it could indeed be the Nvidia allocation issue.
Would you mind uploading a new log?

steam-311730-d3d9.log
steam-311730-d9vk.log
Is that ok?

That confirms that its not dxvk#1100. Probably related to D3D9: GetBackBuffer: iBackBuffer > 0 not supported

It looks like the performance issue is related to dxvk:

With wined3d, the GPU is not overused like this. There are a lot of frames drops with dxvk for some reason.

Looks like the performances are good now!


Query results in a single roundtrip / network request

I've been messing around with the querying today, and I've noticed that for all queries I've only been able to get a cursor returned - but to actually get results, we need to call the various APIs on that cursor. This surely entails making an unnecessary extra roundtrip?
It kinda seems to go against the documentation outlined here: https://www.arangodb.com/docs/stable/http/aql-query-cursor-query-results.html#single-roundtrip
I've tried setting batchSize, but from what I can tell, there are no initial results in the query response, until a separate call is made on the returned cursor.
I'd like to be able to do something like so:
const query = await db.query(aql`
  FOR d IN ${dataSourceCollection}
    FILTER
      'es_qa_rat_hig' IN d.tags
      AND d.startDate <= "2020-10-01"
    SORT d.title ASC
    RETURN d
  `, {
    batchSize: 20,
    count: true,
  });

console.log(query.initialBatch); // <- synchronous, initial batch of 20

Is there something I'm missing? I've been searching high and low in the documentation and looked at all the returned objects in the API- but it seems, for the JS driver at least, that there is no way to avoid making a second network trip to the database.

The method calls only incur additional requests if necessary. Interacting with a cursor is async to ensure any necessary requests can be made transparently as needed but if the cursor has hasMore set to true, there's nothing more to fetch so consuming it won't result in additional requests.

Thanks, I also just confirmed that this is the case by using some performance timing - just one extra question then, how do we get a hold of hasMore ? It seems on the cursor it is called _hasMore (cursor.hasMore is undefined) so I can do something like:
console.log(query._hasMore);

But this is not typed correctly, so TypeScript gives me an error.
Is this the correct usage? Or is there another way to check that there is still another batch to come? Right now we only have hasNext(), but nothing in the way of hasNextBatch().
Looking at it more, I'm guessing the common usage would be to pull the batch first and then just check hasNext():
let batchResults = await query.nextBatch();
console.log(`Has next: ${query.hasNext()}`);

if the cursor has hasMore set to true

I'm assuming you meant false here.
~Also, lastly, is ArrayCursor.extra.stats.executionTime the actual execution time for the query? It doesn't seem to change either, as we call more cursor methods. Because taking into account the other cursor methods, a roundtrip is taking at most 1.1ms, but my initial query takes 3.7ms in total - the execution time given however is super low.~
Nevermind, just managed to find (in a random github issue somewhere) that executionTime is measured in seconds. Seems like a strange metric to choose, but at least it makes sense in my performance measurements now.


feat: withdrawal handler

https://github.com/keep-starknet-strange/satoru/issues/309
Pull Request type

Please add the labels corresponding to the type of changes your PR introduces:

Bugfix
Feature
Code style update (formatting, renaming)
Refactoring (no functional changes, no API changes)
Build-related changes
Documentation content changes
Testing
Other (please describe):

What is the current behavior?

Resolves: #NA
What is the new behavior?

Does this introduce a breaking change?

Other information

I know there is some unnecessary comments. Please let me know if everything right with this implementation cause I changed some other things aswell. After you guys confirm ill clear comments.


dependency 0.9.1 can't be resolved

I'm trying to compile the anko-test project (https://github.com/yanex/anko-example.git) but gradle can't resolve the dependency to the library :
Error:A problem occurred configuring project ':app'.
> Could not resolve all dependencies for configuration ':app:_debugApkCopy'.
   > Could not find org.jetbrains.anko:anko-sdk15:0.9.1.
     Required by:
         anko-example:app:unspecified

This is probably a duplicate of #308. :wink:

I can resolve the dependency by typing org.jetbrains.anko:anko-sdk15:0.9

Looking at jcenter they never pushed 0.9.1
https://jcenter.bintray.com/org/jetbrains/anko/anko-sdk23/

See also #313.

Nice, @yanex!


Fix vulnerability in tmpl version

Description
In response to this vulnerability report, https://github.com/advisories/GHSA-jgrx-mgxx-jf9v, deleted the transitive dependency in yarn.lock (as it was not locked to a specific version) and yarn'd again.
Other changes
N/A
Tested
N/A
How others should test
N/A
Related issues
N/A
Backwards compatibility
N/A

@mergifyio refresh

Hey @MuckT since NA is mentioned in how other should test , we are skipping this PR
CC : @kathaypacific
Thanks...!


[Fix] Script failing when using custom brew location

Had an issue running uninstall script on my M1 Pro machine, and simple solution.

@chrisgrieser
Love this workflow that you have created. Saves me a lot of time. Thank you for creating it :)


Merging Hub into Editor

Here's #175 retargeted onto #173 ... Meant to fix #172 :)

yup, alright the comment works for me, so on my end, we're good on this one

OK, awesome :)
Any thoughts on breaking up handleUpdate or the rest of architectural changes?

I don't mind handleUpdate staying as is for now

maybe add react-plotly.js-editor in the package.json of the async example? ;)

added to package.json

@bpostlethwaite any additional comments or does this work for you, in terms of addressing your worst complaints about #173 ?

Yep a single update function works for me. I am not sure how many users will need to override this behaviour yet or if that is a total non-issue.
:dancer: !!!


Prometheus metrics issues

I am having a couple issues related to metrics. I am using Prometheus as my monitoring database and Grafana to view the data. I noticed gaps in the data so I started to troubleshoot and I found that the Prometheus scrapes to Ouroboros are very slow compared to other scrapes. It takes 5-10s to scrape Ouroboros when other targets only take 10ms or less. I used nmap from another computer on the network and port 8000 shows as open most of the time but it randomly switches to filtered occasionally. The other ports for containers on this same host do not exhibit this issue, They consistently show open from nmap.
My other issue may simply be the way Ouroboros works currently. I noticed after resetting or recreating the container (my apologies for not being able to remember which one I did) that the metrics for container updates was also reset. Is there a way to have Ouroboros keep track of that data even after a reset/recreate. Especially in the case of Ouroboros needing to be updated. Could that be a feature request if there is currently not a way to do that? Possibly attaching a persistent volume to store the data in?

This was worked though in discord. Prometheus isnt designed to be long lived metrics, but you can achieve this with influxdb! :D


change notify to boolean

fixes #475

Coverage remained the same at 64.409% when pulling 1ab9808b59bcc696c56071bf34791bf62d316460 on jainnikhil30:master into cb8f768197d182bc8f19f2a2316c1725de48ed3e on ansible:master.

Coverage remained the same at 64.409% when pulling 1ab9808b59bcc696c56071bf34791bf62d316460 on jainnikhil30:master into cb8f768197d182bc8f19f2a2316c1725de48ed3e on ansible:master.

Coverage remained the same at 64.409% when pulling 1ab9808b59bcc696c56071bf34791bf62d316460 on jainnikhil30:master into cb8f768197d182bc8f19f2a2316c1725de48ed3e on ansible:master.

Coverage remained the same at 64.409% when pulling 1ab9808b59bcc696c56071bf34791bf62d316460 on jainnikhil30:master into cb8f768197d182bc8f19f2a2316c1725de48ed3e on ansible:master.


Update supported Django versions

Codecov Report

Merging #54 (f99253f) into master (c975de8) will increase coverage by 0.07%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master      #54      +/-   ##
==========================================
+ Coverage   96.62%   96.70%   +0.07%
==========================================
  Files           5        5
  Lines          89       91       +2
==========================================
+ Hits           86       88       +2
  Misses          3        3

Flag
Coverage Δ

unittests
96.70% <100.00%> (+0.07%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

django_spam/enums.py
100.00% <100.00%> (ø)

django_spam/urls.py
100.00% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

Once merged, be sure to follow the "Releasing" section in README

Pinging again 🔔


Add Docs for Adding a custom Delegate Class in properties file

I wrote a custom Delegate class that's a subclass of StdJDBCDelegate, but its unclear from the docs how to specify a custom Delegate class.

See "org.quartz.jobStore.driverDelegateClass" in http://www.quartz-scheduler.org/documentation/quartz-2.2.x/configuration/ConfigJobStoreTX.html


signal when upload is done

Adding a signal for when a file is successfully uploaded (could this already be covered by model save?)
from https://github.com/danlamanna/joist/pull/11#pullrequestreview-319240144

are we talking client signal (like sending an event) or server signal (after the form has been submitted)?


add-linter-for-json

this ensures that json files are valid json (which is a pre-requisite
to json schema validation).

this test correctly spot and provide feedback on issues like the one fixed in #180


Error logs are silently lost if LogPlugin is added late.

Problem
Perfectly good error logs are silently lost if DefaultPlugins or LogPlugin has not been added early enough.
I found this behavior on the main branch but I expect it goes pretty far back.
Example
I was mucking around with mesh2d_manual for reasons and I made this mistake: I put ExtractResourcePlugin ahead of DefaultPlugins.
fn main() {
    App::new()
        .init_resource::<DistBuffer>()
        .add_plugins(ExtractResourcePlugin::<DistBuffer>::default())
        // Error message that "Render app did not exist..." is never shown.
        .add_plugins((DefaultPlugins, ColoredMesh2dPlugin))
        .add_systems(Startup, star)
        .run();
}

I was befuddled by this because I could see the error message in the code and assumed I must not be hitting that execution path. I added some eprintln! and figured out it was the LogPlugin that needed to come first before the error was reported. To provoke the error again and log it, I added LogPlugin manually.
fn main() {
    App::new()
        .add_plugins(LogPlugin::default())
        .add_plugins(ExtractResourcePlugin::<DistBuffer>::default())
        .add_plugins((DefaultPlugins.build().disable::<LogPlugin>(), ColoredMesh2dPlugin))
        .init_resource::<DistBuffer>()
        .add_systems(Startup, star)
        .run();
}

This then showed me the right error message:
2024-05-17T05:12:34.125757Z ERROR bevy_render::extract_resource: Render app did not exist when trying to add `extract_resource` for <mesh2d_manual::DistBuffer>.

This is a great error message and would have set me straight if I had seen it.
Suggested Solutions
Fix in the small
One could have ExtractResourcePlugin come before DefaultPlugins if it did its work in finish() rather than build(). I've seen a few plugins opt for this when dealing with the RenderApp. Maybe that should be done but I think that's avoiding a larger issue.
Accumulate Log Counts
Perhaps errors emitted before LogPlugin ought to be accumulated somehow so they aren't silently lost until LogPlugin is added. Keeping an accounting of the missing log types would be helpful. Then when LogPlugin is added, it could emit this warning if there are missing log types that we care about:
2024-05-17T05:12:34.125757Z WARNING bevy_log::LogPlugin: Missed logs: 2 warn, 1 error; consider adding LogPlugin or DefaultPlugins to App earlier.

Maybe a LogCountPlugin could be devised that only collects those counts.
And if the App never adds LogPlugin, maybe those counts could be made available somewhere.
Conclusion
I'm happy to submit a PR for either of these solutions if desired.

Ultimately caused by #1255. We need real plugin ordering in some form to avoid this sort of footgun.

If you .init_state before .add_plugins(DefaultPlugins), you'll get an unwrap panic looking for the StateTransitions schedule, but you will not see the warning that would tell you that you tried to .init_state before adding StatesPlugin... which defeats the point of that warning for anyone who's using DefaultPlugins.

I like the idea of adding it in App::new/default, and App::empty already exists for those who want a bit more control. I think doing some kind of pub App::init_logging that's called by App::default would allow the same level of customization we have with LogPlugin, by allowing the user to pass in new layers.

Actually you're right. App::empty already exists, and App::new already sets up foundational plugins and resources:
https://github.com/bevyengine/bevy/blob/a0f5ea0d3621a14bdc06d1e3bf1a8d9de90d409b/crates/bevy_app/src/app.rs#L92-L114
LogPlugin would fit right in.


CostTracker - wait for in-flight transactions before reporting

Problem

#366
cost-tracker-stats can be reported during the period when a batch of transactions has reserved requested CUs, but not yet updated tracker with actual costs

Summary of Changes

Execution threads hold a read-lock during execution (reserve through update)
Reporting thread grabs write-lock before reporting

Fixes #366

Another option would be an atomic counter that we increment then decrement.
But that will fail and lead to an infinite loop if we had a case where we do not decrement.
Also makes the reporting thread waiting a bit more complicated.
...but it'd allow the changes to be isolated to the cost-tracker & consumer instead of touching Bank

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 81.8%. Comparing base (b2f4fb3) to head (8caa14b).
Report is 6 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff            @@
##           master     #373     +/-   ##
=========================================
- Coverage    81.9%    81.8%   -0.1%
=========================================
  Files         838      838
  Lines      227368   227390     +22
=========================================
- Hits       186238   186223     -15
- Misses      41130    41167     +37

Closing in favor of #398


Unable to launch CS:GO in trusted mode after 1.4 mb update on 9th or 10th July 2020

i launched stem using the exe compiled everything works fine until a popup comes up csgo unable to start in trusted mode. Tried everything but in vain

Nevermind...I restarted the pc and it worked fine


Manage application assets with the new Symfony asset manager

Next week Ryan will publish his new project to manage web assets in Symfony applications. I propose to start using it in the Symfony Demo right away. Although it's new, it's pretty stable and it has been tested in several real Symfony apps.
The only thing to keep in mind is that the generated CSS and JS files must be committed to the repository to keep our promise that this app works out of the box without configuring anything or executing any command.
I'll take care of this issue because I have already worked with this package, so hopefully I can integrate it quickly. Thanks!

what is this asset manager doing ?

I don't understand your comment ... but OK, it's not an asset manager ... is a helper for the real asset manager, which is Webpack 😁

Well, you say "use the new asset manager". Having some kind of description of what this project does would be a good idea when you open an issue asking to use it (and unlike Encore, I don't have pre-release access to it, so I need to ask when you tease us)

@stof there's been a HUGE misunderstanding between us: I'm talking about Encore in this PR, not about another unannounced tool 😄   I didn't want to mention the real name (Webpack Encore) before Ryan unveiled it ... so I said "asset manager" ... but that's wrong, because Encore is "a Webpack manager".

hmm, I missed the fact that this issue was opened before the release of Encore. I saw the issue after it (when reviewing the PR adding Encore).
I suggest closing this issue then, as the PR is merged (unless you want to polish the documentation about using Encore in the demo first)

Closing it as fixed by #589 and #593.


Blocking on webgl for first initialization

On the first run of model using webgl backend it takes very long time. I understand that internally it has to set up the gpu but the method blocks and takes a long time(I see this with predict/execute and execute async.) Is this the expected behavior? What is the recommended behavior and any tips on speeding this up? Should we run in webworker? I have about six models I need to initialize. Is there a way to run them all at once?

@rohanmuplara ,
In order to expedite the trouble-shooting process, could you please provide the tensorflow version,complete code and dataset to reproduce the issue reported here.

Sure I am not surer if a dataset is necessary. This is just inference. Tensorflow version is all of them especially latest one. I have found this to be true of any model

@rohanmuplara ,
Without the reproducible code, it would be difficult for us to debug the issue. In order to expedite the trouble-shooting process, could you please provide a minimal code snippet and the TensorFlow version you are using.
Thanks!


fix(common): Fix MulterOption decorator mapping

Closes: #1109

:tada: This PR is included in version 6.11.1 :tada:
The release is available on:

v6.11.1
GitHub release

Your semantic-release bot :package::rocket:


Page numbers in citations

When storing a quote in Obsidian I am also storing the page number, just as text next the @link. This is then outside the citation when copied using the plugin to generate latex.
How can I store the page (or chap) number such that it is in [ ] before the { } in the latex generated.
I think this is related to the pandoc discussion elsewhere ... ?

Covers the same ground as Issue #4 - lets keep discussion there.


Always use localhost, not host name

Fixes #2350

+1 on green build.

what about https://github.com/influxdb/influxdb/blob/30b56cea0383f7c72b5be5574a08da63750b9dc8/cmd/influxd/config.go#L257-L259 also?

+1


feature: support non standard parse

Supports parsing of non-standard formulas, that is, formulas without spaces before and after $ or $$. For example：
var testTxt = `
afdaf$x=x^2$4$x=x^2$

$$
x = x^2
$$
`
const options = {
    throwOnError: false,
    nonStandard: true
};
marked.use(markedKatex(options));
marked.parse(testTxt)

can be rendered normally into：

or：

Can you add tests and add the new option the the readme.

@UziTech I don't know how to write test

You can create a test in https://github.com/UziTech/marked-katex-extension/blob/main/spec/index.test.js

@UziTech ok, I try try.

@UziTech It's ok. you see see, my friend.

@UziTech I have added unit tests

@UziTech Hello bro, could you make a merge?


Status Bar not Functional for Timelapse Data

🐛 Bug / Feature Sugestion
First of all this is the Issue I raised in the napari community meeting on 30.03.2022.
When I have timelapse data with a corresponding table of features extracted for each frame in the timelapse, I cannot get the status bar to show the correct information for the label which is being hovered above. Since the label is the same between frames (data is tracked) only one row of the measured feature table is shown in the status bar even when switching between timepoints.
To Reproduce
Steps to reproduce the behavior:

Load segmented and tracked timelapse dataset (original image and label image)
Measure features with napari-cluster-plotter measure widget
Hover above Label and compare with the table if the information is correct.

Expected behavior
There should be a possibility to have the status bar show label information specific to the timepoint. The first and simplest idea was to have a multi index system (instead of solely an 'index' column in the tabular data being accessed by the status bar an additional 'frame' column). A column named 'frame' would then also allow smoother compatibility with tracking programs like mastodon which use this nomenclature. In the community meeting a different approach using multidimensional tabular data (xarray library) was also discussed.
Environment
napari: 0.4.14
Platform: Windows-10-10.0.19043-SP0
Python: 3.9.7 (default, Sep 16 2021, 16:59:28) [MSC v.1916 64 bit (AMD64)]
Qt: 5.15.2
PyQt5: 5.15.6
NumPy: 1.21.5
SciPy: 1.8.0
Dask: 2022.02.0
VisPy: 0.9.6
OpenGL:

GL version: 4.6.0 NVIDIA 496.13
MAX_TEXTURE_SIZE: 32768

Screens:

screen 1: resolution 1680x1050, scale 1.0

Plugins:

clEsperanto: 0.15.4
console: 0.0.4
napari-clusters-plotter: 0.2.2
napari-time-slicer: 0.4.3
napari-tools-menu: 0.1.10
napari_skimage_regionprops1: 0.3.1
napari_skimage_regionprops2: 0.3.1
scikit-image: 0.4.14
svg: 0.1.6

I hope this helps!
Best, Ryan

Thanks, @Cryaaa ! I suspect this is a somewhat common use case that we should support.
I wonder if it makes sense to add an indexing function to the layer features. This indexing function takes and an nD coordinate (likely in data coordinates) and returns a table row. We could have a default indexing function (e.g., get rows based on the value in the label or index column), but also allow the user to pass their own in.
For example, if you had a Features table that looked like this:

label
time_point
volume

1
0
10

2
0
20

1
1
25

2
1
20

You could write an indexing function like this (assuming time was the 0th axis)
def index_table(features_table, column_values: Dict[str, Any], coordinate: np.ndarray) -> pd.Series:
    label_value = column_values["label"]
    return features_table.loc[
        (features_table["label"]) == label_value & (features_table["time_point"] == coordinate[0])
    ]

The status bar update could then using the indexing function:
label_index = self.get_value(coords)
features_row = self.features.indexing_function(
    column_values={"label": label_index},
    coordinates=coords
)

What do you think, @andy-sweet ? Does that seem reasonable?

Assuming we stick with a regular 2D and likely tidy dataframe/table (i.e. no xarray), I think something like @kevinyamauchi's idea is probably the way to go.
Agreed that the fundamental problem here is that we need a more general/powerful way of mapping from a coordinate in the layer's data to just one row (or zero rows) in the feature table. For something like the points layer that's fairly easy because we just have to find the index of the point closest to that coordinate. I think that could be as simple as providing a mapping between data dimension indices and features table columns that stores those extra coordinates that we don't have. If we had data dimension names then this could be done automatically, though we're also starting to reinvent a crude version of xarray then (which isn't necessarily a bad thing!).
Once we have that row, we can use the existing code to generate a status string. Or maybe we could use a FormatStringEncoding for some user customization. A general user defined function is also possible, but we need to think about how to serialize that or accept that it may not be possible to persist it across napari sessions in the future.


Add security advistories to the footer

Up the visibility in addition to News > Security.
(Also fix a blogs link

)

Ok. I'm going to move forward with this and we can see if we don't need to remove one or the other of them.


Add boto3 to all template environments

It's only in extras require: https://github.com/mlflow/mlflow/blob/master/setup.py#L84
Already done for mlflow-pytorch
boto3 is used for S3 access

https://github.com/mlf-core/mlf-core/commit/4f6af4ef529a38136dcd0a3f3064f19423885252


Added loops limit.

Description

Resolves #
Checklist

[ ] I have updated the documentation to account for the changes in the code.
[ ] If I added new functionality, I added tests covering it.
[ ] If I fixed a bug, I added a test preventing this bug from silently reappearing again.
[ ] My contribution follows Venus contribution guidelines.

Would it make sense to define a parent abstract class with these items?

event MaxLoopsLimitUpdated
error MaxLoopsLimitExceeded
store variable uint256 public maxLoopsLimit;
functions setMaxLoopsLimit and _setMaxLoopsLimit
function ensureMaxLoops(uint len), that would check if len > maxLoopsLimit

I think this way we would simplify the integration of this feature in our code. What do you think?

I have created a seperate abstract contract for that.

I miss some tests on the specific added feature:

Setting max loops limit and check the emitted event
Setting max loops limit, iterate on a bigger loop and check the expected error

Added.


Build failure on node v21.2.0

Hi! When trying to install this library with node v21.2.0, I get the following build error:
  CXX(target) Release/obj.target/node_expat/node-expat.o
In file included from ../node-expat.cc:1:
../../nan/nan.h: In function ‘bool Nan::IdleNotification(int)’:
../../nan/nan.h:686:63: warning: ‘bool v8::Isolate::IdleNotificationDeadline(double)’ is deprecated: Use MemoryPressureNotification() to influence the GC schedule. [-Wdeprecated-declarations]
  686 |     return v8::Isolate::GetCurrent()->IdleNotificationDeadline(
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  687 |         idle_time_in_ms * 0.001);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/work/.cache/node-gyp/21.2.0/include/node/v8-initialization.h:13,
                 from /home/work/.cache/node-gyp/21.2.0/include/node/v8.h:34,
                 from /home/work/.cache/node-gyp/21.2.0/include/node/node.h:73,
                 from ../../nan/nan.h:60:
/home/work/.cache/node-gyp/21.2.0/include/node/v8-isolate.h:1341:8: note: declared here
 1341 |   bool IdleNotificationDeadline(double deadline_in_seconds);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/work/.cache/node-gyp/21.2.0/include/node/v8-array-buffer.h:12,
                 from /home/work/.cache/node-gyp/21.2.0/include/node/v8.h:24:
/home/work/.cache/node-gyp/21.2.0/include/node/v8-local-handle.h: In instantiation of ‘v8::Local<T>::Local(v8::Local<S>) [with S = v8::Data; T = v8::Value]’:
../../nan/nan_callbacks_12_inl.h:175:53:   required from here
/home/work/.cache/node-gyp/21.2.0/include/node/v8-local-handle.h:253:42: error: static assertion failed: type check
  253 |     static_assert(std::is_base_of<T, S>::value, "type check");
      |                                          ^~~~~
/home/work/.cache/node-gyp/21.2.0/include/node/v8-local-handle.h:253:42: note: ‘std::integral_constant<bool, false>::value’ evaluates to false
make: *** [node_expat.target.mk:120: Release/obj.target/node_expat/node-expat.o] Error 1
make: Leaving directory '/home/work/code/kresus/node_modules/node-expat/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.<anonymous> (/usr/lib/node_modules/node-gyp/lib/build.js:209:23)
gyp ERR! System Linux 6.6.1-arch1-1
gyp ERR! command "/usr/bin/node" "/usr/bin/node-gyp" "rebuild"
gyp ERR! cwd /home/work/code/kresus/node_modules/node-expat
gyp ERR! node -v v21.2.0

Confirmed fixed by #224. Cheers :sparkles:


TabNet Implementation

Thanks for the amazing tool!
I was wondering if you have any implementations for TabNet ( I understand SHAP works with any model though) -- any kind of tutorial/examples that calculate shapely value (viz would be great) on TabNet model would be super helpful
-- small update --
I've tried applying shap using kernel explainer, which is supposed to be working with any model, but it seemed to be wrong as it returned the error that TypeError: 'TabNetRegressor' object is not callable -- any thoughts on this?

Please note that I've attached a colab link with full code

fyi: The colab notebook/TabNet model that I've been using is TabNet's official sample notebook

Thanks in advance!
Sooeun

TabNet is not one of the currently supported models on SHAP. Spent hours trying to find a way around it but to no avail.

I don't understand. The notebook you attached correctly computes shap_values:

Can you please provide a shorter example in a ```python formatted code block that shows this error?

@dsgibbons I guess the error was not calling the KernelExplainer with the appropriate predict function of the loaded model. The correct call would be shap.KernelExplainer(loaded_clf.predict, X_train)  instead of shap.KernelExplainer(loaded_clf, X_train). That was the cause of the error.


Update Generic Pages “focusing”

Automatically generated by Netlify CMS

👷 Deploy Preview for shimmering-marigold-4f5b4a processing.

Name
Link

🔨 Latest commit
79b61d60078ba805eb2a50ecadd48c3d708d220e

🔍 Latest deploy log
https://app.netlify.com/sites/shimmering-marigold-4f5b4a/deploys/632cc18db991f80008c7266c


block: Simplify check for sorted labels

lset satisfies sort.Interface, so we can use sort.IsSorted() to
verify if the labels are sorted.
Note that with this change, we no longer return an error for duplicate
label names (which should probably be distinguished with a different
error message, if it's something we care about).

Mh, generally I'd say labels being unique and sorted is ensured by contract – it's just not feasible to re-verify this again and again in every place.
In the VerifyIndex specifically though, I'd argue we should ensure this once again. Simply because this is the place where we want to catch all the weird stuff and violations of said contract.

Seems like our agreement is not to duplicate this logic.


⚠ Cioos Pacific CKAN Sitemap has degraded performance

In 88bd405, Cioos Pacific CKAN Sitemap (https://catalogue.cioospacific.ca/sitemap/sitemap-1.xml) experienced degraded performance:

HTTP code: 200
Response time: 14235 ms

Resolved: Cioos Pacific CKAN Sitemap performance has improved in c4705e2 after 37 minutes.


error in aml-pipelines-parameter-tuning-with-hyperdrive while running the pipeline

I'm getting the following error while running the pipeline in the aml-pipelines-parameter-tuning-with-hyperdrive notebook:
AttributeError: 'CreateExperimentDto' object has no attribute 'to_dict'
Kindly help.

@vakhare Thank you for your feedback. Could you link the URL of the documentation you were following? That way, we can pass your feedback to the appropriate content author.

@vakhare Just checking in to see if you can please provide the link to the doc? If this is not a doc issue.  Can you please file a support request @ https://aka.ms/azsupt? If you do not have access to a support plan we can help you enable a one time free support ticket, please reach out<EMAIL_ADDRESS>with a link to this Doc/Issue as well as your subscription ID.

Hi, thanks for your reply. I will share the URL by the end of the week
Thanks!
On Tue, 28 May 2019, 22:23 Alberto Vega<EMAIL_ADDRESS>wrote:

@vakhare https://github.com/vakhare Just checking in to see if you can
please provide the link to the doc? If this is not a doc issue. Can you
please file a support request @ https://aka.ms/azsupt? If you do not have
access to a support plan we can help you enable a one time free support
ticket, please reach out<EMAIL_ADDRESS>with a link to this
Doc/Issue as well as your subscription ID.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/azure-docs/issues/32184?email_source=notifications&email_token=AL7IJNFSGSLDVY67PJXULFLPXVPR3A5CNFSM4HPXN262YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWMYEGI#issuecomment-496599577,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AL7IJNHNVRIKI4E7I5JAEFLPXVPR3ANCNFSM4HPXN26Q
.

@vakhare I'm afraid that I can not keep the issue open for that long. I will need to close this issue and please feel free to open a new one.
We have the "Give Feedback About This Page" button located at the bottom of the documentation pages. This way the URL will be added to your issue along with other metadata.

We will now proceed to close this thread.  Please create a new issue whenever you are ready to continue the conversation


aws.fxs.LustreFileSystems python SDK subnet_ids paramater

The current doc string for aws.fsx.LustreFileSystem has a parameter subnet_ids.
https://github.com/pulumi/pulumi-aws/blob/e51376b38e1fc240c8640892a0abbaf4168f98aa/sdk/python/pulumi_aws/fsx/lustre_file_system.py#L41
There are two potential issues?

The docstring describes a list of subnet_ids, but I think it should be just one id.
The name of the parameter is plural, should it be singular if it is just a single string?

This looks like a possible bug in the schema mapping. The example in the API docs shows a list for the subnet IDs, which I would have expected from the name. It also looks like the example failed to generate for Python, so something odd is going on here.


fby3.5: bb: Fix IPMB interface mapping

Summary:

Fix BB BIC hang on IPMB interface map initializing problem.

Test Plan:

Build code: Pass
No unexpected log: Pass
Bridge command: Pass

Log:

Before fix
[BB BIC console]
uart:~$ ?)I00:00:00.000,000]  usb_dc_aspeed: select ep[0x81] as IN endpoint
[00:00:00.000,000]  usb_dc_aspeed: select ep[0x82] as IN endpoint
[00:00:00.000,000]  usb_dc_aspeed: pre-selected ep[0x1] as IN endpoint
[00:00:00.000,000]  usb_dc_aspe*** Booting Zephyr OS build v00.01.03-18-g67d81d89470e  ***
Hello, welcome to yv35 baseboard 2022.1.1
ipmi_init

After fix
[BB BIC console]
uart:~$ ?)I00:00:00.000,000]  usb_dc_aspeed: select ep[0x81] as IN endpoint
[00:00:00.000,000]  usb_dc_aspeed: select ep[0x82] as IN endpoint
[00:00:00.000,000]  usb_dc_aspeed: pre-selected ep[0x1] as IN endpoint
[00:00:00.000,000]  usb_dc_aspe*** Booting Zephyr OS build v00.01.03-18-g67d81d89470e  ***
Hello, welcome to yv35 baseboard 2022.1.1
ipmi_init
ed: pre-selected ep[0x2] as IN endpoint
[00:00:00.000,000]  usb_dc_aspeed: select ep[0x3] as OUT endpoint
[00:00:00.103,000]  usb_cdc_acm: Device suspended

uart:~$
[BMC console]
root@bmc-oob:~# bic-util slot1 0xE0 0x02 0x9C 0x9C 0x00 0x10 0x18 0x01
9C 9C 00 10 07 01 00 00 80 01 01 02 BF 9C 9C 00
00 00 00 00 00 00

Hi, Could you rebase this on the current main branch.
There were some problems with the tests that should be fixed now.
Thanks!

Hi @GoldenBug,
We've forced updated the PR to rebase the main branch.
Please help to review again, thank you.


Add ability to maintain global plugins

Added ability to also maintain global plugins

I've been using this fork in prod for about a year - is there a maintainer who could merge it?


Feature/split protobuf interfaces

Pull request type

Please check the type of change your PR introduces:

[X] Refactoring (no functional changes, no api changes)

What is the current behavior?
Protobuf interfaces handled in common subproject for all eCAL projects
Issue Number: #611 (part1)
What is the new behavior?
Protobuf interfaces split into ecal::pb (core), app::pb (applications), ecaltime::pb (timeplugin)

Sorry to be picky here, but I have a few remarks to this PR.
Include paths
Especially for monitoring, but also sys, they are part of the public API headers. (more or less, the user can also run protoc on the proto files himself.). So, in all cases, the include of any of these should start with ecal, no matter what.
In my opinion we could do
#include <ecal/core/pb/monitoring.pb.h>

or
#include <ecal/pb/core/monitoring.pb.h>

Though I think I like the first one better. (and if we are moving the core, we could consider moving all relevant header files also into `<eCAL/core/...> (however, keeping the old ones and deprecating them for compatibility).

I moved/renamed

core/pb/.../.pb.h to ecal/core/pb/.../.pb.h
app/pb/.../.pb.h to ecal/app/pb/.../.pb.h
ecaltime/pb/.../.pb.h to ecal/ecaltime/pb/.../.pb.h

Also a good way of seeing if you are breaking API, is to (at first) not making any changes to the samples, and then see what is necessary to get them to work again (with deprecation warnings). (Introducing dummy header files (deprecated) and dummy targets).
Then you can go ahead and fix the warnings. You can then be sure you didn't break anything for the users.

I would not go for full downward compatibility here. For now just include paths needs to be fixed like

<ecal/pb/monitoring.pb.h> to <ecal/core/pb/monitoring.pb.h> or
<ecal/pb/play/service.pb.h> to <ecal/app/pb/play/service.pb.h>.

Additional target names needs to be changed from

eCAL::pb to eCAL::core_pb and
eCAL::pb to eCAL::app_pb.

In a separate issue we need to remove the precompiled protobuf header at all and provide the protocol buffer definition files instead.

Old target eCAL::pb added for full downwards compatibility. Old protobuf header files installed with redirections to the new file structure and deprecate warnings.


Minor fixes on image link and syntax enhancements

I have done a quick pass to fix image links
I have also moved some images at the top of the README, and made a few syntax enhancements.

Thanks @echarles.
We can take the opportunity to also fix a couple of typos from the previous iterations (comments).

Thx @jtpio Opportunities are there to be taken 👍
I have use the easy button commit suggestion which is very easy for me but produces commit history.
We haven't discussed so far, but which kind of merge should we apply in general in this repo? Maybe it is a case by case. For this particular PR, I would be tempted to go for Squash and merge

Well, in this paritcular case, the advantage of keeping separated commits is to see the contributors
commit 741ae91fcb95a853f006813fd3a89911fe9fcce3
Author: Eric Charles<EMAIL_ADDRESS>Date:   Mon Dec 2 06:46:48 2019 -0600

    Update command-palette/README.md

    Co-Authored-By: Jeremy Tuloup<EMAIL_ADDRESS>

In normal cases we can go for the default merge strategy (no squash).
For this PR I think it's fine to squash and merge. Normally the contributors will all appear in the commit description.

Well github shows the contributors with multiple pictos in the commits view based, I guess, on the commit message having Authored-by: ... or Signed-off-by: ...
I leave you decide which option you choose clicking on the big green button.

Let's go for "Squash And Merge" for this one, and we keep "Merge pull request" for the rest.


software package updates 2022-Dec

Update to the latest versions of the Asahi downstream Linux kernel, and the m1n1 bootloader.

Already taken care of and pushed now. Thanks for the effort though.


fix: insert user html more consistently

The issue
One of the problems we've had while writing challenges that inspect the DOM is that everything ends up in the body element, even if a user explicitly writes it in the head
To reproduce:

Go to https://www.freecodecamp.org/learn/responsive-web-design/basic-html-and-html5/say-hello-to-html-elements
paste the following into the editor

<title>head title</title>
<title>body title</title>

Hello World

inspect the preview pane
see (link, script and comments removed for clarity)

<title>head title</title>
<title>body title</title>

Hello World

create an index.html file and insert the original code, you will see:

<title>head title</title>

<title>body title</title>

Hello World

As a result, we can't tell where <title>head title</title> was, it will end up in the body regardless.
What this PR fixes
By using an iframe to parse the user's HTML (which needs to happen for SASS and Babel to work) we can overwrite a html element without wiping the entire page.  This preserves the user's head tags.
What this PR doesn't fix
html tags are still ignored.  It doesn't seem to be possible to replace the root element entirely. replaceWith(newHtml) and similar methods either fail entirely or are no better than replacing the innerHTML.
Why is this a draft?
Since we're not pushing everything into the body, the inline style that sets the body margin to 8px had to be removed.  We're still discussing what to do about normalise and the inline style was used to restore the Chrome default of 8px.

Oliver, thank you, for this PR. It will do well to help the tests.
What this PR does well:

Better mimicks browser behaviour
Allows tests to be written sans RegEx, knowing whether the title has been placed in the body or not

Implications:

The title can still be placed outside the body, and end up in the head - browser behaviour.

The title can still be placed outside the body, and end up in the head - browser behaviour.

Is this just the browser fixing bad HTML in the usual way or is it peculiar to our implementation?

The title can still be placed outside the body, and end up in the head - browser behaviour.

Is this just the browser fixing bad HTML in the usual way or is it peculiar to our implementation?

This is just browser being browser, and fixing the HTML for us.

Cleaning things up. Added this to your Trello, so that you can come back and resurrect this when you are ready.

@moT01 ran into some issues (margins in the iframe) that this clears up, and we're much closer to launching the front 3, so I think this should be revisited.

@moT01 @ShaunSHamilton @nhcarrigan
The removal of the margin looks pretty okay, honestly.  I checked a few challenges and it is noticeable if you're looking for it, but I don't think it's too bad.  Take a look at some of the early HTML challenges and let me know what you think.

Potentially relevant: https://github.com/jsdom/jsdom/blob/master/README.md#basic-options

By default, jsdom will not load any subresources such as scripts, stylesheets, images, or iframes. If you'd like jsdom to load such resources, you can pass the resources: "usable" option, which will load all usable resources.

It's been a while, so I took another look. Everything passed locally, but I'm trying it again in CI.

@ShaunSHamilton you're very welcome.  I hope it makes regex a fair bit less necessary.


WIP: Adds support for custom sale-on-hold banners

This is work on https://github.com/artsy/auctions/issues/665 .
@erikdstock the technical changes are quite small. We turn an Observable from just sending Bools to sending a tuple of (isOnHold: Bool, message: String?) (the message is optional). If the message exists and is not the empty string, we display it. This is a WIP because I need to update some tests.
@katarinabatina Here's what it looks like on phone:

And on iPad:

Basically, if there is a custom message sent from causality, we display it. We also display "You can still place max bids" under it. Users will see this overlay when the sale goes on hold, if they enter a sale that is already on hold, or if they tap the "Sale on Hold" banner on the main LAI interface:

I'm happy to chat about any updates you want to the design, just let me know 👍

Didn't we want people to still be able to max bid when the sale is on hold?

          1 Error

:no_entry_sign:
No CHANGELOG changes made

          1 Warning

:warning:
Needs testing on a Phone if change is non-trivial

  Generated by :no_entry_sign: Danger

Silly me! I must not have scrolled all the way down past the massive screenshot 😊