V6: Error in code after an async validation results in swallowed Errors (maybe bluebird specific)

https://github.com/erikras/redux-form/blob/v6/src/reduxForm.js#L226
Let's say I make a typo in my onSubmit() function, causing a TypeError or something similar.
The resulting error causes a rejected promise (this might depend on promise library, bluebird wraps all continuations with tryCatcher).
The listenToSubmit function handles the submit promise (which is a result of having async validation).
The second argument to .then() "handles" the error.
I would like to suggest to have a different approach (or something similar which allows binding to this):
return promise.then(this.submitCompleted, (err) => {
  this.submitCompleted();
  return Promise.reject(err);
})

This way the Promise library taking the then can handle the rejection as needed.
This works well with bluebird, and I expect it to also work with native promises.

That seems reasonable.

Addressed in #1203. Will be in next release.


reformat of source

Is someone interested in doing a quick reformat of all of the source? There are inconsistencies in the formatting...For example, please look at InstanceDataDAOCassandra.java
I can quickly do this as my editor updates everything to a standard automatically.

Can you point to some examples of the inconsistencies?

Please note that I am not fastidious when it comes to style. However, in this case I think a quick run of a formatting tool will help improve consistency in whitespace / formatting.
Source code formatter
Google released a source code formatter: https://github.com/google/google-java-format
I believe there is also a source code formatter in Eclipse that can be used from the command line (I'd have to look into this).
If we pick a CLI tool, we can easily add a pre-commit hook to ensure that all commits conform to the same style.
Examples
The following are some examples from the first 3 source files.

DynomitemanagerConfiguration.java

line 353 vs. 366: tabs and spaces in mixed use. Repeats in multiple methods.

FloridaProcessManager.java

lines 204, 205: not indented properly
same mixed use of tabs, spaces, trailing whitespace

FloridaStandardTuner.java

line 142 indentation level is wrong
line 149 indentation level is wrong

You are right. Feel free to do it across the board, or otherwise I will work on it as we change files using the Java Convention.

I have created a branch that shows the Eclipse Java Conventions applied to every .java file. As a result, it's a lot of change in a single commit.

Eclipse Java Conventions style: https://github.com/DynomiteDB/dynomite-manager/tree/coding-style-eclipse

If this looks okay then I'll issue a PR.

Can we use Java convention instead of eclipse style? Most folks are using Intellij IDEA.

I find strange and incorrect the use of  <p/> inside the licenses. If we are to use HTML tags then we should use them in the correct way. Not sure how much manual effort it is to remove them. Thoughts>

Agreed. I plan to manually clean up that stuff along with any other minor formatting issues.

ok cool, let me know and I take a look in the PR.


Release Notes 1.41.0 / Tooling 0.31.0

Release notes for 1.41.0 / Tooling 0.31.0

@ricardozanini There were some missing bits, I did the same as Tristan did last time in #372. Can you merge the PR #389? Also the updated contributing guidelines were not pushed to main from the previous PR, should I backport to main?

Please do it since I saw the contribution guide and there weren't any hits.

@paulovmr do you mind taking a look?


Add upstream directive

Hi! First PR here!
I added the upstream directive mentioned in #115
This adds the ability to add an upstream directive to a proxy block, and is also compatible with the common format. Also support for port ranges is added, so the formats below will be supported:
proxy / localhost:80 {
    upstream example.com:8080-8090
    ....
}

proxy / {
    upstream example.com:8080-8090
    ....
}

proxy / localhost:80 {
    ....
}

proxy / {
    upstream example.com:8080-8090
    upstream localhost:2222-2225
    ....
}

...and so on.
I also added some tests for it.
Expecting your impressions about it!

Woah, this is awesome. Nice work!! Will take a closer look very soon.

I cannot see anything obviously wrong with this, the tests are a breath of fresh air, and the cross-platform CI checks pass. Are you sure this is really your first pull request? :+1:
I'll squash and merge this so it's sure to go out for the 0.9 betas coming up in a week or two. That way folks can put it through the wringer before the stable release.

... and my twitchy finger did a merge instead of a squash and merge 😞  Oh well.
@marc-gr I'm going to give you push rights so you can more easily contribute to the code base - reviewing pull requests, committing to branches, etc. Feel free to contribute again when you can / feel like it!
Thanks for doing this!


Added support for viewfs:// URLs. #645

As stated by @zhezh that hdfs support viewfs
we just need to convert viewfs to hdfs uri internally
and it will work.
Title
Please pick a concise, informative and complete title for your PR.
The title is important because it will appear in our change log.
Motivation
Please explain the motivation behind this PR in the description.
If you're fixing a bug, link to the issue number like so:
- Fixes #{issue_number}

If you're adding a new feature, then consider opening a ticket and discussing it with the maintainers before you actually do the hard work.
Tests
If you're fixing a bug, consider test-driven development:

Create a unit test that demonstrates the bug. The test should fail.
Implement your bug fix.
The test you created should now pass.

If you're implementing a new feature, include unit tests for it.
Make sure all existing unit tests pass.
You can run them locally using:
pytest smart_open

If there are any failures, please fix them before creating the PR (or mark it as WIP, see below).
Work in progress
If you're still working on your PR, include "WIP" in the title.
We'll skip reviewing it for the time being.
Once you're ready to review, remove the "WIP" from the title, and ping one of the maintainers (e.g. mpenkov).
Checklist
Before you create the PR, please make sure you have:

[ ] Picked a concise, informative and complete title
[ ] Clearly explained the motivation behind the PR
[x] Linked to any existing issues that your PR will be solving
[ ] Included tests for any new functionality
[x] Checked that all unit tests pass

Workflow
Please avoid rebasing and force-pushing to the branch of the PR once a review is in progress.
Rebasing can make your commits look a bit cleaner, but it also makes life more difficult from the reviewer, because they are no longer able to distinguish between code that has already been reviewed, and unreviewed code.

@mpenkov could you take a look?

@ChandanChainani Are you able to finish this PR?

@mpenkov I didn't got the chance to complete the test changes.
Please guide me how can i write test cases for viewfs, since we are using hdfs internally same test cases should work.

@mpenkov any suggestion on above comment.

I added some tests. Thank you for your work!


Implementation of Noise sensitivity metrics from RAGChecker

Solves:

#1185

Took inspiration from RAGChecker from AWS  Noise sensitivity noise sensitivity metrics.

Have tested it locally, it is working giving the results.

Input
from datasets import Dataset
from ragas.metrics import noise_sensitivity_relevant, noise_sensitivity_irrelevant
from ragas import evaluate
data_sample = {
    "question": ["What is the Life Insurance Corporation of India (LIC) known for?"],
    "ground_truth": ["The Life Insurance Corporation of India (LIC) is the largest insurance company in India, established in 1956 through the nationalization of the insurance industry. It is known for managing a large portfolio of investments."],
    "answer": ["The Life Insurance Corporation of India (LIC) is the largest insurance company in India, known for its vast portfolio of investments. LIC contributs to the financial stability of the country."],
    "contexts": [["The Life Insurance Corporation of India (LIC) was established in 1956 following the nationalization of the insurance industry in India.",
        "LIC is the largest insurance company in India, with a vast network of policyholders and a huge investments.",
        "As the largest institutional investor in India, LIC manages a substantial funds, contributing to the financial stability of the country.",
        "The Indian economy is one of the fastest-growing major economies in the world, thanks to the secors like finance, technology, manufacturing etc"]]
}

dataset = Dataset.from_dict(data_sample)
metrics = [noise_sensitivity_relevant, noise_sensitivity_irrelevant]
score = evaluate(dataset,metrics=metrics)
score.to_pandas()

Hi @shahules786,
Got it. Please let me know when you hear back from the author. In the meantime, I’ll check the metrics format you mentioned.
Thanks!

@sahusiddharth I did notice that, thought that using relevant might be more useful but now I think if the user has the ability to switch b/w both using an argument that would be better. Can you modify it to include that behavior?  Then we can add documentation for both in same page.

I’m happy to make the necessary modifications. I would appreciate some additional guidance on how best to return the results when asked for both. Since the output could be returned in multiple types of data, such as dictionaries, named tuples, or tuples, I’m considering the most appropriate format.
{'noise_sensitivity_relevant': 0.0, 'noise_sensitivity_irrelevant': 0.0}

I was thinking to return only the number when asked for a specific one.
Could you please advise on the preferred format for returning these results?

@sahusiddharth Thanks for asking that. I think both should not be an option - it would be one of them 'relevant' or 'irrelevant'. By default, it should stay as 'relevant'.
In upcoming versions, we will introduce caching so avoid llm recalculating the same intermediate results as in this case if someone wants both they have two make two calls.

@shahules786, I'm almost done with the documentation, to properly show the power of noise sensitivity, the example is getting long, Do you have a problem with that?

@sahusiddharth We can refine it later , but I also show some basic examples here

@shahules786, Have gone through them, I didn't liked it that much the answers generated by llm is rarely using the information provided in the context and I didn't find it intuitive enough.

@sahusiddharth I agree, their dataset generation is naive.

Hi @jjmachan, Can you please have a look?

Hi @sahusiddharth @shahules786 , thanks for your interest to RAGChecker. I'm the coauthor of RAGChecker. This is a nice work for integrating Noise Sensitivity into Ragas.
Regarding your comments on ground truth answer generation, I want to make some clarifications. We took the short answers and the annotated ground truth passages (the context) as input to generate long-form answers. And then, to ensure the answers are faithful to the context, we use RefChecker to fiter out answers that contains hallucinations. So the generated answers are always stick to the provided context.
Please refer to Appendix A.2 in RAGChecker paper. Thanks!

@shahules786, Have gone through them, I didn't liked it that much the answers generated by llm is rarely using the information provided in the context and I didn't find it intuitive enough.

hey @HuXiangkun thanks a lot for clearing that up ❤
would love to have you in our community and stay in touch if you would be interested 🙂

Hi @jjmachan , I'm glad to stay in touch!

just send you a mail 🙂

Hi @sahusiddharth
which ragas version you are using for the evaluation of noise sensitivity metrics?


Maintenance

Doc and requirements updates, small bug fix.

Linting failing due to safety exceptions:
+==============================================================================+
| REPORT                                                                       |
| checked 57 packages, using free DB (updated once a month)                    |
+============================+===========+==========================+==========+
| package                    | installed | affected                 | ID       |
+============================+===========+==========================+==========+
| wheel                      | 0.37.1    | <0.38.1                  | 51499    |
| setuptools                 | 47.1.0    | <65.5.1                  | 52495    |
| safety                     | 1.10.3    | <2.2.0                   | 51358    |
| py                         | 1.11.0    | <=1.11.0                 | 51457    |
| gitpython                  | 3.1.27    | >0                       | 52322    |
| dparse                     | 0.5.1     | <0.5.2                   | 50571    |
| certifi                    | 2022.5.18 | <2022.12.07              | 52365    |
+==============================================================================+

However, not fixing these dependencies at the moment. Fixing these is part of a bigger change that may require upgrading to Python 3.8+ due to importlib-metadata and flake8 on 3.7.


syntax error in macro processing

Verible fails to process valid macro.
When processing a macro that contains a comment verible gets confused. The comment uses // so it ends up with // after processing it. This  expansion is allowed by the LRM. VCS accepts this with no problem..
To Reproduce
`define PRAGMA_COVERAGE_ON  \
  /``/VCS coverage on

`define PRAGMA_COVERAGE_OFF \
  /``/VCS coverage off

module test (input logic in);

  always_comb begin : src_fsm
    unique case (in)
  `PRAGMA_COVERAGE_OFF
      default: ;
  `PRAGMA_COVERAGE_ON
    endcase
  end
endmodule

Include any options used.
Actual behavior:
verible gets a syntax error.
Expected behavior
The expectation is that the PRAGMA_COVERAGE_ON macro will expand to the following:
//VCS coverage on
The reason is that when the text is parsed it will not be considered a straight comment because of the /``/ token, but after expansion the two slashes will be joined per IEEE 1800-2017 section 22.5.1, page 680, and the expansion will be a comment.

which of the verible tools were you using ? The verible-verilog-syntax for instance does not do preprocessing yet (work in progress to wire that up), but the standalone preprocessor does so it might work with that.
Adding @karimtera to verify if the preprocessor can deal with it.

The preprocessor doesn't handle the concatenation double back-ticks so far.
I don't remember if we have a TODO for this or not, let me check.

I was using verible-verilog-format.

Is there an update on this issue? We would like to ramp up the usage of this type of macro in our codebase.


Update of Apache Commons Text - Arbitrary Code Execution (ACE) Vulnerability (Text4Shell) (CVE-2022-42889)

We found out that one of the tool named MobSF uses JADX for its static analysis and found out that it was using the Apache Commons Text version 1.9 which we found here:
/var/lib/docker/overlay2//diff/home/mobsf/Mobile-Security-Framework-MobSF/mobsf/StaticAnalyzer/tools/jadx/lib/commons-text-1.9.jar
The updated version that will resolved the issue is v1.10 - https://commons.apache.org/proper/commons-text/download_text.cgi

Thank you for your report but Jadx has already updated to commons-text 1.10.0 in commit 711419a7 on Oct. 2nd.
Therefore the latest version 1.4.5 released on Oct. 20th already uses the fixed version of commons-text.


Event Tracking Error - Events not being tracked.

I've added click tracking per your documentation where I've added the following to link classes:

I am not able to see the tracking on my admin console. Is there something I am missing?

My links are anchor tags with href links. I see that your docs reference the use of a button element. Is this an issue of using a button vs a ?

Looks like this is a bug. The tracker is not allowing uppercase letters in the event name.

I'll try and get a release out tonight with the fix

@mikecao Thank you for the fix.


Run pylint and flake8 from git hooks

You can run both flake8 and pylint with git-commit-hooks using flake8 --install-hook git and pip install git-pylint-commit-hook

Closing this as I have made some other changes that I will request soon.


Methods for use standard strings as encrypt/decrypt input/output

Why
I had some problems using python implementation. I could not decode data that was encoded by JavaScript (In-Browser Magical Demo) or vice-versa.
Using binary string is not that common for python developers so I wrote some encrypt/decrypt methods that works with standard python strings.
Usage
>>> import triplesec
>>> x = triplesec.encrypt_ascii(b"IT'S A YELLOW SUBMARINE", b'* password *', digest="hex")
>>> print x
1c94d7de00000003c46ab271623b085fbf89bb85d73eb16bcb151ca2ccca3324927636474107a86ac2ed86361bdfeef1b8be203a4b5595ffefb9b0d278a03a1edfe400292183698135b59799e2b2abd04567e66f9da4a9abfdac0a5153e43432b5d2623d0e87e3a4757fca9f683312d552d735b4985e0fd82581d7892e2b698d65ee1b34a204a812d3874508f325e916bc3d586d7a8cc74ffb660849c41b42bb0e8628a338bb2348586800cdc74d6a3cc0bb35cb986c1575819b086cc297da1455df5216eec372d43b3a7848800f0a9cee2d43931cbe579850ef6acafc9b03d3a37c5c4ae68772
>>> print triplesec.decrypt(x, b'* password *', digest="hex")
IT'S A YELLOW SUBMARINE

>>> from triplesec import TripleSec
>>> T = TripleSec(b'* password *')
>>> x = T.encrypt_ascii(b"IT'S A YELLOW SUBMARINE", digest="base64")
>>> print x
HJTX3gAAAANdSkGmu4+l0MvZN2nF1DFlO+zLhMK+u8u7WPDH2imZ/gaIhR64H7H1FgwodIHOd/Rnpq41nJNTcHqGkCZK+rYZgVhF64iWzmsoLjhh869pA5C+MCyC79RewMAoSfKVCwTM/OkJbC6vbo1RdB9OuvoVC+F7jXqKqT6iAA8/EUPhzwQLwb3uolU0z0UeMuUe4p0WJ6QTbMj0RHZuUN1f0ucevDG2g3pe+r0O6E/Kq7/NBesmEPGjVAAx6UzBy7s2RvUNCBLUa97R8+hJtSztf0FOEAA7zW06Kt3DD0FrcxwL
>>> print T.decrypt_ascii(x, digest="base64")
IT'S A YELLOW SUBMARINE

Oh, typo on DocStrings:
'Available', not 'Avaiable'


SQL o/p result Pin the tab is not working  and Keep opening in Same pined TAB - pls FIX IT ASAP

Description
Version <IP_ADDRESS>408041450
Release Date : Aug 5
I have run 1 query and o/p put in pined and

again I have run another query and  the o/p  is opened same PIN tab. This is really irritating - This issue started with new version pls fix this ASAP - or let me Know how to fix it

DBeaver Version
Version <IP_ADDRESS>408041450
Operating System
windows 12
Database and driver
DB2
Steps to reproduce
No response
Additional context
No response

Thank you for bug report.
I'm closing it as it's a duplicate of https://github.com/dbeaver/dbeaver/issues/35072
You can try Early Access version with fix (https://dbeaver.io/files/ea/) or wait for the next release


SERVER_COUNTRIES has not description of what to fill it with

URL to the Wiki page
https://github.com/qdm12/gluetun-wiki/tree/main/setup/providers
What's missing?
There doesn't appear to be a list of options.  Even though I know what I want, your example is NETHERLANDS, the Surfshark file says nl-ams.  So for nz-akl the SERVER_COUNTRIES would be what?  NZ?  NEW ZEALAND?  NEW_ZEALAND?
I'm honestly not sure how this is supposed to work.  I assume I just put my openvpn file into surfshare and ignore this field?  What does it do?

I just signed up with Surfshark recently, and was looking to use gluetun now too. Though I'm using wireguard and not OpenVPN like you.
I believe what you are looking for is on this wiki page: https://github.com/qdm12/gluetun-wiki/blob/main/setup/servers.md#list-of-vpn-servers
and the first few lines of output for surfshark show like this:
| Region | Country | City | Hostname | MultiHop | TCP | UDP |
| --- | --- | --- | --- | --- | --- | --- |
| Europe | Albania | Tirana | `al-tia.prod.surfshark.com` | ❌ | ✅ | ✅ |
| Europe | Albania | Tirana | `al-tia.prod.surfshark.com` | ❌ | ❌ | ✅ |
| Middle East and Africa | Algeria | Algiers | `dz-alg.prod.surfshark.com` | ❌ | ✅ | ✅ |
| Middle East and Africa | Algeria | Algiers | `dz-alg.prod.surfshark.com` | ❌ | ❌ | ✅ |
| Europe | Andorra | Andorra la Vella | `ad-leu.prod.surfshark.com` | ❌ | ✅ | ✅ |
| Europe | Andorra | Andorra la Vella | `ad-leu.prod.surfshark.com` | ❌ | ❌ | ✅ |
| The Americas | Argentina | Buenos Aires | `ar-bua.prod.surfshark.com` | ❌ | ✅ | ✅ |
| The Americas | Argentina | Buenos Aires | `ar-bua.prod.surfshark.com` | ❌ | ❌ | ✅ |

Oddly enough though, I'm having trouble having it respect any env variables I put in; Country is the only one that works. (haven't tried region but its too broad for me). City doesn't work, and Hostname doesn't either. I saw somewhere else to add the :51820 to the end of the hostname, but that also didn't work. Maybe OpenVPN will act different? You can always try it out, but I think you want the full city names like from the output above; so, SERVER_COUNTRIES='New Zealand'
If you want to use the OpenVPN config file, I did find a page for that but seems like it isn't recommended: https://github.com/qdm12/gluetun-wiki/blob/main/setup/openvpn-configuration-file.md#implicit-behavior

@marshalleq Read the last section: https://github.com/qdm12/gluetun-wiki/blob/main/setup/providers/surfshark.md#servers
@duderin0 all these values in the table are used to filter servers built-in Gluetun (in the servers.json file), so it has to be an exact match.

I'm having trouble having it respect any env variables I put in; Country is the only one that works.

Please create an issue on the gluetun repo (not the wiki) if this is the case. Maybe try updating your servers data to make sure this is not the case? Thanks!

I did read this last section already and re-reading it I still believe it doesn't say what to put.  What do you put for New Zealand?  What I'm asking is, so it has to be an exact match, where is the exact thing for New Zealand that I match it to?  I can't see it anywhere.


wrong paths in the build

When I'm trying to work with path package and access some files in the main.ts file it doesn't build well. In the build paths are related to the build/main.js file. But files are in the src directory. I'm new in the node.js, I can't find solution on the Internet. Sorry for the stupif question

I just connected esbuild to fix this


Import azuread groups

Add import azureAD Groups as described in https://github.com/DefectDojo/django-DefectDojo/issues/5988.

is_azure is not showing up in the OpenAPI description, ideas?
Do I have to add migrations by myself (like in the PR)?
Most code and diagram created with Stella Stars.

The error in the unit test is:
uwsgi_1         | 	text: Login failed uwsgi_1         |

password

Unable to authenticate to JIRA. Please check the URL, username, password, captcha challenge, Network connection. Details in alert on top right. JiraError HTTP 401 uwsgi_1         | 	text: Login failed uwsgi_1         |

Which I assume is not comming due to my changes.

Great addition. I recently used AzureAD groups in Dependency Track via OIDC and I didn't need to query the graph API to get the group names. I could set the groups claim to contain the sAMAccountName of the groups which is basically the human readable name. Would that work here maybe?

The error in the unit test is:

The actual error is lower in the logs: https://github.com/DefectDojo/django-DefectDojo/runs/5835554090?check_suite_focus=true#step:8:2493
uwsgi_1         | ======================================================================
uwsgi_1         | FAIL: test_create (unittests.test_rest_framework.DojoGroupsTest)
uwsgi_1         | ----------------------------------------------------------------------
uwsgi_1         | Traceback (most recent call last):
uwsgi_1         |   File "/app/unittests/test_rest_framework.py", line 83, in wrapper
uwsgi_1         |     f(self, *args, **kwargs)
uwsgi_1         |   File "/app/unittests/test_rest_framework.py", line 357, in test_create
uwsgi_1         |     self.assertEqual(201, response.status_code, response.content[:1000])
uwsgi_1         | AssertionError: 201 != 500 : b'{"message":"Internal server error, check logs for details"}'

Thx, fixed

Regarding the request from @StefanFl and @valentijnscholten:
I detect groupIDs based on the pattern now and only fetch more information in case it is a groupID. Does this suites your needs?

To solve the second issue I would prefer a mapping of the AD groups to DD groups. Then users still have control over amount and naming of DD groups. Lots of other tools do it this way.
Dependency Track for example allows such a mapping in the UI. I do aggree that this is a good addition, which should be taggled in an extra issue (due to my limited python knowledge I am not able to do that).

Regarding limitation of group imports: The provided groups in the access_token should be handled by the IDP/AzureAD from my point of view (see for example https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-add-app-roles-in-azure-ad-apps#assign-users-and-groups-to-roles).

Hi @StefanFl ,
one of my clients has a naming convention of "team- for azureAD groups. A group filter via regex could be applied here to limit the amount of groups in case the IDP is not able to.
An other client doesn't have such a convention, here the filter would need to be a list expressed as regex.
Would such an ENV-var (e.g. DD_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_GROUPS_FILTER) be suffient for you?
A downside would be the need to restart defectdojo in order to apply the new groups filter via ENV-var.

I am not completely sure how much a group filter would help me. Nevertheless it would be great if you would implement it. Then I would like to see how this works in a productive environment (by having it in our next release) and then see if we need an additional mapping mechanism.

@StefanFl , I added the filter.
I assume the Flake8 error, is like you commented in other PRs, not related to this PR:
+ git log -1
current commit
fatal: unsafe repository ('/github/workspace' is owned by someone else)
[...]

Was quite busy last week but will find time to review the PR at the weekend.

Great PR. Left some comments for consideration, some of them are just thinking out loud and could be for a future PR.

@wurstbrot You have to rename the db migration and change the reference in there, because there's a new db migration on the dev branch.

@wurstbrot You have to rename the db migration and change the reference in there, because there's a new db migration on the dev branch.

Done

Some loose ends, added some comments. Could you also resolve any discussions that have been resolved/completed so it is clear when the PR is "done"?

I had a similar idea with SAML and OpenID in my mind for a longer time.
Do you mind, is it possible to make it a bit more universal - to be able to adopt a similar approach for other SOCIALs?
What do I mean:
change
     is_azure = models.BooleanField(default=False, null=False, help_text="Group imported from Azure AD.", verbose_name="Is Azure AD Group")

to
    AZURE = 'azure'
    SOCIAL_CHOICES = (
        (AZURE, _('Azure')),
    )
...
    is_social = models.CharField(max_length=10, choices=SOCIAL_CHOICES, blank=True, null=True)

Plus adopt this change in the rest of the code.

Maybe it is a good idea to add the new field also here: https://github.com/DefectDojo/django-DefectDojo/blob/d55fb295e3eae8167af320c545445b2098422737/dojo/api_v2/views.py#L102

both recommendations are added and tested.

@wurstbrot I can see no added commit.

sorry, pushed now


feat(api/rpc): Implement auth middleware on Server

Related to #1187
This PR is based on #1313
It implements:

providing a new JWT secret from the nodebuilder/node module to both the node module and the rpc server.
auth middleware for the rpc.Server that verifies the given token with the server's secret

In a follow-up PR will come the ability to create an rpc client with elevated permissions (this branch restricts client access to read-only API methods).

Codecov Report

Merging #1402 (febda2a) into main (95907f4) will decrease coverage by 0.70%.
The diff coverage is 14.82%.

@@            Coverage Diff             @@
##             main    #1402      +/-   ##
==========================================
- Coverage   55.33%   54.63%   -0.71%
==========================================
  Files         180      196      +16
  Lines       10962    11768     +806
==========================================
+ Hits         6066     6429     +363
- Misses       4296     4711     +415
- Partials      600      628      +28

Impacted Files
Coverage Δ

nodebuilder/das/das.go
0.00% <0.00%> (ø)

nodebuilder/fraud/fraud.go
0.00% <0.00%> (ø)

nodebuilder/header/header.go
0.00% <0.00%> (ø)

nodebuilder/module.go
100.00% <ø> (ø)

nodebuilder/p2p/p2p.go
51.11% <0.00%> (-34.08%)
:arrow_down:

nodebuilder/share/share.go
0.00% <0.00%> (ø)

nodebuilder/p2p/mocks/api.go
2.66% <2.66%> (ø)

nodebuilder/state/state.go
7.14% <7.14%> (ø)

nodebuilder/node/mocks/api.go
8.33% <8.33%> (ø)

nodebuilder/node/node.go
16.12% <16.12%> (ø)

... and 24 more

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


Reworded to make a bit easier to follow

This PR does not affect the produced WebAssembly code.

Thanks, my first pull request on GitHub :)
I have a fix for the sdk web site as well, I know why the right hand TOC
isn't sticky as intended.
(Why it scrolls with rest of page erratically)
On Fri, Jun 11, 2021, 4:50 AM Claudio Russo @.***>
wrote:

@.**** approved this pull request.
Looks good to me. Thanks for the improvement!
In doc/modules/language-guide/pages/basic-concepts.adoc
https://github.com/dfinity/motoko/pull/2579#discussion_r649807005:

@@ -199,8 +199,7 @@ Other languages that lack lexical scoping may give a different meaning to this p

However, modern languages universally favor lexical scoping, the meaning given here.
Aside from mathematical clarity, the chief practical benefit of lexical scoping is security, and its use in building compositionally-secure systems.
-Specifically, {proglang} gives very strong composition properties: Nesting your program within one you do not trust cannot, for example, arbitrarily re-associate your variable
-occurrences with different meanings.
+Specifically, {proglang} gives very strong composition properties: For example, nesting your program within one you do not trust cannot arbitrarily re-associate your variable occurrences with different meanings.
⬇ Suggested change
-Specifically, {proglang} gives very strong composition properties: For example, nesting your program within one you do not trust cannot arbitrarily re-associate your variable occurrences with different meanings.
+Specifically, {proglang} gives very strong composition properties: For example, nesting your program within one you do not trust cannot arbitrarily redefine your variables with different meanings.
Thanks, would this be even better?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/dfinity/motoko/pull/2579#pullrequestreview-681600921,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADZBJWHROCLBGUIFFN6QJF3TSHE5TANCNFSM46P27KLA
.

@cPlayIt I've just committed the suggestion and added the automerge-squash label for it to merge once CI succeeds. Thanks for th e contribution - I'm sure the sdk website team will be grateful too.

Thanks!
On Mon, Jun 14, 2021, 5:02 PM Claudio Russo @.***>
wrote:

@cPlayIt https://github.com/cPlayIt I've just committed the suggestion
and added the automerge-squash label for it to merge once CI succeeds.
Thanks for th e contribution - I'm sure the sdk website team will be
grateful too.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/dfinity/motoko/pull/2579#issuecomment-860992603, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ADZBJWFYDVUIX2CADQGRZY3TSZU4TANCNFSM46P27KLA
.

There were some merge conflicts. Too many PRs in parallel? I hope I resolved it correctly.


Update Stats NZ business link

https://trello.com/c/aX863wJa
Kia ora,
I was having a look at your site and I noticed that the link on this page (Pātaka Raraunga) to Stat NZ’s tools for businesses is currently going to our archive website redirect page. This is the updated page on our new website. (Data for business | Stats NZ)I think it should cover similar content to the archived website page.
Let me know if you have any questions.
Ngā mihi
Grace

new link https://www.stats.govt.nz/tools/data-for-business


Doc: Design a comprehensive logging specification

Description:
Logging is something that currently is quite basic. We need to improve the logging experience following some convention and open standards. We need it to be configurable and flexible. It should be able to work with spans and provide time duration of upstream request. The level of granularity in terms of tracing should also be configurable. Some inspiration can be taken from proxies such as Nginx, HaProxy, Envoy etc.
Objective:
Develop a design and architecture for the above requirements and create a Pull Request (PR) on GitHub, submitting the proposal in the doc/ folder, using the .md (Markdown) file format.
Acceptance Criteria:
To improve the likelihood of your PR being merged, ensure your proposal emphasizes:

Clarity: The design should be easy to understand and well-documented.
Feasibility: The proposed solution should be practical to implement.
Maintainability: The design should be easy to maintain and adapt in the future.
Efficacy: How effectively the proposed design addresses the problem at hand.

IMPORTANT: You just need to create documentation about the approach and not actually implement the approach.

/bounty 80$

/attempt #524

@tusharmath I would love to work on it
Can you please assign it to me?

@ayusham001 We will allow multiple proposals for this one, so keeping it open if anyone else want's to give it a shot.

/attempt #524

/attempt #524


Figure out how to do tasks with Heroku and Django

Figure out how to implement APScheduler to work with django (you can't just run background tasks with django because the server needs to be started or something) or figure out how to use Celery.
Needed for the class syncing to work.

celery has been conquered


Use underlying SDKs to automatically fill in model options when creating drivers

[x] I have read and agree to the contributing guidelines.

Is your feature request related to a problem? Please describe.
Customers can have a difficult time knowing what models to choose when creating drivers if they don't already know what models exist. For things like gpt-4o it's pretty easy to type.. but for options like sonnet unless you know the exact ids, it's a challenge.
It would be wonderful to be able to use the underlying model SDKs to grab the list of models available and dynamically fill them.
Describe the solution you'd like
Here's a loom demonstrating a modification I did with Anthropic to pull from their list:
https://www.loom.com/share/d7299383d6894101bc14db3fe8c05e43?sid=d4fedfee-ec64-45fa-9477-9a0a12dac9db
And to do the same with OpenAiChatPromptDriver I modified openai_chat_prompt_driver.py:
in the if TYPE_CHECKING: section:
if TYPE_CHECKING:
    from collections.abc import Iterator

    from openai.types.chat.chat_completion_chunk import ChoiceDelta
    from openai.types.chat.chat_completion_message import ChatCompletionMessage
    from openai.types.chat_model import ChatModel # Pull from OpenAi's types
    from griptape.tools import BaseTool

and then I switched the model param:
    # model: str = field(kw_only=True, metadata={"serializable": True})
    model: ChatModel = field(kw_only=True, metadata={"serializable": True}) # Use OpenAi's ChatModel

Describe alternatives you've considered
We could manually create the list, but this seems way more efficient and will adjust automatically as the libraries change.

I've been slowly implementing this in the Griptape ComfyUI nodes.. if it's helpful,  here are the types for OpenAi:
from openai.types import AudioModel, ChatModel, EmbeddingModel, ImageModel
from openai.types.audio.speech_model import SpeechModel


Docker image for ODS environment

This task involves creating a docker image for the ODS environment.

Do we have all of our dependencies documented somewhere? It would be helpful to view them so I know what needs to be added to the Docker container.


Static assets failed to load

Vendors chunk failed to load with a 403:
https://s3.amazonaws.com/static.weave.works/scope-ui/vendors-347ca389e66f1d4b7ba7.js?881b7f6d9790e78d185e

Offending build: master-2a61656 https://circleci.com/gh/weaveworks/scope/6830
For some reason the uploaded vendors.js doesn't match:
upload: client/build-external/vendors-1e4f85cd2fcebb5a6473.js to s3://static.weave.works/scope-ui/vendors-1e4f85cd2fcebb5a6473.js

My theory is that Circle used the assets from cache instead of building them.

It looks like the root cause is the build-external directory getting pushed, when assets were built in the build directory.

We have an open issue to move to a different package manager that should give us deterministic builds:
https://github.com/weaveworks/scope/issues/2090
The main difference is that yarn uses a lockfile checked into version control to ensure that whatever versions are used to build locally are used to build in CI.


Explanation of freebayes output

Hello,
I have a question about the output of freebayes.  The output of my data after using the tools is as follows:

After doing several tests, I think 31312 is the beginning position of variation, which means 31312 is the position of T. However, I am not sure about it since some people told me that 31312 should be the position of A. Could you please tell me the answer?
Thank you.

The REF starts at POS, and you need to compare to ALT.
31312 has ACTC which means
      REF ALT
31312  A   A
31313  C   C
31314  T   T
31315  C   C
           T
           C

This means you have a 2 bp insertion at at 31316.

Thanks for your help. After testing for several times, I found the position of output starts from 1, not 0, right?
Thanks for your details again.

Genome coordinates start at 1, yes, if that is what you mean.

Thanks for your help.

Thanks @tseemann.
Note that the insertion could be interpreted as being at one of several positions. We tend to consider indels at the lowest possible position they could occupy, so 31314 in this case.

Thanks for your help, I got it.
Best wishes.


Results of training on NYU dataset？

train_NYU_without_real_root.log
Here is the training log of Keypoint-Fusion on NYU. The backbone is ConvNeXt-tiny.

Have you conducted experiments on the MSRA and ICVL dataset? Can you provide the dataloader of these two datasets?

Sorry, we only use these RGB-D datasets: DexYCB, HO-3D, STB, and NYU.


Update AutoRest C# version

Update AutoRest C# version

Can one of the admins verify this patch?

In this update: fix to always initialize additional property collections.

/check-enforcer override


How to handle computed values?

Suppose you have a User type that has firstName and lastName but the schema also has a fullName that concatenates the first two. If you don't request firstName and lastName, fullName would be null. How can I get around this?
# schema.graphql
type User {
  firstName: String!
  lastName: String!
}

// resolvers.js
{
  fullName: {
    resolve(parent) {
      return `${parent.firstName} ${parent.lastName}`
    }
  }
}

That is not in scope of what this library do. You need to define these kind of dependencies yourself. This library only provides you with information which fields was requested by user and nothing more. So, to resolve this you should do something like this:
// we mean parent resolver here:
{
    async resolve(src, args, info) {
        const fields = fieldsList(info);

        if (fields.indexOf('fullName') !== -1) {
            // make sure we request dependency fields explicitly, even if they don't requested by user
            if (fields.indexOf('firstName') === -1) {
                fields.push('firstName');
            }
            if (fields.indexOf('lastName') === -1) {
                fields.push('firstName');
            }
        }

        return await fetchEntity(args.id, fields);
    }
}

If you need to utilize other data structures, produced by fieldsMap() or fieldsProjection() adopt the code above to proper circumstances. I guess the general idea should be pretty clear.


current maintenance status of project

Describe the bug
This project makes somewhat of a messy/neglected impression- the latest github release seems the same as the one in nixpkgs, but is apparently outdated (nixpkgs still points to the old target/lorri repo) and to get the latest version, one needs to use the lorri self-upgrade command, after which the version information printed by lorri -V will remain unchanged. Documentation also seems outdated in some parts- the help text for lorri self-upgrade reads:
rolling-release    Upgrade to the current rolling-release version, will be fetched from git and built locally.
                       rolling-release is expected to be more stable than canon. (default)

But using that default seems to "upgrade" to an older version than the one in nixpkgs.
(Doesn't the idea of having a self-upgrade command go against the idea of nix anyway, since this is mutable state outside of the nix config?)
There are several stale PRs e.g. #63
https://github.com/nix-community/lorri/blob/canon/MAINTAINERS.md seems outdated (release.nix numbers don't seem to follow semantic versioning)
Expected behavior
lorri version in nix should be the current version
should lorri self-upgrade be removed?
documentation/help text/default upgrade channel should be updated or at least outdated documentation removed
Is this repository currently maintained? Who is/are the current maintainer(s)?

Thanks for your patience here!
I've just joined maintenance on lorri; I'm looking at a number of these issues and trying to review PRs as I go. @Profpatsch has started a monthly "office hours" we'll both be attending to talk about PRs and design decisions over time; the calendar for that is in IRC.
With regards to self-upgrade, I'd suggest that belongs in a separate issue for discussion.

@NANASHI0X74 The basic state of the project is that it works, some (many?) people use it as their daily driver, it has a few quirks, but not a lot of person-power is available for adding features/squashing the remaining bugs & improving the tool.

We've now shipped 1.7.0 with Flakes support. There are some ideas for features still in progress, but it does work as a daily driver for Nix developement.


AttributeError: 'TimeSeriesKMeans' object has no attribute 'gamma_sdtw'`

First of all, thank you so much for sharing this wonderful package!
You're making my master's thesis much more enjoyable :)
I'm getting a weird error and haven't been able to figure it out. Here's a minimal working example (I can call TimeSeriesKMeans(metric='softdtw').fit(X) without Pipeline() without problems).
I'm on p36, Windows 7 x64. Thanks in advance!
import numpy as np
from sklearn.pipeline import Pipeline
from tslearn.clustering import TimeSeriesKMeans
from tslearn.utils import to_time_series_dataset

X = to_time_series_dataset(np.array([1,2]))
pipeline = Pipeline([
        ('kmeans', TimeSeriesKMeans())
        ])
parameters = {
        'kmeans__metric' : 'softdtw'
        }
pipeline.set_params(**parameters)
pipeline.fit(X)

Traceback (most recent call last):

  File "<ipython-input-8-c4ba89694fd5>", line 10, in <module>
    pipeline.fit(X)

  File "C:\...\sklearn\pipeline.py", line 250, in fit
    self._final_estimator.fit(Xt, y, **fit_params)

  File "C:\...\tslearn\clustering.py", line 531, in fit
    self._fit_one_init(X_, x_squared_norms, rs)

  File "C:\...\tslearn\clustering.py", line 460, in _fit_one_init
    self._assign(X)

  File "C:\...\tslearn\clustering.py", line 480, in _assign
    dists = cdist_soft_dtw(X, self.cluster_centers_, gamma=self.gamma_sdtw)

AttributeError: 'TimeSeriesKMeans' object has no attribute 'gamma_sdtw'

The problem always occurs when changing the parameter "metric" to "softdtw" after creating an instance of TimeSeriesKMeans() with a different metric.
I'm not sure how this is handled in sklearn in general, so this probably is not a bug, but maybe it's safer to allow it. An easy fix would be deleting line 450 from classifiers.py:
if self.metric == "softdtw":
to always set (regardless of the metric paramter)
self.gamma_sdtw = metric_params.get("gamma_sdtw", 1.)

Hi,
Thanks for the bug report and for the fix! :)
It's implemented now (on github and in version <IP_ADDRESS>).

Thanks for committing the fix, glad I could help!


Mesh does not recalculate its BoundingBox when changed.

... it should.

Seems to be fixed: https://github.com/FUSEEProjectTeam/Fusee/blob/master/src/Engine/Core/MeshManager.cs#L79

see #605


iGEN-NET: ValueError: No variables to optimize.

When i trained iGEN-NET, it raised a ValueError:

Traceback (most recent call last):
File "train.py", line 91, in
optimizer_ts = tf.train.AdamOptimizer(learning_rate=LEARNING_RATE).minimize(iGEN.ts_loss, var_list=para_ts)
File "/usr/lib/python2.7/site-packages/tensorflow/python/training/optimizer.py", line 343, in minimize
grad_loss=grad_loss)
File "/usr/lib/python2.7/site-packages/tensorflow/python/training/optimizer.py", line 408, in compute_gradients
raise ValueError("No variables to optimize.")
ValueError: No variables to optimize.

I try to print para_ts and para_rec, but both of them are empty .

Thanks for finding a bug, I already fixed it, welcome to try again.


Transaction Updating

I'm trying to pull my daily/weekly spend, however, mint.com doesn't actually load your transactions until you've logged into the website and let it load itself.
Is there any workaround for this? I'd rather not have to login each day just for the transactions to load, would running a selenium script that logs in for you at a specific time each day be a potential solution?
I tried to sleep for 600 seconds and it still didn't refresh until I actually logged in myself online.
                self.mint = mintapi.Mint(MINT_DETAILS[0], MINT_DETAILS[1], MINT_DETAILS[2], MINT_DETAILS[3])
                print("Sleeping")
                time.sleep(600)
                print("finished sleeping")

Any other recommendations on refreshing it programmatically?

Please just comment on existing issues and/or remind me, instead of creating exactly the same issue again :) #113


git clone -b multiverso-initial  failed!

andy@Andy-UB1604:~/prj/LightLDA$ git clone -b multiverso-initial git@github.com:Microsoft/multiverso.git
Cloning into 'multiverso'...
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
andy@Andy-UB1604:~/prj/LightLDA$

change to Multiverso.git, that is  "git clone -b multiverso-initial git@github.com:Microsoft/Multiverso.git"

you need config Github ssh authentication (follow https://help.github.com/articles/which-remote-url-should-i-use/#cloning-with-ssh-urls) or you can use
git clone -b multiverso-initial https://github.com/Microsoft/Multiverso.git instead


Can we get Video Title?

Can we get videos title and some other details with this plugin?

No, iFrame player doesn't provide such feature. But you can always use YouTube Data Api to get title and every other details about the video.


有中文版说明吗？

有中文版说明吗？

@zhaoxiuyu sorry I don't speak any Chinese ... the best I can tell from google translate is that you're asking for a Chinese version?
I don't believe there is anything stopping you from using this library with chinese strings, if you want chinese documentation that would be better as a fork since I would not feel comfortable maintaining that.

看不懂英文写什么代码


create faces with stylegan and dalle?

amazing job, I was wondering if anyone has a colab notebook to create faces from text with or without stylegan2 by ex.

@molo32 yes! it is now possible, but DALLE is not needed. by simply combining CLIP with Stylegan2, we can now summon images from the latent space of a trained generator. I will add it to my stylegan2 repository https://github.com/lucidrains/stylegan2-pytorch in due time :) focused on equivariant attention for alphafold2 at the moment

@molo32 yes! it is now possible, but DALLE is not needed. by simply combining CLIP with Stylegan2, we can now summon images from the latent space of a trained generator. I will add it to my stylegan2 repository https://github.com/lucidrains/stylegan2-pytorch in due time :) focused on equivariant attention for alphafold2 at the moment

@molo32 feel free to summon faces from https://github.com/lucidrains/deep-daze or https://github.com/lucidrains/big-sleep in the meanwhile :)

@molo32 feel free to summon faces from https://github.com/lucidrains/deep-daze or https://github.com/lucidrains/big-sleep in the meanwhile :)

@molo32 somebody else already did it :) you can try it at https://twitter.com/advadnoun/status/1353453719510163459?s=20

@molo32 somebody else already did it :) you can try it at https://twitter.com/advadnoun/status/1353453719510163459?s=20

@molo32 somebody else already did it :) you can try it at https://twitter.com/advadnoun/status/1353453719510163459?s=20

wow this is awesome!!! any idea how to use this for faces?

@molo32 somebody else already did it :) you can try it at https://twitter.com/advadnoun/status/1353453719510163459?s=20

wow this is awesome!!! any idea how to use this for faces?

@powderblock https://twitter.com/pbaylies/status/1348313176115458048?s=20

@powderblock https://twitter.com/pbaylies/status/1348313176115458048?s=20

@powderblock it'll work with any generator :)

@powderblock it'll work with any generator :)

@powderblock it'll work with any generator! the latent space has suddenly become infinitely more traversable, by way of another neural network as the guide :)

@powderblock it'll work with any generator! the latent space has suddenly become infinitely more traversable, by way of another neural network as the guide :)

Is this done simply by generating a batch of images with a generator, ranking them with clip and trying again randomly until the dot product is high enough ?
Or could this be done instead by retropropagating the error like stylegan encoder is doing ?

Is this done simply by generating a batch of images with a generator, ranking them with clip and trying again randomly until the dot product is high enough ?
Or could this be done instead by retropropagating the error like stylegan encoder is doing ?

@rom1504 both!

@rom1504 both!

Using a multi modal encoder trained for similarity with a generator in that way seems like a really powerful idea.
I wonder if clip would work to generate very accurate descriptions too (take a picture, use a language model to generate text, retropropagate... Until you get good enough dot product with the picture)
And more generally, if we have more such multi modal encoders (text audio, text 3d model, ...), it seems to open the gate to generating almost anything.

Using a multi modal encoder trained for similarity with a generator in that way seems like a really powerful idea.
I wonder if clip would work to generate very accurate descriptions too (take a picture, use a language model to generate text, retropropagate... Until you get good enough dot product with the picture)
And more generally, if we have more such multi modal encoders (text audio, text 3d model, ...), it seems to open the gate to generating almost anything.

@rom1504 if you follow Mario @quasimodo on twitter, he was able to coax out text from CLIP. i think the surer thing to do is to rank text generation from existing caption to text transformers, as an alternative to beam search

@rom1504 if you follow Mario @quasimodo on twitter, he was able to coax out text from CLIP. i think the surer thing to do is to rank text generation from existing caption to text transformers, as an alternative to beam search

@rom1504 yes, multimodal is here, attention was all we need

@rom1504 yes, multimodal is here, attention was all we need

Is that https://twitter.com/Quasimodo ? Seems to be unavailable

Is that https://twitter.com/Quasimodo ? Seems to be unavailable

oops, @ quasimondo

oops, @ quasimondo


Ignore multiple identical subscribers

I had to make subscribers internaly visible in order to test it.

Thanks @garnett! This looks great! As a last step, could you look into the style violations that hound is mentioning? These are coming up, because some of the code violates our SwiftLint ruleset.
The easiest way to do that, is to install SwiftLint locally; that will cause all style violations to show up as warnings in Xcode. Then they should be easy to fix.
Would be great if you could commit a fixup for that, then we're good to go.
Thanks a lot for your contribution :100:

@Ben-G done!

Thanks a lot! I'll need to look into this travis issue before merging, potentially together with @agentk. I can see that a PR on the ReduxKit repo has the same issue.
The underlying issue is that Travis CI does not export environment variables in "untrusted' builds - e.g. forks from an other repo for security reasons:

Similarly, we do not provide these values to untrusted builds, triggered by pull requests from another repository.

This means that for untrusted builds, the GITHUB_ACCESS_TOKEN is not exported; therefore carthage runs without an access token and runs into the API rate-limit issue. This is only an issue for binary downloads - carthage skips binaries when it can't download them and fetches the repos; but Nimble currently doesn't build from source with Carthage on tvOS, so we need to use the binary for that dependency...
Kind of tricky!
We could:

Move away from Carthage as main dependency manager (though that seems overblown since it's a temporary issue which should be resolved once the issue with Nimble is fixed)
Check in the Carthage dependencies
Other ideas?

Let me sleep over this and maybe I can discuss it with @agentk who is the CI setup expert - I definitely want to get this merged tomorrow though (PST).
Sorry for the delay!

Correct. I'm looking into it for https://github.com/ReduxKit/ReduxKit/pull/27 too. I'm looking at using carthage to download the source, then a manual build script for nimble and quick.

@agentk Fantastic!

Btw, the environment variable shouldn't normally be an issue with nimble and quick because just the binaries are downloaded and not done over a pull request. It looks like something has changes though.

In my understanding carthage only uses the access token for binary downloads, [see] here(https://github.com/Carthage/Carthage/pull/669/files). Because cloning a public repository can be done via git, without the need for an access token.
This means only the PRs fail since they don't get access to the token, right?

That makes more sense. I was right, if by right, we mean wrong. :-)

I have not found a reliable way of building Nimble-tvOS using Carthage yet. In order to get builds going again in ReduxKit I've changed the travis tvos target from 'test' to 'build' and changed carthage to build from source on ios and mac only. I'll drop the same into a Swift-Flow fork. You can merge it if your happy enough with it.

Thanks a lot for your contribution @garnett!
And thanks a lot @agentk for fixing this!

@garnett I would like to follow similar guidelines as Moya, when it comes to contributions. So I've invited you as a collaborator of the organization.
No pressure to accept!


CMake related improvements

I was asked to remove all (nasty) workarounds during the process of package submission to openSUSE. These fixes should be helpful for other distributions as well.

These changes all seem pretty fair. Will merge when build's green.


Feat/injected transport proofzero

replaces #700

I think we need to wait on version bump from @open-rpc/client-js
ping @shanejonas


onMoveItem() crash?

Hi,
We got this crash report couple of times in last few weeks since we moved to Advanced Recycler View.
https://gist.github.com/mazurio/ce9b2b3cc4d95a7c710b
We are currently using stable ids and also each id is unique by random number so it shouldn't crash, the crash happened when there were two items and I started dragging it back and forth.
Any ideas? I haven't updated the library yet to the newest one, 0.6.0 is currently used.
Damian

Upgraded to 0.6.2 to see if anything has changed.

Hi Damian,
Thank you for your report. I'll try to reproduce and fix this issue, so I want ask you more detail of the situation.

Do you use any other Advanced RecyclerView features (swipe, expand) or other third party libraries?
What is the version of  Android OS?

Thanks

Hello,
For the advanced recycler view features we use swiping and dragging, no other third party libraries in the same codebase but we use another listener for clicking. I cannot reproduce it often because it happens on different platforms (4.0 and 5.0), so far it happened twice.
I will also message you on Monday with the project that is using Advanced Recycler View to update the GitHub page.
Thanks,
Damian

Hi Damian,
Any update on this issue?

I think so far, there was no crashes but I have also moved to different project so can't update for now until it's released. I will update if I know anything more, I think it's safe to close for now?

Thanks for your response. Okay, I think it should be better to close this issue for now and please re-open this issue if needed.
Could you close this issue yourself in order to keep re-opeanable?
ref.) http://stackoverflow.com/questions/21333654/how-to-re-open-an-issue-in-github

you can re-open your own issues *if you closed them yourself


Night CI 2022-11-23: Failed

action url: https://github.com/spidernet-io/spiderpool/actions/runs/3535395316

Upload the zip file generated from that test failure.
dualstack-debuglog.txt (1).zip

the same bug as https://github.com/spidernet-io/spiderpool/issues/1088


io.gatling:gatling-maven-plugin:4.0.1:test problem

Hi
I am using gatling for java micro services and publish them. Today gatling maven plugin 4.0.1 came and my tests stopped working. I found this error
ozkan@here MINGW64 /d/Projects/test-microservice-frameworks/gatling (master)
$ mvn gatling:test
[INFO] Scanning for projects...
[INFO]
[INFO] -------------------------< com.mascix:gatling >-------------------------
[INFO] Building gatling 1.0-SNAPSHOT
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ gatling ---
[INFO] Deleting D:\Projects\test-microservice-frameworks\gatling\target
[INFO]
[INFO] >>> gatling-maven-plugin:4.0.1:test (default-cli) > test-compile @ gatling >>>
[INFO]
[INFO] <<< gatling-maven-plugin:4.0.1:test (default-cli) < test-compile @ gatling <<<
[INFO]
[INFO]
[INFO] --- gatling-maven-plugin:4.0.1:test (default-cli) @ gatling ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  2.874 s
[INFO] Finished at: 2021-11-24T20:11:08Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal io.gatling:gatling-maven-plugin:4.0.1:test (default-cli) on project gatling: Gatling failed.: java.lang.IllegalStateException: basedir D:\Projects\test-microservice-frameworks\gatling\target\test-classes does not exist -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

you can find whole project at https://github.com/ozkanpakdil/test-microservice-frameworks
I run gatling with maven from https://github.com/ozkanpakdil/test-microservice-frameworks/blob/234939f39299aeaedb31f725c12a6d71a700a6c4/runGatling.sh#L71
when I return plugin to 3.1.2 everything works as expected.
Thanks

We've change the major version from 3 to 4 for a reason: there's a major breaking change.
Please read the documentation: https://gatling.io/docs/gatling/reference/current/extensions/maven_plugin/#scala


Z gates are printed as full matrices after applying MergeSingleQubitGates optimizer

import numpy
import cirq

qubits = cirq.LineQubit.range(4)
angles = numpy.random.randn(8)
circuit = cirq.Circuit.from_ops(
    [cirq.Z(q)**angles[i] for i, q in enumerate(qubits)],
    [cirq.Z(q)**angles[i+4] for i, q in enumerate(qubits)])
cirq.MergeSingleQubitGates().optimize_circuit(circuit)
print(circuit)

Output:
0: ───┌                         ┐─────
      │1.   +0.j    0.   +0.j   │
      │0.   +0.j    0.717-0.697j│
      └                         ┘

1: ───┌                         ┐─────
      │1.   +0.j    0.   +0.j   │
      │0.   +0.j    0.677-0.736j│
      └                         ┘

2: ───┌                           ┐───
      │ 1.   +0.j     0.   +0.j   │
      │ 0.   +0.j    -0.617+0.787j│
      └                           ┘

3: ───┌                           ┐───
      │ 1.   +0.j     0.   +0.j   │
      │ 0.   +0.j    -0.606-0.795j│
      └                           ┘

This happens because MergeSingleQubitGates generates SingleQubitMatrixGates.  It doesn't look for special cases where the merged gates are equivalent to a single X, Y, or Z rotation.  cirq.google.MergeRotations probably does what you want.

Thanks, I missed that because it was hidden inside cirq.google. We should really resolve that issue soon.


Toggle for dark mod

What would you like to be added:
A toggle into the menu to change the currently set color.

Why is this needed:
Accessibility and more design options.

Is your enhancement request related to a problem? Please describe.
Documentation with light colors at night can damage your eyesight.

Additional context

This issue is a duplicate of #16.


Patch 20.2

Added Zarya
Fixes

If you checkout the gh-pages branch (I suggest doing that as a separate clone in a different directory), copy in the newly created JSONs (see the Makefile for steps I perform), you can commit directly to gh-pages and the website.

Won't be able to do It now. Will have to wait when I get the chance to do It later. If you could do It for this release, It would be appreciated.


Setting: MM's Potted Grass Plants added to Pot Shuffle and Grass Shuffle

Title is self-explanatory. You talked about doing something to where only one part is shuffled if one of the settings is on, but if you have both on then both parts of the potted plant are shuffled so two items would pop out of them instead of just one. Not sure if you still want to do that idea (sounds like a coding headache to a degree) but I put it up here so these potted plants aren't forgotten to shuffle. There's less than 10 of them in the game, I think? 3 in Romani Ranch, 2 outside/inside Smithy, and 2 in front of the Swamp Archery. If there's more than those I don't remember right now lol.

Completed per: https://github.com/OoTMM/OoTMM/commit/d57e74f327a613042a2dda410d74baf959920e9d


Event Thresholds

Added plot function 'plot_decoded_func_p' to decoding_funcs.py:

plot individual epoch and segment event statistics by cutoff probability
plot overall trends in percent of segment decoded events by both epoch and segment

Example epoch-segment cutoff stats:

Example decoding percents cutoff plots:

Example epoch-segment neuron cutoff stats:

Example decoding percents neuron cutoff plots:


TTY injects '~' to the output on input errors

Describe the bug
The TTY Rx IRQ injects a '~' character into the Tx when it drops data, this is not an obvious error code and creates a lot of confusion and debugging in order to figure out where these random bytes are coming from in the output stream.
This also makes the assumption that the bytes being transmitted are not encoded and being directly read by a human. When any level of encoding is used this random injection of bytes to the output by a low level driver confuses everything.
To Reproduce
https://github.com/zephyrproject-rtos/zephyr/blob/main/subsys/console/tty.c#L58
Expected behavior
Something which doesn't inject random bytes into the output stream. Possible solutions:

log the error, using the log module which will correctly apply the required encoding for the channel.
raise a flag or keep a count of dropped bytes which can be checked and handled elsewhere.
have a callback or handler
make it configurable

Impact
It injects random data into our encoded output stream which will require a bunch or retry logic to properly handle. This adds even more traffic when the buffer was already dropping data... It makes a bad situation much worse.

Yes, it's true that tty subsys injects the error indicator in the form of ~ character into the output when input overrun is detected. This was done on following grounds:

Normally, for well-supported hardware, it should never happen.
However, it does happen on various HW platforms in Zephyr, especially during development.
When input overrun happens, the communication is already ruined and further interaction/outcome is errornuous.
However, it's ruined in a way not obvious to a user.
Thus the idea to make it immediately visible to a user.
It takes shape of injecting some UART output due to the fact that UART system is a very basic and foundational one, to avoid dependency on other subsystems. For example, it could light a LED via a GPIO, but a hardware which has support only for UART (and no GPIO or anything else) is a pretty valid one.

So responding to the points in the original comment:

this is not an obvious error code

Well, there's no obvious error code for such a foundational issue. ~ was selected because it's usually typed rarely by a user. (Multi-byte sequence wasn't used to avoid possibility of output overrun or latency/deadlock amplification). Once you faced the situation once, it's easy to remember what it means. Perhaps it should be documented somewhere however.

and creates a lot of confusion and debugging

I'm sorry, but I disagree. Symptomless loss of input for no apparent reason is what created and creates a lot of confusion and debugging. That's how ~ was added in the first place.

This also makes the assumption that the bytes being transmitted are not encoded and being directly read by a human.

No, per above, that's not the assumption being made. The assumption is that in well-developed system (suitable for automated communication over UART), this issue never happens. But while a system is being developed - yes, it's being operated by a human, who has an easy chance to spot that something's wrong.

When any level of encoding is used this random injection of bytes to the output by a low level driver confuses everything.

I don't see how random loss of input data creates less opportunity for a low-level driver confusion. In general, any communication channel is only so much reliable, and UART is not too much reliable at all. An automated agent (like driver) should be ready for anomalous output.

this random injection of bytes

Per above, it's not random, but quite deliberate.

log the error, using the log module which will correctly apply the required encoding for the channel.

UART is foundational system and default logging happens using it. Thus it would create the issue of output amplification (one character pressed and lost, dozens of bytes being output), which may affect the system functioning in the first place.

raise a flag or keep a count of dropped bytes which can be checked and handled elsewhere.
have a callback or handler

All that is not obvious to a user. Remember, in well-developed system the issue should not happen at all.

make it configurable

That's the only solution I personally find reasonable, as long as the default is on. Because again, that was intended as the basic debugging aid for bringing up and testing a new systems and configuration. Such an option would be also a good place to document this behavior.

This adds even more traffic when the buffer was already dropping data... It makes a bad situation much worse.

Again I disagree. It was carefully designed to avoid output amplification (so, in a typical "echo" scenario, a user would get 1 output byte for each input byte - whether an actual input byte, or an error indicator that input was lost). And it makes bad, but sadly, fairly typical situation, easily debuggable.


Android ListView Adapter addFooterView(); Butterknife

My target is to use Butterknie on ListView addFooterView(). How is that possible? Working code so far (without ButterKnife):
ArrayAdapter<String> adapter = new ArrayAdapter<>(getContext(), R.layout.some_layout);
View footer = View.inflate(this.getContext(), R.layout.footer_layout, null);
sitView.addFooterView(footer);
sitView.setAdapter(adapter);

btn = (Button) footer.findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        method();
    }
});

How can I use ButterKnife on this? Note that this is my fragment view. I can create separate class for adapter, but I cannot bind footer view buttons there, because they are not in list view item.

You have to create a separate object with only @BindViews for the footer. Then, use the two-argument version of bind() to bind an instance of that object to the footer view.

I do not understand


Add support for Alter Function on multi-line table value functions

Description
This commit adds the grammar rules and logic to support alter function for multi-statement table value functions cases. The additional grammar rule is included with the other tsql_AlterFunctionStmt cases, and follows the syntax for creating multi line tvfs. The logic is the same as the other alter function cases, with the addition of handling for tabletypstmt, which represents the underlying relationship of these functions.
Issues Resolved
BABEL-5247
Test Scenarios Covered

Use case based -

alter function alter_func_f5()
returns @result TABLE(Id int, Name varchar(max)) as begin
insert into @result values (2, 'Grace Hopper')
return
end
go

select Id, Name from alter_func_f5()
go
~~START~~
int#!#varchar
2#!#Grace Hopper
~~END~~

alter function alter_func_f5()
returns @result TABLE([Id] int, [email] varchar(50), [Status] varchar(50)) as begin
insert into @result select Id, email, NULL from alter_func_users
update @result set Status =
    case when Id = 1 then 'Owner'
    else 'Normal'
end
return
end
go

select * from alter_func_f5()
go
~~START~~
int#!#varchar#!#varchar
1#!#testemail#!#Owner
2#!#testemail2#!#Normal
3#!#testemail3#!#Normal
~~END~~

Boundary conditions -

alter function alter_func_f5()
returns @result TABLE(Name varchar(max)) as begin
insert into @result values ('Grace Hopper')
return
end
go

-- Expect error for Id column not existing
select Id, Name from alter_func_f5()
go
~~ERROR (Code: 33557097)~~

~~ERROR (Message: column "id" does not exist)~~

Check List

[ ] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is under the terms of the Apache 2.0 and PostgreSQL licenses, and grant any person obtaining a copy of the contribution permission to relicense all or a portion of my contribution to the PostgreSQL License solely to contribute all or a portion of my contribution to the PostgreSQL open source project.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>3
Details

38 of 38 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.02%) to 74.513%

Totals

Change from base Build<PHONE_NUMBER>3:
0.02%

Covered Lines:
45214

Relevant Lines:
60679

💛  - Coveralls


feat: add ice 1.10.0, protobuf 3.22.0RC3 releases

update ice with release 1.10.0
update protobuf with release 3.22.0RC3

:tada: This PR is included in version 1.67.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Improve zip integration docs for Swift

#no-changelog

Question, if you're using Swift, do you have to drag the module.modulemap into your project?


Update development modules to latest snapshot

Since we did not include the developer profile when releasing, these modules didn't get updated.
The release job now includes that profile too.

go build

go build

go build

go build


Formatting of PowerShell cmdlets and parameters

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

#sign-off


Getting 400 http status

Below is the tcp stream capture from wireshark

PUT /v2/devices/14449e222ec2d06f0be8cb377bca3350/streams/humidity/value HTTP/1.1
X-M2X-KEY: 405f57a443495eeea37c126b2eaaa8d9
User-Agent: M2X-Java/2.0.0 java/1.7.0_25 (x86_64-Mac OS X10.9.5)
Content-Type: application/json
Host: api-m2x.att.com
Accept: text/html, image/gif, image/jpeg, *; q=.2, /; q=.2
Connection: keep-alive
Content-Length: 14

{"value":"55"}HTTP/1.1 400 Bad Request
Server: nginx
Date: Wed, 11 Feb 2015 00:29:06 GMT
Content-Type: application/json
Content-Length: 47
Status: 400 Bad Request
X-M2X-VERSION: v2.8.1-alpha
Vary: Accept-Encoding

{>"message":"Invalid header value: "*; q=.2""}
I went to test this with curl the following curl and it works.

curl -i -X PUT http://api-m2x.att.com/v2/devices/14449e222ec2d06f0be8cb377bca3350/streams/humidity/value -H "X-M2X-KEY: 405f57a443495eeea37c126b2eaaa8d9" -H "Content-Type: application/json" -d '{ "value": "40" }'
HTTP/1.1 202 Accepted
Server: nginx
Date: Wed, 11 Feb 2015 14:41:45 GMT
Content-Type: application/json
Content-Length: 21
Status: 202 Accepted
X-M2X-VERSION: v2.8.1-alpha
Vary: Accept-Encoding

But if I had the Accept Header, it does not work

curl -i -X PUT http://api-m2x.att.com/v2/devices/14449e222ec2d06f0be8cb377bca3350/streams/humidity/value -H "X-M2X-KEY: 405f57a443495eeea37c126b2eaaa8d9" -H "Content-Type: application/json" -H "Accept: text/html, image/gif, image/jpeg, *; q=.2, /; q=.2" -d '{ "value": "40" }'
HTTP/1.1 400 Bad Request
Server: nginx
Date: Wed, 11 Feb 2015 14:34:54 GMT
Content-Type: application/json
Content-Length: 47
Status: 400 Bad Request
X-M2X-VERSION: v2.8.1-alpha
Vary: Accept-Encoding

From the M2XResponse class, it seems that it did not set the Accept header on the HttpURLConnection object.
Since this is interacting with RESTful WS, my guess is the accept value should be set to "application/json".

@ymai thank you for your report. We've fixed this in 2.0.1, which was released two days ago. Please update your library and let us know if you continue to have problems with it.

Arrgh.  Miss it by one day.  Thanks for the update.

Thank you fir the report, @ymai!


IPC GUI Update Nr.13

This pull request will implement the following features aswell as the usual code improvements, optimizations and bugfixes.

[x] [Bots] Fix all images being visible on initial opening (More Info)
[x] [Bots] Fix download buttons showing when they shouldnt (More Info)

This PR could be seen as a small hotfix. Thats why it can be merged for now.


Passing arguments where registering Lazy services

Hi,
It's now impossible to do something like
    $app->register('myfunction', function($arg1, $arg2) {
        var_dump($arg1); // return NULL
    })

$args are not passed to function
I suggest to change App.php, at line 95 from:
                $instance = $closure();
to
                $instance = call_user_func_array($closure,func_get_args());
Giving the possibility to use $app->myfunction("argument1","argument2");
Thks by advance!

You should use closure.
$app->register('myfunction', function($result) use ($arg1, $arg2) {
        var_dump($arg1);
    })

$result will be returning value of your function.

Doesn't work...
My goal is to pass $arg1 and $arg2 dynamically when I will call this service:
$klein->respond('GET', '/', function ($request, $response, $service, $app) {
    return $app->myfunction('foo',['foo','bar']);
});

thanks for advises,


Command 'phonegap run android' doesn't work

PhoneGap CLI, node & npm versions
PhoneGap CLI 6.4.5
node 4.5.0
npm 4.3.0
Android SDK Tools 25.3.1
Steps to Reproduce
phonegap run android
Error messages
[phonegap] executing 'cordova platform add --save android' ...
[phonegap] completed 'cordova platform add --save android'
[phonegap] executing 'cordova run android ' ...
ANDROID_HOME=C:\Users\Lenovo\AppData\Local\Android\sdk
JAVA_HOME=C:\Program Files\java\jdk1.8.0_60
Error: Could not find gradle wrapper within Android SDK. Might need to update your Android SDK.
Looked here: C:\Users\Lenovo\AppData\Local\Android\sdk\tools\templates\gradle\wrapper
What I found
http://stackoverflow.com/questions/42548186/cordova-run-android-issue-at-sdk-tools-version-25-3-1

We are aware of this bug. The latest android tools changed and we have to update cordova-android itself with the fix.
Issue: https://issues.apache.org/jira/browse/CB-12524

I got around this by downloading the standalone android tools and extracting the templates folder.

This issue is due to Google changing the structure of the Android SDK in their SDK Tools v26 release. As such, cordova had to scramble to land patches. The latest cordova-android releases after and including 6.2.1 should be able to handle this without issue.
As a workaround, I would suggest you:

Ensure you are running the latest phonegap-cli, as there were some cordova/phonegap integration hiccups recently
Ensure you add at least cordova-android v6.2.1 to your phonegap project.

I.e.:
$ phonegap create test
$ cd test
$ phonegap platform add<EMAIL_ADDRESS>
Closing this issue. If you are still having problems, feel free to re-open.


Feature request: XChart should support turning anti-aliasing off

I'm implementing a software for curve fitting where the fitting performance is of utmost importance. Thus, the chart library needs to be as fast as possible. Currently I'm using JFreeChart, but would like to switch to XChart. Unfortunately, XChart made my application 3.9% slower (I had to do few optimizations that were applicable to JFreeChart as well; without those optimizations the application was 15% slower than with JFreeChart). This is slightly over the border of acceptability, and is way over statistical significance limit.
I investigated the issue and found that if I turn anti-aliasing off inside XChart like I do with JFreeChart, the application is now only 0.9% slower than with JFreeChart. This might be considered acceptable, and it is slightly below the statistical significance limit (I used the 95% confidence level).
Unfortunately, after disabling anti-aliasing inside XChart by modifying the code, the title and axis fonts look ugly although the plot itself looks acceptable. I believe this could be fixed perhaps by turning anti-aliasing on only for drawing the text and turning it off for the charts. It also perhaps could be fixed by using bitmap fonts instead of freely scalable fonts. I'm not sure how JFreeChart does it, but the fonts of JFreeChart are not ugly even if anti-aliasing is turned off.
So, XChart should support an option to turn off anti-aliasing, and some way should be found to solve the ugly font problem caused by that.
The way I turned off anti-aliasing was by changing RenderingHints.VALUE_ANTIALIAS_ON into RenderingHints.VALUE_ANTIALIAS_OFF (there's just one occurrence of this in the codebase), but for real production use, some kind of interface needs to be defined to affect the hint.

Additional tests: the KEY_TEXT_ANTIALIASING appears to be non-functional, so using it does not help. If I turn KEY_ANTIALIASING on only for the duration of rendering the title and axes, and off for rendering anything else, XChart is 1.3% slower than JFreeChart but now the text fonts are pretty. Might be acceptable.

My quick test show that turning anti-aliasing off affects the line rendering as well:

Thanks for posting this. I never did a speed comparison with JFreeChart, and I'm surprised XChart does as well as it does since I never really optimized it yet. Let me try a few things and I'll post my findings.
I'd be interested in running the speed comparison code, so if you'd like to contribute that to the project, I'd be grateful.

It doesn't look like bitmap fonts are supported without some hack.
https://stackoverflow.com/questions/8459481/bitmap-fonts-in-java

The curve-fitting application can be found from master branch in https://github.com/jmtilli/micronovaxrr -- clone, build with ant and run with "java -jar xrr.jar". Then open measurement xrr003.x00 and layers file xrr003.x00.layers.  Wait then for few minutes, and discard the first performance number (it has JIT compilation effects). Try again and this time don't discard the number. Try a few times and calculate mean and standard deviation of the fitting time.
Then check out the branch xchart_rebase, rebuild with "ant clean; ant" and do the same thing. It uses my custom version of xchart that has the anti-aliasing turning off feature. Performance should be 1.3% worse. You can replace the xchart .jar with an official release and remove the setAntiAlias lines that result in a failed compilation to see performance is 3.9% worse now.
Note that this is a full application and chart creation is only part of the story. So it could be that XChart is 10x slower than JFreeChart, but since charts are drawn so rarely, it results in only 1.3%-3.9% performance degradation of the overall code.
If you want to see more extreme differences, revert the git change 5e9c41bbc5a667450caef5848f7722173feb59f5 that makes chart drawing occur once per half seconds instead of every iteration. Now XChart is 15% slower if you revert this change and if you enable anti-aliasing.
I will see if I can contribute a benchmark that measures only chart drawing, not anything else.

I now created chartperf: https://github.com/jmtilli/chartperf
It produces these results:
$ sh make.sh
XChart
15.56user 0.28system 0:09.19elapsed 172%CPU (0avgtext+0avgdata 294640maxresident)k
0inputs+104outputs (0major+72426minor)pagefaults 0swaps
JFreeChart
9.78user 0.25system 0:07.58elapsed 132%CPU (0avgtext+0avgdata 228812maxresident)k
0inputs+144outputs (0major+52658minor)pagefaults 0swaps
XChart anti-aliasing
53.29user 1.24system 0:45.07elapsed 121%CPU (0avgtext+0avgdata 425088maxresident)k
0inputs+104outputs (0major+106037minor)pagefaults 0swaps
This means that XChart creates a lot more garbage when compared with JFreeChart, which is then collected in another thread. Hence performance in single-threaded applications (elapsed) doesn't suffer, but my application is multi-threaded, so we need to look at the "user" time which suffers.
This also illustrates the effects of anti-aliasing. Hence, you should accept my pull request because it improves performance so much.

Good stuff! Thanks. I once tried to optimize speed of XChart by looking for bottlenecks, but I failed to come up with a good way to find the bottlenecks. I tried printing out time differences and a Java code profiler, but with no luck. Do you know of a good way to identify bottlenecks in this case?

Also, since you looked into the JFreeChart code already, do you see anything I should be doing in XChart for better performance?

I believe the main thing would be to create as little objects as possible. Use primitive type arrays (double[]) internally, not ArrayList of Double objects -- I know I can at least pass double[] to XChart, but looks like it's not using it internally but rather doing Utils.getNumberListFromDoubleArray instead which is a big no-no.
I'm not exactly sure how to find performance bottlenecks in Java code either, but in this case I was lucky to find that CPU% in single-threaded application is over 100%, meaning the only other thread that can be using CPU time is the garbage collector. Overall, it seems like XChart performance in the main thread is very close to JFreeChart performance, but the garbage created is a problem. Mutable objects are better for performance than continuously allocating new immutable objects.
So change that getNumberListFromDoubleArray into cloning of the array (cloning is necessary in case the array changes after being given to XChart)! If the user gives list objects of numbers, convert them to double[] arrays. The same is true for int[] arrays: convert into double[]. Same for float[]. Make all internal interfaces use double[] arrays (with small d, not capital D), in fact!
I'm confident the performance can be improved much given the current interfaces, because the garbage created is not built in to the interface of the XChart, rather it is happening internally within XChart. All internal object creations are candidates for removal.

Correct. I'm using internally List. I'll change it to double[]...
Thank you for you excellent help!

Great! You have already a new user, as I instrumented that XChart and JFreeChart in my overall application result in 0.06 standard deviations of performance difference, so whatever difference there is, it's not statistically significant anymore. XChart was faster by tiny 0.04%.

Glad to hear it! Thanks again for your help and sharing your benchmark results. I'll work on the legend and the double[] optimization, hopefully soon.


Update manual to remove LGPT specifics

Currently the manual states:

It supports 8 or 16 Bit wav files, any sampling frequency, mono or stereo. 8bit samples are converted to 16bit at load time for compatibility with the engine (you can save space in storage but not in RAM, keep this in mind when choosing samples).

Which is actually not correct as freq above 44.1kHz are not supported. Its also likely that some schemes or big (little?) endian encodings are also not supported, so need to check the existing sample import handling code to see what exactly is supported and then update the manual accordingly.
Edit:
There are also likely other hold overs from it being the LGPT manual that dont apply to the picoTracker so I have renamed this issue to cover all that update work of going through the manual to remove LGPT specifics.

the readme says: 8 or 16bit samples up to 44.1kHz, mono or stereo :)
But the manual comes from another source

@democloid good point! Really this should be a task to go through and scrub the manual for any LGPT docs that dont apply to the picotracker.

done as of #219


Support for TxPipeline

What is the best way of mocking client.TxPipeline?
When expectations are define for the following: HSet, ZAddNX
pipe := client.TxPipeline()
pipe.HSet
pipe.ZAddNX
pipe.Exec()

the following error is returned: call to cmd '[multi]' was not expected

support for txpipeline has been added:
mock.ExpectTxPipeline()
mock.ExpectGet("key").SetVal("value")
mock.ExpectSet("key", "value", 1).SetVal("OK")
mock.ExpectTxPipelineExec()

pipe = db.TxPipeline()
pipe.Get(ctx, "key")
pipe.Set(ctx, "key", "value", 1)
pipe.Exec(ctx)


Add profile links in the Rankings page.

Attach a link to the user's profile with their username on the rankings page.

This hasn't been implemented in the backend yet. Only the logged in user can view only his profile.


x/net/http2: Server doesn't respect client's flow control

Go's http2.Server doesn't respect the client's flow control.
It accounts for it partly, and enforces the other direction (that the client can't send too much to the server), but does not ever deduct its own credit when sending DATA frames, and doesn't wait for flow control when doing so.
In the process of fixing #16481 I had expected a test like this to hang:
        body := strings.Repeat("a", 16<<10)
        st := newServerTester(t, func(w http.ResponseWriter, r *http.Request) {
                println(r.RemoteAddr)
                // Write out a 16KB body which the client won't ever read.
                io.WriteString(w, body)
        }, optOnlyServer)
        defer st.Close()

        tr := &Transport{TLSClientConfig: tlsConfigInsecure}
        defer tr.CloseIdleConnections()

        // Verify we can do this over 4 times without hanging:
        for i := 0; i < 10; i++ {
                println(i)
                req, _ := http.NewRequest("GET", st.ts.URL, nil)
                res, err := tr.RoundTrip(req)
                if err != nil {
                        t.Fatal(err)
                }
                res.Body.Close()
                println(i, "done")
        }

But it didn't.
Add a test like that back once the http2.Server respects flow control.

I looked at the code and didn't find flow control enforcement on server side
sending. When implementing it, please consider the following as
a reference: (this applies to transport also):
A simple way to achieve fair share of the available bandwidth may be to
send data in a small chunk (1KB would be ideal if there is not much
performance penalty, 8k to 64k is fine if there is a cost, small chunk is better for slow connections).
We round robin for all steams, each steam will either send all data or one chunk (if it has more data than a chunk), then send all control frames if any before moving to next steam.
If the connection level quota is less than chunk size, current steam uses all
the quota and move to next steam. We could also evenly divide it to all
steams, but it would be more complicated and the gain is relatively small.
I think the simple chunk level round robin scheme should be good enough.

I'm not going to get this done in time. Punting to Go 1.9. It hasn't mattered so far, and it doesn't matter in practice because client's typically just give servers effectively-infinite flow control. Clients don't typically throttle servers. Servers would probably tire of that and hang up on them anyway if they did.

Go's http2.Server doesn't respect the client's flow control.

Probably a dumb question ... doesn't the code below respect the client's flow control?
https://github.com/golang/net/blob/1c5acb2c2d1df0409de556978dd628d90aee5cb3/http2/writesched.go#L108
https://github.com/golang/net/blob/1c5acb2c2d1df0409de556978dd628d90aee5cb3/http2/writesched.go#L119
https://github.com/golang/net/blob/1c5acb2c2d1df0409de556978dd628d90aee5cb3/http2/writesched.go#L148
There's also this test.
Assuming no bugs, I'm not sure why the test from the Jul 25 comment is expected to hang. The client (correctly) (sends) a RST_STREAM and WINDOW_UPDATE when it closes the response body without reading the full response. The client also sends a WINDOW_UPDATE when it receives DATA for a previously-closed stream. This means the server will have a full flow-control window at the start of each request.
Also note that the test uses very large window sizes relative to the tiny 16KB responses in the test (see log snippet below). And, even if the response bodies were larger, the client will usually send RST_STREAM (due to resp.Body.Close()) before the server has a chance to send more than a few KB on the wire.
http2: server processing setting [INITIAL_WINDOW_SIZE = 4194304]
http2: server read frame WINDOW_UPDATE len=4 (conn) incr=1073741824

Maybe it does? I forget. Too late for Go 1.9 in any case.
I do recall that one of the 4 flow control directions had some omission.


Anonymous telemetry improvements

We should adjust anonymous telemetry to include

a randomly generated identifier that remains consistent across events from the same dlt install
tracking of source name for loads if it is using an existing pipeline or custom if it is not

@rudolfix here is the GitHub issue for the telemetry improvements we would like to have ideally before we ship the first experiment on Apr 19th


chore: bump dependencies

golang.org/x/sys v0.8.0 relies on go 1.17 to compile, so I increase version in go.mod.

Added this to the main branch, but github doesn't seem to have noticed.
I will do a round of updates and then make another release.


Moved auth interceptors to common module

Description

Moved auth interceptors to common module, so that they can be used for different connector modules.
Removed DataSourceSettings and merged in OpensearchSettings. This class handles updates as well.
Fixed bug with OpensearchSettings where initially value set in opensearch.yml is not being picked up.

For example in the below code block. PPL_ENABLED is always set to default value(true) even though it is set false in opensearch.yml.

public RestPPLQueryAction( Settings pluginSettings, org.opensearch.common.settings.Settings clusterSettings) {
super();
this.pplEnabled =
    () ->
        MULTI_ALLOW_EXPLICIT_INDEX.get(clusterSettings)
            && (Boolean) pluginSettings.getSettingValue(Settings.Key.PPL_ENABLED);
 }

Introduced new setting plugins.query.datasources.uri.allowhosts for blocking URIs with unwanted hosts. This can protect from ssrf attacks.
Made plugins.query.datasources.encryption.masterkey as final and can only be set in yml and can't be changed via
API.
Updated documentation can be found here: https://github.com/vamsi-amazon/sql/blob/7c3b5069fb71dea71cb1d2e4c28beb531a56b93e/docs/user/ppl/admin/datasources.rst#datasource-allow-hosts-config

Issues Resolved
[List any issues this PR will resolve]
Check List

[x] New functionality includes testing.

[x] All tests pass, including unit test, integration test and doctest

[x] New functionality has been documented.

[x] New functionality has javadoc added
[x] New functionality has user manual doc added

[x] Commits are signed per the DCO using --signoff

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

Thanks


Pass Points Incentives for Large Groups

Is your feature request related to a problem? Please describe.
A way to further incentivize passing on items, especially in large groups.
Describe the solution you'd like
The easiest solution might be an expected minimum earned for Passing on NGPs. I'd suggest thresholds of:
.5 for Purple Raid NGPs
1 for Purple World Boss NGPs
2 for sellable NGPs
4 for Archboss NGPs
Describe alternatives you've considered
Scaling the pool of points available to consider amount of participants or how highly desired the item is. This would not scale 1-1 with participants or amount of needs, but could allow for more points to be earned when there are many members.
Additional context

pog thanks homie! sorry i couldnt seem to add tags to any of the "issues" i posted haha

pog thanks homie! sorry i couldnt seem to add tags to any of the "issues" i posted haha

yeah mb. i meant to add the labels/tags in the issue template


Dataview Returned file.cday is not the same as the OS file creation date

What happened?
I enter this query:
LIST dateformat(file.cday,"yyyy-MM-dd") FROM "Periodic Notes/Daily Notes" SORT file.day DESC LIMIT 100
The files being retrieved are listed by the OS (openSUSE Tumbleweed Linux) as follows:
rhack@localhost:/Data2/Planning/Obsidian Vault/Periodic Notes/Daily Notes> ll total 60 -rw-r--r-- 1 rhack rhack 1861 Jan  3 21:15 2024-01-03.md -rw-r--r-- 1 rhack rhack 1861 Jan  5 03:01 2024-01-04.md -rw-r--r-- 1 rhack rhack 1861 Jan  5 19:03 2024-01-05.md -rw-r--r-- 1 rhack rhack 1861 Jan  7 03:44 2024-01-06.md -rw-r--r-- 1 rhack rhack 2065 Jan  8 03:33 2024-01-07.md -rw-r--r-- 1 rhack rhack 2115 Jan  9 03:53 2024-01-08.md -rw-r--r-- 1 rhack rhack 2076 Jan 10 03:48 2024-01-09.md -rw-r--r-- 1 rhack rhack 2076 Jan 11 04:09 2024-01-10.md -rw-r--r-- 1 rhack rhack 2076 Jan 12 03:29 2024-01-11.md -rw-r--r-- 1 rhack rhack 2076 Jan 13 03:54 2024-01-12.md -rw-r--r-- 1 rhack rhack 2076 Jan 14 13:00 2024-01-13.md -rw-r--r-- 1 rhack rhack 2080 Jan 15 04:25 2024-01-14.md -rw-r--r-- 1 rhack rhack 2469 Jan 16 04:13 2024-01-15.md -rw-r--r-- 1 rhack rhack 2469 Jan 17 13:01 2024-01-16.md -rw-r--r-- 1 rhack rhack 2469 Jan 17 22:31 2024-01-17.md
As you can see, they are all in this year in January.
Instead I get this list from dataview:
2024-01-17: 1969-12-31 2024-01-16: 1969-12-31 2024-01-15: 1969-12-31 2024-01-14: 1969-12-31 2024-01-13: 1969-12-31 2024-01-12: 1969-12-31 2024-01-11: 1969-12-31 2024-01-10: 1969-12-31 2024-01-09: 1969-12-31 2024-01-08: 1969-12-31 2024-01-07: 1969-12-31 2024-01-06: 1969-12-31 2024-01-05: 1969-12-31 2024-01-04: 1969-12-31 2024-01-03: 1969-12-31
DQL
LIST dateformat(file.cday,"yyyy-MM-dd") FROM "Periodic Notes/Daily Notes" SORT file.day DESC LIMIT 100
`
JS
No response
Dataview Version
0.5.64
Obsidian Version
1.5.3
OS
Linux

I don't know why the code blocks were reformatted.  Sigh...

I just decided to try using the Template creation date format. Guess what? Same problem!
Apparently Obsidian simply can't get a correct creation date from openSUSE Tumbleweed with KDE desktop.
Pathetic.

I did test using the standard Obsidian template {{date}} function and that does return the correct date.

I just spent last night working with the folks over at the Obsidian forums to try to resolve this issue. Since Templater has the same problem, the conclusion we came to is that the vault is corrupted. So I'm going to back up everything (which I do anyway every night), wipe the vault and reinstall Obsidian. If the problem persists after that, I think the issue is related to how the Linux btrfs file system stores the creation date of files. It may be that Obsidian - and by extension some of the plugins - are still looking at ctime instead of crtime or otime for the file creation date.  The plugins appear to be obtaining a zero date which then defaults to the UNIX epoch time date.
We'll see how wiping the vault goes.

OK, I wiped the vault, uninstalled and reinstalled Obsidian.
With an empty vault, I created several simple text files with title only. The creation dates shown from the Files pane hover popup were correct.
I then installed Dataview and entered this query:
TABLE file.day, file.cday, file.ctime, file.mday, file.mtime, typeof(file.cday)
SORT file.day DESC
LIMIT 100`

Which returned the following result:
![NewQueryresult](https://github.com/blacksmithgu/obsidian-dataview/assets/44449170/cff0c4ee-2d82-43b0-b09e-1e324b57d602)

Which is correct.

So apparently it was a corrupted vault that caused the problem and not Dataview. So I think we can close this bug report out as solved.

feel free to close the issue then. (I can't)