Lambdify - fast numerical evaluation into Python buffers (no deferred exception)

Here I try out choosing real/complex at instantiation of Lambdify.
It is thus an alternative to raising the exception at call as in #3

Looks like all failures (except sage download link 404:ed) are related to note not knowning about pytest's xfail and skip.

@bjodah what is the advantage of the xfail and skipped tests? Aren't they just slowing down the test suite for no real reason?
I know there must be a good motivation for it, otherwise the test runners wouldn't implement it, but I always just followed a simple rule that either the test works and then it should be there, or it doesn't work, and then it shouldn't be there.

@certik, the skip can be conditional: in this case some tests will be skipped if NumPy is not available (since they rely on it).
The xfail is maybe not quite as useful, I see it as a way of documenting a desired behaviour which one maybe have not had time to implement yet (or if it fails due to a bug in an upstream package which might not be fixed any time soon). It is often at a late stage you realize that you will not be able to make a test pass, so you're faced with a few options: comment it out, throw it away or mark it as xfail.
Anyways, I don't want to be religous about these things and I'll happily comment things out if that is preferred to xfailing. And giving it some thought, the conditional skip may be implemented like this:
def test_ravel():
    if HAVE_NUMPY:
        assert np.ravel(some_array) == [1, 2, 3]
    else:
        assert True

It would still work with the minor drawback that quite a few tests reported as "Passing" would in reality not have been really run.
So I could comment out xfail tests and refactor skipped ones accordingly if you'd like.

That's what I used here,
https://github.com/symengine/symengine.py/blob/e1136d9016deb434ccea77a4aaae8da7bf000536/symengine/tests/test_sage.py#L5

Can you merge this with the latest master? There are some conflicts.

@bjodah I am fine with various solutions to this problem. I just wanted to understand the motivation.
A quick, though perhaps a bit dirty solution is as follows:

You can skip a test by prefixing it with a different name than test_. For example you can use xtest_. Instead of xfailing, you can just skip it using this method.

You can conditionally skip it using the technique that @isuruf mentioned above.

That way we can get this PR in and concentrate on actual issues in this PR, rather than our testing framework.
However, in the long run, we should just use standard methods for this in Python. What is wrong with the sympy.utilities.pytest solution?
One solution is to just use py.test, that's certainly a possibility. We used to only use py.test for sympy, but then there was a serious bug that if you gave two filenames the same name in different places in the directory structure, then one of them would not be run... But I still like py.test the most.
@isuruf any objections against just using py.test? Again, that decision is completely orthogonal to this PR and no matte the outcome, I suggest to just use a quick & dirty solution that I proposed above to get this PR in. But since we started discussing it here, we can as well reach a conclusion here.

I'm fine with using just py.test

Ok, I think we can just use py.test, so then @bjodah you don't need to modify your PR, just use py.test.
I am overall OK to the changes here, but we need to make sure all tests pass and perhaps some other technical issues get resolved.

Sorry, but I seem to have messed up the rebasing and introduced duplicate commits.
Any advice on how to safely correct that?
Regarding numpy: It would be nice if we could test it extensively, but if that's not practical with appveyor I guess a single test is alright. Would Christoph Gohlke's build be useful?
Regarding py.test:
look here:
https://github.com/symengine/symengine.py/pull/4/files#diff-97e2e3c68308a6044377595c72c26cedR13
and here:
https://github.com/symengine/symengine.py/pull/4/files#diff-f92048e3a299f55719fea6172ce3b29dR41

@bjodah yes, we should use either the Gohlke's builds, or the binaries that numpy releases distribute upstream, or build our own using appveyor and store it in: https://github.com/symengine/dependencies/tree/binaries, see also https://github.com/symengine/dependencies/issues/4 about an idea how to do that easily.
We can test numpy with most builds if we use binary installers.
As to your git issues, definitely make sure you never force push into the PR. Then you can't lose your stuff. If you don't know what to do, post your branch somewhere, and we can have a look.
Ondrej

I changed the option to WITH_NUMPY, I removed numpy requirement from appveyor and refactored the tests so that nosetests just work in all situations.
This way dealing with pytest and numpy builds on windows could wait until future PRs.
All tests but one on travis seem to pass. During the installation of symengine:
-- Install configuration: "Release"
CMake Error at cmake_install.cmake:36 (FILE):
  file cannot create directory: /lib/cmake/symengine.  Maybe need
  administrative privileges.

any clues to why this would could be happening?

@bjodah, you have to update https://github.com/bjodah/symengine

@isuruf thanks! Updated to point real upstream since you merged the required PR.

Generally it looks good, but there are still quite a few technical things to resolve.
Since this PR depends on py.test, I propose we do the nosetests -> py.test switch in a separate PR, since we need to make sure all tests pass, and that the switch didn't break anything. Currently the way the switch is implemented in this PR, it breaks a few things. So let's iron our the py.test issues in a new PR, and once that one is merged, you don't need to worry about py.test anymore in this PR.

@certik sorry, should have read your final comment first. So I'll leave the py.test/nosetests issue be for now and address the other comments.

Closed in favor of #11


Outlook 5.7.3 Authentication unsuccessful

