i18n(zh-cn): Update markdown-content.mdx

Description (required)
Update markdown-content.mdx
Related issues & labels (optional)

#9240
#10246

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

File
Note

zh-cn/guides/markdown-content.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.


Keep getting exception when using BootForm::Select

I'm using Laravel 5 (if that matter anyhow) to render a list of options to a template using
{!! BootForm::Select('Exalted type', $exaltedTypes->lists('name', 'id')) !!}

The value of my list of option is
array (size=5)
    1 => string 'Solars' (length=6)
    2 => string 'Terrestrials' (length=12)
    3 => string 'Sidereals' (length=9)
    4 => string 'Lunars' (length=6)
    5 => string 'Abyssals' (length=8)

And the error i keep getting is:
FatalErrorException in FormGroup.php line 0: Method AdamWathan\Form\Elements\Label::__toString() must not throw an exception in FormGroup.php line 0
at HandleExceptions->fatalExceptionFromError(array('type' => '1', 'message' => 'Method AdamWathan\Form\Elements\Label::__toString() must not throw an exception', 'file' =>  C:\wamp\www\exalted\vendor\adamwathan\bootforms\src\AdamWathan\BootForms\Elements\FormGroup.php', 'line' => '0')) in HandleExceptions.php line 116
at HandleExceptions->handleShutdown()

Do you have an idea of what might be wrong?

Just found the error, you might want to do some basic parameter checks such as $name not being an array. I was pushing to the SELECT method a list of options and creating a nameless control. This create an attribute list of name and id with an array value and thus contributed to this cryptic message.


Course Overview

Why:
General course update
What's being changed:
Updated images and content

Check off the following:

[x] For workflow changes, I have verified the Actions workflows function as expected.
[x] For content changes, I have reviewed the style guide.

Why:
General course update
What's being changed:
Updated images and content

Check off the following:

[x] For workflow changes, I have verified the Actions workflows function as expected.
[x] For content changes, I have reviewed the style guide.


add templates for issues and pull requests

Description
Orion doesn't have built in templates for issues or pull requests. For consistency's sake, they could be the same as those in Infra:
Issue:

Description
Brief description of the issue
Acceptance Criteria
Requirements needed to validate that this issue is complete

PR:

Description of PR
Brief description of the PR
Previous Behavior
Remove this section if not relevant
New Behavior
Remove this section if not relevant
Tests
How was this PR tested?

Acceptance Criteria
New issues and pull requests are populated with a template.

@danshaub great idea for keeping it consistent with our other repos!


Prevent browser autocomplete

Is your feature request related to a problem? Please describe.
Chrome is offering autocomplete on focus when thee input field is empty.  It is not needed in most contexts. It would be nice to have a new prop in the component to enable/disable it.
Describe the solution you'd like
Add autocomplete="off" attribute to the input field.
Describe alternatives you've considered
N/A
Additional context
I believe it's only happening w/ Chrome and noot w/ other browsers.

You can just pass the autocomplete prop to the DatePicker component and it will work.

Excellent. Thanks.
I guess I can close the issue.


Can notebook minimum width be reduced?

I'm experimenting with using the editor group snap feature to make the notebook really small and then clicking into it to make it larger, unfortunately this is the smallest it gets which still ends up taking up about 20% of a 1080p screen:

As opposed to monaco which can be reduced to about half that:

@Tyriar it makes sense to me to have it as narrow as text editor. With that being said, do you find the outputs too cluttered when it's that narrow?

@rebornix yes, but I wasn't going to use it that narrow as focusing it expands it when you drag the editor to its minimum size

We closed this issue because we don't plan to address it in the foreseeable future. If you disagree and feel that this issue is crucial: we are happy to listen and to reconsider.
If you wonder what we are up to, please see our roadmap and issue reporting guidelines.
Thanks for your understanding, and happy coding!


Fix peak memory profiling

Currently, vLLM's memory usage easily exceeds the gpu_memory_utilization (90%) when TP > 1. I believe this is because the current memory profiling is not accurate when TP > 1.

NOTE: This significantly affects the KV cache size, especially when TP > 1.
Llama2-7B with TP=1 and 1xA100-80GB

Current main: # GPU blocks: 7449
This PR: # GPU blocks: 7351

Llama2-70B with TP=4 and 4xA100-80GB

Current main: # GPU blocks: 31615
This PR: # GPU blocks: 20865

I've noticed that in the current main branch, the peak memory usage during benchmark_throughput.py (with TP=4) is about 77.5GB, although gpu_memory_utilization is set as 0.9 (72 GiB).

This issue seems to be introducing a bug where peak memory utilisation is calculated wrongly. If there are multiple instances of different processes in the same GPU, the profiler assumes they are all of the same instance which is not correct.


Problem on building the sources on Windows

i built the source by following the direction on readme but finally failed. and idk how to descripe my problem, so i share a screenshot which contains whole process i have done on cmd.

i tried to find the cause of problem on building process, and summarized two potential attribution: i don't install Nsight Visual Studio Edition on installing CUDA because it is always failed, and i don't do anything to configurate the ide because i don't know how to do so.

It should be sufficient to install Visual Studio 2022 and CUDA Toolkit. In your case it already fails already at the installation of the package manager vcpkg.
There is a log file mentioned in the message. What is written there?

It should be sufficient to install Visual Studio 2022 and CUDA Toolkit. In your case it already fails at the installation of the package manager vcpkg. There is a log file mentioned in the message. What is written there?

do you mean error MSB1009? it is "project file don't exist". and then "switch: All_BUILD.vcxproj"

do you mean error MSB1009? it is "project file don't exist". and then "switch: All_BUILD.vcxproj"

In your first message there is written: "See logs for more information: C:\User[...]\vcpkg-bootstrap.log"
Maybe in this log-file are more details about your problem.
How did you install CMake?
You can install it using the Visual Studio 2022 installer.

Does that solves the problem?

oh, sorry, now i finally understand your meaning. i have installed CMake tools for Windows, and this doesn't work. the log file in build folder is said:"'powershell.exe' is not an internal or external command, nor is it a runnable program or batch file"

It seems that you need to install powershell: https://learn.microsoft.com/de-de/powershell
(It was already installed on my system.)

thanks a lot, now i've installed powershell and add it to path system variable, so this 'powershell.exe' is not an internal or external command, nor is it a runnable program or batch file" solved, but i still met a new problem on building it.
here is the part screenshot and the file

vcpkg-manifest-install.log

您好，您的邮件已收到，我会尽快回复，谢谢。
蔡陈翼

东南大学建筑学院

南京市玄武区四牌楼2号Tel：18652966253

thanks a lot, now i've installed powershell and add it to path system variable, so this 'powershell.exe' is not an internal or external command, nor is it a runnable program or batch file" solved, but i still met a new problem on building it. this problem happened on cmake .. -DCMAKE_BUILD_TYPE=Release i'm sure i'm using the latest portfiles with git pull and .\vcpkg update neither git pull --recurse-submodules nor git switch d8783052cbf85bb5b1777b58b998c88d99357943 --detach works here are the error screenshot and the log file

The problem this time seems to be related to https://github.com/microsoft/vcpkg/issues/25322. The suggested solution there is "So I uninstalled PowerShell I downloaded from the Windows Store and re-downloaded it from another source."


Add rules for exported functions text filed

to fix #24

Thanks Ning! Exported functions is just an example to reproduce the issue, and this could happen similarly in cflags, ldflags, exported runtime methods, etc.
The root cause is that the newVal and oldVal of props.value are the same in EditTextField component after updating config field, and we'd better come up with a solution to fix this thoroughly.

If the response data is the same as the old value(the value before the request) saved in store.state, then the props.value will not have any updates and it cannot be detected by watch, then there would not be newVal and oldVal, so it's not just the loading animation bug, it's also about whether we should allow the value update even if the value keeps the same.

If we don't allow firing request to update the value like func1, func2, func2 for the exported functions (other fields as well), then we can just add the rules for them.
If we allow firing requests even the response is the same as the value in state, then maybe we can commit to update the store.config first with the edit text value, then update it again when the response arrives, which can keep the value sync with the server

Thanks Ning! Exported functions is just an example to reproduce the issue, and this could happen similarly in cflags, ldflags, exported runtime methods, etc.
The root cause is that the newVal and oldVal of props.value are the same in EditTextField component after updating config field, and we'd better come up with a solution to fix this thoroughly.

If the response data is the same as the old value(the value before the request) saved in store.state, then the props.value will not have any updates and it cannot be detected by watch, then there would not be newVal and oldVal, so it's not just the loading animation bug, it's also about whether we should allow the value update even if the value keeps the same.

Yes, just to clarify that the oldVal and newVal I used in comment is just to denote the value of props.value before and after the config updating. It's not the issue of watch, but a corner case that we didn't handle yet, which caused the EditStatus remains loading.

If we don't allow firing request to update the value like func1, func2, func2 for the exported functions (other fields as well), then we can just add the rules for them.

Of course we can add rules for some of the simple fields, but it's hard to do it right for complex scenarios.

If we allow firing requests even the response is the same as the value in state, then maybe we can commit to update the store.config first with the edit text value, then update it again when the response arrives, which can keep the value sync with the server

If we commit to update the store.config first with the edit text value, will the watch callback be executed to update the EditStatus at this time as well?


Evaluate lit-llama models on open LLM leaderboard

Hi,
I have a question please, assume that I fine-tuned the Falcon model with adapters on a specific dataset and want to upload it on openLLM leaderboard for evaluation. The steps are clear here for transformer models. How can we do the same model upload using lit-llama for evaluation on this leaderboard?
Best regards,
Abdelrahman.

@carmocca Your fast response is highly appreciated.

Answered in https://github.com/Lightning-AI/lit-gpt/issues/249. Closing this one as a duplicate


[BUG] INNR SP 240 "summation delivered" kWh value is 100x expected value

Bug description
Upon inclusion of the INNR SP 240 in ZHA, among others a "Summation delivered" sensor gets created. The value returned for this sensor is however 100x larger than expected: I ran a filament dryer for 5 hours of the SP 240 and the device measured 17kWh instead of the expected 0,17 kWh as measured using a Fibaro wall plug V2.
When I requested help from INNR support they responded that ZHA probably has incorrectly interpreted the configuration their device returned. My translation of their response: "An attribute "SummationFormatting" on the Metering cluster has the value 0x2A, which designates: 2 digits to the right of the decimal point, 5 digits to the left of the decimal point, don't suppress leading zeroes". Looks like his system (red: my ZHA integration in HA)) doesn't interpret or incorrectly interprets the value of the "SummationFormatting" attribute."
The full mail text I got from INNR support (in Dutch, sorry):

Beste Richard,
(This message is in Dutch because I assume based on your name and e-mail address that you also speak Dutch.)
Ik heb de vraag even bij één van onze engineers gelegd, en dit was zijn reactie:
Wat betreft Watt meting die op 0 decimalen wordt afgerond:
De waarde wordt opgeslagen en gecommuniceerd in een “int16” type, wat een bereik heeft van -32768 tot 32767. Als we op 1 decimaal zouden afronden zou het maximum slechts 3276.7 W zijn, maar de plug kan 3680 W aan dus de keuze was simpel. De afronding dynamisch maken (meer decimalen bij lagere waarden) is geen optie want dat ondersteunen de meeste systemen niet (voor zover ik weet geen enkel systeem).
Wat betreft de kWh formatting: het “SummationFormatting” attribuut van het Metering cluster heeft waarde 0x2A, wat betekent: 2 digits to the right of the decimal point, 5 digits to the left of the decimal point, don’t suppress leading zeroes. Lijkt er dus op dat zijn systeem de waarde van het “SummationFormatting” attribuut van het Metering cluster niet of verkeerd interpreteert.
Hopelijk heb je iets aan deze uitleg.
Met vriendelijke groet,
REDACTED
Innr Servicedesk
Innr Lighting | Innr.com
Innr Lighting BV  |  Catharina van Renneslaan 20  |  1217 CX Hilversum

@TheJulianJES requested me to tag him in here.
Steps to reproduce
Include the INNR SP 240 into the network using ZHA,
plug in a filament dryer of 145W,
Run the dryer for 5 hours, Watt history graph shows a peak at the beginning, then dropping to roughly 30 Watt.
Multiply the measured Watt value with the number of hours: 5 * roughly 30 Watt = roughly 170 Wh, or 0,17 kWh.
See how the actual sensor in ZHA however shows 17kWh.
Expected behavior
The summation delivered sensor should have shown a usage of 0,170 kWh
Screenshots/Video
Screenshots/Video

Device signature
Device signature
{
  "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.FullFunctionDevice|MainsPowered|RxOnWhenIdle|AllocateAddress: 142>, manufacturer_code=4454, maximum_buffer_size=66, maximum_incoming_transfer_size=66, server_mask=10752, maximum_outgoing_transfer_size=66, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)",
  "endpoints": {
    "1": {
      "profile_id": "0x0104",
      "device_type": "0x010a",
      "input_clusters": [
        "0x0000",
        "0x0003",
        "0x0004",
        "0x0005",
        "0x0006",
        "0x0008",
        "0x0702",
        "0x0b04",
        "0x1000",
        "0xe001"
      ],
      "output_clusters": [
        "0x000a",
        "0x0019"
      ]
    },
    "242": {
      "profile_id": "0xa1e0",
      "device_type": "0x0061",
      "input_clusters": [],
      "output_clusters": [
        "0x0021"
      ]
    }
  },
  "manufacturer": "innr",
  "model": "SP 240",
  "class": "zigpy.device.Device"
}

Diagnostic information
Diagnostic information
{
  "home_assistant": {
    "installation_type": "Home Assistant OS",
    "version": "2023.11.3",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.11.6",
    "docker": true,
    "arch": "x86_64",
    "timezone": "Europe/Amsterdam",
    "os_name": "Linux",
    "os_version": "6.1.59",
    "supervisor": "2023.11.3",
    "host_os": "Home Assistant OS 11.1",
    "docker_version": "24.0.6",
    "chassis": "embedded",
    "run_as_root": true
  },
  "custom_components": {
    "battery_consumption": {
      "version": "1.0.4",
      "requirements": []
    },
    "spook": {
      "version": "1.3.2",
      "requirements": []
    },
    "chime_tts": {
      "version": "v0.8.0",
      "requirements": [
        "pydub"
      ]
    },
    "battery_sim": {
      "version": "1.0",
      "requirements": []
    },
    "google_fit": {
      "version": "v2.1.2",
      "requirements": [
        "oauth2client==4.1.3",
        "google-api-python-client==2.82.0"
      ]
    },
    "hacs": {
      "version": "1.33.0",
      "requirements": [
        "aiogithubapi>=22.10.1"
      ]
    },
    "energy_meter": {
      "version": "1.0.1",
      "requirements": []
    },
    "adaptive_lighting": {
      "version": "1.19.0",
      "requirements": [
        "ulid-transform"
      ]
    },
    "smart_irrigation": {
      "version": "0.0.81",
      "requirements": []
    },
    "hass_agent": {
      "version": "2022.11.9",
      "requirements": []
    },
    "var": {
      "version": "0.15.0",
      "requirements": []
    },
    "presence_simulation": {
      "version": "3.2",
      "requirements": []
    },
    "grad_vol": {
      "version": "1.0.0",
      "requirements": []
    },
    "better_thermostat": {
      "version": "1.4.0",
      "requirements": []
    },
    "xiaomi_cloud_map_extractor": {
      "version": "v2.2.0",
      "requirements": [
        "pillow",
        "pybase64",
        "python-miio",
        "requests",
        "pycryptodome"
      ]
    },
    "powercalc": {
      "version": "v1.9.7",
      "requirements": [
        "numpy>=1.21.1"
      ]
    },
    "spook_inverse": {
      "version": "1.3.2",
      "requirements": []
    }
  },
  "integration_manifest": {
    "domain": "zha",
    "name": "Zigbee Home Automation",
    "after_dependencies": [
      "onboarding",
      "usb"
    ],
    "codeowners": [
      "@dmulcahey",
      "@adminiuga",
      "@puddly"
    ],
    "config_flow": true,
    "dependencies": [
      "file_upload"
    ],
    "documentation": "https://www.home-assistant.io/integrations/zha",
    "iot_class": "local_polling",
    "loggers": [
      "aiosqlite",
      "bellows",
      "crccheck",
      "pure_pcapy3",
      "zhaquirks",
      "zigpy",
      "zigpy_deconz",
      "zigpy_xbee",
      "zigpy_zigate",
      "zigpy_znp",
      "universal_silabs_flasher"
    ],
    "requirements": [
      "bellows==0.36.8",
      "pyserial==3.5",
      "pyserial-asyncio==0.6",
      "zha-quirks==0.0.106",
      "zigpy-deconz==0.21.1",
      "zigpy==0.59.0",
      "zigpy-xbee==0.19.0",
      "zigpy-zigate==0.11.0",
      "zigpy-znp==0.11.6",
      "universal-silabs-flasher==0.0.14",
      "pyserial-asyncio-fast==0.11"
    ],
    "usb": [
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*2652*",
        "known_devices": [
          "slae.sh cc2652rb stick"
        ]
      },
      {
        "vid": "1A86",
        "pid": "55D4",
        "description": "*sonoff*plus*",
        "known_devices": [
          "sonoff zigbee dongle plus v2"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*sonoff*plus*",
        "known_devices": [
          "sonoff zigbee dongle plus"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*tubeszb*",
        "known_devices": [
          "TubesZB Coordinator"
        ]
      },
      {
        "vid": "1A86",
        "pid": "7523",
        "description": "*tubeszb*",
        "known_devices": [
          "TubesZB Coordinator"
        ]
      },
      {
        "vid": "1A86",
        "pid": "7523",
        "description": "*zigstar*",
        "known_devices": [
          "ZigStar Coordinators"
        ]
      },
      {
        "vid": "1CF1",
        "pid": "0030",
        "description": "*conbee*",
        "known_devices": [
          "Conbee II"
        ]
      },
      {
        "vid": "10C4",
        "pid": "8A2A",
        "description": "*zigbee*",
        "known_devices": [
          "Nortek HUSBZB-1"
        ]
      },
      {
        "vid": "0403",
        "pid": "6015",
        "description": "*zigate*",
        "known_devices": [
          "ZiGate+"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*zigate*",
        "known_devices": [
          "ZiGate"
        ]
      },
      {
        "vid": "10C4",
        "pid": "8B34",
        "description": "*bv 2010/10*",
        "known_devices": [
          "Bitron Video AV2010/10"
        ]
      }
    ],
    "zeroconf": [
      {
        "type": "_esphomelib._tcp.local.",
        "name": "tube*"
      },
      {
        "type": "_zigate-zigbee-gateway._tcp.local.",
        "name": "*zigate*"
      },
      {
        "type": "_zigstar_gw._tcp.local.",
        "name": "*zigstar*"
      },
      {
        "type": "_uzg-01._tcp.local.",
        "name": "uzg-01*"
      },
      {
        "type": "_slzb-06._tcp.local.",
        "name": "slzb-06*"
      }
    ],
    "is_built_in": true
  },
  "data": {
    "ieee": "**REDACTED**",
    "nwk": 12957,
    "manufacturer": "innr",
    "model": "SP 240",
    "name": "innr SP 240",
    "quirk_applied": false,
    "quirk_class": "zigpy.device.Device",
    "quirk_id": null,
    "manufacturer_code": 4454,
    "power_source": "Mains",
    "lqi": 123,
    "rssi": null,
    "last_seen": "2023-11-26T21:32:06",
    "available": true,
    "device_type": "Router",
    "signature": {
      "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.FullFunctionDevice|MainsPowered|RxOnWhenIdle|AllocateAddress: 142>, manufacturer_code=4454, maximum_buffer_size=66, maximum_incoming_transfer_size=66, server_mask=10752, maximum_outgoing_transfer_size=66, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)",
      "endpoints": {
        "1": {
          "profile_id": "0x0104",
          "device_type": "0x010a",
          "input_clusters": [
            "0x0000",
            "0x0003",
            "0x0004",
            "0x0005",
            "0x0006",
            "0x0008",
            "0x0702",
            "0x0b04",
            "0x1000",
            "0xe001"
          ],
          "output_clusters": [
            "0x000a",
            "0x0019"
          ]
        },
        "242": {
          "profile_id": "0xa1e0",
          "device_type": "0x0061",
          "input_clusters": [],
          "output_clusters": [
            "0x0021"
          ]
        }
      },
      "manufacturer": "innr",
      "model": "SP 240"
    },
    "active_coordinator": false,
    "entities": [
      {
        "entity_id": "button.woonkamer_innr_sp240_identify",
        "name": "innr SP 240"
      },
      {
        "entity_id": "select.woonkamer_innr_sp240_start_up_behavior",
        "name": "innr SP 240"
      },
      {
        "entity_id": "sensor.woonkamer_innr_sp240_current",
        "name": "innr SP 240"
      },
      {
        "entity_id": "sensor.woonkamer_innr_sp240_voltage",
        "name": "innr SP 240"
      },
      {
        "entity_id": "sensor.woonkamer_innr_sp240_electric_consumption_w",
        "name": "innr SP 240"
      },
      {
        "entity_id": "sensor.woonkamer_innr_sp240_electric_consumption_kwh",
        "name": "innr SP 240"
      },
      {
        "entity_id": "switch.woonkamer_kerstverlichting_3",
        "name": "innr SP 240"
      }
    ],
    "neighbors": [
      {
        "device_type": "Coordinator",
        "rx_on_when_idle": "On",
        "relationship": "Parent",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0x0000",
        "permit_joining": "Unknown",
        "depth": "0",
        "lqi": "48"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0xA795",
        "permit_joining": "Unknown",
        "depth": "0",
        "lqi": "62"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0xF80E",
        "permit_joining": "Unknown",
        "depth": "0",
        "lqi": "223"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0x0316",
        "permit_joining": "Unknown",
        "depth": "0",
        "lqi": "88"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0xFF73",
        "permit_joining": "Unknown",
        "depth": "0",
        "lqi": "80"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0x2415",
        "permit_joining": "Unknown",
        "depth": "0",
        "lqi": "45"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0xA16F",
        "permit_joining": "Unknown",
        "depth": "0",
        "lqi": "0"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0x6D36",
        "permit_joining": "Unknown",
        "depth": "0",
        "lqi": "53"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0xF373",
        "permit_joining": "Unknown",
        "depth": "0",
        "lqi": "103"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0xF608",
        "permit_joining": "Unknown",
        "depth": "0",
        "lqi": "47"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0xC07F",
        "permit_joining": "Unknown",
        "depth": "0",
        "lqi": "118"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0xB58E",
        "permit_joining": "Unknown",
        "depth": "0",
        "lqi": "16"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0x3242",
        "permit_joining": "Unknown",
        "depth": "0",
        "lqi": "66"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0xA1BB",
        "permit_joining": "Unknown",
        "depth": "0",
        "lqi": "29"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0x8A77",
        "permit_joining": "Unknown",
        "depth": "0",
        "lqi": "15"
      }
    ],
    "routes": [],
    "endpoint_names": [
      {
        "name": "ON_OFF_PLUG_IN_UNIT"
      },
      {
        "name": "PROXY_BASIC"
      }
    ],
    "user_given_name": "Woonkamer: innr sp240",
    "device_reg_id": "7fa8dcff82a4c9d75905608870c6f7ef",
    "area_id": "woonkamer",
    "cluster_details": {
      "1": {
        "device_type": {
          "name": "ON_OFF_PLUG_IN_UNIT",
          "id": 266
        },
        "profile_id": 260,
        "in_clusters": {
          "0x0000": {
            "endpoint_attribute": "basic",
            "attributes": {
              "0x0004": {
                "attribute_name": "manufacturer",
                "value": "innr"
              },
              "0x0005": {
                "attribute_name": "model",
                "value": "SP 240"
              }
            },
            "unsupported_attributes": {}
          },
          "0x0003": {
            "endpoint_attribute": "identify",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0004": {
            "endpoint_attribute": "groups",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0005": {
            "endpoint_attribute": "scenes",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0006": {
            "endpoint_attribute": "on_off",
            "attributes": {
              "0x0000": {
                "attribute_name": "on_off",
                "value": 1
              },
              "0x4003": {
                "attribute_name": "start_up_on_off",
                "value": 255
              }
            },
            "unsupported_attributes": {}
          },
          "0x0008": {
            "endpoint_attribute": "level",
            "attributes": {
              "0x0000": {
                "attribute_name": "current_level",
                "value": 1
              }
            },
            "unsupported_attributes": {
              "0x4000": {
                "attribute_name": "start_up_current_level"
              },
              "0x0012": {
                "attribute_name": "on_transition_time"
              },
              "0x0010": {
                "attribute_name": "on_off_transition_time"
              },
              "0x0011": {
                "attribute_name": "on_level"
              },
              "0x0013": {
                "attribute_name": "off_transition_time"
              },
              "0x0014": {
                "attribute_name": "default_move_rate"
              }
            }
          },
          "0x1000": {
            "endpoint_attribute": "lightlink",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0702": {
            "endpoint_attribute": "smartenergy_metering",
            "attributes": {
              "0x0000": {
                "attribute_name": "current_summ_delivered",
                "value": 17
              },
              "0x0306": {
                "attribute_name": "metering_device_type",
                "value": 0
              },
              "0x0200": {
                "attribute_name": "status",
                "value": 0
              },
              "0x0303": {
                "attribute_name": "summation_formatting",
                "value": 42
              },
              "0x0300": {
                "attribute_name": "unit_of_measure",
                "value": 0
              }
            },
            "unsupported_attributes": {
              "0x0400": {
                "attribute_name": "instantaneous_demand"
              },
              "0x0100": {
                "attribute_name": "current_tier1_summ_delivered"
              },
              "0x0302": {
                "attribute_name": "divisor"
              },
              "0x0301": {
                "attribute_name": "multiplier"
              },
              "0x0304": {
                "attribute_name": "demand_formatting"
              },
              "0x0102": {
                "attribute_name": "current_tier2_summ_delivered"
              },
              "0x0104": {
                "attribute_name": "current_tier3_summ_delivered"
              },
              "0x0106": {
                "attribute_name": "current_tier4_summ_delivered"
              },
              "0x0108": {
                "attribute_name": "current_tier5_summ_delivered"
              },
              "0x010a": {
                "attribute_name": "current_tier6_summ_delivered"
              }
            }
          },
          "0x0b04": {
            "endpoint_attribute": "electrical_measurement",
            "attributes": {
              "0x0603": {
                "attribute_name": "ac_current_divisor",
                "value": 1000
              },
              "0x0602": {
                "attribute_name": "ac_current_multiplier",
                "value": 1
              },
              "0x0605": {
                "attribute_name": "ac_power_divisor",
                "value": 1
              },
              "0x0604": {
                "attribute_name": "ac_power_multiplier",
                "value": 1
              },
              "0x0601": {
                "attribute_name": "ac_voltage_divisor",
                "value": 1
              },
              "0x0600": {
                "attribute_name": "ac_voltage_multiplier",
                "value": 1
              },
              "0x050b": {
                "attribute_name": "active_power",
                "value": 2
              },
              "0x0000": {
                "attribute_name": "measurement_type",
                "value":<PHONE_NUMBER>
              },
              "0x0508": {
                "attribute_name": "rms_current",
                "value": 14
              },
              "0x0505": {
                "attribute_name": "rms_voltage",
                "value": 236
              }
            },
            "unsupported_attributes": {
              "0x0300": {
                "attribute_name": "ac_frequency"
              },
              "0x0401": {
                "attribute_name": "ac_frequency_divisor"
              },
              "0x0302": {
                "attribute_name": "ac_frequency_max"
              },
              "0x0400": {
                "attribute_name": "ac_frequency_multiplier"
              },
              "0x0403": {
                "attribute_name": "power_divisor"
              },
              "0x0402": {
                "attribute_name": "power_multiplier"
              },
              "0x0507": {
                "attribute_name": "rms_voltage_max"
              },
              "0x050a": {
                "attribute_name": "rms_current_max"
              },
              "0x050d": {
                "attribute_name": "active_power_max"
              },
              "0x050f": {
                "attribute_name": "apparent_power"
              },
              "0x0510": {
                "attribute_name": "power_factor"
              }
            }
          },
          "0xe001": {
            "endpoint_attribute": null,
            "attributes": {},
            "unsupported_attributes": {}
          }
        },
        "out_clusters": {
          "0x000a": {
            "endpoint_attribute": "time",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0019": {
            "endpoint_attribute": "ota",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      },
      "242": {
        "device_type": {
          "name": "PROXY_BASIC",
          "id": 97
        },
        "profile_id": 41440,
        "in_clusters": {},
        "out_clusters": {
          "0x0021": {
            "endpoint_attribute": "green_power",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      }
    }
  }
}

Logs
Logs
[Paste the logs here]

Additional information
No response

This might really be a ZHA issue. If the measurement type is kWh (0), we do not use the summation_formatting attribute for some reason. We only use the multiplier and divider attributes in that case: zha/sensor.py#L522-L531
@Adminiuga If you're around, do you have any idea why you added that check in the original PR? I'm guessing that it's unexpected the formatter is still needed for kWh? Or did some devices perhaps provide something wrong?

This can be worked around with a quirk. I'm not sure if that's a good idea though, as the plug seems to provide summation_formatting correctly: 00101010 =>  2 digits to right of decimal point, 5 digits to left of decimal point.
Changing the ZHA code could break some other devices though. Especially the ones we have quirks for which set the multiplier / dividers right now.
.. but apparently we already use quirks for other Innr plugs though: https://github.com/zigpy/zha-device-handlers/blob/dev/zhaquirks/innr/innr_sp120_plug.py
I guess I'll get one ready for this plug too for now.

@rrozema Please test this file as a custom quirk.
The comment above is still relevant for the isuse though.

I think the US version of this plug the 234 may have the same issue. I have my LumenPNP on one and it's like a 3d printer without heaters and some small vacuum pumps when running.  I don't think it's put out 50 kWh during it's lifetime.

Looks like the current quirk is just changing the voltage divisor: https://github.com/zigpy/zha-device-handlers/blob/d30dac2f3ffe99cc303690afb91513cb8836acc4/zhaquirks/innr/innr_sp234_plug.py#L34 I
If I query the Summation_Formatting attribute I get 4 (0x2A) as well.
I can try and add the fix you added for the 240 in the quirk for the 234 to see if the work around works as well.
{
  "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.FullFunctionDevice|MainsPowered|RxOnWhenIdle|AllocateAddress: 142>, manufacturer_code=4454, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)",
  "endpoints": {
    "1": {
      "profile_id": "0x0104",
      "device_type": "0x010a",
      "input_clusters": [
        "0x0000",
        "0x0003",
        "0x0004",
        "0x0005",
        "0x0006",
        "0x0702",
        "0x0b04",
        "0x0b05",
        "0x1000",
        "0xfc57",
        "0xfc82"
      ],
      "output_clusters": [
        "0x0003",
        "0x000a",
        "0x0019"
      ]
    },
    "242": {
      "profile_id": "0xa1e0",
      "device_type": "0x0061",
      "input_clusters": [],
      "output_clusters": [
        "0x0021"
      ]
    }
  },
  "manufacturer": "innr",
  "model": "SP 234",
  "class": "zhaquirks.innr.innr_sp234_plug.SP234"
}

@tube0013 I've pushed some changes to:

https://github.com/zigpy/zha-device-handlers/pull/2782

Let me know if all your plug measurements are correct then.
To install the SP234 quirk easily as a custom quirk, use this:

SP234 custom quirk test code (click to exapnd)
"""Innr SP 234 plug."""
from zigpy.profiles import zgp, zha
from zigpy.quirks import CustomCluster, CustomDevice
from zigpy.zcl.clusters.general import (
    Basic,
    GreenPowerProxy,
    Groups,
    Identify,
    OnOff,
    Ota,
    Scenes,
    Time,
)
from zigpy.zcl.clusters.homeautomation import Diagnostic, ElectricalMeasurement
from zigpy.zcl.clusters.lightlink import LightLink
from zigpy.zcl.clusters.smartenergy import Metering

from zhaquirks.const import (
    DEVICE_TYPE,
    ENDPOINTS,
    INPUT_CLUSTERS,
    MODELS_INFO,
    OUTPUT_CLUSTERS,
    PROFILE_ID,
)

class ElectricalMeasurementCluster(CustomCluster, ElectricalMeasurement):
    """Fix divisor for AC power."""

    _CONSTANT_ATTRIBUTES = {ElectricalMeasurement.AttributeDefs.ac_power_divisor.id: 1}

class MeteringClusterInnr(CustomCluster, Metering):
    """Provide constant multiplier and divisor.

    The device supplies the summation_formatting attribute correctly, but ZHA doesn't use it for kWh at the moment.
    """

    _CONSTANT_ATTRIBUTES = {
        Metering.AttributeDefs.multiplier.id: 1,
        Metering.AttributeDefs.divisor.id: 100,
    }

class SP234(CustomDevice):
    """Innr SP 234 smart plug."""

    signature = {
        MODELS_INFO: [("innr", "SP 234")],
        ENDPOINTS: {
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.ON_OFF_PLUG_IN_UNIT,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Identify.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    OnOff.cluster_id,
                    Metering.cluster_id,
                    ElectricalMeasurement.cluster_id,
                    Diagnostic.cluster_id,
                    LightLink.cluster_id,
                    0xFC57,
                    0xFC82,
                ],
                OUTPUT_CLUSTERS: [
                    Identify.cluster_id,
                    Time.cluster_id,
                    Ota.cluster_id,
                ],
            },
            242: {
                PROFILE_ID: zgp.PROFILE_ID,
                DEVICE_TYPE: zgp.DeviceType.PROXY_BASIC,
                INPUT_CLUSTERS: [],
                OUTPUT_CLUSTERS: [GreenPowerProxy.cluster_id],
            },
        },
    }

    replacement = {
        ENDPOINTS: {
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.ON_OFF_PLUG_IN_UNIT,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Identify.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    OnOff.cluster_id,
                    MeteringClusterInnr,
                    ElectricalMeasurementCluster,
                    Diagnostic.cluster_id,
                    LightLink.cluster_id,
                    0xFC57,
                    0xFC82,
                ],
                OUTPUT_CLUSTERS: [
                    Identify.cluster_id,
                    Time.cluster_id,
                    Ota.cluster_id,
                ],
            },
            242: {
                PROFILE_ID: zgp.PROFILE_ID,
                DEVICE_TYPE: zgp.DeviceType.PROXY_BASIC,
                INPUT_CLUSTERS: [],
                OUTPUT_CLUSTERS: [GreenPowerProxy.cluster_id],
            },
        },
    }

Thanks got it running now.. and reset the summation delivered to get a fresh summation with the updated quirk.

Z2M also adds it for your plug (code here). They are doing some other things we're not doing too.
Can you check if the current also needs to be divided by 1000 for your plug, @tube0013?

Amperage seems okay to me:

ac_current_divisor is 1000:
zha-e29ceebf7c284fe6a18d61622537f595-innr SP 234-bd4503f7c2ae9e99b0befd345d61ad65.json.txt

I confirm the quirk fixes my kWh sensor.

SP 234 quirk changes have been working well.
Interesting I missed that fact that innr had fw updates posted. so I guess the quick need to be adjusted for that... I'm pulling it down and will update. @TheJulianJES should we move the SP 234 to a new issue sorry fop combining it with the SP 240!

Ah, the info with the older firmware versions is interesting. It explains why Z2M still sets those dividers manually.
https://github.com/zigpy/zha-device-handlers/pull/2782 will be included in 2023.12.0b0 and should fix the issue even for older firmware versions of the SP 234, as it always sets the EM current and EM power divisors for the SP 234 now.
The total sum delivered (Metering) fix is also included for all Innr plugs (setting divisor, as ZHA ignores summation_formatting at the moment).
So, the behavior should be fixed in all upcoming 2023.12.x versions.
If there any remaining issues in 2023.12.x (beta should be out in about one to two hours or so), please open a new issue for other plugs and tag me.

My SP 234 was already on latest fw, so everything seems working with the modified one as I have been testing over last day or so.

This is also an issue for the SP 242

This is also an issue for the SP 242

I too am having the same issue with SP 242, FW 1.4.3.
I can't seem to even find this device on Innr's website anymore despite only recently purchasing them, but am exhibiting the same issue with the summation being much higher than it should be, assuming it is the same problem.

The new plugs SP 240, SP 242, and SP 244 all use the same firmware code base so the same quirk can be applied. Just for completeness: it is not a bug of the smart plugs; the plugs correctly provide the SummationFormatting attribute 0x0303 with value 0x2A (meaning 2 digits to the right 5 to the left of the decimal point), which is the only mandatory attribute for formatting the CurrentSummationDelivered attribute. The Multiplier and Divisor attributes 0x0301 and 0x0302 are optional.

Hrm we should look at the HA side of this to make sure we are doing things correctly then…

Hrm we should look at the HA side of this to make sure we are doing things correctly then…

Yeah, I think there's an issue with ZHA at the moment, see this comment: https://github.com/zigpy/zha-device-handlers/issues/2781#issuecomment-1830832448 (formatter isn't used for kWh)
Even if we fix ZHA code, we risk breaking multiple devices with existing quirks. Some devices report it correctly and others not, so we don't know which quirks should stay and which should be removed (without knowing the attributes reported by the device).

Sorry to add to an old bug but it seems the newer innr 242 has the same bug summation is 100x expected
Firmware reported by zha is 0x14033682
Please let me know if this should it's own ticket
EXA

Loading the SP 240 .py for my SP 242 worked perfectly. Thanks for providing this.

Having this on SP 244. Can we get the quirk to match those newer models too? I assume it's just not matching because the model is different


store/util: human readable expired time

What have you changed? (mandatory)
Manually impl Debug for RemoteLease, and makes expired time human readable. It is convenient for debugging lease read tests.
What are the type of the changes? (mandatory)
The currently defined types are listed below, please pick one of the types for this PR by removing the others:

Improvement (non-breaking change which is an improvement to an existing feature)

How has this PR been tested? (mandatory)
Unit tests.
Does this PR affect documentation (docs/docs-cn) update? (mandatory)
No.
Does this PR affect tidb-ansible update? (mandatory)
No.
Refer to a related PR or issue link (optional)
#3544

/run-integration-tests


Unable to run app using flutter_scene (using CMake)

So, I have tried to build my app that has flutter_scene (and some imports needed with that), but have been getting this error mesage:
Unhandled exception:
Exception: CMake generate step failed (exit code 1):
STDERR: CMake Error at CMakeLists.txt:2 (project):
Running
'nmake' '-?'
failed with:
no such file or directory
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
STDOUT: -- Configuring incomplete, errors occurred!
Now, CMake is installed, and it is added to my path. As well as Visual Studio with C++ (I am using Windows)
I have not been able to locate anyone having this same problem as I am so I decided to add this issue to see if anyone knows how to fix this.

Hi, nmake ships with Visual Studio and should be available in the Visual Studio Developer Command Prompt environment.

Which terminal are you using?
Which version of flutter_scene are you using?
What command(s) are you using to kick off the build/run?
Which version of Visual Studio are you using?

I am trying to build the app using Android Studio, Visual Studio 2022. And flutter_scene version is the latest one, 0.7 I believe it is

My guess would be that the MSVC build tools aren't in your path when building via Android Studio.
First, make sure the build tools are actually installed -- nmake should be located in a directory similar to: C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.39.33519\bin\Hostx64\x64, where the specific MSVC version may differ.
The tool should also be in the path of the VS dev command prompt.
If it's not installed, you can use the VS 2022 installer to add it.
Once you have it, add the MSVC x64 bin directory to your system path. If it still doesn't work from Android Studio, try using flutter run from the Visual Studio Developer Command Prompt.

I checked and I did not have that installed, so I installed it. I also added it to my Path, and tried to build it in Android Studio, which failed, same error as before.
Afterwards, I tried with the Visual Studio Developer Command Prompt as you suggested, and that did the trick. Appreciate it!
Still had some errors when compiling, due to incompatibility of versions between some of my imports, but I fixed them and it compiles!


Update to body drag coefficients

fixes #205 and closes #206.
Fixes the way that drag coefficients are handled so that the viscous drag force follows the following formula:
F \\
=
0.5 * \rho_w * \\
OrMat\\
\begin{bmatrix}
CdA_x & 0 & 0 \\
0 & CdA_y & 0 \\
0 & 0 & CdA_z  \\
\end{bmatrix}
OrMat^T *\\
(\vec v_i  * \\
|\vec v_i |)

The same equation is applied for the rotational drag coefficients.

@AlexWKinley can you look this over? My biggest question is the order of OrMat and the transpose correct, or should it be the other way (because we are going from the body frame to the global frame, and I believe OrMat transforms from global to body).

@RyanDavies19
As far as I can tell, this math is correct.
After some thought (and relearning a little linear algebra) I'm pretty certain you're correct about the order of multiplication.
As a sort of sanity check (and sort of just for my own interest) I threw together this animation using Mathematica. Where we have a representative body and then an arrow representing the direction and relative magnitude of the drag force given a current in the +x direction. While it's a little hard to parse, having looked through it fairly carefully I feel pretty confident (acknowledging that my CdA values are very approximate).
https://github.com/FloatingArrayDesign/MoorDyn/assets/129765925/ddb3ecd2-f0d8-4620-af37-69657e3bdc96
Thanks for your and Matt's work on this, and for putting together this PR.

@AlexWKinley Great thank you for checking that! Nice animation by the way. I will merge this then

@RyanDavies19
Hate to be a bother, but I was doing some other work to do with drag, and realized that our new drag formulation is either defined imprecisely, or implemented slightly incorrectly.
In particular the interpretation of  $\vec v_i  * |\vec v_i |$ I think is slightly incorrect.
We currently have it implemented as vi.cwiseProduct(vi.cwiseAbs()).head<3>().
But I believe it's actually supposed to be vi * vi.norm().
This is backed up by OrcaFlex's 6d buoy drag formulation https://www.orcina.com/webhelp/OrcaFlex/Content/html/6Dbuoytheory,Lumpedbuoyaddedmass,dampinganddrag.htm (equation 8).
The difference in these forms can be seen if we consider the case where vi = [1, 1, 0] and the rotation matrix is just the identity matrix. If Cdx and Cdy are equal, then we expect the drag to be a vector in the direction [1, 1, 0] with a magnitude (ignoring the 0.5 rho_w) of $Cdx * \sqrt{1^2 + 1^2}^2 = Cdx * 2$. But our current implementation gives Cdx * [1 * 1, 1 * 1, 0] which has a magnitude of $Cdx \sqrt{2}$.

@AlexWKinley Good catch, from what I am seeing there on the OrcaFlex site rotational and translational drag are the same formulations. I left in the cwise approach because that had been how it was set up before, but to stay true to the equations we need to use the vector approach you laid out. I can make another PR with this change, and I will check the drag in the other objects too.

For the other objects that are cylindrical (lines and rods) I believe they intentionally deviate from that formulation slightly. In particular they separate relative velocity normal and relative velocity tangential. This is also something that OrcaFlex does (see standard formulation) https://www.orcina.com/webhelp/OrcaFlex/Content/html/Linetheory,Hydrodynamicandaerodynamicloads.htm
Thanks for your help with this.

@AlexWKinley They take a different approach and it aligns well with Orcaflex. I will also note that rods and lines both use the $v_i * v_i.norm()$ approach instead of component wise, which is more indication that was a bug in bodies.


[Query] Minimum Requirements to visualise the learnt model

Hello all,
I am interested in this project and want to run it on my local machine. I wanted to know what was the minimum hardware requirements for running this code?
I have 16GB RAM, 4GB Nvidia Geforce 1650Ti and running on Ubuntu 22.04 LTS.
thanks

This doesn’t need GPU to run. I’ve only tested on MacOS and Ubuntu 20.04 but should work on 22.04.

Sorry, If I understand correctly: We use semantic segmentation for visual understanding and LLM as an action planner, so the leanrt models do not require GPU? Please correct me if I am wrong.
Sorry, if my questions are too trivial, I am still learning.

The model can be run on CPU. GPU makes the inference faster but it is not required.

The model can be run on CPU. GPU makes the inference faster but it is not required.

Thanks again for the reply.


Cardinality > 1, distinguish between Map / Array

The model should distinguish for attributes with cardinality > 1, it it is a kind of array/list or a kind of object/map.
This is relevant for Value-Only serialization only. For Normal it is always an array.

In Part 2 for interfaces

Mandatory and Cardinality are distinguished. So there might be an optional element but the cardinality is 1. No Null object allowed in this case.
Similar we can add an additional column to the class definitions. For all cases with 0..1, 0..* etc. we need to define whether empty lists or NULL objects are allowed. To be backward compatible to the schema implementations we would have in the moment:

mandatory: false
Cardinality: 1 or 1..*
etc.

If I get this correctly, you want to specify in the model how a given attribute with cardinality > 1 should be implemented? (As a list or an array?)
That is nothing a technology-neutral model should specify in my opinion. What if there was an AAS implementation in a programming language that handles multivalued attributes differently and does not offer one or the other?
If you want to specify this, it should be in the return value of the API call, imo.
Please correct me, if I didn't get the problem right.

2024-11-27 TF AAS Spec Metamodel
SubmodelElementList are always mapped to array
All attributes for which there is cardinality > 1 are always mapped to array
SubmodelElementCollection, Entity etc. is always mapped to map
see also examples in
https://admin-shell-io.github.io/aas-specs-antora/IDTA-01001/v3.1/mappings.html#_examples_value_only_serialization_for_all_submodel_element_types

Sorry to reopen this issue, but does that influence the schema in any way?

No, it was correct like it is


Control Refinement

I would like to know whether the Control_Refinement.js and html file in _catalogs/masterpage/Display Templates/Filters/ is a customize code or is generated by system?
I am suppose to change something in this file but I couldn't find this file in my source code solution, but anyhow these files exists in the above mentioned location, I guess it must have been created once the site is provisioned.
so my question is, is this file a system generated file which shouldn't be edited or it just happened that someone missed out to check in the source code to my solution? Thanks!

If I understand correctly, this is a question about Sharepoint, and not related to VS Code. You can try looking for support at https://support.office.com/en-us/sharepoint


Error in Script

There are a couple of errors in the page.
The script provided:
#!/bin/bash

# WARNING! This script deletes data!
# Run only if you do not have systems
# that pull images via manifest digest.

# Change to 'true' to enable image delete
ENABLE_DELETE=false

# Modify for your environment
# TIMESTAMP can be a date-time string such as 2019-03-15T17:55:00.
REGISTRY=myregistry
REPOSITORY=myrepository
TIMESTAMP=2019-04-05

# Delete all images older than specified timestamp.

if [ "$ENABLE_DELETE" = true ]
then
    az acr manifest list-metadata --name $REPOSITORY --registry $REGISTRY \
    --orderby time_asc --query "[?timestamp < '$TIMESTAMP'].digest" -o tsv \
    | xargs -I% az acr repository delete --name $REGISTRY --image $REPOSITORY@% --yes
else
    echo "No data deleted."
    echo "Set ENABLE_DELETE=true to enable deletion of these images in $REPOSITORY:"
    az acr manifest list-metadata --name $REPOSITORY --repository $REGISTRY \
   --orderby time_asc --query "[?timestamp < '$TIMESTAMP'].[digest, timestamp]" -o tsv
fi

Is wrong because the timestamp does not exist. You can change it for lastUpdateTime. However, the delete command will still fail with ERROR: 2022-07-29 02:55:57.956872 The requested data does not exist
So, some work needs o be done :)

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

ID: cb1b3438-58e2-cd26-3b5e-1a1717fe182f
Version Independent ID: ad41d0b4-39b1-7e24-836e-ff12d5016623
Content: Delete image resources - Azure Container Registry
Content Source: articles/container-registry/container-registry-delete.md
Service: container-registry
GitHub Login: @tejaswikolli-web
Microsoft Alias: tejaswikolli

@MrDesjardins,
Thank you for your feedback. We will investigate and update the thread further.

@MrDesjardins -
Thanks for the feedback! I have assigned the issue to the content author to investigate further and update the document as appropriate.
@tejaswikolli-web - Could I request you to review this please.

#please-close


distutils will be deprecated in Python 3.12

Across the project, many packages use distutils for setting up installations. However, distutils will be deprecated. We will need to deal with this  by moving to pyproject.toml. The best way to do this is probably revise the submodule template to use the pyproject.toml specification, and then propagate that downwards.
This will affect the metapackage, as the metapackage will be uninstallable on 3.12 until all its constituent parts are off of distutils.

We already started the transition in some packages. I think that the latest one was tobler (https://github.com/pysal/tobler/pull/174) but it seems that we will need to do this across all packages before next meta.

Yep, just logging it here because it will be blocking for release.

Check packages for conformance

[ ] pysal/pysal
[ ] pysal/access
[ ] pysal/esda
[ ] pysal/giddy
[ ] pysal/inequality
[ ] pysal/libpysal
[ ] pysal/mapclassify
[ ] pysal/mgwr
[ ] pysal/momepy
[ ] pysal/legendgram
[ ] pysal/pointpats
[ ] pysal/segregation
[ ] pysal/spaghetti
[ ] pysal/spglm
[ ] pysal/spint
[ ] pysal/splot
[ ] pysal/spopt
[ ] pysal/spreg
[ ] pysal/spvcm
[ ] pysal/tobler


feat: reduce manual deallocations

Codecov Report
Attention: 7 lines in your changes are missing coverage. Please review.

Comparison is base (8ff1a7d) 64.27% compared to head (03ab54b) 64.41%.

Files
Patch %
Lines

src/logging.cc
50.00%
7 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1016      +/-   ##
==========================================
+ Coverage   64.27%   64.41%   +0.14%
==========================================
  Files          18       18
  Lines        3230     3229       -1
  Branches     1074     1071       -3
==========================================
+ Hits         2076     2080       +4
+ Misses        729      727       -2
+ Partials      425      422       -3

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Horizontal support

I didn't get it to work. Is there any special property to set for the control to scroll horizontally?
If by any chances by saying horizontal you are referring to landscape then I guess you should update the readme file because whoever uses this expecting to get horizontal scrolling will get disappointed.

Yes, I meant landscape; I'll make the change. The tags only scroll vertically at the moment. I'll try to make horizontal work in a future release.


question about 'not file found'

Thank you share your code! I am a beginner . I ran office31 dataset, showed file not found. But I have this file.

And my sturcture list:

you need to move all files out of images/, see this for the file structure https://github.com/KaiyangZhou/Dassl.pytorch/blob/master/DATASETS.md#office-31

@KaiyangZhou Thank you very much! Sorry, I didn't look at the file structure carefully. Cool code!


Add discover operation support in REST API

Thanks for the submission. Going through the code I noticed that you haven't added any particular functionality to the web UI making use of the discovery feature. We have always considered the demo application to be exactly that: a demo application only, i.e. this is not intended to be used for production. As such, IMHO we only add code that makes helps making it a better demo application. There also has been some discussion around the need for a real, i.e. production quality REST API for leshan in the past. However, there never has been enough demand nor community support to make it happen.
So, if this is your way of stating that you would like to see a REST API for leshan evolving, then I think we should start a discussion of how to approach it again :-) Extending the demo application for that purpose is not the right approach FMPOV.

I have a plan to extend the demo UI to make use of the discovery feature later (e.g. disabling UI elements that discovery finds unsupported); this paves way for it and was already useful in its current form in examining/testing client discovery behavior in another use case I had, which is why I thought I'd submit it already now.
But sure, a non-demo REST API would be a nice thing to have :)

