Add a tutorial for how to implement FIREBASE

add firebase logi nand signup

Thanks for pointing it out. Although firebase authentication is a customized version of the general flow, I will try to look at what can be done in the upcoming weeks, stay tuned.
(Unfortunately, I have my final exams these days so cannot focus on the package.)

No problem, Brother I will remind you :)
Really adding this (options) will help beginers have easy curves of learning

No problem, Brother I will remind you :)
Really adding this (options) will help beginers have easy curves of learning

I would say firebase or another real world backend solution for instance very popular nowadays firebase alternative AppWrite https://appwrite.io/ it's open source as well.

but most companies want you to have skills.... i can use flutter fire UI
but it wont work with flutter web at all
[image: Mailtrack]
https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality11&
Sender
notified by
Mailtrack
https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality11&
01/28/22,
10:52:48 PM
On Fri, Jan 28, 2022 at 3:31 AM Ruslan Yanyshyn @.***>
wrote:

No problem, Brother I will remind you :)
Really adding this (options) will help beginers have easy curves of
learning
I would say firebase or another real world backend solution for instance
very popular nowadays firebase alternative AppWrite https://appwrite.io/
it's open source as well.
—
Reply to this email directly, view it on GitHub
https://github.com/bahricanyesil/flutter-animated-login/issues/40#issuecomment-1023702417,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIRXJSFK47MOWMIQEUY36PLUYHBVFANCNFSM5LO7DSNQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>

but most companies want you to have skills.... i can use flutter fire UI but it wont work with flutter web at all [image: Mailtrack] https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality11& Sender notified by Mailtrack https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality11& 01/28/22, 10:52:48 PM
…

Adding this helper-optional to use functions can be a great idea. However, I have just used Firebase's phone verification system and did authentication-related things mostly with other back-end solutions, in-company back-end projects, and so on.
Since this request is "more customized" than the other changes that the package requires at this time and it should also be built on a well-based architecture for connection, I just marked it as "long-term future". Adding those functionalities with some custom parameters is an easy thing. However, if we strongly decide to add this functionality, we should also create a strong architecture for the firebase connection to maintain the quality of the package.
If anyone is volunteering to implement this in a shorter time, I can review and merge it.
Thanks.

is used the following code to make login work....however, I don't have the skills to add signup and recover password.... :)
Future<String?> _signIn(LoginData data) async {
try {
var d = await FirebaseAuthWeb.instance
.signInWithEmailAndPassword(data.name, data.password);
print(d.user);
if (d.user!.displayName != '') {
isFound = true;
// setState(() {});
  }
  return null;
} catch (e) {
  print(e);
  // return 'User not exists';
  // Get.snackbar("Info", "Invalid");
}

}

but i used this package instead :   flutter_login: ^3.1.0
because it was working

I am not planning to add this example currently because it is not directly related to the package itself but to its integration with Firebase.
If there are many requests or volunteers, I will be happy to add the sample codes under the example project.

Great.
[image: Mailtrack]
https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality11&
Sender
notified by
Mailtrack
https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality11&
06/18/22,
12:57:18 AM
On Fri, Jun 17, 2022 at 7:42 PM Bahrican Yesil @.***>
wrote:

I am not planning to add this example currently because it is not directly
related to the package itself but to its integration with Firebase.
If there are many requests or volunteers, I will be happy to add the
sample codes under the example project.
—
Reply to this email directly, view it on GitHub
https://github.com/bahricanyesil/flutter-animated-login/issues/40#issuecomment-1158941160,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIRXJSF67ZJ2OXDS5PG3B23VPSFFTANCNFSM5LO7DSNQ
.
You are receiving this because you authored the thread.Message ID:
@.***>


"olm-sdk" not found on Android Studio 2.2

i found the solution:
import "olm-sdk"
comment on the sdk:
//compile(name: 'olm-sdk', ext: 'aar')
//flatDir {dir 'libs'}
and imports "'olm-sdk'" as module on the sdk:
compile project(':olm-sdk')
and import the sdk as module on you app:
compile project(':matrix-sdk')

This trick was already commented on the application.
Matrix SDK is compiled as a lib.
In the vector project, you have to uncomment some lines in settings.gradle and build.gradle.


Enabling Racket checker do work without running the code

The change I propose uses raco make instead of just running the code. This might be a controversial change for some people because in case of smaller scripts running the code takes no time and can actually uncover more bugs. However that's not the case for every program and using raco is more universal -- will work for all files and does not carry the risk of blocking Vim (now that syntastic doesn't use Vim 8 async yet) by "checking" a program with long running time.
I also changed the error format to include all lines in Racket's error output. As it is the messages shown by Syntastic often arent informative enough and one must run the code again in DrRacket to get to the core of the problem.

The change I propose uses raco make instead of just running the code.

Well, that can be achieved without changes to the code, by setting syntastic_racket_racket_exe in your vimrc.  As a general rule, patches that only change the defaults are not accepted.

I also changed the error format to include all lines in Racket's error output.

Sadly, error messages without line numbers are essentially useless to syntastic.

As it is the messages shown by Syntastic often arent informative enough and one must run the code again in DrRacket to get to the core of the problem.

Yes: racket prints error messages in bits and pieces as they happen, rather than going through a centralised function.  The result is that said error messages are essentially unparseable.  Various solutions have been suggested in the past, but nobody stepped up to actually implement one.  As it is, the racket checker is one of the least useful ones in syntastic and a prime candidate for future deletion.  Including it in its current form has been a mistake. shrug

Well, that can be achieved without changes to the code
Well, the same could be said about the current defaults which are suitable for less people compared to what I'm proposing. Shouldn't defaults be the most broadly usable settings?

Sadly, error messages without line numbers are essentially useless to syntastic.
What I added doesn't remove line numbers. It still displays the vital line info (parsed and highlighted) and allows Vim to correctly display the error side marks on appropriate lines. It just displays the most important part of the messages, too. This is especially useful with Typing Racket which is completely at odds with this checker in its current form. If you use this checker, try it and see. Or I can upload screenshots showing the difference.

Shouldn't defaults be the most broadly usable settings?

As I said, patches that change the defaults are generally not accepted.  This has nothing to do with usability.  It has to do with me being the only active maintainer left, and with me not having a clue about the vast majority of the 200+ checkers currently supported.  There are about as many opinions about what these defaults should be as ar users.  I have better ways to spend my time than updating defaults for each of the 200+ checkers every few days.  Also, this allows you to upgrade syntastic without worrying about breaking your setup.  This situation is of course less than ideal, but the resources I can afford to spend on syntastic are limitted. shrug

What I added doesn't remove line numbers.

The very point of syntastic is to let you jump to the place of errors.  You can't do that if the error mesages don't have line numbers.  You also can't do that if you can't parse the relevant messages.  Currently syntastic can parse <20% of the error messages racket can produce.  Adding informational messages to the location list won't change that. shrug


Configurable URL in Springwolf UI

It would be nice to have an option to configure custom URL for Springwolf UI. E.g.: springwolf.ui.url=/custom/url
Without the feature there is no option to use the UI in multi-services projects - the flagship example is k8s environment with many microservices based on the same baseUrl. So I want to have a possibility to configure UI url like that: baseUrl + myMicroserviceId + ui.html.
From my perspective the solution can be based on Swagger UI solution.
I don't know if any alternative will be sufficient, from my perspective is a missing key feature.

Hi @sam0r040! Thanks for quick reply!
Something different. I want to set custom path without setting spring context path in whole app.
In swagger UI there is:
springdoc.swagger-ui.path - where you can set custom path, in my case {myMicroserviceId} + custom-path
then I can get swagger UI in my browser via such URL: {someBaseUrl, eg. k8s cluster, or localhost} / {myMicroserviceId} / custom-path / swagger-ui / index.html, e.g. localhost/pet-service/custom-path/swagger-ui/index.html
In Springwolf I want to configure it in the similar way, e.g.:
springwolf.ui.url=/{myMicroserviceId}/custom-path/
then I'll get Springwolf UI in my browser via such URL: localhost/pet-service/custom-path/springwolf/asyncapi-ui.html instead of localhost/springwolf/asyncapi-ui.html
So, as I said, it's similar case to context path, bout without setting it (due to some requirements, I cannot set context path in the whole app).

so @sam0r040 how do you see that? Is there a possibility to add such feature?

Hi @madrimas, we are currently looking into this feature.

Hi @sam0r040, that's great! I look forward to hearing more good news

I've tested the snapshot, looks brilliant, thanks!
After release I'll check it once again and then close the issue.


Add branch prediction guides to PAL assertions

We observed ~2% performance improvement (depending on the workload), in builds with assertions enabled.

Can one of the admins verify this patch?

Ok to test.
Looks good to me, only nit is that PAL_HAS_BUILTIN should probably live next to PAL_HAS_CPP_ATTR in palUtil.h for consistency.
We also generally assume that all code in asserts get compiled out in shipped builds-- I would not be surprised if we needed to squash a few places for performance where we make read-only system calls or volatile memory accesses as well, which don't get optimized away because they are "side effects" even if they don't actually have an effect. That's not the case for 99% of it, though, and I wouldn't be overly concerned.

ok to test

