Cannot re-add RLC511 in HA

When i try to add my RLC511 camera to homeassistant I get this error " Errore inaspettato (unexpected error)" and cannot add it!
This camera was already in HA but, after a period (1month) that i leave it switched-off (with also others camera) and i power-up them i get errors in HA and all images was unavailables (from all cameras).. so i try to disable and re-enable the first one,  in the hope to come back to the normal behaviour.. because this test on this camera failed i decided to remove all camera and re-install them in Homeassistant... For the other cameras this action has solved the problem but for the RLC511 i'm getting continously that error.. (the ip of the camera is correct and the ping to it works well)
my HA is:  Home Assistant 2022.7.0 Frontend 20220706.0 - latest
the firmware of the cam is v<IP_ADDRESS> 142_20121803
this from the home-assistant.log when i try to re-add the camera (2 times, the second one without https enable):
_2022-08-14 11:13:25 ERROR (MainThread) [custom_components.reolink_dev.config_flow] Unexpected exception
Traceback (most recent call last):
File "/home/homeassistant/.homeassistant/custom_components/reolink_dev/config_flow.py", line 79, in async_step_user
self._abort_if_unique_id_configured()
File "/srv/homeassistant/lib/python3.9/site-packages/homeassistant/config_entries.py", line 1309, in _abort_if_unique_id_configured
raise data_entry_flow.AbortFlow("already_configured")
homeassistant.data_entry_flow.AbortFlow: Flow aborted: already_configured
2022-08-14 11:14:04 ERROR (MainThread) [custom_components.reolink_dev.config_flow] Unexpected exception
Traceback (most recent call last):
File "/home/homeassistant/.homeassistant/custom_components/reolink_dev/config_flow.py", line 70, in async_step_user
self.info = await self.async_validate_input(self.hass, user_input)
File "/home/homeassistant/.homeassistant/custom_components/reolink_dev/config_flow.py", line 138, in async_validate_input
if not await self.base.connect_api():
File "/home/homeassistant/.homeassistant/custom_components/reolink_dev/base.py", line 220, in connect_api
if not await self.api.get_settings():
File "/srv/homeassistant/lib/python3.9/site-packages/reolink/camera_api.py", line 496, in get_settings
response = await self.send(body)
File "/srv/homeassistant/lib/python3.9/site-packages/reolink/camera_api.py", line 1652, in send
if not await self.login():
File "/srv/homeassistant/lib/python3.9/site-packages/reolink/camera_api.py", line 845, in login
response = await self.send(body, param)
File "/srv/homeassistant/lib/python3.9/site-packages/reolink/camera_api.py", line 1714, in send
raise ApiError(
reolink.exceptions.ApiError: API returned HTTP status ERROR code 400/Bad Request
_

Not sure if you found the proper answer to this issue. Solution is listed at #516
The final line in the error mentioning "API returned HTTP status ERROR code 400/Bad Request" is likely due to the Home Assistant's URL not be set at all/set incorrectly.

Click Settings on side navigation in Home Assistant
Click System
Click Network
Update the URL text field(s), located about 3/4 of the way down on the page

Mine were blank, adding in the same address as I access HA in a browser http:/<IP_ADDRESS>:8123 resolved this error.
So I got passed the issue you have and now I'm at the following error, trying to find the answer in threads here:
File "/usr/local/lib/python3.10/site-packages/aiohttp/streams.py", line 616, in read     await self._waiter aiohttp.client_exceptions.ServerDisconnectedError: Server disconnected
Everything I'm coming across leads to a motion detection issue.


21bcab02

Issue/Feature Description:
authentication error
Why this issue to fixed / feature is needed(give scenarios or use cases):
no proper internet connection
How to reproduce, in case of a bug:
a strong wifi support is needed
Other Notes /  Environment Information: (Please give the env information, log link or any useful information for this issue)
@kalaiselvikks76

@kalaiselvikks76

@kalaiselvikks76

Nice issue to be solved!,.. 👏👏👏


List of cells with symbolic tail not supported

Definition:
module LISTOFCELLS
  imports COLLECTIONS
  imports INT

  configuration <k> $PGM:KItem </k>
                <cell> <inner> 0 </inner> </cell>
                <cellList> .List </cellList>

  syntax KItem ::= "saveCell"
                 | "dropCell"

  rule <k> saveCell => . ...</k>
       <cell> CELL </cell>
       <cellList>.List => ListItem(CELL) ...</cellList>

  rule <k> dropCell => . ...</k>
       <cellList> ListItem(_) => .List  ...</cellList>

endmodule

Spec:
requires "ListOfCells.k"

module LISTOFCELLS-SPEC
  imports LISTOFCELLS

  rule <k> saveCell ~> dropCell => . </k>
       <cell> <inner> _ </inner> </cell>
       <cellList> _ </cellList>

endmodule

Result:
Failed substitution coverage check!
...
<generatedTop>
  <k>
    dropCell
  </k>
  <cell>
    <inner>
      _0
    </inner>
  </cell>
  <cellList>
    ListItem ( <cell>-fragment <inner>
      _0
    </inner> </cell>-fragment )
    _1
  </cellList>
</generatedTop>

Passing version of spec:
  rule <k> saveCell ~> dropCell => . </k>
       <cell> <inner> _ </inner> </cell>
       <cellList> .List </cellList>

@ttuegel The error is
kore-exec: [2020-03-24 15:00:47.549958461] Error (ErrorException): While applying axiom:
    left:
        /* Fl Fn D Spa */
        Lbl'-LT-'generatedTop'-GT-'{}(
            /* Fl Fn D Sfa */
            Lbl'-LT-'k'-GT-'{}(
                /* Fl Fn D Sfa */
                kseq{}(
                    /* Fl Fn D Sfa Cl */
                    LbldropCell'Unds'LISTOFCELLS'Unds'KItem{}(),
                    /* Fl Fn D Sfa */ VarDotVar1:SortK{}
                )
            ),
            /* Fl Fn D Sfa */ Var'Unds'10:SortCellCell{},
            /* Fl Fn D Sfa */ Var'Unds'2:SortGeneratedCounterCell{},
            /* Fl Fn D Spa */
            Lbl'-LT-'cellList'-GT-'{}(
                /* Fl Fn D Spa */
                Lbl'Unds'List'Unds'{}(
                    /* Fl Fn D Spa */
                    /* builtin: */
                    LblListItem{}(/* Fl Fn D Sfa */ Var'Unds'00:SortKItem{}),
                    /* Fl Fn D Sfa */ VarDotVar2:SortList{}
                )
            )
        )
    requires:
        /* D Sfa */ \top{SortGeneratedTopCell{}}()
    existentials:
        []
    right:
        /* Fl Fn D */
        Lbl'-LT-'generatedTop'-GT-'{}(
            /* Fl Fn D Spa */
            Lbl'-LT-'k'-GT-'{}(/* Fl Fn D Sfa */ VarDotVar1:SortK{}),
            /* Fl Fn D Sfa */ Var'Unds'10:SortCellCell{},
            /* Fl Fn D Sfa */ Var'Unds'2:SortGeneratedCounterCell{},
            /* Fl Fn D */
            Lbl'-LT-'cellList'-GT-'{}(
                /* Fl Fn D */
                Lbl'Unds'List'Unds'{}(
                    /* Fl Fn D */ Lbl'Stop'List{}(),
                    /* Fl Fn D Sfa */ VarDotVar2:SortList{}
                )
            )
        )
    ensures:
        /* D Sfa */ \top{SortGeneratedTopCell{}}()
from the initial configuration:
    \and{SortGeneratedTopCell{}}(
        /* term: */
        /* Fl Fn D Sfc */
        Lbl'-LT-'generatedTop'-GT-'{}(
            /* Fl Fn D Sfa Cl */
            Lbl'-LT-'k'-GT-'{}(
                /* Fl Fn D Sfa Cl */
                kseq{}(
                    /* Fl Fn D Sfa Cl */
                    LbldropCell'Unds'LISTOFCELLS'Unds'KItem{}(),
                    /* Fl Fn D Sfa Cl */ dotk{}()
                )
            ),
            /* Fl Fn D Sfa */
            Lbl'-LT-'cell'-GT-'{}(
                /* Fl Fn D Sfa */
                Lbl'-LT-'inner'-GT-'{}(/* Fl Fn D Sfa */ Var'Unds'0:SortInt{})
            ),
            /* Fl Fn D Sfa */
            Lbl'-LT-'generatedCounter'-GT-'{}(
                /* Fl Fn D Sfa */ VarDotVar00:SortInt{}
            ),
            /* Fl Fn D Sfc */
            Lbl'-LT-'cellList'-GT-'{}(
                /* Fl Fn D Sfc */
                Lbl'Unds'List'Unds'{}(
                    /* Fl Fn D Sfc */
                    /* builtin: */
                    LblListItem{}(
                        /* Fl Fn D Sfc */
                        /* Inj: */ inj{SortCellCellFragment{}, SortKItem{}}(
                            /* Fl Fn D Sfc */
                            Lbl'-LT-'cell'-GT-'-fragment{}(
                                /* Fl Fn D Sfc */
                                /* Inj: */ inj{SortInnerCell{}, SortInnerCellOpt{}}(
                                    /* Fl Fn D Sfa */
                                    Lbl'-LT-'inner'-GT-'{}(
                                        /* Fl Fn D Sfa */ Var'Unds'0:SortInt{}
                                    )
                                )
                            )
                        )
                    ),
                    /* Fl Fn D Sfa */ Var'Unds'1:SortList{}
                )
            )
        ),
    \and{SortGeneratedTopCell{}}(
        /* predicate: */
        /* D Sfa */ \top{SortGeneratedTopCell{}}(),
        /* substitution: */
        \top{SortGeneratedTopCell{}}()
    ))
with the unifier:
    \and{_PREDICATE{}}(
        /* term: */
        /* D Sfa */ \top{_PREDICATE{}}(),
    \and{_PREDICATE{}}(
        /* predicate: */
        /* Sfc */
        \equals{SortList{}, _PREDICATE{}}(
            /* Fl Fn D Sfc */
            Lbl'Unds'List'Unds'{}(
                /* Fl Fn D Sfc */
                /* builtin: */
                LblListItem{}(
                    /* Fl Fn D Sfc */
                    /* Inj: */ inj{SortCellCellFragment{}, SortKItem{}}(
                        /* Fl Fn D Sfc */
                        Lbl'-LT-'cell'-GT-'-fragment{}(
                            /* Fl Fn D Sfc */
                            /* Inj: */ inj{SortInnerCell{}, SortInnerCellOpt{}}(
                                /* Fl Fn D Sfa */
                                Lbl'-LT-'inner'-GT-'{}(
                                    /* Fl Fn D Sfa */ Var'Unds'0:SortInt{}
                                )
                            )
                        )
                    )
                ),
                /* Fl Fn D Sfa */ Var'Unds'1:SortList{}
            ),
            /* Fl Fn D Spa */
            Lbl'Unds'List'Unds'{}(
                /* Fl Fn D Spa */
                /* builtin: */
                LblListItem{}(/* Fl Fn D Sfa */ Var'Unds'00:SortKItem{}),
                /* Fl Fn D Sfa */ VarDotVar2:SortList{}
            )
        ),
        /* substitution: */
        \and{_PREDICATE{}}(
            /* Spa */
            \equals{SortCellCell{}, _PREDICATE{}}(
                /* Fl Fn D Sfa */ Var'Unds'10:SortCellCell{},
                /* Fl Fn D Sfa */
                Lbl'-LT-'cell'-GT-'{}(
                    /* Fl Fn D Sfa */
                    Lbl'-LT-'inner'-GT-'{}(
                        /* Fl Fn D Sfa */ Var'Unds'0:SortInt{}
                    )
                )
            ),
        \and{_PREDICATE{}}(
            /* Spa */
            \equals{SortGeneratedCounterCell{}, _PREDICATE{}}(
                /* Fl Fn D Sfa */ Var'Unds'2:SortGeneratedCounterCell{},
                /* Fl Fn D Sfa */
                Lbl'-LT-'generatedCounter'-GT-'{}(
                    /* Fl Fn D Sfa */ VarDotVar00:SortInt{}
                )
            ),
            /* Spa */
            \equals{SortK{}, _PREDICATE{}}(
                /* Fl Fn D Sfa */ VarDotVar1:SortK{},
                /* Fl Fn D Sfa Cl */ dotk{}()
            )
        ))
    ))
Failed substitution coverage check!
The substitution (above, in the unifier) did not cover the axiom variables:
    Var'Unds'00:SortKItem{} VarDotVar2:SortList{}
in the left-hand side of the axiom.
CallStack (from HasCallStack):
  error, called at src/Kore/Step/Step.hs:393:6 in kore-<IP_ADDRESS>-4lFJ8DeqQ7K2L4w8Vd0HT5:Kore.Step.Step

@andreiburdusa There is this constraint in the unifier, which is unsolved, and has both the un-solved variables:
        \equals{SortList{}, _PREDICATE{}}(
            /* Fl Fn D Sfc */
            Lbl'Unds'List'Unds'{}(
                /* Fl Fn D Sfc */
                /* builtin: */
                LblListItem{}(
                    /* Fl Fn D Sfc */
                    /* Inj: */ inj{SortCellCellFragment{}, SortKItem{}}(
                        /* Fl Fn D Sfc */
                        Lbl'-LT-'cell'-GT-'-fragment{}(
                            /* Fl Fn D Sfc */
                            /* Inj: */ inj{SortInnerCell{}, SortInnerCellOpt{}}(
                                /* Fl Fn D Sfa */
                                Lbl'-LT-'inner'-GT-'{}(
                                    /* Fl Fn D Sfa */ Var'Unds'0:SortInt{}
                                )
                            )
                        )
                    )
                ),
                /* Fl Fn D Sfa */ Var'Unds'1:SortList{}
            ),
            /* Fl Fn D Spa */
            Lbl'Unds'List'Unds'{}(
                /* Fl Fn D Spa */
                /* builtin: */
                LblListItem{}(/* Fl Fn D Sfa */ Var'Unds'00:SortKItem{}),
                /* Fl Fn D Sfa */ VarDotVar2:SortList{}
            )
        )

I think we have explicit support for this unification case. You should find the hooked-symbol declaration for Lbl'Unds'List'Unds' and make sure that it is hooked to the LIST.concat built-in.

I think we have explicit support for this unification case. You should find the hooked-symbol declaration for Lbl'Unds'List'Unds' and make sure that it is hooked to the LIST.concat built-in.

Does this mean it is hooked?

There should be a unit test in Test.Kore.Builtin.List which checks the unification concat(item(X), XS) = concat(item(Y), YS). If not, let's add it.

This is what I mean by the structure of the list being concrete or symbolic: here is a list where the structure of the head is concrete and the tail is symbolic:
ListItem(X₁) ListItem(X₂) ListItem(X₃) Xs:List

+----+----+----+-------
| X₁ | X₂ | X₃ | Xs ...
+----+----+----+-------

The structure of the list is: three elements, followed by a list of unknown size. Even if the Xᵢ are symbolic terms, we know there are three elements at the head of the list; that's the "concrete" part of the structure. On the other hand, the tail is completely symbolic, we don't know anything about the structure of that part of the list.


Improve our ability to surface user errors on the page

We should improve the ability for end users / admins to visualize and drill into errors on the status page, such as a DAG view of errors, better insight into existing credentials, etc.

Tagging @begelundmuller for additional context

Could also be related to this PRD proposal I threw together earlier

Additional consideration - do we eventually allow some level of ability to retrieve / search / download logs for admins to try to self-troubleshoot issues they are facing? This can also include better and more seamless propagation of source-level errors that are being pushed to Rill.


How to protect the GUI session of WISTAR with your credentials so that no one can delete your topologies

How to add username and password for the WEBUI so that no one should make any changes to your topologies. The reason, I am asking because today someone deleted my topology which was building for past one week. This is really needed for me.
Regards,
Ankur

You can enable basic webauthentication on your webserver. If you use Apache as the webserver you can simply follow the instructions here: https://httpd.apache.org/docs/2.4/howto/auth.html
This is authentication against the webserver itself, the Wistar instance behind the webserver is still shared between all users that can authenticate.

I am able to bring up the apache server but the authentication is not working for me.

Regards,
Ankur Kher

Please provide some directions?

@akher1 today Wistar has no authentication methods enabled as it is a lab tool only. The suggestion made by @Sidiox is by far the easiest way to provide some level of authentication.
I suspect you haven't created the file .htaccess on /opt/wistar/wistar-master.
Alternatively, but far more complex, you can enable authentication in DJango. But this will require extra coding.
https://docs.djangoproject.com/en/2.2/topics/auth/default/


Relaunch

Great work, as always :)
I have some minor nitpicks though:

While i like the intersectionObserver approach for lazy loading, there is native support for this via loading="lazy" in all browsers except safari (which is ok, as I consider this progressive enhancement). See https://web.dev/browser-level-image-lazy-loading/ or https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-loading - imho this would be a more performant and less complex solution.
We're using PNG for most images right now. This is ok for illustration and graphics, that have complex shadows or gradients. All other graphics would be better in SVG. Pictures like the ones we use on the team page would be best in JPEG.

Have a nice Sunday :)
Cheers!

Thank you :)
Now using the native lazy loading approach. Also removed the PlaceholderImage component to serve different sizes of the image for mobile. Blurred Preview may come back at some point.
Also converted some Images to jpg and our logo is now svg.
Cheers


Add the data path filtering for policy verdict logs.

Generate policy verdict logs only if the endpoint does have a network policy
enforced on the direction of the traffic.
Signed-off-by: Zang Li<EMAIL_ADDRESS>

This change is

Coverage decreased (-0.0002%) to 45.617% when pulling f2ee7a3049baf828d58ac82597b32d06c0fd228a on lzang:master into 9c346306a329895e4507d377dd43167005bfcbaf on cilium:master.

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

From here:
https://jenkins.cilium.io/job/Cilium-PR-Ginkgo-Tests-Validated/17796
Through here:
https://jenkins.cilium.io/job/Cilium-PR-Ginkgo-Tests-Validated/17796/testReport/junit/Suite-k8s-1/11/K8sDatapathConfig_DirectRouting_Check_direct_connectivity_with_per_endpoint_routes/
Into the zip, into the cilium logs for pod cilium-cllgt, filtering out all level=debug / level=info, I found repeats of this set of complaints:
2020-03-09T02:54:00.2459225Z level=error msg="Command execution failed" cmd="[tc filter replace dev lxc5ea689f5bbdb ingress prio 1 handle 1 bpf da obj 564_next/bpf_lxc.o sec from-container]" error="exit status 1" subsys=datapath-loader
2020-03-09T02:54:00.245943042Z level=warning msg="Log buffer too small to dump verifier log 16777215 bytes (10 tries)!" subsys=datapath-loader
2020-03-09T02:54:00.24595512Z level=warning msg="Error fetching program/map!"  containerID=70678a65fa datapathPolicyRevision=0 desiredPolicyRevision=1 endpointID=564 file-path=564_next_fail identity=58084 ipv4=<IP_ADDRESS> ipv6= k8sPodName=default/test-k8s2-8d47f6c76-mpxvg subsys=endpoint
2020-03-09T02:54:00.264422446Z level=warning msg="Regeneration of endpoint failed" bpfCompilation=1.389299726s bpfLoadProg=13.921122438s bpfWaitForELF=1.389554451s bpfWriteELF="211.137µs" buildDuration=15.316466496s containerID=70678a65fa datapathPolicyRevision=0 desiredPolicyRevision=1 endpointID=564 error="Failed to load tc filter: exit status 1" identity=58084 ipv4=<IP_ADDRESS> ipv6= k8sPodName=default/test-k8s2-8d47f6c76-mpxvg mapSync="21.086µs" policyCalculation="162.228µs" prepareBuild="332.159µs" proxyConfiguration="4.986µs" proxyPolicyCalculation="132.499µs" proxyWaitForAck=0s reason="updated security labels" subsys=endpoint waitingForCTClean=2.773349ms waitingForLock=883ns
2020-03-09T02:54:00.264678764Z level=error msg="endpoint regeneration failed" containerID=70678a65fa datapathPolicyRevision=0 desiredPolicyRevision=1 endpointID=564 error="Failed to load tc filter: exit status 1" identity=58084 ipv4=<IP_ADDRESS> ipv6= k8sPodName=default/test-k8s2-8d47f6c76-mpxvg subsys=endpoint

I'm not sure why the Jenkins CI didn't identify any errors/warnings in the logs, but I saw them there.
This particular case I think we've seen before on the net-next kernel image, do you recall the workaround there?
For the other two failures from that link, they look like policy-related CI flakes. Given the timing they may have been resolved by #10493.
At a glance from the latest failures, I see endpoints in not-ready state, and I was able to find evidence of the above "log buffer too small" issue again.

We bypassed the issue earlier by removing all the if else statements in the datapath patch. For this one, we cannot bypass the single check for the filtering operation.

test-me-please

I filed #10615 for the Travis flake.

test-me-please

Thanks @joestringer ! For the "log buffer too small" issue, it is possible to put in the mitigation with iproute2 to the CI?

Thanks @joestringer ! For the "log buffer too small" issue, it is possible to put in the mitigation with iproute2 to the CI?

That wouldn't solve the underlying issue, which is a complexity error in the BPF verifier (we're hitting the limit). As a short term solution, we're hoping #10542 will give us some slack there and allow the currently-blocked PRs to pass.

That wouldn't solve the underlying issue, which is a complexity error in the BPF verifier (we're hitting the limit). As a short term solution, we're hoping #10542 will give us some slack there and allow the currently-blocked PRs to pass.

Yes, I know it doesn't solve the underlying issue, but I think it shouldn't block CI as it will take longer time for the real fix to get in. We can always remove the workaround later. It would great if #10542 can help and unblock CI.

Hi @lzang :wave: Could you rebase your pull request against master? #10542 was merged yesterday. It updates the LLVM/Clang version we use and should fix the CI issues you're currently hitting.

test-me-please

test-me-please


Fix FAQ answer to support lazy configuration

With gradle-intellij-plugin 1.0, the value of intellij.pluginName.toString() is:
task ':prepareSandbox' property 'pluginName'

Thus we need to use intellij.pluginName.get() instead.

Thanks, Matthew!


move "open workspace" button

