4-Way-Cassette closes vanes during operation

This is a very interesting bug which happened three times since we added vane control (but might be unrelated to the feature itself).
What happens
During operation - I suspect it happens during defrost cycles and maybe also during oil-return cycles the cassette seems to lose track of its vane positions.
During defrost cycles, the vanes are shut for cold-draft prevention.
After returning to operation, the vanes either keep shut or open and shut again.
This is the unit operating (obv. without much effect):

Notes:

ThinQ allows to control positions, but at fixed intervals (ESP32 send interval) it closes them again
It doesn't find the correct vane positions and pushes against the endstop longer than expected, before stopping at arbitrary positions
Swing mode works neither in ThinkQ nor ESP32
Turning the indoor unit off and on again seems to fix the issues
Manually opening the vanes by hand fixes it until the unit tries to reposition the vanes (cold draft for example)
I had a similar incident last year, when I tried to operate the cassette without PREMTB001 connected.
Back then I used just the stock universal LG remote and the WIFI module.
After installing PREMTB001, this has not occured again for over a year.

A wild guess is that this that the cassette has a firmware bug which is mitigated by wired controllers.
I have the feeling but no proof that with the PREMTB001 connected, the cassette was moving the vanes from endstop to endstop regularly even outside of regular cold-draft cycles.
I'm continuing to monitor the behaviour with a camera to catch the exact moment the vanes shut.
Log

At 15:58:xx I made to adjustments to a single vane while observing the unit.
Between 16:59:52 and 17:03:18, defrost was active
At 17:19:xx I came back (because the room cooled down despite operation) and noticed all vanes were shut
I tried numerous times with the ESP32 and ThinQ to open the vanes again, in the end they stayed shut and I opened them by hand.

Logfile: https://gist.github.com/florianbrede-ayet/ac5afb42ddf7c0b21f0365854c11abba

On my mini-splits I've never seen this. Furthermore, the vanes are in the upmost (but not closed) position during the de-icing.

On my mini-splits I've never seen this. Furthermore, the vanes are in the upmost (but not closed) position during the de-icing.

Same here.
It's still easy for me to connect my PREMTB001 to the laptop and send your cassette's C9/CA/CB messages, to see what messages the controller sends over time. Let me know if that's useful.

On my mini-splits I've never seen this. Furthermore, the vanes are in the upmost (but not closed) position during the de-icing.

Same here.
It's still easy for me to connect my PREMTB001 to the laptop and send your cassette's C9/CA/CB messages, to see what messages the controller sends over time. Let me know if that's useful.

Thanks, I will monitor it for a few more days and will send you the communication procotol if it happens again.
I've also only experienced it with the cassette.

I've monitored this for a while now and it happens frequently.
When unlucky, even a power cycle of the entire unit doesn't help.
I've now reconnected the PREMTB001 and put the ESP32 in listening only.
When doing that, I noticed something interesting.
PREMTB001 is sending AC frequently as you mentioned in protocol.md, however, for me the message seems to change based on the thermistor setting:
TH controller: AC.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>
TH unit      : AC.<IP_ADDRESS>.<IP_ADDRESS>.00.00.00.F9

Do you think it's possible that the AC byte 7 instructs the indoor unit to change its cold-draft prevention mode?
If I used the controller thermistor and the indoor unit would close the vanes for cold-draft prevention until TH heated up sufficiently it would probably never open its vanes based on the controller temperature.
Anyway, I still have to run this for a while, switch the TH setting around a bit and see if the cassette operates normally with PREMTB001.
 Does that match what you're seeing?
I even implemented this a while ago to see if it would make the unit send CC messages back, but with my units it didn't do anything as far as I could tell.

It would be interesting to catch this type of defrost with the LG controller. I wonder if it's sending/receiving something different at that point.

Oh I just noticed in your log file in the first message that your unit sends CC and CF messages. Does that happen regularly? Does the controller ever send AF messages?

You're right about AC, it's sent with 80 directly after a thermistor change (but not after sending AA for a vane update), otherwise it stays "empty":
[15:57:57][D][lg-controller:440]: received A<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.5B (13)
[15:58:09][D][lg-controller:440]: received A<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.5B (13)
[15:58:15][D][lg-controller:440]: received AC.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS> (13)
[15:58:15][D][lg-controller:440]: received AC.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS> (13)
[15:58:21][D][lg-controller:440]: received A<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.58 (13)
[15:58:21][D][lg-controller:440]: received A<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.58 (13)
[15:58:21][D][lg-controller:440]: received AC.<IP_ADDRESS>.<IP_ADDRESS>.00.00.00.F9 (13)
[15:58:21][D][lg-controller:440]: received AC.<IP_ADDRESS>.<IP_ADDRESS>.00.00.00.F9 (13)
[15:58:39][D][lg-controller:440]: received A<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.58 (13)
[15:58:39][D][lg-controller:440]: received A<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.58 (13)
[15:58:45][D][lg-controller:440]: received AC.<IP_ADDRESS>.<IP_ADDRESS>.00.00.00.F9 (13)
[15:58:45][D][lg-controller:440]: received AC.<IP_ADDRESS>.<IP_ADDRESS>.00.00.00.F9 (13)

Also, both of my units are sending CC and CF messages.
For the Artcool, the messages are pretty empty, while the Cassette messages are rather interesting, especially CC bytes 6,7,9.
This is the communication between PREMTB001 and the cassette in heating mode including an oil return at 15:18:45):
https://gist.github.com/florianbrede-ayet/5cdbc84391b5a4db212f6aa10e030051
PREMTB001 does not send AF messages.

On a side note, do you have any idea why PREMTB is sending byte 10 80 in the handshake:
[16:45:21][D][lg-controller:440]: received A<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.9B (13)

Log when connecting the controller to the running cassette:
https://gist.github.com/florianbrede-ayet/afa20eab13d2904170f0d4a6968bfc1e

Also, both of my units are sending CC and CF messages.

Interesting. During normal operation my units only send C8 messages (and CA when I change settings).
I thought CC was a message type that's only used by older or single split units but apparently that's not true. I think it's mainly used to report information like power consumption, filter time, etc. Maybe that's why the controller just sends zeros for the most part.
Your cassette also sends a lot of CE messages. I guess they're using that second byte as extra message type because they didn't have more message types available. The message format is pretty weird.

On a side note, do you have any idea why PREMTB is sending byte 10 80 in the handshake:

I don't know. I've seen my PREMTB001 do this too and I've tried setting this bit myself, but the unit just clears it. It could be some kind of "we're initializing" state, but I'm not sure because there's already another flag for that (to request the settings). Maybe we should set this byte too to match the LG controller as much as possible.

@florianbrede-ayet I think I've noticed something a little similar with the thermistors: if indoor unit A is heating and indoor unit B is in pre-heating mode (because it reached its target temperature), then when using the internal thermistor, unit B will turn on its fan a little bit sometimes. I think to help spread the heat (because the unit also heats up a bit with a multi split). With the external thermistor I haven't seen this yet.
What's nice about the LG multi split units is that you can put one indoor unit in Heating mode and another on Fan and it will still be heating the room but using less power than when both units are set to heating. I created some automations in HA to put the bedroom unit in Fan mode when the outdoor unit turns on and the living room unit is in heating mode (and turn off when the outdoor unit turns off and it's in fan mode).

What's nice about the LG multi split units is that you can put one indoor unit in Heating mode and another on Fan and it will still be heating the room but using less power than when both units are set to heating.

I like how you're calling this a feature, I spent over a year trying to figure out why the Multi F would open powered-off unit EEVs slightly in heating mode :laughing:.
But I've given up on that, I guess it's intentional because of pressure or capacity constraints - and it doesn't happen in cooling mode (where condensation might form).

I spent over a year trying to figure out why the Multi F would open powered-off unit EEVs slightly in heating mode 😆. But I've given up on that, I guess it's intentional because of pressure or capacity constraints - and it doesn't happen in cooling mode (where condensation might form).

Yes and some other brands are similar. I've heard the Heating + Fan trick also works with MHI multi-split units.

The thermistor setting affecting this seems reasonable, but it's weird that you also saw the issue last year without any wired controller attached? Or is 2TH the default even then?

Just remembered that the Cassette always sends its unit thermistor temp.: C<IP_ADDRESS>.<IP_ADDRESS>F.<IP_ADDRESS>.55.
What if in Controller mode, the unit needs a signal or its own temperature back in a different message to know when to open the vanes?

Interesting idea but so far we haven't seen anything like this in the PREMTB logs? If you have a list of messages I should try sending to the controller let me know.

I'm a bit out of ideas.

ESP32: 2TH also doesn't work
ESP32: Unit works fine
The indoor unit closes its vanes and refuses operation, if no A8 messages are received for about 240 seconds
The indoor unit cannot be operated over WIFI or IR if no wired remote is connected

I now have a log of the ESP32 and PREMTB001 both in TH:Controller and compared them.
I hoped to find something significant, but the only difference I could spot are slight timing differences in the A8 messages (no other messages than the standard AC were sent from PREMTB001 during the defrost):
https://gist.github.com/florianbrede-ayet/e7308ad8e5b6515430dc70d79d1a44be

I now have a log of the ESP32 and PREMTB001 both in TH:Controller and compared them. I hoped to find something significant, but the only difference I could spot are slight timing differences in the A8 messages (no other messages than the standard AC were sent from PREMTB001 during the defrost): https://gist.github.com/florianbrede-ayet/e7308ad8e5b6515430dc70d79d1a44be

Do you know why the PREMTB is sending a room temperature byte value of 0 which is <= 10 degrees (assuming that value is valid)? Was it very cold where the controller is? Seeing a value of 0 seems a bit suspicious.
A<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.E6
                     ^^

Do you know why the PREMTB is sending a room temperature byte value of 0 which is <= 10 degrees (assuming that value is valid)?

Yes the controller is in the attic at an ambient temperature of ~0°C, so that's correct.
The last thing I'm verifying now is if I can repeatedly switch the controllers without power cycling and get them to work / to fail.
By restricting the ESP32 to A8 and AC, I could prove that the only difference lies in these two messages (plus the handshake A8) or their timing.

Did you already change the handshake A8 to set that extra bit in byte 10 (I think) during initialization?

Did you already change the handshake A8 to set that extra bit in byte 10 (I think) during initialization?

Haven't tried that yet.
However, currently the ESP32 is going strong after over 6 defrosts - so it seems to be working now.
What I did:
1.) Run unit with PREMTB001 and ESP32 in "Listen Only" mode
2.) Remove PREMTB001
3.) Wait 4 minutes until the unit shuts off
4.) Flash the standard ESP32 firmware but skip the initial AA and AB and make sure to only send A8 and CC messages
5.) Unit resumed automatically after receiving A8 messages
I thought I had this procedure covered already, but I might have made a mistake previously.
I also changed thermistor to Controller while testing, switched fan speeds and temperature - all worked fine.
The prize question will be whether AA or AB breaks it.

