image: Fix image creation.

Now that https://github.com/kata-containers/osbuilder/pull/170 is merged
it is needed to update  the image creation scripts.

Hi @jcvenegas , will this fix https://github.com/kata-containers/packaging/pull/200#issuecomment-426322023 ?

@nitkon thank you!


Added a "note" in tf.where documentation suggesting a workaround for issue #38349

Added a note in nt.where documentation...

can anyone please explain this to me

can anyone please explain this to me

Can I help you?

can anyone please explain this to me

How can I help you?

Actually I am new to this issue and request stuff, where can i find proper documentation on dealing with this.

This does not look like a valid PR. Closing.
For contributing, see https://www.tensorflow.org/community/contribute

Nothing to review

Dear @mihaimaruseac
I'm a regular contributor... and I tried to follow contribution guidelines...
According to @mdanatg suggestion, (please see issue #38349 ) this contribution is just a workaround note meanwhile me and any other is interested  are working on a complete solution (not so easy to find)...
This is the reason why there is no code to review.
Where am I wrong?
Thank you.

can anyone please explain this to me

How can I help you?

Actually I am new to this issue and request stuff, where can i find proper documentation on dealing with this.

I'm not sure to get a correct understanding of your question...
All information were into the issue #38349 description.
I just followed Dan Moldovan's suggestion to split the work in two: (a) to patch the documentation and (2) to address the issue (because it looks like very hard...)
Firs part was trivial and I submitted a Pull Request wit a few comment line...
If you wish, we can work together on the second part. I'll be proud of it.
By the way, I don't understand why mr. Mirai Marusac closed the PR and I asked him a clarification...

@codeadmin-peritiae The PR appears to be completely empty - it should at least contain the documentation updates.

Apologies @codeadmin-peritiae. The PR looked empty, no code changes were present

Apologies @codeadmin-peritiae. The PR looked empty, no code changes were present

It's me I have to apologise for...
My Sourcetree GitHub client had went in trouble with a SSH certificate...
I re-submitted my contribution as PR #41775
Thanks a lot for your support.
G.

@codeadmin-peritiae The PR appears to be completely empty - it should at least contain the documentation updates.

I'm sorry, please see my comment above. Thanks. G.


Subdirectories are not processed

I have a directory called css which contains LESS and CSS files, as well as another directory (libs).
It looks like the directory recursion part is not working.
None of the files in libs are processed,
Looking at the code
line 60:
      callback.pending -= 1;
      done = callback.pending === 0;
      if (!enoent) {
        if (options.ignoreDotFiles && path.basename(f)[0] === '.') return done && callback(null, callback.files);
       /* this causes the problem? */
      if (options.filter && options.filter(f, stat)) return done && callback(null, callback.files);
        callback.files[f] = stat;
        if (stat.isDirectory()) {
          walk(f, options, callback);
        }else{
          initCallback&&initCallback(f);
        }

=============================================================
the filter check is done before it checks if the current entry is a directory. The filter will fail it because it does not have a correct 'extension', so subdirectories never get processed.
I changed it to
line 62:
      if (!enoent) {
        if (stat.isDirectory()) {
			callback.files[f] = stat;
			walk(f, options, callback, initCallback);    // <------- Also note I added the 4th param!!
        }else{
            if (options.ignoreDotFiles && path.basename(f)[0] === '.') return done && callback(null, callback.files);
			if (options.filter && options.filter(f, stat)) return done && callback(null, callback.files);
            callback.files[f] = stat;
			initCallback && initCallback(f);
        }

=============================================================
Note that adding the 4th param to walk() makes it also process the subdir files at startup.
Now that the subdirectory scan is fixed, another problem pops up.
Assume the following dir structure:
work_dir
work_dir/css
work_dir/css/sub1
if this script is run like this:
node "less-watch-compiler.js" css css
the css files found in css/sub1 will be compiled and the resulting css will be placed in work_dir/css!
In other words, the file [work_dir/css/sub1/dooda.less]  will be compiled into [work_dir/css/dooda.css] instead of [work_dir/css/sub1/dooda.css]
The solution is to create the output file in the same place the .LESS file was found in.
This also requires changing the script as follows
==========================================
var extension = getFileExtension(file);
var command = '';
var outFilename = file.replace(/\s+/g,"\\ ");
outFilename = outFilename.replace('.less', '.css');
if (extension === 'less') {
	command = "lessc " + file.replace(/\s+/g,"\\ ") + " " + outFilename;

==========================================
This is probably not the correct way to submit changes but I did not want to alter the actual source stored here.
If you are familiar with the process of modifying the source in this repository, please apply these updates.
Cheers,
Nick

Hi @grandehombre
I have made some significant updates just now to this library and incorporated most of your suggestions here. Thanks again.


Not all TD-Cards available when building a 1-Core & TD Deck

There are some cards available like Ubax, Estelle Moon, Marylin Campaign, but the "newer" ones like Diamond Chip etc. are not. even a hard refresh doesnt help.

works now


Request to publish the decentralized Aarogya coin project to blockchain website

https://blockchain.spit.ac.in
for test: https://bct.srikanthk.tech

/init

/help


⚠ Bofrost.be has degraded performance

In 16d074d, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 3561 ms

Resolved: Bofrost.be performance has improved in 0f58599.


fall detection rotation algorithm issues

I am seeing two new potential issues in this loop:

If no poses were detected in the original image at all, the loop would exit without trying roations.
After rotation and detection on a rotated image, the coordinates of pose keypoints are not returned back to the original image coordinate system before being compared with previous frames.

https://github.com/ambianic/ambianic-edge/blob/f5fe48f0d03e511d748d561a57daa66c70edf8e1/src/ambianic/pipeline/ai/fall_detect.py#L80

Fixed by https://github.com/ambianic/ambianic-edge/pull/266


AWS - Deploy React (step by step guide)

The DOCS needs to provide a step by step guide regarding the deployment of a simple React project.
As input, this reference repo needs to be used:
https://github.com/app-generator/deploypro-react
@auliaromadon please take a look.
TY!

Hello, just finished for the docs https://www.docs.deploypro.dev/aws/create-static-app
Some part and capture will be added just like:

Capture from Actions Tab after create an app
Capture for the success deployment --> link just like in the application detail on application menu
and more info about Custom Domain

let me know if you have some consideration :)

Ty @auliaromadon
I will pull the changes and review them.
Keep up the good work.
🚀🚀

@app-generator ready for test

Validated. Closing.


Switch docs to mkdocs

Current Situation
It is difficult for new contributors to modify the docs, due to the current usage of reStructuredText (RST).
Proposed Actions
Convert the current docs from reStructuredText (sphinx) to Markdown (mkdocs).
Also consider using these plugins

https://github.com/jimporter/mike for docs versioning
https://github.com/fralau/mkdocs_macros_plugin for code actions
https://github.com/greenape/mknotebooks or https://github.com/danielfrg/mkdocs-jupyter for embedding jupyter into the page

Related issues

#845
#779
#653
#647
#349

Useful conversation to inform our decision to use mkdocs: https://github.com/encode/httpx/discussions/1220

I created a draft of the new docs structure using mkdocs.
https://github.com/Archmonger/idom-docs
Currently, the only thing that has been developed is the navigation names, and website theme.

pip install -r build-docs.txt
mkdocs serve

Here's the repo I'm temporarily using to host the new docs
https://github.com/Archmonger/idom-docs

Looking at the docs for Textual (a popular terminal UI framework) I found a list of mkdocs extensions we might want to consider using.

mktestdocs also looks interesting.


GH-10166 - Show an error message when the plugin is not compatible

Summary
Displays an error message on the plugins that can't be used because the system does not meet their requirements. It also removes the Enable link when they can't be enabled.
Needs the PR on the server to be merged before this can be merged (otherwise, all the plugins would be deemed "not compatible").
Ticket Link
#10166 - Plugin framework: Show that a plugin requires a certain Mattermost config setting
Related PRs
Server change: Plugin framework: Show that a plugin requires a certain Mattermost config setting
Plugin starter change: Call to CheckRequiredConfig when OnActivate is hit

Closing it based on this comment, leaving the UX changes outside the scope of this work


Benchmarks

Added methods incremental_input_before and incremental_input_in_steps to allow for more dynamic benchmarks execution.

The automated benchmarks may require a small bit of adjusting. Currently 49 single, 27 double and 16 triple benchmarks are run (meaning the iterations/how often objects were added).
Most cases will still result in a timeout, which hopefully will change after the rackDouble bug is fixed.

Addressed mentioned issues, still missing the fix for handling of the timeout.

Still open:

Proper termination of solve thread in interactive._next_solution() (currently iterator is implicitly waiting for termination of solving)
Dynamic parametrizable timeout, hand over time out limit (reduced from iteration to iteration) from interactive.extend_incrementally()
Prevent further iterations in case of timeout

Closed, will be superseded by a declarative definition of benchmarks.


Doctrine documentation advises against quoting identifiers

code in question:
https://github.com/ongr-io/ConnectionsBundle/blob/63948a849c8befb4ddeeb4981da43438e456021a/Sync/StorageManager/MysqlStorageManager.php#L110
https://github.com/ongr-io/ConnectionsBundle/blob/63948a849c8befb4ddeeb4981da43438e456021a/Sync/StorageManager/MysqlStorageManager.php#L212
related discussion:
https://github.com/ongr-io/ConnectionsBundle/pull/81/files#r22380117

No more dynamically quoted statements seems left


Cannot install on Windows

npm-debug_log.txt
{lamb} if not defined npm_config_node_gyp (node "C:\Program Files (x86)\nodejs\node_modules\npm\bin\node-gyp-bin....\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "" rebuild )
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
TRACKER : error TRK0005: Failed to locate: "CL.exe". The system cannot find the file specified.  System Windows_NT 6.1.7601
gyp ERR! command "C:\Program Files (x86)\nodejs\node.exe" "C:\Program Files (x86)\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" "rebuild"
gyp ERR! cwd E:\Documents\Projects\Web Design\boardy\node_modules\node-expat
gyp ERR! node -v v4.2.6
gyp ERR! node-gyp -v v3.3.0
gyp ERR! not ok
npm WARN optional Skipping failed optional dependency /chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture<EMAIL_ADDRESS>npm WARN<EMAIL_ADDRESS>No repository field.
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\Program Files (x86)\nodejs\node.exe" "C:\Program Files (x86)\nodejs\node_modules\npm\bin\npm-cli.js" "install" "bgg"
npm ERR! node v4.2.6
npm ERR! npm  v3.8.1
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script 'node-gyp rebuild'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the node-expat package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs node-expat
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls node-expat
npm ERR! There is likely additional logging output above.

Same here, one of the reason I am really starting to dislike node, to hokey

Has nobody figured out a resolution to this issue? it seems it is still not functioning even after two years. This is kinda ridiculous..

Seems that way. Sad.

I have solved this. If you notice this part of the command  else (node "" rebuild ) what I think is happening is that it is incorrectly evaluating if not defined npm_config_node_gyp as false and trying to run nothing instead of node-gyp. What you need to do is define your npm_config_node_gyp variable. You can do this like so:
export npm_config_node_gyp=<PATH_TO_NODE_GYP_PACKAGE_FOLDER> remember that Windows will need double backslashes. For me, it looked like this:
export npm_config_node_gyp=C:\\Users\\781990\\AppData\\Roaming\\nvm\\v6.11.0\\node_modules\\node-gyp

There is another step after my fix. When executing my code, the expat bindings were missing. To fix it, add the bin folder and node-gyp executable to the npm_config_node_gyp variable and run node-gyp rebuild in the node_modules\node-expat folder. e.g.
export npm_config_node_gyp=C:\\Users\\781990\\AppData\\Roaming\\nvm\\v6.11.0\\node_modules\\node-gyp\\bin\\node-gyp.js
cd node_modules\node-expat
node-gyp rebuild


Use specific page when populating href

This PR addresses an issue with RichText internal links that use a Model inheriting from Page that overrides the url function.
The issue has been reported here too: https://github.com/wagtail/wagtail/issues/3164

Thanks @garykrige! Please can you add tests for this?

@gasman the ci on drone seems to be broken.

The test for the page chooser response looks good, but it looks like we still need one to confirm that links in rich text are rewritten correctly. A version of https://github.com/wagtail/wagtail/blob/eb9cc639d2c8a30911ed1069f41c77eb617cfc2f/wagtail/wagtailcore/tests/test_rich_text.py#L141 where the linked page is an instance of SingleEventPage should do the job. (ping @huubbouma)

Merged in 6aea6a68569d5df002c901c4e1bca0591078c46f via #3494. Thanks @garykrige and @huubbouma!


Fix scrolling in dialog bug

Sometimes when you scroll in a dialog it crashes the app, some investigation needs to happen to find the origin of this behavior.

This seems to be a bug in the Flutter framework rather than zero-flutter


[Op] Add scatter_strided_slice (unselect in LTC)

Description
This PR is to add a new OP to support unselect behavior in LTC. The unselect is used in inplace update of slices. For example, the following Pytorch code
tensor[1:2]._mul(3.0)
will be translated as
%2 = f64[2,4,3] lazy_tensors::select(%1)
%3 = f64[2,4,3] aten::mul(%2, %0)
%4 = f64[7,4,3] lazy_tensors::unselect(%1, %3)

[1:2] is mapped to select (basically strided_slices), which is a view of original tensor, and unselect is the "reverse" of strided_slices. Because LTC IR is immutable, it has to use a "reverse view" to update the original tensor.
This reverse slices doesn't have an exactly corresponding OP in Pytorch and TVM. The behavior of this op is to scatter the src tensor into the target tensor, by specifying the begin position, end position and strides. It is similar to scatter, but scatter uses indices which is inefficient if the slices range is huge. For example, if we slice a tensor from 0 to 10000, it needs to create an index array with length 10000.
Checklist

[x] PR's title starts with a category (e.g. [BUGFIX], [MODEL], [TUTORIAL], [FEATURE], [DOC], etc)
[x] Changes are complete (i.e. I finished coding on this PR)
[x] All changes have test coverage
[x] Code is well-documented

cc @awslabs/raf-reviewer @hgt312 @comaniac @hzfan

Overall LGTM.
btw, should this op have a backward one? Otherwise the model with this op may encounter errors when AutoDiff.

I don't think it is necessary, since usually the inplace update will happen in the optimizer.

Make sense. Thanks for the clarification.

Thanks @zachzzc


Trace Context not propagated in the plugin code that executes Jenkins agents

What feature do you want to see added?
Propage trace context in the calls sent in the Grafana Agent
Upstream changes
No response
Are you interested in contributing this feature?
No response
Notes
https://github.com/jenkinsci/junit-plugin/blob/85201a38881e5811c8632b610d8d655f161db103/src/main/java/hudson/tasks/junit/JUnitParser.java#L122-L134
https://github.com/jenkinsci/jenkins/blob/0d5232fca40a12b2d14f7ded577a90f0cb3c6f06/core/src/main/java/hudson/FilePath.java
    /**
     * Executes some program on the machine that this {@link FilePath} exists,
     * so that one can perform local file operations.
     */
    public <T> T act(final FileCallable<T> callable) throws IOException, InterruptedException {
        return act(callable, callable.getClass().getClassLoader());
    }

    private <T> T act(final FileCallable<T> callable, ClassLoader cl) throws IOException, InterruptedException {
        if (channel != null) {
            // run this on a remote system
            try {
                DelegatingCallable<T, IOException> wrapper = new FileCallableWrapper<>(callable, cl, this);
                for (FileCallableWrapperFactory factory : ExtensionList.lookup(FileCallableWrapperFactory.class)) {
                    wrapper = factory.wrap(wrapper);
                }
                return channel.call(wrapper);
            } catch (TunneledInterruptedException e) {
                throw (InterruptedException) new InterruptedException(e.getMessage()).initCause(e);
            }
        } else {
            // the file is on the local machine.
            return callable.invoke(new File(remote), localChannel);
        }
    }

Fixed in

https://github.com/jenkinsci/opentelemetry-plugin/releases/tag/3.1368.vb_f1dcb_e6595c


#328: Added Java API support for Flow and Route.

Thanks for your pull request.  Please review the following guidelines.

[X] Title includes issue id.
[X] Description of the change added.
[X] Commits are squashed.
[ ] Tests added.
[X] Documentation added/updated.
[X] Also please review CONTRIBUTING.md.

Also restructured the documentation to have a separate page discussing services and simplified the bootstrap documentation to reference the service documentation.

There are still some test coverage gaps. Will need to add a few more tests before merging. But please review the code and docs so far.

The indentation and capitalization issue seems to be looking fine now.  Apparently, there was a rendering issue during my review..

I'm sure there will still be more doc modifications. But from code and test standpoint, I'm all good. Once docs are clear I'll do a final squash before merge.


Beginner question: how does genie connect to a cluster?

I'm trying to understand something around authentication, specifically how genie initiates the conversation with a "cluster" when its time to run a job.
I presume that at the time of job invocation, genie can copy application/job scripts/files to the cluster. It can run optional application installation/setup and issue a "command" from within a directory of a machine in the cluster.
I'm a beginner in genie and EMR, but my experience with workflow tools such as oozie or luigi we might  leverage SSH as a means of caller/worker communication. And that would require credentials and a specific target machine in the cluster. I couldnt find (so far) any related information, anticipating this would be part of the cluster data model. I need to better understand how genie was intended to "talk" to a target cluster or even a specific machine in that cluster possibly, and how to configure a cluster accordingly.
Thank you for what is clearly a wonderfully well-designed architecture.

How genie achieves unified access to data within a job without distinguishing between clusters. According to my understanding, only when the job program does not distinguish between clusters to access data, can genie automatically help users migrate the running cluster of computing tasks, especially when a certain cluster goes offline


Equihash miners

Hi
I am wondering is it possible to configure Equihash miners (nheqminer, Claymore etc) in the Multiminer. I tried but without succes...
Thank you

Only CGMiner forks and miners that implement the CGMiner RPC API are currently supported. PRs welcome though for additional miner support.


Design Survey for Data Analysis/Data Exploration Use Cases

Build a survey that could be given to a series of potential users like:
Consider Government
Planners
Users Use Cases
Open Public
Use Case: How do we explore and present the statistical data in a format that is digestible/usable for them.

@AnnieLa , was there any update on this? Perhaps we can reach out to Powerful Pathways on this?


Added jupyterlab and nodejs to FMX meta package

Looks good to me. This is to run jupyterlab for collection at FMX and enable extensions with nodejs.


feat: added og:image priority for article cover

This PR sets the og:image meta header to the article cover image, if one is set. It overrides the global alpine.head.image configuration which is used as a fallback.
Relates to #111

Before:

After:

Nice! Have you check when the article is 404 that it does not break the app?


Sanitize username and password on SMTP AUTH LOGIN (#5126)

Sanitize username and password on SMTP AUTH LOGIN using strings.ToLower before comparing in switch case
Description
Before compare what from SMTP server we got, it is useful to "sanitize" with ToLower strings function, otherwise we can never intercept "username" and "password" commands.

/ok-to-test

/retest

/retest

/retest


docs: tcp listener on port 12345

PCAP sidecar should be the 1st container to be started; for this to happen all containers should at least depend on the PCAP sidecar.
Cloud Run requires a container to have a startup probe to be marked as a dependency of any other.
PCAP sidecar starts a simple TCP listener that accepts connections on port 12345 and just closes them.
We should document how to configure the startup probe and dependency chain to make the PCAP sidecar start before anything else.

Looking to get a pulse on if gcloud support for healthchecks has made any progress. As it stands it will add a good amount of friction for users that want to incorporate this sidecar.

see: issue #11

This behavior is guarded by the environment variable PCAP_HC_PORT which can be set to any uint16 and uses 12345 by default.
The value of PCAP_HC_PORT is propagated to tcpdumpw flag -hc_port.

Addressed in https://github.com/gchux/cloud-run-tcpdump/commit/21e9c22a6772e9cd6fcbe0cd8272d29a97e64d8e
Tried to keep it as concise as possible. First deploy their service with the sidecar, then update the containers to depend on the sidecar and add a TCP startup probe to the sidecar via the console.
When gcloud support for healthchecks improves we can revisit the README to make it simpler.


added phylogeneticTree object and R script

Feature request. Addition of a phylo class object named phylogeneticTree and the corresponding R script (phylogeneticTree.R). This pull request is related to issue #213.

Hello, @schifferl. I noticed that the edits "removeGCF" and "simplify" (below)  were optional in the getMetaplhanTree function, but I just made the edits directly to the tree in this pull request.
# removeGCF
phylogeneticTree$tip.label <- base::sub("\\|GCF_[0-9]+$", "", phylogeneticTree$tip.label)
# simplify
phylogeneticTree$tip.label <- base::gsub(".+\\|", "", phylogeneticTree$tip.label)


Explainer.expected_value changes after calling shap_values() method

I am using a GBC from sklearn:
from sklearn.ensemble import GradientBoostingClassifier as GBC
In both python2 and python3 environments, the explainer.expected_value changes from a array([-0.07683372], dtype=float32) to a numpy.float64 after calling explainer.shap_values(X).
In python2 environment, it's actual value also changes:
explainer = shap.TreeExplainer(model)
explainer.expected_value
>> array([-0.07683372], dtype=float32)
shap_values = explainer.shap_values(X)
explainer.expected_value
>> -0.32417948156786575

In summary: In both python 2 and python 3 environments, the type of explainer.expected_value changes. In python 2, I also see that its value changes. This of course results in the force_plot output changing as well.
Python 2 environment was installed with conda, I have attached the relevant
environment info here (relevant output of conda list): py2env_shap.txt
python 3 environment was installed with pip. This is the full output of pip list:
py3_requirements_shap.txt
Please let me know if you need more info. I cannot provide the full python 2 environment but I can answer specific questions about it.

Hmmm...the type changing is something I can fix easily. The py2 issue is stranger to me. shap does not support py2 anymore, but I don't want older version to have an issue there either. Do you know which of the before or after is right in the py2 example you saw? I am confused how this would happen since we have a unit test for it (unless you are using a much older version of shap for py2).

I forgot to include the SHAP version for py2!  Here is the corresponding line:
shap                      0.28.5           py27h637b7d7_0    conda-forge
Thank you for the quick response! Could you tell me how to figure out what is the correct value?
shap is explaining the log(odds-ratio) in this case I believe. Here is the code I think I should use to do so (note I am using weights, not sure if that matters here):
params = {'criterion': 'friedman_mse',
 'init': None,
 'learning_rate': 0.1,
 'loss': 'deviance',
 'max_depth': 4,
 'max_features': None,
 'max_leaf_nodes': None,
 'min_impurity_decrease': 0.0,
 'min_impurity_split': None,
 'min_samples_leaf': 1,
 'min_samples_split': 2,
 'min_weight_fraction_leaf': 0.0,
 'n_estimators': 200,
 'presort': 'auto',
 'random_state': 1234,
 'subsample': 1.0,
 'verbose': 0,
 'warm_start': False}

gbc = GBC(**params)
gbc.fit(X, y, weight)
y_hat = gbc.predict_proba(X)
np.mean(scipy.special.logit(y_hat[:, 1]))
>> -3.45306

Is that the correct approach? Neither of the expected values given by shap are close to this manually computed expected value.

It should just be the mean of the margin (which it looks like you are computing). Perhaps another way to check is once you build a TreeExplainer object explainer you can call explainer.model.predict(X) to get the output of the model as loaded by shap. If that does not equal the margin output of the model then is means something didn't get loaded right in py27

np.mean(explainer.model.predict(X)) also returns -3.453.
you are saying that np.mean(explainer.model.predict(X)) == explainer.expected_value right?
This is not the case for me in both py2 and py3 envs. the discrepancy appears in both.

Perhaps this has something to do with using weights?

Ah! I bet that is it. Also you should just take the mean over the rows, not the whole matrix. There is a unit test that should be checking this but it does not have weights: https://github.com/slundberg/shap/blob/9d764e202c82dffc688b097f365c612803d0e933/tests/explainers/test_tree.py#L406-L433

explainer.model.predict(X) returns an array of shape (84827,), so it is just 1 column. What do you mean by "just take the mean over the rows, not the whole matrix" ?
In the code you reference, you set initial_ex_value equal to ex.expected_value, so why would np.abs(initial_ex_value - ex.expected_value) < 1e-6 ever be false?  Perhaps I'm missing something...
Setting aside the issue of explainer.expected_value changing in py2env, I did verify that the discrepancy between explainer.expected_value and np.mean(explainer.model.predict(X)) can be traced to the weights.
from sklearn.ensemble import GradientBoostingClassifier as GBC
import numpy as np
import shap
# using a standard dataset
X,y = shap.datasets.adult()
gbc = GBC()
# weight of +ve examples is 10, weight of -ve is 1
weight = (y + 0)*10 + 1
# if you include weight here, you get discrepancy
# between explainer.expected_value and np.mean(explainer.model.predict(X))
gbc.fit(X, y, weight)
y_hat = gbc.predict_proba(X)
explainer = shap.TreeExplainer(gbc)
print(np.mean(explainer.model.predict(X)))
print(explainer.expected_value)

Using the same approach as above approach in my py2 env, I found that in fact explainer.expected_value is correct only after calling explainer.shap_values(X) first. That is, its original value is incorrect.
At the risk of overexplaining, here's how I checked that:
# using a standard dataset
X,y = shap.datasets.adult()
gbc = GBC()
gbc.fit(X, y)
y_hat = gbc.predict_proba(X)
explainer = shap.TreeExplainer(gbc)
print(np.mean(explainer.model.predict(X)))
print(explainer.expected_value)
>>> -1.9494080760916097
>>> [-0.8011617]
a = explainer.shap_values(X)
explainer.expected_value
>>> -1.9494080794132562

The output shown above indicates that 1.9494 is the correct value, and explainer.expected_value gives an incorrect value of -0.8012 first, only giving the correct value after shap_values(X) is called.
So two issues here:

Possible bug where explainer.expected_value is incorrect first and only becomes correct after calling shap_values(X). This is unrelated to weights.
Possible bug / unintuitive behavior where explainer.expected_value does not incorporate the weights, even though explainer.model.predict(X) obviously does, resulting in a discrepancy.

Ah. For "just take the mean over the rows, not the whole matrix" I was using a multi-class example where that mattered.
"why would np.abs(initial_ex_value - ex.expected_value) < 1e-6 ever be false?" Because we have called ex.shap_value(...) in between when we saved initial_ex_value and run that test.
Yes it looks like there are two issues here.

We must have fixed this somehow since 0.28 and I don't remember it, or otherwise sklearn must be different in the different envs.

This is something that needs investigated/potentially fixed, so I am adding a todo tag for now. I'll fix it if I get a chance, otherwise I am happy to have anyone else dig in as well.

Hi @slundberg, after thinking this over some more I still think there is a discrepancy between explainer.model.predict(X) and explainer.expected_value when weights are used, however, I'm not sure which is right. I am going to test this some more today, focusing on the adult dataset so that what I do is reproducible.

https://stackoverflow.com/questions/77126001/calculation-of-expected-value-in-shap-explanations-of-xgboost-classifier


Documentation for connecting to Kafka brokers using a secure TLS connection?

See "getting started" here and this docstring.
I think SslConfig needs to be added here to show up in readthedocs.

@messense See the SslConfig docs


Sonoff Touch / Tasmota Button Hold

Hi,
I'd would be nice to have support for the Button Hold feature of Tasmota.
If i hold the button on my touch for about 2 seconds, i get an mqtt message "cmnd/hold_TEST-SONOFF/POWER1 = HOLD"
Sadly the sonoff adapter does not recognize this message.
greetings,

That would be great for me, too!

das wäre richtig hilfreich wenn es den Datenpunkten geben würde!

How this HOLD should work?
Will it be sent after the button is released some another value?

That means, we need additional state POWER1_HOLD that could be true and false.
What will come when you release the button?
"cmnd/hold_TEST-SONOFF/POWER1 = UNHOLD" ?

@GermanBluefox I think this issue can be closed. The hold function works with "button_action" as part of multipress function, at one press it displays "single", at 2 presses "double" and on hold "hold". So everything should be fine


Hybrid Points and slots

Hey i was wondering if its possible to add an option to have a single character have both points and spells slots, i made a tweak to the sorcerer class and i was hoping to be able to use it in Foundry but havent found a mod that lets me but yours is very close.

As I only run sorcerers with spell points it could be different for other DMS but i think for it to be modular for others to have everything they might is usualy the best approach.
Some way to set certain levels to use slots instead points since the base of your system is points, could just be a toggle in the players spellbook tab nest to each spell level. Or it could just be an change of the "This character uses Spell Points" toggle have something like: "This character uses Spell Points for Levels: 1 ▢, 2 ▢, 3 ▢, 4 ▢, 5 ▢, 6 ▢, 7 ▢, 8 ▢, 9 ▢."
Alternatively in the module settings area but simplicity dictates the spellbook seems the best option.

This is a blocking issue with warlocks, when pact magic still give spell slots.
It isn't possible for warlocks to cast spell in this case when this module is used. The system allows the caster to choose a pact magic spell slot instead of spell points to cast a spell, but it system still chooses to use spell points of an equivalent spell slot level instead. It fails to cast due to insufficient spell points.

Yea, running Sorcerers as the only class with "Spell Points" while every other class uses slots is a common thing I'm seeing more and more of in people in my own circle asking for when building foundry stuff- no idea if its currently doable tho?

Yea, running Sorcerers as the only class with "Spell Points" while every other class uses slots is a common thing I'm seeing more and more of in people in my own circle asking for when building foundry stuff- no idea if its currently doable tho?

yep it is


Documentation: user of blockchain terminology

I am reading through documentation and do not know much about the project, so if this was discussed somewhere already, sorry, and feel free to just point me to it.
But I think it is a bit confusing that you use term "blockchain" for the chain of blocks scuttlebutt is using. I mean, I agree it is a chain of blocks (or better, hashchain of blocks), but it is not a blockchain like most of the people these days understand it (so hashchain of blocks + consensus protocol to resolve conflicts).
I have seen that sometimes you are using block-chain, which is maybe a bit better, but it is not consistent.
Anyway, I think that the best terminology would be hashchain of blocks, or maybe block hashchain. Or maybe Merkle chain? :-) Because each block can reference other chains as well, maybe a Merkle DAG is suitable as well.
To conclude, I think that for novice user it might look like scuttlebutt provides more, a full forest of blockchain feeds, one blockchain per user, with all the properties they expect from blockchains. From my understanding, this is not true.

I've heard the individual append-only logs referred to as 'sigchains' in the past.
Where in the documentation are you referencing?

https://ssbc.github.io/secure-scuttlebutt/

this is a good point.
There is no consensus algorithm, which is different from "blockchain" (athough "block" doesn't have anything to do with consensus all the things calling themselves "blockchain" happen to have consensus)
git has a "hashchain" which is just a tree of objects that contain the hashes of previous objects.
in git there are no signatures by default, but you can use them - if you forced them on, and rejected any unsigned objects then it would be very close to what we have.
so a "singly linked signature chain" (because you arn't allowed to make a forking tree structure)


Generate managers and POMs for Azure SDK for Java

replay of Azure/autorest#2467

@olydis,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

publish job
> waiting for PR to get merged or closed

publish job
> waiting for PR to get merged or closed

@RikkiGibson oh no that's just our new publish job notifying you that it'll publish one this gets merged. The publish job is polling based so if you open a PR and merge it within 10s, chances are, the publish job hasn't even noticed the PR before it's already gone again... so this message indicates that the PR has been acknowledged.
On the other hand, what is the plan with this PR? :D

I think the plan is to recreate with a new head branch. I have some housekeeping to do related to C#.

AutoRest automatic publish job
> will publish once/if PR gets merged

🤖 AutoRest automatic publish job 🤖
> will publish once PR gets merged

🤖 AutoRest automatic publish job 🤖
> will publish once PR gets merged

🤖 AutoRest automatic publish job 🤖
> will publish once PR gets merged

🤖 AutoRest automatic publish job 🤖
> will publish once PR gets merged


Add a force transfrom meta from v2 to v3

What problem does this PR solve?
Issue Number: ref #3594
Problem Summary:

After user running in mix mode and do the delta merge.
Meta won't be del, and table won't change to the ONLY_V3

What is changed and how it works?

Force transform the meta from V2 to V3 when storagepool restored.

Check List
Tests

[ ] Unit test
[ ] Integration test
[ ] Manual test (add detailed scripts or steps below)
[ ] No code

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

None

/merge

/merge