Since Microsoft no longer allows basic authentication after September 16th, 2024 (app passwords don't work either), I could no longer use git-send-email to send patches through my Outlook personal account, and then I found this project.
5.7.3 Authentication unsuccessful [LO4P123CA0207.GBRP123.PROD.OUTLOOK.COM 2024-10-10T21:50:33.251Z 08DCE9686F3D146F]
After a long time of struggling with the configuration, I am still stuck on this error and I think I need some help.
./pyenv/bin/python3 emailproxy.py --no-gui --local-server-auth --debug
2024-10-10 23:49:45: Initialising Email OAuth 2.0 Proxy (version 2024-10-04) in debug mode from config file /home/xxx/email-oauth2-proxy/emailproxy.config
2024-10-10 23:49:45: Starting IMAP server at <IP_ADDRESS>:1993 (unsecured) proxying outlook.office365.com:993 (SSL/TLS)
2024-10-10 23:49:45: Starting POP server at <IP_ADDRESS>:1995 (unsecured) proxying outlook.office365.com:995 (SSL/TLS)
2024-10-10 23:49:45: Starting SMTP server at <IP_ADDRESS>:1587 (unsecured) proxying smtp.office365.com:587 (STARTTLS)
2024-10-10 23:49:45: Initialised Email OAuth 2.0 Proxy - listening for authentication requests. Connect your email client to begin
2024-10-10 23:49:56: New incoming connection to SMTP server at <IP_ADDRESS>:1587 (unsecured) proxying smtp.office365.com:587 (STARTTLS)
2024-10-10 23:49:56: Accepting new connection from <IP_ADDRESS>:53878 to SMTP server at <IP_ADDRESS>:1587 (unsecured) proxying smtp.office365.com:587 (STARTTLS)
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587) --> [ Client connected ]
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587)     <-- b'220 LO4P302CA0005.outlook.office365.com Microsoft ESMTP MAIL Service ready at Thu, 10 Oct 2024 22:49:55 +0000 [08DCE8B62813AB2B]\r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587) <-- b'220 LO4P302CA0005.outlook.office365.com Microsoft ESMTP MAIL Service ready at Thu, 10 Oct 2024 22:49:55 +0000 [08DCE8B62813AB2B]\r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587) --> b'EHLO debian.aux.lan\r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587)     --> b'EHLO debian.aux.lan\r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587)     <-- b'250-LO4P302CA0005.outlook.office365.com Hello [<IP_ADDRESS>]\r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587)     <-- b'250-SIZE 157286400\r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587)     <-- b'250-PIPELINING\r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587)     <-- b'250-DSN\r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587)     <-- b'250-ENHANCEDSTATUSCODES\r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587)     <-- b'250-STARTTLS\r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587)     <-- b'250-8BITMIME\r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587)     <-- b'250-BINARYMIME\r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587)     <-- b'250-CHUNKING\r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587)     <-- b'250 SMTPUTF8\r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587)     --> b'STARTTLS\r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587)     <-- b'220 2.0.0 SMTP server ready\r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587) <-> [ Starting TLS handshake ]
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587) [ Successfully negotiated SMTP server STARTTLS connection - re-sending greeting ]
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587)     --> b'EHLO debian.aux.lan\r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587) <-> [ TLSv1.3 handshake complete ]
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587)     <-- b'250-LO4P302CA0005.outlook.office365.com Hello [<IP_ADDRESS>]\r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587)     <-- b'250-SIZE 157286400\r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587)     <-- b'250-PIPELINING\r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587)     <-- b'250-DSN\r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587)     <-- b'250-ENHANCEDSTATUSCODES\r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587)     <-- b'250-AUTH LOGIN XOAUTH2\r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587)     <-- b'250-8BITMIME\r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587)     <-- b'250-BINARYMIME\r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587)     <-- b'250-CHUNKING\r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587)     <-- b'250 SMTPUTF8\r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587) <-- b'250-LO4P302CA0005.outlook.office365.com Hello [<IP_ADDRESS>]\r\n250-SIZE 157286400\r\n250-PIPELINING\r\n250-DSN\r\n250-ENHANCEDSTATUSCODES\r\n250-AUTH PLAIN LOGIN\r\n250-8BITMIME\r\n250-BINARYMIME\r\n250-CHUNKING\r\n250 SMTPUTF8\r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587) --> b'AUTH PLAIN [[ Credentials removed from proxy log ]]\r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587)     --> b'AUTH XOAUTH2\r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587)     <-- b'334 \r\n'
2024-10-10 23:49:56: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587<EMAIL_ADDRESS>    --> b'[[ Credentials removed from proxy log ]]\r\n'
2024-10-10 23:50:01: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587<EMAIL_ADDRESS>    <-- b'535 5.7.3 Authentication unsuccessful [LO4P302CA0005.GBRP302.PROD.OUTLOOK.COM 2024-10-10T22:50:01.030Z 08DCE8B62813AB2B]\r\n'
2024-10-10 23:50:01: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587<EMAIL_ADDRESS><-- b'535 5.7.3 Authentication unsuccessful [LO4P302CA0005.GBRP302.PROD.OUTLOOK.COM 2024-10-10T22:50:01.030Z 08DCE8B62813AB2B]\r\n'
2024-10-10 23:50:01: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587) <-- [ Server disconnected ]
2024-10-10 23:50:01: SMTP (<IP_ADDRESS>:53878-{<IP_ADDRESS>:1587}-smtp.office365.com:587<EMAIL_ADDRESS>--> [ Client disconnected ]

Above is the failed debug information that frustrates me.
[user]
	email =<EMAIL_ADDRESS>	name = XXX XXX
[sendemail]
	smtpServer = <IP_ADDRESS>
	smtpUser =<EMAIL_ADDRESS>	smtpPass = xxxxx
	smtpServerPort = 1587
	confirm = always
	suppresscc = all

Above is my gitconfig.
[IMAP-1993]
server_address = outlook.office365.com
server_port = 993
local_address = <IP_ADDRESS>

[POP-1995]
server_address = outlook.office365.com
server_port = 995
local_address = <IP_ADDRESS>

[SMTP-1587]
server_address = smtp.office365.com
server_port = 587
server_starttls = True
local_address = <IP_ADDRESS>

<EMAIL_ADDRESS>permission_url = https://login.microsoftonline.com/tenant id/oauth2/v2.0/authorize
token_url = https://login.microsoftonline.com/tenant id/oauth2/v2.0/token
oauth2_scope = https://outlook.office.com/IMAP.AccessAsUser.All https://outlook.office.com/POP.AccessAsUser.All https://outlook.office.com/SMTP.Send offline_access
redirect_uri = http://localhost:8080
client_id = xxxxxxxxxxxx
client_secret = xxxxxxxxxxxx
token_salt = xxxxxxxx
token_iterations = 870000
access_token = xxxxxxxxxxxxxxx
access_token_expiry =<PHONE_NUMBER>
refresh_token = xxxxxxxxxxx

[emailproxy]
delete_account_token_on_password_error = True
encrypt_client_secret_on_first_use = False
use_login_password_as_client_credentials_secret = False
allow_catch_all_accounts = False

Above is my emailproxy.config
I can already get the token_salt, access_token, refresh_token, but the authentication is still unsuccessful.

Above are all my configurations in Azure.

I have completed the permission acceptance and can show OAuth 2.0 proxy successfully.
I am sure that SMTP is not disabled in my Outlook as I can use Thunderbird to send emails successfully.
I have tried changing smtp.office365.com to smtp-mail.outlook.com, https://outlook.office.com/SMTP.Send to https://graph.microsoft.com/SMTP.Send, offline_access to https://graph.microsoft.com/offline_access and Web application to SPA application, but none of them work.
I have tried everything I can think of.
If anyone can help me I would be very grateful.
This is important to me.
Many thanks!

Thanks for the detailed report. Unfortunately I don't have capacity to troubleshoot Azure/Entra setups, but there are plenty of other guides to help you navigate the confusing process required - this was the first result for me just now, for example.
Re: proxy setup, you should stick with what is in the example configuration file (i.e., not the Graph scopes).

Thanks for your reply, I tried the method in the article you mentioned, but it doesn't work.
In fact, I have tried many articles on configuring Azure/Entra and none of them work.
The following is some additional information.

As a personal account, there are actually no Office 365 permissions, and only Graph permissions are related to emails.

I have tried turning off all the security configurations I can find, but it doesn't work.

I have also tried turning off two-step authentication, or turning on two-step authentication and using app passwords, but neither works.
I struggled for a long time here, but couldn't make the authentication successful.
If there is still no solution, I can only give up my Outlook account and use other email providers...

Ah, that's an important detail - if you're using a free Outlook account you'll need to reuse an OAuth client ID that has been approved by Microsoft as you're not able to approve your own (you're not the administrator). There are links in the proxy's readme to various options here.

Thanks for the information, it helped me finally find the cause.
Since you mentioned that I need to use a Microsoft approved client id, it made me curious to find out what client id Thunderbird uses.
After some time of debugging using the Thunderbird Developer Tool, I found it all at OAuth2Providers.sys.mjs.
The Thunderbird client id can also be found in this blog.
Outlook personal accounts may not require complex Azure/Entra configurations, as Thunderbird client id can be used (interestingly, we don't need to provide client_secret when using Thunderbird client id).
But when I use the Thunderbird client id, the same error appears again.
5.7.3 Authentication unsuccessful.
This makes me suspect that this is not the problem.

I compared the authentication process of Thunderbird with email-oauth2-proxy which is exactly the same but with different results.

Eventually I debugged Thunderbird with breakpoints and I discovered that the OAuthToken sent by Thunderbird was very different from the one sent by email-oauth2-proxy.
The OAuthToken length sent by Thunderbird is 1585, but the length sent by email-oauth2-proxy is 3401.
After I base64 decoded it, only the very beginning<EMAIL_ADDRESS>is the same, while the rest is very different.

I tried to modify the code in SMTPOAuth2ServerConnection and replace OAuth2Helper.encode_oauth2_string(result) with the OAuthToken I got in Thunderbird.
I finally saw the long-awaited 250 OK and the email was sent successfully!
250 2.0.0 OK<EMAIL_ADDRESS>I am not an email expert, but can confirm that there should be bugs in OAuth2Helper.get_oauth2_credentials or OAuth2Helper.encode_oauth2_string.
Hopefully this information provided above can help you fix it.
Many thanks!

Have you tried smtp-mail.outlook.com after changing the client_id? They seem different, see https://answers.microsoft.com/en-us/outlook_com/forum/all/incorrect-popsmtp-servers/85848f40-87ea-44ab-a983-e9c71cfc1c7c and https://support.microsoft.com/en-us/office/pop-imap-and-smtp-settings-for-outlook-com-d088b986-291d-42b8-9564-9c414e2aa040

@qianbinbin Thanks for letting me know!
After I changed the SMTP server to smtp-mail.outlook.com, emails can be sent normally.
I no longer need to set up the OAuthToken myself.
The following is the summary for others who want to use email-oauth2-proxy to send emails from their Outlook personal account:
TL;DR
Use Thunderbird Client ID and use smtp-mail.outlook.com as the SMTP server.

Cheers! For others who want a quick setup for personal Outlook on macOS: https://qianbinbin.github.io/posts/oauth-2.0-proxy-for-email-client/

I have a similar problem as you betacatgo, but I don't want to send e-mails, just read the email folder's. So I guess I am stuck to IMAP instead of SMTP. Is there a way to apply a similar solution as yours, but with IMAP servers?

I managed to get it to work! After almost a month! Thank you very much  qianbinbin for your tutorial.
My final config file is
`
<EMAIL_ADDRESS>permission_url = https://login.microsoftonline.com/common/oauth2/v2.0/authorize
token_url = https://login.microsoftonline.com/common/oauth2/v2.0/token
oauth2_scope = https://outlook.office.com/IMAP.AccessAsUser.All https://outlook.office.com/POP.AccessAsUser.All https://outlook.office.com/SMTP.Send offline_access
client_id = 9e5f94bc-e8a4-4e73-b8be-63364c29d753
redirect_uri = https://localhost:7598
`

Congratulations! @filipe3x
Yes, most tutorials tell us to create Azure app, but that makes everything complicated and doesn't work.
Actually we just need to simply use the Thunderbird Client ID and then everything works fine.

I'm glad you got things working – thanks for following up. As I mentioned above in my second response, the fact that a personal (i.e., free) account is the one you were trying to use here is a crucial factor. Unlike Gmail, where any client can be configured to access the account, Microsoft's process requires administrator approval, and since you are not the administrator of Outlook.com you cannot add new Azure/Entra clients, so must adopt the ID from an existing client. Thunderbird is the most obvious option here.
In the rest of the discussion in this issue there are a lot of other misconceptions or incorrect assumptions. I'll try to clear a few of them up here. First and foremost – all of the attempts to try different scopes, servers or other parameters in the proxy's default configuration file are often the source of the problem in the first place. The default configuration is rarely at fault, and trying random values here will just create another problem that stops the proxy working.
Turning to the other points:

I am not an email expert, but can confirm that there should be bugs in OAuth2Helper.get_oauth2_credentials or OAuth2Helper.encode_oauth2_string.

I think you're making this assumption because Thunderbird's token is a different length to the one obtained by the proxy? That's an incorrect assumption, and not the cause of your issue.

I tried to modify the code in SMTPOAuth2ServerConnection and replace OAuth2Helper.encode_oauth2_string(result) with the OAuthToken I got in Thunderbird.

This will work, but not for long. Unlike a standard username/password login, OAuth 2.0 is based on a token that is periodically refreshed. So, once the token you've copied from Thunderbird expires, the proxy will stop working for you again.

After I changed the SMTP server to smtp-mail.outlook.com, emails can be sent normally.

This is the standard configuration as found in the example configuration file. Don't change it!

Cheers! For others who want a quick setup for personal Outlook on macOS (in Chinese): https://qianbinbin.github.io/posts/oauth-2.0-proxy-for-email-client/

Thanks for adding documentation in Chinese. The "its documentation is not really written for humans" bit made me laugh! Just a few minor points: while what you've written about sent emails being duplicated is correct, this can often be disabled in the email client itself (e.g., in Thunderbird, turn off 'Place a copy in "Sent" Folder' in the Copies & Folders tab of the account's settings). If you can't do this, the plugin-enabled version of the proxy has a helper for this. Similarly, while the autostart configuration you've listed will work, if you use the GUI version of the proxy this can be managed automatically for you.
Finally, another issue not mentioned here, but previously raised in connection to free Outlook.com accounts: the errror BAD User is authenticated but not connected. may occur even when you've successfully authenticated your account with the proxy. The reason for this is that IMAP/POP/SMTP is not enabled for your account. Once this is done, things will start working.

Thank you @simonrob for your brilliant work. I mean the documentation is a little bit confusing.
Microsoft uses different servers for Office 365 and personal users, and the domains are just misleading.
However, many sections of the document describe the configuration of Office 365 accounts, but only provide the SMTP configuration for free accounts. And in the Account setup part, only Office 365 configuration is provided.
It would be more convenient if there're some typical templates, e.g. free-outlook.config, office-365.config, gmail.config.
The plugin-enabled version looks awesome. It would be great if we could install it by pip install emailproxy[plugin].

Thanks for the feedback – this is useful. I'll try to clarify about O365 vs. free/personal accounts.
Re: SMTP configuration – this is the same for both paid and free accounts. And re: accounts, there's currently an example for both O365 and personal accounts. I could perhaps make this clearer by linking directly to examples from the readme.
The plugins version is currently only available by installing manually I'm afraid. This is because the architecture of the proxy makes it quite difficult (perhaps not possible) to achieve in the flexible manner that it currently works. But I'm happy to look at this again if there's significant interest in this version. If you've already got the proxy installed via pip, you can just download the new version of the script and plugins from its branch and try things out, as you've already got everything else required (i.e., there are no extra dependencies).

910c393f400ffc35202f89e38284f0199130cdf3 adds more references to Outlook to hopefully make it clearer that the O365 section is meant to cover this too. I've also added an explicit note in the servers to clarify that these are for both O365 and Outlook/Hotmail.


USHIFT-335: Test mDNS resolution from the hypervisor/test runner

/cc @dhellmann

/test microshift-metal-tests
Fail in unrelated test (suites/network/multi-nic.robot)


python312Packages.jedi-language-server: 0.41.3 -> 0.41.4

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python312Packages.jedi-language-server is: A Language Server for the latest version(s) of Jedi
meta.homepage for python312Packages.jedi-language-server is: https://github.com/pappasam/jedi-language-server
meta.changelog for python312Packages.jedi-language-server is: https://github.com/pappasam/jedi-language-server/blob/0.41.4/CHANGELOG.md
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.41.4 with grep in /nix/store/yx3dg9c70xr5kpjmc31d0cs5vz6fxhjs-python3.12-jedi-language-server-0.41.4
found 0.41.4 in filename of file in /nix/store/yx3dg9c70xr5kpjmc31d0cs5vz6fxhjs-python3.12-jedi-language-server-0.41.4

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

5 total rebuild path(s)

5 package rebuild(s)

First fifty rebuilds by attrpath
python311Packages.jedi-language-server
python312Packages.jedi-language-server
vimPlugins.YouCompleteMe
vscode-extensions.ms-python.python
ycmd

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/yx3dg9c70xr5kpjmc31d0cs5vz6fxhjs-python3.12-jedi-language-server-0.41.4 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python312Packages.jedi-language-server https://github.com/r-ryantm/nixpkgs/archive/1aaceb59743c61995a1b210a10c91e1fe1687b7d.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/1aaceb59743c61995a1b210a10c91e1fe1687b7d#python312Packages.jedi-language-server

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/yx3dg9c70xr5kpjmc31d0cs5vz6fxhjs-python3.12-jedi-language-server-0.41.4
ls -la /nix/store/yx3dg9c70xr5kpjmc31d0cs5vz6fxhjs-python3.12-jedi-language-server-0.41.4/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review --extra-nixpkgs-config '{ allowInsecurePredicate = x: true; }' run on x86_64-linux 1

7 packages built:

python311Packages.jedi-language-server
python311Packages.jedi-language-server.dist
python312Packages.jedi-language-server
python312Packages.jedi-language-server.dist
vimPlugins.YouCompleteMe
vscode-extensions.ms-python.python
ycmd

Maintainer pings
cc @doronbehar for testing.

Opened https://github.com/pappasam/jedi-language-server/issues/313 per Darwin failure. Will wair for their reply, and if they won't, I'll disable this test.


Allow reconnect without enforcing a clean session

It would be nice to allow "unclean" sessions. This is useful for e.g. push services where the client should receive pushes that were send while the client had connection problems.
I think the change has to be done here (and upwards to make in configurable)

Feel free to fork the project and send a pull request with the change. The easiest way to achieve that is to add:
public static int CLEAN_SESSION = true; //measured in seconds

in MQTTService  and set the value in the line you mentioned.


[sigh] Fixed the broken fastlane sigh manage -e command

Checklist

[x] I've run bundle exec rspec from the root directory to see all new and existing tests pass
[x] I've followed the fastlane code style and run bundle exec rubocop -a to ensure the code style is valid
[x] I've read the Contribution Guidelines
[x] I've updated the documentation if necessary.

Motivation and Context

Sigh fastlane sigh manage -e command is broken for a long time
Resolves #18757
Resolves #18712
Resolves #16642

Description

Fixed the broken fastlane sigh manage -e command
Please see attached screenshot

Testing Steps

Update Gemfile and run bundle install with

gem "fastlane", :git => "git@github.com:crazymanish/fastlane.git", :branch => "sigh-manage-clean_expired-fix"

Try bundle exec fastlane sigh manage -e

Screenshot

Does fastlane sigh resign -e work though? It should work as fastlane sigh manage -e 🤔

Does fastlane sigh resign -e work though? It should work as fastlane sigh manage -e 🤔

Nope, fastlane sigh resign -e also not working...haha I will open separate PR for resign 😅

I'm wondering which is the underlying issue to this and why other options declared locally and not globally work fine.

I'm wondering which is the underlying issue to this and why other options declared locally and not globally work fine.

Some commands are working without globally because those commands defied inside commander ruby-gem internally
https://github.com/commander-rb/commander/blob/master/lib/commander/runner.rb#L45
This is what I learn:

Either use the short_option param of Fastlane's Config (basically options.rb)
or
Define individual short sub-command using global_option

From resign any of the short options work? And why only the short option and not the long one🤔

@googlebot I consent.

I found a kind of solution but just realized it busts the tests because now its catching things too strongly 😔 Going to rethink this is a bit.
Proper solution kind of depends on optparse 0.1.1 and then a PR into commander 😬

@crazymanish @minuscorp I think this is ready now 😊 0.1.1 of optparse was released to ruby gems so this can finally be fixed now 🤷♂


Benchmarks add unnecessary dependencies

Due to dependencies to shopspring decimal etc. in the benchmarks folder, this decimal library adds dependencies to these additional libraries to go.sum.
IMHO this is not a good idea, these dependencies are not required for "normal usage". Also, they cause licensing issues.
I would formally need to add shopspring decimal MIT license to my application if I use this decimal library, because it is a dependency.
Might it be possible to move benchmarks to a different project?

@lotodore would you mind sending a PR?

I cannot create a new github project in a pull request, but I've submitted a pull request which (to my knowledge) prepares everything.

et voila https://github.com/ericlagergren/decimal_benchmarks

Thanks. Should I directly add the files there?

Yes, please!

Fixed by https://github.com/ericlagergren/decimal/pull/183


[UI Discussions] Changeset Details

Following up from #11, let’s use this ticket to iterate on the Changeset details view:

Key information:

Main header with CTA

Open in (JOSM, iD etc.)
Verify (Harmful, not harmful)
Add tag (Longer list of tags that could explain actual cause, action taken, escalation etc.)

Changeset metadata

Apart from what’s visible in the changeset list, more details like Imagery, Source, Editor etc.

Flagged features

Table with links to open the individual feature page, highlight it in changeset map, open in JOSM

Changeset discussion
Changeset map

For the layout, I’m envisioning the top half with dedicated section for 2, 3, 4 and the bottom half for changeset map. This ensures that the changeset detail is always visible (for context), and you can view the flagged feature list along with the changeset map (so you can quickly inspect individual features on the map without any scrolling).
cc @kepta @ajithranka @batpad @geohacker

Things to discuss:

How should the layout work responsively?
How should the changeset map layout change to accomodate the responsive layout? This conversation can help push https://github.com/osmlab/changeset-map/issues/133 forward.
How should changeset map open full-screen (Like full-screen video? In a new tab? Draggable layout?)

Thoughts @planemad @maning @manoharuss & others?

@rasagy , The changeset detail page looks good. Also curious to check out ideas on how changeset map and discussion module could be fit in the current layout design.

How should changeset map open full-screen (Like full-screen video? In a new tab? Draggable layout?)

Would suggest for changeset map to just expand in shape to about 75% (or a bit more than that) of the screen (as in a photo viewer experience) and when clicked outside the map, the page should return back to the original state which displays changeset details and the normal changeset map. I wouldn't recommend opening in a new tab as it would be again tedious to open - close and switching tabs.

Since a common usecase with OSMCHA is to have a split-screen layout (OSMCHA + JOSM/iD), we need to make sure the layout is responsive here’s how the layout could look like on a 800x600 screen:

We could push the 2, 3, 4 sections in a single layout (scrollable) and keep the changeset map pinned to the bottom. But with the list showing, the horizontal space will be pretty limited for the map.

Collapsed view where the sidebar can be shown on top of the details page when you click on the hamburger icon.
This still requires a lot more iterations to nail down, will work on this once we have clarity on how the details screen looks.

Good ideas, @rasagy !
I think it's not necessary too much space for "Flagged features" in the first image, so I would adjust its section height to the same of the changeset details

@willemarcel Good point! @kepta also worked on a quick prototype to test this on multiple screens, and I think the overall feedback is to not do a 50%-50% split but roughly 30%-70% split so changeset map uses more space. Will iterate on this and see what works best!

Would suggest for changeset map to just expand in shape to about 75%…
@bsrinivasa Interesting feedback! Like @willemarcel mentioned, I think we can give changeset map more space by default. Let’s see if that removes the need to have a full-screen view for most cases.

@kepta helped make a quick prototype to get feedback on the layout. The main feedback was that 50-50 split doesn’t work well, especially on slightly smaller screen sizes, and the changeset map should be toggle-able/expandable in some way.
Based on those inputs, @kepta, @ajithranka & I went ahead with rethinking the layout by focusing on the changeset map and adding details around it.
First iteration: Collapsable panels

This combines the left panel in changeset map with other details in OSMCHA to create a set of toggle-able panels. These could open/close like accordions (at most one section open at one time).
Second iteration: Panels as map controls

Taking the above idea forward, this collapses the panels into a smaller control/icon/button, thus taking minimal space in the interface when someone wants to dive deep into the changeset map.
This approach avoids the jarring movement of clickable areas in an accordion that we saw in Concept D, and also makes each section flexible in size (for ex the Flagged features could be wider to accommodate the table, while the Toggle layers could be smaller).

Let’s take this approach forward and start working on a high-fidelity design.
PS: This would require us to also update the design of the changeset map, tracking that on this ticket.

Excelent!! Both are very good, but I prefer the Panels as map controls.

Closing this ticket as it has gone out of date.


Cannot Serialize Relinearization Key

When I want to serialize the EvalMultKey or EvalAutomorphismKey exactly like in "simple-real-numbers-serial.cpp" I get this error :
libc++abi: terminating with uncaught exception of type cereal::Exception: Trying to save an unregistered polymorphic type (lbcrypto::EvalKeyRelinImpl<lbcrypto::DCRTPolyImpl<bigintdyn::mubintvec<bigintdyn::ubint > > >).
Make sure your type is registered with CEREAL_REGISTER_TYPE and that the archive you are using was included (and registered with CEREAL_REGISTER_ARCHIVE) prior to calling CEREAL_REGISTER_TYPE.
If your type is already registered and you still see this error, you may need to use CEREAL_REGISTER_DYNAMIC_INIT.

Could you confirm you included all header files that are included at the beginning of "simple-real-numbers-serial.cpp"? The error typically implies that some of the serialization header files were not included. If this does not help, could you post the code here?

Indeed, it is the header file "key/key-ser.h" that was missed. Thank you


!WIP; feat: Config flag error ignored during login #251 #258

Fixes #251
This pull request is currently work in progress.
Description
This pull request focuses on configuration handling and the login process.
Changes

config flag is now properly handled in the runLogin function. Originally the default path was always taken.
Added ConfigPath to loginview
Added ValidateConfigPath function to ensure the configuration file path ends with .yaml or .yml.
Existing config files only get updated if credentials do not yet exist
Overwrite config entry when password or more attributes have changed for same name

Open Changes

Adding support for environment variable of config path

Even though this PR is still WIP I would be happy to receive your feedback on any code changes.

@qcserestipy Please sign your commits

@bupd Thank you for your feedback! Yes, you were right. The config was set as a global flag already. I removed the option from the login screen. The credential handling is now moved to the runLogin function only. I will start looking into the $XDG_CONFIG_HOME config handling you suggested.

The changes ensure that the application consistently references the active configuration, manages multiple credential sets efficiently, and maintains a reliable state across different operations.
Key Changes

PersistentPreRun Function for Configuration Initialization

Purpose: Ensures that the configuration is initialized before any command execution.
Benefits: Guarantees that all commands have access to the necessary configuration data, preventing runtime errors related to uninitialized configurations.

Data File Logic for Tracking Active Configuration

Purpose: Implements a data file (data.yaml) that keeps track of the last active configuration file (config.yaml).
Benefits: Allows users to switch between multiple configuration files seamlessly without manually specifying the config path each time.

Global Pointers for DataFile and ConfigFile

Purpose: Makes HarborData and HarborConfig accessible globally through pointers.
Benefits: Simplifies access to configuration and data throughout the application, reducing the need for passing configuration objects between functions and packages.

Harbor Client for Credential Retrieval

Purpose: Adjusts the Harbor client to retrieve credentials using the global configuration pointer.
Benefits: Ensures that all client operations consistently use the currently active credentials, enhancing security and reliability.

Credential Management Enhancements in Login Command

Purpose: Adds functionality to the login process to update credentials in the configuration file after a successful login.
Benefits: Automatically manages and updates credential sets, reducing manual intervention and minimizing the risk of credential mismatches.

Showcase

1
The datafile is created and it contains info about the config path which is in the config2.yaml file
2 and 3
I log in to the server and choose a new config file called config.yaml. The login proceeds, the file is created and the data file is updated.
4
The data file contains information about an old file config3.yaml that does not exist anymore. The cli crashes. The user is informed to create a new blank config3.yaml or change the name to a new config file where the data file gets updated.
5
The usual harbor subcommands can read the peristent config file specified in data.yaml, or use a config file that is given on the fly by the --config flag.

Is there a good way to test this code in unit tests?

@qcserestipy make sure you comple the DCO part -> https://github.com/goharbor/harbor-cli/pull/259/checks?check_run_id=33351002182

@qcserestipy can you also address the discussion points we can than move forward

I removed the WIP tag for now


Writing WindowCommand Controls programatically

is there any possible way to write the WindowCommand Controls programmatically or from the code behind ? like for example, if a specific user type logged in, specific WindowCommand Controls will be rendered and/or the user's name will appear on the right side etc etc.

MahApps.Metro v1.4.3
Windows OS 8.1
Visual Studio __2015
.NET Framework 4.6.2

@SkyEngine-OSP You can handle this also by using flags in your view model and bind to it to set the visibility of your window command controls (buttons), so you don't need to create these controls in code behind.


Access to the resource is forbidden

Hello! I am getting an error in Power Query: "Expression.Error: access to the resource is forbidden." This was working for me at the beginning of last month, I'm not sure what changed between then and now. If it seems like it's something on my end please let me know, I wanted to make sure I reported it here though. Thanks!

hey!
The "access to the resource is forbidden" is an error that you get when your token has expired or you don't have enough privileges to the data.
This is a response directly from the API and not something triggered by the custom connector itself, so this means that you'll need to do some troubleshooting to see why you're getting this error.
What you can try is to remove your data source credentials and try to log in again to see if that works. Maybe you have a really old access and refresh tokens and they expired, hence why you get this error.
Best!


Refactor makefile and reuse docker image build steps from imagebuild.sh

This PR does following things. Although none are critical and is done for easier maintenance.

Makefile was using different steps to build image. It is unified with ./scripts/imagebuild.sh now.
Building binary image inside docker was unnecessary overhead as the binaries are built from CI in fresh environment every-time. In local development environment it takes additional time to build. Hence removed.
Fix few go vet issues in e2e test code.
Simplified Makefile targets for vet, fmt & test

@shashidharatd Isn't building in docker desirable for someone on osx?

@shashidharatd Isn't building in docker desirable for someone on osx?

oops, i became over enthusiastic to reduce the time building binaries in my local environment and forgot the Non-Linux users. I will rollback the changes.

@shashidharatd my take on the Makefile is for it to be the mechanism of choice for users and then make based commands to be adopted in CI including building and pushing the image (explicitly done by imagebuild.sh before this PR).
I would have rather kept the mechanism of building and pushing as it is in Makefile and call make build and/or make push from imagebuild.sh. imagebuild.sh would remain as the CI build script only then.

Probably, lets hold this pr until, @yamt, works on supporting OSX in pr https://github.com/kubernetes-sigs/federation-v2/pull/665

@shashidharatd Check #680 also please.

No longer required, hence closing.


containerd fix type convert compile error on mips64el

containerd fix type convert compile error;
the type of the "s.Rdev" is 32bit on mip64el, and it cannot convert 'uint32' to 'uint64' implicitly with programming in GO language;
convert the "s.Rdev" type to 'uint64' explicitly;

Based on my comment in the issue you opened this has to start with a PR to the CRI to update the whole docker/docker vendoring git hash. Once that is done we can update the containerd vendoring.


Fixed a range bug in LevelSetSphere

Signed-off-by: Ken<EMAIL_ADDRESS>

@kmuseth could you also update the root CMakeLists.txt (~line 55) file to:
set(OpenVDB_MAJOR_VERSION 9) set(OpenVDB_MINOR_VERSION 0) set(OpenVDB_PATCH_VERSION 1)
This will bump the .so/version.h version numbers

@kmuseth could you also update the root CMakeLists.txt (~line 55) file to:
set(OpenVDB_MAJOR_VERSION 9)
set(OpenVDB_MINOR_VERSION 0)
set(OpenVDB_PATCH_VERSION 1)

This will bump the .so/version.h version numbers

@Idclip  I see you created a separate PR with that change. I approved it so can you approve this PR as well

Done! Yeah just wanted to make sure we had bumped the lib version before any changes

Done! Yeah just wanted to make sure we had bumped the lib version before any changes

great, thanks @Idclip


A misspoke in the Pattern Matching doc

In the complex example there is a comment:
// this is matched only if `name` isn't "Joe"

Although it should be something like:
// this is matched only if `name` isn't "Mary" or "Joe"

You are right. You can open a PR for these kind of fixes since they are pretty easy to review


Symbols after cyrillic 'r' become missing when renaming files

Environment
Nvim configuration: Neovim 0.8.3-1 from Arch repo, with LazyVim 1.18.1, mostly default config but changed colorscheme.
Neo-tree version: 2.52.0
Issue
When renaming files using 'r' in the file tree, and the present filename contains cyrillic symbol 'р', letter is lost after it from the "new name" prompt, making it harder to change the filename just slightly.
The omitted symbol can be both cyrillic and English.
If after 'р' is a hyphen or underscore, TWO symbols are lost — hyphen/underscore and anything after them. This may happen with other special characters as well, however, I haven't checked it.
The contents of the file don't seem to make difference — this bug occured to me both with empty and populated files.
Reproducing the bug
For this, I have created a directory with 14 empty files (for that I used 'a' in neo-tree, had no problems with that) and different filename for each one.
All of them contain 'р' symbol.
Some of them are fully cyrillic, some are partly English; some include dashes or underscores, some aren't.

For your convenience, here are the names in the same order as in screenshot:
some-more-тестировние.txt
демонстрация.txt
еще-одна-проверка.txt
проверка.txt
p--.txt
p-.txt
p_.txt
p__.txt
р__english.txt
р_english.txt
рenglish.txt
работа.txt
тест_нижнее_подчеркивание.txt
четыре-е-ееее.txt

After that, I pressed 'r' in neo-tree on every file in directory, checking for my issue.
Here are all screenshots, with the number of lost symbols:

One letter

One letter

Two letters (just because of two 'р')

Two letters (just because of two 'р')

Two dashes

Two symbols, dash and dot

Two symbols, underscore and dot

Two underscores

Two underscores

Two symbols, underscore and 'e'

One letter

One letter

One letter

One letter

After reloading Nvim I get all the same results.
Conclusion
I have no idea, why this bug exists, what are the possible reasons behind it.
And also there may be other symbols like 'р', which "delete" other symbols. However, I have only noticed it happening with 'р'.

Wow this is an interesting issue.
It seems to be an issue coming from nui.nvim which is a plugin neo-tree depends on to open that input placeholder.
I'll open an issue over there so please wait and see what they will respond.

Fixed! Thanks @MunifTanjim
It seems I don't have the permission to close this issue.
Please close this @MagnetizedFreckles when you see this msg :)

Thank you very much for helping to fix this issue!

Thanks @pysan3!


bug: destructuring formatting is off

-        let MyStruct{prop1, prop2 } = my_struct;
+        let MyStruct { prop1, prop2 } = my_struct;

Just checking if this is an easy fix or if it requires the advanced formatter?

which version are you on?
because it seems fine both on main and on main 2.5.3 and 2.6.0-rc.0.

Here's a real world example on 2.5.3:
        let AssetConfig{total_nominal_debt, scale, .. } = asset_config;

Should be
        let AssetConfig { total_nominal_debt, scale, .. } = asset_config;


🎨 Refactor delete_instance_by_id and delete_instance_by_slug

Thank you! Nice code deletion! https://www.youtube.com/watch?v=r6tH55syq0o


feat:updated env variable [ECO-270]

Title- Updated .env variable [ECO-270] for Nuxtjs
Changes-Standardize ,env name for Nuxtjs
Story-https://contentstack.atlassian.net/browse/ECO-270

Need to change env name as per discussion.


Export interfaces

Following my comment made four years ago =) https://github.com/localForage/localForage/issues/600#issuecomment-243891174
Export interfaces for convenient driver creation.

