Composing multiple HOCs that return ComponentTypes using ElementConfig breaks prop types

To reproduce: https://flow.org/try/#0JYWwDg9gTgLgBAKjgQwM5wEoFNkGN4BmUEIcA5FDvmQNwBQduEAdqvE+BKlgFxwAkAYRKRucALxwAFMwCuAG3l9kzAJ4BKeoxZs4wZgCss+AGIQIEuAB4ACsTCo+AbwC+AGjgBpPtjwwAdMKczFjMMAAqqmBYtvaoAHzxUnRwcEGQIWF8nm506j5UAeksoRFRMfwAIsAEBFa++P4AovJYIKXCzATAAOZWnvEeTgTmfGxQ+j1wAD5wAG4QwAAmLokS8XBOKXCUMLJQzNJyispqmnQuWkys8PpG+ABCyFCWsRAOzu5eBX6BIiVhSLRN4ORLJVLFTIwbK5fKYQp-YKlIEVaq1eoIlptDosbp9AZDABGzzGMAmzCmswWy1WG3EGy2qV2+0OMgUShQZ3olwYuHkaHQTQAHshwK1IaU4FghTBQkt0A0iv8oVZGXARhBSeSerlUsSoFrJrq4MSAF58OQgQlYKDG7rmk3mVoqXKrTbbNjIGDAXBwJZYAjIBQwOzvdCSNV65AOgAMxp5LgYAHok2kABbIfRYJZpZXI8pJrHtMKdPEmyjIADW6DAcW0NzgAElDMZZUsJWFLBxRFhwXoW6ZzMa7q2nra8lJhaKwOK82FzqlF0vl3QUwJhdF8E0oMQXoTZPBmBAAv5-HBUGmIAoc93+foUISr4RgKa4CBgKhUEaTcgc2az7WYYoJQ55YG0kzyKocAAAYqKo0FwEeADudBWM29xth28BmuIABEACMABMADMuFwEm8RaGuDwHnABiyLoJRwEh0DVqe-j1ro6GttmWFmBYkgjoOECTiKYpYFh5xoQOmFzjA-E-lAeFEaR6ovuRlHJqmzZsDgOYQAQOxYHsByTLmSKAuUHg1MxWDqtAuB2YI-KfhivxYVY7GJNZ8AsVA1acbcMn8YRryhh8mxfN48LuXJKIggkSTbFhMJ5HwzkClY2yKoiGSlFYVQ1HUOVFjiXS9P0gybBqhoUjM8yLCsVVwYMdB0gy2zMgcRzsqcGjcvQy5DcNgX9hhY6hZICWfB40U5Vh8XhYlfYpV4sLpS5qBZak81yQVaLFZirTFjApYVQSmz6rVlINTSzVqK17Xukyxksj1Jycv1FyDcNv1DaN3H4LxcmTXA3ZcL22xCfJ5iEcOMkTbConTrOFkwOcq6pvwG6ttuu6oYDslo6FOEESRZH2hpVGpgA6qxqAAIQEzJwPE2pr4UTQQA
I've attempted to comment the above. Some more detail:

injectFoo and injectBar are HOCs that return React.ComponentType calculated using React.ElementConfig. Alone, they work as expected. However, when composed together, the resulting component loses all prop types.
injectFoo2 and injectBar2 are alternate typed versions of the same HOC. Instead of returning React.ComponentType they return just Class<React.Component<...>>. Composing these together works as desired.

Simple example of this issue. I'm using the myHOC component from the documentation (https://flow.org/en/docs/react/hoc/#toc-supporting-defaultprops-with-react-elementconfig).
https://flow.org/try/#0PTAEAEDMBsHsHcBQBLAtgB1gJwC6gFSgCGAzqAEoCmRAxnpFrKqAORbV0uKIig2zpklACagGTUMNg0SiSAFcAdnWSxFoVAE8AEgHkAwgB4ACo3QkANKH1NMiyopwAuChxwA6GxjUOcAFU10ShMzEgA+MIAKRFBQAHUsInQg4S87Xxc0n0dEAEoXKloPLPtHAKDDQrp3AFFoSlRfG0VIZABzQxLfCNAAbxjQdhx5LHV0UNAAXjDQQwSklK7HPvdV8YESAF9QYDCAbkRN7hxAylBTDam+gfX0AEEXRXlUACNKLAsB+GQcAAsAEUokCI8mgzlAJBwWGQijanyO-EUkNAAGU0Oh6ks8JNQJFbiQXBdzLkpjNDMJkAA3MK9fHuW53Ta00Lub5-QHA0E4TaGYAU6mINEYTG2bIeYRAkFgolkHH9WJsgGSrkuABE2ko0Dgqvh3ERyJqil+RGUIixVy0en0kSFGMoWNyB31eENxtNqVFpRwACYLToDJFLQHbSLvF7co69WpkThKMicZFyVSwgNDCH7Z7fKAGZNegBGba7VOuk00M2Z5a7PrAQg2LDsOjQTSgP6MeBkGr17AEYBHWKGEvurG+nYzXo11G-WCg0SthCgTuMLA9o68-lhR1AA

Apologies if this is unrelated, but I feel like it's probably a symptom of the same problem:
Even with @oliver-stripe's workaround, if you try to lift the "returned props" type into the HOC's generic signature, it breaks the props type checking again, depending on which order that HOC appears in the compose().
So if in @oliver-stripe's example, injectBar2 is modified like so (only change being RP being made reusable, a useful pattern in many HOCs), type checking breaks:
const injectBar2 = <
  Props: {},
  K: React.ComponentType<Props>,
  RP: $Diff<React.ElementConfig<K>, {bar: string | void}>
>(
  Component: K,
): Class<
  React.Component<RP, any>,
> => {
  return (null: any);
};

But it works again if the order of injectBar2 and injectFoo2 are switched in the compose().  (I think the only condition under which it works is if that HOC only appears once, as the very first HOC in the composition).
This can be worked around by not using generics and writing the $Diff out in full each time, but of course it ends up more verbose / error prone.

I've be able to work around this by wrapping the ElementConfig in a $Exact, but i am still unsure about any side effect of it
try it

Here's a better approach with $Supertype instead of $Exact. try it

@cesardeazevedo Unfortunately, those two workarounds don't work when the HOC has another argument:
$Exact
$Supertype

It looks like, with the release of Flow 0.89.0, and its new AbstractComponent type (Docs, Medium), which ComponentType now aliases to, the examples in the first 2 posts now work correctly, hooray!
However, strangely, they can't be rewritten in the new way actually suggested in the docs, or it breaks composition again.
Example created by rewriting injectBar from example in first post to way it's shown in docs.  Error on line 35 no longer gets picked up.
cc @jbrown215

Out of the office today, so I won’t be able to look at this in more detail
until Monday. If you rewrite without using $Compose does it work? I expect
there may be a bug with $Compose.
Glad to see this solved other issues here, though!
On Fri, Dec 14, 2018 at 11:43 AM James Isaac<EMAIL_ADDRESS>wrote:

It looks like, with the release of Flow 0.89.0, and its new
AbstractComponent type (Docs
https://flow.org/en/docs/react/hoc/#toc-hocs-as-of-0-89-0, Medium
https://medium.com/flow-type/supporting-react-forwardref-and-beyond-f8dd88f35544),
which ComponentType now aliases to, the examples in the first 2 posts now
work correctly, hooray!
However, strangely, they can't be rewritten in the new way actually
suggested in the docs, or it breaks composition again.
Example
https://flow.org/try/#0JYWwDg9gTgLgBAKjgQwM5wEoFNkGN4BmUEIcA5FDvmQNwBQduEAdqvE+BKlgFxwAkAYRKRucALxwAFMwCuAG3l9kzAJ4BKeoxZs4wZgCss+AGIQIEuAB4ACsTCo+AbwC+AGjgBpPtjwwAdMKczFjMMAAqqmBYtvaoAHzxUnRwcEGQIWF8nm506j5UAeksoRFRMfwAIsAEBFa++P4AovJYIKXCzATAAOZWnvEeTgTmfGxQ+j1wAD5wAG4QwAAmLokS8XBOKXCUMLJQzNJyispqmnQuWkys8PpG+ABCyFCWVp3dPc6ryanFmTAFPz+ACCACNxn4-qU3iwPoM8oDGmCIfgoWErFUanV3r0hqDnmMYBNmFNZgtlqsNuINltUrt9ocZAolCgzvRLgxcPI0OgmgAPZDgVpo+BYPkwUJLdANIoiEro2lwEYQQnEnq5VL4qCqyYauD4gBefDkIFBWCgeu6Rv15laKlyq022zYyBgwFwcCWWAIyAUMDsEAclkVmuQ1oADHqOS4GAB6WNpAAWyH0WCWaTl-0i0VjLTaHVhvX1lGQAGt0GA4tobnAAJKGYwSpYiywcURYH56Bumcx6u6Np4WvJSfmCsDCzOlc6pGezud0eMCfnRfBNKDEF6g2TwZgQAL+fxwVCJiAKdNt7n6FCg0+EYAGuAgYCoVC6-XIdOGw+VwPoZ5YI8sDaSZ5FUOAAAMVFUcC4F3AB3OgrHre4mxbQ1xAAIgARgAJgAZgwuBY3iLRFwebc4AMWRdBKOA4OgcsD38atdGQxs0xFMwLEkfsewgEcBSFLARXOJDu1Qycwi498oEw3CCKVe8iJIuME3rNgcHTCACB2LA9gOSYM2CUpsywDwajogCRigXAAMEbkX3qQpAkkmArCYxJzPgeioHLFjbnEricNeAMHC+DxvEwZyRVM2Jf0STsRWyXJ8jSBzUCsbYZRc4z0UxWonKBPN2jCHE+gGIZlR1EkZnmRYVkGVlVHhKkaW2ekDiOZlTg0dl6DnAbBv8rsUMHYLJDisLNncLxEVlXKymiSaEiSbYkq8FK+HsnlMtSbKRQxaoCuy4qCy6Xp+kapwtWq0k6opRqoJa9YnTpPSGS6k4mvODlBr+obrlY8SONc8a4DbLgO22XiYCCvtxLGlKBLHCcFvOBcE34ZdGzXDdELY-AQYW4L0Ow-DCKtZTSITAB1BjUAAQnx4Hm1BxSH2ImggA
created by rewriting injectBar from example in first post to way it's
shown in docs. Error on line 35 no longer gets picked up.
cc @jbrown215 https://github.com/jbrown215
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/facebook/flow/issues/6057#issuecomment-447381754, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AIJ9z2nYVTIXhsm1EUwKyOcLJA1-x7vaks5u49VCgaJpZM4S_Tf3
.

--
Sent from Gmail Mobile

The issue still remains when rewriting from $Compose to injectFoo(injectBar(ExampleComponent));, unfortunately.  (Same with these issues in previous Flow versions, testing without $Compose never seemed to make any difference).
Thanks a lot for taking a look at this.  Not being able to reliably compose HOCs has been the only major pain point I've experienced with Flow when trying to scale it out to large React projects.

Ah, in that case I think I know what the issue here is. If I’m correct, the
issue is with $Diff not receiving the bounds necessary from the function
call.
If you give explicit type arguments to the HOCs does it work as expected?
On Fri, Dec 14, 2018 at 12:04 PM James Isaac<EMAIL_ADDRESS>wrote:

The issue still remains when rewriting from $Compose to
injectFoo(injectBar(ExampleComponent));, unfortunately. (Same with these
issues in previous Flow versions, testing without $Compose never seemed to
make any difference).
Thanks a lot for taking a look at this. Not being able to reliably compose
HOCs has been the only major pain point I've experienced with Flow when
trying to scale it out to large React projects.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/facebook/flow/issues/6057#issuecomment-447387788, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AIJ9z0Gn_oi5VU0q2z902NdRdNGfqgJnks5u49oQgaJpZM4S_Tf3
.

--
Sent from Gmail Mobile

Aha, yes, it does indeed work if written as:
injectFoo(injectBar<React.Config<Props, DefaultProps>>(ExampleComponent))

(where only injectBar has been rewritten to the new style).
The failure was silent though, no "missing annotation" error as mentioned in the docs.
Is needing the explicit type arguments by design, or a bug?  If intentional, maybe it would be better to continue defining HOCs in the old style, if it means less typing work for the user when they actually come to use them?  It also seems that explicit type arguments wouldn't work with $Compose.  Or is there some other disadvantage to the older style, apart from it being more verbose?

The problem here is actually the same as the root cause of this issue— when
type destructors don’t receive the necessary bounds they have strange
behavior. ElementConfig could also have been used with explicit type
arguments before 0.89.
I have some work in the pipeline with @samwgoldman to ask for annotations
in these cases. This work is also explicitly on our roadmap for the next
half.
For now, I recommend sticking with the new style and adding type arguments
when you can.
On Fri, Dec 14, 2018 at 12:48 PM James Isaac<EMAIL_ADDRESS>wrote:

Aha, yes, it does indeed work if written as:
injectFoo(injectBar<React.Config<Props, DefaultProps>>(ExampleComponent))
(where only injectBar has been rewritten to the new style).
The failure was silent though, no "missing annotation" error as mentioned
in the docs.
Is needing the explicit type arguments by design, or a bug? If
intentional, maybe it would be better to continue defining HOCs in the old
style, if it means less typing work for the user when they actually come to
use them? It also seems that explicit type arguments wouldn't work with
$Compose. Or is there some other disadvantage to the older style, apart
from it being more verbose?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/facebook/flow/issues/6057#issuecomment-447400284, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AIJ9z-yi_e_zToAgy_IsLJzFRyAefmHsks5u4-RqgaJpZM4S_Tf3
.

--
Sent from Gmail Mobile

I should also mention that if you export the component it will ask for the
annotations already. In my experience, most of the time these components
that get wrapped in multiple HOCs are exported. This shouldn’t be too
silent most of the time :)
But we definitely will make sure it’s always flagged, even when it isn’t
exported.
On Fri, Dec 14, 2018 at 1:19 PM Jordan Brown<EMAIL_ADDRESS>wrote:

The problem here is actually the same as the root cause of this issue—
when type destructors don’t receive the necessary bounds they have strange
behavior. ElementConfig could also have been used with explicit type
arguments before 0.89.
I have some work in the pipeline with @samwgoldman to ask for annotations
in these cases. This work is also explicitly on our roadmap for the next
half.
For now, I recommend sticking with the new style and adding type arguments
when you can.
On Fri, Dec 14, 2018 at 12:48 PM James Isaac<EMAIL_ADDRESS>wrote:

Aha, yes, it does indeed work if written as:
injectFoo(injectBar<React.Config<Props, DefaultProps>>(ExampleComponent))
(where only injectBar has been rewritten to the new style).
The failure was silent though, no "missing annotation" error as mentioned
in the docs.
Is needing the explicit type arguments by design, or a bug? If
intentional, maybe it would be better to continue defining HOCs in the old
style, if it means less typing work for the user when they actually come to
use them? It also seems that explicit type arguments wouldn't work with
$Compose. Or is there some other disadvantage to the older style, apart
from it being more verbose?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/facebook/flow/issues/6057#issuecomment-447400284,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AIJ9z-yi_e_zToAgy_IsLJzFRyAefmHsks5u4-RqgaJpZM4S_Tf3
.

--
Sent from Gmail Mobile

--
Sent from Gmail Mobile

Trying out everything in the new style, it seems that the examples are back to correctly picking up errors again, even with no explicit types.  I think my issue was using a mixture of old style and new style -- sorry, should have thought to try all HOCs as new style.
However, testing it out with exported components, it seems that even then the Missing type annotation error is absent (basically having a $Diff in the HOC return type stops the error appearing, so only trivialHOC that adds no props triggers that error).  So I'm not sure if my usage will start triggering an error in future, because I have no explicit types.
My concern with needing explicit types for every HOC, is that it will add a lot of complexity for the types when writing otherwise simple components, especially for the average developer who only has limited Flow knowledge.  Every level of HOC would need a $Diff, where you know exactly which props were removed.  Something like:
export default injectFoo<$Diff<React.Config<Props, DefaultProps>, { bar: string | void }>>(
  injectBar<React.Config<Props, DefaultProps>>(MyComponent)
);

... just imagine with 3 levels of HOC, would get unwieldy extremely quickly.  Support for implicit/inferred types, at least for the outer HOCs, would make this a lot more manageable imo.

My concern with needing explicit types for every HOC, is that it will add a lot of complexity for the types when writing otherwise simple components, especially for the average developer who only has limited Flow knowledge