When opening an existing project file, into the main editor, there's a "open workspace" button to the button right.
However when you start vscode, there are often a number of pop-up notifications, obscuring the button in the bottom right, the workspace file is presented to you as default when opening a project directory from the command line (code .).  These notifications don't appear to fade away by default, and often if you do open the workspace, the notifications for actions tend to reappear.
The problem get's slightly more annoying, because it shows you the button for a few seconds before the notifications appear, challenging you to find the mouse pointer and click the button, before it is obscured.
An example of this problem is whilst using the Intel OneAPI extension, prompting to set environment variables, that always displays notifications (although, I will contest, that Intel could perhaps alter the behaviour of their extension slightly to avoid this, but this happens in other circumstances as well outside of this example, and I might contest myself in suggesting something could be done to stop these notifications to be less irritating and obtrusive in general)
On a day-on-day basis this behaviour get's irritating, it would make more sense to move the "open workspace" button to the top left or top right of the page.

This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

:slightly_frowning_face: In the last 60 days, this feature request has received less than 20 community upvotes and we closed it. Still a big Thank You to you for taking the time to create this issue! To learn more about how we handle feature requests, please see our documentation.
Happy Coding!


Error when adding "DHCP=Y" to docker-compose with macvlan network

Hi,
When I try to install vDSM with a macvlan network and as suggested adding DHCP=Y to the environment then I'm getting this error and the container won't finish the installation.
this is the error (with DEBUG=Y):
❯ Host: ddsm  IP: <IP_ADDRESS>  Gateway: <IP_ADDRESS>  Interface: eth0  MAC: 02:11:32:A6:0A:CF
nameserver <IP_ADDRESS>
RTNETLINK answers: Operation not supported
❯ ERROR: Cannot create macvtap interface. Please make sure the network type is 'macvlan' and not 'ipvlan',
❯ ERROR: and that the NET_ADMIN capability has been added to the container: --cap-add NET_ADMIN

When I remove DHCP=Y then the installation goes well and I can create a user and login.
But then when I try to add a OpenVPN client connection in "Network/Network Interface/Create OpenVPN" The VPN Connection is created but it can not connect, it keeps hanging on connection.. and after a while I loose complete connection to the vDSM container and I can not login anymore, not even when I restart the container.

This is my docker-compose file for installing vdsm on docker on a Synology NAS.
version: '3.8'

services:
  ddsm:
    container_name: ddsm
    image: vdsm/virtual-dsm:latest
    hostname: ddsm
    cap_add:
      - NET_ADMIN
    security_opt:
      - no-new-privileges:true
    ports:
      - "5500:5000"
      - "5501:5001"
    volumes:
      - type: bind
        source: /volume1/ddsm
        target: /storage
    environment:
      TZ: "Europe/Amsterdam"
      DISK_SIZE: "16G"
      DHCP: "Y"
    devices:
      - /dev/kvm
      - /dev/vhost-net
    device_cgroup_rules:
      - 'c *:* rwm'
    networks:
      macvlan0:
        ipv4_address: <IP_ADDRESS>
    restart: "on-failure"
    stop_grace_period: 2m

networks:
  macvlan0:
    external: true

my macvlan network:
docker network create -d macvlan \
 --subnet=<IP_ADDRESS>/24 \
 --ip-range=<IP_ADDRESS>/24 \
 --gateway=<IP_ADDRESS> \
 -o parent=ovs_eth0 \
 macvlan0

Any suggestions how to solve this?
Is it possible to use the builtin OpenVPN Client connection with your VDSM container?
TIA

What kernel does your host have? Because very old Linux kernel does not support macvtap.

Synology DS920+ has according to the info kernel 4.4.302+

Yes the Synology kernel does not support it, as its pretty old.
Is there any specific reason why you dont use the Virtual Machine Manager package to run Virtual DSM?

Though So, Synology always uses older version of everything ;-)
No, no specific reason, I'm already using VMM and VDSM for my VPN connection which is acting as a VPN Gateway for my LAN devices.
Just wanted to try it and see if I could use it as a second VPN Gateway for my LAN.
I remember that the "old" official DDSM was working pretty good doing that...but when they discontinued DDSM I migrated to VDSM on VMM and been looking for another solution for a second VPN Gateway since VMM works only with one free license. That's why I though your solution would be promising.
Thanks anyway for replying!


libapp.so differs when built with local-engine vs. artifacts

I'm not sure if this matters, but it surprised me (and broke my local testing flow for Shorebird).
When I build an app (just the stock counter app is fine) with normal flutter appbundle --release the resulting libapp.so is different than if I use flutter appbundle --release --local-engine-src-path /path/to/engine/src --local-engine android_release_arm64.  Is that expected?  As far as I can tell I've synced down the exact revision and built just like the stock artifacts.
I'm on an M2 MacBook Pro, which might be causing these differences?  I suspect the release artifacts are built from an x86 machine.
For example, Flutter 3.7.10:
gclient sync -r flutter@ec975089acb540fc60752606a3d3ba809dd1528b
./flutter/tools/gn --no-goma --android --android-cpu=arm64 --runtime-mode=release
./flutter/tools/gn --no-goma --runtime-mode=release
ninja -C out/android_release_arm64
ninja -C out/host_release

flutter appbundle --release --local-engine-src-path /path/to/engine/src --local-engine android_release_arm64
cp build/app/intermediates/stripped_native_libs/release/out/lib/arm64-v8a/libapp.so local-engine.so

flutter appbundle --release
cp build/app/intermediates/stripped_native_libs/release/out/lib/arm64-v8a/libapp.so stock-flutter.so

% diff stock-flutter.so local-engine.so
Binary files stock-flutter.so and local-engine.so differ

Maybe I'm not faithfully replicating the artifacts?  Maybe it's not possible to build the release artifacts from an ARM Mac?
% uname -a
Darwin Erics-MacBook-Pro.local 22.3.0 Darwin Kernel Version 22.3.0: Mon Jan 30 20:39:46 PST 2023; root:xnu-8792.81.3~2/RELEASE_ARM64_T6020 arm64

% xcodebuild -version
Xcode 14.2
Build version 14C18

My local artifacts:
eseidel@Erics-MacBook-Pro test_app % flutter --version
Flutter 3.7.10 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 4b12645012 (8 days ago) • 2023-04-03 17:46:48 -0700
Engine • revision ec975089ac
Tools • Dart 2.19.6 • DevTools 2.20.1
eseidel@Erics-MacBook-Pro test_app % which flutter
/Users/eseidel/Documents/GitHub/upstream_flutter/bin/flutter

eseidel@Erics-MacBook-Pro test_app % md5 ~/Documents/GitHub/upstream_flutter/bin/cache/artifacts/engine/darwin-x64-release/gen_snapshot
MD5 (/Users/eseidel/Documents/GitHub/upstream_flutter/bin/cache/artifacts/engine/darwin-x64-release/gen_snapshot) = f11664a71b75efbba590a5e5f36e70f3
eseidel@Erics-MacBook-Pro test_app % md5 ~/Documents/GitHub/upstream_flutter/bin/cache/artifacts/engine/darwin-x64-release/gen_snapshot_arm64
MD5 (/Users/eseidel/Documents/GitHub/upstream_flutter/bin/cache/artifacts/engine/darwin-x64-release/gen_snapshot_arm64) = 0c16efcdd2d823c7015ade3429f4ccac
eseidel@Erics-MacBook-Pro test_app % md5 ~/Documents/GitHub/upstream_flutter/bin/cache/artifacts/engine/darwin-x64-release/gen_snapshot_x64
MD5 (/Users/eseidel/Documents/GitHub/upstream_flutter/bin/cache/artifacts/engine/darwin-x64-release/gen_snapshot_x64) = 76c0ec10541c6297d1c3160e3ffa0840

My built artifacts:
eseidel@Erics-MacBook-Pro test_app % md5 ~/Documents/GitHub/engine/src/out/android_release_arm64/clang_arm64/gen_snapshot
MD5 (/Users/eseidel/Documents/GitHub/engine/src/out/android_release_arm64/clang_arm64/gen_snapshot) = b4677035f1a5269d6afaab2fae554825
eseidel@Erics-MacBook-Pro test_app % md5 ~/Documents/GitHub/engine/src/out/android_release_arm64/clang_arm64/gen_snapshot_arm64
MD5 (/Users/eseidel/Documents/GitHub/engine/src/out/android_release_arm64/clang_arm64/gen_snapshot_arm64) = b4677035f1a5269d6afaab2fae554825

Another alternative we've considered for Shorebird is making --local-engine-src just use our "artifact_proxy" logic and override the artifacts through FLUTTER_STORAGE_BASE_URL instead of the existing local-engine source paths.
https://github.com/shorebirdtech/shorebird/tree/main/packages/artifact_proxy
It's possible that's the way flutter --local-engine-src should work anyway.  That could result in deleting a bunch of dev-only codepaths for Flutter.

We only recently discovered this, because shorebird used to always use --local-engine-src for building (even in "production"), we switched to using FLUTTER_STOREAGE_BASE_URLs as a way to insert our custom engine builds and instead started hitting this during development. :/

If you have the binaries handy - I'm curious what the following commands output for the local and downloaded gen_snapshot:
path/to/gen_snapshot --version
lipo -archs path/to/gen_snapshot

/cc @reidbaker @godofredoc who may have additional info on how the android gen_snapshot build is configured locally and on the bots.

Downloaded:
eseidel@Erics-MacBook-Pro src % md5 ~/Documents/GitHub/upstream_flutter/bin/cache/artifacts/engine/android-arm64-release/darwin-x64/gen_snapshot
MD5 (/Users/eseidel/Documents/GitHub/upstream_flutter/bin/cache/artifacts/engine/android-arm64-release/darwin-x64/gen_snapshot) = 9d36368be28a68c6e5703d78103b2464
eseidel@Erics-MacBook-Pro src % ~/Documents/GitHub/upstream_flutter/bin/cache/artifacts/engine/android-arm64-release/darwin-x64/gen_snapshot --version
Dart SDK version: 2.19.6 (stable) (Tue Mar 28 13:41:04 2023 +0000) on "macos_simarm64"
eseidel@Erics-MacBook-Pro src % lipo -archs ~/Documents/GitHub/upstream_flutter/bin/cache/artifacts/engine/android-arm64-release/darwin-x64/gen_snapshot
x86_64

eseidel@Erics-MacBook-Pro src % md5 out/android_release_arm64/clang_arm64/gen_snapshot
MD5 (out/android_release_arm64/clang_arm64/gen_snapshot) = b4677035f1a5269d6afaab2fae554825
eseidel@Erics-MacBook-Pro src % ./out/android_release_arm64/clang_arm64/gen_snapshot --version
Dart SDK version: 2.19.6 (stable) (Tue Mar 28 13:41:04 2023 +0000) on "macos_arm64"
eseidel@Erics-MacBook-Pro src % lipo -archs ./out/android_release_arm64/clang_arm64/gen_snapshot
arm64
eseidel@Erics-MacBook-Pro src % md5 out/android_release_arm64/clang_arm64/gen_snapshot_arm64
MD5 (out/android_release_arm64/clang_arm64/gen_snapshot_arm64) = b4677035f1a5269d6afaab2fae554825

I guess what I'm missing then is a "clang_x64" directory in my out/android-arm64-release directory (and flutter_tools insisting to use such a thing)?

