Experimenting with transcrypt quickly pollutes git status

When one tries out different examples and demos that Transcrypt so generously provides, the git status command quickly picks up a lot of noise. Maybe a stricter .gitignore is to be used? See screenshot:

I'm of the opinion that .gitignore should also contain javascript/ because it's reproducible.

@the1337guy well, as far as I can tell, not that much. When you introduce a new transcrypt/modules, you are given an option to implement it in javascript, right? For example, see modules/maths, there is a __javascript__ directory there. It is probably autogenerated but I am not sure. Anyway, it is under git, so I assume it is not autogenerated.
Bottomline, looks like sometimes __javascript__ is an important directory to include under source control, so it probably should not be globally .gitignore'ed

Hmm, then it'd be hard to have rules that ONLY cover the autogenerated JS files.

No, it wouldn't. Just add 'em as you see 'em, like I am doing here: https://github.com/QQuick/Transcrypt/pull/345

My projects are attempting to be pure Python including re-running Transcrypt when source files change, so I've added
# directories created by Transcrypt
###################################
__javascript__/

to my own repos' .gitignore.

#345 merged.
Most JS files are autogenerated, but indeed not all.
If there's a .py file with the same name one directory level higher, they mostly are.


Typescript rewrite

Did a couple of hours of Christmas coding :)
What is done and what is left to do?

[x] Rewrote the project to Typescript
[x] Added tests for most of the code to make rewriting/refactoring easier
[x] Refactored most of the code

Split up into logical parts
Left some TODOs for future improvements
Made sure all tests keep running (I also think our internal stuff still produces the same output)

[x] Added a travis file to run CI on travis and removed CircleCI
[x] Removed yarn.lock as it seems outdated as we also have a package-lock.json which seems updated more recently
[x] Added an api to support providing your own beautifier like prettier through a callback
[ ] Improve getViewForSwagger2.ts
[ ] Instead of using our own Swagger typings we might want to look for OpenAPI typings (Something like https://github.com/kogosoftwarellc/open-api/tree/master/packages/openapi-types)
[ ] Adjust Build badge to work on master (when merged)

Thank you for doing this @Markionium!
Sorry for slow PR response from me, starting now

Should we enable prettier as part of the project at the same time?

I also started a TypeScript port two weeks ago, but I couldn't finish it before the holidays 👷
It's great to have a working port, thank you @Markionium
After the current PR got merged, I try to get some time and check if there are any changes in my port that may still be useful here.

@sbusch - Yup, for the codegen code itself :)

Should we enable prettier as part of the project at the same time?

I think we can (and maybe should) do that as a separate PR.


[Runtime][ThreadPool] Enhance CPU Affinity configuration for OMP case

This commit allows to pin threads to cores when we use OpenMP. It enhances
tvm::runtime::threading::Configure method to work with OpenMP and "kSpecify"
affinity mode.

cc @FrozenGene @masahi @yongwww @apeskov


2902_nodeDetail_1stSecExp

#155
https://github.ibm.com/NGP-TWC/wdp-abstract-canvas/issues/2902?email_source=notifications&email_token=AAA4OKDC4HWGJHO5ASZ5RATR6BUHTA5CNFSM4AHAU2TKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOAFJERUI
@matthoward366
I added a test suit "twisty panel with multiple tabs renders correctly" and all unit test finished successfully.

would u pls help to review?
Developer's Certificate of Origin 1.1
   By making a contribution to this project, I certify that:

   (a) The contribution was created in whole or in part by me and I
       have the right to submit it under the Apache License 2.0; or

   (b) The contribution is based upon previous work that, to the best
       of my knowledge, is covered under an appropriate open source
       license and I have the right under that license to submit that
       work with modifications, whether created in whole or in part
       by me, under the same open source license (unless I am
       permitted to submit under a different license), as indicated
       in the file; or

   (c) The contribution was provided directly to me by some other
       person who certified (a), (b) or (c) and I have not modified
       it.

   (d) I understand and agree that this project and the contribution
       are public and that a record of the contribution (including all
       personal information I submit with it, including my sign-off) is
       maintained indefinitely and may be redistributed consistent with
       this project or the open source license(s) involved.

This has been replaced by an option to define which panels are open on render.  https://github.com/elyra-ai/canvas/pull/744 Closing this PR.


Expanded .ar format support with LibObjectFile

https://github.com/xoofx/LibObjectFile
Supports BSD, GNU and DEB formats. Doesn't appear to have a way to distinguish directly from the stream, looks like you need to know which kind it is.  Will need to implement a checker either in LibObjectFile library (probably better) or in MiniMagic.
We have an .ar of each type checked into the TestData folder:
Common: Like Deb, already available in test data as Shared.deb
GNU: Available in test data as Shared.ar
BSD: Available in test data as Shared.bsd.ar

When BSD ar encounters filenames that are longer than 16 characters it puts #1/N in the header where N is the number of bytes of the filename string.
For example:
#1/24<PHONE_NUMBER>  501   20    100664  6217      `
CPANProjectManager.cs<file contents of length 6217>

When GNU encounters filenames that are longer than 16 characters it employs a filename lookup table in the first entry of the ar.
//                                              482       `
ArArchiveFile.cs/
BaseProjectManager.cs/
<more filenames until 482 bytes>

