Add intel tensorflow-mkl singularity definition files

@GodloveD @jmstover Please check on this PR, when you time :)

I ran into this error when building:
+ ldd /tensorflow/libtensorflow_framework.so
ldd: /tensorflow/libtensorflow_framework.so: No such file or directory
+ echo MKL shared libs:
MKL shared libs:
+ python -c import tensorflow as tf; print(tf.pywrap_tensorflow.IsMklEnabled())
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named tensorflow
FATAL:   test proc: exit status 1
FATAL:   While performing build: while running engine: exit status 255

From poking in the build directory:
/tmp/sbuild-226427558# chroot fs/ /bin/bash
/# cd notebooks/
/notebooks# ls
1_hello_tensorflow.ipynb  2_getting_started.ipynb  3_mnist_from_scratch.ipynb  BUILD  LICENSE
/notebooks# pip show tensorflow
/notebooks#

Hi @jmstover , I just built and tested on Ubuntu 16.04 with Singularity 3.0.3
+ grep libmklml
+ pip show tensorflow
+ grep Location
+ cut -d : -f2
+ ldd /usr/local/lib/python2.7/dist-packages/tensorflow/libtensorflow_framework.so
+ echo MKL shared libs:     libmklml_intel.so =><EMAIL_ADDRESS>(0x00007f72d08e8000)
MKL shared libs:     libmklml_intel.so =><EMAIL_ADDRESS>(0x00007f72d08e8000)
+ python -c import tensorflow as tf; print(tf.pywrap_tensorflow.IsMklEnabled())
True
INFO:    Adding help info
INFO:    Adding labels
INFO:    Adding environment to container
INFO:    Adding startscript
INFO:    Adding testscript
INFO:    Creating SIF file...
INFO:    Build complete: intel_tensorflow.sif```
and ran his inside container
```Singularity intel_tensorflow.sif:/tmp/karthik/examples/machinelearning/intel-tensorflow> pip show tensorflow
Name: tensorflow
Version: 1.12.0
Summary: TensorFlow is an open source machine learning framework for everyone.
Home-page: https://www.tensorflow.org/
Author: Google Inc.
Author-email<EMAIL_ADDRESS>License: Apache 2.0
Location: /usr/local/lib/python2.7/dist-packages
Requires: grpcio, mock, keras-applications, enum34, protobuf, keras-preprocessing, gast, wheel, absl-py, backports.weakref, six, tensorboard, numpy, termcolor, astor```
```Singularity intel_tensorflow.sif:/tmp/karthik/examples/machinelearning/intel-tensorflow> python -c "import tensorflow as tf; print(tf.pywrap_tensorflow.IsMklEnabled())"
True```

May i know what OS version you are using ?

@jmstover as per our slack conversation, your issue resolved. (you didn't uncomment TF_WHL variable in definition file).
As per your suggestions, i added a default wheel name.


Sam local doesn't return FunctionError and Payload on Error

Description:

Steps to reproduce the issue:

Create any lambda returns error
Use sam local start-lambda to start it
Invoke the Lambda locally via AWS Golang SDK

Observed result:
In the result struct doesn't contains FunctionError and the Payload is empty.
Expected result:
From Lambda API document: https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html
The FunctionError field should contains value Handled or Unhandled. And it should returns message in payload.
Additional environment details (Ex: Windows, Mac, Amazon Linux etc)
Mac OSX 10.13.5
Output of sam --version:
SAM CLI, version 0.5.0

@vrealzhou This can be expected in some cases (locally). More details can be found in this comment. Basically, the return values from the docker container come back in sdtout, SAM CLI has to parse out the last line and then interpret whether the return value was an error or not. We only support the best effort in these cases and have tight restrictions here to avoid false positives.
Can you provide the output from the container (the error response is good enough) and the language your function is written in?

Closing due to no response.


Sat values between 0 and 1

The data pulled by the satellite consumers seems to be between 0 and 1
in dataloader the means and stds are very much not 1.
Have we missed a timings factor somewhere here?
See batch data here in s3
or whole file in s3

@jacobbieker would you be able to look into this?

Yeah, I can

Yeah, the data is scaled to between 0 and 1 here: https://github.com/openclimatefix/Satip/blob/f6583d2fb683b559ff145f4a77f23453b24f3d22/satip/utils.py#L333-L380 to match how the new zarrs are created. Which the v15 dataset I think is earlier than that, so its not in the 0 to 1 range

We could I guess calculate new mean and std dev off the RSS zarrs that are on leonardo, and use that? That should end up with similar results?

Or we it be better to un-normalize the data coming out of the satellte consumer?

It might be better to unnormalize the data from the satellite consumer first, then use the same values as currently being used

Just looking at https://s3.console.aws.amazon.com/s3/object/nowcasting-ml-models-development?region=eu-west-1&prefix=batchml/batchml_0.npy, and the values still seem a bit off.
perhaps we need another look at this

Oh, I know what that might be because of, these values aren't converted to integers like we were before. I can add that tomorrow back in so then they should be properly scaled I think.


Vector Math

Hi,
I love the performance and footprint! I guess basic vector math cannot be added via custom types right ?
Thanks

Hi. You want to add/subtract/... vectors? You can do that. See
https://github.com/basf/rormula
This Python library uses Exmex with a custom data type under the hood for calculating with vectors.

Actually I want to have formulas for dot / cross products and multiplications. Ok, I will take a look thanks.

I see. You could use Exmex and implement those as custom operators with a custom vector data type.

I will read myself into it. But is it possible to access individual vector elements (normal.x) or only the full vector ? (normal).

You can have operators transforming the vectors into scalars. For instance . could be a binary operator. Then, normal.0 could be what I think you mean with normal.x. If you want to name the first component with x then you would need a unary operator and a syntax like get_x(v). The result of this and also of, e.g,  the dot-product is a scalar. You could have your data type to be an enum with vector and scalar variants or you could treat scalars as vectors with 1 element. In Rormula I did the former. The 1-element thing I have not tried myself. Now that I am thinking about it, if you want to create a new vector from scalars you probably can use ; as a binary operator, e.g.,  like (v.1; v.0) to swap the first to elements of a vector v. The comma , has a special meaning during parsing so you cannot use this as your own operator.

I don't need to create vectors, just use them. But would be great if we could have an example how to implement vector math one day, I guess more people are interested in this.

Do you mean 3d-vectors? Or any type of dimension? And can you list all operations that you would need?

3D mostly (2D would be nice but could be derived easily I guess). +, -, *, /, dot, length.

and cross-product probably? I assume that you mean * and / component-wise.

I don't really need cross, but yes why not. Actually a clamp would be cool (also for f64, I don't think this is available right now).


Update stable version in repo from 0.0.0 to 2.0.5

Think about adding version 2.0.5 to stable repository.
Version: stable=0.0.0 (0 days old) => latest=2.0.5 (30 days old)
Installs: stable=0 (0%), latest=276 (26.14%), total=1056
Click to use developer portal
Click to edit
Note: This is an automatically generated message and not personally authored by bluefox!

This issue seems to be outdated.
This issue suggests to update the stable version of this adapter to 2.0.5 but the current stable version is already 2.0.5.
So this issue should be closed.


Always start harvest as harvest user in rpm/deb

There are 2 ways user can start harvest on rpm/deb as below

Systemctl start harvest
bin/harvest start

Case 1: starts Harvest as user "harvest".
Case 2: If this command is executed as root then systemctl command will not be able to stop such pollers and may create issues where some of the pollers never get started.
Proposed solution: Make sure harvest always gets started as "harvest" in rpm/deb

Validated the fix in harvest-21.06.1121-nightly. Marking this as status/done.
[root@scspa2385980001 harvest]# ps aux | grep poller
root        28  0.0  0.0      0     0 ?        I<   May20   0:00 [edac-poller]
harvest  27762  2.5  1.1 1241188 91732 ?       Sl   13:56   1:01 bin/poller --poller F2240-127-26 --loglevel 2 --promPort 12991 --config /opt/harvest/harvest.yml --daemon
harvest  28188 14.6  1.0 1166880 85896 ?       Sl   14:37   0:00 bin/poller --poller umeng_aff300a --loglevel 2 --promPort 12990 --config ./harvest.yml --daemon
root     28197  0.0  0.0 221860  1096 pts/0    R+   14:37   0:00 grep --color=auto poller
[root@scspa2385980001 ~]# systemctl stop harvest
[root@scspa2385980001 ~]# cd /opt/harvest/
[root@scspa2385980001 harvest]# bin/harvest status
Datacenter            Poller                PID        PromPort        Status
+++++++++++++++++++++ +++++++++++++++++++++ ++++++++++ +++++++++++++++ ++++++++++++++++++++
umeng_aff300a         umeng_aff300a                                    not running
F2240-127-26          F2240-127-26                                     not running
+++++++++++++++++++++ +++++++++++++++++++++ ++++++++++ +++++++++++++++ ++++++++++++++++++++
[root@scspa2385980001 harvest]#
[root@scspa2385980001 harvest]# systemctl start harvest
[root@scspa2385980001 harvest]# bin/harvest status
Datacenter            Poller                PID        PromPort        Status
+++++++++++++++++++++ +++++++++++++++++++++ ++++++++++ +++++++++++++++ ++++++++++++++++++++
umeng_aff300a         umeng_aff300a         28285      12990           running
F2240-127-26          F2240-127-26          28292      12991           running
+++++++++++++++++++++ +++++++++++++++++++++ ++++++++++ +++++++++++++++ ++++++++++++++++++++
[root@scspa2385980001 harvest]#


Better error message when netcore runtime is not installed

Description
If a .net core runtime is not installed and user runs a test project targeted to it. Following error is shown:
Microsoft (R) Test Execution Command Line Tool Version <IP_ADDRESS>
 Copyright (c) Microsoft Corporation.  All rights reserved.

Starting test execution, please wait...
 Error: Failed to initialize client proxy: could not connect to test process.

We should show a better message or at least show the stdout of failing dotnet testhost.dll process.
The specified framework 'Microsoft.NETCore.App', version '1.1.0' was not found.
   - Check application dependencies and target a framework version installed at:
       C:\Program Files\dotnet\shared\Microsoft.NETCore.App
   - The following versions are installed:
       1.0.0
       1.0.1
   - Alternatively, install the framework version '1.1.0'.

A similar error message should show for IDE test runs as well.
Steps to reproduce

Target a test app to netcoreapp1.1
Run it with dotnet-cli without netcoreapp1.1 runtime installed

Related https://github.com/Microsoft/vstest/issues/368?

cc @halter73

Addressed dotnet test(cli) scenario in 15.0.0-preview-20120210-02, removed blocking release tag.

Verified in Version 15.3.0 Preview 3.0 [26621.1.d15prerel].


fix(openid4vc-client): set package to private

I didn't set the package to private by accident in my previous PR. Here is the fix to avoid this from happening again.
Signed-off-by: Karim Stekelenburg<EMAIL_ADDRESS>

Codecov Report

Merging #1210 (a1a1ff3) into main (b6f89f9) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main    #1210   +/-   ##
=======================================
  Coverage   87.59%   87.59%
=======================================
  Files         734      734
  Lines       17400    17400
  Branches     2928     2928
=======================================
  Hits        15242    15242
  Misses       2016     2016
  Partials      142      142

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


Licencing issue with dependency codeceptjs/3.5.14/pactum/3.6.0 lightcookie/1.0.25

The package lightcookie is deprecated and Licencing information is not available.
https://github.com/omnent/omnent-licenses/blob/master/licenses/OMv2-FO.txt
Details

CodeceptJS version: 3.5.14
NodeJS Version: 18.x

I don't see this package in our dependency list
npm ls lightcookie
<EMAIL_ADDRESS>/home/davert/projects/codeceptjs
└── (empty)

npm ls pactum
<EMAIL_ADDRESS>/home/davert/projects/codeceptjs
└── (empty)


Extensions update button hidden on narrow space

VSCode Version: 1.3.0 (1.3.0) e724f269ded347b49fcf1657fc576399354e6703
OS Version: OSX El Capitan 10.11.5 (15F34)

Steps to Reproduce:

Open the extension left pane when there are updates
Reduce the space. See attached screenshots.

Actually the buttons were missing for me, the default space was not enough. Maybe buttons in different lines would display better. Or resize themselves proportionally to the width.

Duplicate https://github.com/Microsoft/vscode/issues/8510

@dbaeumer : I want to forward this to the translation team. In Spanish, the Uninstall button seems way too long and includes the word extension unnecessarily.

@joaomoreno you can always assign @johnliu2016 from the translation team.
@johnliu2016 can you have a look.

@joaomoreno Looks this is a loc check-in timing issue, now Spanish button string has been re-translated to "Desinstalación"

Thanks @johnliu2016 !

Thanks for pointing that, @joaomoreno
@lukaschal please send to linguistic review and implement bug fixing
extensionsActions.nls.resx.lcl

Uninstall

Desinstalación

Uninstall Extension

Waiting for linguistic input.

Fixed.
SRC: Uninstall
NEW TGT: Desinstalar


Project member / owner is unable to create istio gateway or virtual service

rancher/rancher:master 6/3 8bfb1af5
A project member without the cluster owner role is not able to create an istio gateway or virtual service.

As a cluster owner, create a cluster
Enable Istio with a gateway
Login as a project owner in the cluster, and import the yaml files here:

https://raw.githubusercontent.com/rancher/rancher/80bdad0ebb8bcd3d2fd9d55dc45c1851443bcf30/tests/validation/tests/v3_api/resource/istio_files/bookinfo.yaml
https://raw.githubusercontent.com/rancher/rancher/80bdad0ebb8bcd3d2fd9d55dc45c1851443bcf30/tests/validation/tests/v3_api/resource/istio_files/bookinfo-gateway.yaml

The second yaml will fail to import with an error:
""message": "services "http:grafana:80" is forbidden: User "u-2wz9d" cannot get resource "services/proxy" in API group "\" in the namespace "istio-system","

Through kubectl the user is unable to list istio resources:
> kubectl get virtualservice -n istions2
Error from server (Forbidden): virtualservices.networking.istio.io is forbidden: User "u-tf87s" cannot list resource "virtualservices" in API group "networking.istio.io" in the namespace "istions2"
> kubectl get gateway -n istions2
Error from server (Forbidden): gateways.networking.istio.io is forbidden: User "u-tf87s" cannot list resource "gateways" in API group "networking.istio.io" in the namespace "istions2

The istio sidecars for the workloads are creating correctly.

rancher/rancher:master fed523b3 6/7

Create cluster
Enable istio
Add user2 as project owner, user3 as project member
Login as user2
Import service yaml from test case
View Service Mesh dashboard
Links are accessible, traffic graph and metrics function.
delete resources
Login as user3
View Service Mesh dashboard
Links are accessible, traffic graph and metrics function.


fix: Ensure drawer icons remain on right in mobile

Description
Ensure drawer icons are right-aligned when in VR mobile view and there are no breadcrumbs.
Related links, issue #, if available: AWSUI-46715
How has this been tested?
Tested locally

Review checklist
The following items are to be evaluated by the author(s) and the reviewer(s).
Correctness

Changes include appropriate documentation updates.
Changes are backward-compatible if not indicated, see CONTRIBUTING.md.
Changes do not include unsupported browser features, see CONTRIBUTING.md.
Changes were manually tested for accessibility, see accessibility guidelines.

Security

If the code handles URLs: all URLs are validated through the checkSafeUrl function.

Testing

Changes are covered with new/existing unit tests?
Changes are covered with new/existing integration tests?

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

should classic also be fixed?


i18n

Hi!
I would like to use your library with internationalization so I was digging the code
Did you notice that moment by itself has the strings your code needs to make the precise range?
Would be nice to make a deeper integration with the dependency and it will gain automatic translation
Are you interested on this issue?
Thanks!!!

:+1:  for this.

:+1:

:+1:

:+1:

:+1:

I have added a returnValueObject parameter to the preciseDiff methods, setting this value to true will cause the method to return a value object containing the numeric results of the diff calculation. Hopefully this should help people who require internationalisation - they can let the library do the maths and use their own language files to turn the result into words.

@codebox it's a pity you can't reuse relativeTime, you almost have all translations there:
relativeTime : {
            future : 'in %s',
            past : '%s ago',
            s : 'a few seconds',
            m : 'a minute',
            mm : '%d minutes',
            h : 'an hour',
            hh : '%d hours',
            d : 'a day',
            dd : '%d days',
            M : 'a month',
            MM : '%d months',
            y : 'a year',
            yy : '%d years'
},

What if you suggest to add ss : '%d seconds', to moment.js?

@IvanRF you mean like this? https://github.com/moment/moment/pull/4183

can someone tell me if there is a solution about this issue ?
I'm trying to translate the result  of
moment("2020-03-17 12:00:00").preciseDiff(moment()); to french but I don't find how to do it...
Every thread refer to #6 but I don't see any tips about it  :(

@borisBelloc probably best you can do it to call preciseDiff(moment(), true) which will give you an object back with the values for seconds, minutes, hours etc and then build up the string yourself

thanks for the fast answer 👍 👍

const append = () => {
        const times = moment.preciseDiff(text, new moment(), true)
        let returnText = ''
        if (times.days > 0) {
            returnText = `${times.days} Gün, ${times.hours} Saat, ${times.minutes} Dakika`
        } else if (times.hours > 0) {
            returnText = `${times.hours} Saat, ${times.minutes} Dakika`
        } else if (times.minutes > 0) {
            returnText = `${times.minutes} Dakika, ${times.seconds} Saniye`
        } else {
            returnText = `Son Dakika Teklif Verilemez`
        }
        return returnText
    }


🐞 with_user breaks with_exec's stdin

What is the issue?
with_exec's stdin parameter enables writing content to the command's standard input before it closes. However, if you switch to another user, it breaks without any notification, preventing the command from executing.
Dagger version
dagger v0.9.7 (registry.dagger.io/engine) darwin/arm64
Steps to reproduce
This works:
import anyio
import dagger
from dagger import dag

async def main():
    async with dagger.connection():
        out = (
            await dag.container()
            .from_("alpine:latest")
            .with_exec(
                ["sh"],
                stdin="""
echo "Hello World!"
for i in $(seq 1 10); do
    echo "$i"
    sleep 1
done
""",
            )
            .stdout()
        )

    print(out)

anyio.run(main)

Outputs:
Hello World!
1
2
3
4
5
6
7
8
9
10

⠼ Disconnecting⏎

This fails:
import anyio
import dagger
from dagger import dag

async def main():
    async with dagger.connection():
        out = (
            await dag.container()
            .from_("alpine:latest")
            .with_exec(["adduser", "-D", "bob"])
            .with_user("bob")
            .with_exec(
                ["sh"],
                stdin="""
echo "Hello World!"
for i in $(seq 1 10); do
    echo "$i"
    sleep 1
done
""",
            )
            .stdout()
        )

    print(out)

anyio.run(main)

Outputs:

⠇ Disconnecting⏎

Log output
No response

Or simplified as GraphQL
This works (stdout is "root\n"):
query {
    container {
        from(address: "alpine:latest") {
            withExec(args: ["adduser", "-D", "bob"]) {
                withExec(args: ["sh"], stdin: "whoami") {
                    stdout
                }
            }
        }
    }
}

This does not (stdout is ""):
query {
    container {
        from(address: "alpine:latest") {
            withExec(args: ["adduser", "-D", "bob"]) {
                withUser(name: "bob") {
                    withExec(args: ["sh"], stdin: "whoami") {
                        stdout
                    }
                }
            }
        }
    }
}


No logs when scoring program fails

Inside the logs of the compute workers, we can see the ingestion program logs, but not the scoring program logs. Why?

This function is a bit shady:
https://github.com/codalab/codabench/blob/835c2188b9f3842b35d3f0ddeecbf515e80ec994/compute_worker/compute_worker.py#L473
It looks like when entering the condition line 486, the scoring program is never run. But in practice it is run.
Lisheng's bundle basically get stuck in the Scoring status even if the program is finished according to the compute worker.

Even if logs can be seen on the interface, there are not shown inside the compute worker


Improve discord workflow

In order to improve our discord workflow, I have some ideas:

[ ] create an opensciencelabs user that would be the owner of the server (move ownership from xmnlab to opensciencelabs)
[ ] remove subs-collaboration channel
[ ] create a new entry into the subs-groups for collaborators, it will assign the role collaborators and the text inside the menu could be something like: "Grupo para todas las personas que quieran colaborar a la comunidad OSL"

What about we start splitting the menus into categories? I can think in three that would be great to have separated.
Something like:
You pronouns:

[ ] They/Their
[ ] He/Him
[ ] She/Her
[ ] Just use my name! (No role)

Spoken languages:

[ ] Espanol
[ ] English
[ ] Portugues
[ ] Francois
[ ] ...

Programming languages:

[ ] C & Cpp
[ ] R
[ ] Rust
[ ] Java
[ ] JS
[ ] Python
[ ] etc

I also think it should be in the landing page of the server

About pronous and maybe could use a bot that adds this info aside the username. Similar to the "#include" discord server (about cpp). So we could have a separated menú for that.
About the other two you mentioned, I need to think a bit about that

Landing page?

Landing page?

In the new features, the Channels & Roles features are the first thing the user sees when entering the server, maybe those menus could be the first page after accepting the terms

Got it. Could you share some reference about that? I am not aware of this new future.

I've only seem one that has these new features, but I found a server that has the menu feature at in the landing page: https://discord.com/invite/skaABHnGWv

It looks like a pro feature, same thing inside its "channels & rules" channel

Yes, it probably needs or boosting or that community feature. But I meant using this model to create the YAGPDB menus similar to that, so when the feature is unlocked, the same model can be converted into the feature

For now it is too much abstract for me XD do you mind giving some concrete example about how it would work?

For now, I propose to do an welcome channel with the rules and roles menus with different categories as this comment. Some of these categories with the new releases would be split the two different channels in the new feature, one to define user's roles, the other to select the channels of interest

Ok got it your point now, makes sense.
I will create the new user today and we can try it today or tomorrow. Thanks


Build fails on Ubuntu arm64

Describe the bug
The build of OpenROAD fails on Ubuntu 22.04 for arm64. The reason is the -m64 flag in src/par/CMakeLists.txt.
Expected Behavior
Building successfully.
Environment
n/a

To Reproduce
Try to build commit 0264023b6c2a8ae803b8d440478d657387277d93 on Ubuntu 22.04 LTS.
Relevant log output
No response
Screenshots
No response
Additional Context
No response

That's what I do now in our Docker build, but should be fixed in the source.


View permissions for != 'Current Page' may not work as expected.

So far, I have tested this with:

2.2 release
2.2.x from develop
mptt 0.4.2
mptt 0.5.1

I have produced a test case in this branch in commits #2b12de480b56095077ff45770aa9e49f30c79345 and #fd5c9d99ac8664e27bc13b01fa4be408d0d8262f though it now strikes me that the test will probably fail for reasons unrelated (the test case asserts page ancestry, and there are other pages used by the test suite that may affect that).
I have a standalone demonstration of the same code without being a unit test, if you can sacrifice the time to create a database. Note that the standalone would require you modify the template and language variables to match your own.
The premise is, given the following page structure:

page 1

page 2

page 3

page 4

page 5

page 6

If I assign any view restrictions to page 6, then only that and it's children/descendents should get those view restrictions. Instead, page 4, the child of a sibling (page 3) also gets those view restrictions. This seems borne out for any of the view permissions other than current page (ACCESS_PAGE)
The crux of the problem is PagePermission.objects.for_page() logic seems to allow for other elements in the same root tree_id to affect the display of otherwise unrelated nodes.

How, if at all, is this related to #1073?

It is related, insofar as #1106 doesn't modify has_view_permission in any way that will fix it. It also changes get_any_page_view_permissions to use the same [potentially problematic, if this ticket is valid] code.

The root issue, to clarify, is the following code:
q = Q(page__tree_id=page.tree_id) & (
            Q(page=page)
            | (Q(page__level__lt=page.level)  & (Q(grant_on=ACCESS_DESCENDANTS) | Q(grant_on=ACCESS_PAGE_AND_DESCENDANTS)))
            | (Q(page__level=page.level - 1) & (Q(grant_on=ACCESS_CHILDREN) | Q(grant_on=ACCESS_PAGE_AND_CHILDREN)))
        )

I think. Which looks one level up for any page who has granted children access, even if it's not a direct ancestor, and does the same for descdendents for any previous level. Making sure the grant_on is limited to a direct ancestor would, I think, fix it.

I'm documenting this here because I do not have a test environment to ensure everything works correctly, but the following seems to fix the specific case I've demonstrated:
q_tree = Q(page__tree_id=page.tree_id)
q_page = Q(page=page)
left_right = {
    'page__%s__lte' % page._meta.left_attr: getattr(page, page._meta.left_attr),
    'page__%s__gte' % page._meta.right_attr: getattr(page, page._meta.right_attr),
}
q_parents = Q(**left_right)
q_desc = (Q(page__level__lt=page.level) & (Q(grant_on=ACCESS_DESCENDANTS) | Q(grant_on=ACCESS_PAGE_AND_DESCENDANTS)))
q_kids = (Q(page__level=page.level - 1) & (Q(grant_on=ACCESS_CHILDREN) | Q(grant_on=ACCESS_PAGE_AND_CHILDREN)))
q = q_tree & q_parents & (q_page | q_desc | q_kids)
return self.filter(q).order_by('page__level')

Specifically, q_parents uses the same logic as mptt's get_ancestors to find parent nodes. The code may well count as shockingly bad, but I don't have the facilities or time to test/refine further at this moment.

To continue documenting my quest to figure this out, with minor modifications, I can run the full test suite without any failures. Specifically, in the test case, before asserting the ancestry is what we expect, I needed to add:
page4 = Page.objects.get(pk=page4.pk)
page6 = Page.objects.get(pk=page6.pk)

Because otherwise the ancestors are just plain wrong. I'm not committing the changes to the test case until someone can confirm that I should need to do that, because it seems like mptt is doing half-magic.
Additionally, to get the test suite to pass, the above suggested fix needs to be modified to:
left_right = {
    'page__%s__lte' % page._meta.left_attr: getattr(page, page._meta.left_attr) or 0,
    'page__%s__gte' % page._meta.right_attr: getattr(page, page._meta.right_attr) or 0,
}

I'm not sure if the addition of or 0 should be there in any final fix, because it's [probably] only required by the test suite, which currently creates what ought to be considered invalid pages (see any pages in the ViewPermissionTests) because they don't use the cms.api, and don't set left/right values for mptt.
Finally, because I'm an idiot, the test case needs a minor fix because it tests for broken functionality, instead of failing. So:
self.assertEqual([u'page 6', u'page 6'], [x.page.get_title() for x in PagePermission.objects.for_page(page4)])

becomes
self.assertEqual([], [x.page.get_title() for x in PagePermission.objects.for_page(page4)])

Thereafter, all tests pass, including the one this ticket covers.

Hi kezabelle,
here you find a big testcase around different page permissions grant on types, combined with PagePermissions.
https://github.com/FrankBie2/django-cms/blob/develop/cms/tests/menu_page_viewperm.py
Hope this birngs more light into the darkness.
Frank

Here is another possiblity to get only the permissions from the anchestors.
https://github.com/FrankBie/django-cms/blob/permissions-merge2/cms/models/managers.py#L348

If I'm reading your code correctly, the PagePermissionManager.for_page_upper_tree() does the same as my proposed fix for PagePermissionManager.for_page() - that is, modify the queryset returned to only contain elements who are direct ancestors. Is there a reason that branch keeps for_page, or is it just vestigial?
Slightly different SQL logic I expect (yours does an IN query, mine just filters as if get_ancestors() were called, no idea which is better), but same intention/result, yes?
Is there a pull request for that somewhere? It doesn't appear to be part of #1106, probably rightly if that's tackling menus. But given you authored it in April, I assume there's a reason it's not in as a fix already?

Yes you are right, same intention, only the anchestors are taken. In April the pull request was on an outdated version.
The many tests do not add the scenario you cover in your test. - I will add that. - I think a combined solution will be the best.

I have updated & documented cc45509415af65b6cdb5ccfc9a186a68b716385a

I think you could close it and add the menu issue pull request.

@kezabelle can you confirm that https://github.com/divio/django-cms/pull/1106 fixes this issue?

Nope, because it only attacks potential problems in the menu (which, yes, it appears to fix, but we all know menus + permissions is a beast, I'm depending on what I can see, and what the tests prove.) This patch addresses an issue where a Page is not accessible, even though none of it's ancestors set permissions on it.
By way of example, if I set a view restriction on /page1/members/ and then want to give out a link (email, IM, whatever) to someone to visit /page1/nonmembers/about/, the permissions of the members page (same tree, ancestral cousin) may stop them seeing it.
Currently, the only way of avoiding that is to use the CURRENT_PAGE permission everywhere you need restrictions.

The tests check the menu item visiblitiy, and the accessiblity of the items.
Have you checked https://github.com/divio/django-cms/pull/1106/files#L4R492
as this is a testcase to check the scenario you are speaking about.

fixed in 22975526cd ?


should trigges be available through api gateway?

> wsk trigger create apigw
ok: created trigger apigw
> wsk api-experimental create /hello /trigger post apigw
ok: created API /hello/trigger POST for action /_/apigw
https://$HOST/hello/trigger
> curl https://$HOST/hello/trigger -X POST
{
  "error": "Resource by this name exists but is not in this collection.",
  "code": ...
}

That's expected I suppose since the gateway hard codes the collection (and the response above doesn't validate that apigw is an action or trigger). Should the gateway allow triggers to be surfaced as well?

@rabbah cool find !, we should allow user to configure triggers since they are fire and forget, only actions. today the routemgmt actions that configure doesn't have validation for the action value, we should cover this with a test case once we add validation that in the backend for different things:

action is an action and not a trigger
action exist
action can be invoke with provided ow auth key

cc @mdeuser

we should allow user to configure triggers since they are fire and forget, only actions.

you mean should NOT?

Ah I just read the Slack and Rays post now it make sense. https://www.raymondcamden.com/2017/02/02/working-with-openwhisk-triggers
It helps hide the OW auth key, and create 1 - many solutions.
So in theory it should work, why it didn't work again?
It's the same API, a POST to the url provided. Or maybe the construction of the url assumes {actions}
We need to dig into it, and make it a feature I agree and not block.

@rabbah hum, that I think about it it might be confusing in some aspect exposing triggers with apigw, what if we start with an experimental web api, allow to add annotation web-export to triggers and you get an url that you can fire a trigger anonymous with a GET or POST.

We can always revisit after we take apigw out of experimental and revisit how to properly expose triggers from end to end including APIGW interface experience.

The current design/implementation did not take into account using triggers as the API backend.  It's possible to relax this restriction though.

closing as duplicate of #3558.


Integration not working with HA Core 2023.5

The problem
Integration reports all sensors unavailable after upgrading to Homeassistant Core 2023.5
Version of zcsazzurro integration having the issue?
0.0.5
Version of Home Assistant Core having the issue?
2023.5
Anything in the logs that might be useful for us?
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 258, in _async_refresh
    self.data = await self._async_update_data()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 217, in _async_update_data
    return await self.update_method()
  File "/config/custom_components/zcsazzurro/__init__.py", line 109, in async_fetch
    result = await zcs_portal.fetch_real_time_data()
  File "/config/custom_components/zcsazzurro/api.py", line 44, in fetch_real_time_data
    result = await self._fetch_data(payload)
  File "/config/custom_components/zcsazzurro/api.py", line 64, in _fetch_data
    rest = RestData(
  File "/usr/src/homeassistant/homeassistant/components/rest/data.py", line 47, in __init__
    self._ssl_cipher_list = SSLCipherList(ssl_cipher_list)
  File "/usr/local/lib/python3.10/enum.py", line 385, in __call__
    return cls.__new__(cls, value)
  File "/usr/local/lib/python3.10/enum.py", line 710, in __new__
    raise ve_exc
ValueError: 30 is not a valid SSLCipherList

Additional information
No response

Related to https://github.com/home-assistant/core/pull/91078

Fixed by https://github.com/aturri/ha-zcsazzurro/releases/tag/v0.0.6


debug.log file creation

Hi,
Thanks for making this project. Really like it already.
However, would you be able to move the default debug.log file creation behind to an optional flag instead? I guess creating the file is not necessary, until you want to start the app in debug mode.

https://github.com/dlvhdr/gh-prs/pull/14


Fixed shallow copy (reference copying) in SOG.Copy

Several SOG members are references to other objects and the MemberwiseClone() copies the reference. So changes to things like sit target lists, or LSL scripted targets, bounding box, etc in one copy of a SOG affected all copies of that SOG that were shift-copied. This resulted in Mike's report of sit targets being cleared in the original after a shift-copy, and is probably responsible for some of the LSL target-related bugs, as well as other object "quantum entanglement" reports.
Reviewed SceneObjectGroup and EntityBase for other possible cases of this shallow copy problem pattern. Didn't find any further cases but did notice that the SOG.Name field (defined in EntityBase but overridden with the RootPart.Name in SOG.Name) wasn't kept in sync on changes. So a second commit also means that changes to the SOG.Name will now also update the object name to keep it in sync with the root part name. This mostly only affects debugging and other symbolic dumps since the Name getter override in SOG pulls the name from the root part.  But this keeps the objects consistent just in case.

This is an important PR for 0.9.29 as it addresses a regression with sit targets, as well as several other possible problems with LSL scripted targets, bounding box calculations for objects, and corresponding locks which may have been previous shared across multiple shift-copied object instances.

Looks good.


Update ESLint resolver repository in README

As it seems that old reference was not being maintained, update the repository reference so ESLint can track Babel 7 configuration file babel.config.js and also custom configurations like extensions.

Thanks for the PR.
I took a look at the code in your fork and it seems to only load the config when specified in a very specific way. It's still very common to have .babelrc and .babelrc.js files in projects or to have babel.config.js export a function or have any JS code in it.
I think this will cause confusion with the readme not explaining exactly what's accepted, and people will get unclear error messages from the current implementation.
A note about only supporting babel.config.js in the current working directory and it has to literally be module.exports = <json5> would clarify when you need to duplicate the config into eslint. A better error message if the file fails to parse as JSON5 would also make debugging the issue easier.
I'd prefer to have these problems solved before linking to it.

Closing for staleness.


Cannot find the sample

The github link does not give you the download link and finally clicking on the tab gives me the master which is a LOT of projects.

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

ID: 6719f08e-3bd7-dc1a-71df-f2ef9fbca9d8
Version Independent ID: 7096fdb3-612e-9e00-bd0b-8ea4886a09ce
Content: Add a model to a Razor Pages app in ASP.NET Core
Content Source: aspnetcore/tutorials/razor-pages/model.md
Product: aspnet-core
Technology: aspnetcore-tutorials
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

That's for different stage of the tutorial.
Why do you need the completed sample?

The tutorial here:
https://docs.microsoft.com/en-us/aspnet/core/tutorials/razor-pages/model?view=aspnetcore-2.2&tabs=visual-studio
Links to sample code to here:
https://github.com/aspnet/AspNetCore.Docs/tree/master/aspnetcore/tutorials/razor-pages/razor-pages-start
But there does not appear to be a way to download just one project.

By Rick Anderson
View or download sample code (how to download).


Add 'merged_edges' as a result column of the 'simplify_graph' function

This is a pretty straightforward change.
Basically, when simplifying a graph, it's sometimes useful to know exactly which edges were merged.
In my research, one of the first things that I do is to simplify a huge OSM graph to make it a little more manageable performance-wise. However, sometimes I need to know exactly which edges were merged in order to do route matching with OSRM responses. Therefore, this simply adds a column to the graph created by the simplify_graph function to let one go back to the unsimplified graph from the simplified graph.
Note: this is not possible to do based only on the list of merged OSM IDs as these IDs can span multiple edges.
I did not provide as code example as I thought this was simple enough.
Thanks,
David

The tests are currently failing.

@gboeing Should be fixed now :)

@davidmurray you might want to git rebase main to get CI working. Lastly, could you also provide some runtime averages to see if this creates any noticeable performance hit? Graph simplification can be computationally intense, so we just want to ensure nothing substantially hits the runtime when making changes to the algorithm. Thanks.


adr-87: customer facing metrics naming policy

ADR-87: Customer Facing Metrics Naming Policy
This ADR proposes a naming policy that can be applied to all of our customer facing metrics so that they are consistent and clear to our end users.
See related issue: https://github.com/bf2fc6cc711aee1a0c2a/architecture/issues/61

Thanks for the feedback @tombentley!
@emmanuelbernard also agreed on having an architecture pattern for this so I was thinking of adding those details you mentioned above for the naming policy in that document then linking that in the Proposal section of this adr. wdyt?

@JameelB you mean the AP points to a section of the ADR?
I think I would prefer the other way around intuitively, no strong arguments.
To be honest, I think having a full copy is easier to consume.

@emmanuelbernard I meant the other way around. This ADR point to the AP. The AP will have details/structure of the naming policy. Basing this on @tombentley's comment on this issue.

This is ready for initial review. Please take a look when you get a chance @pb82 @tombentley @k-wall @StevenTobin @riccardo-forina

bump for review @pb82 @tombentley @k-wall @StevenTobin @riccardo-forina

Thank you for writing this @JameelB, it's a big +1 from me. It's been a bit painful to understand which metrics to use to build the dashboard, and the naming convention we have now doesn't help. Any effort in improving the DX has the green light in my book.
The only bit I'm not sure I like is the rate5m part for rate metrics like |rhosak_incoming_bytes_rate5m. As a user, I'd probably like to ask for the aggregation through a parameter, but I understand the challenge this would force us to address.

Thanks for the review @riccardo-forina! Allowing the aggregation period to be specified via a parameter can certainly be separated from this adr. But what do you think of not including this in the name? Instead of  rhosak_incoming_bytes_rate5m, it'll just be rhosak_incoming_bytes_rate. The aggregation period for rate metrics will be documented for now, @tombentley also mentioned this at a previous point.

how important it is to the customer to know the aggregation period? If so, should it be part of the metric name, or is is sufficient to have it in the documentation?

If we don't include it in the name, it would provide us flexibility to allow users to specify the aggregation period at a later stage when we decide to do that without having to change the name of the metric. For other services that wish to use this pattern, they could also consider this feature in their initial design of their own metrics API.

I think we can keep this for a future ADR if needed, there is nothing inherently wrong in having the rate5m in the name right now.

@k-wall I've addressed your comments, please have a look again when you get a chance.
@tombentley @StevenTobin @wtrocki Can you take a look at this when you get a chance too? Would like to get your approval here :)

LGTM

@k-wall are you Ok with approving and merging this ADR? As discussed, implementation details will be in the form of an Epic Brief.

@machi1990 and @emmanuelbernard are the remaining reviewers who haven't LGTM'd. Any further feedback, or can we now merge this?

bumping @tombentley @emmanuelbernard :)

I've LGTM'd. Emmanuel might be able to look at it towards the end of this week and it might be good if he could have another look, but if you're blocked on this then I'm happy to merge it. Let me know!

I've LGTM'd. Emmanuel might be able to look at it towards the end of this week and it might be good if he could have another look, but if you're blocked on this then I'm happy to merge it. Let me know!

Not blocked on this, can wait for Emmanuel to take a look :) Thanks @tombentley!

Thanks for the reviews! No other changes on my side. Snce all reviewers have LGTM'ed, please go ahead and merge when you get a chance @tombentley @emmanuelbernard


feat(highlight): ns=0 to set :highlight namespace

Hi,
I'm not sure if this is something useful to you, to implement in kanagawa.
https://www.reddit.com/r/neovim/comments/sihuq7/psa_now_you_can_set_global_highlight_groups_ie/

That's very nice, I will let this new feature settle in for a while and update. Setup time is already ~2ms so I don't think there's any rush to optimize performance

I've recently created a new branch supporting the new feature. Feel free to try it out. Just be aware that, for some reason I am still investigating, BufferLine plugin behaves strangely now.

Thanks for your work! I played with it a little and see some problems:
If i put this in my init.lua
local default_colors = require("kanagawa.colors").setup()

local overrides = {
    Comment = { fg = "#928374" },
    Constant = { fg = "#d3869b" },
    Delimiter = { fg = "#bdae93" },
    EndOfBuffer = { fg = "#504945" },
    FloatBorder = { fg = "#665c54" },
    Identifier = { fg = "#83a598" },
    IncSearch = { fg = "#000000", bg = "#fe8019" },
    LineNr = { fg = "#7c6f64" },
    MatchParen = { fg = "NONE", bg = "#665c54" },
    Normal = { fg = "#ebdbb2", bg ="#000000" },
    NormalFloat = { bg ="#504945" },
    Operator = { fg = "#ebdbb2" },
    Pmenu = { bg = "#504945" },
    PmenuSel = { bg ="#83a598" },
    PreProc = { fg = "#8ec07c" },
    Search = { fg = "#000000", bg = "#fabd2f" },
    Special = { fg = "#fe8019" },
    SpecialChar = { fg = "#fb4934" },
    SpecialKey = { fg = "#a89984" },
    StatusLine = { bg = "#504945" },
    String = { fg = "#b8bb26" },
    Structure = { fg = "#8ec07c" },
    TSAttribute = { fg = "#8ec07c" },
    TSPunctDelimiter = { fg = "#bdae93" },
    TabLineFill = { fg = "#776b61", bg = "#3c3836" },
    TabLineSel = { fg = "#b8bb26", bg = "#3c3836" },
    Title = { fg = "#b8bb26" },
    Type = { fg = "#fabd2f" },
    Underlined = { fg = "#83a598" },
    VertSplit  = { bg = "NONE" },
    Visual = { bg = "#665c54" }
}

require'kanagawa'.setup({ overrides = overrides })
vim.cmd('colorscheme kanagawa')

It's OK. But if I put something from this list to overrides:
    Boolean = { fg = "#d3869b", style = "NONE" },
    ErrorMsg = { fg = "#000000", bg = "#fb4934", style = "bold" },
    Function = { fg ="#b8bb26", style = "bold" },
    Keyword = { fg = "#fb4934", style = "NONE" },
    MoreMsg = { fg = "#fe8019", bg = "#000000", style = "bold" },
    NonText = { fg = "#504945", style = "NONE" },
    Statement = { fg = "#fb4934", style = "NONE" },
    Todo = { fg = "#000000", bg = "#689d6a", style = "bold,italic" },
    WarningMsg = { fg = "#fb4934", style = "bold" }

And open something it's vomiting this:
Error detected while processing /home/dupa/.config/nvim/init.lua:
E5113: Error while calling lua chunk: /home/dupa/.config/nvim/init.lua:39: Vim(lua):E5108: Error executing lua ...te/pack/packer/start/kanagawa.nvim/lua/kanagawa/init.lua:6: invalid key: style
stack traceback:
        [C]: in function 'nvim_set_hl'
        ...te/pack/packer/start/kanagawa.nvim/lua/kanagawa/init.lua:6: in function 'set_highlights'
        ...te/pack/packer/start/kanagawa.nvim/lua/kanagawa/init.lua:48: in function 'load'
        [string ":lua"]:1: in main chunk
        [C]: in function 'cmd'
        /home/dupa/.config/nvim/init.lua:39: in main chunk
stack traceback:
        [C]: in function 'cmd'
        /home/dupa/.config/nvim/init.lua:39: in main chunk
Press ENTER or type command to continue

So for now, I'm going back to main repo. :P It probably need some tweaking in Neovim base code.

Thanks for clarifications.


No example for environment variable when setting Application Insights connection string

The documentation says:
"You can set a connection string in code or by using an environment variable or a configuration file.
Environment variable
Connection string: APPLICATIONINSIGHTS_CONNECTION_STRING"
But then there's an example only for using a configuration file. Also, it doesn't mention if there's a preferred method (is there?).

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

ID: 180c6ca8-2bdc-4685-ebc5-aaea2236937f
Version Independent ID: 74f63340-7428-a3a7-6d6c-701d3be4348d
Content: Connection strings in Application Insights - Azure Monitor
Content Source: articles/azure-monitor/app/sdk-connection-string.md
Service: azure-monitor
Sub-service: application-insights
GitHub Login: @AaronMaxwell
Microsoft Alias: aaronmax

@orshwartz
Thanks for your feedback! We will investigate and update as appropriate.


Greenlock v2 End of Life - Action Required

Hello friends,
Greenlock v2 (which I assume you're using with this module, since that's what it was designed for) has reached end-of-life and is will stop working this October.
The next version is in the works.
I'd love your support for Greenlock v3 so that I can give you time to update, integrate, and test:
https://indiegogo.com/at/greenlock

Thank you for letting us know! We recently switched to a different ACME client which was easier to work with for our use case. However, we appreciate all the work you've done with Greenlock over the years and hope it will continue to be maintained for others!


Patch to read and write to return the sid

To be able to track multiple parallel requests, I simply added:
return self.header.SID;
to FinsClient.prototype.read and FinsClient.prototype.write.
It is possible to have this patch in the code?
Thank you.
GT

Mhhh..... This way I can see two different problems: I need to use a callback that otherwise I don't need, and because I'm using a single client to run multiple different read & write, and I need the SID to be able to identify the correct answer, so the "client" object in the meantime could have changed.

Hi,
This is a problem of not validate the SID when returning information.
In my example, 2 nodes have two questions to the controller (Omron CJ2M) at the same time (frame 281, 282). For a reason (bug of the manufacturer) that I do not know, the two answers will come to the second node, since the automaton replaced the Dst Port (frame 283, frame 284. Since it does not validate the SID ... it is that it causes bad data on the node.

The way I handle SIDs without the need for callbacks or for adding a return is in the client.on('reply')
  if(msg.sid==1) {
    // code to handle SID 1
  }
  else if(msg.sid==2) {
    // code to handle SID 2
  }
  else if(msg.sid==3) {
    // code to handle SID 3
  }
  // etc
}


[BUG]longhorn 1.1.1， can't click the detach button in the volume column PVC

long1.1.1 can't click the detach button in the volume column PVC

cc @smallteeths

Seems this is already fixed in v1.1.2 and master.


Make Registry installable via Rancher Catalog

Add information to make registry available via subdomain name (i.e. add labels for reverse proxy routing).
E.g.: app-registry.staging.teco.edu
ETCD should be routed through port 80.
Ideally the ETCD browser should appear at app-registry.staging.teco.edu/config.
Alternatively as short term workaround config.app-registry.staging.teco.edu

Add to Catalog here: https://github.com/ScaleIT-ORG/scaleit-public-catalog

this way is available now config.app-registry.staging.teco.edu.
The app will be added to the catalog in several soon.

Problem by starting from catalog


Fix typo with extra single quote in syntax

--recursive'
should be
--recursive

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

Verified the update.
@lerigner Thanks for submitting this fix.


lightgbm is killed for extreme parameter values

During hyper parameter optimization a wide range of parameters is tried. Some might be considered extreme values. For some of these lightGBM is killed. I think this is a segmentation fault. I would like to catch the thing. It is not an exception. So far I could not catch the signal. I want to handle the signal somehow and send the. failure to the optimization code.
Environment info
Operating System: osx 10.12.5
CPU: MacBook Pro (15-inch, 2017) / 3,1 GHz Intel Core i7
C++/Python/R version: latest from GitHub; python
Error Message:
[LightGBM] [Warning] Unknown parameter categorical_column=
[1]    10157 killed

for suggested parameters of optimization process of:
"bagging_fraction": 0.3,
  "learning_rate": 0.3,
  "max_bin": 20000,
  "max_depth": 50,
  "min_child_weight": 2000,
  "n_estimators": 10,
  "num_leaves": 20000,
  "scale_pos_weight": 0.01,
  "subsample": 1.0

and fixed parameters of:
'boosting_type': 'dart', 'reg_alpha': 0, 'reg_lambda': 2, 'is_unbalance': True,
                             'min_split_gain': 0, 'min_child_samples': 10, 'colsample_bytree': 0.8, 'subsample_freq': 3,
                             'subsample_for_bin': 50000

@geoHeil
I think it is caused by memory overhead : https://stackoverflow.com/questions/726690/who-killed-my-process-and-why
The memory consumption may is large in some settings.
you can try to set the parameter histogram_pool_size,  whose unit is "MB" .

I will try this, but assuming it might still fail - is there a way. I can catch this like an exception and report a failure to the optimization process?

https://github.com/Microsoft/LightGBM/issues/562 is an interesting read and histogram_pool_size is the caching for the calculated histogram values.

@geoHeil do not use such large parameter value as they are unpractical (and never yielding good performance especially in hyperparameter tuning, other than slowing down tuning):
"num_leaves": 20000

It is so big it will require a massive amount of RAM. Even 4095 (2^12 - 1) is already a lot and too much for most cases. For instance, I expect a 150GB dataset in RAM to require hundred of TBs with such number of leaves.

So far I could not catch the signal. I want to handle the signal somehow and send the. failure to the optimization code.

try:
  my_learning_task()
except:
  my_fallback_task()

does not work in Python for LightGBM?

Thanks.
Simply catching the exception is not enough for me. A combination of

reducing the search space as suggested
setting histogram_pool_size
catching signals
seems to do the job.


Pre-generated License Keys

It would be nice if pre-generated license keys could be sold.

Thank you @rizaergun for the feature suggestion – much appreciated 🙏🏼 Just to clarify: You mean the ability to import license keys generated externally into Polar for resale?
Converting this as a discussion until work commences


Create AZ Function for necessary transformations from MMG-Based model into MMG-SQL model

In order to dynamically create a MMG-In-SQL model from the MMG-Based model schema, we still need to read mmg configuration and HL7 data type fields configurations.
The function will still generate a single JSON with all the transformations. DBX will then split the Json into multiple tables/Data frames linked by message_uuid.

-[x] single blocks single elements
-[x] single blocks repeated elements
-[ ] repeated blocks with elements
-[ ] consume from MMG-based
-[ ] send to MMG-SQL topics
-[ ] Databricks


Support High DPI Scaling

Seems like the app doesn't scale properly and has somewhat blurry text when scaled for high DPI screens.
Is this something anyone has looked at before? I tried fixing the issue following these steps and it mostly worked:
https://docs.microsoft.com/en-us/dotnet/framework/winforms/high-dpi-support-in-windows-forms
But that would require upgrading to .Net 4.7; is that something we could do?
Also, even following those steps, there are still a lot of graphical bug to fix. It seems like this post has a lot of good things to look for. https://stackoverflow.com/questions/22735174/how-to-write-winforms-code-that-auto-scales-to-system-font-and-dpi-settings
Without proper Scaling today (On a 4k Monitor in Windows 10 scaled to 150%):

With proper scaling (On a 4k Monitor in Windows 10 scaled to 150%):

Oh, I hadn't noticed. Perhaps the PR #362 will help? Please take a look at it.

Cool. I think that PR fixes the issue at least from my initial testing. I'll reply in that PR. Or do we want that PR to reference this issue? I've updated this issue with before an after pictures of the scaling problem.

Let that PR reference this issue if you have tested it and it makes it better.

Let me put in a real connection string and test all the different views. Also it might be nice if someone on Windows 7 tested this since scaling support is different.

Thanks @ErikMogensen  and @beaubgosse and sorry for coming late to the conversation :) Can I close the issue?

No, as @beaubgosse writes in PR #362 it is not fixed. We need someone with a 4K monitor and knowledgeable in WinForms to fix this.

Feel free to reopen the issue, for the moment I will close it.

Hi all,
I was looking for high DPI support in Service Bus Explorer because I have new 4K monitors, and I came across this issue. I wonder if there are plans to add this. If not, I was thinking on helping to add this, I have some Windows Forms background from some years ago (I'm not an expert but I can do some things 😄)
I may take this as a start: https://github.com/paolosalvatori/ServiceBusExplorer/pull/362

@jmoralesv that'd be great. Thank you 🙂

Hello @SeanFeldman
I've been making progress on this issue by updating most of the forms and controls to support high DPI screens, as you can see from my fork, however I have a question regarding the Repair and Resubmit Message window (MessageForm in the solution).
In this form I found two SplitContainer controls:

One horizontal allows the user to modify the size of the two containers at the left (Message Text and Message Custom Properties)

Another one that allows the same thing between the Message Properties container on the right and the other two containers on the left.

My question is if these two SplitContainer controls are still needed, because their presence complicates how the child controls inside of the three said containers are rendered in a high DPI screen. If those SplitContainers can be removed, it would be helpful, so I can introduce a TableLayoutContainer which can handle the resizing of the child controls automatically. However, the user won't be able to resize manually the three containers.
The same question applies to the Message tab, when seeing the messages in a topic for example:

If the SplitContainers must be preserved so users can keep using this feature, I can fallback to manual resize calculation, it's not desirable but doable.
Thanks for your help with this.

Good UX question. I might be a little subjective but let me lay out the rationale for the three parts and how those are usually used.
The message payload is usually where the focus is primarily in the context of a single message. For a list of messages, it's the standard information such as message ID, sequence number, size label and enqueued with expiration times. Having that as a split container position in the left-top section makes sense. If looking at the list of messages, the 2nd split container is needed to see the payload. Bu the context of a single message, it's used to show custom properties (user properties or custom headers).
It would be OK to show custom properties/headers on the right side, but the need to show the type (which is not needed for the application/system properties/headers) requires more horizontal real estate.
I wonder if for the list view, we could move the message payload to the right and make the two columns equal in size. The listing of message would still be enough to show all the info associated with each message w/o the need to resize the column. While the right side column would have (in this order) message payload, system properties, and custom properties. If the right side column is enough to show the payload, most likely, it would be enough for both types of properties.
@paolosalvatori and @ErikMogensen, would you agree to that and do you have any suggestions and ideas to help @jmoralesv?

Sean, could you make a drawing of what you propose? I assume you could move around things on a scrteen shot using a program such as Paint.

Hello, is there any update for the question I posted in January?
I'm looking forward to hearing from you soon.
Thanks!

Sorry for the late reply, @jmoralesv. I think I understand what you suggest @SeanFeldman and I think it is an improvement. However, I think what is sizeable today should still be sizeable. Besides supporting existing behavior, there is #609 request font selection, which may require sizeable windows.

Thanks for your reply @ErikMogensen. I will proceed then with the manual resize in the code for those two windows.

Hi @SeanFeldman @ErikMogensen
I wanted to apologize for the long delay on this one as it took longer than expected to finish all the changes for supporting High DPI scaling in Service Bus Explorer, besides some personal and health issues that I was able to overcome last year.
You can take a look at the fork's history to see the changes: https://github.com/jmoralesv/ServiceBusExplorer/commits/main/?author=jmoralesv
As I'm planning on finishing some final tests this week on Windows 10 (I've been testing in Windows 11 for the last months), I wanted to know some things before opening a pull request:

What other Windows OS do you think it would be worth testing?
Is it ok to bring a PR for one commit (to squash all history)? I'm also thinking of rebasing my current fork on top of this repo's main branch, but I'll figure out if that is possible somehow.

Let me know if there is anything else I should be aware of before opening the PR this week.
Thanks!

There is no need to apologize, @jmoralesv. This is not a paid job, and help is very much appreciated.

What other Windows OS do you think it would be worth testing?

Windows 10/11 is excellent. You could give it a try on Windows Server 2022.

Is it ok to bring a PR for one commit (to squash all history)? I'm also thinking of rebasing my current fork on top of this repo's main branch, but I'll figure out if that is possible somehow.

Number of commits doesn't matter. We squash merge anyway. This is more for your convenience.

Let me know if there is anything else I should be aware of before opening the PR this week.

I encourage to open PRs while you're working and mark those as draft. This way you can have discussions on the code that's changing, Q&A w/o waiting till the end, etc.

@jmoralesv , I totally agree with what Sean wrote.
Looking at your branch, I see it's a lot of work and may become a great pain to get into the Main branch. To lessen the risk of other PRs causing issues I suggest you create a real PR for the forms and controls you are done with. No need to fix all of them before creating a real PR. That will also be a verification of what you have done so far.

Hi @SeanFeldman @ErikMogensen
I've just opened a draft pull request, for a first set of changes, showing the initial support for high DPI in Service Bus Explorer: https://github.com/paolosalvatori/ServiceBusExplorer/pull/797
These changes address the MainForm, as well as other forms and controls, but not all forms and controls, as those would make the PR bigger, which would be helpful when reviewing the code, as you mentioned in your comments before.
From my side, my concern would be that, if the PR gets merged, the updated forms would be fine, but users can complain about the rest of the forms, which would not be ideal, I guess.
Fortunately, I have all my original commits in a separate branch in my fork, so I can cherry pick any other change you might want to see applied from there 😄 that's the way I followed for this first PR by the way.
Please let me know how you want to proceed with this, thank you!

I vote in favour of several smaller PRs over one big PR. Don't think the rest of the team will object.

@SeanFeldman thank you, good to know that so I can cherry pick my changes for the next PRs I will open, one after another 😄

Hi @SeanFeldman @ErikMogensen I've just opened a second PR for your review: https://github.com/paolosalvatori/ServiceBusExplorer/pull/800
Let me know what you think about it, thanks!


Export critical variables

Unless you want to duplicate functionality and/or values when integrating with this package, some variables need to be exported so they can be reused. Namely the wuid and action types.

@aohua Saw the merge, closing this ticket thanks!