This seems to be a small change and open the way to add UI for discovery feature. I think we can integrate it.

Ok, then go ahead with merging, @sbernard31 :-)

Done.


fix crash when using GL < 3.3

Fixed: https://github.com/bkaradzic/bgfx/commit/d65ce46ca04f8db1f0109ab7bf6390d5ef75b895


missing ci-info from dependencies

Maybe add https://www.npmjs.com/package/eslint-plugin-import to the mix to avoid this in the future. :)

Good tip! Thanks.


Ghidra build toolchain assumes Visual Studio Installer is located on C drive

Describe the bug
The Ghidra build toolchain assumes Visual Studio Installer is located on C drive, which causes a build failure when the Visual Studio Installer is located on another drive.
To Reproduce
Steps to reproduce the behavior:

Copy the Visual Studio Installer to an external hard drive, which has a drive letter other than C
Run gradle buildGhidra
> Supported Windows native toolchain not found!

Expected behavior
The Ghidra toolchain
Environment (please complete the following information):

OS: Windows 11
Java Version: 18
Ghidra Version: Commit 069c943d30907ebc5ea805a90cf22040e24761b8
Ghidra Origin: locally built

Additional context
The offending code is located in /GPL/vsconfig.gradle at line 30

Do you have an environment variable that points to your studio installation?

