Unstable Wifi connection on 1.3.0 and ESP8266

Describe the bug
When putting the GravityMon into configuration-mode, it uses everything from 5-10 minutes to connect to the network chosen. When its in "ispindel mode" It doesnt seem to be able to report every 30 mins as configured. It often can go many hours inbetween reports.
To Reproduce
To be honest im unsure on how to report it, but I:

Use reset-pins to get the blue solid light
Connect to GravityMon wifi
Configure my wifi (using the same wifi in both slots, ive also tried to put another wifi with invalid credentials in, but no difference)
Press Save
I see that the ispindle is trying to send/connect by the blue light blinking every 30 seconds.
Eventually it comes online and i can reach it on a ip on the configured wifi.

When i then restart it/put it in a bowl of water it reports once (to brewfather), and then nothing. Last time i tried i had it connected for 2 hours without it reporting (every 30 min as configured).
Expected behavior
iSpindle should save and connect to wifi network within a minute. Should go to config mode when connecting charger and/or putting it flat on the desk.
Screenshots
If applicable, add screenshots to help explain your problem.
Software:

Platform: esp8266
Browser: Chrome
Version: 1.3.0 (..b68835)

Additional context
I can add that both my Wifi hotspot and wifi password has blank spaces in them. I dont know if this can cause some issues?
Im unable to read any logs from my router due to my provider, so i cant verify if the ispindle tries to contact dhcp etc.
Tried to output "support information", but its stuck on "collecting support data, please wait"
Output from error log:
HELP: Exception (28) reason=2 epc1=0x402167ac epc2=0x00000000 epc3=0x00000000 execvaddr=0x00000068 depc=0x00000000
WIFI: Failed to connect to wifi 1
WIFI: Failed to connect to wifi 7
HELP: Exception (28) reason=2 epc1=0x402167ac epc2=0x00000000 epc3=0x00000000 execvaddr=0x00000068 depc=0x00000000
WIFI: Failed to connect to wifi 1
WIFI: Failed to connect to wifi 7
HELP: Exception (28) reason=2 epc1=0x402167ac epc2=0x00000000 epc3=0x00000000 execvaddr=0x00000068 depc=0x00000000
WIFI: Failed to connect to wifi 1
WIFI: Failed to connect to wifi 7
WIFI: Failed to connect to wifi 7
HELP: Exception (28) reason=2 epc1=0x402167ac epc2=0x00000000 epc3=0x00000000 execvaddr=0x00000068 depc=0x00000000
WIFI: Failed to connect to wifi 1
WIFI: Failed to connect to wifi 7
HELP: Exception (28) reason=2 epc1=0x402167ac epc2=0x00000000 epc3=0x00000000 execvaddr=0x00000068 depc=0x00000000
WIFI: Failed to connect to wifi 1
WIFI: Failed to connect to wifi 7
HELP: Exception (28) reason=2 epc1=0x402167ac epc2=0x00000000 epc3=0x00000000 execvaddr=0x00000068 depc=0x00000000
WIFI: Failed to connect to wifi 1
WIFI: Failed to connect to wifi 7
HELP: Exception (28) reason=2 epc1=0x402167ac epc2=0x00000000 epc3=0x00000000 execvaddr=0x00000068 depc=0x00000000
WIFI: Failed to connect to wifi 7
HELP: Exception (28) reason=2 epc1=0x402167ac epc2=0x00000000 epc3=0x00000000 execvaddr=0x00000068 depc=0x00000000
WIFI: Failed to connect to wifi 7

Output from backup-file (removed sensitive fields):
{
  "meta": {
    "version": "1.3.0",
    "software": "GravityMon"
  },
  "config": {
    "mdns": "[SG]_iSpindel_Red",
    "id": "4a22c2",
    "ota-url": "https://www.gravitymon.com/firmware/",
    "wifi-ssid": "MyWifi 24Gz",
    "wifi-pass": "My Wifi Password With Spaces 1234",
    "wifi-ssid2": "OTHER_Gimmick_WIFI",
    "wifi-pass2": "OtherWifiPasswordWithNoSpaces",
    "ble": "",
    "temp-format": "C",
    "token": "",
    "token2": "",
    "http-push": "http://log.brewfather.net/ispindel?id=adsghhsdvascsdacas",
    "http-push-h1": "Content-Type: application/json",
    "http-push-h2": "",
    "http-push2": "",
    "http-push2-h1": "Content-Type: application/json",
    "http-push2-h2": "",
    "http-push3": "",
    "influxdb2-push": "",
    "influxdb2-org": "",
    "influxdb2-bucket": "",
    "influxdb2-auth": "",
    "mqtt-push": "",
    "mqtt-port": 1883,
    "mqtt-user": "",
    "mqtt-pass": "",
    "sleep-interval": 1800,
    "voltage-factor": 1.66,
    "voltage-config": 4.16,
    "gravity-formula": "0.00000095*tilt^3+-0.00013169*tilt^2+0.00737913*tilt+0.89243332",
    "gravity-format": "G",
    "temp-adjustment-value": -1,
    "gravity-temp-adjustment": true,
    "gyro-temp": false,
    "storage-sleep": false,
    "gyro-calibration-data": {
      "ax": -248,
      "ay": 497,
      "az": 1528,
      "gx": -16,
      "gy": 91,
      "gz": -11
    },
    "formula-calculation-data": {
      "a1": 21.5,
      "a2": 26.45,
      "a3": 31.07,
      "a4": 40.52,
      "a5": 49.19,
      "a6": 59.57,
      "a7": 63.32,
      "a8": 67.29,
      "a9": 71.31,
      "a10": 72.86,
      "g1": 1,
      "g2": 1.012,
      "g3": 1.024,
      "g4": 1.038,
      "g5": 1.05,
      "g6": 1.066,
      "g7": 1.072,
      "g8": 1.082,
      "g9": 1.094,
      "g10": 1.098
    },
    "app-ver": "1.3.0",
    "app-build": "..b68835",
    "angle": 89.962,
    "gravity": 1.1824,
    "battery": 4.21,
    "runtime-average": 22.78,
    "platform": "esp8266"
  },
  "advanced": {
    "gyro-read-count": 50,
    "gyro-moving-threashold": 500,
    "formula-max-deviation": 3,
    "wifi-portal-timeout": 120,
    "wifi-connect-timeout": 20,
    "push-timeout": 10,
    "formula-calibration-temp": 20,
    "int-http1": 0,
    "int-http2": 0,
    "int-http3": 0,
    "int-influx": 0,
    "int-mqtt": 0,
    "tempsensor-resolution": 9,
    "ignore-low-angles": false,
    "battery-saving": true,
    "id": "4a22c2"
  }
}

From the logs it looks like it fails to connect to the wifi and then crashes due to failed connection.
I would suspect that there is something with you network setup that is incompatible with the esp8266, have you enabled 2.4Ghz ? Is the SSID broadcasting ?
Error 1 = No SSID found
Error 7 = Disconnected (failed to connect)
Can you hook it up to a serial monitor and get a dump of the serial log so I can see what is going on ? Just unplug the battery when you are connecting to the serial port of the esp.

Looks like this is looping throughout:
        72 I: SDBG: Serial logging started at 115200.
        74 I: Main: Started setup for 4a22c2.
        74 I: Build options: 1.3.0 (..b68835) LOGLEVEL 4 ESP8266
        89 I: CFG : Filesystem mounted.
        93 I: WIFI: Current reset counter 0.
       106 I: HELP: Last reset cause 28
       115 E: HELP: Exception (28) reason=2 epc1=0x402167ac epc2=0x00000000 epc3=0x00000000 execvaddr=0x00000068 depc=0x00000000
       237 I: CFG : Size of configuration file=1207 bytes.
       253 I: CFG : Configuration file /gravitymon.json loaded.
       257 W: CFG : Configuration file does not exist /hardware.json.
      1154 I: Main: Battery 5.15 V, Gyro=89.26, Run-mode=1.
fpm close 3
mode : sta(c4:5b:be:4a:22:c2)
add if0
      1259 I: WIFI: Connecting to wifi (0) using stored settings MyWifi 24Gz.
.........................scandone
state: 0 -> 2 (b0)
.state: 2 -> 3 (0)
state: 3 -> 5 (10)
add 0
aid 5
cnt

connected with MyWifi 24Gz, channel 11
dhcp client start...
..........................................................................................pm open,type:2 0
.................................................................     22612 E: WIFI: Failed to connect to wifi 7
     22707 I: WIFI: Stop double reset detection.
state: 5 -> 0 (0)
rm 0
pm close 7

     22871 W: WIFI: Failed to connect to first SSID MyWifi 24Gz.
     22872 W: WIFI: Failed to connect to any SSID.
     22907 I: TSEN: Found 1 temperature sensor(s). Using 9 bit
     22908 I: Main: Setup completed.
Fatal exception 28(LoadProhibitedCause):
epc1=0x402167ac, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000068, depc=0x00000000

--------------- CUT HERE FOR EXCEPTION DECODER ---------------

Exception (28):
epc1=0x402167ac epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000068 depc=0x00000000

>>>stack>>>

ctx: cont
sp: 3fff1d30 end: 3fff1f40 offset: 0190
3fff1ec0:  3fff09f8 3fff0a80 3fff0a00 3fff09a8
3fff1ed0:  3fff0adc 3fff0a6c 3fff0a80 4020cc20
3fff1ee0:  60000000 405650d1 00000001 3fff1f9c
3fff1ef0:  3fffdad0 3fff0adc 3fff0a34 3fff1f9c
3fff1f00:  3fffdad0 3fff09d8 3fff0a34 40216952
3fff1f10:  feefeffe feefeffe 00000001 4020cf0b
3fff1f20:  3fffdad0 00000000 3fff1f70 4022e410
3fff1f30:  feefeffe feefeffe 3fffdab0 401003a1
<<<stack<<<

--------------- CUT HERE FOR EXCEPTION DECODER ---------------

 ets Jan  8 2013,rst cause:2, boot mode:(3,7)

load 0x4010f000, len 3424, room 16
tail 0
chksum 0x2e
load 0x3fff20b8, len 40, room 8
tail 0
chksum 0x2b
csum 0x2b
v000bb820
~ld
Serial connection established

After looking into the specifications from espressif on the esp8266 these are some of the hardware/software limitations regarding wifi:

Dont use space in your wifi SSID or wifi password
Only supports 2.4Ghz bands, channels must be 1-13, other channels are not supported (In 802.11 b/g/n modes)
Channels between 20-25 Mhz bands

From my own experiences:

SSID must be visible (hidden SSID dont work)

Source: https://www.espressif.com/sites/default/files/esp8266_wi-fi_channel_selection_guidelines.pdf
I will add this information to the troubleshooting guide.

I reconfigured my 2.4Ghz to not have any spaces in either SSID or password, and it connected right away.


