Assert raises test failure for test_ill_condition_warning

Testing against numpy 1.8.2, I get the following test error for master:
ERROR: test_ill_condition_warning (test_basic.TestSolve)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/venv/local/lib/python2.7/site-packages/scipy/linalg/tests/test_basic.py", line 714, in test_ill_condition_warning
    assert_raises(RuntimeWarning, solve, a, b)
  File "/venv/local/lib/python2.7/site-packages/numpy/testing/utils.py", line 1020, in assert_raises
    return nose.tools.assert_raises(*args,**kwargs)
  File "/usr/lib/python2.7/unittest/case.py", line 475, in assertRaises
    callableObj(*args, **kwargs)
  File "/venv/local/lib/python2.7/site-packages/scipy/linalg/basic.py", line 219, in solve
    raise LinAlgError('Matrix is singular.')
LinAlgError: Matrix is singular.

https://travis-ci.org/MacPython/scipy-wheels/jobs/195612819#L488
Should LinAlgError also be allowed for this case?

Strange. That shouldn't be marked as singular as I've tested in various places, except, of course, OSX variants.

Have you tested with the current numpy 1.8.2 wheel?

You mean numpy 1.12?

No, I meant 1.8.2 - the current scipy minimum dependency.

Ah true, no I have not. Actually I've always built the sources. That is a good reminder for me.
I'm still curious about the reason though. SciPy should be independent from the NumPy versions on this matter as it directly calls ?GESV. Maybe get_lapack_func does something strange.

By the way - the test failures are for Linux 64-bit in Ubuntu trusty containers.  Weirdly, 32-bit passes.  See : https://travis-ci.org/MacPython/scipy-wheels/builds/195612818

Also - is it possible you are not building against OpenBLAS, as I am for the wheel builds?

No, I'm not using OpenBLAS at all. Pretty much off-the-shelf virtual environment with Ubuntu 16.04 installation. Darn, this is indeed a very delicate business, I should try to automate these builds.

Hum - yes - tricky.  The openblas / wheel case will at least be tested in master, because I've set up a daily cron job to build scipy wheels - which is how I found this guy.

I still couldn't replicate this. Could you please comment out that test and run
a = np.range(1, 10).reshape(3, 3)
b = np.ones(3)*15
_, _, _, _, _, _, _, x, rcond, _, _, info = sp.linalg.lapack.dgesvx(a, b)

and check the resulting condition number ? Or if info ==  4? You can try with sgesvx too just to check.

Anything else I can do to help here?

I still have some difficulty getting my virtual environment recognizing OpenBLAS so maybe the easiest way is to change the test to something that would emit a warning in both settings.
Could you please check whether
a = np.array([[1, 1], [1+1e-16, 1-1e-16]])
b = np.ones(2)
sp.linalg.solve(a, b)

emits the warning?
If so I'll modify the test since we only need the warning not the solution precision. Thus, anything goes in this particular case.

The way I got the scipy compile working with openblas, was to unpack https://3f23b170c54c2533c070-1c8a9b3114517dc5fe17b7c3f8c63a43.ssl.cf2.rackcdn.com/openblas-0.2.18-Linux-x86_64.tar.gz into /home/mb312/tmp and compile scipy with the following site.cfg in my scipy root directory:
[openblas]
libraries = openblas
library_dirs = /home/mb312/tmp/usr/local/lib
include_dirs = /home/mb312/tmp/usr/local/include
runtime_library_dirs = /home/mb312/tmp/usr/local/lib

Thanks, I think I did a similar thing but maybe I screwed up somewhere. I hope I can try again this evening again with this config.

This code (from your comment above):
a = np.array([[1, 1], [1+1e-16, 1-1e-16]])
b = np.ones(2)
sp.linalg.solve(a, b)

gives this:
/home/mb312/dev_trees/scipy/scipy/linalg/basic.py:223: RuntimeWarning: scipy.linalg.solve
Ill-conditioned matrix detected. Result is not guaranteed to be accurate.
Reciprocal condition number: 2.77555756156e-17
  ' condition number: {}'.format(rcond), RuntimeWarning)
Out[7]: array([ 1., -0.])

Yes, that was the warning the test was looking for but failed to find due to the singular matrix error.

OK to just go for that change to the test then?

Regardless of whether you can reproduce it, the problem is in raising
LinAlgError for zero pivot. Rounding error can easily make the pivot
eps-size. So you probably need to change the test to  accept that behavior.
.
Of course, the raise-on-zero-pivot behavior is sort of misleading
nonsense, as badly conditioned solutions may be completely wrong in any
case, so not getting a LinAlgError does not guarantee the solution is
sensible. This apparently tends to mislead people, and then cause
surprises when a matrix that is singular in exact arithmetic is
successfulyl inverted. (See the many discussions on numpy issue tracker
on the topic of "numpy inverts a singular matrix?!")
.
Other computation environments (octave, matlab) return a matrix full of
infs if there's a zero pivot + emit a warning.
.
Changing the behavior in numpy/scipy to something more sensible was
discussed, but the backward compat issues are not fully sorted out yet.

@pv Here it is the other way around, when there is ill-conditioning matlab emits a warning and returns something (right or wrong, we use the same solver so no discrepancy here). Whenever LAPACK finds a conditioning number too high it emits the zero-pivot flag and we raise LinalgError so rounding is not done in matlab or scipy highlevel it is decided by LAPACK.
Here I'm just trying to test whether the warning mechanism works or not. Your points are valid but that's the reason we swithced to expert version of DGESV. Apparently, emitting the warning safely is the culprit as BLAS versions make a difference in internal manipulations.

I think the statement that "LAPACK finds a conditioning number too high
it emits the zero-pivot flag" is not correct. The zero-pivot flag is
emitted if the pivot is really exactly zero --- whether this happens
depends on how the rounding error happens to go in the algorithm.
.
Since you cannot control that across platforms, either the test matrix
needs to be less singular, or the test should accept also LinAlgError.

Yes, let me rephrase it as there is no other decision mechanism other than LAPACK's DLAMCH stuff to find an exact zero.
What I meant is that for this particular test, I wanted to test specifically the ill-conditioning warning without the exception. Less singular example apparently is tricky since some other user might come with another example that fails for them too. I guess accepting the exception seems to be the logical choice.
For others here is the relevant issue that was mentioned before https://github.com/numpy/numpy/issues/2074

AFAIK there's actually no DLAMCH in the zero-pivot check --- it's really
a check for zero division in the LAPACK code. cf e.g.
https://github.com/Reference-LAPACK/lapack/blob/master/SRC/dgetrf2.f#L194
.
DLAMCH however does control the condition number check with INFO > n.

That's interesting. There is another explicit check around line 594-ish for setting the matrix being singular after a call to ?GECON http://www.netlib.org/lapack/explore-html/d7/d3b/group__double_g_esolve_ga7091d0af8d314e611bc190d6f515e7ff.html#ga7091d0af8d314e611bc190d6f515e7ff

Any progress here?  I'm hoping to get the scipy daily wheel builds working, and this error is the current blocker.

based on the response you get, I've changed the test to the one that we discussed in the comments. If that also fails, we can fall back to accepting LinAlgError exception


Travel API unavailable

It seems that the API link in the readme is dead, and to get API access you have to be a business 👎

You can get the Skyscanner API through Rapid API
https://rapidapi.com/skyscanner/api/skyscanner-flight-search

that's dead too now
Image Proof

yup agreed

You can use Flights Scraper, which scrapes from SkyScanner

You can use Flights Scraper, which scrapes from SkyScanner

huh, will check it out


attributes_for not giving the full hash of conditions

Hi,
I've been playing around with attributes_for and it seems this doesn't give back the real hash of conditions one can expect.
For instance, I've defined a rule like:
can :manage, [OwnedObject], { owner: { parent_id: @user.id } }

I've been the calling
@user.ability.attributes_for(:index, OwnedObject)

And i get back an empty Hash.
However, if i define the following rule:
can :manage, [OwnedObject], { owner_id: @user.id }

I will get the expected hash.
I think this is due to rule.attributes_from_conditions which is called by attributes_for which adds the rule unless [Array, Range, Hash].include? value.class.
FYI, the reason i would like to use attributes_for is that I'm using the elasticsearch-rails gem as an alternate source of data and i'd like to apply to my searches the same conditions as my models' queries. For that i need the hash of conditions declared in my ability class.
Thanks

@Crystark Thank you for the report.


Code no longer has src/include folder that is mentioned in documentation.

This section of the documentation says:

As mp-units is a C++ header-only library you can simply copy src/include directory to your source tree and use it as regular header files.

However, the source code no longer has a src/include directory. This breaks some older uses of the library when upgrading to the latest version.

Interesting user name 😉
Thanks for reporting!


[Bug Report] Export syntax breaks translating