We could potentially change it to look for %ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe.  Would that help your case?

We should and will do %ProgramFiles(x86)%, but I think the best we can do for your specific case is to accept a gradle property specifying the PATH to vswhere.exe.  Thoughts?

Yep, definitely sounds the most ideal.

In master, you can now specify a -PvswherePath=<vswhere.exe path> Gradle command line argument.  Hopefully vswhere.exe is able to find your Visual Studio installation...we are still relying on that.


Unstable Usage with 2FA, Beta <IP_ADDRESS>

After Alarm.com switched to 2FA, I started using the <IP_ADDRESS> Beta plugin following the instructions to insert the 2FA Cookie from Alarm.com website. Since then, behavior of alarm panel (that previously worked), no longer triggers, as well, Ignored Devices are not being recognized in HomeKit.
From Logs:
Error: GET https://www.alarm.com/web/api/devices/sensors?ids[]=96741200-3&ids[]=96741200-6&ids[]=96741200-1&ids[]=96741200-59&ids[]=96741200-8&ids[]=96741200-5&ids[]=96741200-2&ids[]=96741200-7&ids[]=96741200-4 failed: request to https://www.alarm.com/web/api/devices/sensors?ids[]=96741200-3&ids[]=96741200-6&ids[]=96741200-1&ids[]=96741200-59&ids[]=96741200-8&ids[]=96741200-5&ids[]=96741200-2&ids[]=96741200-7&ids[]=96741200-4 failed, reason: read ECONNRESET
at /usr/local/lib/node_modules/homebridge-node-alarm-dot-com/node_modules/node-alarm-dot-com/dist/index.js:470:15
at runMicrotasks ()
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async Promise.all (index 1)
at async Promise.all (index 0)
*Homebridge System (please complete the following information):