Make external icon into an svg so it can go dark-mode

https://bottlenose-glowing-thimbleberry.glitch.me/#StoryIcon
No change to the component contract: <Icon icon="external" /> will do the same thing, but will respond to color changes the way the other SVG icons do.

:rocket: PR was released in v0.19.0 :rocket:


Separate damage lines now shown as 1 line per damage type in the chat roll. Old method divided and labelled per damage line.

Damage rolls are now combined into 1 line rather than broken up into their listed damage lines. For example a rogue attacks and it used to display the 1 handed damage roll on 1 line in the damage window, then below that had the formula for sneak attack. It displayed 2 different lines and totals.
now it shows all damaged combined into 1 line like the below image. Makes it very difficult and slow to determine how much damage should be dealt.

When it used to show this:

I contacted the author of Ready, Set, Roll and they explained that this is not a change made within their module, but the new system and it isn't something they can modify.
This new change makes using situational damage rolls useless as everything is lumped into one. Many official magic items use situational damage types, and many spells have them as well.
Below is the details tab of the weapon shown in the images:

I'm going to encourage you to see what these looks like in a zero-module environment, which will be quite different. Your old screenshot, for example, is 100% a module with nothing of it being provided by the system.

I'm going to encourage you to see what these looks like in a zero-module environment, which will be quite different. Your old screenshot, for example, is 100% a module with nothing of it being provided by the system.

@krbz999 It doesn't look that different with or without RSR really, for 3.0+. See the comparison here, top being with RSR and bottom being the damage card without RSR. They're the same exact tooltip.

Obviously the old screenshot used the old formatting and functionality of RSR that no longer exists, but the main point is that separating damage is now something that the system does, and so complaints about how it does it are a valid system ticket. The arbitrary clustering of damage by type makes no sense given that the vast majority of contextual separated damage that exists in DnD 5e is of the same type (such as Divine Smite in this case).
Why is the decision not left to the user? If they separate it in the item, separate it in the tooltip. If they don't, don't. It feels like a way more sensible approach to things, and better UX design in general.

"The arbitrary clustering of damage by type makes no sense given that the vast majority of contextually separated damage exists in DnD 5e."
I couldn't agree more with this post. Combining various damage types in the new version of 5e does not make it easier for me as a DM to parse the chat and quickly disperse damage to creatures that have damage resistances/immunities. It feels counterintuitive to have to click on a drop-down to see what previously was given to me at face value.

It is definitely a dnd 3.x problem or oversight. I tested with a clean 2.4.1 install no modules and the different damage rolls were seperated just like in ops picture minus the rsr formating.

As a workaround for now i use different types and ignore them to seperate the rolls and use the context field to show actual damage types.
I think the easiest way to get the best of both is to seperate rolls based on context as well if it is all fire and no context 1 line if it has different context split into seperate lines. Or maybe thats the actual bug because I just realized that if they are all the same element all context exept the first one is ignored.

The system has always assumed one damage roll is one instance of damage. The types are grouped to give accurate information to the user about how the damage will be applied.

What's the difference between showing the user 5+5 instead of 10 for when the damage is going to be applied?

If a creature has resistance to the damage then applying two instances of 5 damage gives a different result than applying one instance of 10 damage, due to the rules on rounding. Grouping the damage makes it clear that the latter is happening, and not the former.

Seems like a totally arbitrary limitation for the system, especially because, again, plenty of weapons have situational damage (smite, booming blade, many monsters) that SHOULD be shown separately in the damage total.

If there are situational damage bonuses that do not apply to that instance of damage, then they should not be included in the roll, because the total will be wrong. When applying damage via the context menu (a feature that has been in the system for a very long time), the system has always used the total damage number, so the system has always assumed that all of the damage in the roll is included.

At least make it a flag that can be passed to the display options so modules can prevent the automatic coalescing of damage if they wish.

We can look into this.

If a creature has resistance to the damage then applying two instances of 5 damage gives a different result than applying one instance of 10 damage, due to the rules on rounding. Grouping the damage makes it clear that the latter is happening, and not the former.

If this mattered, wouldn't the user put the damage into one damage field? It seems like the whole idea around grouping the damage together should be handled user side by the user combining damage in the item, rather than the roll card automatically doing it for you. Otherwise, what's the point of allowing multiple damage fields to have the same damage type?
But yeah, a compromise in the way of a setting or a flag should definitely exist at least.

If this mattered, wouldn't the user put the damage into one damage field? It seems like the whole idea around grouping the damage together should be handled user side by the user combining damage in the item, rather than the roll card automatically doing it for you.

There might be global typed damage bonuses in system.bonuses.*.damage or the user might add typed damage in the damage roll's situational bonus field. Neither of these cases are handled by the user combining damage in the Item itself.

Otherwise, what's the point of allowing multiple damage fields to have the same damage type?

There's no downside to allowing it, and it would require more work to disallow it.

Users have always been expected to roll all damage of an item together in one roll, like a Flametongue sword, and it's built around this being expected and wanted outcome. The system does not support alternative damage rolls (beyond the Versatile field).
That's a different issue though, one that should be solved with a Roll Groups-esque implementation as proposed in #1964

If users have always been expected to roll all damage of an item together in one roll, like a Flametongue sword, your system has never shown indications of this before your recent updates. In every campaign I've ever been in since v7 of Foundry, all instances we've had were separated like that for the ease of the DM to calculate damage res of monsters as a glance, and I have been running it the same as well, especially with joint res like fire and poison damage rolls. It also combines different rolls of the same type, which has been different than prior since I would use two other instances of necrotic damage for the toll the dead die calculations at a glance in the chat as well.

If users have always been expected to roll all damage of an item together in one roll, like a Flametongue sword, your system has never shown indications of this before your recent updates.

The number you see on the damage card before expanding has always included all of the damage rolled. When applying damage via the system's 'apply damage' context menu option, all the damage has always been applied. These are reasonable indications.

we've had were separated like that for the ease of the DM to calculate damage res of monsters as a glance

The breakdown is still split by damage type.

Yes that is all fine but before the breakdown also split per damage formular and effect even if all were the same damage. It really is helpful to have a breakdown of how the damage comes together especially in higher level games where more and more effects stack together. Now it is just one long calculation and at a glance much harder to determine if everything is correct.

Pretty nuts that you flag it as 'wont change' when people have been using it this way for years thanks to mods like RSR and the one that preceded it. I think it should be at least looked at to allow mods like RSR to allow for users to have it back to the way it was before. Not having this feature is the sole reason I havent updated and wont. Im sure theres many others that feel the same way. Being able to include all the potential rolls in one click is vastly superior to disallowing it from the way it was before, and to be honest many people i know from the dnd space were expecting it to become a part of the main system.
Every online campaign ive been in has used it this way due to how convenient it is. If i told you that you needed to click multiple times now to accomplish the same thing you previously did in 1, you would probably agree that its a needless change and rather annoying.
Whether or not you feel damage rolls "should roll all damage of an item together in one roll" doesn't mean that what were asking for should be disallowed. Its clear many people want this feature.
Maybe we werent clear either on just how important this is. Like i said above, i dont want to update until this feature gets implemented or once again allowed via mods like RSR. Everyone appreciates the work that goes into the dnd5e module and those that create mods for it. But also saying that something many people seem to ask for "wont change" without much discourse is a bit disheartening. Ive had several people message me asking if i received any out of thread updates or work arounds for the new mode since i asked about it in the discord and posted here.
Maybe in the games you run this feature isnt used or doesnt seem useful. I can tell you in everything ive been a part of its been core and used every single session. All we can ask is that you take the time to listen and allow at the very least mods like RSR to once again do what they did previously. Sure. we would prefer it a part of the main package as a choice but it doesnt seem like that will happen.
Hopefully this topic gets a second look. i know myself and dozens other (that have reached out) are awaiting some positive news for this.

The original rolls are still available in the chat message, we are simply modifying them when we display. If a module like RSR wanted to display the rolls separately, that is still entirely possible so long as they are willing to just replace our rendered HTML and use their own.

Just wanted to add my two cents that that the automatic summing of various damage types in a single total display is definitely not my expected nor preferred experience as a user, as a player or a dm. It is far too common that players and creatures will have resistances/immunities/triggers to specific damage types. I find myself expanding the card far more often than not when there is more than one damage type, which in my personal experience would mean that having that as the default (or at least facilitating mods to do it) would be preferable.

Just wanted to add my two cents that that the automatic summing of various damage types in a single total display is definitely not my expected nor preferred experience as a user, as a player or a dm. It is far too common that players and creatures will have resistances/immunities/triggers to specific damage types. I find myself expanding the card far more often than not when there is more than one damage type, which in my personal experience would mean that having that as the default (or at least facilitating mods to do it) would be preferable. And given that there are examples of cases where even same damage types from an item or spell can have different triggers, it would be nice to simply break it down on a per damage formula line basis.

For resistances etc., that should now no longer be necessary given the damage application doodad handles all of those automatically so you shouldn't be needing to do any calculations for those yourself anymore.

The original rolls are still available in the chat message, we are simply modifying copies of them when we display. If a module like RSR wanted to display the rolls separately, that is still entirely possible so long as they are willing to just replace our rendered HTML and use their own.

@arbron Asking RSR to duplicate code word for word from the base system to create "its own html" (which is literally just the system html but without damage combined) just to bypass one chunk of code, when it could very easily be a simple flag on the system that is just passed to the same function to accomplish the same result is a bit ridiculous. Not only is that just bad code design because of redundant duplicate code, it will make the module all the more difficult to maintain, as that function will need to be changed and updated every single time someone changes a part of the identical function in the base system.
All we're asking for here is a simple conditional check that skips the aggregateDamageRolls() function call and uses the full roll array instead of creating its own. It's a relatively trivial change comparatively, the only work would be making sure it is correctly passed in via options.

For resistances etc., that should now no longer be necessary given the damage application doodad handles all of those automatically so you shouldn't be needing to do any calculations for those yourself anymore.

That's pretty neat! I have only just recently got back into working with foundry after about a year break, so I wasn't aware of that. But while that is handy, I do still feel that the current output is overly simplified in presentation and rigid to work with as a result.
The initial example of the sunsword is a good case for this. There are different formula being used for different purposes, but because of the way the current system works the output gets lumped together indiscriminately. What brought me to look into this and found this thread was my old booming blade and green flame blade solutions not working the way I'd like them to, due to the same issue. The old output screenshot was a roll using RSR and not core, granted. But the core functionality was there to let it exist. It would be nice to have core functionality that was more flexible in the way that it used to be.

