B 19885 non cac customer MAIN

INT PR: #12602
Agility ticket
Summary
As a Services counselor, I want the ability to flag a customer's profile to indicate that they do not have a CAC, so they can login to MilMove successfully without authenticating with a CAC during first login.
In order to let the customer avoid having to authenticate, when the service counselor indicates that the customer is NOT a CAC-user when creating the customer account, then we handle setting the cac_validated flag for that service member to True. This will allow the customer to access the application without having to authenticate with a CAC.
Setup to Run the Code

Instructions for starting storybook
Instructions for starting the MilMove application
Instructions for running tests

How to test

Access the office application.
Login as a services counselor.
Locate the search bar at the top of the page.
Search by customer name, for any string.
When the results are found, an "Add Customer" button should appear next to the "Search for a customer" line.
Click the "Add Customer" button.
Fill in the fields on the form.
At the bottom of the page, in the Non-CAC Users section, select Yes to indicate that the customer has a CAC.
Finish filling out the form and Save.
Check the database and verify that for the most recently created service member (in the service_members table) that the cac_validated value is false.
Follow the steps above again to create a new customer as the services counselor.
At the bottom of the page, in the Non-CAC Users section, select No to indicate that the customer does NOT have a CAC.
Finish filling out the form and Save.
Check the database and verify that for the most recently created service member (in the service_members table) that the cac_validated value is true.

Frontend

[x] There are no aXe warnings for UI.
[x] This works in Supported Browsers and their phone views (Chrome, Firefox, Edge).
[x] There are no new console errors in the browser devtools.
[x] There are no new console errors in the test output.
[x] If this PR adds a new component to Storybook, it ensures the component is fully responsive, OR if it is intentionally not, a wrapping div using the officeApp class or custom min-width styling is used to hide any states the would not be visible to the user.
[x] This change meets the standards for Section 508 compliance.

Screenshots

INT PR: #12602
Agility ticket
Summary
As a Services counselor, I want the ability to flag a customer's profile to indicate that they do not have a CAC, so they can login to MilMove successfully without authenticating with a CAC during first login.
In order to let the customer avoid having to authenticate, when the service counselor indicates that the customer is NOT a CAC-user when creating the customer account, then we handle setting the cac_validated flag for that service member to True. This will allow the customer to access the application without having to authenticate with a CAC.
Setup to Run the Code

Instructions for starting storybook
Instructions for starting the MilMove application
Instructions for running tests

How to test

Access the office application.
Login as a services counselor.
Locate the search bar at the top of the page.
Search by customer name, for any string.
When the results are found, an "Add Customer" button should appear next to the "Search for a customer" line.
Click the "Add Customer" button.
Fill in the fields on the form.
At the bottom of the page, in the Non-CAC Users section, select Yes to indicate that the customer has a CAC.
Finish filling out the form and Save.
Check the database and verify that for the most recently created service member (in the service_members table) that the cac_validated value is false.
Follow the steps above again to create a new customer as the services counselor.
At the bottom of the page, in the Non-CAC Users section, select No to indicate that the customer does NOT have a CAC.
Finish filling out the form and Save.
Check the database and verify that for the most recently created service member (in the service_members table) that the cac_validated value is true.

Frontend

[x]  There are no aXe warnings for UI.
[x]  This works in Supported Browsers and their phone views (Chrome, Firefox, Edge).
[x]  There are no new console errors in the browser devtools.
[x]  There are no new console errors in the test output.
[x]  If this PR adds a new component to Storybook, it ensures the component is fully responsive, OR if it is intentionally not, a wrapping div using the officeApp class or custom min-width styling is used to hide any states the would not be visible to the user.
[x]  This change meets the standards for Section 508 compliance.

Screenshots

This one is ready to merge in @cameroncaci, just need a happo check :)

Happo check approved


3330 (Provide a way to label sessions that have a particular purpose)

As more things are being scheduled as Sessions of Groups (like Hackathon), we need a way to differentiate particular purposes of the sessions. This will become important for EMODIR which may have several tutorial sessions at a meeting on different topics.

https://trac.ietf.org/trac/ietfdb/ticket/3330
Robert says:

[this] one will need some design discussion I think

Fixes committed


How can I use this handler from Caddyfile config ?