I think I have to give up on debugging the issue.
It's easily reproducible by just closing the bedroom door (resulting in room temperature increase), but I cannot figure out the conditions. I'm quite certain though that it is related to the pre-post defrost unit thermistor temperature.
I will build optional workarounds for my two issues:

Vane Fix: After defrost, monitor the CC message temperature. If it rises > 2°C above the pre-defrost temperature, send 3x A8 with internal thermistor + "high" setpoint. This always triggers the unit to reopen the vanes.
Cassette reduces fan speed and cannot reach setpoint: This will impact ThinQ if connected, but I'm planning to reduce the room temperature sent in A8 artifically to stay at least 2°C below the setpoint. When approaching it, increase the reported temperature smoothly towards the real value.
(This "bug" exists on PREMTB as well and is independent from overheat setting and ceiling height)

My final logs for two vane failures, each triggered by closing the room doors. The second incident was surprisingly fast and at low room temperature.

FAILED:

# last C8 before defrost (th unit: 25.5°C)
[09:30:30][D][lg-controller:725]: received C<IP_ADDRESS>.<IP_ADDRESS>F.<IP_ADDRESS>.44 (13)

# last CC & CF before defrost
[09:30:30][D][lg-controller:725]: received CC.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS> (13)
[09:30:30][D][lg-controller:725]: received CF.<IP_ADDRESS>.<IP_ADDRESS>.00.00.00.BD (13)

# first C8 after defrost
[09:42:06][D][lg-controller:725]: received C<IP_ADDRESS>.<IP_ADDRESS>A.<IP_ADDRESS>.59 (13)

# first CC & CF after defrost
[09:43:12][D][lg-controller:725]: received CC.<IP_ADDRESS>.<IP_ADDRESS>.2E.00.00.10 (13)
[09:43:12][D][lg-controller:725]: received CF.00.00.03.F<IP_ADDRESS>.<IP_ADDRESS>.5A (13)

# last C8 before vane opening (th unit: 29.5°C)
[11:26:06][D][lg-controller:725]: received C<IP_ADDRESS>.40.04.14.A<IP_ADDRESS>.00.4C (13)

-----
WORKED:

# last C8 before defrost (th unit: 22.5°C)
[12:41:48][D][lg-controller:725]: received C<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.5E (13)

# last CC & CF before defrost
[12:41:48][D][lg-controller:725]: received CC.<IP_ADDRESS>.<IP_ADDRESS>.2D.00.00.32 (13)
[12:41:48][D][lg-controller:725]: received CF.00.00.03.F5.00.03.F<IP_ADDRESS>.00.EA (13)

# first C8 after defrost
[12:47:30][D][lg-controller:725]: received C<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.53 (13)

# first CC & CF after defrost
[12:48:36][D][lg-controller:725]: received CC.<IP_ADDRESS>.<IP_ADDRESS>.2C.00.00.15 (13)
[12:48:36][D][lg-controller:725]: received CF.00.00.02.F6.00.02.F<IP_ADDRESS>.00.EA (13)

# last C8 before vane opening (th unit: 26.5°C)
[12:52:00][D][lg-controller:725]: received C<IP_ADDRESS>.40.04.14.A<IP_ADDRESS>.00.46 (13)

-----
FAILED:

# last C8 before defrost (th unit: 25.5°C)
[17:22:05][D][lg-controller:725]: received C<IP_ADDRESS>.<IP_ADDRESS>F.<IP_ADDRESS>.44 (13)

# last CC & CF before defrost
[17:22:05][D][lg-controller:725]: received CC.3C.<IP_ADDRESS>.<IP_ADDRESS>.00.00.17 (13)
[17:22:11][D][lg-controller:725]: received CF.<IP_ADDRESS>.00.08.9F.<IP_ADDRESS>.B0 (13)

# first C8 after defrost
[17:30:47][D][lg-controller:725]: received C<IP_ADDRESS>.<IP_ADDRESS>A.<IP_ADDRESS>.59 (13)

# first CC & CF after defrost
[17:31:53][D][lg-controller:725]: received CC.3C.<IP_ADDRESS>.<IP_ADDRESS>F.00.00.6B (13)
[17:31:59][D][lg-controller:725]: received CF.<IP_ADDRESS>C.00.03.1C.<IP_ADDRESS>.58 (13)

# last C8 before vane opening (th unit: 31°C)
[18:23:23][D][lg-controller:725]: received C<IP_ADDRESS>.40.04.14.AA.<IP_ADDRESS>.49 (13)

For the fan speed / setpoint issue, have you tried using a temperature offset, so a higher value for both sensor and setpoint?
I wonder if it lowers the fan speed to prevent blowing cold air when it's not requesting enough heat.

One of the last things I'm trying to figure out is bytes 6 and 7 of the AC/CC message. I can get the PREMTB100 to send non-zero values for these if I set it to dual setpoint with some other changes.
These bytes seem to be setpoint (byte 7) and some kind of upper bound for heating (byte 6). Byte 7 also has the high bit set if there's a change in settings. I think the max temperature value in byte 6 is used for dual setpoint auto mode when the room is unoccupied. I can change this value using the "Home Leave Set Temperature" setting.
So for example:
AC.00.C<IP_ADDRESS>.<IP_ADDRESS>A.35.00.D7
byte 6: 0x23 => 35 degrees C
byte 7: 0x14 => 20 degrees C setpoint

@florianbrede-ayet your unit often sends 11.11 for these bytes (= 17°C) which is similar to the setpoint so it makes sense. I'm not sure why it sometimes sends zeros though, maybe when the room is occupied according to its sensor?

@JanM321 ill check my logs again later.
However, while my cassette has support for an occupation sensor, it isn't fitted.

@JanM321 ill check my logs again later. However, while my cassette has support for an occupation sensor, it isn't fitted.

Hm mysterious. I doubt we can do something interesting with these fields, but it's a bit weird that it sometimes sends 00.00 instead of the setpoint.
Btw it stores 0.5 degrees (for both values) in byte 8. I'm also seeing that in your logs: 11.11.55 means 17.5°C, twice.

My cassette has an interesting behaviour I do not see in the same way on the Artcool Gallery:
It is reducing the requested heat and the fan speeds (even at fixed setting) when coming within 2.5°C of the setpoint (+/- 0.5°C, not sure about its internal centigrade precision). Overheat setting 0.5°C and 1.0°C make no difference there.

For what it's worth, I think I see the same with my units with overheat setting 4 (0.5°C). Especially when it's cold it lets the temperature drop way too far and I have to send a temperature that's a few degrees lower to get it to ramp up again. I still have to double check if it behaves the same way with the LG controllers.
I wonder if it's an internal bug where the unit incorrectly applies a 2 degrees offset in some cases (the 2 degrees offset is the default for my units with overheating setting = 0).
For now I'm using the +/- 1C setting with a template sensor to 'compress' the values around the setpoint. temperature > setpoint + 0.45 results in sending setpoint + 1 etc and that seems to work pretty well.

@JanM321 that's almost my behavior and I'm also playing with an equivalent logic here.
For me it starts heating though, just at a way too low fan speed regardless of the fan setting.
I wanted to create a PR for that with a config "bugfix" flag eventually. If you start adjusting the room temperature at 2°C it also works for the 0.5deg overheat setting btw.
Also this doesn't happen on my LG Artcool Gallery for some reason.
Furthermore, you recommended to shift the setpoint and room temperature a while ago.
A 4°C shift works and fixes the vane issue (2 was not enough, 3 seemed to work fine so I opted for 4°C).
I will also create a PR for another optional flag in the config for that.
So the vane bug is an issue of the indoor unit controller, it requests less heat than the threshold needed to reopen the vanes at low setpoints.

@florianbrede-ayet Do you see any difference between 0.5C and 1C overheating modes, other than (of course) the start heating and stop heating thresholds? 0.5C seemed to use a bit less energy when I tried it initially but I'm not sure if that was actually true.
With 1C, units start heating at setpoint instead of setpoint - 1 when the outdoor unit is running for another indoor unit which can be nice.
I'm trying to decide if making 0.5C work is worth doing or if I should just stay with 1C which doesn't have the bug for me.

@JanM321 I'm testing that right now, but did you say your unit actually turns on at setpoint for overheat mode 3?
I think my cassette behaves as described in the data book:
1: +4°C / +6°C
2: +2°C / +4°C
3: -1°C / +1°C
4: -0.5°C / +0.5°C

@JanM321 I'm testing that right now, but did you say your unit actually turns on at setpoint for overheat mode 3? I think my cassette behaves as described in the data book:

It behaves like this:
0: +1/+3. With outdoor unit on for other unit: +2/+3
3: -1/+1. With outdoor unit on for other unit: 0/+1
4: -0.5/+0.5

Maybe it depends on the indoor unit or maybe it's just the duo-splits.

I also find it annoying that with cold weather, the reported temperature from the controller is often 0.5C below the setpoint for hours. The unit thinks this is acceptable and doesn't even try to reach the setpoint by working a little harder.
Using a smaller temperature range (with a template sensor) helps though and maybe I'm too demanding. But I've wondered about writing my own thermostat code and using the sensor just as a +/- signal. Maybe that would confuse the unit too much.

@JanM321 I'm not quite sure I understand what you mean, because the "error scaling adjustment" fixes that.
Also my device uses -1°C  / +1°C regardless of single / dual IDU operation.
For me, currently this quick hack is working fine (ignore the TEMP_OFFSET, that fixes my vane bug) and keeps the temperature -0.25°C / +0.25°C from the setpoint:
#define TEMP_OFFSET 4
#define TEMP_OVERSCALE 4.0f
#define TEMP_UNDERSCALE 4.0f
#define MIN_TEMP_SETPOINT 16
#define MAX_TEMP_SETPOINT 30-TEMP_OFFSET

...

float temp_adjustment=0;
if (temp > this->target_temperature) {
    // Overscale the setpoint error to overheat less
    temp_adjustment = (temp-this->target_temperature)*TEMP_OVERSCALE;
}
else {
    // Overscale the setpoint error to underheat less
    temp_adjustment = -(this->target_temperature-temp)*TEMP_UNDERSCALE;

}

send_buf_[6] = (thermistor << 4) | ((uint8_t(target) - 15) & 0xf);
send_buf_[7] = (last_recv_status_[7] & 0xC0) | uint8_t((temp+temp_adjustment+TEMP_OFFSET - 10) * 2);

Also ignore that the logic would work with a single LOC obviously...

@florianbrede-ayet Does this work for you with both 0.5C and 1C settings? Especially for 1C it seems pretty aggressive because after the rounding to 0.5 degrees, it will never report setpoint + 0.5.
If I change my template sensor to do something similar I get this:
   - name: "LG Living Room Sensor"
     state: >
       {% set temperature = states.sensor.atc_a2d5_livingroom_temperature.state | float | round(1, "half") %}
       {% set setpoint = states.climate.lg_living_room.attributes.temperature | float %}
       {% if (not is_state('climate.lg_living_room', 'heat')) %}
         {{ temperature }}
       {% else %}
         {{ temperature + (temperature - setpoint) * 3 }}
       {% endif %}
     unit_of_measurement: "°C"

