Allow user to navigate to detail page for transaction thread

Details

Currently, the transaction thread header only navigate to the profile page. This PR enable the navigation to the detail page.
Fixed Issues

$ https://github.com/Expensify/App/issues/41196
PROPOSAL: https://github.com/Expensify/App/issues/41196#issuecomment-2082396569
Tests

Same as QA Steps

[x] Verify that no errors appear in the JS console

Offline tests

Same as QA Steps
QA Steps

Prerequisite: submit more than 1 expense to any chat

Press the report preview to open the expense/IOU report
Press any money request to open the transaction thread
Press the header (avatar or chat title)
Verify you are navigated to a details page

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

https://github.com/Expensify/App/assets/50919443/a47d6190-b227-45ad-b395-07ab0c25a4e1

Android: mWeb Chrome

https://github.com/Expensify/App/assets/50919443/45222529-69dd-4aec-a068-f1a215bcf2fa

iOS: Native

https://github.com/Expensify/App/assets/50919443/897bd8b0-bd54-4478-8666-6efb79082ee7

iOS: mWeb Safari

https://github.com/Expensify/App/assets/50919443/86dcb07b-c469-437b-8338-c969454d451b

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/50919443/290bfe44-b223-4bbc-838f-38fe6b4ff653

MacOS: Desktop

https://github.com/Expensify/App/assets/50919443/98ac69ed-b0a6-434a-8923-a1344fd2df3d

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to production by https://github.com/marcaaron in version: 1.4.71-6 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Support for identity-based connection

Hi,
The app fails to send or receive messages from servicebus emulator when ServiceBusClient was created using identity-based connection.
Steps to reproduce:
// running service bus emulator using docker compose before executing this code

using Azure.Identity;
using Azure.Messaging.ServiceBus;

var client = new ServiceBusClient("localhost", new DefaultAzureCredential());
var sender = client.CreateSender("topic");
await sender.SendMessageAsync(new ServiceBusMessage("Hello, World!"));

Exception:
No connection could be made because the target machine actively refused it. ErrorCode: ConnectionRefused (ServiceCommunicationProblem). For troubleshooting information, see https://aka.ms/azsdk/net/servicebus/exceptions/troubleshoot.
at Azure.Messaging.ServiceBus.Amqp.AmqpSender.SendBatchInternalAsync(AmqpMessage batchMessage, TimeSpan timeout, CancellationToken cancellationToken)
   at Azure.Messaging.ServiceBus.Amqp.AmqpSender.<>c.<<SendAsync>b__32_0>d.MoveNext()
--- End of stack trace from previous location ---

Does emulator support identity-based connections?
If yes, is there any guidance on what would be the value for service bus fully qualified namespace? (localhost, sbemulatorns, something else...)
If no, are there any plans to support this in future?

Hi @asos-iqan, Service Bus emulator isn't compatible with Azure Identity based connection. So far, we only support connection string usage with Service Bus emulator.
Would you mind elaborating more on the use case- Is the intent here to keep same code for local testing and prod testing? Or do you have a use case of using Azure Identity to do local testing?

Hi @Saglodha - thanks for the response.
Yes, that is correct. We would like to test function as-is and not have specific changes in production code just to make it work with emulator.


Replace go-bindata with inline code

What
The application.zip file that was committed and bundled with the code
using the external library go-bindata contains a single Staticfile with no
content.
We can reproduce the same content by using the archive/zip standard
library which requires a less complicated build process and prevents a
slightly confusing error if you try to go get or go build the repo
without using the Makefile.
I wasn't technically reviewing this story but I had to look into something and then I had this itch to scratch.
How to review

code review
checkout this branch
run make install
try running cf conduit <service_instance> against a CF environment and confirm that it works

🙌 well scratched, much better solution ... code review looks good.


DX: success response

running cachetool does not output anything on success. I think for DX purposes it would be great if we would at least get something like "cache successfully cleared" or similar.
that way we could easily differentiate whether the tool was running and doing its job, or something on the server is fishy and the entered command just died without any further notice.
IS:
$ php /www/www/cachetool81.phar stat:clear --fcgi=/var/run/php/php-fpm.sock
$ php /www/www/cachetool81.phar opcache:reset --fcgi=/var/run/php/php-fpm.sock
$

EXPECTED
$ php /www/www/cachetool81.phar stat:clear --fcgi=/var/run/php/php-fpm.sock
cache successfully cleared
$ php /www/www/cachetool81.phar opcache:reset --fcgi=/var/run/php/php-fpm.sock
cache successfully cleared
$

Feel free to submit a pull request for this.


Fix feature tests windows

Please have a look at the individual commit messages for the details.

No idea why CI fails here. The tests pass locally for me on both Windows and Linux.

Closing this in favor of smaller PRs to determine where the test failure occurs.


Support operator fixities from lens out of the box

I believe lens became pretty prevalent, and occasionally hlint (out of the box, without telling it the fixities) gives wrong hints, like this one:
Suggestion: Use >=>
Found:
  \x -> a <&> f .~ x >>= b
Why not:
  ((.~) (a <&> f) >=> b)

Here's such a hint file that works for me: https://github.com/lamdu/lamdu/blob/master/hlint/lensfixities.hs

Excellent idea! I also noted that the baseFixities I use from haskell-src-exts are missing a few of the newer ones. I'll wait for them to respond then figure out how I move forward (whether they go upstream, in the HLint source file, or in a hlint.yaml file) - but they should go somewhere.

I raised a final set at https://github.com/haskell-suite/haskell-src-exts/issues/395. Let's confirm those go in, then add the lens ones to HLint.


fix(gRPC): validate ReadObject.read_offset

When a GCS request is made, read_offset is compared with the object size, and if it's too large, an error is returned.

FYI, conventional commits are of the form:
keyword(component): short statement

Where keyword is selected from a short list: fix, doc, feat, test, ci are common. We also use impl.  component is supposed to be a thing in the library / program.  We don't use that a lot in the testbench, and the short statement should say what it fixes.  The whole line must be less than 50 characters.


Move logo use link

Note that links in this portion of the footer aren't very accessible: they render with no visible indication:

I'd suggest we update the css to make it clear this logo language is a link (e.g., with an underline or a font color change).

My take: moving this information to the footer makes it harder to find and use. But I'm fine with this change if others think it's an improvement
FYI @isaacvetter @brynrhodes

Josh, my take is that this information should be a little harder to find. This is meta content that's not the purpose of the site. @brynrhodes , @brettmarquard - Josh and I disagree (never a good sign and usually means that I'm wrong), what'd'ya think?
Totally agree with the lack of a link overview and lack of different font color.

@jmandel , @isaacvetter , I don't feel strongly about this, but if I look at the FHIR site, the footer just has the creative commons image and that links to a "License" page in the FHIR spec that discusses licensing and trademark issues. I wonder if a similar approach is appropriate here, add a License page, linked from the Creative Commons logo in the footer, and that would be where the logo use guidelines link would be, along with general licensing information about the spec. Having said that, I agree with Isaac that it's the kind of thing that makes sense to have in the footer, so if we don't want to take the extra step of putting a full license page in, then I'm good with this PR.

I think overall licensing language would be great to have -- and it would be nice to consolidate.  on the licensing front, do we have anything to say beyond naming and linking to the creative commons license for the spec, and mentioning that the sandbox and other code are licensed as Apache?

Perhaps a disclaimer, similar to the one in FHIR?

Per conversation wih @brynrhodes , @brettmarquard , we should start with a simple page that adds a disclaimer and the link to BCH's logo use page.
The disclaimer should be something like FHIR's, per Bryn:

Disclaimer and Warning of Use
CDS Hooks is derived from the considerable collective experience of the HL7 membership and wide community feedback from the development and application of a spectrum of health care interoperability solutions. However, CDS Hooks is generalized to support multiple contexts of use. It is the responsibility of the persons or organizations using this specification to ensure its use is fit for the particular purpose in which it is used, including validation for clinical and operational use.
See also the specific warnings associated with use of the STU.

Sounds good! Should we close this PR and open a separate one to address?

@jmandel - what do you think of #482?

I think it's on the right track! Will close this one.


Add config specs

What does this PR do?
Add config specs for conf.yaml.example + auto_conf.yaml
Both integration versions is using the http wrapper, and remapped: https://github.com/DataDog/integrations-core/blob/master/etcd/datadog_checks/etcd/etcd.py#L67-L84
Motivation

Additional Notes
The previous configuration were using ssl, but prometheus based integrations now use tls options.
Review checklist (to be filled by reviewers)

[ ] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[ ] PR title must be written as a CHANGELOG entry (see why)
[ ] Files changes must correspond to the primary purpose of the PR as described in the title (small unrelated changes should have their own PR)
[ ] PR must have changelog/ and integration/ labels attached

What is auto_conf.yaml?

auto_conf.yaml is used for k8s autodiscovery, the integration is automatically enabled and the agent tries to find containers that match the identifier and run the check. https://docs.datadoghq.com/agent/faq/auto_conf/


net/http: slight scheduling changes makes TestServerWriteTimeout/h2 flaky (primarily wasm)

