Use quay.io/centos/centos:centos7 base image instead of mirrors.centos.org

Let's use quay.io/centos/centos:centos7 base image instead of mirrors.centos.org
pulling image from mirrors.centos.org is failing with this reason:
-> Version core: building image from 'Dockerfile' ...
-> Pulling image registry.centos.org/centos/centos:7 before building image from Dockerfile.
Get https://registry.centos.org/v1/_ping: dial tcp: lookup registry.centos.org on <IP_ADDRESS>:53: no such host
Pulling image registry.centos.org/centos/centos:7 failed.
Let's wait 5 seconds and try again.
Get https://registry.centos.org/v1/_ping: dial tcp: lookup registry.centos.org on <IP_ADDRESS>:53: no such host
Pulling image regis

Quay.io should be more stable

[test]

I have asked on CentOS container pipeline repository. Let's see.
https://github.com/CentOS/container-pipeline-service/issues/694

Peto, could you please add yum update to the Dockerfile? The image from quay.io is quite old.

After a discussion with team members we came to conclusion to stop support centos7 images and therefore this PR is not needed anymore.
Further action will take place in other Pull Requests.


Amex CVC should be on the front

First of all, thank you so much for this library. It is awesome.
The issue I have seen is that when entering Amex card, the card image flips to simulate entering CVC number from the back. However, AMEX cards have their CVC numbers on the front. See the example from Stripe's own demo:

So the question is since you went through the trouble to make Stripe's lousy UI actually worth something, do you mind taking a look at this enhancement so that when a user enters an AMEX card, we don't actually flip but rather show the entering of CVC on the front of the card instead? Let me know what you think.
Thanks.

Update to 0.2.0v.


php artisan migrate error no such file or directory

Laravel Version
latest
PHP Version
8.2.14
Database Driver & Version
mysql  Ver 8.0.35 for macos13.5 on arm64 (Source distribution)
Description
Tryint to run php artisan migrate on fresh install I got
SQLSTATE[HY000] [2002] No such file or directory (Connection: mysql, SQL: select table_name as `name`, (data_length + index_length) as `size`, table_comment as `comment`, engine as `engine`, table_collation as `collation` from information_schema.tables where table_schema = 'nocuberniego' and table_type in ('BASE TABLE', 'SYSTEM VERSIONED') order by table_name)

No solution on internet worked. This happens for DB_HOST set to 'localhost' or '<IP_ADDRESS>' . Driver is mysql.
Database and user exists and I am able to connect to database using terminal. No tables created on my own.
I tried to composer dump-autoload and php artisan optimize:clear to no results.
This is similar issue to #19522 that is already closed but still not solved after all these years.
Steps To Reproduce
1.Fresh install laravel
2. modify .env to reflect user and password and database
3. create database and user and make sure you can connect using terminal.
4. in project directory run php artisan serve
5. see the error

Maybe this helps?

If you say “maybe” it means you are not sure. I am not using MAMP and I am
not connecting using socket. And as I said clearing cache not helped.
It’s sad Laravel is shipped with something that not working out of the box.
This literally making me searching for alternatives, can you suggest one
beside Symfony? Language does not matter
W dniu niedz., 28.01.2024 o 07:23 Mateus Junges @.***>
napisał(a):

Maybe this
https://stackoverflow.com/questions/27365473/mamp-with-laravel-unix-socket
helps?
—
Reply to this email directly, view it on GitHub
https://github.com/laravel/framework/issues/49874#issuecomment-1913470269,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAEQPFUO3IP7IZ3X3JIUUGTYQXVEPAVCNFSM6AAAAABCNWT3ZKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMJTGQ3TAMRWHE
.
You are receiving this because you authored the thread.Message ID:
@.***>


Fix various small issues with Travis CI build

https://app.travis-ci.com/github/jiridanek/skupper-router/builds/254021857
$ sudo sysctl -w kernel.core_pattern="coredump.%e.%p"
sysctl: permission denied on key "kernel.core_pattern"

Looks like we have to live with the default pattern, which seems to be core.
The working of the coredump analysis can be tested by replacing the CI script with
python3 -c 'import os; import signal; os.kill(os.getpid(), signal.SIGABRT)'

60: test_get_image_jpg (system_tests_http2_tls.Http2TestTlsStandaloneRouter) ... skipped 'Python 3.7 or greater, Quart 0.13.0 or greater and curl needed to run http2 tests'

https://app.travis-ci.com/github/jiridanek/skupper-router/jobs/578785860#L4657
That line is worrisome. All requirements for the test should be fulfulled!

60: test_get_image_jpg (system_tests_http2_tls.Http2TestTlsStandaloneRouter) ... skipped 'Python 3.7 or greater, Quart 0.13.0 or greater and curl needed to run http2 tests'

https://app.travis-ci.com/github/jiridanek/skupper-router/jobs/578785860#L4657
That line is worrisome. All requirements for the test should be fulfulled!
Somehow this function is returning True, which is why the tests are being skipped. Surely something is wrong with one of those three functions. This might be unrelated but this function - https://github.com/skupperproject/skupper-router/blob/main/tests/system_tests_http2.py#L39 - never returns False

I'll try debug it tomorrow. Find out what exactly is returning (not true).

I'll try debug it tomorrow. Find out what exactly is returning (not true).

Thanks much @jiridanek

I'll try debug it tomorrow. Find out what exactly is returning (not true).

Thanks much @jiridanek

The reason was the following, https://app.travis-ci.com/github/jiridanek/skupper-router/jobs/578900073#L298
The pip install was not updating jinja2 and markupsafe packages, because they were already installed systemwide. New version of quart did not work with the old versions of jinja2 or markupsafe. The return of None in the function to check Python version did not matter; None is falsey, so that works fine.