NPM Version: 14.16.0
Homebridge Version: 1.3.4
Operating System: Raspbian
Process Supervisor: none

I am getting a similar error. I have been getting errors lately but the alarm was still functioning in HK until tonight. I updated to the Beta and also enabled 2FA, and seems to be functioning but getting this new error.

I'm stumped on how this doesn't seem to discriminate on provider, plugin version, or MFA usage. It's also odd that at least some people still have working setups while receiving this error. I'm wondering if alarm.com has changed their API limits and are starting so soft block some of our connections?
FWIW, here's my  (working) refresh time:
Timeout to Re-Authenticate Session: 10
Device Polling Interval: 60
Anyone have more ideas on how to troubleshoot this?

I'm having this issue as well but mine stopped working altogether. I uninstalled and have been checking here daily to see if the issue has been resolved.

I am having this same issue. Everything worked until yesterday and then I guess alarm.com required 2FA. Enabled, plugged in the 2FA cookie which cleared that issue, but now this issue is popping up and the system does not work at all.

Started receiving this error today. Obtained new 2FA code and configuration followed by reboot. No improvement.
*Homebridge System (please complete the following information):
Node.js Version: 14.17.0
NPM Version: 6.14.13
Homebridge Version: 1.3.4
Operating System: MacOS
Process Supervisor: none

