NLeSC specific is outdated

There is an NLeSC specific chapter in the guide, which is very outdated. Also the entire guide should now be NLeSC specific, as the rest has move to the Turing Way.
We should update any relevant info in this chapter, remove the rest, and merge it into the rest of the nlesc guide.

Thanks for flagging this! It is now part of the list in #286.


External Cartfile for RRC Dependencies when using Carthage

:tophat: What? Why?
When adding RealmResultsController through carthage, it was not finding its dependencies as the Cartfile was in /Example/Cartfile.
Added a External Cartfile in the RRC root folder for carthage to be able to find RRC dependencies
:ghost: GIF

hard work man :+1:

:+1:


feat: add bolt-expressions

I modified the runner to include the bolt-expressions package, might be cool to have it :)

Nice! Thanks :)


test: remove microscope test

The test has been disabled for almost a year, and we don't officially support
microscope anymore. Remove the test accordingly.
Signed-off by: Ian Vernon<EMAIL_ADDRESS>

This change is

test-me-please

Coverage increased (+0.01%) to 44.089% when pulling 82dbf761fe49c7f2582a19c3246f7f01d4db8e4d on pr/ianvernon/remove-microscope-test into 7b34a7be09ca4965da43202ff98d064df6a62cb6 on master.

Maybe is good to remove also from here:
https://github.com/cilium/packer-ci-build/blob/61cde4e2d8d905e78d116200f5866038b449b45e/provision/pull-images.sh#L31

And https://github.com/cilium/cilium/blob/master/test/k8sT/manifests/microscope.yaml

@eloycoto good catch, removed the microscope.yaml file too.

test-me-please

@eloycoto posted PR to remove microscope from cilium/packer-ci-build: https://github.com/cilium/packer-ci-build/pull/168


set up api design like scikit learn

https://arxiv.org/pdf/1309.0238.pdf

claimed by josh

Summary of Sklearn paper

Core API
Consistency - use same interface
Inspection - use public attributes
Sensible defaults - always have a reasonable default value

Use Numpy arrays whenever possible for dense data and scipy for sparse. You can rely on efficient numpy and keep code radable
All the initializer does is attach hyper params to the given obj
we will use the fit method for running the algo


aws eks describe-cluster takes --name

Working from HEAD of main (9e91a9a) of cloudmapper.
aws-cli/2.0.50 Python/3.8.5 Darwin/19.6.0 source/x86_64

My collect step failed with:
...
Summary: 275 APIs called. 1 errors
Failures:
  eks.describe_cluster({'cluster': 'example-foo'}): Parameter validation failed:
Missing required parameter in input: "name"

which led me to: https://github.com/duo-labs/cloudmapper/issues/729
But the AWS CLI/SDK shows that describe-cluster takes --name not --cluster, so this PR changes the parameter we are passing. And allows collect to complete successfully.

 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.

Looks like you're right.  The collection for eks describe-cluster was added in #742, but from what I see in the AWS CLI, I think you're correct that this should be name.
LGTM, @jordan-wright @kylelady this can be merged.


Fixed getPostPipeline

If pass parameter as string (pipeline name) to getPostPipeline, then get error:
Uncaught TypeError: Right-hand side of 'instanceof' is not an object

This happens when there is pipeline with name different from the one are looking for.
I changed the condition to solve this problem.

Thanks for your PR and finding this bug. I have used a slightly different approach to resolve it, but have attributed it to you in the Change Log.


Use H2 to models title.

As they are titles Github allows you to make links easily, useful when you want to refer to one of these models.
If it is not clear, better an image .. :smile:

I.e: https://github.com/matiasdelellis/dlib-models/tree/h2titles#dlib_face_recognition_resnet_model_v1datbz2

Looks nice, thanks for the PR :)


EL-1320: Revert changes

Jira ticket
What changed and why

This reverts changes made from the merged branch of EL-1320 into main

Guidance to review

N/A

Checklist
Before you ask people to review this PR:

Tests and rubocop should be passing
Branch is generally up to date with main Github - definitely no conflicts
No unnecessary whitespace changes. These make diffs harder to read and conflicts more likely.
PR description says what changed and why, with a link to the JIRA story.
Diff has been checked for unexpected changes being included.
Commit messages say why the change was made.

Not needed


how to configure the hacker's keyboard on my Samsung tab e tablet.

I can't find any way to configure my hacker's keyboard on my Samsung tab e tablet. There is no configuration gear in the settings, there is no other way I can find to get to the configuration settings. Can anyone help me. Thank you.

Open any application which shows the keyboard for text input (browser, messaging, etc) and press the circular icon located between the "?123" and spacebar.


Add header and footer and other changes due to add new code

This is for issue https://github.com/open-horizon/open-horizon.github.io/issues/13
Signed of by: Xiulei<EMAIL_ADDRESS>

@joewxboy pls help review, thanks.

I have tested in my local, here are some screen shots:


[HOTFIX] Fix bug: Service view points to wrong urls of hardware pages

Coverage increased (+3.3%) to 49.02% when pulling 05680b2cf18eb58c7d4d8dcf16e0342e0c80ec17 on hwuu/pai-0.4.y-hotfix1 into 5a4ffa422f161223f5e99c0d94d2b5598de91f73 on pai-0.4.y.

Coverage increased (+3.3%) to 49.02% when pulling 05680b2cf18eb58c7d4d8dcf16e0342e0c80ec17 on hwuu/pai-0.4.y-hotfix1 into 5a4ffa422f161223f5e99c0d94d2b5598de91f73 on pai-0.4.y.


Add sample script

e.g.
In the repo put

examples

basic

package.json (installing from NPM)
index.js

So someone can run the code in that directory or copy it to their own project.

Maybe in addition to CodePen, you can have a browser example too.
so in examples/browser you can have index.html which uses ES Modules to load from the CDN and do a hello world. It doesn't need CSS etc. Just get it to run and have someone run it locally such as with VS Code Live Server.
You can even set the page to run on GitHub Pages so you have a demo site outside CodePen that uses the latest NPM package - then you can check your demo page whenever you make a release, to ensure it works locally and/or on the remote.

I tried to make a Node script but it fails because of lack of window.
index.mjs
import { Nanny, html } from "nanny-state";

const State = { name: "World" }
Nanny(State)

node index.mjs
file:///Users/mcurrin/Temp/nanny/node_modules/lit-html/lib/template-result.js:27
const policy = window.trustedTypes &&
               ^

ReferenceError: window is not defined
    at file:///Users/mcurrin/Temp/nanny/node_modules/lit-html/lib/template-result.js:27:16

I've added a browser example and you can also see it on github pages here https://daz4126.github.io/Nanny-State/examples/counter/

I'm not convinced about adding an example using npm. I will probably create a template on CodeSandbox that people can fork and use to build in the browser without having to install npm.

Here is the Nanny State template on CodeSandBox:
https://codesandbox.io/s/nanny-state-x6yh0


[WIP] [ZEPPELIN-2627] Interpreter refactor

What is this PR for?
I didn't intended to make such large change at the beginning, but found many things are coupled together that I have to make such large change. Several suggestions for you how to review and read it.

I move the interpreter package from zeppelin-zengine to zeppelin-interpreter, this is needed for this refactoring.
The overall change is the same as I described in the design doc. I would suggest you to read the unit test first. These unit test is very readable and easy to understand what the code is doing now. InterpreterFactoryTest, InterpreterGroupTest, InterpreterSettingTest, InterpreterSettingManagerTest, RemoteInterpreterTest.
Remove the referent counting logic. Now I will kill the interpreter process as long as all the sessions in the same interpreter group is closed. (I plan to add another kind of policy for the interpreter process lifecycle control, ZEPPELIN-2197)
The RemoteFunction I introduced is for reducing code duplicates when we use RPC.
The changes in Job.java and RemoteScheduler is for fixing the race issue bug. This bug cause the flaky test we see often in ZeppelinSparkClusterTest.pySparkTest

What type of PR is it?
[Bug Fix | Refactoring]
Todos

[ ] - Task

What is the Jira issue?

https://issues.apache.org/jira/browse/ZEPPELIN-2627

How should this be tested?
Unit test is added
Screenshots (if appropriate)
Questions:

Does the licenses files need update? No
Is there breaking changes for older versions? No
Does this needs documentation? No

Wow ~ It changes pretty big including some code styles. Before reviewing it, How about reverting code style? It's not related to feature itself, then we can fix the style with minor pr. And can you describe what is the purpose of this PR? Which logic do you want to refactor? this kind of description will be help to review it. I glanced at it few minutes, and it seems to relocate some classes and introduce remoteFunction concept. Can you explain them more?

@jongyoul Thanks for the quick review. I didn't intended to make such large change at the beginning, but found many things are coupled together that I have to make such large change. Several suggestions for you how to review and read it.

I didn't intended to make the code style change, this is due to I move some files in intellij and intellij automatically fix the code style issue. You can just ignore these code style changes
I move the interpreter package from zeppelin-zengine to zeppelin-interpreter, this is needed for this refactoring.
The overall change is the same as I described in the design doc. I would suggest you to read the unit test first. These unit test is very readable and easy to understand what the code is doing now.  InterpreterFactoryTest, InterpreterGroupTest, InterpreterSettingTest, InterpreterSettingManagerTest,  RemoteInterpreterTest,
The RemoteFunction I introduced is for reducing code duplicates when we use RPC.
The changes in Job.java and RemoteScheduler is for fixing the race issue bug. This bug cause the flaky test we see often in ZeppelinSparkClusterTest.pySparkTest

@Leemoonsoo @jongyoul @prabhjyotsingh @felixcheung Could you help review that ?
Here's some suggestion for you how to review it since it is a very large PR

The overall change is the same as I described in the design doc. I would suggest you to read the unit test first. These unit test is very readable and easy to understand what the code is doing now. InterpreterFactoryTest, InterpreterGroupTest, InterpreterSettingTest, InterpreterSettingManagerTest, RemoteInterpreterTest.
Remove the reference counting logic. Now I will kill the interpreter process as long as all the sessions in the same interpreter group is closed. (I plan to add another kind of policy for the interpreter process lifecycle control, ZEPPELIN-2197)
The RemoteFunction I introduced is for reducing code duplicates when we use RPC.
The changes in Job.java and RemoteScheduler is for fixing the race issue bug. This bug cause the flaky test we see often in ZeppelinSparkClusterTest.pySparkTest

Tried this on my local cluster, tested it with simultaneously with multiple users. Looks good. Great improvement.

Thanks @prabhjyotsingh for testing this PR.

Thanks @herval for the review. If you have time, you can also check the unit test which is much more readable and will easy for you to get what I done in this PR. (InterpreterFactoryTest, InterpreterGroupTest, InterpreterSettingTest, InterpreterSettingManagerTest, RemoteInterpreterTest)
Thanks again for your kind review.

@Leemoonsoo @jongyoul I will commit if no more comments so that I can continue the other work.

Sorry, I found it conflicts with other PRs, will revert it now.


[bug] Preferences displays old saveDir after changed

During the same session, if the user leaves the preferences page after changing their change directory, and then returns, the field will display the old save location.

