x/pkgsite: comment in dochtml is represented as  header, but should be normal text

What version of Go are you using (go version)?
n/a
Does this issue reproduce with the latest release?
n/a
What operating system and processor architecture are you using (go env)?
n/a
What did you do?

Open<EMAIL_ADDRESS>What did you expect to see?
The text "DrawRectShaderOptions represents options for DrawRectShader" should be a normal text.
What did you see instead?
The text seems a header. Actually this is represented with a <h3> element.

Thanks for the feedback! If anyone is interested in working on this, we'd love to accept a contribution for this fix.

@julieqiu May I working on this one, please?

@trongbq, please do!

@hajimehoshi pkgsite's render recognizes that comment is a heading because the comment follows heading style. More details explanation bellow.
In the source code, the comment is written like this
// DrawRectShaderOptions represents options for DrawRectShader
//
// This API is experimental.

If you look at the first line, you can see that it doesn't have period mark at the end.
pkgsite's render uses following regex to identify heading, which return true for that line.
// Regexp for headings.
headingHead = `^[\p{Lu}]`                                  // any uppercase letter
headingBody = `([^,.;:!?+*/=()\[\]{}_^°&§~%#@<">\\]|'s )*` // any non-illegal character
headingTail = `([\p{L}\p{Nd}]|'s)?$`                       // any letter or digit

Is is okay for you that I will send a PR to add period mark at the end for comments like this? It will make comment style in your code be consistent.
@julieqiu I wonder should we keep existing check for header in comment. Do you think this is an issue need to be fix in pkgsite? Personally, I think we can just keep pkgsite's render as it is.
P/s: I looked in godoc, that comment above is displayed normally without any headers. I didn't look deeper into the godoc source but I think that godoc doesn't have heading style.

Is is okay for you that I will send a PR to add period mark at the end for comments like this? It will make comment style in your code be consistent.

SGTM, thanks!
/cc @dmitshur for input on this issue

Is is okay for you that I will send a PR to add period mark at the end for comments like this?

Thanks, that'd be helpful!

@trongbq Thank you for investigating this.
This godoc behavior is called a "section heading" and it is currently best documented in the second paragraph of "go/doc".ToHTML:

Each span of unindented non-blank lines is converted into a single paragraph. There is one exception to the rule: a span that consists of a single line, is followed by another paragraph span, begins with a capital letter, and contains no punctuation other than parentheses and commas is formatted as a heading.

It is also mentioned in the .../dochtml/interal/render package documentation, see here.
The go/doc implementation actually has additional conditions that need to be met for a line to be considered a heading: it must be immediately preceded by a blank line, and a non-heading paragraph before that.
The render package in pkgsite doesn't seem to check what came before the heading, so may consider the first line in the doc string as a heading. Given that comments for exported identifiers are expected to begin with the name of the identifier itself and be a complete sentence, not supporting headings in the first line (as godoc does) seems like the better behavior.

@dmitshur thank you for such a clear explanation.

not supporting headings in the first line (as godoc does) seems like the better behavior.

I see, let's me try to implement this behavior in render package.


Error on ARM Deploy for Azure Security Benchmark Workbook

Describe the bug
During Deploy to Azure ARM deploy, validation error occurs.
{
  "code": "InvalidTemplate",
  "message": "Deployment template validation failed: 'The template variable 'workbookContent' is not valid: The language expression '\r\n    {\"value\": \"Yes\", \"label\": \"Yes\", \"selected\":true},\r\n    {\"value\": \"No\", \"label\": \"No\"}\r\n' is not valid: the string character '{' at position '6' is not expected.. Please see https://aka.ms/arm-functions for usage details.'."
}

To Reproduce
Steps to reproduce the behavior:

Go to https://github.com/Azure/Microsoft-Defender-for-Cloud/tree/main/Workbooks/Azure Security Benchmark v3
Click on Deploy to Azure
Scroll down to Fill out Required info
See error above

Expected behavior
I would anticipate it successfully deploy to Azure and not throw ARM validation errors.
edit: fixed word choice error.

I've created a PR to fix this issue ;)
https://github.com/Azure/Microsoft-Defender-for-Cloud/pull/722
I did not repoint the ARM deployment to my repo, so you'll have to either wait for them to merge or grab the JSON from my repo and paste it into Azure.
https://github.com/nathanmcnulty/Microsoft-Defender-for-Cloud/blob/main/Workbooks/Azure Security Benchmark v3/armTemplate.json

Excellent. That did it! Thank you!


Apply new Standard Ensembler routing policy with Custom Experiment Engines

Context
With the introduction of changes to the routing strategy of the Turing Router to support Standard Ensemblers for Custom Experiment Engines in #233, this PR introduces follow-up modifications to allow the API to set up Turing Routers that use a Standard Ensembler and a Custom Experiment Engine. The API also performs additional validation checks to ensure that any router create/update request payload does not contain both experiment_mappings and route_name_path specified in the EnsemblerStandardConfig.
Minor Fixes
This PR also includes the replacement of deprecated io/util functions from go 1.16/1.17 with their corresponding io or os counterparts:

ioutil.NopCloser -> io.NopCloser
ioutil.ReadAll -> io.ReadAll
ioutil.ReadFile -> os.ReadFile
ioutil.TempFile -> os.CreateTemp
ioutil.WriteFile -> os.WriteFile

Main Modifications

api/api/specs/routers.yaml - Addition of the route_name_path field to EnsemblerStandardConfig
api/turing/api/request/request.go - Addition of validation step to ensure ExperimentMappings and RouteNamePath are not both set at the same time
api/turing/cluster/servicebuilder/router.go - Addition of step to add route_name_path to the config map that will be used by the Turing Router upon deployment
api/turing/models/ensembler.go - Addition of RouteNamePath to the db model EnsemblerStandardConfig struct

Future Changes (Not included in this PR)

Addition of the route_name_path field to Standard Ensemblers within the Turing SDK
Addition of the new e2e test (api/e2e/test/09_deploy_router_with_route_name_path_std_ensembler_test.go) as a Turing SDK e2e test

Thanks a lot for reviewing the PR and for all the comments! I'll be merging this right now and will be following up with a separate PR for the SDK-related changes and e2e tests! 🚀🚀


Unauthorized Extension Detected

A few seconds after the game begins, a message appears saying the extension is not authorized.

This is being worked on currently, please don't open duplicate issues!


Fix usage of deprecated experimental_get_query_params

With streamlit 1.30.0 st.experimental_get_query_params now throws a deprecation warning.
https://docs.streamlit.io/library/api-reference/utilities/st.experimental_get_query_params

@mt-krainski
This will be fixed in https://github.com/jrieke/streamlit-analytics/pull/44 once merged

@mt-krainski and to whom it may be relevant
This has been fixed in the latest release of https://github.com/444B/streamlit-analytics2
This is a backwards compatible form of this project with very minimal changes needed (need to add a '2' in two locations in code)


lv2_util.h is not part of lv2-dev packages

I think the file
https://github.com/drobilla/lv2/blob/master/lv2/lv2plug.in/ns/lv2core/lv2_util.h
also has to be specified in
https://github.com/drobilla/lv2/blob/master/wscript#L260
Or is there any reason why external Lv2 plugins should not use the lv2_util.h header?

Required change is given in https://github.com/drobilla/lv2/pull/19


add event to add specific files to ignored in ShopwareFilesChecker

Please describe the feature you would like to see implemented.
When using composer-patches, there may be some annoying files reported. We could add an Event where these users can subscribe to add their own files to be ignored.
Maybe within isIgnoredFileHash:
https://github.com/FriendsOfShopware/FroshTools/blob/e8fcd0c9019ff49253c8e3921de072f0cda9397e/src/Controller/ShopwareFilesController.php#L128

nahh thats an anti pattern for our shopware support. They look explictly there to see if someone did core changes