Ah I see - looks like the local build is using the arm64 clang toolchain rather than the x64 one. Your local gen_snapshot_arm64 is reporting macos_arm64 in its version string which implies that it's an arm64 binary (as reported by lipo) built with the arm64 clang toolchain.
What's a bit odd is that I thought I'd forced x64 host builds here (so long as you're not using --force-mac-arm64:
https://github.com/flutter/engine/blob/a5678442b7a7d73daa99e45036ba20504e249c9b/tools/gn#L342-L350
Are you running with --force-mac-arm64? If so, does disabling that option result in a libapp.so that's consistent with what you get from the downloaded build products?
Either way, we'll want to ensure that the libapp.so that we're producing with a rosetta gen_snapshot and an arm64-native gen_snapshot are the same; curious what sort of differences you're seeing and if the resulting .so behaves differently.

% diff stock-flutter.so local-engine.so

what about cmp -l stock-flutter.so local-engine.so | wc -l? Which should be count the bytes that are different. I'm wondering if it's just some string that's off, or more significant.

cmp -l stock-flutter.so local-engine.so | wc -l
  588927

I'm happy to upload the artifacts.  I looked at them with hexf (http://hexfiend.com/) and it's 3800 small (1 byte) differences.

eseidel@Erics-MacBook-Pro src % cat out/android_release_arm64/args.gn
is_debug = false
use_goma = false
goma_dir = "None"
flutter_build_web_sdk = false
full_dart_sdk = false
skia_enable_flutter_defines = true
skia_use_dng_sdk = false
skia_use_sfntly = false
skia_enable_pdf = false
skia_use_x11 = false
skia_use_wuffs = true
skia_use_expat = true
skia_use_fontconfig = false
skia_use_legacy_layer_bounds = true
skia_use_icu = true
flutter_always_use_skshaper = false
is_official_build = true
android_full_debug = false
is_clang = true
skia_gl_standard = "gles"
use_clang_static_analyzer = false
enable_coverage = false
enable_lto = true
target_os = "android"
target_cpu = "arm64"
dart_target_arch = "arm64"
use_ios_simulator = false
flutter_use_fontconfig = false
flutter_enable_skshaper = true
dart_component_kind = "static_library"
embedder_for_target = false
dart_lib_export_symbols = false
flutter_runtime_mode = "release"
dart_version_git_info = true
dart_runtime_mode = "release"
enable_desktop_embeddings = true
bssl_use_clang_integrated_as = true
skia_use_gl = true
skia_use_vulkan = true
skia_use_vma = false
shell_enable_vulkan = true
disable_hidden_visibility = false
stripped_symbols = true
dart_use_compressed_pointers = true

I manually edited out/android_release_arm64/args.gn  to add host_cpu = "x64" and while it rebuilt the gen_snapshot, it did not change the behavior of local-engine-src.
eseidel@Erics-MacBook-Pro src % lipo -archs out/android_release_arm64/clang_x64/gen_snapshot
x86_64
eseidel@Erics-MacBook-Pro src % lipo -archs out/android_release_arm64/clang_x64/gen_snapshot_arm64
x86_64

It in-fact produced an identical libapp.so 😮
eseidel@Erics-MacBook-Pro test_app % flutter clean
Cleaning Xcode workspace...                                      2,901ms
Cleaning Xcode workspace...                                      1,968ms
Deleting build...                                                   74ms
Deleting .dart_tool...                                              10ms
Deleting Generated.xcconfig...                                       0ms
Deleting flutter_export_environment.sh...                            0ms
Deleting ephemeral...                                                0ms
eseidel@Erics-MacBook-Pro test_app % flutter build appbundle --release  --local-engine-src-path ~/Documents/GitHub/engine/src --local-engine android_release_arm64
Running "flutter pub get" in test_app...
Resolving dependencies...
  async 2.10.0 (2.11.0 available)
  characters 1.2.1 (1.3.0 available)
  collection 1.17.0 (1.17.1 available)
  js 0.6.5 (0.6.7 available)
  matcher 0.12.13 (0.12.15 available)
  material_color_utilities 0.2.0 (0.3.0 available)
  meta 1.8.0 (1.9.1 available)
  path 1.8.2 (1.8.3 available)
  source_span 1.9.1 (1.10.0 available)
  test_api 0.4.16 (0.5.1 available)
Got dependencies!

💪 Building with sound null safety 💪

Running Gradle task 'bundleRelease'...                             19.7s
✓ Built build/app/outputs/bundle/release/app-release.aab (8.2MB).
eseidel@Erics-MacBook-Pro test_app % cp build/app/intermediates/stripped_native_libs/release/out/lib/arm64-v8a/libapp.so local-engine-x64.so
eseidel@Erics-MacBook-Pro test_app % diff local-engine.so local-engine-x64.so

If I knew which gen_snapshot's mapped to which in my build directory, I suspect I could work around this by copying the right ones out of engine/artifacts into my build dir. :)  I'm taking another crack at building stock 3.7.10 flutter on my m2 and seeing if I can doctor it with downloaded artifacts until it compiles identical libapp.so files. :(

I checked app.dill's between the two scenerios. They also differ, but only by one byte.
eseidel@Erics-MacBook-Pro test_app % flutter clean && flutter build appbundle --release  --local-engine-src-path ~/Documents/GitHub/engine/src --local-engine android_release_arm64 && say "done"
eseidel@Erics-MacBook-Pro test_app % cp .dart_tool/flutter_build/9b05063c41b16a67dff7da9b394c186b/app.dill local-engine.dill
eseidel@Erics-MacBook-Pro test_app % flutter clean && flutter build appbundle --release
cp .dart_tool/flutter_build/2269f0a0b5af9725e333045d0f6fda0c/app.dill stock-flutter.dill
diff stock-flutter.dill local-engine.dill
Binary files stock-flutter.dill and local-engine.dill differ

So while they technically differ, I don't think the one byte difference in app.dill explains the ~3000 1 byte differences in the libapp.so's.

Here are the resulting logs of building local-engine vs. stock with -v -v -v (no clue if the 3 v's matter, but 2 seemed to).
local.log
[stock.log](https://github.com/flutter/flutter/files/11
log.patch
214503/stock.log)

local-engine.so.zip
stock-flutter.so.zip

For @Hixie:
hexdump -C stock-flutter.so > stock-flutter-hex.txt
hexdump -C local-engine.so > local-engine-hex.txt
diff -u6 stock-flutter-hex.txt local-engine-hex.txt > hex-diff.patch

hex-diff.patch.zip

The Android artifacts on CI are built on Linux, and I suspect that it will be difficult to match them exactly when building from a Mac host.
I tried building a local android_release_arm64 engine on a Linux host using the commands in https://github.com/flutter/engine/tree/main/ci/builders.  The resulting libflutter.so and gen_snapshot binaries matched the binaries from CI except for the build ID generated by the linker.
I then did the same build command lines on a Mac host.  The libflutter.so from the Mac matched the CI build except for the build ID.  But the clang_x64/gen_snapshot output did not match the size of the CI binary.  Checksums of other Dart outputs such as platform_strong.dill and vm_platform_strong.dill also did not match the results generated on the Linux host.
The Dart team may have more info about why Dart SDK builds would be sensitive to the host environment.  But if you need to match the CI artifacts then you'll want to duplicate the CI environment as closely as possible.

From android triage: We believe the engine team should set this priority.


Provide app shortcuts for Nougat

App shortcuts API — lets you surface key actions directly in the launcher and take your users deep into your app instantly. You can create up to 5 shortcuts, either statically or dynamically.
possible ones:

Scan
Search by name
Search by barcode
History
My contributions
https://developer.android.com/guide/topics/ui/shortcuts.html

I'll do some test this weekend.

https://developer.android.com/preview/shortcuts.html

Mockup

Hi @teolemon, this one can be closed


MathJax.tex2chtml is not a function

Version: 3.2.2
When I use this config:
    window.MathJax = {
      tex: {
        macros: {
          "*": "\\\\,"
        }
      },
      startup: {
        // Works without ready function...
        ready() {
          console.log("Hai!");
        }
      }
    };

I get this error: MathJax.tex2chtml is not a function
The entire loading process already feels strange, but this is the top of strangeness. I simply wish you had a proper ESM setup.

Your ready() function needs to call MathJax.starutp.defaultReady() at some point in order to get the normal startup action to be performed.  Otherwise, you have override the usual startup process, which sets up the various conversion function based on the input and output jax you have loaded.
See the documentation on performing actions during initialization for more details.


[Test] consolidate test_tensorclass and test_tensorclass_nofuture

Codecov Report
Patch coverage: 100.00% and project coverage change: -0.02 :warning:

Comparison is base (1ae0d84) 87.56% compared to head (2efc839) 87.54%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #302      +/-   ##
==========================================
- Coverage   87.56%   87.54%   -0.02%
==========================================
  Files          30       29       -1
  Lines       10845    10828      -17
==========================================
- Hits         9496     9479      -17
  Misses       1349     1349

Flag
Coverage Δ

linux-cpu
85.70% <100.00%> (-0.03%)
:arrow_down:

linux-gpu
87.03% <100.00%> (-0.49%)
:arrow_down:

linux-macos-cpu
85.21% <100.00%> (-0.53%)
:arrow_down:

linux-stable-cpu
85.74% <100.00%> (-0.03%)
:arrow_down:

linux-stable-gpu
87.03% <100.00%> (-0.49%)
:arrow_down:

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

Impacted Files
Coverage Δ

test/test_tensorclass.py
97.53% <100.00%> (ø)

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

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


[CIRCT] Remove calyx.cells

Early on we opted to not have a calyx.cells region, because it mostly just caused trouble with region-related verification.

What needs to be done for this? Just remove calyx.cells from the CIRCT backend?

Yep!


ECR & ECS tasks should be executed within the same container

Right now we are

Gradle build

ECR Image Build + Push

ECS Service Update

With all 3 requiring docker containers, we can cutdown on pipeline times by combining step 2 & 3 in in the same docker container.

No longer needed as we've switched to Github actions + Docker Public Registry


Is there a way like RandomCrop for better data argumentation ?

❓ Questions and Help
I noticed that data argumentation is in maskrcnn_benchmark/data/transforms/build.py. I want to add a new argumentation method RandomCrop like this:
transform = T.Compose(
        [
            T.RandomCrop(min_size, max_size),  # added
            T.Resize(min_size, max_size),
            T.RandomHorizontalFlip(flip_prob),
            T.ToTensor(),
            normalize_transform,
        ]
    )

Then I add the class in transforms.py
class RandomCrop(object):
    def __init__(self, min_size, max_size):
        if not isinstance(min_size, (list, tuple)):
            min_size = (min_size,)
        #min_size = (min(256, min_size[0]), )
        self.min_size = min_size
        self.max_size = max_size

    # modified from torchvision to add support for max size
    def get_size(self, image_size):
        w, h = image_size
        size = random.choice(self.min_size)
        max_size = self.max_size
        if max_size is not None:
            min_original_size = float(min((w, h)))
            max_original_size = float(max((w, h)))
            if max_original_size / min_original_size * size > max_size:
                size = int(round(max_size * min_original_size / max_original_size))

        if (w <= h and w == size) or (h <= w and h == size):
            return (h, w)

        if w < h:
            ow = size
            oh = int(size * h / w)
        else:
            oh = size
            ow = int(size * w / h)

        return (oh, ow)

    def __call__(self, image, target):
        """-
        :param image:
        :param target:
        :return:
        """
        sizehw = self.get_size(image.size)
        image = F.crop(image, 0, 0, sizehw[0], sizehw[1])
        target = target.crop([0, 0, image.size[0], image.size[1]])
        return image, target

The above naive implementation is borrowed from class Resize, which looks like this:
class Resize(object):
    def __init__(self, min_size, max_size):
        if not isinstance(min_size, (list, tuple)):
            min_size = (min_size,)

        self.min_size = min_size
        self.max_size = max_size

    # modified from torchvision to add support for max size
    def get_size(self, image_size):
        w, h = image_size
        size = random.choice(self.min_size)
        max_size = self.max_size
        if max_size is not None:
            min_original_size = float(min((w, h)))
            max_original_size = float(max((w, h)))
            if max_original_size / min_original_size * size > max_size:
                size = int(round(max_size * min_original_size / max_original_size))

        if (w <= h and w == size) or (h <= w and h == size):
            return (h, w)

        if w < h:
            ow = size
            oh = int(size * h / w)
        else:
            oh = size
            ow = int(size * w / h)

        return (oh, ow)

    def __call__(self, image, target):
        size = self.get_size(image.size)
        image = F.resize(image, size)
        target = target.resize(image.size)
        return image, target

My issue is that once my RandomCrop is added the test program gets terrible results:
Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.001
 Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ] = 0.003
 Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=100 ] = 0.000
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.000
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.002
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.000
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] = 0.004
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] = 0.008
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.008
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.001
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.012
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.000