Looks like it's a matter of turning a couple static values into functions—the HTML for the saveDir is determined based on the config when the app starts, but it should get the config every time the page is loadded.


CDPS-856: Responding with field history ids in sync response

Codecov Report
Attention: Patch coverage is 87.80488% with 15 lines in your changes missing coverage. Please review.

Project coverage is 78.65%. Comparing base (871d4fc) to head (05eb473).

Files
Patch %
Lines

...ice/digital/hmpps/prisonperson/jpa/FieldHistory.kt
80.00%
1 Missing and 4 partials :warning:

...gital/hmpps/prisonperson/jpa/PhysicalAttributes.kt
82.75%
1 Missing and 4 partials :warning:

...prisonperson/dto/PhysicalAttributesSyncResponse.kt
50.00%
2 Missing :warning:

...ital/hmpps/prisonperson/enums/PrisonPersonField.kt
80.00%
1 Missing :warning:

...justice/digital/hmpps/prisonperson/enums/Source.kt
66.66%
1 Missing :warning:

...ce/digital/hmpps/prisonperson/jpa/FieldMetadata.kt
50.00%
1 Missing :warning:

Additional details and impacted files
@@             Coverage Diff              @@
##               main      #28      +/-   ##
============================================
+ Coverage     78.09%   78.65%   +0.55%
+ Complexity      187      182       -5
============================================
  Files            39       40       +1
  Lines           662      623      -39
  Branches         44       41       -3
============================================
- Hits            517      490      -27
+ Misses          116      105      -11
+ Partials         29       28       -1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


feat(network_info_plus): add ipv6, gateway, broadcast and subnet mask information

Description
We added for both iOS and Android support for fetching information :

IPv6 address
Broadcast address
Gateway address
Subnet mask