Okay.... I agree... totally... hmm, damn....
I had the situation, my colleague wanted to click onto the restore button :-(
Could we mark the specific files additionally? 🤔 I'm thinking of something like isMarkedIntended and then we would mark the line green and add action like "is marked as intended" as information, f.e.


Webpack Stats Tool doesn't upload file

https://webpack.github.io/analyse/
The stats analysis tool doesn't allow you to upload your stats JSON.

Which browser are you using? Can you provide more information?
The tool works well for me in Chrome 47 on OS X.

No, this is my fault.  My JSON was malformed.  Apologies for the noise.


Read Time out under Amazon server after deploy and code work fine in local machine

		Document doc = null;
		try {
			doc = Jsoup.connect(url).followRedirects(true).userAgent(UA).get();
		} catch (Exception e) {
			log.error("Could not lookup: " + id + " EXCEPTION_MESSAGE "+e.getMessage());
			return result;
		}

Jsoup Version :  1.11.3
Note : jsoup called under multithread  using Executors.newWorkStealingPool and it work fine locally but after deloy it in cloud AWS server we got read timeout
i got time out too when i used timout proprety with values 30000,10000,60000 and 0 which mean infinite

Just a wild guess but are your outgoing connections open for the Security Group of the EC2 instance?


Improvements based on CLIG

List of improvements based on my reading of CLIG

Send messaging to stderr. Log messages, errors, and so on should all be sent to stderr. This means that when commands are piped together, these messages are displayed to the user and not fed into the next command.
Improve subcommand help text by including one or two example invocations.
Provide a support path for feedback and issues. A website or GitHub link in the top-level help text is common.
Disable colors: NO_COLOR set, TERM=dumb, --no-color
Confirm before doing anything dangerous. See #19 and maybe even make the dry run the default? For mantle destroy, require a prompt by default?
Make it idempotent. If the program fails for some transient reason (e.g. the internet connection went down), you should be able to hit  and  and it should pick up from where it left off. See #106
If a user hits Ctrl-C (the INT signal), exit as soon as possible. Say something immediately, before you start clean-up. Add a timeout to any clean-up code so it can’t hang forever. Currently we don't exit gracefully in this case. See above note on idempotence as well
Do not read secrets from environment variables. While environment variables may be convenient for storing secrets, they have proven too prone to leakage. This is an interesting one, and I'm not quite sure that I agree or that I like the alternative solutions. Should be considered though

Adding this to v1.0.0 because there are a few points in here which I think are important for production use. Specifically:

confirming before doing anything dangerous
idempotency
ctrl+c cleanup


Add docs about using the Compiler Plugin with the Kotlin CLI compiler

Covers changes from #7179
Answers #7168

Warnings

:warning:

It looks like you're editing the un-versioned copy of our website. This affects only users on the 'next' version of detekt, and it's correct only if you intend to document a future change or feature. If you intended to make a change also for the current version of detekt, please make sure you edit the equivalent file inside website/versioned_docs/ as well.

  Generated by :no_entry_sign: dangerJS against b3a0934fc19102a34f3b77ff8f8fc42e337fa382


Deprecation warnings when calling getResolvedConfiguration()

Expected Behavior
No warnings should be printed when calling getResolvedConfiguration()
Current Behavior
In my build.gradle script I use
configurations.runtime.resolvedConfiguration
to work with resolved artifacts. As soon as I add a compile dependency to some project with notation
compile project('project')
I get warnings in my output similar to
The ProjectDependency.getProjectConfiguration() method has been deprecated and is scheduled to be removed in Gradle 4.0. 	at build_egfxhkqkkdf06ne62q4y2xw1r$_run_closure12$_closure36$_closure37.doCall(xxx/build.gradle) ModuleDependency.getConfiguration() has been deprecated and is scheduled to be removed in Gradle 4.0. Use ModuleDependency.getTargetConfiguration() instead. 	at build_egfxhkqkkdf06ne62q4y2xw1r$_run_closure12$_closure36$_closure37.doCall(xxx/build.gradle)
Looks like you call these two methods internally and then it causes the warning to be printed out.
Steps to Reproduce (for bugs)
Use the following
`
apply plugin: 'java'
dependencies {
compile project(':second.project')
}
configurations.runtime.resolvedConfiguration
`
Your Environment
Gradle 3.3

This seems to be a duplicate of https://github.com/gradle/gradle/issues/1311. As mentioned in that issue, I believe you ought to get the targetConfiguration instead. Please read the resolution of #1311 for more info.

Hi eriwen
I don't think it's a duplicate. I tried to change my script to use
compile project(path: ':second.project', configuration: 'default')
Please note that this line:
configurations.runtime.resolvedConfiguration
causes the depreciation warning to be printed out. Looks like this is different issue then #1311. For me it looks like you are internally in getResolvedConfiguration() calling ProjectDependency.getProjectConfiguration() instead of ModuleDependency.getTargetConfiguration()

@martin-linha I believe the deprecation has been removed with Gradle 4.0. Can you please check again?

This method no longer exists.


support es6.constants by default. Fixes #2932

In javascriptcore(ios9), this code will run as expected(output 0 1):
for(let i=0; i<2; i++) {
  const data = i;
  console.log(data);
}

But when debug in chrome, the above code will fail without use strict prologue (if you add prologue, rn will fail with red screen Const declarations are not supported in strict mode): https://code.google.com/p/v8/issues/detail?id=4432.
So it's better to transpile contant by default.

Probably want to add it to https://github.com/facebook/react-native/blob/master/packager/react-packager/.babelrc as well

Please keep the list alphabetically sorted.

done

Could you remove this comment too, since it's no longer true: https://github.com/facebook/react-native/blob/a37d0f9c2054801e2e4356cb01761deb1d835a25/packager/react-packager/.babelrc#L9?

ok

And can you squash your commit with git rebase -i? Otherwise this looks good.
cc @martinbigio @vjeux

Let and const are now supported by flow so there's no longer any blocker here :)
https://github.com/facebook/flow/blob/master/Changelog.md#v0160

@facebook-github-bot shipit


DLP-chrisda to Master

Docs Build status updates of commit 03f316e:
:clock10: Full build: the average full build time is 17 min(s) 37 sec(s), this is based on the last 1000 build(s) for this repository.

Docs Build status updates of commit 03f316e:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/New-DlpComplianceRule.md
:white_check_mark:Succeeded

exchange/exchange-ps/exchange/Set-DlpComplianceRule.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Hide Multiple Clusters

When you hide a cluster "A", and the hide a second cluster "B", A reappears.

Resolved by 1dc8ffddc150524b8c596d6f7c970b531b1bafb0


Revise DocumentDatabaseOperations ergonomics

In SWADE, the operation parameter has some ugly ergonomics - if you don't need to modify it then it's not so bad, but there probably needs to be an additional (mergeable) interface so you can specify the expected operations for each of create, update, and delete
// example when only using the core types for operation
  protected override async _preDelete(
    options: Item.DatabaseOperations['delete'],
    user: BaseUser,
  )

// lack of merge-ability requires going up to DocumentDatabaseOperations
  protected static override async _onCreateOperation(
    items: SwadeItem[],
    operation: DocumentDatabaseOperations<
      Item,
      {
        isItemGrant: boolean;
      }
    >['create'],
    user: User.ConfiguredInstance,
  )

While we're at it Item.DatabaseOperations would be nice instead of doing it this way.

Copying from Discord:

Currently in Item.deleteDocuments(ids: string[], context: InexactPartial<Omit<foundry.abstract.Document.DatabaseOperationsFor<"Item", "delete">, "ids">>
context.parent == AnyDocument | undefined
Since an Item can only ever have an Actor as a Document, it'd be nice if the type was aware of that.

I'd also say that stuff like CompendiumCollection#_onModifyContents should be simplified from its overrides:
    _onModifyContents(
      action: "create",
      documents: ClientDocument[],
      result: Record<string, unknown>[],
      operation: DatabaseCreateOperation<Document.ConfiguredInstanceForName<T["type"]>>,
      user: User,
    ): void;
    _onModifyContents(
      action: "update",
      documents: ClientDocument[],
      result: Record<string, unknown>[],
      operation: DatabaseUpdateOperation<Document.ConfiguredInstanceForName<T["type"]>>,
      user: User,
    ): void;
    _onModifyContents(
      action: "delete",
      documents: ClientDocument[],
      result: string[],
      operation: DatabaseDeleteOperation,
      user: User,
    ): void;


webserver start at port 8070 issue

hi, thank your amazing work. vectorx over wirepod working perfectly but i need to start ./startWebServer.sh manually after reboot raspberry pi. otherwise webserver not reachable.
i put to server path to crontab it is fine but is there any elegance solution for that ?

Hi, the web server is started as a service in the setup:
systemctl enable vectorx-web
systemctl start vectorx-web
After the service is enabled, it should be started at every boot...


Paperspace is significantly slower than Runpod

I regularly use runpod and recently got paperspace subscription because of its free gpus. I usually get P5000 gpu in paperspace which is of 16gb, but the speed of image generation is much slower than any 16gb gpu in runpod. For example it takes around one minute for runpod 16gb gpu to generate 4 768 by 768 images, and it takes around two and half minutes for paperspace. With controlnet it even takes more time. I have attached screenshots for four 768 by 768 image generation time for both below. Can you please look into and see if it can be solved. Thank you.

It also takes a lot more time for the generated images to load into the viewport in paperspace, while in runpod pictures instantly load and are available to download.

P5000 is a slow GPU


FIX: BCH txBuilder issue

This issue happens when consuming unconfirmed UTXO, we will fix error message.


enable superfluid on gnosis chain

after https://github.com/gnosis/safe-react/issues/3435 is fixed superfluid on gnosis chain should be good to go

the app is now live


User Story Template

As a [role], I want to [what] so that [why].
[add details about the story]

detail 1
detail 2
...
detail n

[add acceptance criteria (i.e. what needs to be completed for the story to be closed) for the story]

criteria 1
criteria 2
...
criteria n

user story reference

Are there any blockers?

no blockers

no ordering changes


global-settings-schema.json: Added "$schema" as property

Should fix #733.
I "stole" this from:

https://github.com/jfrog/jfrog-cli/pull/2549

Thanks for your contribution @o-l-a-v


feat(frontend): sort adv search and collection list in alphabetical o…

Checklist

[x] the contributor license agreement is signed
[x] commit message follows commit guidelines
[x] tests are included
[x] screenshots are included showing significant UI changes
[ ] documentation is changed or added

Description of change
Create util file sort.ts
Add sortArrayOfObjects func
Add correspongding test file
Sort adv search and collection list in alphabetical order

The only difference is S.ORD is case sensitive.

Looks like good feedback there @edalex-yinzi from @PenghaiZhang . I'll wait until you've addressed that to re-review.

Thanks, @PenghaiZhang  and @edalex-ian.


Pod

Can you add the project to cocoapods lib?
Thank's

Hi paoloandrea,
the project is ready in cocoapods lib ,
please check , thanks.


add a linker search path to account for changes in library paths on platforms without fat binaries

https://github.com/apple/swift/pull/14243 modifies the paths for built libraries to oldpath/arch/libXYZ. This change adds a search path to account for this.
Requires
https://github.com/apple/swift/pull/14243
https://github.com/apple/swift/pull/14835

@compnerd

This was tested at https://github.com/apple/swift/pull/14835

Unfortunately it looks like this breaks testing: https://ci.swift.org/job/oss-swift-5.0-incremental-RA-linux-ubuntu-16_10/289/console
...
22:46:46 + popd
22:46:46 ~/jenkins/workspace/oss-swift-5.0-incremental-RA-linux-ubuntu-16_10
22:46:46 xctest: using gold linker
22:46:46 + /home/buildnode/jenkins/workspace/oss-swift-5.0-incremental-RA-linux-ubuntu-16_10/swift-corelibs-xctest/build_script.py --swiftc=/home/buildnode/jenkins/workspace/oss-swift-5.0-incremental-RA-linux-ubuntu-16_10/buildbot_incremental/swift-linux-x86_64/bin/swiftc --build-dir=/home/buildnode/jenkins/workspace/oss-swift-5.0-incremental-RA-linux-ubuntu-16_10/buildbot_incremental/xctest-linux-x86_64 --foundation-build-dir=/home/buildnode/jenkins/workspace/oss-swift-5.0-incremental-RA-linux-ubuntu-16_10/buildbot_incremental/foundation-linux-x86_64/Foundation --libdispatch-src-dir=/home/buildnode/jenkins/workspace/oss-swift-5.0-incremental-RA-linux-ubuntu-16_10/swift-corelibs-libdispatch --libdispatch-build-dir=/home/buildnode/jenkins/workspace/oss-swift-5.0-incremental-RA-linux-ubuntu-16_10/buildbot_incremental/libdispatch-linux-x86_64 --release
22:46:46 Traceback (most recent call last):
22:46:46   File "/home/buildnode/jenkins/workspace/oss-swift-5.0-incremental-RA-linux-ubuntu-16_10/swift-corelibs-xctest/build_script.py", line 577, in <module>
22:46:46     main()
22:46:46   File "/home/buildnode/jenkins/workspace/oss-swift-5.0-incremental-RA-linux-ubuntu-16_10/swift-corelibs-xctest/build_script.py", line 573, in main
22:46:46     parsed_args.func(parsed_args)
22:46:46   File "/home/buildnode/jenkins/workspace/oss-swift-5.0-incremental-RA-linux-ubuntu-16_10/swift-corelibs-xctest/build_script.py", line 159, in build
22:46:46     swift_build_dir = os.path.abspath(args.swift_build_dir)
22:46:46   File "/usr/lib/python2.7/posixpath.py", line 360, in abspath
22:46:46     if not isabs(path):
22:46:46   File "/usr/lib/python2.7/posixpath.py", line 54, in isabs
22:46:46     return s.startswith('/')
22:46:46 AttributeError: 'NoneType' object has no attribute 'startswith'
22:46:46 /home/buildnode/jenkins/workspace/oss-swift-5.0-incremental-RA-linux-ubuntu-16_10/swift/utils/build-script: fatal error: command terminated with a non-zero exit status 1, aborting
22:46:46 /home/buildnode/jenkins/workspace/oss-swift-5.0-incremental-RA-linux-ubuntu-16_10/swift/utils/build-script: fatal error: command terminated with a non-zero exit status 1, aborting
...

It'd be great to get this fixed as soon as possible. Thanks!

Hey @huonw. This PR depends upon https://github.com/apple/swift/pull/14835 and will run just fine alongside it.


Add Q-learning and SARSA agents

Description
This PR add 2 tabular agents: Q-Learning and SARSA (continuity of #254).
TODO
Add 1 example for qlearning and 1 for sarsa. (video plot)

Hello it looks good to me, do we usually use the typing library ?

Hello it looks good to me, do we usually use the typing library ?

Yes (see #293)

Done, sorry for the delay @TimotheeMathieu :)


sudo: howdy: command not found

Any command that has to do with howdy (other than man howdy) seems to not work. For example, when I do "sudo howdy config", all I get is "sudo: howdy: command not found"
I've searched for similar issues already, and my issue has not been reported yet.
Linux distribution (if applicable): Lubuntu 19.04, which is based on Ubuntu 21.04
Howdy version (sudo howdy version): can't check, but downloaded it last night.

Never mind, apparently there was a similar issue.

Thanks for finding the other issue yourself!


Add type and triggered action stream

Add stream to keep the worker instance
up to date with type and triggered action
contracts as they are added to the system.
Change-type: minor
Signed-off-by: Josh Bowling<EMAIL_ADDRESS>
I'd like to deploy this myself as we should remove the type and triggered action portions of the same stream defined in apps/server.
Testing in https://github.com/product-os/jellyfish/pull/8410

@balena-ci rebase

@balena-ci I self certify!


[FEATURE ⭐] Guide for single frame capture on demand

what i'm looking for
To capture a frame via a method call, which might look like
# init
capture = WindowsCapture(...
)

# call
def my_func():
    image: numpy.ndarray = capture.grab_frame()
    ...

and the use case is an automation script.
more details
I'm using the python lib and the workflow seems to me like starting a worker that streams back data (to the handler) of each frame that the app/window draws, if I'm not mistaken.
I found this issue https://github.com/NiiightmareXD/windows-capture/issues/1 about this topic. For the way you suggested, is it technically that the image bytes still get captured and dumped into a buffer https://github.com/NiiightmareXD/windows-capture/blob/main/windows-capture-python/windows_capture/init.py#L234 but just not processed (in the handler)?
If that is the case, I wonder if you could suggest a recommended way to capture a single frame on call, or maybe if we can have a separate method for this purpose, that is optimised for the time after each time the method is called until the image bytes are returned.
--
may I have a separate question that if my image handler requires a long time to run (longer than frame time), will there be multiple instances of handler running (trigger by each new frame drawn), or a running handler will block those coming after?

I plan to create a separate function or module to enable capturing a frame on demand, even though it's already possible with the current implementation by storing the latest frame.
As for your second question, the handler will wait until the previous frame is processed and then send the latest available frame.
I will keep this issue open until single frame capturing is implemented in both Rust and Python.

I plan to create a separate function or module to enable capturing a frame on demand, even though it's already possible with the current implementation by storing the latest frame.
As for your second question, the handler will wait until the previous frame is processed and then send the latest available frame.
I will keep this issue open until single frame capturing is implemented in both Rust and Python.

The question that I have is.. isnt recording the frame buffer from the windows api all the time slow? I think adding a capture frame on demand could reduce the usage, is it even possible?

I plan to create a separate function or module to enable capturing a frame on demand, even though it's already possible with the current implementation by storing the latest frame.
As for your second question, the handler will wait until the previous frame is processed and then send the latest available frame.
I will keep this issue open until single frame capturing is implemented in both Rust and Python.

The question that I have is.. isnt recording the frame buffer from the windows api all the time slow? I think adding a capture frame on demand could reduce the usage, is it even possible?

It doesn't update if I just wait in frame handler until a new frame is needed, so it should be possible

I plan to create a separate function or module to enable capturing a frame on demand, even though it's already possible with the current implementation by storing the latest frame.

can you please tell me how i can do it? been trying to figure out how to do it


[Feature] Use client-go to interact with the cluster in container in e2e test

Issue Description
Type: feature request
Describe what feature you want
The previous e2e test uses ssh to obtain cluster node and pod information using the kubectl command in the container. Using client-go to get pods would better than using kubectl, kubectl would be for sure in official clusterimage,  when kubectl's version did not match, this would have an error in test stage.
In addition, if e2e test fails, pod logs cannot be obtained from the container, which makes debug very inconvenient, Especially in CI using github action, because it is like a black box. Therefore, client-go can be used to interact with the cluster in the container, and error logs can be printed for troubleshooting.
I thik this is very important and helpful for e2e test.
Additional context
Add any other context or screenshots about the feature request here.

Can't help but like 👍


DELETE requests sometimes missing user info

My app: node (v5.1.0) + express (^4.14.0) + express-stormpath (^3.1.5) + angular (^1.5.3) + stormpath-sdk-angularjs (^1.0.0).
I have 2 identical HTTP DELETE requests, for 2 different models called "selections" and "pose_collections". These are generated via common base code automatically, so the same code sending the requests by client and same code receiving the requests by the Express server. Even the routes are set up automatically, so stormpath is set up for both routes identically. The only difference in the requests is the model name in the URL:
request (1)
DELETE /api/selections/57ca0c56bb9df6165e1ddb9d?session_id=57c89599680ba1b7536a9ec4
request (2)
DELETE /api/pose_collections/57c8b06b57496a5d56b4dd54?session_id=57c89599680ba1b7536a9ec4
The rest of the request is pretty much identical (see full HTTP requests below).
Now request (1) works with Stormpath, request (2) doesn't work with Stormpath.
When my Express controller receives request (1):
  public delete(request: express.Request, response: express.Response): void {
    console.log("~~~~~~~~~~~~~~~~~~deleting", request);
    ...
 }

the request object contains the field "user" that looks something like this:
{
  href: 'https://api.stormpath.com/v1/accounts/<my account>',
  username: 'agata',
  email: 'agata@<my company>',
  givenName: ...,
  middleName: '...,
  surname: ...,
  fullName: ...,
  status: 'ENABLED',
  createdAt: '2016-06-24T00:04:42.383Z',
  modifiedAt: '2016-07-06T19:23:36.234Z',
  passwordModifiedAt: '2016-07-06T19:23:36.000Z',
  emailVerificationToken: null,
  customData: { ... }
}

When my Express controller receives request (2), the "user" field is undefined. Other than that, the request objects are, again, identical (same headers etc.).
This is only happening with DELETE requests, GET, POST, PUT all work just fine.
Any other Express middleware that we use that might be relevant is body-parser (~1.5.0), cookie-parser (~1.0.1), passport (~0.2.0), request (^2.60.0).
I don't know what is causing this behavior, and don't seem to be able to find any help. This reproes consistently 100% of the time. Any help greatly appreciated, I ran out of ideas of how to make it work.

Below the requests as sent by the browser.
Request (1)
Request URL:http://localhost:9000/api/selections/57ca0ccfbb9df6165e1ddb9e?session_id=57c89599680ba1b7536a9ec4
Request Method:DELETE
Status Code:200 OK
Remote Address:[::1]:9000

Response Headers
Connection:keep-alive
Content-Length:61
Content-Type:application/json; charset=utf-8
Date:Fri, 02 Sep 2016 23:35:56 GMT
ETag:W/"3d-545ab7d3"
Vary:Accept-Encoding
X-Powered-By:Express

Request Headers
Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8,pl;q=0.6
Cache-Control:no-cache
Connection:keep-alive
Cookie:access_token=<my access token>
Host:localhost:9000
Origin:http://localhost:9000
Pragma:no-cache
Referer:http://localhost:9000/sessions/57c89599680ba1b7536a9ec4
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
X-Stormpath-Agent:stormpath-sdk-angularjs/1.0.0 angularjs/1.5.8

Query String Parameters
session_id:57c89599680ba1b7536a9ec4

Request (2)
Request URL:http://localhost:9000/api/pose_collections/57c8b06b57496a5d56b4dd54?session_id=57c89599680ba1b7536a9ec4
Request Method:DELETE
Status Code:401 Unauthorized
Remote Address:[::1]:9000

Response Headers
Connection:keep-alive
Content-Length:43
Content-Type:application/json; charset=utf-8
Date:Fri, 02 Sep 2016 23:37:00 GMT
ETag:W/"2b-612861e3"
Vary:Accept-Encoding
X-Powered-By:Express

Request Headers
Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8,pl;q=0.6
Cache-Control:no-cache
Connection:keep-alive
Cookie:access_token=<exact same access token as above>
Host:localhost:9000
Origin:http://localhost:9000
Pragma:no-cache
Referer:http://localhost:9000/sessions/57c89599680ba1b7536a9ec4
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
X-Stormpath-Agent:stormpath-sdk-angularjs/1.0.0 angularjs/1.5.8

Query String Parameters
session_id:57c89599680ba1b7536a9ec4

Below the requests as received by Express.
Request (1)
~~~~~~~~~~~~~~~~~~deleting IncomingMessage {
  _readableState: {...}
  readable: true,
  ...
  socket: {...},
  connection: {...},
  httpVersionMajor: 1,
  httpVersionMinor: 1,
  httpVersion: '1.1',
  complete: true,
  headers:
   { host: 'localhost:9000',
     connection: 'keep-alive',
     accept: 'application/json, text/plain, */*',
     origin: 'http://localhost:9000',
     'x-stormpath-agent': 'stormpath-sdk-angularjs/1.0.0 angularjs/1.5.8',
     'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36',
     referer: 'http://localhost:9000/sessions/57c89599680ba1b7536a9ec4',
     'accept-encoding': 'gzip, deflate, sdch',
     'accept-language': 'en-US,en;q=0.8,pl;q=0.6',
     cookie: 'access_token=<my access token>' },
  rawHeaders:
   [ 'Host',
     'localhost:9000',
     'Connection',
     'keep-alive',
     'Accept',
     'application/json, text/plain, */*',
     'Origin',
     'http://localhost:9000',
     'X-Stormpath-Agent',
     'stormpath-sdk-angularjs/1.0.0 angularjs/1.5.8',
     'User-Agent',
     'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36',
     'Referer',
     'http://localhost:9000/sessions/57c89599680ba1b7536a9ec4',
     'Accept-Encoding',
     'gzip, deflate, sdch',
     'Accept-Language',
     'en-US,en;q=0.8,pl;q=0.6',
     'Cookie',
     'access_token=<my access token>' ],
  trailers: {},
  rawTrailers: [],
  upgrade: false,
  url: '/api/selections/57ca1301cef9ff565e57b171?session_id=57c89599680ba1b7536a9ec4',
  method: 'DELETE',
  statusCode: null,
  statusMessage: null,
  client: {...},
  _consuming: false,
  _dumped: false,
  next: [Function: next],
  baseUrl: '',
  originalUrl: '/api/selections/57ca1301cef9ff565e57b171?session_id=57c89599680ba1b7536a9ec4',
  _parsedUrl:
   Url {
     protocol: null,
     slashes: null,
     auth: null,
     host: null,
     port: null,
     hostname: null,
     hash: null,
     search: '?session_id=57c89599680ba1b7536a9ec4',
     query: 'session_id=57c89599680ba1b7536a9ec4',
     pathname: '/api/selections/57ca1301cef9ff565e57b171',
     path: '/api/selections/57ca1301cef9ff565e57b171?session_id=57c89599680ba1b7536a9ec4',
     href: '/api/selections/57ca1301cef9ff565e57b171?session_id=57c89599680ba1b7536a9ec4',
     _raw: '/api/selections/57ca1301cef9ff565e57b171?session_id=57c89599680ba1b7536a9ec4' },
  params: { id: '57ca1301cef9ff565e57b171' },
  query: { session_id: '57c89599680ba1b7536a9ec4' },
  res: {...},
  body: {},
  originalMethod: 'DELETE',
  secret: undefined,
  cookies:
   { access_token: '<my access token>',
     _ga: ...,
     _gat: ... },
  signedCookies: {},
  _passport:
   { instance:
      Authenticator {
        _key: 'passport',
        _strategies: [Object],
        _serializers: [],
        _deserializers: [],
        _infoTransformers: [],
        _framework: [Object],
        _userProperty: 'user',
        Authenticator: [Function: Authenticator],
        Passport: [Function: Authenticator],
        Strategy: [Object],
        strategies: [Object] },
     session: {} },
  _startTime: Fri Sep 02 2016 17:02:12 GMT-0700 (PDT),
  _remoteAddress: '::1',
  accessToken: undefined,
  user:
   Account {
     href: 'https://api.stormpath.com/v1/accounts/<my account>',
     username: 'agata',
     email: 'agata@<my company>',
     givenName: ...,
     middleName: '',
     surname: ...,
     fullName: ...,
     status: 'ENABLED',
     createdAt: '2016-06-24T00:04:42.383Z',
     modifiedAt: '2016-07-06T19:23:36.234Z',
     passwordModifiedAt: '2016-07-06T19:23:36.000Z',
     emailVerificationToken: null,
     customData:
      CustomData { ... },
  route:
   Route {
     path: '/api/selections/:id',
     stack: [ [Object] ],
     methods: { delete: true } } }

Request (2)
~~~~~~~~~~~~~~~~~~deleting IncomingMessage {
  _readableState: {...}
  readable: true,
  ...
  socket: {...},
  connection: {...},
  httpVersionMajor: 1,
  httpVersionMinor: 1,
  httpVersion: '1.1',
  complete: false,
  headers:
   { host: 'localhost:9000',
     connection: 'keep-alive',
     accept: 'application/json, text/plain, */*',
     origin: 'http://localhost:9000',
     'x-stormpath-agent': 'stormpath-sdk-angularjs/1.0.0 angularjs/1.5.8',
     'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36',
     referer: 'http://localhost:9000/sessions/57c89599680ba1b7536a9ec4',
     'accept-encoding': 'gzip, deflate, sdch',
     'accept-language': 'en-US,en;q=0.8,pl;q=0.6',
     cookie: 'access_token=<exact same access token>' },
  rawHeaders:
   [ 'Host',
     'localhost:9000',
     'Connection',
     'keep-alive',
     'Accept',
     'application/json, text/plain, */*',
     'Origin',
     'http://localhost:9000',
     'X-Stormpath-Agent',
     'stormpath-sdk-angularjs/1.0.0 angularjs/1.5.8',
     'User-Agent',
     'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36',
     'Referer',
     'http://localhost:9000/sessions/57c89599680ba1b7536a9ec4',
     'Accept-Encoding',
     'gzip, deflate, sdch',
     'Accept-Language',
     'en-US,en;q=0.8,pl;q=0.6',
     'Cookie',
     'access_token=<exact same access token>' ],
  trailers: {},
  rawTrailers: [],
  upgrade: false,
  url: '/api/pose_collections/57c8b06b57496a5d56b4dd54?session_id=57c89599680ba1b7536a9ec4',
  method: 'DELETE',
  statusCode: null,
  statusMessage: null,
  client: {...},
  _consuming: false,
  _dumped: false,
  next: [Function: next],
  baseUrl: '',
  originalUrl: '/api/pose_collections/57c8b06b57496a5d56b4dd54?session_id=57c89599680ba1b7536a9ec4',
  _parsedUrl:
   Url {
     protocol: null,
     slashes: null,
     auth: null,
     host: null,
     port: null,
     hostname: null,
     hash: null,
     search: '?session_id=57c89599680ba1b7536a9ec4',
     query: 'session_id=57c89599680ba1b7536a9ec4',
     pathname: '/api/pose_collections/57c8b06b57496a5d56b4dd54',
     path: '/api/pose_collections/57c8b06b57496a5d56b4dd54?session_id=57c89599680ba1b7536a9ec4',
     href: '/api/pose_collections/57c8b06b57496a5d56b4dd54?session_id=57c89599680ba1b7536a9ec4',
     _raw: '/api/pose_collections/57c8b06b57496a5d56b4dd54?session_id=57c89599680ba1b7536a9ec4' },
  params: { id: '57c8b06b57496a5d56b4dd54' },
  query: { session_id: '57c89599680ba1b7536a9ec4' },
  res: {...},
  body: {},
  originalMethod: 'DELETE',
  secret: undefined,
  cookies:
   { access_token: '<exact same access token>',
     _ga: ...,
     _gat: ... },
  signedCookies: {},
  _passport:
   { instance:
      Authenticator {
        _key: 'passport',
        _strategies: [Object],
        _serializers: [],
        _deserializers: [],
        _infoTransformers: [],
        _framework: [Object],
        _userProperty: 'user',
        Authenticator: [Function: Authenticator],
        Passport: [Function: Authenticator],
        Strategy: [Object],
        strategies: [Object] },
     session: {} },
  _startTime: Fri Sep 02 2016 17:10:32 GMT-0700 (PDT),
  _remoteAddress: '::1',
  route:
   Route {
     path: '/api/pose_collections/:id',
     stack: [ [Object] ],
     methods: { delete: true } } }

Never mind. Found the issue on our end, Stormpath was not configured correctly for the second route.


BSD-3-Clause and version bump

Will close #28

Seems reasonable to me – thanks! I’ll test this out as soon as the new crates are published.

Published now. :+1:


Shield Damage Looping

For New Contributors
How to contribute
Description

Shield damage is looping when attacked with a projectile.
Fix so only a single hit is registered
Intended Design

N/A
Location

N/A
Related Issues

N/A
Requirements

N/A
Additional information

N/A
Definition of Done

[ ] Class level comments exist for all new classes.
[ ] XUnit tests exist for every method that does not require the game to be ran.

Moved to Bannerlord-Coop-Team/Bannerlord-Coop-Issues#4


chore/fix: compatibility with newest nightly builds

Downgrades an overly aggressive/ambitious numeric comparison
Removes samples with sample weight = 0

Spoke with the scikit-learn team w.r.t lowering precision of their estimator checks so that we don't have to do juggling like we did here with sample weights. They're working on it, but nothing concrete so far. For now, I think our best option is to move forward with this. I will think about making a PR to their repo and then clean stuff up here (the whole separation into high and low precision falls into that category as well)


Missing explicit dependency on commons-lang for hawtjni-generator

Hi,
The ReflectField class in the hawtjni-generator module uses the StringUtils class from commons-lang but the pom doesn't declare an explicit dependency on it, it's just pulled as a transitive dependency through commons-cli 1.0 (note that recent versions of commons-cli dropped this dependency, so having an explicit dependency on commons-lang will be necessary to upgrade or replace commons-cli).

Would you mind creating a PR for that ?


Fix default location of the virtualenvwrapper script

The virtualenvwrapper script has been relocated to
/usr/local/bin/virtualenvwrapper.sh. Update the
plugin to look in the new location first. See:
http://virtualenvwrapper.readthedocs.io/en/latest/#introduction
to confirm the change in location for this script.
This addresses issue #3047 where the solution was to source this file
from your zshrc.

@robbyrussell look good? Can we get this merged?


Tee-Object should have an -Encoding parameter

Summary of the new feature/enhancement
Tee-Object currently invariably uses the default character encoding when teeing to a file (-Path aka -Filepath, -LiteralPath), which in PS Core is BOM-less UTF-8
However, sometimes you need a specific character encoding, and Tee-Object currently offers no way to specify a different encoding.
Proposed technical implementation details (optional)
Introduce an -Encoding parameter (to be combined only with the -Path / -FilePath or -LiteralPath, analogous to the parameter of the same name already supported by other write-to-file cmdlets such as Out-File.

As an aside: As it turns out,  a  'Out-File:Encoding' entry in $PSDefaultParameterValues also controls not just Out-File / >'s output encoding, but also Tee-Object's, which is obscure and probably undesired. However, conceivably someone currently relies on this as a (cumbersome) workaround.

I'm not even sure I want to know how that was jury-rigged. My word... 😂

Looks as very simple enhancement in Tee-Object.cs

I'm not even sure I want to know how that was jury-rigged. My word... 😂

I'm assuming it's just because Tee-Object invokes Out-File to produce the file itself. It'd be better for Tee-Object to have a parameter, but I can see this being an okay work-around in the meantime (ignoring that it applies a global change to a local problem, which is of course always a bad thing to do).

Yeah looking at the code it looks like this just invokes Out-File, and since that has an -Encoding parameter this might be as simple as adding an encoding parameter that just gets passed through to that command.

Yeah looking at the code it looks like this just invokes Out-File, and since that has an -Encoding parameter this might be as simple as adding an encoding parameter that just gets passed through to that command.

Yeah looks like it is as simple as that, going to add some unit tests and turn what I've gotten into a pull request.

Yeah looks like it is as simple as that, going to add some unit tests and turn what I've gotten into a pull request.


Building with CMake

I'm trying to follow the CMake build instructions but I can't figure it out. If I clone the repo to C:\thirdparty\rbfx then where do the CMakeLists.txt and main.cpp files go? The contents of the provided CMakeLists.txt suggest it should be in the parent folder of Urho3D, but that's the Source folder which already contains a CMakeLists.txt. When I create a MyAwesomeGame folder within the Source folder, then CMake complains that it can't find the subdirectory Urho3D.

Rbfx folder goes into the folder with cmakelists.txt and main.cpp

Thanks. I had to rename the rbfx folder to Urho3D to get the header include paths to generate properly, but it's all working now.

You can just rename the urho3d to rbfx in cmakelists.txt but doesn't matter, if that solution got it working, then good.


Bump up the cachecontrol pacakge

Hi, I was trying to package this  tool into nixpkgs  but I found it using a fixed cachecontrol package.
https://github.com/dvershinin/lastversion/blob/master/setup.py#L25
    # latest 0.12.12 uses filelock instead of lockfile,
    # we have to update our packaging before switching to it
    'cachecontrol==0.12.6',

any chance to upgrade it to the  latest version?

Released a new version with 'cachecontrol<=0.12.11'. Hope this helps.


Improve alias handling in outlet creation

Observed behavior
When creating multiple outlets with the same alias, ockam command doesn't report a conflict and only the last outlet is listed in the status.
See the outlet listed by show.
$ ockam tcp-outlet create --to <IP_ADDRESS>:1080 --alias my-alias --from outlet1
       Creating TCP Outlet to <IP_ADDRESS>:1080...

       There is no node, on this machine, marked as your default.
       Creating a new Ockam node for you...
       Created a new node named default
       Marked this node as your default, on this machine.

     ✔ Created a new TCP Outlet on node default from address /service/outlet1 to <IP_ADDRESS>:1080
$ ockam node show default

Node:
  Name: default (Default)
  Status: UP
  Route To Node:
    Short: /node/default
    Verbose: /dnsaddr/localhost/tcp/56734
  Identity: Pc25b4dbe8acecda55438a6babcd209c86fae806f0b12e3d6c8d9eafe44f1b184
  Transports:
    Transport:
      Type: TCP
      Mode: Listening
      Socket: <IP_ADDRESS>:56734
      Worker: <none>
      FlowControlId: 7fa70d15c9a1b5e430ad1c544c7b8c9e
  Secure Channel Listeners:
    Listener:
      Address: /service/api
      FlowControlId: 9ece9ed3123ec83081b8179c284a225a
  Inlets:
  Outlets:
    Outlet:
      Forward Address: <IP_ADDRESS>:1080
      Address: /service/outlet1
  Services:
    Service:
      Type: uppercase
      Address: /service/uppercase
    Service:
      Type: echo
      Address: /service/echo
davidebaldo@mac ~/workspace/github/build-trust/ockam
$ ockam tcp-outlet create --to <IP_ADDRESS>:1080 --alias my-alias --from outlet2
       Creating TCP Outlet to <IP_ADDRESS>:1080...

     ✔ Created a new TCP Outlet on node default from address /service/outlet2 to <IP_ADDRESS>:1080
$ ockam node show default

Node:
  Name: default (Default)
  Status: UP
  Route To Node:
    Short: /node/default
    Verbose: /dnsaddr/localhost/tcp/56734
  Identity: Pc25b4dbe8acecda55438a6babcd209c86fae806f0b12e3d6c8d9eafe44f1b184
  Transports:
    Transport:
      Type: TCP
      Mode: Listening
      Socket: <IP_ADDRESS>:56734
      Worker: <none>
      FlowControlId: 7fa70d15c9a1b5e430ad1c544c7b8c9e
  Secure Channel Listeners:
    Listener:
      Address: /service/api
      FlowControlId: 9ece9ed3123ec83081b8179c284a225a
  Inlets:
  Outlets:
    Outlet:
      Forward Address: <IP_ADDRESS>:1080
      Address: /service/outlet2
  Services:
    Service:
      Type: uppercase
      Address: /service/uppercase
    Service:
      Type: echo
      Address: /service/echo

Steps to reproduce

ockam reset -y
ockam tcp-outlet create --to <IP_ADDRESS>:1080 --alias my-alias --from outlet1
ockam tcp-outlet create --to <IP_ADDRESS>:1080 --alias my-alias --from outlet2

Expected behavior
The second outlet creation onward should fail since the alias is already in-use.
Ockam Version
0.90.0/8a77aa9dec024b05d9da00f4e75acd188ff6e785

I can try and have a look at this

@nidnogg
sure!

Hi all! So I tried replicating this issue and I believe it's been fixed sometime over the last weeks because creating the second outlet with the duplicate name reports an error as intended. See the transcript below:
OCK500

  × Ockam Error [origin: Node, kind: AlreadyExists] at implementations/rust/ockam/ockam_api/src/nodes/service/portals.rs:59:24
  │ --- Details ---
  │ - Caused by: A TCP outlet with alias 'my-alias' already exists
  │ - possible root cause `alloc::string::String`: A TCP outlet with alias 'my-alias' already exists
  │   debug output:
  │     "A TCP outlet with alias 'my-alias' already exists"
  │ --- Captured Spantrace ---
  │
  │ --------------------------
  │  (origin: Api, kind: Invalid, source location: /Users/nidnogg/localdev/ockam/implementations/rust/ockam/ockam_core/src/api.rs:144:44)
  help: Please report this issue, with a copy of your logs, to https://github.com/build-trust/ockam/issues

  Version 0.94.0, hash: de5b2f78e083d6a47330b7aab7b7f0413f50846d


feat: Add an AMI version output to modules/eks-managed-node-group

Description

Adds an output to the eks-managed-node-group module with the release version used for the node group.
Motivation and Context

The release version being used (when not supplied from the outside with the ami_release_version or ami_id variables) is only available in a resource and locals private to this module. Users of the module can therefore not determine what AMI release version is being used if they use use_latest_ami_release_version; this change adds an output with that information, which makes it possible for users of the module to determine whether an update is happening (by comparing to an aws_eks_managed_node_group data resource, for example).
Breaking Changes

No, this only adds an output and makes no breaking changes.
How Has This Been Tested?

[ ] I have updated at least one of the examples/* to demonstrate and validate my change(s)
[x] I have tested and validated these changes using one or more of the provided examples/* projects

The existing examples/eks-managed-node-group applies with no changes in the plan after this commit. The examples do not seem to include examples of using the outputs of the module, and I did not add one.

[x] I have executed pre-commit run -a on my pull request

I don't see why this is useful, could you elaborate? if you want to know the release version used by a node group, you can look in the console or use the API https://docs.aws.amazon.com/cli/latest/reference/eks/describe-nodegroup.html


Implement Bean Naming Schema

Currently we have a bit of anarchy when it comes to bean naming convention.
We should implement the following approach for all types of beans (shortName + postfix from variable in interface):
public interface UserMappingFactory {

    /**
     * Name postfix for beans of this type.
     */
    String USER_MAPPER_TYPE_POSTFIX = "-userMapping-factory";

   [...]
}

@Component("jwt-mapping" + USER_MAPPER_TYPE_POSTFIX)
public class JwtTokenMapperFactory implements UserMappingFactory {
    [...]
}

Why not just use the default naming strategy from Spring? (see https://www.baeldung.com/spring-bean-names#1-class-level-annotations)
If the classes are named accordingly the post fix can be achieved without any string constants in the interface

Proposal done, but no rights to push on repo

Proposal looks good, sorry it took us so long. I missed your PR. The notification got stuck in my Spam folder.
I'm working to include your proposal and make sure the documentation is in line with the changes too.


Find Percentage Error if True and Observed Values are given

Given the True value and the Observed value, calculate the percentage error.
Example Problem:
V true = 100
V observed = 105
Example Solution:
Percentage error is 5 %
Further Explanation:
Percentage error will be (abs(V true - V observed)/V true)*100
Would you like to be assigned to this:
Yes, would love to contribute!

I like it! Could also do a separate generator for percent difference using the formula: 2*abs(a-b)/(a+b)*100.


Issue 60: address number prefix sample data

Adds some sample data for testing issue #60

What's the status on this open issue?

hey @darrell & @Downchuck,
the training example
<AddressString><AddressNumberPrefix>0</AddressNumberPrefix><AddressNumber>1</AddressNumber><StreetNamePreDirectional>SW</StreetNamePreDirectional><StreetName>RICHARDSON</StreetName><StreetNamePostType>ST</StreetNamePostType><PlaceName>Portland</PlaceName><StateName>OR</StateName></AddressString>
would correspond to the raw string 0 1 SW RICHARDSON ST Portland OR, not 01 SW RICHARDSON ST Portland OR (like the example in issue 60)
these examples would train the address parser to recognize a sole 0 as an address number prefix, but still wouldn't split out a 0 from the beginning of an address number, b/c that would have to happen in a post-processing step.
are address prefixes ever split out in real Portland addresses, e.g. is 0 1 SW RICHARDSON ST a valid address?

No, to the best of my knowledge 0 1 SW RICHARDSON ST  would not be "correct".
I think that if it parses to the standard (i.e. the 0 is treated AddressNumberPrefix), then it's reasonable to leave it to the post-processing to merge those fields without the space. However, IIRC, all of the examples in the standard have no space between the AddressNumberPrefix and the AddressNumber.

On Portland: http://zehnkatzen.blogspot.com/2005/07/geography-address-nerd-on-zero-hundred.html


HIT L0 Science Packet Decom

Summary
Continue work on L0 HIT science packet data class.

[ ] Add code to decommutate attributes that contain binary data (InitVar attributes)
[ ] Add post_init method to data class to handle InitVar attributes
[ ] Add code to decompress data

After brainstorming more on how to handle data spread across multiple packets, it may not make sense to use data classes anymore. Need to think about this some.
Need to modify TLM differently than initially planned. Put all science data in one row as BYTE data type. This will require more decom work in the code.

Use result from Greg's packet_file_to_datasets function as input. (dictionary with apids as keys and data in xarray format)
Group packets into groups of 20 to create science frames. Use group flag and sequence counts to assemble the frames.
Parse binary science data and organize data into data variables (EVRATES, SNGRATES, etc.).
Parse binary event data. Figure out processing steps for this. Processing depends on other data points.
Decompress science data. Event data do not require decompression


Change the printing interval of the integrated collector error log

Phenomenon and reproduction steps
Root cause and solution
Changed the error log printing interval of the integrated collector from one second to one minute
Impactions
Test method
Affected branch(es)

main

Checklist

[ ] Dependencies update required
[ ] Common bug (similar problem in other repo)

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


Dockerfile Misconfiguration: Privileged Container

Is there an existing issue for this?

[X] I have searched the existing issues

Kong version ($ kong version)
kong 2.8.0
Current Behavior
https://github.com/Kong/kong/blob/fd04b2782b510351eb414fea9016efa40641e47f/.devcontainer/Dockerfile
Details:
The Dockerfile sets a container to run with root user
Expected Behavior
Explanation:
Dockerfile with USER instruction that is set to root, has an overly permissive privilege to make changes inside the container. It
violates the principle of running images with least privileges. In usual cases, root permissions might be required to install
packages and create folders. After the installation is done, it is good practice to add a user with restricted privileges.
Recommendations:
It is good practice to run your containers as a non-root user when possible.
To modify a docker container to use a non-root user, the Dockerfile needs to specify a different user, such as:
RUN useradd myLowPrivilegeUser
USER myLowPrivilegeUse
Steps To Reproduce
https://github.com/Kong/kong/blob/fd04b2782b510351eb414fea9016efa40641e47f/.devcontainer/Dockerfile

Anything else?
No response

The official as well as the unofficial Kong docker containers run as a non-root user per git://kong/docker-kong
Ideally the devcontainer should run as the same uid:gid as your local user. If you know how to accomplish this such that it's compatible with what visual studio code is expecting I suspect a pull request would be appreciated :+1:

Hi @hutchic @chawdamrunal  I can set the user at the end of the dockerfile to the host system user and group , can I send this PR

I don't personally use the .devcontainer. As long as the change doesn't break current functionality (which I don't think it would) I believe we'd accept a PR to that effect (cc @mayocream )

@chawdamrunal does the change in https://github.com/Kong/kong/pull/8817 fix the problem for you?


ci: Various adjustments for OIIO 3.0 becoming the release

Some of the changes are specifically related to OIIO 3.0 requiring OCIO and raising the minimum version it needs.
Also, we can eliminate the extra test we added to specifically test the 3.0 betas (now "release" picks up 3.0, so getting dev-3.0 explicitly isn't really needed).

Could somebody please review? This one is necessary to solve some broken CI now that OIIO has moved its release branch marker to 3.0.


LicenseTextExistsCheck fails on GPL-3.0-or-later

I also ran this against our iiwa_ros repo.
It's a metapackage and the first observation is that it could not be run in the root repo folder and not in the iiwa_ros subfolder, but that's not what the issue is about.
The repo is "GPLv3.0 and later" licensed. After making the package.xml license statement SPDX compliant it still states this:
Found 1 packages in .
====================
[iiwa_driver]
git hash of (/home/matthias/Workspaces/iiwa_ros_ws/src/iiwa_ros): 0f0041cef81cb9ea1cf4f27ecef1fa9b470df991
LicenseTagExistsCheck
 SUCCESS Found licenses ['GPL-3.0-or-later']
LicenseTagIsInSpdxListCheck
 SUCCESS All license tags are in SPDX list of licenses.
LicenseTextExistsCheck
 FAILURE The following license tags do not have a valid license text file:
  'GPL-3.0-or-later': License text file '../LICENSE' is of license GPL-3.0-only but should be GPL-3.0-or-later.
LicensesInCodeCheck
 SUCCESS All licenses found in the code are covered by a license declaration.

However even on spdx.org GPL-3.0-or-later and GPL-3.0 have exactly the same text and copying the GPL-3.0-or-later-text from the website with its different linebreaks does not help either.
Probably the false positive comes from a library, but it should still be handled somehow. Worst-case with an ignore list.

I had a similar issue with SkiROS2 with LGPL if I didn't have this snippet above the actual license text:
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License below for more details.

Probably sth similar would work for GPL as well.
It might still be worthwhile to communicate it. Maybe through sth like a Troubleshooting section in the readme.


fixed dependency problem, on python 3.4.0

Fixed dependency problem, on python 3.4.0 pathlib is included in the python distribution so it must not be included in the requirements for thefuck otherwise it wont run at startup.
This was necesary to make a package for Fedora
https://bugzilla.redhat.com/show_bug.cgi?id=1239148

Thanks!

you're welcome!


Separated "Functors" into new files

Callback subclasses (VRRendererFunctor etc.) were removed from the header files and placed in their own .h and .cpp files. They were renamed to "Callback*" because they weren't functors.

VRRenderState was added to the MinVR namespace

VRDisplayAction and VRRenderer had their header guards swapped, so I corrected them.

VRDisplayDevice's templated member functions as well as the interface (VRSpecificRenderer etc.) templated member functions were deleted. They were not used nor did they add any functionality. Any object that could be given to the templated functions, for e.g. VRSpecificRenderer, must itself obey the VRRenderer interface. The name of the function can be different, but this has no use case.

Hey Micheal,  Your changes look good to me.  Do you know why I cannot automatically merge this pull request?  It says there are conflicts.

What does it say the merge conflicts are?
On Wed, Feb 24, 2016 at 11:49 PM, dtorban<EMAIL_ADDRESS>wrote:

Hey Micheal, Your changes look good to me. Do you know why I cannot
automatically merge this pull request? It says there are conflicts.
—
Reply to this email directly or view it on GitHub
https://github.com/ivlab/MinVR2/pull/34#issuecomment-188614356.

--
Michael Murphy
BSc Applied Math / Computer Science '15
MSc Computer Science '16
Brown University

I've resolved all the conflicts. I think you can pull this into the main repo now.


Need the ability to modify key in another extension such as Base Application

We need a way of disabling/enabling a existing index which was created in another extension such as base extension using a table extension.  This will allow developers to not only create new key in their extension but also disable unused key due to customization.  Please see my suggested syntax below for this.  In this example Key18 and Key17 are altered and a new key Tune6 is created.
tableextension 50001 "Cust Legger Ext" extends "Cust. Ledger Entry"
{
keys
{
    key(Tune6; "Document No.", "Posting Date")
    {
        //Enabled = false;
        SumIndexFields = "Sales (LCY)";
        IncludedFields = "Adjusted Currency Factor";
        //MaintainSiftIndex = false;
        //MaintainSqlIndex = false;
    }

    modify(Key18)
    {
        MaintainSiftIndex = false;
        MaintainSqlIndex = false;
        Enabled = false;
    }

    modify(Key17)
    {
        MaintainSiftIndex = true;
        MaintainSqlIndex = true;
    Enabled = true;
    }

}

}

We do not process requests for new capabilities in development environment, you should create it in AL section instead.


49021373: added PreferredToolArchitecture=x64

Updated Directory.Build.props at the repo root to specify PreferredToolArchitecture=x64, to align with other WASDK repos.
For status checks on the main branch, please use TransportPackage-Foundation-PR
(https://microsoft.visualstudio.com/ProjectReunion/_build?definitionId=81063&_a=summary)
and run the build against your PR branch with the default parameters.

/azp run


allow reordering of dictionary list

For the case of having a lot of dictionaries on the front screen, it would be good to be able to reorder the list. Possible, mutually non-exclusive, options, entail:

being able to arbitrarily reorder the list
being able to mark a dictionary as favourite which would bring it to the top
being able to archive the dictionary would would bring it to the bottom or to a separate view

This includes the problem of unwanted shares.

duplicate of several issues #212 #213 #215


Add .gitattributes from F# project scaffold

This was driving me crazy.

We also need to update FAKE in this repo to fix the Travis/Mono bug


fix: enable option not working if array is blank

Explanation: https://github.com/flatpickr/flatpickr/issues/2285#issuecomment-702698537
Closes: #2285

Something just crossed my mind. Do we need to update the docs before we merge this fix? (I haven't had time to check it my self yet so I'm writing it here so we don't forget it)

yes I will update docs. Thanks for the reminder. But let's first confirm that this change is acceptable and isn't breaking anything else (any plugin?) . Because we are changing default value of enable from [] to null.

@armujahid we can actually see tell the user explicitly provided an empty array in enable by looking at userConfig in parseConfig(). This should simplify the bugfix a lot and prevent any breakage.
Let me know if you need any help with this :)


getModel -> getPosition rename was a mistake

So, I don't have the class in mind but y'all we see what I mean with this code excerpt:
MatrixStack matrices;

/* code */

matrices.peek().getModel()

getModel was renamed to getPosition during the big rendering refactor, we imported lot of mojmap names woooo so we finally have stuff be accurate.
Except this name.
No it's not a position, it's a model matrix.
"wdym it's not a position?"
It contains both a translation and a rotation of the model.
It's not just a position it's more.
If we want to be the most accurate possible it should be getModelMatrix but that's a tad long. And given where it's used in the code, it's a bit useless since, well, we already usually know that it's a matrix.
The question though is, should this rename happen once again?
This would fuel the possible complaints of QM being unstable, but it's also very bothering to me to keep this name.
So please voice your opinion below!

I don't think fear of being called unstable should prevent us from fixing a mistake.


Notification on bannerViewActionShouldBegin and bannerViewActionDidFinish

I can't seem to find a way to get notified via the LARSAdController for the standard iAd delegate methods, in particular bannerViewActionShouldBegin and bannerViewActionDidFinish.
I need to stop some activity before the ad is displayed modally and then resume the activity once the ad has completed, assuming the user returns to the app. Is there an existing mechanism to do this?

I currently don't have support for this kind of callback since I don't have support for delegation on the ad controller itself - only callbacks for the controller's ad visibility. I did this in an effort to make this library serve the 80% use-case in as few lines of setup code as possible.

Ok, I've worked around this by modifying my local version of LARSAdController. Can I ask that this be added as a feature request for consideration?

I'm always open to pull requests.


New release?

Hello the @sctplab Team, @tuexen,
It is possible to create a new version after more 2 years, 6 months of developement?
The <IP_ADDRESS> has been released 2021-01-13:
https://github.com/sctplab/usrsctp/releases/tag/<IP_ADDRESS>
Thanks in advance.

If this relates to the build errors that have been happening since commits on the 28th July, I have created a PR to fix that here
https://github.com/sctplab/usrsctp/pull/684

+1

Dear @sctplab team,
More one year after, it is possible to have a new release build?
Thanks in advance.


Collections Page

The collections page should be filled with all the types of collections in the database, e.g. Pokemon and YuGiOh currently. Once the user clicks on a collection they should be able to see all the cards from that collection, just like in the add card page.

[x] Collections page displays all cards stored in database
[ ] Collections page displays all cards in a given collection when that collection is clicked

Steps to completion

make new route /collections/selected/:collection_type where collection type is the collection user has chosen to view
make request to api to get cards from that collection
display cards in page
Optional(s): Add search like in add card, Add filtering options


Create and parse checkpoint height/hash lists

For the checkpoint verifier, we need to create checkpoint height and hash lists for:

[ ] main net
[ ] test net

And parse those lists into Zebra data structures.
Since the sapling checkpoint is mandatory, we might want to compile the lists into Zebra, rather than making them configurable.

Hashes can be obtained from zcashd using zcash-cli getblock $i and using jq or something to parse the JSON.  Note that the output will have to be run through zebrad revhex since zcashd displays hashes in reversed byte order and we don't.

I'll do a small script, so we can rebuild the list consistently.
@hdevalence do we have a preferred scripting language?

My personal rule of thumb is bash for things that are near enough to oneliners for me not to worry about the maintainability and rust for all other cases.

I think the script will look like
i=0
while $i < $[`zcash-cli getblockcount | jq ...` - 300]; do
    zcash-cli getblock $i | jq ... | zcashd revhex >> checkpoints.txt
    i=$[i + 500]
done

Whatever we choose, it will become a release-time dependency. I'll make an initial script using generic unix shell. Then we can convert it to Rust later, if we decide that's important.
Also, maybe it would be faster to use getblockhashes, and discard the hashes we don't want:
https://zcash-rpc.github.io/getblockhashes.html
I'll do some testing.

I've been thinking about this, and calling the RPC multiple times in the script seems slow and error-prone. We're going to have to parse json, call jq and zebrad revhex, and generate the checkpoint heights.
I'd rather do all that work in Rust, using serde-json:
zcash-cli getblockhashes INT_MAX 0 | zebrad checkpoints
Once that's done, we could even add modes for generating our own checkpoints, or listing our hard-coded checkpoints:

zebrad checkpoints --from-zcashd
zebrad checkpoints --list
zebrad checkpoints --generate

(But I'll just do the zcashd mode for now.)

could we have zebrad checkpoints try to call zcash-cli internally rather than having to pipe the output into zebrad?

Maybe?
For the testnet, the command-line would have to be zcash-cli -testnet getblockhashes INT_MAX 0 | zebrad checkpoints.

For the testnet, the command-line would have to be zcash-cli -testnet getblockhashes INT_MAX 0 | zebrad checkpoints

we could expose a --testnet arg that adds the -testnet arg to the internal zcash-cli invocation we call

And there's no guarantee that we'd get the RPC authentication options right

I don't know what this means

For the testnet, the command-line would have to be zcash-cli -testnet getblockhashes INT_MAX 0 | zebrad checkpoints

we could expose a --testnet arg that adds the -testnet arg to the internal zcash-cli invocation we call

You're right, we'll definitely need a --testnet option, to supply the right hard-coded genesis block hash.

And there's no guarantee that we'd get the RPC authentication options right

I don't know what this means

For example, the data directory, and RPC IP, port, username and password. (All of these options are not required, but we can't guarantee the user is using the defaults.)
https://helpmanual.io/man1/zcash-cli/

For example, the data directory, and RPC IP, port, username and password. (None of these options are required, but we can't guarantee the user is using the defaults.)

can we just re-export all of these knobs as cli flags like we do with -testnet?

We could passthrough all unrecognised arguments.

I think this might be more work than manually naming each flag but I think either approach is fine.

There are only 10 options, so it should be easy to list them all. (Hopefully they don't add any extra options.)

I tried deleting the comment before you get to it but the more I thought about it I realized it should be pretty easy to just forward the args like you said and it has the advantage of dealing with the extra options. I'll have to check out gumdrop in more detail but I know exactly how to do this with structopt so worse case scenario we could just manually re-parse the args ourselves via structopt in that specific subcommand.

We'll want to parse and forward -testnet and -regtest, so we can select the right genesis block. And just forward everything else.

Hmm, I'm not sure that adding a new command to zebrad is preferable to having a standalone script, because it means that the checkpoint generation is shipped as part of the main functionality of the node software, rather than being a step used to create an artifact that's part of the build.  I don't see us needing to generate checkpoint lists very often -- I think that it's enough to keep a file in git and periodically run a script to regenerate it and check in the changes.

Another thought (branching off of here) is that since checkpoints are generated retrospectively, not prospectively, we can tune the checkpoint heights according to the block sizes.
Since we know the sizes of all of the blocks we're checkpointing, we can estimate how much memory will be used for queued blocks in the honest case (assuming that the in-memory parsed representation has the same size as the serialized representation, which isn't exactly true but is true within a small constant factor).  The worst-case analysis of memory usage assumes that we queue a whole bunch of dishonestly generated blocks that are too big.  I don't think this is important to defend against, because (a) we already have mechanisms that make it unlikely to chase a false chain and (b) the failure is a transient OOM error, from which we can just restart and talk to other peers.  (If we are unable to talk to honest peers, we have bigger problems).
We might want to target a lower number rather than a higher one, say, not accumulating more than 256MB of block data at a time.  Since most Zcash blocks are smaller than the maximum block size, I don't think this will be super constraining in practice.

Hmm, I'm not sure that adding a new command to zebrad is preferable to having a standalone script, because it means that the checkpoint generation is shipped as part of the main functionality of the node software, rather than being a step used to create an artifact that's part of the build.

I think you're right, let's use a script for this release. If the script gets too complex, we can rewrite it in another language. (And if that language is Rust, we can do that in a separate repository that depends on zebra-chain and maybe zebra-consensus.)

I don't see us needing to generate checkpoint lists very often -- I think that it's enough to keep a file in git and periodically run a script to regenerate it and check in the changes.

In tor we refreshed a similar list (long-lived node addresses) every 6-12 months.
It was a python script :-)

Another thought (branching off of here) is that since checkpoints are generated retrospectively, not prospectively, we can tune the checkpoint heights according to the block sizes.
Since we know the sizes of all of the blocks we're checkpointing, we can estimate how much memory will be used for queued blocks in the honest case (assuming that the in-memory parsed representation has the same size as the serialized representation, which isn't exactly true but is true within a small constant factor). …
We might want to target a lower number rather than a higher one, say, not accumulating more than 256MB of block data at a time. Since most Zcash blocks are smaller than the maximum block size, I don't think this will be super constraining in practice.

I'll try to implement this design in the checkpoint script.

The worst-case analysis of memory usage assumes that we queue a whole bunch of dishonestly generated blocks that are too big. I don't think this is important to defend against, because (a) we already have mechanisms that make it unlikely to chase a false chain and (b) the failure is a transient OOM error, from which we can just restart and talk to other peers. (If we are unable to talk to honest peers, we have bigger problems).

My goal was to make quick changes that defended against some worst case attacks, and honest-case overload behaviour. But it looks like that's more complicated than I expected, so I won't be able to do it quickly. And I should move on to more important tasks.
In general, I agree with your conclusions, so I'm going to avoid spending time on the worst case, and update the design doc to explain why the worst case is out of scope.
But I think we're talking about slightly different worst-case attacks, so I'd like to check your analysis of the following attack:
A single bad peer answers any block hash request with a large block, that has a height near the end of the checkpoint list. We store those blocks, but can't verify them yet, so we run out of memory.
To defend against this attack, we need to avoid downloading a large number of blocks (or a large amount of data) from a single peer. For example, if our memory limit is 2 GB, we need to avoid downloading more than 1000 blocks from a bad peer.
There are 900,000 blocks in the chain, and only a few hundred peers. So if we choose peers uniformly at random, we're almost certain to download a few thousand blocks from each peer.
As an alternative, we need to reject blocks that are a long way ahead of the current checkpoint. Or reject blocks that are larger than expected.
There are also operating systems that hang or terminate other processes when out of memory (macOS default config, some Linux configs, maybe Windows). I don't think that's a big issue, but it should definitely be documented somewhere.

The average block size is around:
30 GB / 900,000 = 35 kB
So if we limit our checkpoints to 256 MB in the honest-case, most checkpoints will be 5000 - 10,000 blocks apart:
256 MB / 35 kB = 7300
So we might want to pick a maximum interval size. And then use smaller checkpoints as needed. I'll check when I write the script.
We could also find the maximum block size in the historic chain, and refuse larger blocks while checkpointing. We could efficiently reject blocks by recording the block size at parse time. (And if there are a few large blocks in the chain, we could record the largest block in each checkpoint range.) I'll add this to the possible designs.

fwiw @teor2345 I already added a zebra-utils crate to the workspace and a zebra-checkpoints.rs binary file to use to write this in rust

But I think we're talking about slightly different worst-case attacks, so I'd like to check your analysis of the following attack:
A single bad peer answers any block hash request with a large block, that has a height near the end of the checkpoint list. We store those blocks, but can't verify them yet, so we run out of memory.

If I understand the attack correctly, this shouldn't be possible, because the network layer ensures that a request for a block with a particular hash resolves either to a block with that hash or to an error.
This actually happens not for a security reason but for a practical one. Because Bitcoin doesn't actually have a request/response concept, the network layer has to statefully examine the messages that come in to determine whether they could be a response to the pending request, and to determine when enough messages have been received to "finish" the response.  In the case of a block request, the Handler maintains a HashSet of the still-outstanding block hashes and a Vec<Arc<Block>> of the already-received blocks.  Each time a block message is received, the Handler computes the block hash and either removes the hash or discards the block.  This allows it to determine when it has received all of the blocks required to complete the request.  Discarding blocks with the wrong hash is necessary because zcashd will sometimes respond with the wrong block.  I don't actually know why this happens. Maybe zcashd gets confused sometimes.
But the net of all of this is that a bad peer that answers any block hash request with an unrelated large block will cause the block request to time out, which causes us to fail the connection and stop talking to that peer.

To defend against this attack, we need to avoid downloading a large number of blocks (or a large amount of data) from a single peer. For example, if our memory limit is 2 GB, we need to avoid downloading more than 1000 blocks from a bad peer.
There are 900,000 blocks in the chain, and only a few hundred peers. So if we choose peers uniformly at random, we're almost certain to download a few thousand blocks from each peer.

Although we're certain to download a few thousand blocks from each peer, we're certain to do so only over the course of the entire sync process -- we'd never ask a single peer for more than a small chunk of contiguous blocks (I think this is currently 10, the exact number doesn't really matter so much as the fact that it's quite small).  And because we know that any request for specific block hashes either resolves to those blocks or to an error, either each chunk succeeds, in which case we have the blocks we want, or it fails, in which case we fail that connection and retry (a limited number of times) with a different peer.
So I don't think that there's a possibility for a single peer to significantly interrupt the checkpointing procedure.

Thanks, that's a much stronger security guarantee than I expected. I'll make sure I document that in #636.
(And close the PRs that are obsoleted by the new design.)


Return type of Subclass method should allow the return of an extended superclass object

I am struggling to find the correct description for my question, but I am essentially trying to understand why I cannot have a subclass method return a more detailed version of the parent classes method.
Here is an example of what I am trying to do:
https://flow.org/try/#0PQKgBAAgZgNg9gdzCYAoVAXAngBwKZgBCAhgM54AquBAvGAN6phjEBcYpGATgJYB2AczCoAvumz4wAUQAeGPHwAmeRSXJVJdRswB0etZWoAaJmABG7PgFcAtmbxdR6AMYwypMAEEGpxXAAUAJTsBhoE2sxceBhWXHwMLOwA5AAWxDDwSWAiANzCzGJiqK7uRGB4cgqKHt4RfkHssvJKKqHUPsxgUTFxCWxgqemZRubsAIwATADM2XmmhUA
This behaviour is working in javascript, is this a bug in flowtype or should I write my type definitions differently?

Use exact
https://flow.org/try/#0PQKgBAAgZgNg9gdzCYAoVAXAngBwKZgBCAhgM54AquBAvGAN6phjEBcYpGATgJYB2AczCoAvumz4wAUQAeGPHwAmeRSXJVJdRswB0egCSziAYwwAeNZWoA+ADRMwAI3Z8ArgFtHeLqPTGYZKRgAIIMDopwABQAlOyWGgTazFx4GK5cfAws7ADkABbEMPA5YCIA3MLMYmKo-oFEYHhyCopBoUkRMeyy8koq8dRhzGApaRlZbGD5hcW2TuwAjABMAMylFQ7VQA

Ahh, right. I actually had both of the types in || like so
https://flow.org/try/#0PQKgBAAgZgNg9gdzCYAoVAXAngBwKZgBCAhgM54AquBAvGAN4A+qYYxAXGKRgE4CWAOwDmYVIwC+6bPjABRAB4Y8AgCZ4VJclRl0mLMADojmytQA0+gEacBAVwC2lvDzGTUAYxhlSYAIIN9FTgACgBKThNtAnp9MB48DFseAQY2TgByAAtiGHh0sHEAblFWSTdPbyIwPEVlFR9-GNYgsM4FJVV1SOoA1jiEpJT6NLAsnLyzMGswAEYAJgBmAuL9MqA
Seems like it does not allow the base type to be exact then. Is there a way of saying that it returns BaseType and all extensions of it without opening the base type up?

I suppose in other way is there the inverse of $Exact somewhere hidden?

Ok I learned how to do it, leaving this here for future reference:
/* @flow */

type AType = {|
  a: string
|}

type BType = {|
  ...AType,
  b: number
|}

type CType = {|
  ...BType,
  e: number
|}

class A {
  do(): { ...AType } {
   return ({ a: 'hallo' }: AType) ;
  }
}

class B extends A {
  do(): { ...BType } {
   return { a: 'hallo', b: 123 };
  }
}

class C extends B {
  do(): { ...CType } {
   return { a: 'hallo', b: 123, e: 123 };
  }
}


Package elementary tasks

Describe the bug
https://github.com/elementary/tasks
Not yet because it's hasn't reached MVP https://github.com/elementary/tasks/projects/1

Still no release, but actively developed.

Yep, I think it's coming when they release 6.0


Update Python code to parse csv files

Changes make the code:

More robust (context manager guarantees the file-like object is closed)
Useful for both Unicode and ASCII/binary (through use_unicode argument just like sx.textFile())
Support tab-delimited files (through the dialect argument)
Python 3 compatible (by not using the StringIO module or the next() method)

Hi @brettcannon, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

It looks like you're a Microsoft contributor (Brett Cannon). If you're full-time, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla.microsoft.com.

TTYL, MSBOT;

@brettcannon : Thanks for your contribution to the Azure documentation! The author, @nitinme, has been notified to review your proposed change.

cc @tc0312

@brettcannon Parsing the CSV in Python is slower than parsing CSV in Spark (requires package spark-csv in Spark older than 2.0).
Our sample notebooks parse CSV in Python because our sample dataset is really small. For machine learning purpose, would you consider parsing CSV in Spark instead?

@tc0312 I have no specific opinion as I have nearly zero experience with Spark; I only noticed this code could be improved and so I did. 😃

@aggFTW, @tc0312

Based on the discussion, we'll keep the content as-is for now.

#please-close


shopify app not working on localhost (Osiset\ShopifyApp\Exceptions\MissingShopDomainException)

Hey, @osiset
I have installed the fresh laravel 8 and laravel-shopify package for developing a Shopify app. I did the all setting according to the GitHub wiki. in Shopify, my app is working fine, but on localhost, I get the error "Osiset\ShopifyApp\Exceptions\MissingShopDomainException". can I run the app on localhost as well?
route.php file:-
Route::get('/','ProductsController@view')->middleware(['auth.shopify'])->name('home');
products.blade.php file:-
@extends('shopify-app::layouts.default')

@section('content')
    <router-view></router-view>
@endsection

@section('scripts')
    @parent

    <script type="text/javascript">
        var AppBridge = window['app-bridge'];
        var actions = AppBridge.actions;
        var TitleBar = actions.TitleBar;
        var Button = actions.Button;
        var Redirect = actions.Redirect;
        var titleBarOptions = {
            title: 'Products',
        };
        var myTitleBar = TitleBar.create(app, titleBarOptions);
    </script>
@endsection

i have copied the defult.blade.php file in views\vendor\shopify-app\layouts.
I am on windows and working on xampp. please help

You need to be using a domain and an SSL. Local development, you can use something like Laradock and configure Nginx to use a self-signed cert, for something like laravel-test.local

@Ronak-maker you can also simulate a shopify login event by adding the shop param to your url
http://localhost?shop=demoshop.myshopify.com and that will trigger the oauth process and login you in to the app.

Hey, thanks for the reply. I will try the above solution. thanks

@Ronak-maker you can also simulate a shopify login event by adding the shop param to your url
http://localhost?shop=demoshop.myshopify.com will trigger the oauth process and log you in to the app.

I tried this solution, but it gives me a error like "Not Found" and "The requested URL was not found on this server." my URL is https://localhost/authenticate/oauth?shop=license-service-manager.myshopify.com

@Ronak-maker You can not use localhost like that. You'll need to setup a local domain and self sign a certificate.
See this page for more information which has some contributions from people on what to do: https://github.com/osiset/laravel-shopify/wiki/Developing-Locally

I already make a virtual URL for localhost, now I need a self-sign certificate. I am on windows pc. can you help me with how can I setup that, because I don't have any idea about Docker setup. in the documentation which method I have to follow the "Docker Method" or "Docker Setup (Basic)"?

Sorry I don't provide any support for helping setup app environments. There's many tutorials online for Laradock, Valet, etc.

okay, thank you for your support. I really appreciate that.

You can use ngrok which could help you to creating https on localhost. It is very easy and useful

Ngrok however has given people a lot of issues with webhooks, but it's fine for display of app

i am already using ngrok for developing an app on Shopify, on localhost, it gives me an error 400 Oauth error invalid_request: The redirect_uri is not whitelisted .

Thats an issue with your app setup in partner dashboard. Please close if your issue is not code related which it seems not, this can be moved to Discussions tab for community help :)


Gsoc2021 double float

@ckormanyos If everything goes green, you might want to include test_cpp_double_float_constructors.cpp in the CI tests

@ckormanyos I cancelled the workflow after ~20mins of tests with no result. Should I have waited instead?

cancelled the workflow after ~20mins of tests with no result. Should I have waited instead?

Hi @sinandredemption it depends on the situation. For open source, GHA grants us 20 server processes parallel at one given time. Our CI on a PR has a lot more than 20 server jobs. So if you have a few commits on PRs running back-to-back, it can get to be quite a lengthy traffic jam.
If you want to terminate a sequence of running build(s), it can make sense to terminate the eraliest builds first andthen observe your latest builds.

In general @sinandredemption we have actually let cpp_double_fp_backend fall a bit behind. We might need special, sequential, little steps of synchronization to bring this up to the level  of cpp_quad_fp_backend. So if this PR turns out to be too tedious or difficult, we can retry later or reduce the scope of changes, if that helps.

Hi @sinandredemption I took the liberty of re-starting one of the CI actions. it almost seemed like GHA might have had a bit of a glitch.

Hello @ckormanyos
I have cancelled the tests you started. The problem seems to be in my changes which might cause , so I will try to issue a fix ASAP

problem seems to be in my changes which might cause , so I will try to issue a fix ASAP

Copy that. I do, however, recommend cuation regarding time constraints. If these changes lead to numerous revisions or time-consuming runs, please feel free at any time to revert to a state such as yesterday's. We have good stuff for this project and can always refine later.
So give it a good try, then see how it goes, with backup to be revert any time being OK.

@ckormanyos The arithmetic tests were failing. Turns out this was due to an obvious yet tricky bug in the operator+= and operator-=. Have a look at the changes in the recent commit in case you're curious.
Let us see if all the tests pass now.

tests are passing

Great job @sinandredemption. Please merge when you are ready.

@ckormanyos I would also request you to confirm the numbers I posted in #107 once I merge, since there is a chance that those numbers are too good to be true.

confirm the numbers I posted in #107 once I merge,

Done. Confirmed good on double-float. See #107
@sinandredemption