Chiming in to add another voice in support. I used to use multiple damage rolls of the same type for many different purposes in the past, such as simplifying the application of conditional damage for abilities like Divine Smite and Toll the Dead, or saving on clicks when rolling Magic Missile bolts individually. Now that it no longer works, I've used a few workarounds to keep things going up til now, but I really miss the convenience BR and RSR used to be able to bring in this regard, and always wondered why it wasn't a base-game feature in the first place.
I can think of so many situations where I would want separate damage rolls of the same type on the same item sheet. I can't think of a single instance where I would ever want those rolls aggregated together. (If I did, I would simply put the calculation on the same damage roll, rather than separate it into a new roll.) Can anyone here think of any use cases where it would be good practice to combine the result multiple damage rolls of the same type? It feels like either a carry-over from the old damage-aggregation method at best, or unnecessary idiot-proofing at worst, especially now that the capability exists in the base system for damage rolls to be presented separately if they are of different types.
Please reconsider your decision on this request.

What I miss about separate damage lines is applying them as a player.
You used to be able to do it yourself in the chat window, at least with the module my game is running, and when you're playing a character with specific resistances to things (A barbarian raging, for an example), it made applying damage a breeze compared to when we tried to move to the new version.
If you'd like to move the "norm" to being fully on one damage line, may I suggest making it an option in some setting? It's a compromise, but it'd surely make everyone happy.

Just wanted to add my two cents that that the automatic summing of various damage types in a single total display is definitely not my expected nor preferred experience as a user, as a player or a dm...

Totally agree.
Split rolls makes things easier as a GM and as a player.
When I count the rolls out to a player I have them right there so I can say "thats 24 to hit, 13 slashing damage and 15 cold damage" If my player has 20hp left they might want to Absorb Elements so I can easily mark that off. If I say "Thats 28 damage" the player may already be resigned to death saves and forget about the spell by the time ive clicked the box to say "of which 15 is cold".

For resistances etc., that should now no longer be necessary given the damage application doodad handles all of those automatically so you shouldn't be needing to do any calculations for those yourself anymore.

I hit a a creature immune to fire with a flametongue longsword and they took all the damage, so im not sure what's going on there but separate damage would mean I just omit clicking that button. Im unsure if this is just me this has happened to but the fact that it could happen is concerning.

The system has always assumed one damage roll is one instance of damage. The types are grouped to give accurate information to the user about how the damage will be applied.

This is assuming that everyone uses a fully automated system. Many people (including myself) don't as we want to emulate the actual tabletop experience. This assumes that all the players use a heavily automated system where rolling attacks automatically removes the damage and does all the checks for walls and cover. It assumes the GM is just an assistant. The system (and developers) making a lot of assumptions here.

If a creature has resistance to the damage then applying two instances of 5 damage gives a different result than applying one instance of 10 damage, due to the rules on rounding.

This seems rather nit picky as the DM would be aware of the monsters vulnerabilities, residences and immunities anyway so if they see the rolls and how they break down, they can do the math there. In fact, when the math is being done and the damage numbers are read out this is usually the players biggest hint that "this isn't very effective"
This current system is not conductive of an optimised game of D&D. It will actively drag the pacing down as GMs need to click the damage roll to see the damage types and how much each damage is worth. No other system does it this way to my knowledge. Even when playing IRL not all players do it that way.

This actively makes the game worse. At least give module-makers an option to change this.

Just adding another request to address this issue or ideally provide an option for the system to display/label damage separately instead of always combining the same damage type.  Many find it a more efficient play style to include extra information in every attack and simply ignore any parts not relevant to the current situation (as opposed to adding extra attack steps when that extra information is needed).
Consider this attack with a Giantslayer Quarterstaff in Roll20 compared to versions of Foundry with and without modules:

Options in Roll20 allow me to click the attack once and display all the information I want in one place for easy reference.  I can see two attack rolls (in case dis/advantage applies or just use the left number if not), damage with custom labels (so it's easy to see which only applies to Giants), and critical damage (if either roll is a 20) as clearly separate numbers so it's easy to ignore if it doesn't apply.  If I need to see the actual damage dice rolled, it's a matter of hovering over each number to see a pop up.
Better Rolls lets me have almost that exact experience in Foundry v9 and Ready Set Rolls previously got fairly close in v10 and 11, but unfortunately it's farther away now with changes to the DnD5e system.  To get the same information for the attack in Foundry with no modules, I need to sacrifice a lot of screen real estate and:

Click the item on the sheet/bar to produce the item chat card.
Click the attack button on the chat card.
Click the advantage button on the attack pop up window.
Click the expand button on the attack chat card (to see the actual rolls).
Click the damage button on the item chat card.
Click the critical button on the damage pop up window.
Click the expand button on the damage chat card (to see the actual rolls).

In the kind of long combats my tables like to run with dozens of combatants, inefficiency really adds up.  Being able to glance at a single chat card and easily parse which information applies to the situation is a great time saver and being able to separate the same damage type into different contexts is important for that.
Sometimes you're using some feature that ignores critical hits or facing an enemy that does the same and seeing how much extra damage those criticals could have otherwise done is a big part of the fun.
Sometimes you think you're smiting a Fiend, but they're actually a Fey in disguise... it would be nice to immediately know how much of that radiant damage the DM shouldn't apply without immediately giving away why.
Sometimes you think you're stabbing a Humanoid, but they're secretly a shapeshifted Dragon... it would be nice to immediately know how much extra piercing damage the DM should apply without asking for an additional roll and spoiling the surprise.
Sometimes you're smashing Goblins, Giants, Ogres, and Hobgoblins all in the same turn and it would be nice to not have to make extra clicks each time your target is a Giant, but instead just be able to click once per attack and easily see which extra bludgeoning damage applies to that situation.
I understand that some people don't want to add up damage after an attack or manually subtract hit points from tokens, but for those who shy away from full automation there are good reasons to consider damage types and contexts before applying damage.  I also understand there's an underlying design philosophy that perhaps seeing damage roll results upfront could influence some player's decision of whether to use a feature affecting the attack roll.  However not all tables share those concerns nor play the same way.  Options for more styles of play are a good thing to include in the system (and a bad thing to remove, even if only by removing easy support for modules that do the heavy lifting in those areas).  Please reconsider this issue.

I assume this is just a dead thread now as the devs have stopped interacting and have given no word on any updates and marked this as "Won't Change" which is disappointing. I guess I'll be on 2.4 until I find something that can split the damage or a new VTT.
As Arbon said:

The original rolls are still available in the chat message, we are simply modifying copies of them when we display.

But they won't give us the option on how the damage is displayed as that is not how they want us to play our games. They want module developers to make it harder to maintain and update their code. Why would they do that? That doesn't seem right. Why would you actively try and make the end-user experience more difficult?

I just now came upon this thread and it's absolutely disheartening to see this as "won't change". The screenshot comparing the giantslayer quarterstaff rolls to roll20's implementation should say it all, and there are so many more examples of features that benefit from split damage rolls.
I GM on version 3 and play in weekly game on 2.4. Every time I gm I miss the ability to split the damage.
Please, please reconsider your stance on this issue. The core system should really support this functionality. And if that is somehow not possible, at least enable modules to solve this issue.
I am speaking as a huge fan of foundry and the dnd5e system and I love almost everything you have accomplished with the new features these past months. But this is a huge regression that puts foundry dnd5e behind basically every other full featured vtt in terms of user friendliness.
@Fyorl @krbz999

any updates on allowing the request to be compatible with RSR and what mango was asking about at the minimum, or implementing it into the main 5e module?
It seems like many people are in support of this and agree on its usefulness and efficiency.
@Fyorl @krbz999

any updates on allowing the request to be compatible with RSR and what mango was asking about at the minimum, or implementing it into the main 5e module? It seems like many people are in support of this and agree on its usefulness and efficiency. @Fyorl @krbz999

Looks like nschoenwald above is getting somewhere.
<3
https://github.com/foundryvtt/dnd5e/issues/3652
Looks like we may be getting heard!


KAFKA-12427: Don't update connection idle time for muted connections

Selector.poll() will always call pollSelectionKeys() for channels with buffered data. pollSelectionKeys() will always update connection last idle time, even if the channel is muted and we don't actually read from the channel.
There is an existing unit test idleExpiryWithBufferedReceives that fails to catch this behavior because the MockTime object used in the test is updated in a large enough increment to expire a connection between calls to poll(). After updating the test to advance time in smaller increments, the test fails without the Selector change.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

cc @rajinisivaram for reviews/thoughts
This approach is fairly simple, and we still end up calling pollSelectionKeys() with muted channels. An alternative that I was thinking of would be to remove a kafka channel from keysWithBufferedReads when explicitly muting, and then checking whether the channel has buffered data when unmuting.

@splett2 Thanks for the PR. I think it would be better to store channels in keysWithBufferedReads only when the channel is not explicitly muted since we care about this state only when we are ready to read from the channel. So we could check if channel is explicitly muted when adding to keysWithBufferedReads and add the key to keysWithBufferedReads when unmuting. This would avoid processing the channel unnecessarily.

@rajinisivaram
thanks for the review, that makes sense to me.


Add files via upload

@smi1eybone Please provide us with:

the school official website URL, if different from the domain you are submitting
an URL of a page on the official website where an IT-related long-term (>1 year) course is offered by the school
an URL of a page or another proof (.pdf or a screenshot are OK) showing that the school recognizes the domain which you are submitting as an official email domain for the students.

@smi1eybone You might miss my previous comment. Please react.

Hi,
Sorry for the late reply. I am going to be applying with github student
pack instead.
Thanks.
On Mon, Dec 2, 2019, 4:22 AM Philip Torchinsky<EMAIL_ADDRESS>wrote:

@smi1eybone https://github.com/smi1eybone You might miss my previous
comment. Please react.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/JetBrains/swot/pull/7221?email_source=notifications&email_token=AN35UKURNJKJEGDD6MGAT2LQWTHXDA5CNFSM4JR4KQAKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFSZ6XQ#issuecomment-560308062,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AN35UKUZHJJXXHBW6A2T3ALQWTHXDANCNFSM4JR4KQAA
.


Remove AWS RequestLimitExceded retries at the BOSH CPI Level

As per #23 and #19 the logic to retry when there is a RequestLimitExceded is in the client library code, so it is not needed at an upper level.
This PR removes the logic added in several places to retry requests when the RequestLimitExceded exception is raised. Often this logic is related to other potential errors, so only the condition on this specific error has been removed.
I got special doubts about the file resource_wait.rb, which implements wrappers for several resources. RequestLimitExceded was the default error to retry, and after removing it, it left some of this resources with some retry logic which will not be ever activated.
Notes

if this PR is merged, it must be done after #23.
It also includes de code from #23, so it might need rebasing.
be aware that this will change the behaviour of the CPI as it stop retrying on  RequestLimitExceded unless the setting max_retries is not setup. This means that a lot of current users of the CPI will start to experience problems until they re-configure the CPI.

I think we can consider this closed as we now expose max_retries properties exposed. Agreed?

@cppforlife this is still desirable.
The code removed in this PR duplicates the logic in the library, now that max_retries is enabled by default. I think it will also result in more retries than expected. For example a create_aws_instance() call that hits the rate limit will be retried 2 (max_retries default) * 10 (Bosh::Common.retryable) == 20 times.
I've rebased this against master so that it no longer includes the commit from #23.

@cppforlife I think you are mixing this PR with the issue #19.
I am happy to close #19. This PR is to remove logic as described by @dcarley.

@keymon ah yeah. I'll discuss more with @calebamiles to see what he thinks about pulling this in.

@keymon Thanks for the PR and your patience in waiting for us to review it!
We'd like to understand a bit more about what you're trying to solve. I agree that we're retrying both in the CPI and in the SDK, which is maybe a bit confusing (see @dcarley comment). However, this PR drops our default retries on RequestLimitExceeded from ~50 times over the course of 30 minutes to only twice. Are you seeing issues due to an excessive number of retries or some other reason?

@ljfranklin no problem. Personally I don't see any problem with it. It is just that it feels wrong that for some API calls (be aware that not all!) we are retrying both in the CPI and the SDK.
But on the other hand, I understand you concerns. it is true that accepting this change means a change on the behaviour of  the CPI and a lot of users might start experiencing retry errors  if they don't increase their max_retries config...
Personally I don't know what is the right thing to do. You can just do not do anything and leave it as it is, or maybe merge this but increase the default max_retries to 8 or more.

maybe merge this but increase the default max_retries to 8 or more.

@keymon I like this solution the best as it seems like a safe middle ground. SDK methods not covered by our waiters (ec2.security_groups, ec2.subnets, etc.) will become a bit more resilient to throttling errors, and our waiters will still be fairly robust to these errors by default.
I'll get this merged and bump the default max_retries.


Support LADP and Linux authentication when region is Edge.

SiteWise Edge now support LDAP and Linux authentication, SiteWise plugin should be able to support this as well.
When customer want to access data in the edge, they need to call /authenticate API first to get temporary AWS credentials which will expire after 4h. And they will use OpsHub to download their certificate. With AWS credentials and certificate, they could call SiteWise data plane API to fetch data.
There two changes need to be made on the plugin:

Provide a way to allow customer to enter their LDAP/Linux credential
Implement a mechanism to refresh credential every 4h
Support AWS session token, It only supports AWS access key and secret key now.

feature merged - closing this.


Evaluate and challenge DevRel metrics

Check Correlation https://www.youtube.com/watch?v=I5uinqFfl7w

Articles:

Defining success and metrics in DevRel

There's so much content out there, I feel like this is going to be though

This image is taken from the Measuring Developer Relations. I finally found an article that encompasses my vision of KPIs.
As described in #326, there are many metrics that we can measure and it's hard to choose one North Star metric for DevRel. North Star metrics are for companies, not for teams.
Ultimately, DevRel's goal is to get more active users, so to measure the growth of this metric.
But this is not a KPI that DevRel can use as it stands because we're not the only team doing work that has an influence on this metric. It would not be fair to evaluate our performance relying on this sole indicator.
As explained in the article and in our manifesto (even if it needs some rework), we're embracing the 3C's approach. (In the article, "Product" is our equivalent of "Code").
And I think that we need the equivalent of a North Star metric for each of these pillars of our initiatives.
This means one master KPI for Community, for Content, and for Code/Product, and other metrics that can be useful to track.
Community
The main KPI is community health. This can be measured through community members' activity, the size of the community, the number of discussions... It's hard to define what is the precise metric to track, we should use a combination of all this. Orbit should help to provide this metric. And it's fortunate, we can't define community health by its size only, or the number of answered questions.
This metric should be created as part of #327.
Some other metrics that can be part of the Community dashboard:

Number of Slack community members
Number of Slack community members active in the last 30 days (active = sent/replied to a message/discussion, added emojis)
Number of messages and discussions
Number of members in each Orbit
Number of Champions (see #284)

Here we focus on Slack. We could argue that the community is also on GitHub, Stack Overflow... if needed these metrics will be assessed again.
Content
The main KPIs are analytics on the Ressource Center. The main current difficulty is this Ressource Center doesn't exist yet and we haven't done much work about it.
In the meantime, we can rely on other metrics.
Some other metrics that can be part of the Content dashboard:

Number of UGC (blogposts, tutorials, ...)
Number of events (meetups, conferences, ...) and attendance
Number of workshops and attendance
Number of newsletter subscribers, opens and clicks
Number of Twitter followers, mentions, and engagement
Number of Linkedin followers, mentions, and engagement
Number of blog posts created and audience
Number of demos created
Number of use cases
Domain authority

Code/Procuct
The main KPI is the number of downloads. Distribution is key, and this measures if it's done right.

Number of contributors
Number of GitHub Stars
Number of product improvement suggestions captured
Number of integration users
NPS/Sean Ellis question
Number of reviews

That being said, it's time to add create dashboards on Amplitude :)

Thanks @ferdi05. We can talk more about all the metrics that can be used and tracked later, but I wanted to give you my opinion on the main KPIs.
Community
I also think that we could use the number of users per each orbit on Orbit as the main KPI.
Content
I don't think the analytics on the Resource Center is the best indicator. I think we can have as a main KPI the total number of visitors on all meilisearch.com sites as a main KPI. This is related to our awareness.
Code/Product
We use the number of unique users per month KPI for the product extensively. I think this is one of the most relevant metrics today from a product perspective along with the number of servers used in production.

Hi @qdequele, thanks for your quick reaction.
My thoughts are below:

Community I also think that we could use the number of users per each orbit on Orbit as the main KPI.

I agree. We could start with this KPI and make Presence a side metric. Presence is the Sum of (love * reach) of each member of the whole community and for each orbit, as described in the Orbit model KPIs.

Content I don't think the analytics on the Resource Center is the best indicator. I think we can have as a main KPI the total number of visitors on all meilisearch.com sites as a main KPI. This is related to our awareness.

The Resource Center being part of our websites, focusing on all visitors of MeiliSearch's websites will give a broader picture. Let's keep tracking the Resource center analytics, as DevRel should largely own it, which is less the case for other MeiliSearch websites.
Quick question: By MeiliSear websites, do we agree that these sites are:

the main website
the blog
the documentation website
and possibly subdomains with our demos (like the Crates demo) ?

Code/Product We use the number of unique users per month KPI for the product extensively. I think this is one of the most relevant metrics today from a product perspective along with the number of servers used in production.

I do agree that it is the metric to follow.
But as I said in my comment (see below), I feel like it's the North Star metric of everything we do at DevRel, that a few teams at MeiliSearch can influence independently of DevRel.

Ultimately, DevRel's goal is to get more active users, and we should measure this metric's growth.
But this is not a KPI that DevRel can use as it stands because we're not the only team doing work that influences this metric. It would not be fair to rely on this sole indicator to evaluate our performance.

I think that the main Code metric could be downloads as it mirrors our acquisition, education, and distribution efforts.
I'll be happy to discuss this last item and everything else later.
I will edit my long comment with what we discussed here.

Rather than downloads, I thank that launches could be a better main metric for the Code pillar.

The most essential part of the content was duplicated at the root of the repo. Closing this issue.


Update README.md

Update with new sorting option, throughput performance metric and screenshots.

V1.3.0 Help Guide


Add Windows support and ASM cmake support

This pull requests aims to add support to Windows platform and to add CMake support for compiling x86 ASM files (as in the original OpenWall's bcrypt implementation).
It also embeds the x86.S assembly source file originally found in OpenWall bcrypt.
Hopefully this PR closes #2, closes #3 and closes #4

Lgtm!


Mixed Precision + Gaussian Noise throws data type error float16 / float 32

I get the following error:

  File "<ipython-input-1-447a869fb5df>", line 171, in ae
    encoder,decoder = AddLayers(neurons,setup['AFunction'],setup['BatchNorm'],setup['Dropout'],setup['Layers'],dim,setup['Noise'])

  File "C:\MA\RecommenderSystems\code\helper.py", line 89, in AddLayers
    encoder.add(GaussianNoise(noise))

  File "C:\Users\Admin\Anaconda3\envs\tf2\lib\site-packages\tensorflow_core\python\training\tracking\base.py", line 457, in _method_wrapper
    result = method(self, *args, **kwargs)

  File "C:\Users\Admin\Anaconda3\envs\tf2\lib\site-packages\tensorflow_core\python\keras\engine\sequential.py", line 196, in add
    output_tensor = layer(self.outputs[0])

  File "C:\Users\Admin\Anaconda3\envs\tf2\lib\site-packages\tensorflow_core\python\keras\engine\base_layer.py", line 842, in __call__
    outputs = call_fn(cast_inputs, *args, **kwargs)

  File "C:\Users\Admin\Anaconda3\envs\tf2\lib\site-packages\tensorflow_core\python\keras\layers\noise.py", line 70, in call
    return K.in_train_phase(noised, inputs, training=training)

  File "C:\Users\Admin\Anaconda3\envs\tf2\lib\site-packages\tensorflow_core\python\keras\backend.py", line 4285, in in_train_phase
    x = switch(training, x, alt)

  File "C:\Users\Admin\Anaconda3\envs\tf2\lib\site-packages\tensorflow_core\python\keras\backend.py", line 4218, in switch
    x = control_flow_ops.cond(condition, then_expression_fn, else_expression_fn)

  File "C:\Users\Admin\Anaconda3\envs\tf2\lib\site-packages\tensorflow_core\python\util\deprecation.py", line 507, in new_func
    return func(*args, **kwargs)

  File "C:\Users\Admin\Anaconda3\envs\tf2\lib\site-packages\tensorflow_core\python\ops\control_flow_ops.py", line 1174, in cond
    return cond_v2.cond_v2(pred, true_fn, false_fn, name)

  File "C:\Users\Admin\Anaconda3\envs\tf2\lib\site-packages\tensorflow_core\python\ops\cond_v2.py", line 84, in cond_v2
    op_return_value=pred)

  File "C:\Users\Admin\Anaconda3\envs\tf2\lib\site-packages\tensorflow_core\python\framework\func_graph.py", line 915, in func_graph_from_py_func
    func_outputs = python_func(*func_args, **func_kwargs)

  File "C:\Users\Admin\Anaconda3\envs\tf2\lib\site-packages\tensorflow_core\python\keras\layers\noise.py", line 68, in noised
    shape=array_ops.shape(inputs), mean=0., stddev=self.stddev)

  File "C:\Users\Admin\Anaconda3\envs\tf2\lib\site-packages\tensorflow_core\python\ops\math_ops.py", line 899, in binary_op_wrapper
    return func(x, y, name=name)

  File "C:\Users\Admin\Anaconda3\envs\tf2\lib\site-packages\tensorflow_core\python\ops\math_ops.py", line 1197, in _add_dispatch
    return gen_math_ops.add_v2(x, y, name=name)

  File "C:\Users\Admin\Anaconda3\envs\tf2\lib\site-packages\tensorflow_core\python\ops\gen_math_ops.py", line 549, in add_v2
    "AddV2", x=x, y=y, name=name)

  File "C:\Users\Admin\Anaconda3\envs\tf2\lib\site-packages\tensorflow_core\python\framework\op_def_library.py", line 563, in _apply_op_helper
    inferred_from[input_arg.type_attr]))