Once I remove my RandomCrop, the test results looks good (with AP = 0.49).
I've debugged for hours without luck. So I'm looking for help here.

Hi @TomHeaven,
There is a problem with your current implementation.  When calling      target = target.crop([0, 0, image.size[0], image.size[1]]), you need to be aware that the crop only handles the objection inside the cropped area properly. If the object is outside the area, it will still be there but the width and height will be changed to (0, 0). You can also check here. Besides, if the input without any bbox after cropping, it will cause some error in the training now.
I had the different data augmentation version for Cityscapes which implements RandomCrop and works properly. I can push the code later.

@chengyangfu Thanks for the remind. I think I found the cause in data/transforms/build.py, it should be changed to this:
def build_transforms(cfg, is_train=True):
    if is_train:
        min_size = cfg.INPUT.MIN_SIZE_TRAIN
        max_size = cfg.INPUT.MAX_SIZE_TRAIN
        flip_prob = 0.5  # cfg.INPUT.FLIP_PROB_TRAIN
    else:
        min_size = cfg.INPUT.MIN_SIZE_TEST
        max_size = cfg.INPUT.MAX_SIZE_TEST
        flip_prob = 0

    to_bgr255 = cfg.INPUT.TO_BGR255
    normalize_transform = T.Normalize(
        mean=cfg.INPUT.PIXEL_MEAN, std=cfg.INPUT.PIXEL_STD, to_bgr255=to_bgr255
    )

   # print('min_max_size : ', min_size, max_size)

    if is_train:
        transform = T.Compose(
            [
                T.RandomCrop(min_size, max_size),  # Tom added (仅在训练时添加)
                #T.Resize(min_size, max_size),   # Tom removed
                T.RandomResize(min_size, max_size), # Tom added
                T.RandomVerticalFlip(flip_prob), # Tom added
                T.RandomHorizontalFlip(flip_prob),
                T.ToTensor(),
                normalize_transform,
            ]
        )
    else:
        transform = T.Compose(
            [
                T.Resize(min_size, max_size),
                #T.RandomHorizontalFlip(flip_prob), # Tom removed
                T.ToTensor(),
                normalize_transform,
            ]
        )
    return transform

So that we do not do any random operation (RandomCrop or RandomResize) at evaluation time. I check the evaluation procedure and find thatdata_loder_val are used twice: First time in inference and second time in coco_eval. If there is any random operation in validation dataset, there will be inconsistency between inference and coco_eval.
And I'm also curious at your different data augmentation implementation. Looking forward to your code :)

Great!
I am going to close this issue. Please feel free to open it again if you have other problems.

@chengyangfu  Could you share your augmentation on Cityscapes? Especially on how you deal with invalid boxes (empty or extremely small) and invalid masks.


[enhancement] update Readme's link to oceanbase.github.io/miniob

Enhancement
update Readme's link to oceanbase.github.io/miniob

The github pages link is already in the readme file. Please describe your advice more detail if you have a better idea.


Authentication Library question

[The documentation is under Blazor WebAssembly. But, can I implement the same Authentication Library (and steps) in a Blazor Server project? If not, can you provide me an example or point me to the right direction as to how to implement Authentication Library (OAuth, OpenID or custom library)]

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

ID: 985b834f-534a-aba6-80a0-d8845adbfc25
Version Independent ID: d2b5a556-82a4-e939-be68-2357a3d4408f
Content: Secure an ASP.NET Core Blazor WebAssembly standalone app with the Authentication library
Content Source: aspnetcore/blazor/security/webassembly/standalone-with-authentication-library.md
Product: aspnet-core
Technology: aspnetcore-blazor
GitHub Login: @guardrex
Microsoft Alias: riande

Hello @arthurochoa ... No, it's only for Blazor WebAssembly. As the Blazor Server overview topic calls out ...

Blazor Server apps are configured for security in the same manner as ASP.NET Core apps. For more information, see the articles under Overview of ASP.NET Core Security.

The only additional guidance that we maintain for for Blazor Server in the Blazor docs node is in the two articles under the Overview ...

https://docs.microsoft.com/aspnet/core/blazor/security/server/threat-mitigation
https://docs.microsoft.com/aspnet/core/blazor/security/server/additional-scenarios

Additional guidance for OAuth with external providers (that apply to a Blazor Server app because Blazor Server uses the approaches as a regular ASP.NET Core app) is at https://docs.microsoft.com/aspnet/core/security/authentication/social/.
If you require product support, we recommend the popular public channels ...

Stack Overflow
ASP.NET Core Slack
ASP.NET Gitter

Hi @guardrex , thanks very much for your reply.  As I'm new to Blazor learner, my challenge is in navigating to right resource and instructions. Appreciate your feedback and time.


Project is not processed when "allowed_to_push" section has removed gitlab user

Describe the bug
with config.yml
projects_and_groups:
  "group/project":
    branches:
      develop:
        allowed_to_push:
          - user_id: 1
          - user_id: 2
          - user_id: 3

If user_id: 3 was removed from gitlab, we will get:
Issue 1
Warning is shown while processing affected "group/project": Warning: Branch 'develop' not found when trying to set it as protected/unprotected!. However, at the end of logs we see: ":: # of projects failed: " where affected "group/project" is listed. That means project was not processed. Why then to show warning while processing and not error?
Issue 2
Current warning says Warning: Branch 'develop' not found when trying to set it as protected/unprotected! which is confusing. Why not to show error that "user_id 3 does not exist" ?
GitLabForm version
3.12.0
GitLab version
16.11.1

Do you have a typo on the gitlabform version? Don't think that version exist at the moment.
Not really following what you meant in issue 1. Are you saying the message should be error instead of warning?
For issue 2, this is a silly question but just to confirm... Does that branch exist in all the projects under the group? It's not clear from the message or your post what project it's referring to. Perhaps there's one project where that branch doesn't exist?

Do you have a typo on the gitlabform version? Don't think that version exist at the moment.

Yes was a typo (thanks). I fixed in initial comment to 3.12.0

Not really following what you meant in issue 1. Are you saying the message should be error instead of warning?

Yes, if project is ignored from being processed based on that error, it is not a warning, it is an error. Warning is suitable when project was processed successfully, but there is just something to improve, etc.

For issue 2, this is a silly question but just to confirm... Does that branch exist in all the projects under the group? It's not clear from the message or your post what project it's referring to. Perhaps there's one project where that branch doesn't exist?

gitlab form processes by project. Error was specific for the project (which I showed in "group/project" section).
That project has develop branch. That is why the error was super confusing and it took me a while to figure out that real cause was that some of the users were removed in gitlab.

Sorry but I'm actually having hard time understanding the whole issue. Ironically I find your issue description to be very unclear.

Not really following what you meant in issue 1. Are you saying the message should be error instead of warning?

Yes, if project is ignored from being processed based on that error, it is not a warning, it is an error. Warning is suitable when project was processed successfully, but there is just something to improve, etc.

If I'm not mistaken, this is the first time  as of now  you've mentioned about the project is ignored from being processed. Regardless, I wonder if this related to or duplicate of issue #765 . What's confusing though is that you mentioned about ownership of scheduled pipelines. Again, if I'm not mistaken, those schedules are owned by the user used for running gitlabform. I'm not aware of any config to set schedule ownership to different user than the one executing gitlabform.
Anyways, I think it'd be very helpful if the issue can be described better. Or if it is clear to others, maybe they can chime in and help.

Thanks @amimas for all your clarifying questions. I have updated Title and Description. Please have a look and hope it will make more sense to you now?

Reading this over a bit, I get the feeling that the overall issue at hand is error handling, and appropriately logging the error/warning with the correct context.
Does that seem like a fair assessment?
At least for logging, I know we have #611 open, which specifically is looking at improving logging. Some improved error handling may come out of that work :eyes:

Reading this over a bit, I get the feeling that the overall issue at hand is error handling, and appropriately logging the error/warning with the correct context. Does that seem like a fair assessment?

Correct.

At least for logging, I know we have https://github.com/gitlabform/gitlabform/issues/611 open, which specifically is looking at improving logging. Some improved error handling may come out of that work 👀

🤞


Improve agent resilience against apiserver problems

We found an interesting behavior recently, if the agent does not have connectivity or permissions with the apiserver, it is not able to assign it an identity and new pods are not able to send or receive traffic, causing a considerable damage
My teammate @dlapcevic made a good analysis of the problem, quoting him

What most likely happens is that during endpoint creation for the new pod, agent fails to get pod labels (fetchK8sLabelsAndAnnotations()) when using pod store (GetCachedPod()) because pod store doesn’t receive new pod events because of watch permissions.
In this case, the Unable to fetch kubernetes labels log warning should be visible, but it won’t fail the endpoint creation. It will instead give init ID to the new endpoint.
All traffic for the new endpoint is denied because it has init ID. https://docs.cilium.io/en/stable/security/policy/lifecycle/#init-identity
Code pointer: https://github.com/cilium/cilium/blob/v1.12/daemon/cmd/endpoint.go#L387

He is also working on improving this area, see related CFP https://github.com/cilium/cilium/issues/27752
Commenting this @squeed the other day, we thought about the possibility of removing this dependency on the apiserver to get the Pod labels, and be able to get it from the CNI ADD command directly, the CRI API already sends down the labels and annotations to the Container Runtime and at least in containerd there is way to send this metadata as part of the CNI ADD command

cc @squeed @joestringer @aanm

I think we need to be a bit careful here around source of truth and potential local spoofing if assuming issues with kube-apiserver connectivity. In general I don't think we've ever assumed that it's possible to deploy new Pods while Cilium has a failure of connectivity to kube-apiserver.