So, currently, there is only a single real issue as far as I can tell
https://app.travis-ci.com/github/jiridanek/skupper-router/jobs/578903357#L4619
(and https://github.com/skupperproject/skupper-router/issues/543)

Codecov Report

Merging #654 (b5aece2) into main (ed76bea) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #654   +/-   ##
=======================================
  Coverage   25.90%   25.90%
=======================================
  Files         128      128
  Lines       31195    31195
  Branches     4973     4973
=======================================
  Hits         8081     8081
  Misses      22059    22059
  Partials     1055     1055

Flag
Coverage Δ

unittests
25.90% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Fix: Replace queue and construction illustrations

Pull request checklist
Make sure you:

[x] Signed the Contributor License Agreement
[x] Followed the commit message guidelines

Short description of the change(s)
Replaces pending illustrations with new style.

@alra queue-nellie.svg should be optimized already, but the other not.

but the other not.

Done in https://github.com/webhintio/artwork/commit/1c4ac5edb12f61b72168a289c2079301b2b471e0 and updated before I merged the PR.


make CORS allowed origins configurable

Make CORS allowed origins configurable for metadata and tiles via new environment variables:

TC_ALLOWED_ORIGINS_METADATA = "*"
TC_ALLOWED_ORIGINS_TILES = ""

Where empty string "" means no allowed origins.
The changes are backward-compatible, so even when the user omits the new environment variables but updates Terracotta, the behavior will be the same as before: all origins allowed for /metadata, no cross-origin headers for tiles.
Closes #160

For testing this I suggest you add a test that sends a request to the server and inspects the returned headers (should contain Access-Control-Allow-Origin with the allowed origins).

Yes, doing just that. How about what I just committed? And any idea why the last test does not pass?

A bit hacky with the deepcopy, but seems to work.
I think we should try our best to minimize global state (except our settings, which are easy enough to reset) before giving up and using separate processes.

I think we should try our best to minimize global state (except our settings, which are easy enough to reset) before giving up and using separate processes.

Very much prefer that, too.

A bit hacky with the deepcopy, but seems to work.

Since blueprints do not have a copy method, this will have to do.

Only thing missing is support for list of string (or documentation on how to allow multiple origins), then we're good to go.

Only thing missing is support for list of string (or documentation on how to allow multiple origins), then we're good to go.

Yeah, I tried making that work - parsing that from an environment variable with marshmallow. Did not get too far and it seemed a bit messy. But I'll make it work, if you prefer that to just str.

We can leave it as a string if the alternative is too messy, but then we need to tell the user somehow how to whitelist several origins.

Supporting only list of string wouldn't be too bad, either.

Supporting only list of string wouldn't be too bad, either.

I implemented this now, re-using the JSON value support we already had. So you need to set ALLOWED_ORIGINS_TILES = '["*"]' for all origins now. Not pretty, but supports multiple values without much extra code. I suggest we leave it at that, just add a note in the docs.

Looks good to me.

@dionhaefner please review and merge if ready


Support for SocketTimeoutMS on URL connection

Implements semantics described in https://docs.mongodb.org/manual/reference/connection-string/#uri.socketTimeoutMS

Hi, please squash the commits to a single one, so it can be reviewed. Best regards.

Squashed commits into one.

Thanks. It seems to break to timeout handling (see on Travis).

Please rebase against master, to check whether there is any conflict.

Please make sure to have run scalariform (sbt scalariformFormat test:scalariformFormat), so the coding style is not broken.

Hi, the tests are needed. I prefer to wait they are fixed, rather than removing them. Thanks.

Hi @cchantep, I have rebased. I have also temporarily removed the one test I added called "Connection should timeout when it is idle". This appeared to cause some other tests to fail for an unknown reason. The tests are now passing on Travis (except the JVM crashes).
I wasn't happy with that test as it was too heavy-weight, can you think of a better way to test SocketTimeoutMS is correctly applied? Or, do we need to? All it does is delegate to Netty, but then we should unit test MongoHandler.

@charleskubicek Why this test (which should be isolated) was slowing the other tests?

Hi @charleskubicek, can it be tested using netem at first?

Hi @cchantep, thanks for the tip, I'll take a look. We have been testing using a proxy service between the driver and Mongo to simulate slowdowns to test the idle trigger - so far it works well.
But I can't use netem in automated tests as it's not cross platform. We're going to look at other ways of unit testing it this week.

As long as you can reproduce the test env using netem, that's ok, as it's already used for other integration tests. Let me know when you have something working in this way (and please rebase to keep up-to-date). Best regards.

Hi, reintroduced an embedded test proxy. You may want to have a look at.


Update to lodash v3

Allows devs to test custom v3-pre builds before v3 is out.
Update site to use lodash v3.

Time to update :)

Yep, will try to do this on Friday.

Ping.

Now live at https://lodash-webbuilder-dev.herokuapp.com, please check all functionality before I merge into master.

Closed by d3f12f49c5d331fbd8a2bcd1db13aaef4c506008.


Auto trust and better explainer

This is now counting one visit per minute, for testing.
Ready for review/merging/testing, but need to switch to days before publishing.

Apart from my comments and the transition to daily update, this looks ready to merge and publish.


Website unavailable

The project website http://www.mojohaus.org/versions-maven-plugin/ seems to be unreachable (HTTP error 404).

it seems GitHub site had an issue with the site content that was not updated for more than 1 year (jan 2020...)
I just republished site https://github.com/mojohaus/mojohaus.github.io/tree/master
it's now back


FieldInstanceTracker.changed should return both old and new values.

Problem
It will be helpful if FieldInstanceTracker.changed returns both old value and new value.
https://github.com/jazzband/django-model-utils/blob/master/model_utils/tracker.py#L159
Environment

Django Model Utils version: 3.2.0
Django version: 1.11
Python version: 3.68
Other libraries used, if any:

Code examples
Give code example that demonstrates the issue, or even better, write new tests that fails because of that issue.
ipdb> instance.nap_tracker.changed()
{'address_2': ''}

In the above case, there is no way for users to see what the new value is can compare it to the old value.

Closing this as we can find it using
 instance.tracker.get_field_value('field_name')


Subject Key Identifiers in Subscriber TLS Certificates

RFC5280 <IP_ADDRESS> says "this extension SHOULD be included in all end entity certificates", hence https://github.com/zmap/zlint/blob/386a8dc413add9bb92d80badbb4d86f833f6a4e5/v3/lints/rfc/lint_ext_subject_key_identifier_missing_sub_cert.go#L48
However, TLS BRs v2 section <IP_ADDRESS>.6 (Subscriber Certificate Extensions) says the opposite:
"subjectKeyIdentifier NOT RECOMMENDED"
I think ZLint should implement a new cabf_br lint that emits a Warning if SKI is present, and that (when enabled) this new lint should override the existing RFC5280 lint in rfc/lint_ext_subject_key_identifier_missing_sub_cert.go.  Does that sound right?

The discussion in #762 is relevant here.


[ingress/controllers/nginx] Nginx shutdown doesn't gracefully close "keep-alive" connections

We are analyzing the behaviour of re-deploying nginx ingress controller with a lot of requests flooding. Basically we have gatling or ab (command line tool) that performs a lot of parallel requests to our kubernetes cluster for a while.
With default nginx configuration we discovered that:

if clients don't request keep-alive connection the process is really smooth (0 errors)
if clients request keep-alive connection we have a lot fails (java.io.IOException: Remotely closed)

We tried several things and the latest one was to gracefully shutdown nginx in the preStop hook with this command:
/usr/sbin/nginx -s quit
The expected behaviour would be that nginx maintains keep-alive connections before receiving the SIGTERM. Then, once it receives the -s quit, it starts to block new keep-alive connections (with "Connection: keep-alive, close" header) and notifies the client that it should close the kept alive connections.
On the other hand the observed behaviour is that nginx continues to use alive connection until it dies and client receives "java.io.IOException: Remotely closed".
Finally we also tried to modify the parameter "keepalive_timeout" in nginx configration to "0". In this way nginx never accepts keep-alive connections (with "Connection: keep-alive, close" header) and we have a smooth results of 0 errors.
Obviously it is not the best configuration because we don't optimise number of connections used and we have a strong feeling that we are missing something ..