Updated to NPM Version 7.13.0 and problem seems to have been addressed. Will continue to monitor.

I'm closing this thread to consolidate discussion in #72


patternplate-transform-react-to-markup should resolve dependencies

patternplate-transform-react-to-markup currently expects complete bundles of code to simply execute and render. Instead it should take care of its dependencies on its own.
https://github.com/sinnerschrader/patternplate-transform-react/pull/1

See https://github.com/sinnerschrader/patternplate-transform-react-to-markup/releases/tag/v0.3.0


Website (not the docs site) has missing fonts

Bug description 🐞
The public website is missing fonts which causes the text to be rendered in a default serif font.
Steps to reproduce
Navigate to the website, see the 404 errors for the fonts.
Expected behavior
The fonts should probably exist, or be replaced with a native default (presumably a sans-serif font family).
Example repository
No response
Anything else?
I couldn't find a better project in the Terrakube org to report this to.

Thank you for reporting the issue @johnkeates, we will try to fix it


python37Packages.stripe: 2.21.0 -> 2.27.0

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/python3.7-stripe/versions.
meta.description for python37Packages.stripe is: '"Stripe Python bindings"'.

Checks done (click to expand)

built on NixOS
/bin/sh passed the binary check.
1 of 1 passed binary check by having a zero exit code.
0 of 1 passed binary check by having the new version present in output.
found 2.27.0 with grep in /nix/store/drw81h1c2zldsid4bjlm5zcas49hs9qs-python3.7-stripe-2.27.0
directory tree listing: https://gist.github.com/b9a60dacf2d8998e55246682a23f173f
du listing: https://gist.github.com/b0e9a04603bb076dd5bb762ebaeca52c

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