Backstory: we already support this. Specifically, the PutEndpoint API call already accepts a Labels array and passes it directly to the endpoint. The only change would be plumbing it through CNI.

potential local spoofing

The labels can be passed in via the gRPC socket CreateEndpoint call as part of the CNI ADD. Access to that socket is already privileged (and can, indeed, disable policy entirely for a given node). In that case, I think it's safe to trust the labels, as they flow from kubelet -> containerd -> cni -> agent.

In general I don't think we've ever assumed that it's possible to deploy new Pods while Cilium has a persistent failure of connectivity to kube-apiserver.

yeah, that is the other side of the problem, and @squeed , I and others are working on the CNI spec to support a STATUS verb that allows the kubelet to set the node unready , hence no new pods will be scheduled if the agent is unhealthy or with problems https://github.com/containernetworking/cni/issues/859

The only change would be plumbing it through CNI.

Recently, I looked into this a bit, and I recall that a more recent version of the spec supports passing metadata / labels in the CNI ADD. I can't seem to find where I posted my findings, but do you know which version of the spec supports this and when we could support it in Cilium? It could eliminate a whole hop to the apiserver on endpoint creation.

potential local spoofing

The labels can be passed in via the gRPC socket CreateEndpoint call as part of the CNI ADD. Access to that socket is already privileged (and can, indeed, disable policy entirely for a given node). In that case, I think it's safe to trust the labels, as they flow from kubelet -> containerd -> cni -> agent.

Let me expand a little bit more: Access to the socket follows the Root-equivalent Host Attacker threat actor in the Cilium threat model where the attacker compromises a particular node, but may not have compromised other nodes in the cluster. In general I think that we should be trying to move slowly towards a security posture where compromise of a particular node does not then impact the security properties of other nodes, or at least, that in cases where node compromise leads to limitations on the security posture on remote nodes, then that is an explicit user opt-in. There may be good reasons to trade off stricter security protocols in favour of better availability guarantees or other benefits.
I agree that currently the facility exists in the Cilium API, and it doesn't violate the security model as-is, and maybe there's even an answer for how to progress to a better security model while also adopting this proposal (such as better apiserver-side cross-checking of requests from individual agents/nodes).
Some other aspects this touches on is the longer term direction of whether agents can/should be able to locally allocate new identities which is under discussion in https://github.com/cilium/cilium/issues/27752 . While the CNI-provided label set may not be new, and hence won't require identity allocation, there is also the case where the CNI-provided label set is brand new. In the latter case of course Cilium's ability to allocate that Security Identity could also be impacted by the same apiserver resiliency issues brought up in this issue (depending on whether Identity allocation goes through kube-apiserver or directly through etcd).
The other aspect I can think of is that when Cilium creates an Endpoint, it also creates CEP objects in Kubernetes in order to inform remote nodes about the new Endpoint. If we're assuming kube-apiserver availability issues, then even this request is potentially problematic and we may not be able to bootstrap the Endpoint anyway.

I'd also like to look a little bit closer at the motivation here.
I read that "permissions issues" is one of the primary motivators. Exactly which permissions are limited and is that a legitimate way to deploy Cilium, or a misconfiguration? Is that part of a security hardening effort and is it part of an attempt to adjust the Cilium Endpoint initialization workflow?
The second motivation I see is connectivity issues with kube-apiserver. Can we define the pattern we are trying to handle here? In general today I think there are up to three touchpoints on k8s apiserver for Endpoint initialization, depending on the particulars of whether k8s is used as a backend for sharing information between agents:

Pull labels (referred in issue description)
Allocate security identity
Propagate CEP

If all three of these operations require the kube-apiserver (first one definitely does, latter two depend on Cilium deployment model AFAIK), then a complete unavailability of kube-apiserver would prevent Endpoint creation regardless of how we handle the first step.
If we're talking about partial outage of kube-apiserver or the kube-apiserver being overloaded such that it's unable to propagate information in a timely manner, then removing the first step in favour of pulling the information via kube-apiserver->kubelet->CRI->CNI->Cilium would reduce the load at Pod initialization time. We also need the namespace labels to fully assign the correct identity. Assuming all of that, I think that eventually we probably still want Cilium to pull the full correct information directly from kube-apiserver just to double-check that Cilium is correctly implementing the policy wrt the latest versions of the resources. Is the idea that the "Get labels" step is duplicated with the k8s Pod watch anyway, so we could drop that step in favour of Pod watch update and still get confirmation directly from kube-apiserver in order to cross-check the labels are correct? That sounds like a nice optimization, I guess it's one request per Pod deployment. Depending on cluster Pod churn, maybe that's enough to tip over some limit. In the back of my mind I do wonder though whether the overall system is so tightly optimized that this sort of step makes a big difference at this point or whether there are lower hanging fruit.
At the same time, modulo the longer term security model implications above, I do like the idea of leveraging the labels via CNI ADD.

Pull labels (referred in issue description)
Allocate security identity
Propagate CEP

If all three of these operations require the kube-apiserver (first one definitely does, latter two depend on Cilium deployment model AFAIK), then a complete unavailability of kube-apiserver would prevent Endpoint creation regardless of how we handle the first step.

@joestringer, in the described case, if pod is not found in the Pod watcher's cache when fetching labels, then the CNI ADD will be completed, and pod will be running. The reason is that step 2 (Allocate security identity) will not interact with kube-apiserver when it allocates the init identity for a pod that has unknown labels (no labels). And step 3 (Propagate CEP) is not part of CNI ADD, if you mean that it needs to create CEP by sending a request to kube-apiserver. CNI ADD only creates local endpoint in cilium-agent's memory. The actual update is done by the endpoint synchronizer (10s interval), which fails to sync local endpoints to CEPs because the connection to kube-apiserver is down. Nonetheless, the new pod is running with init ID, denying all traffic.

I stand corrected, thanks. That makes me wonder though, how does kube-apiserver successfully inform kubelet that the Pod must be deployed while not being available to Cilium? In general does it even make sense for Cilium to deploy Pods if it is disconnected / out of sync with the management plane? How long is OK for Cilium to drift along without access to kube-apiserver before it should just fail out to make the failure scenario obvious?

Can we reopen the issue? @aojea


11/04/2021 - Yarn Upgrade

Upgraded all dependencies using yarn upgrade

Upgrading all the packages seems to have created a loooooad of typescript errors in the build.
These need to be resolved before it can be merged. It seems this is all Azure Functions Related and seems to focus around the Typescript Version being used and some node modules such as ts-toolbelt
https://github.com/millsp/ts-toolbelt/issues/157


Add Clarifying Documentation for Kafka Samples

Sometimes, at first glance users have have the impression that the tutorial is intended to scale the kafka brokers as more messages arrive. We need to clarify this in the objective section of the sample tutorial.
The instruction on installing the Kafka cluster via Helm could also be updated to explain the purpose of the different components of the Kafka cluster installed via Helm.

@jeffhollan @asavaritayal, I have submitted a pull request for this in the other repo.
https://github.com/kedacore/sample-python-kafka-azure-function/pull/2
What is the process for reviewing and merging it into the docs?

Adding @anirudhgarg and @priyaananthasankar to review.

Reviewed and merged PR with README changes: https://github.com/kedacore/sample-python-kafka-azure-function/pull/2


The widget is empty when first created (and after the app updates), and only gets populated when the periodic worker triggers

looks like I've sorted this out


"SHOW GRID" incorrectly lists axes as compressed

This begins with Ferret v7.5.  Versions prior to that were correct.  A user reports to the Ferret list,
use coads_climatology
let sst_demean =  sst - sst[x=@ave,y=@ave]
show grid sst_demean
    GRID GSQ1
 name       axis              # pts   start                end                 subset
 COADSX    LONGITUDE          180mr   21E                  19E(379)            compressed
 COADSY    LATITUDE            90 r   89S                  89N                 compressed
 normal    Z
 TIME      TIME                12mr   16-JAN 06:00         16-DEC 01:20        full

The longitude and latitude axes still have their full range, because of their dependence on SST so they should not be listed as compressed.

This is related to the fix for issue #1916.  That bug came from RETURN= evaluations, and involved a fix there.  The same logic needs to be applied to SHOW GRID.  In both cases we're getting information about the grids of user-defined variables without loading those variables into memory.
Fix in show_grid.F and a new script err751_show_grid_expr.jnl
In the benchmarks there are some differences in a few scripts related to dynamic grids and the output of SHOW GRID/DYNAMIC.  These changes are fine.


Incorrect action set behavior on asymmetric bindings with priority on SteamVR 1.8.14 beta

Using SteamVR 1.8.14 beta:

Go to Window.. Steam VR Input, and set the platformer action set to 'per hand'
Save and generate, then open Binding UI
Select Vive binding, then go to platformer action set
Remove all actions for right controller only, leave the left one alone.
Go to Interactable.cs, line 277. Change the action set priority to 1:
activateActionSetOnAttach.Activate(hand.handType, 1);
Run Interactions_Example scene.
Grab the JoeJeff controller with your right hand. Since it has no actions, it will revert to default action set with teleport and snap turn working. This is reflected correctly in the SteamVR Input Live View even though it does not work in the scene.
While still holding the JoeJeff controller, note that your left hand's default action set now does NOT work. Teleport and snap turning do not work, this is confirmed in SteamVR Input Live View.This is incorrect as only the right hand has the platformer action set active whereas the left one is still on the default action set.
EXPECTED RESULT: Left hand teleport and snap turning should work (CORRECT)
OBSERVED RESULT: Left hand teleport and snap turning not working (WRONG)

STEAMVR 1.7.15
1-8. Perform same steps as above
9. EXPECTED RESULT: Left hand teleport and snap turning should work (CORRECT)
OBSERVED RESULT: Left hand teleport and snap turning is working (CORRECT)
Assets.zip

Does the behavior change between 1.7 and 1.8?

Yes, 1.7 works. It's a SteamVR 1.8 bug, not a bug with this plugin. I have a published game on Steam that will be affected by this with a 'handgun' action set using such a binding.

This will be fixed in SteamVR 1.8.16. Thanks for the report.


Adding check to frontend.sh to print warning if Node 8 isn't used

Adding check to frontend.sh to print warning if Node 8 isn't used
Changes

Modifying 'frontend.sh` to add Node 8 warning.

Testing

Run node -v  to determine your version.
Run frontend.sh, if you aren't running node 8 you should get a warning.

Screenshots

Notes

Todos

Checklist

[ ] PR has an informative and human-readable title
[ ] Changes are limited to a single goal (no scope creep)
[ ] Code can be automatically merged (no conflicts)
[ ] Code follows the standards laid out in the development playbook
[ ] Passes all existing automated tests
[ ] New functions include new tests
[ ] New functions are documented (with a description, list of inputs, and expected output)
[ ] Placeholder code is flagged
[ ] Visually tested in supported browsers and devices
[ ] Project documentation has been updated
[ ] Reviewers requested with the Assignee tool :arrow_right:

Thanks for adding this!


500 error when loading /search with "term" in query string

Bug report
Preconditions
Please provide as detailed information about your environment as possible.
1. framework Version 1.1.2
2. Commit id.

Steps to reproduce
1. navigate to /search without any query string

Hi @MattApril
Could you please specify this issue in more details as I am not able reproduce this issue.
Thanks.