@micheleorsi can you test the signal WINCH? (http://nginx.org/en/docs/control.html)
Before that please check the keepalive_timeout is < 30. This because the ingress controller waits 30 seconds before the termination of the process

Just tried, same behaviour!
Here is our preStop script. (we have an endpoint configured with nginx that just serve the readiness.html file, watched by F5 in order to exclude the physical node as soon as the preStop hook has been called)
rm /readiness.html
sleep 50
/usr/sbin/nginx -s WINCH

.. and this is our kuberentes deployment configuration, for high-availability
[..]

spec:
  replicas: 1
  minReadySeconds: 15
  strategy:
    rollingUpdate:
      maxUnavailable: 0
      maxSurge: 100
    spec:
      terminationGracePeriodSeconds: 100
      containers:

[..]

This is the output of our ab testing
$ ab -r -k -c 100 -n 1000000 -v 1 'http://<our-test-endpoint>/load?meanTime=2000&variation=0&timeout=60000'

[..]

Concurrency Level:      100
Time taken for tests:   215.718 seconds
Complete requests:      10594
Failed requests:        100
  (Connect: 0, Receive: 0, Length: 100, Exceptions: 0)
Keep-Alive requests:    10494
Total transferred:      15520626 bytes
HTML transferred:       10871784 bytes
Requests per second:    49.11 [#/sec] (mean)
Time per request:       2036.230 [ms] (mean)
Time per request:       20.362 [ms] (mean, across all concurrent requests)
Transfer rate:          70.26 [Kbytes/sec] received

[..]

Obviously if you look at the percentage this doesn't seem a big problem: "just" 100 out of 1000000. (And the behaviour could be even better if we have more than 1 replica for the nginx ingress controller pod).
The biggest point in my opinion is that when nginx dies, it drops all the connections in keep-alive status in that specific moment. So if you look at the number in that specific amount of time, 100% of requests fail.
If you have a look at the logs this is the behaviour observed:

the "go wrapper" performs all the operations in the controller.go file, method Stop()
requests continue to flow (even if the IP has been removed from the specific ingress and F5 marked that specific node as "not available")
when the "real" nginx command finally dies it drops all the connections that are still there

I am writing here just because I saw that nginx-slim has been modified quite a lot and I observed this issue on kubernetes with nginx ingress controller, but it could be a nginx specific problem.
Next step on my side is to isolate the nginx behaviour outside kubernetes and the "go wrapper".
I will keep you posted.
Thanks!

@micheleorsi any update on this?

sorry @aledbf .. not yet!
We focused on production and I didn't have time to investigate this problem. For the moment we always close the TCP connections.
I hope to have some news in the next couple of weeks. I'll keep you posted!

Just finished some tests and actually nginx itself doesn't gracefully shutdown requests in keep-alive status.
Here is my test:

a simple service that serves traffic at http://localhost:8081/load
nginx (1.10.1) runs in this way:

nginx -c sample.conf

sample.conf is this:

events {}
http {
	server {
    listen 9999;

    location / {
      proxy_pass http://localhost:8081;
    }
  }
}

ab testing running:

ab -v 2 -n 1000 -c 25 -k http://<IP_ADDRESS>:9999/load

.. then I noticed then when I launch ..

nginx -s quit

.. I continue to receive

Connection: keep-alive

.. until the very end, before nginx quit.
That's (as explained before) a big problem since clients that are re-using those connections are not notified by the "Connection: close" HTTP header and continue to re-use the TCP connection ..
Then, once nginx really quits, those connection are not anymore valid and clients got errors.
Now what do you think we can do @aledbf ? Probably we should close this issue and notify nginx developers?
I think these are the right channels to submit this problem, right?

http://mailman.nginx.org/mailman/listinfo/nginx-devel
https://forum.nginx.org/list.php?29

Probably we should close this issue and notify nginx developers?

That's a good idea. Can you open a ticket in nginx with the content of the your last comment?
(to keep it simple please do not mention kubernetes)
This is the nginx issue tracker https://trac.nginx.org/nginx/

Thanks for your suggestions @aledbf !
I just opened a ticket in nginx trac.
Let me link here (https://trac.nginx.org/nginx/ticket/1022) for future reference!


Add Python 3.11 to the build matrix

Codecov Report
Base: 98.36% // Head: 98.36% // No change to project coverage :thumbsup:

Coverage data is based on head (ea2f6c0) compared to base (84c6a4b).
Patch has no changes to coverable lines.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #278   +/-   ##
=======================================
  Coverage   98.36%   98.36%
=======================================
  Files          54       54
  Lines        5489     5489
=======================================
  Hits         5399     5399
  Misses         90       90

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

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


update aind-data-schema version pin to allow usage of aind-metadata-upgrader package

updates pin of aind-data-schema to 0.38.1, to allow for compatibility with dependencies in aind-metadata-upgrader

Closing this issue since we'll handle an upgrade once aind-data-schema 1.0 is rolled out


Community involvement WM

Have a brainstorming session to know what is the community that we have in WM and what else can we do for outreach efforts

Is this definitely happening today? Do you need a ticket if you're doing it today?


Issue: UpdateBizTalkDebuggingConfig should have an on/off property

UpdateBizTalkDebuggingConfig runs even when the default values are in effect (false/off), and updates the BTSNTSvc(64).exe.config on every deployment.  There should be an on/off property for the entire set of debugging options.
Add a property ConfigureBizTalkDebuggingFeatures with a default value of false.
This work item was migrated from CodePlex
CodePlex work item ID: '10226'
Assigned to: 'tfabraham'
Vote count: '1'

[UnknownUser@8/20/2013]
Resolved with changeset 73458.


fix bail not work bug

// if we have an error mark module as failed and exit
if (err) {
  this.markModuleAsErrored(err);
  this._initBuildHash(compilation);
  return callback();
}

should return callback to be return callback(err) then the bail can work

What kind of change does this PR introduce?
bugfix

Did you add tests for your changes?

yes
Does this PR introduce a breaking change?
no

What needs to be documented once your changes are merged?

I wanted to find some clarity here:
If jiangliuer does not have a GitHub account how did they contribute any code to this PR?
Is there anything I can do to push the license check forward?

If jiangliuer does not have a GitHub account how did they contribute any code to this PR?
Is there anything I can do to push the license check forward?

You can put any name and email in git commits. This issue often happen when git configuration is incorrect or email has not been added to github.

Closing this as it has been already fixed in webpack 5.


Use local database instead of cloud DynamoDB

Try https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html
See if we can get both the egrid-data-loader and the chain code to run with a local database so you don't have to set it up in the cloud.

Just pushed this feature.

@michaelbauerinc @opentaps
Can we close this issue then?

Just finalizing its documentation, and then we'll close it.
Si Chen
Open Source Strategies, Inc.
Video: Fighting Climate Change with Blockchain and Open Source
https://youtu.be/NgxNWXa_IjE
On Sat, Nov 21, 2020 at 9:52 AM Robin Klemens<EMAIL_ADDRESS>wrote:

@michaelbauerinc https://github.com/michaelbauerinc @opentaps
https://github.com/opentaps
Can we close this issue then?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/opentaps/blockchain-carbon-accounting/issues/33#issuecomment-731612563,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AANAS4K7Z4YKHU25AAZR6OLSQ745FANCNFSM4TU4APLA
.


[flash_ctrl] controller issue same address twice when it compete with host direct access

In the test,
controller and host compete to access flash device by issuing read request on the same bank (bank1)
For test convenience, all host request(direct) has byte address bit[18] set to distinguish from
controller request.
At the bank 1 phy interface, dut issues bunch of read request mixed with host and controller read request.
But the frist two "controller" read request have the same address (address 0).
This can be reproduced by fetching (#13407)

@jdonjdon and i had a look at this.
This is happening because of the flash local buffering.
Since flash words are wider than bus words, flash reads are buffered locally. If the next read matches the address of the local buffer, it reads from there directly instead of the flash.
In the host/controller interleave test however, the first buffered controller read data gets evicted by the burst of host read activity. So as a result when the controller reads the second word, it ends up reading the same location again to get the remaining data from the same flash word.

TB is updated to model local buffer behavior. Will be added with direct rd test.


Still maintained?

Hey there,
We are currently evaluating if we can switch from our maven based eclipse rcp product build to a gradle based one. As it seems the wuff plugin is the only mature gradle plugin for building eclipse products.
But it looks, due last commit is from Sep. 2015 and last issues are not handled, that this project is not maintained anymore... Am I right or is it just working and that's why nothing is changed?!
Cheers

It still user eclipse-luna-sr2 repository for downloads
Just got 1,GB of old binaries after trying first app https://github.com/akhikhl/wuff/wiki/Create-first-Equinox-app

Well, it does work. That much I can say, because we use it in production. With the exception of some manifest merging issues I had, Wuff is quite a stable tool.
@paulvi 4.5 / Mars was already added, so you should be able to use it by explicitly specifying the following in your build.gradle
selectedEclipseVersion = '4.5'

Ok, that's nice. I was not able to get it running with mars in our environment (p2 repository and so on) in the first place. But I will recheck that and create issues if necessary. Thanks for your anwsers @petarov and @paulvi.


refactor: refactor and replace use NIO

Proposed changes
Issue Number: #12780
Problem summary
refactor and replace use NIO
Checklist(Required)

Does it affect the original behavior:

[✅] Yes
[ ] No
[ ] I don't know

Has unit tests been added:

[ ] Yes
[ ] No
[✅] No Need

Has document been added or modified:

[ ] Yes
[ ] No
[✅] No Need

Does it need to update dependencies:

[ ] Yes
[✅] No

Are there any changes that cannot be rolled back:

[ ] Yes (If Yes, please explain WHY)
[✅] No

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

Why changing this? Is there any explaination?

Why changing this? Is there any explaination?

Updated in proposed Changes

Thanks @dinggege1024

Why changing this? Is there any explaination?

Thanks @dinggege1024


Password for awx superuser container

Hi,
I have a problem with my connection to azure ad. I would like to change a parameter in the nginx conf but I can't find the awx password (when I'm in shell in the web container). Does anyone know?

You can't become superuser in the web container. No password is configured.


Get Callout to appear on top left of screen

Hey I'm trying to get the Callout to appear in the top left of screen, but I can't seem to get the callout to escape the marker's viewpoint. How do I go about doing this?

I think you need to look at calloutOffset or calloutAnchor https://github.com/airbnb/react-native-maps/blob/master/docs/marker.md

Use onMarkerPress and show a View above the Map where you want.


Actor fade in/out styles

Would love for different styles for actors to fade in/out, maybe having an additional option when having an actor join/leave a dialogue eg.

fade from left
fade from right
no transition (actor just appears)
squish in (scales from 0,2 to 1,1)
eg.

same for options when leaving the scene but with contextual changes eg. "fade to left/right".

Yeah, that would be great to add. It is something that has been on our to-do list for a long time, but there are always other fires to put out. Hope we can add it soon! If you can complete the list of animations that would be a great reference for implementation :)

for sure! I'm sure others can think of more, but what comes to mind would be transitions/animations like:

no transition/animation
fade in from up/down/left/right
fade out to up/down/left/right
fade in/out (no direction)
scale in/out X only/Y only/both (scales from 0 -> 1, or in out case 1 -> 0)

with fade and scale having adjustable speeds and with the fade, possible adjustable distance?
keep up the great work btw, love checking in from time to time to see how much you've fixed/added!

Not all of the mentioned animations are added, but 1.4 will provide some nice animations for entering and exiting. Also it is relatively easy to add new animations using the ANIMA animation format.


Protocol/Network: move peer request timeout logic out of protocol

Part of https://github.com/paritytech/substrate/issues/1517
Currently, there are two distinct peer timeout workflows
When sending a block request to a peer:

When a message is sent to a Peer, the sending is timestamped.
When the blockresponse comes in, the timestamp is set to None.

When handshaking with a peer:

When the peers first connects, this is timestamped.
When the status message has been received, the peer is removed from "handshaking peer", added to "peers".
When a peers disconnects while handshaking, it is also removed from "handshaking peers".

Periodically, as part of tick, protocol will
1, check the timestamp for each peer, if it is Some(..), and report a peer if a timeout has been reached.
2. Check the timestamp for each handshaking peers, and report it if it is above the timeout.
This logic could be moved to the libp2p2 ServiceTask, which could keep track of handshaking peers as well as any block request/response cycle, and when reporting a peer for timeout, produce a ServiceEvent that protocol can handle to update it's internal state.
How does that sound @tomaka ?

@tomaka I'm closing this; please reopen and place in appropriate milestone if needed.


accessSecretVersion taking 40 seconds to answer

Environment details

OS: ubuntu
Node.js version: 10 and up
npm version: 6.14.8
@google-cloud/secret-manager version: 3.1.0 and 3.2.0

Steps to reproduce
create a key in the store of your project from a terminal with gcloud secrets:
echo -n '{"hello":"world"}' | gcloud secrets create test --data-file=- --project=googleprojectid

use code:
(async () => {
    const { SecretManagerServiceClient } = require('@google-cloud/secret-manager');
    const client = new SecretManagerServiceClient();
    const t = new Date();
    const [secret] = await client.accessSecretVersion({ name: `projects/googleprojectid/secrets/test/versions/latest` });
    console.log((new Date() - t) / 1000, secret.payload.data.toString());
})();

use it on you own localhost machine. answer of accessSecretVersion within 0.5 sec.
use it inside a google cloud function, answer of accessSecretVersion after between 5 and 50 seconds...

I tried with the  App Engine app default service account by adding Secret Manager Admin to it
I tried creating a service account with Editor rights and Secret Manager Admin rights
both work, but only returns an answer after 5-50 seconds...
but when i download either one of those service account and use it by exporting GOOGLE_APPLICATION_CREDENTIALS=/path/to/serviceaccount.json
and run it on my own machine it works and answers within 0.5 seconds.
I am lost :)
does anyone has a clue what might be going wrong?
Thank you in advance,
Mischa

I have found out it is actually working fine in the cloud as well. The problem lies somewhere else. I will drop a comment with what the reason was as soon as i find it. Closing this one...

the problem was that I was sending the res.status(200).end() to soon, triggering cleanup of the CF and something happening in the cloud platform that made the call take very long.


Error in loading 4d variables

While I was testing the new obs info catalogue, I noticed an error I was getting in a new pcmdi_metrics environment that I was not getting in my old environment. This error only happens to 4-D variables, and after doing some testing with cdms2 in ipython I think it might be related to the newest version of the numpy library (1.23.4). I haven’t pinned down exactly which version, but I get the error using numpy=1.23.4 but not with numpy =1.22.4.
Here is a snippet showing the error text:
INFO::2022-10-20 13:09::pcmdi_metrics::E3SM:: VAR: zg, REGION: TROPICS
INFO::2022-10-20 13:09::pcmdi_metrics::E3SM:: reference_data_set (given): ['all'], reference_data_set_is_obs: True, test_data_set_is_obs: False
INFO::2022-10-20 13:09::pcmdi_metrics::E3SM:: reference_data_set (adjusted): ['alternate1', 'default'], test_data_set: ['E3SM-1-0']
INFO::2022-10-20 13:09::pcmdi_metrics::E3SM:: alternate1 is an obs
INFO::2022-10-20 13:09::pcmdi_metrics::E3SM:: Could not figure out obs mask name from obs json file
INFO::2022-10-20 13:09::pcmdi_metrics::E3SM:: TEST DATA IS: E3SM-1-0
INFO::2022-10-20 13:09::pcmdi_metrics::E3SM:: E3SM-1-0 is a model
ERROR::2022-10-20 13:09::pcmdi_metrics::E3SM:: Failed opening 4D OBS zg alternate1 only integers, slices (:), ellipsis (...), numpy.newaxis (None) and integer or boolean arrays are valid indices

Here are some ipython snippets showing the testing I've done.
Setup in ipython
import cdms2
filename="/p/user_pub/PCMDIobs/obs4MIPs_clims/hus/ERA-INT/v20210804/hus_mon_ERA-INT_PCMDI_gn.200301-201812.AC.v20210804.nc"
var_file=cdms2.open(filename,"r")

Numpy = 1.22.4 environment, slicing works as expected but with future warning
hus=var_file("hus",plev=100000)
/home/ordonez4/miniconda3/envs/test_pcmdi/lib/python3.8/site-packages/cdms2/fvariable.py:103: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.
  result = result[revlist]

hus.shape
Out[5]: (12, 1, 121, 240)

Numpy = 1.23.[2,3,4] environment, slicing does not work as before
hus=var_file("hus",plev=100000)
Out[25]:
…stack trace…
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices

But the following does work with these versions:
hus=var_file("hus",plev=(100000,92500))
hus.shape
Out[28]: (12, 2, 121, 240)

Related to https://github.com/CDAT/cdms/issues/446

This issue is temporarily resolved by pinning numpy < 1.23.0 in meta.yaml on the pcmdi_metrics conda feedstock.


Update human-readable logging format

Change the human-readable logging format to include a string representation of the severity e.g. [WARN] after the timestamp, before the log message.

Preliminary documentation will be live shortly: https://etclabs.github.io/EtcPal/docs/stage/16/group__etcpal__log.html#details


Spatial coding in 360-RA files

In streaming services, the atmos master undergoes spatial coding (object grouping), and then compressed. Does the same procedure happen in mpeg-h encoding (e.g. included in the specification) when there is a low object limit (e.g. 10) or is this a custom and proprietary feature developed by Sony?

Hi sclsj,
Spatial coding, sometimes also referred to as “clustering”, is not part of the MPEG-H audio specification for LC profile. There is a tool in MPEG-H Audio called SOAC (Spatial Audio Object Coding), which can be used to reduce the number of objects. However, this tool is not part of the Baseline or LC profile, which are currently the relevant ones addressed in this code repository.
If you intend to go from a master-file to MPEG-H encoder input, one way to reduce the number of objects is through MPEG-H Authoring Suite (https://www.iis.fraunhofer.de/en/ff/amm/dl/software/mas.html)

Hi sclsj,
Can you please close the issue if your query has been answered?

Closing the issue due to no activity for long time.

If you intend to go from a master-file to MPEG-H encoder input, one way to reduce the number of objects is through MPEG-H Authoring Suite (https://www.iis.fraunhofer.de/en/ff/amm/dl/software/mas.html)

Sorry for the late reply.
Does this also use SOAC? Or does this use a different technology?
Also, for streaming services like Tidal and Deezer, what format do they receive? If they receive the MPEG-H master instead of an encoded 360RA mp4, what process do they use to reduce the number of object to the limit of level/profile specification?

Also, which of the following can libmpeghe take and encode (output of `mpeg-h conversion tool from Fraunhofer IIS):
MPEG-H Production Format (MPF)
MPEG-H BWF/ADM
3daa+wav
MPEG-MXF/S-ADM

MPEG-H Audio has tool called SAOC (Spatial Audio Object Coding), which can be used to reduce the number of objects. However, this tool is not part of the Baseline or LC profile, which are currently the relevant ones addressed in this code repository.
The other queries related to Tidal, Deezer and MPEG-H conversion tool from Fraunhofer IIS are beyond the scope of Baseline or LC profile MPEG-H encoder.

MPEG-H Audio has tool called SAOC (Spatial Audio Object Coding), which can be used to reduce the number of objects. However, this tool is not part of the Baseline or LC profile, which are currently the relevant ones addressed in this code repository.
The other queries related to Tidal, Deezer and MPEG-H conversion tool from Fraunhofer IIS are beyond the scope of Baseline or LC profile MPEG-H encoder.

It seems like this tool does not support input of 3daa+wav or MPEG-H BWF/ADM according to the command line options. Is there a way I can make it work?

If you intend to go from a master-file to MPEG-H encoder input, one way to reduce the number of objects is through MPEG-H Authoring Suite (https://www.iis.fraunhofer.de/en/ff/amm/dl/software/mas.html)

Sorry for the late reply.
Does this also use SOAC? Or does this use a different technology?
Also, for streaming services like Tidal and Deezer, what format do they receive? If they receive the MPEG-H master instead of an encoded 360RA mp4, what process do they use to reduce the number of object to the limit of level/profile specification?

For future reference: I contacted Sony and they clarified that all encoding is done on the artist's/producer's side using 360 WalkMix Creator. Unlike Dolby's approach where all objects are ultimately coded into channels, Sony allows artists to specify if an object is static or dynamic. If an object is static, it get downmixed with other static objects into a predetermined channel layout, such as 4.4.4 or 5.5.0. If an object is dynamic, it gets encoded by itself.
The final product uploaded to Deezer and Tidal are either 3daa+wav (4 folders) or a mp4 container with all four levels (0.5, 1, 2, 3).


Distributed Apigee iOS SDK framework is not modular

This is a problem if the Apigee iOS SDK framework has to be imported as a dependency from another Swift framework. A possible workaround is to repackage the Apigee iOS SDK framework as a modular framework.

Not able to generate iOS SDK framework. It is giving error   'cstddef' file not found
#include . Can anyone help me with this.
I want to generate framework and use in my project


Wacatac.B!ml, also known as Win32/Wacatac virus

One of GitHub workflow. do something, (probably during build phase) with my windows binary - it's not confirmed if it's a virus - it looks alike

Program works fine when copied locally- not using GitHub release


NonProfit IrrlichtBaW tutorial example

status:
it will be completely described in our wiki page
needs covering texture creation and ds attachments

You can remove example 5 and replace it with this... and turn examples 1-4 into tutorials ;)


The objective is not DCP.

I've being using PyPortfolioOpt for a couple of days now and I'm finding it very interesting. However, it seems that for some combination of assets in my dataset, the max_sharpe method will not work. The error comes from cvxpy:
DCPError: Problem does not follow DCP rules. Specifically:
The objective is not DCP. Its following subexpressions are not:
QuadForm(var20890, [[1.28992571 0.05675357 0.23213086 0.04030597]
 [0.05675357 0.39647776 0.3670981  0.09351321]
 [0.23213086 0.3670981  0.37204403 0.19053016]
 [0.04030597 0.09351321 0.19053016 0.17553035]])

Any ideas on why this error would occurr?

Hi Filipe,
Thanks for reaching out! Could you provide a sample of the code you are
using? Or let me know if you have added any constraints and objectives.
Best,
Robert
On Thu, 9 Apr 2020, 00:47 Filipe Mendonça<EMAIL_ADDRESS>wrote:

I've being using PyPortfolioOpt for a couple of days now and I'm finding
it very interesting. However, it seems that for some combination of assets
in my dataset, the max_sharpe method will not work. The error comes from
cvxpy:
DCPError: Problem does not follow DCP rules. Specifically:
The objective is not DCP. Its following subexpressions are not:
QuadForm(var20890, [[1.28992571 0.05675357 0.23213086 0.04030597]
[0.05675357 0.39647776 0.3670981  0.09351321]
[0.23213086 0.3670981  0.37204403 0.19053016]
[0.04030597 0.09351321 0.19053016 0.17553035]])
Any ideas on why this error would occurr?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/robertmartin8/PyPortfolioOpt/issues/82, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ACZ7ECNJ4WIGJTOBLPGK4ZTRLSTCBANCNFSM4MECMQYA
.

oops, accidentally closed.

I was able to trigger this error with the example code in the readme:
import pandas as pd
from pypfopt import EfficientFrontier
from pypfopt import risk_models
from pypfopt import expected_returns

# Read in price data
df = pd.read_csv("stonks.csv", parse_dates=True, index_col="Date")

# Calculate expected returns and sample covariance
mu = expected_returns.mean_historical_return(df)
S = risk_models.sample_cov(df)

# Optimise for maximal Sharpe ratio
ef = EfficientFrontier(mu, S)
raw_weights = ef.max_sharpe()
cleaned_weights = ef.clean_weights()
ef.save_weights_to_file("weights.csv")  # saves to file
print(cleaned_weights)
ef.portfolio_performance(verbose=True)

And this CSV file: stonks.zip

@as-com
Thanks so much! I'm working on it now. One of my preliminary (strange) discoveries is that the covariance matrix is not actually positive semidefinite, which explains why the optimiser is failing (it also fails for min_volatility!).
# cov matrix from stonks.csv
S = np.array([[0.03818144, 0.04182824],
                     [0.04182824, 0.04149209]])
S.values.trace()  # gives 0.0797
np.linalg.det(S)  # gives -0.00016

For a 2x2 matrix, the matrix is positive semidefinite if and only if both the trace and determinant are ≥ 0.

For numerical stability, you should add a small amount of noise to the diagonal.

@jonathanng
Thanks for the suggestion! I'll look into it. But surely the noise isn't guaranteed to make it positive semidefinite?

https://math.stackexchange.com/questions/665026/adding-elements-to-diagonal-of-symmetric-matrix-to-ensure-positive-definiteness

@jonathanng
Thanks for the link, I'll give it a read. I'm also considering a simpler solution of just clipping the eigenvalues at zero then reconstructing the matrix (as described here). @schneiderfelipe do you have any thoughts on this? Your linear algebra skills are much better than mine 😂
Anyway, @filipeteotonio, I think the best solution for the time being is to use a different estimator of the covariance matrix. I'd suggest the following:
S = risk_models.CovarianceShrinkage(df).ledoit_wolf()

The following is a long reply.
Previous behavior

I was able to trigger this error with the example code in the readme:
import pandas as pd
from pypfopt import EfficientFrontier
from pypfopt import risk_models
from pypfopt import expected_returns

# Read in price data
df = pd.read_csv("stonks.csv", parse_dates=True, index_col="Date")

# Calculate expected returns and sample covariance
mu = expected_returns.mean_historical_return(df)
S = risk_models.sample_cov(df)

# Optimise for maximal Sharpe ratio
ef = EfficientFrontier(mu, S)
raw_weights = ef.max_sharpe()
cleaned_weights = ef.clean_weights()
ef.save_weights_to_file("weights.csv")  # saves to file
print(cleaned_weights)
ef.portfolio_performance(verbose=True)

And this CSV file: stonks.zip

I made this code work with PyPortfolioOpt version 0.5.1. The calculated covariance matrix is the same:
➜  ~ ipython3
Python 3.6.9 (default, Nov  7 2019, 10:44:02)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.8.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import pandas as pd
   ...: from pypfopt.efficient_frontier import EfficientFrontier
   ...: from pypfopt import risk_models
   ...: from pypfopt import expected_returns
   ...:
   ...: # Read in price data
   ...: df = pd.read_csv("stonks.csv", parse_dates=True, index_col="Date")
   ...:
   ...: # Calculate expected returns and sample covariance
   ...: mu = expected_returns.mean_historical_return(df)
   ...: S_ = risk_models.sample_cov(df)
   ...:
   ...: # Optimise for maximal Sharpe ratio
   ...: ef = EfficientFrontier(mu, S_)
   ...: raw_weights = ef.max_sharpe()
   ...: cleaned_weights = ef.clean_weights()
   ...: ef.save_weights_to_file("weights.csv")  # saves to file
   ...: print(cleaned_weights)
   ...: ef.portfolio_performance(verbose=True)
{'VTI': 0.0, 'MGK': 1.0}
Expected annual return: 11.4%
Annual volatility: 20.4%
Sharpe Ratio: 0.46
Out[1]: (0.11443438934256847, 0.20369607211761417, 0.46360437077079236)

In [2]: S_
Out[2]:
          VTI       MGK
VTI  0.038181  0.041828
MGK  0.041828  0.041492

And not positive semidefinite, as observed by @robertmartin8  (the first eigenvalue, -0.00202422, is less than zero):
In [3]: import numpy as np

In [4]: np.linalg.eigh(S_)
Out[4]:
(array([-0.00202422,  0.08169775]), array([[-0.72095193,  0.69298507],
        [ 0.69298507,  0.72095193]]))

I could reproduce the error with version 1.0.2 as well. I did all this to have something to compare.
Why not positive definite?
risk_models.sample_cov might produce a matrix with negative eigenvalues if one of them is close to zero (so that it randomly flips sign) or, as suggested here, if some data are missing. There are two ways we might go around this:

add a small value to the diagonal of S_ (of the order of the smallest eigenvalue), as suggested by @jonathanng. That is the same as adding a (diagonal) matrix proportional to the identity (method="diag").
forget about diagonal adding, let's get the closest positive (semi)definite thing we can. This has a closed solution shown here and, equivalently, here (method="spectral").

I implemented both methods in the function below:
import numpy as np

def sample_cov(prices, frequency=252, method=None):
    returns = expected_returns.returns_from_prices(prices)
    S = returns.cov()
    if method is not None:
        w, U = np.linalg.eigh(S)
    if method == "diag":
        mw = np.min(w)
        if mw < 0:
            S -= mw * np.eye(len(S))
    elif method == "spectral":
        w = np.where(w > 0, w, 0)
        S = U @ np.diag(w) @ U.T
    return S * frequency

method="diag"
In [5]: import pandas as pd
   ...: from pypfopt.efficient_frontier import EfficientFrontier
   ...: from pypfopt import risk_models
   ...: from pypfopt import expected_returns
   ...:
   ...: # Read in price data
   ...: df = pd.read_csv("stonks.csv", parse_dates=True, index_col="Date")
   ...:
   ...: # Calculate expected returns and sample covariance
   ...: mu = expected_returns.mean_historical_return(df)
   ...: S = sample_cov(df, method="diag")
   ...:
   ...: # Optimise for maximal Sharpe ratio
   ...: ef = EfficientFrontier(mu, S)
   ...: raw_weights = ef.max_sharpe()
   ...: cleaned_weights = ef.clean_weights()
   ...: ef.save_weights_to_file("weights.csv")  # saves to file
   ...: print(cleaned_weights)
   ...: ef.portfolio_performance(verbose=True)
{'VTI': 0.0, 'MGK': 1.0}
Expected annual return: 11.4%
Annual volatility: 20.9%
Sharpe Ratio: 0.45
Out[5]: (0.11443438934256848, 0.20860562383796466, 0.4526934010941182)

In [6]: S
Out[6]:
          VTI       MGK
VTI  0.040206  0.041828
MGK  0.041828  0.043516

In [7]: S - S_
Out[7]:
          VTI       MGK
VTI  0.002024  0.000000
MGK  0.000000  0.002024

In [8]: np.linalg.norm(S - S_)
Out[8]: 0.0028626744284440757

Some remarks:

method="diag" adds a small value to each individual variance but doesn't change covariances. Each asset is equally treated.
method="diag" is not "optimal" in the sense that it is not the positive (semi)definite closest to S_.

method="spectral"
In [9]: import pandas as pd
   ...: from pypfopt.efficient_frontier import EfficientFrontier
   ...: from pypfopt import risk_models
   ...: from pypfopt import expected_returns
   ...:
   ...: # Read in price data
   ...: df = pd.read_csv("stonks.csv", parse_dates=True, index_col="Date")
   ...:
   ...: # Calculate expected returns and sample covariance
   ...: mu = expected_returns.mean_historical_return(df)
   ...: S = sample_cov(df, method="spectral")
   ...:
   ...: # Optimise for maximal Sharpe ratio
   ...: ef = EfficientFrontier(mu, S)
   ...: raw_weights = ef.max_sharpe()
   ...: cleaned_weights = ef.clean_weights()
   ...: ef.save_weights_to_file("weights.csv")  # saves to file
   ...: print(cleaned_weights)
   ...: ef.portfolio_performance(verbose=True)
{'VTI': 0.0, 'MGK': 1.0}
Expected annual return: 11.4%
Annual volatility: 20.6%
Sharpe Ratio: 0.46
Out[9]: (0.11443438934256848, 0.20606837668700312, 0.4582672550772053)

In [10]: S
Out[10]:
array([[0.03923357, 0.04081692],
       [0.04081692, 0.04246418]])

In [11]: S - S_
Out[11]:
          VTI       MGK
VTI  0.001052 -0.001011
MGK -0.001011  0.000972

In [12]: np.linalg.norm(S - S_)
Out[12]: 0.002024216500682136

Some remarks:

method="diag" adds a smaller value to each individual variance and subtracts from each covariance. Each asset is potentially unequally treated.
method="diag" is "optimal" in the sense that it is the positive (semi)definite closest to S_, as seen from the Frobenius norm (we can't get closer than the differences in the trace, which is the difference in eigenvalues, hence optimal).

Bottomline
I think both methods deserve attention, as method="diag" is conservative (it homogenously increases risk only) and interesting in this respect from an investment point of view. But method="spectral" is mathematically optimal (and the way to go, if you trust your data, in my opinion).

@schneiderfelipe
Thanks for the excellent work! My thoughts are as follows, let me know what you think!
Firstly, I think this is quite an advanced topic so I don't want the user to have to understand too much about what's going on. Thus in most cases, I think this fixing process should happen automatically on the backend, without the user having to explicitly choose a fixing method.
My plan is to define a new function fix_nonpositive_semidefinite(matrix, fix_method="spectral") in risk_models, which checks if the input matrix is positive semidefinite and fixes it if not. This method will be called at the end of all the other risk models (e.g return fix_nonpositive_semidefinite(cov)), though I will raise a warning if the original matrix isn't PSD just so the user is aware. Will probably have to provide a kwarg in all the functions so the choice of method can get passed down.
As for the default method, based on your analysis I think spectral makes more sense. In particular, I don't think it matters that assets are equally/unequally treated. e.g if I have two assets with variances 0.05 and 0.15, then subtract 0.04 from both ('equal'), the result is assets with 0.01 and 0.11. Which somehow feels very imbalanced anyway.
On another note, I've decided to adopt your suggestion from issue #3, i.e having a risk_matrix(method="sample_cov") master function. I don't plan on deprecating the other API just yet.

To get the diag method to work, I had to subtract a little bit more than the min eigenvalue (otherwise I think there are floating point issues around zero).

To get the diag method to work, I had to subtract a little bit more than the min eigenvalue (otherwise I think there are floating point issues around zero).
fixed_matrix = matrix - 1.1 * min_eig * np.eye(len(matrix))

Interesting, does not doing that brake cvxpy? I tested this, and indeed, the corrected matrix ends up having a small negative eigenvalue, but it is so small (~1e-18) that cvxpy didn't complain.

@schneiderfelipe
I didn't test it with cvxpy, but my _is_positive_semidefinite method (which attempts a Cholesky factorisation) returns False, so it messes up the error checking workflow. I figure multiplying by 1.1 is a relatively harmless way of amending this.

I didn't test it with cvxpy, but my _is_positive_semidefinite method (which attempts a Cholesky factorisation) returns False, so it messes up the error checking workflow. I figure multiplying by 1.1 is a relatively harmless way of amending this.

Cholesky decomposition works for positive definite matrices only (all eigenvalues strictly greater than zero), so it fails for a matrix with a zero eigenvalue:
In [1]: import numpy as np
In [2]: np.linalg.cholesky(np.diag([0, 1, 2]))
---------------------------------------------------------------------------
LinAlgError                               Traceback (most recent call last)
<ipython-input-4-9739668864ab> in <module>
----> 1 np.linalg.cholesky(np.diag(w))

<__array_function__ internals> in cholesky(*args, **kwargs)

/usr/local/lib/python3.6/dist-packages/numpy/linalg/linalg.py in cholesky(a)
    753     t, result_t = _commonType(a)
    754     signature = 'D->D' if isComplexType(t) else 'd->d'
--> 755     r = gufunc(a, signature=signature, extobj=extobj)
    756     return wrap(r.astype(result_t, copy=False))
    757

/usr/local/lib/python3.6/dist-packages/numpy/linalg/linalg.py in _raise_linalgerror_nonposdef(err, flag)
     98
     99 def _raise_linalgerror_nonposdef(err, flag):
--> 100     raise LinAlgError("Matrix is not positive definite")
    101
    102 def _raise_linalgerror_eigenvalues_nonconvergence(err, flag):

LinAlgError: Matrix is not positive definite

So, attempting Cholesky decomposition actually checks for strict positive definiteness. You might check for positive semidefiniteness by the following:
def _is_positive_semidefinite(a):
    w = np.linalg.eigvalsh(a)
    min_eig = np.min(w)
    return min_eig > 0 or np.isclose(min_eig, 0)

This ensures really small negative numbers are considered zero:
In [4]: _is_positive_semidefinite(np.diag([0, 1, 2]))
Out[4]: True

@robertmartin8 I've been inactive for the last week so that's why I didn't reply but it is so nice to see that the discussion went forward and the fix is already merged! Thank you guys.


add option for compiling and striping .py files

I noticed the .bootstrap/ directory in a pex archive contains both the .py and the .pyc files, which is unnecessary. Anyway, that got me thinking...
It would be nice to have an option, e.g. --no-source, which would ensure that only compiled bytecode files end up in the pex archive. Bytecode files are smaller and compress quite well, which would lead to smaller archives and faster deploys.
Any thoughts?

in general, a .pyc-only pex could present limitations in terms of python interpreter compatibility since .pyc files encode the compile-time magic number and check against their runtime interpreters magic number. this would prevent e.g. an otherwise python2+3 compatible pex from executing against both interpreters.
however, for controlled use in an environment where this isn't a concern, seems completely reasonable to have this capability behind a feature flag.
if you're in a position to contribute, a PR would be welcome.

Could try. I'm new to the pex source though. From what I get I'd have to change the following parts:

pex/bin/pex.py: Add command line option
pex/pex_builder.PEXBuilder.build: Ensure sources are compiled before passing flag to common.Chroot
pex/common.Chroot.zip: Skip *.py when writing the zipfile.ZipFile

Open Questions:

I'm not quite sure what freezing the PEXBuilder does. Is it relevant?

Is that about right?

however, for controlled use in an environment where this isn't a concern, seems completely reasonable to have this capability behind a feature flag.

as neat as this would be - i'm not sure I agree here, since it would be a compile-time feature flag, so the resulting pex would look normal, but potentially misbehave unexpectedly

Most of the time the interpreter will be specified in the shebang, at least in pex generated with default arguments. I get your point though. There is no safety in assumptions.
I guess I will just write a leanify-pex script if the need becomes pressing.


whitespace management should work via a change accessor sort of thing

Issue created from code comment with imdone.io

TODO @Alex whitespace management should work via a change accessor sort of thing id:55
src/vs/editor/common/viewModel/viewModel.ts:93
@imdone - Efficiently manage your project's technical debt. imdone.io

Issue closed by removing a comment.

TODO @Alex whitespace management should work via a change accessor sort of thing id:55 gh:64
src/vs/editor/common/viewModel/viewModel.ts:93
@imdone - Efficiently manage your project's technical debt. imdone.io


Guide: Import a Bearer Did

https://deploy-preview-1628--tbd-website-developer.netlify.app/docs/web5/decentralized-identifiers/how-to-import-did?lang=JavaScript
This pull request introduces a new guide for importing Decentralized Identifiers (DIDs) and includes corresponding test cases in JavaScript, Kotlin, and Swift. The guide explains how to export and import DIDs, ensuring users can maintain their identity across different platforms.
Documentation:

New Guide for Importing DIDs: Added a detailed guide on how to export and import DIDs, including code snippets for JavaScript, Kotlin, and Swift. (site/docs/web5/decentralized-identifiers/how-to-import-did.mdx)

Test Cases:

JavaScript Tests: Added tests to verify the export and import functionality of DIDs using the DidDht and DidJwk methods. (site/testsuites/testsuite-javascript/__tests__/web5/build/decentralized-identifiers/how-to-import-did.test.js)
Kotlin Tests: Implemented test cases for exporting and importing DIDs using DidDht, DidJwk, and BearerDid classes. (site/testsuites/testsuite-kotlin/src/test/kotlin/docs/web5/build/decentralizedidentifiers/HowToImportDidTest.kt)
Swift Tests: Added tests to ensure the correct export and import of DIDJWK using the InMemoryKeyManager. (site/testsuites/testsuite-swift/Tests/DevSiteTestSuiteTests/web5/build/decentralizedidentifiers/HowToImportDidTests.swift)

To see the specific tasks where the Asana app for GitHub is being used, see below:

https://app.asana.com/0/0/1205459115459785
https://app.asana.com/0/0/1208314295097366

Nice! I was planning a short to cover this as it came up during the hackathon - but I ran into a question I want to pose now. For the title, would it be better to use something like "Managing DIDs or reusing DIDs etc since it covers both exporting and importing - for the sole purpose of reusing an existing DID 🤔

Nice! I was planning a short to cover this as it came up during the hackathon - but I ran into a question I want to pose now. For the title, would it be better to use something like "Managing DIDs or reusing DIDs etc since it covers both exporting and importing - for the sole purpose of reusing an existing DID 🤔

oh okay! That's fair. Angie assigned a ticket to me called Import DIDs so I just named it that LOL but that's fair/a clearer name

Updates

Changed the title from Import a DID to Reuse a DID based on @acekyd's suggestions
Added Bearer DID and Portable DID to glossary, updated mentions of it based on @angiejones's suggestions.


Read secrets from config file

Addresses #154. Can place the key in config.cfg as a one-time change.

That makes sense. Let's show the API key then. But in that case, why not just hard code the Wit API key in the configuration file?

Ah so when one uses the config he/she copies config.cfg.example to config.cfg (I've documented this) and changes the key from a placeholder to a real one. The config.cfg is gitignored so everyone can use different configs for their own index path, keys, etc.. Since this is a public repo it is probably not a good idea to make an API key publicly available.

I see. All of this looks good! :)  Just move the index, host port to a configuration file and make a PR.


minor fix in federated configmap resource

@marun @font
Not sure whether or not I've to re-generate something...

@sdminonne Good catch!  After making changes to an API type, it is necessary to run:
apiserver-boot build generated

Please isolate the results of code generation in a separate commit (e.g. 'Updated generated code').

going to do

lgtm, thank you!


Webview#show should come with #hide

re #44466
It's always sad to see show without hide also see various other panels for reference

I actually wouldn't know what hide is supposed to do. If extension author wants the webview destroyed there is webview.dispose.

Good question... Maybe we should rename show to reveal in that case

Ok, I like renaming show to reveal. I think dispose already covers hide though


clear cache and re-run npm install

Cleared out the npm cache and re-ran npm install to avoid caching issues with jenkins build  - same as fix used in fire hydro
Specify that node v20 be installed in Dockerfile
Delete weird spacing in index.html that was causing a gap at the top of the page

Changes made:
Description
Testing:
Before making this pull request, I:

[x] Cleaned the code the way Vue likes it - run 'npm run lint --fix'
[ ] Made sure all tests run
[ ] Ran WAVE plugin 508 compliance tool

I can confirm this has been checked on:

[ ] Chrome
[ ] Safari
[x] Edge
[ ] Firefox
[ ] Samsung Internet
[ ] Internet Explorer 11 (not supported, but still needs at least a working user redirect page)

This seemed to work, but hard to assess some of the changes without redeploying. The spacing at the top looks the same with the in development banner

This is the spacing I was referring to - above the USGS header:


#inspect for model objects should truncate properties

I have some largeish text fields in my nodes and the output is large

Address, I believe, in #1023 so going to move to that issue


C_Cpp.errorSquiggles disabled by default

I see you disable C_Cpp.errorSquiggles by default
was that because C_WHITE etc shows up as errors?

it is because gint only defines things when a model is selected like: #define FXCG50

Yes it's a problem with the definitions but I don't know if it's a good idea to define FXCG50 at the top of each programs... I have to find a way to fix this issue dirrectly with the VS code config.