TypeError: Input 'y' of 'AddV2' Op has type float32 that does not match type float16 of argument 'x'.

System information

Windows 10 [Version 10.0.18362.418]
TensorFlow version 2.0.0 via Conda
Python version: 3.6.10
CUDA/cuDNN version: 10.0.0130 / 7.6.5
GPU model and memory: NVIDIA 2060 Super 8GB

Describe the current behavior
The error only occurs only if mixed precision and noise is applied.
When mixed precision is applied, then:
os.environ['TF_ENABLE_AUTO_MIXED_PRECISION'] = '1' #using tensor cores
policy = tf.keras.mixed_precision.experimental.Policy('mixed_float16')
tf.keras.mixed_precision.experimental.set_policy(policy)

and data are converted to float16.
Converting the output of the previous dense layer to float16 couldn't solve the problem.
encoder.add(Dense(eneurons[0],input_dim=dim,dtype=tf.float16))

if noise:
        encoder.add(GaussianNoise(noise))

I cannot update to a higher TF version.

@Arktius
we see that the code shared is not sufficient for us to replicate the issue, could you please share a simple stand alone code to replicate.

import os
import tensorflow as tf
from tensorflow.keras.layers import Dense,GaussianNoise
from tensorflow.keras.models import Sequential

os.environ['TF_ENABLE_AUTO_MIXED_PRECISION'] = '1' #using tensor cores
policy = tf.keras.mixed_precision.experimental.Policy('mixed_float16')
tf.keras.mixed_precision.experimental.set_policy(policy)

#models
encoder = Sequential()
encoder.add(Dense(5,input_dim=5))
encoder.add(GaussianNoise(0.01))

With casting the data to float16, an error during backpropagation occurs...
import os
import numpy as np
import tensorflow as tf
from tensorflow.keras.layers import Dense,GaussianNoise,Activation
from tensorflow.keras.models import Sequential
from tensorflow.keras.models import Model
from tensorflow.keras.layers import Input
from sklearn.metrics import mean_squared_error as mse

os.environ['TF_ENABLE_AUTO_MIXED_PRECISION'] = '1' #using tensor cores
policy = tf.keras.mixed_precision.experimental.Policy('mixed_float16')
tf.keras.mixed_precision.experimental.set_policy(policy)

encoder = Sequential()
encoder.add(Dense(5,input_dim=5,dtype=tf.float16))
encoder.add(GaussianNoise(0.01,dtype='float32'))
encoder.add(Activation('relu'))
encoder.add(Dense(5))

input_dim = Input(shape = (5, ),name='rating_in')

model = Model(input_dim, encoder(input_dim))

model.compile(loss=tf.keras.losses.mean_squared_error)

data = np.asarray(np.random.rand(20,5),dtype='float16') ######## cast to float16
model.fit(data,data,batch_size=10)

Even if I cast the gradients in the custom training loop, the training doesn't get through.
def ModelTrain(model,optim,x,w,y,train_loss):
        with tf.GradientTape() as tape:
            predictions = model(x)
            loss = MMSE(y,w,predictions)
            scaled_loss = optim.get_scaled_loss(loss)

        scaled_gradients = tape.gradient(scaled_loss, model.trainable_variables)
        gradients = optim.get_unscaled_gradients([tf.cast(x,tf.float32) for x in scaled_gradients])
        optim.apply_gradients(zip((gradients), model.trainable_variables))

TypeError: Input 'y' of 'Mul' Op has type float32 that does not match type float16 of argument 'x'.
And If I now cast the trainable_variables to float16, I'll get this:
AttributeError: 'Tensor' object has no attribute '_in_graph_mode'

Any suggestions?

@Arktius
Can you please provide simple stand alone code such that we can replicate the issue, if possible share a colab gist, with the error the code shared in incomplete, the error faced is not same as yours. please find the gist here

https://colab.research.google.com/gist/Saduf2019/3d02bd5e25f035a97a4393df156e2763/untitled162.ipynb
You need !pip install tensorflow-gpu==2.0.

I am able to replicate the issue reported, please find the gist here

This is fixed latest tf_nightly_gpu-2.2.0.dev20200503

Could you please show me what has changed? I've just looked in the release notes, but I couldn't find something related to Gaussian noise.
I know that TF 2.1 also works as well, but I don't know why and I cannot use versions higher than 2.0.

Take a look at commit.  A bunch of other fixes were made as well so its a but tricky to pin point exactly.

The link is probably broken. Did you want me to see the release notes?

I know that TF 2.1 also works as well, but I don't know why and I cannot use versions higher than 2.0.

Thanks for your comment, but I cannot work with versions higher than 2.0 at the moment due to driver issues on the server.

Sorry for the delay in response. Please refer this commit f9e8998 for the changes.


Add a User Profiles page done ! #1150

Hello, PR
Add new feature - #1150
Add a normal user profile page and a profile icon in the home page navbar that redirects to the profile page done -
https://github.com/user-attachments/assets/a88f188a-20ec-4189-86b8-c21a49b63234
Page link -

Profile page -

Type of Change

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update

Checklist

[x] I have read the contributing document.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] I have added necessary tests to ensure my changes are effective.
[x] New and existing unit tests pass locally with my changes.
[x] Any dependent changes have been merged and published in downstream modules.

@mansiruhil13 please merge my PR with Level 3, you can check my code I have added a lot...
Thank You

@mansiruhil13

faq have changed recently on that page

@mansiruhil13 please merge my PR

otherwise i can't able to do another task

@mansiruhil13 please add level 3,

If you check other projects they also give level 3 for this

@mansiruhil13 If you check other projects, they also give level 3 for this...

@mansiruhil13 please upgrade the level 2 to 3, you can check my code I have added a lot...

@mansiruhil13 please upgrade the level 2 to 3, you can check my code I have added a lot...

@mansiruhil13 If you check other projects, they also give level 3 for this...

@mansiruhil13 please upgrade the level 2 to 3, you can check my code I have added a lot...


Uncaught Error: Failed to compile Vertex Shader

This is what I see in the console when I try to run Phaser:
Uncaught Error: Failed to compile Vertex Shader:
ERROR: 0:1: '/' : syntax error

    at WebGLRenderer.createProgram (WebGLRenderer.js:1219)
    at TextureTintPipeline.WebGLPipeline (WebGLPipeline.js:144)
    at new TextureTintPipeline (TextureTintPipeline.js:39)
    at WebGLRenderer.init (WebGLRenderer.js:445)
    at new WebGLRenderer (WebGLRenderer.js:384)
    at CreateRenderer (CreateRenderer.js:102)
    at Game.boot (Game.js:294)
    at HTMLDocument.check (DOMContentLoaded.js:38)

Windows 10
Latest Chrome
Phaser 3.5.0
Used with create-react-app

Here is a repo to test out the error:
https://github.com/hornta/phaser-3.5.0
What I did:

Created new app using create-react-app
npm install phaser --save
add constants to webpack to define WEBGL_RENDERER and CANVAS_RENDERER
imported phaser and created a new Game()

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

I solved it by adding
{
            test: [ /\.vert$/, /\.frag$/ ],
            use: require.resolve('raw-loader')
          },

to my projects webpack config