The tests seems to not pass.
I think that b/c we are using a module definition (b/c of the UMD export we do), you can't use export at the top level and you need to define the interfaces inside the module definition.

Actually I just noticed that interfaces are available without the need to explicitly import. Which is not nice, but at least it works.

@thgreasi
though there is an issue with this

thi

Because it allows to use modules even if not installed in (available for) particular package for example in the workspace project

@whitecolor can you clarify what you mean with this a bit more? The installed part is what confused me.
Do you mean that in a project that you have LocalForage installed, you can use the interfaces even w/o importing or /// reference-ing them?

Do you mean that in a project that you have LocalForage installed, you can use the interfaces even w/o importing or /// reference-ing them?

I think everything is ok.
So one still have to import from 'localforage', they are not globally visible.
import type localforage from 'localforage'

const options: LocalForageOptions

Can you also try fixing the tests?
Otherwise I'm afraid we can't merge this.

Let me know if you would prefer me or someone else to pick this up.

Let me know if you would prefer me or someone else to pick this up.

Yes, I don't know to fix the tests. As I said actually I'm ok with the current situation, exporting interface seems not actually necessary. But probably it would more correct to make them only available via explicit importing.


Adds JSON importing feature and HTML exporting feature

I realized after exporting my journal to a JSON file and accidentally deleting the original journal, there wasn't an option in the jrnl CLI to import my JSON file back into a journal except by doing so manually. This pull request adds an option in the jrnl CLI to import from a JSON formatted file.
Additionally, I wanted a way to export my journal to a static webpage with minimal/no client-side dependencies that I know will look "ok"/"pretty". So this pull request also adds another option to the jrnl CLI that gives the user an option to export their jrnl to a light HTML file with inlined CSS; the intent is that the user can export their journal and drop it straight into a static content server (i.e. Apache webserver) without any extra work to make it look presentable
I did not make any changes related to the jrnl application version, Travis, etc. etc. as I wanted to leave that to the upstream maintainer (@maebert) to decide whether these changes are appropriate to merge into the jrnl application. If they are, I'd like to see if these additions can be pushed out to the jrnl being served through the pip repositories too.