We've been using next-translate for a while and stumbled upon this issue:
Exporting a page component by export { default } from 'path/to/PageComponent' seems to break the page compilation (next compiles it fine, next-translate probably fails, so it just doesn't get translated).
As soon as I switched to:
import MyPage from 'path/to/PageComponent';
export default MyPage;

it got translated and everything went well.

@developithecus The idea of 2.0 version is to change the regular expressions in a better way. Currently, there are 2 proposals: with Babel parser and with TypeScript compiler.
We need feedback from the people to decide which one corrects more errors and does not generate new ones.
This bug should be fixed with the new version. Can you test these two prereleases and give feedback?
With Babel: 2.0.0-experimental.1
With TypeScript compiler: 2.0.0-experimental.2
You can use this discussion to write your feedback:
https://github.com/aralroca/next-translate/discussions/881
Thank you so much!


About the license

Hi, I'm going to host this lib on cdnjs.
But I found that the license in package.json is different from the document LICENSE.
Which is right?
Please help me figure out this problem.
Thanks!
https://github.com/cdnjs/cdnjs/pull/9617

There ya go.  Let me know if you need me to publish a new npm release with the license update.
Thanks for doing this!

Okay, we will inform you if we need a npm release.
Thanks!


Add vl3 load balancer

Issue: https://github.com/networkservicemesh/deployments-k8s/issues/9210
It is based on CNAT VPP plugin

@denis-tingaikin
Very useful results, thanks!
Fixed, got rid of serialize.Executor


Fix #403 by moving documentation to separate directory to avoid merge conflicts

Additionally, the option to keep content directory during Quartz setup is now gone as it is empty by default.
My experience with Node.js is about 0 minutes, so highly recommend to check if I didn't launch an intercontinental ballistic missile heading towards your codebase )

By the way, I'm 90% sure this will break your deployment of the docs on quartz.jzhao.xyz.

Changed my mind :')


[stable/grafana] Busybox doesn't have a 1.3.0 image, it does have a 1.30 and 1.30.0

@zanhsieh @rtluckie
What this PR does / why we need it:
Grafana fails to startup due to chown container not being available
Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[X] DCO signed
[X] Chart Version bumped
[X] Variables are documented in the README.md

@halkeye this is duplicate of #10411


Include asset Twig function for Symfony 3

Fix next error after update to the Symfony 3:

Unknown "asset" function in twig template

P.S. following v3.0.0-BETA1 release

Thanks @bocharsky-bw.


MNT: rerender

Hi! This is the friendly automated conda-forge-webservice.
I've rerendered the recipe as instructed in #19.
Here's a checklist to do before merging.

[ ] Bump the build number if needed.

Fixes #19

ping @conda-forge/poppler
Do I need to bump the build number?


Integer labels still create annotations with type str

The Image Classifier can take both Integer and String labels, so we should make the Annotation tool support that as well. If I start with an SFrame with only images to annotate, the dtype of the annotations is always assumed to be string.
Keep in mind that integer labels could be negative as well.

fixed with


Support multiple where clauses in Unique validation rules

Description
Winter is currently stripping any where clause after the first one from Unique validation rules. This PR aims to fix the problem.
In Depth
The laravel Unique validation rule supports multiple where clauses. You can use it like so:
Rule::unique('my_table')
    ->where('field_1', 'foo')
    ->where('field_2', 'bar')

When converting to a validation rule string, the output for the above will be:

unique:my_table,NULL,NULL,id,field_1,"foo",field_2,"bar"

However the rule is then passed through Winter's Validation trait where the processValidationUniqueRule method changes the string to the following:

unique:mysql.my_table,NULL,NULL,id,field_1,"foo"

Notice the second where clause is stripped entirely.
The Fix
Simply explode the string to the same length as the list() so all subsequent where clauses are included in the $whereValue variable.
New output is:

unique:mysql.my_table,NULL,NULL,id,field_1,"foo",field_2,"bar"

Thanks @Flynsarmy, great job!


k3s server can't start up using normal user account at v1.20.0+k3s2

Environmental Info:
K3s Version: k3s-v1.20.0+k3s2 version v1.20.0+k3s2 (2ea6b163)

Node(s) CPU architecture, OS, and Version:
SUSE SLES 15 SP2

Cluster Configuration:
1 master

Describe the bug:
The k3s server can't start-up by the normal user with the permission error either passing --rootless or --disable-agent flag.
INFO[0000] Acquiring lock file /var/lib/rancher/k3s/data/.lock
FATA[0000] extracting data: permission denied

Steps To Reproduce:

Installed K3s from GitHub release v1.20.0+k3s2
k3s server --cluster-init --rootless
k3s server --cluster-init --disable-agent

Expected behavior:
The k3s server could startup without the permission error.

Actual behavior:
The k3s server can't startup with the permission error.

Additional context / logs:

Used k3s version v1.20.2-rc1+k3s1 (1d4adb03) for validation.
SUSE SLES 15 SP2
As normal user default home data-dir is set to $HOME/.rancher/k3s. Cluster fails to come up. Created a separate issue to track https://github.com/k3s-io/k3s/issues/2817
ls -a .rancher/k3s/
.  ..  agent  cni  data  etc  kubelet  logs  rootless  server

k3s kubectl get nodes
No resources found

k3s kubectl get pods -A
NAMESPACE     NAME                                      READY   STATUS    RESTARTS   AGE
kube-system   helm-install-traefik-7twzz                0/1     Pending   0          12m
kube-system   local-path-provisioner-7c458769fb-9zx5g   0/1     Pending   0          12m
kube-system   metrics-server-86cbb8457f-6wg67           0/1     Pending   0          12m
kube-system   coredns-854c77959c-rbp48                  0/1     Pending   0          12m
ec2-user@ip-172-31-42-169:~>

Running on Ubuntu 20.04
k3s kubectl get nodes
NAME              STATUS   ROLES                  AGE   VERSION
ip-172-31-25-12   Ready    control-plane,master   18m   v1.20.2-rc1+k3s1

k3s kubectl get pods -A
NAMESPACE     NAME                                      READY   STATUS              RESTARTS   AGE
kube-system   metrics-server-86cbb8457f-vghnf           0/1     ContainerCreating   0          18m
kube-system   local-path-provisioner-7c458769fb-tgnqk   0/1     ContainerCreating   0          18m
kube-system   coredns-854c77959c-7n4bw                  0/1     ContainerCreating   0          18m
kube-system   helm-install-traefik-5rqkq                0/1     ContainerCreating   0          18m

Used k3s version v1.20.2-rc1+k3s1 (1d4adb03) for validation.
SUSE SLES 15 SP2
As normal user default home data-dir is set to $HOME/.rancher/k3s. Cluster fails to come up. Created a separate issue to track https://github.com/k3s-io/k3s/issues/2817
ls -a .rancher/k3s/
.  ..  agent  cni  data  etc  kubelet  logs  rootless  server

k3s kubectl get nodes
No resources found

k3s kubectl get pods -A
NAMESPACE     NAME                                      READY   STATUS    RESTARTS   AGE
kube-system   helm-install-traefik-7twzz                0/1     Pending   0          12m
kube-system   local-path-provisioner-7c458769fb-9zx5g   0/1     Pending   0          12m
kube-system   metrics-server-86cbb8457f-6wg67           0/1     Pending   0          12m
kube-system   coredns-854c77959c-rbp48                  0/1     Pending   0          12m
ec2-user@ip-172-31-42-169:~>

Running on Ubuntu 20.04
k3s kubectl get nodes
NAME              STATUS   ROLES                  AGE   VERSION
ip-172-31-25-12   Ready    control-plane,master   18m   v1.20.2-rc1+k3s1

k3s kubectl get pods -A
NAMESPACE     NAME                                      READY   STATUS              RESTARTS   AGE
kube-system   metrics-server-86cbb8457f-vghnf           0/1     ContainerCreating   0          18m
kube-system   local-path-provisioner-7c458769fb-tgnqk   0/1     ContainerCreating   0          18m
kube-system   coredns-854c77959c-7n4bw                  0/1     ContainerCreating   0          18m
kube-system   helm-install-traefik-5rqkq                0/1     ContainerCreating   0          18m


Implement is_bridge edge metric

Compute is_bridge edge (graph) metric, backed by igraph library.
There is some SQL required to translate back/forth into the format igraph expects (nodes labelled as sequential 1-indexed integers), and this translation table needs materialising so we can translate back.
There is a slight hack in re-using a table hash - we need to register the table produced by igraph, but the splink way doesn't work directly as this table is not produced using SQL, so we borrow the hash from an intermediate table.
If this gets brought in then we can potentially leverage igraph for other metrics in future - e.g. diameter, edge-betweenness

Initial high level testing script

import splink.duckdb.comparison_library as cl
from splink.datasets import splink_datasets
from splink.duckdb.blocking_rule_library import block_on
from splink.duckdb.linker import DuckDBLinker

df = splink_datasets.historical_50k
df = df.head(1000)
settings_dict = {
    "link_type": "dedupe_only",
    "blocking_rules_to_generate_predictions": [
        block_on(["postcode_fake", "first_name"]),
        block_on(["first_name", "surname"]),
        block_on(["dob", "substr(postcode_fake,1,2)"]),
        block_on(["postcode_fake", "substr(dob,1,3)"]),
        block_on(["postcode_fake", "substr(dob,4,5)"]),
    ],
    "comparisons": [
        cl.exact_match(
            "first_name",
            term_frequency_adjustments=True,
        ),
        cl.jaro_winkler_at_thresholds(
            "surname", distance_threshold_or_thresholds=[0.9, 0.8]
        ),
        cl.levenshtein_at_thresholds(
            "postcode_fake", distance_threshold_or_thresholds=[1, 2]
        ),
    ],
    "retain_intermediate_calculation_columns": True,
}

linker = DuckDBLinker(df, settings_dict)

linker.estimate_u_using_random_sampling(target_rows=1e6)

linker.estimate_parameters_using_expectation_maximisation(
    block_on(["first_name", "surname"])
)

linker.estimate_parameters_using_expectation_maximisation(
    block_on(["dob", "substr(postcode_fake, 1,3)"])
)

df_predict = linker.predict()
df_clustered = linker.cluster_pairwise_predictions_at_threshold(df_predict, 0.99)

cm = linker._compute_graph_metrics(
    df_predict, df_clustered, threshold_match_probability=0.95
)
df_em = cm.edges.as_pandas_dataframe()

df_em

linker.query_sql(
    f"""

select * from {df_clustered.physical_name}
where unique_id = 'Q4693039-15'
                 """
)

linker.cluster_studio_dashboard(
    df_predict, df_clustered, "cs.html", cluster_ids=["Q4693039-15"], overwrite=True
)

Was mulling this over at the weekend.  I don't think the following is a blocker to merging this, but wanted to raise it as an idea for future work
When you do:
igraph_df = ig.Graph.DataFrame(df_edges_for_igraph, directed=False)

Presumably that needs to run:

Connected components to find clusters and then
Some algorithm on each cluster to find bridges

Is there an alternative methodology here where we:

Use Splink to get the clusters
Feed each cluster into igraph separately

This methodology potentially feels more scalable, but I have no sense to how much this matters in practice.  I also don't have a sense of whether igraph parallelises (the above is potentially parallelisable because each cluster is an independent chunk of work)
Another aspect to this approach  is that we could potentially do some of the work to prepare the data for igraph using pandas, which may be simpler.

Is there an alternative methodology here where we:
* Use Splink to get the clusters

* Feed each cluster into igraph separately

I think this makes sense - was something I thought about particularly with regards to the possibility of using other clustering algorithms. This method as you say uses connected components (implicitly I think - believe this method uses a depth-first-search of the full graph, which gives you connected components along the way), so if we wanted to cut our clusters a different way, we would anyway need to feed them individually to igraph.

This methodology potentially feels more scalable, but I have no sense to how much this matters in practice. I also don't have a sense of whether igraph parallelises (the above is potentially parallelisable because each cluster is an independent chunk of work)

As far as I know igraph doesn't parallelise computations. Would be interesting to see how it affects performance, though I imagine will introduce some complexity if we are then managing that ourselves in python.

Another aspect to this approach is that we could potentially do some of the work to prepare the data for igraph using pandas, which may be simpler.

I'm not sure if I completely know what sort of thing you mean by this.
Definitely think this seems like a useful approach down the line - would be good to get an idea of what kind of scale this might provide a benefit

Another aspect to this approach is that we could potentially do some of the work to prepare the data for igraph using pandas, which may be simpler.

We have to do quite a bit of fiddling with the IDs to get them in the right format for igraph and then back to 'our' format but if we're working cluster-by-cluster then these computations could be done like:
Step 1:
edges = linker.cluster_pairwise_predictions_at_threshold(df_predict, 0.5, pairwise_formatting=True)

Step 2:
For each group of edges corresponding to a cluster

You could extract that as a pandas dataframe, and do like:
edges_corresponding_to_cluster_as_pandas_dataframe = extract_cluster(cluster_id)
edges_in_correct_format = prepare_for_igraph_using_pandas(edges_corresponding_to_cluster_as_pandas_dataframe)
igraph_df = ig.Graph.DataFrame(edges_in_correct_format, directed=False)
edges_back_in_splink_format(igraph_df)

And the above chunk of code could be parallelised because it's independent for each cluster
(This may not be useful, it just occurred to me that once you're dealing with individual clusters, it's probably not 'big data' any more, and so we don't strictly need to use SQL any more, especially if it's a bit unwieldily)


In place transforms incorrectly change atomic numbers

Describe the bug
Here's the reproducible:
In [7]: rxn = rdChemReactions.ReactionFromSmarts('[n;+0!H0:1]:[a:2]:[a:3]:[c:4]=[N!$(*[O-]),O;+1H0:5]>>[n+1:1]:[*:2]:[*:3]:[*:4]-[*+0:5]')

In [8]: rxn.Initialize()

In [9]: m = Chem.MolFromSmiles('[nH]1ccc(=[N+](C)C)cc1')

In [10]: rxn.RunReactantInPlace(m)
Out[10]: True

In [11]: Chem.MolToSmiles(m)
Out[11]: 'CN(C)*1cc[nH+]cc1'

The dummy atom in the products should result in the atom type being preserved.
Configuration (please complete the following information):

RDKit version: release and master
OS: all

This appears to be fixed in the 2023.09 release cycle


[BOT PR] to update dependencies of istio

This PR will be merged automatically once checks are successful.
none

@istio-testing: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
2dfc9b47f2ed307ca73317f7fd6e4e23c0d47925
link
/test istio-unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


Resolve libsodium performance degradation

PR description
Resolves a major performance degradation in Hash when libsodium is not available.  Previously every hash operation would try to load sodium which involves listing multiple directories to try to find the library and creating and throwing an exception.
Now when sodium is found to be unavailable USE_SODIUM is set to false to avoid repeatedly trying to load it.  Additionally applications can set a system property to completely disable use of libsodium (at least for Teku using it causes immediate OutOfMemoryError).

Not sure why the docs build fail (seems to have run out of memory).  This is a blocker for Teku upgrading - the performance of Hash.sha2_256 is now so bad calculating the hash tree root of a MainNet beacon state takes many minutes.

I'm not particularly wedded to this method of disabling libsodium but definitely don't want to try and use it with Teku since we aren't controlling what version is installed it will make life far too unpredictable.

No worries with docs build. apache has a typo in the method, worth changing that.

Thank you for the contrib, I'll see if I can include in 2.1 if we issue a RC2.


Detailed routing can create tiny loops once in a blue moon

@osamahammad21 any thoughts on the loop?
Originally posted by @maliberty in https://github.com/The-OpenROAD-Project/OpenROAD/discussions/3597#discussioncomment-6398612

@oharboe   Can you post the full environment to regenerate this test case?

@oharboe Can you post the full environment to regenerate this test case?

Follow instructions in link above.

@oharboe yeah but when I do it on master ORFS, I get the following error:

[ERROR PDN-0179] Unable to repair all channels.

@oharboe yeah but when I do it on master ORFS, I get the following error:

[ERROR PDN-0179] Unable to repair all channels.

I see.... I can file a better github issue with commit hashes next time I see it... Otherwise you'll have to go spelunking in older versions of openroad and ORFS to reproduce the case....


[1.19.3 Backport ] Complete all commands build context arguments (like execute command)

Backport of #339 for 1.19.3.

Merging this immediately as #339 was in FCP and full approved before its merge


Hawk 2 Specs

The goal
CRUD one object in secure way and super fast.

Hawk should do only and only one thing and it should do it best.

Known Issues

Startup time is quite long and this creates frictions
Selecting right encryption option is complex, Strong, medium, no encryption etc creates confusion.
Some devices don't have required encryption packages
Serialization/Deserialization problems. Usually object is saved but .get() function returns null.
Performance issues
Singleton

Hawk 2.0

[x] Use only one mode as default. Fast and secure persistency.
[x] Reduce the startup time, therefore users won't need async operation for initialization. Better, find a way to remove init operation.
[x] Reduce the time for the CRUD operations. Async operation should be only used for very big data.
[x] Async utility is up to the client, therefore everything should be sync
[x] Use only one storage provider and keep it pluggable. Currently sqlite and sharedpreferences are both supported but Hawk should not be used for a lot of data already. Most probably only sharedpref will be supported as built-in.
[ ] Hawk.init() should be optional.
[x] Provide pluggable logger abstraction. Implementation should be up to client. Therefore remove LogLevel
[x] Remove chain option.
[x] Provide pluggable storage.
[x] Provide pluggable converter

// Initialization
Hawk.init(context);

// Save any data
Hawk.put(key, T);

// Get the original data
T t = Hawk.get(key);

// Delete
Hawk.delete(key);

// Contains
boolean value = Hawk.contains(key);

// Total count
int count = Hawk.count();

// Delete all entries
Hawk.deleteAll();

// intercept logs
Hawk.init(context).interceptLog(new LogInterceptor(){
   @Override public void onLog(String message){
    }
});

// plug converter
Hawk.init(context).addConverter(new YourCustomConverter());

// plug storage
Hawk.init(context).addStorage(new YourCustomStorage());

To be continued

suggestions:

method isInitialized()

caching

Information: RxJava and usage of Observable.create() or Single.create():
Till now you are using Observable.create(), but there are different known issues. Have a look here:
https://artemzin.com/blog/rxjava-defer-execution-of-function-via-fromcallable/
and http://blog.danlew.net/2015/07/23/deferring-observable-code-until-subscription-in-rxjava/
Please also use Single -> http://reactivex.io/documentation/single.html

@Rainer-Lang I am going to remove Rx support. The goal of hawk 2 is to reduce the scope as much as possible in order to maintain it easily. There are many things actually will be removed as well

@orhanobut Thanks for the information. I think this decision wasn't so easy. ;)
When v2 is out I have to look how to integrate it (RxJava).

@orhanobut Will the data from 1.23 migrate automatically?

@pedronveloso Unfortunately no, I'm thinking an additional migrate tool but most probably it's not gonna happen.

@orhanobut I would ask then if the new Hawk could have a different package, so both the new version and the old one can live in the same project, which should make it easier for the developers to write their own migrations.

@pedronveloso I actually thought about Hawk2 naming but then realized it would be too ugly. But in this case I might change the first option perhaps. HawkDeprecated would be super good convention :)