We cover this in our README in the Webpack section and provide a sample project template / webpack config that can be used too. The only other thing we could do is update our main.js so it points to a build file instead (see #3501) but I'm not too sure of this approach.


Go Modules support

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Currently, I don't think this CLI supports go modules at all. It would be nice to support this as that is where go-lang seems to be heading
Describe the solution you'd like
A clear and concise description of what you want to happen.
I should be able to run the swag cli from outside of the GOPATH
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

I have the same problem when referencing structs as response defined in vendored packages using go mod. Swaggo creates a reference in the type of external.repo.io/repo.StructName but doesnt create a response definition for it. The swagger client then throws errors like
Resolver error at paths./stuff.get.responses.403.schema.$ref
Could not resolve reference because of: Could not resolve pointer: /definitions/external.repo.io/repo.StructName does not exist in document

When I manually add the missing response to the generated file, it works.

I have the same issue. I am developing a go module that implements a /health endpoint according to the upcoming IETC RFC. When I created the sample code that supports swag, I could not see the /health endpoint. Without having looked at the code, I would currently assume that swag does not scan module sources, but only recursively from the current directory.
It would be very useful for people if swag would support go modules, I just don't know how easy or difficult this is to implement. I will try something, maybe I can even come up with a PR.

@easonlin404 it looks like an issue with gotools loader not knowing where to look. It is entirely possible you would need to use a different tool or figure out how to configure it. I've heard of people using gogrep, but I am not entirely sure.
In the mean time, the work-around I have found is to run this before running swag:
go mod vendor
cp -R /vendor/* $GOPATH/src/

It's not easy to support go modules.  I will  using different tool like gogrep,godef or any other tool instead of current searching mechanisms asap.

This ticket has been open for 6 months and is only becoming more relevant and more difficult to ignore. Would it be possible to get some traction on this?

I agree with you that having supported for Go modules feature is highest priority now.  Will keep  on support for it and release on v1.6.

Please use the latest swag that supports founding declarative annotations from go-module packages via #415. 🎉


Update index.md

Proposed changes
Clarification of com.docker.lb.network in relation to com.docker.lb.ssl_passthrough.
Even if this may be classified as a problem within the interlock extension, this documents the workaround.
Related issues (optional)
#9001

Deploy preview for docsdocker ready!
Built with commit cdc8b16d69a3ee97b4df7e29ae6864aafa3798cb
https://deploy-preview-9007--docsdocker.netlify.com

@euanh do you mind taking a look?

Is there any information missing? Can I do anything to assist you in this issue?


text to speech not working

simply adding speak to the call doesnt generate text to speech in the emulator? following this tutorial it should: https://docs.microsoft.com/en-us/bot-framework/dotnet/bot-builder-dotnet-text-to-speech#a-idssmla-speech-synthesis-markup-language-ssml
what am i missing?

Hi @hpavenge
That doc should state: "To use speech in the emulator, the bot must be registered and using a valid MS AppId and Password."  ref: https://github.com/Microsoft/BotFramework-Emulator/blob/c014d0494cd4eaefa5e1b7d1fd6e745c1c2ad504/src/server/conversationManager.ts#L461
Thank you for bringing this to our attention.

They are registered with a valid ms appid and password. Also tried hosting it with ngrok. Still no sound out of the emulator while the speak message is filled in the details json. FYI I'm using the Bot framework emulator as a desktop cliënt.

Okay here goes for anyone having the same problem. I was just sending text messages and expecting the bot to speak back. It doesn't speak back untill u actually use the mic. I wasn't using the mic because the bing speech api doesn't understand dutch.
TLDR use the mic in the emulator. Doesnt work with typing.

@EricDahlvang you said AppId and password has to be in Bots settings , where is that setting , and how can I specify that .

in a .net Bot, you can specify the MicrosoftAppId and MicrosoftAppPassword in the web.config as settings:
<add key="MicrosoftAppId" value="YourMicrosoftAppId" />
  <add key="MicrosoftAppPassword" value="YourMicrosoftAppPassword" />

For a node bot, if you are using Visual Studio Code, you can use the 'dotenv-extended' package, and provide a .env file that contains the appid and password (here is an example: https://github.com/Microsoft/BotBuilder-Samples/blob/master/Node/core-DirectLineWebSockets/DirectLineBot/.env )
Then, supply the same appid and password in the emulator:

AppId and Password are required for speech to work correctly in the emulator.


There seems to be a limit to the number of events that can load

Below is the relevant part of my config file and validation that ICS files are being parsed.
What I've noticed is as I add more and more ICS files I'll start losing events being displayed into the future.  I've tried adjusting the maxItems to force more.  If I limit this to just my family calendar it seems to work, but as I add more it starts limiting how many concurrent events will show.

`  module: 'MMM-CalendarExt2',
config: {
rotateInterval:0,
firstDrawingDelay:5000,
calendars : [
   {
      name: "Family Calendar",
    url: "http://p24-calendars.icloud.com/published/2/AAAAAAAAAAAAAAAAAAAAAAnxvk6dWCSmUW3kKq4ORupmc5N8-oKpSk0yAZZHtGlwqLUC6DesVs_yY12kYaUyo7PlVn52ooOue8qqr2Tm43Q",
    afterDays: 60,
  },
 /*  {
       name: "IHL Hockey",
       className: "hockey",
    url: "https://www.benchapp.com/team/ical/169814-33617.ics",
  }, */
   {
       name: "Wild Hockey",
       className: "hockey",
    url: "http://www.mnwildadultleague.org/DesktopModules/SiPlay/SiteManagement/API/SiteInfo/GetTeamIcal?teamId=1225244",
  },
   {
       name: "AHA Hockey",
       className: "hockey",
    url: "http://p24-calendars.icloud.com/published/2/AAAAAAAAAAAAAAAAAAAAAFbutCjdXySRCw5Is28AXJAOkvwdjZpKUNDPxLThA4YE-VmN8rM7Ux576y9UJZJTbtjhJvdQycddRjuOhmQHUuA",
  },
],
views: [
  {
	  name: "VIEW1",
	  mode: "month",
	  showWeeks: 0,
	  position: "bottom_bar",
	  title: "Family Schedule",
	  slotMaxHeight: "75px",
	  dateFormat: "M/D",
	  timeFormat:"h:mm A",
	  maxItems:100,
	  calendars: ["Family Calendar","Wild Hockey", "AHA Hockey"],
  },
],
scenes: [
  {
    name: "MAIN",
    views:["VIEW1"]
  },
],

},
`

There are two points to limit events being handled for performance.

maxItems of calendar configuration. It is limited to 100 by default. You can adjust the values in configuration. It is affected to calendar itself.
https://github.com/eouia/MMM-CalendarExt2/wiki/2b.-Configuration:Calendar#default-values-of-calendar

maxItems of view configuration. It is also limited to 100 by default. You can also adjust. It is affected to view itself.
https://github.com/eouia/MMM-CalendarExt2/wiki/2c.-Configuration:View#common

You can also control the range of the valid events with these values.
beforeDays: 60, // Default
afterDays: 365, // Default

It means the event which has the date from 2 month ago to 1 year later will be vaild to handle.
https://github.com/eouia/MMM-CalendarExt2/wiki/2b.-Configuration:Calendar#default-values-of-calendar

And for concurrent events; adjust maxIterations of calendar config. But It needs much memory and CPU power, so use it carefully.

Anyway, I think your issue could be solved by, set bigger maxItems of view configuration. Your maxItems of VIEW1 has limitation of 100, so some of events are missed. Set the value to 200 or 300 as your desire.

See the filetering and sorting section.
https://github.com/eouia/MMM-CalendarExt2/wiki/Filtering-and-Sorting

Ok thanks, that works!


Suggested approach for default grid when regridding (C3S approach)

clisops version: *
Python version: *
Operating System: *

Description
The C3S Team have provided the following suggestion on the default grid when regridding:

Ideally the default target grid would use an adaptive resolution based on the resolution of the input data, in the same way as the ct.geo.marke_regular service in the CDS Toolbox. The method can be summarised by the following code snippet, where xinc and yinc are the lon/lat resolution of the target grid:

    xsize = data[x].size

    ysize = data[y].size

    xfirst = data.lon.values.min()

    yfirst = data.lat.values.min()

    xlast = data.lon.values.max()

    ylast = data.lat.values.max()

    xinc = (xlast - xfirst) / (xsize - 1)

    yinc = (ylast - yfirst) / (ysize - 1)

From our discussion:

that method can be a special case of the grid_instructor (eg. when specifying an empty tuple), or of the grid_id (eg. "auto")
a check will be needed that tests if source and target grid are the same

This is already included since https://github.com/roocs/clisops/pull/243


Null pointer solved and text field removed

Null pointer solved in case there is no is_echo, removed text field it's already in the parent class

Looks good, thank you for the help!


Interactive learning enhancements.  Fixes #981

Proposed changes:

Fixes issue #981
NLU data learned through the interaction can now be stored in a separate markdown-format file
Previous NLU data is merged if it exists
The Policy used by Rasa Core now writes its confidence to the tracker upon action execution
Command line interface displays policy confidence alongside the action name

Status (please check what you already did):

[x] made PR ready for code review
[x] added some tests for the functionality
[x] updated the documentation
[x] updated the changelog

@MetcalfeTom can you resolve the merge conflicts before tom reviews it please?


code coloring issues

Basic informations

OS: [Windows]
VSCode version: Latest
Extension version: Latest

Further Information

To Reproduce
idk how it happened, I just opened working directory and edited some script files
Code to reproduce the behaviour

Expected behaviour

Error messages

Thank you for reporting.
Does this eventually go away?
What happens if you restart the server?

Thank you for reporting.
Does this eventually go away? What happens if you restart the server?

If I disable server, code coloring works again. restart server will not change anything

some log

[Error - 21:48:10] Request textDocument/documentSymbol failed.
Error: name must not be falsy
	at s.validate (c:\Users\skyor\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:103:16960)
	at new s (c:\Users\skyor\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:103:17255)
	at ye (c:\Users\skyor\.vscode\extensions\sarrus.sourcepawn-vscode-6.0.2-win32-x64\dist\spIndex.js:34:73456)
	at ye (c:\Users\skyor\.vscode\extensions\sarrus.sourcepawn-vscode-6.0.2-win32-x64\dist\spIndex.js:34:73637)
	at o (c:\Users\skyor\.vscode\extensions\sarrus.sourcepawn-vscode-6.0.2-win32-x64\dist\spIndex.js:34:48563)
	at Object.tj [as map] (c:\Users\skyor\.vscode\extensions\sarrus.sourcepawn-vscode-6.0.2-win32-x64\dist\spIndex.js:34:48649)
	at Object.wr [as asDocumentSymbols] (c:\Users\skyor\.vscode\extensions\sarrus.sourcepawn-vscode-6.0.2-win32-x64\dist\spIndex.js:34:73423)
	at c (c:\Users\skyor\.vscode\extensions\sarrus.sourcepawn-vscode-6.0.2-win32-x64\dist\spIndex.js:38:56041)
	at async s.provideDocumentSymbols (c:\Users\skyor\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:109:38034)

Thanks, can you send me the project you are working on so that I can reproduce please?

Thanks, can you send me the project you are working on so that I can reproduce please?

here is the working directory/code to reproduce this issue
sp.zip

Weird it does not happen for me... Can you try on v6.1.0? I fixed a lot of preprocessor stuff.

Moving the symbolRequest bug to #345.

Weird it does not happen for me... Can you try on v6.1.0? I fixed a lot of preprocessor stuff.

Strange, I'm using v6.1.0, I'll switch to a clean environment and retest it.

Can you try setting the logs to DEBUG as well?

Can you try setting the logs to DEBUG as well?

debug.txt

Ok two more things:

Your includesDirectories setting is empty, is it intentional?
Do "ctrl + shift + p" and type "debug pre sourcepawn". And send me the output please.

Ok two more things:

Your includesDirectories setting is empty, is it intentional?
Do "ctrl + shift + p" and type "debug pre sourcepawn". And send me the output please.

1: yes (nothing will change even if I set it)
2: unknown command debug pre sourcepawn

trace.txt

Sorry I mixed up the name:
https://github.com/Sarrus1/sourcepawn-vscode/blob/main/editors/code/package.json#L136
Should be "reveal preprocessed document"

Sorry I mixed up the name:
https://github.com/Sarrus1/sourcepawn-vscode/blob/main/editors/code/package.json#L136
Should be "reveal preprocessed document"

trace.txt

Thanks, can you also send a screenshot of your screen?
I think the command opens a panel on the right.
I need the two documents side by side please.
The output you sent me is encoded in utf-8 so the chinese characters are not properly rendered :/

Thanks, can you also send a screenshot of your screen? I think the command opens a panel on the right. I need the two documents side by side please.
The output you sent me is encoded in utf-8 so the chinese characters are not properly rendered :/

Ok so on the screenshot the coloring errors are because the macros are expanded and the servers "sees" the tokens that were expanded.
This I can fix.
But on the very first screenshot you sent, the highlighting errors are not on the same line as the macros, can you send a screenshot where there is a highlighting error on a line that does not have a macro please?

It seems that code highlight issues only occur after macros

Ok this was probably fixed in 0.12.0 of the LSP, with either the deadlock fix or the preprocessor fix.
I am closing this issue, but if the bug reappears on a line that does not have a macro, please feel free to reopen this issue.
I am tracking the macro line highlight issue in #333.

Thank you for your hard work. By the way, I'd like to offer some support, but buymeacoffee cannot be used in China (:

Thanks! I have a paypal as well<EMAIL_ADDRESS>Glad you like the extension!

Thanks!


hard to find runtime error location

Just as the picture shows. It's really hard to find out where the error located, especially when code base is very large. There is no stack trace associated with your code.
Anyone knows any solution?

@narychen Check your page carefully or post it here, probably you forgot some space or something to wrap inside

@narychen - agreed, this is difficult to follow, we should try to get better traces here

@facebook-github-bot stack-overflow


[FLINK-23499][Runtime][Configuration]Eliminate the influence of scheme on splitting paths

What is the purpose of the change
ConfigurationUtils#splitPaths can split a path that contains a scheme (e.g., file:///tmp) into 2 paths, because : is commonly used as File.pathSeparator, it will result in a unexpected output, so we need to fix it
Brief change log

use new split character

Verifying this change
This change is covered by the new tests, ConfigurationUtilsTest.testSplitPaths()
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializers: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn/Mesos, ZooKeeper: yes
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? no
If yes, how is the feature documented? no

@zentol @wuchong  hi, please have a look :)

@flinkbot run azure

@flinkbot run azure


the sample function does not compile without explicit ref to Newtonsoft.Json package

The provided C# script file misses at the beginning the usage of the Newtonsoft.Json package:
#r "Newtonsoft.Json"
The function does not compile without it.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 915c7aa9-0969-912b-bbc4-a2b0bf9b1533
Version Independent ID: 6a97a5e8-8397-be98-5528-70d20e8fbed8
Content: Use Azure Functions to create custom branch policies - Azure Repos
Content Source: docs/repos/git/create-pr-status-server-with-azure-functions.md
Product: devops
Technology: devops-code-git
GitHub Login: @apawast
Microsoft Alias: yohasna

Thank you for letting us know! I will add that.


Add Jupyter@HPC everywhere section

I am not entirely sure where to include this in the main document. The basic workflow and philosophy should be described in an additional results section, I guess. This part is, however, only meant to enable the comprehensive discussion of strengths and weaknesses of the JSC solution, so there should not be to much detail. At the moment, I think, the operator perspective should find its way into the document with the discussion section only.

I'd put this on the same level as the Jupyter@JSC and the DKRZ section.

Currently, this mixes user and operator perspective (and is even a little bit more on the operator side). For the results section, it would be good to focus mainly on the user perspective here, and mention the advantages/disadvantages in comparison to the JSC solution both from a user and operator perspective in the discussion section only. We could, however, merge this for now.
It might make sense to decide what aspects exactly should be moved only after having read the whole document draft.

I'm in favour of merging and then polishing / moving around as we have a more complete main document.


Add DataBinding; start testing code that uses PerAccountStoreWidget

This implements #30 with an architecture modeled on Flutter's own "binding" concept, along the lines anticipated in the issue's description.
Along the way we add tests for GlobalStoreWidget and PerAccountStoreWidget, including a test for the slightly tricky — and important for a smooth UX — "zero-frame loading" optimization that PerAccountStoreWidget has. Then we add the tests we've wanted for RealmContentNetworkImage, a widget that consumes data from PerAccountStoreWidget, demonstrating that such code is now testable and completing #30.
The setup code required in individual tests still feels a bit unwieldy, and I think it's likely we'll either tweak it in the future or add convenience abstractions on top of it. But the time for that is after we have a few more examples — at this point we really just have the one example (testing RealmContentNetworkImage), because I think the tests for GlobalStoreWidget and PerAccountStoreWidget will probably not fit the same abstractions that would be most convenient for typical application code that consumes a PerAccountStoreWidget.
Fixes: #30

Thanks for the review! Replied to the question above, and merged with the fix from the other comment.


Palladium Fantasy 2E, css padding adjustments

Submission Checklist
Required

[ ] The pull request title clearly contains the name of the sheet I am editing.
[ ] The pull request title clearly states the type of change I am submitting (New Sheet/New Feature/Bugfix/etc.).
[ ] The pull request makes changes to files in only one sub-folder.
[ ] The pull request does not contain changes to any json files in the translations folder (translation.json is permitted)

New Sheet Details

The name of this game is: <   >  (i.e. Dungeons & Dragons 5th Edition, The Dresden Files RPG)

The publisher of this game is: <   > (i.e. Wizards of the Coast, Evil Hat)

The name of this game system/family is: <   > (i.e. Dungeons & Dragons, FATE)

[ ] I have followed the Character Sheets Standards when building this sheet.

[ ] This sheet has been made on behalf of, or by, the game's publisher.
[ ] This game is not a traditionally published game, but a copy of the game rules can be purchased/downloaded/found at: <   >
[ ] This sheet is for an unofficial fan game, modification to an existing game, or a homebrew system.

Changes / Description
Removed extra padding from around the sheet to remove the white border in dark mode.
Fixed a couple class names to bring some internal left padding back to the sheet.

Character Sheet Info Roll20 Internal Use only.


Support GitHub markdown syntax for adminitions

GitHub has finished it's beta of markdown admonitions, and settled on a new syntax.
It would be great if we could pre-process the markdown to switch these out with our admonition syntax, so that people can write admonitions that work both on github.com and the nf-core website.
Syntax:

[!NOTE]
Highlights information that users should take into account, even when skimming.

> [!NOTE]
> Highlights information that users should take into account, even when skimming.

[!IMPORTANT]
Crucial information necessary for users to succeed.

> [!IMPORTANT]
> Crucial information necessary for users to succeed.

[!WARNING]
Critical content demanding immediate user attention due to potential risks.

> [!WARNING]
> Critical content demanding immediate user attention due to potential risks.

Ugly, multiline way:
content = content.replace(/>\s\*\*/, '');
content = content.replace(/\w+/, match => {
return match.toLowerCase();
});
content = content.replace(/\*\*/, '');
content = ':::' + content;
content = content.replace(/>\s/, '');
content = content + '\n:::';
We will try to find a prettier way, by searching for blockquotes, removing the ">" and then adding the admonition.

Possible improvement, but could be further improved: https://github.com/nf-core/website/pull/2048


[FLINK-8271][Kinesis connector] upgrade from deprecated classes to AmazonKinesis

What is the purpose of the change
Many methods/constructors AmazonKinesisClient has been deprecated by Amazon. Upgrade to AmazonKinesis with latest supported methods
Brief change log
Upgrade to AmazonKinesis with latest supported methods
Verifying this change
This change is already covered by existing tests
Does this pull request potentially affect one of the following parts:
Documentation
none

Please also keep in mind that it would be a good contribution practice to have meaningful commit messages in PR submissions.
Ideally, they should be as you would like them to be when they are merged.

A good point for testing this in cluster mode. I don't have a 1.5 cluser so only tested in local mode. The upgrade is unnecessary, I'll revert it.
Which commit message in PR submission are you referring to? The "What is the purpose of the change ..." part, or the one for each commit?

@bowenli86 I mean't the actual commit messages, not the PR title / description.
The actual commit messages should follow our standard commit message formats.

Without the SDK upgrade, the API actually isn't yet deprecated yet, right?
It is only deprecated in a newer SDK version.
If so, I would prefer to not merge this until we actually try to upgrade the AWS Java SDK version. Then, this change would be more context relevant.

No, those classes have been deprecated in AWS SDK 1.11.171.

Ah, I see. The AmazonKinesisClient class is not deprecated, but the constructors are.
Alright, thanks for the clarification. I'll find some time to revisit this PR tomorrow.

You are right. Thank you, Gordon. I updated the PR title


Calling godot::String::ascii() or utf8() causes memory corruption if the string originated from GDScript.

Godot version:
3.2-stable. Also tried with 3.2 built locally (23b553ba06)
OS/device including version:
Windows 10
Issue description:
Passing a String into a GDNative c++ plugin and then simply calling ascii() on it and doing nothing else seems to cause some kind of memory corruption (WinDbg will catch it https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-download-tools).
Steps to reproduce:
gdscript
var s = "test"

widget.test(s)

c++
class Widget: public godot::Node
{
	GODOT_CLASS(Widget, godot::Node);

public:

	static void _register_methods();
	void _init();

	// etc etc...

	void test(godot::String s)
	{
		s.ascii(); // Causes memory corruption (in CharString destructor?)
	}
};

utf8() has the same problem. Also happens if the string belongs to a godot::Dictionary. If the string was instantiated from GDNative then these functions seem fine.
The fun of this is that godot will probably crash somewhere completely unrelated, or might not crash at all. Running through WinDbg seems to catch the problem early but the stack trace it gives you will vary depending on what your project is doing and which build of Godot you use.
Example stack trace from WinDbg:

The few clues I picked up during my hair-pulling hell day lead me to think the problem lies somewhere in the CharString destructor but I've now found a workaround so I officially don't care.
Workarounds:

Call to_ascii() in GDScript and pass in a PoolByteArray instead. Then convert it back to a string in GDNative.
Or write your own std::string to_ascii(String s)

It's probably GDNative C++ wrapper bug (something similar to the reason for TO_WCSTR in the #40999, CharString get freed before returning?).
With #40999, there are tests for String and GDNative C ascii and utf8, all passing, but these function were not  changed much, and most likely were OK before.

Is this still an issue in 3.5?

Probably yes, since the godot-cpp String implementation has not changed in any meaningful way since early 2021.

To be honest godot-cpp's CharString class is extremely poorly designed and error prone. I never actually looked at it properly before but I'm looking at it now and it is easy to see the problems.
String.hpp
class CharString {
	friend class String;

	godot_char_string _char_string;

public:
	~CharString();

	int length() const;
	const char *get_data() const;
};

...

class String {

...

CharString utf8() const;
CharString ascii(bool p_extended = false) const;

...

};

String.cpp
godot::CharString::~CharString() {
	godot::api->godot_char_string_destroy(&_char_string);
}

int godot::CharString::length() const {
	return godot::api->godot_char_string_length(&_char_string);
}

const char *godot::CharString::get_data() const {
	return godot::api->godot_char_string_get_data(&_char_string);
}

As you can see utf8() and ascii() return a CharString object by value. If you take a copy of that object you will get a double-free. If you call get_data() and pass the result to a function inline, e.g. foobar(string.ascii().get_data()) then you will get a use-after-free bug. This is probably the source of the reported problems.

I'm honestly a little shocked that so far the developers haven't considered this a showstopper. If you ask me, "If you call this public API function, your code will crash" should stop any release dead in its tracks.

+1 on this being extremely important to fix.
utf8().to_data() is an extremely common call when developing GDNative or iOS plugins, and some puzzling iOS crashes i have experienced in the past only made sense to me now, months later, as i encountered a more easily traceable occurrence of this and came across this issue.
If anyone else is dealing with this in iOS plugins, where the alloc_c_string method noted by @colugomusic above does not appear in the provided headers, take a look at the implementation of that method here (godot-cpp -> src/core/String.cpp) in order to replicate it in your environment. This does indeed appear to work around the problem from what i can tell.

To be honest godot-cpp's CharString class is extremely poorly designed and error prone. I never actually looked at it properly before but I'm looking at it now and it is easy to see the problems.
String.hpp
class CharString {
	friend class String;

	godot_char_string _char_string;

public:
	~CharString();

	int length() const;
	const char *get_data() const;
};

...

class String {

...

CharString utf8() const;
CharString ascii(bool p_extended = false) const;

...

};

String.cpp
godot::CharString::~CharString() {
	godot::api->godot_char_string_destroy(&_char_string);
}

int godot::CharString::length() const {
	return godot::api->godot_char_string_length(&_char_string);
}

const char *godot::CharString::get_data() const {
	return godot::api->godot_char_string_get_data(&_char_string);
}

As you can see utf8() and ascii() return a CharString object by value. If you take a copy of that object you will get a double-free. If you call get_data() and pass the result to a function inline, e.g. foobar(string.ascii().get_data()) then you will get a use-after-free bug. This is probably the source of the reported problems.

hey do you maybe know how to pull this of in godot 4 gdextension?

@colugomusic

To be honest godot-cpp's CharString class is extremely poorly designed and error prone. I never actually looked at it properly before but I'm looking at it now and it is easy to see the problems.
String.hpp
class CharString {
	friend class String;

	godot_char_string _char_string;

public:
	~CharString();

	int length() const;
	const char *get_data() const;
};

...

class String {

...

CharString utf8() const;
CharString ascii(bool p_extended = false) const;

...

};

String.cpp
godot::CharString::~CharString() {
	godot::api->godot_char_string_destroy(&_char_string);
}

int godot::CharString::length() const {
	return godot::api->godot_char_string_length(&_char_string);
}

const char *godot::CharString::get_data() const {
	return godot::api->godot_char_string_get_data(&_char_string);
}

As you can see utf8() and ascii() return a CharString object by value. If you take a copy of that object you will get a double-free. If you call get_data() and pass the result to a function inline, e.g. foobar(string.ascii().get_data()) then you will get a use-after-free bug. This is probably the source of the reported problems.

hey do you maybe know how to pull this of in godot 4 gdextension?


Apollo r5.5.0 docker内编译出错

Ubuntu20.04
Apollo r5.5.0 docker内编译出错
ERROR: (08-24 04:11:03.913) /apollo/modules/planning/scenarios/traffic_light/protected/BUILD:42:1: C++ compilation of rule '//modules/planning/scenarios/traffic_light/protected:stage_approach_test' failed (Exit 1).

ERROR: (08-24 04:14:55.421) /apollo/modules/planning/scenarios/traffic_light/protected/BUILD:31:1: C++ compilation of rule '//modules/planning/scenarios/traffic_light/protected:traffic_light_protected_scenario_test' failed (Exit 1).

seems to be a test:
you could comment the following out and try again.
cc_test(
name = "traffic_light_protected_scenario_test",
size = "small",
srcs = ["traffic_light_protected_scenario_test.cc"],
data = ["//modules/planning:planning_conf"],
deps = [
":traffic_light_protected_scenario",
"@gtest//:main",
],
)
cc_test(
name = "stage_approach_test",
size = "small",
srcs = ["stage_approach_test.cc"],
data = [
"//modules/planning:planning_conf",
],
deps = [
":traffic_light_protected_scenario",
"@gtest//:main",
],
)

Closed due to inactivity. If the problem persists, pls feel free to reopen it or create a new one and refer to it.


[FEATURE] Adding the ability to use qdrant => Payloads => metadata on points in order to leverage metadata based filtering

What
Qdrant offers the ability to add metadata (aka "payloads" in qdrant speek) to every vector (point). It then supports filtering in addition to brute force semantic search on top of that metadata. The columns in knowledge table make for great payload keys and the entities found for great payload values for these said keys.
See https://qdrant.tech/articles/vector-search-filtering/ for more background and a more detailed explanation / examples.
Why
This would allow the user to extend the usage of knowledge table to other use cases where the resulting entities extracted could be leveraged much more widely than "just" via downloads or triples export.
Implementation guidance
See below suggestion on current vs. extended structure of the points => as per my currently only half baked inner workings (as I can't add columns successfully):
Current Point Structure in Qdrant Collection
{
["key": "id", "value": "0ed7c789-9b9b-4379-82df-41ccc0418958"],
["key": "text", "value": "Poland 6 months ✔ ✔ ✔ ✔ ✔ no samples needed for registration Portugal 1 month ✔ ✔ ✔ ✔no samples needed for registration, but we need 3 monts before launch for client presentation Rumania no registration needed Slovakia 9 months ✔ ✔ ✔ ✔ ✔ ✔1 bag per product group (lady, men, basic) Finished products Slovenia 4 months (16 weeks) ✔ ✔ ✔ ✔ ✔ ✔ ✔ Spain 1 month ✔ ✔ ✔ ✔ no samples needed for registration Sweden no registration needed ✔ ✔ ✔ ✔Confirmation Country+B9:T47Registration / Submission Lead Time"],
["key": "page_number", "value": "10"],
["key": "chunk_number", "value": "46"],
["key": "document_id", "value": "553ed3148f144fb7815ae20836036620"],
}

Future Point Structure in Qdrant Collection (assuming Column 1 = country and Column 2 = lead_time)
{
["key": "id", "value": "0ed7c789-9b9b-4379-82df-41ccc0418958"],
["key": "text", "value": "Poland 6 months ✔ ✔ ✔ ✔ ✔ no samples needed for registration Portugal 1 month ✔ ✔ ✔ ✔no samples needed for registration, but we need 3 monts before launch for client presentation Rumania no registration needed Slovakia 9 months ✔ ✔ ✔ ✔ ✔ ✔1 bag per product group (lady, men, basic) Finished products Slovenia 4 months (16 weeks) ✔ ✔ ✔ ✔ ✔ ✔ ✔ Spain 1 month ✔ ✔ ✔ ✔ no samples needed for registration Sweden no registration needed ✔ ✔ ✔ ✔Confirmation Country+B9:T47Registration / Submission Lead Time"],
["key": "page_number", "value": "10"],
["key": "chunk_number", "value": "46"],
["key": "document_id", "value": "553ed3148f144fb7815ae20836036620"],
["key": "payload", "value": "
    {
    ["key": "country", "value": "["Poland", "Portugal", "Rumania", "Slovakia", "Slovenia", "Spain", "Sweden"]"],
    ["key": "lead_time", "value": "["6 months", "1 month", "", "9 months", "4 months", "1 month", ""]"]
    }
    "],
}

Hey @tomsmoker. How would nested data like your example be added when using Knowledge table?
Currently, the structure is
https://github.com/whyhow-ai/knowledge-table/blob/cf359738c9641ac33288e3241cba56a364ccbafc/backend/src/app/services/vector_db/base.py#L113C1-L120C14


Any chance to expand support to Minitest?

It'd be great if this gem would also work with Minitest as opposed only to Rspec.
I'd be willing to help with this , but I'd need to understand a little more clearly how this gem interacts with (or conflicts with) the shoulda-matchers gem (especially the should method). (E.g. where is should defined? How does the test suite know that should is supposed to work with the ActiveModelSerializersMatchers class as opposed to some class in the domain of Shoulda::Matchers (in the case that one is using both gems)?)
Thanks for any help or guidance you can provide.

Hey @jayqui! Thanks for your interest!
The should in the readme is the one-liner syntax supported by RSpec Core so this gem has no dependencies or collisions with shoulda-matchers.
The entry point to this gem is through the #have_one and #have_many methods, which returns a matcher. RSpec will basically call #matches? and pass in the subject and will using the #failure_message if it doesn't pass. So for Minitest, here's a possible implementation:
def test_menu_serializer
  subject = MenuSerializer
  matcher = ActiveModelSerializersMatchers::AssociationMatcher.
    new(:entrees, :has_many).as(:dishes).serialized_with(FoodSerializer)
  assert matcher.matches?(subject), matcher.failure_message
end

Of course, we could probably figure out a cleaner interface. I hope this helps. I would love to see an extension to this gem for Minitest. Hope this helps!


https server

Is your feature request related to a problem? Please describe.
Is it possible to run a https in dev mode? I've got it working with nuxt
server: {
    https: {
      key: fs.readFileSync(path.resolve(__dirname, 'localhost.key')),
      cert: fs.readFileSync(path.resolve(__dirname, 'localhost.crt'))
    }
  },

and on a browser it works. but when tauri creates the webview window I get
Error performing TLS handshake: An unexpected TLS packet was received.
do I need to do some proxy magic?

I am having the same issue too. Trying to load Google Analytics complains with a -
Failed to load resource: The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.
Did you find a solution for this?

https://github.com/tauri-apps/tauri/issues/1034#issuecomment-727261521 Are you specifically running a https server locally? if not you could try load google analytics without the protocol "http" "https" https://www.html5rocks.com/en/tutorials/speed/script-loading/
Just remove the http: and leave the //...

I was using Google Analytics vis Firebase with firebase.analytics() so I had no control of the URL.
I have switched to normal Google Analytics to resolve this and it is working now with https forced.

In development, a localhost server is used which is considered a secure context even with just http, so that should be fine. With a built app, the next version of Tauri will use a custom protocol loader that is also a secure context, so an https server shouldn't be necessary. If someone finds a scenario where it is, then let me know and I'll reopen this.

axios , http url
then,
I got:
[Error] Failed to load resource: The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.

@mxismean - your comment is not relevant to the discussion, since you are trying to send a request to a remote server that does not use any encryption. See my comment on your other issue.


Modernize the CF Genesis Kit

This commit modernizes the Cloud Foundry Genesis Kit so that it
handles things a bit more ergonomically, using new features available
as of Genesis 2.6.0 and above.
This has been vetted manually in both vSphere and GCP environments.

Manual provided, @Proplex


PMID:15772152 final

name: protein mislocalized  to the  side of the cell during vegetative growth
proposed def:
A cell phenotype observed in the vegetative growth phase of the life cycle in which a protein that is not normally found at the cell cortex of the long axis of the cell is observed there."
normal protein localization to cytoplasmic microtubule tip (plus end)
A cell phenotype observed in the vegetative growth phase of the life cycle in which the localization of a protein to the cytoplasmic microtubule plus end is normal (i.e. indistinguishable from wild type)."
reduced number of astral microtubules
A cell phenotype observed in the vegetative growth phase of the life cycle in which a cell contains fewer astral microtubules than normal.
reduced number of cytoplasmic microtubules nucleated from equatorial microtubule organizing center
A cell phenotype observed in the vegetative growth phase of the life cycle in which a cell contains fewer cytoplasmic microtubules nucleated from equatorial microtubule organizing center
that's it!  yay

protein mislocalized to lateral cell cortex FYPO:0004730
normal protein localization to cytoplasmic microtubule plus-end FYPO:0004731
astral microtubules present in decreased numbers FYPO:0004732
cytoplasmic microtubules nucleated from equatorial microtubule organizing center present in decreased numbers FYPO:0004733
various synonyms included

edit file: e78131ae9f80d87fc081f0db57734c7aa001fec8
release: 812c9c7c3fd5bdfc78999933ff1a79bc9634fc7c