Hi, thanks for this PR! this is definitely a great idea. I'll admit right away that I haven't got a lot of time to maintain jrnl recently, but in general all new contributions should go against the 2.0-rc1 branch. Could you rebase that against that?

No problem, I'll try to do that (hopefully this coming weekend). I haven't worked with Travis before but I think I know what caused that failure so I'll try and fix that too


DB.compact()

In searching through documents about MapDB I come across references to DB.compact() to reduce the size of data on disc.  But I can't seem to find the function.  Has it been removed?  Is there a better way to do it now.
Note this is not about disc compression but removing dead spaces in the file store.  My issue is that MapDB does not automatically compact and that is specified in the documents and I have periodic adds and delete of a large number of records.  I'd like to compact the DB after a bulk add to save space.

I found a compact methode at:
BTreeMap<Integer, Integer> data;
data.getStore().compact();
But i did not test it.

Thanks

@allanwax  did this work for you?


Trying to understand the Pledge Project.

Hi folks,
I've not used C just Python, but I'm trying to learn along with Rust and Golang, I was redirected to this project since I'm working on trying to port various applications on Risc-v.
I understand that we're trying to port https://man.openbsd.org/pledge.2 to Linux, having quite less knowledge on how porting works(Is it copying functions, etc?)
I'd like to help regardless, starting from updating the readme with examples maybe of how to use Pledge then slowly move to code.
Any previous examples etc I could get some help with on how to use Pledge? I can setup stuff etc just not that good at programming.
Any tips etc will be appreciated, I'll start slowly updating Readme stuff I guess to understand the project. Thanks