@orhanobut I've no stronger opinion towards one or the other, but for example Square increments the number of the library retrofit -> retrofit2 , and that seems to be a trend so you might take that into consideration.
I can write a sample migration example for the repo if you'd like, once you've decided the different naming.

@orhanobut Is it in this state of development possible to say something about performance between v1 and v2 (init, write, read)?

@Rainer-Lang I didn't do any benchmark test but new version is faster (especially for init). This is one of the reason that I switched to conceal.

Will it be possible to migrate from Hawk v1 to Hawk v2 in a production app?

@JordyLangen Did you figure something out?

@Rainer-Lang did not had the chance to look into, we never migrated

Since Hawk and Hawk2 have exactly the same package name, it's safe to say migration shall be impossible (since can't run Hawk to retrieve the value and store as Hawk2)?

Closing this one and will fix all other open issues. Thank you all.


Project Purpose

From Allison Amrhein on 12/8/2015
The purpose of this project is to create a seamless electronic method for providers to enter and review laboratory and radiology orders for Veterans, regardless of where they are aligned. The goal of the first phase of the project is to create a functional prototype in a development / test environment. The specific objectives are:

To create a functional prototype and perform user acceptance testing, in the Innovation FTL with the following functionality:
a.      Ability to enter orders for laboratory and radiology testing at the local site for completion at a remote site
b.     Ability to run a report for the local site and remote sites that captures an itemized list of what laboratory tests were completed at another site and for which patients
c.      Ability to exchange patient sensitive information between VA sites in a secure manner in accordance with standard VA regulations for privacy
d.     Ability for locally entered orders to be received and acted upon by the appropriate departments at the remote site
e.      Ability to generate view alert to the ordering provider when the results are available for viewing
f.      Ability for remote sites to contact the ordering provider for critical alerts

To perform user functionality testing in a production environment in Durham, NC and Indianapolis, IN

Moved to GIT HUB Home Page Remote Ordering


bug: 409 error code when run cortex with Tensorrt LLM engine

Describe the bug
When I run model, it cannot finish successfully and when I look at the log from ~/cortex/cortex.log
some requests to pull model return status code 409.
Environment:
Infrastructure: Window machine - Nvidia A40 GPU

closing issue for being vague and nonreproducible


use 'express' instead of 'connect'

Hi
I am trying to replace express inside swagger-tool instead of default connect middleware. In the weather (example) app I am replacing
app = require('connect')() ; with app = require('express')();
All other code remains same .
And initialization of middleware is failing . And its not able to read the controllers/weather.js itself . It gives
Error initializing middleware
I guess
app.use(middleware.swaggerRouter(options));
is designed for 'connect' and needs to be changed for 'express' .
_Raje

My typos sorry for bothering .
A quick update , author can say , connect can be replaced by express here https://github.com/apigee-127/swagger-tools/blob/master/docs/QuickStart.md
and still it works well.

This is what you need to work with express
`'use strict';
import express from 'express'
import swaggerTools from 'swagger-tools';
// The Swagger document (require it, build it programmatically, fetch it from a URL, ...)
import swaggerDoc from '../swagger/swagger.json'
const app = express()
const port = process.env.PORT || 80
// swaggerRouter configuration
var options = {
controllers: ${__dirname}/controllers,
useStubs: process.env.NODE_ENV === 'development' ? true : false // Conditionally turn on stubs (mock mode)
};
// Initialize the Swagger middleware
swaggerTools.initializeMiddleware(swaggerDoc, function (middleware) {
// Interpret Swagger resources and attach metadata to request - must be first in swagger-tools middleware chain
app.use(middleware.swaggerMetadata());
// Validate Swagger requests
app.use(middleware.swaggerValidator());
// Route validated requests to appropriate controller
app.use(middleware.swaggerRouter(options));
// Serve the Swagger documents and Swagger UI
app.use(middleware.swaggerUi());
// Opens a socket and listens for connections only if there is no parent module running the script.
if (!module.parent) {
app.listen(port, () => {
console.log(Server started on port ${port}...)
})
}
});
export default app;`