@bcmills and I have been working on addressing some scheduling concerns with net on wasm (#65178, #64317), notably via https://go.dev/cl/557437 and https://go.dev/cl/558915.
Each of these CLs works fine in isolation, but when applied together, TestServerWriteTimeout/h2 started timing out: https://ci.chromium.org/ui/p/golang/builders/ci/gotip-wasip1-wasm_wasmtime/b8757522083839877441/overview (possibly others as well, masked behind the timeout).
This failure can be reproduced at tip by cherry-picking https://go.dev/cl/557437 and running GOARCH=wasm GOOS=wasip1 go test -v -run TestServerWriteTimeout/h2.
I dug into this failure a bit and believe it is due to bad retries within net/http and/or bad expectations of the test itself. My analysis below. The instrumentation I added can be found in https://go.dev/cl/559797.
First of all, without these CLs, this test passes on both linux-amd64 and on wasm, but the latter is more exciting:
linux-amd64:
=== RUN   TestServerWriteTimeout
=== RUN   TestServerWriteTimeout/h2
--- PASS: TestServerWriteTimeout (0.01s)
    --- PASS: TestServerWriteTimeout/h2 (0.01s)
PASS
ok      net/http        0.041s

wasipi1-wasm:
=== RUN   TestServerWriteTimeout
=== RUN   TestServerWriteTimeout/h2
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:2: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:2: i/o timeout
    serve_test.go:783: Get error, retrying: Get "https://<IP_ADDRESS>:1": write tcp <IP_ADDRESS>:2-><IP_ADDRESS>:1: send: Connection reset by peer
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:4: read tcp <IP_ADDRESS>:3-><IP_ADDRESS>:4: i/o timeout
    serve_test.go:783: Get error, retrying: Get "https://<IP_ADDRESS>:3": write tcp <IP_ADDRESS>:4-><IP_ADDRESS>:3: send: Connection reset by peer
--- PASS: TestServerWriteTimeout (0.10s)
    --- PASS: TestServerWriteTimeout/h2 (0.10s)
PASS
ok      net/http        0.318s

The linux-amd64 version simply passed, but the wasm version encountered 2 timeouts before passing. This test contains a top-level timeout that increases on retry. The initial 5ms timeout was apparently insufficient and it had to increase twice before the test succeeded.
If the fact that the wasm version of this test consistently has a few timeouts here before passing is fundamentally problematic, you can stop reading here and the focus should be to understand and fix that.
Assuming otherwise, here's what happens with both CLs:
=== RUN   TestServerWriteTimeout
=== RUN   TestServerWriteTimeout/h2
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:2: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:2: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:3: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:3: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:4: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:4: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:5: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:5: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:6: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:6: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:7: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:7: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:8: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:8: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:9: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:9: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:10: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:10: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:11: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:11: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:12: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:12: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:13: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:13: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:14: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:14: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:15: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:15: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:16: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:16: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:17: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:17: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:18: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:18: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:19: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:19: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:20: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:20: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:21: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:21: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:22: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:22: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:23: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:23: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:24: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:24: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:25: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:25: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:26: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:26: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:27: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:27: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:28: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:28: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:29: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:29: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:30: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:30: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:31: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:31: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:32: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:32: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:33: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:33: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:34: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:34: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:35: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:35: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:36: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:36: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:37: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:37: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:38: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:38: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:39: read tcp <IP_ADDRESS>:1-><IP_ADDRESS>:39: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:40: write tcp <IP_ADDRESS>:1-><IP_ADDRESS>:40: i/o timeout
    serve_test.go:783: Get error, retrying: Get "https://<IP_ADDRESS>:1": EOF
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:42: read tcp <IP_ADDRESS>:41-><IP_ADDRESS>:42: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:43: read tcp <IP_ADDRESS>:41-><IP_ADDRESS>:43: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:44: read tcp <IP_ADDRESS>:41-><IP_ADDRESS>:44: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:45: read tcp <IP_ADDRESS>:41-><IP_ADDRESS>:45: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:46: read tcp <IP_ADDRESS>:41-><IP_ADDRESS>:46: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:47: read tcp <IP_ADDRESS>:41-><IP_ADDRESS>:47: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:48: read tcp <IP_ADDRESS>:41-><IP_ADDRESS>:48: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:49: read tcp <IP_ADDRESS>:41-><IP_ADDRESS>:49: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:50: read tcp <IP_ADDRESS>:41-><IP_ADDRESS>:50: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:51: read tcp <IP_ADDRESS>:41-><IP_ADDRESS>:51: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:52: read tcp <IP_ADDRESS>:41-><IP_ADDRESS>:52: i/o timeout
    clientserver_test.go:210: server log: http: TLS handshake error from <IP_ADDRESS>:53: read tcp <IP_ADDRESS>:41-><IP_ADDRESS>:53: i/o timeout
... continues

We're getting seemingly similar timeouts, but now they are occurring over and over again. Based on logging from my instrumentation CL https://go.dev/cl/559797, what is happening here is:

In the passing case, the timeout error ends up coming out of Transport.getConn to Transport.roundTrip here. There is no retry logic here, so the error ultimately bubbles all the way up to the test, which increases the timeout and retries.

In the failing case, the timeout errors ends up coming out of the pconn RoundTrip call just a few lines later. This error has a conditional internal retry mechanism (L615-643), which decides that this error warrants a retry and internally loops and retries within roundTrip. Because it never went back to the test, the timeout is the same, and the same problem occurs over and over again.

It is unclear to me what the "correct" behavior is. Perhaps timeouts should not be retryable? Or perhaps it is unreasonable for the test to expect a request to complete with the same initial timeout? Either way, it seems strange to me that the same timeout error from getConn vs RoundTrip has different behavior, given that it seems to be just luck/timing which call gets the error.
cc @neild @bcmills

Oh, I forgot to mention, @bcmills managed to reproduce this repeated internal timeout in the test on linux-amd64 by tuning just the right timeouts and adding some strategic sleeps.

I've added a comment with a bit more detail about this race in the test, in https://go-review.git.corp.google.com/c/go/+/559835/4/src/net/http/serve_test.go.

TestServerReadTimeout and TestServerCancelsReadTimeoutWhenIdle seem to fall into the same retry loop too. Not sure if there are others.

I believe what's happening is:

Transport.roundTrip successfully makes a TLS connection.
The TLS connection negotiates the HTTP/2 protocol, so it's passed to the HTTP/2 layer.
The HTTP/2 transport adds the conn to its pool and provides a RoundTripper to net/http.
The HTTP/2 layer immediately reads an error from the connection and discards it.
Transport.roundTrip tries to use the HTTP/2 RoundTripper, which returns a "no cached connections available" error.
We go back to the start and do it all again.

We've got a mechanism that to avoid an infinite retry loop when HTTP/1 connections constantly fail (if we make a request using a new connection, and that request fails, then don't retry). We don't have one for HTTP/2, and this is complicated by the fact that Transport.roundTrip doesn't have any way to identify which HTTP/2 connection is being used for a request; HTTP/2 connections get their own pool, which is invisible to the top-level RoundTrip.
The right long-term fix is to unify the connection pools and simplify connection management, but that's a big project. (Which I'm in the middle of, but it's slow going.) There's probably a lower impact fix we can do here, though. Perhaps we can apply the "don't retry if this connection has never had a successful round trip" logic to HTTP/2 connections as well?

https://go.dev/issue/16582 is going to be relevant here as a case where a HTTP/2 RoundTripper returns a no-cached-connections-error, but we actually do want to retry.


Bigtable: be consistent and don't expose absolute table names

The entire bigtable admin surface uses relative ids. So should listTables()

@chingor13 Can this be merged?

Yep, this is intentional. Thanks for checking

There a few more breaking changes coming up


actix-web >= 2.0.0 support

Cheers,
With the advent of async, actix-web started using futures in their APIs and traits, unfortunately resulting in breaking changes within the Responder trait which maud implements.
I have added support for the newest version of actix-web while trying to still support version 1, since most users have probably not yet migrated to the newest version.
In order to do so I added the trait actix-web-2 feature and the actix-web-2-dep dependency in order to avoid name clashes. Unfortunately enabling the feature also depends on the futures crate, since it is used to implement the Responder trait. I also mentioned said support in the web-framework documentation. I have not added any tests, since there were no actix-web tests I could modify. I have verified that this change works within my own project though.
Note that futures dependency may not necessarily be required. It was used within actix-web itself to implement the Responder traits, but I could not trivially verify that it is strictly required to use that crate and not some other implementation.
P.S. Thanks for your awesome crate!

Thanks for your contribution!
How about we drop 1.x support and only support 2.x?
Users who are still using actix-web 1.x can pin to an older version of Maud, so I don't think we need to support both at once.

Sure, I'll modify the PR accordingly!

I removed the 1.0.0 support and added only the 2.0.0 support. I reverted the changes to the documentation as well, since they are no longer necessary.
I also took the liberty to modify the changelog accordingly.

Merged, thank you!


userspace: document multiple mem domain init calls

k_mem_domain objects should not be initialized multiple times,
there's no support for memory domain life-cycles or freeing
memory that an arch_mem_domain_init() may have allocated.
Clearly document this.
The init function has to assume the provided domain is un-
initialized memory so it's not possible to robustly check
for this; a note is left in the arch_ definition to add an
assertion if feasible.
It's really unsafe to call an init function on any kernel
object more than once, but in this particular case if the
memory domain initialization resulted in the creation of
page tables or linked data structures really bad things can
happen. Currently no arch implements arch_mem_domain_init()
yet, but this is changing soon for x86.
One test case currently does this, it will be fixed in
a forthcoming patch.
Signed-off-by: Andrew Boie<EMAIL_ADDRESS>