I'm glad you're excited about pledge on Linux! This issue tracker is for bugs and feature requests. Good luck on your journey learning more about SECCOMP filtering. Feel free to reach out again if you have a bug or feature request.


Unable to add right margin to an empty string

Describe the bug
When attempting to add a margin to an empty string, the width is reported as 0.
Setup

macOS 12.7.2
zsh 5.9
iTerm 3.4.23

To Reproduce
I have created a repository with documentation, test application and unit tests to demonstrate this issue:
Clone the repository at: https://github.com/mikelorant/lipgloss-width
go run main.go

To run the tests:
go test ./... -v

Source Code
The most basic way to verify this problem is with this code:
str := ""

style := lipgloss.NewStyle().
  Bold(false).
  MarginRight(1)

render := style.Render(str)

log.Println(lipgloss.Width(render))

This will output 0.
Changing bold to true changes the output to 1.
Be aware that the terminal capabilities detected by muesli/termenv will change the outcome if the terminal cannot provide ANSI capabilities. This can be forced with export NO_COLOR=1 when enabling bold to see how the outcome changes.
Expected behavior
The expected result is 1.

@meowgorithm The code for padRight was initially added by you. Are you okay with the fix as part of #253?
I'd also like to refactor padLeft and padRight to share a pad function as there is only a 2 line difference between each function.

I have refactored the padding functions padLeft and padRight to use a common function called pad in #254.

This issue has been resolved.


Updated Tensor flow, incompatible function parameters. (Float32>int)

Hi,
System information
Windows 10
TensorFlow installed using pip.
I am using CDU
Python 3.6.3 (using Spyder)
TensorFlow version: 1.4.0
Have I written custom code: No
OS Platform and Distribution:
TensorFlow installed from
Bazel version:NA
CUDA/cuDNN version:NA
GPU model and memory: using cpu.
Exact command to reproduce:
activate myenvrionment
spyder
This code was written on 0.x tensorFlow, it could be an update issue, but I can't find the outdated function.
`
from keras import optimizers
from keras.models import Model
from keras.layers import Dropout, Lambda
from keras.layers import Input, average
from keras.layers import Conv2D, MaxPooling2D, Conv2DTranspose
from keras.layers import ZeroPadding2D, Cropping2D
from keras import backend as K

def mvn(tensor):
    '''Performs per-channel spatial mean-variance normalization.'''
    epsilon = 1e-6
    mean = K.mean(tensor, axis=(1,2), keepdims=True)
    std = K.std(tensor, axis=(1,2), keepdims=True)
    mvn = (tensor - mean) / (std + epsilon)

    return mvn

def crop(tensors):
    '''
    List of 2 tensors, the second tensor having larger spatial dimensions.
    '''
    h_dims, w_dims = [], []
    for t in tensors:
        b, h, w, d = K.get_variable_shape(t)
        h_dims.append(h)
        w_dims.append(w)
    crop_h, crop_w = (h_dims[1] - h_dims[0]), (w_dims[1] - w_dims[0])
    rem_h = crop_h % 2
    rem_w = crop_w % 2
    crop_h_dims = (crop_h / 2, crop_h / 2 + rem_h)
    crop_w_dims = (crop_w / 2, crop_w / 2 + rem_w)
    cropped = Cropping2D(cropping=(crop_h_dims, crop_w_dims))(tensors[1])

    return cropped

def dice_coef(y_true, y_pred, smooth=0.0):
    '''Average dice coefficient per batch.'''
    axes = (1,2,3)
    intersection = K.sum(y_true * y_pred, axis=axes)
    summation = K.sum(y_true, axis=axes) + K.sum(y_pred, axis=axes)

    return K.mean((2.0 * intersection + smooth) / (summation + smooth), axis=0)

def dice_coef_loss(y_true, y_pred):
    return 1.0 - dice_coef(y_true, y_pred, smooth=10.0)

def jaccard_coef(y_true, y_pred, smooth=0.0):
    '''Average jaccard coefficient per batch.'''
    axes = (1,2,3)
    intersection = K.sum(y_true * y_pred, axis=axes)
    union = K.sum(y_true, axis=axes) + K.sum(y_pred, axis=axes) - intersection
    return K.mean( (intersection + smooth) / (union + smooth), axis=0)

def fcn_model(input_shape, num_classes, weights=None):
    ''' "Skip" FCN architecture similar to Long et al., 2015
    https://arxiv.org/abs/1411.4038
    '''
    if num_classes == 2:
        num_classes = 1
        loss = dice_coef_loss
        activation = 'sigmoid'
    else:
        loss = 'categorical_crossentropy'
        activation = 'softmax'

    kwargs = dict(
        kernel_size=3,
        strides=1,
        activation='relu',
        padding='same',
        use_bias=True,
        kernel_initializer='glorot_uniform',
        bias_initializer='zeros',
        bias_regularizer=None,
        activity_regularizer=None,
        kernel_constraint=None,
        bias_constraint=None,
        trainable=True,
    )

    data = Input(shape=input_shape, dtype='float', name='data')
    mvn0 = Lambda(mvn, name='mvn0')(data)
    pad = ZeroPadding2D(padding=5, name='pad')(mvn0)

    conv1 = Conv2D(filters=64, name='conv1', **kwargs)(pad)
    mvn1 = Lambda(mvn, name='mvn1')(conv1)

    conv2 = Conv2D(filters=64, name='conv2', **kwargs)(mvn1)
    mvn2 = Lambda(mvn, name='mvn2')(conv2)

    conv3 = Conv2D(filters=64, name='conv3', **kwargs)(mvn2)
    mvn3 = Lambda(mvn, name='mvn3')(conv3)
    pool1 = MaxPooling2D(pool_size=3, strides=2,
                    padding='valid', name='pool1')(mvn3)

    conv4 = Conv2D(filters=128, name='conv4', **kwargs)(pool1)
    mvn4 = Lambda(mvn, name='mvn4')(conv4)

    conv5 = Conv2D(filters=128, name='conv5', **kwargs)(mvn4)
    mvn5 = Lambda(mvn, name='mvn5')(conv5)

    conv6 = Conv2D(filters=128, name='conv6', **kwargs)(mvn5)
    mvn6 = Lambda(mvn, name='mvn6')(conv6)

    conv7 = Conv2D(filters=128, name='conv7', **kwargs)(mvn6)
    mvn7 = Lambda(mvn, name='mvn7')(conv7)
    pool2 = MaxPooling2D(pool_size=3, strides=2,
                    padding='valid', name='pool2')(mvn7)

    conv8 = Conv2D(filters=256, name='conv8', **kwargs)(pool2)
    mvn8 = Lambda(mvn, name='mvn8')(conv8)

    conv9 = Conv2D(filters=256, name='conv9', **kwargs)(mvn8)
    mvn9 = Lambda(mvn, name='mvn9')(conv9)

    conv10 = Conv2D(filters=256, name='conv10', **kwargs)(mvn9)
    mvn10 = Lambda(mvn, name='mvn10')(conv10)

    conv11 = Conv2D(filters=256, name='conv11', **kwargs)(mvn10)
    mvn11 = Lambda(mvn, name='mvn11')(conv11)
    pool3 = MaxPooling2D(pool_size=3, strides=2,
                    padding='valid', name='pool3')(mvn11)
    drop1 = Dropout(rate=0.5, name='drop1')(pool3)

    conv12 = Conv2D(filters=512, name='conv12', **kwargs)(drop1)
    mvn12 = Lambda(mvn, name='mvn12')(conv12)

    conv13 = Conv2D(filters=512, name='conv13', **kwargs)(mvn12)
    mvn13 = Lambda(mvn, name='mvn13')(conv13)

    conv14 = Conv2D(filters=512, name='conv14', **kwargs)(mvn13)
    mvn14 = Lambda(mvn, name='mvn14')(conv14)

    conv15 = Conv2D(filters=512, name='conv15', **kwargs)(mvn14)
    mvn15 = Lambda(mvn, name='mvn15')(conv15)
    drop2 = Dropout(rate=0.5, name='drop2')(mvn15)

    score_conv15 = Conv2D(filters=num_classes, kernel_size=1,
                        strides=1, activation=None, padding='valid',
                        kernel_initializer='glorot_uniform', use_bias=True,
                        name='score_conv15')(drop2)
    upsample1 = Conv2DTranspose(filters=num_classes, kernel_size=3,
                        strides=2, activation=None, padding='valid',
                        kernel_initializer='glorot_uniform', use_bias=False,
                        name='upsample1')(score_conv15)
    score_conv11 = Conv2D(filters=num_classes, kernel_size=1,
                        strides=1, activation=None, padding='valid',
                        kernel_initializer='glorot_uniform', use_bias=True,
                        name='score_conv11')(mvn11)
    crop1 = Lambda(crop, name='crop1')([upsample1, score_conv11])
    fuse_scores1 = average([crop1, upsample1], name='fuse_scores1')

    upsample2 = Conv2DTranspose(filters=num_classes, kernel_size=3,
                        strides=2, activation=None, padding='valid',
                        kernel_initializer='glorot_uniform', use_bias=False,
                        name='upsample2')(fuse_scores1)
    score_conv7 = Conv2D(filters=num_classes, kernel_size=1,
                        strides=1, activation=None, padding='valid',
                        kernel_initializer='glorot_uniform', use_bias=True,
                        name='score_conv7')(mvn7)
    crop2 = Lambda(crop, name='crop2')([upsample2, score_conv7])
    fuse_scores2 = average([crop2, upsample2], name='fuse_scores2')

    upsample3 = Conv2DTranspose(filters=num_classes, kernel_size=3,
                        strides=2, activation=None, padding='valid',
                        kernel_initializer='glorot_uniform', use_bias=False,
                        name='upsample3')(fuse_scores2)
    crop3 = Lambda(crop, name='crop3')([data, upsample3])
    predictions = Conv2D(filters=num_classes, kernel_size=1,
                        strides=1, activation=activation, padding='valid',
                        kernel_initializer='glorot_uniform', use_bias=True,
                        name='predictions')(crop3)

    model = Model(inputs=data, outputs=predictions)
    if weights is not None:
        model.load_weights(weights)
    sgd = optimizers.SGD(lr=0.01, momentum=0.9, nesterov=True)
    model.compile(optimizer=sgd, loss=loss,
                  metrics=['accuracy', dice_coef, jaccard_coef])

    return model

if __name__ == '__main__':
    model = fcn_model((100, 100, 1), 2, weights=None)

`
Spyder execution log:
runfile('E:/AB/cardiac-segmentation-master/cardiac-segmentation-master/fcn_model.py', wdir='E:/AB/cardiac-segmentation-master/cardiac-segmentation-master')
Using TensorFlow backend.
Traceback (most recent call last):
File "", line 1, in
runfile('E:/AB/cardiac-segmentation-master/cardiac-segmentation-master/fcn_model.py', wdir='E:/AB/cardiac-segmentation-master/cardiac-segmentation-master')
File "C:\Users\PC\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 710, in runfile
execfile(filename, namespace)
File "C:\Users\PC\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 101, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "E:/AB/cardiac-segmentation-master/cardiac-segmentation-master/fcn_model.py", line 197, in
model = fcn_model((100, 100, 1), 2, weights=None)
File "E:/AB/cardiac-segmentation-master/cardiac-segmentation-master/fcn_model.py", line 162, in fcn_model
crop1 = Lambda(crop, name='crop1')([upsample1, score_conv11])
File "C:\Users\PC\Anaconda3\lib\site-packages\keras\engine\topology.py", line 603, in call
output = self.call(inputs, **kwargs)
File "C:\Users\PC\Anaconda3\lib\site-packages\keras\layers\core.py", line 651, in call
return self.function(inputs, **arguments)
File "E:/AB/cardiac-segmentation-master/cardiac-segmentation-master/fcn_model.py", line 36, in crop
cropped = Cropping2D(cropping=(crop_h_dims, crop_w_dims))(tensors[1])
File "C:\Users\PC\Anaconda3\lib\site-packages\keras\engine\topology.py", line 603, in call
output = self.call(inputs, **kwargs)
File "C:\Users\PC\Anaconda3\lib\site-packages\keras\layers\convolutional.py", line 1874, in call
self.cropping[1][0]: -self.cropping[1][1],
File "C:\Users\PC\Anaconda3\lib\site-packages\tensorflow\python\ops\array_ops.py", line 538, in _SliceHelper
name=name)
File "C:\Users\PC\Anaconda3\lib\site-packages\tensorflow\python\ops\array_ops.py", line 706, in strided_slice
shrink_axis_mask=shrink_axis_mask)
File "C:\Users\PC\Anaconda3\lib\site-packages\tensorflow\python\ops\gen_array_ops.py", line 5429, in strided_slice
name=name)
File "C:\Users\PC\Anaconda3\lib\site-packages\tensorflow\python\framework\op_def_library.py", line 609, in _apply_op_helper
param_name=input_name)
**File "C:\Users\PC\Anaconda3\lib\site-packages\tensorflow\python\framework\op_def_library.py", line 60, in _SatisfiesTypeConstraint
", ".join(dtypes.as_dtype(x).name for x in allowed_list)))
TypeError: Value passed to parameter 'begin' has DataType float32 not in list of allowed values: int32, int64**
Please help.