8 total rebuild path(s)
2 package rebuild(s)
2 x86_64-linux rebuild(s)
2 i686-linux rebuild(s)
2 x86_64-darwin rebuild(s)
2 aarch64-linux rebuild(s)
First fifty rebuilds by attrpath
python27Packages.stripe
python37Packages.stripe

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/drw81h1c2zldsid4bjlm5zcas49hs9qs-python3.7-stripe-2.27.0 \
  --option binary-caches 'https://cache.nixos.org/ https://r-ryantm.cachix.org/' \
  --option trusted-public-keys '
  r-ryantm.cachix.org-1:gkUbLkouDAyvBdpBX0JOdIiD2/DP1ldF3Z3Y6Gqcc4c=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(r-ryantm's Cachix cache is only trusted for this store-path realization.)
Or, build yourself:
nix-build -A python37Packages.stripe https://github.com/r-ryantm/nixpkgs/archive/6ca08c9d66031a2b79cc1402c80a9c23baf11f5f.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/drw81h1c2zldsid4bjlm5zcas49hs9qs-python3.7-stripe-2.27.0
ls -la /nix/store/drw81h1c2zldsid4bjlm5zcas49hs9qs-python3.7-stripe-2.27.0/bin

Welp, nox-review builds for me, but no depending packages and no tests...
Non-nixos linux x86_64.


Add tests for more loadFromFile functions

Description
The only class with an untested loadFromFile function is sf::SoundBuffer but that class has no tests yet because testing OpenAL code always fails in CI. I've already already started writing tests for Audio module types

Not sure what to make of these Debian jobs failing.


Allow ;, as ending for single line match arm

Hello Rust developers,
I asked this question before on Rust repo, and someone suggested me to make an RFC. I think its concept is very simple, so I would like to ask you to kindly allow me to bypass normal RFC procedure.
For example with this code:
use std::collections::HashSet;

fn main() {
    let mut set = HashSet::new();
    match set.contains(0) {
        true => do_something_which_returns_an_empty_tuple(),
        false => {
            // This call returns a bool, so it must be wrapped inside {}
            set.insert(0);
        },
    }
}

It would be great if ;, is allowed as ending for single line match arm. So above code can be shortened like this:
use std::collections::HashSet;

fn main() {
    let mut set = HashSet::new();
    match set.contains(0) {
        true => do_something_which_returns_an_empty_tuple(),
        false => set.insert(0);,
    }
}

I think the concept is very simple, but it's very convenient for developers. So it would be great if you approve this RFC.
If you require to make a full detailed document (like a normal RFC), please ask me to do so.
Thank you for your hard work,

I worry about the readability, the extra comma is not really that prominent, so it's easy to overlook it. I do agree that it looks bulky with the {}, but at least one can know that it is a boolean.

If you require to make a full detailed document (like a normal RFC), please ask me to do so.

Sorry, but this is almost certainly required, even for a relatively simple proposal. I would probably wait to get enough feedback (e.g. a pre-RFC) before writing a full RFC, though. Another place to get feedback on proposals is internals.rust-lang.org.

It would be great if ;, is allowed as ending for single line match arm.

More details would be nice. Under what circumstance is this allowed? Does it allow only a single statement or can I do something like false => let x = foo(); bar(x);,? Is it every syntactically ambiguous?
FWIW, I have often wanted something like this for doing something like Patter(x) => println!("{:?}", x);, without the whole thing getting reformatted.

you may also want to reach out to @rust-lang/wg-grammar , as they may be able to provide insight into whether this change is feasible or not, given the constraints they want to maintain (or lift) on the structure of the formal grammar

@pnkfelix  Your link is broken. Do you mean https://github.com/rust-lang-nursery/wg-grammar ?

@iago-lito as far as I know the link I gave is attached the current roster of the grammar working group (WG), and the link you gave is where that group stores their notes.

@pnkfelix It's not really WG-grammar's role to think about the future of Rust's grammar; just its past (specification, not new design).

I see a few ways to do this:

Introduce a new syntactic category expr_opt_semi ::= expr ";"? ; just for the RHS of match. The stmt category is redefined to take expr_opt_semi (which corresponds to both StmtKind::Expr and StmtKind::Semi.

Let the RHS of match take a stmt. This will allow things like x => ;, and x => let y = 1;,

Ways not to do it:

Introduce expr ";"? an expression form at type (). This would allow things like foo(do_stuff();). I think this is a future compatibility hazard in the sense that it becomes difficult to allow fn foo() = bar; since ; would need to terminate the function definition and also contain the expression bar;.

Introduce ; as a binary operator on expressions, e.g. 1 ; 2 -- While this is the cleanest way to achieve what is sought after, we also allow let x = 1; 2; today which would be ambiguous in meaning with ; as a binary operator. Thus you'd need to disambiguate in favor of the current meaning (let x = 1;) 2;.

Overall, while I see the appeal of pat => expr;, (I've certainly been in situations where it was useful), the most realistic way to implement it also does not achieve any form of consistency but rather makes the language more grammatically inconsistent. I'm therefore skeptical of this change overall. A more fruitful avenue would be to suggest a change in style for simple cases of pat => { expr; }.

[off-topic] @pnkfelix That link will only work for those who are members of the Github org. For me, it is a 404.

Ah thanks for the heads up @mark-i-m

Beginner opinion so it might be worthless, but : both symbols are so close that I overlooked it the first time I read the title of the proposal. Also, I think if I stumbled on a piece of code featuring this, I would think it's a syntax error so I would not put it in my code. Every language has its features, but ";," looks really wierd to me, as I don't expect anything but a closing curly bracket/nothing after a semicolon.

Thank you everyone for your feedback. I'm sorry that I was kind of busy.
I do agree that it might affect readability in a bad way. Thanks @boastful-squirrel, your feedback is valuable. I didn't try to think from beginners' point of view.
@mark-i-m, this works for me:
Pattern(x) => println!("{:?}", x),

Because println!() returns (). So you just need a single comma at the end, like above.
Thanks @pnkfelix, I would try to reach them there, but currently I'm afraid this might happen: I would post new thread there, and would revisit that thread weeks later. That would not be good for everyone involved in.
Now my thinking is: I would use drop() like this:
use std::collections::HashSet;
fn main() {
    let mut set = HashSet::new();
    match set.contains(&0) {
        true => do_something_which_returns_an_empty_tuple(),
        false => drop(set.insert(0)),
    }
}

Benefits are:

Code viewers can clearly see the intention of the drop() line: the original coder wanted to drop that value.
drop() does not easily cause misread; while ;, clearly does. Especially since developers often work for long hours. The last hours of the day might cause a lot of problems with ;,.
No need for {}.

From that I think it would be best if this issue be closed. However since it got some attention, I'll wait for some time...
Thank you again everyone,


fix(build): include oxygen-basic-utilites in lib

This PR adds the oxygen-basic-utilities for xerces in the lib folder when building with ant.
Fixes #1083

@bwbohl Do we need to enclose it in a condition that checks for Windows, or is it OK on all systems?

It works on Windows now. @ahankinson did you text, too?
Finally fails on building the HTML Guidelines due to the login issue.


Scene unit tests crash tab in Firefox 51

Run them here: http://cesiumjs.org/releases/1.29/Specs/SpecRunner.html?spec=Scene%2FScene
Tested on Windows with Firefox 51 and Nightly (54).
This does not happen in FF 50 on Mac.
This is likely due to the WebGL 2 updates in FF 51.  Will do more investigation before submitting a FF issue.
via @hpinkos
CC @jdashg

I ran this test in "safe mode" on Firefox and it doesn't crash the tab. I get the following failure: Scene/Scene debugShowBoundingVolume draws a bounding sphere.
Continuing to investigate.

Scene debugShowBoundingVolume draws a bounding sphere

Looks like a pretty fragile test.  Perhaps the camera local is not ideal, e.g., it is too close to the sphere and not catching the wireframe.
Check out the other debugShowBoundingVolume tests and also consider using a non-rendering test with a spy instead of checking the rendered pixel.

I fixed this test by changing the position/radius of the bounding sphere. Seems to be a lot more stable now. Haven't pushed the code yet.
I've dug into the crash in firefox. Turns out its coming from https://github.com/AnalyticalGraphicsInc/cesium/blob/master/Specs/Scene/SceneSpec.js#L296.
The last point I could go into was the render call in globeDepth. Its crashing at drawElements. At first look the parameters seem to hold good.
continueDraw (Context.js:927)
Context.draw (Context.js:959)
DrawCommand.execute (DrawCommand.js:503)
GlobeDepth.executeCopyDepth (GlobeDepth.js:211)
executeCommands (Scene.js:1832)
executeCommandsInViewport (Scene.js:2201)
updateAndExecuteCommands (Scene.js:2059)
render (Scene.js:2512)
Scene.render (Scene.js:2551)
renderAndReadPixels (addDefaultMatchers.js:436)
renderEquals (addDefaultMatchers.js:443)
compare (addDefaultMatchers.js:232)

<async stuff from test>

SceneSpec.js:296

To test (and not make firefox crash), add a debugger; statement where necessary, and then when running the URL, click F12 so that the debug point gets caught.

Fixed in https://github.com/AnalyticalGraphicsInc/cesium/pull/6290


Uncaught TypeError: undefined is not a function

Isn't it Object.defineProperty in function define ?

I haven't run that code yet :smiley:


Allow multiple dataKey so properties can be loaded from multiple keys

For Property and Yaml, it would be nice to support multiple dataKeys to allow various properties to be stored in different keys potentially.

Not sure why the checks failed, it appears like an issue with gradle dependency resolution

Seems the dependency failures are happening on the master as well, not sure what is needed to get done to fix that.  But are there any thoughts around this pull request?


Add Dockerfile

I quickly built a Dockerfile to run this in. There is tons of room for improvement on this, but it's a start.

If JuiceBox Local IP is defined, it will run a telnet script to get the EnelX Server and Port
If DST not defined, it will use dig with the CloudFlare DNS (<IP_ADDRESS>) to get the IP address of the EnelX Server and avoid a DNS lookup loop
If SRC is not defined, it will use ifconfig to get the Local IP address of the Docker

Right now it clones the repo from snicker/juicepassproxy instead of copying from local.
Example Docker Compose:
version: '3.8'

networks:
  default:
    driver: bridge
    ipam:
      config:
        - subnet: <IP_ADDRESS>/24

services:
  juicepassproxy:
    build: ./juicepassproxy
    hostname: juicepassproxy
    container_name: juicepassproxy
    restart: unless-stopped
    logging:
      driver: json-file
    ports:
      - 8047:8047/udp
    environment:
      - JUICEBOX_LOCAL_IP=<IP_ADDRESS>
      - MQTT_USER=mosquitto
      - MQTT_PASS=***
      - MQTT_HOST=<IP_ADDRESS>
      - DEBUG=true
    volumes:
      - /etc/localtime:/etc/localtime:ro

Docker Environment Variables:

Variable
Required
Default

SRC
No
If not defined, it will attempt to get the Local Docker IP. If unsuccessful, it will default to <IP_ADDRESS>

DST
No
If not defined, it will attempt to get the IP of the EnelX Server. If unsuccessful, it will default to <IP_ADDRESS>

JUICEBOX_LOCAL_IP
No
If defined, it will attempt to get the EnelX server and Port using Telnet. If unsuccessful, it will default to the EnelX Server and Port below.

ENELX_SERVER
No
juicenet-udp-prod3-usa.enelx.com

ENELX_PORT
No
8047

MQTT_HOST
No
<IP_ADDRESS>

MQTT_PORT
No
1883

MQTT_USER
No

MQTT_PASS
No

MQTT_DISCOVERY_PREFIX
No
homeassistant

DEVICE_NAME
No
JuiceBox

DEBUG
No
false

looks awesome- will you add the example compose instructions to README.MD and I'll merge?

@snicker Ready for review. I'll defer to you if you'd prefer to have the user clone the repo locally on the machine (which is more the standard way) as suggested by @michaelwoods. I like the "auto-install" way I proposed for users that don't intend to do any build themselves.
Ultimately, it would probably be best to get this published to Docker Hub or similar to make it even easier to install. Maybe even make it a HomeAssistant AddOn. If the solution proposed in #7 works, it would be pretty elegant and end-user friendly (at least for End Users comfortable with Home Assistant).

given the context i am also fine with cloning at build, but it should mean that we need to implement proper versioning on docker hub upon updates and releases ( and this is pretty scrappy right now)
will merge


fix #121: rename rslinac to rshellweg

the git links still go to https://github.com/radiasoft/rslinac, there are a few links in the README and other places in the code


Move to use a default Cmdliner.term rather than the usage function

Fixes #216
The inspiration comes from this example
Though use of ret is discouraged.
But I didn't find any alteratives.

Thanks, I've squashed your commit and add you as a co-author as you end up writing about half of the modifications of this PR.

I just force-pushed a new version of the commit just to change the message: the message was misleading, as we don’t add a default Cmd, the default is a Term.t.


remove x y z columns from ciftify_peaktable output

maybe throw x,y,z mapping into an internal function so that it can be used for forward inference later on..

Done


Documentation issue

In the Runtime section of the documentation for installation it instructs you to create a /opt/sc4s/env_file and to add the following however it is blank and does not provide the values or any example. Please see the screen shot below. Thoughts?
Thank you

@declan727,
Thank you for bringing this up.
We will review on this as well as in other docs for blank content.


No useful metadata

workflow.knime does not contain any useful metadata such as name or description.
Similarly there is nothing very useful in workflowset.meta

d90a1ba5de5a0edc5fd278da0385de175e0da7ed adds more information (as much as is possible now) to workflowset.meta.


refactor!: Servers are now referred to as guilds

Summary
Too many occurrences to count. All instances where Server was used to refer to a Guild object have been replaced to correctly use guild. This includes models, methods, and events.

Moving this into the icebox. This change will be further discussed in DAPI and decided on later in the development cycle of 4.0


ENH: Improvement of the stacksOrdering

Using the information on the number of rejected slices (in practice, number of NaN obtained from the motion index computation) in manual masks to penalize a stack in the optional stacks_ordering interface taking into account motion-related intensity artifacts like signal dropouts.

Following your suggestion, the proportion of nans has been computed in the StackOrdering interface e.g.:
https://github.com/Medical-Image-Analysis-Laboratory/mialsuperresolutiontoolkit/blob/e5626f6e8002eb7fc97ef0fd1377e896ec365658/pymialsrtk/interfaces/preprocess.py#L863


Work on stability of AMR-Wind pre-processing

May be taking too big of a step. May be able to do something even better than just smaller steps. May be able to dynamically set the pseudo timestep.


Webjob Logging Retention Policy

I would like to retain my log data beyond 7 hours. Right now, when I log into the WebJob details 'website' I only see 7 hours of logs.
I have configured my webjob to use Table and Blob logging from the application manager. When asked, I set my detention policy to 14 days. After all is said and done my azure webjob 'website' only retains logs for 7 hours.

Original : https://github.com/Azure/azure-webjobs-sdk/issues/574

Is that for a continuous WebJob or a triggered WebJob? See https://github.com/projectkudu/kudu/wiki/Web-jobs#configuration-settings and try changing WEBJOBS_HISTORY_SIZE.

@davidebbo
Thanks for reaching out. These are triggered WebJobs. I have adjusted my config in the Azure Website Configuration portal and in the app.config file.
Did I do it right ?
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="WEBJOBS_HISTORY_SIZE" value="999"/>
  </appSettings>

You should just set it in the portal. Yes, your setting key/values look good. This setting only governs triggered jobs, and is the number of history entries that will be retained. The default is 50.

Right, this will have no effect in your app.config. It must be an Azure AppSetting, which you can set in Portal (or API, etc...)

This is working, thanks everyone !


Build failed on current version OSX

Brew part is ok:
1. brew install snappy
Result:
==> Pouring snappy-1.1.7_1.high_sierra.bottle.tar.gz
2. git Part is ok
3. make install -C ldb its NOT ok
Result:
make -C ./deps/leveldb
make[1]: *** No targets specified and no makefile found.  Stop.
make: *** [leveldb] Error 2
Unfortunately I am not a make-scripts expert :-(.
Thx

It seems this is not limited to OSX, but rather the Makefile for LevelDB was removed from the master branch recently.
https://github.com/google/leveldb/commit/8e75db8623703cdc25ec3cd06f82129296672489

Yep I have branch v2.3.0 which will move everything to cmake.


Environment building enhancement

Is your feature request related to a problem? Please describe.
When building quisp on docker, we have a lot of things to do.
Describe the solution you'd like
Write a shell script to shorten it.
Describe alternatives you've considered
I'm thinking the running script is going to be more clear.
Additional context
Work this issue in the EnvironmentEnhancement branch.

I need to update document also.

https://github.com/sfc-aqua/quisp/tree/EnvironmentEnhancement

Docker version is now stable. Close this once.


reCaptcha error

Hello,
I started to receive the below error message few hours ago, is it something you went through lately ?
RuntimeError: Cloudflare reCaptcha detected, unfortunately you haven't loaded an anti reCaptcha provider correctly via the 'recaptcha' parameter.
here is an example of url: https://c.japscan.to/lel/Kingdom/603/06.jpg
Let me know if I can help for debugging/testing

The great cat and mouse game with cloudflare continues...

they appear to have flagged ECDHE-ECDSA-AES256-GCM-SHA384 cipher, I'll push a fix.

8e96e4761634b211c096a528f96044e5931c14c9 should resolve your issue.

working like a charm. as always: thank you!


How to render object on cylinder

Hi!
I'm going to implement an application that allows an object (Andy) to rotate along the side of the cylinder.
I'd like some advice on this. Specifically, the conditions and questions are as follows.
Overview of the target App

Conditions
Cylinder

Rendering using geospatial API
Scalable radius and height

Andy

Rendering on the side of the cylinder
Rotatable along the side of the cylinder

Questions
1. How to scale the radius or height of the cylinder?
As far as I know, ArModelNode is the only one that supports geospatial API.
The ArModelNode can be scaled through a scaleToUnits, but this changes the overall size.
What I want is to change the radius or height separately according to the user's request.
So, I wonder how to specify the scales for the x, y, and z axes individually for the model.
2. How to rotate Andy along the side of the cylinder?
I think directly rendering the Andy model along the side of the cylinder model seems difficult.
So I divide this process into two steps.

Rendering Andy as away as the radius from the centerline of the cylinder.
Rotate Andy relative to the centerline of the cylinder.

For the above steps, I would like to ask for a way to render and rotate the model
relative to the axis outside the object (here, the centerline of the cylinder).
Thanks very much for supporting this wonderful library 👍.

Hi,
Very interesting and clear question (even if you should better put it in the Discussion section).
What I would suggest is having an ArModelNode with Plane placement that displays a cylinder coming from a glb for now.
For now because it will soon (v1.0.0) be easier and more efficient to use a Cylinder Geometry (It will look like this: https://gist.github.com/ThomasGorisse/7e07681e6aae794982ced3bc61af7f8d)
Even if well defined inside Blender, it's not much more consuming to have it as a gltTF.
You can then change its dimensions using the
https://github.com/SceneView/sceneview-android/blob/b7341cced9c0d7ac036d3a039a5c5fa9a8d39c1a/sceneview/src/main/java/io/github/sceneview/node/Node.kt#L184
Keep x and z at 1.0f and adjust the height with scale.y
For the Andy part, depending on if you want your Cylinder to rotate with him or not, you can simply add it has a child or as sub-child ModelNode:
https://github.com/SceneView/sceneview-android/blob/b7341cced9c0d7ac036d3a039a5c5fa9a8d39c1a/sceneview/src/main/java/io/github/sceneview/node/NodeParent.kt#L44
If you want it to be independent from the Cylinder, add the Cylinder as a child of your ArNode instead of loading the glb at the ArNode level.
For the rotation part, all you have to do is to put it at a certain distance using
https://github.com/SceneView/sceneview-android/blob/b7341cced9c0d7ac036d3a039a5c5fa9a8d39c1a/sceneview/src/main/java/io/github/sceneview/node/Node.kt#L143
from the pivot ArNode and then rotate the ArNode.
You can also have a look at the https://github.com/SceneView/sceneview-android/blob/b7341cced9c0d7ac036d3a039a5c5fa9a8d39c1a/sceneview/src/main/java/io/github/sceneview/node/Node.kt#L734
function for controlling what is Andy looking at during rotation.
Pay attention to the fact that depending on your ArNode.placementNode the rotation of your ArNode might be influenced by ARCore positionning.
For that reason you should have something like this:
ArModelNode
    > CylinderNode
    > PivotNode
       > AndyNode

Thanks for your great help! And I'm sorry for using the wrong tab😂.
I have some more questions.

For the rotation part, all you have to do is to put it at a certain distance using
var position: Position = position

from the pivot ArNode and then rotate the ArNode.

The code seems to adjust the position by directly entering the value.
I didn't specify it above, but I want is rotating Andy through the user's gesture,
so the question is,
Q. How to fix the distance (here, radius) between the pivot and Andy during interaction with the user?
And I have a simple question about the relationship between the child and parent node.
Q. If I modify the scale of the parent, does the unit of the scale and position of the child are affected?

I solved it in the way you suggested before. Thx!


Add lwesp_mfg_read for reading back certificate stored in MFG area

I added the feature for reading back the certificates stored in the MFG area.

Added the function lwesp_mfg_area in lwesp_flash.c.
Added mechanism for receiving the cert from ESP and storing it in the user supplied buffer.

It works fine, tested it with different namespaces and keys.
I am not sure on how to detect the beginning of the actual certificate in the input_process. Currently I am searching for "-----BEGIN CERTIFICATE-----\n" in the input process and then down-counting the received bytes until it matches the supplied length.
Feedback is very much appreciated!

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Why limit yourself to CERTIFICATE only?

I needed to read back the certificate in order to check if the certificate was already written to ESP device. Without this mechanism you would need to write the certificate every time the device is booting, which may corrupt the flash memory too early.
So, I only write the certificate if its non-existing or needs to be updated.
With the limitation I agree. It would not work with public or private key.
I will try to change this limitation :)

Itbwouod be better to implement generic read, where you can specify length and (if AT supports?) offset, which is then loaded to user buffer.
You can then do whatever you want with the received data.

In my view, and I will work on the implementation, there shall be a generic lwesp_mfg_read command that can read the data from partition at specific start address and offset.
Then, what you could do, is to analyze your certificate (that you expect to be loaded on ESP), and you find your BEGIN CERTIFICATE and END CERTIFICATE positions and data lengths.
Then you could do lwesp_mfg_read(...., buffer, max_read_len, offset) and you analyze if read data was BEGIN CERTIFICATE and you do the same for END CERTIFICATE.
Actually, even better would be if ESP could perform some integrity check if the data it holds and then we compare with expected values, if there is a match. I asked for this feature already: https://github.com/espressif/esp-at/issues/513#issuecomment-1656705633

Yes, it would be great to have a generic read option.
But, as you already have the implementation for the different namespaces and keys for the different certificates, we could use this to read the certificate.
If the lwesp library then reads the ceritificate, it does not check against anny string like '---BEGIN CERTIFICATE---' etc. It just copies the received content into the user supplied buffer. It is then up to the user, to check the buffer for validity.
What do you think?
An then additionally add a generic read option with start adress + length for reading the flash area of the ESP device.

I have implemented the read option, now to check if your certificate is there, you simply find the start position of your certificate -- BEGIN CERTIFICATE--- and --END CERTIFICATE-- in your own string (that you keep as a backup, in case ESP doesn't have it loaded). You have the length of these strings and position from the start of array.
Then simply use mfg to read twice, with 2 different offsets and length, and compare if read is successful
This also allows reading private key, which may be ECDH or RSA (so we need to know which one we look at...)


top-level external option for setting external modules for both dev and build

Description
There is an option called build.rollupOptions.external, but it is only for vite build. Currently, there is no way to set external modules both for dev and build.
Suggested solution
Add a top-level external option, which set external modules for both dev and build (including deps optimizer as well). And the default of build.rollupOptions.external should be changed to be the same as the top-level external option.
Alternative
No response
Additional context
A minimal example that needs to set external modules for both dev and build, is to use a javascript library (ESM format) hosted on CDN(or any other server), just like this:
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Vite App</title>
    <script type="importmap">
      {
        "imports": {
          "lodash"<EMAIL_ADDRESS>        }
      }
    </script>
  </head>
  <body>
    <script type="module">
      import { random } from 'lodash'
      console.log('random number', random(1, 5))
    </script>
  </body>
</html>

Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

Currently, there is no way to set external modules both for dev and build.

I guess you can use a plugin to do this (https://github.com/vitejs/vite/issues/12751#issuecomment-1498973646).

@sapphi-red
Cool, I'll try that, but is it documented in vitejs.dev?
BTW, writing a plugin to do such a thing makes me feel weird, I still think it worse to have a standalone option.

This could be an option to standardize externalizing things, I've put some related issues regarding this in the team board for discussion. Related: https://github.com/vitejs/vite/pull/11854#issuecomment-1500453147

I realized this is requesting for the same feature as https://github.com/vitejs/vite/issues/6582. Closing this in favour of that as it's older, and has a few reactions on the issue. I've left an update of the status of the feature at https://github.com/vitejs/vite/issues/6582#issuecomment-1546954468