Couldn't agree more. The most important annotation is the outermost, and you don't have to give annotations as type arguments. For example:
const export: React.AbstractComponent<SomeConfig> = wrap1(wrap2(wrap3(...(wrapN(Component))...);

Even so, there is still room for improvement here. I don't expect flow to get any less strict with annotation requirements in the future, so there is definitely meaningful work to be done in helping reduce the burden these annotations cause.


In trade confirm step, calculate fiat value for buy asset

Overview
Currently on the trade confirm step, we display the same fiat value for the sell asset and buy asset rather than calculating the fiat values of each. This gives users the wrong impression that they are losing 0 value to slippage or fees.

References and additional details
n/a
Acceptance Criteria
Currently on the trade confirm step, we display the same fiat value for the sell asset and buy asset rather than calculating the fiat values of each. This gives users the wrong impression that they are losing 0 value to slippage or fees.

AC:

Fiat values are calculated for both the buy asset and sell asset on trade confirm
If no fiat value is available for either asset, display "---"

Need By Date
No response
Screenshots/Mockups
No response
Estimated effort
30 minutes

@shapeshift/product @willyogo I added the product label and am going to pause on this until the deasigns are more solidified

@elmutt do you want us to put the scenarios/layout for all 3 - 0x, cowswap and Thorchain into this ticket?

gm all - the talented mr. beard has provided some updated UX to handle this. The CowSwap spec has been updated to reflect this specifically but it's easier to see than explain so please see link below with updated spec info below that.
The big changes involve adding in a 'receive including fees' modal to display the amount received to the user more accurately
https://www.figma.com/proto/OHbVrAVaV2xQWUsq0nKzGm/ShapeShift-Library?node-id=162%3A869&scaling=min-zoom&page-id=134%3A613&starting-point-node-id=134%3A614
https://shapeshift.notion.site/CowSwap-Order-Routing-Selection-in-v2-abc0e99098b449be85b1230d778f4800

@chxash FYI closing in favor of https://github.com/shapeshift/web/issues/2265


Request send to https by default when using --rawdata

Describe the bug
when I use the raw request of http://testphp.vulnweb.com in dalfox, it sends request to https://testphp.vulnweb.com by default.

This is not a bug because there is an option to "force http on rawdata mode". Find the below reference the HTTP by default is set to false, If you need to send the HTTP request please use --http so you can send a request via HTTP.
Command for force HTTP on rawdata mode
dalfox file --rawdata raw_request.txt --http --poc-type=http-request

Output

Reference
https://github.com/hahwul/dalfox/blob/efcef0ffbf0fe775d8722940cce02069d7b51fdb/cmd/file.go#L267
Please @hahwul close this issue.

Hi @darshanpjpt
As @rudSarkar explained, when using rawdata, it is basically recognized as HTTPS and can be fixed as HTTP through flag. This is because you cannot identify whether HTTP or HTTPS was used in the Raw HTTP request.
As it is not a bug, I will close the issue. If there's a problem, please re-open it again :D


Add alerting when sync ends with success or error

Added Notifier interface
Added "notifier" flag
Added blank and SNS implementation to the notifier
Notify when snapshot ends or broke

Thanks for these proposed changes.
Rather than introducing AWS-specific notification into the source code, I would suggest adding sync snapshot completion status to the existing status reporting function.  This would allow AWS notification to be done by an external monitoring script.

@nassibnassar

Thanks for these proposed changes.
Rather than introducing AWS-specific notification into the source code, I would suggest adding sync snapshot completion status to the existing status reporting function. This would allow AWS notification to be done by an external monitoring script.

I'm not sure what you mean by the "existing status reporting function" .
Is it "metadb/cmd/mdb/status/status.go" funcs
Status(opt *option.Status)
and  "metadb/cmd/internal/status/status.go"
(st *Status) GetString() string  ?

Take a look at "LIST status" in https://metadb.dev/doc/#_list which begins roughly at list() in: metadb/cmd/metadb/libpq/libpq.go
I suggest creating an issue at https://github.com/metadb-project/metadb/issues:

for the issue title: "proposal: add snapshot completion status to LIST status output"
for the issue description: draft an informal design for this work, which would allow for feedback on the approach before implementing and hopefully save you time

I apologize if this was not clear, but for the issue description I did not mean copying the text but instead describing the approach you plan to take, so that we can give feedback before you spend a lot of time implementing.

I apologize if this was not clear, but for the issue description I did not mean copying the text but instead describing the approach you plan to take, so that we can give feedback before you spend a lot of time implementing.

Thanks for your explanations!
I will mark this in our documentation as the main way of communicating ideas and suggestions for improvements or changes to the code base for future collaboration.


fix(api): small Makefile lint change

I was working on this branch when I started getting the following error:
tests/opentrons/conftest.py: error: Source file found twice under different module names: "api.tests.opentrons.conftest" and "tests.opentrons.conftest"
I found that just changing the lint arguments fixed it. Is this something that should be pushed to edge, or is it specific to my code from the other branch?

The creation of api/__init__.py in your other PR looks suspicious. Do you still need this Makefile change if you remove api/__init__.py?

Is this something that should be pushed to edge, or is it specific to my code from the other branch?

The creation of api/__init__.py in your other PR looks suspicious. Do you still need this Makefile change if you remove api/__init__.py?

no, removing that __init__ file fixed the issue. Don't think I meant to create it in api. Thanks!


[MacOS] Background color mismatch with dark theme

VSCode Version: 1.7.2
OS Version: Mac OS 10.12 (16A323)

Steps to Reproduce:

Download any dark theme
activate dark theme

Here is a screenshot of the issue. The background is lighter than the actual background used for source code. I couldn't find any more information about this issue online. Any workaround? This is used to work but recent update seems to break it.

https://github.com/Microsoft/vscode/issues/12473


Fix/unix paths

This should fix the problem that the ~ meta doesn't get expanded correctly.
See #12

Codecov Report

Merging #14 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #14   +/-   ##
=======================================
  Coverage   97.67%   97.67%
=======================================
  Files          10       10
  Lines          86       86
  Branches       12       12
=======================================
  Hits           84       84
  Misses          2        2

Continue to review full report at Codecov.

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

@ankush981


An error occurred shortly after the first boot

Upgrade from 0.5.3 to 0.6.0. After the upgrade, an error occurred shortly after the first startup
Before upgrade:
centos 7.5
bee-clef：0.4.9
bee：0.5.3
Backup files
rm -rf /root/.bee/localstore
cp -rf /root/.bee /root/.beeo
cp -rf /var/lib/bee-clef /var/lib/bee-clefo
cp -rf /var/lib/bee /var/lib/beeo
cp -rf /etc/bee-clef /etc/bee-clefo
cp -rf /etc/bee /etc/beeo
uninstall
yum remove bee
yum remove bee-clef
Re install
rpm -i bee-clef_ 0.4.12_ amd64.rpm
rpm -i bee_ 0.6.0_ amd64.rpm
Restore backup
cp -rf /root/.beeo /root/.bee
cp -rf /var/lib/bee-clefo /var/lib/bee-clef
cp -rf /var/lib/beeo /var/lib/bee
cp -rf /etc/bee-clefo /etc/bee-clef
cp -rf /etc/beeo /etc/bee
Run command line parameters
. / clear service start (same as version 0.4.9)
bee start --full-node --db-open-files-limit 2000 --verbosity 5 --swap-endpoint  https://goerli.infura.io/v3/ffa35c4cc95f4a38a410f3b66fxxxxxx  --debug-api-enable --clef-signer-enable --clef-signer-endpoint /var/lib/bee-clef/clef.ipc
Error content
TRAC[2021-05-21T20:51:35Z] connecting to bootnode /ip4/<IP_ADDRESS>/tcp/31305/p2p/16Uiu2HAmEYYKJZzCE9PuBBzncuAaJ3ZSw5hovsepXjF859wDZ6bd
panic: runtime error: index out of range [16] with length 16
goroutine 149 [running]:
github.com/ethersphere/bee/pkg/puller.(*Puller).recalcPeer(0xc000a42b40, 0x172d398, 0xc000256980, 0xc002300320, 0x20, 0x20, 0x0)
github.com/ethersphere/bee/pkg/puller/puller.go:220 +0x67d
github.com/ethersphere/bee/pkg/puller.(*Puller).manage(0xc000a42b40)
github.com/ethersphere/bee/pkg/puller/puller.go:170 +0x428
created by github.com/ethersphere/bee/pkg/puller.New
github.com/ethersphere/bee/pkg/puller/puller.go:82 +0x2aa

I looked at the source code and traced it back to pullsync.go's GetCursors which seems to rely on the other peer's handler to return the proper array size via the pullsync.proto.  The cursor handler further relies on pullstorage.go's Cursors that seems to construct the array with swarm.MaxBins entries which should be fine.
But if a 0.6.* node connects to a 0.5.3 node somehow, then it will receive an Ack response that only contains [16] entries which would definitely cause this error.  And it would be random depending on what peers a node connected to.
In bee-support, it seems that only certain people are seeing this, but they are seeing it fairly reliably shortly after node startup, which means that there may be 0.5.3 in 0.6.0 clothing lurking in certain neighborhoods?
I considered a fix whereby the GetCursors routine could examine the returned Ack array and expand it to [32], or possibly we should test it there and blacklist any peer that returns a size different than our own swarm.MaxBins?
Definitely seems reasonable for the puller to "assume" that it got a properly-sized array from the protocol and fix it in pullsync, not puller so that the return from GetCursors can be trusted.

Duplicated (with better titles) at #1827 and #1837

I hope to be resolved first, a large number of my nodes are waiting to be processed

This should be resolved with the latest release. Please reply on this issue if this is the case (or not).


parallele image loading (preloadAfterLoad)

Hi!
I'm using the very nice option preloadAfterLoad to load all images once a page is loaded.
This feature is really nice but not optimised tough.
For now images are loaded one after an other...That takes a lot of time and could be way better.
So I was wondering if it possible to handle parallele image loading once page is loaded?

This could be useful to better understand the problem:

After Dom ready all images behind the blue line could be load in parallel to optimise global render time... what do you think guys?

@jmbelloteau what do you make of the following note next to the option in the README?

Note: lazySizes will then still download those not-in-view images inside of a lazy queue, so that other downloads after onload are not blocked.

Thanks... peace!!!

Hi @jhabdas !
Has you can see I've change my Github user name for jimblue. Keeping jmbelloteau was not good for SEO as my website is jmbelloteau.com and I started to have many post on Github.
Because Github doesn't do it automatically could you please change the reference to @jmbelloteau for @jimblue in your post above?
Thank you for helping me with that.
I'll remove this message once it's done!
Cheers

Hi @jhabdas !
Has you can see I've change my Github user name for jimblue. Keeping jmbelloteau was not good for SEO as my website is jmbelloteau.com and I started to have many post on Github.
Because Github doesn't do it automatically could you please change the reference to @jmbelloteau for @jimblue in your post above?
Thank you for helping me with that.
I'll remove this message once it's done!
Cheers


Automate Methods hang after rails 5 upgrade

After upgrading to rails 5 automate methods hang in dev and prod environment but works in test env.

I noticed this problem yesterday as well. It seems that it reaches the point where a subprocess is spawned that never wakes up from sleep for whatever reason, causing everything else to hang.
https://github.com/ManageIQ/manageiq/blob/master/lib/miq_automation_engine/engine/miq_ae_method.rb#L270

/cc @matthewd @Fryguy

This seems to happen because of MiqAePassword being undefined when executing this line of code https://github.com/ManageIQ/manageiq/blob/master/lib/miq_automation_engine/engine/miq_ae_service/miq_ae_service_object_common.rb#L5
if the MiqAePassword is required in lib/miq_automation_engine/engine/miq_ae_service.rb then we don't see this issue.
require_relative '../models/miq_ae_password'
Another twist is this works in TEST but not in DEV or PROD environments.

Is it a difference with autoloading of files in test vs. dev/prod from rails 4 to 5?  Did we change the autoload paths?

@jrafanie
Not sure.
The autoload is properly set in
https://github.com/ManageIQ/manageiq/blob/master/config/application.rb#L75
Stepping thru the code we locate the correct file to be loaded but hang on this line
Dependencies.load_interlock
https://github.com/rails/rails/blob/v5.0.0.beta2/activesupport/lib/active_support/dependencies.rb#L369
https://github.com/rails/rails/blob/v5.0.0.beta2/activesupport/lib/active_support/dependencies/interlock.rb#L11
``
#<ActiveSupport::Concurrency::ShareLock:0x007faad7d22920 @mon_owner=nil, @mon_count=0, @mon_mutex=#Mutex:0x007faad7d228d0, @cv=#<MonitorMixin::ConditionVariable:0x007faad7d228a8 @monitor=#<ActiveSupport::Concurrency::ShareLock:0x007faad7d22920 ...>, @cond=#Thread::ConditionVariable:0x007faad7d22880>, @sharing={#<Thread:0x007faac987b808@/Users/xxxxx/.gem/ruby/2.2.2/gems/puma-2.16.0/lib/puma/thread_pool.rb:61 sleep>=>1}, @waiting={}, @exclusive_thread=nil, @exclusive_depth=0>

It's a good thing we have the right person for the job @matthewd. :bow:
I've always wanted to extract the run ruby method thing to be runnable from console/rails runner so you don't have to figure up the UI and do a bunch of steps to test it.

Ohhhhh, I see.
The thing that invokes the drb needs to wrap the invocation in https://github.com/rails/rails/blob/master/activesupport/lib/active_support/dependencies/interlock.rb#L46 -- thereby promising it's not going to run any code that might hit an autoloadable constant inside the block / while it's waiting.


Sound System:File not found on export project -MacOS

Describe the bug
After compiling on 3.2 stable Godot with this integration, I'm trying to export a MacOS .dmg of the example project included on the repository, and I get the following message on the terminal:
FMOD Sound System: Live update enabled!
FMOD Sound System: File not found.
FMOD Sound System: File not found.
FMOD Sound System: The requested event, parameter, bus or vca could not be found.
FMOD Sound System: The requested event, parameter, bus or vca could not be found.

The game graphics and logic runs well, but no sound is playing.
To Reproduce
Steps to reproduce the behavior:

I'm adding a screenshot of the export settings I'm using

Expected behavior
The sound files are likely not getting exported with the app? Hoping Godot exports the FMOD files into the app.
Screenshots

Configuration

OS: MacOS Mojave Version 10.14.2
FMOD API version 2.00.07
Godot Engine v3.2.stable.custom_build.4e7d75ccd

Additional context
Maybe I'm just missing to add a specific path somewhere? Or do an extra step for Godot to see the Banks files

I've checked the package that gets exported to make sure the *.bank files are included, and they are on the file structure, so I'm left thinking that it really is either an option I'm missing or something to do with the code of it?

Hey there! Thanks for submitting this issue.
It seems like it wasn't able to find the bank files. Basically, the bank files should not be packed into the .PCK file that Godot generates when building. This is because they are not considered to be "resources". They should be placed in a folder relative to your runnable binary so that the FMOD runtime is able to read them.
Can you try experimenting with the path string that's currently being passed to the load_banks call? (Check FMOD.gd autoload script). Unfortunately, I can't really test it out for myself because at the moment I don't use macOS on a day to day basis.

Hi there Alex!
Thanks for your answer, that makes sense, I tested breaking the path on the FMOD.gd singleton, and that did spit out the same error on the console inside the editor, so it seems to be definitely on the path of that file.
Unfortunately I've tried placing the Bank files with folders and without (changing the path on the singleton script every time to direct to it) but haven't had any luck.
I'm attaching screenshots of how the folder structure of a Mac .app looks like if that might help you debug, I'd love to help solve this if you can give me more guidance or ideas of how to solve it 🤓
I experimented adding the folders/banks inside all the folders Contents, Contents/Frameworks, Contents/MacOs, Contents/Resources`, I even tried making an export template that includes the files on those paths, and also tried putting the application file next to the bank files on the desktop and non of them worked 😭
Do you have another idea of what it might be, or how we can solve it? I feel that you're right on editing that path, but just can't figure out where to place it😬
Also, the path string starts with a dot, what does that mean, is it like force looking for files that aren't Godot files? "."
Let me know if I can help on at all, and thank you for all your work on this so far 🙏

The dot means it is a path relative to the current directory (i.e. project). Can you try using the absolute path to the bank files? You should be able to get the path by right clicking on them in Finder.
You can hard code them into the load_banks call to test if it works. You still need the relative path when shipping your game however. Use the Godot Directory API to get the full path instead.
var dir = Directory.new()
dir.open("./")
var absolute_path = dir.get_current_dir()

Thanks a lot Alex!
Hard coding the paths into the load_banks call to test worked 💜!
Then, I tried your approach of using Godot's Directory API, and when using it inside the editor it worked, it found my project  (for this case is /Users/[username]/Desktop/demo), and loaded the banks 💜💜
However, when testing with an exported binary it didn't work 💔💔💔😭. When I do a print(absolute_path) it spits out /Users/[username] on the terminal, instead of res:// or /Users/[username]/Desktop/demo Do you have an idea how should we approach this? :open_mouth:
I tried adding some referenced files to the /Users/[username] path, and it did read them from the binary, so your code is working, but it's setting the relative path of./ to /Users/[username] instead of res:// or /Users/[username]/Desktop/demo.
I'm adding the code from the singleton if that helps at all:
func _ready():

	#Get full path from relative path directory using Godot's Directory API
	var dir_bank = Directory.new()
	dir_bank.open("./")
	var absolute_path = dir_bank.get_current_dir()
	print(absolute_path)

	# set up FMOD
	Fmod.system_set_software_format(0, Fmod.FMOD_SPEAKERMODE_STEREO, 0)
	Fmod.system_init(1024, Fmod.FMOD_STUDIO_INIT_LIVEUPDATE, Fmod.FMOD_INIT_VOL0_BECOMES_VIRTUAL)

	# load banks
	Fmod.bank_load(absolute_path + "/Banks/Desktop/Master.strings.bank", Fmod.FMOD_STUDIO_LOAD_BANK_NORMAL)
	Fmod.bank_load(absolute_path + "/Banks/Desktop/Master.bank", Fmod.FMOD_STUDIO_LOAD_BANK_NORMAL)

I found a solution for this issue while working on a project of mine.
It seems that MacOS doesn't have a difference between a relative path or a global path (I have very little experience with MacOS, but from what I tested, this seems to be the case) so each time, FMOD was trying to load my banks from /Sound/<bank names> instead of where it should be. After some trial and error, I wrote this code:
if OS.get_name() == "OSX":
	print('MacOS')
	var basePath = OS.get_executable_path().get_base_dir() + "/Sound/"
	Fmod.load_bank(basePath+"Master.strings.bank", Fmod.FMOD_STUDIO_LOAD_BANK_NORMAL)
	Fmod.load_bank(basePath+"Master.bank", Fmod.FMOD_STUDIO_LOAD_BANK_NORMAL)

If the game is running on a MacOS, I can get the executable folder from  OS.get_executable_path().get_base_dir(), this folder is:
mygame.app/contents/MacOS/ which means that I could place my banks anywhere on the mygame.app/contents and use paths relative from the executable folder. But I decided to make it easier for me and place my banks on mygame.app/contents/MacOS/Sound/<.bank>
This issue seems to be more related to how MacOS file system works rather than the actual FMOD plugin

Ooh thank you so much for this!! <3 I won't have time to test this in months likely, but I'm very excited to test it out whenever I get the time and energy 💜


PNG Images not loading

Several PNG images that I have tried to upload to view their bit planes at https://georgeom.net/StegOnline/upload are stuck loading. I have tried using different computers and different browsers to no avail.
Help would be appreciated. Thank you.

same here.

Thank you, there was a CSP issue due to site migration, this is now resolved

unfortunately the issue still exists, at least for large .png images.

Hey @WenMoonTok, please can you provide an example png? Many thanks!

@Ge0rg3 I sent it to you in a Twitter DM.


Add all MRE components and contents, water bottle, matchbooks and packet, fortune cookie, add MRE to vendors

About the PR
See #794
Media
https://github.com/CM-14/CM-14/assets/10968691/19d1789a-95d5-4c50-8e57-7a0ae7248f68

[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

can the matches and cigs fit in the helmet?

can the matches and cigs fit in helmets?

Not yet, none of the helmets have a storage component.

can the matches and cigs fit in helmets?

Adding onto this, do you know if its an itemslot or a full storage? Single item slots can be replaced instead of using storage, so you can just take and place into it, much like how the captains sabre and knife/pistol jackboots work now

helmets are supposed to have 3 slots. by the way are slots supported in the current inventory system?

helmets are supposed to have 3 slots. by the way are slots supported in the current inventory system?

That would just be a regular inventory then

helmets are supposed to have 3 slots. by the way are slots supported in the current inventory system?

That would just be a regular inventory then

actually its more like 2 slots, the third is reserved for an accessory like broken NVG or a camo net


Render to NodeSeq

Is it possible right now?

+1 for this request.
My use case is a scala-backed website with contents stored as rst which is then converted to xml and embedded into the site's structure. Support for direct conversion from rst to a XML string or NodeSeq would be very convenient.


Refactor double audit

Change the log message when writing request start to log, to distinguish between request start and request end logs.

Pull Request Test Coverage Report for Build 133

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 97.101%

Totals

Change from base Build 130:
0.0%

Covered Lines:
374

Relevant Lines:
382

💛  - Coveralls


set up tests for "listen: ws, connect to: ws" on both sides

add the minogrpc/server_test::TestIntegration* tests to it and get them to run - these tests will later be used to test the ws-to-ws connections

./demo -connect "12D3KooWKSDPP22s39KwejveWjjY5RdoiFvvXZeQW7HAsWZHr54R[/ip4/<IP_ADDRESS>/tcp/39217/ws]" "12D3KooWJ7LydTMN95FNXp5rB2ZMGsF6affmeTYcHCBNdJvgH4AY[/ip4/<IP_ADDRESS>/tcp/34755/ws]"


error: explicit comparison with infinity in fast floating point mode [-Werror,-Wtautological-constant-compare]

When building the repo with icpx the test_case/test_case_statistics.cpp compile fail with
 error: explicit comparison with infinity in fast floating point mode [-Werror,-Wtautological-constant-compare]

Possible solution:

Disable tautological-constant-compare
Set -00 flags globally
Disable fast-math  for the particulars files

With oneAPI 2023.0, there are more issues:
icpx: error: use of 'dpcpp' is deprecated and will be removed in a future release. Use 'icpx -fsycl' [-Werror,-Wdeprecated]

as well as multiple SYCL-related deprecation warnings like
/home/aland/compute-benchmarks/source/framework/sycl/sycl.h:22:22: warning: 'device_selector' is deprecated: Use SYCL 2020 callable device selectors instead. [-Wdeprecated-declarations]

/home/aland/compute-benchmarks/source/framework/sycl/utility/print_device_info_sycl.inl:27:21: warning: 'host' is deprecated: 'host' backend is no longer supported [-Wdeprecated-declarations]

and generic "compiler confused by testing framework" warnings like
/home/aland/compute-benchmarks/source/benchmarks/memory_benchmark/gtest/usm_copy_immediate.cpp:13:56: warning: unused variable 'registerTestCase' [-Wunused-const-variable]
static const inline RegisterTestCase<UsmCopyImmediate> registerTestCase{};


Class App\DataTables\PaymentsDataTable does not exist

Summary of problem or feature request

I followed the DataTables as a Service Implementation tutorial for my second Datatable but this time around I get the error that DataTable does not exist
Code snippet of problem
<?php

namespace App\Http\Controllers;
use App\DataTables\PaymentsDataTable;
use Datatables;
use App\Payment;
use App\User;

use Illuminate\Http\Request;

class PaymentsReportsController extends Controller
{
    //
    public function index(PaymentsDataTable $dataTable)
    {
        return $dataTable->render('reports.payments');
    }

}

@extends('layouts.app')

@section('breadcrumb')

Payments Reports

@stop
@section('content')
<div class="table-responsive">
{!! $dataTable->table() !!}
</div>
@endsection

@push('scripts')
<link rel="stylesheet" href="/css/buttons.dataTables.min.css">
<script src="/js/dataTables.buttons.min.js"></script>
<script src="/vendor/datatables/buttons.server-side.js"></script>
{!! $dataTable->scripts() !!}
@endpush

-->
System details

Operating System -Windows 7
PHP Version - 7
Laravel Version - 5.3
Laravel-Datatables Version - 6.0

Maybe you didn't namespace your PayementsDataTable, that's why.


[Bug]: Indication of the absence of favorites

Installation Method
None
The Problem
The index page will show if there are no favorites.

The note will not be displayed on any other page.

Version of Stirling-PDF
0.32.0
Last Working Version of Stirling-PDF
idk
Page Where the Problem Occurred
No response
Docker Configuration
No response
Relevant Log Output
No response
Additional Information
No response
Browsers Affected
Firefox, Chrome
No Duplicate of the Issue

[X] I have verified that there are no existing issues raised related to my problem.

I don't know how I never noticed his 😂

It's all just coincidences 😂

Is the homecard script used in all pages of just the home page?

Just homepage :(

ahh i guess i'll check this one too.


feat: event normalization for 'esl:refresh' and ESLImage, ESLMedia components

:tada: This PR is included in version 4.0.0-beta.9 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 4.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[Question] Configure the HttpGateway using HTTPS

I successfully secured a Owin-based ASP.NET WebAPI service (MasterDataService) and use HTTPS for the communication. Now I want HTTPS for my ASP.NET HttpGateway service too. But I was not able to reach my HTTPS MasterDataService over the HttpGateway service.
By requesting https://localhost:5460/MasterDataWebApi/v1/query/somequery, my browser ended up waiting for a response from the server. I have secured, that I can directly access the service via https://localhost:5030/v1/query/somequery. Unfortunately Visual Studio didn't provide me with any helpful stack strace and I don't know how to do a reasonable debugging here.  If yes, did I something wrong during setting up my HttpGateway service?
Here is some code:
ServiceManifest.xml (HttpGateway):
<?xml version="1.0" encoding="utf-8"?>
<ServiceManifest xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 Name="HttpGateway" Version="1.0.0"
                 xmlns="http://schemas.microsoft.com/2011/01/fabric">
  <ServiceTypes>
    <StatelessServiceType ServiceTypeName="HttpGatewayType" />
  </ServiceTypes>
  <CodePackage Name="Code" Version="1.0.0">
    <EntryPoint>
      <ExeHost>
        <Program>HttpGateway.exe</Program>
        <Arguments>--fabric true</Arguments>
        <WorkingFolder>CodePackage</WorkingFolder>
        <ConsoleRedirection FileRetentionCount="5" FileMaxSizeInKb="2048" />
      </ExeHost>
    </EntryPoint>
  </CodePackage>
  <Resources>
    <Endpoints>
      <Endpoint Name="HttpGatewayTypeEndpoint" Protocol="https" Type="Input" Port="5460" CertificateRef="MasterDataServiceCert"/>
    </Endpoints>
  </Resources>
</ServiceManifest>

HttpGateway.Startup.cs:
namespace HttpGateway
{
  public class Startup
  {
    public IConfigurationRoot Configuration { get; set; }

    public Startup(ILoggerFactory loggerFactory)
    {
      loggerFactory.AddConsole(new ConsoleLoggerSettings
      {
        Switches =
                {
                    ["Default"] = LogLevel.Debug,
                    ["Microsoft"] = LogLevel.Information
                }
      });

      var builder = new ConfigurationBuilder().AddJsonFile("appsettings.json");
      Configuration = builder.Build();
    }

    public void ConfigureServices(IServiceCollection services)
    {
      services.Configure<HttpCommunicationOptions>(Configuration.GetSection("HttpCommunication"));
      services.AddServiceFabricHttpCommunication();
    }

    public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
    {
      app.UseDeveloperExceptionPage();
      ConfigureHttpServiceGateways(app);

      app.Run(async context =>
      {
        var logger = loggerFactory.CreateLogger("Catch-All");
        logger.LogWarning("No endpoint found for request {path}", context.Request.Path + context.Request.QueryString);

        context.Response.StatusCode = (int)HttpStatusCode.NotFound;
        await context.Response.WriteAsync("Not Found");
      });
    }

    private void ConfigureHttpServiceGateways(IApplicationBuilder app)
    {
      app.RunHttpServiceGateway("/MasterDataWebApi", "fabric:/sfCluster/MasterDataServiceWebApi");
    }
  }

   public static void Main(string[] args)
    {
      var communicationContext = CreateAspNetCoreCommunicationContext();
      ServiceRuntime.RegisterServiceAsync("HttpGatewayType", serviceContext => new HttpGatewayService(serviceContext, communicationContext)).GetAwaiter().GetResult();
      communicationContext.WebHost.Run();
    }

    private static AspNetCoreCommunicationContext CreateAspNetCoreCommunicationContext()
    {
      var webHost = new WebHostBuilder().UseKestrel()
                                        .UseContentRoot(Directory.GetCurrentDirectory())
                                        .UseStartup<Startup>()
                                        .UseServiceFabricEndpoint("HttpGatewayTypeEndpoint")
                                        .Build();

      return new AspNetCoreCommunicationContext(webHost);
    }
}

ServiceManifest.xml (MasterDataServiceWebApi):
<?xml version="1.0" encoding="utf-8"?>
<ServiceManifest Name="MasterDataServiceWebApiPkg"
                 Version="1.0.0"
                 xmlns="http://schemas.microsoft.com/2011/01/fabric"
                 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ServiceTypes>
    <StatelessServiceType ServiceTypeName="MasterDataServiceWebApiType" />
  </ServiceTypes>
  <CodePackage Name="Code" Version="1.0.0">
    <EntryPoint>
      <ExeHost>
        <Program>MasterDataServiceWebApi.exe</Program>
      </ExeHost>
    </EntryPoint>
  </CodePackage>
  <ConfigPackage Name="Config" Version="1.0.0" />
  <Resources>
    <Endpoints>
      <Endpoint Name="ServiceEndpoint" Type="Input" Protocol="https" Port="5030" CertificateRef="MasterDataServiceCert"/>
    </Endpoints>
  </Resources>
</ServiceManifest>

ApplicationManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<ApplicationManifest xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ApplicationTypeName="sfClusterType" ApplicationTypeVersion="1.0.0" xmlns="http://schemas.microsoft.com/2011/01/fabric">
   <Parameters>
      <Parameter Name="MasterDataServiceWebApi_InstanceCount" DefaultValue="-1" />
      <Parameter Name="HttpGateway_InstanceCount" DefaultValue="-1" />
   </Parameters>
   <ServiceManifestImport>
      <ServiceManifestRef ServiceManifestName="MasterDataServiceWebApiPkg" ServiceManifestVersion="1.0.0" />
      <ConfigOverrides />
      <Policies>
         <EndpointBindingPolicy EndpointRef="ServiceEndpoint" CertificateRef="MasterDataServiceCert" />
      </Policies>
   </ServiceManifestImport>
   <ServiceManifestImport>
      <ServiceManifestRef ServiceManifestName="HttpGateway" ServiceManifestVersion="1.0.0" />
      <ConfigOverrides />
      <Policies>
         <EndpointBindingPolicy EndpointRef="HttpGatewayTypeEndpoint" CertificateRef="MasterDataServiceCert" />
      </Policies>
   </ServiceManifestImport>
   <DefaultServices>
      <Service Name="MasterDataServiceWebApi">
         <StatelessService ServiceTypeName="MasterDataServiceWebApiType" InstanceCount="[MasterDataServiceWebApi_InstanceCount]">
            <SingletonPartition />
         </StatelessService>
      </Service>
      <Service Name="HttpGateway">
         <StatelessService ServiceTypeName="HttpGatewayType" InstanceCount="[HttpGateway_InstanceCount]">
            <SingletonPartition />
         </StatelessService>
      </Service>
   </DefaultServices>
   <Certificates>
      <EndpointCertificate X509FindValue="<thumbprint>" Name="MasterDataServiceCert" />
   </Certificates>
</ApplicationManifest>

Hi,
HTTP / HTTPS must be configured for the server that hosts your application. In case of ASP.NET Core, the component is called Kestrel. that's the UseKestrel() line in your Main() method.
By default, Kestrel only allows HTTP requests, because for HTTPS you need additional configuration (certificates).
Check this sample for how to enable HTTPS for an ASP.NET Core app: https://github.com/aspnet/KestrelHttpServer/blob/dev/samples/SampleApp/Startup.cs
there are also some blog posts but note that the syntax for configuring kestrel has changed recently.

that's the blog post link I wanted to post: http://tostring.it/2016/01/12/Using-Kestrel-with-ASPNET-5/

Hi Christian,
thanks for your quick reply and advice you have gave me.
To setting up HTTPS for ASP.NET Core applications hosted with Kestrel, I had to fix a permission issue when building the kestrel web host (the "ServiceFabricAllowedUsers" user-group was not able to read the certificate's private key from the C:\ProgramData\Microsoft\Crypto\RSA folder) and a certificate validation issue when sending requests from the HttpGateway (AuthenticationException:  The remote certificate is invalid according to the validation procedure. & WebException:  The underlying connection was closed: for the secure SSL/TLS-channel a trusted relationship could not be established.). The validation issue occurs because I'm using a self-signed certificate for only test environments. So I had to make some temporary changes in the HttpCommunicationClient.cs to accept all certificates.
After fixing these issues, I was able to successfully send/receive a request/response to/from my microservice over the HttpGateway. Thanks again, for your help!
Here is some code:
HttpGateway.Startup.cs:
{
[...]
public static void Main(string[] args)
    {
      var communicationContext = CreateAspNetCoreCommunicationContext();
      ServiceRuntime.RegisterServiceAsync("HttpGatewayType", serviceContext => new HttpGatewayService(serviceContext, communicationContext)).GetAwaiter().GetResult();
      communicationContext.WebHost.Run();
    }

    private static AspNetCoreCommunicationContext CreateAspNetCoreCommunicationContext()
    {
     var certificationStore = new X509Store(StoreName.My, StoreLocation.LocalMachine);
      certificationStore.Open(OpenFlags.ReadOnly);
      var certificationCollection = certificationStore.Certificates.Find(X509FindType.FindByThumbprint, "<thumbprint>", false);
      X509Certificate2 serverCertificate;
      try
      {
        serverCertificate = certificationCollection[0];
      }
      catch (Exception exception)
      {
        //do some logging
        throw;
      }

      var webHost = new WebHostBuilder().UseKestrel(options =>
      {
        options.UseHttps(serverCertificate);
      })
                                        .UseContentRoot(Directory.GetCurrentDirectory())
                                        .UseStartup<Startup>()
                                        .UseServiceFabricEndpoint("HttpGatewayTypeEndpoint")
                                        .Build();

      return new AspNetCoreCommunicationContext(webHost);
    }
}

C3.ServiceFabric.HttpCommunication.HttpCommunicationClient.cs:
{
[...]
public HttpCommunicationClient(Uri baseAddress, TimeSpan operationTimeout)
    {
      /*HttpClientHandler httpClientHandler = new HttpClientHandler
      {
        // the calling system must decide whether to follow redirects or not.
        // (otherwise it can't e.g. change the browser url)
        AllowAutoRedirect = false
      };*/

      var certificationStore = new X509Store(StoreName.My, StoreLocation.LocalMachine);
      certificationStore .Open(OpenFlags.ReadOnly);
      var certificationCollection = certificationStore .Certificates.Find(X509FindType.FindByThumbprint, "<thumbprint>", false); //quick and dirty!
      ServicePointManager.ServerCertificateValidationCallback = AcceptAllCertifications; //only for test environments, don't use this for productive environments -> buy a valid certificate

      var sslHandler = new WebRequestHandler
      {
        AllowAutoRedirect = false,
        ClientCertificates = { certificationCollection[0] } //quick and dirty! add try/catch
      };

      HttpClient = new HttpClient(sslHandler)
      {
        BaseAddress = baseAddress,
        Timeout = operationTimeout
      };
    }

    private static bool AcceptAllCertifications(object sender, X509Certificate certification, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors)
    {
      return true;
    }
}

Great! Thanks for sharing this!


Deduplicate repeated sources

With #145 merged, we can now end up in a situation where a message has the same source repeated multiple times:
#: src/SUMMARY.md:10 src/SUMMARY.md:10 src/SUMMARY.md:70 src/SUMMARY.md:90
msgid "Welcome"
msgstr "Te damos la bienvenida"

We should add logic to remove the duplicates in this case. The situation becomes even worse when the line numbers are removed completely (when granularity is set to 0).

Hey @mgeisler, I'm interested in taking this. Based on #145, it looks like we'd need to handle duplicates whenever we call add_message in create_catalog. Am I on the right track?

Hi @zachcmadsen, thanks for taking this on! I think you're definitely on the right track!

I just created #171, which is related to this (but can be fixed independently).


Remove trade based aggregation.

Description
Remove trade based aggregation and associated tests, configs and docs. The adapters' trade fetching functionality was kept.
Tested
Locally ran the oracle.
Related issues

Fixes #15

Backwards compatibility
The configuration is not backwards compatible, as the parameters used for trade based aggregation were removed.

I'm personally in favor of removing all trade references in the repo as they won't be used.
Stuff like the fetchTrades/parseTrades from the exchange adapters, tradeData/startCollectingTrades/tradeInterval/etc in BaseExchangeAdapter, dataRetentionWindow and fetchFrequency in ExchangeAdapterConfig
What do y'all think?

I've removed most of the trade related code from the adapters (left fetchTrades, as we might need to look at trades if we're to change the volume weighting time window).


Bluetooth: host: Don't restart scan if connection is pending

With multiple devices on auto-connect list it is possible that while
having pending connection to device A, device B disconnects. In that
case host should not try to start scan (currently controller doesn't
support concurrent scanning and initiating).
Signed-off-by: Szymon Janc<EMAIL_ADDRESS>

Codecov Report

Merging #11209 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master   #11209   +/-   ##
=======================================
  Coverage   53.11%   53.11%
=======================================
  Files         218      218
  Lines       26871    26871
  Branches     5952     5952
=======================================
  Hits        14273    14273
  Misses      10163    10163
  Partials     2435     2435

Impacted Files
Coverage Δ

subsys/bluetooth/host/hci_core.c
2.42% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Enable Sleep Mode

Enable Sleep Mode (S3) for DU99D4 v1.31
When i press sleep button in Windows, mainboard goes to sleep but when i wake it up, it just show B7 code then can't resume.
Can you enable this feature inside BIOS?

These chienese Motherboards have sleep broken, it could be drivers or hardware.
But its one of my goals to find out a way to fix ir or have at least a awnser.
Thanks for posting. Share here, your pbc version and your setup configs.

Its seems Sleep works on Bios level. But when pc comes to sleep level, the 1.2v is cut down, so ram lost they power. And u cant come back from sleep.


RS2_STREAM_POSE not supported with L515 (OR calculate pose data within the librealsense API)

Before opening a new issue, we wanted to provide you with some useful suggestions (Click "Preview" above for a better view):

Consider checking out SDK examples.
Have you looked in our documentations?
Is you question a frequently asked one?
Try searching our GitHub Issues (open and closed) for a similar issue.

All users are welcomed to report bugs, ask questions, suggest or request enhancements and generally feel free to open new issue, even if they haven't followed any of the suggestions above :)

Required Info

Camera Model
{ R200 / F200 / SR300 / ZR300 / D400 }

Firmware Version
(Open RealSense Viewer --> Click info)

Operating System & Version
{Win (8.1/10) / Linux (Ubuntu 14/16/17) / MacOS

Kernel Version (Linux Only)
(e.g. 4.14.13)

Platform
PC/Raspberry Pi/ NVIDIA Jetson / etc..

SDK Version
{ legacy / 2.. }

Language
{C/C#/labview/nodejs/opencv/pcl/python/unity }

Segment
{Robot/Smartphone/VR/AR/others }

Issue Description
<Describe your issue / question / feature request / etc..>
Why is RS2_STREAM_POSE not supported with the L515, it has an IMU.

rs-pose does not work with the L515

Makes no sense, I can get accel and gyro values for x,y,z but I cannot get pose data?
The pose data is derived from accel and gyro values!

The camera that is said to be supported in the documentation, the T265 uses a 6 axis IMU (no magnetometer).
https://www.digikey.com/product-detail/en/bosch-sensortec/BMI055/828-1043-1-ND/4196679?utm_adgroup=Sensors %26 Transducers&utm_source=google&utm_medium=cpc&utm_campaign=Dynamic Search&utm_term=&utm_content=Sensors %26 Transducers&gclid=EAIaIQobChMI49aBvcDc6gIV4gl9Ch1LsAO_EAAYASAAEgLkvPD_BwE
That means that yaw is calculated in pose from the depth data.
Which means the L515 should also support pose.

Hi @andrewhodel,
Our tracking camera has custom hw/sw specifically designed to return pose data. You can learn more about our T265 camera here:
https://www.intelrealsense.com/tracking-camera-t265/
Thanks

Can the L515 and T265 be paired to work together in a similar fashion to how the T265 can work with the D400 series depth sensors?

The l515 outputs all the required data that is needed to calculate pose
data.
Andrew
On Tue, Jul 21, 2020 at 9:41 AM Richard-Elliott<EMAIL_ADDRESS>wrote:

Can the L515 and T265 be paired to work together in a similar fashion to
how the T265 can work with the D400 series depth sensors?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IntelRealSense/librealsense/issues/6869#issuecomment-661938179,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVCSNV5VFHBEVW3TWJCZLR4WZMNANCNFSM4PCSNX4A
.

Hi Andrew,
I realise the L515 has the IMU, but it does not have the onboard calculation of pose from the fusion of the IMU data and the wide angle cameras as on the tracking camera.
If using an IMU to calculate pose the result tends to drift over time if there is not some other sensor value to reset the drift.
I'm sure this could be done by fusing the lidar data with the IMU data but the processing would be external to the device rather than onboard. Hence my question can the 2 devices be paired T265 with L515?

All the devices output data in an open format.
You can combine whatever you want, 50,000 of them if you like.
The l515 has lidar for god sakes, it isn’t that difficult to calculate pose
data when you have lidar and a 6dof imu on the same device.
Of course if you have 50,000 lifar cameras then I want a jet.
Andrew
On Tue, Jul 21, 2020 at 10:32 AM Richard-Elliott<EMAIL_ADDRESS>wrote:

Hi Andrew,
I realise the L515 has the IMU, but it does not have the onboard
calculation of pose from the fusion of the IMU data and the wide angle
cameras as on the tracking camera.
If using an IMU to calculate pose the result tends to drift over time if
there is not some other sensor value to reset the drift.
I'm sure this could be done by fusing the lidar data with the IMU data but
the processing would be external to the device rather than onboard. Hence
my question can the 2 devices be paired T265 with L515?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IntelRealSense/librealsense/issues/6869#issuecomment-661967049,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVCSLRQMMC6NLSACUXIVTR4W7IZANCNFSM4PCSNX4A
.

I wanted to check the compatibility of the cameras specifically if the IR filters on the tracking camera would filter out the IR laser used on the LIDAR?

Dude, have you not seen the transistors lately, they are crazy high
amperage and fast.
There is no reason every laser pulse wouldn’t be encrypted with xor and
unique for decryption.
Andrew
On Tue, Jul 21, 2020 at 10:41 AM Richard-Elliott<EMAIL_ADDRESS>wrote:

I wanted to check the compatibility of the cameras specifically if the IR
filters on the tracking camera would filter out the IR laser used on the
LIDAR?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IntelRealSense/librealsense/issues/6869#issuecomment-661972312,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVCSIHQXUPTWDGJS5BGKTR4XALBANCNFSM4PCSNX4A
.

Do you think there is any other way they would be safe for use in stopping cars via object detection?
Thank You,
Andrew Hodel

On Jul 21, 2020, at 10:41 AM, Richard-Elliott<EMAIL_ADDRESS>wrote:

I wanted to check the compatibility of the cameras specifically if the IR filters on the tracking camera would filter out the IR laser used on the LIDAR?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

On Tue, Jul 21, 2020 at 10:44 AM Andrew Hodel<EMAIL_ADDRESS>wrote:

Do you think there is any other way they would be safe for use in stopping
cars via object detection?
Thank You,
Andrew Hodel
On Jul 21, 2020, at 10:41 AM, Richard-Elliott<EMAIL_ADDRESS>wrote:

I wanted to check the compatibility of the cameras specifically if the IR
filters on the tracking camera would filter out the IR laser used on the
LIDAR?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IntelRealSense/librealsense/issues/6869#issuecomment-661972312,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVCSIHQXUPTWDGJS5BGKTR4XALBANCNFSM4PCSNX4A
.

If you derived pose from just IMU accel and gyro you would not have very good results. Including the lidar information allows for pose estimation using ICP but this is fairly expensive compared to visual odometry methods, like the t265 uses. As said above it is possible to do but it is done external to the device.

Lidar would provide much better results for pose data in coordination with
the IMU data than visual camera data would.
The code running on the l515 has access to both the IMU and lidar data.
There is no reason that the l515 shouldn’t provide the best pose data of
all the realsense cameras.
Andrew
On Tue, Jul 21, 2020 at 3:55 PM blakely3dnm<EMAIL_ADDRESS>wrote:

If you derived pose from just IMU accel and gyro you would not have very
good results. Including the lidar information allows for pose estimation
using ICP but this is fairly expensive compared to visual odometry methods,
like the t265 uses. As said above it is possible to do but it is done
external to the device.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IntelRealSense/librealsense/issues/6869#issuecomment-662126714,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVCSMY3TCY7ANWHSIKMQLR4YFGDANCNFSM4PCSNX4A
.

Put a core i7 in the L515 and, sure. It should provide pose.

Now we are talking, but there is no reason that librealsense (the api code
that runs on the host) shouldn’t have an api for fetching the pose data.
You could make the argument that it shouldn’t be in the camera stream
config.
On the other hand, you really only need maybe 10 pixels of data spread
across the view to get the pose data streaming directly from the camera
with the IMU data. That would be possible with the cpu that is already in
there as pathetic as it is.
Andrew
On Tue, Jul 21, 2020 at 4:06 PM blakely3dnm<EMAIL_ADDRESS>wrote:

Put a core i7 in the L515 and, sure. It should provide pose.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IntelRealSense/librealsense/issues/6869#issuecomment-662130961,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVCSKBCK63C64HNVXHPJDR4YGNNANCNFSM4PCSNX4A
.

Are you really telling me Intel would make a better product for room
scanning and just not write the code for getting pose data?
I just cannot believe that.
On Tue, Jul 21, 2020 at 4:09 PM Andrew Hodel<EMAIL_ADDRESS>wrote:

Now we are talking, but there is no reason that librealsense (the api code
that runs on the host) shouldn’t have an api for fetching the pose data.
You could make the argument that it shouldn’t be in the camera stream
config.
On the other hand, you really only need maybe 10 pixels of data spread
across the view to get the pose data streaming directly from the camera
with the IMU data. That would be possible with the cpu that is already in
there as pathetic as it is.
Andrew
On Tue, Jul 21, 2020 at 4:06 PM blakely3dnm<EMAIL_ADDRESS>wrote:

Put a core i7 in the L515 and, sure. It should provide pose.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IntelRealSense/librealsense/issues/6869#issuecomment-662130961,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVCSKBCK63C64HNVXHPJDR4YGNNANCNFSM4PCSNX4A
.

I'm saying that generating pose from lidar data is beyond the compute capabilities present in a 3 watt module.

I am not familiar with any ICP odometry methods that downsample the clouds to 10 points.  Maybe you should write an algorithm that does this, and I will be able to do SLAM with my raspberry pi.

You are too familiar, you know how to hold on to 10 ropes that are tied to
evenly spread points in a room and count your steps and direction to know
where you are.
What is the reason Intel with all it’s abundant funding cannot accomplish
this?
Andrew
On Tue, Jul 21, 2020 at 7:03 PM blakely3dnm<EMAIL_ADDRESS>wrote:

I am not familiar with any ICP odometry methods that downsample the clouds
to 10 points. Maybe you should write an algorithm that does this, and I
will be able to do SLAM with my raspberry pi.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IntelRealSense/librealsense/issues/6869#issuecomment-662182501,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVCSLB5SRMCYSPGH6IIW3R4Y3FRANCNFSM4PCSNX4A
.

You can gain your location from the ropes alone or the steps and direction
alone.
The precision would be very good when combined.
Andrew
On Tue, Jul 21, 2020 at 7:06 PM Andrew Hodel<EMAIL_ADDRESS>wrote:

You are too familiar, you know how to hold on to 10 ropes that are tied to
evenly spread points in a room and count your steps and direction to know
where you are.
What is the reason Intel with all it’s abundant funding cannot accomplish
this?
Andrew
On Tue, Jul 21, 2020 at 7:03 PM blakely3dnm<EMAIL_ADDRESS>wrote:

I am not familiar with any ICP odometry methods that downsample the
clouds to 10 points. Maybe you should write an algorithm that does this,
and I will be able to do SLAM with my raspberry pi.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IntelRealSense/librealsense/issues/6869#issuecomment-662182501,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVCSLB5SRMCYSPGH6IIW3R4Y3FRANCNFSM4PCSNX4A
.

I invite you to research the best ICP odometry algorithms available. I am happy with libpointmatcher, but it uses a few hundred points and 40 iterations under default settings to get good results, and even then those results rely heavily on the environment. Maybe your requirements are not as exact as what I expect from pose estimation, in which case you might just try pose estimation from the IMU. Somewhere on github I saw mention of a person writing a script to get yaw from roll and pitch.

I have no idea why it would be called anything other than measuring and
remembering distinct areas, then nobody knows how it works.
Getting position or pose from the IMU only is an exercise in futility.
Andrew
On Tue, Jul 21, 2020 at 7:11 PM blakely3dnm<EMAIL_ADDRESS>wrote:

I invite you to research the best ICP odometry algorithms available. I am
happy with libpointmatcher, but it uses a few hundred points and 40
iterations under default settings to get good results, and even then those
results rely heavily on the environment. Maybe your requirements are not as
exact as what I expect from pose estimation, in which case you might just
try pose estimation from the IMU. Somewhere on github I saw mention of a
person writing a script to get yaw from roll and pitch.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IntelRealSense/librealsense/issues/6869#issuecomment-662184619,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVCSJYKPO3QP34F6VVOR3R4Y4CHANCNFSM4PCSNX4A
.

Surely you have done this with a drone and one of those 10x10px distance
sensors.
This is just adding a dimension to that, as they are really only concerned
with ground avoidance.
Andrew
On Tue, Jul 21, 2020 at 7:14 PM Andrew Hodel<EMAIL_ADDRESS>wrote:

I have no idea why it would be called anything other than measuring and
remembering distinct areas, then nobody knows how it works.
Getting position or pose from the IMU only is an exercise in futility.
Andrew
On Tue, Jul 21, 2020 at 7:11 PM blakely3dnm<EMAIL_ADDRESS>wrote:

I invite you to research the best ICP odometry algorithms available. I am
happy with libpointmatcher, but it uses a few hundred points and 40
iterations under default settings to get good results, and even then those
results rely heavily on the environment. Maybe your requirements are not as
exact as what I expect from pose estimation, in which case you might just
try pose estimation from the IMU. Somewhere on github I saw mention of a
person writing a script to get yaw from roll and pitch.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IntelRealSense/librealsense/issues/6869#issuecomment-662184619,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVCSJYKPO3QP34F6VVOR3R4Y4CHANCNFSM4PCSNX4A
.

@Richard-Elliott - to answer your question, yes, the IR-cut filter of the T265 blocks IR from the L515, so you can use them together.

@dorodnic - Thank you
@andrewhodel - Sorry if my question did not relate to your original posting, I did not intend to hijack your thread.

@dorodnic - Thank you
@andrewhodel - Sorry if my question did not relate to your original posting, I did not intend to hijack your thread.

@Richard-Elliott thank you, sorry to be rude I am just very frustrated with the number of people that keep applying things at such a great extreme to what's really going on and I should just say, off-topic.

@blakely3dnm
Like this, but faster.

just 10 points will not be nearly enough as you cannot ensure that the same ten points in the scene are sampled unless you already know how the pose has changed (in which case why are you trying to calculate pose de novo?). Picking a random ten points and aligning them to the previous pose will get you a "solution" but it will almost certainly not be the correct one. Effectively you will have aliasing due to the down-sampling and you will align based on that aliasing. Further, even with 1024x768 points using the L515 there are many real world cases where geometric complexity is not sufficient to get a good ICP solution. For instance if a lidar was rotated  in front of your curved surface above, along the Y-axis as oriented in your first picture, the scans would all appear identical and you could not resolve any motion.
TL;DR - robust lidar odometry (ICP) is computationally expensive compared to visual odometry. There is simply not enough compute power on a 3 watt device to accomplish this in real time. ICP performs better on a CPU than a VPU/GPU, so even with the hardware in the T265 it would not be possible to do at a reasonable frequency

It has a camera too dude,
http://www.robotics.stanford.edu/~ang/papers/icra10-MultiCameraObjectDetection.pdf
Consider that, with the same camera and different times.
Also, consider that is entirely possible on a .6w raspberry pi zero.
Andrew
On Wed, Jul 22, 2020 at 1:47 PM blakely3dnm<EMAIL_ADDRESS>wrote:

just 10 points will not be nearly enough as you cannot ensure that the
same ten points in the scene are sampled unless you already know how the
pose has changed (in which case why are you trying to calculate pose de
novo?). Picking a random ten points and aligning them to the previous pose
will get you a "solution" but it will almost certainly not be the correct
one. Effectively you will have aliasing due to the down-sampling and you
will align based on that aliasing. Further, even with 1024x768 points using
the L515 there are many real world cases where geometric complexity is not
sufficient to get a good ICP solution. For instance if a lidar was rotated
in front of your curved surface above, along the Y-axis as oriented in your
first picture, the scans would all appear identical and you could not
resolve any motion.
TL;DR - robust lidar odometry (ICP) is computationally expensive compared
to visual odometry. There is simply not enough compute power on a 3 watt
device to accomplish this in real time. ICP performs better on a CPU than a
VPU/GPU, so even with the hardware in the T265 it would not be possible to
do at a reasonable frequency
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IntelRealSense/librealsense/issues/6869#issuecomment-662659512,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVCSOEFLQ7I52HYV273EDR44637ANCNFSM4PCSNX4A
.

@blakely3dnm beyond that, I don't care if it arrives as a stream from the camera or is calculated within the API via another call like get_determined_pose_data().
See, I even edited the title to this issue.

Yea it has a camera with a rolling shutter, a narrow FOV, and no movidius module. If it did have the VPU, it would not perform as well as the T265 for visual odometry, given the camera.
I'm not sure how your tensorflow-like object detection is analogous to the problem here, but in any case, imagine taking a 1024x768 image and downsampling it to a 5x2 image and trying to perform object detection on that. Not gonna work.  Data reduction can only go so far.
I get good ICP odometry with the L515 in 640x480 mode and taking a random subset of half the points. With those settings on a Ryzen 9 CPU I get 15 Hz pose information using L515 data, but I still have to be careful about how I move the device to avoid getting lost.
This is just my take after actually having tried home made versions of VIO and ICP. If you think it should work a different way in theory, fine, give it a try, and I will be watching your github for some revolutionary SLAM algorithms.

If pulling rope is revolutionary then I don't know what to say.
All you are doing is finding the same point that it was attached to before
and expecting there to be a clear path somewhere on the image.
Not to mention the IMU data.
On Wed, Jul 22, 2020 at 2:04 PM blakely3dnm<EMAIL_ADDRESS>wrote:

Yea it has a camera with a rolling shutter, a narrow FOV, and no movidius
module. If it did have the VPU, it would not perform as well as the T265
for visual odometry, given the camera.
I'm not sure how your tensorflow-like object detection is analogous to the
problem here, but in any case, imagine taking a 1024x768 image and
downsampling it to a 5x2 image and trying to perform object detection on
that. Not gonna work. Data reduction can only go so far.
I get good ICP odometry with the L515 in 640x480 mode and taking a random
subset of half the points. With those settings on a Ryzen 9 CPU I get 15 Hz
pose information using L515 data, but I still have to be careful about how
I move the device to avoid getting lost.
This is just my take after actually having tried home made versions of VIO
and ICP. If you think it should work a different way in theory, fine, give
it a try, and I will be watching your github for some revolutionary SLAM
algorithms.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IntelRealSense/librealsense/issues/6869#issuecomment-662667986,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVCSLSNOWNS2NRJQSBZU3R45A5PANCNFSM4PCSNX4A
.

Again, you can only find the same point as before if you already know the pose (as you can't "pull" on lidar measurements) . So you cant use that method to find the pose.

Regardless of any "novel" idea, your "robust ICP algorithm" should already
be implemented as an api call within librealsense as the camera itself is
already sending the accel/gyro data, lidar stream, infrared stream and
video stream.
Why has that not been done?
Andrew
On Wed, Jul 22, 2020 at 2:07 PM Andrew Hodel<EMAIL_ADDRESS>wrote:

If pulling rope is revolutionary then I don't know what to say.
All you are doing is finding the same point that it was attached to before
and expecting there to be a clear path somewhere on the image.
Not to mention the IMU data.
On Wed, Jul 22, 2020 at 2:04 PM blakely3dnm<EMAIL_ADDRESS>wrote:

Yea it has a camera with a rolling shutter, a narrow FOV, and no movidius
module. If it did have the VPU, it would not perform as well as the T265
for visual odometry, given the camera.
I'm not sure how your tensorflow-like object detection is analogous to
the problem here, but in any case, imagine taking a 1024x768 image and
downsampling it to a 5x2 image and trying to perform object detection on
that. Not gonna work. Data reduction can only go so far.
I get good ICP odometry with the L515 in 640x480 mode and taking a random
subset of half the points. With those settings on a Ryzen 9 CPU I get 15 Hz
pose information using L515 data, but I still have to be careful about how
I move the device to avoid getting lost.
This is just my take after actually having tried home made versions of
VIO and ICP. If you think it should work a different way in theory, fine,
give it a try, and I will be watching your github for some revolutionary
SLAM algorithms.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IntelRealSense/librealsense/issues/6869#issuecomment-662667986,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVCSLSNOWNS2NRJQSBZU3R45A5PANCNFSM4PCSNX4A
.

That is absolutely untrue.
It is about the refresh rate and the speed of movement of the device.
The same is true of the T265, it's not going to work at light speed and it
isn't because of the IMU data.
On Wed, Jul 22, 2020 at 2:10 PM blakely3dnm<EMAIL_ADDRESS>wrote:

Again, you can only find the same point as before if you already know the
pose (as you can't "pull" on lidar measurements) . So you cant use that
method to find the pose.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IntelRealSense/librealsense/issues/6869#issuecomment-662670669,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVCSM5STFG5ILQAW2M3NDR45BSBANCNFSM4PCSNX4A
.

Look at canvas.io
How do you think it iPad pro does it, magic?
On Wed, Jul 22, 2020 at 2:11 PM Andrew Hodel<EMAIL_ADDRESS>wrote:

That is absolutely untrue.
It is about the refresh rate and the speed of movement of the device.
The same is true of the T265, it's not going to work at light speed and it
isn't because of the IMU data.
On Wed, Jul 22, 2020 at 2:10 PM blakely3dnm<EMAIL_ADDRESS>wrote:

Again, you can only find the same point as before if you already know the
pose (as you can't "pull" on lidar measurements) . So you cant use that
method to find the pose.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IntelRealSense/librealsense/issues/6869#issuecomment-662670669,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVCSM5STFG5ILQAW2M3NDR45BSBANCNFSM4PCSNX4A
.

The lidar in the iPad is honestly near having 10px of density, LOL.
On Wed, Jul 22, 2020 at 2:14 PM Andrew Hodel<EMAIL_ADDRESS>wrote:

Look at canvas.io
How do you think it iPad pro does it, magic?
On Wed, Jul 22, 2020 at 2:11 PM Andrew Hodel<EMAIL_ADDRESS>wrote:

That is absolutely untrue.
It is about the refresh rate and the speed of movement of the device.
The same is true of the T265, it's not going to work at light speed and
it isn't because of the IMU data.
On Wed, Jul 22, 2020 at 2:10 PM blakely3dnm<EMAIL_ADDRESS>wrote:

Again, you can only find the same point as before if you already know
the pose (as you can't "pull" on lidar measurements) . So you cant use that
method to find the pose.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IntelRealSense/librealsense/issues/6869#issuecomment-662670669,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVCSM5STFG5ILQAW2M3NDR45BSBANCNFSM4PCSNX4A
.

It is true. knowing the location of arbirtary points in scene is the same as knowing the pose.
im guessing canvas is very similar in principle to the tracking in the T265. It probably makes a registered depth image and only uses few points from the scene.  You could argue that the L515 should have had a movidius VPU so it could find pose using the RGBD stream, but then you wouldn't need to buy a T265 ;)

The trouble is the t265 is no good at night.
There's no reason this shouldn't be working.
On Wed, Jul 22, 2020 at 2:21 PM blakely3dnm<EMAIL_ADDRESS>wrote:

It is true. knowing the location of arbirtary points in scene is the same
as knowing the pose.
im guessing canvas is very similar in principle to the tracking in the
T265. It probably makes a registered depth image and only uses few points
from the scene. You could argue that the L515 should have had a movidius
VPU so it could find pose using the RGBD stream, but then you wouldn't need
to buy a T265 ;)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IntelRealSense/librealsense/issues/6869#issuecomment-662675777,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVCSK2KP4A5UWJEH4LZHDR45C3ZANCNFSM4PCSNX4A
.

canvas is no good at night either, nor would be the L515 RGBD stream. ICP alone, as far as I know, not as fast as calculating pose from RGBD. Feature extraction from laser scans is a developing field, so that could change.

At the refresh rate of the l515 it should be much faster at calculating
pose that a video stream.
I just think nobody has thought about it.
On Wed, Jul 22, 2020 at 2:28 PM blakely3dnm<EMAIL_ADDRESS>wrote:

canvas is no good at night either, nor would be the L515 RGBD stream. ICP
alone, as far as I know, not as fast as calculating pose from RGBD. Feature
extraction from laser scans is a developing field, so that could change.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IntelRealSense/librealsense/issues/6869#issuecomment-662679159,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVCSOC5S7SYP6IJRJXXMDR45DWTANCNFSM4PCSNX4A
.

I cannot believe Intel wouldn’t put pose data on a lidar camera!
On Wed, Aug 5, 2020 at 9:00 AM Sergey Dorodnicov<EMAIL_ADDRESS>wrote:

Closed #6869 https://github.com/IntelRealSense/librealsense/issues/6869.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IntelRealSense/librealsense/issues/6869#event-3625097450,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVCSL556PMCRUK3RZMWLDR7FXYPANCNFSM4PCSNX4A
.

Yea it has a camera with a rolling shutter, a narrow FOV, and no movidius module. If it did have the VPU, it would not perform as well as the T265 for visual odometry, given the camera.
I'm not sure how your tensorflow-like object detection is analogous to the problem here, but in any case, imagine taking a 1024x768 image and downsampling it to a 5x2 image and trying to perform object detection on that. Not gonna work. Data reduction can only go so far.
I get good ICP odometry with the L515 in 640x480 mode and taking a random subset of half the points. With those settings on a Ryzen 9 CPU I get 15 Hz pose information using L515 data, but I still have to be careful about how I move the device to avoid getting lost.
This is just my take after actually having tried home made versions of VIO and ICP. If you think it should work a different way in theory, fine, give it a try, and I will be watching your github for some revolutionary SLAM algorithms.

@blakely3dnm, can you please hint how did you get the ICP odometry with L515? I mean what do you get from L515 and is there an opensources ICP already that I can just input the data from L515?

@blakely3dnm, can you please hint how did you get the ICP odometry with L515? I mean what do you get from L515 and is there an opensources ICP already that I can just input the data from L515?

you can use libpointmatcher to calculate the transform between two laser scans and use that transform as the odometry. If you are already using ROS you can use rtabmap-ros compiled with libpointmatcher to do this. I also use the IMU as a constraint on motion, but the point cloud from the L515 is all you need.

Sorry, I am a bit new to this. I am recording the pcd using L515 now. Are you saying that rtabmap-ros with libpointmatcher can take this pcd as input and it can give me the pose directly?

If you do not already use ROS, it may not be the simplest solution. That being said, with the correct settings realsense-ros can publish the lidar data from the L515 as a pointcloud at 30 hz . The rtabmap-ros odometry node can then subscribe to those lidar frames and find the transform between each frame by icp. The odometry node in turn publishes an odometry topic which contains the pose information (roll, pitch, yaw, translation).

Thanks @blakely3dnm. So, I tried the following commands to see their odometry.
roslaunch realsense2_camera opensource_tracking.launch enable_infra:=true filters:=pointcloud
rostopic echo /rtabmap/odom

I see the 6DoF in the output, but it is extremely fragile for the movement it seems. It fails and gives all zero's position if move the Lidar sensor by small motion. Do you know if this is a problem/or the limitation of rtabmap odometry or realsense-ros?

That launch file was my first attempt to make visual odometry work, but there are several parameters that still need to be optimized. I am able to map my office with those settings and continual smooth motion but the performance will depend on the types of visual features in the scene. A good starting point to optimize those settings is here: http://wiki.ros.org/rtabmap_ros/Tutorials/Advanced Parameter Tuning
But instead of doing that I would recommend using ICP using this launch file. With those settings I get pose estimation at ~30 hz with a Ryzen 4900HS CPU. There are a few cases where ICP will get lost, such as flat walls with no landmarks on them. Keeping geometric complexity in the sensors field of view is key.

So blakely, is the ros libpointmatcher the never before built revolutionary
method that has never been attempted for pose from lidar frames you were
talking about earlier in the thread?
On Wed, Sep 23, 2020 at 11:44 PM blakely3dnm<EMAIL_ADDRESS>wrote:

That launch file was my first attempt to make visual odometry work, but
there are several parameters that still need to be optimized. I am able to
map my office with those settings and continual smooth motion but the
performance will depend on the types of visual features in the scene. A
good starting point to optimize those settings is here:
http://wiki.ros.org/rtabmap_ros/Tutorials/Advanced Parameter Tuning
But instead of doing that I would recommend using ICP using this launch
file
https://github.com/introlab/rtabmap/issues/574#issuecomment-689149729.
With those settings I get pose estimation at ~30 hz with a Ryzen 4900HS
CPU. There are a few cases where ICP will get lost, such as flat walls with
no landmarks on them. Keeping geometric complexity in the sensors field of
view is key.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IntelRealSense/librealsense/issues/6869#issuecomment-698125872,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVCSP2MJUU4OU5Q36KP3LSHLMEDANCNFSM4PCSNX4A
.

That launch file was my first attempt to make visual odometry work, but there are several parameters that still need to be optimized. I am able to map my office with those settings and continual smooth motion but the performance will depend on the visual features in the scene. A good starting point to optimize those settings is here: http://wiki.ros.org/rtabmap_ros/Tutorials/Advanced Parameter Tuning
But instead of doing that I would recommend ICP using this launch file. With those settings I get pose estimation at ~30 hz with a Ryzen 4900HS CPU. There are a few cases where ICP will get lost, such as flat walls with no landmarks on them. Keeping geometric complexity in the sensors field of view is key.

Thank you Blakely. I will try out with the Tutorial and check out the ICP launch that you provided. I will continue on the other thread.

Hey @andrewhodel , (re: #issuecomment-662677641),
Would a solution to nighttime performance for VSLAM be to remove the IR-cut filter and fit your device/bot with an IR "flashlight" to illuminate the scene?
In our case, we might even prefer the reverse of the IR-cut filter: an IR-pass filter that only allows IR spectrums to pass. That way, changes to visible light would have no interfering effect on the VSLAM.

You wouldn't need to with lidar, the L515 is a lidar camera.
It would work properly in the daytime and at night.
On Mon, Apr 5, 2021 at 4:51 AM Paul Hine @.***> wrote:

Hey @andrewhodel https://github.com/andrewhodel , (re:
#issuecomment-662677641),
Would a solution to nighttime performance for VSLAM be to remove the
IR-cut filter and fit your device/bot with an IR "flashlight" to illuminate
the scene?
In our case, we might even prefer the reverse of the IR-cut filter: an
IR-pass filter that only allows IR spectrums to pass. That way, changes to
visible light would have no interfering effect on the VSLAM.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IntelRealSense/librealsense/issues/6869#issuecomment-813311509,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVCSOLSCWSWENICJDPFWLTHGB3HANCNFSM4PCSNX4A
.


Unit test is broken because of cluster/engine.go

I'm trying to run the unit test of swarm but I got this error with the master branch.
root@dev:~/go/src/github.com/docker/swarm# go test
# github.com/docker/swarm/cluster
cluster/engine.go:148: too many arguments in call to dockerclient.NewDockerClientTimeout
cluster/engine.go:633: unknown dockerclient.Event field 'Type' in struct literal
cluster/engine.go:634: unknown dockerclient.Event field 'Action' in struct literal
cluster/engine.go:637: unknown dockerclient.Event field 'Actor' in struct literal
cluster/engine.go:639: unknown dockerclient.Event field 'TimeNano' in struct literal
cluster/engine.go:898: ev.ID undefined (type *dockerclient.Event has no field or method ID, but does have Id)
cluster/engine.go:903: ev.ID undefined (type *dockerclient.Event has no field or method ID, but does have Id)

@tobegit3hub you need to update samalba/dockerclient to it's latest version (or do godep go test)
Unit tests are tested in travis and we never merge if the unit tests are broken.

Thanks @vleux and it works now :smiley:


Adding geskn

Adding Gesamtschule Kürten (Kürten Comprehensive School)

@aliwahabdev Thank you for your patience while waiting for a review and processing your request. Pull request merged. Please start applying for JetBrains educational subscription at https://www.jetbrains.com/shop/eform/students in an hour, to allow the changes to propagate through JetBrains systems.


test(storage): verify tracing stub included

This change is

FWIW, I think conventional commits recommends type(scope): description where:

A scope MUST consist of a noun describing a section of the codebase surrounded by parenthesis

Ok. In the case of overlapping components, I will just pick the one that feels more important. In this case, storage.


Full usage of the JsonReader

Similar to #84.

Injecting JsonReader whenever it is required
More unit tests for view models and data sources
Renamed NetDevPL.Infrastructure.Helpers to NetDevPL.Infrastructure.Services, as they are going to be non-static.

One thing to fix:

Exactly! Pushing it