Even without forthcoming changes, this is still important. Right now, if you have a memory domain with several threads that are members, and you call k_mem_domain() init on it again, domain->mem_domain_q gets reset with all the member threads having corrupted, dangling references, and there's really no way to assert against this since init functions take un-initialized memory in any state.

A bit late for this but LGTM, anyways.


Update integrate branch and title regexes for new naming.

When a PR matches these patterns it runs all benchmarks and builds. The recent https://github.com/iree-org/iree/pull/17459 missed the checks due to the new branch naming policy (integrates/llvm-) and a slightly different PR title (Bump LLVM vs Integrate LLVM).
skip-ci: configuration change, no-op for builds/tests

Sorry, I actually didnt use megabump... The megabump script failed for me during build due to some other spurious reasons so I did that manually. Probably why the labels didnt pick it up.


beginSession fails in iOS using ionic-native-nfc

I have a project built in ionic 1 and angular which works on both android and ios fine.
I have since moved this over to ionic 4 using the ionic native wrapper.
Android works fine but ios is reporting an error.
"ERROR: Method 'channel:' not defined in Plugin 'NfcPlugin'.
This maybe due to the ionic native wrapper as in the docs it does not state ios as a platform.
Does anyone know of a way to access the beginSession and all nfc methods in ionic 4 without using the ionic-native wrapper?
This project is becoming a priority.

Fixed in #399
beginSession is deprecated. Use scanNdef instead since it returns a Promise. The Ionic wrapper isn't updated yet, so use (<any>window).nfc.scanNdef() until it's updated.


Fix race condition when stopping before spinner fully built

We're running into a race condition that is fairly repeatable:
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x1072502]

goroutine 1 [running]:
time.(*Ticker).Stop(0x0)
    /usr/local/go/src/time/tick.go:46 +0x22
github.com/phase2/rig/vendor/github.com/slok/gospinner.(*Spinner).Stop(0xc4200a83c0, 0x0, 0x0)
    /go/src/github.com/phase2/rig/vendor/github.com/slok/gospinner/spinner.go:197 +0xe6
github.com/phase2/rig/vendor/github.com/slok/gospinner.(*Spinner).FinishWithMessage(0xc4200a83c0, 0xc420089b60, 0xc, 0xc420086c60, 0x23, 0x3, 0xc4201336e0)
    /go/src/github.com/phase2/rig/vendor/github.com/slok/gospinner/spinner.go:240 +0x40
github.com/phase2/rig/vendor/github.com/slok/gospinner.(*Spinner).FinishWithSymbol(0xc4200a83c0, 0xc420089b60, 0xc, 0x0, 0x0)
    /go/src/github.com/phase2/rig/vendor/github.com/slok/gospinner/spinner.go:235 +0x51
github.com/phase2/rig/vendor/github.com/slok/gospinner.(*Spinner).Warn(0xc4200a83c0, 0xc420086c60, 0x23)
    /go/src/github.com/phase2/rig/vendor/github.com/slok/gospinner/spinner.go:220 +0x8a

I think moving the creation of the timer out of the goroutine will solve the problem.
https://github.com/phase2/rig/issues/160

Hi @dnmurray!
It's been a long time since I released this project. Yes, you are right that ticker could create a race condition because the mutex could be closed(the ) before assigning the ticker in the goroutine and calling stop before it's assigned making a Stop on a nil ticker.
Image for a better explanation:

As you say you can or move the ticker creation outside the goroutine (now is inside the mutex) or wrap the goroutine assignations with the mutex.
I'll take a look at the tests in the following days and fix them. I will notify you when I have found the problem with the color test.
Thanks and sorry for the error :(

@slok Thanks for the reply, and the library!

Fixed in #4 You can rebase over master and try again! :)

Updated, passing. Thanks for the fixes.

Done! https://github.com/slok/gospinner/tree/v0.1.1


Object is focusable with tab

Would it be possible to add
object.tabIndex = -1;

Yes, that should work. I'll accept such PR, or do it myself in the near future. However, please note that the object approach is deprecated (use the scroll approach instead).

When will scroll approach become the default?

In the next major bump (2.0.0). Please note that there is no planned major bump at this time, as I do not want to bump major just for the default value of the strategy option. If something bigger in the future needs to bump major, I'll change the default value at the same time.

The object tab index issue is now fixed in release 1.1.10


[Feature] Public name of POI

First: great work!
Currently, If I’ve understood the module right, the process is at follows:
Create journal entry for a location, let’s say “House of Nayara”, dragndrop as a POI in a map and share to the players.
The players will see in their map an icon for “House of Nayara” and I, as GM, can click on the POI to teleport to the scene.
This requires to have defined the scene’s journal entry as the one shared with the players: “House of Nayara”.
The problem I’ve faced is that “House of Nayara” points to the scene “Zombies attack”, whose name for players is “Pleasant rest at Navara’s House”, and that scene has GM notes in another journal entry called also “Zombies attack”. I don’t want to use this journal GM entry as POI, I don’t want the players to see that text in the map.
So currently I have Journal entries for locations with general names and journal entries with GM notes associated to scenes, and the problem is that when I right click the scene at journal entry it shows the empty location journal, instead of the gm notes journal.
Not to duplicate journal entries I’d suggest:
Allow the name of the POI to be changed manually as “public name”, so that I can associate gm notes journal entry to the corresponding scene, dragndrop the journal to the map (“zombies attack”) and let edit the text to “House of Nayara”.
Or directly when dragndrop a journal which is associated to a scene use the “public players name” of the scene instead of the journal name.
Also, when there are two scenes associated to a location, do you set two different POIs? This is what I currently do, but the second one I set it to hidden and place next to the other for only me to see it as GM. Could it be managed more elegantly? Like a selector of scenes associated to that entry?

So one of the primary design choices of this module, is simplicity. It leverages existing mechanics to add a bit more functionality, scenes can have notes, notes can be pinned on the map. I'm just adding a button to use that association to load the scene. I'm not likely to do much more than that. Journal name aliases, multiple journals for one scene... etc. These are out of scope for this module.
The best solution in this situation, would either be notes visible to the player as well as hidden notes for the GM only, or use a single journal entry with a player-facing title, and use GM secret blocks to hide GM notes about the zombies in the same entry. I like this technique, as it reduces the number of journals in the directory, and in most cases the player facing data is also of use to me.
That being said, if someone were to create a module that allows for multiple journals per scene, or that allows you to alias the note name, I would be willing to look into supporting those features in conjunction with that module.

So one of the primary design choices of this module, is simplicity. It leverages existing mechanics to add a bit more functionality, scenes can have notes, notes can be pinned on the map. I'm just adding a button to use that association to load the scene. I'm not likely to do much more than that. Journal name aliases, multiple journals for one scene... etc. These are out of scope for this module.
The best solution in this situation, would either be notes visible to the player as well as hidden notes for the GM only, or use a single journal entry with a player-facing title, and use GM secret blocks to hide GM notes about the zombies in the same entry. I like this technique, as it reduces the number of journals in the directory, and in most cases the player facing data is also of use to me.
That being said, if someone were to create a module that allows for multiple journals per scene, or that allows you to alias the note name, I would be willing to look into supporting those features in conjunction with that module.

Another solution is to share POIs as "limited/observer" , the players wont see journal contents, no need to use GM notes for this.
Thanks

Another solution is to share POIs as "limited/observer" , the players wont see journal contents, no need to use GM notes for this.
Thanks


FIX: always encrypt login with server key.

With the latest changes the wrong key is used which causes in a invalid email and password combo

I validated this in the Homey app and seems to work perfectly for 6k users :D


Possible problems if you have SSO on site.

In --verbose mode I got the following error for some sites.
I found out what is the issue:  Basically these sites were redirecting to a SSO (Single Sign On), so I guess that the system was not finding the path to http://MY.WEBSITE.COM/.well-known/acme-challenge/LPQLVguI31OBTnEwCKJW7L_KBOgZ as it was being redirected.
After I disabled the SSO the system worked OK with no problems, then I re-enabled it and it still worked OK.
My query is: will the task to re-issue the certificate fail ?
How can I test it without having to wait renewal date?
`[INFO] Authorizing identifier MY.WEBSITE.COM using http-01 challenge
[DBUG] Send POST request to https://acme-v01.api.letsencrypt.org/acme/new-authz
[DBUG] Writing challenge answer to C:\path-to-site.well-known\acme-challenge\LPQLVguI31OBTn
EwCKJW7L_KBOgZ4aWB-5Qyrt5Ycsc
[DBUG] Writing web.config to C:\path-to-site.well-known\acme-challenge\web.config
[INFO] Answer should now be browsable at http://MY.WEBSITE.COM/.well-known/acme-challenge/LPQLVguI31OBTnEwCKJW7L_KBOgZ
4aWB-5Qyrt5Ycsc
[DBUG] Submitting answer
[DBUG] Send POST request to https://acme-v01.api.letsencrypt.org/acme/challenge/WjPv6rkbrwvtBguVlKL8vs_EXf2P5txvq2id4bIO
sps/1874571120
[DBUG] Refreshing authorization
[DBUG] Send GET request to https://acme-v01.api.letsencrypt.org/acme/authz/WjPv6rkbrwvtBguVlKL8vs_EXf2P5txvq2id4bIOsps
[INFO] Authorization result: invalid
[EROR] ACME server reported type urn:acme:error:unauthorized
[EROR] ACME server reported detail Invalid response from http://MY.WEBSITE.COM/.well-known/acme-challenge/LPQLVguI31OB
TnEwCKJW7L_KBOgZ4aWB-5Qyrt5Ycsc: "

\r\n\r\n\r\n

\r\n\r\n\r\nWould you like to start again? (y/n): Choose from one of the menu options above: 139
[INFO] Authorizing identifier MY.WEBSITE.COM using http-01 challenge
[DBUG] Send POST request to https://acme-v01.api.letsencrypt.org/acme/new-authz
[DBUG] Writing challenge answer to C:\path-to-site.well-known\acme-challenge\LPQLVguI31OBTn
EwCKJW7L_KBOgZ4aWB-5Qyrt5Ycsc
[DBUG] Writing web.config to C:\path-to-site.well-known\acme-challenge\web.config
[INFO] Answer should now be browsable at http://MY.WEBSITE.COM/.well-known/acme-challenge/LPQLVguI31OBTnEwCKJW7L_KBOgZ
4aWB-5Qyrt5Ycsc
[DBUG] Submitting answer
[DBUG] Send POST request to https://acme-v01.api.letsencrypt.org/acme/challenge/WjPv6rkbrwvtBguVlKL8vs_EXf2P5txvq2id4bIO
sps/1874571120
[DBUG] Refreshing authorization
[DBUG] Send GET request to https://acme-v01.api.letsencrypt.org/acme/authz/WjPv6rkbrwvtBguVlKL8vs_EXf2P5txvq2id4bIOsps
[INFO] Authorization result: invalid
[EROR] ACME server reported type urn:acme:error:unauthorized
[EROR] ACME server reported detail Invalid response from http://MY.WEBSITE.COM/.well-known/acme-challenge/LPQLVguI31OB
TnEwCKJW7L_KBOgZ4aWB-5Qyrt5Ycsc: "

\r\n\r\n\r\n

\r\n\r\n\r\nWould you like to start again? (y/n):
`

You can test with the --forcerenewal switch. There is not really any difference between an initial issue or a renewal, so I doubt it's going to work with SSO enabled. You should figure out a way to disable SSO for the .well-known folder.
I think you have to figure out a way

Thanks a lot - issue solved!

Happy to help!


[RFC] Composite Monitors

Challenges in Status Quo
Today Alerting is not an optimal framework to be used by other consumers including as Anomaly Detection (AD) and Security Analytics (SA). There is a hard coupling of data configuration and execution of monitors, triggers and alerts in codebase. Currently users can’t decide where to persist alerts, findings for different sets of data.
The current monitor types - Query Level , Bucket Level, Document level and Cluster metrics monitors - are constrictive in nature and each of them only supports an individual trigger type. For instance, Bucket level monitors are fashioned such that one can only create triggers based on aggregations and  Doc level monitors can only send triggers per document level. There is no way we can combine or chain their capabilities to write more complex queries, monitor more complex workloads or create more nuanced triggers/alerts.
These monitors support specific types of queries and corresponding triggers but users have workloads which need to be queried in a more complex fashion. The execution workflow for these monitors are very coupled with their direct functional needs. The data sources for both reads and writes are hard coded, with assumption that they would always remain same from the Alerting purview.
Composite Monitors
Composite monitors allow user to chain execution of multiple monitors of different types into a single flow. This is useful in the scenario where the analysis and findings of one monitor would be the input/source data of another monitor and so on. Another advantage is to have a single view of data source during the monitor execution run to be fanned out across multiple monitors, to attain finer consistency of results.  Such chaining would also facilitate creating triggers on different aspects of data. For instance, users would be able to create a monitor that could create both bucket level and doc level triggers on the same data without having to worry about coordinating the data set being used as a source for each monitor to be the same. This facilitates dicing and slicing of data and define triggers and alerts based on a combination of diverse set of rules. Had it been left to the user to coordinate the execution of 2 monitors, they would have to worry about scheduling monitors in a deterministic order which is not guaranteed in Alerting plugin design.
Composite monitors allow users to execute delegate monitors in sequential fashion hence providing more control over the data seen by chained monitors i.e. we can guarantee that the monitors using data from another delegate monitor’s findings in the same run.
A composite monitor would consist of multiple “delegate” monitors(Document/bucket/query level monitors) which need to be created beforehand and defined in the composite monitor’s “execution schema”. The delegate monitors would be executed in the sequence defined at creation time and would accept overridden parameters for data source, rules/query index, triggers and alerts. Users must create document/bucket/query level monitors beforehand (in disabled mode if user doesn’t wish to run the monitor independently) and reference the monitors by their id’s along with custom parameters to override and define data source, rules source, config for triggers and alerts.

@eirsep Can we list down some use cases to illustrate the problem statements around this? It will help to identify the ask for the composite monitors.

//cc @brijos to bring in product perspective and ideas.

https://github.com/opensearch-project/alerting/issues/834


Components / App not responding (behave like crash) when running '--prod' flag

Short description of the problem:
After adding a 'read-more' component and used in one of the page, the app starts to behave differently in normal build and production build..
What behavior are you expecting?
Dev build and Prod build should work exactly the same, but it is not.
Steps to reproduce:
You can use this repo for the code base

Run ionic cordova run android --device -lcs
Observe functionality works fine, and can go to detail page with the component used
Rerun / rebuild with ionic cordova run android --device --prod
Observe when click the "openModal" button, the app stop responding..

Which @ionic/app-scripts version are you using?
cli packages: (/usr/local/lib/node_modules)

    @ionic/cli-utils  : 1.15.2
    ionic (Ionic CLI) : 3.15.2

global packages:

    cordova (Cordova CLI) : 7.1.0

local packages:

    @ionic/app-scripts : 3.0.1
    Cordova Platforms  : android 6.3.0
    Ionic Framework    : ionic-angular 3.8.0

System:

    Android SDK Tools : 26.1.1
    ios-deploy        : 1.9.2
    ios-sim           : 4.1.1
    Node              : v7.6.0
    npm               : 4.1.2
    OS                : macOS Sierra
    Xcode             : Xcode 9.0.1 Build version 9A1004

I have similar problem on my current project. LoadingCtrl's dismiss() method doesn't removes popover, which "covers" page. That's why UI freezes.


perf(form): scoped field subscription state

Improve react hook form rerenders
using useFormState to scope fieldState subscription at field level to avoid unnecessary rerender for other fields
Before
https://www.loom.com/share/4b5b78b4efe14d7b947c8b5de13da678
After
https://www.loom.com/share/7620fe449325438a8270f68f86ee5111

@shadcn

nice

Works and only re-renders the field it needs to, but after submit it seems to revert and starts re-rendering every field each time you type.
Anyone else getting this?

Here is CSB: https://codesandbox.io/p/devbox/shadcn-ui-vite-forked-84ysks
I applied the same changes as in the PR to form.tsx, added a console.log in the label.tsx so we can see when labels render.

Open the dev tools console
Type 1 character at a time in each input, you can see its respective label renders once (as expected)
Submit the form, and type another character, every label now re-renders each keypress.

Possibly a bug with the underlying hookform package subscription, or maybe how I setup the form submission?

@BrendanC23 is right. You can change to onBlur or onSubmit and both work fine. Wish this was the default instead of OnChange.

@UltimateGG same problem. I have fixed it in this way:

Remove useFormContext from useFormField hook

Get form state from useFormState like:


Prettier svg code

This PR attempts to produce less verbose / more concise SVG code. The rendered graphics should stay the same.
BTW, I tried to make the background rects inherit height and y attributes from a parent <g> element, to reduce repetition, but apparently <g> can only impose a style to child elements, not coordinates or dimensions.

Looks great! tried it out with chrome on macOS and can't see any issues.
But i did notice a thing unrelated to this change (happens without this change also) that powerline.svg is rendered with wrong character dimensions until the windows is reiszed etc then it snaps to correct size... feels like browser bug?

BTW, I tried to make the background rects inherit height and y attributes from a parent  element, to reduce repetition, but apparently  can only impose a style to child elements, not coordinates or dimensions.

Good to know!

First

After resize

Weird and not sure i noticed it before. Anyway, not related to this PR

First
After resize
Weird and not sure i noticed it before. Anyway, not related to this PR

I also see it in both Chrome and Firefox; can't imagine this a browser bug in completely different browser engines :thinking:

I also see it in both Chrome and Firefox; can't imagine this a browser bug in completely different browser engines 🤔

Huh yes that seems unlikely


Enhance primary documentation more introductory and beginner friendly

Just a few clarifications, details, and some new totally beginner-oriented sections in readme and in the documentation/demo  index.html. This should address most of the problems identified in issue #57 .
However, at some point in the future, the work on progressively more complex templates and more detailed source code commenting will also help address this.

Convenience preview links:
https://github.com/jrwarwick/lcars/tree/fix-documentation-introductorial
and
https://htmlpreview.github.io/?https://github.com/jrwarwick/lcars/blob/fix-documentation-introductorial/lcars/index.html


Getting error when running 'react-native run-android'

`* What went wrong:
A problem occurred configuring project ':app'.

Could not resolve all dependencies for configuration ':app:_debugApk'.
A problem occurred configuring project ':react-native-testfairy'.
The SDK Build Tools revision (23.0.2) is too low for project ':react-native-testfairy'. Minimum required is 25.0.0`

Could you guys help me on this?

It appears you've set your project's minimum to 25. You should pick a lower version.

Sorry, i am really new at this. What is the recommended version and how could i change it?

I guess that's a bit of a business decision. your min should be equal to whatever version your app needs feature wise/support wise. OR if you really want to support v25, fork this repo, set change the minimum to 25 and profit!

I see, thanks for your help!

I don't think it's necessarily a 'business decision'. You should aim to use the most recent stable version you can. Otherwise you'll need to update due to bugfixes or due to the requirement of new features at a later point in time. That said, you guys should really try and support version 25, it sucks that I have to drop my version by two majors to enable this library.

The requirement for version 23 is only for the build tools. It does not affect the target or minimum API level your app supports. Please just run the sdk manager and add build tools for version 23. Any other version would cause similar problems for whoever doesn't have the tools available.
As a developer of an SDK, it's important to us that when somebody has managed to compile their project successfully, we don't change versions and break their compilation without them knowing. So please just install build tools 23 and you should be okay :)