Later in the file to reference the filename when needed the header is denoted with a /N where N is the byte offset in the name header section.
For example to look up BaseProjectManager.cs above use /18
/18             0           0     0     644     19746     `

Currently we parse the size field of the header as an int but in at least the BSD version it is actually a long and can exceed max int.


Weird bug with scaled portals

https://youtu.be/PgC43bvovOg

try to turn off adjustPositionAfterTeleport

The adjust position thing needs to be changed

It was off

Close because outdated.


Mentor Option to Limit How Soon Mentees Can Schedule Sessions

Is your feature request related to a problem? Please describe.
Mentees sometimes schedule sessions just a few minutes ahead of time, not giving mentors much time to prepare (or even notice it has been scheduled). Some mentors feel they have to put other plans on hold when setting availability, not knowing if anyone will sign up.
Describe the solution you'd like
We could give mentees an option in their profile for how much notice they'd like to have. Something like "Mentees must sign up for sessions at least _ hours ahead of time."
Describe alternatives you've considered
Mentors can currently write out their preferences in their About Me, and that will display when mentees are on the Session Signup page, but they don't always pay attention to that.

@nzeager I think this is a duplicate issue with https://github.com/orgs/TeamProductionSystem/projects/2/views/1?pane=issue&itemId=44515348
Mind confirming before I close this one?


Fix belt request handling for requests with quotes in them.

Using positional arguments in command handlers makes Discord.py
use its own parsing algorithm, which has issues with quotes. Since
belt requests place no significance on quotes, we instead now use
keyword arguments, which bypass Discord.py's parsing. We
instead parse the belt and reasons ourselves using regular
expressions.

Discord.py's suggestion to use positional arguments for this: https://github.com/Rapptz/discord.py/issues/1796


Document skip_first_batches in the checkpoint usage guides

Closes https://github.com/huggingface/accelerate/issues/1130

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


Added metadata to pull requests

The metadata is added if the user wants to, as can be seen with this one on GitHub.
Fixes #271

This pull request was created on preview-code.com

LGTM

Accidentally closed this pr instead of merging.
All the checks had already passed.


drivers: adc: deprecate adc_enable/adc_disable functions

adc_enable/adc_disable functions are no more required. Power management
should be done via Zephyr Power Management Subsystem API.
This commit marks the two functions as deprecated and removes them
from the test suite.
Jira: ZEP-2550
Signed-off-by: Piotr Mienkowski<EMAIL_ADDRESS>

isn't is sot hat deprecated api, if used in a test, will make this built failing? (used to be that way when we were on gerrit if I remember correctly)

I think we should leave the testsuite alone until users of adc_enable/adc_disable are converted over. Looks like adc_dw, adc_qmsi, and adc_qmsi_ss need changes.

I do not see this being used in any of the drivers.

I think we should leave the testsuite alone until users of adc_enable/adc_disable are converted over. Looks like adc_dw, adc_qmsi, and adc_qmsi_ss need changes.

I do not see this being used in any of the drivers.

@galak is right, adc_dw, adc_qmsi, adc_qmsi_ss drivers need to be reworked. It is well possible that after this PR is applied the adc testcases for these drivers will fail.
I still removed adc_enable/adc_disable functions from testcases because:

I assumed we shouldn't test deprecated functionality
if left, we force any new drivers to implement these deprecated functions (we plan to send a PR with Atmel SAM ADC driver in the next few days).
by having a testcase fail we would know which adc drivers need to be reworked. In CI tests we only build testcases so it doesn't influence the outcome anyway.

But maybe my assumptions were wrong.
Apart from testsuite adc_enable function is called by the following drivers:

drivers/grove/light_sensor.c
drivers/grove/temperature_sensor.c

I didn't remove these calls as it could break the functionality for those who rely on adc_dw, adc_qmsi, adc_qmsi_ss drivers.

So, what should we do about this PR?

So, what should we do about this PR?

we need to move the existing drivers to the new API and remove usage of enable/disable.

we need to move the existing drivers to the new API and remove usage of enable/disable.

Does it mean that we should deprecate enable/disable functions only after the existing drivers are reworked? If that's the case should I close this PR, should we keep it in the backlog for the time being? This PR is marked with 1.9 milestone. This is probably not valid anymore.
Is there someone willing to do the job and update the drivers? Unfortunately I don't have any Intel or ARC boards so I can't do it myself.

yes, lets do that after 1.9

this should be obsoleted by #6176

obsoleted by #6176


[Task]: Optimise the JSObject collection update call to resolve timeout issues

SubTasks

[ ] /collections/actions/{id} call needs to be performant.

Documenting the debugging of this task here


Random WiFi TCP/IP disconnect (IDFGH-3377)

Environment

Custom Hardware
Module or chip used: ESP32-WROVER-B
IDF version 3.3.2
Build System: Make
Compiler version 1.22.0-80-g6c4433a
Operating System: Linux

Problem Description
We use ESP32 in our custom device, it is EMV contactless (ISO14443) cards reader. The device receives TCP/IP connection from the PC and holds it. Then PC continuously polls the device by the commands under this TCP/IP connection. TCP/IP connection is single, there are no other connections. PC sends each command at approximately one per second.
Also the device enables TCP/IP KeepAlive feature on the established connection.
lwIP TCP/IP KeepAlive parameters:
    { SOL_SOCKET,  SO_KEEPALIVE,  1 },    // enable TCP keepalive feature
    { IPPROTO_TCP, TCP_KEEPALIVE, 1000 }, // interval between keepalive probe packets in milliseconds
    { IPPROTO_TCP, TCP_KEEPINTVL, 5 },    // how much time (in seconds) keepalive packets may be unanswered before counter incremented
    { IPPROTO_TCP, TCP_KEEPCNT,   5 },    // max counter value, if counter more than that, server drops connection

Out customer notices that some of devices have reliable TCP/IP connection, without disconnections.
But other device randomly closes connection at their end. After that, PC tries to reconnect to the device. New connection may be established immediately, but may takes significant time (up to few minutes). All devices placed on the same distance from the PC.
Our customer notices that while TCP/IP connection have dropped, WiFi connection still established according to the Access Point status.
After notice the issue, we have made following settings to increase connection reliability, but without success:

set WIFI_PROTOCOL_11B only (i.e. disable G & N modes)
set Power Save mode to WIFI_PS_NONE

Notes
We have the Ethernet version of the same hardware. It widely used in the field and have reliable connection. The software is the same for both WiFi and Ethernet version of the device.

sdkconfig.zip

Hi @lexxvir could you help to capture the WiFi packets with wireshark?

Hi @liuzfesp
Unfortunately no, our customer has no appropriate hardware & experience to capture WiFi traffic.
Anyway, what do you advise to use to capture WiFi traffic on Windows or Linux PC ?
I'll try to check whether it is possible to arrangement this.

@lexxvir, The recommended Macbook's built-in packet capture tool does not require a packet capture card. It can be used to capture 802.11a/b/g/n/ac packets:
https://osxdaily.com/2015/04/23/sniff-packet-capture-packet-trace-mac-os-x-wireless-diagnostics/
Or you can use the tutorial on the official Espressif website to capture packets using Wireshark
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/wireshark-user-guide.html

Hi @esp-HarveyRong
Thank you for information!
@liuzfesp
it seems I reproduce same behavior on the my device. I've attached *.pcap file dumped by airodump-ng.
I used the following topology:

The Access Point with IP <IP_ADDRESS> creates WiFi network (legal)
The tested device (IP <IP_ADDRESS>) connect to this WiFi network
The PC (IP <IP_ADDRESS>) connects to Access Point by Ethernet
The PC works with device through the Access Point

The issue looks like PC (after some time) unable to get answer from the device within 10 seconds timeout. PC repeats their request again, without success. Then PC repeats request again and gets answer on the previous request (I see it by the frame ID that I used in our protocol).
The issue appears at the end of the PCAP trace:
wifi-traffic-03.cap.zip

Hi @lexxvir,
According to the data packet you provided, it was found that the PC did not ACK the ESP32 seq = 34076 packet within 10s, so that ESP32 actively disconnected. Within 10s, ESP32 retransmitted seq = 34076 packets multiple times, but the PC did not respond.
So I think this is the TCP disconnection caused by the PC not responding to ESP32 in time.

Custom Hardware
Module or chip used: ESP32-WROVER-IB
IDF version v3.3-r4
Build System: Mongoose-os
Compiler version 1.22.0-80-g6c4433a
Operating System: MacOS / Mongoose-os
I think I'm having a similar problem. We have 150 devices deployed and a small number are seeing frequent disconnects, some around every 10 minutes.  The issue causes an MQTT disconnect, however UDP stays up as I have logging continue to run over UDP.
Once disconnected, the device is unable to re-connect to TCP, query a DNS or reconnect to MQTT until after a reboot. Turning off the Wi-Fi stack then re-enabling it also doesn't reconnect.
Unfortunately I can't provide a packet capture, but do have log details showing the issue from the ESP device (once the TCP times out, after 30 seconds I call wifi-disconnect, then re-connect after 10 seconds but the reconnection fails.
https://pastebin.com/fxfLMNmi

... and here a log showing the original disconnection.  Note this log is collected from a remote device over UDP.
https://pastebin.com/AYcauebu

Hi @esp-HarveyRong
Thank you for analyze previous log!
Now I've got logs from the real client's device:
ZOC2006.zip
Both the TTY-log and PCAP files were recorded in the same time on the one device session.
In the ZOC2006_com101.log I noticed the following string:
I (1967986) wifi:bcn_timout,ap_probe_send_start
What does it mean?
It seems it was the cause of the connection interruption.
In the PCAP log I see a lot of re-transmissions. Which itself leads to the disconnection from the PC side. I'd like to remind that there are few (3-4) devices connected to the PC, but disconnect issues occur only on the one of them.

I've captured a further log, showing the detail of the initial TCP disconnect, followed an number of failed attempts to reconnect and re-establish the MQTT connection. This fails until a re-boot, upon which the device immediately reconnects
https://pastebin.com/y4k0yjhy

Hi @lexxvir,
I (1967986) wifi:bcn_timout,ap_probe_send_start means that the device has not received the Beacon frame of the AP within the specified time (ESP32 is 6s, that is, 60 Beacon Interval).
There are many reasons, which may be  memory insufficient of the device or AP power down or  AP RSSI low (signal bad), etc.
The log you provided shows that the AP's Rssi value is  low, which may be the main reason for this phenomenon, or it may be that frequent printing causes insufficient memory.
Hi @gadget-man, Can you use Wireshark to help capture WiFi packets? From the LOG, it is due to the disconnection caused by the device receiving Deauth or Disassoc frames.
For how to obtain WiFi packets, please refer to https://osxdaily.com/2015/04/23/sniff-packet-capture-packet-trace- mac-os-x-wireless-diagnostics/
Or https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/wireshark-user-guide.html

Hello @esp-HarveyRong,
Thanks for your response. Unfortunately my failing devices are in production at remote locations with domestic clients, so I'm unable to get WiFi packet capture. Is there any way to get further information on the Deauth or Dissasoc frames from additional logging on the ESP32?

Hi @gadget-man,
Can you provide more detailed information, such as: whether to connect the encrypted route, encryption type, reproduce frequency, IDF commit ID, can you provide a complete log, including (Info level WiFi log)

Hi @esp-HarveyRong,
Thank you for comments. I don't suspect memory issues because other devices work normally. Also, the issue there was also when I don't printing RSSI to console.
We try to connect external antenna and return to you with feedback.
Any way, thanks for help!

Hi @esp-HarveyRong,
We are using mongoose-os, connecting to AWS IoT Core MQTT with TLS encryption via their ATS endpoint for signed certificates, ESP-IDF 3.3-r4.
The issue is intermittent, occurring anything between 2-3 times/day to every 1-12 minutes on affected devices. Note this only affects around 2% of our devices, all running the same firmware.
Unfortunately I'm only able to provide logs for what I can capture over UDP. I have attached a further log below which may provide additional information. I am working with the guys at mos to see if we can also log the WiFi info log to the UDP stream.
https://pastebin.com/CcZqQgRt

Is there a way to utilise the esp_log_set_vprintf to elevate the WiFi log to transmit over UDP?  Using mos, I already get the majority of my logging over UDP, but not the esp level wifi logs which only appear on serial (and as my device is remote I can't access these).

HI @gadget-man, the MQTT (TCP) connection issue may related to:

The communication between ESP device and AP
The communication between AP and the MQTT endpoint

Generally speaking, we need following info to effectively debugging the issue:

Capture packets between ESP device and AP, namely the WiFi packets
Capture packets between AP and MATT endpoint, namely the wired packets

Without the packet, it's very difficult to address the issue.
Another way is to provide a demo code that we can replicate the issue ourselves, then we can debug it locally.

Apologies for the delay. I've now managed to capture some local logging information for a device:
https://pastebin.com/rREqVr3q
You'll see it operates fine for a while, but then starts dropping the connection - it then gets stuck in a disconnect / reconnect loop until a watchdog timer eventually forces a reboot.
Please note that throughout the period of the logging, the device is continuing to successfully send UDP log messages.

I've also now managed to capture some logs at the same time as Wireshark packet data. You can see from the logs that at 2818096 there is a bcn_timout,ap_probe_send_start, and after that WiFi STA: Disconnected, reason: 200 goes in a loop, where it reconnect, gets an IP, but as soon as MQTT0 attempts to reconnect the wifi drops out again with another  bcn_timout,ap_probe_send_start.
LOG00001.TXT
MacBook Pro_ch7_2020-07-23_<IP_ADDRESS>3.pcap.zip

@gadget-man,
According to the packet capture and Log analysis, bcn_timout,ap_probe_send_start occurs because the AP's Rssi value is low. That is -90dBm.
I (2753846) wifi: security type: 3, phy: bgn, rssi: -95 I (2753856) wifi: pm start, type: 2 mgos_wifi.c:137         WiFi STA: Connected, BSSID c4:41:1e:67:69:24 ch 7 RSSI -94
When the Rssi value is low, the device cannot receive the beacon frame in complex environment, and bcn_timout,ap_probe_send_start will appear.

Thanks. On a couple of other devices, I don't get a full WiFi disconnect. ICMP Ping fails with a timeout and my MQTT keep_alive ping fails, but UDP logging still continues. I will try and capture remote logs of this including the IDF Wi-Fi logging, but can you think of any reason why both TCP and ICMP would fail whilst UDP still continues?

On a couple of other devices, I don't get a full WiFi disconnect. ICMP Ping fails with a timeout and my MQTT keep_alive ping fails, but UDP logging still continues.

Can you attach a completed Log?

Here's an example but without the wifi: verbose logging as I can't currently get that over the UDP debugging using Mongoose-OS:
[Aug 23 04:15:43.906] iParcelBox-30AEA4C5A118 1337<PHONE_NUMBER>.179 2|pn_ping.c:35            PING 64 bytes from <IP_ADDRESS> icmp_seq=83 ttl=64 time=3 ms
[Aug 23 04:15:53.986] iParcelBox-30AEA4C5A118 1338<PHONE_NUMBER>.181 2|pn_ping.c:35            PING 64 bytes from <IP_ADDRESS> icmp_seq=84 ttl=64 time=5 ms
[Aug 23 04:16:04.044] iParcelBox-30AEA4C5A118 1339<PHONE_NUMBER>.183 2|pn_ping.c:35            PING 64 bytes from <IP_ADDRESS> icmp_seq=85 ttl=64 time=7 ms
[Aug 23 04:16:13.955] iParcelBox-30AEA4C5A118 1340<PHONE_NUMBER>.180 2|pn_ping.c:35            PING 64 bytes from <IP_ADDRESS> icmp_seq=86 ttl=64 time=5 ms
[Aug 23 04:16:24.898] iParcelBox-30AEA4C5A118 1341<PHONE_NUMBER>.173 2|pn_ping.c:44            PING From <IP_ADDRESS> icmp_seq=87 timeout
[Aug 23 04:16:24.901] iParcelBox-30AEA4C5A118 1342<PHONE_NUMBER>.177 2|
[Aug 23 04:16:26.965] iParcelBox-30AEA4C5A118 1343<PHONE_NUMBER>.182 2|mg_mqtt.c:193           Send PINGREQ
[Aug 23 04:16:26.966] iParcelBox-30AEA4C5A118 1344<PHONE_NUMBER>.191 2|mg_lwip_net_if.c:518    0x3f801048 tcp_write 31 = 0, 31 0
[Aug 23 04:16:34.946] iParcelBox-30AEA4C5A118 1345<PHONE_NUMBER>.173 2|pn_ping.c:44            PING From <IP_ADDRESS> icmp_seq=88 timeout
[Aug 23 04:16:34.946] iParcelBox-30AEA4C5A118 1346<PHONE_NUMBER>.179 2|
[Aug 23 04:16:44.982] iParcelBox-30AEA4C5A118 1347<PHONE_NUMBER>.173 2|pn_ping.c:44            PING From <IP_ADDRESS> icmp_seq=89 timeout
[Aug 23 04:16:44.982] iParcelBox-30AEA4C5A118 1348<PHONE_NUMBER>.177 2|
[Aug 23 04:16:54.903] iParcelBox-30AEA4C5A118 1349<PHONE_NUMBER>.173 2|pn_ping.c:44            PING From <IP_ADDRESS> icmp_seq=90 timeout
[Aug 23 04:16:54.903] iParcelBox-30AEA4C5A118 1350<PHONE_NUMBER>.177 2|
[Aug 23 04:17:04.950] iParcelBox-30AEA4C5A118 1351<PHONE_NUMBER>.173 2|pn_ping.c:44            PING From <IP_ADDRESS> icmp_seq=91 timeout
[Aug 23 04:17:04.950] iParcelBox-30AEA4C5A118 1352<PHONE_NUMBER>.177 2|
[Aug 23 04:17:14.898] iParcelBox-30AEA4C5A118 1353<PHONE_NUMBER>.173 2|pn_ping.c:44            PING From <IP_ADDRESS> icmp_seq=92 timeout
[Aug 23 04:17:14.901] iParcelBox-30AEA4C5A118 1354<PHONE_NUMBER>.177 2|
[Aug 23 04:17:24.896] iParcelBox-30AEA4C5A118 1355<PHONE_NUMBER>.173 2|pn_ping.c:44            PING From <IP_ADDRESS> icmp_seq=93 timeout
[Aug 23 04:17:24.899] iParcelBox-30AEA4C5A118 1356<PHONE_NUMBER>.177 2|
[Aug 23 04:17:26.247] iParcelBox-30AEA4C5A118 1357<PHONE_NUMBER>.513 2|mg_lwip_net_if.c:142    0x3ffe8864 conn error -13
[Aug 23 04:17:26.249] iParcelBox-30AEA4C5A118 1358<PHONE_NUMBER>.524 2|mg_ssl_if_mbedtls.c:31  0x3ffe8864 mbedtls_ssl_flush_output() returned -78 (-0x004e)
[Aug 23 04:17:26.259] iParcelBox-30AEA4C5A118 1359<PHONE_NUMBER>.534 2|mg_ssl_if_mbedtls.c:31  0x3ffe8864 mbedtls_ssl_write_record() returned -78 (-0x004e)
[Aug 23 04:17:26.268] iParcelBox-30AEA4C5A118 1360<PHONE_NUMBER>.544 2|mg_ssl_if_mbedtls.c:31  0x3ffe8864 mbedtls_ssl_send_alert_message() returned -78 (-0x004e)
[Aug 23 04:17:26.276] iParcelBox-30AEA4C5A118 1361<PHONE_NUMBER>.549 2|mgos_mqtt_conn.c:253    MQTT0 Disconnect
[Aug 23 04:17:26.279] iParcelBox-30AEA4C5A118 1362<PHONE_NUMBER>.556 2|mgos_event.c:135        ev MOS5 triggered 1 handlers
[Aug 23 04:17:26.287] iParcelBox-30AEA4C5A118 1363<PHONE_NUMBER>.563 2|mgos_event.c:135        ev MOS5 triggered 1 handlers
[Aug 23 04:17:26.303] iParcelBox-30AEA4C5A118 1364<PHONE_NUMBER>.580 2|init.js:474             MQTT Disconnect
[Aug 23 04:17:26.325] iParcelBox-30AEA4C5A118 1365<PHONE_NUMBER>.599 2|init.js:482             Starting MQTT Disconnect Timer:<PHONE_NUMBER>
[Aug 23 04:17:26.330] iParcelBox-30AEA4C5A118 1366<PHONE_NUMBER>.607 2|mgos_mqtt_conn.c:546    MQTT0 connecting after 1978 ms
[Aug 23 04:17:28.397] iParcelBox-30AEA4C5A118 1367<PHONE_NUMBER>.595 2|mgos_mqtt_conn.c:468    MQTT0 connecting to a24buxh69lukw9-ats.iot.eu-west-1.amazonaws.com:8883
[Aug 23 04:17:28.397] iParcelBox-30AEA4C5A118 1368<PHONE_NUMBER>.603 2|mgos_event.c:135        ev MOS6 triggered 1 handlers

Not sure if it's relevant, but on most of the devices I have displaying this error, the disconnect is VERY consistent in terms of the timing. Here's a screenshot from my dashboard showing one such device, usually happening every 15 mins 16 seconds. Average RSSI > 60%....

Not sure if it's relevant, but on most of the devices I have displaying this error, the disconnect is VERY consistent in terms of the timing. Here's a screenshot from my dashboard showing one such device, usually happening every 15 mins 16 seconds. Average RSSI > 60%....
Hi @gadget-man, for this kind of issue, I still hope you can provide data package. Without a data package, it is difficult to solve this issue. Or we can provide demo code to reproduce it ourselves and debug it locally.

I've managed to capture both logs and sniffer capture on a local device that seems to be having similar issues - let me know if these provide any clues? Note this device seems to crash shortly after getting the wifi connection then dropping it again.
Log for Espressif.zip

Hi @gadget-man,
Look at the Log. Use Light sleep. Can you turn off sleep for testing? It is suspected that this may be related to tbtt.
If closing sleep can solve the issue, please help provide the wifi firmware version.

HI @gadget-man，Did you turn off the sleep test? Can you provide the WiFi firmware version you are using?

For the particular situation when I provided the logs, turning off sleep mode did solve the problem. However I still sometimes get the repeating error on other devices. Recently one customer found that removing their LG TV from the same wifi network solved the issue - we have no idea what might have been causing a conflict between the two devices but any ideas welcome! Unfortunately I was unable to get a packet capture for this situation.

@gadget-man, after the LG TV is connected to the router, will all the devices be disconnected or only the ESP32? If only ESP32 is disconnected, can you provide the WiFi Log of ESP32? What is the model of the router?

I believe the issue was limited to the ESP32 device. Unfortunately I don't have any further details but will try and find out from our customer.

We have had another customer with the same issue - after 8-10 minutes the ESP32 loses the TCP connection to our AWS MQTT server, and an ICMP Ping to the local router IP address times out, however UDP stays online and so we are able to receive remote logging events.  The model of the TV is LG 55UJ701V. As soon as the customer either disconnects the TV or moves it to a different network, the problem goes away. No other devices on their network appear to be affected. Unfortunately I'm not able to get a network packet capture.

Hi @gadget-man, is it just TCP disconnected? Has the WiFi disconnect? Unfortunately, we do not have an environment to reproduce issue, so we can only rely on you to provide us with information. This kind of issue can generally only be analyzed by LOG + ESP32 and AP wireless package + AP to AWS wired package. I hope you can Provide such information.

Yes it's only TCP that gets disconnected - WiFi stays live and I continue to receive logs remotely over UDP. Note the issue is not only the AWS connection - ICMP ping to the local router also fails.
We will try and find a way to do some packet capture, and share it here if we are able to do so.

@gadget-man，
Why does UDP communicate normally when Ping fails?
Are you only using 11b? If only use 11b, there is a possibility that LGTV will use up all the bandwidth after connecting to the router. As a result, esp32 will not have the opportunity to preempt, so it may not be able to send out packets.
Can you change it to 11n and test it?

We'd love to know why UDP is fine but TCP and Ping both fail!!!  We are using bgn as the default network, so that can't be what's causing it.

@gadget-man, Usually ping failure indicates that there is a problem with the IP.  Since TCP and UDP are both transport layer protocols and both need to communicate based on the network layer IP protocol, Normally, both TCP and UDP will fail.  Can you tell us in detail? How to ping it? Where is ping?

Hi @gadget-man , Are there any updates? Can it be reproduced?

Hi @gadget-man , Are there any updates? Can it be reproduced?

Hi @gadget-man
Are there any updates? If not, I will close issue. If there is issue, please open it at any time.

Hi @gadget-man
Are there any updates? If not, I will close issue. If there is issue, please open it at any time.

It still occurs every day on a couple of devices, however they are deployed production devices and I'm unable to get Wireshark packet capture for them at the moment.
Those devices that fail, I'm using the ESP-IDF ICMP Ping script to ping directly from the ESP32 to the local router device - so even a basic ping between say <IP_ADDRESS> and <IP_ADDRESS> will fail.

It still occurs every day on a couple of devices, however they are deployed production devices and I'm unable to get Wireshark packet capture for them at the moment.
Those devices that fail, I'm using the ESP-IDF ICMP Ping script to ping directly from the ESP32 to the local router device - so even a basic ping between say <IP_ADDRESS> and <IP_ADDRESS> will fail.

You mean the PING  esp32  connected router will fail? Is it possible to check whether the router configuration prohibits PING function.

You mean the PING  esp32  connected router will fail? Is it possible to check whether the router configuration prohibits PING function.

Yes that's correct - ping will start fine, we get correct ping response for 8-10 minutes, then ping starts to fail, AWS drops, MQTT fails, but UDP stays online, sending mos debug logs remotely to our monitoring server.

Yes that's correct - ping will start fine, we get correct ping response for 8-10 minutes, then ping starts to fail, AWS drops, MQTT fails, but UDP stays online, sending mos debug logs remotely to our monitoring server.

This can only be done by capturing data packets to check the ping and MQTT failure reasons, or you can provide a minimal example of reproducing, I try to reproduce it locally.

This can only be done by capturing data packets to check the ping and MQTT failure reasons, or you can provide a minimal example of reproducing, I try to reproduce it locally.

Unfortunately it only occurs on a small number of production devices, I'm unable to replicate locally. As soon as I get get data packet capture I'll share it here.

Unfortunately it only occurs on a small number of production devices, I'm unable to replicate locally. As soon as I get get data packet capture I'll share it here.

@gadget-man Are you still working on this issue?
Let me repeat the issue: the esp32 devices with connect to the same router with LGTV, lose TCP connection and fail to ping the router, but success to send UDP packet to the sever. Through I don't know if it will recover automatically,  I will try to analyze the issue.
I think the cause may be:

fail to receive data from router because of sleep, but should recover very soon
can receive data, but discard by MAC layer because of buffer overflow
can receive data, but discard by MAC layer because of sequence number

I am not sure why this happen with LGTV, but I think reason 3 maybe the main reason.
If you are still working on this, please provide the commit, we can provide a patch to test.

@gadget-man will close this since long time no update, you can reopen it if you want


Antivirus software detects stride.exe containing "Trojan.MSIL.Crypt.hnis" virus

My Antivirus scanner ZoneAlarm claims Strider.exe is a virus Trojan.MSIL.Crypt.hnis. I downloaded Stride v<IP_ADDRESS>-beta02-0926 using the Xenko dashboard. I know it must be a false detection, but I wanted to at least make somebody aware of this issue, in case other antivirus scanners pick this up to in the future. Older Xenko versions are fine with no alerts.
My Antivirus scanner details
ZoneAlarm Free Antivirus + Firewall version: <IP_ADDRESS>84
Vsmon version: <IP_ADDRESS>68
Driver version: <IP_ADDRESS>37
Anti-Virus engine version: <IP_ADDRESS>
Anti-Virus signature DAT file version:<PHONE_NUMBER>

Question and/or Comment

Kaspersky does too

Antivirus are know to have this kind of false positives. That's why I only use Windows Defender.

they also need some time to adjust to the new exe name, since they have no information in their databases yet.
so it is very important that you mark it as non-virus and send it back to the antivirus provider in order to get it whitelisted.

they also need some time to adjust to the new exe name, since they have no information in their databases yet.
so it is very important that you mark it as non-virus and send it back to the antivirus provider in order to get it whitelisted.

I was looking for a way to submit the exe to ZoneAlarm, but I can't see anything on their website to submit files for analysis and to top it all ZoneAlarm has removed the exe from xeno folder. I'll now to either have to re-install it again or compile a copy to replace the deleted version.

I have never used ZoneAlarm but in general AV have a quarantine thing that you can browse to recover and whitelist files

I removed what was left of Stride via Control Panel > Programs and Features and I then downloaded the installer from Strides website for a reinstall, the default install folder is now called Strider and not Xenko which of course makes sense. Scanning the exe file again the Antivirus scanner no longer detects Strider.exe as being a virus.

I removed what was left of Stride via Control Panel > Programs and Features and I then downloaded the installer from Strides website for a reinstall, the default install folder is now called Strider and not Xenko which of course makes sense. Scanning the exe file again the Antivirus scanner no longer detects Strider.exe as being a virus.

https://opentip.kaspersky.com/5522EB424EEEA3ADCFA31C65E0A9C9AF865A9002B2CF0E6E130B5149EF7AD21D/
So basically that is was kaspersky is detecting, installer as well

After updating ZoneAlarms Anti-virus signature file and restarting my PC. Upon starting Windows, ZoneAlarm has once again detected stride.exe as being a virus. The only way around it is for me to place it on the AV whitelist.

glad i'm not the only one

Not sure what to do besides sending the exe to virustotal or something similar every time its hash changes but that's kind of a pain. If someone has time on their hand to research this that would be nice

Some users on the discord channel of "gamesfromscratch" have sent a list with the AV with issues in in virustotal:
https://www.virustotal.com/gui/file/ae1ee3b50a0a5810294b003de2377b265d4561e7335432b30db88a6fb21e64e5/detection
https://discordapp.com/channels/696089433665044522/699291360187908106/706175555933831189

I must have a ghost in my machine. Stride has now been completely removed from my machine, even the installation directory is gone and even the desktop icon is missing! ZoneAlarm as not logged removing this. I'm going to forget this engine, maybe it is a virus!?

Well it worked perfectly before 6 days ago, are there changes that could have cuased that?

Investigating. I hope it's just a false positive...
I have installed Kaspersky on the same computer that built Stride.exe and StrideSetup.exe.
I tried to rebuild the executable (on the same PC) and it's not detected on the new one.
Nothing else is detected by Kaspersky on that computer.
So I think it's a false positive, maybe the non-deterministic part of the build triggered a pattern it didn't like.
However, I recommend people to be cautious just in case.
Anyway, what I will do is:

Build Stride.exe and StrideSetup.exe on one of the teamcity agent (rather than PC I used to build it last time)
Make sure no virus detected this time
If yes, update it everywhere (website etc.)

YEEESS, thank you, that seemed to fixed it. Kaspersky no longer detects a virus in the installer or exe

btw it seems to have affected only 4.0.4 and not 4.0.1 to 4.0.3 (probably argument in favor of false positive)

And what about ZoneAlarm antivirus? When I downloaded Stride via the Xenko download it detected Stride as a virus, so I downloaded the standard Stride installer via the website and all was well for a while until I updated ZoneAlams virus signature database it The. continued to detect it as a virus. Please install ZoneAlarm and try to fix this.

Are there any updates made when you start stride or smth? Cause kaspersky is blocking it all over again. I also read yesterday that embedded dlls in the exe or compressed exe is flagged just in case, if that helps

It seems it got flagged again...

I don't have a Kaspersky account, but it seems you can report a false positive if you do:
https://forum.kaspersky.com/index.php?/topic/406709-how-to-submit-a-false-positive/&tab=comments#comment-2849332

I'll do. Btw, was there an update from yesterday? Because the file count dosent match from yesterday and today

The current version of the Setup is triggering the AV.
See the virustotal page
https://www.virustotal.com/gui/file/182fddcec8edab176f4380ec3952319ed0bbfdcdab577a01f5d222876db50ce9/detection

Funny, Kaspersky tells me know its clean. Also I've been trying to get the support to look at it but I cant seem to get a password on an zip archive, which they require

@Myterian I am also using Kaspersky (Total Security) and it also alerted me about the setup.

It is well established now that ZoneAlarm/Kaspersky is flagging Stride as being a virus. The questions now is why and how can this be fixed?
Why didn’t these anti virus programs ever flag any of the Xenko builds as being a virus?
And how do we submit these Stride files to these company’s so that they can analyse the program and stop this once and for all. I’ve checked ZoneAlarm website but I can’t see any way of submitting files for analysis. Does ZoneAlarm use Kaspersky Av signature files or vice versa?

Yeah Kaspersky let me restore the exe and I could download the installer no problem. I've been scanning them over the course of today an everthing seems fine, even on their web scanning tool. I'll keep an eye on that, it seems Kaspersky is a bit jumpy but maybe it got fixed

@chriswinslow I'm already working with the Kaskpersky Support. I don't know about Zonealarm but there should be an option to summit a false positive on their support site aswell

So, Kaspersky Support couldn't recreate the false detection, I can't replicate anymore and their online scanning service rates stride as clean, too. So yeah, it was a false positive all along

Thanks for going through this @Myterian , hopefully we won't have to deal with this again with other versions. I'll close this off in a couple of days if there are no more reports coming in.

@chriswinslow We had the same issue during the first Xenko releases.
I suppose that if you update an existing executable (Xenko.exe) it is easier for antivirus to trust than a new executable name.

I have the same problem, using Kaspersky Total Security.

Sounds like this issue as been resolved given the lack of reports from new users, I'll close it off for now but do open a new one if it happens again.


Dennie view blog entry

Description
Added Blog folder, index.tsx, blog.module.scss.
Create View blog entry page with dummy blog info for now and image placeholders or dummy images.
Screen shots or GIFs of UI changes

Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Part of a feature.
[ ] Refactor (non-breaking change which does not add functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update
[ ] Testing-

Checklist

[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[x] My changes generate no new warnings
[ ] added new dependencies
[ ] added tests
[ ] updated documentation
[x] Looks good on large screens
[ ] Looks good on mobile

Organization

[ ] Have you linked this pull request to a project ticket?

Review

[ ] Is this a work in progress?
[x] Is this ready to be reviewed?
[x] Have you added two reviewers to this pull request?

 Create View blog entry page with dummy blog info for now and image placeholders or dummy images

Checking in on the status of the updates requested.  Also noticed that the layout does not match the figma spec.  The layout should not take up the full width of the screen see screen shots:

Please also resolve merge conflicts with a rebase

This PR still has changes requested that need to be addressed and also this PR needs to be closed and reopened against development instead of main as outlined in our git flow documentation.


Should be able to see a larger lane map

It's very small currently.

Perhaps we should make the map similar to ability builds and show a large version on hover?  @blukai thoughts?

Nope, map on hover is not so good, I guess. I'll try to figure out better way


Minor Update to Twitter Example

Twitter viewer no longer freezes while loading posts, instead showing them as they load.

Hmm, I can't reproduce it.
What OS do you use?

This patch simply moves the downloading of the image data outside of the calls to gdk.ThreadsEnter() and gdk.ThreadLeave(), meaning that the GUI doesn't have to wait for the image data to be downloaded.

Ok, probably, that's right.
I'll merge this.
Thanks.


Contributing Documentation: Set upstream with https instead of ssh

I was working on a PR and when I tried to fetch my repo with the master upstream I got a permission denied error. The problem was I had added the upstream with ssh url:
git remote add upstream git@github.com:IBM/carbon-components-svelte.git
This stackoverflow post explains that I would need to use the ready-only link, which is https. It worked after changing to:
git remote add upstream https://github.com/IBM/carbon-components-svelte.git
Would it be ok to update contributing.md to use https? Only one line would be changed.

I did not have this problem. This may be a problem if you use git with HTTP and have not setup your ssh keys though. Is that the case ?

That may be because you initially cloned the repo using http and not ssh.

@alkanna Thank you for your help.
Just found the issue here. I had multiples ssh keys and git was trying to use a different one that I had here on GitHub. I figure it when I was trying to first clone with ssh and it was not working, even though the repo was in my account. :(
So this is not a real issue. Thanks for your support!
Rafa

Hey @rafadess I suggest you use a proper ssh config, that will avoid such cases :)
https://gist.github.com/rbialek/1012262


Peripheral doesn't notify central

Hi
I'm trying to develop my own window covering BLE peripheral/accessory for HomeKit using Homebridge.
So far I have:
Set up Homebridge on Raspberry Pi 2 with a bluetooth dongle. Homebridge loads fine and finds the BLEPeripheral (in this case RedBear Blend Micro with Nordic nRF8001)
Here's the config.json
{
	  "bridge": {
	    "name": "Raspberry Pi 2”,
	    "username": “00:13:EF:80:00:12”,
	    "port": 51826,
	    "pin": "031-45-154"
	  },
	  "description": "Raspberry Pi 2 Homebridge-Bluetooth",

	  "platforms": [
	    {
	      "platform": "Bluetooth",
	      "accessories": [
	        {
	          "name": “Smart Shades“,
	          "name_note": "Name of the accessory as shown in the Home app on iOS.",

	          "address": “D0:5F:2E:E2:11:22”,
	          "address_note": "Bluetooth address of the accessory. Non-matching devices are ignored.",

	          "services": [
	            {
	              "name": “Smart Blinds”,
	              "name_note": "Name of the service as shown in the Home app on iOS.",

	              "type": “WindowCovering”,
	              "type_note1": "Type of the service - i.e. Lightbulb, Switch, Lock, HumiditySensor, ...",
	              "type_note2": "Must match this list - https://github.com/KhaosT/HAP-NodeJS/blob/master/lib/gen/HomeKitTypes.js",
	              "type_note3": "Service.Lightbulb has a mandatory On characteristic and Brightness, Hue and Saturation are optional.",

	              "UUID": "A7B10010-EEEE-5377-FF6C-D104768A1214",
	              "UUID_note": "Bluetooth UUID of the service. Capitalization and dashes doesn't matter.",

	              "characteristics": [
	                {
	                  "type": “CurrentPosition”,
	                  "type_note1": "Type of the characteristic - i.e. On, Brightness, CurrentHumidity, CurrentTemperature, ...",
	                  "type_note2": "Must match this list - https://github.com/KhaosT/HAP-NodeJS/blob/master/lib/gen/HomeKitTypes.js",
	                  "type_note3": "Characteristic.On is a BOOL value and expects READ, WRITE and NOTIFY permissions.",

	                  "UUID": "A7B10011-EEEE-5377-FF6C-D104768A1214",
	                  "UUID_note": "Bluetooth UUID of the characteristic. Capitalization and dashes doesn't matter."
	                },

	                {
	                  "type": ”TargetPosition”,
	                  "type_note1": "Type of the characteristic - i.e. On, Brightness, CurrentHumidity, CurrentTemperature, ...",
	                  "type_note2": "Must match this list - https://github.com/KhaosT/HAP-NodeJS/blob/master/lib/gen/HomeKitTypes.js",
	                  "type_note3": "Characteristic.Brightness is an INT value and expects READ, WRITE and NOTIFY permissions.",

	                  "UUID": "A7B10012-EEEE-5377-FF6C-D104768A1214",
	                  "UUID_note": "Bluetooth UUID of the characteristic. Capitalization and dashes doesn't matter."
	                }
	              ],
	              "characteristics_note1": "List of Bluetooth characteristics that will be exposed to HomeKit.",
	              "characteristics_note2": "Characteristics with non-matching UUIDs are ignored."
	            }

	          ],
	          "services_note1": "List of Bluetooth services that will be exposed to HomeKit.",
	          "services_note2": "Services with non-matching UUIDs are ignored."
	        }
	      ]
	    }
	  ]
	}

This is what happens when I launch Homebridge and start interacting with my iPhone.

I developed the code with two characteristics TargetPosition and CurrentPosition.
#include <SPI.h>
#include <BLEPeripheral.h>

const int pinLED = 13;

BLEPeripheral ble = BLEPeripheral(6,7,4);
BLEService informationService("180A");
BLECharacteristic modelCharacteristic("2A24", BLERead, "101");
BLECharacteristic manufacturerCharacteristic("2A29", BLERead, "Arduino");
BLECharacteristic serialNumberCharacteristic("2A25", BLERead, "2.71828");

BLEService windowCoveringService("A7B10010-EEEE-5377-FF6C-D104768A1214");
BLEUnsignedCharCharacteristic currentPositionCharacteristic("A7B10011-EEEE-5377-FF6C-D104768A1214", BLERead | BLENotify);
BLEUnsignedCharCharacteristic targetPositionCharacteristic("A7B10012-EEEE-5377-FF6C-D104768A1214", BLEWrite | BLERead | BLENotify);
//BLEUnsignedIntCharacteristic positionStateCharacteristic("A7B10013-EEEE-5377-FF6C-D104768A1214", BLERead | BLENotify);

void setup() {

  Serial.begin(115200);
  pinMode(pinLED, OUTPUT);
  digitalWrite(pinLED, true);

  ble.setLocalName("Smart Blinds");
  ble.setAdvertisedServiceUuid(windowCoveringService.uuid());
  ble.addAttribute(informationService);
  ble.addAttribute(modelCharacteristic);
  ble.addAttribute(manufacturerCharacteristic);
  ble.addAttribute(serialNumberCharacteristic);

  ble.addAttribute(windowCoveringService);
  ble.addAttribute(currentPositionCharacteristic);
  ble.addAttribute(targetPositionCharacteristic);
  //ble.addAttribute(positionStateCharacteristic);

  currentPositionCharacteristic.setValue(100);
  //positionStateCharacteristic.setValueLE(positionState);

  ble.setEventHandler(BLEConnected, centralConnect);
  ble.setEventHandler(BLEDisconnected, centralDisconnect);
  targetPositionCharacteristic.setEventHandler(BLEWritten, characteristicWrite);
  currentPositionCharacteristic.setEventHandler(BLESubscribed, characteristicSubscribe);

  delay(5000);

  ble.begin();
  Serial.println("Bluetooth on");
}

void loop() {
  ble.poll();
}

void centralConnect(BLECentral& central) {
  Serial.print("Central connected | ");
  Serial.println(central.address());
}

void centralDisconnect(BLECentral& central) {
  Serial.print("Central disconnected | ");
  Serial.println(central.address());
}

void characteristicWrite(BLECentral& central, BLECharacteristic& characteristic) {
  Serial.print("Characteristic written | ");
  Serial.println(characteristic.uuid());
  unsigned char targetPosition = (unsigned char) targetPositionCharacteristic.value();
  Serial.print("Target position set: ");
  Serial.println(targetPosition);
  setBlinds(targetPosition);

}

void characteristicSubscribe(BLECentral& central, BLECharacteristic& characteristic) {

	Serial.println("Characteristic event, subscribed");

	//Central subscribes just fine

}

void setBlinds(unsigned char targetPosition) {

  //This is where the code to drive the motor will go

  currentPositionCharacteristic.setValue(0);

  //When the current position value is set, no notification is sent to the central

  Serial.print("Current position: ");
  Serial.println(currentPositionCharacteristic.value());
  digitalWrite(pinLED, false);

}

When I attempt to open/close the blinds using iOS, the value is written from the central (Homebridge) to the peripheral (RedBear Blend Micro) TargetPosition characteristic as per the first screenshot. Interestingly, TargetPosition characteristic also sends the notification back to the central.
My issue is that whatever I tried, the CurrentPosition characteristic just refuses to send the notification back to the central when its value changes to let the central know that the operation has finished. The central is subscribed to the characteristic because serial prints out some text when the event handler is triggered at the point when the central subscribes.
As the central doesn't get an updated value for the CurrentPosition characteristic, presumably HomeKit has no idea where the blinds are so it simply displays a spinner next to the icon which just doesn't stop spinning (infinite loop).

Where am I going wrong?
Any help at all would be appreciated!

OK, I've done a bit more digging and experimenting and I think the issue might be either my controller (Blend Micro) or the BLEPeripheral library.
I also posted my original post on Homebridge-Bluetooth repo here.
I got a response from the developer of the repo saying my code looked fine but got a suggestion to simply put the characteristic.setValue methods inside the loop() method as the developer has done with several of his code examples that work.
I've done that but again, had no luck. The Homebridge-Bluetooth developer said it was very strange that my rewritten code doesn't work.
Since then I decided to rewrite my code to capture the results of characteristic.setValue() and characteristic.canNotify() methods. The relevant bit of the code now looks like this:
void loop() {
  ble.poll();

  if (targetUpdate != false) {

  	if (positionStateCharacteristic.canNotify() != 0) { //code enters the block which means canNotify returns 'true'
  		unsigned char state = 2;
	  	bool stateSet = positionStateCharacteristic.setValue(state); //capture success/failure of setValue() notification
	  	Serial.print("Current state set? ");
	  	Serial.println(stateSet); //serial returns 0 which means setValue notification fails
	  	Serial.println(" to: ");
	  	Serial.println(positionStateCharacteristic.value());
  	};

  	unsigned char newTarget = targetPositionCharacteristic.value();
  	bool notifiable = currentPositionCharacteristic.canNotify(); //returns 'true'
  	Serial.print("Can notify? ");
  	Serial.println(notifiable);

  	bool changed = currentPositionCharacteristic.setValue(newTarget);
  	Serial.print("Current position changed? ");
  	Serial.println(changed); //serial returns 0 which means setValue notification fails
  	Serial.print("Current position set to: ");
  	Serial.println(currentPositionCharacteristic.value());

  	targetUpdate = false;

  }

}

This has made absolutely no difference to how my application functions, however I got some interesting results from the two newly implemented methods.
The result of characteristic.canNotify() comes back as 1 (true).
Crucially, the result of characteristic.setValue() comes back as 0 (failure) meaning that the characteristic could not notify the central.
I also found the issue Can not notify data to central #4 in this repo where someone else using Blend Micro mentioned that central could not be notified.
That issue resulted in 226c9d3 commit which fixed it. Could I be facing something similar here?

The developer of the Homebridge-Bluetooth repo (mentioned above) has tried my code from the second post on Arduino 101 using CurieBLE library and it worked flawlessly.
It does appear that there’s an issue in how Red Bear Blend Micro communicates with BLEPeripheral library to send notifications.
More details about the results with CurieBLE are posted here https://github.com/vojtamolda/homebridge-bluetooth/issues/13


fix: Update Web App Server Farm Module

Description

Pipeline

Type of Change

[ ] Update to CI Environment or utlities (Non-module effecting changes)
[x] Azure Verified Module updates:

[x] Bugfix containing backwards compatible bug fixes, and I have NOT bumped the MAJOR or MINOR version in version.json:

[ ] Someone has opened a bug report issue, and I have included "Closes #{bug_report_issue_number}" in the PR description.
[x] The bug was found by the module author, and no one has opened an issue to report it yet.

[ ] Feature update backwards compatible feature updates, and I have bumped the MINOR version in version.json.
[ ] Breaking changes and I have bumped the MAJOR version in version.json.
[ ] Update to documentation

Checklist

[x] I'm sure there are no other open Pull Requests for the same update/change
[ ] I have run Set-AVMModule locally to generate the supporting module files.
[ ] My corresponding pipelines / checks run clean and green without any errors or warnings

@jtracey93 - Can you run the set-AvmModule utility to update the corresponding JSON please :D

@jtracey93 - Can you run the set-AvmModule utility to update the corresponding JSON please :D

done


About the Pre-Trained Discriminator Model

Hello,
Why do we need to download pre-trained discriminator model for training? Could we train discriminator model from scratch without the pre-trained model?
Thanks

Hi Firat, the discriminator is a pre-trained face recognition model. Generally caricature datasets have only a few subjects and therefore, the discriminator cannot learn distinguishing and robust face features. Therefore, we recommend using the pre-trained discriminator.

Hello Ronny,
Thank you for your quick reply. We would like to implement PyTorch version of WarpGAN to share this interesting project with PyTorch community. How could we use pre-trained model in PyTorch? Is there any pre-trained discriminator model for PyTorch?
Best Regards,

You can use any pre-trained face recognition system (just remove the fully-connected/dense layer). For example, https://github.com/deepinsight/insightface/tree/master/recognition/arcface_torch

Thanks a lot!


bug

Environment (please complete the following information):

OS (e.g., Windows 10):
Extension version (e.g., 1.2.3):

Describe the bug:

Repro steps:

Expected behavior:

Additional context:

sads

Can you add more information please?

sads, too.


Fix wysiwyg sanitisation

Description

There are multiple commits here since we're doing several related but separate changes:

Reimplement the original bugfix (just cherry-picked the commit directly)
Refactoring a sub-optimal test to use dataproviders and to test valid_elements and extended_valid_elements separately
Don't skip validation of HTML - without this, an empty valid_elements set would result in skipping validation entirely.
Set the default valid_elements settings for any new TinyMCE config instances
Wasn't in the ACs but seems prudent - make the default TinyMCE settings configurable at a global level.

Issues

https://github.com/silverstripe/silverstripe-framework/issues/11141

Looks like you've uncovered a completely new bug 🥳
To test, in a fresh installation without any of these PRs and without your configuration above, add a link to a page and save. Then, add only the second config you have there (i.e. add $h2 and $c2, leaving the original "Content" field as it was) and refresh the page. TinyMCE will have stripped the link out of your original content.
If you can reproduce that with a fresh installation, it's a separate bug and should be handled in a separate card (and probably fixed in 5.2

Yup validated it's an existing issue, have raised card


Error if I have more than one component in the library

I'm trying to generate a library with more than one component but I'm not sure how to do it. With only one works but with more than one I get errors like "Module not found". Is there any example on how to have more than one component? Should I create one module for each component and import those modules in the index.ts?

that's true for services as well, works for single service only
@jvandemo could you please provide examples how to extend the library by adding services, components, etc?

@igogra How you package your components is up to you. But I recommend that if you're creating a shared library, that you place each component into a submodule of the main module. That way, you can import and use the whole lib or just the lib containing the widget you need.
@karuniko & @igogra There are no issues with extending the generated library. Just study the sample service and module. Do what the generator did.


crc cleanup taking care of isolated daemon process

General information
Tested on MacOS platforms.
CRC version
CodeReady Containers version: 1.28.0+08de64bd
OpenShift version: 4.7.13 (not embedded in executable)

Steps to reproduce

Install CRC
config set autostart-tray false
start daemon as background process: crc daemon &
crc cleanup

Observations
Step 3 background execution is not the cause, as foreground will act the same, but for the edge case background will give more chances user just forget about it.
Then after crc cleanup what are the expectations? No crc resouces left?. There is no way to accomplish this beyond checking for the process and force killing.
crc stop not possible as no machine was created
crc cleanup does not take care of the process
Linked to upgrade process, there is no check for crc daemon process when upgrading...this means if the daemon is dangling from previous version no warning and upgrade will be done fine. (When tray is running it complains about it).
Then if you repeat the steps you will end up having a message saying daemon is already running (but from previous version)...and you may not aware of that...this could end up on unexpected behavior if proceed to crc start

Seems related to https://github.com/code-ready/crc/issues/2313 ?


POST_SAML_ASSERTION_CONSUMER

Can you tell me what this function's purpose and response is?
https://github.com/eracknaphobia/script.module.adobepass/blob/master/lib/adobepass/adobe.py#L182
I'm trying to implement this in javascript, and the only response I get back is a javascript snippet that redirects to an app:// url.
Is it supposed to grab a cookie? Also I'm not ever seeing a cookie called BIGipServerAdobe_Pass_Prod anywhere and I'm wondering if this function is not working properly for me.

It should get you a saml_response and relay_start which are needed  to complete the adobe login process. I purposely used the http.request instead of a urllib.request because it doesn't follow redirects (HTTP 302) which may be what is causing your problem.

I disabled redirect. still getting 401 - Data not found
The only difference I can see is that I don't ever get this cookie you have: BIGipServerAdobe_Pass_Prod -- I get something else:
"BIGipServer~v1-VS65000-N45~Adobe_Pass_Prod": {
        "key": "BIGipServer~v1-VS65000-N45~Adobe_Pass_Prod",
        "value": "rd9045o00000000000000000000ffff0a36121bo80",
        "expires": "2016-04-15T07:25:27.000Z",
        "domain": "sp.auth.adobe.com",
        "path": "/",
        "hostOnly": true,
        "creation": "2016-04-15T06:25:27.444Z",
        "lastAccessed": "2016-04-15T06:25:27.444Z"
      }

bump


span_cube?

Did span_cube go away?

I vaguely remember removing this when I first forked BOSL2.  Removed for redundancy with p1/p2 in cuboid() as I recall.

Yeah, it sort of is and sort of isn't.   I feel like so much has changed since I was using my equivalent of span_cube() that I'm not sure how important I think it is, but I found that I never wanted to specify a cube by corners.  I always wanted to specify it by bounds---that was what was natural.   Using corners means breaking up the bounds into the different coordinates, so it was clumsy.

I don't really want to open the can of worms of adding span args to all kinds of shapes.  How about something like:
function spans2pts(xspan,yspan,zspan) =
    let(
        p1 = [xspan[0],yspan[0],if(is_def(zspan)) zspan[0]],
        p2 = [xspan[1],yspan[1],if(is_def(zspan)) zspan[1]]
    ) [p1,p2];

p = spans2pts([-10,5],[2,8],[0,20]);
cuboid(p1=p[0], p2=p[1]);

I think it's too clumsy to be useful.  I'm unlikely to use it.  If you could make it work directly like
cuboid(p=span(....))
then that might be a usable implementation.   When is specifying by corners useful, btw?

Mostly when you know the corner positions already.

I guess for me it never happens that I know a cube's corners, but it does happen that I know its span.  So the corners option seems less useful than the span option.


Not supported: destructuring + union type + default

Hi there,
I've just tried to do what I described in the title, that's basically the following:
// @flow

type Param = boolean | string;

const fn = ({param = true}: {param: Param}) => param;

And I got the following errors:
5: const fn = ({param = true}: {param: Param}) => param;
                ^ boolean. This type is incompatible with
5: const fn = ({param = true}: {param: Param}) => param;
                ^ string
5: const fn = ({param = true}: {param: Param}) => param;
                ^ string. This type is incompatible with
5: const fn = ({param = true}: {param: Param}) => param;
                ^ boolean
5: const fn = ({param = true}: {param: Param}) => param;
                        ^ boolean. This type is incompatible with
5: const fn = ({param = true}: {param: Param}) => param;
                ^ string

(you can try it by yourselves here)
IMHO, this should work, or am I doing something wrong?
Thanks.

Duplicate of #2093


add Ancient Best to the list

I added Ancient Beast to the Turned-based Strategy category as it requested by its developers.

Nice initiative. Description will need to be revamped, as it's a bit lulz 😆

Please edit the description to this:
Spiritual successor to Heroes of Might and Magic III focusing on combat; matched based eSport.

I'll edit it right away!

PR has merge conflict because while this is waiting for 2 months now, someone else made an issue recently #45 and another game was added in the exact same spot right away 🐻


"Something went wrong" message.

Before when i entered .xml url (ex: https://kill-the-newsletter.com/feeds/abc123.xml) in browser i could see feed entries, but now it says
Something went wrong.
Please report this issue to<EMAIL_ADDRESS>
It seems to know that feed exists, because if i enter wrong .xml url it says
Not found.
If you expected to see the web version of a newsletter entry, you may be interested in the answer to the question “Why are old entries disappearing?”.

Same here

Leandro is probably very aware already, but for the avoidance of doubt, the response is a 500 and no further information.

Hi y’all,
Thanks for reaching out. We’re back online.
The issue was that we had ran out of disk space, and the solution was to upgrade the server. So this is a great time to support Kill the Newsletter! 🤗
Patreon · PayPal · GitHub Sponsors


Executable bit not preserved/set for universal Mach-O binaries in .app tree after a Velopack update

Velopack is supposed to set the executable bit for all Mach-O binaries after applying an update, but this doesn't happen for universal Mach-O binaries, resulting in a possibly broken state after the update. An example from the Discord server:
$ ls -lah
total 123464
drwxr-xr-x   4 user  wheel   128B 31 May 18:33 .
drwxr-xr-x  86 user  wheel   2.7K 31 May 18:31 ..
-rwxr-xr-x@  1 user  wheel    20M 31 May 18:31 bin_arm64
-rw-r--r--@  1 user  wheel    40M 31 May 18:31 bin_universal
$ file bin_arm64
bin_arm64: Mach-O 64-bit executable arm64
$ file bin_universal
bin_universal: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64]
bin_universal (for architecture x86_64):    Mach-O 64-bit executable x86_64
bin_universal (for architecture arm64):    Mach-O 64-bit executable arm64

It looks like universal mach-o handling isn't present. Adding support seems a bit hacky at best, but at least there is Apple documentation on how to handle the magic collision they've brought upon themselves.
diff --git a/src/Velopack.Packaging.Unix/MachO.cs b/src/Velopack.Packaging.Unix/MachO.cs
index c6bf4a5f..c56c8b44 100644
--- a/src/Velopack.Packaging.Unix/MachO.cs
+++ b/src/Velopack.Packaging.Unix/MachO.cs
@@ -7,7 +7,9 @@ private enum MagicMachO : uint
         MH_MAGIC = 0xfeedface,
         MH_CIGAM = 0xcefaedfe,
         MH_MAGIC_64 = 0xfeedfacf,
-        MH_CIGAM_64 = 0xcffaedfe
+        MH_CIGAM_64 = 0xcffaedfe,
+        FAT_MAGIC = 0xcafebabe, // https://developer.apple.com/documentation/kernel/fat_header/1558632-magic/
+        FAT_CIGAM = 0xbebafeca
     }

     public static bool IsMachOImage(string filePath)
@@ -17,7 +19,17 @@ public static bool IsMachOImage(string filePath)
                 return false;

             uint magic = reader.ReadUInt32();
-            return Enum.IsDefined(typeof(MagicMachO), magic);
+            if (!Enum.IsDefined(typeof(MagicMachO), magic)) {
+                return false;
+            }
+
+            if ((MagicMachO) magic is not (MagicMachO.FAT_CIGAM or MagicMachO.FAT_MAGIC)) {
+                return true;
+            }
+
+            // https://opensource.apple.com/source/file/file-80.40.2/file/magic/Magdir/cafebabe.auto.html
+            uint archNumber = reader.ReadUInt32();
+            return archNumber < 0x20;
         }
     }
 }

Fixed in<PHONE_NUMBER>39f0488a16d825b0dcc4abda8f6720 and released in 0.0.517


Add Invalidation Cache for metadata sync

What changes are proposed in this pull request?
This adds an invalidation timestamp to the metadata sync cache. This allows a path to be marked as invalidated, resulting in it or any of its children's metadata being synced with the UFS when accessed. This can be done through the FileSystemMaster interface method called invalidateSyncPath.
Why are the changes needed?
These changes are needed for cross cluster sync.
Does this PR introduce any user facing changes?
Adds a method invalidateSyncPath to FileSystemMaster.

a high level question, does this invalidation take effect even if metadata sync is turned off. (ie. meta sync interval = -1)

a high level question, does this invalidation take effect even if metadata sync is turned off. (ie. meta sync interval = -1)

Yes. If there is an invalidation, then that takes precedence for any type of mount. This way invalidations can be made on any mount path (even those without cross cluster enabled)
https://github.com/Alluxio/alluxio/pull/16144/files#diff-6478c3ba4bfc7b522fbcedf0de8d9c59b2ca00d7be9dbcf7db746552216903a1R221
For a path in a cross cluster mount path, there will multiple checks.

If a syncInterval is set (i.e. > -1) and the time since the latest sync is greater than the interval then a sync will happen.
If the last invalidation time is greater than the last sync time then a sync will happen.

The idea is to allow people to use both an interval and an invalidation for cross cluster mounts, or to force a sync on a cross cluster mount by setting the time to zero. It also allows cross cluster mounts to be nested in non-cross cluster mounts and the other way around by checking if a sync is needed either by time or by invalidation.

alluxio-bot, merge this please


Fix usage example css imports, closes #76

Motivation

Test plan

@caub
Hello. I fixed it in my PR #64. So I can fix code format in my Pull request and then somebody can push it.

@caub
So I think your PR isn't relevant.

@nagayev Yea good catch, I didn't see your PR before, and noticed you found the same CSS bug too, ok, I'll close it in favor of yours
thanks


Should potentially unsafe array accessing be handled?

I am opening this issue more as a request for discussion not as an actual feature request as I am not sure if the use case really is worth the hassle of additional type guards.
Currently you are able to access an arbitrary element in an array using either the bracket notation or the at function. In the below case typescript will still evaluate the elements to be of type number even though potentially they are undefined.
  const foo = [1,2,3];

  const bar = foo[5];  // undefined
  const baz = foo.at(-4);  // undefined
  const foobar = foo[2];  // number

This has been biting me multiple times in the past e.g. when using express-xml-bodyparser which implicitly turns children into arrays.
I just feel like arrays usually are accessed in forEach, map or loops with the length fields as limits so that it isn't an issue for 98% of the time and having to introduce additional type guards everywhere might be to much of a drawback.
What do you think? Is it even possible to override the typing of the array getter?

The config option noUncheckedIndexedAccess is enough to cover this case, I think - with the possible exception of foo.at


ActiveNode inclusion respects existing id_property_name

The problem:
Your id property name is not going to be uuid. You do not want to enable eager_load. Every time your app starts, it checks for that uuid constraint and sets it, even if you don't want it there, then it checks for your custom id property constraint. You find this annoying.
The really simple solution:
class MyModel
  def self.id_property_name
    :cool_id
  end
  include Neo4j::ActiveNode

This PR changes the id_property_name method to respect an existing value of that method. If you set it before including the module, it will use that value for that class. I'm not sure that this is the absolute best possible solution but it sure is simple, which is rather nice.
Pings:
@cheerfulstoic
@ProGM

[Current coverage][cc-pull] is 98.06%

Merging [#1215][cc-pull] into [7.1.x][cc-base-branch] will increase coverage by 0.81%

@@              7.1.x      #1215   diff @@
==========================================
  Files           168        168
  Lines         10369      10181   -188
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
- Hits          10082       9983    -99
+ Misses          287        198    -89
  Partials          0          0

Powered by Codecov. Last updated by [d879861...648452a][cc-compare]
[cc-base-branch]: https://codecov.io/gh/neo4jrb/neo4j/branch/7.1.x?src=pr
[cc-compare]: https://codecov.io/gh/neo4jrb/neo4j/compare/d879861d0c8b64e95b58d4d1b183d5ba55af979e...648452a8c3a84c2aadf14fb105f406ca69d57bb6
[cc-pull]: https://codecov.io/gh/neo4jrb/neo4j/pull/1215?src=pr

This seems fine to me, though you should maybe check out the differences to these parts of the code in the new_cypher_api branch.  I've done away with on_next_session_available, for example.

Seems fine!
For the future, maybe we should think about changing something in this "auto-creating index on include" mechanism, that could create this strange tricks.

I explained it in the other issue (going back-and-forth here ;) but I think new_cypher_api takes care of it by auto-creating the index when the id_property info is sought for whatever reason (that should be the last possible moment that it could have changed).  I also changed it to make schema changes in a thread with a different transaction so that we don't have schema/data conflict issues in general (unless somebody runs a manual query)

FWIW, Ruby 2.0 has been deprecated as of February 2016, can any/all of the failing checks be removed?
https://www.ruby-lang.org/en/news/2016/02/24/support-plan-of-ruby-2-0-0-and-2-1/

Actually we have dropped checks for Ruby 2.0 in more recent releases:
https://travis-ci.org/neo4jrb/neo4j/builds/167095097
@subvertallchris What's the deal with this PR?

Now that adding constraints is a manual, deliberate process, I think this should be fine to close.


Not running. btrisolve() issue

Hi
I wanted to use your QP solver because it seems the perfect solution to a problem I was facing. I need to obtain solutions of a neural network that meet some equalitiy conditions. Therefore, I considered a least-squares problem in the qp format.

constrained to Qx = q.
u is the output of my network.
I was trying to run this in the net, but I've foun the following error message
~\Anaconda3\lib\site-packages\qpth\solvers\pdipm\batch.py in pre_factor_kkt(Q, G, A)
    399     # for more details.
    400
--> 401     G_invQ_GT = torch.bmm(G, G.transpose(1, 2).btrisolve(*Q_LU))
    402     R = G_invQ_GT.clone()
    403     S_LU_pivots = torch.IntTensor(range(1, 1 + neq + nineq)).unsqueeze(0) \

TypeError: btrisolve() takes 3 positional arguments but 4 were given

My test code (avoiding the constraints and using a dummy inequality) was:
u = torch.autograd.Variable(x_iso[:, :4, :].flatten().reshape(-1, 1))
I = torch.autograd.Variable(torch.eye(x.size()[0]))
G = torch.autograd.Variable(torch.eye(x.size()[0]))
h = torch.autograd.Variable(x + torch.rand(x.size()))
e = torch.autograd.Variable(torch.Tensor())
QPFunction()(I, u, G, h, e, e)

I've also tried to run the example at the repo and I got the same error message. Also changed the solver, but the result is also an error message. I'm using python3.6 in Win10. I had disabled the cuda() options.
Thx

Hi -- sorry, PyTorch made some breaking changes to the batched LU factorizations/solves that I think I've fixed in master but not in the pip version of qpth. Can you try installing from master and try again, and also try updating to the latest PyTorch version if that doesn't work?

Hi
Following the example at your repo, it works.
The example of OptNet on the project webpage has a tiny mistake
        L = self.M*self.L
        Q = L.mm(L.t()) + self.eps*Variable(torch.eye(self.nCls)).cuda()
        h = self.G.mv(self.z0)+self.s0
        e = Variable(torch.Tensor())
        x = QPFunction(verbose=False)(Q, x, G, h, e, e)

and in your notebook is
        L = self.M*self.L
        Q = L.mm(L.t()) + self.eps*Variable(torch.eye(self.nCls))
        h = self.G.mv(self.z0)+self.s0
        e = Variable(torch.Tensor())
        x = QPFunction(verbose=-1)(Q, x, self.G, h, e, e)

Thanks!

Closing this for now but let me know if there's anything else!


Grid Menu Click

Hi !
I am learning android and used your library, I have tried to make it as given information here. I have implemented code like below
findViewById(R.id.butShare).setOnClickListener(new View.OnClickListener() {             @Override             public void onClick(View v) {             	new BottomSheet.Builder(QuoteViewActivity.this)                 .setSheet(R.menu.grid_sheet)                 .grid()                 .setTitle("Lets Some Fun")                 .setListener(this)                 .show();             }         });
but I am getting error on .setListener(this) like this "The method setListener(BottomSheetListener) in the type BottomSheet.Builder is not applicable for the arguments (new View.OnClickListener(){})". I have tried to check your example but there no any information for make Grid Menu in Action. Please suggest me what I am missing ?
Thanks

the setListener method does not take a View.OnClickListener, it takes a BottomSheetListener


Missing Pygmaioi

Mob Id
0 - Pygmaioi
Content Type
TreasureHuntDungeon
What threat level sould the mob have
Easy
What agro type does the mob have
None
Vulnerabilities for the enemy

[ ] Stun
[ ] Heavy
[ ] Slow
[ ] Sleep
[ ] Bind
[ ] Undead

Additional mob text guide
No response

Ref: #190


Add differentiatied cost for each type of vehicle?

I have a question about adding specific cost for a vehicle. each type of vehicle would inccur a different cost, which is to be multiplied by the travel distance to determine the total cost. the goal is to find the optimal type and number of trucks needed to minize the total cost, subject to all other constraints.
I saw a way to add an universal route cost for all vehicles regardless of their size:
routing.SetArcCostEvaluatorOfAllVehicles(transit_callback_index)
I guess the default objective function is: Min (Total Travel Distance)
how to make differentiatied cost for each vehicle? hence the object function is: Min (Total Transport Cost)
things need to consider:

one-off fixed cost for using each type of vehicle (e.g. hiring cost)
cost per km differentiated for each type of vehicle (e.g. fuel cost)

my lastest codes is here:
https://gist.github.com/Westlife1002/03f5f2a1b03841a81221623bce63951e

Just to increase the complexity, how about adding different costs for the same vehicle type? For example, a hybrid vehicle runs the first x distance/time on EV-mode, and hence the cost is lower than the distance/time after x. Meanwhile, another vehicle type with a fixed cost can be a benchmark. Is it possible to model this?

Not an issue. Please repost as discussion

You can have a specific arc cost per vehicle please use this method:
https://github.com/google/or-tools/blob/b37d9c786b69128f3505f15beca09e89bf078a89/ortools/constraint_solver/routing.h#L905-L906
I.e. register an evaluator cost function per vehicle type, then use it for each vehicle of the same type.
For Vehicle FixedCost use this: https://github.com/google/or-tools/blob/b37d9c786b69128f3505f15beca09e89bf078a89/ortools/constraint_solver/routing.h#L907-L911
again same cost for all vehicles or a specific cost per vehicle...

You may be interested by this samples: https://gist.github.com/Mizux/6d9283388150020df7542adf63577786#file-vrp_multiple_transit-py-L61-L69 vrp_multiple_transit.py


Improve orchest-cli loading spinner robustness

Description
The spinner displays the status of the Orchest Cluster at a specific moment in time. In order to correctly stop "spinning" the moment an end state is reached, there are some edge cases we need to handle, which are mainly introduced by the (variable) duration between cluster and the host invoking the CLI command.
Summary of changes:

Emphasize that the spinner will be shown for at least 10s to allow for CLI commands where the desired end status is equal to the current status, e.g. for orchest restart.
The first message by the spinner will no longer be a guess of the cluster's state and instead will be "Fetching Orchest Cluster status"
The spinner for orchest patch is invoked differently so that it doesn't keep spinning when orchest patch is invoked whilst the cluster is not in a valid end state (i.e. RUNNING or STOPPED).
Introduces orchest status --wait=..., e.g. orchest status --wait=Stopped, to wait for the cluster to reach the passed status.

Checklist

[x] I have manually tested my changes and I am happy with the result.
[x] The PR branch is set up to merge into dev instead of master.
[x] In case I changed code in the orchest-cli I followed its release checklist.

What do you think of the fact that we have some commands with a --watch flag and orchest status will have a --wait flag, which sound similar? I think we are in a local optimum given that we can't change the --watch flags without breaking changes  and orchest status --watch doesn't make much sense when it comes to wording. We could add a --wait to the commands using --watch and deprecate --watch but imo not needed atm and I don't want to increase the scope of the PR for no reason

What do you think of the fact that we have some commands with a --watch flag and orchest status will have a --wait flag, which sounds similar?

Good point. I see it more as:

--watch : Watch cluster status. Which happens to be until the invoked command, e.g. orchest update, has succeeded/finished given that it invoked in the context of that command.
--wait : Wait until the given status is reached, a la kubectl wait --for=condition.... Thought it would be good to have so one can programmatically wait until the cluster is in a specific state.

In addition --watch is a boolean flag and --wait actually has to be passed a status. In an effort to make the difference clearer, I've improved the help message of --watch (https://github.com/orchest/orchest/pull/1117/commits/aa82bbd53817f3118c3eb921a946fc39ebf4d3b7).
I do agree it is only a slight difference, but to me it felt like introducing another verb (--wait) was better than overloading --watch because --watch is only used as a boolean flag.

Good point. I see it more as...
I do agree it is only a slight difference, but to me it felt like introducing another verb (--wait) was better than overloading --watch because --watch is only used as a boolean flag.

I don't have much to add aside from the fact that I agree :)


Khronos-VC lighting looks wrong in filament.js

Describe the bug
It looks like some material property is not being respected in Khronos-VC.
To Reproduce
Steps to reproduce the behavior:

Load Khronos-VC from the glTF samples
Apply a generic IBL, but no direct lights.

Screenshots
You can see the difference here, and the model-viewer one matches the glTF screenshot included with the file:

You can also inspect the difference near the bottom of this page: https://modelviewer.dev/test/fidelity/results-viewer.html

Hm, I'm not able to repro with our native viewer in either ubershader or matgen mode.  It looks fine.  I'll try it with web next.

Ok I can repro but only on web.  I wonder if the web app is processing the IBL incorrectly.

Since we use R11G11B10F encoded as RGBA8888 could it be due to alpha premultiplication when the IBL images are decoded?

I verified that web and native go through the same IBL loading path via KtxLoader.  Really weird.  I can force the native case to look like web by forcing specularAO to 1.

I'm taking another look at this.  Really weird one.

The rendering difference between web and desktop is explained by specular AO, which we currently disable on mobile devices and on web.
I'm not sure if specular AO also explains the difference between Filament and ThreeJS, but I can't find anything suspicious.
I think it's probably fine to enable specular AO for web, so I'll just make a PR for that and move on.

Closing, we ultimately merged 237e0ee3 which makes us more aligned with ThreeJS, even though this term is mentioned nowhere in the glTF spec.


Fusee.Serialization task fails when username contains whitespace(s)

*.csproj Target SerializationCompileSerializer of the project Fusee.Serialization fails, when Windows username contains whitespace(s) (and the source is within the userspace folder)

Fixed by adding " around the precompile command like this:
$(FuseeBuildRoot)\ext\protobuf\PrecompileTool\precompile


can @Slf4j create protected log field?

protected static final Logger log = LoggerFactory.getLogger(AA.class);
or
protected final Logger log = LoggerFactory.getLogger(getClass());

That is currently not possible.


Need sample/help for QueueBuildAsync

I cannot figure out how to queue a build, specifically a YAML pipeline. I always get the error message:

Could not queue the build because there were validation errors or warnings.

There is no further information.
Here's my code:
string collectionUri = $"https://dev.azure.com/{organization}";
var creds = new VssBasicCredential(string.Empty, pat);
var connection = new VssConnection(new Uri(collectionUri), creds);

var projectClient = connection.GetClient<ProjectHttpClient>();
var project = await projectClient.GetProject(projectName);

var buildClient = await connection.GetClientAsync<BuildHttpClient>();
var definition = await buildClient.GetDefinitionAsync(projectName, 1253);

var build = new Build
{
    Definition = definition,
    Project = project,
};

var response = await buildClient.QueueBuildAsync(build, ignoreWarnings: true);

Setup:

I have full admin access in the organization
I created a PAT will full access
Microsoft.TeamFoundationServer.Client - v16.153.0
.NET Core 3.1
In debug, definition and project are what I would expect them to be
The pipeline is just the starter pipeline, so no variables or parameters are used

What am I doing wrong?

Sign... the pipeline was only defined on a specific branch. Once I set the branch name, it worked fine.
However, now I'm stuck at trying to set a variable for the build. How can I do that?

@MisinformedDNA  I found this code snippet https://stackoverflow.com/a/52777688/90287

Thanks. This is all I ended up needing:
var json = new JObject(new JProperty("pullRequestId", pullRequestId));
build.Parameters = JsonConvert.SerializeObject(json);


Correct spacing

I know this is lack of objective criteria. If we don't need it, close it

I'm personally of the opposite preference, I normally use spaces around the concat operator; also, since this is changing the status quo, I don't think it's useful.


question about hydra

@kailiang-zhong
hello, I met one env problem when using your code.
python main.py \
    ./conf4models/lzd_real_data/DESCN.txt \
    1 \
    ./data/real_bin_set_full.5.train.npz \
    ./data/real_bin_set_full.5.test.npz

But I get the folling hydra problem, which I have speed half day to fix it but failed.
main.py:859: UserWarning:
The version_base parameter is not specified.
Please specify a compatability version level, or None.
Will assume defaults for version 1.1
  @hydra.main(config_path='./conf', config_name='conf_lzd_real_bin_v0_full.yaml')
2023-10-12 00:16:57,287 - DEBUG - Setting JobRuntime:name=UNKNOWN_NAME
2023-10-12 00:16:57,287 - DEBUG - Setting JobRuntime:name=main
Traceback (most recent call last):
  File "main.py", line 903, in <module>
    main()
  File "/home/dell/miniconda3/envs/pt1.12/lib/python3.7/site-packages/hydra/main.py", line 99, in decorated_main
    config_name=config_name,
  File "/home/dell/miniconda3/envs/pt1.12/lib/python3.7/site-packages/hydra/_internal/utils.py", line 401, in _run_hydra
    overrides=overrides,
  File "/home/dell/miniconda3/envs/pt1.12/lib/python3.7/site-packages/hydra/_internal/utils.py", line 458, in _run_app
    lambda: hydra.run(
  File "/home/dell/miniconda3/envs/pt1.12/lib/python3.7/site-packages/hydra/_internal/utils.py", line 223, in run_and_report
    raise ex
  File "/home/dell/miniconda3/envs/pt1.12/lib/python3.7/site-packages/hydra/_internal/utils.py", line 220, in run_and_report
    return func()
  File "/home/dell/miniconda3/envs/pt1.12/lib/python3.7/site-packages/hydra/_internal/utils.py", line 461, in <lambda>
    overrides=overrides,
  File "/home/dell/miniconda3/envs/pt1.12/lib/python3.7/site-packages/hydra/_internal/hydra.py", line 109, in run
    run_mode=RunMode.RUN,
  File "/home/dell/miniconda3/envs/pt1.12/lib/python3.7/site-packages/hydra/_internal/hydra.py", line 599, in compose_config
    validate_sweep_overrides=validate_sweep_overrides,
  File "/home/dell/miniconda3/envs/pt1.12/lib/python3.7/site-packages/hydra/_internal/config_loader_impl.py", line 147, in load_configuration
    validate_sweep_overrides=validate_sweep_overrides,
  File "/home/dell/miniconda3/envs/pt1.12/lib/python3.7/site-packages/hydra/_internal/config_loader_impl.py", line 245, in _load_configuration_impl
    config_name, overrides
  File "/home/dell/miniconda3/envs/pt1.12/lib/python3.7/site-packages/hydra/_internal/config_loader_impl.py", line 228, in _parse_overrides_and_create_caching_repo
    parsed_overrides = parser.parse_overrides(overrides=overrides)
  File "/home/dell/miniconda3/envs/pt1.12/lib/python3.7/site-packages/hydra/core/override_parser/overrides_parser.py", line 100, in parse_overrides
    ) from e.__cause__
hydra.errors.OverrideParseException: LexerNoViableAltException: ./conf4models/lzd_real_data/DESCN.txt
                           ^
See https://hydra.cc/docs/1.2/advanced/override_grammar/basic for details

Have you meet this problem before?

I fixed it when I use param_search.py to train, what a strange thing. Hydra-core is hard to use.
BTW, why training loss = nan during the training?