Update Skip and Take SQL translation

fixes #43952

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


Better handling of Ivy patterns

Should fix https://github.com/alexarchambault/coursier/issues/271 https://github.com/alexarchambault/coursier/issues/282.


Fix GenerateSequenceSchemaTransformProvider formatting

Right now, this is breaking the java precommit because it is causing a spotbugs failure.
Example: https://github.com/apache/beam/actions/runs/7245514035/job/19735677563
From the report:
FS | Format string should use %n rather than \n in org.apache.beam.sdk.providers.GenerateSequenceSchemaTransformProvider.description()

  | Bug type VA_FORMAT_STRING_USES_NEWLINE (click for details)In class org.apache.beam.sdk.providers.GenerateSequenceSchemaTransformProviderIn method org.apache.beam.sdk.providers.GenerateSequenceSchemaTransformProvider.description()Called method String.format(String, Object[])Format string "Outputs a PCollection of Beam Rows, each containing a single INT64 number called "value". The count is produced from the given "start"value and either up to the given "end" or until 2^63 - 1.\nTo produce an unbounded PCollection, simply do not specify an "end" value. Unbounded sequences can specify a "rate" for output elements.\nIn all cases, the sequence of numbers is generated in parallel, so there is no inherent ordering between the generated values"At GenerateSequenceSchemaTransformProvider.java:[line 67]

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI or the workflows README to see a list of phrases to trigger workflows.

R: @Abacn


Make v8 coverage the default, get rid of babel-plugin-istanbul.

Summary
Let's make Jest go vroom. I want to swap out Babel with swc, and as part of that I'm getting rid of babel-plugin-istanbul, the double transformation infrastructure for code coverage, and tons of related code. Jest now exclusively supports v8 code coverage, which has been an option since Jest 25.
This should make Jest ~20-50% faster on initial uncached coverage runs and remove a bunch of third-party dependencies.
Test plan

yarn test
Twitter thread with external data.
Coverage runs with istanbul and v8 on the Jest repo:

Before
After

I just rebased this to pass all the tests.
In general, you are right and we should consider changing defaults first. I thought deeply about proposing this PR as is, here is my perspective:

Maturity: v8 coverage has been stable for a significant amount of time, and been part of four major Jest releases spanning 2.5 years. It should be ready to go and provide signal that's as good or better than Istanbul.
Performance / Technical Debt: There is a significant amount of technical debt in all the code I'm removing going back to work that @aaronabramov and I did on Jest half a decade ago. The instrumentation transform is slow, and makes code run slowly. The instrumentation flag for transformation also means that Jest transforms code with and without coverage, so in the worst case if you are running jest --coverage and jest on a cold cache after each other, you are compiling every file twice.
Alternatives: Honestly, Jest should have never added the instrumentation feature the way it did, but it was convenient and worked reasonably well with the worker infrastructure, especially within Facebook at the time. If people rely on external code coverage, then they should consider wrapping Jest with nyc or similar tooling or stick with Jest 29 until they can upgrade their infrastructure.
Be Bold: As the Jest team, we should be more bold. There is a bunch of stuff in Jest that makes it severely lag behind where it could be. It's time to make moves.

Hi, a random person using jest here. I really love your last point ("Be Bold").
A quick personal note, I'd recommend to link this PR in the changelog.md and also also add a short description why the change has been done since it is not listed in the "Performance" part of the changelog (so you see the 'why' without clicking to this PR).
Maybe something in the lines of "Switch to v8 code coverage by default to increase performance and reduce dependencies. Remove istanbul code coverage transformer.". I'm suggesting this, because some folks might only read the changelog, and not any associated blog posts (if planned), and then start thinking "why did they remove this for no good reason? omg now I have work to do".

I'd recommend to link this PR in the changelog.md and also also add a short description why the change has been done since it is not listed in the "Performance" part of the changelog (so you see the 'why' without clicking to this PR).

It's already listed in the changelog as part of this PR, and I just added the backreference to it, thanks for the reminder. We will of course provide extensive documentation once/if this ships.

I'm pretty sure I removed like 99% of the code. The remaining use of Istanbul's libraries is for coverage reporting, which is used for printing the v8 coverage results.

(See that merge button? Click it.)

I think I still prefer keeping coverageProvider option at least for one more release. While I don't think there have been any bugs reported with the v8 coverage, I assume that's because people don't use it. And instead of people upgrading, seeing numbers they don't like (hopefully report it as it might be a bug) and staying on v29, they can still use 30 and just flip a config option.
Then for Jest 31 remove it.
Thoughts?

If we're sure we want to do this (clean break in v30), then I think we should try out some big repositories using Jest and see how the coverage compares manually and try to fix any regressions (if there are any). Moving to something that's faster but worse isn't necessarily a net win in my eyes.

As an external user of jest, in company I work for we have pretty big repo, with over 4k unit tests, collecting coverage with istanbul was very slow, and switching to v8 was much better.
There was no much difference in coverage, just very minor, we analyzed and concluded that correctness was proper.

@cpojer sure
here are some numbers
v8:
All files
83.64% Statements 57613/68882
84.28% Branches 8187/9714
85.65% Functions 2651/3095
83.64% Lines 57613/68882

istanbul:
All files
81.32% Statements 20761/25528
69% Branches 7272/10538
78.9% Functions 2884/3655
80.59% Lines 18878/23423

And some screenshots for a simple function where you can notice the difference

overall they both show what is uncovered, so for us it is fine and result in all files in sum is similar
but there are discrepancies which are bit unclear. v8 shows hits on comments, istanbul doesn't and some other stuff which can be observed from the screenshots I provided

Summary
Let's make Jest go vroom. I want to swap out Babel with swc, and as part of that I'm getting rid of babel-plugin-istanbul, the double transformation infrastructure for code coverage, and tons of related code. Jest now exclusively supports v8 code coverage, which has been an option since Jest 25.
This should make Jest ~20-50% faster on initial uncached coverage runs and remove a bunch of third-party dependencies.
Test plan

yarn test
Twitter thread with external data.
Coverage runs with istanbul and v8 on the Jest repo:

Before
After

👍``

👍


windows on the use of bash command line mount successfully, but the directory is bash directory not a container directory, will cause the changes do not take effect on the container

Problem description
windows on the use of bash command line mount successfully, but the directory is bash directory is not a container directory, will cause the changes do not take effect on the container
Problem location
You can not use a docker mount similar to git bash on windows

Closing this ticket due to its age, and the impending refactor. If you think this is in error, feel free to reopen. Thanks!


WIP: Issue 36 deploy kubernetes cluster

This branch includes all the files required for kubernetes deployment.
On any update to the master branch, the build stage should run successfully. The deploy stage will fail because we don't have a free cluster
I think I broke some test during merge. Checking what the issue is. Standby

Same. I think we can rectify the code coverage later.


[DOC] Update title and description in README

What changes were proposed in this pull request?
Add "Apache" in the title and improve the description.
Does this PR introduce any user-facing change?
No.
How was this patch tested?
See https://github.com/kaijchen/incubator-uniffle/tree/readme#apache-uniffle-incubating

Codecov Report

Merging #94 (ca77f3c) into master (82d1046) will decrease coverage by 0.88%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master      #94      +/-   ##
============================================
- Coverage     56.33%   55.44%   -0.89%
+ Complexity     1174     1101      -73
============================================
  Files           149      140       -9
  Lines          7977     7607     -370
  Branches        765      735      -30
============================================
- Hits           4494     4218     -276
+ Misses         3241     3155      -86
+ Partials        242      234       -8

Impacted Files
Coverage Δ

...org/apache/uniffle/server/ShuffleFlushManager.java
76.70% <0.00%> (-1.71%)
:arrow_down:

.../apache/uniffle/coordinator/ClientConfManager.java
91.54% <0.00%> (-1.41%)
:arrow_down:

...org/apache/spark/shuffle/writer/AddBlockEvent.java

...pache/spark/shuffle/writer/WriteBufferManager.java

...org/apache/spark/shuffle/RssSparkShuffleUtils.java

...e/spark/shuffle/reader/RssShuffleDataIterator.java

...che/spark/shuffle/writer/BufferManagerOptions.java

.../java/org/apache/spark/shuffle/RssSparkConfig.java

...ava/org/apache/spark/shuffle/RssShuffleHandle.java

.../org/apache/spark/shuffle/writer/WriterBuffer.java

... and 2 more

Help us with your feedback. Take ten seconds to tell us how you rate us.

Thanks @jerqi for the review.


bottom_sheet: Clarify doc about behavior when useSafeArea is false