Installation problem - Home Assistant 2022.8.6

Hi,
I'm getting this error when i want to install ha_strava
This integration does not support configuration via the UI. If you followed this link from the Home Assistant website, make sure you run the latest version of Home Assistant.

Hi @Thullie
The integration is configurable via the config_flow using the UI.
Are you able to see an issues in your HA logs relating to the ha_strava integration?
I have checked the release notes for the 2022.8.* releases and cannot see any core breaking changes that may be causing this.

you can delete this issue.
did something wrong with copy / paste

Sure thing, thanks @Thullie


write_points of Pandas DataFrameClient ( Pandas 0.24.2) is not working

I tried to push Pandas Data Frame using write_points of DataFrameClient object (Python Package: 5.2.2).
It did not write and did not throw any exception in Influx log too when I did tail -f command.
Then I downgraded Pandas Package to 0.23.4.  Then write_points method is able to push the data into InfluxDB.  I feel that it is short term fix I figured out. But Influx client package must be fixed.
Can you pls. support on this front.

I'm experiencing this issue as well.  Our cloud platform is running Pandas 0.25.0 and the even the Pandas tutorial example from the Influxdb site does not work (https://influxdb-python.readthedocs.io/en/latest/examples.html#tutorials-pandas).
Reverting to Pandas 0.23.4 does work, however that's not a practical solution for us.

I reviewed codes & found it's caused by a change on DataFrame.to_dict().
You may specify protocol="json" for write_points. If so, a tentative solution is to use protocol="line", since a problem is in a method for conversion from dataframe to json.
Before pandas v0.24.0 to_dict for empty dataframe returns an array of empty dicts & its quantity is same as the number of row of the dataframe.
From v0.24.0, it returns an empty array, without any dict.
In _convert_dataframe_to_json() (a method called from write_points), to_dict is used to generate some variables & it is zipped with other variables. Due to the change on pandas, the zip doesn't work well now, i.e. returns an empty iterator.
As the line protocol option on write_points does not use to_dict, I could confirm my code worked well with it (my influxdb package is v5.2.2 & pandas is v0.24.2). I would like to tentatively use this instead of json option.

Yes, this needs to be fixed. I'm looking into this now...thanks a lot for your patience!

Thx for reply. We will try the 'line' protocal in write_points as the work
around.  We will be looking forward to have final fix.
Thanks once again
On Thu, Aug 8, 2019 at 9:41 AM Sebastian Borza<EMAIL_ADDRESS>wrote:

Yes, this needs to be fixed. I'm looking into this now...thanks a lot for
your patience https://github.com/influxdata/influxdb-python/pull/737!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/influxdata/influxdb-python/issues/738?email_source=notifications&email_token=ADQSV54QKJJATQDCSYZQFHTQDOMHBA5CNFSM4IFVLFZ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD32LVSQ#issuecomment-519355082,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADQSV56BNEDIYKS6SSMWY4TQDOMHBANCNFSM4IFVLFZQ
.

I advocate for this to be fixed as well. New user to Influx DB -> very frustrating.

Same issue... was struggling to figure out why it wasn't working.

Any updates on this issue? I cannot write a dataframe into influx


Access token handling

The Access Token Validation feature introduces an endpoint for validating access tokens, ensuring its integrity and authenticity  before granting access to protected resources.
I experimented with your Api in a test instance to allow a portal (still a work in progress) to access iRODS through the API using an access token issued by the same OIDC provider configured in the iRODS HTTP API (SSO), as discussed here.
I implemented this feature to test OIDC compatibility, and everything worked seamlessly on my end.
I thought it would be interesting for you to test on your side and potentially integrate it if you believe it could benefit other users as well.
Below some details:
Endpoint
The /validate-token endpoint is responsible for validating the provided access token and generating a new bearer token.
Request
curl -X POST -H 'Authorization: Bearer <access_token>' http://localhost:<port>/irods-http-api/<version>/validate-token
Response
If the access token is valid, the response will contain a new bearer token, which can be used for subsequent operations.
{
    "success": true,
    "bearer_token": "<new_bearer_token>"
}

This endpoint follows the OAuth 2.0 protocol for token validation and issuance.
Implementation Details
Testing: Conducted thorough testing on a test instance running on VM with Ubuntu 22.04, including setup script for launching Docker container and updating dependencies  => launch_docker.sh
Dependency Management: Updated the CMake architecture of dependencies to ensure compatibility.
Integration: Integrated the endpoint to create, if the access token is validated, the bearer token that matches the struct currently used in the resolve_client_identity function to cast the info extracted from the token (struct authenticated_client_info).
Portal Integration: Implemented functionality to allow the portal to access iRODS by

making a POST Request to the iRODS HTTP API /authenticate endpoint to obtain the authorization code
using this code to obtain the AT from the OIDC provider
finally making a POST Request to the newly implemented iRODS HTTP API /validate-token endpoint to obtain the iRODS Bearer Token to be used for further fetching

Scope Enhancement: Added the "profile" scope in the implementation of the code for the /authenticate handler in the iRODS HTTP API (in the args of the request url building) to ensure the correct authorization code is obtained from the OIDC provider, allowing access to the "preferred_username" claim in the access token.
Documentation Updates

Updated the README and API documentation to reflect the new feature
Added comments within the codebase for clarity.

Note
This feature aims to ensure compatibility with OIDC providers and enable seamless integration with portals and other external systems. However, further testing with different OIDC providers may be required to confirm compatibility.

Thank you for this.
We'll review and let you know our thoughts.

Hello @bl000m, we were hoping to get your opinion on PR #252. The work done is similar to what you have done, and we would like to know if it would solve your particular problem too.

hello @MartinFlores751
Wth pleasure:

The program is not compiling because "run_as_protected_resources" is set as type string in the JSON schema in main.cpp. It needs to be boolean since you retrieve its value here as boolean; otherwise, the program will not compile:

if (oidc_stanza_exists) {
    static const auto is_client{irods::http::globals::oidc_configuration().at("run_as_protected_resource").get<bool>()};
    return is_client;
}

So:
// main.cpp
"run_as_protected_resource": {{
                                    - "type": "string"
                                    + "type": "boolean"
                                }},

and
- "run_as_protected_resource": "<string>",
+ "run_as_protected_resource": "<boolean>",

Also, when you:
const auto& mappings{irods::http::globals::oidc_configuration().at("user_attribute_mapping")};,

you are referring to something that is not required in the JSON schema and that throws an error. So either you change the JSON schema in main.cpp, adding the user_attribute_mapping, or you remove the section and refer just to the irods_user_claim value as mapping with the OIDC provider user, that in my opinion is the best solution.
Changing the run_as_protected_resourcestype to boolean and removing the  user_attribute_mappingretrieving code snippet and replacing it with the irods_user_claimvalue as mapping value  I was able to make it work by first making a GET request to retrieve the authorization code, adding the 'profile' scope, and asking for the access token. Then, making a POST request to other endpoints, in particular, the collection list.
My thoughts:
In your code, you've opted to enable fetching endpoints with an OIDC access token. However, this requires altering the logic in resolve_client_identity within common.cpp. Additionally, the iteration on user_attribute_mapping, even if it were correctly required, doesn't seem to be the optimal solution.
The /authenticate handler has grown to over 300 lines, with an abundance of conditional statements that hinder readability. While the choice of architecture is ultimately yours, I'd suggest considering alternatives to avoid overloading the /authenticate handler. Moreover, refraining from making significant changes to the logic in resolve_client_identity and minimizing the number of configuration parameters in config.json can prevent confusion.
A potential solution could be to create a new endpoint, as I proposed in my PR, dedicated to hitting, as you better did, the introspection OIDC provider endpoint for validation. This approach would entail sending back the iRODS token as a response to the validation request, that at the end of the day appears to be the best solution to grant access to fetch all endpoints. This alternative could offer a lighter solution, enhancing readability and promoting separation of concerns.