Yes sorry my title is wrong. It should ready "Without term".
You can recreate by performing a search and then editing the URL to remove everything after the "?". Which should be "?term={your searched text}"

This is not a velocity specific bug, and was not fixed by this commit.

Hello @MattApril
This issue has been fixed in master

Framework Version: Master

Fixed


Scrolling and pressing with touchpad not working on iPadOS 14.0, Safari.

Web Browser: Safari
Local OS: iPadOS 14.0
Remote OS: Ubuntu 18.04
Remote Architecture: and64
code-server --version: 1.5.0

Scrolling and pressing with touchpad (magic keyboard) isn’t working. Haven’t tested with a mouse yet.

Have the same issue. Is a fix on the way?

I think this is a duplicate of https://github.com/cdr/code-server/issues/1455? Will close with that assumption but let me know if it seems different. There's no incoming fix at the moment, I think we're still waiting on a webkit fix last I recall.


clustering problems

Hello,
First of all, very nice tool!
I have been testing these nodes with our VLP16 and they worked very well. We drove around with our car and had similar results as in your movies. Now we have created a simulator that calculates the interference of the lidar rays and some objects. This simulator creates pointclouds as the VLP16 would do, but I don't get the nice results as on the tests with the real VLP16. I'm not sure what is going wrong, but maybe you have an idea.
The simulated environment is a flat surface with some vertical walls and every wall should in fact be seen as one cluster. I don't see any clustering going on if I do not set the minimal cluster size to 10.  But then I see that the calculated clusters are only like vertical small boxes. Is there a limitation towards how far the points can be apart form each other and is this direction dependent? I have put some screenshots below.
I appreciate your help very much!

Thanks for the kind words, means a lot to me :)
As for your issue. I would probably start by visualizing range images and making sure they do not contain gaps. My guess is that the range images become sparse in lateral direction and this causes the artifacts you are seeing.

I will close this issue, but let's continue discussing it here if you wish.