Thank you for your post. We noticed you have not filled out the following field in the issue template. Could you update them if they are relevant in your case, or leave them as N/A? Thanks.
Have I written custom code
OS Platform and Distribution
TensorFlow installed from
Bazel version
CUDA/cuDNN version
GPU model and memory
Exact command to reproduce

It has been 14 days with no activity and the awaiting response label was assigned. Is this still an issue? Please update the label and/or status accordingly.

Nagging Awaiting Response: It has been 14 days with no activityand the awaiting response label was assigned. Is this still an issue?

Nagging Awaiting Response: It has been 14 days with no activityand the awaiting response label was assigned. Is this still an issue?

It has been 14 days with no activity and the awaiting response label was assigned. Is this still an issue?

It has been 14 days with no activity and the awaiting response label was assigned. Is this still an issue?

It has been 15 days with no activity and the awaiting response label was assigned. Is this still an issue?

We are closing this issue for now due to lack of activity. Please comment if this is still an issue for you. Thanks!


Feature: Double opt-in

!! Warning !! By enabling this feature without garantueeing that field is_confirmed is True of the old contacts, the ones who are older than a week will be deleted when campaign saving is triggered!
This PR extends Birdsong by a double opt-in feature necessary in the EU according to it's GPDR.
The idea is:

user signs up for newsletter
user receives a confirmation e-mail with a link
user clicks on the link and is confirmed
if not confirmed after a week, the contact is deleted
campaigns are only sent to confirmed contacts

Therefore the model was extended by user creation date, confirmation date and confirmation. The deletion of unconfirmed contacts older than a week is triggered by a signal, whenever the save method of campaign is called.
Additionally, Birdsong settings were added to the admin menu settings. There the double opt-in feature can be enabled and the content of the confirmation e-mail can be set.
Furthermore, redirect pages can be specified in those settings. Redirect after

signup
confirmation
unsubscription
so the wagtail admin can create the pages according to their own wishes. If they are not set, default templates are used.

@david-smejkal Thank you for your suggestions!
@seb-b Before we go any further it would be useful for us to know if you are interested in the feature? Please let us know.

Apologies for the delay.
The idea of double opt-in makes sense but this does suffer from a bit of the same problems as #36. I think we could cut a lot of the features in this PR and it'd be mergeable.
As a general rule of thumb this project is intended for dealing with campaigns and contacts only. We're not really interested in adding features that would be added to a website (e.g. subscribe forms/views/blocks), that should be entirely left up to the implementer since the contact model can be customised and we don't want to make any assumptions about how the site has been developed (e.g. which template engine/styling used/is it headless?). There are bits of this PR that do make sense though like a confirmation url since that will be embedded in the emails, the birdsong settings section and the default contact model changes.


Messages View is empty and has no KB

I have created my UIViewController and am displaying the UIView in a storyboard. The view is embedded in a tab view controller on the bottom. I have copied the demo and removed the parts that seem to be just for a demo (existing messages).
What should I be looking at to determine why there is no keyboard being shown or the "New Message" input. I wonder if perhaps they are behind the tab view controller, or if I am missing something.
Thanks from a JSQM newb.

hi @ericgross - please see #94


[4.0][BUG] User avatar link on navbar is center aligned.

Bug report
On rtl theme "user avatar link" is supposed to be on left top corner but it's center aligned.
The problem is when RTL is active, both margin-left: auto !important; and margin-right: auto !important; apply on the section.
I think, adding a mr-0 on RTL mode class can solve the problem.
Backpack, Laravel, PHP, DB version
Backpack 4.0

Thanks for the PR @ahmadmrj ! Merged.


*: Cut 0.27.0

Signed-off-by: Matej Gera<EMAIL_ADDRESS>

[ ] I added CHANGELOG entry for this change.
[ ] Change is not relevant to the end user.

Changes
Cutting 0.27.0; some formatting changes and updating version + release schedule.
Cherry picked couple of necessary commits as well (busybox version, removing Katacoda links)
Verification


Re-enable test case after #4833

#4833 is now closed

@stan-sz I think you just need to change the following to fix the linter rule:
https://github.com/Azure/bicep/blob/ee680785b8f6ed2c7cfa90fb0021db8b2d542824/src/Bicep.Core/Analyzers/Linter/Rules/OutputsShouldNotContainSecretsRule.cs#L130-L131
->
if (model.ResourceMetadata.TryLookup(syntax.BaseExpression) is { })

Thanks for fixing this!


Sharpen UX for Civiform admin's "All Programs" page

@HansEngebretsen has been creating some great mocks for the Civiform admin's "All Programs" page, where Civiform admins can review the programs under their purview, make changes, publish new versions, and review old versions. Mocks are here.
However, Hans pointed out that the "All Programs" page needs some more UX attention. Take a look at that page in Miro and create recommendations for what to change. You can either put sticky notes on Miro with suggestions, or just write suggestions here in the comments.

Covered by other tasks


TypeScript: typing error with props an attributes

Version
1.0.0-beta.11
Reproduction link
https://github.com/vwxyutarooo/vue-test-utils/blob/dev/types/test/wrapper.ts#L19
Steps to reproduce
Use wrapper.props().checked or wrapper.attributes().foo in TypeScript.
What is expected?
interface BaseWrapper issue.
What is actually happening?
      TS2339: Property 'checked' does not exist on type 'void | { [name: string]: any; }'.
  Property 'checked' does not exist on type 'void'.

void is unnecessary I suppose. This method always returns any type of data including undefined. Is it my misunderstanding or just bug?
Environments for just in case.
-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>

I'm trying to fix it.
https://github.com/vwxyutarooo/vue-test-utils/blob/dev/types/index.d.ts#L52

@vwxyutarooo You can send PR :)

@kazupon Thanks, I've create it!


Client memory corruption

I don't have a clue yet on why this happens, but very often the client side handle value of a characteristic gets corrupted.
This is the flow:
scan
connect
get service
get characteristic
write value
I added a debug statement in NimBLEClient.
Half of the times, after reboot, the handle value of the characteristic gets corrupted, so notifications don't reach the app.
I plan to add more logging statements trying to catch what causes this corruption, but any pointers help here.

Half of the times, after reboot, the handle value of the characteristic gets corrupted, so notifications don't reach the app.

I'm not sure I understand, what are you rebooting when this happens? Do you have any logs of this?

Closing as stale. Please reopen if still having this issue.


AWS credentials are shown in the UI

Currently the aws config UI doesn't use a 'password' field to blank out the AWS API keys, so AWS credentials are shown when you configure the credentials.

Fixed by change type to password.


[Feature] 支持JdbcTemplate和jdbcClient

Is there an existing issue for this?

[X] I had searched in the issues and found no similar issues.

Description
希望支持JdbcTemplate和jdbcClient ,可以指派给我，我周末有时间搞一下。
Solution
No response
Related issues
No response
Are you willing to submit a pull request to implement this on your own?

[X] Yes I am willing to submit a pull request on my own!

@ZPZP1 Thank you for posting in the AREX community! This issue has been assigned to you.
/arex-instrumentation/database is the enhancement of Database components. Hope it helps.

Ok, I'll learn to the proxy logic of the other components


v-for not passing along the correct / expected index

Hi,
I've searched through the docs and the issues logged on the library, but I'm still a bit fuzzled as to whether the foliowing is supposed to be supported.
Consider an invoice form where user can add lines.  We set up CTRL-A for adding lines.
Now what I want to achieve is that when a user is on one of these lines, he can do CTRL-DEL to delete that line.
This is what we have:

    <input/>

    <input/>