Additional scopes is https://github.com/irods/irods_client_http_api/issues/248

Thank you for the comments, certainly brought up some good points.

The program is not compiling because run_as_protected_resources is set as type string in the JSON schema in core/src/main.cpp.

the user_attribute_mapping you are referring to is not required in the JSON schema and that throws an error.

Yes, these are mistakes that I will be fixing.

...just to the irods_user_claim value as mapping with the OIDC provider user, that in my opinion is the best solution, since the user_attribute_mapping logic seems a bit unintuitive, and I'm not sure it could work in all cases, for sure not in my case.

The idea is that the user_attribute_mapping is a more advanced version of irods_user_claim. The irods_user_claim wants the username directly, whereas the user_attribute_mapping is looking for several properties to match against. The reasoning behind this is that we assume not everyone has access to modify their OpenID Provider. As such, an alternate user mapping method is required. You are right that we should consider allowing irods_user_claim to work there too.

The /authenticate handler signature function has grown to over 300 lines, with an abundance of conditional statements that hinder readability. While the architecture choice is ultimately yours, and I understand the strategy of consolidating various scenarios into a few main endpoint handlers to prevent dispersion, I recommend exploring alternatives to prevent overloading the /authenticate handler.

I understand the concerns about the /authenticate endpoint. We are planning to refactor the code to make it easier to follow.

Moreover, refraining from making significant changes to the logic in resolve_client_identity and minimizing the number of configuration parameters in config.json can prevent confusion.

The new code in resolve_client_identity will be refactored. This should improve readability. On the configuration parameters, you are right. Reducing configuration parameters, if possible, would be beneficial.

Creating a new endpoint for handling access token validation in order to release the iRODS token needed for accessing all endpoints could be beneficial, moving the hit_intro_endpoint logic into it. This approach would entail sending back the iRODS token as a response to the validation request, that at the end of the day appears to be the best solution to grant access to fetch all endpoints without revolutioning the existing code. This alternative could offer a lighter solution, enhancing readability and promoting separation of concerns.

I agree, using the iRODS token would be the lighter solution, however, the goal of #252 is to provide improved and easier integration with OpenID clients. By using the iRODS token, integration would be more difficult, as clients now need to handle an additional token instead of using what they already have. There are also additional benefits we receive by using access tokens instead of iRODS tokens, such as expiration and revocation handled by the OpenID Provider.

...it is necessary to include the profile scope in the arguments of the redirect URL to the authorization endpoint. ...

Yes, this will be resolved in #248.


There seems to be an error in LineBotApp.cs.

Hi
I have found two places where errors can occur.

325 Line
for (int i = 0; i < (double)hcard.Buttons.Count / 4; i++)
If the button does not exist, an error occurs because it is null.

343 Line
var actionLabel = hcard.Title?.Length < hcard.Subtitle?.Length ? hcard.Title : hcard.Subtitle;
If the subtitle does not exist, an error occurs because the comparison is not possible.

Please check the source code.
Thank you very much for making a good source and publishing it. This time I use your source to make PPT and video about how to use DirectLine and Line Message API. I will notify you after posting your blog post later.
Best regards,
Park

Thanks Park,
I agree with you from code perspective, but I don't know the scenario what Hero card doesn't have title nor subtitle or no buttons at all. If you can give me good sample, i am happy to fix it, then the issue is that LINE side requires these properties so we have to made up something.

@kenakamu
I wrote a post about how to connect Bot Framework and Line Messenger for developers.
And, the simple bot created at this time provides only some information of the hero card.
https://github.com/kaki104/bot/blob/master/Sample2/HelloWorldBot/Dialogs/DirectLineBotDialog.cs
Do I only have to use a hero card with titles, subtitles, and buttons?

The issue comes from differences between bot builder and api messaging that somebody fileds are mandatory on one side yet not another.
In that case we need to be smart to find workaround. We can use text property from message level for example

@kaki104
The easiest way is to let HeroCard has text at least. It is LINE's requirements to have these fields. If you don't we have to assign something to required field. Please give your thoughts and the post URL.

The reason why I created an issue is that Bot Framework does not have a required entry when creating a HeroCard and no error when connecting to another messenger.
However, if Title, SubTitle, and Buttons are required in LINE Messenger, I will modify my Bot.
Finally, a post about how to link Bot Framework and LINE Messenger will be posted in early April.
Thank you so much @kenakamu

You just completed the posting titled "Connecting with LINE Messenger using Direct Line".
http://kaki104.tistory.com/579


test to capture debug log

Signed-off-by: Rama Chavali<EMAIL_ADDRESS>Please provide a description of this PR:

/test all

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@ramaraochavali: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
bf549088415d07e1f89c67e2f35a5e79dfad3572
link
true
/test release-notes_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@ramaraochavali: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
bf549088415d07e1f89c67e2f35a5e79dfad3572
link
true
/test release-notes_istio

integ-pilot-multicluster_istio
bf549088415d07e1f89c67e2f35a5e79dfad3572
link
true
/test integ-pilot-multicluster_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@ramaraochavali: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
bf549088415d07e1f89c67e2f35a5e79dfad3572
link
true
/test release-notes_istio

integ-pilot-multicluster_istio
bf549088415d07e1f89c67e2f35a5e79dfad3572
link
true
/test integ-pilot-multicluster_istio

integ-security_istio
bf549088415d07e1f89c67e2f35a5e79dfad3572
link
true
/test integ-security_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


Azure Container Apps session data plane

Choose a PR Template
Switch to "Preview" on this description then select one of the choices below.
Click here to open a PR for a Data Plane API.
Click here to open a PR for a Control Plane (ARM) API.

A few other considerations for you to think about:

Potential LRO & idempotency on the CodeExecute API.
File upload functionality. Is it possible to leverage Azure Storage? If you are internally provisioning storage acct, can you expose a timed storage SAS url for user to interact with using Azure Storage API/SDK, rather than handling list/upload/download & file management yourself?


FS is undefined

Trying to run the examples/counter and encounter FS to be undefined.
https://github.com/zserge/lorca/blob/master/examples/counter/main.go#L68

FS is defined in the assets.go file and so you need to build it as a directory build, i.e.: go build -o counter .  -- this should work

Thank you!

In some cases, you want to run the application instead of fully building it.  I think it's perfectly valid to want your application to work with go run instead of having to use go build

If you update to at least 1.14 you can do: go run . from inside the counter directory no code change required.


[App Bar] FlatButton as iconElementRight is not vertically centered