upload_index.htm is a classic simple Javascript POST uploader.
Example Caddyfile I am trying to run:
:8888 {
	root * /var/test

	file_server /var/test/* {
		browse /var/test/upload_index.htm
	}

	upload  {
		dest_dir /var/test/tmp_upload
		max_filesize 0
	}

	log {
		output file access.log
        }
}

No matter how I rewrite the upload block of the config my attempts to run caddy with it are futile -
It gives
Error during parsing: Wrong argument count or unexpected line ending after 'upload'

It must be something very simple I am overlooking. Thanks in advance.

Well as I prefer to use json config I have not add the Caddyfile in a reliable way.
I will take a look how to handle the config i Caddyfile.

Thank you, I prefer Caddyfile for its simplicity, especially for configuring simple static servers.
I am sure I am not the only one.
When Caddy 2 launched, the lack of upload handler made me stick to Caddy v1 all these years as I didn't want to install any server side languages to handle just a simple upload feature.
Thank you for your contribution to this beautiful piece of software and for taking the time to help me.

@etherwvlf does the latest comit works to you?
I have also updated the docker image on docker hub

Sorry, I couldn't respond earlier...
I've been testing it whole day, and I must say everything is fine and dandy :)
Thank you kindly, sir !

In caddyv2-upload)/upload.go on line 71:
zap.String("msg", "no ResponseTemplate specified (response_template), using the defualt one"),

there is a typo - "defualt" should be "default"
you may wanna change that.


Port mk2 GUI service with additional improvements to core

Description

Ports Mark-2/QA branch GUI service and namespace API improvements to ovos-core

Additional Changes (These were required to make the API work as designed and not loose functionality):

Added Homescreen Manager:  The Homescreen manager service allows for adding, removing, switching and disabling multiple homescreen installations

Improvements to the IdleDisplaySkill class to register idle skills on initialize, homescreen manager events, handling reload of skill, handling shutdown of skill

Added Fix For Page Insertion as per Mycroft-GUI Protocol: Mark-2/QA branch seems to somehow discard the protocol requirement (maybe a bug or oversight) and adds all additional pages at index 0 in "mycroft.gui.list.insert", In this PR it is fixed to always account for the position at which the page was inserted as maintained in the namespace pages list

Added Fix For Checking persistence and resetting timeout removal of namespace  when user interacts with the page on the screen for a given namespace.

Added Fix For Updating persistence when a persistent page is added to the namespace after a non persistent page, this fixes the issue where all pages are removed and each page persistence is not accounted for

Increased the default timeout by default to 30 seconds as it was set to originally, the mark-2/qa branch sets it to 15 seconds, which does not give enough time for skills wanting to be interacted with or displaying more than one page

Additionally Added Improvements:

Added support for home-screens using the decorator type for registration in homescreen manager
Pages: Adds a GUIPage representation of page to namespaces
Pages: Improved handling of multi-page display's that were not properly supported by the new gui service
Namespace & Page Duration handling: Namespace should always depend on the current page displayed to determine its persistence time, In multi page scenarios we need to track the active page and its persistence as set by the skill author
Implement missing GUI Protocol methods: Unload Data and Page Focus (Client Side)
Fix a bunch of errors displayed on startup when the active skills namespace was not ready

needs https://github.com/OpenVoiceOS/OVOS-workshop/pull/15


Text encoder training then merge to unet--best practises and settings

Anybody have a thread to this pre-training method? I have heard set lr for TE to 1e-6 Unet same. Sounds a bit low. What method to merge? Any leads would be highly appreciated

Good luck. Ben never answers a straight question. As for my own experiments, 1e-6 and 2e-6 only work for faces, and only with 10-20 images max, text encoder around 350-450. Can you clarify "merge"?


[Feature Request] Screenshots

It might be a good idea to provide some screenshots on the Marketplace listing of Runway.

Added to Marketplace listing: https://statamic.com/addons/double-three-digital/runway


[API] Add WatchdogExpiredException to pipeline object

Description
The pipeline doesn't throw an exception when the camera device has gone missing or when the internal 10s watchdog has expired. Exit behavior changes based on blocking=True|False parameter to get_available_nnet_and_data_packets method.
To Reproduce
Steps to reproduce the behavior:

Run demo script with blocking=False and application watchdog exit(10) commented out (line ~234)
Disconnect BW1093 device
Wait 10s and the demo script will throw a 'Segmentation fault'.

The issue is slightly worse when the pipeline is encapsulated in a python iterator object. In this case a seg fault is never seen (or its swallowed by the interrupter) and my application appears to just be hung on get_available_nnet_and_data_packets even with blocking=False.
If you change the demo script to blocking=True then the demo script will cleanly exit with bash error code 9 (and no seg fault). Again, if used as an iterator object it also just appears hung on get_available_nnet_and_data_packets.
So I can add my own watchdog like demo script lines ~228-234 but this must be less than the 10s API one or the same thing will happen as described above. So this begs the question why is there a unconfigurable internal API watchdog that I have to work around with a second application one?
Expected behavior

Never accept a Segmentation fault as an exit condition
get_available_nnet_and_data_packets to throw WatchdogExpired or DeviceNotFound exceptions
This way I can gracefully restart my application and alert the user that the cameras are not currently functional.

Additional context
On some systems I occasionally see sustained rapid under-voltage/normalized/disconnect kernel events. I am using one ARM host with 2-4 BW1093s on a powered hub. About once a week this cycle can last longer than 10s which puts 1 or more of the cameras in the state above which leaves my application in a reduced operating capacity with no way to programmatically recover.
No rush on this, just a suggestion for future API polish. In the meantime I've added the second application watchdog to fire before the internal API one.

Thanks @chris-piekarski .  Really appreciate the thorough feedback/suggestions here.  Let me digest a bit more and then circle back.
In the meantime, and saying this at the risk of it being irrelevant, but just in case it's useful, there were some (but maybe not sufficient to what you are bringing up) update so how the device communicates/feeds-back in the Gen2 pipeline builder.  And we now have some docs on how to use this new system here:
https://docs.luxonis.com/projects/api/en/gen2_develop/
And bringing up internally as well.

Thanks @chris-piekarski .  Really appreciate the thorough feedback/suggestions here.  Let me digest a bit more and then circle back.
In the meantime, and saying this at the risk of it being irrelevant, but just in case it's useful, there were some (but maybe not sufficient to what you are bringing up) update so how the device communicates/feeds-back in the Gen2 pipeline builder.  And we now have some docs on how to use this new system here:
https://docs.luxonis.com/projects/api/en/gen2_develop/
And bringing up internally as well.


[BUG] Gradient tape inside tf.function broken for tf.Variable argument.

Issue Type
Bug
Source
binary
Tensorflow Version
tf 2.7, 2.9, nightly
Custom Code
Yes
OS Platform and Distribution
Ubuntu 22.04
Mobile device
No response
Python version
3.1)
Bazel version
No response
GCC/Compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current Behaviour?
tf.function (since TF 2.7 I believe) now remembers the storage of the variable and treats them as tensors (using the `__tf_retrace__` mechanism). This works fine whenever the value of the variable is needed and not it's identity. However, when taking the gradient, the identity matters, not the value.

This means when decorating a function that takes the gradient of y with respect to x (x being a parameter here), it traces the function, uses the value of the TensorLike object and **creates the gradient with respect to the parameter's identity (watching the parameter)**.
Calling the same function with a different parameter won't retrace (!) and just use the value, however since it doesn't retrace, it won't re-calculate the gradient with respect to the *identity* of the new variable given as argument but instead use the remembered gradient.

Basically, the problem arises since tf.function and tensor-like objects function functionally (i.e. gradient with respect to argument one, two etc) and tf.Variable, that are global statebased objects. Using a statebased object as a "functional" object breaks the correct behavior of GradientTape.

## Bug or feature?

I do understand the merits of this in a function that doesn't take gradients. However, it breaks for the logic of the gradient.

## Possible fixes

There are workarounds, i.e. to always give parameters in a dict with their name, the names triggering a retrace.

Standalone code to reproduce the issue
Link to colab with the code below: https://colab.research.google.com/drive/1z26ZIoiFEBO9icGJ5bYusu4XY5u-vpkG?usp=sharing

import tensorflow as tf

x1 = tf.Variable(2.0)
x2 = tf.Variable(4.0)

def f():
    res = x1 + x2 ** 2 / 2
    return res

def grad(param):
    with tf.GradientTape(watch_accessed_variables=False) as tape:
        tape.watch(param)
        value = f()
    return tape.gradient(value, param)

jitted_grad = tf.function(grad)

y1 = grad(x1)
y1_jit = jitted_grad(x1)
assert abs(y1 - 1.0) < 1e-5  # because d x1 / dx1 = 1
assert abs(y1_jit - 1.0) < 1e-5
y2 = grad(x2)
y2_jit = jitted_grad(x2)
print(f"y2: {y2}, should be 4")  # but is 1 because it uses the derivative of x1
print(f"y2_jit: {y2_jit}, should also be 4")  # but is 1 because it uses the derivative of x1
assert abs(y2 - 4.0) < 1e-5  # because d / dx x**2/2 = x -> 4
assert abs(y2_jit - 4.0) < 1e-5  # fails!

### Relevant log output

_No response_</details>

@sachinprasadhs,
I was able to reproduce the issue on tensorflow v2.8, v2.9 and nightly. Kindly find the gist of it here.

@sachinprasadhs I do not want to sound alarmist, and I am aware that there are many things going on in TF, but this is a quite serious bug: gradients of jitted GradientTape will be completetly wrong! This will severely impact neural network training for anything that is outside of the standard trainings. It still exists even in the nightlies (which are 2.14.x).
Is there any way of putting some more importance to this issue? (again, not as in "it's my issue, please resolve", but I do honestly believe that it is a deeper issue with the design that probably now causes thousands of hard-to-recover bugs in peoples code)

@sachinprasadhs just a slight ping, as mentioned, this is actually a HUGE issue that people surely already ran into but maybe haven't been able to notice. Don't you think so?


Instructions for accessing crawl logs

While this was asked and addressed previously, there are currently no Microsoft instructions available and correctly working for how to access the crawl logs. Please advise. Thanks!

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

ID: 29e17f59-b027-4994-a928-4ef9f5db58cd
Version Independent ID: 10c23c98-44d1-c53d-a6ab-86345cafed85
Content: Check logs, limits and reports - SharePoint in Microsoft 365
Content Source: SharePoint/SharePointOnline/check-logs-limits-and-reports.md
Service: sharepoint-online
GitHub Login: @SerdarSoysal
Microsoft Alias: serdars

Hello @aandrew129 I am looking into this.


Clarify in README that buffer/string payloads must be JSON

It does kinda go without saying that JWTs (JSON Web Tokens) need to contain JSON but it's worth mentioning that signing doesn't check your payload.  In some unit tests I was writing where the payload was a dummy (non-JSON parsable) string, JWTs were being signed okay but they're not valid according to the spec, which caused decoding of the JWTs to later fail.

I'd like to get more knowledge about it. When I run this:
> token = jwt.sign('content', key)
'eyJhbGciOiJIUzI1NiJ9.Y29udGVudA.WyRVFmgOi-GCpfKgXZ14g1aG3NkB--P9349LLuZkKsE'
> jwt.verify(token, key)
'content'

It works, what is the input you are using?

Sure, no problem.  For note, the spec states that the JWT payload ("JWT Claims Set") represents a JSON object at https://tools.ietf.org/html/rfc7519#section-4.
A library like https://github.com/auth0/jwt-decode fails to decode your token there because it doesn't contain JSON:
decode = require('jwt-decode')
decode('eyJhbGciOiJIUzI1NiJ9.Y29udGVudA.WyRVFmgOi-GCpfKgXZ14g1aG3NkB--P9349LLuZkKsE')
> InvalidTokenError
    at Object.<anonymous> (/tmp/node_modules/jwt-decode/lib/index.js:9:31)
    at Module._compile (module.js:660:30)
    at Object.Module._extensions..js (module.js:671:10)
    at Module.load (module.js:573:32)
    at tryModuleLoad (module.js:513:12)
    at Function.Module._load (module.js:505:3)
    at Module.require (module.js:604:17)
    at require (internal/module.js:11:18)

Node's traceback is a little hard to follow but the code throws the exception here, in the JSON.parse call: https://github.com/auth0/jwt-decode/blob/master/lib/index.js#L20.
By comparison, node-jsonwebtoken doesn't verify JSON validity when signing -- or seemingly during verification as your example shows.  The fact that invalid JWTs can be created may be indicative of a more detailed fix required in this package but it depends on whether the purpose of the library is to validate JSON strings or just trust the input.  I wouldn't imagine validation would be hard to do (just attempt JSON.parse on strings and throw errors accordingly) if you wanted to go that way.
With this specific PR, I was solving the issue in a simpler way -- documenting the current behaviour so a user knows this package isn't going to verify JSON.

Thanks @davidjb, merged, I guess we would need to tackle that in some future major version release to align with the spec.

Great, thanks @ziluvatar.  Even a simple solution like throwing an exception on a failed JSON.parse() would be enough.  However, perhaps it's a good opportunity to rethink whether the existing (object) validation code and so on in jwt.sign() should/could apply to strings too.


View outside of menu

Hello,
It would be great if we could place some view outside of the menu frame (i.e on the presenting view controller part).
Any idea if this can be implemented using the existing tools?
Thanks!

This is a question for StackOverflow and not specific to SideMenu.


collect() with chunk()

Laravel Version: 8.52.0
PHP Version: 7.4.15
Database Driver & Version:

Description:
Shouldn't the collection of the 1st chunk (in the output below) return something like
...
all: [
1 => 1,
2 => 2,
],
?

collect([1,2,3,4,5,6])->chunk(2)
=> Illuminate\Support\Collection {#5086
all: [
Illuminate\Support\Collection {#5103
all: [
1,
2,
],
},
Illuminate\Support\Collection {#5096
all: [
2 => 3,
3 => 4,
],
},
Illuminate\Support\Collection {#5098
all: [
4 => 5,
5 => 6,
],
},
],
}

Steps To Reproduce:
echo 'collect([1,2,3,4,5,6])->chunk(2)' | php artisan tinker

Array indexes in php are zero-based, which means the first element has an index of 0.
So the expected output is
[0 => 1, 1 => 2]
which is equivalent to your output
[1, 2]


[MYSQL-support]是否有Mysql请求的检测，检测SQL执行语句是否成功，超时。

是否有Mysql请求的检测，检测SQL执行语句是否成功，超时。

There is one in the bcc repo, you may refer to it: https://github.com/iovisor/bcc/blob/master/tools/mysqld_qslower_example.txt

do you have a mysql-server with debug-info ? or please tell me which mysql-server version you are.
my mysql version is 8.0.40.
when i execute   bpftrace -l "uprobe:xxxx:dispatch_command" there is no print in my terminal.it seems that there is no probe named  dispatch_command.i am shure my binary path is right


Stronger SubDimensions

This PR does a minor cleanup and, most importantly, fixes a number of issues associated with SubDimensions
fixes #503
fixes #508
fixes #513
fixes #521
Tests for each of these issues are shipped
@mloubout @tjb900 please double check that the issues are actually gone with this PR

Codecov Report

Merging #523 into master will increase coverage by 0.21%.
The diff coverage is 96.18%.

@@            Coverage Diff             @@
##           master     #523      +/-   ##
==========================================
+ Coverage   86.63%   86.85%   +0.21%
==========================================
  Files          72       72
  Lines        6578     6640      +62
  Branches     1351     1375      +24
==========================================
+ Hits         5699     5767      +68
+ Misses        687      684       -3
+ Partials      192      189       -3

Impacted Files
Coverage Δ

devito/ir/support/stencil.py
71.87% <100%> (+0.44%)
:arrow_up:

devito/ir/support/utils.py
97.57% <100%> (+0.09%)
:arrow_up:

devito/ir/iet/scheduler.py
99.04% <100%> (+0.06%)
:arrow_up:

devito/dse/backends/advanced.py
97.59% <100%> (-0.06%)
:arrow_down:

devito/ir/iet/analysis.py
72.82% <100%> (+2.17%)
:arrow_up:

devito/dimension.py
89.11% <100%> (+0.23%)
:arrow_up:

devito/function.py
90.72% <100%> (+0.07%)
:arrow_up:

devito/ir/clusters/cluster.py
92.4% <71.42%> (-0.84%)
:arrow_down:

devito/ir/support/space.py
88.01% <92.3%> (+0.51%)
:arrow_up:

devito/ir/support/basic.py
92.33% <94.73%> (+0.58%)
:arrow_up:

... and 3 more

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 42b39ca...6fc4eb7. Read the comment docs.

So I am just running this through some of the failures I had when submitting the initial issues.  I believe it fixes the issues I submitted, but I had pared some of the issues down to the simplest possible failing case.
This one, which I had originally written as the test case for #521, now throws an error:
from devito import (Grid, Operator, TimeFunction, configuration, Eq,
                    INTERIOR, DOMAIN, SubDimension)

configuration["openmp"] = True

grid = Grid(shape=(20,20))
x, y = grid.dimensions
t = grid.time_dim

u = TimeFunction(name='u', grid=grid, save=10, time_order=1)

reg = INTERIOR

steps = []
steps.append(Eq(u.indexed[t+1, x, y],
                u.indexed[t+1, x, y-1] + u.indexed[t, x, y], region=reg))
steps.append(Eq(u.indexed[t+1, x, y],
                u.indexed[t+1, x, y+1] + u.indexed[t, x, y], region=reg))
op = Operator(steps)

produces
ValueError: Cannot merge `IterationSpace`s with incompatible directions

It's worth noting here that it works if I replace y with the SubDimension for the left and right, as I would in a real case.  Therefore, this is not a practical example.
However, I had believed until now that this was nonetheless legitimate.  It was my understanding that a sequence of equations passed to an operator would produce an equivalent result as if they had been executed in the sequence provided.  So I think this may still be a bug: these two might not be able to be merged, but that just means they should be run in sequence.

So I think this may still be a bug: these two might not be able to be merged, but that just means they should be run in sequence.

absolutely, it's a stupid check that I added, but I should actually drop it! Will fix it tmr

@tjb900 @mloubout can you take a final look? I should have addressed your latest issues. Hopefully now we even have a green Travis...

Merged.


[Issue] - Health Checker ScriptUpdateOnly parameter in a scheduled task

Provide Version Number
<IP_ADDRESS>8
Describe the issue
Using the script with the ScriptUpdateOnly parameter in a scheduled task doesn't work anymore since this version expects a confirmation on the update. This was not the case in previous versions of the script.
Expected behavior
Being able to use the script with the ScriptUpdateOnly parameter in a scheduled task again. This may be achieved in two ways I think:

Revert to the old way of update handling
Build in something like a -Confirm:$false option

Script Output
.\HealthChecker.ps1 -ScriptUpdateOnly
Confirm
Are you sure you want to perform this action?
Performing the operation "Update script to latest version" on target "HealthChecker.ps1".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"):
Additional context
n/a

@Xypriz thanks for the issue!! Fix will be released shortly.


BAEL-7910: Avoid Inserting Duplicate in ArrayList in Java

Add tests to showcase how to avoid inserting duplicates in ArrayList

retest this please


spellchecker - Update logic for add to SBH and add to spellchecker dictionary

In GitLab by @nwalczak on Jun 17, 2019, 15:53
Right now, clicking "add to dictionary" will add the current term to the spellchecker dictionary, but it does not affect the rest of the results.  This should be changed such that all of the results matching that term are removed (if the user adds to the spelling dictionary, it indicates that they don't want to consider that word: it's essentially an "ignore all, always" option).
However, I had made it so that the "Add to SynbioHub" option has this behavior, which isn't quite right.  Really, when adding to SBH, we have two options: ignore the rest of the results, or add a link to the rest of the results.

In GitLab by @nwalczak on Jun 17, 2019, 16:16
created branch 54-spellchecker-update-logic-for-add-to-sbh-and-add-to-spellchecker-dictionary

In GitLab by @nwalczak on Jun 17, 2019, 16:31
mentioned in merge request !4

In GitLab by @nwalczak on Jun 17, 2019, 16:31
assigned to @nwalczak

In GitLab by @nwalczak on Jun 17, 2019, 16:31
closed via commit<PHONE_NUMBER>e9afada916e2d7dcd62a8961f232bf

In GitLab by @nwalczak on Jun 17, 2019, 16:31
closed via merge request !4

In GitLab by @nwalczak on Jun 17, 2019, 16:34
I made it so adding an entry into SBH now leaves duplicates untouched, and adding a term to the spellchecker dictionary removes duplicates from the result set.
I think this is better behavior than how it was previously.  I am going to leave the question of what to do with other occurrences of the same term when adding to SBH for issue #55.

In GitLab by @nwalczak on Jun 17, 2019, 16:41
mentioned in commit<PHONE_NUMBER>e9afada916e2d7dcd62a8961f232bf


Create a Wiki

at https://github.com/javaslang/javaslang/wiki
We will start with headings. This enables committers to add documentation.

No, for now we will have one source for documentation, our ascii-doc.


IncreaseHitChance & IncreaseDefChance -> Negative values

So i find out that everytime you equip item that has these bonuses, after unequip it will decrease the bonus value twice (x2).
CombatFlags=00001|00002|00020|00040|040000|00008
Latest X
X script pack

I checked it now and it seems like everything is fine with latest release, could you sen your script?

Still happening to me with latest. Using X vanilla sphere pack.
[ITEMDEF i_arcane_shield]
ID=i_shield_kite_wood
NAME=Arcane Shield
SpellChanneling=1
NightSight=1
IncreaseDefChance=15
FasterCasting=1
RESENERGY=1
Rarity=11
TEVENTS=ei_equipitem
TEVENTS=ei_artifact
CATEGORY=Artifacts
SUBSECTION=Doom (Gauntlet)
DESCRIPTION=Arcane Shield
ON=@Create
   COLOR=0556
   ATTR=attr_magic|attr_identified
   HITPOINTS=255

https://i.gyazo.com/8547306754342a15034b868997feead8.gif

Yeah I tested it, seems like when you use it under ItemDef it cause that bug.

Seems like it's fixed after the latest update, could you check it?

Still doubled here :(

The problem is, I started to work on that, I created arcane shield, it starts go negative after I unequip item, but I tired and sleep, later at the next day I want to work on it and it's working fine as it should be, so when the issue fixed itself, I don't really know how to fix it. But there is something wrong about that.

It's still working fine for me from that day, I haven't remembered I did anything about it but maybe someone made a change on it? Or maybe I fixed it while fixing other things. I am not sure but seems like it's working fine for me, can you check if you still has issue? Because it's really strange.

Hahahah pff, Okay I found out the reason. The reason is script side, because you have ei_equipitem event, and this event in default has - itemdefchance, but after we added automatic decrease in sphere, this causes double drops, you need to comment
	SRC.IncreaseDefChance -= <IncreaseDefChance>
	IF (<SRC.IncreaseDefChance>==0)
		SRC.SYSMESSAGELOC color_text,1062321//"Your defense chance has returned to normal."
	ENDIF
ENDIF```
lines under @UnEquip

Hahahah pff, Okay I found out the reason. The reason is script side, because you have ei_equipitem event, and this event in default has - itemdefchance, but after we added automatic decrease in sphere, this causes double drops, you need to comment
IF (<IncreaseDefChance>)
	SRC.IncreaseDefChance -= <IncreaseDefChance>
	IF (<SRC.IncreaseDefChance>==0)
		SRC.SYSMESSAGELOC color_text,1062321//"Your defense chance has returned to normal."
	ENDIF
ENDIF

lines under @UnEquip And other increasehitchance blabla etc. Because they are removed under On=@Equip but doesn't removed under @UnEquip so it causes decreased twice.


Single logout is not working for OIDC sample apps with external LDAPs

Describe the issue:
SSO is working for OIDC apps. But SLO is not working.
How to reproduce:

Configure two webapps with external LDAP
SSO to the webapps
Try to SLO

Expected behavior:
SLO should work
Environment information (Please complete the following information; remove  any unnecessary fields) :

Product Version: [IS 7.0.0,]
OS: [Mac]
Database: [H2]
Userstore: [LDAP]

Optional Fields
Related issues:

Suggested labels:

@ayeshajay can you elaborate what you mean by SLO not working?

I have tested that on using https://is.docs.wso2.com/en/latest/guides/login/cross-protocol-logout/#pickup-dispatch-saml, https://is.docs.wso2.com/en/latest/guides/login/cross-protocol-logout/#set-up-the-pickup-manager-sample applications  and https://is.docs.wso2.com/en/latest/guides/login/sso-for-oidc/#pickup-dispatch for this operation.

I tested SLO with playground2, and also with the Myaccount and console applications as well. SLO worked without any issue. However, SLO did not function as expected in the pickup-dispatch and pickup-manager applications. A separate issue has been created to address it[1]
Screencast from 04-01-24 20:52:12.webm
Screencast from 04-01-24 17:35:21.webm
[1] https://github.com/wso2/product-is/issues/18814

Since SLO is working with the latest IS pack we’re closing the issue.


Introduces config.hidesBottomBar

Added an option for hiding the bottom bar, as suggested in #231.
/// Defines if the bottom bar should be hidden when showing the picker. Default is false
config.hidesBottomBar = true

You sir, are on fire ! 🔥 Thank you so much for your work 👍 👍 👍


NIFI-8506 Fix Azure Storage integrated tests.

Thank you for submitting a contribution to Apache NiFi.
Please provide a short description of the PR here:
Description of PR
Fixes bug NIFI-8506.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[X] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[X] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[X] Has your PR been rebased against the latest commit within the target branch (typically main)?

[X] Is your initial contribution a single, squashed commit? Additional commits in response to PR reviewer feedback should be made on this branch and pushed to allow change tracking. Do not squash or use --force when pushing to allow for clean monitoring of changes.

For code changes:

[X] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[X] Have you written or updated unit tests to verify your changes?
[X] Have you verified that the full build is successful on JDK 8?
[X] Have you verified that the full build is successful on JDK 11?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly?
[ ] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly?
[ ] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties?

For documentation related changes:

[ ] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check GitHub Actions CI for build issues and submit an update to your PR as soon as possible.

Since you've removed the @Ignore it's now failing the check style because it's an unused import. Can you remove the import?

@jfrazee I missed that one, my bad. This should work now.


No items in inbox

Description
For some reason I always have zero inbox in the app
To Reproduce
Just open the app section inbox
Expected behavior
See notifications and mentions
Smartphone
Iphone XS ios12
Maybe I didn't do something to allow notifications to be sent. I enjoy app very much and want it to work properly. Thanks for making it!

Can you see any notifications on https://github.com/notifications ?
Sent with GitHawk

Nope, I guess I need to tick web notifications to see them in GitHawk. I guess it’s solved, sorry my mistake. Thanks for quick answer!


GitHub actions

Building on Travis-CI has stopped being free, so we need an alternative.
This pull request adds building using Github Actions which is free for public repositories and removes building using Travis-CI
Updates the version of Ubuntu used to run the test to Focal (20.04) and updates the list of compilers available in that version of the OS
Fixes an issue that was introduced in v2.3.0 which stops the library building for PHP 7.0 and 7.1
Fixes #501
Fixes #492

This has been merged into a maintained fork here https://github.com/fast-debug/PHP-CPP/pull/1


Move store to engine

The CustomSocketFactory is used by the env thus has to be available to the env.
Moving it back to engine seems to be the only solution.

We will have to see if there are other trust stores in the codebase and see if we can implement it the same way on all locations


Throwing in OnActivateAsync

Currently the workflow is "preparated" ie. loaded (and started if it was saved in Runnable state) during OnActivateAsync(). It can cause exceptions that are propagated back to OnActivateAsync(), causing activation to fail. Will this cause reactivation in an infinite loop? Or waste silo resources?
The alternative is to delay the workflow preparation for the real incoming request or Reminder after activation, if it fails, the grain remains active and will reload and rerun the workflow on the next incoming request or Reminder, ie. will retry later without deactivation.

Other reasons:

OnActivate is a de facto ctor, don't put logic into ctors
to make it possible to use runtime values (based on incoming requests) in factories, we can't execute factories before the incoming request, but OnActivate will execute the factories to select and create a proper workflow (version, extensions, arguments, etc.) for the grain


AES/CBC/PKCS5Padding vs AES/CBC/PKCS7Padding

Hi first of all great library!
I want to use AES/CBC/PKCS7Padding and I noticed that the jvm implementation uses AES/CBC/PKCS5Padding where the darwin one uses AES/CBC/PKCS7Padding
Any reason for that? would you accept a PR where the padding is passed as parameter and the user can specify which padding to use ? thanks!

I've actually just now noticed that only platform.CoreCrypto.kCCOptionPKCS7Padding padding is supported making the darwin implementation impossible, but still looks like is incompatible with the JVM counterpart?

probably this answers my question?
tldr: in java implementation AES/CBC/PKCS5Padding is synonymous of AES/CBC/PKCS7Padding

I guess I'll auto-close my issue 😅
AES/CBC/PKCS7Padding does not exist in java and AES/CBC/PKCS5Padding is the same algorithm
https://stackoverflow.com/a/29234136

Yes, thanks for the clarification, I had the same confusion before.


Release 1.6.0

Right now 1.6.0 has been set up and tested properly, will release this version in the weekend :)
This should be the last bug in 1.6.0 !

:+1:


[question] Casbin group policy with domains

Hello.
We'd like to implement groups management in our application which similar to Gitlab groups.
There are users, groups and links between them.
You can specify role for user in the group.
For example, user_1 belongs to group_1 with role admin,
user_2 belongs to group_2 with role admin and group_1 with role auditor.
For now, we're using RBAC with domains model.
Model:
[request_definition]
r = sub, dom, obj, act

[policy_definition]
p = sub, dom, obj, act

[role_definition]
g = _, _, _

[policy_effect]
e = some(where (p.eft == allow))

[matchers]
m = g(r.sub, p.sub, r.dom) && r.dom == p.dom && r.obj == p.obj && r.act == p.act

Policy and role definition we make with casbin editor:
p, admin, group_1, view_report, read
p, admin, group_1, create_report, read
p, admin, group_1, share_report, read
p, auditor, group_1, view_report, read

p, admin, group_2, view_report, read
p, admin, group_2, create_report, read
p, admin, group_2, share_report, read
p, auditor, group_2, view_report, read

g, user_1, admin, group_1
g, user_2, auditor, group_1
g, user_3, auditor, group_1

g, user_1, auditor, group_2
g, user_2, admin, group_2

Enforse works as expected:
user_1, group_1, view_report, read // true since user_1 belongs to domain group_1 with admin role (and admin role has view_report, read)
user_2, group_1, view_report, read // true as well
user_1, group_1, create_report, read // true
user_2, group_1, create_report, read // false since there user_2 belongs as auditor to domain group_1 (add auditor doesn't have create_report, read )

And for group_2:
user_1, group_2, view_report, read // true
user_2, group_2, view_report, read // true as well
user_1, group_2, create_report, read // false
user_2, group_2, create_report, read // true

Here is the link to casbin editor with this policy: https://editor.casbin.org/#ATL44EZVS
How we can mapping this policy rules to casdoor?
Should we duplicate each role for every domain? And after that we duplicate each permission for every domain's role, do we?
Otherwise it doesn't work as expected.
For example:

I create two roles: admin, auditor by casdoor and pass our domains (group_1, group_2)
I create three permissions: view_report, create_report, share_report. Link them to roles.

After that we have in the permission rule table:
ptype,v0,v1,v2,v3,v4,v5
p,built-in/admin,group_1,view_report,"","",built-in/share_report
p,built-in/admin,group_1,create_report,"","",built-in/view_report
p,built-in/auditor,group_1,view_report,"","",built-in/view_report
p,built-in/admin,group_1,create_report,"","",built-in/view_report
g,built-in/hound,admin,group_1,"","",""
g,built-in/vbliznetsov,auditor,group_1,"","",""

There is no any information about our domains.
One way which found is to duplicate roles and permissions:

For each domain create set of roles: group_1_admin, group_1_auditor, group_2_admin etc
And assign user to specified role: from below example it'd be user_1 assigned to role group_1_admin role, user_2 assigned to role group_1_auditor etc

For each role create set of permissions as well: group_1_view_report, group_2_create_report etc
And assing domain in permission: group_2_create_report assigned to group_2 subdomain etc

It works but there is too much duplicates.
Any suggestions?

Recently groups support was added.
What do you think about integrate casbin policies and groups?
For example, we can add user to group with specified role and then casdoor is able to add group policy.

Plus one for this feature.
From our point of view, one the most perspective side of Casdoor is seamless integration with Casbin (that looks like extremely powerful, but still little bit hard to adopt).
In this case Casdoor is like a bridge that join easy-to-use approach of Casdoor with power of Casbin.
It will be perfect if community will help to add support for such as use-case.

Hello folks, has anyone worked on this yet?

Hello folks, has anyone worked on this yet?

From our side - no,
We have some idea - like add roleId to user_group_relation  that will be translated to something like this
g, user_1, admin, group_1
but so far looks forward to @hsluoyz and @leo220yuyaodog.

@hsluoyz another way is to implement API for managing cabin's rules directly in casdoor.
In that case we are able to manage casbin rules by ourself.
What do you think?

Hi, folks, I'm working on the issue.
We plan to use Casbin to manage the user permisson in Casdoor. We all know that Casdoor does not integrate Casbin completely. Now that we have groups, we can use RBAC with domain to manage the permissions of Casdoor users. However, existing permissions are not easily supported directly.  In order for everyone to easily configure the user rights of Casdoor without breaking the flexibility of the existing Casbin API. I'm going to change the structure to the following picture.

What do you think about? Any suggestions are welcome.


nixos/goldwarden: init, goldwarden: package GUI

Description of changes
Things done:

packaged GUI
made a module which installs polkit files, pinentry
tested ssh agent functionality
tested browser functionality

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

I'm running into an issue with the systemd service not having pinentry in PATH. Works fine when I run goldwarden daemonize manually though.
Error: exec: "pinentry": executable file not found in $PATH

Goldwarden is sometimes a bit brittle and fails for no apparent reason. Also we would need a running vaultwarden and probably create some entries in it which is a bit more involved.

Goldwarden is sometimes a bit brittle and fails for no apparent reason. Also we would need a running vaultwarden and probably create some entries in it which is a bit more involved.

Goldwarden is sometimes a bit brittle and fails for no apparent reason. Also we would need a running vaultwarden and probably create some entries in it which is a bit more involved.

@SuperSandro2000
On the GUI side, https://github.com/quexten/goldwarden/pull/191 should fix a lot of the issues regarding stability. The daemon still needs some work, if you do encounter further issues please try to report them though, so they can be fixed :)


Remove render resource in example

From the example in step 1,
  def unauthorized(conn, resource, policy) do
    conn
    |> put_flash(:error, "You are unauthorized because #{policy} did not return true for author id #{resource[:author_id]}")
    |> render("show.html", page: resource)
  end

I find that rendering the page again with resource defeats the purpose of authorization. Although flash message is rendered to the page, resources are still being displayed.
I think we could use redirect(to: page_path(conn, :index) instead.
Any thoughts?

Thanks will fix the typo in the next release


Remote reconciliation strategy

The purpose of this issue is to define how do we want to architecture and implement the remote reconcilitation.
The remote reconciliation assumes:

Component operators are running in the Control Plane
Component operator CRs are created in the Control Plane
Running instances of component operators are reconciling Kyma components in remote clusters (customer clusters)

The challenges found initially:

Scaling of the solution. Consider one hundred clusters are to be upgraded starting Tuesday morning. How long does it take overall, how long does it take for a single cluster on average and what's the latency in CR status updates?
Do we want to control the ordering of upgrades between clusters? See below for explanation.

Scaling of the solution
The operators can't scale. There's always only one instance of an operator. How do we reconcile 100 clusters in parallel using just a single golang process?

goroutines won't work - do you have a Node performant enough?
horizontal scaling won't work - you can't increase replicas for an operator
what about status update latency? We should update status on CR's to something like "Pending" ASAP, for every CR, regardless of the time it takes to actually upgrade the related clusters. It means the actual workload should somehow be scheduled to the "background" or to some external entity, and the operator should process CR's without any substantial delay.

Possible solutions:

just measure what we can achieve right now, if it's not enough, try to find a solution :)

Ordering of upgrades problem - latency, resources.
Assume we have just three component operators: A, B, C.
Let's also assume all component operators performs the reconciliation step in a similar time.
Assume we have 10 clusters to upgrade.
We can easily show that the order of processing between component operators does change the observed latency and resource allocation.
First model (worst-case):

Steps in time
comp. A is processing
comp. B  is processing
comp. C is processing
clusters ready after the step

1
cluster 1
cluster 1
cluster 10
-

2
cluster 2
cluster 2
cluster 9
-

3
cluster 3
cluster 3
cluster 8
-

4
cluster 4
cluster 4
cluster 7
-

5
cluster 5
cluster 10
cluster 6
-

6
cluster 6
cluster 9
cluster 5
-

7
cluster 7
cluster 8
cluster 4
4

8
cluster 8
cluster 7
cluster 3
4, 8, 7, 3

9
cluster 9
cluster 6
cluster 2
4, 8, 7, 3, 9, 6, 2

10
cluster 10
cluster 5
cluster 1
4, 8, 7, 3, 9, 6, 2, 10, 5, 1

In this model, we are actively reconciling up to 6 clusters at any time, and the average latency for a cluster to be ready is 8.8 (in the artificial "Steps in time" units)
Second model (best-case):

Steps in time
comp. A is processing
comp. B  is processing
comp. C is processing
clusters ready after the step

1
cluster 1
cluster 1
cluster 1
1

2
cluster 2
cluster 2
cluster 2
1, 2

3
cluster 3
cluster 3
cluster 3
1, 2, 3

4
cluster 4
cluster 4
cluster 4
1, 2, 3, 4

5
cluster 5
cluster 5
cluster 5
1, 2, 3, 4, 5

6
cluster 6
cluster 6
cluster 6
1, 2, 3, 4, 5, 6

7
cluster 7
cluster 7
cluster 7
1, 2, 3, 4, 5, 6, 7

8
cluster 8
cluster 8
cluster 8
1, 2, 3, 4, 5, 6, 7, 8

9
cluster 9
cluster 9
cluster 9
1, 2, 3, 4, 5, 6, 7, 8, 9

10
cluster 10
cluster 10
cluster 10
1, 2, 3, 4, 5, 6, 7, 8, 9, 10

In this model, we are actively reconciling only 1 cluster at a time, and the average latency for a cluster to be ready is 5.5 (in the artificial "Steps in time" units).
Notice that the amount of work to be done is the same in both models, just the ordering makes the difference.
Our current proposed strategy is: Every component operator is independent and is processing clusters in it's own order/pace
This unfortunately leads more towards the first execution model, which is not optimal.
Another thing is resource consumption. If we actively reconcile 6 different clusters at a time, we need 6 different k8s golang clients, 6 HTTPS streams, and so on.
Finding a way to share such resources between operators (a common external worker, for example), along with processing clusters in some synchronized order, would reduce resource consumption along with the latency.
As always, the benefits from the possible improvements here may not justify the effort - it should be measured.

No longer relevant.


Unset with nil, fix performance by removing default limit=0, convenience methods removed? persisted? and _id!

Sorry this is a bunch of fairly unrelated changes... there are a few things I'm not sure about, so please let me know any modifications you'd like made and I'll be happy happy to make them!

in my use-case, I often need to unset fields in mongo (e.g. user timezone is a string or nil to inherit from account timezone... if the user chooses Default I need to wipe the field from the record), so this adds support to do that by user.timezone = nil will issue an $unset command
because 0 != nil, a limit=0 was being passed to find operations, which apparently caused the batch_size to be set to 0 as well (no records returned initially and then one at time)... i discovered this cause it took several seconds to pull 240 records, and it turned out it was issuing ~240 Mongo::Commands::GetMore commands
BSON::ObjectId support in find_by_id (and prevent BSON::ObjectId.new("") because that led to weird data corruption in queries)
ability to override the spec db url with ENV["MONGO_URL"]
inserted? removed? persisted? and _id! methods on MongoBase
respect BSON::Field ignore:true annotations (just like the BSON library does)

Upon further reflection, if you wanted to make to_bson capable of generating the nils needed by unsets_to_bson, you'd have to add like a reverse_emit_nil option rather than a force_emit_nil option (since we need it exactly flipped, not always emitted).

Hi @atlantis, thanks for contributing 👍 !
Just finished reviewing the PR, made some comments in there.

Thanks! 👍


Performance issue with swagger in GAE standard/flex environment for spring-boot application

I Implemented springfox-swagger in a spring boot application. The below is the configuration used in pom.xml.
            <dependency>
		<groupId>io.springfox</groupId>
		<artifactId>springfox-swagger2</artifactId>
		<version>2.9.2</version>
	</dependency>
	<dependency>
		<groupId>io.springfox</groupId>
		<artifactId>springfox-swagger-ui</artifactId>
		<version>2.9.2</version>
	</dependency>

	<dependency>
		<groupId>io.springfox</groupId>
		<artifactId>springfox-bean-validators</artifactId>
		<version>2.9.2</version>
	</dependency>

And i have nearly 10 service endpoints defined in controller class. When i access swagger-ui.html in local, it's working fine and loading very fastly (Approximately 5 secs).
The same application had deployed to GAE standard/flex environment. But when i hit swagger-ui URL it is taking more time to load (Approximately 1-2 mins).. which leads to a performance issue.
Anybody can help me in this issue? Thanks.

@vijayakumar-psg587 would love for feedback to make this better, but Its a little bit of an unknown why GAE isnt performing as well, perhaps the memory sizes/configuration of the environment is a factor?

@dilipkrish Apologies for a very delayed response. I've contacted GCP support on this and enquired about the latency. Seems the routing configured which is global by default, produces an initial latency when accessing the app. The issue I had is latency with multiple access of the same service but different revisions. So the suggestion was to make the routing regional to reduce the latency. Also since I was trying to access a newly deployed service every time( the revision was more to do so with the resource /memory configuration in app.yaml file), every time the service is spun up by creating/rewiring the VMs at the backend and hence every call to the newly deployed revision was like making a new http request to the service. That was the reason behind latency. Subsequent calls reduced the latency albeit marginally. Hence our team decided to use GCR/GKE as a solution moving forward rather than using app engine.

Also I haven't tried with the improved versions of GCP, which I believe render the services much more faster. So I do not want people to be discouraged by the fact that GCP  app engine might be slow. I suggest to try out with the newer versions.


%loadfav

Tired of redefining functions in debugger, or hoping they can still be found in history? %loadfav - executes script to load definitions, imports, or whatever. Script path set in Preferences.
Maybe it's already a thing, or it's hard to implement, but it'd indeed be a major QOL - bonus if we can specify which script to run, e.g. %loadfav(2).

Hi @OverLordGoldDragon , if I understand correctly, your idea is to add a custom magic that enables users to run some sort of bookmarked file (which could contain some sort of code snippet with imports or definitions - constants, functions, variables, etc), right?
What do you think @spyder-ide/core-developers ?

@dalthviz Correct.

There is an option to run a line for pdb. you can use ';' to separate line. I use:
import matplotlib.pyplot as plt; from matplotlib.pyplot import plot, imshow
If you always use the same definitions, I would:

create a package with all the definition you want
install it
run from my_pdb_package_1 import * / add from my_pdb_package_1 import * in the pdb preferences

@impact27 ... why of course, imports.


Fix for German country code

German banking systems still use the ISO code 280 (former code for West Germany).
The current ISO code for Germany, 276, is not used in the financial world.
The official documents are in German, but here is a translated announcement of Germans popular local debit card scheme Girocard as reference:
https://www.girocard.eu/media/weiternutzung_iso3166-code-280_deutschland.pdf
Quote from the document: "There are no plans to replace Code 280 as representation for Germany"

I would suggest to have both country codes in the file, for 280 something like "(West)" could be added. By the way, there is another file, country-codes.csv, which should then also be updated.
As far as I remember, with the switch from the national chip scheme for Germany to EMV, there was a workaround, that the terminals present the code 276 to the card, so the card thinks that it is used outside of Germany and uses the EMV-application on the card.


Real Time display does not load

Hello the Real time Display ist working anymore.
It shows only start screen with Informations and Settings
Bottom left Corner its says waiting for Kancolle to start but kancolle is already running
Need really help
Hope you can Help me

I think im also having the same problem...im already in the game itself but it just shows informations and settings with waiting for Kancolle to start. Maybe its cause of the new patch that just got implemented after the maintenance? Hope you can help :)

Fixed in 4492aacc9b0b886dd81ef5e4c5346fb232a5c5f5.

Thank you so much!!


hkubectl sync watch does not copy the source file to the algorithm mount storage

HKube micro-service
To which micro-service the bug related to, Dashboard ,Monitor-Server etc.
Describe the bug
hkubectl sync watch does not copy the source file to the algorithm mount storage
the bug was caused by a fix that was made for Openshift
To Reproduce
execute : hkubectl sync create --entryPoint XXX --algorithmName ZZZ --folder QQQ --env python
execute : hkubectl sync watch -a ZZZ -f QQQ
make change in one of the source file
the files are not coped to the algorithm and when executing the algorithm receiving an error for the missing files

fixed in v1.3.95.
dd


Adjust config display component registration

Change the default config display component registration to better explain the component priorities and ensure that the component registration happens only once.
/cc @wavesoft @nLight @Poltergeist

✨


Added Filip Němeček's Blog

Added my humble new blog :)

Thank you!

Thanks! That was super quick!


Unhandled Exception: RangeError: Value not in range: -4

Im not sure how to reproduce the problem as it has something to do with what hive Wrote to the file, I am unable to read the file now.
Running await Hive.openBox("state", encryptionKey: key) works perfectly 99% of the time. However after writing to the data this error is now being thrown when I try to open the box.
E/flutter ( 3422): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: RangeError: Value not in range: -4

E/flutter ( 3422): #0      _rangeCheck  (dart:typed_data-patch/typed_data_patch.dart:4623:5)
E/flutter ( 3422): #1      _ByteBuffer.asUint8List  (dart:typed_data-patch/typed_data_patch.dart:1929:5)
E/flutter ( 3422): #2      new Uint8List.view (dart:typed_data:845:19)
E/flutter ( 3422): #3      BinaryReaderImpl.peekBytes
package:hive/…/binary/binary_reader_impl.dart:68
E/flutter ( 3422): #4      framesFromBytes
package:hive/…/binary/frames_from_bytes.dart:24
E/flutter ( 3422): #5      FrameIoHelper.framesFromFile
package:hive/…/io/frame_io_helper.dart:57
E/flutter ( 3422): <asynchronous suspension>
E/flutter ( 3422): #6      StorageBackendVm.initialize
package:hive/…/backend/storage_backend_vm.dart:98
E/flutter ( 3422): <asynchronous suspension>
E/flutter ( 3422): #7      BoxBase.initialize
package:hive/…/box/box_base.dart:86
E/flutter ( 3422): #8      HiveImpl.openBox
package:hive/src/hive_impl.dart:83
E/flutter ( 3422): <asynchronous suspension>
E/flutter ( 3422): #9      MyGuideStorage.init
package:app/util/myguide_storage.dart:48
E/flutter ( 3422): <asynchronous suspension>
E/flutter ( 3422): #10     main
package:app/main.dart:21
E/flutter ( 3422): #11     _runMainZoned.<anonymous closure>.<anonymous closure>  (dart:ui/hooks.dart:229:25)
E/flutter ( 3422): #12     _rootRun  (dart:async/zone.dart:1124:13)
E/flutter ( 3422): #13     _CustomZone.run  (dart:async/zone.dart:1021:19)
E/flutter ( 3422): #14     _runZoned  (dart:async/zone.dart:1516:10)
E/flutter ( 3422): #15     runZoned  (dart:async/zone.dart:1500:12)
E/flutter ( 3422): #16     _runMainZoned.<anonymous closure>  (dart:ui/hooks.dart:221:5)
E/flutter ( 3422): #17     _startIsolate.<anonymous closure>  (dart:isolate-patch/isolate_patch.dart:305:19)
E/flutter ( 3422): #18     _RawReceivePortImpl._handleMessage  (dart:isolate-patch/isolate_patch.dart:172:12)

I assume that wiping the data again will fix it, but i would like to know what exactly im writing that is causing this to happen or possibly a fix. I'll add to this issue if I manage to find a way to reproduce it.

Thanks for reporting this. Does the error happen for a specific file or does it happen even after you removed it?
If it is a specific file and if it is only a test database, it would be really helpful if you could send it to me...
Or if you find a way to reproduce this issue it would help even more ;)

No, after i have cleared the app's storage / reinstall it does not happen anymore.
I have reproduced the problem after using Box.clear(). After running that, I cannot use the box again for some reason. Though the issue doesnt happen while the box remains open.
After relaunching the app or re-opening the now cleared box is when the exception above is thrown.

Thanks for your great help! I found the issue and I'll fix it with the next beta version. Until that you can switch to the stable version to fix the problem.

No problem, mid implementation phase. Thanks for the snappy response times!

I have the same problem, i'm waiting for the fix!

@gabdsg Do you just see the same error or are you also on version 1.1.0-beta and use the clear() method?

@leisim I'm also in version 1.1.0-beta, i don't user clear()

@gabdsg Do you have some code to reproduce the issue?

@leisim No, i can't reproduce the issue...

@gabdsg Okay thanks... Please report if you have new insights :+1:

@leisim I see this log Recovering corrupted box then next time RangeError: Value not in range: -4 but still no idea why

@gabdsg Is it reproducible or does it happen randomly?

@leisim It happens many times but I can't reproduce it... just happens

@leisim maybe I restart the app when is writing? there any way to remove the corrupted box without using Hive.openBox?

I've seen this happened many times on my physical devices, usually after I left the phone charging for a long time (when other apps are updated).
P/S: Only on physical devices. Never have I seen it happened on simulator.

For me it only happens in the simulator, I didn't test it on a physical device.

I've seen this happened many times on my physical devices, usually after I left the phone charging for a long time (when other apps are updated).

Also on 1.1.0?

whoops I'm currently on 1.0.0. I will upgrade to 1.1.0 and report back later.

happened today on Android emulator after I hot-restarted the app. Version: 1.1.0-beta
E/flutter (21115): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: RangeError: Value not in range: -4
E/flutter (21115): #0      _rangeCheck (dart:typed_data-patch/typed_data_patch.dart:4623:5)
E/flutter (21115): #1      _ByteBuffer.asUint8List (dart:typed_data-patch/typed_data_patch.dart:1929:5)
E/flutter (21115): #2      new Uint8List.view (dart:typed_data:845:19)
E/flutter (21115): #3      BinaryReaderImpl.peekBytes (package:hive/src/binary/binary_reader_impl.dart:68:22)
E/flutter (21115): #4      framesFromBytes (package:hive/src/binary/frames_from_bytes.dart:24:29)
E/flutter (21115): #5      FrameIoHelper.framesFromFile (package:hive/src/io/frame_io_helper.dart:57:12)

Please try version 1.1.0-beta2 it should fix the problem.

The original issue has been completely resolved when switching to 1.1.0-beta2 and attempting multiple ways to clear and reuse the data.
I can now clear all data in specific hives (i.e. a download cache) while keeping say... access token information, and as expected it does what it should. Thanks!
Also i have only been testing on physical devices, Not simulators, and it happens on physical devices. if that helps anyone.

Thanks for confirming it works. If anyone has issues on versions 1.1.0-beta2 or later, please open another issue.


polymer-bundler breaks css image paths

My application has below project structure:
my-project
* src
  * assets
    * bower_components
      * my-library
        * assets
          * texture.png
        * x-foo
          * x-foo.html
    * elements.html (list of imports pointing to elements in `my-library` folder)

I have a style with below css in my-library folder:
--paper-toolbar: {
          border-image: url("../assets/texture.png") 1 0 0 0;
}

After I run polymer-bundler on elements.html, I see below url in the bundled file:
--paper-toolbar: {
          border-image: url("bower_components/my-library/assets/texture.png") 1 0 0 0;
}

When I run this project locally, the final path that browser looks for is
http://localhost:4200/assets/bower_components/my-library/x-foo/bower_components/my-library/assets/texture.png
I think the style urls should not be updated by polymer-bundler.

Are you using polymer-bundler on command-line or polymer (aka polymer-cli)?  Please provide any version info you can.  I'll try and reproduce your symptom.

Here's the test repo for replicate above issue: https://github.com/jaichandra/polymer-bundler-test
I am on version 2.2.0.

@jaichandra  It appears that vulcanize and polymer-bundler have apparently been doing exactly the wrong thing here since... forever, with respect to rewriting the templated <style> tag css contents when inlining imports.
I am really surprised this hasn't been reported as a bug until now.  Also, we have four unit tests which are designed to assert it does precisely the current incorrect behavior.
👎
Fixing this immediately.

I think I've just encountered the same issue using vulcanize 1.15.3.
Project structure:
app
-- elements
----- my-elements.html (bundle root to a bunch of imports including icons.html)
-- images
----- icons
-------- icons.html (a dom-module wrapped stylesheet)
After vulcanized the assetpath of the bundled dom-module is set to ../images/icons/ which is correct. However all of the src() references have also been rewritten from foo.png to ../images/icons/foo.png making the browser look in /images/images/icons/foo.png.
I'm a little confused where vulcanize fits in with the new polymer-bundler? Are they completely separate tools now? Can a fix be applied to it or will i need to migrate to polymer-bundler?

We recently made a patch to vulcanize as well as polymer-bundler for a different problem and will release that soon.  If its not too difficult we'll patch vulcanize for this flaw as well.
However, definitely recommend you move to polymer-bundler.  It's got feature parity with vulcanize and a whole lot more.  Polymer Bundler is basically the 2.0 or successor to vulcanize.  You can use it with the polymer CLI (aka npm install polymer-cli), directly with its own polymer-bundler command-line util or use it programmatically and/or with polymer-build in a gulp file or your own scripts.  Check the README for examples.

@brettpostin vulcanize and polymer-bundler are essentially completely separate.  vulcanize is discontinued though a couple of emergency patches are being made.  polymer-bundler is a near complete rewrite and is based on polymer-analyzer, supports multi-bundle aka "sharded" build strategies and is much more flexible than vulcanize.

FWIW, investigating this issue yielded another related problem with on the inlining of stylesheet content inside of dom-modules (inlined stylesheet imports inside dom-modules DO need to have their urls adjusted, but need to incorporate the dom-module assetpath into the resolution of the urls.)
That has also been addressed in PR #580

@jaichandra polymer-bundler v2.3.0 was released with this fix.  npm install it and try it out :)

@usergenic Thought that was the case, thanks for the clarification.
I have previously attempted to upgrade to polymer-build/polymer-bundler (see here) but due to lack of guidance and time constraints had to postpone.
Are you able to offer any guidance on our specific scenario (i.e. non shell / element project)?
Our current gulp build task simply takes in the root html imports and spits out individual bundle files:
return gulp.src(['bundle1.html', 'bundle2.html', ...])
        .pipe($.vulcanize({
            strip: true,
            inlineCss: true,
            inlineScripts: true
        }))
        .pipe(gulp.dest(...))

How would the same be achieved using polymer-bundler?

Failing that a patch to vulcanize would be extremely welcome too!

Hey @jaichandra and @brettpostin just a heads up I had to rollback this fix in v2.3.1 because it was a breaking change for polymer 1.x cases I didn't know about.
Bundler 3.0.0 will roll out with this fix shortly, because it is a breaking change.

but you can still get it if you install<EMAIL_ADDRESS>explicitly.

@jaichandra and @brettpostin polymer-bundler 3.0.0 released with the fix back in it.

I still see the issue with 3.0.1 where as bundling with 2.3.0 works for me.
For the following file structure
bower_components
  ui-components
     images
     my-component
         my-component.html

2.3.0 bundler generates relative reference as follows
<dom-module id="my-component" assetpath="./bower_components/ui-components/my-component/">
  <template>
    <style include="my-component-styles">
    .selector {
       border-image: url("../images/texture.png");
    }
    </style>
  </template>
</dom-module>

where as 3.0.x generates the absolute path resulting a wrong path for the asset as it will be relatively referenced with assetpath of module.
.selector {
  border-image: url("./bower_components/ui-components/images/texture.png");
}

In this case final path turns out to be ./bower_components/ui-components/my-component/bower_components/ui-components/images/texture.png

@madhusudhand I tested this example (https://github.com/jaichandra/polymer-bundler-test) and it seems to work find with v3.0.1.

@usergenic I came across this path issue again in a different project that has the same structure as in this examplehttps://github.com/jaichandra/polymer-bundler-test.  It took a few hours before I could figure out one minor difference between the projects. The other project's bower.json did not had polymer in there dependencies. Rather it had another project (say my-project), which itself had polymer dependency. So bower install would still install polymer and all other dependencies in bower_components. However the path problem reappeared exactly as mentioned in this issue at the top. Adding polymer as an explicit dependency fixed the issue.
Any idea why this is so? I am not able to understand why an explicit polymer dependency is required.

FWIW, https://github.com/Polymer/polymer-cli/blob/master/src/build/build.ts#L91 in CLI basically checks which version of Polymer is being used if no explicit --rewrite-urls-in-templates argument is provided and tries to do the right thing.  If you have a polymer.json, you can provide in your build(s) that use bundling, an object for the bundle key instead of just bundle: true-- This will allow you to say bundle: {rewriteUrlsInTemplates: true} or bundle: {rewriteUrlsInTemplates: false} depending on what you want.

Thanks.. That helps.


fix(bug): inconsistent file code blocks

ChatGPT returns inconsistent formats for files; changing the philosophy to  specify the format "Filename: file". This greatly improves the ability of the to_file method to adequately parse file names. This semantic re-enforcement could be applied to other identities, but this seems to a general solution, afaik.

@AntonOsika I tested this against the default /projects/example, as well as many JavaScript/Typescript projects; being able to run npm things was a cool feature. Let me know of any other QA you’d like me to do against this prompting change.

I recently proposed something similar in a pull request that got closed today. I believe that the regexes that attempt to get the filename from the output log have been updated to be more flexible instead.
I do keep seeing more and more variations in output from GPT though, and I suspect that we will have to do something like this. It seems to me that the most reliable way to get consistent output from GPT is to explicitly ask for it

Why not use markdown?
[main.py](./main.py)

It would also create a link to the file if the result was presented as an html page, and possibly it is even more clear to ChatGPT how to generate it.

to labor the point even more, I figured I'd check in with GPT itself for some pointers.
To reliably parse the output of my responses for capturing filenames, folders, and their contents, you can follow these general steps:

Define Output Structure: Determine the expected structure of the output in terms of the information you want to capture. For example, if you're interested in filenames and their contents, define the expected format for representing this information.

I recently proposed something similar in a pull request that got closed today. I believe that the regexes that attempt to get the filename from the output log have been updated to be more flexible instead.
I do keep seeing more and more variations in output from GPT though, and I suspect that we will have to do something like this. It seems to me that the most reliable way to get consistent output from GPT is to explicitly ask for it
running the latest version of gpt-engineer from source, and I'm seeing this:
(venv) /tmp/project/workspace $ ls
README.md            `list_generator.py`: file:                run.sh
`binary_search.py`:  all_output.txt       modules:

and trying a different prompt, i'm getting:
(venv) /tmp/project/workspace $ ls
(app.js):      (index.html):  README.md      all_output.txt run.sh

@mwesterhof could you send your /projects full text log? I’d like to see what the file headers looked like. Also, Regex alone isn’t going to work with a system that inherently uses probabilistic systems to write (arbitrary) sentences… I tried a lot of re expressions, and nothing quite did the trick… Same main_prompt, and different header results! It was necessary to specify a format, as per this PR - so far, haven’t run into a problem with the current main commit.

@gblikas i'm afraid i didn't save the project logs, as I was just trying out a few project iterations to see what would happen. But the point we were both trying to make, stands; in order to reliably parse the output, we'll need to specify the output format when making a request to gpt. I was just trying to provide some additional points, because it seemed like the devs aren't in favor of this approach at the moment


can load the pages I need

pdf.load(0, 2, 3, range(4,8))
gives me this error
TypeError: '>=' not supported between instances of 'range' and 'int'

Same error message here.
It occures when you both

enable caching and
provide a range() for page numbers

  File "C:\Python36-32\lib\site-packages\pdfquery\pdfquery.py", line 625, in _cached_pages
    if target_page >= 0:
TypeError: '>=' not supported between instances of 'range' and 'int'

I'm using Python 3.6 on Windows 7 x64
Minimal example:
import pdfquery
from pdfquery.cache import FileCache

pdf = pdfquery.PDFQuery("HH_2018_Band_2.pdf", parse_tree_cacher=FileCache("cache/"))
pdf.load(range(1,10))

Side note: You could provide a large number of numbers via list(range(1,100) but that will result in another Exception because the file name is too long and cannot be written to.


mkldnn support user-defined or custom operation primitive?

Hi,
Now I can split the stream into pieces, and do some operation among them, I wonder if there's more elegant way to do so.
Second question is: is there scale/shift operation primitive that can have different alpha(scale)/beta(shift) values per channel.
Thanks

Hi,

Now I can split the stream into pieces, and do some operation among them, I wonder if there's more elegant way to do so.

This is perfectly fine way to do so. Currently streams are mostly just stubs, no matter what you use lazy or eager stream. You can even create/run one stream per primitive. That should be also perfectly fine.

Second question is: is there scale/shift operation primitive that can have different alpha(scale)/beta(shift) values per channel.

There is no dedicated primitive for that. But you can use batch normalization in inference mode to simulate that. So either use batch normalization with scale and shift parameters (hence mean = 0, varience = 1, eps = 0) or do not use scale and shift, but choose appropriate mean and variance.

It is clear now, Thank you!


add Card Image example

Preview :

Nice. Thanks. The id of the heading isn't unique though...

Copy/paste bugs... should be fixed.


fix: TTS not playing

fix: TTS not playing
Fixed #38

I hope this will do. I've allow edits from maintainers in case there is something that needs to be improved.
I've noticed Sonos error on Seek ,  Reverting back track time failed, happens for some muic services (radio or stream).
I don't think my changes caused that. Maybe there's no delay needed just after the Sonos error on Seek occurs... I just didn't mkow how ti make that delay conditional.
Cheers!

I've done some more testing this morning and made some small adjustments.
It's working fine now in my VSC debug environment.
I'd like to remove the Selecting track and Setting back time functions for stream types where we are sure that they will fail (for some muic services (radio or streams). Do we know which services and would it be easy to exclude them?

I will have a look at it next week, we are celebrating carnaval at the moment

I'd like to remove the Selecting track and Setting back time functions for stream types where we are sure that they will fail (for some muic services (radio or streams). Do we know which services and would it be easy to exclude them?

Not sure, you could check the item type in the metadata maybe. It just sends a “wrong request” error. I don’t see that as a problem. It would be worse if the check is implemented wrong and it looses functionality for some edge cases.

An observation that I made today:
At occations when playing a TTS notification fails (volume is not restored afterwards and resume playing (whatever was played) won't happen), if I go to my Sonos speaker and press the physical play button, the notification is played again (expected) but also, the volume gets restored and it resumes playing my radio stream.
It feels like node-sonos-ts fails to detect that the event that TTS has played the first time. If i manually repeat the TTS by pushing the button on the speaker (if made before the timeout) node-sonos-ts detects the event and carries on to do what it should do. The question then is why node-sonos-ts failed to detect the event the first time.

It takes some time to setup the event listener, so it might be not fast enough to setup the listener before the event already fired. That is why you can supply a timeout value. If the event isn't received before the timeout (in seconds). You will see something like this in the logging:
AsyncEvent timeout fired Error: Event didn't happen before timeout
This (probably) wont happen if the app is already subscribed to events from the sonos device.

Could you checkout if you stiff got the issue with my branch?
https://github.com/svrooij/node-sonos-ts/tree/bug/notifications

Could you checkout if you stiff got the issue with my branch?
https://github.com/svrooij/node-sonos-ts/tree/bug/notifications

Sure! I'll check this tomorrow morning. Thanks!

Good morning @svrooij
I have downloaded the bug/notifications branch and started testing.
I have also symlinked sonos2mqtt to that module, e.g. ln -s /opt/node-sonos-ts /usr/local/lib/node_modules/sonos2mqtt/node_modules/@svrooij/sonos.
Using sonos2mqtt, I can see that the new delay arhument is coming through all the way to node-sonos-ts: "{ \"text\": \"Hej\", \"endpoint\": \"http://MYHOST:5601/api/generate\", \"lang\": \"sv-SE\", \"gender\": \"female\", \"volume\": 40, \"onlyWhenPlaying\": false, \"delayMs\": 1000 }"
Using sonos2mqtt it works only sometimes. After the debug message Published to sonos/status/MY-ROOM/track, the sound is played but then it stops. After some time i get
  sonos:eventlistener Got event on /sonos/e03ba1e0-a1a6-714d-3669-4595ce1c2c55/ZoneGroupTopology SID: uuid:RINCON_XXXXXXXXXXXXXXX_sub0000002690 +25s
  sonos:eventlistener Subscription uuid:RINCON_XXXXXXXXXXXXXXXXXXX_sub0000002690 not found, sending 412 to stop messages +1ms
  sonos:device:<IP_ADDRESS> EventTimeoutError: Event avtransport.CurrentTransportState.STOPPED didn't fire before timeout
  sonos:device:<IP_ADDRESS>     at Timeout.setTimeout [as _onTimeout] (/opt/node-sonos-ts/lib/helpers/async-helper.js:41:28)
  sonos:device:<IP_ADDRESS>     at ontimeout (timers.js:436:11)
  sonos:device:<IP_ADDRESS>     at tryOnTimeout (timers.js:300:5)
  sonos:device:<IP_ADDRESS>     at listOnTimeout (timers.js:263:5)
  sonos:device:<IP_ADDRESS>     at Timer.processTimers (timers.js:223:10) +2m
  sonos:device:<IP_ADDRESS> Reverting everything back to normal +1ms

The good thing is that playing the stream resumes after the above error message. I don't recall that it did previously.
When debugging node-sonos-ts in VSC, I can't recall that it ever failed. It seems to work every  time. Isn't that strange? It's the same node-sonos-ts code running but it fails sometimes when invoked by sonos2mqtt.
Below is the full debug output when running sonos2mqtt at a time that it fails:
(I have added the debug line in the code starting with "Specified delay")
2020-02-28 08:53:47.019 <debug> Incoming message to sonos/set/ROOMNAME/speak "{ \"text\": \"Hej\", \"endpoint\": \"http://HOSTNAME:5601/api/generate\", \"lang\": \"sv-SE\", \"gender\": \"female\", \"volume\": 40, \"onlyWhenPlaying\": false, \"delayMs\": 1000 }"
2020-02-28 08:53:47.020 <debug> Incoming device command speak for ROOMNAME payload { "text": "Hej", "endpoint": "http://HOSTNAME:5601/api/generate", "lang": "sv-SE", "gender": "female", "volume": 40, "onlyWhenPlaying": false, "delayMs": 1000 }
  sonos:device:<IP_ADDRESS> PlayTTS({ text: 'Hej', endpoint: 'http://HOSTNAME:5601/api/generate', lang: 'sv-SE', gender: 'female', volume: 40, onlyWhenPlaying: false, delayMs: 1000 }) +48s
  sonos:tts Getting tts uri from server http://HOSTNAME:5601/api/generate +50s
  sonos:device:<IP_ADDRESS> PlayNotification({ text: 'Hej', endpoint: 'http://HOSTNAME:5601/api/generate', lang: 'sv-SE', gender: 'female', volume: 40, onlyWhenPlaying: false, delayMs: 1000, trackUri: 'http://HOSTNAME:5601/cache/sv-SE/5ff235aa73c2983d51c726cf65e4db4d8ab238cd.mp3', timeout: 120 }) +2ms
  sonos:device:<IP_ADDRESS> Specified delay XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX: 1000 +0ms
  sonos:service:avtransport:<IP_ADDRESS> GetTransportInfo({ InstanceID: 0 }) +44s
  sonos:device:<IP_ADDRESS> Current state is PLAYING +5ms
  sonos:metadata Guessing metadata for http://HOSTNAME:5601/cache/sv-SE/5ff235aa73c2983d51c726cf65e4db4d8ab238cd.mp3 +44s
  sonos:metadata Don't support this TrackUri (yet) http://HOSTNAME:5601/cache/sv-SE/5ff235aa73c2983d51c726cf65e4db4d8ab238cd.mp3 +0ms
  sonos:service:renderingcontrol:<IP_ADDRESS> GetVolume({ InstanceID: 0, Channel: 'Master' }) +46s
  sonos:service:avtransport:<IP_ADDRESS> GetMediaInfo({ InstanceID: 0 }) +13ms
  sonos:metadata Parsing DIDL { 'DIDL-Lite': { '_xmlns:dc': 'http://purl.org/dc/elements/1.1/', '_xmlns:upnp': 'urn:schemas-upnp-org:metadata-1-0/upnp/', '_xmlns:r': 'urn:schemas-rinconnetworks-com:metadata-1-0/', _xmlns: 'urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/', item: { _id: '-1', _parentID: '-1', _restricted: 'true', 'dc:title': 'BBC Radio 6 Music', 'upnp:class': 'object.item.audioItem.audioBroadcast', desc: [Object] } } } +20ms
  sonos:service:avtransport:<IP_ADDRESS> GetPositionInfo({ InstanceID: 0 }) +13ms
  sonos:metadata Parsing DIDL { 'DIDL-Lite': { '_xmlns:dc': 'http://purl.org/dc/elements/1.1/', '_xmlns:upnp': 'urn:schemas-upnp-org:metadata-1-0/upnp/', '_xmlns:r': 'urn:schemas-rinconnetworks-com:metadata-1-0/', _xmlns: 'urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/', item: { _id: '-1', _parentID: '-1', _restricted: 'true', res: [Object], 'r:streamContent': '', 'dc:title': 'bbc_6music.m3u8', 'upnp:class': 'object.item' } } } +11ms
  sonos:service:avtransport:<IP_ADDRESS> SetAVTransportURI({ InstanceID: 0, CurrentURI: 'http://HOSTNAME:5601/cache/sv-SE/5ff235aa73c2983d51c726cf65e4db4d8ab238cd.mp3', CurrentURIMetaData: '' }) +11ms
  sonos:service:renderingcontrol:<IP_ADDRESS> SetVolume({ InstanceID: 0, Channel: 'Master', DesiredVolume: 40 }) +277ms
  sonos:eventlistener Got event on /sonos/RINCON_7828CA0142F601400/RenderingControl SID: uuid:RINCON_7828CA0142F601400_sub0000015228 +44s
  sonos:service:renderingcontrol:<IP_ADDRESS> Got event +48s
2020-02-28 08:53:47.325 <debug> Published to sonos/status/ROOMNAME/volume
  sonos:eventlistener Got event on /sonos/RINCON_XXXXXXXXXXXXXXXX/AVTransport SID: uuid:RINCON_XXXXXXXXXXXXXXXX_sub0000003932 +13ms
  sonos:service:avtransport:<IP_ADDRESS> Got event +277ms
  sonos:metadata Parsing DIDL { 'DIDL-Lite': { '_xmlns:dc': 'http://purl.org/dc/elements/1.1/', '_xmlns:upnp': 'urn:schemas-upnp-org:metadata-1-0/upnp/', '_xmlns:r': 'urn:schemas-rinconnetworks-com:metadata-1-0/', _xmlns: 'urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/', item: { _id: '-1', _parentID: '-1', _restricted: 'true', res: [Object], 'r:streamContent': '', 'r:radioShowMd': '', 'dc:title': '5ff235aa73c2983d51c726cf65e4db4d8ab238cd.mp3', 'upnp:class': 'object.item.audioItem.musicTrack' } } } +281ms
2020-02-28 08:53:47.340 <debug> Published to sonos/status/ROOMNAME/state
2020-02-28 08:53:47.341 <debug> Published to sonos/status/ROOMNAME/trackUri
2020-02-28 08:53:47.341 <debug> New track data for ROOMNAME {"Title":"5ff235aa73c2983d51c726cf65e4db4d8ab238cd.mp3","UpnpClass":"object.item.audioItem.musicTrack","Duration":"0:00:00","ItemId":"-1","ParentId":"-1","TrackUri":"http://HOSTNAME:5601/cache/sv-SE/5ff235aa73c2983d51c726cf65e4db4d8ab238cd.mp3","ProtocolInfo":"http-get:*:audio/mpeg:*"}
2020-02-28 08:53:47.342 <debug> Published to sonos/status/ROOMNAME/track
  sonos:service:avtransport:<IP_ADDRESS> Play({ InstanceID: 0, Speed: '1' }) +986ms
  sonos:device:<IP_ADDRESS> Listener added +1s
  sonos:eventlistener Got event on /sonos/RINCON_XXXXXXXXXXXXXXXX/RenderingControl SID: uuid:RINCON_XXXXXXXXXXXXXXXX_sub0000003933 +2s
  sonos:service:renderingcontrol:<IP_ADDRESS> Got event +2s
2020-02-28 08:53:49.567 <debug> Published to sonos/status/ROOMNAME/volume
  sonos:eventlistener Got event on /sonos/RINCON_XXXXXXXXXXXXXXXX/AVTransport SID: uuid:RINCON_XXXXXXXXXXXXXXXX_sub0000003932 +97ms
  sonos:service:avtransport:<IP_ADDRESS> Got event +1s
  sonos:metadata Parsing DIDL { 'DIDL-Lite': { '_xmlns:dc': 'http://purl.org/dc/elements/1.1/', '_xmlns:upnp': 'urn:schemas-upnp-org:metadata-1-0/upnp/', '_xmlns:r': 'urn:schemas-rinconnetworks-com:metadata-1-0/', _xmlns: 'urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/', item: { _id: '-1', _parentID: '-1', _restricted: 'true', res: [Object], 'r:streamContent': '', 'r:radioShowMd': '', 'dc:title': '5ff235aa73c2983d51c726cf65e4db4d8ab238cd.mp3', 'upnp:class': 'object.item.audioItem.musicTrack' } } } +2s
2020-02-28 08:53:49.665 <debug> New track data for ROOMNAME {"Title":"5ff235aa73c2983d51c726cf65e4db4d8ab238cd.mp3","UpnpClass":"object.item.audioItem.musicTrack","Duration":"0:00:00","ItemId":"-1","ParentId":"-1","TrackUri":"http://HOSTNAME:5601/cache/sv-SE/5ff235aa73c2983d51c726cf65e4db4d8ab238cd.mp3","ProtocolInfo":"http-get:*:audio/mpeg:*"}
2020-02-28 08:53:49.665 <debug> Published to sonos/status/ROOMNAME/track

  sonos:eventlistener Got event on /sonos/e03ba1e0-a1a6-714d-3669-4595ce1c2c55/ZoneGroupTopology SID: uuid:RINCON_7828CA20387A01400_sub0000002690 +25s
  sonos:eventlistener Subscription uuid:RINCON_7828CA20387A01400_sub0000002690 not found, sending 412 to stop messages +1ms
  sonos:device:<IP_ADDRESS> EventTimeoutError: Event avtransport.CurrentTransportState.STOPPED didn't fire before timeout
  sonos:device:<IP_ADDRESS>     at Timeout.setTimeout [as _onTimeout] (/opt/node-sonos-ts/lib/helpers/async-helper.js:41:28)
  sonos:device:<IP_ADDRESS>     at ontimeout (timers.js:436:11)
  sonos:device:<IP_ADDRESS>     at tryOnTimeout (timers.js:300:5)
  sonos:device:<IP_ADDRESS>     at listOnTimeout (timers.js:263:5)
  sonos:device:<IP_ADDRESS>     at Timer.processTimers (timers.js:223:10) +2m
  sonos:device:<IP_ADDRESS> Reverting everything back to normal +1ms
  sonos:service:renderingcontrol:<IP_ADDRESS> SetVolume({ InstanceID: 0, Channel: 'Master', DesiredVolume: 15 }) +2m
  sonos:eventlistener Got event on /sonos/RINCON_7828CA0142F601400/RenderingControl SID: uuid:RINCON_7828CA0142F601400_sub0000015228 +2m
  sonos:service:renderingcontrol:<IP_ADDRESS> Got event +2m
2020-02-28 08:55:48.354 <debug> Published to sonos/status/ROOMNAME/volume
  sonos:eventlistener Got event on /sonos/RINCON_XXXXXXXXXXXXXXXX/RenderingControl SID: uuid:RINCON_XXXXXXXXXXXXXXXX_sub0000003933 +2ms
  sonos:service:renderingcontrol:<IP_ADDRESS> Got event +23ms
2020-02-28 08:55:48.356 <debug> Published to sonos/status/ROOMNAME/volume
  sonos:service:avtransport:<IP_ADDRESS> SetAVTransportURI({ InstanceID: 0, CurrentURI: 'x-sonosapi-stream:s44491?sid=254&flags=8224&sn=0', CurrentURIMetaData: { Album: undefined, Artist: undefined, AlbumArtUri: undefined, Title: 'BBC Radio 6 Music', UpnpClass: 'object.item.audioItem.audioBroadcast', Duration: undefined, ItemId: '-1', ParentId: '-1', TrackUri: undefined, ProtocolInfo: undefined } }) +2m
  sonos:eventlistener Got event on /sonos/RINCON_XXXXXXXXXXXXXXXX/AVTransport SID: uuid:RINCON_XXXXXXXXXXXXXXXX_sub0000003932 +1s
  sonos:service:avtransport:<IP_ADDRESS> Got event +282ms
  sonos:metadata Parsing DIDL { 'DIDL-Lite': { '_xmlns:dc': 'http://purl.org/dc/elements/1.1/', '_xmlns:upnp': 'urn:schemas-upnp-org:metadata-1-0/upnp/', '_xmlns:r': 'urn:schemas-rinconnetworks-com:metadata-1-0/', _xmlns: 'urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/', item: { _id: '-1', _parentID: '-1', _restricted: 'true', res: [Object], 'r:streamContent': '', 'r:radioShowMd': 'Lauren Laverne,p180382', 'upnp:albumArtURI': '/getaa?s=1&u=x-sonosapi-stream%3as44491%3fsid%3d254%26flags%3d8224%26sn%3d0', 'dc:title': 'BBC Radio 6 Music', 'upnp:class': 'object.item' } } } +2m
  sonos:metadata Parsing DIDL { 'DIDL-Lite': { '_xmlns:dc': 'http://purl.org/dc/elements/1.1/', '_xmlns:upnp': 'urn:schemas-upnp-org:metadata-1-0/upnp/', '_xmlns:r': 'urn:schemas-rinconnetworks-com:metadata-1-0/', _xmlns: 'urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/', item: { _id: '-1', _parentID: '-1', _restricted: 'true', 'dc:title': 'BBC Radio 6 Music', 'upnp:class': 'object.item.audioItem.audioBroadcast', desc: [Object] } } } +0ms
  sonos:metadata Parsing DIDL { 'DIDL-Lite': { '_xmlns:dc': 'http://purl.org/dc/elements/1.1/', '_xmlns:upnp': 'urn:schemas-upnp-org:metadata-1-0/upnp/', '_xmlns:r': 'urn:schemas-rinconnetworks-com:metadata-1-0/', _xmlns: 'urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/', item: { _id: '-1', _parentID: '-1', _restricted: 'true', 'dc:title': 'BBC Radio 6 Music', 'upnp:class': 'object.item.audioItem.audioBroadcast', desc: [Object] } } } +0ms
2020-02-28 08:55:49.632 <debug> Published to sonos/status/ROOMNAME/trackUri
2020-02-28 08:55:49.632 <debug> New track data for ROOMNAME {"AlbumArtUri":"http://<IP_ADDRESS>:1400/getaa?s=1&u=x-sonosapi-stream:s44491%3fsid%3d254%26flags%3d8224%26sn%3d0","Title":"BBC Radio 6 Music","UpnpClass":"object.item","ItemId":"-1","ParentId":"-1","TrackUri":"x-sonosapi-stream:s44491?sid=254&flags=8224&sn=0","ProtocolInfo":"sonos.com-http:*:application/octet-stream:*"}
2020-02-28 08:55:49.632 <debug> Published to sonos/status/ROOMNAME/track
  sonos:service:avtransport:<IP_ADDRESS> Play({ InstanceID: 0, Speed: '1' }) +977ms
2020-02-28 08:55:52.238 <debug> Executed speak for ROOMNAME result: true
  sonos:eventlistener Got event on /sonos/RINCON_XXXXXXXXXXXXXXXX/AVTransport SID: uuid:RINCON_XXXXXXXXXXXXXXXX_sub0000003932 +3s
  sonos:service:avtransport:<IP_ADDRESS> Got event +2s
  sonos:metadata Parsing DIDL { 'DIDL-Lite': { '_xmlns:dc': 'http://purl.org/dc/elements/1.1/', '_xmlns:upnp': 'urn:schemas-upnp-org:metadata-1-0/upnp/', '_xmlns:r': 'urn:schemas-rinconnetworks-com:metadata-1-0/', _xmlns: 'urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/', item: { _id: '-1', _parentID: '-1', _restricted: 'true', res: [Object], 'r:streamContent': '', 'r:radioShowMd': 'Lauren Laverne,p180382', 'upnp:albumArtURI': '/getaa?s=1&u=x-sonosapi-stream%3as44491%3fsid%3d254%26flags%3d8224%26sn%3d0', 'dc:title': 'x-sonosapi-stream:s44491?sid=254&flags=8224&sn=0', 'upnp:class': 'object.item' } } } +3s
  sonos:metadata Parsing DIDL { 'DIDL-Lite': { '_xmlns:dc': 'http://purl.org/dc/elements/1.1/', '_xmlns:upnp': 'urn:schemas-upnp-org:metadata-1-0/upnp/', '_xmlns:r': 'urn:schemas-rinconnetworks-com:metadata-1-0/', _xmlns: 'urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/', item: { _id: '-1', _parentID: '-1', _restricted: 'true', 'dc:title': 'BBC Radio 6 Music', 'upnp:class': 'object.item.audioItem.audioBroadcast', desc: [Object] } } } +0ms
2020-02-28 08:55:52.265 <debug> Published to sonos/status/ROOMNAME/state
2020-02-28 08:55:52.265 <debug> Published to sonos/status/ROOMNAME/trackUri
2020-02-28 08:55:52.265 <debug> New track data for ROOMNAME {"AlbumArtUri":"http://<IP_ADDRESS>:1400/getaa?s=1&u=x-sonosapi-stream:s44491%3fsid%3d254%26flags%3d8224%26sn%3d0","Title":"x-sonosapi-stream:s44491?sid=254&flags=8224&sn=0","UpnpClass":"object.item","ItemId":"-1","ParentId":"-1","TrackUri":"x-sonosapi-stream:s44491?sid=254&flags=8224&sn=0","ProtocolInfo":"sonos.com-http:*:audio/mpegurl:*"}
2020-02-28 08:55:52.265 <debug> Published to sonos/status/ROOMNAME/track
  sonos:eventlistener Got event on /sonos/RINCON_XXXXXXXXXXXXXXXX/AVTransport SID: uuid:RINCON_XXXXXXXXXXXXXXXX_sub0000003932 +3s
  sonos:service:avtransport:<IP_ADDRESS> Got event +3s
  sonos:metadata Parsing DIDL { 'DIDL-Lite': { '_xmlns:dc': 'http://purl.org/dc/elements/1.1/', '_xmlns:upnp': 'urn:schemas-upnp-org:metadata-1-0/upnp/', '_xmlns:r': 'urn:schemas-rinconnetworks-com:metadata-1-0/', _xmlns: 'urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/', item: { _id: '-1', _parentID: '-1', _restricted: 'true', res: [Object], 'r:streamContent': '', 'r:radioShowMd': 'Lauren Laverne,p180382', 'upnp:albumArtURI': '/getaa?s=1&u=x-sonosapi-stream%3as44491%3fsid%3d254%26flags%3d8224%26sn%3d0', 'dc:title': 'x-sonosapi-stream:s44491?sid=254&flags=8224&sn=0', 'upnp:class': 'object.item' } } } +3s
  sonos:metadata Parsing DIDL { 'DIDL-Lite': { '_xmlns:dc': 'http://purl.org/dc/elements/1.1/', '_xmlns:upnp': 'urn:schemas-upnp-org:metadata-1-0/upnp/', '_xmlns:r': 'urn:schemas-rinconnetworks-com:metadata-1-0/', _xmlns: 'urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/', item: { _id: '-1', _parentID: '-1', _restricted: 'true', 'dc:title': 'BBC Radio 6 Music', 'upnp:class': 'object.item.audioItem.audioBroadcast', desc: [Object] } } } +2ms
2020-02-28 08:55:55.063 <debug> New track data for ROOMNAME {"AlbumArtUri":"http://<IP_ADDRESS>:1400/getaa?s=1&u=x-sonosapi-stream:s44491%3fsid%3d254%26flags%3d8224%26sn%3d0","Title":"x-sonosapi-stream:s44491?sid=254&flags=8224&sn=0","UpnpClass":"object.item","ItemId":"-1","ParentId":"-1","TrackUri":"x-sonosapi-stream:s44491?sid=254&flags=8224&sn=0","ProtocolInfo":"sonos.com-http:*:audio/mpegurl:*"}
2020-02-28 08:55:55.064 <debug> Published to sonos/status/ROOMNAME/track
^C2020-02-28 08:55:56.160 <info>  Shutting down listeners, please wait

What do you think of that Stephan? Is there anything else I can do to help pinpoint the problem?

Some more info after testing the new version more:
The delayMs of 1000 is absolute necessary here when using node-sonos-ts through sonos2mqtt. (Using node-sonos-ts in VSC works without the delay). Without the delay, there is this short gap of silence instead of the sound.

I never experienced this issue, so can you share more details. With my branch you can set the time delay right? so that solves the issue right?
You can also set the timeout to 30, that way if the events don't work it will just revert back after only 30 seconds instead of the 120 set by default.

My sonos system consists of 2 individual Sonos Play:1 and 2 Sonos One configured as a stereo pair. The left speaker is the coordinator of the system. All speakers connects using WiFi with strong signals.
I normally use my stereo pair for TTS. That's what I've been testing with above.
My experience is that my stereo pair needs the delay. About 1200 ms works best. (Please increase the 1000 max limit) Without the delay the notification won't play (short gap of silence is played). Using the delay the full notification will play. Sometimes it won't "Reverting everything back to normal" until the delay has passed.
About my separate Sonos Play:1 I have connected using an ethernet cable to my LAN. It behaves differently. The delay is not needed at all but this speaker will never "Reverting everything back to normal" until the delay has passed. It always depends on the timeout to do that. That's weird.
My linux server is also attached to the same LAN using a cable.
Yes, using the delay will make my tts revert everything back to normal after the delay has passed. I'll just have to wait for the timeout. The underlaying problem is not solved though. There is a reason that TTS works flawlessly while debugging in VSC while it fails with short gaps of silent and timeout erros in my system when using sonos2mqtt.  Of course there might be something wrong or something special with my Sonos System, I can't tell.
I appreciate your kind help in trying to resolve my issues. This PR works better on my system so I hope you will merge it. (Please allow a higher delayMs though...) If there is anything else that you can think of that I can test, just let me know. Thanks!!!

:tada: This issue has been resolved in version 1.2.3 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[Topi] fix get_pad_tuple3d bug, the conv3d kernel layout should be DHW.

This PR fix the get_pad_tuple3d bug.  If the conv3d's data_layout is NCDHW and kernel_layout is OIDHW, the weight Tensor with shape (channels, in_channels, kernel_size[0], kernel_size[1], kernel_size[2]) . So, the kernel_size layout should be DHW in general.

@optima2005 , pls help to review，thanks.

have added the test case.


patch(dependencies): update to React 16 and Enzyme 3

Resolves #45
cc: @fysheets

Coverage decreased (-0.2%) to 99.257% when pulling 90645c949b8fe32674308995e28a054521984751 on update-dependencies into 9690fdae6ed1ab3b29135f143587f062313019e6 on master.

Coverage decreased (-0.2%) to 99.257% when pulling 90645c949b8fe32674308995e28a054521984751 on update-dependencies into 9690fdae6ed1ab3b29135f143587f062313019e6 on master.

I'll fix the code coverage drop

Here's what it looks like when I run my tests locally

The weird thing is...
I actually get to those logical branches, for example Modal#61

Coverage increased (+0.004%) to 99.505% when pulling d9e207d790908f3c1436a5e0cb3d227fbe1299cd on update-dependencies into 1f9a726ec7abbdb9578c1b3ffcec24626206602c on master.

Coverage increased (+0.004%) to 99.505% when pulling 0bf81740e92083300c0cad9344f7d6b8ac290ab1 on update-dependencies into 1f9a726ec7abbdb9578c1b3ffcec24626206602c on master.