build failure:
11:02:45  /jenkins/workspace/open-source/pal-github-pr/driver_build/drivers/pal/src/core/libInit.cpp:67:5: error: static assertion failed: The specified PAL_CLIENT_INTERFACE_MAJOR_VERSION is not supported.
11:02:45       static_assert((PAL_CLIENT_INTERFACE_MAJOR_VERSION >= PAL_MINIMUM_INTERFACE_MAJOR_VERSION) &&

I guess rebasing on top of dev should fix this build failure?

Internal tests are also failing here (line number might be off due to internal/external differences):
[2021-07-14T23:06:19.880Z] /jenkins/workspace/vulkan/vulkan-psdb/driver_build_gh/pal/src/core/os/amdgpu/amdgpuDevice.cpp: In static member function ‘static Pal::Result Pal::Amdgpu::Device::ParseClkInfo(const char*, Pal::Amdgpu::Device::ClkInfo*, Pal::uint32*)’:
[2021-07-14T23:06:19.880Z] /jenkins/workspace/vulkan/vulkan-psdb/driver_build_gh/pal/inc/util/palAssert.h:17:59: error: invalid conversion from ‘const char*’ to ‘long int’ [-fpermissive]
[2021-07-14T23:06:19.880Z]  #define PAL_PREDICT_FALSE(expr) __builtin_expect((expr), 0)
[2021-07-14T23:06:19.880Z]                                                            ^
[2021-07-14T23:06:19.881Z] /jenkins/workspace/vulkan/vulkan-psdb/driver_build_gh/pal/inc/util/palAssert.h:180:9: note: in expansion of macro ‘PAL_PREDICT_FALSE’
[2021-07-14T23:06:19.881Z]      if (PAL_PREDICT_FALSE(_expr))                                                               \
[2021-07-14T23:06:19.881Z]          ^~~~~~~~~~~~~~~~~
[2021-07-14T23:06:19.881Z] /jenkins/workspace/vulkan/vulkan-psdb/driver_build_gh/pal/inc/util/palAssert.h:187:26: note: in expansion of macro ‘PAL_ALERT_MSG’
[2021-07-14T23:06:19.881Z]  #define PAL_ALERT(_expr) PAL_ALERT_MSG(_expr, "%s", "Unknown")
[2021-07-14T23:06:19.881Z]                           ^~~~~~~~~~~~~
[2021-07-14T23:06:19.882Z] /jenkins/workspace/vulkan/vulkan-psdb/driver_build_gh/pal/src/core/os/amdgpu/amdgpuDevice.cpp:5430:17: note: in expansion of macro ‘PAL_ALERT’
[2021-07-14T23:06:19.882Z]                  PAL_ALERT("read pp_dpm_clk info error");
[2021-07-14T23:06:19.882Z]                  ^
[2021-07-14T23:06:19.882Z] <built-in>: note:   initializing argument 1 of ‘long int __builtin_expect(long int, long int)’

Looks like this needs to be changed to PAL_ALERT_ALWAYS_MSG.

Test summary for commit 03c39103ad171e271aa022b46a72485eca7630da
Driver commits used in build
CWPACK: amd-master 7387247eb9889ddcabbc1053b9c2052e253b088e
METROHASH: amd-master 3c566dd9cda44ca7fd97659e0b53ac953f9037d2
LLPC: dev 72afd4ae01e3f5c043dbd2dfac57833408ac3f6b
SPVGEN: dev bb3da8bc00bcf4373d563bf9b3c74a80a8b28fe6
XGL: dev 5dbd470d8c1cbf8ee5d9a1204ba23a2fbf88a242
LLVM-PROJECT: amd-gfx-gpuopen-dev 01f326c1e88cbf80e50a631ea0ce61a57152a7c0

CTS tests (Failed: 0/227984)Built with version <IP_ADDRESS>
Rhel 8.2, Gfx10
Passed: 31680/56996 (55.6%)
Failed: 0/56996 (0.0%)
Not Supported: 25316/56996 (44.4%)

Ubuntu 18.04, Gfx9
Passed: 31677/56996 (55.6%)
Failed: 0/56996 (0.0%)
Not Supported: 25319/56996 (44.4%)

Ubuntu 20.04, Gfx8
Passed: 32051/56996 (56.2%)
Failed: 0/56996 (0.0%)
Not Supported: 24945/56996 (43.8%)

Ubuntu 20.04, Gfx103
Passed: 34932/56996 (61.3%)
Failed: 0/56996 (0.0%)
Not Supported: 22064/56996 (38.7%)

Test summary for commit 7a9c336bc442e00acd0fb914f25a9249e666dcb7
Driver commits used in build
CWPACK: amd-master 7387247eb9889ddcabbc1053b9c2052e253b088e
METROHASH: amd-master 3c566dd9cda44ca7fd97659e0b53ac953f9037d2
LLPC: dev 72afd4ae01e3f5c043dbd2dfac57833408ac3f6b
SPVGEN: dev bb3da8bc00bcf4373d563bf9b3c74a80a8b28fe6
XGL: dev 5dbd470d8c1cbf8ee5d9a1204ba23a2fbf88a242
LLVM-PROJECT: amd-gfx-gpuopen-dev 01f326c1e88cbf80e50a631ea0ce61a57152a7c0

CTS tests (Failed: 0/227984)Built with version <IP_ADDRESS>
Rhel 8.2, Gfx10
Passed: 31680/56996 (55.6%)
Failed: 0/56996 (0.0%)
Not Supported: 25316/56996 (44.4%)

Ubuntu 18.04, Gfx9
Passed: 31677/56996 (55.6%)
Failed: 0/56996 (0.0%)
Not Supported: 25319/56996 (44.4%)

Ubuntu 20.04, Gfx8
Passed: 32051/56996 (56.2%)
Failed: 0/56996 (0.0%)
Not Supported: 24945/56996 (43.8%)

Ubuntu 20.04, Gfx103
Passed: 34932/56996 (61.3%)
Failed: 0/56996 (0.0%)
Not Supported: 22064/56996 (38.7%)

Rebased on dev, changed the problematic PAL_ALERT to PAL_ALERT_ALWAYS_MSG, and moved PAL_HAS_BUILTIN definition to palUtil.h.

@JakeMerdichAMD  can you approve it? then I can merge it.

Any update on this?

I’m not quite sure why this is happening, but this patch breaks ignoring assertions with HardAssert,0 in amdVulkanSettings.cfg in debug mode.

@Flakebi, that's rather critical, I'll dig into that ASAP.

So, found the issue. Pop quiz: what is wrong with PAL_ASSERT(*pUnderrun++ == UnderrunSentinel); when you use the argument for both the conditional and PAL_ANALYSIS_ASSUME (which still runs the code and does any side effects on linux)?
Expect a hotfix that only evaluates the argument once shortly.


Sidebars glitching weirdly

weird graphic glitches on the side.
checkout out another thread where it says something with parameters fixed but i dunno how to do that -- https://github.com/runelite/runelite/issues/1449

win 10
gtx 980

Just follow the linked wiki page: https://github.com/runelite/runelite/wiki/Disable-Hardware-Acceleration


How to use self prepared raster？

The instruction says：“You may also instantiate a Raster using a local directory of tiles, given that the tiles are in the correct {X_tile}_{Y_tile}.{file_format} xyz format. In this case you must specify the zoom of the local tiles.
raster = Raster(
location=location,
name='central_park',
input_dir='<path/to/tiles/z/y/x.png>',
zoom=19,
)
raster”
The format suggested in the first sentence seems different from your example code (X_Y.png, vs 19\Y\X.png), would you please clarify the correct folder structure of self-prepared PNG rasters? Then how to call it in the command?
Thanks a lot for your help!

The reason for this discrepancy as you have noticed is that the first line is outdated documentation. The folder structure is arbitrary, it parses the X and Y from the path defined so the user need not restructure their directories to use Tile2Net. So you would literally type out something like input_dir='/home/twoyoung91/central_park/18/x__y.png' and it selects all the files in that directory using that format.
If you are asking about the commandline, you would pass the same string to the --input option in the commandline. You can see options using  python -m tile2net generate --help:
 --input INPUT_DIR, -i INPUT_DIR
 The path to the input directory, implicating the format of the files, containing the xtile, ytile, and extension, and possibly containing the zoom level, e.g. path/to/tiles/z/x/y.ext or path/to/tiles/x_y.ext (default: -)

Thanks for your interest in Tile2Net and for pointing this out.

The reason for this discrepancy as you have noticed is that the first line is outdated documentation. The folder structure is arbitrary, it parses the X and Y from the path defined so the user need not restructure their directories to use Tile2Net. So you would literally type out something like input_dir='/home/twoyoung91/central_park/18/x__y.png' and it selects all the files in that directory using that format.
If you are asking about the commandline, you would pass the same string to the --input option in the commandline. You can see options using python -m tile2net generate --help:
 --input INPUT_DIR, -i INPUT_DIR
 The path to the input directory, implicating the format of the files, containing the xtile, ytile, and extension, and possibly containing the zoom level, e.g. path/to/tiles/z/x/y.ext or path/to/tiles/x_y.ext (default: -)

Thanks for your interest in Tile2Net and for pointing this out.

Thanks for your help, I was able to make predictions on my custom raster dataset.
However, the model does not work well in suburban areas of Southern states, I think that is due to the training set you used being mostly from urban areas of high-density cities.
If I wish to re-train the model, is there an API I can use in your package now?

@twoyoung91
Yes! As of now the model performs best in the areas with urban fabric similar to the highly dense urbanized areas it was trained on. However, we are extending the model both in terms of number of classes and variation of the built environment to to be able to generalize better for suburban and lower-density areas.
The training code is not available publicly yet, but once the new model is trained, we will share the weights and update our documentation.

Since your issue has been resolved, I am closing this thread. Thank you for bringing it to our attention, and feel free to open a new issue if you encounter any more problems or have further questions.


[✨ Feature] UnRaid build

Describe the feature you would like to see
I would like to see this on the UnRaid community apps so I could easily use it on my server build.
Priority
Medium (Would be very useful)

@jeryd  this is already talked about in https://github.com/ajnart/homarr/discussions/58
Maybe you can provide more info about what I need to fill out to apply/where to. I don't really have the time to do research at the moment. (Like a bullet point list of what I need to do to implement the unraid community app would help me A LOT)

✏ Duplicate of #58


Is nvidia-docker supported on Jetson?

I ran ./build_docker_container.sh on my Jetson Xavier and received the error:
Step 5/9 : RUN apt-get update && apt-get install -y --no-install-recommends         build-essential         cmake         git         wget         sudo         python         libcudnn7=$CUDNN_VERSION-1+cuda10.0         libcudnn7-dev=$CUDNN_VERSION-1+cuda10.0 &&     apt-mark hold libcudnn7 &&     rm -rf /var/lib/apt/lists/*
---> Running in 92c8d8acab95
standard_init_linux.go:211: exec user process caused "exec format error"
The command '/bin/sh -c apt-get update && apt-get install -y --no-install-recommends         build-essential         cmake         git         wget         sudo         python         libcudnn7=$CUDNN_VERSION-1+cuda10.0         libcudnn7-dev=$CUDNN_VERSION-1+cuda10.0 &&     apt-mark hold libcudnn7 &&     rm -rf /var/lib/apt/lists/*' returned a non-zero code: 1

It could be due to your target runtime platform as explained here

@enesozi Yes. Thank you.

@DennisFaucher Dennis, was there a solution or workaround you found?

No. There is no CUDA for Jetson. Need to build models off-machine.


File upload option

Add the ability to upload a JSON file on the issue and verify pages containing the credentials to be signed or verified. Generally model things off of the web verifier file uploader, allow both file select and and drag + drop. Check that file is JSON?

Additional specifications:

Allow only .json files
Upon upload, insert contents of the file into the credential editor

Ignoring the cosmetic differences in design between this render and the current website, this is my initial thought for how to integrate the file upload option into the existing design.
Issue page:

### Verify Page

### Verify page narrow

I'd go either above or below the paste field. On VerifierPlus we did below,
see https://web-verifier-plus.vercel.app. Probably reduce the height of the
paste field a few lines.
Brandon
On Thu, Oct 6, 2022 at 6:02 PM fields37 @.***> wrote:

Ignoring the cosmetic differences in design between this render and the
current website, this is my initial thought for how to integrate the file
upload option into the existing design.
Issue page:
[image: Screen Shot 2022-10-06 at 5 51 45 PM]
https://user-images.githubusercontent.com/20584379/194425748-333a6e4c-7a42-4031-997a-25a3332fb481.png
Verify Page
[image: Screen Shot 2022-10-06 at 5 51 53 PM]
https://user-images.githubusercontent.com/20584379/194425851-8948b210-f9b2-47f7-8378-74e706149418.png
Verify page narrow
[image: Screen Shot 2022-10-06 at 5 52 13 PM]
https://user-images.githubusercontent.com/20584379/194425913-1e6b49d4-d7bc-4d49-878e-e103e09264b6.png
—
Reply to this email directly, view it on GitHub
https://github.com/digitalcredentials/sandbox/issues/62#issuecomment-1270739126,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFXVRXCQ23LCEAEYRFOGV3WB5DIFANCNFSM6AAAAAAQ7AMMZQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Yep, planning to switch to below text box instead of above

First rev implemented in #66


fix: update to eye v9.6.2

fix: update to eye v9.6.2

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

npm package (@latest dist-tag)
GitHub release
v12.3.2

Your semantic-release bot :package::rocket:


Update device-discovery-faq.md

@JohanFreelancer9 - kindly do the copy editor review for this PR. Thanks

@mjcaparas Please merge this PR. Thanks


change localPVprovisionerName openebs.io/local

Describe the problem/challenge you have
I want to change localPVprovisionerName by some config or env. Does any one have any ideas ?

This is not configurable at the moment. You could change the string variable value here and build the container for your use-case make docker.buildx.provisioner-localpv.
It would be easy to make this configurable. Closing this issue. Please reopen this if that's something you think would be worthwhile. Please share your use-case, if that is the case.


How to avoid the simulation of particular lines of a protocol

I have modified a protocol of the OT-2 robot in which I want to add a timer to count the minutes passed since the beginning of an incubation. Here is how I implemented it in python code:
from opentrons import protocol_api, types
import time

metadata = {'apiLevel': '2.4'}

def run(protocol_context):

    incubation_time = 5
    minutes_passed = 0

    while minutes_passed < incubation_time:
        time.sleep(2) # When I change the 2 to 60 it takes too long to simulate the entire protocol
        minutes_passed += 1
        protocol_context.comment('{} minutes out of {} minutes'.format(minutes_passed, incubation_time))

So, when I set the argument of time.sleep() as 2 the simulation runs fast because it only takes 2 seconds to go further in the loop. However, when I change the argument from 2 to 60 (because what I want is to count the number of minutes passed since the beginning of the incubation) the simulation slows down a lot.
How can I avoid the simulation of the while loop? I think that since I know that piece of code is working, it is not important if the robot simulates it before start the protocol every time
Thanks in advance!

Hi @multiplex-bio, I have some good news and I have some bad news. Starting with the bad news:
The message passed to protocol_context.comment will only ever display the message that was calculated during simulation. It will not be updated during the actual run. This is due to fundamental architectural limitations in the protocol run system, but we're working on fixing this!
The good news: there are a few simple ways to bypass stuff during simulation. For the specific use case of "I want to wait an amount of time," you should use protocol_context.delay(...) method rather than time.sleep. Otherwise, for a general case solution, you can guard blocks of code using protocol_context.is_simulating():
from opentrons.protocol_api import ProtocolContext

def run(protocol_context: ProtocolContext) -> None:
    # ...

    # delay for one minute
    protocol_context.delay(seconds=60, msg="Delaying for 60 seconds")

    # ...

    # do something complex only during the actual run
    if not protocol_context.is_simulating():
        do_something_complex()

    # ...


config: Explicily make consoleSize unspecified if terminal is false or unset

The old language is from #563, where nobody commented on the “if attached” wording.  But reading the old line now, it's not clear to me what consoleSize means when terminal is not true.
This commit explicitly declares consoleSize unspecified in that condition, so runtimes are free to do what they want short of erroring out.  I considered making the property undefined or requiring it to be unset, but those seemed too strict given our permissive “MUST ignore unknown properties” extensibility requirement.

I don't think the old language is clear enough for me to make a call about whether this is a breaking change (and therefore should happen before 1.0) or not.  If maintainers feel like the old language is clear enough to make that call, they can probably just close this with a “this is already clear enough” comment (although I'd personally like them to also include a longer description about what the old language means, since it's not clear to me).
If maintainers agree that the old language is unclear, then I think we want to land something to clear this up before 1.0, whether it's this PR or a maintainer-authored PR.

Rebased around #846 with f4255fb → 29074b4.

LGTM

LGTM


Add Fugue support (Phase 1)

Fugue is an abstraction for distributed and local computing frameworks such as Spark Dask, Ray, Duckdb and Polars. For datacompy, fugue can elegantly scale the core Compare class to different distributed backends.
Is Phase 1, we only implemented is_match function. In Phase 2, we will enable report.
Notice, is_match will compare unordered data, meaning that, df1, df2 without the same order can still match. In distributed systems, the concept of order doesn't natively exist, so that is why is_match doesn't require orders.
Here are a few examples to use is_match
import fugue.api as fa
from datacompy import is_match

is_match(pdf1, pdf2, join_columns="a")  # defaults to Compare class
is_match(pdf1, pdf2, join_columns="a", parallelism=1)  # force to use Fugue, but the backend is still pandas

is_match(spark_df1, spark_df2, join_columns="a") # compare spark dataframes using spark
is_match(spark_df1, pdf2, join_columns="a") # compare spark dataframe with pandas dataframe using spark
is_match(pdf1, spark_df2, join_columns="a") # compare spark dataframe with pandas dataframe using spark

with fa.engine_context(spark_session):
    is_match(pdf1, pdf2, join_columns="a")  # force to use spark to compare dataframes

is_match(ray_df1, ray_df2, join_columns="a") # compare ray dataset using ray
is_match(ray_df1, pdf2, join_columns="a") # compare ray dataset with pandas dataframe using ray
is_match(pdf1, ray_df2, join_columns="a") # compare ray dataset with pandas dataframe using ray

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

@kvnkho @fdosani

@goodwanghan
Just poking around with the code base. If I do something like the following. Basically comparing 2 dataframes which are just sorted backwards it returns different results which from reading the code makes sense.
import pandas as pd
import numpy as np
from datacompy import is_match

df1 = pd.DataFrame(np.random.randint(0, 100, size=(10000, 2)), columns=["b", "c"])
df1.reset_index(inplace=True)
df1.columns = ["a", "b", "c"]
df2 = df1.copy()
df2["b"] = df2["b"] + 0.1
df2.sort_index(ascending=False, inplace=True)

In [55]: is_match(df1, df2, join_columns="a", parallelism=1, abs_tol=0.2)
Out[55]: False

In [56]: is_match(df1, df2, join_columns="a", abs_tol=0.2)
Out[56]: True

Fully admit being new to Fugue I might not totally understand the implementation so please excuse my ignorance or dumb questions.
So the splitting up into groups happens here. So lets say I have 3 "buckets" those 3 may or may not have the corresponding row from the other dataframe.
Based on what @kvnkho mentioned at PyData these buckets are what is run on say Spark correct in isolation?
I'm wondering if there is a way to join things before bucketing (this might not be simple or scaleable) hence we really want to join things to compare vs just comparing rows.

is_match(df1, df2, join_columns="a", parallelism=1, abs_tol=0.2)

Ah, this is because they don't match on schema. df1.b is integer df2.b is float. Fugue has more strict schema comparison. But of course, if you want to loose this, we can hand special logic to handle it.
if you add
df1["b"]=df1["b"].astype(float)

you will see the compare succeeds

That is great. Ok so maybe my understanding was off here. The _comp which happens does happen on the entire dataset then correct? I thought maybe pieces are being segmented off and that if things were not ordered properly there would be a chance the join wouldn't take place.

The _comp function happens on each partition that will be handled by a worker.
Each partition will contain multiple groups of data defined by joined_columns
For example
df1
a b
x 1
x 2
y 1
y 2
z 1
df2
a b
x 1
x 2
y 1
y 2
z 1
z 2
if join_columns is a, then the data could be partitioned as group 1 (containing x y), and group 2(containing z)
Then on the remote worker, for each partition, the subdataframes will be reconstructed and compared using _comp

@goodwanghan
Just poking around with the code base. If I do something like the following. Basically comparing 2 dataframes which are just sorted backwards it returns different results which from reading the code makes sense.
import pandas as pd
import numpy as np
from datacompy import is_match

df1 = pd.DataFrame(np.random.randint(0, 100, size=(10000, 2)), columns=["b", "c"])
df1.reset_index(inplace=True)
df1.columns = ["a", "b", "c"]
df2 = df1.copy()
df2["b"] = df2["b"] + 0.1
df2.sort_index(ascending=False, inplace=True)

In [55]: is_match(df1, df2, join_columns="a", parallelism=1, abs_tol=0.2)
Out[55]: False

In [56]: is_match(df1, df2, join_columns="a", abs_tol=0.2)
Out[56]: True

Fully admit being new to Fugue I might not totally understand the implementation so please excuse my ignorance or dumb questions.
So the splitting up into groups happens here. So lets say I have 3 "buckets" those 3 may or may not have the corresponding row from the other dataframe.
Based on what @kvnkho mentioned at PyData these buckets are what is run on say Spark correct in isolation? I'm wondering if there is a way to join things before bucketing (this might not be simple or scaleable) hence we really want to join things to compare vs just comparing rows.

In this case, bucket=2
You asked about join, we didn't directly use join here, instead we use map->union->groupmap, which is similar to join.

You asked about join, we didn't directly use join here, instead we use map->union->groupmap, which is similar to join.

Got it! Yup this is making sense now. Thanks for the explanation.
Are you OK if I push a couple of small tweaks? Nothing logic wise. This all makes sense now.
More just naming and organization.

You asked about join, we didn't directly use join here, instead we use map->union->groupmap, which is similar to join.

Got it! Yup this is making sense now. Thanks for the explanation.
Are you OK if I push a couple of small tweaks? Nothing logic wise. This all makes sense now. More just naming, organization, and docs.
I guess maybe the other thing we should discuss is the strict vs loose comparison we discussed above. In the core.py it happens here in columns_equal

Please feel free to make changes. Yeah we can also implement columns_equal, that is straightforward.

is_match(df1, df2, join_columns="a", parallelism=1, abs_tol=0.2)

Ah, this is because they don't match on schema. df1.b is integer df2.b is float. Fugue has more strict schema comparison. But of course, if you want to loose this, we can hand special logic to handle it.
if you add
df1["b"]=df1["b"].astype(float)

you will see the compare succeeds

Sorry just one thing about this strict schema you noted. Shouldn't it work as is, without the astype?
When Compare is called it should run the internal logic in columns_equal. As it does with just native pandas dataframes. I guess I'm missing what fugue is doing in the background with the schema and types.

I did a test on 100gb data. It can finish in 7 min with 256 cpus.
The test is that I loaded two spark dataframes from the same file. is_match returns true, but SparkCompare reported difference.


Add bcpkix-jdk15on runtimeOnly dependency to read keys with bouncycastle

Signed-off-by: Craig Perkins<EMAIL_ADDRESS>Description
Adds bcpkix-jdk15on to runtime classpath to make netty use bouncycastle when reading key files. Netty has fallback logic to use existing PEMReader if bouncycastle fails to read the pemfile.

Category (Enhancement, New feature, Bug fix, Test fix, Refactoring, Maintenance, Documentation)

Enhancement
Issues Resolved

Resolves https://github.com/opensearch-project/security/issues/1573

Testing
Added unit test to test PKCS#1 format at unit test time.
Check List

[X] New functionality includes testing
[ ] New functionality has been documented
[X] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

This was definitely a Good first issue, I got a contribution to netty out of it :). It was really great to see open-source community members step up and patch bugs I introduced into netty to make the software more robust. Open-Source is great.

Codecov Report

Merging #2191 (64c22a1) into main (9f9fddc) will decrease coverage by 0.03%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##               main    #2191      +/-   ##
============================================
- Coverage     61.14%   61.11%   -0.04%
+ Complexity     3266     3263       -3
============================================
  Files           259      259
  Lines         18335    18334       -1
  Branches       3248     3248
============================================
- Hits          11211    11204       -7
- Misses         5535     5538       +3
- Partials       1589     1592       +3

Impacted Files
Coverage Δ

...urity/ssl/transport/SecuritySSLNettyTransport.java
62.36% <0.00%> (-4.31%)
:arrow_down:

...earch/security/ssl/util/SSLConnectionTestUtil.java
93.18% <0.00%> (-2.28%)
:arrow_down:

...ecurity/ssl/rest/SecuritySSLReloadCertsAction.java
84.78% <0.00%> (-0.33%)
:arrow_down:

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


eye tracking: add option for individual cells

Add individual cells plotting and correlation graph (including the pcc) from which the whole- experiment plots are mad

Here is a schematic of the graph:

Graph is complete and running on Subiculum. Needs to be properly vetted by Sepi before closing this issue.

for single cells, can we please add the cluster (and channel ID) of each cell, similar to rotation analysis?

Cluster/Channel ID has been added to function and updated on Subiculum.


Provide instruction on how to run the docker image

This is a first proposal of addition to README to help users run this image. At some point, it'll may be useful to also provide a sample docker-compose.yml.
Ping @miguelpeixe and @ball6847 if you want to review it.

Looks good to me. This will be very helpful for new users.


add changelog entries to release body

Add CHANGELOG release content to the Github release body.

Tested with https://github.com/giantswarm/prometheus-meta-operator/pull/784 :heavy_check_mark:

https://github.com/giantswarm/prometheus-meta-operator/runs/4584741757?check_suite_focus=true


Running VSCode through a VPN

I really like to run VSCode on a remote server which cannot be accessed through the regular internet. I have to stay connected to the intra-network to access the same. But this was fixed through a VPN that I run on OpenVPN. But this tunnels my whole network flow through the VPN when I want just the VSCode traffic to get tunneled. It would really be great if VSCode could tunnel its traffic through a OpenVPN configuration file hence not disturbing other traffic(like web browsers).
Thanks

This seems like something you should configure in OpenVPN and would be a huge undertaking to integrate into VSCode. If you add these lines to your OpenVPN config, you should be able to route only the specific subnet you want through your VPN, and everything else is left untouched.
route-nopull
route <IP_ADDRESS> <IP_ADDRESS>

First IP is the subnet you want to have pushed through the VPN and the second is subnet mask which controls how much of the subnet you want to use. <IP_ADDRESS> is a single IP, while <IP_ADDRESS> is <IP_ADDRESS> to <IP_ADDRESS>

Nicee!! I did poke around some third party softwares but never found this way. I don't seem to understand what I should be doing, bit I can figure this out since you have me a direction. Really appreciate it.

No problem, simply put, find out the IP address of the server and then add this to your config.
route-nopull
route [The server ip address goes here] <IP_ADDRESS>

Then only your server's IP address will be using the VPN, everything goes through the internet as normal. If you think this solves the issues, don't forget to go ahead and close it!

Damn!! I can't believe the solution was this simple!! It totally worked!! Thank You so much!! But would you mind telling me about <IP_ADDRESS> IP? What is it? Is it something only VSCode uses?

Sure! It actually has nothing to do with VSCode, or even OpenVPN for that matter. It's called the Subnet Mask. Without dropping a full blown explanation of networking, its basically describing how many IP addresses should be directed toward the VPN. For example, the subnet mask I gave you <IP_ADDRESS> makes it such that there is only 1 IP address is routed through the VPN. If you were to change the numbers of that subnet mask to something else, say <IP_ADDRESS>, it would then route not only your servers IP address, but other IP addresses around it. If your server's IP address was <IP_ADDRESS> and you wanted to apply the range with the mask <IP_ADDRESS> you would actually pick up everything from <IP_ADDRESS> to <IP_ADDRESS>.  You can actually see the subnet mask delivered in a different way. If I were to say <IP_ADDRESS>/24 (CIDR notation), it would represent the same subnet as the mask <IP_ADDRESS>.

So we are basically restricting the IP address routing the VPN to just one? In that case, how can we assure that that "one" IP will only belong to VSCode. After some poking, I also noticed that I am able to access the remote server through CMD too. How does OpenVPN know that "one" IP to allow. How do I know if traffic from my chrome browser is not getting routed through the VPN?

I think you might be using the wrong wording here. Do you have a remote server that requires the VPN to be accessed, or do you want all of VSCodes traffic to use the VPN and no other application? If its the latter, I can direct you here but get ready cause it's not simple. If your server is running on a specific public IP, no other traffic is going to use that IP because its unique to your server.

Okay, So the lab I work at offers a high computation server. But to access that server we need to stay connected to the labs' network or at least the campus's network. So to access the server from outside(for example my home network), the college has a OpenVPN setup which can be used to access the network from outside. But when I use the college's network many of the sites are restricted(For ovbious reasons). So when I am at home I want to access the server hence connecting to the VPN setup when then restricts me to many sites.
But mainly I access the remote server through VSCode itself. If I could just run VSCode(and CMD if possible) through a VPN and all other traffic(Like Chrome) through my home wifi I could be accessing  the remote server and the sites I need at the same time.

The first comment I left, if supplied with the up address of the server and added to the openvpn config file, will do just as you say. All traffic directed toward the lab computer will be on the VPN and all other traffic will not.


Fixes for OrthographicCameraController Movement

name: 'Pull Request: New issue'
about: Fixes the Camera Movement
title: Fixes for OrthographicCameraController Movement
labels: ''
assignees: ''

Describe the issue
The current way the camera moves is faulty when the camera is rotated. It still moves in the directions parallel to the world-space x- and y-axis rather than moving in the "left/right" (to the left/right of the window) or in the "up" direction (to the top of the window) of the camera. This results in it moving diagonally when the camera is rotated.
Expected behavior
Moving the camera should always move the view horizontally or vertically in the window and never diagonally (when only one key is held).
Proposed fix (Make sure you've read on how to contribute to Hazel)
I used maths to make it move in the right direction. Not sure how much I need to explain but basically you rotate the base movement vectors by m_CameraRotation and then add those instead of just increasing the x and y values of position normally. Let me know if more detail/explanation is required.
I limited m_CameraRotation to be within the range (-180, 180] because I think (not sure where I read this) that the C++ trig functions becomes less accurate at large degrees.
I also added a comment to clarify that m_CameraRotation is in degrees.
PR impact (Make sure to add closing keywords)
List of related issues/PRs this will solve:

Impact
Issue/PR

Other issues this solves
None

Other PRs this solves
None

Thanks for implementing the fix for the issue I mentioned on discord. I was gonna mention that my original math using just tan on y axis and 1 on x axis was wrong as it would translate more than intended but seems like you figured that out.


pmatch typescript type doesn't return UtilityTermOf

this is something to look in the PMatchOptions type definition

Issie addressed with version 0.2.0


Align effect.filterOrElse with either.filterOrElse

Is your feature request related to a problem? Please describe.
filterOrElse seems to have a different logic for Effect and Managed than it does for Either. It would be less confusing if that was not the case.
Describe the solution you'd like
When the predicate returns true I would expect to end up in the successful rather than the unsuccessful case.
In core/src/Effect/index.ts I would like to see:
export const filterOrElse: {
  <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <S, R>(
    ma: Effect<S, R, E, A>
  ) => Effect<S, R, E, B>
  <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <S, R>(
    ma: Effect<S, R, E, A>
  ) => Effect<S, R, E, A>
} = <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E) => <S, R>(
  ma: Effect<S, R, E, A>
): Effect<S, R, E, A> =>
  chain_(ma, (a) => (predicate(a) ? completed(done(a)) : completed(raise(onFalse(a)))))
// instead of chain_(ma, (a) => (predicate(a) ? completed(raise(onFalse(a))) : completed(done(a))))

and in core/src/Managed/index.ts:
export const filterOrElse: {
  <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <S, R>(
    ma: Managed<S, R, E, A>
  ) => Managed<S, R, E, B>
  <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <S, R>(
    ma: Managed<S, R, E, A>
  ) => Managed<S, R, E, A>
} = <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E) => <S, R>(
  ma: Managed<S, R, E, A>
): Managed<S, R, E, A> =>
  chain_(ma, (a) =>
    predicate(a)
      ? encaseEffect(T.completed(done(a)))
      : encaseEffect(T.completed(raise(onFalse(a))))
  )

Compare to core/src/Either/index.ts:
export const filterOrElse: {
  <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <E2>(
    ma: Either<E2, A>
  ) => Either<E | E2, B>
  <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <E2>(
    ma: Either<E2, A>
  ) => Either<E | E2, A>
} = <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E) => (
  ma: Either<E, A>
): Either<E, A> => chain_(ma, (a) => (predicate(a) ? right(a) : left(onFalse(a))))

Describe alternatives you've considered
I considered the possibility that my brain was overwhelmed with Booleans as it sometimes does and that this was a non-issue after all. Apart from that, nothing came to mind.
Additional context
This led me to leave out filterOrElse in todays presentation of Effect (using chain instead). I think that might have been a good thing insofar as keeping information overload down...

Opened a pull request to solve this: #274

@jsmacka thanks a lot for this, definitely a mistake!

Phew, thank you - that soothes my mind ^^

published in https://github.com/Matechs-Garage/matechs-effect/commit/a14e578b9cdd3f187524e61799ffa9e85db016c8


Support for Transit Backend?

Looks like, there is no support for "transit" backend yet. Is that true?

No, that's not true. Take a look at the API: VaultTransitOperations:
VaultOperations vaultOperations = …
VaultTransitOperations vaultTransitOperations = vaultOperations.opsForTransit();

vaultTransitOperations.createKey(…);
vaultTransitOperations.encrypt(…);
vaultTransitOperations.decrypt(…);

What's your expectation regarding a configuration of transit in Spring Cloud Vault Config?

Thanks. I want to perform encrypt/decrypt operations. Not sure, how to configure Spring Cloud Vault to do that?

There's not much to do beyond configuring Spring Cloud Vault for Vault access. If your token/role is authorized for transit and you have keys set up, then you're all set to use transit via VaultTransitOperations. See also VaultTransitOperationsIntegrationTest for a trivial example using VaultTransitOperations.

@mp911de - The org.springframework.vault.core.VaultTemplate should initialize the transit mount point from a configuration (Eg - spring.cloud.vault.transit.backend). This ties in with the vault cf connector which should configure this property by reading the VCAP env variables.

@alwaysastudent There's no bean for VaultTransitOperations.
Use
VaultOperations ops = …

List<ServiceInfo> serviceInfos = cloudConfig.cloud().getServiceInfos(VaultServiceInfo.class);
VaultServiceInfo vaultService = (VaultServiceInfo) serviceInfos.get(0);

VaultTransitOperations transit = ops.opsForTransit(vaultService.getBackends().get("transit"));

to access the configured transit backend when using https://github.com/pivotal-cf/spring-cloud-vault-connector.

I mean you have a bean for org.springframework.vault.core.VaultOperations which is VaultTemplate. What I meant was the "transit" path should be configurable and perhaps not be hardcoded like it is on here https://github.com/spring-projects/spring-vault/blob/1.0.1.RELEASE/spring-vault-core/src/main/java/org/springframework/vault/core/VaultTemplate.java#L183
public class VaultTemplate implements InitializingBean, VaultOperations, DisposableBean {
....
	@Override
	public VaultTransitOperations opsForTransit() {
		return opsForTransit("transit");
	}

	@Override
	public VaultTransitOperations opsForTransit(String path) {
		return new VaultTransitTemplate(this, path);
	}
....
}

Gotcha! Care to file a new ticket? The PKI operations have as well a pre-configured path.

Sure, I will file a ticket now.

btw, in your above code
List<ServiceInfo> serviceInfos = cloudConfig.cloud().getServiceInfos(VaultServiceInfo.class);

How do you wire in the cloudConfig ? Can you please give an idea what that object is ?


How to use HTML Graphic in Grafana version 6.2

please help me to use HTML Graphic in Graphana version 6.2

I'm sorry, but this plugin only supports v8+ because it needs some of the functionalities from Grafana v8.

So, how can i update version of grafana in webaccess?

What do you mean by webaccess? If it is hosted somewhere, you can update the Grafana version there.
Here's a guide from Grafana on how to upgrade to version 10.4 https://grafana.com/docs/grafana/latest/upgrade-guide/upgrade-v10.4/.
It might be easier to ask at https://community.grafana.com/ or there might be an answer there already.

hmmm, when i installing webaccess so grafana will be automatic to
configure in it, but version default is V6.2 and i can't update version of
grafana it Webaccess Scada!
Vào Th 3, 2 thg 4, 2024 vào lúc 13:38 Ole Kristian (Zee) <
@.***> đã viết:

What do you mean by webaccess? If it is hosted somewhere, you can update
the Grafana version there.
Here's a guide from Grafana on how to upgrade to version 10.4
https://grafana.com/docs/grafana/latest/upgrade-guide/upgrade-v10.4/.
It might be easier to ask at https://community.grafana.com/ or there
might be an answer there already.
—
Reply to this email directly, view it on GitHub
https://github.com/gapitio/gapit-htmlgraphics-panel/issues/182#issuecomment-2031186094,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AXYHLZF2DM3PTCUIXIQBPQLY3JG4RAVCNFSM6AAAAABFSVJQPWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMZRGE4DMMBZGQ
.
You are receiving this because you authored the thread.Message ID:
@.***>


Deploy under the @finos namespace and update source repo refences

I see the project still releases without the @finos namespace, which is customary for projects under FINOS. Minor issue, but wondering if it makes sense to align.
Also, I still see the Morgan Stanley repo referenced in the NPM release page, and you might want to update that to the FINOS repo.
Thanks!
/cc @maoo

Thanks for raising these issues. We'll be looking into fixing these in the next couple of weeks.


Update docs for generating a new SSH key for windows

I was trying to add a ssh key to my github using windows 10, and i was uncapable to procceed.
And i found that the commands $ eval $(ssh-agent -s) don't work on windows, but  $ evalssh-agent -s  works fine

Why:

What's being changed:

Check off the following:

[ ] All of the tests are passing.
[ ] I have reviewed my changes in staging. (look for the deploy-to-heroku link in your pull request, then click View deployment)
[ ] For content changes, I have reviewed the localization checklist
[ ] For content changes, I have reviewed the Content style guide for GitHub Docs.

@williamtorres1 Thanks so much for opening a PR! I'll get this triaged for review ⚡

In what windows shell does this work?

In what windows shell does this work?

It should work in a Git Bash shell for Windows 🙂
In fact, both the $ eval $(ssh-agent -s) and $ eval `ssh-agent -s`   syntax work in my version, but the latter seems more universal (according to various comments on stackoverflow 😅).

I'm going to quickly close and re-open this PR to (hopefully) kick-start the staging deployment 🤞🏽

Thanks for the clarification! I missed that the instructions say "Open Git Bash" earlier. I would prefer a true Windows solution that doesn't require an emulated Linux, but this is still a meaningful change.


#10 Data should be stored in machine readable formats?

@naupaka brought this up in #30 and it's also mentioned in http://www.w3.org/TR/2015/WD-dwbp-20150224/#MachineReadableStandardizedFormat
It facilitates reproducibility and enables easier provenance.  It also makes creating API's easier and moving between database system easier.

This is important, for sure. Let's see how we integrate it with #34 (rule 4) so they similar but not identical.

I had the same thought, as @naupaka did point out that open != machine readable but they are quite closely related.  Thanks for taking this one on @fmichonneau

Was just reading through @PBarmby PR on rule 4 and was going to suggest adding in some text on machine readable aspect, but then saw this.  I wonder if having Rule 4 and Rule 10 sequential would make sense?

It would make sense to me to have this rule follow rule 4.
I think it would also make sense for this rule to be followed by rule 6 as there will be overlap in the machine readable aspect of the data and the metadata. I'm happy to defer this decision until the rules start taking shape.
I'm planning to have an outline for this rule ready by Sunday evening.

a draft for this rule is in the manuscript.


Fix various ImageDiff/SVG bugs

Replace #23310, Close #19733
And fix various UI problems, including regressions from #22959 #22950 and more.
SVG Detection
The old regexp may mismatch non-SVG files. This PR adds new tests for those cases.
UI Changes
Before

After

This should also not be detected as svg

This should also not be detected as svg

I agree, I just thought nobody would write such HTML code 🤣  so I just kept the regexp like before.
If you think it's a must, I can do more fine tune.

ps: you could even write:
<svg>...</svg>
<svg>...</svg>

that's still invalid, but it's difficult to be processed by regexp .... we can not make a 100% perfect solution by regexp.

This should also not be detected as svg

I agree, I just thought nobody would write such HTML code rofl so I just kept the regexp like before.
If you think it's a must, I can do more fine tune.

I mean you can rename this file to test.html and gitea will still shink it's svg. If you would make it so svg file should always end with </svg> that would fix it

ps: you could even write:

In this case you can count if data string contains only one occurance of <svg\s?

ps: you could even write:

In this case you can count if data string contains only one occurance of <svg\s?

I just think it's not necessary to make it so complex. Users could even write invalid SVG files to pass the checks, it's impossible to make it perfect without a standard SVG processor.

I just think it's not necessary to make it so complex. Users could even write invalid SVG files to pass the checks, it's impossible to make it perfect without a standard SVG processor.

At least, let's cover basic html false-positives such as text after </svg>text

See https://github.com/go-gitea/gitea/pull/23312/commits/be77cb87c526cca882ce401570716984f761cc7c, I think that's good enough.
Even if a user provide strange SVG-like contents, they could still switch to Source Code mode to see the diff and original code. The UI is flex enough.

See be77cb8, I think that's good enough.

Maybe last check for <svg count = 1? I thing that's the last one needed to detect html false-positives

https://stackoverflow.com/questions/5451135/embed-svg-in-svg
Or you can actually embed child svg in parent svg like this:
<svg>
    <g>
        <svg>
            ...
        </svg>
    </g>
</svg>

Do not try to use regexp tricks to parse HTML/XML .... 😁

Or you can actually embed child svg in parent svg like this

Oh my.. :exploding_head: Let's display it html, this is just weird. Html is far more used than nested svgs

I have confidence that these changes are good enough (for 99.99% ?). At least, the button of "display as code" is always there. If you have some real cases which need to be handled, let's discuss them in the future with real project code.

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@21a1d76). Click here to learn what that means.
The diff coverage is 100.00%.

:exclamation: Current head 68e1b6a differs from pull request most recent head b185941. Consider uploading reports for the commit b185941 to get more accurate results

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@           Coverage Diff           @@
##             main   #23312   +/-   ##
=======================================
  Coverage        ?   47.58%
=======================================
  Files           ?     1143
  Lines           ?   151176
  Branches        ?        0
=======================================
  Hits            ?    71937
  Misses          ?    70736
  Partials        ?     8503

Impacted Files
Coverage Δ

modules/typesniffer/typesniffer.go
93.61% <100.00%> (ø)

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

Why should we support that, if the user said themselves that it shouldn't be treated as an SVG?
Why this heuristics-based approach?

It's an enhanced http.DetectContentType, in some cases, you do not have the ext-name.

And after more thoughts, I removed the close tag checking. Because, the DetectContentType only checks some beginning bytes. In many cases, it won't see the close tag.
Let's just keep the old behavior as much as possible, and propose new solutions in the future with real project code.


[Draft] Fix pipeline

This PR seperates the service client's made in test_create_service_with_token to better understand where we are running into the pipeline errors

API change check
API changes are not detected in this pull request.


Error while trying to install better-sqlite3

I've been at this for ages and I still can't figure this out. No idea what's happening. Python and node-gyp are installed.
I'm on Ubuntu 18.04.5 LTS
root@vmi543932:~/Projects/scpdis# npm i
npm WARN deprecated<EMAIL_ADDRESS>this library is no longer supported
npm WARN deprecated<EMAIL_ADDRESS>request-promise has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142
npm WARN deprecated<EMAIL_ADDRESS>This package is no longer maintained. If you need more features in quick.db, you can try @devsnowflake/quick.db instead!
npm WARN deprecated<EMAIL_ADDRESS>Module is no longer maintained
npm WARN deprecated<EMAIL_ADDRESS>request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated<EMAIL_ADDRESS>Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future

><EMAIL_ADDRESS>install
> node-gyp rebuild

gyp info it worked if it ends with ok
gyp info using<EMAIL_ADDRESS>gyp info using<EMAIL_ADDRESS>| linux | x64
gyp info find Python using Python version 3.6.9 found at "/usr/bin/python3"
gyp info spawn /usr/bin/python3
gyp info spawn args [
gyp info spawn args   '/usr/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/root/Projects/scpdis/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/usr/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/root/.cache/node-gyp/15.11.0/include/node/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/root/.cache/node-gyp/15.11.0',
gyp info spawn args   '-Dnode_gyp_dir=/usr/lib/node_modules/npm/node_modules/node-gyp',
gyp info spawn args   '-Dnode_lib_file=/root/.cache/node-gyp/15.11.0/<(target_arch)/node.lib',
gyp info spawn args   '-Dmodule_root_dir=/root/Projects/scpdis',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.'
gyp info spawn args ]
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
make: Entering directory '/root/Projects/scpdis/build'
make: *** No rule to make target 'Release/obj.target/binding/src/binding.o', needed by 'Release/obj.target/binding.node'.   System Linux 4.15.0-136-generic
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /root/Projects/scpdis
gyp ERR! node -v v15.11.0
gyp ERR! node-gyp -v v7.1.2
gyp ERR! not ok
npm ERR! code 1
npm ERR! path /root/Projects/scpdis
npm ERR! command failed
npm ERR! command sh -c node-gyp rebuild

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2021-03-16T00_36_42_562Z-debug.log```

Maybe there's something in here https://github.com/nodejs/node-gyp/issues/1694

Hi,
I'm not sure if it's related because you did not provide the log output. But here is how I got it resolved under CentOS 7.8.
In the log, the error was coming from this:
g++: error: unrecognized command line option ‘-std=c++14’

CentOS 7.8
npm 7.6.3
node 14.16

g++ --version => 4.8.5

I upgraded g++ to the latest version (8.3.1), ran 'npm install' and it went fine.

Any updates on this issue?

Closing this due to inactivity.


UAV is don't following the waypoints in mission plane

Describe the bug
am using pixhawk v5 . pixhawk was integrated with standred plane but the plane was no rudder direction  ( airframe reference standre plane  ). all sensor calibration are done then after i flyed in manual and stabilize mode . then after  i  given way points  for mission plane so when am start the mission  then given  little bit  of  movement  the plane was started  then i throw plane but the plane was not going proper waypoint it going wrong direction . that's why am change  the mode into stabilize  mode . my point is why it's going wrong waypoints . rudder problem or parameters issue or anything else please help me
To Reproduce
Steps to reproduce the behavior:

all sensor calibrated gyro, mag ,airspeed ,comp. level, radio
intially fly with stabilized and manual mode
Uploaded mission (attach QGC mission file)
Took off
error is go the wrong waypoints

Expected behavior
A clear and concise description of what you expected to happen.
Log Files and Screenshots
https://review.px4.io/plot_app?log=e74f3807-eb85-4861-85f4-7ee5714dcf8f

We can't help like that. You would have to give some detail as laid out in the issue template and at least add a logfile.

https://review.px4.io/plot_app?log=e74f3807-eb85-4861-85f4-7ee5714dcf8f
Given waypoints
On Fri, Jun 14, 2019, 2:48 PM Julian Oes<EMAIL_ADDRESS>wrote:

Closed #12267 https://github.com/PX4/Firmware/issues/12267.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/PX4/Firmware/issues/12267?email_source=notifications&email_token=AL6WXQ7VQTJQQGIHXZMJDD3P2NO7RA5CNFSM4HYF7GJKYY3PNVWWK3TUL52HS4DFWZEXG43VMVCXMZLOORHG65DJMZUWGYLUNFXW5KTDN5WW2ZLOORPWSZGOR7KICMA#event-2413068592,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AL6WXQ33MFZKA3P4V4EUI7TP2NO7RANCNFSM4HYF7GJA
.

Could you add the mission plan file that you used in QGC if you have it?

Given mission plane waypoints
On Fri, Jun 14, 2019, 4:47 PM Julian Oes<EMAIL_ADDRESS>wrote:

Could you add the mission plan file that you used in QGC if you have it?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/PX4/Firmware/issues/12267?email_source=notifications&email_token=AL6WXQYUFGVFI4BRXJZNHVLP2N45TA5CNFSM4HYF7GJKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXWP2OI#issuecomment-502070585,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AL6WXQ6W66AVM7BAL6GK24DP2N45TANCNFSM4HYF7GJA
.

please give me reply any body
On Fri, Jun 14, 2019 at 6:26 PM Sampath kumar Chiruthoti <
<EMAIL_ADDRESS>wrote:

Given mission plane waypoints
On Fri, Jun 14, 2019, 4:47 PM Julian Oes<EMAIL_ADDRESS>wrote:

Could you add the mission plan file that you used in QGC if you have it?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/PX4/Firmware/issues/12267?email_source=notifications&email_token=AL6WXQYUFGVFI4BRXJZNHVLP2N45TA5CNFSM4HYF7GJKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXWP2OI#issuecomment-502070585,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AL6WXQ6W66AVM7BAL6GK24DP2N45TANCNFSM4HYF7GJA
.

You need to attach the mission plan file in Github. You have replied to the email, but that doesn't attach it in the web view - please use that.

sir ,thank for a given a reply
this the pic of mission plane
https://drive.google.com/file/d/1Zd9IMk7e07cHIWkC-oapEv4A8YTR9WOJ/view?usp=sharing
On Sat, Jun 15, 2019 at 2:10 PM Lorenz Meier<EMAIL_ADDRESS>wrote:

You need to attach the mission plan file in Github. You have replied to
the email, but that doesn't attach it in the web view - please use that.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/PX4/Firmware/issues/12267?email_source=notifications&email_token=AL6WXQ3WBCJUJFV6M323733P2STHTA5CNFSM4HYF7GJKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXYTMGA#issuecomment-502347288,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AL6WXQ7BY3MAK33DRDVYGIDP2STHTANCNFSM4HYF7GJA
.

this the pic of mission plane

I have no time to translate a picture to a .mission plan file from QGC, sorry. If you want an answer you need to make it very easy for us to reproduce, and that's by adding a .mission file.


grpcproxy: rework watcher organization

The single watcher / group watcher distinction limited and
complicated watcher coalescing more than necessary. Reworked:
Each server watcher is represented by a WatchBroadcast, each
client "Watcher" attaches to some WatchBroadcast. WatchBroadcasts
hold all WatchBroadcast instances for a range. WatchRanges holds
all WatchBroadcasts for the proxy.
WatchProxyStreams represent a grpc watch stream between the proxy and
a client. When a client requests a new watcher through its grpc stream,
the ProxyStream will allocate a Watcher and WatchRanges assigns it to
some WatchBroadcast based on its range.
Coalescing is done by WatchBroadcasts when it receives an update
notification from a WatchBroadcast.
Supports leader failure detection so watches on a bad member
can migrate to other members. Coincidentally, Fixes #6303.

This is better than what it was.

all fixed /cc @xiang90

LGTM


”Gherghești” is listed in the drop-down menu

Description:
"Gherghești" is listed in the drop-down menu alongside its corresponding county and commune, according to the law.
Precondition:
The website is up an running.

Step 1
Type "Gherghești" in the search bar.

Expected results
The location is listed in the drop-down menu as "Comuna Gherghești, VASLUI".


Render Manager is null causing osvrRenderManagerGetRenderInfoCollection failure

@JeroMiya
I'm using UE4.13 and I'm hitting an assert which I think is caused by mRenderManager being a nullptr after getting the latest commit (bfdb58d).
Callstack is as follows

AGame.exe!FOSVRCustomPresent::UpdateCachedRenderInfoCollection(void * & renderInfoCollection) Line 300	C++
AGame.exe!FOSVRCustomPresent::GetHeadPoseFromCachedRenderInfoCollection(bool renderThread, bool updateCache) Line 146	C++
AGame.exe!FOSVRHMD::UpdateHeadPose(bool renderThread, FQuat & lastHmdOrientation, FVector & lastHmdPosition, FQuat & hmdOrientation, FVector & hmdPosition) Line 229	C++
AGame.exe!FOSVRHMD::UpdatePlayerCamera(FQuat & CurrentOrientation, FVector & CurrentPosition) Line 366	C++
AGame.exe!UCameraComponent::GetCameraView(float DeltaTime, FMinimalViewInfo & DesiredView) Line 226	C++
AGame.exe!AActor::CalcCamera(float DeltaTime, FMinimalViewInfo & OutResult) Line 2301	C++
AGame.exe!APlayerCameraManager::UpdateViewTargetInternal(FTViewTarget & OutVT, float DeltaTime) Line 416	C++
AGame.exe!APlayerCameraManager::UpdateViewTarget(FTViewTarget & OutVT, float DeltaTime) Line 514	C++
AGame.exe!APlayerCameraManager::DoUpdateCamera(float DeltaTime) Line 858	C++
AGame.exe!APlayerCameraManager::UpdateCamera(float DeltaTime) Line 823	C++
AGame.exe!UWorld::Tick(ELevelTick TickType, float DeltaSeconds) Line 1334	C++
AGame.exe!UGameEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 1057	C++
AGame.exe!FEngineLoop::Tick() Line 2838	C++
AGame.exe!GuardedMain(const wchar_t * CmdLine, HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, int nCmdShow) Line 156	C++
AGame.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow) Line 191	C++
[External Code]

Thanks for reporting this @ndrmstevenh. I wasn't able to reproduce this myself, but I went ahead and added some null guards and additional diagnostics in this branch:
https://github.com/OSVR/OSVR-Unreal/tree/cached-ri-nullptr-fix
Could you do me a big favor and pull that version of the code to see if it fixes your problem? You may see some log messages about mRenderManager being null, but if you see it repeating the same messages every frame then this is not a full fix. If you could also post your unreal logs to this issue, that would be helpful. Thanks!

Hi JeroMiya, I grabbed those changes and that does indeed fix the problem. Which specific logs would you need? There doesn't appear to be anything in the logs folder.


Need dependency of "androidx.lifecycle:lifecycle-process"

Tracker uses ProcessLifecycleOwner().get()

Hi @joki123123
The last version of the tracker (1.4.2) reintroduced Android support libraries instead of AndroidX in order to avoid breaking changes for the users that haven't migrated to AndroidX yet.
The version 1.4.2 import ProcessLifecycleOwner from android.arch.lifecycle:extensions:1.1.1.
If you import to the last version but it still requires AndroidX is probably due to a dirty cache.
Would you mind cleaning the cache and let us know any outcome?

Build -> Clean Project
File -> Invalidate Caches / Restart...
It can require a few attempts.

If it doesn't work, please, could you provide some more info about device, stacktrace, Android version, tracker version and if it works correctly with old tracker versions (< 1.4.0)?


📝 add information about referencing vars from PowerShell to docs

It is not totally obvious how to reference variables passed to a shell that uses a PowerShell interpreter. The trick is you need to access them as environment variables. I added a brief blurb on how to do this to the docs.
I rebuilt the docs and reviewed my change visually:

The tip at the bottom is what I added.

Hey @mason3k, thanks for contributing 😄


Text and image block

Please always provide the GitHub issue(s) your PR is for, as well as test URLs where your change can be observed (before and after):
Fix #
Test URLs:

Before: https://main--edge-delivery-ubs-faweb-demo--netcentric.aem.page/text-and-image
After: https://8-text-image--edge-delivery-ubs-faweb-demo--netcentric.aem.page/text-and-image

[ ] Include vertical aligment


Always use full metadata hash for -C metadata.

This changes it so that cargo always uses the full metadata hash for -C metadata. This ensures that even if a unit isn't using -C extra-filename that the symbol hashing uses all the fields used in the other cases.
This fixes an issue on macOS where a combination of split-debuginfo and incremental caused the same .o filenames to be used, which caused corruption in the incremental cache (see issue for details).
Fixes #9353.

r? @Eh2406
(rust-highfive has picked a reviewer for you, use r? to override)

@bors: r+

:pushpin: Commit 256c43c2f146610d706ca5fef81c7369936b53a9 has been approved by alexcrichton

:hourglass: Testing commit 256c43c2f146610d706ca5fef81c7369936b53a9 with merge 52a0ca5cc3166f475b67d547694c248bc6ee1c72...

:sunny: Test successful - checks-actions
Approved by: alexcrichton
Pushing 52a0ca5cc3166f475b67d547694c248bc6ee1c72 to master...


Unable to find an active editor state

Hello @petyosi, sorry it's me again. After upgrading to 1.13.5 I am encountering a breaking change whenever I click on the new markdown editor. Not sure if this is next.js related, as we recently upgraded to next 14. Your help would be appreciated, I have eliminated several other elements (conditional rendering, custom plug ins) and the issue still persists.
Lexical.dev.js:7663 Uncaught Error: Unable to find an active editor state. State helpers or node methods can only be used synchronously during the callback of editor.update() or editorState.read().     at getActiveEditorState (Lexical.dev.js:7663:13)     at Object.$getRoot (Lexical.dev.js:802:26)     at $findMatchingParent (LexicalUtils.dev.js:497:27)     at eval (index.js:55:134)     at eval (realm.js:206:55)     at Set.forEach (<anonymous>)     at eval (realm.js:206:29)     at SetMap.use (realm.js:38:7)     at pubIn (realm.js:205:23)     at Object.pubKeys (realm.js:438:5)     at handleSelectionChange (index.js:127:9)     at eval (index.js:264:9)     at readEditorState (Lexical.dev.js:7749:12)     at EditorState.read (Lexical.dev.js:8873:12)     at eval (index.js:263:19)     at triggerListeners (Lexical.dev.js:7954:20)     at commitPendingUpdates (Lexical.dev.js:7914:3)     at eval (Lexical.dev.js:8150:9)

Should not be Next 14, I'm using it as well. Can you replicate the error by forking the nextjs sample repo? Might be something specific that I have not taken into account.

hey @petyosi I couldn't reproduce the issue 1 to 1 in the next.js fork because our app has a pretty complicated folder structure but I think I have found the cause. We put the markdown editor in our packages > design and were importing it into app and getting the unable to find active editor state issue error.
Two fixes I tried and their results:

importing lexical as a peer dependency next to mdx editor, even if lexical is not directly referenced anywhere. I got this idea from this thread. This made the above error went away, but somehow the lists toggle stopped responding.
To resolve the above, I got the sense that lexical states are influenced by where mdx is located/how its imported. I moved the mdx editor into the same folder in app where it is imported, and all our plug-ins under 1.13.4 seem to be working as expected now. In this scenario I can get rid of the lexical peer dependency and things still work.

I am not sure what changed between 1.9.0 and 1.13.4 but from experimentation it seems like the mdx location is now important and functionality breaks if its imported from a diff app / package in a multi-app structure.

I'm afraid that I can't help you without seeing what goes on in your project - none of the above rings a bell.
If you and your company has such practice, I'm happy to troubleshoot and help you with your setup as a consulting service - it's something that I offer for my other open source projects as well. If you want to consider this, you can contact me over an email.

No worries. If it means we have to move its location that's not too big of a deal for us. Just wanted to provide more context in my response above to help anyone else who may be running into similar issues. You've been extremely helpful so far and will reach out if anything in the realm of consulting services are required.


Fixed video playback

Fix for https://github.com/danielbuechele/goofy/issues/266

Thanks for the PR. Can you elaborate a little on how and why this works?

I found out that links opened by JS event are not working properly in Goofy (video link is one of them) because WebView is blocking them, in this PR I capture them and run in by the native code.


Imperfect alignment in IR&depth to Color transformation

I'm trying to transform depth and IR images to the same reference frame as the RGB image. The alignment is close but noticeably off. Here is a synchronized capture of color, depth, IR images followed by an overlayed depth/color comparison and IR/color comparison. By looking at the white metal rack, it is clear that the alignment is off (appears to be the same misalignment between the IR&depth images). After the images is my code for depth --> color and IR --> color. Any advice on fixing this issue would be appreciated.

k4a_image_t depth_to_color(CAMERA camera, k4a_image_t depth_image, k4a_image_t color_image)
{
	//attributes of the color image will be required
	uint color_height = k4a_image_get_height_pixels(color_image);
	uint color_width = k4a_image_get_width_pixels(color_image);
	uint color_stride = k4a_image_get_stride_bytes(color_image);
	//create a transformed depth image to be written into (Must be same format as depth_image, and same dimensions as color_image)
	k4a_image_t transformed_depth_image = NULL;
	switch (k4a_image_create(K4A_IMAGE_FORMAT_DEPTH16, color_width, color_height, color_width * (int)sizeof(uint16_t), &transformed_depth_image))
	{
	case K4A_RESULT_SUCCEEDED:
		break;
	case K4A_RESULT_FAILED:
		printf("Blank depth image creation failed (depth_to_color) :(\n");
	}
	//apply the transformation
	switch (k4a_transformation_depth_image_to_color_camera(camera.intr_transform, depth_image, transformed_depth_image))
	{
	case K4A_RESULT_SUCCEEDED:
		break;
	case K4A_RESULT_FAILED:
		printf("Depth Transformation failed :(\n");
	}
	return transformed_depth_image;
}

k4a_image_t IR_to_color(CAMERA camera, k4a_image_t depth_image, k4a_image_t IR_image_raw, k4a_image_t color_image)
{
	//first we must transform the raw depth image into the same reference frame as the color image, so they may be overlayed
	//attributes of the color image will be required
	uint color_height = k4a_image_get_height_pixels(color_image);
	uint color_width = k4a_image_get_width_pixels(color_image);
	uint color_stride = k4a_image_get_stride_bytes(color_image);
	//create a transformed image to be written into (Must be same format as depth_image, and same dimensions as color_image)
	//first, the IR_image must be changed into CUSTOM16 format (captured in IR16 format)
	k4a_image_t IR_image = change_IR_format(IR_image_raw);
	//now create blank image containers
	k4a_image_t transformed_IR_image = NULL;
	k4a_image_t transformed_depth_image = NULL;
	switch (k4a_image_create(K4A_IMAGE_FORMAT_CUSTOM16, color_width, color_height, color_width * (int)sizeof(uint16_t), &transformed_IR_image))
	{
	case K4A_RESULT_SUCCEEDED:
		break;
	case K4A_RESULT_FAILED:
		printf("Blank IR image creation failed (IR_to_color) :(\n");
	}
	switch (k4a_image_create(K4A_IMAGE_FORMAT_DEPTH16, color_width, color_height, color_width * (int)sizeof(uint16_t), &transformed_depth_image))
	{
	case K4A_RESULT_SUCCEEDED:
		break;
	case K4A_RESULT_FAILED:
		printf("Blank depth image creation failed (IR_to_color) :(\n");
	}
	//apply the transformation
	switch (k4a_transformation_depth_image_to_color_camera_custom(camera.intr_transform, depth_image, IR_image, transformed_depth_image,
		transformed_IR_image, K4A_TRANSFORMATION_INTERPOLATION_TYPE_NEAREST, 0))
	{
	case K4A_RESULT_SUCCEEDED:
		break;
	case K4A_RESULT_FAILED:
		printf("IR/depth Transformation failed :(\n");
	}
	return transformed_IR_image;
}

@SeanStephensenAIRM it is hard to tell from these images what you are experiencing. Some thoughts are:

The images misalignment is after transform the depth/IR to color domain which should use the camera calibration along with the depth image

The misalignment is quite small (I estimate a few RGB pixels). This could be attributed to:
a.	it could be just the calibration vs hardware is slightly different
b.	it could be the depth error itself leading to this small diff.

2b in particular could be a result of multipath in the scene. Nevertheless the expected bias can be up to 11mm +-0.1% of distance.
Could you repeat the experiment with a flat markerboard and in an open space?

@qm13 Thank you for your response and sorry for the delay in mine. Here's a rectangular box placed on the carpet - I haven't included the depth image because it's harder to tell (box is too close to the carpet), but here's the IR and color images shown side by side with clear misalignment at the box edges. I can take some better pictures on Tuesday that would have more useful depth images to compare as well. Anything more specific you'd like to see in the next round of images?

Seems like this is a duplicate of #1058
Very helpful to see the comparison images like this. @SeanStephensenAIRM Do you have the source available to produce these images? Could be the start a nice diagnostic utility if combined with something like OpenCV findChessboards and then compute the error between the two resulting point sets.

I agree, this does seem to be the same issue - feel free to merge if possible.  I have also noticed many instances where this error is manifested in point clouds. I can't share my full source since it is IP of the company I work for, but the process is just taking a simple capture as in many example Kinect codes, applying the transformations that I was able to provide in my original post, and then using OpenCV to imwrite each of the files out. If I have time next week I can try some OpenCV chessboard captures with my code where it would report the error between corners.

We believe this is a hardware issue. Can you please report the issue here)

@qm13 I think I have done what you're asking? Honestly not confident that I found the right spot that you wanted me to report the issue. Can you confirm that this is what you wanted?

@SeanStephensenAIRM did you use the link I provided in my comment. Full link is:
https://support.microsoft.com/en-us/supportforbusiness/productselection?sapId=f77b1b95-721e-43a0-2db8-b01e81a3f813

@SeanStephensenAIRM did you use the link I provided in my comment. Full link is:

Thanks, this new link works. Your old link took me to a very general Microsoft support page from which I had to manually navigate to my best guess at somewhere to file an issue. Your new link is specific to a direct support form which I've now filled out.

Weird. When I saw your original response the first thing I thought was I had given you the wrong link. I checked it and it works for me. Anyway glad you have now completed the support form. You will also get a response on the original incident you filed. The incident team knows I am covering the issue directly.


leveler, pymongo.errors.ServerSelectionTimeoutError: localhost:27017: [Errno 111] Connection refused

idk why this keeps happening, my bot won't load the cog can i please get help? here's my full traceback
Traceback (most recent call last):   File "/home/skullbite/red/cogs/owner.py", line 65, in load     self._load_cog(module)   File "/home/skullbite/redt/cogs/owner.py", line 948, in _load_cog     self.bot.load_extension(mod_obj.__name__)   File "/usr/local/lib/python3.5/dist-packages/discord/ext/commands/bot.py", line 738, in load_extension     lib.setup(self)   File "/home/skullbite/red/cogs/leveler.py", line 2989, in setup     n = Leveler(bot)   File "/home/skullbite/redt/cogs/leveler.py", line 63, in __init__     dbs = client.database_names()   File "lib/pymongo/mongo_client.py", line 1213, in database_names     ("nameOnly", True)]))["databases"]]   File "lib/pymongo/database.py", line 513, in command     with client._socket_for_reads(read_preference) as (sock_info, slave_ok):   File "/usr/lib/python3.5/contextlib.py", line 59, in __enter__     return next(self.gen)   File "lib/pymongo/mongo_client.py", line 904, in _socket_for_reads     with self._get_socket(read_preference) as sock_info:   File "/usr/lib/python3.5/contextlib.py", line 59, in __enter__     return next(self.gen)   File "lib/pymongo/mongo_client.py", line 868, in _get_socket     server = self._get_topology().select_server(selector)   File "lib/pymongo/topology.py", line 214, in select_server     address))   File "lib/pymongo/topology.py", line 189, in select_servers     self._error_message(selector)) pymongo.errors.ServerSelectionTimeoutError: localhost:27017: [Errno 111] Connection refused

Did you ever solve this issue?  I'm currently fighting the same fight ;P

pymongo.errors.ServerSelectionTimeoutError: localhost:27017: [Errno 111] Connection refused


Infinite (looping) iterator?

AFAICS. the only iterators are single-pass. Having a loop-forever iterator would be neat.

That's a good idea, I will consider it.
But there are some problems on implementation strategy.

no_std support. How to store a infinite iter closure without allocation.
thread safety. Should the infinite iter borrows the queue? If we allow pushing items when somebody holding a iter, it means the borrow checker is cheated. So, we need mark the whole queue not Send for thread safety.

Postponed.


feat(CSI-164): make csi-registrar health port configurable

@jlrgraham23 please rebase on top of latest dev

@jlrgraham23 I am sorry but I need to close this PR. Please submit a new PR on top of dev branch