As discussed at https://github.com/flutter/flutter/pull/122225#issuecomment-1690729628, this is a docs change meant to help people in the absence of a fix for #121752, which is being closed as WONTFIX.
Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I signed the CLA.
[ ] I listed at least one issue that this PR fixes in the description above.
[x] I updated/added relevant documentation (doc comments with ///).
[x] I added new tests to check the change I am making, or this PR is test-exempt.
[x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

@gnprice

Thanks for the review, with those helpful suggestions! Revision pushed, using the text you suggested.

Thanks for the review! Revision pushed, with that bit added back.


Support for external keyboards

I'm not sure if this is actually available in current versions of iOS, but I would really love it if the app can support external bluetooth keyboards.
There is a chance, however, that this could be prohibited or limited by iOS, due to me not being able to properly use Kaiboard with the wireless keyboard as well.
If this is the case, thank you for your time.

Hi @owen-hwlee
There's no way to use external keyboards with third-party keyboard apps, even on iPadOS 15.
It's all up to Apple, nothing we can do.
Thank you for your concern.


add pirozhkoviy skill

Add a skill that once in 12 hours summarizes latest chat messages and tries to come up with an original poem about it.
It will be inspired enough for a poem if it has seen at least 10 text messages (not starting with '/') in last 6 hours.

@C-Pro is it summarizing the whole log? What about /roll noise?

@C-Pro is it summarizing the whole log? What about /roll noise?

(not starting with '/')

I think we should also filter out nyan.

@C-Pro is it summarizing the whole log? What about /roll noise?

(not starting with '/')

I think we should also filter out nyan.

Yep, I'm generally about the same messages from Nyan

@C-Pro could you pls add some info into doc block in Readme? Just to know how to on_ oder off_ the mode


Kerberos Unconstrained Delegation Support

I was wondering whether this library supports Kerberos Unconstrained delegation.
With GSSAPI unconstrained delegate works by requesting a forwardable TGT from the KDC (kinit -f username@REALM.COM). This forwardable ticket can then be delegated to the host by passing in the GSS_C_DELEG_FLAG flag with gss_init_sec_context. There's also the GSS_C_DELEG_POLICY_FLAG which is like GSS_C_DELEG_FLAG but it will instead only delegate if the ok-as-delegate flag is set on the account in AD.
On SSPI it will attempt to get a forwardable ticket when InitializeSecurityContext has been used with the ISC_REQ_DELEGATE flag. This is like the GSS_C_DELEG_FLAG in that it will only get a delegated ticket if the ok-as-delegate flag is set in AD. AFAIK there's no way in SSPI to get a delegate ticket if the account isn't trusted for unconstrained delegation.
What this looks like in practice is that when you authenticate to a host without a delegatable ticket you see the following from klist
Current LogonId is 0:0xb2594

Cached Tickets: (1)

#0>     Client: vagrant-domain @ WSMAN.ENV
        Server: http/test.wsman.env @ WSMAN.ENV
        KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
        Ticket Flags 0xa10000 -> renewable pre_authent name_canonicalize
        Start Time: 11/19/2022 9:08:58 (local)
        End Time:   11/19/2022 19:08:07 (local)
        Renew Time: 0
        Session Key Type: AES-256-CTS-HMAC-SHA1-96
        Cache Flags: 0x8 -> ASC
        Kdc Called:

When you authenticate with a delegatable ticket you see the following
Current LogonId is 0:0xb5caf

Cached Tickets: (1)

#0>     Client: vagrant-domain @ WSMAN.ENV
        Server: http/test.wsman.env @ WSMAN.ENV
        KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
        Ticket Flags 0x60a10000 -> forwardable forwarded renewable pre_authent name_canonicalize
        Start Time: 11/19/2022 9:09:40 (local)
        End Time:   11/19/2022 19:09:35 (local)
        Renew Time: 0
        Session Key Type: AES-256-CTS-HMAC-SHA1-96
        Cache Flags: 0x8 -> ASC
        Kdc Called:

Notice that the forwarded ticket flag is set for a delegated scenario which allows Windows to reuse that Kerberos ticket for any further network hops. Say connecting to an SMB share can now re-use those credentials.
So ultimately my questions are:

Does this library support the ISC_REQ_DELEGATE flag in that it will get a service ticket the remote host can forward as needed
If so, does it do it unilaterally or does it honour the ok-as-delegate setting set on the account in question

ISC_REQ_DELEGATE flag  is not supported

@awakecoding I think I will take 3-4 days


Use cleaner approach to include ModSecurity config

In our quest to enhance maintenability we've identified that extending the Apache configuration is not as straight-forward as it could be.
These changes:

Remove the before/after logging configuration setup (we'll add the appropriate configuration in the CRS Docker image instead)
Apply an in-place replacement (instead of adding another line) for some existing changes in conf/httpd.conf
Add a new conf/extra/httpd-modsecurity.conf file that houses all the necessary configuration just for ModSecurity in a single location

I'm still not 100% happy with:

the absolute path used in the Include /etc/modsecurity.d/include.conf statement (this was probably added for technical reasons, to make the include outside of the Apache conf folder work)
the file name of /etc/modsecurity.d/include.conf as such (it should probably convey "use me to include the ModSecurity configuration from Apache", but the pattern of "include" is broken here)

Improvement suggestions welcome!

Checked the pull request and everything looks good. Added a commit to trigger the workflow on every push to the repository.  The image push step is triggered only on master branch.

Relates to #32.


Should breeding a kitty use checked_add for incremented gen value?

In https://substrate.dev/substrate-collectables-workshop/#/3/breeding-a-kitty the solution uses the following code to set the new kitty's gen value:
            let new_kitty = Kitty {
                ...
                gen: cmp::max(kitty_1.gen, kitty_2.gen) + 1,
            };

Should this logic be using checked_add() instead (concept introduced in chapter 2)?  E.g.:
            let kitty_1 = Self::kitty(kitty_id_1);
            let kitty_2 = Self::kitty(kitty_id_2);

            let new_gen = cmp::max(kitty_1.gen, kitty_2.gen).checked_add(1)
                .ok_or("Overflow when incrementing offspring kitty's generation number.")?;

            ...

            let new_kitty = Kitty {
                ...
                gen: new_gen,
            };

I'm new to Rust and Substrate, so I don't know if this is a special case where checked_add() is not necessary — then this would be an opportunity to reinforce the principle (or explain the special case).

It should be used here too for safety. However, in this case gen can never be greater than the number of kitties in the system. And both gen and total_kitties_count use the same u64 to store the value.
If we introduced kitty deletion, then we may have a problem... either way, doing saturated_add is probably what we want here. Basically it will get to a max value, and not increase anymore.


Avoid update on all key down.

You should update only if anything in the model changes.
https://github.com/matheusgr/modeligado/blob/d2a2b212fcf8bf39ff061e23d7b9766600a5fa85/edit.html#L55-L70

Fixed on 1d9237f3e96d6024f9a1b6a0f99daa289c0d71e6


search_layer and search_zero_layer have code duplication

I was unable to easily solve the code duplication between these two methods. It is possible to do so with generic associated types (GATs), but even when enabling the nightly feature, I was unable to get it to work, as the feature is fairly unstable currently. Once this feature or some other method of implementing this with zero-cost abstractions becomes possible, I will do so. Until then, these two methods will violate the DRY principle.

Fixed in #28


Stream Length property not implemented

Hi
Os Win 7
.Net Framework 4.5.1
Media Devices DLL Version 1.8.0 (Downloaded from NuGet)
I'm trying to copy a large video file from a DSLR camera, and at the same time show a progress bar in WinForms, C#.
I try to use this method
using (Stream srcStream = device.OpenReadFromPersistentUniqueId(mediainfo.PersistentUniqueId)) {
}

However when I try to access the "Length" property of the Stream it throws an exception saying "Not Implemented"
Is this by design?
I can see other methods in the Documentation like DownloadFile, however they read the whole file into the stream and I don't have control to show a progress bar.
I see that "OpenReadFromPersistentUniqueId" is the most suitable since it returns a Stream to the underlying file.
Am I missing something here!
Thanks in advance.

Nevermind, I downloaded the Master from github and found a signed DLL inside it v1.9.0, think you have fixed the issue in this version.
Thanks.


fix(TFD-4103): Use PyUnicode for Jython inputs.

What is the current behavior? (You can also link to an open issue here)
The PythonRow component can fail when there are valid unicode character in the input  (TFD-4103).  Specifically, the JSON encoding/decoding of the string seems to cause errors.
What is the new behavior?
Use the PyUnicode type to pass these records instead of the PyString type, which correctly handles unicode.
Please check if the PR fulfills these requirements

[X] The commit message follows Talend standard
[X] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features) ?
[ ] The code coverage on new code >75%
[ ] The new code does not introduce new technical issues (sonar / eslint)

What kind of change does this PR introduce?

[X] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build / CI related changes
[ ] Other... Please describe:

Does this PR introduce a breaking change?

[ ] Yes
[X] No

If this PR contains a breaking change, please describe the impact and migration path for existing applications: ...
Other information:

Pull request test result: success :star:
Sonar results


Move EIP-3074 to CFI

I would like to move EIP-3074 to the CFI status, for inclusion in a future hard fork. The specification is nearly complete; there's just some bikeshedding on the details.

I've linked it in the "Applied" column based on the discussions we've had on AllCoreDevs :+1:


Let users select their fixture in basic evm test.

A minor change to be able to change the file being tested.

@s1na this is what the new bytecode does:
00000: PUSH1 0x02
00002: PUSH1 0x03
00004: ADD
00005: PUSH1 0x00
00007: SSTORE
00008: PUSH1 0x00
0000a: SLOAD
0000b: PUSH1 0x00
0000d: MSTORE8
0000e: PUSH1 0x01
00010: PUSH1 0x00
00012: RETURN

Does that work for you?


Fix xarray.DataArray keyword args in mask_1.py

The xr_add_cyclic function defined in mask_1.py includes the 'encoding' keyword argument to the xarray.DataArray constructor that was deprecated as of Xarray 0.14 and was removed in 0.15.
I believe the xr_add_cyclic function will eventually go into geocat-viz, so we should make this change there as well.

Since xr_add_cyclic function has gone into geocat-viz (A new PR will introduce it when merged), this PR may be be closed without approval&merge. In either case, a refactor through geocat-examples soon will remove xr_add_cyclic function from mask_1.py.

@erogluorhan I agree that this change will eventually be unnecessary once we move the xr_add_cyclic function to geocat.viz.util.xr_add_cyclic_longitudes.
However, I found that this example was broken when I helped a new user set up their geocat-examples conda environment (with Xarray v0.15) and wanted to add a quick fix to this repo in the meantime. NCAR/GeoCAT-viz#5 will likely be merged soon, but the refactoring PR for geocat-examples that you mentioned may still take some time before being merged.
Alternatively, we could just temporarily pin xarray=0.14 in conda_environment.yml.


Exclude all known exchange lsk addresses from the airdrop

Comparing the excluded wallet addresses to the once from the token migration, the following additional wallets are excluded for the airdrop:
lskbqdbu354hz87mnc7pddk8ywef33jnuqc5odhbp
lskqbhxe6h7ymjkg6h4dq6s88ptm4qh3jke7g4nva
lsk759gxzh3zp2h9otfmbxc7fp66jpbdyjbr7am8k
lskfoh99z4p27jj3xz764vczdaj47nkhqamajpxcp
lskvpm8x6x8vqs5jvff54x392f7vmhfnde92seqo7
lskb428h99jssnq2nqpp6rctwyqfpw4ordozsde9p
lskrvsrdo7m64mh92vvekcv55hk4de93ud4otum8g
lskqbtu9awukj59k9hsxy5tcmvp4h66vjchu9sn5e


Add requirements.txt

Add a requirements.txt for all dependencies
pip install time
pip install pyttsx3
pip install datetime
pip install speechrecognition
pip install wikipedia
pip install webbrowser
pip install random
pip install pyautogui
pip install screen_brightness_control

Can this be merged?

@subhadip-saha-05 Anything else needed here? Any queries?

Are you a part Of SWOC ? If yes, Then please let me know that you have selected my project or not, give me your details.

@subhadip-saha-05  I have no idea what SWOC is, if you need this issue and PR deleted I will do so.

Actually my this project is selected for an Open Source project Contribution Program named SWOC.  I'll accept and merge that later for sure


Sort by column

Sort a GPU data frame by one or more columns.

This is supported by https://github.com/gpuopenanalytics/libgdf/pull/24.
Closing


DOC: Updated style documentation to reflect current code.

Introduction demo now runs with direct copy-and-paste.
Updated warning to stacklevel=2.
Closes #266

Fixed in release v0.8.7 circa Aug 18 2018.


'SearchState' object has no attribute 'trained_estimator'

Hi @sonichi:
When running the latest version of FLAML (0.6.2) on an azure VM via reticulate, I got the following error:

automl._search_states['MonoLightGBM'].trained_estimator
AttributeError: 'SearchState' object has no attribute 'trained_estimator'

As a result, automl.best_model_for_estimator('MonoLightGBM') returned an empty object.
However, this learner has been searched thoroughly by FLAML:

automl._search_states['MonoLightGBM'].total_iter
199

Any idea on why I got this error? It did not happen with older versions
Thank you.

Please pass "keep_search_state=True" to AutoML.fit()? Otherwise, the big objects in search states are cleared after fit finished for saving memory.

Got it. Thank you!


Added support for dotted array syntax in Blade

What?
This PR proposes a fresh new Blade syntax for accessing items inside a multi-dimensional array using dot notation. Similar to how array_get and friends work.
How?
Although regex is involved, it's really quite simple.
The dot syntax gets compiled into regular PHP syntax. The way it's set up makes it fairly flexible. You may even use dots alongside the PHP syntax. All of the following examples are valid:

{{ $foo.bar }}
{{ $foo.bar.baz }}
{{ $foo['bar'].baz }}
{{ $foo[$variable].baz }}
{{ $foo.bar.0 }}

... you get the idea.
Backwards Compatibility
The new syntax will only break code that concatenates a variable with either an integer or a global constant, where the period is not separated by any whitespace.
<?php

define('BAR', 'baz');

// The following will be compiled into $foo['bar']
{{ $foo.BAR }}

// For concatenation, simply add some space:
{{ $foo . BAR }}

Why?
Because I personally, and all of my coworkers (and probably most web developers in general), quite like clean templates, and the messy square-bracket-and-quotes-on-both-sides-of-the-index PHP syntax for accessing arrays does not exactly help with keeping templates clean.
Allright, so you'll probably tell me to inject objects into my templates and use the arrow syntax ($obj->foo), and yes, in many cases that's probably a good idea, but there are still many cases where using an array is totally valid.
Example
Current:
@foreach ($items as $item)

{{ $item['title'] }}

{{ $item['description'] }}

@endforeach

The proposed syntax:
@foreach ($items as $item)

{{ $item.title }}

{{ $item.description }}

@endforeach

Do you like the idea? Can the implementation be improved? Or is the whole thing just terrible? Either way I'd love feedback! 🎈

I don't think it's terrible... but it creates inconsistencies in Blade that I don't like and that would be strange.
For instance you support it in echos but not something like:
@foreach ($servers.sites as $site) {}

I would prefer to just stick with regular PHP.

Hi @taylorotwell!
This PR works with echoes as well as directive expressions (including custom directives.) I guess I forgot to demo it in the examples above. But anyway, that means your example would work just fine. It would be compiled into @foreach ($servers['sites'] as $site)
Is that the inconsistency you were aiming for or am I missing something? 😵


[Comment] Treesitter queries

Firstly, congrats on the theme, it's beautiful and I've been a big fan of the original.
I created onedarkpro.nvim and implemented some custom Treesitter queries very similar to yourself.
Just wanted to offer some advice; it's been very helpful for me to prefix my custom queries with "@odp" like I've done here. It makes it super easy for people to understand the origin of where the query has come from when they run :Inspect. It also stops any collisions between your theme and any other themes that are installed.

Hi @olimorris, thanks so much! This is actually a great idea, I think the amount of custom queries I have are still pretty manageable so I'll explore this change in the upcoming days.


Package Requested

[ ] I would like someone else to build the manifest.
[ ] I would like help so I can submit the manifest.
[ ] I have performed a search and couldn't find this package.
[ ] I have checked that the installer for this package is not a standalone or portable executable or a .zip file
[X] I think there is a new version available and I have provided the URL.

Please provide the following information
Publisher: WatchGuard Technologies
Publisher Url: https://www.watchguard.com
Package Name: WatchGuardSystemManager
Description: WatchGuard System Management Software to Manage Firebox products from WatchGuard Technologies
Package Version: 12.7.2
Installer URL: https://cdn.watchguard.com/SoftwareCenter/Files/WSM/12_7_2/WSM12_7_2.exe
Current Package Identifier (for new versions):

There's an issue with the existing listing on winget and it's frustrating to have to always cancel the installation during a winget upgrade --all because of the package being outdated/incomplete.  Can someone assist with publishing the new version?  I would like to know how to do this myself, but am not very technical when it comes to manifest or any GitHub publications.
Thanks.

Can someone assist with publishing the new version?

I've submitted a PR for this

I would like to know how to do this myself, but am not very technical when it comes to manifest or any GitHub publications.

For a beginner, you can take a look over at the Wingetcreate application, but I'm not super experienced with it and I personally don't like the way it is structured. I use the YamlCreate script. The documentation for YamlCreate walks through how to create a fork of this repository and how to clone it to your computer, as well as the additional tools like the github cli that will allow the script to automatically submit the PR's for you

@Trenly I ended up using the wingetcreate app and it seemed to have worked, which is good.  I am not sure about all of the checks and things that happen in the back end though, is everything being processed correctly, or is there additional steps I must do to get this to publish?

@Trenly I ended up using the wingetcreate app and it seemed to have worked, which is good. I am not sure about all of the checks and things that happen in the back end though, is everything being processed correctly, or is there additional steps I must do to get this to publish?

It looks like its in processing


Can't pass test cases

hello, does anyone know why these test cases are failing?

it can't find your Fraction::mul

perhaps you could check the method header (spelling of method name, parameter types, etc.)?

I've checked those but the error message is still there... Does the return type of mul matter because I set it as Object instead of Fraction

the return type of your mul, like other operations, should be Fraction! otherwise if you chain operations then it wouldn't work

ohh i see! thank you!!

Hi, yea I think it does matter, it should return a type Fraction
Hope this helps

you should return fraction! you can run in jshell to test before uploading to cc to ensure it works for the public cases too

yea you need to return the data type Fraction because Object type doesn't have mul() method.


Task deletion

Hi,
I am testing out the platform and creating/deleting benchmarks. This results in a lot of unassigned tasks which I have to delete one by one.  To avoid cluttering the platform an idea could be to allow users to automatically delete tasks when deleting a benchmark. Or adding a "delete unused tasks" button on the tasks tab. What do you think? I'll try to propose a PR for the latter.

Hi @lbeziaud, yes this is a great remark. It could take the form of a yes/no box when deleting a benchmark saying something like "Do you want to delete all tasks associated only to this benchmark?".
Having a button to delete all orphan tasks would be a great addition too.

I close this issue to keep track of this in the "Storage and clean up" issue.


The library should require location services to be enabled to scan BLE devices only when absolutely needed

Summary
Since Android 6.0 it is required to hold ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permissions to scan BLE devices but there is no requirement to enable Location Services.
The docs don't mention a requirement for Location Services to be turned on, only the requirement for ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permissions.
I have created a couple of BLE scanners without using any libraries, and have also been using Android Beacon Library (and have also contributed to it) for lots of projects in my company, and have never required Location Services to be enabled for scanning to work.
Actual result
The library throws an exception when calling scanBleDevices if the Location Services are not enabled.
Expected result
The library should only require ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permissions. The Location Services don't have to be turned on for the scanning to work properly.

Hey,
thanks for the report. Did you check https://code.google.com/p/android/issues/detail?id=189090?
If that's true what you say, could you provide a pull request with this one changed, still with scanning working as expected? Thanks.

I have read through the issue in the link you provided and it seems this doesn't affect all Android devices or Android versions. I think the library should not explicitly require the Location Services to be on for all Android versions and devices, because the majority of the devices will scan normally without Location Services being turned on. I have tested BLE scanning on dozens of devices and have never encountered one that requires Location Services to be on to enable scanning.
I currently don't have the time to do a pull request but it's a matter of removing one else if expression in the RxBleClientImpl.scanBleDevices method:
else if (checkIfLocationAccessIsEnabledIfRequired()) {
    return Observable.error(new BleScanException(BleScanException.LOCATION_SERVICES_DISABLED));
}

Hello @mfatiga
First of all I want to thank you for your report.
Unfortunately some devices require location to be on and some do not. Unless it is possible to determine from the code if a specific device needs to have location turned on it will be a lot of burden to maintain a blacklist of devices that need it. Plus we will have a whole new set of issues about RxAndroidBle scan is not working. For now we plan to stick with the requirement for the location as we also do have different things on our plates. However - if you will have more time - you're welcome to dig into the topic and propose a solution.
Kind Regards

@mfatiga Could you share how have you tested the need of having Location Services being turned on? According to the topic that @uKL has mentioned - if you have tested with an app that was build for target SDK <=22 then it is possible that none of the devices needed the Services to be turned on.

@dariuszseweryn I have been building all of the apps with target SDK 23 or greater, and none of the apps I work on currently require location so the location services are turned off on all of my test devices.
Daily test devices (the apps are tested on those devices on a daily basis):
LG G4 - Android 6.0
Samsung Galaxy S5 neo - Android 6.0.1
Samsung Galaxy S6 - Android 6.0.1
Samsung Galaxy Tab A (7.0'') - Android 5.1.1
Samsung Galaxy Tab 10.1'' - Android 6.0
Huawei CAM-L21 - Android 6.0
Me and my coworkers have also tested the apps on our personal devices and on many other devices from app users.

I am building an app with SDK 25 and tested it with Location Services turned OFF:

Huawei ALE-L21, Android 6.0 - OK
Samsung SM-G900F, Android 6.0.1 - OK
Motorola Nexus 6, Android 7.0 - Not OK
LGE Nexus 5X, Android 7.0 - Not OK
So far it seems that the Nexus line needs to have Location Services turned ON. Though it may not be the only case. Unless it is somehow possible to determine wether that is needed during the runtime - I will not make the restriction more loose. I only plan to push a check wether the app was built for SDK <=22 - then in compatibility mode - the system doesn't require Location Services to be ON even on Nexus devices.
If you will have a moment - feel free to search wether runtime check for Location Services requirement is possible.

@mfatiga As it is not possible to currently distinguish at runtime which devices need Location Services to being turned on - I am closing. I could only add a check for the devices SDK and build SDK of the library - which I did.
If the situation will change - feel free to reopen.
Best Regards

Thank you for all the effort!

Hi,  I just came across the same issue. Very few devices require location to be turned on for BLE callbacks and most of them are runs on Android Oreo.

I have added an option to ScanSettings to disable Location Services check. You can try it out by using 1.9.0-SNAPSHOT version (see snapshots section of readme)


"AcceptLanguageHeaderRequestCultureProvider" returned the following unsupported UI Cultures '["en-US", "en", "nl"]'.

We see the following a lot in Datadog:
{
	"id": "AQAAAWyE6bsKv4W3OQAAAABBV3lFNmNQZ2xSRU9pd1oxSGhKVA",
	"content": {
		"timestamp": "2019-08-12T08:20:06.026Z",
		"tags": [
			"application:addressregistry_-_projector_api",
			"container_id:replace_containerid",
			"forwarder_version:1.2.3",
			"forwardername:logging",
			"memorysize:1024",
			"source:cloudwatch",
			"sourcecategory:aws",
			"trace_id:1795956815"
		],
		"host": "ip-x-x-x-x",
		"service": "cloudwatch",
		"message": "\"AcceptLanguageHeaderRequestCultureProvider\" returned the following unsupported UI Cultures '[\"en-US\", \"en\", \"nl\"]'.",
		"attributes": {
			"http": {
				"url_details": {
					"path": "/v1/projections"
				},
				"request_id": "0HLOSRR4UFB3M:00000001"
			},
			"aws": {
				"awslogs": {
					"logGroup": "/ecs/task/basisregisters-production-address-registry",
					"owner": "x",
					"logStream": "ecs/basisregisters-production-address-registry-projections/x-x-x-x-x"
				},
				"invoked_function_arn": "arn:aws:lambda:eu-west-1:x:function:logging",
				"function_version": "$LATEST"
			},
			"RequestPath": "/v1/projections",
			"requestCultureProvider": "AcceptLanguageHeaderRequestCultureProvider",
			"RequestId": "0HLOSRR4UFB3M:00000001",
			"EnvironmentUserName": null,
			"logger": {
				"thread_name": 68,
				"name": "Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware"
			},
			"@i": "31a7522c",
			"@l": "Warning",
			"SourceContext": "Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware",
			"ConnectionId": "0HLOSRR4UFB3M",
			"@t": "2019-08-12T08:20:06.0258496Z",
			"MachineName": "ip-x-x-x-x",
			"ContainerId": "x",
			"ThreadId": 68,
			"service": "cloudwatch",
			"uiCultures": [
				"en-US",
				"en",
				"nl"
			],
			"EventId": {
				"Id": 2
			},
			"id": "34914002215713437097380264361448918040917967102631804929",
			"CorrelationId": null,
			"Application": "AddressRegistry - Projector API",
			"timestamp":<PHONE_NUMBER>026
		}
	}
}

This is raised as a Warning: "AcceptLanguageHeaderRequestCultureProvider" returned the following unsupported UI Cultures '["en-US", "en", "nl"]'.
Can we look into why this happens and fix it so it does not polute our logs?

Will be fixed when moving to 3.x: https://github.com/aspnet/AspNetCore/pull/12153/files


Need a nudge in the right direction!

I am pretty experienced with Rust, but I have no idea how to use this, although I think if someone could just tell me how to set it up I would be golden. This seems like the exact thing I need for the job, but I can't get past the nomenclature.
I'm working on a tool that produces a GIF with @kornelski's most excellent Gifski tool. The problem is finding the right parameters in order to get as close to 15 MB without going over.
Variables:

GIF encoder (these parameters can change)

Quality level
FPS
Output dimensions

Video clip (these parameters can't change)

Length
Dimensions

Output (what I'm trying to optimize for):

File size

I may also use butteraugli metrics as extra data points to feed in. Was surprisingly easy to compile given their recommendation to give Bazel another try (I'll pass).
Anyways, where should I start with argmin on a problem like this?  Right now I've been doing alchemy by changing weights and biases for things and tweaking formulas on my own and I would definitely prefer a more general solution. I'll keep re-reading the docs and hope I have an epiphany just in case I don't hear back ;)
Also also...thanks for the hard work to all involved! Seems like a great project, just wish I knew how to wrap my head around it, haha!

I think your best option is using the SimulatedAnnealing solver, therefore I would suggest following the corresponding example. Setting up the solver and running it should (hopefully) be easy to understand, but I can imagine that defining the optimization problem might be a bit of a challenge. I will try to give you a basic idea of how to do this with argmin. It won't all be proper Rust, but I hope you'll get the gist :)
First you need to set up a struct for your problem which will hold the static parameters:
struct GifThing {
    length: u64,
    dimensions: u64,
    // this is the filesize you want to achieve
    target_filesize: f64,
    /// lower bound for your parameters, if needed (if, say, parameters should be larger than 0)
    lower_bound: Vec<f64>,
    /// upper bound, if needed
    upper_bound: Vec<f64>,
    /// Random number generator. We use a `Arc<Mutex<_>>` here because `ArgminOperator` requires
    /// `self` to be passed as an immutable reference. This gives us thread safe interior
    /// mutability.
    /// This is needed for the `modify` method of `ArgminOp`. (Essentially Simulated Annealing randomly perturbs the parameters to produce new potential solutions/parameter vectors)
    rng: Arc<Mutex<XorShiftRng>>,
}

Then you need to implement the ArgminOp trait for it, in particular the apply method (this is the cost function) and modify, which will be used by Simulated Annealing to create new potential solutions:
impl ArgminOp for GifThing {
    // This type indicates your parameters. I will assume here that they are all `f64`, but you should also be able to define a tuple if your parameters are of different types.
    type Param = Vec<f64>;
    // This will be the output type of your cost function (file size, or, more accurately, the difference to the desired file size)
    type Output = f64;
    // ignore this
    type Hessian = ();
    // ignore this
    type Jacobian = ();
    // Essentially the precision of the computations
    type Float = f64;

    /// Cost function
    fn apply(&self, param: &Param) -> Result<Output, Error> {
        // This is the cost function, where you take your parameters and compute the file size
        let quality_level = param[0];
        let fps = param[1];
        let output_dimensions = param[2];
        // now compute the difference to the target filesize, which we want to minimize
        // Note that this will get you close to 15MB, but it might actually be slightly above it.
        Ok((compute_filesize(quality_level, fps, output_dimensions, self.length, self.dimensions) - self.target_filesize).abs())
    }

    /// This function is called by the annealing function and will modify the parameter vectors.
    /// temp is the degree of modification, this will be passed by the Simulated Annealing solver.
    fn modify(&self, param: &Param, temp: f64) -> Result<Param, Error> {
        let mut param_n = param.clone();
        // Perform modifications to a degree proportional to the current temperature `temp`.
        for _ in 0..(temp.floor() as u64 + 1) {
            // Compute random index of the parameter vector using the supplied random number
            // generator.
            let mut rng = self.rng.lock().unwrap();
            let idx = (*rng).gen_range(0..param.len());

            // Compute random number in [0.1, 0.1].
            let val = 0.1 * (*rng).gen_range(-1.0..1.0);

            // modify previous parameter value at random position `idx` by `val`
            param_n[idx] += val;
            // force values to be within bounds
            param_n[idx].clamp(self.lower_bound[idx], self.upper_bound[idx]);
        }
        Ok(param_n)
    }
}

This will try to find parameters which will produce a file with a size close to 15MB, but potentially also above it.
Does this help? Don't hesitate to get in touch if there is something still unclear. :) I haven't tried the code above, so it is probably full of bugs, but I hope it is still understandable :)

Thanks for the fast response!
Still a couple things I'm not getting. Also haven't tried it yet, but I want to fully understand it before I actually use it with my code. Something tells me you know what you're doing from remembering to deref that mutex_guard off the top of your head, I never remember that. ;)
I'm not sure I understand what's going on with the apply function. When does it get called, and by whom? Is the return value actually used?
Also, how do my actual parameters get into the param variables getting passed to the functions?
I'm also not getting why in the example, they call the cost function something different:
https://github.com/argmin-rs/argmin/blob/v0.4.7/examples/simulatedannealing.rs#L98-L99
Also is there any reason you chose the simulated annealing approach over anything else? Just wondering.
Thanks again for the help, seriously appreciate it.

I apologize, I probably misjudged the level at which the misunderstandings arose. I will try to answer your questions, but in a different order, I hope this is ok.

Also is there any reason you chose the simulated annealing approach over anything else? Just wondering.

From the description of your problem, I assumed that you don't know anything about the properties of your cost function over the domain of feasible parameter sets (such as convexity, smoothness, ...). Therefore I suggested SA, because it is a stochastic metaheuristic which can deal with such situations. Another option in argmin would be particle swarm optimization (PSO).

I'm also not getting why in the example, they call the cost function something different:
https://github.com/argmin-rs/argmin/blob/v0.4.7/examples/simulatedannealing.rs#L98-L99

The example tries to find the minimum value of the Rosenbrock function, which is a common test function in optimization. Since you're trying to find the minimum of a different problem, I renamed it to GifThing in the example above and adapted its implementation.

I'm not sure I understand what's going on with the apply function. When does it get called, and by whom? Is the return value actually used?
Also, how do my actual parameters get into the param variables getting passed to the functions?

Once you have implemented the ArgminOp trait for your problem, you need to pass it to an Executor, together with the desired solver:
// Create an instance of your problem
let problem = GifThing::new(whatever_your_constructor_needs);

// create new SA solver with some parameters (see docs for details)
// This essentially just prepares the SA solver. It is not run yet, nor does it know anything about the problem it is about to solve.
let solver = SimulatedAnnealing::new(temp)?
    .temp_func(SATempFunc::Boltzmann)
    .stall_best(1000)
    .stall_accepted(1000)
    .reannealing_fixed(1000)
    .reannealing_accepted(500)
    .reannealing_best(800);

// Create and run the executor, which will apply the solver to the problem, given a starting point (`init_param`)
let res = Executor::new(problem, solver, init_param)
    .max_iters(10_000)
    .target_cost(0.0)
    .run()?;

(Note: In the SA example, problem is called operator. I tend to name them operator, because they are applied to parameters in order to obtain the cost function values.)
The apply and modify methods ensure that the solver has the required methods available. The solver will use apply to compute the cost function when it needs to, and it will call modify when it needs to compute a new potential solution (= parameter set), based on an existing one. You do not need to call these functions yourself, you're merely providing them for the solver. The executor will pass the initial parameter guess to the solver. Finally the Executor will return the best parameter vector which should produce a GIF with file size close to 15MB.

Something tells me you know what you're doing from remembering to deref that mutex_guard off the top of your head, I never remember that. ;)

This is actually just a minor implementation detail. The Arc<Mutex<XorShiftRng>> is just a random number generator that is needed in the modify function and is therefore carried around in the struct. Of course this needs to be initialized properly in the constructor as you can see in the example. If you are working with the master branch you can also switch to a different random number generator as of today (#139) thanks to @TheIronBorn .

Closing due to inactivity. Feel free to reopen if needed.


file-loader combined with bundle-loader or require.ensure ends up skipping the file.

sample.js

require.ensure([], function(require) {  require("./app"); });

config

loaders: [{                     test: /\.js[x]?$/i,                     loader: "file?name=js/[hash].js!babel",                     exclude: /node_modules/                 },
Now this ends up skipping the parsing of the ./app which, in this scenario will be the main file, and outputs the bundle with sample.js file as is.

Do you still have this issue? A lot of time has passed ;).

@SpaceK33z, I suppose. But as you said, a long time has passed :) .. Around that time, I abstracted out things out to use custom codepaths to handle what I needed. I am not sure if this issue still valid with webpack 2.

All right. I'm closing this issue since it doesn't seem like an issue we can fix in file-loader (if it's even still there), and nobody else seems to have it. Feel free to re-open with more information if you happen to get it.

Fair enough :)


add font rendering options

On low resolution LCD, with the right font type and the hinting method, there is a better looking result if antialiasing is disabled. With retina display, this is not an issue, but not all kivy users have retina.
Kivy is hardwired to enable antialiasing because it always calls TTF_RenderUTF8_Blended.
With this change Kivy could optionally call the TTF_RenderUTF8_Solid (which does not use antialiasing).
Beside that the change allows setting the hinting level.
Additional info:
http://www.sdltutorials.com/sdl-ttf
Further thinking: Maybe kivy should automatically detect if display is low res and font type is such, and switch between antialising enabled/disabled automatically? For simplicity it is better just leave control to the programmer.

Nice features. :+1:
I have a minor reservation about the hinting api though, could you make it an OptionProperty?
https://kivy.org/docs/api-kivy.properties.html#kivy.properties.OptionProperty
The options could be: None, 'mono', 'light', 'normal'.
The new api endpoints will also need a bit of docs, please follow this as a template:
https://github.com/udiboy1209/kivy/blob/styling/kivy/uix/label.py#L641.
Also add a note to them about sdl2, like this:
https://github.com/kivy/kivy/blob/4e429deb8864e3450cb71cd670cd00d1516d2799/kivy/core/window/__init__.py#L837.

Shortly I will correct the issues, you have noticed.
I am glad, not only I think; this feature would be nice to add.

Thanks a lot for your work. Yes, absolutely, we intend to merge it. :wink:

Since you're still making fixes, it may be nice if you explain in the docs what kerning, hinting and blending do. Since I for one don't know what hinting or blending does. It should just be a short one or two sentences.

I have also created some demo of the new feature: https://github.com/ali65/potplex
It would be nice to add this demo somehow to kivy examples. Any suggestions?

Demo here:
from kivy.app import App
from kivy.uix.button import Button
from kivy import __version__ as kivy_version
from kivy.uix.boxlayout import BoxLayout
import os

#font_name = "/usr/share/fonts/truetype/msttcorefonts/arial.ttf"
# font_name = "/usr/share/fonts/truetype/msttcorefonts/Verdana.ttf"
# font_name = "/usr/share/fonts/truetype/roboto/Roboto-Regular.ttf"
font_name = "/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf"
fname = os.path.basename(font_name)
fsize = '13pt'

class TestApp(App):
    def build(self):
        layout = BoxLayout(orientation='vertical')
        layout.add_widget(
            Button(
                text="kivy_version: {}".format(kivy_version),
                background_normal='',
                color=[0, 0, 0, 1],
                font_name=font_name,
                font_size=fsize,
                font_hinting='normal',
                font_blended=False,
                )
            )
        layout.add_widget(
            Button(
                text="Kerning On: AV",
                background_normal='',
                color=[0, 0, 0, 1],
                font_name=font_name,
                font_size=fsize,
                font_hinting='normal',
                font_kerning=True,
                font_blended=False,
                )
            )
        layout.add_widget(
            Button(
                text="Kerning Off: AV",
                background_normal='',
                color=[0, 0, 0, 1],
                font_name=font_name,
                font_size=fsize,
                font_hinting='normal',
                font_kerning=False,
                font_blended=False,
                )
            )
        layout.add_widget(
            Button(
                text=fname + ' solid none',
                background_normal='',
                color=[0, 0, 0, 1],
                font_name=font_name,
                font_size=fsize,
                font_hinting='none',
                font_blended=False,
                )
            )
        layout.add_widget(
            Button(
                text=fname + ' solid light',
                background_normal='',
                color=[0, 0, 0, 1],
                font_name=font_name,
                font_size=fsize,
                font_hinting='light',
                font_blended=False,
                )
            )
        layout.add_widget(
            Button(
                text=fname + ' solid normal',
                background_normal='',
                color=[0, 0, 0, 1],
                font_name=font_name,
                font_size=fsize,
                font_hinting='normal',
                font_blended=False,
                )
            )
        layout.add_widget(
            Button(
                text=fname + ' solid mono',
                background_normal='',
                color=[0, 0, 0, 1],
                font_name=font_name,
                font_size=fsize,
                font_hinting='mono',
                font_blended=False,
                )
            )
        layout.add_widget(
            Button(
                text=fname + ' blended none',
                background_normal='',
                color=[0, 0, 0, 1],
                font_name=font_name,
                font_size=fsize,
                font_hinting='none',
                font_blended=True,
                )
            )
        layout.add_widget(
            Button(
                text=fname + ' blended light',
                background_normal='',
                color=[0, 0, 0, 1],
                font_name=font_name,
                font_size=fsize,
                font_hinting='light',
                font_blended=True,
                )
            )
        layout.add_widget(
            Button(
                text=fname + ' blended normal',
                background_normal='',
                color=[0, 0, 0, 1],
                font_name=font_name,
                font_size=fsize,
                font_hinting='normal',
                font_blended=True,
                )
            )
        layout.add_widget(
            Button(
                text=fname + ' blended mono',
                background_normal='',
                color=[0, 0, 0, 1],
                font_name=font_name,
                font_size=fsize,
                font_hinting='mono',
                font_blended=True,
                )
            )
        return layout

def _main():
    TestApp().run()

if __name__ == '__main__':
    _main()

It would be nice to add this demo somehow to kivy examples. Any suggestions?

@ali65, a label example with the new options could be added here, in a separate pr: https://github.com/ali65/kivy/tree/master/examples/widgets.

@ali65 thanks nice work !

Soon I will follow up with the merge request of the cleaned-up example of font rendering. Thanks for merging.

@akshayaurora :100:

from kivy.app import App
from kivy.lang import Builder

kv = """
Label:
    text: 'OFFICIALLY TESTED'
    font_size: '20dp'
"""

class TestApp(App):
    def build(self):
        return Builder.load_string(kv)

if __name__ == '__main__':
    TestApp().run()

This might also need to be sorted out:
matham: if TTF_STYLE_XXX is defined in the external headers, we should just do cdef int TTF_STYLE_XXX not cdef int TTF_STYLE_XXX = ...


Make reply_to setting optional

Fixes #1693 .
Make sure that the email settings are not checked and therefore no error is raised, when "reply_to" is empty.

Thanks :+1:


add: firstLastPiecePrio

Looks like we can set the property directly on addTorrent https://github.com/qbittorrent/qBittorrent/wiki/WebUI-API-(qBittorrent-4.1)#add-new-torrent with firstLastPiecePrio: true.

Can just revert https://github.com/autobrr/go-qbittorrent/commit/a8b4232e38e9ef047efdbd741a7cb8f36b83424b then I guess? Still need it in domain.go right?

Tested locally. Property was enabled as expected in qBit 4.3.9 👍


KIALI-239 Add weight attribute in ServiceInfoRouteRules

When weight parameter is present in a RouteRule, it is shown in the associated label(s).

should we ignore the jenkins result?

should we ignore the jenkins result?

I guess yes. I think is still a WIP to put some comment with the offended detail from Jenkins.
I should say it's safe to merge.

On 21 Mar 2018, at 16:06, Joel Takvorian wrote:

should we ignore the jenkins result?

Yes for now.
--
<EMAIL_ADDRESS>m:0179/207 4919  b:http://pilhuhn.blogspot.com


Fixes default value

@steven-sheehy
Signed-off-by: Mohammad Abdoli Rad<EMAIL_ADDRESS>What this PR does / why we need it:
Fix resources.limit.cpu, resources.request.cpu units
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped

/assign
/ok-to-test

/lgtm
Thanks for your contribution!


Add server_auth to TC cert generation since it will need it soon

We'll need to update our manual cert generation for cf-release and the corresponding README documentation.

After investigating a bit, it seems that certstrap generates certs with both serverAuth and clientAuth extended key usage. See here.


Summary page

Yea that's fair enough. Can I politely request 4 spaces for indents? It's
pretty much the only limiting I care about as I can't read 2 space code!
On Thu, 31 May 2018, 16:18 Louis Houghton<EMAIL_ADDRESS>wrote:

@Louisblack requested changes on this pull request.
I know you don't want to care about formatting/lint rules yet but having
hundreds of files changed due to formatting makes reviewing changes very
difficult. We need to at least settle on indenting width!!
In src/app/case.service.ts
https://github.com/hmcts/jui-webapp/pull/9#discussion_r192132834:

@@ -8,7 +8,7 @@ export class CaseService {
constructor(private httpClient: HttpClient) { }

fetch(): Observable {

   return this.httpClient.get('http://localhost:3000/api/cases/bob');

fetch(caseId): Observable {

   return this.httpClient.get(`http://localhost:3000/api/cases/${caseId}` <http://localhost:3000/api/cases/$%7BcaseId%7D>);

Can this be relative? So it works deployed.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/hmcts/jui-webapp/pull/9#pullrequestreview-124847584,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGCTTu0AxO19Y9GgdxRm8-uCFwx82ze1ks5t4AnUgaJpZM4UVMcP
.

4 spaces have my vote. I know 2 is the kinda new thing but I agree 4 is more readable.