Linux, MacOS and Windows was not done in this PR and need help 👍
Related Issues
#206
#132
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]).
This will ensure a smooth and quick review process. Updating the pubspec.yaml and changelogs is not required.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
[x] All existing and new tests are passing.
[x] I updated/added relevant documentation (doc comments with ///).
[x] The analyzer (flutter analyze) does not report any problems on my PR.
[x] I read and followed the Flutter Style Guide.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change (please indicate a breaking change in CHANGELOG.md and increment major revision).
[x] No, this is not a breaking change.

Looks like there are some issues with formating.

I have reviewed this code and LGTM. thank you for your PR. I feel this is a great addition to network_info plus.
@jpnurmi  @miquelbeltran any comment or concerns?

changes look good to me! the formatting needs to be fixed, yes

Hi, we can't get melos run formatto work... we had on both computer (even after a fresh clean clone) this error:
Unhandled exception:
ProcessException: No such file or directory
# [...]
#0      _ProcessImpl._start (dart:io-patch/process_patch.dart:390:33)
#1      Process.start (dart:io-patch/process_patch.dart:36:20)
#2      ProcessRunner.runAndStream (package:flutter_plugin_tools/src/common/process_runner.dart:37:49)
#3      FormatCommand._formatCppAndObjectiveC (package:flutter_plugin_tools/src/format_command.dart:108:27)
<asynchronous suspension>
#4      FormatCommand.run (package:flutter_plugin_tools/src/format_command.dart:48:5)
<asynchronous suspension>
#5      CommandRunner.runCommand (package:args/command_runner.dart:196:13)
<asynchronous suspension>
#6      main.<anonymous closure> (package:flutter_plugin_tools/src/main.dart)
<asynchronous suspension>

Do you had some clues @mhadaily @miquelbeltran  ?
Thanks

@dim-apparence It looks like you don't have clang-format in your path. If you update to the version of flutter_plugin_tools that was just pushed, you should get a clear error message instead of that stack.

Thanks @stuartmorgan, melos run format works 👍

@v-apparence this is great so far.
There is one thing that our code coverage deceased a bit I can see why it happens though.
@miquelbeltran @jpnurmi any comment, if not, let's merge and publish this

@miquelbeltran @jpnurmi I am going to merge this PR, even though it has lower test coverage, do you have any objection to this?

@mhadaily  yes, let's go for it!


Modal Error: Cannot read property 'parentNode' of undefined

Issue description

components: Modal
reactstrap version #4.8.0
import method es
react version #16.0.0
bootstrap version #4.0.0-beta.2

What is happening?
I encountered the 'Uncaught TypeError: Cannot read property 'parentNode' of undefined' error when trying the Modal examples. What should I do to solve this problem? Thank you in advance.
Error message in console
Uncaught TypeError: Cannot read property 'parentNode' of undefined
at Modal.renderIntoSubtree (webpack-internal:///./node_modules/reactstrap/dist/reactstrap.es.js:2518)
at Modal.show (webpack-internal:///./node_modules/reactstrap/dist/reactstrap.es.js:2484)
at Modal.togglePortal (webpack-internal:///./node_modules/reactstrap/dist/reactstrap.es.js:2438)
at Modal.componentDidUpdate (webpack-internal:///./node_modules/reactstrap/dist/reactstrap.es.js:2378)
at commitLifeCycles (webpack-internal:///./node_modules/react-dom/cjs/react-dom.development.js:11517)
at commitAllLifeCycles (webpack-internal:///./node_modules/react-dom/cjs/react-dom.development.js:12294)
at HTMLUnknownElement.callCallback (webpack-internal:///./node_modules/react-dom/cjs/react-dom.development.js:1299)
at Object.invokeGuardedCallbackDev (webpack-internal:///./node_modules/react-dom/cjs/react-dom.development.js:1338)
at invokeGuardedCallback (webpack-internal:///./node_modules/react-dom/cjs/react-dom.development.js:1195)
at commitAllWork (webpack-internal:///./node_modules/react-dom/cjs/react-dom.development.js:12415)
Code
The code I was running is:
https://reactstrap.github.io/components/modals/

@Heizyuan bump your version number to: ^5.0.0-alpha.3 it worked for me.
Although I also had to upgrade these since I used them:
 "react-addons-css-transition-group": "^16.0.0-alpha.3",
 "react-addons-transition-group": "^16.0.0-alpha.3",

Yes, this is an issue with portals in react 16. They do not return the reference needed for focus. You can disable the autoFocus by passing autoFocus={false} to the Modal, but it is best to just upgrade to 5.0.0-alpha.3 as A-Tokyo mentioned.
The upgrade is also recommended since you are using bootstrap 4.0.0-beta.2, the 4.8.0 version you are on only supports 4.0.0-alpha.6. Plus, 4.8.0's react peerDep does not allow react 16, so you are probably getting warning.

Problems solved as well as Alert errors. Thank you all.

I did what A-Tokyo said and It works perfectly now. Thank you very much.

@TheSharpieOne It works when I did like you said. But I think we need to wait a while for all libs are going to stable with React 16.x. Anw, thank you 👍

I'm closing this since the the issue is no longer active and it appear it was answered above. Please comment and it will be opened if you feel the issue has not been resolved / the question has not been answered


use Cluster to test recovery

Load synthetic transactions into the test cluster so that on restart, we can ensure the data is restored correctly

Closed in #545


How to make it run  on MP4

This is a really awesome project I am just curious on how to make it run on mp4 rather than webcam

pretty trivial - library itself uses HTMLVideoElement as input, so only change needed is to assign .src to it instead of initializing webcam object on it.
See https://github.com/vladmandic/human-three-vrm/blob/f2a85ad40a95e1a37fa10755d63e9059dc5f87ba/src/human-vrm.ts#L140
So simply replace https://github.com/vladmandic/human-three-vrm/blob/f2a85ad40a95e1a37fa10755d63e9059dc5f87ba/src/human-vrm.ts#L156 with video.src = <your_uri_to_mp4>


twttr is not defined. View loads nothing

ReferenceError: twttr is not defined
at init (http://<IP_ADDRESS>:5000/javascripts/TweetList.js:25:7)
at new  (http://<IP_ADDRESS>:5000/javascripts/TweetList.js:84:5)
at d (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.18/angular.min.js:34:488)
at Object.instantiate (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.18/angular.min.js:35:103)
at http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.18/angular.min.js:67:284
at http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.18/angular.min.js:53:370
at q (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.18/angular.min.js:7:386)
at M (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.18/angular.min.js:53:235)
at f (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.18/angular.min.js:47:142)
at f (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.18/angular.min.js:47:159)

Same error. I am loading the script but it's still undefined

@nickklosterman @hankim813 did you guys manage to get it working?
I was trying the demo, it was working on localhost but not when I tried to deploy it. I finally realized it was because of a Chrome extension I use, Disconnect, that was stopping widgets.js from being loaded.

I haven't played with this in a long time because of the error.  I typically use FF, but I do know of the extension that you are talking about.
But no I didn't ever get this working.

i working follow the step what is in the blog u will get it https://github.com/twitterdev/sample-angular-node download this and run the app in node


fix(apis_entities): correct merge link

The merge link was incorrectly pointing the merge action view that merges two objects; it has been corrected to point to the merge view that allows the user to select another object for merging.
closes #1278

(I've moved the method to the AbstractEntity, given that the url is also defined in the apis_entity module)


CORS errors when using localhost (rather than <IP_ADDRESS>) on windows

Describe the bug
When accessing the REST API via js-http-client on windows, we get CORS errors when running an app via localhost, though these errors do not occur when running via <IP_ADDRESS>. This might be a bug due to our CORS lib, or perhaps how we've configured our defaults in config? Requires testing on Windows to be sure.

I believe loopback behaves a little differently on Windows. Something like, localhost is actually the "placeholder" address (<IP_ADDRESS>) not <IP_ADDRESS>, as on mac/linux. Could be related.

Ah good to know, this is likely the issue sander 👍

Perhaps we should allow <IP_ADDRESS>, localhost, and <IP_ADDRESS> in our CORS headers


Can't run cisco-starter-spark bot

Hello,
I have followed the docs to install botkit on my server.
I extracted the project, created a new app, set all my .env variable unless PORT.
However when I start the bot with node . I got this :
Initializing Botkit v0.5.4 info: ** No persistent storage method specified! Data may be lost when process shuts down. info: No DASHBOT_API_KEY specified. For free turnkey analytics for your bot, go to https://www.dashbot.io/ to get your key. one flight: attempted to invoke _getBinding while previous invocation still in flight one flight: attempted to invoke _getBinding while previous invocation still in flight
then it write his entity and nothing.
Nevertheless in BotkitStudio the bot doesn't appears as deployed. In my spark, the bot doesn't respond.
I have also tried to use the master project but the only difference is that it set the webhook up.
Does someone know where I am wrong ?

Thank to peterswimm I have found one cause of the problem, the bot server must be with a valid certificate SSL and not a self-signed certificate.

That is correct, also make sure you have all the tokens in place:
https://github.com/howdyai/botkit/blob/master/docs/provisioning/cisco-spark.md#4-run-your-bot-with-variables-set


Pydantic config

Fixes #758
Proposed Changes

This is the first implementation of parameters configuration using pydantic.
Please only review it,  It is not ready for merging yet.
It passed the test but may cause problems because it has not defined all the configuration parameters.

Checklist

[ ] CONTRIBUTING guide has been followed.
[ ] PR is based on the current GaNDLF master .
[ ] Non-breaking change (does not break existing functionality): provide as many details as possible for any breaking change.
[ ] Function/class source code documentation added/updated (ensure typing is used to provide type hints, including and not limited to using Optional if a variable has a pre-defined value).
[ ] Code has been blacked for style consistency and linting.
[ ] If applicable, version information has been updated in GANDLF/version.py.
[ ] If adding a git submodule, add to list of exceptions for black styling in pyproject.toml file.
[ ] Usage documentation has been updated, if appropriate.
[ ] Tests added or modified to cover the changes; if coverage is reduced, please give explanation.
[ ] If customized dependency installation is required (i.e., a separate pip install step is needed for PR to be functional), please ensure it is reflected in all the files that control the CI, namely: python-test.yml, and all docker files [1,2,3].
[ ] The logging library is being used and no print statements are left.

@sarthakpati, what do you think about this approach?
For me, it is better to return a Parameters object with all the necessary parameters, and not a dictionary,
but maybe it requires a lot of changes in the source code.

better to return a Parameters object with all the necessary parameters, and not a dictionary

Can you provide a brief pro/con reasoning as to why this would be the case? Especially since changing to a different data structure would require significant amount of changes throughout the code.

better to return a Parameters object with all the necessary parameters, and not a dictionary

Can you provide a brief pro/con reasoning as to why this would be the case? Especially since changing to a different data structure would require significant amount of changes throughout the code.

I took a look at the source code, and it is required a lot of changes. So, it is not a good idea. I thought it might offer a better code experience, because Pydantic provides some extra features.
So, as regards the workflow, is it something like this?

Hey there!
So, @sarthakpati asked for a few words from my side here. Generally, I think it is a super nice idea to use Pydantic here, as this can automate a lot of checks. I think the approach is ok, and I agree with your todo comments @benmalef in the Parameters class, that some of the fields should themselves be Pydantic models and define their own structure and incorporate ALL possible options that can be specified there (of course, if such list is finite). For example, for the loss function, we can define something like this:
`
class LossFunction(BaseModel):
name: Literal["ce","cel" ... ]  # (and so on for all the values available in the losses dict)
reduction: Optional[Literal["mean", "sum"]] = "mean" # here we allow to specify only those we support in our losses impl and also provide default values
some_other_param_our_losses_use : Optional[Literal["some_value_we_allow",...] = "some_default_value"
class Parameters:
....
loss_function: LossFunction
`
Not sure if this will work if the loss is only a string without a name keyword, but you get the point.
Having that in such form, the workflow can run as follows:
Open yaml and load it as a dict -> pass it to the Parameters object -> Parameters automatically validates if the values passed are correct and inserts defaults -> params = pydantic_params_object.model_dump()
And this way we have the parameters in the dict for, validated and ready to use. Additionally, such models hierarchy naturally will become a kind of documentation, where you see all available params and values.
What you guys think? If I was unclear on something ping me, and we can discuss it further. Cheers!

Thanks for the detailed explanation, @szmazurek! I updated your answer with some edits to make it clearer for myself.
@benmalef: thoughts?

Thanks for the detailed explanation, @szmazurek! I updated your answer with some edits to make it clearer for myself. BTW, since you are working on the Lightning integration, this might be relevant since could perhaps be some overlap between that and this PR. Also, we should do 2 separate tags for them so that we have distinct points of references for the users.
@benmalef: any thoughts on what Szymon has put forth?

Thanks a lot for your explanation, I I agree with that.
My only concern is that:
In this (_parserConfig file), it loads the YAML file and has some validations and some code to regulate or init the parameters. So, might be better to pass the load dict to Parameters after this.

Open yaml and load it as a dict.
Use the _parserConfig to manipulate the dict ( init or calculate some parameters.)
Pass the loaded dict it to the pydantic Parameters object
Parameters automatically validates if the values passed are correct and inserts defaults
params = pydantic_params_object.model_dump()

Any thoughts.. ? @szmazurek  @szmazurek

@benmalef: there seems to be 2 rounds of initialization in your proposed workflow (points 2 and 4). I think this is going to lead to confusion between both end users and developers, and we need to figure out a way to have all parameter initialization happening in a single place.


example-robot-data on conda forces downgrade of pinocchio & hpp-fcl

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    example-robot-data-3.8.0   |   py38h1fd1430_0        37.0 MB  conda-forge
    ------------------------------------------------------------
                                           Total:        37.0 MB

The following NEW packages will be INSTALLED:

  example-robot-data conda-forge/linux-64::example-robot-data-3.8.0-py38h1fd1430_0

The following packages will be DOWNGRADED:

  hpp-fcl                              1.7.2-py38hd23d2ce_0 --> 1.6.0-py38hd23d2ce_4
  pinocchio                            2.6.0-py38hd23d2ce_0 --> 2.5.6-py38hd23d2ce_1

This is because example robot data needs to be rebuilt manually after a new release of dependencies. I don’t know how to trigger it automatically.

We can specify indeed a minimal version indeed

@jcarpent @nim65s has this been changed to a minimal version and can we thus close this issue?

This was probably solved by https://github.com/conda-forge/example-robot-data-feedstock/pull/11 ; but I didn't check

@wxmerkt Did you check this working as you expected?

Yes just confirmed that it's working

Thanks @wxmerkt, this was an open-loop solution. Glad to hear from you that this is working well.


Invoice payment stuck

Background
I have a direct channel opened to BlueWallet's node (03021c5f5f57322740e4ee6936452add19dc7ea7ccf90635f95119ab82a62ae268).
The channel is sufficiently funded and the connexion is not broken:
lncli connect 03021c5f5f57322740e4ee6936452add19dc7ea7ccf90635f95119ab82a62ae268@<IP_ADDRESS>:9735 [lncli] rpc error: code = Unknown desc = already connected to peer: <IP_ADDRESS>:33862
--> I'm using reverse port forwarding as a proxy
Your environment

version of lnd
lnd --version lnd version 0.5.1-beta commit=v0.5.1-beta-343-g55b580f2b80d2e62af4067d3ddf8688614bf0914

which operating system (uname -a on *Nix)
Linux HOST_NAME 4.14.79-v7+ #1159 SMP Sun Nov 4 17:50:20 GMT 2018 armv7l GNU/Linux

version of btcd, bitcoind, or other backend
Bitcoin Core Daemon version v0.17.1

any other relevant environment details
Tor is setup. There is two ways to connect to me: Tor onion v2 or using an ipv4 public IP on an AWS server that forwards everything on port 9735 to my localhost.

Steps to reproduce
Create an invoice on bluewallet app:
lnbc1u1pwyvyhypp5mzretv6qjjg3c2s50sws6nnepua473n4lf6ruqsm0aruh7flspasdq823jhxaqcqzysfsmkfs7qgw3v557fs20h4xrj5kma9wfmd57snx2kxxkutysdx3ws8ez0qjl7crla93vsnr4sgtp9u537cwh3pqtv0t3srm3qcnwzaecpgvenqc
lncli payinvoice XXX...
Expected behaviour
Payment should be paid instantly.
Actual behaviour
lncli payinvoice lnbc1u1pwyvyhypp5mzretv6qjjg3c2s50sws6nnepua473n4lf6ruqsm0aruh7flspasdq823jhxaqcqzysfsmkfs7qgw3v557fs20h4xrj5kma9wfmd57snx2kxxkutysdx3ws8ez0qjl7crla93vsnr4sgtp9u537cwh3pqtv0t3srm3qcnwzaecpgvenqc Description: Test Amount (in satoshis): 100 Destination: 03021c5f5f57322740e4ee6936452add19dc7ea7ccf90635f95119ab82a62ae268 Confirm payment (yes/no): yes
Payment stuck here. No log being displayed (as INFO).
While this is stuck I could send some sats to the app "Wallet of Satoshi" and pay the same invoice from there.
This also happened yesterday, I wanted to wait in case it was a network issue.
State of the channel:
"capacity": "450000",
"local_balance": "45950",
"remote_balance": "403604",
"commit_fee": "446",
"commit_weight": "724",
"fee_per_kw": "616",
"unsettled_balance": "0",
"total_satoshis_sent": "403604",
"total_satoshis_received": "0",
"num_updates": "2",
"pending_htlcs": [
],
"csv_delay": 144,
"private": false

Experiencing the same issue here(cli got stuck after having typed 'yes' for payment with nothing useful from logs).
I tried several times with different repients (tippin.me, Y'alls, etc). It seems that it's a network connection problem. Some went through while some didn't, and sometimes some went through. _
Observing.

Using debug logs should show what's happening.


Power Query Custom Data Connector for Power BI REST APIs (Government Community Cloud)

With the release of the Power Query SDK for Visual Studio code, I've open sourced a custom data connector for Power Query to connect to the Power BI REST APIs using OAuth2.  The API endpoint and resource URL for OAuth2 has been tailored for the GCC environment (https://api.powerbigov.us and https://analysis.usgovcloudapi.net/powerbi/api respectively)

@microsoft-github-policy-service agree [company="default"]

@microsoft-github-policy-service agree company="default"


Abdominal organ segmentation

Hello, the NiftyNet paper "https://arxiv.org/pdf/1709.03485.pdf" references abdominal organ segmentation experiments using the " Multi-Atlas Labeling Beyond the Cranial Vault" dataset. I already downloaded the dataset and I would like to train it from scratch using the dense_vnet architecture, but I could not find it in the repository. Also the paper references an implementation of an special dice loss function for this multi-class segmentation in the configuration file but I could not find it. Can you give me any insights on this?. Thank you

Hi @amh28 !
If you download NiftyNet source code (assuming folder NiftyNet/), also download and unzip image data into these folders
NiftyNet/data/PROMISE2/TrainingData_Part1
NiftyNet/data/PROMISE2/TrainingData_Part2
NiftyNet/data/PROMISE2/TrainingData_Part3
Running
cd NiftyNet/
pip install tensorflow==1.3 # install TensorFlow
pip install -r requirements-gpu.txt # install NiftyNet dependencies
pip install SimpleITK # install `SimpleITK` (required for reading the files)
python net_segment.py train -c demos/PROMISE12/promise12_demo_train_config.ini

will train dense_vnet from scratch.
The configuration file specifies to use the dense_vnet implementation here, and the Dice loss
Please find more info on the command here:
https://github.com/NifTK/NiftyNet/blob/dev/config/README.md
I'm closing this issue now but please feel free to reopen or ask questions on StackOverflow niftynet tag https://stackoverflow.com/questions/tagged/niftynet.

Hello, I did as you said and since this dataset has 13 different segmentation classes I did some modifications to the configuration file in order to perform multi-class segmentation:
`
[promise12]
csv_file = demos/TrainingAb/file_list.csv
spatial_window_size = (104, 104, 80)
interp_order = 3
pixdim = (1.0, 1.0, 1.0)
axcodes=(A, R, S)
[label]
csv_file = demos/TrainingAb/file_list_seg.csv
spatial_window_size = (104, 104, 80)
interp_order = 0
pixdim = (1.0, 1.0, 1.0)
axcodes=(A, R, S)
############################## system configuration sections
[SYSTEM]
cuda_devices = ""
num_threads = 4
num_gpus = 1
model_dir = ./trainingab_model
[NETWORK]
name = dense_vnet
activation_function = prelu
batch_size = 1
volume level preprocessing
volume_padding_size = 0
histogram normalisation
histogram_ref_file = histogram.txt
norm_type = percentile
cutoff = (0.01, 0.99)
normalisation = True
whitening = True
normalise_foreground_only=True
foreground_type = otsu_plus
multimod_foreground_type = and
window_sampling = resize
queue_length = 8
[TRAINING]
sample_per_volume = 4
rotation_angle = (-10.0, 10.0)
scaling_percentage = (-10.0, 10.0)
random_flipping_axes= 1
lr = 0.00002
loss_type = Dice
starting_iter = 0
save_every_n = 500
max_iter = 25000
max_checkpoints = 50
[INFERENCE]
border = (0,0,0)
save_seg_dir = output_dense_vnet/
output_interp_order = 0
spatial_window_size = (104,104,80)
############################ custom configuration sections
[SEGMENTATION]
image = promise12
label = label
output_prob = True
num_classes = 14
label_normalisation = True
#min_numb_labels = 14
min_sampling_ratio = 0.000001
`
also, this is the histogram.txt specified in the NETWORK section:
promise12 0.0 47.4894 56.5955 57.1504 57.8215 59.5325 65.8625 69.1147 71.1825 72.2834 73.6093 76.813 100.0 labelulabelfrom 0 1 2 3 4 5 6 7 8 9 10 11 12 13 labelulabelto 0 1 2 3 4 5 6 7 8 9 10 11 12 13
Finally after performing the inference stage, I wanted to visualize the segmentation results: 01_niftynet_out.nii.gz (which is the first result) using a Matlab extension for visualizing .nii files:
https://www.mathworks.com/matlabcentral/fileexchange/47072-3d-nifti-data-viewer
but it gives me some error about exceeding matrix dimensions:
`t1 =
struct with fields:
       hdr: [1×1 struct]
  filetype: 2
fileprefix: 'examples/01_niftynet_out'
   machine: 'ieee-le'
       img: **[5-D double]**
  original: [1×1 struct]

Index exceeds matrix dimensions.`
Apparently the obtained segmentation image has shape:  [5-D double]. Nevertheless when I used this same extension for visualizing some of the labels I used for training it gave me this output:
hdr: [1×1 struct]
filetype: 2
fileprefix: 'examples/1label'
machine: 'ieee-le'
img: [512×512×147 uint8]
original: [1×1 struct]
meaning my labels have shape [512×512×147 uint8]. Shouldn't my inference data have the same shape and not that [5-D double] shape?
Maybe my specifications in the configuration file for this specific dataset are not correct and that is why I am obtaining some corrupted segmentation results,  maybe my interp_order, pix_dim parameters are not okay?
Some help on this would be very appreciated.

Hi @amh28 If I remember correctly, setting output_prob to False, the output's shape would be [x, y, z, 1, 1]; setting it to True gives [x, y, z, 1, k] where k is the number of classes.

@amh28 Hello，I also want to study the NiftyNet, But when I download the " Multi-Atlas Labeling Beyond the Cranial Vault" dataset,  I found the dataset is incorrect. Could you give me the dataset?Thank you very much !!!
the dataset likes this now:


"Borănești" is listed in the drop-down menu

Description:
"Borănești" is listed in the drop-down menu alongside its corresponding county according to the law
Precondition:
The website is up an running.

Step 1
Type "Borănești" in the search bar.

Expected results
The location is listed in the drop-down menu as "Comuna Borănești, IALOMIȚA".


Fix index link when term has subterms #3320; fix index-see-also #3314

Signed-off-by: Robert D Anderson<EMAIL_ADDRESS>
name: Pull request
about: Propose changes to fix an issue or implement a new feature

Description
Current PDF output will drop all instances of an index term from the index, if even one instance of the term has a sub-term. This is done silently, so adding one secondary or tertiary term can erase any number of page links for the primary term.
Doing this ignores what the actual markup says, and might not even be the original intent (some of the code design is unclear).
Some indexing tools follow a practice that when there are child terms, the author should not index the primary; however, our code should respect the markup and leave that restriction to local rules.
The update here adds a variable $index.allow-link-with-subterm which defaults to true(); if set to false() it will ignore the links on the parent term as we do today. However, that should not be the default.
Motivation and Context
Fixes #3320
Fixes #3314
How Has This Been Tested?
Tested with the content in 3320; using the default true() setting keeps the expected links, while setting to false() removes them.
Type of Changes

Bug fix (non-breaking change which fixes an issue)

Not yet ready for review - still need to remove any page link for the primary term when it does specify a secondary.

Updated and added a better / more complete test case; tested for AH and FOP output.
3320.zip
To validate output when publishing 3320.ditamap:

EVERYWHERE is only a primary term, should have page links. (FOP doesn't remove duplicates so I get one page twice.)
Issue3320 should have one page link because used as primary once; it should have 2 sub-terms each with a page link
Only subterms should not have any page links, only subterms
PrimaryA should have two page links and one child with a page link
PrimaryB should have one page link and one child with a page link
SeeALSOTest should have a page link, with the See also
SeeTest should not have a page link

Adding to this pull request a fix for #3314.

If a term has more than one index-see-also, current processing ignores all but the first. Latest commit fixes that issue by preserving all see-also instances, separating them with a comma. If the two "see also" references are to IMPORTANT and MORE IMPORTANT, current processing will generate "See also IMPORTANT". With this fix, it will generate "See also IMPORTANT, MORE IMPORTANT"`. Each see-also target is linked correctly.
If a term has more than one index-see, current processing ignores all but the first. Latest commit fixes that issue by preserving all see instances, separating them with a comma. If the two "see" references are to IMPORTANT and MORE IMPORTANT, current processing will generate "See IMPORTANT" after the term. With this fix, it will generate "See IMPORTANT, MORE IMPORTANT". Each see-also target is linked correctly. A better long term fix would be to convert one or all of these to see-also but it didn't seem like it was worth going that far (particularly having to handle the case of a term with both index-seeandindex-see-also`.

Attaching test cases for #3314.
3314.zip

Output files from FOP test above:

3320.pdf
3320book.pdf

The update here adds a variable $index.allow-link-with-subterm which defaults to true(); if set to false() it will ignore the links on the parent term as we do today. However, that should not be the default.

@robander Would users be able to adjust this default by passing a parameter on the CLI, or would changing this require an XSLT customization plug-in?
@lief-erickson With this change, the current docs index in https://github.com/dita-ot/docs/pull/264 would show a large number of (redundant) page numbers for certain parent entries:

@infotexture, that screen capture certainly exposes the duplicate page number issue in FOP, doesn't it?

@infotexture not sure why you are getting page links on the primary term when the secondary is indexed. That's not what I see so I need to double check if something wasn't checked in.
As currently defined this is not a CLI option - to me, this feels way too specific an option to expose on the CLI. Especially for this case -- the only reason to suppress them is if you have a rule that primary terms cannot be indexed when secondary terms are present, but in that case, I think our default should still be "Do what the markup says and if you don't like it, you can update the markup per your local rules"
And the duplicate page numbers -- yeah, that has always been the case with FOP output, just wasn't exposed for us in this case because we ignored all of those entries.

@infotexture testing again with code built from github and I reproduced the results you got with FOP -- investigating.

Tested with FOP:

Using the DITA-OT User Guide 1393f62b. The dropped see-also terms are present. That is fixed.

I am seeing primary entries that have sub-terms show page numbers. Several examples: Ant, dita command, DITAVAL, and many more. This is good.
In the case of DITAVAL, which is one example of several, the page numbers shown after the primary term are also shown after a sub-term. After some testing it appears as though the <index-see-also> markup is contributing a page number to the primary term. This doesn't seem correct to me.
Both of these entries below contribute a page locator to the primary DITAVAL entry (even the second one). I would expect no page locator and the term (clickable) in the "see also" list (for the relevant primary term).
<indexterm>DITAVAL<index-see-also>filters</index-see-also></indexterm>
<indexterm>profiling<index-see-also>DITAVAL</index-see-also></indexterm>

Using a private test document that showed results similar to the DITA-OT User Guide.

@lief-erickson That was not my understanding of index-see-also, based on this bit from the spec: http://docs.oasis-open.org/dita/dita/v1.3/errata02/os/complete/part1-base/langRef/base/index-see-also.html

In addition to its "see also" redirection, an  functions as a pointwise index term, thereby typically generating a page reference as well as the "see also" indication.

As I've understood the specification and the implementation -- "see also" means "Index this point, and also put out a pointer to other terms that may be useful"; "index-see" does not put out a point, and is purely a redirect.

@robander, you're right. The spec does indeed say otherwise. It's not my expectation, but the output does match the spec.

@lief-erickson thanks for testing, and highlighting that issue. I've updated my test case to add this in the first topic:
<indexterm>ChildA</indexterm>
and these in the second topic:
<indexterm>ChildB<index-see-also>ChildA</index-see-also></indexterm>
<indexterm>ChildBSee<index-see>ChildA</index-see></indexterm>
As you noted -- both of those entries in the second topic incorrectly added page links to "ChildA", going to that second topic. I've got an update ready so that only the entry in the first topic creates a page link to "ChildA".


An alternative way to do distributed training using context manager

Follow up to discussion in #235.

Hello @sgugger,
I am taking the opportunity of porting distributed training in notebook usage to fastai v2 to see if the distributed training semantics can be cleaner, and less error prone.  In summary: I propose using a context manager to localizes/auto-clean up the scope to attach a DistributedTrainer to a Learner object.
Currently it requires "setup_distrib()", a check on num_distrib() <1, then call to_distributed() before the fit().  As DistributedTrainer dangles around afterwards, it causes interference with other moving parts.

E.g 1. in fastai v1, I spent quite some time to make LRFinder to work in distributed mode, without significant benefit in the end (only slower in fact, because can't early stop to avoid deadlock, if you recall).
E.g. 2. in 01_intro notebook of fastai v2, after the fit(), the DistributedTrainer would interfere with the subsequent show_results()

Thus, to make the above work smoother, less arm-twisting, I thought DistributedTrainer should get out of the way when not needed.  Such "Move in, use, move out" semantic naturally lends itself to  a context manager.  So I created one distrib_ctx(self:Learner, cuda_id).
I tested it with train_imagenette.py, in single and multiple GPU mode, with and without call to setup_distrib(), and with/without passing the gpu argument to the context manager (it figures it out from rank_distrib().   The usage in train_imagenette.py is simplified, and yet is backward compatible.
Two other suggestions to run by you:

if this context manager approach is acceptable, perhaps I can do the same to to_parallel() ?

perhaps consider  a Learner.remove_cb(class_type), instead of instance of the type?  Right now I have to be mindful of the snake_case version of the class name, and check hasattr on it first, then remove_cb(self.snake_case).  That can be a separate discussion, of course...

Would the context manager then work in a notebook? How does that work to launch the different processes from there?
The feature is interesting in itself so we can definitely merge this. Just adapt the doc comment of distrib_ctx to the rest of the style of fastai v2: a one-liner in double quotes, then any additional info is in Markdown after the cell that defined the function.
We can definitely do the same thing for to_parallel. I'll work on the problem with Learner.remove_cb. I've created issue #239 to track progress on this, so when you see it's closed, you know you can simplify your code ;)

I'll respond the simple bits first.

adapt the doc comment of distrib_ctx to the rest of the style of fastai v2: a one-liner in double quotes, then any additional info is in Markdown after the cell that defined the function.

Will do, thank you for the guideline!

the problem with Learner.remove_cb. I've created issue #239

Thank you.  I will add one related idea to that issue's discussion then.

Would the context manager then work in a notebook? How does that work to launch the different processes from there?

Yes and no.
Yes, the context manager works in notebook with single GPU as-is, because the trio num_distrib(), rank_distrib, setup_distrib() gracefully degenerate to base case, non-distributed mode when world size <= 1 and/or os.environ["RANK"] isn't set.
No, the context manager doesn't launch extra processes, but it is a stepping stone to elegantly work with other mix bag of activites: data exploration, train, find learning rate, switch data, then train again....
At this moment, to launch multiple processes in notebook for v2, I'm using/porting the ipython extension I wrote a month ago, Ddip to v2:
%load_ext Ddip
%makedip -a fastai_v2 ...
... some cells later ...
 %%dip on
... learner and data loaders created in parallel on all processes ...
with learner.distrib_ctx(): learner.fit(...)

The experience when getting Ddip to work with fastai v1,v2, had led me to believe the with ...(): context manager approach will simplify tasks and reduce bugs.
I haven't been able to replace Ddip's functionality in a single cell context in v2 yet.  A learning object created early on in the parent process needs to be completely "pickled"/duplicated over to children processes, and the data loaders etc, have to have correct parameters too.  Technically I haven't solved all the bugs yet, but if and when that is solved, I imagine it should fit nicely into the context manager semantics, with minimal code change.

do the same thing for to_parallel. I'll work on the problem with Learner.remove_cb. I've created issue #239...

I see you already fixed remove_cb(), very fast and thank you!   I will do the context manager for parallel, and the remove_cb(type) simplification in a separate pull request, as #238 probably shouldn't depend on #239.

Just adapt the doc comment of distrib_ctx to the rest of the style of fastai v2: a one-liner in double quotes, then any additional info is in Markdown after the cell that defined the function.

Done, per commit 8b233d2 above.
Let me know if need additional changes.  Thanks!

Thanks! I'll let you follow up with another PR to simplify the remove_cb.

Would the context manager then work in a notebook? How does that work to launch the different processes from there?

@sgugger  Hello Sylvain, hope you're doing well and staying safe.
Regarding the above, an update I wanna share with you.  I've got this to work via a single wrapped function call, and the Jupyter session will receive the trained Learner/model.
https://github.com/philtrade/mpify/blob/master/README.md
Cheers.


-Added a docker file that allows the building of go-mysqldump. Other …

Inclusion of docker file to allow creation of docker image of go-mysqldump

Yes it is for all go-mysql binaries
Sent from my Windows 10 device
From: siddontang
Sent: Thursday, 8 November 2018 19:17
To: siddontang/go-mysql
Cc: michaelhutchful; Author
Subject: Re: [siddontang/go-mysql] -Added a docker file that allows the building of go-mysqldump. Other … (#337)
@siddontang commented on this pull request.
In Dockerfile:

@@ -0,0 +1,15 @@
+FROM golang:alpine

+MAINTAINER atohutchful
+
+RUN apk add --no-cache tini mariadb-client
+
+ADD . /go/src/github.com/siddontang/go-mysql
+
+RUN apk add --no-cache mariadb-client
+
+RUN cd /go/src/github.com/siddontang/go-mysql/ && \

go build -o bin/go-mysqldump ./cmd/go-mysqldump && \
cp -f ./bin/go-mysqldump /go/bin/go-mysqldump

+ENTRYPOINT ["/sbin/tini","--","go-mysqldump"]
em, I think this may be a dockerfile for all the go-mysql binaries, not only for mysqldump.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

@MichaelAtoHutchful
but you only build go-mysqldump.

@michaelhutchful  hi, you haven’t updated this pr for a long time, and I just want to know what is your plan now?

At the moment I don't have any plans to proceed with this.


Missing details in the document for the random seed

📚 Documentation
Even though in the documentation, lightning very thoughtfully reminds readers of setting the random seed when using distributed data parallel. However, it does not mention where should we set them. Based on my experience on PyTorch, the seed can be set after calling the torch.distributed.init_process_group. For lightning, this call is handled by the trainer, so where should we set the random seed? One thought from me is that we set the seed in the __init__() of our LightningModule, any other suggestions? What would be the best practice for lightning?
Also, I believe that the seed_everything() function is called in the wrong place on the lightning's official example.

@DKandrew is there anything wrong with calling seed_everything at the entry point of the training script? I ask because you mention doing it after distributed init group.

Hi @ashwinb,
TL;DR. The training script is correct.
I did a little experiment to see if the child processes could inherit the random state. Here is my script
import argparse
import os
import numpy.random
import random
import torch
import torch.distributed as distributed

from pytorch_lightning import seed_everything

seed_everything(207)

def python_random(counts):
    return [random.random() for _ in range(counts)]

def numpy_random(counts):
    return [numpy.random.random() for _ in range(counts)]

def torch_random(counts):
    return [torch.rand(1).item() for _ in range(counts)]

def parse_args():
    """
    Parse the command line arguments
    """
    parser = argparse.ArgumentParser(description='Playground')
    parser.add_argument(
        '--local_rank',
        default=0,
        type=int,
        required=True,
        help='local rank of this process (i.e. process id)'
    )

    args = parser.parse_args()
    return args

def main():
    args = parse_args()

    # Determine current process's local rank
    local_rank = args.local_rank

    # Initialize distributed training
    distributed.init_process_group('nccl', init_method='env://')

    msg = f"local range: {local_rank}\n"
    msg += "Python random: {}\n".format(python_random(3))
    msg += "Numpy random: {}\n".format(numpy_random(3))
    msg += "Torch random: {}\n".format(torch_random(3))

    print(msg)

if __name__ == '__main__':
    main()

You can invoke this script by calling
python -m torch.distributed.launch --nproc_per_node=[number of gpu] [script_name].py

Here is what I got by using two GPUs
local range: 1
Python random: [0.5059766669498406, 0.6690652117641676, 0.8534819330516183]
Numpy random: [0.5029648605599233, 0.3660225706426885, 0.44731428418920105]
Torch random: [0.7590030431747437, 0.13656914234161377, 0.7017777562141418]

local range: 0
Python random: [0.5059766669498406, 0.6690652117641676, 0.8534819330516183]
Numpy random: [0.5029648605599233, 0.3660225706426885, 0.44731428418920105]
Torch random: [0.7590030431747437, 0.13656914234161377, 0.7017777562141418]

They are clearly the same.
If you comment out the seed_everything(), you will get different results.
local range: 1
Python random: [0.3214156803428436, 0.49857925013622195, 0.9934577900320609]
Numpy random: [0.3255639188497673, 0.6924278687540534, 0.8184138384742942]
Torch random: [0.5103110074996948, 0.812697172164917, 0.7066746950149536]

local range: 0
Python random: [0.016087008610051856, 0.1289228962942407, 0.08177483232901683]
Numpy random: [0.5057701032003784, 0.47114302901911165, 0.26440427354457685]
Torch random: [0.25142884254455566, 0.7235633134841919, 0.8742098808288574]

so you are right. The script is correct, and my understanding of PyTorch distributed training gets updated.
Reference:
[todo]

I think it would be helpful to explicitly tell users that they should set the random seed before the Trainer is instantiated. Making a PR for this.


Tooltips of supply sliders should be revised

Most supply sliders still have the following text in the tooltip:

Changed content of all capacity related sliders. Example:


Allow to reset state

https://github.com/kickstarter/rack-attack/issues/249#issuecomment-539029878
I can think of 2 (not functionally equal) implementations:

Rack::Attack.reset! which really resets (deletes) specific keys in cache store and can be used for testing as well as production. But, while this can be implemented for most of cache stores (using https://api.rubyonrails.org/classes/ActiveSupport/Cache/Store.html#method-i-delete_matched), this is not (and can't be) supported by memcache (the second most popular cache store), because to reset state, we should know exact key names, which is impossible for production considering rack-attack's dynamic key names nature. Unfortunately, memcache does not support deleting based on patterns/prefixes, like in redis. And need to figure out how to use this with custom, created by user, cache stores.
Also, personally, I don't think this is a very popular usecase to reset production rack-attack cache. I have used this once to shrink redis memory usage, implemented as a simple rake task executing scan and del on redis. I think, for general use, changing keys prefix and let the backed store prune old entries here is a valid solution.

Implementation only to support user tests. I implemented this version here. Example of usage:

# test_helper.rb
Rack::Attack.test_mode

# some_test_file.rb
...
setup do
  Rack::Attack.cache.store.clear
end
...

After agreeing on implementation, will add missing tests and documentation.

#249 (comment)
I can think of 2 (not functionally equal) implementations:
1. `Rack::Attack.reset!` which really resets (deletes) specific keys in cache store and can be used for testing as well as production. But, while this can be implemented for most of cache stores (using https://api.rubyonrails.org/classes/ActiveSupport/Cache/Store.html#method-i-delete_matched), this is not (and can't be) supported by memcache (the second most popular cache store), because to reset state, we should know exact key names, which is impossible for production considering rack-attack's dynamic key names nature. Unfortunately, memcache does not support deleting based on patterns/prefixes, like in redis. And need to figure out how to use this with custom, created by user, cache stores.
   Also, personally, I don't think this is a very popular usecase to reset _production_ rack-attack cache. I have used this once to shrink redis memory usage, implemented as a simple rake task executing `scan` and `del` on redis. I think, for general use, changing keys prefix and let the backed store prune old entries here is a valid solution.

Good call.
I would still consider providing a Rack::Attack.reset! method that depends on the store #delete_matched method (passing the prefix) which will work for redis and memory_store.
For mem_cache users wanting to reset in their test suites will have the option to:

use the memory_store for the test suite and use this new .reset! method
clear all mem_cache during tests

2. Implementation only to support user tests. I implemented this version here. Example of usage:

# test_helper.rb
Rack::Attack.test_mode

# some_test_file.rb
...
setup do
  Rack::Attack.cache.store.clear
end
...

After agreeing on implementation, will add missing tests and documentation.

@grzuy Updated with your suggestions. I haven't added any readme notes. I think it is better to add all of them as third subtask of #301

Updated.

Awesome, thank you!

Should Rack::Attack::reset! remove current IPs that I have listed with safelist_ip ?
Because I'm trying to remove the IPs, but the new reset! method doesnt remove them and does not raise any error. Is there a way to remove from cache only one specific IP that I was added through safelist_ip?

Any chance of getting a new release with this in?

Released in v6.3.0.

Should Rack::Attack::reset! remove current IPs that I have listed with safelist_ip ?
Because I'm trying to remove the IPs, but the new reset! method doesnt remove them and does not raise any error. Is there a way to remove from cache only one specific IP that I was added through safelist_ip?

Hi @camilova , safelist_ip doesn't write anything to cache.

Thanks! I had a misconception, but now I know that .clear_configuration
is what I was looking for.
El dom., 26 de abril de 2020 11:50, Gonzalo Rodriguez <
<EMAIL_ADDRESS>escribió:

Should Rack::Attack::reset! remove current IPs that I have listed with
safelist_ip ?
Because I'm trying to remove the IPs, but the new reset! method doesnt
remove them and does not raise any error. Is there a way to remove from
cache only one specific IP that I was added through safelist_ip?
Hi @camilova https://github.com/camilova , #safelist_ip doesn't write
anything to cache.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kickstarter/rack-attack/pull/436#issuecomment-619573467,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AG7CYOGSLTTHLWELZ7BYQNDRORJ4XANCNFSM4I7LVZWQ
.


Fixed PRIVATE_WITH_NAT deprecated warning

Coverage remained the same at 94.16% when pulling 42f5b08645687d296012b42e401394663529cff2 on cody-fix-cdk-private-nat-warning into 4de53b7c2841b8274fad8209512fc748d252f8f7 on main.


[Discussion]: Map keys using vim.keymap.set()

PREFACE
This is going to sound stupid but I have searched the internet to the best of my ability and couldnt find anything about this. I also tried to solve this by browsing the code but to no avail.
PROBLEM (more like annoyance)
All of my plugins are set up using vim.keymap.set and I have some stuff setup which depends on this function. To maintain consistency, I would like to remap nvim-cmp mappings like complete, select_next/prev using vim.keymaps.set..... this works fine until I use keys that insert text characters like <Tab> or <CR> which take away my ability to edit text... the fallback function doesnt seem to work and errors out tried to call fallback() a nil value... I don't "think" I need to setup fallback? as I didnt have to when mapping using cmp.setup
MY ATTEMPT
local cmp = require("cmp");
local luasnip = require("luasnip");

-- Mapping Tab to go to next suggestion
map(
	{ "i", "s" },
	"<Tab>",
	cmp.mapping(function(fallback)
		if cmp.visible() then
			if #cmp.get_entries() == 1 then
				cmp.confirm({ select = true
				});
			else
				cmp.select_next_item({ behavior = cmp.SelectBehavior.Select });
			end
		elseif luasnip.expand_or_locally_jumpable() then
			luasnip.expand_or_jump()
		elseif ax.has_words_before() then
			cmp.complete()
			if #cmp.get_entries() == 1 then
				cmp.confirm({ select = true });
			end
		else
			fallback()
		end
	end).i
);

-- Mapping Shift-Tab to go to next suggestion
map(
	{ "i", "s" },
	"<S-Tab>",
	cmp.mapping(function()
		if cmp.visible() then
			cmp.select_prev_item();
		elseif luasnip.locally_jumpable(-1) then
			luasnip.jump(-1)
		end
	end).i
);

-- Mapping enter to accept the completion
map(
	"i",
	"<CR>",
	cmp.mapping(function(fallback)
		if cmp.visible() and cmp.get_active_entry() then
			cmp.confirm({ select = false });
		else
			fallback()
		end
	end).i
);

NOTE
nmap is just vim.keymap.set

There are discussions (on GitHub) that are geared towards usage question.

Hey @gegoune
Thanks for the reply. I tried looking into some of the discussions but none seemed to be linked or similar to my problem.
Do you think this kind of mapping can be achieved though or the fallback() call only works for keymaps setup in cmp;.setup({ mappings = {})?

I am guessing it isn;t then? Any way we can change the keymap descriptions though?

You can use vim.keymap.set
vim.keymap.set({ 'i', 's' }, '<C-Space>', function()
  require('cmp').complete()
end)

The cmp.mapping supports fallback function.
If you don't need this, you can use :help cmp-function.

Hey @hrsh7th

You can use vim.keymap.set
vim.keymap.set({ 'i', 's' }, '<C-Space>', function()
  require('cmp').complete()
end)

So I tried this, the keymap works perfectly but in case of tab and enter, the actual text editing capabilities of these keys do not work any more (no \t or new line). This does not seem to happen when setting mapping in the setup function.

The cmp.mapping supports fallback function.

Oh.. so it will automatically call it or I need to do something?

If you don't need this, you can use :help cmp-function.

That did not seem to work. Though I did find a list of function manually by scrolling through the docs
Thanks for the reply! This is not a biggie as I just use the setup function for mapping now... But it would be great anyways

The cmp.mapping.* is a helper function that has useful implementation for mapping.
The cmp.* is just an API function.
So you should implement suitable mapping behavior by yourself.
vim.keymap.set({ 'i', 's' }, '<CR>', function()
  local cmp = require('cmp')
  if not cmp.confirm({ select = false }) then
    vim.api.nvim_feedkeys(vim.keycode('<CR>'), 'ni', true) -- fallback
  end
end)

The cmp.mapping.* is a helper function that has useful implementation for mapping. The cmp.* is just an API function.
So you should implement suitable mapping behavior by yourself.
vim.keymap.set({ 'i', 's' }, '<CR>', function()
  local cmp = require('cmp')
  if not cmp.confirm({ select = false }) then
    vim.api.nvim_feedkeys(vim.keycode('<CR>'), 'ni', true) -- fallback
  end
end)

Thank you a LOT! That worked wonders... Oof...
Cheers! :)


Octo ignores any contiguous text not containing whitespace that appears immediately after a number

v0 := 10.3
v9 := 0b00bs
v8 += 0xEN
v7 += 0=1=2=3=4

It doesn't really break anything, but it does seem a tad undefined.
See the running example:
https://gist.github.com/anonymous/4bff9d3f107c10eec80f
http://johnearnest.github.io/Octo/index.html?gist=4bff9d3f107c10eec80f

@JohnEarnest, what are your thoughts here? This issue occurs due to how the parseInt() function handles malformed numbers. It seems easily fixable with a well-placed regular expression.
Mind if I work on this issue?

Looks like an easy fix. Honestly I can't see why I didn't just correct this when it was reported; it shouldn't break any reasonable programs. I say go for it.


smatch: too many mismatches in shallow liver test dataset

I am trying to run the NovaScope pipeline using the available test dataset of the liver shallow sequencing. After step smatch, I wanted to evaluate the output and found that almost all R1 HDMIs had been classified as mismatches.
Here is the summary.tsv:
Type    Reads   Fraction
Total   11051480        1.00000
Miss    11051456        1.00000
Match   24      0.00000
Unique  2       0.00000
Dup(Exact)      22      0.00000

The two unique matches look like this in the match.sorted.uniq.tsv.gz file:
ATTGATGTTATAAGACAGGCCACGGGACCTT 1       1       1389704 1396869 3       5
GCTGTTCTACTCCTGGCTGATAATCGTATGC 1       1       943720  1524859 4       19

Correspondingly, the png is empty.
In the previous step, the manifest.tsv still reported plenty of barcodes to be matched:
id      filepath        barcodes        matches mismatches      xmin    xmax    ymin    ymax
1_1     1_1.sbcds.sorted.tsv.gz 5962994 5962994 0       0       1469211 0       2277916

To my knowledge, I used all parameters as described in the documentation.
My config_job.yaml looks like this:
## Input
input:
  flowcell: 9203-AP
  chip: B08C
  species: "mouse"
  seq1st:
    fastq: "/gpfs/bwfor/work/ws/hd_fz305-seqscope/data/novascope_liver_shallow/B08Ctest/seq1st/fastqs/9203-AP.L3.2456_2556.R1_001.fastq.gz"
    layout: "/gpfs/bwfor/work/ws/hd_fz305-seqscope/data/novascope_liver_shallow/B08Ctest/seq1st/layout/B08Csub.layout.tsv"
  seq2nd:
    - id: liver_shallow
      fastq_R1: "/gpfs/bwfor/work/ws/hd_fz305-seqscope/data/novascope_liver_shallow/B08Ctest/seq2nd/fastqs/B08Cv1.filt/B08Cv1.filt.R1.fastq.gz"
      fastq_R2: "/gpfs/bwfor/work/ws/hd_fz305-seqscope/data/novascope_liver_shallow/B08Ctest/seq2nd/fastqs/B08Cv1.filt/B08Cv1.filt.R2.fastq.gz"

## Output
output: "/gpfs/bwfor/work/ws/hd_fz305-seqscope/data/novascope_liver_shallow/results_novascope"
request:
  - smatch-per-chip

## Environment
env_yml: "/home/hd/hd_hd/hd_fz305/NovaScope/config_env.yaml"

##  Additional Fields:

upstream:
  fastq2sbcd:
    format: DraI31

What am I missing here? Please note that the smatch runs fine, only the resulting low match count is the issue.
P.S.: Is the H&E image for this sample available somewhere? The documentation refers to it, but I couldn't find it.

@gesavoigt Hi gesavoigt! Based on your YAML file, it appears that you downloaded and applied our minimal test dataset to NovaScope instead of the shallow liver dataset.
If you'd like to switch to our shallow liver dataset, which includes the H&E tif file, you can find it alongside the H&E file on Zenodo at 10.5281/zenodo.10840696. We also have instructions for downloading the shallow liver dataset, which may help you identify the 1st-seq and 2nd-seq files. Additional details are provided in the example YAML file for the shallow liver dataset here.
If you prefer to continue using the minimal test dataset, I believe the missing matches in your run are due to the skip_sbcd setting. Specifically, the minimal test dataset has been manually modified, so skip_sbcd must be set to 0 even though the format is DraI31 (see the example below). More details are available in its example YAML file.
upstream:
  fastq2sbcd:
    format: DraI31
  smatch:
    skip_sbcd: 0

Please don't hesitate to let me know if anything is unclear or if there are any issues.
Thank you!
W.

Hi @WQ-CHENG, thank you for your quick response! Apologies that I didn't catch that myself. With the correct dataset, the pipeline now runs without issue through until dge2sdge.
I have now tried to transfer this to my own dataset, following the DraI32 format, adjusting the parameters accordingly. Here, I have a similarly low Match fraction:
Type    Reads   Fraction
Total   72339662        1.00000
Miss    72339561        1.00000
Match   101     0.00000
Unique  25      0.00000
Dup(Exact)      76      0.00000

When running with match_len=20, the absolute count is higher, but the mismatch percentage remains at about 99%.  If you have encountered a similar issue before, do you have any guidance on how to achieve better results?
Since this might very well be caused by poor data quality and the original issue is resolved, I am marking this as closed.

In such a case, I would suggest (1) you make sure you used proper 1st-Seq or Chip area -- often having wrong reference leads to this type of outcome, and (2) check the R1 quality. The HDMI32-DraI should have characteristic nucleotide pattern (e.g. NNVNBVNNVNNVNNVNNVNNVNNVNNVNNNNN), which should be reflected in R1. If sequencing quality is poor, such pattern would not be observed.


Can't build anymore

I have the following error when i'm trying to build the current master:
[  6%] Building CXX object src/CMakeFiles/ppconsul.dir/agent.cpp.o
[  9%] Building CXX object src/CMakeFiles/ppconsul.dir/catalog.cpp.o
[ 11%] Building CXX object src/CMakeFiles/ppconsul.dir/consul.cpp.o
ppconsul/src/consul.cpp:91:13: error: function 'ppconsul::Consul& ppconsul::Consul::operator=(ppconsul::Consul&&)' defaulted on its redeclaration with an exception-specification that differs from the implicit exception-specification ''
Consul& Consul::operator= (Consul &&op) PPCONSUL_NOEXCEPT = default;
^~~~~~
make[2]: *** [src/CMakeFiles/ppconsul.dir/build.make:89: src/CMakeFiles/ppconsul.dir/consul.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:146: src/CMakeFiles/ppconsul.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
gcc version 7.3.1 20180303 (Red Hat 7.3.1-5) (GCC)
Boost 1.73

This is caused by using old ABI, i.e. compiling with CXX="g++-7 -D_GLIBCXX_USE_CXX11_ABI=0".

I've pushed the fix. Please verify and reopen the issue if you still have problem.


wrap quiz 3

Question 1: move hint (scoring="balanced_accuracy") into the instructions rather than a hint

The rest of the wrap-up quiz with plotly parallel coordinate plots needs to be looked at as well (probably too many possible answers that could be splitted or maybe reduced)

@lesteve I open https://github.com/INRIA/scikit-learn-mooc/issues/299 regarding the wrap up quiz.


Add unique constraint to writers.uid

It was not done previously due to database structure but should be done now.


Multiple Acceptable Prefixes?

Is it possible to allow for multiple acceptable prefix policies?  For example if I want to require a business unit to prefix the group name with  "Division1 - " is it possible to allow for multiple accepted prefixes (i.e. "Division1 - " and "Division2 - ").  If so how would this be done?  Would it be multiple policies or a multi valued policy and would there be conflicts with multiple policies?

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

ID: 6f70ad7b-5ba2-6167-1207-7496d57c6828
Version Independent ID: 3df3ae33-83d3-e25f-3b41-070620030a08
Content: Office 365 Groups naming policy
Content Source: Office365-Admin/create-groups/groups-naming-policy.md
Service: o365-administration
GitHub Login: @MikePlumleyMSFT
Microsoft Alias: mikeplum

@officedocsbot assign @mypil

@admintgal - Thank you for submitting feedback.
I will get this issue over to the O365ITPro writing team for investigation.
Thank you for reporting and making the docs better. Much appreciated.
I made a note to request the team to update this when the work is complete.

@admintgal Thank you for submitting feedback. Unfortunately, there is only one groups naming Policy that can be active at a time.If you set up your naming policy In Azure AD and you have an existing Exchange group naming policy, the Azure AD naming policy is applied. If there is a requirement to create a group outside of the naming policy, The following are the list of administrator roles exempted from the group naming policy.
Global administrator
Partner Tier 1 Support
Partner Tier 2 Support
User administrator
Directory writers
Regards
Sriraman

@admintgal - From our understanding, the issue has been answered by msbemba. If you feel it hasn't been resolved please re-open this issue.
Thank you for engaging with the community here for the docs.

@officedocsbot close


Update notebook on forward model

fixed #70

Thank you @amal-ghamdi  and now I requesting review from @jakobsj


Maintain latest and pending block and state in memory

Juno should be able to respond within 100 microseconds for any rpc request involving the latest or pending state.  This would impact the following calls:

starknet_getBlockWithTxHashes
starknet_getBlockWithTxs
starknet_getStateUpdate
starknet_getClass
starknet_getBlockTransactionCount
starknet_blockNumber
starknet_blockHashAndNumber
starknet_chainId
starknet_pendingTransactions
starknet_syncing
starknet_getEvents
starknet_getNonce

One way to achieve such low response times is to cache the latest and pending state in memory. This would make the Pending bucket unnecessary therefore it should be removed.

How about a more generalized cache in front of our DB? It would benefit us in all sorts of ways.

That would work as well. How do you propose we would achieve that?

"pending" was moved in to memory in #1430 , should be good enough for now.


Patch for /trunk/cpplint/cpplint.py

Quick hack for QT on line 4413:
scope_or_label_pattern = r'\s*(\w+|private slots)\s*:\s*\\?$'

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 7 Apr 2015 at 1:43
Attachments:

cpplint.py.patch

Quick hack for QT on line 4413:
scope_or_label_pattern = r'\s*(\w+|private slots)\s*:\s*\\?$'

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 7 Apr 2015 at 1:43
Attachments:

cpplint.py.patch


Add semicolon ; to end of dist files

Can you add a semicolon to the end of the /dist files?
The issues is when concatenating with other libraries via a Grunt or Gulp task you get a Uncaught TypeError: because the libraries have merged together. To fix this code/libraries should have a semicolon at the end as a separator.
Keep up the good work. I love Lovefield!

We are unable to accommodate that request since most files are generated by Closure compiler automatically. If you have the need, please change your grunt/gulp script to do so.

Re-opening this issue. The missing semicolon at the end is can actually be fixed. Will make sure this has been fixed in the next version.


Add support for skipping function comparisons.

We've run in to a number of scenarios where by we want to just assume two functions are equivalent. This PR adds support for detecting function comparisons and conditionally just skipping them or assuming that they're equivalent.

I also would want to see this merged.. :)

@bradhe would you mind checking "allow edits" on the RHS of this PR?

Done!

Generally, this package tries to stick tightly to assert.deepEqual/assert.deepStrictEqual. Both of these treat no functions as equivalent, so I'm hesitant to add this behavior to this package, even under an option.

Since node's APIs treat all functions as not equal (unless they're ===), the behavior would have to change in node before it could change here.


Example code not working on physical Android device

Hi,
I only tested using the example code you provided.

Worked on Android Emulator
Did not work on Samsung Note 10 (Android 11)
Did not work on older phone (Android 6)

Not working =

physical buttons change system volume, but App GUI is not affected
GUI buttons change App GUI, but not system volume.

For me GUI buttons change system volume, but I agree physical buttons does not affect plugin

Humbling suggest that since the plugin is called volume_watcher...
... it should detect when the volume is changed by the physical buttons.


Feature/xinnanli/trigger handler list index error

Critical Changes
Changes

We fixed an error that occurred when changing the value of a field referenced by Filter Field and Filter Value. Previously, for example, if you had referenced the Contact Title field and the value "CEO" (in Filter Field and Filter Value respectively), an error prevented you from changing "CEO" in the Title field to a different value.

Issues Closed
Fixes #538
New Metadata
Deleted Metadata
Testing Notes

Update the Trigger Handler that manages the CON_DoNotContact_TDTM class with these two values: Filter Field = Citizenship__c
Filter Value = Aruba
Create a Contact and set the Citizenship field to Aruba and Save.
Try to change the Citizenship field to any other value. Error is thrown.

@sam-knox Seems like this PR might make the next release. Could you do a release note review, please?

Done. If you can give it a read for clarity that would be great. This one
is a little abstract to explain so I included an example this time.
On Fri, Mar 9, 2018 at 9:27 AM, lianeyee<EMAIL_ADDRESS>wrote:

@sam-knox https://github.com/sam-knox Seems like this PR might make the
next release. Could you do a release note review, please?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/SalesforceFoundation/HEDAP/pull/561#issuecomment-371882437,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AhtuxeWEI_z84eiwMvB5F4TenBNMjj_Fks5tcrt7gaJpZM4SkY-u
.

--
Sam Knox
Technical Writer, Documentation | Salesforce.org

Hi @xinnanlisf , Great work!
Can you update the comments of the function since we add new parameter?

@sam-knox Example is a great way to go for this one. I'd consider tweaking the lead and the language at the end. Pasting here rather than editing directly, in case this doesn't quite hit the mark: "We fixed an error that occurred when changing the value of a field referenced by Filter Field and Filter Value. Previously, for example, if you had referenced the Contact Title field and the value "CEO" (in Filter Field and Filter Value, respectively), an error prevented you from changing "CEO" in the Title field to a different value."

@lianeyee - Awesome, thank you!

@xinnanlisf  any other testing scenarios you can think of that would be good to test this one besides what's in the "Testing Notes" section? I am just starting to look at this item.

This has been tested and passed. There is no error being thrown anymore. The updated contact is getting saved successfully and the Trigger is not running if the contact has the value that is in the filter field value. fyi @weizsforg. Merging this PR.


[$1000] Chat - Landing in recent chat if login via link with user you don't have chat with

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:
Precondition - User A has chat with User B. User C doesn't have chat with user B. Login as user A.

Open http://staging.new.expensify.com/
Open chat with user B
Copy link to the chat
Log out of the account
"Paste & go" copied link
Login with account of user C.

Expected Result:
User lands in "You don't have access to this chat"
Actual Result:
User lands in the most recent chat
Workaround:
Unknown|
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/93399543/230742906-6153e1f5-c253-41df-848b-95997658c5bb.mp4
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0194a9f940ab105839
Upwork Job ID:<PHONE_NUMBER>962811904
Last Price Increase: 2023-04-13

Triggered auto assignment to @sakluger (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details.

Bug0 Triage Checklist (Main S/O)

[ ] This "bug" occurs on a supported platform (ensure Platforms in OP are ✅)
[ ] This bug is not a duplicate report (check E/App issues and #expensify-bugs)

If it is, comment with a link to the original report, close the issue and add any novel details to the original issue instead

[ ] This bug is reproducible using the reproduction steps in the OP. S/O

If the reproduction steps are clear and you're unable to reproduce the bug, check with the reporter and QA first, then close the issue.
If the reproduction steps aren't clear and you determine the correct steps, please update the OP.

[ ] This issue is filled out as thoroughly and clearly as possible

Pay special attention to the title, results, platforms where the bug occurs, and if the bug happens on staging/production.

[ ] I have reviewed and subscribed to the linked Slack conversation to ensure Slack/Github stay in sync

I'm going to reassign this one tomorrow because I don't have the bandwidth to investigate and manage this one.

Verified that this is not deeplinking to the correct page. The issue only occurs when I go to that link while not signed in. If i'm already signed into the 3rd account, then it brings me to the "You don't have access to that chat" page correctly.

Job added to Upwork: https://www.upwork.com/jobs/~0194a9f940ab105839

Current assignee @sakluger is eligible for the External assigner, not assigning anyone new.

Triggered auto assignment to Contributor-plus team member for initial proposal review - @sobitneupane (External)

Triggered auto assignment to @bondydaa (External), see https://stackoverflow.com/c/expensify/questions/7972 for more details.

Proposal
Please re-state the problem that we are trying to solve in this issue.
User always lands in the most recent chat when they access the chat by link/deep link into the chat before they log in.
This not only happens with a "user you don't have chat with" but it happens for all chats, no matter which chat you try to get in using the link, you'll always land on the most recent chat.
What is the root cause of that problem?
It's here https://github.com/Expensify/App/blob/4607dcb69b6d5bb7607f652f8a78327c7e002183/src/libs/Navigation/AppNavigator/MainDrawerNavigator.js#L103, we're always setting the chat to the most recent chat after the user logs in.
Here're what happens:

User tries to navigate to the chat /r/123 link
User is not logged in yet, so they have to login
After logged in, now the initialParams.reportID is always empty so according to this logic https://github.com/Expensify/App/blob/4607dcb69b6d5bb7607f652f8a78327c7e002183/src/libs/Navigation/AppNavigator/MainDrawerNavigator.js#L100, the report screen will be reset to the most recent chat's reportID, ignoring the chat that the user is trying to get to in 1.

What changes do you think we should make in order to solve the problem?

We need to check if the user is trying to get to a chat before logging in. If yes then do not override the chat with the most recent chat.
That means replacing this logic https://github.com/Expensify/App/blob/4607dcb69b6d5bb7607f652f8a78327c7e002183/src/libs/Navigation/AppNavigator/MainDrawerNavigator.js#L103 with something like:
const reportScreenReportID = lodashGet(state, 'routes[0].state.routes[0].params.reportID', '');

if (!reportScreenReportID) {
    Navigation.setParams(initialNextParams, reportScreenKey);
}

What alternative solutions did you explore? (Optional)
Reminder: Please use plain English, be brief and avoid jargon. Feel free to use images, charts or pseudo-code if necessary. Do not post large multi-line diffs or write walls of text. Do not create PRs unless you have been hired for this job.

Looks like something related to react-navigation may have been mentioned in this issue discussion.
As a reminder, please make sure that all proposals are not workarounds and that any and all attempt to fix the issue holistically have been made before proceeding with a solution. Proposals to change our DeprecatedCustomActions.js files should not be accepted.
Feel free to drop a note in #expensify-open-source with any questions.

Thanks for the write up @dukenv0307, the only thing I don't think we should be doing is diving into the state object like lodashGet(state, 'routes[0].state.routes[0].params.reportID', '');.
I'm wondering if instead we should do something like save the reportID from the url of /r/123 into a global state (if we have that?) or maybe into a client only onyx key (not sure this is a thing either) and then as you've said when we get to https://github.com/Expensify/App/blob/4607dcb69b6d5bb7607f652f8a78327c7e002183/src/libs/Navigation/AppNavigator/MainDrawerNavigator.js#L100 look for that value and if it exists trigger that we load it?

@dukenv0307 We are expecting "You don't have access to this chat" screen if the reportID cannot be accessed by the user. Will your proposal yield the expected output? While testing, I could not get the expected output, the report keeps on loading instead.

@bondydaa We also can come up with your suggestion
If do that, we can set new field (reportScreenReportID) on ONYX in here
https://github.com/Expensify/App/blob/e702c3a45934767da5a5da5f70f642e0da89bcb3/src/Expensify.js#L154
And then we also need to replace this logic https://github.com/Expensify/App/blob/4607dcb69b6d5bb7607f652f8a78327c7e002183/src/libs/Navigation/AppNavigator/MainDrawerNavigator.js#L103 with something like:
            const reportScreenReportID = this.props.reportScreenReportID

            if (!reportScreenReportID) {
                Navigation.setParams(initialNextParams, reportScreenKey);
            }

It also works for me
cc @sobitneupane

We are expecting "You don't have access to this chat" screen if the reportID cannot be accessed by the user. Will your proposal yield the expected output? While testing, I could not get the expected output, the report keeps on loading instead.

My bad. I could not reproduce it any longer.
The proposal from @dukenv0307 looks good to me.
🎀👀🎀 C+ reviewed
cc: @bondydaa

📣 @dukenv0307 You have been assigned to this job by @bondydaa!
Please apply to this job in Upwork and leave a comment on the Github issue letting us know when we can expect a PR to be ready for review 🧑💻
Keep in mind: Code of Conduct | Contributing 📖

assigning @dukenv0307 but I just want to clarify which proposal @sobitneupane agreed with?
https://github.com/Expensify/App/issues/17188#issuecomment-1509764446
or
https://github.com/Expensify/App/issues/17188#issuecomment-1512830004

@bondydaa I prefer the prior proposal. The only reason is urls are subject to change, and change in url might break the solution if we use url to retrieve reportID.

In my opinion, we should come up with my first solution because it is simple and we also use the same thing in
https://github.com/Expensify/App/blob/4607dcb69b6d5bb7607f652f8a78327c7e002183/src/libs/Navigation/AppNavigator/MainDrawerNavigator.js#L102
The @bondydaa solution also be good but I see that it seems a bit complicated. @bondydaa What do your thought?

oh wow I didn't realize we were already accessing something out of state like that 🤔.
I chatted with @tgolen real quick about that and that instance in MainDrawerNavigator.js is more of a "do as I say, not as I do" type thing. It's a hack that was required in that particular case and should get cleaned up once the navigation library changes but isn't a pattern we should continue to repeat.
I wouldn't worry too much about urls changing, if they do then we'll update the code here as well so it still works (more $$ for contributors to fix another bug 😁). You could make the same argument that react could change the state object at anytime and it would break as well. We can't 100% future proof anything we build so I think both arguments don't hold much weight.
So I think we should go with this https://github.com/Expensify/App/issues/17188#issuecomment-1512830004

Looks like the PR is still in review, making steady progress. (Adding this comment to make it easier to go through my K2 assigned issues).

@dukenv0307 what's the status of the PR? Looks like we may be waiting on another issue before we can test it fully?

@sakluger sorry for my delay, we cannot test the PR fully in native because have some bugs when open with deep link in native.

Looks like the PR is making steady progress and is getting close.

I'm dropping this to weekly (if botify will allow me), it's definitely not as important as Manual Request stuff which needs attention for EC3.

I'm going to move this back to daily since EC3 is happening, so this should be prioritized again.

Hey @dukenv0307 - just checking in, what's the latest on this one? I don't see any new commits or comments on the PR since May 10, is the PR held on anything?

@sakluger We are discussing in slack about a problem in the PR

Thanks, here's the Slack thread for posterity: https://expensify.slack.com/archives/C01GTK53T8Q/p1682549395857859

Looks like we came to a decision on the Slack thread. @bondydaa @dukenv0307 what's the next step here? Does the PR need to be updated now?

Sounds good, thanks! I'm OOO for the next week so I'm going to reapply the BZ label, @bondydaa let us know how we should proceed here.

Tossing this one back to you @sakluger since I am about to go OOO tomorrow.

Bumped Bondy in the Slack thread. He's OOO today so I don't expect a response for a day or two.

@bondydaa checking in again, mind updating with the next steps here?

left a comment on the PR.
To summarize, I think we should still implement the "default view" for when you load new.expensify.com without any additional route and we stop automatically re-loading the most recent chat by default to display.
if a user loads new.expensify.com/settings then it should open that route/modal but with the default view displayed, not a recent chat or the chat they might have previously been viewing.
if a user loads new.expensify.com/r/123, then opens the settings modal/route then the settings modal would display above the report that is loaded but if they reloaded the page then it would just open new.expensify.com/settings with the default view again.
I don't think users care too much about maintaining the last chat they had open between reloads, if they do then they can write in and we can prioritize it then so let's keep it simple for now: if a report route is loaded then load that chat, otherwise display the default view.

okay so I'd started another thread here https://expensify.slack.com/archives/C01GTK53T8Q/p1687897551415069 and seems like we've changed course and don't really agree on adding the default screen.
I retested this bug and it doesn't exist anymore so I think the navigation refactor took care of it for us.
but I'm going to close this out for now.
if someone wants to propose the default view as a new feature and to stop auto-loading the most recent chat you can pick up the torch in that thread i linked.

I agree that we should have a partial payment for this issue, since work was done before we decided changing direction. I'm going to pay out 50%, I think that's a fair amount given the amount of work done so far.

I sent offers to @dukenv0307 and @sobitneupane in Upwork - please let me know once you've accepted, thanks!

@sakluger Accepted the offer. Thanks.

All paid, thanks!


Delist market

Add hardhat tests: https://github.com/CreamFi/comptroller-upgrade/blob/delist_market/test/upgrade.js

Deployed.


Swiped state is not preserved when uitableview reloaddata method is called

In my table view, few of the cells are MSSwipeTableCell while others are UITableViewCell. I am fetching data for different cells using service calls in blocks and updating the table view using table view's reloaddata method.
In slow network situations, my MGSwipeTableCell appears and I can swipe on it while data for other cells is still being fetched. Once other cells have received the data, I am calling table view's reloaddata method. This is causing the swiped MGSwipeTableCell to snap back with no user action. Appreciate any help on how to fix it.

Perhaps there is a solution in the library itself, but barring that, perhaps you could note which cell is swiped before you call reload data, and re-open it after reload?  or perhaps you could delay the reload until the user is done?

I tried to mote the swipe offset before the reload data and set the swipe offset back again.  Something like the solution described in this link.
https://github.com/MortimerGoro/MGSwipeTableCell/issues/150
This is not working.

i faced the similar issue . I use  reloadRowsAtIndexPaths:withRowAnimation:  to reload rows  those are not  MSSwipeTableCell.


Erroneous readings when downloading unsupported OS application onto device (download failed)

System specs

MacBookAir7,1 (i5, 8GB RAM, 128GB SSD), MacOS 12.6.5
Mist app build 0.5, privileged helper also installed.

Issue:
When trying to download the latest 13.3.1 image, the download when near completed will become stuck; showing the following (now sitting on 21.6GB, 183.6% and climbing)

A previous download of 12.X worked fine, an 11.X download is being tested now.
Anything else I can send through?
Thanks!

@natus-w this seems to be a double-up of #15, both of which unfortunately I am unable to replicate!

Did the macOS Installer finally download correctly?
Are you able to replicate it consistently? Was it a once off? Hit and miss?
Does it feel like a cosmetic bug or did the actual download fail?
What was the result of macOS 11.x ?
Do you know at what percentage the download completed by any chance?

I might setup a recording or some debug output to try to replicate the issue 🤔

Closing due to inactivity, will re-open (or update #15) if required 👍


Fix Safe Area insets

There is a bug with show/hide keyboard. You can reproduce it in demo project. Open the app, button is relative to Safe Area. Tap in textfield, then tap outside of keyboard. Button is not relative to safe area, because safeAreaInsets.bottom is 0 at that moment.
Also, I have added relativeToSafeArea property for those cases, when it is not required to place button relative to safe area.

This fix doesn't work correctly with bottom bars, e.g. a UITabBar or a UIToolbar. For me this seems to work good:
horizontalMargin += superview?.safeAreaInsets.right ?? safeAreaInsets.right
      verticalMargin += superview?.safeAreaInsets.bottom ?? safeAreaInsets.bottom

#245

@kciter Could you check my comment? The code which was merged with this PR doesn't work as expected. Please also check https://github.com/kciter/Floaty/issues/252