Hello Igor,
Sorry for my late reply. Thanks that you want to discuss this a little bit further.
I don’t see extremely large gaps between the points, I have visualized the pointcloud in rviz. (see below) But is there a limitation on how far the points can be apart from each other? I was looking for a setting like that in your code, but did not immediately find such setting. I also tried differentiating on ‘line distance’ instead of on ‘angle’, but that did not give much better results. What parameters would you advise me to play with in order to get this clustering going? And what steps woud you do in order to analyse this problem?
Thank you in advance!
Best regards,
Glenn Aesaert
<EMAIL_ADDRESS>From: Igor Bogoslavskyi<EMAIL_ADDRESS>Sent: vrijdag 23 maart 2018 19:30
To: Photogrammetry-Robotics-Bonn/depth_clustering<EMAIL_ADDRESS>Cc: gast<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [Photogrammetry-Robotics-Bonn/depth_clustering] clustering problems (#21)
I will close this issue, but let's continue discussing it here if you wish.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/Photogrammetry-Robotics-Bonn/depth_clustering/issues/21#issuecomment-375760122, or mute the threadhttps://github.com/notifications/unsubscribe-auth/Aj9Tu0NysBMd0mBTpNASNp-gLiiJujH-ks5thT9EgaJpZM4S469G.

Hello Igor,
Maybe another update from my side. I got the chance to work a little bit further on this today.
I got the clustering working by changing the STEP_ROW and STEP_COL to 10 (it was 1 before) in the ‘linear_image_labeler.h’-file. If I’m correct this gives the labeler a wider area to detect clusters in. I think the biggest issue is that our objects are always diagonal positioned in the image, as the clustering is more based on orthogonal objects. Is this correct? The problem that I see is that the bounding boxes are not drawn optimal with this solution. And that the clusters sometimes are not made completely because they are prohibited by another ‘smaller’ cluster. (you can see this in the image below)
It would be nice if the clustering is independent from the orientation of the objects. Is this something that is available in your code also and that needs to be activated, or does this need to be implemented also? Do you think this is difficult to make or not? (I don’t have that much experience with clustering algorithms)
Best regards,
Glenn Aesaert
<EMAIL_ADDRESS>From: gast
Sent: maandag 26 maart 2018 14:52
To: 'Photogrammetry-Robotics-Bonn/depth_clustering'<EMAIL_ADDRESS>Photogrammetry-Robotics-Bonn/depth_clustering<EMAIL_ADDRESS>Cc: Author<EMAIL_ADDRESS>Subject: RE: [Photogrammetry-Robotics-Bonn/depth_clustering] clustering problems (#21)
Hello Igor,
Sorry for my late reply. Thanks that you want to discuss this a little bit further.
I don’t see extremely large gaps between the points, I have visualized the pointcloud in rviz. (see below) But is there a limitation on how far the points can be apart from each other? I was looking for a setting like that in your code, but did not immediately find such setting. I also tried differentiating on ‘line distance’ instead of on ‘angle’, but that did not give much better results. What parameters would you advise me to play with in order to get this clustering going? And what steps woud you do in order to analyse this problem?
Thank you in advance!
Best regards,
Glenn Aesaert
<EMAIL_ADDRESS>From: Igor Bogoslavskyi <notifications<EMAIL_ADDRESS>Sent: vrijdag 23 maart 2018 19:30
To: Photogrammetry-Robotics-Bonn/depth_clustering <depth_clustering<EMAIL_ADDRESS>Cc: gast <gast<EMAIL_ADDRESS>Author <author<EMAIL_ADDRESS>Subject: Re: [Photogrammetry-Robotics-Bonn/depth_clustering] clustering problems (#21)
I will close this issue, but let's continue discussing it here if you wish.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/Photogrammetry-Robotics-Bonn/depth_clustering/issues/21#issuecomment-375760122, or mute the threadhttps://github.com/notifications/unsubscribe-auth/Aj9Tu0NysBMd0mBTpNASNp-gLiiJujH-ks5thT9EgaJpZM4S469G.

@FlexiPro I feel like you are trying to solve something with this method that this method never intended to solve. As far as I understand you are trying to cluster arbitrary objects positioned arbitrarily in the world. The method does NOT target this. It was written to process data coming from Velodyne. It is assumed that one knows the positioning of the lasers and therefore exactly how big are the gaps in the range image between the points.


Provide a Makfile for installation

FYI, I merged this pull request in my fork of wemux, which I started as @zolrath seems to have stopped maintaining it.


bug: long text on button overflows the button's bounding box

Describe the bug
If the text (or value) in the button is longer than its width, the text will overflow the button's bounding box.
Minimal Working Example
-- Basalt configurated installer
local filePath = "/basalt.lua" --here you can change the file path default: basalt
if not(fs.exists(filePath))then
		shell.run("pastebin run ESs1mg7P packed true "..filePath:gsub(".lua", "")) -- this is an alternative to the wget command
end
local basalt = require(filePath:gsub(".lua", ""))

local main = basalt.createFrame("mainFrame")

main:addButton('button')
	:setPosition(20, 8)
	:setSize(10, 3)
	:setValue('some very very long name')

basalt.autoUpdate()

Expected behavior
The text would be "cut off" the bounding box of the button.

Checklist
[✔] I am running the latest version

Hm, it's a good idea and maybe i should implement this. I don't expect the user to have a longer text than the button is - but you're right i should cut it off just in case.

I think that it should give the user a warning on run that the text is out of bounds


Created vendor folder for Gentelella and started moving files #189

Hi, working on issue #189, I created a vendor folder for Gentelella itself, and moved one file. I'll probably continue with one file at a time.

I think some assets is not necessary to be include on the vendor folder since this folder is only for external packages, this assets is just a sample and probably not the same on your application. What I mean that must not keep on production folder is the existing external packages that need some extra work to integrate on this themes

Yes, that makes sense. So only the artifacts that are meant to be distributed should go in the vendor folder, such as CSS and JS, right?

Vendor is the directory for our dependencies but that't not included the gentelella. This themes js and css is on the dist folder.


Fixed minor typos

numberic -> numeric
generate -> generated

Thank you for these corrections :) Pull Request accepted!


v1.14-branch: SDK 0.10.1 support?

Current master requires (forces) use of SDK 0.10.1, while current v1.14-branch vice-versa, is unable to work with it (due to lack of cmake/toolchain/zephyr/0.10.1 or whatever).
This complicates various triaging and CI tasks.
Is there interest for the latest LTS release to support the latest SDK? If not, d'oh.

cc @galak

Specifically issues happen with Zephyr.js project - that was barely updated to build against 1.14, we definitely don't want to switch it to master yet. But would be nice to use the current SDK (I don't even know if our (Linaro's) CI supports multiple SDK versions, likely we just switch to the latest.

@ioannisg, @galak, Any feedback?

I already have a backport PR which does this #17470

@andrewboie : Thanks!

this was already merged.


add connector node to all the example yaml files

Some users just download it and use it. Probably has no idea of the connector node.
Then they found out the connector node was not there and asked questions in the slack channel.

Since the connector node is embedded into the compute node, it is not necessary anymore.


A todos example using lit-element

Hi,
I translated the "todos" example to use the lit-element library. Something nice about it is that it is just vanilla javascript - you can just start a simple web server from the directory and it works. It's here: https://github.com/noamraph/redux-todo-lit-element
Would you be interested in adding it to the examples directory?
Thanks,
Noam

Thanks, but we're not looking to expand the examples set at this time.


Autocomplete on/off option on front-end for form elements

There are many input area on BookStack and their class name is general so they offer me my previous inputs which I used another websites, apps etc. I dont want to see these offers. How can I do it?

Hi @ayyilmaz,
This wouldn't want to build-in a setting for something this specific, but you could potentially prevent autofill on your instance by adding the following to your "Custom HTML Head Content" setting:
<script>
document.addEventListener('DOMContentLoaded', () => {
    [...document.querySelectorAll('form,input')].forEach(el => el.setAttribute('autocomplete', 'off'));
});
</script>

Some browsers still may ignore the option though. Seemed to work for me on Firefox.
Since a workaround solution has been provided I'll close this off.


Check EIGEN_MAX_ALIGN_BYTES to prevent mod-by-0

If EIGEN_MAX_ALIGN_BYTES is set to 0, alignment checks that mod by EIGEN_MAX_ALIGN_BYTES fail at runtime.

Returns true, as in tensorflow/core/framework/tensor.h
Update unit tests

Can one of the admins verify this patch?

Thanks for your pull request. It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).
Please visit https://cla.developers.google.com/ to sign.
Once you've signed, please reply here (e.g. I signed it!) and we'll verify. Thanks.

I signed the CLA!

Jenkins, test this please.

Jenkins, test this please


Solved #1988- Magnetic field lines stimulation

Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes:  #(issue no.)
#1988

Type of change

[x] New feature (non-breaking change which adds functionality)

Checklist:

[x] I have made this from my own
[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] My changes generate no new warnings

ATTACH SCREEN-SHOTS / DEPLOYMENT LINK

@Sulagna-Dutta-Roy
Kindly review and merge


Supporting nested maps?

Hi All!
I'm wondering if there are some further examples of custom formatters? I'm attempting to support nested sass maps easier and haven't found a great solution.
For instance given:
props:
  - name: primary
    value:
      0: "#e8f7ff"
      1: "#ccedff"
      2: "#a3daff"
  - name: success
    value:
      0: "#ebfbee"
      1: "#d3f9d8"
      2: "#b2f2bb"

I could get something like:
$color-map: (
    'primary': (
        0: "#e8f7ff"
        1: "#ccedff"
        2: "#a3daff"
    ),
    'success': (
        0: "#ebfbee"
        1: "#d3f9d8"
        2: "#b2f2bb"
    ),
) !default;

Perhaps with the option to return a variables map?:
$color-map: (
    'primary': (
        0: "$brand-primary-0"
        1: "$brand-primary-1"
        2: "$brand-primary-2"
    ),
    'success': (
        0: "$brand-success-0"
        1: "$brand-success-1"
        2: "$brand-success-2"
    ),
) !default;

Thanks for any guidance!

Hey @jeaster12 you can try something like this for a custom format:
//test.format.js

const { Map } = require('immutable');

module.exports = theo => {

  theo.registerFormat('nested.map.scss', raw => {
    const props = raw.get('props');

    const data = props.map(prop => {
      const value = prop.get('value');
      if (Map.isMap(value)) {
        const name = prop.get('name');

        return {
          name,
          value: value.toObject()
        };
      } else {
        return value;
      }
    });

    const map = data.toArray().map(d => {
      const body = Object.keys(d.value).map(k => `${k}: ${d.value[k]}`);

      return `'${d.name}': ( ${body} )`;
    });

    return `$color-map: ( ${map.join('\n')} ) !default`;
  });
};

and then can run it from the CLI like so:
theo --setup test.format.js test2.yaml --format nested.map.scss --dest output
Let me know if this works for you

@trazek thanks! this is a great help! Is it also possible to return the map with variables?
$color-map: (
    'primary': (
        0: "$brand-primary-0"
        1: "$brand-primary-1"
        2: "$brand-primary-2"
    ),
    'success': (
        0: "$brand-success-0"
        1: "$brand-success-1"
        2: "$brand-success-2"
    ),
) !default;

Well you can make const body = Object.keys(d.value).map(k => ${k}: ${d.value[k]}); return whatever string you want. If you make it return $brand-primary-0, etc, it's not really formatting the token data however. This being a custom format, you are free to return the structure you desire and also return the mapping for $brand-primary-0, 1, 2 etc.
If I have time, I can create an example of what I mean but let me know if you get the gist.
Cheers

Perfect I got it figured out! Thanks again.


fix external images

It turns out that many drivers require to rebind the external texture after its content has changed, so we now always do that.
Bug #6188

I will give this a spin asap, thanks a lot!

I will give this a spin asap, thanks a lot!

This fixed the Pixel 8, Pixel 4 and emulator for me.

Great stuff, all works fine now (will test some more devices but so far looking good). Thanks!


Update Overview.md

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/5946/
Test PASSed.

@alileclerc  can you make the change to master branch (edit source here https://docs.alluxio.io/os/user/edge/en/Overview.html). Then I can cherry-pick your change to branch 2.0. Currently we require all changes go to master branch first before going to each release branch by cherry-picking


runs clean

Looks like it works.

Yes, it ran cleanly for me, thanks!
I rebased the branch after removing the .idea/ directory that snuck into the commit and pushed to branch "wip" - please checkout that branch and carry on!


Autoortho.exe instant crashes on launch.

AutoOrtho.exe instantly crashes on launch; it shows an empty CMD window for a brief second and then immediately closes.
To Reproduce
It started happening out of nowhere 5 or 6 days ago. I did not install new plugins or applications, nor did i update Windows in any way during this time.
Expected behavior
A CMD Window appears for half a second and then immediately closes when trying to start AutoOrtho.exe. I also do not get any kind of written or audio error message on my PC when this occurs.
Screenshots
I can't provide a screenshot since the event is extremely brief, and I think it is pointless due to the nature of the problem.
System Specs

OS: Windows 10
XPlane Version: XP 12.05
AutoOrtho Version 0.4.3
Filesystem type: NTFS

Additional context
It really started happening out of nowhere (at least on my end) 5 days ago; I did not update Windows, XPlane, or Autoortho at that time.

Do you have the AutoOrtho log in C:\Users\Your Name.autoortho-data? Lets see if that shows anything

Very Sorry, I needed space on my drive and deleted the autoortho-data folder. The timing could not be any worse.

Update: I did a complete reinstall of my PC and Windows (Formatted my C: drive), and it's working like usual. Unfortunately, I did not find the culprit.


ENH: implement variables substitution in configuration

@rgommers This is now working. We would just need to plug in a function to compute ncores and some documentation.

This is looking interesting, thanks! For ncores, we may need two allowed variables (logical or physical) or some other way to indicate which one you want. In SciPy we use this (here):
        if args.parallel is None:
            # Use number of physical cores rather than ninja's default of 2N+2,
            # to avoid out of memory issues (see gh-17941 and gh-18443)
            n_cores = cpu_count(only_physical_cores=True)
            cmd += [f"-j{n_cores}"]
        else:
            cmd += ["-j", str(args.parallel)]

It seems that SciPy uses only the physical cores, thus I'll be temped to implement only that for now, and implement logical core detection only if someone asks for it. WDYT?

Yes, I think that sounds good. It'd be good to get the feedback/reasons in case someone needs more than physical cores.
To plug in the function, I think taking the cpu_count function from SciPy unmodified would be useful, since it's pretty well-tested code by now (also through scikit-learn/loky).

Can we do that from a licensing point of view? meson-python is released under the MIT license, loky and SciPy are licensed under the BSD-3 license.

Those licenses are compatible, so there's no problem there. Technically yes, we'd have to carry over the license text and mark that part of the code as having a BSD-3 license. If it's only a few lines of code you typically wouldn't bother, but here it's >200 LoC. So probably best done in a separate file with its own SPDX header and a copy of the full license text of Loky. (I'm the author of any modifications in SciPy, so I can relicense those for use as MIT in meson-python).

I was thinking to do just that, I just wanted to make sure that it is ok to include some BSD code in meson-python.

Do you have a preference for %(ncores)d vs {ncores} vs ${ncores} namely old-style % string formatting, vs new-style string formatting, vs template strings?
The only practical difference I can see is that the first allows to specify a type for type conversion so
%(ncores * 2 / 3)d is guaranteed to be the string representation of an integer, while {ncores * 2 / 3 :d} gives an error. Template strings look best IMHO, but they cannot specify the conversion type, thus ${ncores  * 2 / 3} would result in the string representation of a float, which for solving the problem at hand would not work. However, we could implement the // integer division operator too, which would solve the problem.
New-style formatting is more expressive and would allow things like accessing attributes of the defined variables (not that it makes sense for integer variables as we are considering here) but it would be useful if we reuse the same mechanism for #29. On the other hand, with the Python AST based approach, we can implement that easily on top of the % string formatting syntax or template strings.
I'm leaning toward template strings and adding the // operator.

Template strings sounds good to me, or otherwise new-style formatting. %s feels a little outdated.
// should work, but perhaps it's more practical to just state that whatever the final number is, we apply either round() or int() to it?

// should work, but perhaps it's more practical to just state that whatever the final number is, we apply either round() or int() to it?

It depend on whether we are designing this as a generic facility or something that will only work with integer variables. I think it is worth to keep it generic (I think that the solution for #29 could be based on a similar mechanism, for example) thus forcing all variables to be integers does not seem right. Having a way to decide which variables should be coerced to int and which should not seems unnecessarily complicated.

Okay, that seems like a good reason -  I'm happy with // too.


Doc config descriptions

@oscerd thanks for your patience. I have finally fixed the PR so that it passes all checks :)


Properly store and parse the user object

There was a bug with storing the user object, sessionStorage.set('user', user) was storing [object Object] which is buckets of fun.
Fixing it, and added to the home template to show the username.

@DFilipeS @lfrodrigues

Thanks @pconerly sorry for the delay in merging


Wrong link for blockchain explorer after sending tx

Link leads to https://mainnet.aeternal.io/transactions/th_... , but it should be https://explorer.aeternity.io/transactions/th_... I guess

Latest version on the Firefox is now 0.9.6 and it doesn't have such problem.


Please clarify license of this repo

Hi @peggyrayzis. Please clarify licensing of this package, hopefully MIT

Thanks for catching that! It's MIT 🎉


Using pure html in md files.

Does grav fully support pure html in md files under user/pages/? That is, can arbitrary standard html code be rendered correctly by grav correctly?
The motivation for this question is that we use a jQuery rich text editor plugin to allow user to enter html code for documentation, rather than markdown. The output of the editor is html code. We'd like to stick with pure html if possible.
Thanks!

Yes, because Markdown (Parsedown in this case)  supports all HTML natively. In most cases you can mix them too.


Adjust the details of the dora reading process for extension

What changes are proposed in this pull request?
Please outline the changes and how this PR fixes the issue.
Why are the changes needed?
Please clarify why the changes are needed. For instance,

If you propose a new API, clarify the use case for a new API.
If you fix a bug, describe the bug.

Does this PR introduce any user facing changes?
Please list the user-facing changes introduced by your change, including

change in user-facing APIs
addition or removal of property keys
webui

looks good overall!

alluxio-bot, merge this please


Fix for crash in the case all y values were negative and...

... startAtZeroEnabled was set. I fixed the logic to compute the yAxis range. Previously we were getting a range of 0, and since we use it when computing the transformation matrix as divisor we were getting a matrix with +Inf and NaN values which was causing a crash later on.
Cheers,
Patrick

Is this fix for recent changes about startAtZeroEnabled and range calculation? Seems like older versions don't have this issue, if all y values negative.

I am not sure if this patch fixes a recent change, because I have not followed ios-charts' history. I could just observe the bug on my side with the latest ios-charts version from CocoaPods or github's trunk.

The logic for startAtZeroEnabled has changed, and this commit conflicts with it
Please check if your issue still happens with the latest changes

If the issue still happens - please make a new PR, this can't be merged...

Sorry, I was quite busy lately.
Ok, I checked the behavior of the latest ios-chart version for all negative y values and it seems fine so far. All good. I am switching the dependency back to the official version.
Thx!
Cheers,


SpatialTransform with respect to different coordinate systems (Axes)

Currently, a SpatialTransform is a coordinate mapping of normalized coordinates with respect to the reference sampling Grid specified when constructing the spatial transformation object. A user of the transform has to map coordinates with respect to other Axes to these normalized coordinates before applying the transformation, and back again. In contexts where no normalized coordinates are used to represent the spatial transformation because torch.nn.functional.grid_sample is not being utilized, one might even want to parameterize the spatial transformation with respect to other coordinate systems (e.g., the world coordinate system). These use cases could be supported by adding a axes: Axes property and optionally a corresponding keyword argument to SpatialTranform.forward(.., axes: Optional[Axes] = None) which can be used to define the parameterization axes of the coordinate map and further to specify with respect to which axes the input points are defined.
Thanks @qiuhuaqi for this suggestion. Let's discuss here benefits or any reason why we wouldn't support this.

While this feature request is different, and may still be desirable for those who want to implement a classic registration which directly operates in world space rather than normalized point coordinates, a possible work-around is to use SpatialTransform.points() instead of having spatial transforms whose parameterization is with respect to unnormalized coordinates spaces.
See #62.

sorry I must've missed the review request for #62. Yeah I can see this is a good workaround for my usecase, which is transforming the points which are in the un-normalised space (world space) with SpatialTransform.