@JanM321 it works fine when checking the temperatures over time (I've kept it at -1/+1 for now).
But indeed, the rounding in get_room_temp could force the unit to modulate less and make the heating less efficient.
I'll try your template instead although I'm not a big fan of Jinja2.

@JanM321 I was too lazy to write a sensor template and instead removed the rounding from get_room_temp() and then round the final calculated values ad-hoc when building the message and setting current_temperature.
I'm happy with the results at -1°C / +1°C, although it's still disappointing how weak the modulation range of the ODU is:

@JanM321 I've tested the changes for a while now and it works fine for me.
Should I create pull requests for my changes:

yaml flag to enable "temperature_offset" (fixes the vane bug)
yaml setting for setpoint_error_multiplier (to allow units to reach and accurately hold setpoint)

I think your template solution is fair, but it gives the component an incorrect room temperature which I find unpleasant when using climate entities.
On a side note, I finished my solution for Toshiba / Carrier HVAC units (under MIT), which is based on your structure:
esphome-toshiba-hvac-controller

Adding a temperature offset setting makes sense to me. Instead of a multiplier I'm using a different scheme that works better for me (maybe I have too much free time...) so I'd prefer to not upstream that part.

On a side note, I finished my solution for Toshiba / Carrier HVAC units (under MIT), which is based on your structure:
esphome-toshiba-hvac-controller

Very nice. I'm jealous of all the information and settings you have available there :)
My LG units have actually been working really well the past weeks. It's still a shame that LG's firmware is so bad because the hardware is quite powerful and they could get a lot more out of it if they fixed their software.


Broken pipe error with hyper::Client

I built a client following the client guides and tend to get a broken pipe error. I'm copying the guides as closely as possible.
Hyper(Io(Error { repr: Custom(Custom { kind: BrokenPipe, error: StringError("broken pipe") }) }))
The code that's generating the error:
        // uri is a https address
        let work = self.client.get(uri).and_then(|res| {
            res.body().concat2()
        });

        let response = self.core.run(work)?;

self in the above code refers to this struct
pub struct Client {
    core: Core,
    client: hyper::Client<HttpsConnector<HttpConnector>>,
}

which is constructed like this
pub fn new() -> Self {
        let core = Core::new().expect("failed to create Core");
        let handle = core.handle();
        let client = hyper::Client::configure()
            .connector(HttpsConnector::new(4, &handle)
            .expect("https connector"))
            .build(&handle);
        Client {
            core,
            client,
        }
    }

Check reqwest for ergonomic HTTP Client in Rust.

Do it always happen, or only on certain URLs? Is there a request body, or a large response body? Is it possible to turn on logs for hyper?
If adventurous, you could try enabling no_proto on the client config, which has some fixes that may include this. It will become default soon, but might contain other bugs...


In version 4.18.1, under the VPC network resource domain, DHCP dynamic IP addresses cannot be allocated across hosts

ISSUE TYPE

Bug Report

COMPONENT NAME

Virtual Router

CLOUDSTACK VERSION

4.18.1

CONFIGURATION

OS / ENVIRONMENT

Centos 7
SUMMARY

I am using CloudStack 4.18.1. After creating a resource domain of the VPC network type, I added two host nodes.

And created a VPC network (it automatically creates a virtual router on host node 1) and added the network layer

STEPS TO REPRODUCE

When I started to create the first instance machine, I chose the hk-node1 node. It is on the same host node as the vpc virtual router

The instance machine and the virtual router can be connected normally, and the instance machine can request the DHCP of the virtual router of the vpc to obtain the IP address

The above picture shows the log information of DHCP in the vpc virtual router

The above picture shows the log and IP information of the instance machine requesting the vpc virtual router during the dhcp process.this is normal
==================================hk-node2 host node dividing line============================
I now create an instance machine on the hk-node2 host node

The above picture shows the vpc virtual router log (it is on the hk-node1 host node), and there is no log showing the IP address assigned to the instance machine on the hk-node2 host node.

The above figure shows that the instance machine on the hk-node2 host node cannot access the gateway address of the vpc virtual router <IP_ADDRESS> during the dhcp request process, resulting in a dhcp timeout. Failed to obtain the IP address；
This is abnormal. Why can't the instance machine on the hk-node2 host node obtain an IP address when the two host nodes are in the same resource domain cluster? I tried to reproduce this operation in the latest version 4.19, and the problem of not being able to obtain an IP address across host nodes also exists. Please help!!!
EXPECTED RESULTS
The instance machine I created on the hk-node2 host node should be able to obtain the IP address dynamically allocated by DHCP normally, just like the instance machine on the hk-node1 host node.
ACTUAL RESULTS
The actual result is that the instance machine I created on another host node cannot connect to the host node where the vpc virtual router is located, resulting in the instance machine on other host nodes being unable to dynamically obtain an IP address through dhcp. In simple terms, the instance machine I created must be on the same host node as the vpc virtual router. If it is not on the same host node, the instance machine cannot obtain an IP

@Qinshan886  could you check the VPC tier VLAN is trunked on both host's switch ports on the physical switch?

@rajujith Sorry, I don't know much about this in terms of networking. I don't know how to check it; but my two host nodes are virtual machines, not physical servers. The network deployment also uses the bridge described in the official manual

@Qinshan886  So you have added Nested KVM hosts in the cloudstack. What is your base hypervisor? Could you check whether the vNICs of the nested KVM that are associated with the cloudstack guest traffic are in the same bridge/vSwitch?

@rajujith My base hypervisor is kvm and libvirtd. The NIC for guest traffic is on the same bridge。It also allows the use of tagged VLANs at the VPC level.

@rajujith I have also tried to deploy and build according to the official website documentation on the latest version 4.19 and found that the vpc cannot dynamically allocate IP addresses across hosts using dhcp. Has anyone else encountered this problem?


[mongodb-replicaset] replace MONGODB_URL with --mongodb.uri

What this PR does / why we need it:

mongodb-exporter  doesn't work with env variable MONGODB_URL after this PR: https://github.com/percona/mongodb_exporter/pull/116. It should be changed to -mongodb.uri
minor test fixes as follow up to https://github.com/helm/charts/pull/9907

Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md

/ok-to-test

/assign
/assign @unguiculus

It's still possible to use an env var. I'd suggest to only rename to MONGODB_URI .

@unguiculus It looks like MONGODB_URI change is not actually released yet as last release was 0.6.2 in Sept, while the referenced PR is merged only 29 days ago. The command line parameter has been there for a long time and is more consistent with how we configure the other exporter variables like TLS, in my opinion.
Is this your understanding, @tetianakravchenko ?

@steven-sheehy yes, referenced PR is not released yet. In the case of  renaming MONGODB_URL  -> MONGODB_URI mongodb-exporter will stop working for default mongodb-exporter docker image ssalaues/mongodb-exporter:0.6.1 https://github.com/helm/charts/blob/master/stable/mongodb-replicaset/values.yaml#L54-L57, -mongodb.uri should work for default  image and for newer releases as well

/approve
I'll let you lgtm or not @unguiculus

/lgtm


CII Badge

We need to meet the conditions of the CII Badge:
https://github.com/coreinfrastructure/best-practices-badge/blob/master/doc/criteria.md
The first task is to break this list down into a concrete check list.
Checklist from best practices.coreinsfrastructure.org site:
https://bestpractices.coreinfrastructure.org/en/projects/2288
To-do Items:

[x] Finish migration to Apache 2.0 License (floss_license, floss_license_osi)
[x] OpenTimelineIO must be https (sites_https)
[ ] Process for vulnerability reporting OpenEXR for reference (vulnerability_report_process, vulnerability_report_private, vulnerability_report_response)
[ ] Break non-C++ and Python code into other repos (warnings)
[ ] Talk to Linux Foundation rep about getting a developer up on secure development knowledge (know_secure_design)

I updated our entry on the CII system. We are currently at 61%
https://bestpractices.coreinfrastructure.org/en/projects/2288

I'm splitting this issue into separate issues for each actionable step to help us make progress here.
For example:

https://github.com/AcademySoftwareFoundation/OpenTimelineIO/issues/1405
https://github.com/AcademySoftwareFoundation/OpenTimelineIO/issues/1406
https://github.com/AcademySoftwareFoundation/OpenTimelineIO/issues/1407
https://github.com/AcademySoftwareFoundation/OpenTimelineIO/issues/1408


a simple way to generate 2d bounding box?

    there is a method to generate an image containing CARLA semantic segmentation labels, why can't we utilize the similar way to generate the 2d bounding box?
    any suggestion? thanks a lot!

Doesn't seem that would work very well if there are overlapping objects with same segmentation. It would work better if we had an image with per-pixel agent-id labels.
It really is better to just project the 3D OBB onto the camera perspective and cull boxes that are outside the camera frustrum or behind the reported depth (requires depth images of course).

Thank you for the suggestions @analog-cbarber
but actually, what i mean is not to draw the bounding box from the segmentation image, i wonder why can't we just utilize the method that generate the segmentation camera image to directly generate the 2d box?
BTW, can you briefly describe the process about how the segmentation labels is generated or some hints to the code?
thanks a lot!

@1453042287 Hi could you please share the code for 2D bounding box? Thanks.

i'm now working on the point cloud and the code for 2d bbox is not used anymore for a while and the version changes a lot , just look at the #772 and you will find a simple way to draw the 2d bbox :)

check this issue
https://github.com/carla-simulator/carla/issues/2325


Fix svelte special chars escaping problem

Problem description
< & { are special characters in svelte syntax. Therefore, you can't write a doc content like 4<5. To fix this problem, we were escaping those characters with their respective html codes (lt; & lcub;) in our python code using regexes. These regexs were slow, which was fixed in #373 and #394. However, there were still some errors
Solution
Fix it at markdown/mdsvex AST level using a custom remark plugin
AST Playground
Description of the custom remark plugin
When AST tree is being traversed, if a node type is "text" (rather than "html"), then escape < & { with < & {. This solution works great! The only catch is that we lost the full capability of svelte syntax. {4+5} will be evaluated as string {4+5} rather than js compute statement of 9. I think it is fine since we dont't have any inline js compute statements in the docs mdx files. Usage of custom components (such as <Tip>, <Question>) should still work as expected
As a side effect, this PR should also decrease the build time since we are removing a lot regex checks in python and using already done AST tree traversal in mdsvex
todo:

[x] katex issue should be fixed in this PR as well (fixed in https://github.com/huggingface/doc-builder/pull/401/commits/fd61ec108e648903b4ddedbe95660dec205f60fe)

Really nice, thanks @mishig25 ! :rocket:


Modify solution to be able to support multiple environments in same repo

This solution was originally designed with the idea that customers with multiple environments would run a dedicated installer repo for each environment (i.e. a repo for DEV, and another for PROD).
This approach worked for some customers, but did not align with other implementations where the client team wanted to manage all of their deployments out of a single repo.
We should consider retrofitting the project structure to allow 2+ deployments to be run out of a single repo instance.

Aggregating ideas for how to do so:

https://github.com/adriannavarrobetrian/satoshi-terraform
https://github.com/TusharParasrampuria/three-tier-architecture/tree/main

Another idea: use Terraform workspaces
This approach will:

Generate separate state files in the backend.
Can support separate tfvar files (see below for elaboration).
Could allow additional customization in the tool.

Implementation Considerations
Although the state files would be separate, the project files are not segregated/differentiated like how git branches can differ. As per this Spacelift article on managing variables in a Terraform workspace, there would likely be multiple tfvars files:
vars_dev.tfvars
vars_test.tfvars
vars_stage.tfvars
vars_prod.tfvars

These files could be specifically used during deployment:
# Example - using a specific tfvars file
$ terraform apply -var-file=vars_dev.tfvars

This could be baked into the Makefile solution we use:
...
apply-dev:
    @terraform apply -var-file=vars_dev.tfvars
apply-test:
    @terraform apply -var-file=vars_test.tfvars
...

# OR resolve workspace dynamically
apply-agnostic:
    @terraform apply -var-file=vars_$(terraform workspace show).tfvars

Given how the project is structured (exclusive focus on terraform.tfvars and related secrets in SSM, with all project files checked into git), this approach could work pretty well.
Terraform Resource Configuration
TF Objects could be modified to behave differently based on env (i.e. workspace) or include an environment descriptor in their tags. Examples:
Assign different config based on environment
locals {
  instance_type = terraform.workspace == “prod” ? “t2.large” : “t2.micro”
}

Add Tag with environment identifier
variable "name_tag" {
  type        = string
  description = "Name of the EC2 instance"
  default     = "EC2"
}

resource "aws_instance" "my_vm" {
  ami           = var.ami //Ubuntu AMI
  instance_type = var.instance_type

  tags = {
    Name = format("%s_%s", var.name_tag, terraform.workspace)
  }
}

Caveats

As per education materials re: TF Workspaces, introducing workspaces in the Terraform workflow increases the risk of human error.

Workspaces are generally meant to be temporary, but this approach would use them as a permanently fixture.

This approach may not be the best solution to manage multiple staging environments if organizations want these environments to be strictly separate (rather than a multi-environment-spanning monorepo).

The more reading I do about Workspaces, the more I see them referred to as a "a bad idea that will blow up in your face". An alternative, more physically-separated solution could use folders to segregate environments:

Each env gets its own provider and variables.
Common components live as modules.

/
├── environments/
│   ├── staging/
│   │   ├── provider.tf
│   │   ├── variables.tf
│   │   └── main.tf
│   └── prod/
│       ├── providers.tf
│       ├── variables.tf
│    /   └── app.tf
└── modules/
    ├── ec2/
    ├── vpc/
    │   ├── main.tf
    │   └── variables.tf
    └── application

Workspaces is definitely not suitable for production. The state for different environments all live in the same state file, it's a recipe for disaster if the state is broken in ANY of the environments.
This is the proper way to do it as per terraform common/best practices. I'm working on a POC google cloud terraform deployment at the moment and I'm following that pattern.
/
├── environments/
│   ├── staging/
│   │   ├── provider.tf
│   │   ├── variables.tf
│   │   └── main.tf
│   └── prod/
│       ├── providers.tf
│       ├── variables.tf
│    /   └── app.tf
└── modules/
├── ec2/
├── vpc/
│   ├── main.tf
│   └── variables.tf
└── application


Add tests with translated markers to OrderSettings and NormalizeSettingName

It looks like it works as intended with translated markers.

Codecov Report
Base: 97.60% // Head: 97.60% // No change to project coverage :thumbsup:

Coverage data is based on head (d800f05) compared to base (c027d17).
Patch has no changes to coverable lines.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #412   +/-   ##
=======================================
  Coverage   97.60%   97.60%
=======================================
  Files          41       41
  Lines        3218     3218
=======================================
  Hits         3141     3141
  Misses         77       77

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

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Discuss ways to merge separately mapped sidewalks and bike lanes

This conversation started at https://github.com/a-b-street/abstreet/discussions/789 (search term "separate" and "multiple OSM ways")
The main question is:

…how will the library figure out if separate ways are geometrically located to the left or right of the main road?

Preprocess data
I think we should continue the search for a solution for this. AFAIK there is no way to solve this in JavaScipt/Node. But it is possible to solve it in QGIS and likely the underlying Python libraries.
So it should be possible to preprocess the data in a way, that osm2lanes can then work with.
I think we should check if this could be solved (in a performant way) with Osmium or osm2pgsql or Overpass, … – I don't know enough about those tools ATM.
I assume, one of those tools would be able to merge the separately mapped ways to the central way. This could be done just by proximity, but I assume that would be error prone. But there are tags, that we can use, to reduce the error rate:
Sidewalks

highway=footway + footway=sidewalk on the separately mapped way is a strong indicator, that the way belongs to the main road

sidewalk=separate/sidewalk:(left|right|both)=separate on the main road are a strong indicator, that there is a sidewalk to look for nearby

Cycleways

is_sidewalk=yes on the separately mapped way is a strong indicator, that the way belongs to the main road. This tag is still experimental, though, but could help a lot. We are experimenting with it to improve routing for footways and cycleways, more on this wiki page footway mapping (GER) and this wiki page on cycleways mapping (GER) The additional experimental tags is_sidepath:of=(secondary|residential|<HighwayValueOfMainRoad) and is_sidepath:of:name=<NameValueOfMainRoad> might also be useful, but are likely better automatically processed by the script.

cycleway=separate/cycleway:(left|right|both)=(separate|optional_sidepath) on the main road are a strong indicator, that there is a cycleway to look for nearby (Germany wiki page)

Now that we are in osm2streets, lets look at ideas for achieving snapping.
One perspective is that of the planar coughz-indexcough graph. When snapping occurs, we are removing a little region in the graph. If we look at the geometry of the regions in the graph, we might be able to recognise medians and verges and thin barriers and stuff, by their characteristics.

That's a neat idea. I've done some work in tracing polygons "around the block" that could be lifted to the RawMap layer, and it usually picks up the spaces in between dual carriageways at least:

You could play with this by going to http://play.abstreet.org/0.3.21/abstreet.html?--dev&system/us/seattle/maps/phinney.bin&--cam=17.89/47.68380/-122.34385, pressing ctrl+D for debug mode, then ctrl+B for the blockfinder. This process breaks down when the separate ways are so close together that their inferred width causes the two polygons to overlap, though.

I made recent progress in #61. Projecting perpendicular lines is tricky business for many reasons mentioned above. I tried a new graph-based approach. The parallel cycleway will be connected to the main road at some point -- probably when it crosses side roads. So this transformation uses that, but still uses geometry to figure out left/right.
I'll keep iterating on this particular transformation to make it work more robustly. Then I don't see any reason why we can't also try to apply it to sidewalks...

Various ideas for this are still in progress; we're just cleaning up older bugs without clear next steps


Allow to directly bind a single value + keeping the value after submit

Hey!
Stumbled upon your project and liked the simplicity :)
It was missing a feature for my use case, which was mostly being able to keep a single value in the Input box.
So hey, why not share this back with you 😄

Hey Francois,
Thank you for contributing!
I made some minor changes (mostly stylistic) and will publish a new version of the package shortly.
I appreciate the help!
Cheers,
Yuval

Hey Francois,
Thank you for contributing!
I made some minor changes (mostly stylistic) and will publish a new version of the package shortly.
I appreciate the help!
Cheers,
Yuval


h2_mplx(16): release, waiting for 5 seconds now for 1 h2_workers to return, still 1 tasks outstanding.

Related to issue #108
Hello I have an issue on multiple servers running Apache 2.4 with http/2
Apache version: 2.4.23
Linux: 2.6.32-642.11.1.el6.x86_64
CentOS: CentOS release 6.8 (Final)
Magento 2: "version": "2.1.0"
release, waiting for 5 seconds now for 1 h2_workers to return, have still 1 tasks outstanding
->03198: h2_stream(16-1): POST XXXXXXXXXXX /rest/default/V1/XXXXXXXXXXXXX/set-payment-information -> reset 8[orph=1/started=1/done=0]
h2_mplx(16): release, waiting for 10 seconds now for 1 h2_workers to return, have still 1 tasks outstanding
h2_mplx(16): release, waiting for 15 seconds now for 1 h2_workers to return, have still 1 tasks outstanding
h2_mplx(16): release, waiting for 20 seconds now for 1 h2_workers to return, have still 1 tasks outstanding
Trying to get version of mod_h2 will post shortly.
We are seeing this with Magento 2 stores.

@djfordz version would be interesting. There has been a heavy revamp of connection shutdown handling in v1.9.x. So, if you have the chance, take the recent version from here and compile/run it with Apache 2.4.25. It might also work in 2.4.23, but I have never tested that.

@icing the h2 version we are running is 1.5.11 built-in.
So we need to upgrade h2 version?

Yes. I think the version from here should also work in a 2.4.23 Apache httpd. As I said, have not tested that, but interfaces did not change as far as memory serves me well.

great ty. I will see if we can get this implemented.

The issue seems intermittent, but when it happens it does affect our customers. We will do some testing with the new version and let you know.

The issue is intermittent but when it does happen it does affect our customers, we will do some testing with the new version, ty.


Implement basic contentable functionality

Description
Closes #1
Adds traits and interfaces that allow any model to be renderable or contentable. Adds base content pivot model. Adds helper functions to render set of modules to JSON or HTML in single function call.

Ok (i think) we're almost ready for prime time? re-requesting review 🤞


Missing Contributing.md file

Missing Contributing guidelines file in the repo to provide clear guidelines to the contributors. I can add it
Please assign me this issue under Gssoc'23 @AKD-01

I am intersted to work on the contributing.md file. Could you please assign under gssoc23

Readme.md has all the information and guidelines related to contribution.


Manipulating selected item in underlying select should update the state of the button

When changing the selected value of the select list, the button state is not updated to reflect the new value of the select list. I might be missing something, but the documentation is currently a bit light, so apologies if this is already supported.

You're right, I plan on adding update handlers for whenever the underlying select changes, eg:
$('select').prop('disabled', true);
$('select option:eq(0)').prop('selected', true);

Awesome, thanks.

fixed by #2


i18n(fr): Update guides/cms/apostrophecms.mdx from #7568

Description (required)
Update guides/cms/apostrophecms.mdx from #7568

Related issues & labels (optional)

Closes #
Suggested label: i18n

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

Locale
File
Note

fr
guides/cms/apostrophecms.mdx
Localization changed, will be marked as complete.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.

Thanks @yanthomasdev !


[indexer] merge in indexer breaking change park

Description
Changes in this uhaul PR includes:

Addition of objects_version table
Addition of a number of transaction and event indices tables, with the removal of tx_calls table.
Enable pruning for the newly added indices tables and make tx sequence number a valid partition range, in addition to cp sequence number.

Test plan
tested locally

Release notes
This PR modifies the indexer db schemas for improving GraphQL query performance. Specifically, an objects_version table along with various transaction and events lookup tables are added. tx_calls table is removed by more fine-grained tables tx_calls_pkg, tx_calls_mod and tx_calls_fun.

[ ] Protocol:
[ ] Nodes (Validators and Full nodes):
[x] Indexer:
[ ] JSON-RPC:
[ ] GraphQL:
[ ] CLI:
[ ] Rust SDK:
[ ] REST API:

The lates commit ([indexer] add pruning of event indices) was added by me mimicking what Ge did for txns. Please help me check if it looks right @gegaowp.

Hmm we are failing the msql clippy. Is there an easy way to disable it so it's not required for merging? @gegaowp


Expose methods to go to previous month and next month to developer

Is your feature request related to a problem? Please describe.
I'm building a custom header to control the calendar and would like to access the built-in methods to switch to the previous/next period from custom elements.
Describe the solution you'd like
Adding a ref on date picker element and a method to that in turn exposes the goToPeriod method to the top level

Accepted and merged with: https://github.com/tomosterlund/qalendar/pull/212


Dependency FSTestTools could not be resolved

Hi everyone,
I tried to build the FSDevTools to extend them. But a needed dependency, the "com.espirit.moddev.fstesttools", can not be resolved.

As mentioned in this community post the fstesttools should be available on GitHub, but the link points to a 404 error.
https://community.e-spirit.com/community/developer/blog/2017/06/26/release-fs-test-tools-are-available-on-github-now
https://github.com/e-Spirit/FSTestTools
Please provide all needed dependencies to build and extend the FSDevTools as soon as possible, because we need them for a customer project.
I again ask for an official e-Spirit Maven repository so the build process would be a lot easier when we could just download the needed dependencies instead of building and installing it on our own!
Thanks
Sandro

Hi Sandro,
Thank you very much for opening this issue. We've recently removed the fstesttools GitHub project without noticing that there's this external dependency. We will fix this issue asap. We are sorry for any inconveniences this may have caused.
We'll release a bugfix very soon!
greetings,
Nico

Hi @henczi-espirit,
do you have a timeline for a fix?
Thanks
Sandro

Hi @sosswa
A timeline could be only given with an uncertain probability,
(e.g. with a probability of 80% the fix will be released within the next 1-3 days)
But I can tell you, the fix is currently in our QA process, which means,
the release is the next step.
I also asked our QA to push this fix.
I hope my answer could help you.
greetings,
Nico

Hi @sosswa
the fix has been released yesterday. Please also note our comment to the community post you mentioned earlier on.
Regards,
Tanja


Install VMware Tools 10.0.0

I have updated the download link and installation steps to fit to the latest VMware Tools 10.0.0 which is introduced with VMware Workstation 12.
It is no longer an exe.tar, but only a tar file with an iso file.

LGTM.


Remove modules that depend on OS in order to use on lambda

@raymatos
Can you re-open it against development branch?
Also, make sure that all test cases pass npm run test.mocha


Improve Styling

I know parts of the website as it is right now are not styled the best. I believe it is passable for the most part, but likely could better.
I would like to fix up what I have first, potentially with site wide mobile styles, so that future additions will have a reference for how to make more maintainable styles going forward.

[x] Home/Login styles
[x] Timer/History styles
[x] Mobile Friendly ( #49 )

Styles are now better than they were, though I'm positive there's still some room for improvement. Will need to do thorough testing on this one before pushing to prod.

#74 #72 #71


Could not find a version that satisfies the requirement tensorflow (from versions: none)

System information

OS Platform and Distribution: masOS Big Sur
TensorFlow installed from (source or binary): binary
TensorFlow version: none
Python version: 3.8.2
Installed using virtualenv? pip? conda?: virtualenv + pip

Describe the problem
Could not find a version that satisfies the requirement tensorflow (from versions: none)
Provide the exact sequence of commands / steps that you executed before running into the problem
➜  ~ python -m pip install --upgrade tensorflow
Defaulting to user installation because normal site-packages is not writeable
ERROR: Could not find a version that satisfies the requirement tensorflow (from versions: none)
ERROR: No matching distribution found for tensor flow

➜  ~ python3 -m pip install --upgrade tensorflow==2.3.0
Defaulting to user installation because normal site-packages is not writeable
ERROR: Could not find a version that satisfies the requirement tensorflow==2.3.0 (from versions: none)
ERROR: No matching distribution found for tensorflow==2.3.0

I was able to install and run Tensorflow before I upgrade to Big Sur.
Then I installed the beta version, the environment still exist but it just can't run any thing so I tried reinstalled the whole thing again.(Though later I noticed the installation renewed the PATH setting, I had already uninstalled Tensorflow.)
Then this error occurred.

@H-111-di
Please, refer similar issue #39130
Please, uninstall everything and then install in new environment.
Step 1: pip install -U pip
Step 2: pip install -U setuptools
Step 3: pip install tensorflow

TensorFlow 2 packages require a pip version >19.0. Could you please upgrade pip using the below command and let us know if it works.
pip install --upgrade pip.
For more information please check this TensorFlow guide. Thanks!

Well, It didn't make any changes.
➜  ~ python -m pip install -U setuptools
Defaulting to user installation because normal site-packages is not writeable
Requirement already up-to-date: setuptools in ./Library/Python/3.8/lib/python/site-packages (50.3.2)

➜  ~ python -m pip install -U pip
Defaulting to user installation because normal site-packages is not writeable
Requirement already up-to-date: pip in ./Library/Python/3.8/lib/python/site-packages (20.2.4)

And I'm not running on a 32bit python
➜  ~ python3 -c "import platform; print(platform.architecture())"
('64bit', '')

Also I can't install it through wheel files.
➜  ~ python -m pip install ~/Downloads/tensorflow-2.3.1-cp38-cp38-macosx_10_14_x86_64.whl
Defaulting to user installation because normal site-packages is not writeable
ERROR: tensorflow-2.3.1-cp38-cp38-macosx_10_14_x86_64.whl is not a supported wheel on this platform.

Ummm, I tried the homebrew install version(both 3.7.9 and 3.8.6) and it works fine... But the requirements system in the homebrew seems to be something hardcoded and you can't upgrade anything it included...
So it seems like Apple had done something to their new system or the preinstalled python3.8 and that didn't meet the requirements of Tensorflow.

@H-111-di
Could you please install python 3.8 from https://www.python.org/downloads/mac-osx/ and see if the issue still persists.Thanks!

@ravikyram,
I have the same problem with system python 3.8.2 and pyenv.
I tried your suggestion to install Python 3.8.6 from the python.org website and it worked.
I think pyenv may need specialized instructions to work with TF.

@H-111-di
Could you please install python 3.8 from https://www.python.org/downloads/mac-osx/ and see if the issue still persists.Thanks!

sorry for late reply. That works fine for me and I think the issue get solved and I can get pretty much everything work now.
Thanks a lot for your suggestions.

pip install tensorflow

I have this issue with python 3.10.10 on m1

also I have same issue in mcbook m2

also have this issue with python3.10.11 on M1. have tried all of the resolutions

issue resolved
pip install --upgrade https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.12.0-py3-none-any.whl

issue resolved
pip install --upgrade https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.12.0-py3-none-any.whl

makasih bang


Comment on API/WebSocketServerClass.md

https://github.com/doc4d/docs/blob/main/docs/API/WebSocketServerClass.md
Please enter your comment:
Missing parenthesis
$ws.send(Uppercase($message.data)

I do not understand wss:= here
CALL WORKER("WebSocketServer"; Formula(wss:=4D.WebSocketServer.new($handler)))

seems useless in example and overcomplicated

in the table that display this
WSSHandler | Object | -> | Object of the user class declaring the WebSocket Server callbacks
-- | -- | -- | --
options | Object | -> | WebSocket configuration parameters

maybe a link to
https://doc4d.github.io/docs/next/API/WebSocketServerClass/#options-parameter
or describe here the key because difficult to find it, a lot of scroll to find
or put options table first, before handler

fixed missing ), added a comment to enlight the use of wss, added links to parameter descriptions - thanks


Add way to use arbitrary SQL

So that if there is something not implemented by LuckyRecord, user's can still do what they need to do (joins, cases, etc.)

I've been thinking about this a lot and I've come up with a bunch of ways to do this. Maybe you had something in mind already or maybe I'm missing the elegant solution.

We could give devs direct access to the DB so they could do something like

LuckyRecord::DB.exec("SELECT * FROM users")

They then get back a DB::ResultSet and have to loop through it and extract out the variables, which puts a lot of work onto them. This is kind of what Rails does with ActiveRecord::Base.connection.execute. It returns a PG::Result enumerable where each result is a Hash.

We could implement our own mapping that returns each result as a hash. It's not insane (I think) for us to do and would give developers the stopgap they need to get things done. Although I'd hate to see it catch on and have it turn into the default way.

We could instead allow devs to pass directly into User.from_rs(database.query(...)). The problem there is they have to be explicit about what they are selecting. I.E. SELECT users.id, users.created_at, ... etc otherwise there's a mapping error especially for the cases you outlined (joins and case statements).

We could also have them create their own temporary model class for whatever they needed:

class UserCount
  DB.mapping({
    count: Int64
  })
end

user_count = UserCount.from_rs(
  LuckyRecord::DB.exec("SELECT COUNT(*) FROM users")
)

Of these four, I like one and four the best. They are on opposite ends of the spectrum from totally raw to highly controlled. I like one because it encourages devs to use the nice framework within LukcyRecord, while still allowing them to get work done. I like four because it lets them be safe and explicit with their results, even if it's a bit tedious.
Two and three seem hacky for both parties, but they aren't totally terrible. They just aren't great options I think.

I think this would have the same problems that 3 has above. When you join a new table (or have any other attributes that are not in the model) it raises a DB::MappingException.
SELECT * FROM users JOIN posts ON users.id = posts.user_id;

-- returns users.id, users.name, posts.id, posts.user_id, posts.title, posts.body

This will try to map all the fields from users and all the fields from posts. The post fields don't have mappings and then the exception is raised. (I imagine you know this but I wanted to type it all out for posterity or anyone else reading who might not know 🙂).
I could see solving this by:

Explicitly adding the model fields in the select statement (SELECT users.id, users.name FROM users) and
Ensuring that whatever SQL passed is after SELECT

I suppose we could have devs specify mapping somehow for any extra fields? Thinking about it quickly I can't think of a clean way to insert more mappings? Maybe it's easier than I think.
Also, to be clear, this would always try to return whatever model it was called on, right? User.where("name = lower(?)", "my name") would return an Array(User).

Ah, yes. That makes sense. Thank you for documenting that. I think that this would require https://github.com/luckyframework/record/issues/90. I want to make it so it only selects the field the model defines. This has the side benefit of being able to declare different models with different fields for the same table.
class Users
  table users do
    # just fields that a user needs
  end
end

class Admin
  table users do
    # just fields that an admin needs
  end
end

And yeah that last example should still return an Array(User).

Cool, that makes sense. It'll still raise errors when devs try to do aggregate functions (which we'll add) or things like cases. But I think 1 above would be a good option to provide for those edge cases/library authors.

Yeah I agree. I think a custom mapping makes sense in those cases. And the aggregate functions will also bypass the regular mapping and read the result as an Int I think. BTW thanks for your writeup. You write very clearly. I really appreciate that and I bet others will too when they read this later on to see how decisions were made 👍

You're welcome 🙂. I'm always thinking about these as historical documents. It's frustrating when people just say "It won't work".

@mikeeus would you be interested in this one?

Sure, this looks pretty interesting. Thanks for the write up @edwardloveall.
From what I gathered, we're taking about two separate points here.

Allow users to run raw where queries.
Allow users to run raw queries including SELECT and JOIN statements, which might break mapping.

Regarding 1: this should be straight forward since it doesn't effect the statement and break the mapping. But it might need to check for statements like SELECT and JOIN to make sure it isn't abused, right? If this is correct, then I'll make PR for it.
Regarding 2: I agree with the discussion that having options 1 and 4 would be useful. Isn't LuckyRecord::Repo.db already exposed to the user so both options are ready.
Also I could see a flow like:
class UserCount < LuckyRecord::CustomQuery
  mapping({
    count: Int32
  })
end

Where LuckyRecord::CustomQuery provides a mapping method that uses DB::mapping under the hood. This way it doesn't expose DB directly and we can extend it in the future. Possibly with join(class : LuckyRecord::Model | LuckyRecord::CustomQuery) or something similar.

Great questions. I'm glad you asked. I think for now let's just do item 1, raw where clauses. I don’t think we need to check for select and join yet.
For totally custom queries using selects and joins, etc. I think we can add guides for it because you’re right that you can do that yourself.
In the future, we may add support for using custom selects and custom mapping’s that is easier to use. But for now using Repo directly should be fine for those rarer cases.
Does that answer your question? @mikeeus

Yeah that answers it, thanks


Support launchd mode

libxcb's display parsing code was modified in 1. This commit tries to bring the same behaviour to x11rb. This allows setting $DISPLAY to the full path to a unix socket. I think this was already possibly before via "unix//path/to/socket", but the "unix/" prefix is now apparently no longer necessary.
Since there isn't much documentation to go by, I used the tests that were added to libxcb as a reference. And tried to figure out again what the actual code changes do.
One complication is that this requires checking whether some file exists (= stat() returns successfully). Since x11rb-protocol has a no_std mode, I had to skip that check in this case.
Fixes: https://github.com/psychon/x11rb/issues/552

It was already possible with unix//path/to/socket or with unix:/path/to/socket?

It was already possible with unix//path/to/socket or with unix:/path/to/socket?

Sadly not. But I have to confess I thought the same when I was working on this.
unix//path/to/socket and unix:/path/to/socket both fail to parse. One due to missing :, one because /path/to/socket is not a number.
With unix//path/to/socket:0, one gets ParsedDisplay { host: "socket", protocol: Some("unix//path/to"), display: 0, screen: 0 }.
Basically: The general scheme is protocol/host:display and excess / are put into protocol, not host.

As the person who wrote the XCB code:

Sorry for not adding proper documentation!
path::exists() is not quite what the C code does.  The C code distinguishes between “file does not exist” (ENOENT) and “we don’t know if the file exists” (other errors).

Sorry for not adding proper documentation!

No problem. That's X11, I guess. ;-)

path::exists() is not quite what the C code does. The C code distinguishes between “file does not exist” (ENOENT) and “we don’t know if the file exists” (other errors).

Yeah, I saw that. I briefly looked at Path::try_exists and then decided to just go with the simple exists() while thinking about the right return value. The libxcb code uses stat() and fails display parsing if that call fails. The only thing that this code here additionally does is to parse a trailing .n.
So to make use of this difference, one has to create a file like foo.0 which fails to open with e.g. EPERM and then x11rb would try to also open foo while libxcb would give up immediately. Dunno whether this difference matters much.

As the person who wrote the XCB code:

Thanks for working on that code!


Add Blog AS per User's choice

The user can upload the blog as per his/her choice and it will contain
share button -> which will share the blog on twitter, linkedin and instagram.
delete blog button -> user can delete that blog anytime.
user can upload image, text and username in it's blog,

Dear @ANSHIKA-26 , please assign me this issue

https://github.com/ANSHIKA-26/WordWise/blob/main/backend/routes/blogRoutes.js
this feature has already been implemented in our backend made on mern , thanks !


attribute((aligned(x))); isn't supported by old compilers

This is not relevant for gcc and family, only applies when using a very very old compiler.
Lines such as
u32 status __attribute__((aligned(8)));

cause compiler error. Simply removing the attribute it not sufficient, as the alignment is required by osPiStartDma (from docs: "The RDRAM virtual address (vAddr) must be 8-byte aligned"), and mis-aligned address will introduce errors (as I have learned).
I considered a solution like
    #ifdef __GNUC__
    u32 status __attribute__((aligned(8)));
    #else
    // something else
    #endif

but unfortunately the options for "something else" do not really work as a single declaration. Here is how I modified usb_findcart (and other methods). My solution is to declare an array on the stack large enough to get an aligned memory address, then declare a pointer to find the first aligned address (using OS_DCACHE_ROUNDUP_ADDR). So this will change the existing value previously declared from a value type to a pointer, which alters subsequent method calls.
static void usb_findcart()
{
    // PI requires 8 byte aligned address.
    u32 pibuff[5];
    u32 *up;

    up = (u32*)OS_DCACHE_ROUNDUP_ADDR(&pibuff[0]);

    ...

    usb_everdrive_writereg(ED_REG_KEY, ED_REGKEY);
    usb_everdrive_readreg(ED_REG_VERSION, up);

    usb_everdrive_read_version = *up;

    // Check if we have an EverDrive
    if (*up == ED7_VERSION || *up == ED3_VERSION)
    ...

Curious as to the compiler in question. Does it have any documentation, which could point to alternatives?
Otherwise, yeah a memory pool and subsequently trying to figure out what address is aligned seems like the only option we have to solve this.

IDO recomp 5.3

Ah, that's the IRIX compiler. I'll have to see if I can find a manual for it...

Hey there, I apologize for the wait but I've been going through the issues on this repository this week and been trying to clean them up.
I have removed all uses of __attribute__((aligned(8))) in favor of OS_DCACHE_ROUNDUP_ADDR (I opted for this over sticking lots of #ifdef's everywhere), and have pushed a fix in 1ccc16c. Could you confirm that everything is working as expected on IDO?


Test FRAM reads

Fram reading mode seems to reset

Write unit tests for fram data chunk read/ write
Check if read and write work as expected
Debug

data writes correctly up to 9
after 10, starts overwriting 1
starts writing data incorrectly
error grows faster than correct data
might have integer overflow

Possibly fixed with #67


⚠ Samsung has degraded performance

In 97e6bd5, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2602 ms

Resolved: Samsung performance has improved in 33ba35e.


Compatibility with Pythonista on iOS devices?

https://github.com/ywangd/stash/issues/291
http://omz-software.com/pythonista

@YKevin0x61

questions are not issues.


Godot 4 version

Any chance of having this working on Godot 4?
I tried going to the first couple errors and got this:

with the console spamming  Attempted to use the same texture in framebuffer attachment and a uniform (set: 3, binding: 0), this is not allowed

I've been trying to port this myself; I've had the same console spam mentioned above and I have an issue with the color mixing.
The former is discussed here. To quote clayjohn:

Using the root Viewport as a texture to draw a Sprite in the root Viewport is not supported and cannot be supported. The error is correct, but not very helpful for end-users.

The vector map parameter is configured as a TextureRect inside of a SubViewport, with the texture set as said SubViewport, so there's probably a better way to achieve this in Godot 4.
The color mixing causes this weird banding effect.
https://github.com/Platinguin/Godot-Water-Shader-Prototype/assets/51878568/86abd42f-ba5c-4ae7-abf9-294f0fdf7aff
Narrowing things down, it seems to come from this part of the fragment function:
        // NORMAL APPLIED TO DEPTH AND READ FROM BUFFER AGAIN (DISTORTED Z-DEPTH)
	depth = texture(depth_texture, SCREEN_UV + ((normal_output.xy - vec2(0.5, 0.5)) * clamp(depth * 0.2, 0.0, 0.1) )).r;
	depth = depth * 2.0 - 1.0;
	depth = PROJECTION_MATRIX[3][2] / (depth + PROJECTION_MATRIX[2][2]); // Camera Z Depth to World Space Z
	depth = depth + VERTEX.z;

Commenting out the last line removes the banding, but I'm unsure how to actually fix this.
I've made a repo of my progress here if anyone wants to check it out. Not much of a shader coder at all, but I hope it helps!

@soldiersorrowful
Will you continue your work on the port? I would very much appreciate it as my own efforts have borne little fruit.

@soldiersorrowful Will you continue your work on the port? I would very much appreciate it as my own efforts have borne little fruit.

Haven't touched it much and honestly don't really plan to unless someone asks or helps with it, sorry! Just wanted to share what little information for possible fixes there could be; again, not much of a shader coder.

The banding is caused by the 'water color' gradient on the waterplane object. If you change it from left to right orientation to top to bottom, the banding is gone and SSS works. I haven't figured out how to fix the errors though, but it has something to do with the vector_map_buffer that is both read and written to (I believe it's the wind/flowmap).

The banding is caused by the 'water color' gradient on the waterplane object. If you change it from left to right orientation to top to bottom, the banding is gone and SSS works. I haven't figured out how to fix the errors though, but it has something to do with the vector_map_buffer that is both read and written to (I believe it's the wind/flowmap).
[edit] The errors stop spamming when you toggle the 'image' visibility. The flow stops then aswell but that's to be expected :-)

Regarding the continuous thrown error: the problem is the same, as is mentioned here:
https://github.com/inkusgames/godot4_shader_viewport_example
As you mentioned, it shouldn't be read from and written to. It needs to be separated.
Btw, if you look at the surface a bit closer, do you all also notice the vibration or turbulence? Does anybody know why that is happening?

Regarding the "gradient bands", I am not completely sure, if the gradient is needed. I just changed it to a constant value. In this case I made it a bit more blue:

I still have a problem with the continuous error message regarding the SubViewport. How can the "write" and the "read" be separated in this case, as is mentioned in: https://github.com/inkusgames/godot4_shader_viewport_example

The banding is caused by the 'water color' gradient on the waterplane object. If you change it from left to right orientation to top to bottom, the banding is gone and SSS works. I haven't figured out how to fix the errors though, but it has something to do with the vector_map_buffer that is both read and written to (I believe it's the wind/flowmap).
[edit] The errors stop spamming when you toggle the 'image' visibility. The flow stops then aswell but that's to be expected :-)

Regarding the continuous thrown error: the problem is the same, as is mentioned here:
https://github.com/inkusgames/godot4_shader_viewport_example
As you mentioned, it shouldn't be read from and written to. It needs to be separated.
Btw, if you look at the surface a bit closer, do you all also notice the vibration or turbulence? Does anybody know why that is happening?

I did notice that, not sure why this happens but I think it’s because of the mesh subdivides and rounding of the verices moving them

The banding is caused by the 'water color' gradient on the waterplane object. If you change it from left to right orientation to top to bottom, the banding is gone and SSS works. I haven't figured out how to fix the errors though, but it has something to do with the vector_map_buffer that is both read and written to (I believe it's the wind/flowmap).
[edit] The errors stop spamming when you toggle the 'image' visibility. The flow stops then aswell but that's to be expected :-)

Regarding the continuous thrown error: the problem is the same, as is mentioned here:
https://github.com/inkusgames/godot4_shader_viewport_example
As you mentioned, it shouldn't be read from and written to. It needs to be separated.
Btw, if you look at the surface a bit closer, do you all also notice the vibration or turbulence? Does anybody know why that is happening?

I did notice that, not sure why this happens but I think it’s because of the mesh subdivides and rounding of the verices moving them

I don't think it happens, because of the mesh subdivides. If you go to the corners of the mesh, where it has less subdivision, you can still notice the vibration. I tested my assumption by subdividing the waterplane in blender even more and importing it into the Godot project. The vibration was still there.
P.S.: @Platinguin are you still using your old shaders? Have you updated them, so it can run with Godot 4.x?

The vibration can be reduced a bit by setting the shader parameter "Gerstner Speed 2" in "WaterMeshInstance3D" to (0,0), so it is basically switched off.
That is what I currently have (I attached the original audio):
https://github.com/Platinguin/Godot-Water-Shader-Prototype/assets/8309220/0dadb17a-5a6b-4181-a44a-99169a2aebaf
It really is a shame, that such a wonderful shader cannot be used in its original glory anymore. I even tried to use the original project by @Platinguin with older versions of Godot, so I understand the code better by playing around with it, but it only shows pixel noise, when I run the project...
@soldiersorrowful if you have any improvements, please let us know 🙂.

I wasn't able to get everything working, but I got some working and then added some things back myself. In lieu of water physics to handle the shoreline, what I did was create a control map for the waves. It's a black & white image where it's a gradient between 0 and 1, with where I want the gerstner waves being a 1.

I added a shore noise map and anywhere the gerstner waves weren't, I added height from that noise map using same speed/time as the gerstner waves. This gives the shore a softer wave than out at sea. I also used the same control map to draw the foam around the shore, but a map with a smaller gradient might be better. Anyways, this is what it looks like with those added.

https://github.com/user-attachments/assets/830f0aea-d199-4403-b812-1374bbd3d3e2
In the vertex part:
vec3 shore_read = (texture(shore_map, UV).xyz);
vec2 shore_noise_uv = ( vec4(UV.x, UV.y, UV.y, 1.0) + MODEL_MATRIX[3] * 0.25 ).xz + vec2(TIME * gerstner_speed.x, TIME * gerstner_speed.y);
vec3 shore_noise_read = (texture(shore_noise, shore_noise_uv).xyz);
float shore_gradient = shore_read.z;
float shore_noise_gradient = (shore_noise_read.z);

VERTEX += (shore_noise_gradient) + shore_gradient * (( vec3(0.0, height, 0.0) + vec3(0.0, wave_z_offset, 0.0) ) * wave_height + gerstner + gerstner_2);

In the fragment part:
vec2 shore_noise_uv = ( vec4(UV.x, UV.y, UV.y, 1.0) + MODEL_MATRIX[3] * 0.3 ).xz + vec2(TIME * gerstner_speed.x / 50.0, TIME * gerstner_speed.y / 50.0);
vec3 shore_noise_read = (texture(foam_albedo_map, shore_noise_uv * vec2(float(100.0), float(100.0))).xyz);
vec3 shore_read = (texture(shore_map, UV).xyz);

vec3 foam_noise_read = (texture(shore_noise, shore_noise_uv).xyz);
float foam_gradient = foam_noise_read.z;
float shore_noise_gradient = (foam_noise_read.z - foam_gradient);

ALBEDO = ALBEDO + vec3(shore_noise_read.r, shore_noise_read.g, shore_noise_read.b) * (1.0-shore_read);

Hope this gives others some ideas and can build upon it.

If anyone is still interested, I just migrated it to Godot 4 here
Enjoy

If anyone is still interested, I just migrated it to Godot 4 here. Enjoy !

awesome stuff, thanks for your work!


[Migrated] [Feature Request] Add EFS Support

Originally from: https://github.com/Miserlou/Zappa/issues/2128 by dleber
Context
AWS recently announced the ability to attach EFS (Elastic File System) to lambda instances (more info).
It would be great if Zappa offered the ability to attach an EFS to lambda instances in a VPC.
Expected Behavior
In zappa_settings, specify an optional EFS config, including
1. EFS mount path
2. An EFS id

This would be immensely useful to have. Not only does it provide an easy way to make huge packages like Tensorflow available to your Lambda functions but it also makes it much easier to preserve state. I have a use case that involves having a Lambda function that processes files from a Git repo. Without preserving state between instantiations the code has to perform a git clone every time it runs; with an attached EFS file system it just needs a git pull and runs a great deal faster.
Looking into the APIs it seems that this should be pretty easy. The mount points are part of the configuration that gets passed to lambda_client.create_function() or lambda_client.update_function_configuration(), stored under the FileSystemConfigs key. The configuration entry is just a list of short dictionaries containing two keys called Arn and LocalMountPath and these could just be copied out of the zappa_settings.json configuration.

This is still something that would be hugely useful, for all the reasons discusses above.


Fixed infinite loop FileStorage iter in python 3

In python 3 if you would iterate over FileStorage and the underlying stream returned bytes arrays the existing sentinel, being the empty string, would never equate to an empty bytes array and an infinite loop would occur. To fix this, I query if the underlying stream inherits from TextIOBase and set the sentinel to an empty string otherwise I set it to an empty bytes array so StopIteration will be called at the end of the file correctly. This is backwards compatible with python 2 as '' == b'' and it does not matter which of these the sentinel is set to.

Hey @Neurostack, could you add a test that shows this issue in Py3? Thanks!

Also this fixes https://github.com/mitsuhiko/werkzeug/issues/849

@untitaker I think the added test should take care of it.

@Neurostack The testcase fails under Python 2, see https://travis-ci.org/pallets/werkzeug/jobs/119346920

@untitaker I installed a version of py2 and fixed StringIO creation and formatting in the test code. I also updated the fix with a more elegant solution suggested by josh ringer in #849. This solution should be more robust as well. It looks like all CI tests now pass.

Thanks, please rebase into one commit.

@homu r+

:pushpin: Commit 767485d has been approved by untitaker

:zap: Test exempted - status


Fix command on README.md

s/google-cloud-gemserver create-key/google-cloud-gemserver create_key/ in README.md

We probably should prefer "create-key" unless Thor doesn't like it.

Experimentally, it seems multi-word commands in Thor work with both _ or -. Since - is more common, I can update the docs to use - everywhere.

That works good. Just make sure the commands are consistent on README.


Updated: atom-nightly 1.43.0-nightly8

${}

9770c2c1-a3dd-4ca2-9782-1bc685b32f90

Newer version of atom-nightly (1.43.0-nightly9) is now available in master. a90dec0fb9bcdc1eb818ae4ff92425f0ba943203


Feature: Add the ability to manually define recording width x height.

You can currently only choose resolutions. It would be nice to be able to input a custom width x height.

This was added in VideoKit 0.0.8.


Use new RunService events

RunService's Heartbeat, RenderStepped, and Stepped events have been deprecated in favor of PostSimulation, PreAnimation, PreRender, and PreSimulation. Any code using the deprecated events needs to be updated with the appropriate new one.
RenderStepped -> PreRender
Stepped -> PreSimulation
Heartbeat -> PostSimulation
The PreAnimation event is new to the render cycle and there is no conversion necessary across the framework.

Blocked. Awaiting Roblox to enable these new events.


Don't use S3 Glacier for logging and cloudtrail buckets

The high cost of transitioning numerous small objects to Glacier far outweighs the benefit of the cheaper storage, especially with the additional 40KB added to each object (when the average object pre-transition appears to be ~6.5KB). Instead, move to Standard-IA after a short time period, and leave files indefinitely.
Eventually, it would probably be much better to have a Lambda function aggregate a large number of historical files into a single archive, and put those objects into Glacier instead.

http://pragmaticnotes.com/2020/04/22/s3-to-glacier-lifecycle-transition-see-if-its-worth-it/


Benchmark how much memory a Client take

Please somebody benchmark, how much memory a Client take:
I have 1000 servers to connect to and I am considering whether to create 1000 Clients simultaneously.

The result of benchmark should be in the API docs.

It should be a tiny program for you to try out :). I wouldn't include such a thing in the documentation, though.


Add missing can_reorder_children() check, fixes #8458

Users which weren't allowed to reorder child pages (e.g. due to missing "publish" permission), still saw the menu item to start reordering (see #8458).
The existing tests still pass. I've looked into the tests, but I don't know exactly where and how I should test that fix.
Please check the following:

[x] Do the tests still pass?[^1]
[x] Does the code comply with the style guide?

[x] Run make lint from the Wagtail root.

[ ] For Python changes: Have you added tests to cover the new/fixed behaviour?

Please describe additional details for testing this change.
[^1]: Development Testing

Hey @th3hamm0r, any chance you could add a test or two?

Looking great - will merge in shortly.
Thanks for writing tests @th3hamm0r  & for checking the code @zerolab


[BUG] - GUI Job generator has wrong tool tip - CreateOspreyJob_app - Jim Prisciandaro

Describe the bug
The tooltip for the spectral alignment of sub-spectra option unstable water is wrong.

Solved in #571


Closing last buffer quits oni2

duplicate of #759, #1603 and #2533

The tricky part is the gestures are slightly different - users who close via the 'x' on the tab are expecting the editor not to close, and users who use :q expect the editor to close like vim.
I think we need a configuration setting to address this:
"vim.closeOnQuit":  false, // never close the editor when `:q` or 'x' is pressed
"vim.closeOnQuit": "ui", // close the editor with `:q`, but not if clicking 'x'
"vim.closeOnQuit": true, // always close the editor if the last buffer is closed, whether it's `:q` or clicking 'x'

The tricky part is the gestures are slightly different - users who close via the 'x' on the tab are expecting the editor not to close, and users who use :q expect the editor to close like vim.
I think we need a configuration setting to address this:
"vim.closeOnQuit":  false, // never close the editor when `:q` or 'x' is pressed
"vim.closeOnQuit": "ui", // close the editor with `:q`, but not if clicking 'x'
"vim.closeOnQuit": true, // always close the editor if the last buffer is closed, whether it's `:q` or clicking 'x'

I think these must be implemented in oni2 for flexibility


[WIP] Extract global DB to function

idea pull out from https://github.com/RedHatInsights/sources-api-go/pull/343
This PR puts occurrences DB.Debug()  to own function with sourceDaoImpl  receiver -  getDb`
according to usage with one params - it is  instance of source - which is usually passed to GORM Model( function
This adds check whether sourceDaoImpl#TenantID is nil or not
In other PR we can use this to add tenancy condition as well condition to check whether userid=nil or not.
Links
required

[ ] https://github.com/RedHatInsights/sources-api-go/pull/402
[x] https://github.com/RedHatInsights/sources-api-go/pull/445

Issue: https://github.com/RedHatInsights/sources-api-go/issues/356

this is replaced by https://github.com/RedHatInsights/sources-api-go/pull/466


Unable to Authenticate with Jira Cloud Instance

Expected Behavior
I should be able to configure the Jira plugin and Backstage should be able to connect to the Jira API and show the details of a Jira project.
Current Behavior
The proxy is returning a 404 and the frontend is returning failed to fetch data, status 404: Not Found.
Steps to Reproduce

Follow steps 1-4 here where target JIRA_URL is https://redacted.atlassian.net and JIRA_TOKEN has been verified to be working against JIRA_URL using the Authorization header.
run env JIRA_TOKEN='Basic redacted' yarn dev
Load a component with a Jira annotation

Possible Solution
I'd like to be able to debug the proxy to verify what backstage is actually requesting. It seems to be the same API endpoint that is working for me with curl.
Context
I'm trying to set up this plugin for the first time. I'm new to Backstage, but I've set up a handful of plugins so far.
Debug doesn't show me anything other than the rewrite and the request getting a 404.
Your Environment

@backstage/plugin-catalog-react version: 1.8.4
@backstage/integration version: 1.7.0

The issue was that I was setting the environment variable via export and not loading it to yarn dev. I updated app-config.yml to Authorization: ${JIRA_TOKEN} and now it works.


Add new The Herzen State Pedagogical University of Russia (HSPU) domains

Now only the domain herzen.spb.ru has been added, but it is issued only to teachers. There is a domain for students herzen.edu.ru, so I added it. But by 2025, the university plans to ditch these domains in favor of a single hspu.org. As evidence, I attached a response from the university administration by hiding my personal email (in Russian).

Email
email-hspu.pdf

I also added the name of the university in Russian for the domain herzen.spb.ru.

Official site: https://herzen.spb.ru/
About hspu.org: https://eos.herzen.spb.ru/ and https://id.hspu.org/

@Rakleed Thank you for the update! Pull request merged.


Anthropic Prompt caching

This commit adds prompt caching to claude.nvim.

I added cache points for the buffers as well as for the conversation, so it should be possible to wipe the claude chat buffer and still get the benefit of cached data.
I also updated the usage display to include costing for cached tokens.
I don't think I broke the bedrock mode, but I didn't test. I'm counting on it to ignore the cache_control instructions in the python helper.

Hope this is helpful.

Oh, nice ideas there!
I'll test the bedrock mode once I get a moment.
In the example https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching the context is part of the system prompt, but you have it as part of messages (and also inflate all other messages to content blocks) - does it matter? (Keeping it as part of the system prompt would feel a bit cleaner to me, unless there's a reason not to.)
What about instead of busy/quiet buffer distinction simply sorting buffers by lastmodified?

In the example https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching the context is part of the system prompt, but you have it as part of messages ... does it matter?

I'm trying to remember. I think I tried to use the system prompt first. But the system prompt needs to be inflated in order to apply the cache breakpoints.  Later, it's passed as a string to the bedrock helper and when I tried to modify the bedrock helper I got scared.
I'm not sure if it makes a difference. It's hard to understand from the anthropic documentation whether it really matters -- different examples show both.

(and also inflate all other messages to content blocks)

I inflate all user messages to content blocks for the same reason.  The most recent user message needs to have a cache-breakpoint. Actually, the multi-turn example says that the second-last user message also needs one, but it seems to work fine without.

What about instead of busy/quiet buffer distinction simply sorting buffers by lastmodified?

I'm really not sure what is best here. I think sorting alone is not sufficient. The problem is we only have 5 cache breakpoints, and I'm using one for the final message.  Even if we sort, we still need to arbitrarily decide where to put the cache breakpoints and how many to use.
I decided on 2 breakpoints: one for quiet buffers (documentation / background code) and one for busy buffers that claude will edit. It might be helpful to go one more step and separate the single most recently edited buffer into its own block.
It's hard to optimize this stuff for unknown use cases! Mostly I think it is useful to cache documentation and read-only source files data that claude will not edit.


Support placeholder and values in input, select, textarea

now, we can't support placeholders and values in inputs, selects, and textareas.
It will be similar to after, before pseudo.

I've tried a lot, but it's too hard to get the style of the placeholder...ㅠ

AFAIK placeholder is another pseudoelement, so it's connected with #20


Add-migration throws nullrefexception

PM> add-migration test
System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.EntityFrameworkCore.Update.Internal.SharedTableEntryMap`1.GetMainEntry(IUpdateEntry entry)
   at Microsoft.EntityFrameworkCore.Update.Internal.SharedTableEntryMap`1.GetOrAddValue(IUpdateEntry entry)
   at Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationsModelDiffer.DiffData(TableMapping source, TableMapping target, DiffContext diffContext)
   at Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationsModelDiffer.Diff(TableMapping source, TableMapping target, DiffContext diffContext)+MoveNext()
   at Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationsModelDiffer.DiffCollection[T](IEnumerable`1 sources, IEnumerable`1 targets, DiffContext diffContext, Func`4 diff, Func`3 add, Func`3 remove, Func`4[] predicates)+MoveNext()
   at System.Linq.Enumerable.ConcatIterator`1.MoveNext()
   at Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationsModelDiffer.Sort(IEnumerable`1 operations, DiffContext diffContext)
   at Microsoft.EntityFrameworkCore.Migrations.Design.MigrationsScaffolder.ScaffoldMigration(String migrationName, String rootNamespace, String subNamespace, String language)
   at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.AddMigration(String name, String outputDir, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigrationImpl(String name, String outputDir, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>c__DisplayClass3_0`1.<Execute>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
Object reference not set to an instance of an object.

Further technical details
EF Core version: 3.0.0-preview6.19274.4
Database Provider. Microsoft.EntityFrameworkCore.SqlServer
IDE: Visual Studio 2019 16.1.0

@twenzel Please post a small, runnable project/solution or complete code listing that demonstrates the behavior you are seeing.

TestServer.zip

@twenzel Thanks for the repro. The project contains a model snapshot for what looks like a different model, and no associated migrations. The error went away when I removed this bogus model snapshot. Any ideas how the project got into this state? Did something you did with EF tooling leave the project like this?

Thanks for the hint. No, I guess this was due to many code migrations and manually editing.


Show unit stats in the build menu

When choosing which new unit to build, it would be helpful to see things like their movement, their range, and any other metrics that affect their performance

Thoughts on something like this?

Here's an updated version with more stats. I include the text "P = Personnel" and "A = Armored" at the bottom of the modal's body for clarity.

I think it looks nice with this much info, but adding more would probably get ugly (if sticking with the React-Boostrap table-in-a-panel-in-a-column-in-a-row-in-a-grid format I'm using). Maybe using a button to open the panel beneath the unit's image/name/cost would be better, as it would allow each table to span the entire modal and give the stats room to breath.

I like the idea, but there's a lot of header repetition. What about putting all the units in one table with headers at the top?

Another thought, the abbreviations (P and A) are probably necessary to keep the size from getting out of control, but they should use the "abbr" tag so users can get an explanation if they hover.

Is this closer to what you were thinking? Or were you thinking of keeping the clickable part outside of the table?

Yep, that's what I was thinking. I'm fine with the clickable part being inside the table.

Thoughts on style?
Hovering over the type will give the full name, and hovering over the armor value will either give the capturing armor value or say that the unit cannot capture bases.

The hover text sounds good, but the different size fonts in the stats cells look a little off to me. I think consistency is probably better even if it makes the table a bit sparse. For the ranges, I prefer "1-2" to "Min:1 Max:2". It would also be nice if the table column width was consistent. You should be able to accomplish this using the Bootstrap grid CSS classes (col-md-4, etc.).

Or I'd suggest using the new css grid specification -- it's shipped in most
major browsers now
gridbyexample.com/video
On Tue, Apr 4, 2017 at 11:52 PM, David Whittington<EMAIL_ADDRESS>
wrote:

The hover text sounds good, but the different size fonts in the stats
cells look a little off to me. I think consistency is probably better even
if it makes the table a bit sparse. For the ranges, I prefer "1-2" to
"Min:1 Max:2". It would also be nice if the table column width was
consistent. You should be able to accomplish this using the Bootstrap grid
CSS classes (col-md-4, etc.).
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Zetawar/zetawar/issues/46#issuecomment-291588494, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ACljr0nrWlUd_1DoJgBPkYq8IcU4A9orks5rsopJgaJpZM4LjCkY
.

--
Conor White-Sullivan
347-216-0173
@Conaw http://twitter.com/conaw
Good tests kill flawed theories, we remain alive to guess again.
~ Karl Popper

This is on dev now. I think there are more tweaks we could do, but I'm going to call it "good enough" for now.
@Conaws Thanks for the css grid spec link! I plan to revisit the styling on this at some point. I'll definitely look into that when I do.


[DeckGL] Raise error with null values

Really vague message with null values. Want to be more transparent about the errors in the underlying code for showing data in deckgl
@mistercrunch

LGTM

Codecov Report

Merging #5302 into master will increase coverage by 0.01%.
The diff coverage is 80%.

@@            Coverage Diff             @@
##           master    #5302      +/-   ##
==========================================
+ Coverage   61.31%   61.32%   +0.01%
==========================================
  Files         369      369
  Lines       23468    23488      +20
  Branches     2717     2717
==========================================
+ Hits        14390    14405      +15
- Misses       9066     9071       +5
  Partials       12       12

Impacted Files
Coverage Δ

superset/exceptions.py
100% <100%> (ø)
:arrow_up:

superset/viz.py
81.35% <66.66%> (-0.03%)
:arrow_down:

superset/sql_lab.py
71.6% <0%> (-3.4%)
:arrow_down:

superset/dataframe.py
94.49% <0%> (-3.21%)
:arrow_down:

superset/db_engine_specs.py
54.28% <0%> (+1.11%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 04fc1d1...1717e4a. Read the comment docs.