the goal is that whenever a user is focused on one of the elements in the row, it deletes that particular row.
For some reason, when I do a console.log(index) in the delete_line() method, it always has the number of rows in invoice.elements (basically, it gives the "last" index of the array.
I have tried moving the `v-shortkey.once="['ctrl', 'del']" @shortkey="delete_line(index)"' bit onto all the individuals input elements in such a row, but with no success.
Is this supposed to be supported?  If so, what am I doing wrong?
Thanks for a very nice package!
David.

Ok! first of all, you can do what you want. second one

Hi, yes - that’s the workaround I had in my mind.  Just wanted to double check whether it was supposed to work “out of the box” and whether I did something wrong...  thanks!

you're welcome!
I will close this and if you want some help, i'm here!


different users

I would like  to create different users as roles in RBAC. For example, user1 can access container1  while user2 in docker groups like Bob cannot access container1.
as I know Docker daemon only see network requests sent from sockets and no username on the request.
therefore, Is twistlock provide that technique or not ?
Many thanks
Ibrahim

This is not relevant to this plugin. The docker auth subsystem only works with certificates. You can read more about it in the official docker GitHub repo
https://docs.docker.com/engine/extend/plugins_authorization/


Increase the default memory and timeout limits in lean3ls

Matches our VSCode's default found here:
https://github.com/leanprover/vscode-lean/blob/ca764c60acbfaeaca55a681bc0be65f84b0cae44/package.json#L32-L41

Pull request #1000, what do I win?


Pincode is able to be pressed again across the screen width.

Reproduce the issue as following steps:

Press "Recover wallet" button.
Enter pincode.
repeat pincode.
Press back button on Recover wallet screen.
Press any key, it is able to press any key, and pin indicator is over the screen.
What will be the expectable action at this case?
I expected back button on recover wallet screen will take me the first screen.
Thanks.

@Aurelyn10 Nice catch!
What we can do is overwrite the goBack action on this screen to reset the navigation stack to the Home screen!
Adding something like this to screens/RecoverWallet/index.js should work:
export default class RecoverWallet extends Component {
  static navigationOptions = ({ navigation }) => {
    const resetAction = NavigationActions.reset({
      index: 0,
      actions: [NavigationActions.navigate({ routeName: 'Home' })],
    });

    return {
      headerLeft: (
        <HeaderBackButton onPress={() => navigation.dispatch(resetAction)} />
      ),
    };
  };
...
}

Feel free to test it locally and submit a PR if it works 🚀


The handles don't scale well

The handles don't stick to the crop viewframe when the width is scaled to somehting pretty low.

@HannesArni Thanks for reporting, I'll be looking into the codebase in the next few days/weeks. Any other feature requests you might have off the top of your head? :)


Longest Substring Without Repeating Characters

Write a program to find the length of the longest substring without repeating characters from a given string. The solution should be optimized to run in O(n) time complexity, using a sliding window and hash map to track character frequencies.

Hi there!
I am the Mentor of this project .
Although this repo is not part of Hacktoberfest 2024, we have some great alternatives for you. Welcome to SkillShow, a repository focused on skill enhancement!
Guidelines:
Please adhere to the existing guidelines.
No additional rules, thanks!
Check it out here: SkillShow.
Note: Start by creating an issue. Once it’s assigned to you, feel free to open a pull request (PR). Directly opening a PR will lead to an invalid label.
Looking forward to your contributions!


Add Substring benchmark for naive ACSII whitespace trimming.

This is derived from swift-nio-http2's codebase, which contains this
unfortunate code for trimming ASCII whitespace.

@swift-ci please smoke test

@swift-ci please benchmark

Performance: -O

Improvement
OLD
NEW
DELTA
RATIO

String.data.LargeUnicode
136
117
-14.0%
1.16x (?)

DictionaryKeysContainsCocoa
32
28
-12.5%
1.14x (?)

Added
MIN
MAX
MEAN
MAX_RSS

SubstringTrimmingASCIIWhitespace
3827
3929
3862
—

Code size: -O

Regression
OLD
NEW
DELTA
RATIO

Substring.o
18256
20820
+14.0%
0.88x

Performance: -Osize

Regression
OLD
NEW
DELTA
RATIO

StringFromLongWholeSubstringGeneric
5
6
+20.0%
0.83x (?)

DictionaryBridgeToObjC_Access
843
923
+9.5%
0.91x (?)

Improvement
OLD
NEW
DELTA
RATIO

FlattenListLoop
1937
1630
-15.8%
1.19x (?)

ParseInt.UIntSmall.Binary
839
757
-9.8%
1.11x

UTF8Decode_InitFromBytes_ascii_as_ascii
511
466
-8.8%
1.10x (?)

Added
MIN
MAX
MEAN
MAX_RSS

SubstringTrimmingASCIIWhitespace
3938
4002
3962
—

Code size: -Osize

Regression
OLD
NEW
DELTA
RATIO

Substring.o
16868
19104
+13.3%
0.88x

Performance: -Onone

Regression
OLD
NEW
DELTA
RATIO

String.data.Small
88
96
+9.1%
0.92x (?)

String.data.Empty
86
93
+8.1%
0.92x (?)

DataAppendArray
5200
5600
+7.7%
0.93x (?)

Added
MIN
MAX
MEAN
MAX_RSS

SubstringTrimmingASCIIWhitespace
8756
8848
8814
—

Code size: -swiftlibs

✅
Benchmark Check Report

⚠⏱
SubstringTrimmingASCIIWhitespace execution took at least 3739 μs.  Decrease the workload of SubstringTrimmingASCIIWhitespace by a factor of 4 (10), to be less than 1000 μs.

How to read the data
The tables contain differences in performance which are larger than 8% and
differences in code size which are larger than 1%.
If you see any unexpected regressions, you should consider fixing the
regressions before you merge the PR.
Noise: Sometimes the performance results (not code size!) contain false
alarms. Unexpected regressions which are marked with '(?)' are probably noise.
If you see regressions which you cannot explain you can try to run the
benchmarks again. If regressions still show up, please consult with the
performance team (@eeckstein).

Hardware Overview
  Model Name: Mac Pro
  Model Identifier: MacPro6,1
  Processor Name: 12-Core Intel Xeon E5
  Processor Speed: 2.7 GHz
  Number of Processors: 1
  Total Number of Cores: 12
  L2 Cache (per Core): 256 KB
  L3 Cache: 30 MB
  Memory: 64 GB

@swift-ci please smoke test

@swift-ci please benchmark

Performance: -O

Regression
OLD
NEW
DELTA
RATIO

String.data.Medium
118
130
+10.2%
0.91x (?)

Improvement
OLD
NEW
DELTA
RATIO

StringBuilderWithLongSubstring
1730
1570
-9.2%
1.10x (?)

ParseInt.UIntSmall.Binary
817
750
-8.2%
1.09x (?)

Added
MIN
MAX
MEAN
MAX_RSS

SubstringTrimmingASCIIWhitespace
752
755
753
—

Code size: -O

Regression
OLD
NEW
DELTA
RATIO

Substring.o
18256
20804
+14.0%
0.88x

Performance: -Osize

Regression
OLD
NEW
DELTA
RATIO

StringFromLongWholeSubstringGeneric
5
6
+20.0%
0.83x

FlattenListFlatMap
5402
6235
+15.4%
0.87x (?)

Improvement
OLD
NEW
DELTA
RATIO

ObjectiveCBridgeFromNSArrayAnyObject
21200
19200
-9.4%
1.10x (?)

ParseInt.UIntSmall.Binary
839
767
-8.6%
1.09x (?)

String.data.Medium
133
124
-6.8%
1.07x (?)

Added
MIN
MAX
MEAN
MAX_RSS

SubstringTrimmingASCIIWhitespace
785
785
785
—

Code size: -Osize

Regression
OLD
NEW
DELTA
RATIO

Substring.o
16868
19101
+13.2%
0.88x

Performance: -Onone

Regression
OLD
NEW
DELTA
RATIO

UTF8Decode_InitFromData_ascii_as_ascii
661
811
+22.7%
0.82x (?)

Improvement
OLD
NEW
DELTA
RATIO

String.data.Small
99
92
-7.1%
1.08x (?)

Added
MIN
MAX
MEAN
MAX_RSS

SubstringTrimmingASCIIWhitespace
1705
1773
1729
—

Code size: -swiftlibs

✅
Benchmark Check Report

How to read the data
The tables contain differences in performance which are larger than 8% and
differences in code size which are larger than 1%.
If you see any unexpected regressions, you should consider fixing the
regressions before you merge the PR.
Noise: Sometimes the performance results (not code size!) contain false
alarms. Unexpected regressions which are marked with '(?)' are probably noise.
If you see regressions which you cannot explain you can try to run the
benchmarks again. If regressions still show up, please consult with the
performance team (@eeckstein).

Hardware Overview
  Model Name: Mac Pro
  Model Identifier: MacPro6,1
  Processor Name: 12-Core Intel Xeon E5
  Processor Speed: 2.7 GHz
  Number of Processors: 1
  Total Number of Cores: 12
  L2 Cache (per Core): 256 KB
  L3 Cache: 30 MB
  Memory: 64 GB

@swift-ci please smoke test

@milseman Updated. I don't have merge privileges here so you'll have to hit the button.

@swift-ci please smoke test

@swift-ci please smoke test linux platform

@swift-ci please smoke test linux


Question regarding existing plex servers

This is mostly a question, and not really an issue, but will this work with a already set up Plex server or will I need to run it on Kubernetes to get the full functionality?

@miguemely you need to run it in kubernetes.   The shim for the transcoder could be faked out but that will givey ou some very strange behavior unless you can share your media and the transcode and the tmp folders.  Now that I've gotten into the code i think it might be possible to use the shim but not as it stands right now.

@miguemely you need to run it in kubernetes. The shim for the transcoder could be faked out but that will givey ou some very strange behavior unless you can share your media and the transcode and the tmp folders. Now that I've gotten into the code i think it might be possible to use the shim but not as it stands right now.

Gotcha. I have some Nvidia TK1s and Intel NUCs I wanted to use for this, but would be nice if 10gb was available as well.


Address issues flagged by golangci-lint 1.52

See individual commits for details.

Go lint job failed:
pkg/workqueue/queue.go:78:3: directive `//nolint:revive // This is a while statement, we don't care about the empty block` is unused for linter "revive" (nolintlint)
		//nolint:revive // This is a while statement, we don't care about the empty block

This should succeed once https://github.com/submariner-io/shipyard/pull/1204 is merged but it's dependent on this PR. Rather than forcing merge this now, we can wait until #1204 is merged.


Relevant tables

Related to https://github.com/Kononnable/typeorm-model-generator/issues/263
added inquirer option and CLI as -tables param

Thanks for the contribution.
I've changed when filtering takes place. It will allow to skip generation of entities even if they're related to other(generated) tables.


EffekseerForGodot

Godot would be an amazing engine to feature Effekseer since it's fast-growing as engine and community. The particle system is one of Godot's weakest parts and having something like Effekseer would be god sent. I'm lacking skills to do it myself, so I'm proposing this feature.

I'm planning now...Please wait

Very keen to hear about what the plan is, when it's ready :)

We've been a little busy and haven't gotten around to it; we're hoping to start looking at development in July.

any updates on this?

No update. It is difficult on OpenGL because lack of API

Lack of API ? do you mean Godot's API ?

I want these API
https://github.com/godotengine/godot/blob/master/servers/rendering/rendering_device.h

but it is impossible without it? maybe a compiled NativeScript?

I don't have an enough knowledge about GodotEngine.

Does Godot3.2 have a method to generate procedural mesh with very highspeed?
Does Godot3.2 have a shader compiler and material generator in Runtime?

yes https://docs.godotengine.org/en/stable/tutorials/content/procedural_geometry/index.html
https://docs.godotengine.org/en/stable/tutorials/content/procedural_geometry/immediategeometry.html#doc-immediategeometry

materials and shaders are resources that can be created at runtime
https://docs.godotengine.org/en/stable/tutorials/shading/shader_materials.html

materials and shaders are resources that can be created at runtime
Can it run with GDNative?

Yes GDNative can and will do anything that godot can

ImmediateGeometry is slow with complex meshes (or if you have lots of instances), so I wouldn't rely on it.

We released EffekseerForGodot3.
Please try it out and give us feedback.
https://github.com/effekseer/EffekseerForGodot3/releases/tag/160Beta1


Fix typo in imputesex docs

The first imputesex example contains the line (within an exportsamples command):
F=sa.imputesex.F
It should be:
F=sa.imputesex.Fstat

And "ImputedSex=sa.imputesex.imputedSex" isn't a thing, either.

Thanks Kyle!


jaws deploy - InvalidSignatureException: Signature expired

I've tried to deploy a lambda function and got this:
****** JAWS: Deploying your Lambda function to AWS Lambda.  This could take a few minutes...
****** JAWS: Zipping up your Lambda Function's files...
****** JAWS: Uploading your Lambda Function to AWS Lambda with these parameters:
{ Code: { ZipFile: <Buffer 50 4b 03 04 0a 00 00 00 08 00 00 76 06 47 4c 26 27 f8 d9 00 00 00 fa 00 00 00 0a 00 00 00 65 76 65 6e 74 2e 6a 73 6f 6e 25 8e 4d 8f 82 30 14 45 f7 fe ... > },
  FunctionName: 'api_users_show',
  Handler: 'index.handler',
  Role: 'arn:aws:iam::343927519172:role/jaws_lambda_role',
  Runtime: 'nodejs',
  Description: 'None',
  MemorySize: 513,
  Timeout: 5 }
{ [InvalidSignatureException: Signature expired: 20150806T131223Z is now earlier than 20150806T131534Z (20150806T132034Z - 5 min.)]
  message: 'Signature expired: 20150806T131223Z is now earlier than 20150806T131534Z (20150806T132034Z - 5 min.)',
  code: 'InvalidSignatureException',
  time: Thu Aug 06 2015 15:20:34 GMT+0200 (CEST),
  statusCode: 403,
  retryable: true }

Any clue what happened?

Hmm, I'm not sure.  Try the AWS developer forums in the interim:  https://forums.aws.amazon.com/forum.jspa?forumID=186&start=0
And when I get home tonight, I'll look into this.

Usually this happens when your machine's clock get out of sync. Depending of your OS there are different ways to force resync it.
For example on Ubuntu: sudo ntpdate ntp.ubuntu.com
I hope this helps.

Is this time to deploy normal (32 min)?
[2015-08-07T10:36:21.988Z] ****** JAWS: Deploying your Lambda function to AWS Lambda.  This could take a few minutes...
[2015-08-07T10:36:34.351Z] ****** JAWS: Zipping up your Lambda Function's files...
[2015-08-07T10:36:35.116Z] ****** JAWS: Uploading your Lambda Function to AWS Lambda with these parameters:
[2015-08-07T10:36:35.117Z] { Code: { ZipFile: <Buffer 50 4b 03 04 0a 00 00 00 08 00 8b 64 07 47 4c 26 27 f8 d9 00 00 00 fa 00 00 00 0a 00 00 00 65 76 65 6e 74 2e 6a 73 6f 6e 25 8e 4d 8f 82 30 14 45 f7 fe ... > },
  FunctionName: 'api_users_show',
  Handler: 'index.handler',
  Role: 'arn:aws:iam::343927519172:role/jaws_lambda_role',
  Runtime: 'nodejs',
  Description: 'None',
  MemorySize: 513,
  Timeout: 5 }
[2015-08-07T11:08:48.274Z] { [InvalidSignatureException: Signature expired: 20150807T110048Z is now earlier than 20150807T110348Z (20150807T110848Z - 5 min.)]
  message: 'Signature expired: 20150807T110048Z is now earlier than 20150807T110348Z (20150807T110848Z - 5 min.)',
  code: 'InvalidSignatureException',
  time: Fri Aug 07 2015 13:08:48 GMT+0200 (CEST),
  statusCode: 403,
  retryable: true }

I just started over to deploy a lambda function with the latest version of jaws: it works and within no time (32s).
Thanks, @ac360, @olivierkaisin.

@remicastaing Sorry, I lost track of this issue.  Please re-open this Issue if it troubles you again!


Predicting Premier League Outcomes with Machine L.

Is your feature request related to a problem? Please describe.
dataset = https://www.kaggle.com/datasets/thamersekhri/premier-league-stats-2022-2023/code
Here we use ML to make predictions of the output of Premier league
Describe the solution you'd like
This project is inspired by https://www.kaggle.com/code/xreina8/predicting-premier-league-outcomes-with-machine-l
Describe alternatives you've considered
No response
Additional context
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

I raised this issue to work on it myself.


New Content or Feature Update?

The last content update was, I believe, September 2023. In light of New Outlook, New TEAMS, New Planner, changes in Viva, etc. etc. some of the content is a bit dated. is there an update coming soon to address these changes?
And the last feature update was in 2021. Is there an update there on the horizon?

@LisaJo48 Thanks for using Learning Pathways. We have been having technical difficulties in the content department as you can see in #786. The Microsoft team and I are working to resolve those issues and get the content pipeline flowing again. We also have a new update to the code coming soon.  Please keep an eye on that issue for any updates.


Update application-gateway-waf-configuration.md

Changing 1-KB and 128-KB to 1KB and 128KB in the below. The '-' in there is misleading and causes the reader to read that as a range when it is not.
"The maximum request body size field is specified in kilobytes and controls overall request size limit excluding any file uploads. This field can range from 1-KB minimum to 128-KB maximum value. The default value for request body size is 128 KB"

@streetratz : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@streetratz Thanks for your contribution. Microsoft style is to use a hyphen when a number and "KB" are used as an adjective. I revised the sentence for clarity and will merge the PR.


PWA-612: Fix to disable the checkout button visually

now the button looks disabled agein when the checkout is not possible

Pull Request Test Coverage Report for Build 930

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 39.988%

Totals

Change from base Build 918:
0.0%

Covered Lines:
1529

Relevant Lines:
3817

💛  - Coveralls


[WIP] bugfix for noetic release

The khi_robot packages can be built after the noetic release of moveit https://github.com/ros/rosdistro/commit/d8828c943a8c7c9725ace53be6b1eb066cdce40f.
Some tests still seem to fail though.

ubuntu@37f1d085f80f:~/ws_khi_robot$ catkin_make test
Base path: /home/ubuntu/ws_khi_robot
Source space: /home/ubuntu/ws_khi_robot/src
Build space: /home/ubuntu/ws_khi_robot/build
Devel space: /home/ubuntu/ws_khi_robot/devel
Install space: /home/ubuntu/ws_khi_robot/install

Running command: "make cmake_check_build_system" in "/home/ubuntu/ws_khi_robot/build"

Running command: "make test -j8 -l8" in "/home/ubuntu/ws_khi_robot/build"

Running tests...
Test project /home/ubuntu/ws_khi_robot/build
Start  1: _ctest_khi_duaro_description_roslaunch-check_tests_roslaunch_test_duaro.xml
1/13 Test  #1: _ctest_khi_duaro_description_roslaunch-check_tests_roslaunch_test_duaro.xml ...............   Passed    1.18 sec
Start  2: _ctest_khi_duaro_moveit_config_roslaunch-check_tests_roslaunch_test_moveit_duaro.xml
2/13 Test  #2: _ctest_khi_duaro_moveit_config_roslaunch-check_tests_roslaunch_test_moveit_duaro.xml ......   Passed    1.59 sec
Start  3: _ctest_khi_rs_description_roslaunch-check_tests_roslaunch_test_rs007l.xml
3/13 Test  #3: _ctest_khi_rs_description_roslaunch-check_tests_roslaunch_test_rs007l.xml .................   Passed    1.15 sec
Start  4: _ctest_khi_rs_description_roslaunch-check_tests_roslaunch_test_rs007n.xml
4/13 Test  #4: _ctest_khi_rs_description_roslaunch-check_tests_roslaunch_test_rs007n.xml .................   Passed    1.18 sec
Start  5: _ctest_khi_rs_description_roslaunch-check_tests_roslaunch_test_rs080n.xml
5/13 Test  #5: _ctest_khi_rs_description_roslaunch-check_tests_roslaunch_test_rs080n.xml .................   Passed    1.16 sec
Start  6: _ctest_khi_rs007l_moveit_config_roslaunch-check_tests_roslaunch_test_moveit_rs007l.xml
6/13 Test  #6: _ctest_khi_rs007l_moveit_config_roslaunch-check_tests_roslaunch_test_moveit_rs007l.xml ....   Passed    1.55 sec
Start  7: _ctest_khi_rs007n_moveit_config_roslaunch-check_tests_roslaunch_test_moveit_rs007n.xml
7/13 Test  #7: _ctest_khi_rs007n_moveit_config_roslaunch-check_tests_roslaunch_test_moveit_rs007n.xml ....   Passed    1.52 sec
Start  8: _ctest_khi_rs080n_moveit_config_roslaunch-check_tests_roslaunch_test_moveit_rs080n.xml
8/13 Test  #8: _ctest_khi_rs080n_moveit_config_roslaunch-check_tests_roslaunch_test_moveit_rs080n.xml ....   Passed    1.52 sec
Start  9: _ctest_khi_robot_control_rostest_tests_test_main.xml
9/13 Test  #9: _ctest_khi_robot_control_rostest_tests_test_main.xml ......................................   Passed    8.80 sec
Start 10: _ctest_khi_robot_test_rostest_tests_khi_robot_control_test_khi_robot_control_duaro.xml
10/13 Test #10: _ctest_khi_robot_test_rostest_tests_khi_robot_control_test_khi_robot_control_duaro.xml ....***Failed    0.77 sec
Start 11: _ctest_khi_robot_test_rostest_tests_khi_robot_control_test_khi_robot_control_rs007n.xml
11/13 Test #11: _ctest_khi_robot_test_rostest_tests_khi_robot_control_test_khi_robot_control_rs007n.xml ...***Failed    0.76 sec
Start 12: _ctest_khi_robot_test_rostest_tests_khi_robot_control_test_khi_robot_control_rs007l.xml
12/13 Test #12: _ctest_khi_robot_test_rostest_tests_khi_robot_control_test_khi_robot_control_rs007l.xml ...***Failed    0.76 sec
Start 13: _ctest_khi_robot_test_rostest_tests_khi_robot_control_test_khi_robot_control_rs080n.xml
13/13 Test #13: _ctest_khi_robot_test_rostest_tests_khi_robot_control_test_khi_robot_control_rs080n.xml ...***Failed    0.76 sec
69% tests passed, 4 tests failed out of 13
Total Test time (real) =  22.70 sec
The following tests FAILED:
10 - _ctest_khi_robot_test_rostest_tests_khi_robot_control_test_khi_robot_control_duaro.xml (Failed)
11 - _ctest_khi_robot_test_rostest_tests_khi_robot_control_test_khi_robot_control_rs007n.xml (Failed)
12 - _ctest_khi_robot_test_rostest_tests_khi_robot_control_test_khi_robot_control_rs007l.xml (Failed)
13 - _ctest_khi_robot_test_rostest_tests_khi_robot_control_test_khi_robot_control_rs080n.xml (Failed)
Errors while running CTest
make: *** [Makefile:130: test] Error 8
Invoking "make test -j8 -l8" failed

Fails of tests on noetic seem to be due to changes of the return value of MoveGroupCommander.plan().
melodic (https://github.com/ros-planning/moveit/blob/783f6b4e990facd8bf2eabc16828db9661b4d1c6/moveit_commander/src/moveit_commander/move_group.py#L505-L520) and noetic (https://github.com/ros-planning/moveit/blob/3cc363372a6e52d378e6907096979ccff49cdccf/moveit_commander/src/moveit_commander/move_group.py#L508-L532)

In noetic with armhf, gazebo_ros package seems not to be released. ( build failed http://build.ros.org/job/Nbin_ufhf_uFhf__gazebo_ros__ubuntu_focal_armhf__binary/ )
Fails of noetic test on armhf is due to this package.

gazebo_ros depends on gazebo_dev package, and gazebo_dev package depends on gazebo.
In focal (20.04), rosdep 'gazebo' entry refer to gazebo11. But gazebo11 is not released in osrf repository. http://repositories.ros.org/ubuntu/building/dists/focal/main/binary-armhf/Packages
I cannot find CI information about the osrf repository.
But build of gazebo9 in the ubuntu official repo for armhf fails because libqtpropertybrowser-dev is not released for armhf in focal.

Asking https://github.com/osrf/gazebo/issues/2857

rebased on origin/master and remove armhf support.

Seems that this works in simulation mode and gazebo.

@sktometometo thanks!