The FlatButton as iconElementRight within the AppBar component is not vertically centered.
This is a screenshot taken with Firefox on a Full-HD resolution (http://www.material-ui.com/#/components/app-bar)

If you observe the spaces and not the margin-top indicator you'll realize that it is. This issue should be closed.

@skolmer In both your screenshot and the live docs site, the FlatButton is vertically centered.

@mbrookes Why the thumbs down?

@zabieru96 Ask @skolmer!

@zabieru96 The thumbs down because I disagree. Would also have been nice to take a closer look before asking to close this issue.
As I said, this occurs in Firefox at Full-HD resolution (on Windows). This might help to reproduce this issue. In chrome it is perfectly aligned.
You can also zoom in on the screenshot and you will see the offset of the rulers.

@skolmer I will take a look at it. The issue template asks for versions for this reason...helps anyone who stumbles upon an issue more correctly reproduce it. 😜

@m2mathew Thanks! If you need more info, just let me know.

I'm having this same issue on Chrome. Can anyone point me in the right direction for the fix?


Checking the pasteboard for dynamic links in ios14

In iOS14,  a notification will be be displayed to the user whenever an app reads from the pasteboard. Since dynamic links reads from the pasteboard at launch, it will cause this notification. Using the UIPasteboard's new detectPatternsForPatterns: api, we can try detecting if the pasteboard contains a dynamic link as its first item so we don't trigger the notification needlessly.
Draft PR following up on https://github.com/firebase/firebase-ios-sdk/issues/5893

This change LGTM - I tested myself that the hasURL call works as expected and this should at the very least reduce the notifications to only when a URL is on the clipboard. We should evaluate how we can do better, but this is an improvement to start.

Please wait for @eldhosembabu review before merging @ncooke3

Please add the change log entry before merging.


Academic Interests: Slow to Load and Cursor Issues

Describe the bug
Sometimes it works slowly and sometimes I'm typing words but not getting suggestions on the profile page, it just says searching and enter 1 letter, cursor is in a weird place after first is entered. Once I get one in, the widget works!
To Reproduce
Steps to reproduce the behavior:

Go to the academic interests piece on profiles
Start to enter interests

Expected behaviors
I expect the list to populate once I start typing a letter and that the cursor is directly to the right of the suggestions.
Context
Does this bug on production, development, or both?

[X] Tested on development instance
[ ] Occurs on development instance
[ ] Tested on production
[ ] Occurs on productions

Screenshots
Added cursor screenshot. Screen Shot 2023-01-06 at 10.50.20 AM.png
Additional context
Add any other context about the problem here.

Slowness I can't do much about right now. This input relies on the select2 jquery library for tokenizing inputs. It's a bit hackish and hard to style well.
https://github.com/MESH-Research/boss-child/commit/500ecfc58040cad24b23051c0fbba1f9a3399c25 Adjusts the input container height and removes margin / padding to make the input cursor line up better with the tokenized inputs. It is not a perfect solution, especially when an input wraps lines. But it seems better than the current situation.

Reopening for @ericknappe to look at some of the backend caching originally created for this code. There may be a process that is not running.

The plugin mla-academic-interests has a rest controller that queries terms and returns them to the select2 javascript on the front end. The plugin bin directory contains a php script to prime the cache with all the academic interest terms to speed up the edit profile interest picker. I've tested HC in it's current state, after flushing cache and after priming cache and I get the same 4-5 second response in every case entering a word. The response can be quicker when going letter by letter. I'll need to check again when there is some load on the system.

We're going to close this issue and reopen one specifically in the context of art and art history.


Envoy does duplicate DNS resolutions when there are strict DNS clusters, with the same endpoints

Title: Envoy does duplicate DNS resolutions when there are two strict DNS clusters, and both have the same endpoints
Description:

Describe the desired behavior, what scenario it enables and how it would be used.

Envoy bombards the DNS server, with duplicate DNS resolution calls when multiple STRICT DNS clusters have the same endpoint.
In our setup, we have around 5-7k STRICT DNS clusters, but there are only 340 unique cluster endpoints. At startup, envoy tries to do DNS resolutions for all 5-7k STRICT DNS clusters, and fails for different reasons.
This has resulted in envoy throwing UH errors for a short window just after it marks itself READY.
If Envoy's DNS resolution mechanism can be optimized such that it doesn't start duplicate DNS resolutions, then it would help several components:

Envoy would not throw UH errors during startup because of failed DNS resolutions. These failed DNS resolutions have happened due to variety of reasons like mentioned in this thread.
Envoy would bootup faster, as it reduces the number of DNS resolutions it would need to do
Envoy would not bombard the DNS servers. For example, Amazon DNS server has a limitation of 1024 packets per seconds.

Relevant Links

Any extra documentation required to understand the issue.

Issue explaining this behavior - https://github.com/envoyproxy/envoy/issues/31992

Tagging @yuval-k for visibility. Thanks!

@lizan - thanks for looking at this issue, wanted to know if there is anything I can help with to add some traction to this ticket?
This is causing issues due to our scale.

Reopen.

/remove stale

Can this be reopened.


[Support] Retrying done even in case of 4xx error

I would like to understand the use case for which nakad-java client retries publishing even in case of 4xx errors.
Is this so that a publisher can keep retrying publishing calls until it succeeds? This can be happen if the publisher/owner of event type observes the status codes for publish requests and fixes the event type (auth, schema etc) in time before retry policy expires so the failed calls can succeed. If not then this will just lead to meaning less calls to nakadi which nakadi will always reject, it occupies resources from client as well as from nakadi side.

seems like 422 (atleast one event failed validation) is excluded from retrying so the scenario I described is reduced to 401/403


Fix pyperclip bug on community cloud

Fixed in #11 - can't use pyperclip due to cc limitations (even if dependency install successful, will copy to clipboard of cloud machine!). Worked around using streamlit's code cell which has a built-in 'copy to clipboard' button which successfully targets user's local clipboard. Unable to find out how they are doing that to reproduce in a button so this workaround will have to do for now.


ARC: nsim_hs_smp: huge zephyr.hex file generated on build

Describe the bug
Build for ARC nsim_hs_smp board generates huge zephyr.hex file (5.7G for sample.basic.helloworld)
Most likely it is caused by big empty hole in memory layout.
We should to check if we can disable zephyr.hex generation in case of nsim_hs_smp or adjust memory layout.
The file is generated even if it is disabled in .config:
$ cat build/zephyr/.config | grep "CONFIG_BUILD_OUTPUT_HEX"
# CONFIG_BUILD_OUTPUT_HEX is not set

To Reproduce
Steps to reproduce the behavior:
west build -b nsim_hs_smp samples/hello_world
du -sh build/zephyr/zephyr.hex

Impact
It bloats your FS (especially in case of sanitycheck)
It dramatically increases compilation time
Environment (please complete the following information):

OS: Linux
Toolchain Zephyr SDK 0.11.4, ARC GNU
Commit SHA or Version used: 3ab5ac81ca

I tried in my VM, and our server.
I can't reproduce it, no zephyr.hex generated.
$ git checkout 3ab5ac8 -b huge-hex
$ west build -b nsim_hs_smp samples/hello_world
$ ls build/zephyr/zephyr*
build/zephyr/zephyr.dts  build/zephyr/zephyr.elf  build/zephyr/zephyr.lst  build/zephyr/zephyr.map  build/zephyr/zephyr_prebuilt.elf  build/zephyr/zephyr_prebuilt.map  build/zephyr/zephyr.stat

The issue is related to openocd presence in custom config, I'll look to it by myself.

@evgeniy-paltsev update please or close... Cant reproduce here, if this is due to local env then we should close it.

@evgeniy-paltsev update please or close... Cant reproduce here, if this is due to local env then we should close it.

Can't reproduce.


Bug in */n format?

I tried a crontab with
*/2  7-18  * * 1-5      python foo.py

But it did not kick off, even if I waited long (on a wednesday at 13:00)
Changed the spec to every minute, and it worked.

I was unable to reproduce the issue - I tried the example on my local machine and Cronical seemed to handle it correctly.
If you run it from the command line with debug output ("cronical --console -d"), does it say anything about it?

I debugged in console (very nice feature), and indeed it works. Closing.


Store: Add support for more expressive patterns

StatementPattern
ValuePattern
PropertyPattern (including paths)
TimePattern
StringPattern (re, startswith, endswith, etc.)

See #24

Filter now supports more expressive fingerprints.


Incorrect link to research paper

Hi. It seems the link to the research paper is not correct. I tried accessing it and got redirected to the following link:
http://www.lrec-conf.org/proceedings/lrec2020/pdf/2020.lrec-1.427.pdf
Could you please verify? Thanks!

Hi, thanks for pointing it out. Updated the link.
http://www.lrec-conf.org/proceedings/lrec2020/pdf/2020.lrec-1.428.pdf


Support both positive and negative offset timezones for tests

Noticed the tests didn't pass for me because I have a negative offset timezone, just fixed the test.

:+1:

Any status on this?

Been years... this project abandoned?

yes


Followed the exact steps.  It simply does not work: No module named 'azure.cognitivservices'.  Python 3.9, clean environment.

[Enter feedback here]

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

ID: e4b55e56-55a1-d635-6bea-271dc361d676
Version Independent ID: 8e9cb28f-c133-f310-3c7d-3a3b7e85f69d
Content: Speech-to-text quickstart - Speech service - Azure Cognitive Services
Content Source: articles/cognitive-services/Speech-Service/get-started-speech-to-text.md
Service: cognitive-services
Sub-service: speech-service
GitHub Login: @eric-urban
Microsoft Alias: eur

@TaDahCorp
Thanks for your feedback! We will investigate and update as appropriate.


add misdreavus to r+

I'm starting to review PRs for docs and rustdoc, and forcing someone to r= or delegate for me is getting unsustainable. >_>

👍

🎊🎉


L515 data too noisy

Required Info

Camera Model
{ L515 }

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

Operating System & Version
Ubuntu 18.01

Platform
PC

SDK Version
2.35

Segment
Realsense Viewer

Issue Description
I am trying to acquire depth data from l515 but its seems too noisy. Is there any post processing step available to improve it other than the one available in realsense viewer. I already tried it and there is no improvement.
Thanks

Hi @zainmehdi
Sorry for the delay on this thread.
I think part of what you may be seeing can attributed to setup and configuration.
I'd like to point you to some documentation that provides some good detailed information on the L515 camera that can help:
L515 Users Guide:  https://support.intelrealsense.com/hc/en-us/articles/360051646094-Intel-RealSense-LiDAR-Camera-L515-User-Guide
Optimizing for ranges:  https://www.intelrealsense.com/optimizing-the-lidar-camera-l515-range/
Do have a look at these documents and let us know if this helps.


FEATURE REQUESTS

All feature requests go here.
Since <=1.0 is effectively in a feature freeze, we want to avoid spamming the issue tracker with new feature requests until it's out the door. At the same time, we don't want to lose all of these ideas, so if you have a new feature request, please leave a detailed explanation in a single comment, and defer further discussion until after 1.0 is out and working nicely.
If you don't want to get an email every time, you can mute this issue entirely. Yes, that option does exist, ndd.

Old issue, but this seems like the place for it, so...
I really dislike the look of if (!(someValue someBool)). An unless (someValue someBool) statement would be neat!

One of the things I really like about ooc is how easy it is to create and use tuples in various situations. I've been working a bit with code that looks like this:
thing1 function(value)
thing2 function(value)
thing3 function(value)

It would be really cool if there was a compact way of writing something like
(thing1, thing2, thing3) function(value)

which would do the same thing as above, but on a single line. I could create a list of the 3 things and iterate over them with some apply function, but that would be a lot less cleaner.

Hmm, this is a pretty good idea, it could also be used as an expression in addition to a statement, just translate it into a comma operator/sequence (so the value of the expression @davidhesselbom wrote would be thing3 function(value))

Btw @fasterthanlime, I was wondering whether it should be allowed to define "local" types, for example inside a function (shadowing existing type names would be allowed and the type name cannot be used from anywhere else).
Of  course this would require huge amounts of work on rock, so I'm not suggesting it for now :P
This makes defining a cover type and returning a value of that type a little bit easier (rather than polluting the namespace), which is a pretty good way of getting rid of heap allocation.
For example, format could define some cover type that behaved like a String to effectively store the return data on the stack (and provide a toString() method if a String is really needed, of course)
Of course this is already possible but it does pollute the global namespace.

Re @davidhesselbom's idea:
If there is a shorthand for [thing1, thing2, thing3].map(|thing| thing function()), then you can add a mapWith(fn: Func, args: ...) or similar and use that shorthand, correct?
/cc @shamanas @fasterthanlime
(Also, hi, been a while!)

@duckinator Hi there!
Still hoping to make those 12 functions in the ruby binding disappear? :P
What you are suggesting is not possible, no, since ooc function calls are just translated down to C calls, you can't dispatch arguments at runtime like that.
The only two ways this could work would be if ooc functions were special and essentially all took some kind of packed data that contained the number of arguments, types and values (essentially, VarArgs) and the compiler generated code that checked the arguments passed at runtime (which is horribly inefficient, type unsafe and and against the spirit of ooc in general, pretty much an interpreted language feature), in which case you still couldn't call C functions like that or with variadic templates (and I don't think we are planning to implement those), which would admittedly solve the ooc-ruby pretty neatly.
 ;)
