[fix][admin] Include non persistent partitioned topics while retreiving topics list (#19316)

Include non persistent partitioned topics while retreiving topics list

Fixes #19316

Master Issue: #xyz

PIP: #xyz

Motivation

While retrieving the list of topics, non-persistent partitioned topics are not listed in the given list
Modifications
From the code, non persistent partitioned topics were include to the getListAsync

retrieve non persistent partition topics with get request of /admin/v2/non-persistent/public/default/partitioned
retrieve metadata for each non persistent topic data with get request of /admin/v2/non-persistent/public/default/{topic}/partitions
iterate over partition and form full topicname
append future list to the existing non persistent list

Verifying this change

[x] Make sure that the change passes the CI checks.

(Please pick either of the following options)
This change is a trivial rework / code cleanup without any test coverage.
(or)
This change is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
Added new test case to test whether the partitioned topics retrieved properly along with non partitioned topics
(example:)

Added integration tests for end-to-end deployment with large payloads (10MB)
Extended integration test for recovery after broker failure

Does this pull request potentially affect one of the following parts:

If the box was checked, please highlight the changes

[ ] Dependencies (add or upgrade a dependency)
[ ] The public API
[ ] The schema
[ ] The default values of configurations
[ ] The threading model
[ ] The binary protocol
[x] The REST endpoints
[x] The admin CLI options
[ ] The metrics
[ ] Anything that affects deployment

Documentation

[ ] doc
[ ] doc-required
[x] doc-not-needed
[ ] doc-complete

Matching PR in forked repository
PR in forked repository:

Any progress on this PR?


Feat flexovl flex 1360

FLEX-1360

This pull request makes the build fail.

SonarQube analysis reported 4 issues

 3 major
 1 minor

Watch the comments in this conversation to review them.
2 extra issues
Note: The following issues were found on lines that were not modified in the pull request. Because these issues can't be reported as line comments, they are summarized here:

 FirmwareManagementEndpoint.java#L225: Remove this unused method parameter "request".
 FirmwareManagementEndpoint.java#L121: Define a constant instead of duplicating this literal "Exception: {}, StackTrace: {}" 3 times.

All is well.

This pull request makes the build fail.

SonarQube analysis reported 3 issues

 1 critical
 2 major

Watch the comments in this conversation to review them.
1 extra issue
Note: The following issues were found on lines that were not modified in the pull request. Because these issues can't be reported as line comments, they are summarized here:

 FirmwareManagementEndpoint.java#L225: Remove this unused method parameter "request".

All is well.

SonarQube analysis reported 3 issues

 1 critical
 2 major

Watch the comments in this conversation to review them.
1 extra issue
Note: The following issues were found on lines that were not modified in the pull request. Because these issues can't be reported as line comments, they are summarized here:

 FirmwareManagementEndpoint.java#L225: Remove this unused method parameter "request".

All is well.

SonarQube analysis reported 2 issues

 2 major

Watch the comments in this conversation to review them.
1 extra issue
Note: The following issues were found on lines that were not modified in the pull request. Because these issues can't be reported as line comments, they are summarized here:

 FirmwareManagementEndpoint.java#L225: Remove this unused method parameter "request".

All is well.


Add support for vue-property-decorator in Vue 3

Detect if it uses __vccOpts, and if so, add to _o, because it no longer uses .options like it did with Vue 2.

Awesome work @lights0123, thanks for the contribution.


override approvers in policy if resource has approvers defined

Is your feature request related to a problem? Please describe.
The approvers in the provider files are at provider level and would be applicable to all resources for that provider.
But if we need an different approver in the same provider for one or two particular resources, we use the details column in the resources table to add specific approver for that resource only.
Whenever a new resource(dataset) gets added, the details is empty. and we have to manually populate the details column. and till the time details is populated, if an appeal is raised against such a resource - the guardian app panics and crashes.
panic: reflect: call of reflect.Value.Type on zero Value

goroutine 80 [running]:
reflect.Value.Type({0x0, 0x0, 0x133b74b})
  /opt/hostedtoolcache/go/1.17.7/x64/src/reflect/value.go:2262 +0x12e
github.com/odpf/guardian/core/appeal.(*Service).resolveApprovers(0xc0004b02d0, {0xc00053dfc0, 0x1, 0xc0013276c0}, 0xc001e6d9b0)
  /home/runner/work/guardian/guardian/core/appeal/service.go:500 +0x3e6
github.com/odpf/guardian/core/appeal.(*Service).fillApprovals(0xc0004b02d0, 0xc0005aaa00, 0xc000cc5860)

Describe the solution you'd like
Would like to have a way to override approvers in policy definition itself, in a way such as even if the details column is empty/nil. then the approvers are taken from the policy file itself.

Would like to have a way to override approvers in policy definition itself, in a way such as even if the details column is empty/nil. then the approvers are taken from the policy file itself.

I think this is possible since expression is supported in the approvers field in policy. We just need to write conditions as such.

Whenever a new resource(dataset) gets added, the details is empty.

Anyway, I think this is still need to be fixed. We should merge the existing resource details & new resource details

I think this is possible since expression is supported in the approvers field in policy. We just need to write conditions as such.

Yes. In the end, the solution that we implemented for our policy definitions was done in this way only.
approvers:
      - '$appeal.resource.details == nil<EMAIL_ADDRESS>: $appeal.resource.details.owner'

I think this is possible since expression is supported in the approvers field in policy. We just need to write conditions as such.

Yes. In the end, the solution that we implemented for our policy definitions was done in this way only.
approvers:
      - '$appeal.resource.details == nil<EMAIL_ADDRESS>: $appeal.resource.details.owner'


Build custom eirini images in the kubecf pipeline

Is your feature request related to a problem? Please describe.
Build eirini images in the kubecf pipeline.
https://github.com/SUSE/kubecf/pull/138/files/c905f7cf990aefd2ec21aa0060596ddea1edc57f#diff-8e190b66df231646a528bed8a0145181R106
Describe the solution you'd like
Build the images as part of the kubecf pipeline.
Describe alternatives you've considered
n/a
Additional context
These are custom images to support using an S3 blobstore with eirini.

Does this need to be in the kubecf pipeline? Wouldn't it make more sense as a separate one (since AFAIK nothing in the image depends on kubecf.git)?

All eirini images are built in our own pipelines.


Improvements on security and portability.

Hello,
I found this tool through a friend. It's actually usedful, but I couldn't get it to work out-of-the-box (on an Ubuntu).
So I looked into it, and fixed it.
I then carried along, and further improved the script overall (on security, reliability, readability). I think I did beneficial improvement, but you be the juge of that.
I might continue to improve the script in the following days, but I'm opening this pull request early so as to get feedback from you.
Regards, Alexis.

I'm surprised to see that it works in windows but has an error in linux. However I am testing on WSL2, that could be an issue.
Welcome to album2vid!

Traceback (most recent call last):
  File "/mnt/c/Users/nick/CS/album2vid/album2vid2.py", line 165, in <module>
    ppfiles = preprocess_files(source_files, temp_dir)
  File "/mnt/c/Users/nick/CS/album2vid/album2vid2.py", line 67, in preprocess_files
    subprocess.call(first_pass_cmd)
  File "/usr/lib/python3.10/subprocess.py", line 345, in call
    with Popen(*popenargs, **kwargs) as p:
  File "/usr/lib/python3.10/subprocess.py", line 966, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/lib/python3.10/subprocess.py", line 1717, in _execute_child
    and os.path.dirname(executable)
  File "/usr/lib/python3.10/posixpath.py", line 152, in dirname
    p = os.fspath(p)
TypeError: expected str, bytes or os.PathLike object, not NoneType


Implement RSpec

We have agreed that RSpec will be our testing tool of choice for the app. Testing helps catch errors in code so it is best to start building a good test suite for our codebase before it gets too large. Once RSpec is implemented we can then implement TravisCI for testing before deploys to production.

I added TravisCI and a badge, and also merged in the initial pull request to put in the testing gems. Now all we need are the actual tests to be written.

@mzagaja So is this just a matter of converting the existing Minitest specs over to RSpec now?

Yeah not too exciting but figured it'd be good housekeeping and a chance to familiarize with the codebase for someone. Sonya and I have only done RSpec testing so that was sort of the genesis of this task since we were planning to stick with RSpec going forward.

So I've implemented a bills controller spec, currently implementing teams controller spec.

Now working on invitations controller spec

I'm actually going to make this issue more granular, one issue to one missing test.

Cool, I'm closing this issue. Future missing tests should be should be added as their own separate issue.


ActiveChecker.php returns true while it should return false

Given Menu items and routes:
List all items: /items
Create a new item: /items/create
And I am on /items/create
ActiveChecker::isActive returns true on both items because it checkExactOrSub instead of CheckExact

This is intentional. Define custom active routes for the /services menu item as explained in the README: https://github.com/jeroennoten/Laravel-AdminLTE#active-menu-items

You realise that any resource route must be overriden then? Pretty weird when you are building a CRUD app for multiple resource models no?

It is very useful when you have a menu item with e.g. an edit button on the page that links to a sub-URL.
However, you are free to implement your own ActiveChecker, and replace it in the filters array in the config. Refer to https://github.com/jeroennoten/Laravel-AdminLTE#custom-menu-filters
Moreover, your point is valid and it may be a good idea to have an option in the config to enable/disable active checking for sub-URLs. I would definitely accept a pull requests that adds this.


Physical node detection broken on PAMI-LRTS with partitions

Original issue: https://charm.cs.illinois.edu/redmine/issues/70

Per Jim:

I'm seeing some physical node detection isues on BG/Q.
pami seems to set physical nodes == nodes:
Info: Running on 384 processors, 32 nodes, 32 physical nodes.
pamilrts seems to set physical nodes == processors:
Info: Running on 384 processors, 32 nodes, 384 physical nodes.
Both of these were running -n 8 c4 +ppn 12.

And again:

It looks like for current git Charm++ the issue is confined to replicas. Both pami and pamilrts report correct physical node counts for non-replica runs, but with replicas pamilrts seems to set physical nodes = num pes in each replica:
Running on 384 processors, 32 nodes, 384 physical nodes.
I'd settle for physical nodes = nodes since that doesn't violate any assumptions that code using this information might have made.

Original date: 2013-03-06 23:21:45

The bit of NAMD code printing this is
src/main.C
188:    iout << iINFO << "Running on " << CkNumPes() << " processors, "
189-         << CmiNumNodes() << " nodes, "
190-         << CmiNumPhysicalNodes() << " physical nodes.\n" << endi;

Original date: 2013-03-07 00:03:58

This was because CmiNumNodes gets its value from Converse which is aware of SMP threads, whereas CmiNumPhysicalNodes gets its value from TopoManager which case of partitioning resorts to a linear chain as topology. Fixed this by making TopoManager aware of node structure even when partitioning is being done.

Original date: 2013-03-07 00:51:54

Is this all working on Cray and clusters too?

Original date: 2013-03-08 00:34:13

Yes, this is a non-issue on Cray and cluster platforms.


Update website URL to http://testingwithfrank.github.io

I noticed that the domain testingwithfrank.com is expired. Maybe just update all references to use http://testingwithfrank.github.io?

Just came across this project again and ran into the same issue. Can you please update this?


Add tests

Hi @cbrnr!
I've added some simple tests, but this should help setup automatic testing. This commit introduces DataDeps as a test dependency. This is a library to download and prepare data. It also adds simple tests for two minimal examples from the repo xdf-modules/example-files.

Thanks @abcsds – I'd prefer to keep the dependencies to a minimum, do you think we could also just use Base.download to fetch the files?

Ah! My new favorite function. It downloads it to a temporary folder and returns the path! Base.download is depricated since 1.6 though. They redirect to Downloads.download, which works seamlesly.
I left Tests. I'm thinking it's useful.

Thanks @abcsds, I added testsets for each file before merging.


Linting bash scripts using shellcheck

This PR fixes some anti-patterns on the bash scripts found on scripts/ as reported by shellcheck.
If you don't have shellcheck installed you can use it via docker with:
docker run --rm -v $(pwd)/scripts:/mnt/scripts koalaman/shellcheck:v0.8.0 $(ls scripts/*.sh)

Here are the issues it found:
In scripts/benchmark.sh line 25:
    for I in 0
            ^-- SC2043 (warning): This loop will only ever run once. Bad quoting or missing glob/expansion?

In scripts/benchmark.sh line 33:
for I in 0
        ^-- SC2043 (warning): This loop will only ever run once. Bad quoting or missing glob/expansion?

In scripts/benchmark.sh line 43:
for I in 0
        ^-- SC2043 (warning): This loop will only ever run once. Bad quoting or missing glob/expansion?

In scripts/install_zig.sh line 26:
if [ `uname -m` == 'arm64' ] || [ `uname -m` == 'aarch64' ]; then
    ^--------^ SC2046 (warning): Quote this to prevent word splitting.
    ^--------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                  ^--------^ SC2046 (warning): Quote this to prevent word splitting.
                                  ^--------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.

Did you mean:
if [ $(uname -m) == 'arm64' ] || [ $(uname -m) == 'aarch64' ]; then

In scripts/install_zig.sh line 45:
    ZIG_URL=`wget -4 --quiet -O - https://ziglang.org/download/index.json | grep -F "$ZIG_TARGET" | grep -F "$ZIG_RELEASE" | awk '{print $2}' | sed 's/[",]//g'`
            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.

Did you mean:
    ZIG_URL=$(wget -4 --quiet -O - https://ziglang.org/download/index.json | grep -F "$ZIG_TARGET" | grep -F "$ZIG_RELEASE" | awk '{print $2}' | sed 's/[",]//g')

In scripts/install_zig.sh line 47:
    ZIG_URL=`curl --silent https://ziglang.org/download/index.json | grep -F "$ZIG_TARGET" | grep -F "$ZIG_RELEASE" | awk '{print $2}' | sed 's/[",]//g'`
            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.

Did you mean:
    ZIG_URL=$(curl --silent https://ziglang.org/download/index.json | grep -F "$ZIG_TARGET" | grep -F "$ZIG_RELEASE" | awk '{print $2}' | sed 's/[",]//g')

In scripts/install_zig.sh line 57:
ZIG_TARBALL=`basename "$ZIG_URL"`
            ^-------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.

Did you mean:
ZIG_TARBALL=$(basename "$ZIG_URL")

In scripts/install_zig.sh line 58:
ZIG_DIRECTORY=`basename "$ZIG_TARBALL" .tar.xz`
              ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.

Did you mean:
ZIG_DIRECTORY=$(basename "$ZIG_TARBALL" .tar.xz)

In scripts/install_zig.sh line 65:
    wget -4 --quiet --show-progress --output-document=$ZIG_TARBALL $ZIG_URL
                                                      ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                  ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean:
    wget -4 --quiet --show-progress --output-document="$ZIG_TARBALL" "$ZIG_URL"

In scripts/install_zig.sh line 67:
    curl --silent --progress-bar --output $ZIG_TARBALL $ZIG_URL
                                          ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                      ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean:
    curl --silent --progress-bar --output "$ZIG_TARBALL" "$ZIG_URL"

In scripts/install_zig.sh line 72:
tar -xf $ZIG_TARBALL
        ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean:
tar -xf "$ZIG_TARBALL"

In scripts/install_zig.sh line 73:
rm $ZIG_TARBALL
  ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean:
rm "$ZIG_TARBALL"

In scripts/install_zig.sh line 78:
mv $ZIG_DIRECTORY zig
  ^------------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean:
mv "$ZIG_DIRECTORY" zig

In scripts/install_zig.sh line 83:
ZIG_VERSION=`$ZIG_BIN version`
            ^----------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.

Did you mean:
ZIG_VERSION=$($ZIG_BIN version)

In scripts/upgrade_ubuntu_kernel.sh line 5:
DISTRIBUTION=`lsb_release -i | awk '{print $3}'`
            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.

Did you mean:
DISTRIBUTION=$(lsb_release -i | awk '{print $3}')

In scripts/upgrade_ubuntu_kernel.sh line 6:
if [ $DISTRIBUTION != "Ubuntu" ]; then
    ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean:
if [ "$DISTRIBUTION" != "Ubuntu" ]; then

In scripts/vopr.sh line 26:
    zig/zig run src/simulator.zig $BUILD_MODE -- $1
                                                ^-- SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean:
    zig/zig run src/simulator.zig $BUILD_MODE -- "$1"

In scripts/vopr.sh line 29:
    for I in {1..1000}
    ^-^ SC2034 (warning): I appears unused. Verify use (or export if used externally).

For more information:
  https://www.shellcheck.net/wiki/SC2034 -- I appears unused. Verify use (or ...
  https://www.shellcheck.net/wiki/SC2043 -- This loop will only ever run once...
  https://www.shellcheck.net/wiki/SC2046 -- Quote this to prevent word splitt...

@sentientwaffle my pleasure. Fixed the typo.


API Proposal: Add Custom Data API to Azure Device Provisioning Service SDK

Overview
The driver of this feature is to provide a mechanism for clients to send custom data to the provisioning service to be used by web hook developers to have insight in the device attempting to register.  The programming flow for this would be as follows:

The developer will create a provisioning handle as detailed in the existing samples
After receiving the provisioning handle, the user will call the Prov_Device_LL_SetProvisioningData with the json that need to be transmitted
Once the device is registered with DPS and receives the IoTHub credentials the user can call Prov_Device_LL_GetProvisioningData to get back the custom data from the Service if any.

By design the custom data that is sent must be sent as json.  Due to the json parser paradigm the SDK must validate this to ensure it is valid json.  No other validation shall be done by the SDK, any other validation, schema or otherwise, will be done by the Provisioning service.
Sample Code (C)
PROV_DEVICE_LL_HANDLE handle = Prov_Device_LL_Create(global_prov_uri, id_scope, prov_transport));
if (handle != NULL)
{
    // Set the custom data to be used in the registration
    Prov_Device_LL_SetProvisioningData(handle, "{ \"iotcModelId\": \"myTemplateId\" }");
    Prov_Device_LL_Register_Device(handle, register_device_callback, &user_ctx, registation_status_callback, &user_ctx)
    do
    {
        Prov_Device_LL_DoWork(handle);
    } while(not_registered);

    const char* dps_custom_data = Prov_Device_LL_GetProvisioningData(handle);
    if (dps_custom_data != NULL)
    {
    // Process data
    }
    Prov_Device_LL_Destroy(handle);
}

New API Surface added (C)
Reference to existing Device Provisioning Service client APIs (link)
DPS client SDK additions
/*
* Handle – The provisioning device handle that is
* dataField – The json data that is sent to the DPS Service
* return: The result of the operation
*/
PROV_DEVICE_RESULT Prov_Device_LL_SetProvisioningData(PROV_DEVICE_LL_HANDLE handle, const char* dataField);

/*
* Handle – The provisioning device handle that is
* return: The resulting json that was specified by the service
*/
const char* Prov_Device_LL_GetProvisioningData(PROV_DEVICE_LL_HANDLE handle);

Arch. Board Review feedback:

Change API naming / signature to be clear that this requires JSON
Naming for methods should have each verb separated in the API naming (e.g. Set_Provisioning_Data, Register_Device)
Consider taking binary data in Set_Provisioning_Data


qemu-aarch64-softmmu: Number of SMP CPUs requested (10) exceeds max CPUs supported by machine 'mach-virt' (8)

Describe the issue
When running the VM I get the error message "qemu-aarch64-softmmu: Number of SMP CPUs requested (10) exceeds max CPUs supported by machine 'mach-virt' (8)"
Configuration

UTM Version: 2.3.1(38)
OS Version: MacOS 12.0.1
Apple Silicon - M1Pro 10CoreCPU,16core GPU

Debug log
debug.log

I noticed this also. By default I believe it tries to assign all cores to the vm which is 10(macbook Pro M1 and M1 Max but for some reason it does not work and spits this error out. Just override how many CPU's to pass to the VM and it will work fine.

I noticed this also. By default I believe it tries to assign all cores to the vm which is 10(macbook Pro M1 and M1 Max but for some reason it does not work and spits this error out. Just override how many CPU's to pass to the VM and it will work fine.

Yes it works now.... Thanks a lot :)

I noticed this also. By default I believe it tries to assign all cores to the vm which is 10(macbook Pro M1 and M1 Max but for some reason it does not work and spits this error out. Just override how many CPU's to pass to the VM and it will work fine.

But for some reason while I'm setting it up the cursor suddenly stops working and I cannot continue further, this is happening every time I'm trying to set the VM

turn off force multicore if you have it enabled.

UTM -> Preferences there’s an option to only use performance cores.

I noticed this also. By default I believe it tries to assign all cores to the vm which is 10(macbook Pro M1 and M1 Max but for some reason it does not work and spits this error out. Just override how many CPU's to pass to the VM and it will work fine.

Where can I configure the number of cores allocated to QEMU? I can't find it
Thanks

Thanks all. This worked for me on my M1 Macbook Pro 14"
To summarize:

Go to the virtual box's settings: System > Show Advanced Settings > enter 8 CPU Cores and make sure Force Multicore is unchecked
Go to UTM preferences and check "use only performance cores by default"

After starting the VM and selecting "Install Ubuntu Server" there was quite a delay but it eventually kicked in. Then I continued to follow the instructions here:
https://mac.getutm.app/gallery/ubuntu-20-04
Good luck!

Duplicate of #3180

The following worked with me :

Go to Setting -> System - Check Show Advance Settings.
A CPU Cores, I put 8.
Saved and start the VM.
Worked with any issues.

I had the same issue, limited CPU cores to 8 and the VM works.


feat: add nvim-navic support

I'm not familiar with navic. Could you provide a before and after screenshot of this ? :blush:

Sure - it goes in your status line. Before:

After:

Ah, so it's just plain by standard. I skimmed the codebase and assumed it inherited from standard hl groups.
Speaking of... how would this look if you took the same definitions as given here https://github.com/andersevenrud/nordic.nvim/blob/main/lua/nordic/colors/syntax.lua ?

Search for "For highlights to work," in https://github.com/SmiteshP/nvim-navic/blob/master/README.md (it's hidden under a fold).
Not sure I understand your question. Are you proposing adding the Navic* highlight names to the various sections in that file?

With as good a mapping as I could get - there are things like NavicIconsFile that don't have an equivalent in syntax.lua.
This is what the colors would look like in code:
return function(c, s, cs)
    return {
        { 'NavicIconsFile', c.blue, c.gray },
        { 'NavicIconsModule', c.blue, c.gray },
        { 'NavicIconsNamespace', c.dark_white, c.gray },
        { 'NavicIconsPackage', c.cyan, c.gray },
        { 'NavicIconsClass', c.cyan, c.gray },
        { 'NavicIconsMethod', c.dark_white, c.gray },
        { 'NavicIconsProperty', c.blue, c.gray },
        { 'NavicIconsField', c.blue, c.gray },
        { 'NavicIconsConstructor', c.dark_white, c.gray },
        { 'NavicIconsEnum', c.yellow, c.gray },
        { 'NavicIconsInterface', c.yellow, c.gray },
        { 'NavicIconsFunction', c.dark_white, c.gray },
        { 'NavicIconsVariable', c.dark_white, c.gray },
        { 'NavicIconsConstant', c.dark_white, c.gray },
        { 'NavicIconsString', c.green, c.gray },
        { 'NavicIconsNumber', c.purple, c.gray },
        { 'NavicIconsBoolean', c.purple, c.gray },
        { 'NavicIconsArray', c.cyan, c.gray },
        { 'NavicIconsObject', c.cyan, c.gray },
        { 'NavicIconsKey', c.blue, c.gray },
        { 'NavicIconsNull', c.dark_white, c.gray },
        { 'NavicIconsEnumMember', c.cyan, c.gray },
        { 'NavicIconsStruct', c.cyan, c.gray },
        { 'NavicIconsEvent', c.purple, c.gray },
        { 'NavicIconsOperator', c.blue, c.gray },
        { 'NavicIconsTypeParameter', c.dark_white, c.gray },
        { 'NavicText', c.dark_white, c.gray },
        { 'NavicSeparator', c.cyan, c.gray },
    }
end

A lot more dark_white and generally monochromatic compared to the code in the PR right now. I personally don't prefer this look.

I think your definitions looked better as well.
Could you maybe look at the aerial definitions to see if there's a need to synchronize the changes ?

Correct :)
On Tue, 25 Oct 2022, 16:41 Dan Sully, @.***> wrote:

I don't use aerial myself. But it has a lot fewer definitions. I assume
you'd want to use the navic colors in place of what is there where they
align?
—
Reply to this email directly, view it on GitHub
https://github.com/andersevenrud/nordic.nvim/pull/87#issuecomment-1290665108,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AABHODGC6WHIRARIXQOVUOTWE7WP5ANCNFSM6AAAAAARNIEY6A
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

Done in #88


Feature: Implementing Continuous OPE Estimators

new feature
estimators_continuous.py

implement the following Continuous OPE estimators

KernelizedInverseProbabilityWeighting
KernelizedSelfNormalizedInverseProbabilityWeighting
KernelizedDoublyRobust

implement some kernel functions

triangular_kernel
gaussian_kernel
epanechnikov_kernel
cosine_kernel

reference
Nathan Kallus and Angela Zhou.
"Policy Evaluation and Optimization with Continuous Treatments", AISTATS, 2018.
meta_continuous.py

implement ContinuousOffPolicyEvaluation that streamlines OPE with continuous actions. This works as follows.

# (1) Synthetic Data Generation
dataset = SyntheticContinuousBanditDataset(dim_context=5)
bandit_feedback = dataset.obtain_batch_bandit_feedback(
    n_rounds=10000, min_action_value=-10, max_action_value=10,
)

# (2) Off-Policy Evaluation
ope = ContinuousOffPolicyEvaluation(
    bandit_feedback=bandit_feedback,
    ope_estimators=[KernelizedIPW(kernel="epanechnikov", bandwidth=0.02)]
)
estimated_policy_value = ope.estimate_policy_values(
     action_by_evaluation_policy=action_by_evaluation_policy,
)

tests

add the following tests wrt the new features

test_ipw_estimators_continuous.py
test_dr_estimators_continuous.py
test_meta_continuous.py
test_kernel_functions.py

1 and 2 include some performance tests of the continuous OPE estimators using synthetic data as well as input checks.
4 checks whether the kernel functions satisfy the conditions described on page 9 of the following lecture slides: http://ibis.t.u-tokyo.ac.jp/suzuki/lecture/2015/dataanalysis/L9.pdf

fix descriptions (mostly English expressions) of docstrings

I'm just letting you know:
IDE (PyCharm) generates a non-default argument error, though I do not find any specific runtime error.

Other than the above one point, LGTM!

@nmasahiro Thanks!


More tests

Codecov Report

Merging #43 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #43   +/-   ##
=======================================
  Coverage   88.54%   88.54%
=======================================
  Files          18       18
  Lines         288      288
=======================================
  Hits          255      255
  Misses         33       33

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 15839b2...4535a3c. Read the comment docs.


turn_off_outside_office_hours default true

What does this change?
https://github.com/wellcomecollection/editorial-photography-ingest/issues/28
How to test
Once applied, check the events tab for this cluster in the AWS console. It should have a scale down event at the end of the day, and come back up in the morning.
How can we measure success?
archivematica-staging ECS cluster shuts down outside office hours.
Have we considered potential risks?
The cluster can be restarted manually if it fails to come back up
This is the staging cluster, that is not used all that much anyway
terraform plan output
Terraform will perform the following actions:

  # module.stack.aws_iam_role.scheduler[0] will be created
  + resource "aws_iam_role" "scheduler" {
      + arn                   = (known after apply)
      + assume_role_policy    = jsonencode(
            {
              + Statement = [
                  + {
                      + Action    = "sts:AssumeRole"
                      + Effect    = "Allow"
                      + Principal = {
                          + Service = "scheduler.amazonaws.com"
                        }
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + create_date           = (known after apply)
      + force_detach_policies = false
      + id                    = (known after apply)
      + managed_policy_arns   = (known after apply)
      + max_session_duration  = 3600
      + name                  = "archivematica-staging-instance-scheduler"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags_all              = {
          + "Department"                = "Digital Production"
          + "Division"                  = "Culture and Society"
          + "Environment"               = "Staging"
          + "TerraformConfigurationURL" = "https://github.com/wellcomecollection/archivematica-infrastructure/tree/master/terraform/stack_staging"
          + "Use"                       = "Archivematica"
        }
      + unique_id             = (known after apply)

      + inline_policy (known after apply)
    }

  # module.stack.aws_iam_role_policy.allow_instance_scaling[0] will be created
  + resource "aws_iam_role_policy" "allow_instance_scaling" {
      + id          = (known after apply)
      + name        = (known after apply)
      + name_prefix = (known after apply)
      + policy      = jsonencode(
            {
              + Statement = [
                  + {
                      + Action   = [
                          + "ec2:stopInstances",
                          + "ec2:startInstances",
                        ]
                      + Effect   = "Allow"
                      + Resource = "arn:aws:ec2:eu-west-1:299497370133:instance/i-00e70a530ea76c61f"
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + role        = "archivematica-staging-instance-scheduler"
    }

  # module.stack.aws_scheduler_schedule.instances_scale_down[0] will be created
  + resource "aws_scheduler_schedule" "instances_scale_down" {
      + arn                          = (known after apply)
      + group_name                   = "default"
      + id                           = (known after apply)
      + name                         = "archivematica-staging-instances-scale-down"
      + name_prefix                  = (known after apply)
      + schedule_expression          = "cron(0 19 ? * MON,TUE,WED,THUR,FRI *)"
      + schedule_expression_timezone = "UTC"
      + state                        = "ENABLED"

      + flexible_time_window {
          + mode = "OFF"
        }

      + target {
          + arn      = "arn:aws:scheduler:::aws-sdk:ec2:stopInstances"
          + input    = jsonencode(
                {
                  + InstanceIds = [
                      + "i-00e70a530ea76c61f",
                    ]
                }
            )
          + role_arn = (known after apply)
        }
    }

  # module.stack.aws_scheduler_schedule.instances_scale_up[0] will be created
  + resource "aws_scheduler_schedule" "instances_scale_up" {
      + arn                          = (known after apply)
      + group_name                   = "default"
      + id                           = (known after apply)
      + name                         = "archivematica-staging-instances-scale-up"
      + name_prefix                  = (known after apply)
      + schedule_expression          = "cron(0 7 ? * MON,TUE,WED,THUR,FRI *)"
      + schedule_expression_timezone = "UTC"
      + state                        = "ENABLED"

      + flexible_time_window {
          + mode = "OFF"
        }

      + target {
          + arn      = "arn:aws:scheduler:::aws-sdk:ec2:startInstances"
          + input    = jsonencode(
                {
                  + InstanceIds = [
                      + "i-00e70a530ea76c61f",
                    ]
                }
            )
          + role_arn = (known after apply)
        }
    }

  # module.stack.module.clamav_service.module.service.module.service.aws_iam_role.scheduler[0] will be created
  + resource "aws_iam_role" "scheduler" {
      + arn                   = (known after apply)
      + assume_role_policy    = jsonencode(
            {
              + Statement = [
                  + {
                      + Action    = "sts:AssumeRole"
                      + Effect    = "Allow"
                      + Principal = {
                          + Service = "scheduler.amazonaws.com"
                        }
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + create_date           = (known after apply)
      + force_detach_policies = false
      + id                    = (known after apply)
      + managed_policy_arns   = (known after apply)
      + max_session_duration  = 3600
      + name                  = "am-staging-clamav-office-hours-scaling"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags_all              = {
          + "Department"                = "Digital Production"
          + "Division"                  = "Culture and Society"
          + "Environment"               = "Staging"
          + "TerraformConfigurationURL" = "https://github.com/wellcomecollection/archivematica-infrastructure/tree/master/terraform/stack_staging"
          + "Use"                       = "Archivematica"
        }
      + unique_id             = (known after apply)

      + inline_policy (known after apply)
    }

  # module.stack.module.clamav_service.module.service.module.service.aws_iam_role_policy.allow_update_service[0] will be created
  + resource "aws_iam_role_policy" "allow_update_service" {
      + id          = (known after apply)
      + name        = (known after apply)
      + name_prefix = (known after apply)
      + policy      = jsonencode(
            {
              + Statement = [
                  + {
                      + Action   = "ecs:UpdateService"
                      + Effect   = "Allow"
                      + Resource = "arn:aws:ecs:eu-west-1:299497370133:service/archivematica-staging/am-staging-clamav"
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + role        = "am-staging-clamav-office-hours-scaling"
    }

  # module.stack.module.clamav_service.module.service.module.service.aws_scheduler_schedule.turn_off_in_the_evening[0] will be created
  + resource "aws_scheduler_schedule" "turn_off_in_the_evening" {
      + arn                          = (known after apply)
      + group_name                   = "default"
      + id                           = (known after apply)
      + name                         = "am-staging-clamav-turn_off_in_the_evening"
      + name_prefix                  = (known after apply)
      + schedule_expression          = "cron(0 19 ? * MON,TUE,WED,THUR,FRI *)"
      + schedule_expression_timezone = "UTC"
      + state                        = "ENABLED"

      + flexible_time_window {
          + mode = "OFF"
        }

      + target {
          + arn      = "arn:aws:scheduler:::aws-sdk:ecs:updateService"
          + input    = jsonencode(
                {
                  + Cluster      = "arn:aws:ecs:eu-west-1:299497370133:cluster/archivematica-staging"
                  + DesiredCount = 0
                  + Service      = "am-staging-clamav"
                }
            )
          + role_arn = (known after apply)
        }
    }

  # module.stack.module.clamav_service.module.service.module.service.aws_scheduler_schedule.turn_on_in_the_morning[0] will be created
  + resource "aws_scheduler_schedule" "turn_on_in_the_morning" {
      + arn                          = (known after apply)
      + group_name                   = "default"
      + id                           = (known after apply)
      + name                         = "am-staging-clamav-turn_on_in_the_morning"
      + name_prefix                  = (known after apply)
      + schedule_expression          = "cron(0 7 ? * MON,TUE,WED,THUR,FRI *)"
      + schedule_expression_timezone = "UTC"
      + state                        = "ENABLED"

      + flexible_time_window {
          + mode = "OFF"
        }

      + target {
          + arn      = "arn:aws:scheduler:::aws-sdk:ecs:updateService"
          + input    = jsonencode(
                {
                  + Cluster      = "arn:aws:ecs:eu-west-1:299497370133:cluster/archivematica-staging"
                  + DesiredCount = 2
                  + Service      = "am-staging-clamav"
                }
            )
          + role_arn = (known after apply)
        }
    }

  # module.stack.module.gearman_service.module.service.module.service.aws_iam_role.scheduler[0] will be created
  + resource "aws_iam_role" "scheduler" {
      + arn                   = (known after apply)
      + assume_role_policy    = jsonencode(
            {
              + Statement = [
                  + {
                      + Action    = "sts:AssumeRole"
                      + Effect    = "Allow"
                      + Principal = {
                          + Service = "scheduler.amazonaws.com"
                        }
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + create_date           = (known after apply)
      + force_detach_policies = false
      + id                    = (known after apply)
      + managed_policy_arns   = (known after apply)
      + max_session_duration  = 3600
      + name                  = "am-staging-gearman-office-hours-scaling"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags_all              = {
          + "Department"                = "Digital Production"
          + "Division"                  = "Culture and Society"
          + "Environment"               = "Staging"
          + "TerraformConfigurationURL" = "https://github.com/wellcomecollection/archivematica-infrastructure/tree/master/terraform/stack_staging"
          + "Use"                       = "Archivematica"
        }
      + unique_id             = (known after apply)

      + inline_policy (known after apply)
    }

  # module.stack.module.gearman_service.module.service.module.service.aws_iam_role_policy.allow_update_service[0] will be created
  + resource "aws_iam_role_policy" "allow_update_service" {
      + id          = (known after apply)
      + name        = (known after apply)
      + name_prefix = (known after apply)
      + policy      = jsonencode(
            {
              + Statement = [
                  + {
                      + Action   = "ecs:UpdateService"
                      + Effect   = "Allow"
                      + Resource = "arn:aws:ecs:eu-west-1:299497370133:service/archivematica-staging/am-staging-gearman"
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + role        = "am-staging-gearman-office-hours-scaling"
    }

  # module.stack.module.gearman_service.module.service.module.service.aws_scheduler_schedule.turn_off_in_the_evening[0] will be created
  + resource "aws_scheduler_schedule" "turn_off_in_the_evening" {
      + arn                          = (known after apply)
      + group_name                   = "default"
      + id                           = (known after apply)
      + name                         = "am-staging-gearman-turn_off_in_the_evening"
      + name_prefix                  = (known after apply)
      + schedule_expression          = "cron(0 19 ? * MON,TUE,WED,THUR,FRI *)"
      + schedule_expression_timezone = "UTC"
      + state                        = "ENABLED"

      + flexible_time_window {
          + mode = "OFF"
        }

      + target {
          + arn      = "arn:aws:scheduler:::aws-sdk:ecs:updateService"
          + input    = jsonencode(
                {
                  + Cluster      = "arn:aws:ecs:eu-west-1:299497370133:cluster/archivematica-staging"
                  + DesiredCount = 0
                  + Service      = "am-staging-gearman"
                }
            )
          + role_arn = (known after apply)
        }
    }

  # module.stack.module.gearman_service.module.service.module.service.aws_scheduler_schedule.turn_on_in_the_morning[0] will be created
  + resource "aws_scheduler_schedule" "turn_on_in_the_morning" {
      + arn                          = (known after apply)
      + group_name                   = "default"
      + id                           = (known after apply)
      + name                         = "am-staging-gearman-turn_on_in_the_morning"
      + name_prefix                  = (known after apply)
      + schedule_expression          = "cron(0 7 ? * MON,TUE,WED,THUR,FRI *)"
      + schedule_expression_timezone = "UTC"
      + state                        = "ENABLED"

      + flexible_time_window {
          + mode = "OFF"
        }

      + target {
          + arn      = "arn:aws:scheduler:::aws-sdk:ecs:updateService"
          + input    = jsonencode(
                {
                  + Cluster      = "arn:aws:ecs:eu-west-1:299497370133:cluster/archivematica-staging"
                  + DesiredCount = 1
                  + Service      = "am-staging-gearman"
                }
            )
          + role_arn = (known after apply)
        }
    }

Plan: 12 to add, 0 to change, 0 to destroy.

This simply turns the staging cluster on and off on the same schedule as the prod one.
However the staging cluster is only used sporadically, so we could make further savings by only launching it when it's actually needed.
We know it's needed when something is uploaded to wellcomecollection-archivematica-staging-transfer-source
We could use S3 notifications and EventBridge to handle the scale up.
Not sure what should handle the scale down though.


License vs CC0

Given that IG publications use the well-known license graphics, IHE needs to harmonize their license

https://profiles.ihe.net/GeneralIntro/ch-9.html

with well-known license terms such as CC0
Note CC0 is what HL7 is using, and is also what our IGs are claiming.
Also, IHE should really have a well-known URL for license. Something like

https://ihe.net/license.html

today all our github repos are indicating CC-BY-SA-4.0
need to evaluate

CC-BY-SA-4.0 - https://creativecommons.org/licenses/by-sa/4.0/
CC BY 4.0 - https://creativecommons.org/licenses/by/4.0/
CC0 - https://creativecommons.org/choose/zero/

discussed in IHE-FHIR WG - Likely will go with (CC BY 4.0).

Decide on CC license to use @ccarr
Write Document Change Request @ccarr
Update www.ihe.net to have a License indication on the about page @MaryLJ
Update Chapter 9 with indication of the CC license chosen @MaryLJ
Update governance document to indicate the CC license chosen @ccarr
create a redirect for http://ihe.net/license.html --> https://profiles.ihe.net/GeneralIntro/ch-9.html @MaryLJ
Update the IG publisher footer @JohnMoehrke
Update the profiles.ihe.net index footers to have CC icon, redirecting to ch-9.html @JohnMoehrke
Update footer on www.ihe.net to indicate the CC icon, redirecting to ch-9.html @MaryLJ

note current icon is a CC-BY icon
source icons - https://creativecommons.org/about/downloads/


[WIP] Repair dev-1.18 and sync master (redo #19221)

This PR replicates #19221.
This PR is necessary because #19221 was merged manually instead of with Prow. The manual merge applied the default repo merge strategy of squash. Sync PRs must merge with the merge method.
Note that #19221 had the tide/merge-method-merge label applied, but the manual merge overrode the tide label.
For more information about why the merge method matters, see https://github.com/kubernetes/test-infra/issues/13065#issuecomment-505954229.
Effect on open PRs
When this PR merges, all open PRs based on dev-1.18 will probably need to rebase.
Double check the merge strategy

Make sure this PR has the label tide/merge-method-merge. 👉

Merge this PR via Prow with /lgtm and /approve. Do not merge this PR manually.

/close

/reopen

/close


State clearly not to open a new issue to enrol

Just a suggestion, you may want to rephrase it as you like.
The goal is to make it clearer to comment on the existing issue rather than opening a new one that creates noise and will eventually be closed anyway.
Cheers!

@nobitagit thanks!!! :wink:


Add composeSchema helper

Looks useful. I guess https://6.dev-docs.plone.org/volto/blocks/extensions.html would be the place to mention this in docs.


Remove Foundation_DIR argument from Yams build in bootstrap

Prevent passing Foundation_DIR to Yams build from bootstrap script
Motivation:
When building a toolchain, Foundation's modules have already been installed into the destination toolchain by time SwiftPM builds. However, the bootstrap script also passes Foundation_DIR to the Yams build. Currently this is fine as Foundation's CMake dependencies don't expose any public clang modules, however with the new swift-foundation re-core we will be adding multiple clang modules (CoreFoundation, _FoundationCShims, _FoundationICU, etc.) to the dependency graph and installing them into the toolchain. This breaks the Yams build because the modules exist in two locations (Foundation_DIR and in the destination installed toolchain).
Modifications:
This removes Foundation_DIR from the arguments list so that Yams builds against the installed Foundation rather than the modules in the cmake build directory
Result:
Now Yams builds successfully because it doesn't have multiple search paths that contain these clang modules

@swift-ci please build toolchain


RE-ENABLE automated cypress tests - Diagnose issues

@Ditmir-Vega has this been done now or is there a new ticket for tracking this you and @edd are working on? Can we close this?

@dexturr I thought we have done this now. I've silently dropped working on adding more mocks (sorry @Ditmir-Vega), but I think we are in a place where these should be running.

Confirmed with @Ditmir-Vega, this can be closed, marking this ticket to Done.


Ouf of sync audio & video in webrtc2rtmp

It will cause audio & video out of sync that audio ntp timestamp is calculated by 2 pieces of  sender reports within serveral seconds.
Before that has been completed, audio timestamp is null in rtmp.

If you player flv in this case, out of sync A/V will occur.

Fixed.


[Idea] Use web.archive.org as a possible final fallback for images

In the event that the API returns the existance of a manga but you still get 404s for images try using web.archive.org as well to get those images.  This can happen if the item in question did exist while api was being retrieved but was subsequently deleted so now it only exists in the db.  I had recently found (while the service was up) that mangas can exist on the site.  You already have the metadata by this point (usually) so I'm thinking that maybe hitting up the site for images may be viable when they stablize things.
I think (from what I understand) you can prefix the full url with https://web.archive.org/web like https://web.archive.org/web/https://i.nhentai.net/galleries/819208/4.jpg and it will grab the most recent copy that the service has but won't be able to test implementation and viability until the service is back up and running again.  Apparently it went back down again today.
The actual image url is something like https://web.archive.org/web/{datecode}if_/https://i.nhentai.net/galleries/819208/4.jpg.  It seems arbitrarily using this url will redirect to the same place updating the placeholder with the correct data.
https://web.archive.org/web/00000000000000if_/https://i.nhentai.net/galleries/819208/4.jpg

Testing my implementation using id 135474.  This id was deleted from the website but still remains in my db from the last pass.  Result: success
Log: https://gist.github.com/shinji257/8a7ad40ad18f196edd85ebd3fbf6bf72

This is a pretty cool idea. In my experience though, the actual images don't get deleted from the media servers. It's only the metadata / gallery information that gets purged, so only that would need to be rerouted to the web archive. This should also greatly reduce the strain on the web archive.
I will put this on the pile of features I want to implement in the future.

The code I submitted as a possible PR has it so it only uses the web archive in the event that all media servers fail.  I think so anyways and appears to be that way based on the log output above as I can see it cycling through the media servers before it goes there.  Anyways thanks for your reply. ;)

Btw I would like to express my gratitude for your willingness to contribute and that you're so active on this project. I just have a lot going on currently career wise, but I will come back to this project for all the enhancements that have piled up eventually!

So this can work but it doesn't always work.  In fact I'm getting a pretty low success rate.  Some fails are partial pulls.  If this gets added then it should fast fail by stopping after X number of errors that way it doesn't keep spamming IA if it can't get the whole thing from there anyways.


⚠ Syncthing-KA-TM has degraded performance

In 5c7d87a, Syncthing-KA-TM ($URL_SYNCTHING_MERZ_NIMBUS_TM) experienced degraded performance:

HTTP code: 200
Response time: 6786 ms

Resolved: Syncthing-KA-TM performance has improved in 899ae9d after 6 minutes.


Refactoring main.go #1

Began refactoring of fen in main.go. Looking for preliminary feedback.
In main.go:

moved flags definitions into defineFlags()
moved pwd detection into platformPwd()
moved tview border detailing into chooseTviewBorders()
moved getopt into defineFlags()
created helper function for checking user's response yes/no response to prompt yes()

Here's hoping no bugs have been introduced by accident :3

Thanks! This will help lower the complexity of the main.go file.
I have only one wish, can you undo these changes:

moved flags definitions into defineFlags()
moved getopt into defineFlags()

I like that it lets you use flags. as a prefix for flags, and it lowers the line count of main(), but I don't like having a StdFlags struct we have to manually add on to for new command-line arguments, I'd rather keep it in the main function for simplicity
Once you've done that, I will merge the pull request and

Rename PlatformPWD() to CurrentWorkingDirectory() and put it at the end of util.go
Rename yes() to something along the lines of IsYes() and put it at the end of util.go
Rename chooseTviewBorders() to setTviewStyles()

(unless you want to do these yourself!)


What is the profit from Focus in the android application

Tell me how Focus can help me, if I write an android application and every time I launch the app module, does gradle work for a long time? It seems nothing, because my app module in gradle has all the other modules as dependencies. And if I focus on a particular module, make changes to it and try to compile the app module, I get an error like this : Project with path ':chat' could not be found in project ':app'

You're right, that that's not the setup Focus is meant to help.
If you spend a lot of time working in your core module, for instance, you could use focus to only have to build that as you're working.  Presumably you're using tests or a sample app so that you can do that work without requiring the entire app in order to verify your work.

thanks for the answer


Include in pop up

Any way to include the time in a pop up window?

Fixed in https://github.com/alex-vv/chrome-load-timer/commit/36b08271e8e6faa0a87bd6153faf2f57e89e6421


Selective Pre-loading by Extension/Type

Any chance on the ability to either whitelist or blacklist extensions or file types?  Ex. If I want to pre-generate thumbnails on image files (.gif/.jpg/.png etc... but not on my .PDF's)
(obviously they could be moved into different folders, but....)

I've implemented whitelisting extensions on my fork along with other improvements


Additional Freeze Options for Export-Excel

Could you add additional switches for -FreezeFirstColumn and -FreezeTopRowAndFirstColumn for the Export-Excel function?
I think they would just need to be added as parameters and this code added around line 304:
if($FreezeFirstColumn) {
$ws.View.FreezePanes(1,2)
}
if($FreezeTopRowAndFirstColumn) {
$ws.View.FreezePanes(2,2)
}
I'm not married to the names.

C'mon, do a PR ;-)   I'll investigate. Did you try that code. did it work?

Sorry :)  I'm just learning Git.  Actually, I didn't sign up until today and it's all thanks to your ImportExcel module!
I can try it but figured I'd throw it out there.

No worries. Glad you signed up. It's the first step towards doing a PR.
Great suggestion too!

Added, you need to grab it from github, I will publish it to the gallery at a later time.
Thanks for the suggestion.
https://github.com/dfinke/ImportExcel/commit/b6e7a59337a83f8ac6b2de913df1eae17ae17602

You're fast!  I was just going to let you know I tested it and confirmed it works.  Thanks!

Great. Hopefully what I changed works for you. Let me know if it doesn't.

Looks great.  Nice addition with -FreezePane.
I'll try to learn how to do PRs and such so I can contribute more efficiently.  Thanks again, Doug!  I appreciate your work with this module.


Multiple patterns within the same line

This PR serves to allow multiple patterns within the same line.
How it works:
When you have multiple patterns which could apply on the same line,
the pattern which starts earlier will apply. If two patterns start at
the same index, the pattern which is longer will be applied.
To disable this behavior the option try_all_patterns got introduced.

Thank you, nice addition!


Hugo does not validate

When running the hugo command, validation passes for code that should have many errors (see issue 375 for example code). Running the validate command returns the errors as expected

This was likely due to the problem with include statements, fixed in 0.25.0. Please check with that version and reopen if the problem persists.


How to know if the form was submitted?

I looked through the docs but didn't find a way to do this.
I Want to know if the form was submitted, is there any variable that stores that information.
Also how do i know if the form was touched? the $touched value returns an object with details whether each individual control was touched but not if the form as a whole was touched.

There's no built-in way to know if the form has been submitted. But handling something like that yourself on an onSubmit should be possible?
Regarding touched. There is an isDirty store that contains a single boolean. This gets set to true as soon as the user interacts with any input.


ios problems

on ios (5+7) the rating does not work. stars are not clickable. on an ipad i can change some stars with lots of effort (not smooth). on an iphone no stars can be selected. very strange problem for such a great plugin.
on android/desktop all is working well.

Note - I've fixed the fastclick incompatibility in this pull request.

Fixed in PR #31


dubboctl enhancement

What is the purpose of the change
Enhance dubboctl based on initial phase.
Brief changelog
Implement manifest diff and manifest uninstall.
Add some log sentences.
Fix manifest generate cmd.
Verifying this change
See /pkg/dubboctl/cmd/manifest_test.go

Codecov Report

Merging #1095 (25d602e) into refactor-with-go (f3ced2e) will increase coverage by 0.41%.
The diff coverage is 69.58%.

@@                 Coverage Diff                  @@
##           refactor-with-go    #1095      +/-   ##
====================================================
+ Coverage             59.10%   59.51%   +0.41%
====================================================
  Files                    47       47
  Lines                  3932     4108     +176
====================================================
+ Hits                   2324     2445     +121
- Misses                 1384     1421      +37
- Partials                224      242      +18

Impacted Files
Coverage Δ

pkg/dubboctl/internal/operator/operator.go
0.00% <0.00%> (ø)

pkg/dubboctl/internal/kube/client.go
48.20% <46.15%> (-1.23%)
:arrow_down:

pkg/dubboctl/internal/operator/component.go
62.82% <47.82%> (-1.07%)
:arrow_down:

pkg/dubboctl/internal/util/yaml.go
50.00% <85.71%> (+50.00%)
:arrow_up:

pkg/dubboctl/internal/kube/object.go
83.33% <96.87%> (+11.27%)
:arrow_up:

pkg/dubboctl/cmd/manifest.go
100.00% <100.00%> (ø)

... and 1 file with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Can this use watermark or photo in camera?

I want to add sample background and than users use it to take a photo

This sample has been migrated to a new location where we can accept Pull Requests (check README for more information).
As recommended by GitHub, we are closing all issues and pull requests now that this older repo will be archived.
If you still see this issue in the updated repo, please reopen the issue/PR there. Thank you!


Fatal error: Uncaught Error: Call to undefined method DI\Container::withHeader()

Here are the settings used:
$settings =  [
   'secret' => 'shh-this-is-the-secret',
   'path' => ['/link'],
   'attribute' => 'jwt',
   'secure' => true,
   'relaxed' => ['localhost'],
   'error' => function ($response, $arguments) {
        $data = [];
        $data['status'] = 'error';
        $data['message'] = 'An Error Ocurred, please try again later';
         return $response
              ->withHeader('Content-Type', 'application/json')
              ->getBody()->write(json_encode($data, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT));
    },
];

Problem
When the code runs it gets back an error with the error below. I copied the error callback exactly as on the documentation, and just changed the error message. So it seems it is an instance of the container object rather than the response object being passed to the callback (the reason why the ::withHeader() is undefined)
I hope you can replicate the problem with this.
Using:
PHP 7.3.11
composer.json (require section):
{
    "require": {
        "php": "^7.2",
        "ext-json": "*",
        "firebase/php-jwt": "^5.2",
        "hybridauth/hybridauth": "^3.3",
        "monolog/monolog": "^2.1",
        "php-di/php-di": "^6.1",
        "slim/psr7": "^1.1",
        "slim/slim": "^4.5",
        "slim/twig-view": "^3.0",
        "tuupola/slim-jwt-auth": "^3.4"
    },
}

Error:
Fatal error: Uncaught Error: Call to undefined method DI\Container::withHeader() in /path-to-project/app/settings.php:27
Stack trace: #0 [internal function]: {closure}(Object(DI\Container), Object(DI\Definition\FactoryDefinition))
#1 /path-to-project/vendor/php-di/invoker/src/Invoker.php(82): call_user_func_array(Object(Closure), Array)
#2 /path-to-project/vendor/php-di/php-di/src/Definition/Resolver/FactoryResolver.php(80): Invoker\Invoker->call(Object(Closure), Array)
#3 /path-to-project/vendor/php-di/php-di/src/Definition/Resolver/ResolverDispatcher.php(64): DI\Definition\Resolver\FactoryResolver->resolve(Object(DI\Definition\FactoryDefinition), Array)
#4 /path-to-project/vendor/php-di/php-di/src/Definition/Resolver/ArrayResolver.php(62): DI\Definition\Resolver\ResolverDispatcher->resolve(Object(DI\Definition\FactoryDefinition))
#5 /path-to-project/vendor/php-di/php-di/src in /path-to-project/app/settings.php on line 27

To me it looks like this has nothing to do with the middleware. Instead it has something to do with the settings.php file and how it is parsed. Error message also supports this conclusion. Middleware is not executed, error comes when parsing settings.php.
Try to do as README suggests.
$app->add(new Tuupola\Middleware\JwtAuthentication([
    "secret" => "supersecretkeyyoushouldnotcommittogithub",
    "error" => function ($response, $arguments) {
        $data["status"] = "error";
        $data["message"] = $arguments["message"];
        return $response
            ->withHeader("Content-Type", "application/json")
            ->getBody()->write(json_encode($data, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT));
    }
]));

If this works then try to debug why in settings.php the $response variable is expanded to DI\Container.


Invalid character in DNS name

Hi,
I'm using version 1.0.3 and have a problem with creating certificate:
this is how I use this recipe :
letsencrypt_certificate "kmspace cert" do
  alt_names ['console.k-m.space', 'devel.k-m.space']
  fullchain "/etc/ssl/k-m.space.crt"
  key       "/etc/ssl/k-m.space.key"
  chain     "/etc/ssl/k-m.space.pem"
  method    "http"
  wwwroot   "/var/www/letsencrypt/"
  notifies  :restart, "service[nginx]"
end

And the error is like this:
   ================================================================================
    Error executing action `create` on resource 'letsencrypt_certificate[kmspace cert]'
    ================================================================================

    Acme::Client::Error::Malformed
    ------------------------------
    Invalid character in DNS name

    Cookbook Trace:
    ---------------
    /var/chef/cache/cookbooks/letsencrypt/libraries/acme.rb:45:in `acme_authz'
    /var/chef/cache/cookbooks/letsencrypt/providers/certificate.rb:54:in `block (2 levels) in class_from_file'
    /var/chef/cache/cookbooks/letsencrypt/providers/certificate.rb:53:in `map'
    /var/chef/cache/cookbooks/letsencrypt/providers/certificate.rb:53:in `block in class_from_file'
    /var/chef/cache/cookbooks/compat_resource/files/lib/chef_compat/monkeypatches/chef/runner.rb:41:in `run_action'

    Resource Declaration:
    ---------------------
    # In /var/chef/cache/cookbooks/kmspace_nginx/recipes/default.rb

     48: letsencrypt_certificate "kmspace cert" do
     49:   alt_names ['console.k-m.space', 'devel.k-m.space']
     50:   fullchain "/etc/ssl/k-m.space.crt"
     51:   key       "/etc/ssl/k-m.space.key"
     52:   chain     "/etc/ssl/k-m.space.pem"
     53:   method    "http"
     54:   wwwroot   "/var/www/letsencrypt/"
     55:   notifies  :restart, "service[nginx]"
     56: end
     57:

    Compiled Resource:
    ------------------
    # Declared in /var/chef/cache/cookbooks/kmspace_nginx/recipes/default.rb:48:in `from_file'

    letsencrypt_certificate("kmspace cert") do
      action [:create]
      retries 0
      retry_delay 2
      default_guard_interpreter :default
      declared_type :letsencrypt_certificate
      cookbook_name "hmspace_nginx"
      recipe_name "default"
      alt_names ["console.k-m.space", "devel.k-m.space"]
      fullchain "/etc/ssl/k-m.space.crt"
      key "/etc/ssl/k-m.space.key"
      chain "/etc/ssl/k-m.space.pem"
      method "http"
      wwwroot "/var/www/letsencrypt/"
      cn "kmspace cert"
      owner "root"
      group "root"
    end

Any idea what goes wrong? I can see that alt_names has proper domain list

You have to specify the certificate subject in the resource name. Since kmspace cert is not a valid domain is fails to request a certificate. The alt_names attribute is only of adding SAN names.

Ow ok thanks!


Document how to connect to a SQLite file

SQLite file is different from all other services due to it being a local file rather than a service.  Configuring relative path fails to build one of the steps, whereas setting invalid file also fails the build but at a different stage. Using the $PWD seems to be the only solution I found.
Update
Seems $PWD is not really needed, but there are clearly some limitations and issues with using sqlite, relative paths, and workspaces. See also https://github.com/launchbadge/sqlx/issues/1399

Closing due to inactivity. I'll try to remember to revisit the docs here before release.


Receiving forward-backward warning

I am getting this warning. Is it okay to be getting this?

No, when you get these warnings, you are doing wrong.
Did you run conda install tensorflow-gpu, specify CUDA_HOME and run scripts/install_rnnt.sh in the conda env?

Thanks for pointing it out. I had actually missed out on the CUDA_HOME part. After adding CUDA_HOME, the code is now working fine and I am getting positive losses.
Thanks


Fixed incorrect handling of responseFlags attribute of the OP_REPLY struct

Hello,
I was attempting to get Mongo 1.8 working with Python 3.1.4.  Upon making any connection to the server, I was greeted with this stack trace:
>>> x = pymongo.Connection('localhost', 27017)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "pymongo/connection.py", line 170, in __init__
    self.__find_master()
  File "pymongo/connection.py", line 342, in __find_master
    master = self.__master(sock)
  File "pymongo/connection.py", line 227, in __master
    result = self["admin"].command({"ismaster": 1}, _sock=sock)
  File "pymongo/database.py", line 215, in command
    _is_command=True)
  File "pymongo/collection.py", line 347, in find_one
    _is_command=_is_command):
  File "pymongo/cursor.py", line 482, in __next__
    if len(self.__data) or self._refresh():
  File "pymongo/cursor.py", line 458, in _refresh
    self.__query_spec(), self.__fields))
  File "pymongo/cursor.py", line 426, in __send_message
    response = helpers._unpack_response(response, self.__id)
  File "pymongo/helpers.py", line 98, in _unpack_response
    assert response_flag == 0
AssertionError

The problem was caused by response_flag bit #3 being set as of Mongo 1.6.   This tripped the AssertionError.
In pymongo.helpers._unpack_response, there was a problem in how the
responseFlags were being parsed.  Rather than checking to see if each
bit was set with a bitwise AND, the == operator was being used.  This
meant that if more than one flag was ever set, then the == would return
False, and the logic would proceed incorrectly.
This has been changed to response_flag & 2 == 2 to check for bit #1.
The value 2 is derived from boolean 0b0010, meaning bit #1.
The actual problem appears to have been introduced in Mongod 1.6 when
bit #3 is always set:
AwaitCapable:  Set when the server supports the AwaitData Query
option. If it doesn't, a client should sleep a little between
getMore's of a Tailable cursor. Mongod version 1.6 supports AwaitData
and thus always sets AwaitCapable.

Thanks!
Jason Garber

It may make more sense to just incorporate the code from the official mongo python driver:
    response_flag = struct.unpack("<i", response[:4])[0]
    if response_flag & 1:
        # Shouldn't get this response if we aren't doing a getMore
        assert cursor_id is not None

        raise OperationFailure("cursor id '%s' not valid at server" %
                               cursor_id)
    elif response_flag & 2:
        error_object = bson.BSON(response[20:]).decode()
        if error_object["$err"].startswith("not master"):
            raise AutoReconnect("master has changed")
        raise OperationFailure("database error: %s" %
                               error_object["$err"])


Chanel (Go Get It) [feat. Gunna & Lil Baby] by Young Thug unsupported.

Check if issue with swaglyrics or whether song lyrics unavailable on Genius.

stripper -> Young-Thug-Chanel--[feat-Gunna-and-Lil-Baby]

supported


Settings reseted after screen switch

Microsoft PowerToys version
0.47.1
Running as admin

[X] Yes

Area(s) with issue?
FancyZones
Steps to reproduce

Customise the layout in PC 1 (in my case, I only have disabled the gap between zones in the zone editor)
Go to another computer (PC 2) with another kind of display device (in my case, PC 1 use dual screen, PC 2 use ultrawide screen)
Remotely connect from PC 2 to PC 1 (using remote desktop or Citrix)
Use FancyZone to snap window, as you can see, the gap between zones is back

The problem is topical because we work from home some days a week.
✔ Expected Behavior
The settings should stays when you remotely connect to the computer (or when the display device changes)
❌ Actual Behavior
The settings looks reseted when you remotely connect to the computer (or when the display device changes)
Other Software
Any remote desktop software (for example Citrix)

does this issue still happen with v0.73.0? /needinfo


Internal I/O object/schema

So far, the code was set to adapt to whatever input was provided and process it to an output on a case to case base.
This is not a good approach, not only due to the flexibility we need to offer, but also from a coding perspective.
It's much better to create an object ("Output object"), that contains not only the data but a schema that can be used to:
a. output information about the file that can be used by the user to properly set the input.
b. get the name of the file and the info for the json file.
In this way, the main code would operate on this object, while another family of scripts (interfaces?) would work on populating the object schema based on the type of input and the information embedded in it.
You can think about the new object as composed of a numpy matrix (data), some lists (values that are defined channel by channel) and some variables that contain general information.
This said, what should be the adopted schema (i.e., what information do we need to carry around)?
We know that BIDS has certain requirements, so those have to be in the schema.
However, we can expand the schema thinking about what we'd like to have there for general purposes.

Issue #36 may be relevant for this discussion


Enhance debugger

@sojanpr @aaustin

Yah, I actually thought of having only a singleton BranchWindowCallback. The thing is it needs the current activity to work, which means when switching activities, developers need to set the target activity each time?

Good catch!
Taking notes of our discussion:
Whenever a dialog is loaded, its onStart() is called, hence initSession is called, so debugger listener is attached to the dialog.
However, when the dialog goes away, the activity under it won't have its onStart() called, so the listener is still with the (now gone) dialog! This might well be the reason for those support requests complaining the debugger is not working!
With the new session management, we can attach the listener back to the activity after the dialog above it goes away by overriding onActivityResumed. Even better, we discovered a better (more sensitive) way - WindowCallback.

cool
:+1:


Qurries about defaultSendPort settings

At the publisher side, the PParam.rtps.defaultSendPort = 11511;
while @the subscriber side, the PParam.rtps.defaultSendPort = 10043;
may I know why the ports are different and what are the rules to set the defaultSendPort?
thx

Hi @zb14zb14
The default port at publisher side refers to the port from where the publisher will sent its data.
The same logic applies for the subscriber side.
If you use the same port for both sides on the same machine, you will try to open the same local port twice, and you will fail to open it if you use TCP, for example.
In any case, defaultSendPort parameter will be removed soon, as we are working on TCP support and some changes on the transport layer.

If you set defaultSendPort to zero (default value), system will get you a random port to send data (as if you call bind
with port number to zero).
↪ 2018-07-09 lun 16:18, Luis<EMAIL_ADDRESS>
Hi @zb14zb14
The default port at publisher side refers to the port from where the publisher will sent its data.
The same logic applies for the subscriber side.
If you use the same port for both sides on the same machine, you will try to open the same local port twice, and you will fail to open it if you use TCP, for example.
In any case, defaultSendPort parameter will be removed soon, as we are working on TCP support and some changes on the transport layer.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/eProsima/Fast-RTPS/issues/240#issuecomment-403495163

Closing this, as the question has been answered long ago.


(Possible Dup) The naming of passphrases is poor

Many times keybase asks for passphrases but it's simply not clear which one it means. Is my account one? The device one? My key's passphrase? I end up entering in all my passphrases until it works.
Keybase GUI Version: 1.0.18-20161116190722+95f8303

The hope is only to have one.  This is almost always true unless you use
GPG and your GPG key is protected with another passphrase.  We can't do
anything about that.
On Sun, Nov 27, 2016 at 6:47 PM, cmp<EMAIL_ADDRESS>wrote:

Many times keybase asks for passphrases but it's simply not clear which
one it means. Is my account one? The device one? My key's passphrase? I end
up entering in all my passphrases until it works.
Keybase GUI Version: 1.0.18-20161116190722+95f8303
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/keybase/client/issues/4953, or mute the thread
https://github.com/notifications/unsubscribe-auth/AA05_wiLvvFG_5TIN8x2HyGSGkKSzLnUks5rChaWgaJpZM4K9TGC
.

Multiple pass phrases is fine, it just isn't clear in UIs which it wants.
They're all pass phrases which have a purpose.
On Sun, Nov 27, 2016 at 8:38 PM Maxwell Krohn<EMAIL_ADDRESS>wrote:

The hope is only to have one. This is almost always true unless you use
GPG and your GPG key is protected with another passphrase. We can't do
anything about that.
On Sun, Nov 27, 2016 at 6:47 PM, cmp<EMAIL_ADDRESS>wrote:

Many times keybase asks for passphrases but it's simply not clear which
one it means. Is my account one? The device one? My key's passphrase? I
end
up entering in all my passphrases until it works.
Keybase GUI Version: 1.0.18-20161116190722+95f8303
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/keybase/client/issues/4953, or mute the thread
<
https://github.com/notifications/unsubscribe-auth/AA05_wiLvvFG_5TIN8x2HyGSGkKSzLnUks5rChaWgaJpZM4K9TGC
.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/keybase/client/issues/4953#issuecomment-263164767,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAe3MQYpoAPHOg5N0cc9MGCiI8Z7V3j_ks5rCjB4gaJpZM4K9TGC
.


Add resources and other groupings to the "information architecture"

I would welcome pointers to already-existing mechanisms or previous conversations around this topic but...
OAI seems largely based on a path-oriented, rather than a resource-oriented ontology. A lot of our user guides & existing documentation assets (DITA) are organized around resources and other kinds of grouping. One of our engineers has been playing around with an extension that defines groups of paths and these groups can have their own title/summary/description tags. It allows us to create an "information architecture" that our doc & ux folks are happier with.
One might be inclined to suggest doing this via definitions, at least for the resource-based grouping but since we support different field sets for C vs R vs U we would lose that grouping ability. Inferring from the PATH does not always work well and feels a bit kludgy anyway (e.g. to infer POST is related to GET/PUT/PATCH/DELETE not to speak of subresources).
So, his proposed solution was to define the structure explicitly. I'd like to know if anyone has proposed something similar or if it warrants further discussion

Currently in OpenAPI, resources are identified via Path Item Objects.  It is not convenient for people who want to identify resources via query string parameters.
Tags can be used at the operation level to perform a variety of different grouping tasks.
There is no reason why different schemas couldn't be used to describe the representations of the different HTTP methods (aka Operations).
I have worked with API description languages that attempt to define HTTP resources by nesting them (e.g. WADL) and my experience is that it quickly becomes painful to edit and read the document.
Would having the ability to attach Tags to path item objects help you achieve your goals?  I can see value in that.

Regarding "resources are identified via Path Item Objects": We document of the POST as part of the same resource as the other methods. Not strictly REST where the collection of all X is a separate resource from specific instances of X but I think you'll agree it's a relatively common "gestalt" implementers use.
I believe tags alone are not adequate for my use case because I have documentation artifacts I want to associate with the group (suggesting resource is a special case of group). Doing separate swagger docs for each group is not practical either.
The one originally proposed by my colleague @3den is shown in the attachment. This appears as a top-level section in the swagger document. x-sfdc-resource.txt
My original (internal) suggestion was to have each path have an x-sfdc-group element that has an arbitrary ID that is used to group the paths together but it does not allow for title/description/summary.
Another possible approach is to have a "groups" section (similar to the definitions section) and add a "group: $ref" element to to the Patch Item Object. The Group Object would merely have a 1-to-Many relationship to Path Item Object... there would be no semantics except for the association (e.g. not suggesting common headers across the group). It's possible we might like nested groups and the "Group Reference" might point to in "inner" group but there's still some debate over whether we want to encourage such an approach internally.

Tags have both a description and external docs field https://github.com/OAI/OpenAPI-Specification/blob/OpenAPI.next/versions/3.0.md#tag-object

Wow totally missed that on an earlier reading.... it's even in 2.0. Thanks!


Consider support for storing chunks in z-order

Apparently, this can result in significant IO savings when indexing multi-dimensional arrays.
See http://bl.ocks.org/jaredwinick/5073432 (note that the graphic is interactive)

That's a neat trick. However, unless I'm missing something (very possible),
I think that simply chunking an array will produce a very similar effect.
I.e., if you have an array with shape (100, 100) and you set the chunk
shape to (10, 10), then a request to retrieve data for the range [5:15,
5:15] will only require accessing 4 chunks. A
On Wednesday, 27 July 2016, Stephan Hoyer<EMAIL_ADDRESS>wrote:

Apparently, this can result in significant IO savings when indexing
multi-dimensional arrays.
See http://bl.ocks.org/jaredwinick/5073432 (note that the graphic is
interactive)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/alimanfoo/zarr/issues/40, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAq8QnhfOfSUxOJS9wws7kXBbmV_OWqaks5qZp7qgaJpZM4JVtUe
.

--
Alistair Miles
Head of Epidemiological Informatics
Centre for Genomics and Global Health http://cggh.org
The Wellcome Trust Centre for Human Genetics
Roosevelt Drive
Oxford
OX3 7BN
United Kingdom
Email<EMAIL_ADDRESS><EMAIL_ADDRESS>Web: http://purl.org/net/aliman
Twitter: https://twitter.com/alimanfoo
Tel: +44 (0)1865 287721

Sorry accidentally sent last comment incomplete. Basically I think that
chunking gives you data locality when taking multidimensional slices of an
array, depending on the chosen chunk shape. So it's not obvious to me how
z-order could be used with chunked arrays to improve I/O.
Cc @benjeffery
On Saturday, 30 July 2016, Alistair Miles<EMAIL_ADDRESS><javascript:_e(%7B%7D,'cvml','alimanfoo@googlemail.com');>> wrote:

That's a neat trick. However, unless I'm missing something (very
possible), I think that simply chunking an array will produce a very
similar effect. I.e., if you have an array with shape (100, 100) and you
set the chunk shape to (10, 10), then a request to retrieve data for the
range [5:15, 5:15] will only require accessing 4 chunks. A
On Wednesday, 27 July 2016, Stephan Hoyer<EMAIL_ADDRESS>wrote:

Apparently, this can result in significant IO savings when indexing
multi-dimensional arrays.
See http://bl.ocks.org/jaredwinick/5073432 (note that the graphic is
interactive)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/alimanfoo/zarr/issues/40, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAq8QnhfOfSUxOJS9wws7kXBbmV_OWqaks5qZp7qgaJpZM4JVtUe
.

--
Alistair Miles
Head of Epidemiological Informatics
Centre for Genomics and Global Health http://cggh.org
The Wellcome Trust Centre for Human Genetics
Roosevelt Drive
Oxford
OX3 7BN
United Kingdom
Email<EMAIL_ADDRESS>Web: http://purl.org/net/aliman
Twitter: https://twitter.com/alimanfoo
Tel: +44 (0)1865 287721

--
Alistair Miles
Head of Epidemiological Informatics
Centre for Genomics and Global Health http://cggh.org
The Wellcome Trust Centre for Human Genetics
Roosevelt Drive
Oxford
OX3 7BN
United Kingdom
Email<EMAIL_ADDRESS><EMAIL_ADDRESS>Web: http://purl.org/net/aliman
Twitter: https://twitter.com/alimanfoo
Tel: +44 (0)1865 287721

This would be for storing data within chunks, supposing support for partially reading chunks (possible with many backends). Given the overhead for accessing each due, there is a minimal chunk size at which it doesn't make sense to chunk any further (depending on details, perhaps somewhere in the range of 1e3 to 1e6 elements). This could yield significant benefits in that case.

Ah OK. So what's the main use case? Taking a multidimensional slice where
the requested region is entirely within a single chunk?
Just so I'm completely with you, could you expand a bit more on what you
mean by the second sentence ("Given the overhead for accessing each
due...")?
On Sunday, July 31, 2016, Stephan Hoyer<EMAIL_ADDRESS>wrote:

This would be for storing data within chunks, supposing support for
partially reading chunks (possible with many backends). Given the overhead
for accessing each due, there is a minimal chunk size at which it doesn't
make sense to chunk any further (depending on details, perhaps somewhere in
the range of 1e3 to 1e6 elements). This could yield significant benefits in
that case.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/alimanfoo/zarr/issues/40#issuecomment-236452319, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAq8QqVh6JC9nwWo8E3PcARQnm3tcYKZks5qbPtXgaJpZM4JVtUe
.

--
Alistair Miles
Head of Epidemiological Informatics
Centre for Genomics and Global Health http://cggh.org
The Wellcome Trust Centre for Human Genetics
Roosevelt Drive
Oxford
OX3 7BN
United Kingdom
Email<EMAIL_ADDRESS><EMAIL_ADDRESS>Web: http://purl.org/net/aliman
Twitter: https://twitter.com/alimanfoo
Tel: +44 (0)1865 287721

Ah OK. So what's the main use case? Taking a multidimensional slice where
the requested region is entirely within a single chunk?

A more common use case might be any slicing operations that are poorly aligned with chunking, evne if they involve multiple chunks. For example, suppose I have an array with chunks of size (100, 100, 100), and now want to index out a single point along the first two dimensions, e.g., x[i, j, :]. Instead of needing to read each full chunk all the first two dimensions, I could read out much less on average.
I don't have a direct use case for this right now (since I'm not actually using zarr yet), but I can see lots of examples where this sort of thing might be useful.

Just so I'm completely with you, could you expand a bit more on what you mean by the second sentence ("Given the overhead for accessing each due...")?

Oops, I had a typo (fixed now). What I was referring to is that there is some fixed overhead associated with storing and manipulating each chunk in every storage and task scheduling system, which is why we don't chunk arrays into single values.

Thanks Stephan. Just to add that this relates to how Zarr might make use of the blosc_getitem function to extract partial contents of a chunk. I know Bcolz uses blosc_getitem but there things are simpler because they only consider 1D arrays, so far I haven't had the brain space to figure out how to use it for multidimensional arrays.

blosc_getitem would indeed make good use of this. We would need some method for converting a tuple of range selections into start and nitems, and then load the appropriate items into the output array.

I don't have bandwidth to explore this myself but very happy to discuss further if there is interest and someone else has time. FWIW I think a natural starting point would be to add support for a codec operation analogous to blosc_getitem, i.e., decoding items from some sub-range of a chunk. This would need to be generalised and added as a method on the Codec class. The Codec abstract base class could provide a default implementation which falls back to decoding then slicing the whole chunk, for codecs that cannot provide an efficient implementation. How this works if there were filters (i.e., multiple codecs) on an array I am uncertain. Once this infrastructure was in place, I guess a Zorder codec class could be implemented as a pre-compression filter, providing the z-order transformation and mapping getitem calls down to the next level? Or maybe it's not that simple, I can't see the architecture immediately.
Btw the next release of Zarr will have all code for compression and filter codecs removed and obtained via a dependency on a new numcodecs package, so this issue may live more naturally there as a codec issue.
One other note, I think that although z-order might speed up access for small regions of an array, it would incur a cost for reading larger regions, because all read and write operations would need to pass through the z-order transformation.


Fix "Test soft idle start/stop events" test

@joaomoreno your change in https://github.com/Microsoft/vscode/commit/483c63bc0cbabe28f18e9a91b9637d582c75aead causes many test errors. One issue I could fix easily in https://github.com/Microsoft/vscode/commit/4ede18f76f8ed3cfe1374591a814ca42996c8049.
There is another test that seems to mock the eventing and I commented it out for now, but it should be fixable: https://github.com/Microsoft/vscode/commit/ad737c8de5a028589218fa19d2182e57814a1bba
@jrieken fyi as potential owner of that test

@bpasero Thanks!


[changelog] add category specific format Resolves #429

Resolves #429
Context

Checklist

[x] Review Contribution Guidelines.
[x] Make sure all contributed code can be distributed under the terms of the
Apache License 2.0, e.g. the code was written by
you or the original code is licensed under a license compatible to Apache License 2.0.
[ ] Update documentation when applicable.

Thanks! :smile:
Would you also take care of updating the docs? I can do that as well.


Scene Navigation Panel shifts to the right when a minimized Player List is expanded.

Foundry v11.315. Minimal UI v1.6.10
For some reason this bug is popping up again. I think I reported this a few months ago, I can't remember. Essentially when the Player List is minimized, expanding it causes the Scene Navigation panel at the top to shift an equal distance to the right. I double-checked that this happens even when Minimal UI is the only module running, and it is.

Dang I keep breaking this everytime I change something else

Hopefully fixed forever in 1.6.11 @GambetTV


Unsure about security

Hello,
Nice work and documentation.
Expected situation imho
Checking the Dockerfile and this repository code should be enough to have a pretty good idea whether this is secured or infected. (e.g. data leakage)
Current situation
In your Dockerfile:
FROM thecodingmachine/gotenberg:3.2.0 AS hack

I am guessing that to reduce your Dockerfile you reuse a previous build but... this also hides what your previous build is based on or what is inside it, does not it?
Unless one investigate this particular container and look for issues, which is obviously harder that checking if a Dockerfile contains (more obvious) security issues.
Possible solution
Would it be possible to have a longer Dockerfile without any hack, some says explicit is better than implicit :wink:
Otherwise I guess I could try to reuse your Dockerfile from tag 3.2.0 and add it at the top of your latest one.
I am open to hear your point of view, I may be missing something.

Ok I saw your comments in the Dockerfile and in https://github.com/Unitech/pm2/issues/4127, I guess I need to verify this previous image :/ (no offense :stuck_out_tongue: )

Hello @aurelien-clu
FYI, the previous Dockerfile is actually very close to the current one 😄


It's hard to download eastmoney content

When we download title of eastmoiney according to "fingpt/FinGPT_Sentiment_Analysis_v1/FinGPT_v1.0" with kuaidaili, we got the hs300    freely.
But When we download the content og eastmony  according to "fingpt/FinGPT_Sentiment_Analysis_v1/FinGPT_v1.0" , we got nothing. And there is no error reported.
What can we do now if we want fine-tuning FinGPT according to FinGPT_v1.0?

Anybody can answer the question?


Disable negative voting on workers

Need to not only disable new negative votes, but go through and delete existing negative votes at the time of the hardfork.
New workers should still be assigned + and - vote ID's to keep wallet breakage to a minimum.

Rationale is that negative voting requires voters to pro-actively fight against attackers every time they create a new proposal. The attacker, with coordinated stake can out maneuver the defender with uncoordinated stake.
Fundamentally, expressing what you support and "defaulting" to being against everything new is better than having to actively vote against everything new. This in turn raises the barrier to entry for an attacker with coordinated stake.

Can we just ignore the negative votes when calculating in maintenance interval?

this sounds not bad, what I want to know is, will this go through a worker proposal for implementation?

Will this go through a worker proposal for implementation?

@bitcrab Imo the workload for this feature is relatively small, so the cost could probably be covered by this worker: "Blockchain maintenance developer (1.14.30)". Do you mean we need to go through some voting procedure according to the "hard fork principle" (by the way, where is the document)?

@abitmore yes, what I care is not the cost, but whether there is a voting process for this, this is not a small change, IMO voting is a must.
maybe the BSIP process is suitable? https://github.com/bitshares/bsips

@bitcrab imo it's more or less a security fix, so better not to advertise the hole before fixed.

@abitmore why security fix? do you assume that all the users that vote against a worker proposal are attackers?

@bitcrab please check https://github.com/cryptonomex/graphene/issues/565 for more information.

@abitmore got it, however I think a good explanation to the community is necessary to avoid misunderstanding.

https://github.com/bitshares/bsips/blob/master/bsip-0013.md

@xeroc 0013 was assigned to another BSIP already. See https://github.com/bitshares/bsips/issues


Clean tokenizer cfg

Clean up tokenizer cfg and tokenizer init
Issue: https://mosaicml.atlassian.net/browse/RESEARCH-656
cc @samhavens @alextrott16 re changes to build_text_denoising_dataloader

Left a couple questions that should be resolved before approving, but this is such an improvement. Huge fan. Way cleaner.


Windows installer: update docs

The docs never were updated with the new introduced features like docker installation. Important parts should be added to the docs.

Closing as obsolete


Env variable with Java not splitted

Is this a BUG REPORT or FEATURE REQUEST?: BUG
What happened: Multiple env variables are seen at one
What you expected to happen: Correct split of the stringArray with the --env parameter with the CLI
How to reproduce it (as minimally and precisely as possible):
Deploy a function with --env var1=value1,var2=value2
The value of var1 will be value1,var2=value2 and not value1.
var2 is lots in the process
What will i expect : to have 2 env variable in Java (System.getenv("var1") and System.getenv("var2")) with the associated value
Anything else we need to know?:
Environment:

Kubernetes version (use kubectl version): 1.8.11
Kubeless version (use kubeless version): 1.0.0-alpha-4
Cloud provider or physical cluster: physical

Can you please try splitting env variables.--env var1=value1 --env var2=value2 it should work.
i.e kubeless function deploy post-java --runtime java1.8  --handler Foo.foo --from-file java/HelloWithData.java --env var1=value1 --env var2=value2

This is also non working with Python and kubeless 1.0.0-alpha.7

I have found the issue: should be solved with #908. The fix will be available in the next release. In the meantime this is the binary the CI generated (only for Linux):
https://601-98203770-gh.circle-artifacts.com/0/home/circleci/.go_workspace/bin/kubeless