Ah, right. Damn computers, always making things difficult. We'd basically have to do this in the preprocessor, wouldn't we? E.g., a preprocessor version of map (or, probably less painful to implement, each) that just unrolls the loop. The idea of which makes me want to set my computer on fire and defenestrate it.

Or a nice macro system that directly works with the AST but now I'm just dreaming :P

E.g., a preprocessor version of map (or, probably less painful to implement, each) that just unrolls the loop. The idea of which makes me want to set my computer on fire and defenestrate it.

When you do something like
tupletFunc: func -> (Int, Float, String) { (0, 0.0f, "" }
(anInt, aFloat, aString) := tupletFunc()

(which is super neat, btw, although this particular example is rather uninteresting) this gets translated by rock into several lines of C code. Is that also "preprocessor unrolling of a loop"? Where do you draw the line?

it's not. there's no loop being "unrolled". I think it only counts when it's iterating through some structure

As @vendethiel, this is not unrolling, just the only (or close to it) way to translate this in C (multiple definitions -> pass their pointers or NULL if we ignore the value)

// ooc (neat!)
(x, y, z) := (0, 0.0f, "")

// C (less neat, but I'm not writing code in ooc because I want to look at neat C code)
        x = 0;
        y = 0.0f;
        z = (void*) lang_String__makeStringLiteral("", 0);

So why not
// ooc, maybe, at some point
(x, y, z) doSomething(withSomeValue)

// C, possibly
        x.doSomething(withSomeValue);
        y.doSomething(withSomeValue);
        z.doSomething(withSomeValue);

Loop, no loop, whatever. I'm trying to understand why the first example is acceptable, while the second inspires computer defenestration? The two look pretty much analogous to me.

Looking at it again, I don't think that (x, y, z) doSomething(someValue) would be too much harder to handle than a preprocessor version of each() like I suggested before. But I am no expert on how rock works at this point, given that I've not touched it in like two years, and as such perhaps spoke a bit too strongly. I should probably defer to those who've worked on rock more recently. :)
But, to clarify what I was saying before: the defenestration was firmly aimed at the preprocessor version of each() -- AFAIK such a thing would only work with a subset of what the normal each() works with, with no really clear way to emphasize that it's not a normal function, etc. In other words, a mess. Actually not sure why I suggested that at all, at this point. But, again, not worked on rock in like two years, so could be wrong with something here. Sorry for the confusion!
@shamanas, am I correct in my thoughts that implementing what @davidhesselbom suggested may actually be simpler to implement than a compile-time each() (with the bonus of being less confusing), with the main difficulty being nagaqueen tweaks? I believe there is similar code (for (x, y, z) := ...), after all.

As I said last week, I think (thing1, thing2, thing3) function(value) is a good idea and it is easy to implement, if we iron out the details (order of evaluation, is it an expression or a statement? etc)
IMHO it should "just" translate to a comma operator list, so the order of evaluation would be from left to right and the value of the expression would be thing3 function(value).
If @fasterthanlime approves, I will be implementing it.

What happens if at some point tuples have actual methods?
(thing1, thing2, thing3) is of type Tuple<Type1, Type2, Type3>, and so far Tuples have no methods, but what if they become first-class types later on? This gets us stuck with a syntax that doesn't make much sense.
There is a case that has made me wish for more language support, and it's:

I have a list of items of type X
I have another, individual item of type X
I want to run the same operation on that list and the other few, but without building another data structure with them because generics are slow (<- that's the point of the whole argument, isn't it? conciseness really isn't because you can, today, make a function that is almost as short as what you're suggesting), without adding the individual items to the list
I'd also like to be able to control iteration, ie. break if I'm done looking into all those X (how does your syntax do that?)

In a language where cons/lists are cheap and the basis of pretty much everything, you'd just create a new immutable list, with cons or conj, and then use loop/recur or something higher-level to work on that.
I'm not really a fan of adding even more weird edge-case syntax to ooc, and making it even harder to implement for third-parties.

I hadn't considered this, although I was always in favor of first class tuples, good point.

What happens if at some point tuples have actual methods?

I had no idea that was ever a consideration. I guess that could be neat in some cases, though.

you can, today, make a function that is almost as short as what you're suggesting

How? I can see several ways to make a function for it, but none of them are pretty (they involve lists, varargs, or multiple overloads, plus you need a new function F1 for each function F2 in the item type in the list that you want to call on such a list of items, unless you can pass a pointer to that function F2 as one of the arguments to F1...)

In a language where cons/lists are cheap and the basis of pretty much everything

You're not talking about ooc now, are you? Or is this what you hope cork will do for ooc?

I'm not really a fan of adding even more weird edge-case syntax to ooc

That's understandable. My feature request was only a suggestion, and under the assumption that it would be easy to add.

How? I can see several ways to make a function for it, but none of them are pretty (they involve lists, varargs, or multiple overloads, plus you need a new function F1 for each function F2 in the item type in the list that you want to call on such a list of items, unless you can pass a pointer to that function F2 as one of the arguments to F1...)

You named it: pass function as argument, rest as varargs.

A (x, y, z) function(value) call could be checked at compile time to make sure that each of x, y and z are of a type that has a function that matches function(value).
With varargs, I get 0 type safety at compile time and I need at least 5 lines to create the iterator, the while loop, and the match clause (assuming I have at least 2 cases). Such a varargs function needs to be added to each class that needs this kind of functionality (meaning lots of duplicate code), or I will have no way of knowing at compile time that the function I'm trying to call on the items in the varargs is a function that can be called on those items.
So... it would be really messy by comparison, almost like having to explicitly declare a new class for each possible tuple I want to use in my program (which, happily, I don't). So I don't accept the "you can, today, make a function that is almost as short" argument, but the other arguments against my suggestion are plenty, so I'll just withdraw my request. Thanks for the consideration, though!

My point is that, whether you want a function call, or a method call, these:
[a, b, c] each(|x| x method())
[a, b, c] each(|x| function(x))

Should work, and be fast enough. With cover templates, it's achievable with very little performance penalty. So we just need a better implementation of them.

That looks neat, yes (although I suspect it's going to get a little bit stickier if you turn the gc off, but that's my problem, not yours). So this is what you suggest should be done instead of what I suggested earlier?

(I'm not very receptive today.. :frog:)

what bdfl suggests

Reminder that rock is feature-frozen, that the language is messy enough as-is, acknowledgement that when I say "X should work" I'm probably talking about a post-rock era (heh). Plea to not, I beg you, add more cruft to rock and perturbate its delicate equilibrium between undefined behavior and breaking everything once more.

gc-less

Say you're trying to design a very good ruler that can trace very nice straight lines. Someone comes along and says: "hey so I found a way to draw curves with it — see I just have to move the ruler while I'm tracing, just like this. Sure, sometimes the curve isn't that beautiful but overall, it almost works. Do you think you could adjust the ruler so it's easier to draw curves?"
But for the sake of the intellectual argument (since doing that is easier than actually making tangible progress on a new compiler...), in that scenario, you could do extend Array and have an eachThenFree function...
(I'm not angry or anything, just frustrated that the only help I can bring is to try and prevent people from going further down the rabbit hole...)

Reminder that rock is feature-frozen

I didn't know that, but it makes sense, if you ever want to be able to get anywhere with cork. Thanks for the reminder!

acknowledgement that when I say "X should work" I'm probably talking about a post-rock era (heh).

OK - I wasn't sure if you meant that, or "if works now, too, afaik". (because it doesn't, which that comment implies you already know)

"Do you think you could adjust the ruler so it's easier to draw curves?"

Again, gc-off is my problem, not yours. I would prefer to use the gc, since, well, you have this amazing thing that just automagically cleans up your mess, which is really cool when you think about it, but, by royal decree, I can't.


removed the old and explicit version of the RN dependency.  this will prevent the parent project from downloading multiple versions of the RN library

removed the old and explicit version of the RN dependency.  this will prevent the parent project from downloading multiple versions of the RN library

Thanks!