Fixes #1025

Motivation
Fixes #1025
Overview / Explanation for Changes
Changed max_width from 100% to 375px.
For PRs introducing new features, please provide code snippets
using the newly introduced functionality and ideally even the
expected rendered output. -->
Oneline Summary of Changes

- Reduced size of video in Jupyter notebooks (:pr:`PR NUMBER HERE`)

Testing Status

Further Comments

Acknowledgements

[x] I have read the Contributing Guidelines

Reviewer Checklist

[ ] Newly added functions/classes are either private or have a docstring
[ ] Newly added functions/classes have tests added and (optional) examples in the docs
[ ] Newly added documentation builds, looks correctly formatted, and adds no additional build warnings
[ ] The oneline summary has been included in the wiki

It seems, I am having a "grumpy reviewer" day: I don't think that changing one hard-coded value for another hard-coded value is a good approach. Besides: limiting the output video size to 375px in all cases looks extremely weird when using a high-res monitor.
I would prefer if the value of max-width could be set via a jupyter-magic specific flag or so; I think something like that should be possible (we are setting some styles of the video/images manually already, IIRC).

I don't think that changing one hard-coded value for another hard-coded value is a good approach....
I would prefer if the value of max-width could be set via a jupyter-magic specific flag or so

I agree, this isn't the best solution/approach. I would definitely opt for a jupyter-magic specific flag, or some variable that can be specified within the jupyter-notebook to set this video width parameter... but it's still a better solution than the current master imo.
My reasoning is that if the user wants a max-width video, they could always full screen the outputted video. If @Darylgolden wants to put in the work to manually specify this that would be even better, (but I think a smaller default ,like .25vw [view-width]), is better than max-width).

I think something like that should be possible (we are setting some styles of the video/images manually already, IIRC).

I seem to recall setting something manually as well... only now I can't find it in the ipython_magic.py file.

I would prefer if the value of max-width could be set via a jupyter-magic specific flag or so;

+1 for this idea

Just realized I had assigned @kolibril13 instead of requesting a review.... Since the general consensus is that a jupyter-magic specific flag is a better option; I guess we should implement these changes here instead of opening a future PR for just the flag.
@Darylgolden Let us know if you run into issues with this, or would rather close the PR/not implement this enhancement.

I've attempted to make it a config setting, but it doesn't seem to be working properly - can someone with experience with the config system take a look?

I've attempted to make it a config setting, but it doesn't seem to be working properly - can someone with experience with the config system take a look?

Sorry! By "jupyter-magic specific flag", I believe we meant something that you can specify within the jupyter notebook when the kernel is running to set the size and store it as some variable (i.e. no need to change the config/CLI stuff)

I tried looking for documentation on local_ns but couldn't find anything on how to set and retrieve information from it. Can I ask if there's a reason doing it within a notebook while the kernel is running is preferable to a config setting? It seems to me like most users would want to set a specific width globally and permanently, and if my understanding is correct setting it within the notebook only changes the width for that specific notebook. Besides, I think using the config system would be better than trying to make another Jupyter specific configuration system.

Can I ask if there's a reason doing it within a notebook while the kernel is running is preferable to a config setting? It seems to me like most users would want to set a specific width globally and permanently, and if my understanding is correct setting it within the notebook only changes the width for that specific notebook. Besides, I think using the config system would be better than trying to make another Jupyter specific configuration system.

Something I'd like to avoid with Manim's CLI is having options/flags that are specific to jupyter in the help page because this particular flag for video styling is not something you would run from the CLI. You are correct that it's local to that instance, but it isn't unreasonable to have a cell at the top of the notebook specific to configuration settings. If this must be in the config, then I would rather have this in its own section header (i.e. not [CLI] section of the manim.cfg file).

No, I'm completely fine with not using the global config, it'll just probably take time since I'm not sure on how to set up a magic flag specific to Jupyter.

I managed to set the video width using the global config, without it showing in the CLI. However, it seems like Image does not have the html_attributes parameter and width only accepts values in pixels, so I cannot set the image width as 25vw directly, for example.
As for the doctests, do I have to regenerate the test data? How should I do that?

As for the doctests, do I have to regenerate the test data? How should I do that?

You need to update docs/source/tutorials/configuration.rst to match your output.
As for the Image/width issue, I'd have to look into it more to make a suggestion, but it'd be good to somehow use that value.

Tests pass now. As for the Image issue, I've filed https://github.com/ipython/ipython/issues/12851 to hopefully get some workaround solutions.

Tests pass now. As for the Image issue, I've filed ipython/ipython#12851 to hopefully get some workaround solutions.

I'd prefer if the config parameter was named the same as the dictionary key for the ManimConfig object (i.e. width in the .cfg vs. config.media_width in ManimConfig)... but otherwise this works as intended:

It seems that is not working for me.
Any ideas why?
Also, I think we can add more documentation for this amazing feature (maybe in the Tutorial section of the docs?).
But that can be done in a separate pr.

It doesn't work for images unfortunately, as stated above. I'm not able to think of any workarounds (other than using pixel values, which would not be ideal); it seems like modifications to IPython would be the best way to fix this.

It doesn't work for images unfortunately, as stated above. I'm not able to think of any workarounds (other than using pixel values, which would not be ideal); it seems like modifications to IPython would be the best way to fix this.

I had an idea: we can obtain the resolution of the monitor in Python (using the standard library tkinter) and calculate the pixel width for the Image.width property based on this:
import tkinter as tk

def get_curr_screen_geometry():
    root = tk.Tk()
    root.update_idletasks()
    root.attributes('-fullscreen', True)
    root.state('iconic')
    geometry = root.winfo_geometry()
    root.destroy()
    return geometry

Hmm, for me also the video size does not work.

For testing, I closed all notebooks and kernels, then changed the branch in git, and then reopened a jupyter notebook. I am working in one isolated virtual environment, do I maybe have to reinstall the kernel to make this work?

For testing, I closed all notebooks and kernels, then changed the branch in git, and then reopened a jupyter notebook. I am working in one isolated virtual environment, do I maybe have to reinstall the kernel to make this work?

Does it work if you put the config.media_width, property in its own cell and run it before the %%manim cell?

still not working

still not working

I'm not sure why you're facing issues. Some possible reasons could be that you haven't pulled Daryl's latest changes into that repo's branch, or perhaps the import manim manim line in the first cell is troublesome. It definitely works on my end as indicated here: https://github.com/ManimCommunity/manim/pull/1074#issuecomment-792260436
I'm not sure why my picture's media_width has syntax highlighting in config.media_width and yours doesn't.

Ok, I've now deleted and redownloaded this branch, and now I am in jupyter lab, which has syntax highlighting:

But still, the size is not changing

Solved it! :)
Running once pip install .  did the magic.
I think as a first version of this feature, I think it would be fine to merge it like this.
For the long run, it would be nice if the scaling works for images as well.
@Darylgolden : Are you motivated to work on this further? :)
Also, I think it would be really beneficial if the resolution of the output can be linked to the resolution of the video so that there are no interpolations in the output video.

Also, I think it would be really beneficial if the resolution of the output can be linked to the resolution of the video so that there are no interpolations in the output video.

That's how it currently works since "vw" would take up as much space as it can inside the cell block until it's max-resolution. So if the video is 480p ([854,480] pixels resolution at low quality), then the max the video would be scaled up in browser without going fullscreen mode would be 854 pixels wide. Here's an example showing that with the webinspector on Firefox with a 1920x1080 monitor (60vw would be 1152 px and we get a 854px video as desired):

It doesn't work for images unfortunately, as stated above. I'm not able to think of any workarounds (other than using pixel values, which would not be ideal); it seems like modifications to IPython would be the best way to fix this.

I had an idea: we can obtain the resolution of the monitor in Python (using the standard library tkinter) and calculate the pixel width for the Image.width property based on this:
import tkinter as tk

def get_curr_screen_geometry():
    root = tk.Tk()
    root.update_idletasks()
    root.attributes('-fullscreen', True)
    root.state('iconic')
    geometry = root.winfo_geometry()
    root.destroy()
    return geometry

Using width, height = get_curr_screen_geomtry(), we could calculate the value for vw/% in px or do nothing in if media_width is already specified in px

I tried running this code in Colab and a local Jupyter notebook; on Colab I get  TclError: no display name and no $DISPLAY environment variable and on my local Jupyter I get no module named tkinter. Unfortunately, I don't think I'm experienced enough with Jupyter to come up with a solution that uses vw for both Image and Video, so I see 3 ways forward:

Accept the PR as is. (with inconsistencies in the display of images and videos)
Withdraw the PR allowing someone else more experienced to work on it.
Change media_width to use px values which allows it to be used with both images and videos easily.

None of these are ideal, but I would suggest going with the third option as a temporary fix.

I implemented this Image feature in a branch on my fork:

I'd commit this directly, but with your permission oc.

Of course you can commit. Thank you so much for your help!

There's a slight merge conflict you should resolve now that OpenGL support #1075 has been merged in configuration.rst.
Beyond that, this solution has worked on Windows (testing MacOS soon). We should have a test case to verify tkinter works as intended across all the OSs on Python 3.7+ otherwise this might not be a viable solution. Base on your previous issue:

I tried running this code in Colab and a local Jupyter notebook; on Colab I get  TclError: no display name and no $DISPLAY environment variable and on my local Jupyter I get no module named tkinter.

...it probably isn't already. Which Python version are you on? You may have to install tkinter.

Tests are failing on some systems due to system dependencies, not sure why. Tried to install it on colab but didn't work either.

Tests are failing on some systems due to system dependencies, not sure why. Tried to install it on colab but didn't work either.

I'm unsure as well... but after rerunning the CI a half-dozen times they've passed all passed (excluding the black check).  Perhaps @naveen521kk has some insights as to why this is/what can be done about running individual CI test cases? Also, I have confirmed that this works on MacOS:

Perhaps @naveen521kk has some insights as to why this is/what can be done about running individual CI test cases?

Without pointing out the error it impossible for me to say. Also, in GHA you can't run the individual test case.

Running on colab, I get this error. Unfortunately I don't think the added installation trouble is worth the relatively minor improvement.

Running on colab, I get this error. Unfortunately I don't think the added installation trouble is worth the relatively minor improvement.

That's unfortunate... it seems to be a Linux/X11 installation issue more so than a Python issue. Though there are ways (e.g. xrandr/xdpyinfo) to get the screen's width without Tk, this seems better suited for a future PR (especially if iPython accepts a PR for Image html).
Since @kolibril13 is okay merging this without the Image scaling, reverting the changes made in my commit is the best way to go about this. As for the options you suggested earlier:

1. Accept the PR as is. (with inconsistencies in the display of images and videos)

2. Withdraw the PR allowing someone else more experienced to work on it.

3. Change `media_width` to use `px` values which allows it to be used with both images and videos easily.

I think option 1/3 are both (certainly not option 2).

Got it to work locally. I believe this should be ready for merging now?

I'll have a look on it later today! :)

Keep in mind the changes are the exact same as 11 days ago when you said:

I think as a first version of this feature, I think it would be fine to merge it like this.
For the long run, it would be nice if the scaling works for images as well.


Add facet ranges to solr query result

use for get sparsity of record on any facet with a gap.
http://wiki.apache.org/solr/SimpleFacetParameters#Facet_by_Range

@mausch Do you need any help merging these facet range integrations?

Is there any reason why it can't be merged? With Solr 6.2.1 it's no longer possible to use facet dates, so facet ranges are needed.

@xavier-morera  , do you have an ETA when you will come to this pull request?

Hi,
I am working first on upgrading to newer versions of .Net which I expect will take a few weeks. This includes Ninject and Autofac
Xavier

Sent from a small attention grabbing screen

On Jul 4, 2017, at 08:21, Gidon<EMAIL_ADDRESS>wrote:
@xavier-morera , do you have an ETA when you will come to this pull request?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Merged to develop on https://github.com/SolrNet/SolrNet/pull/309
Targeted for version 0.8.1
@hamedsabzian @TLogik @jondarrer @philwilks would you have a minute to test with develop branch?
Thanks to @gjunge


Gabage completion items when cursor is at the end of a keyword.

Normal result of company-diag:
Emacs 26.1.50 (x86_64-pc-linux-gnu) of 2018-08-19 on centos7.home
Company 0.9.6

company-backends: (company-go company-dabbrev-code)

Used backend: company-go
Major mode: go-mode
Prefix: "don"
Completions:
  #("done_chan" 0 9 (meta "var done_chan chan bool")) " chan bool"

Garbage completion after keyword "case":
Emacs 26.1.50 (x86_64-pc-linux-gnu) of 2018-08-19 on centos7.home
Company 0.9.6

company-backends: (company-go company-dabbrev-code)

Used backend: company-go
Major mode: go-mode
Prefix: "case"
Completions:
  #("Client_Handshake_timeout" 0 24 (meta "const Client_Handshake_timeout ")) " "
  #("Client_KeepAlive_timeout" 0 24 (meta "const Client_KeepAlive_timeout ")) " "
  #("MAX_DATA_pkt_size" 0 17 (meta "const MAX_DATA_pkt_size ")) " "
  #("MAX_Http_pkt_size" 0 17 (meta "const MAX_Http_pkt_size ")) " "
  #("OP_BINARY" 0 9 (meta "const OP_BINARY ")) " "
  #("OP_CLOSE" 0 8 (meta "const OP_CLOSE ")) " "
  #("OP_CONTINUE" 0 11 (meta "const OP_CONTINUE ")) " "
  #("OP_DATA_MAX" 0 11 (meta "const OP_DATA_MAX ")) " "
  #("OP_MAX" 0 6 (meta "const OP_MAX ")) " "
  #("OP_PING" 0 7 (meta "const OP_PING ")) " "
  #("OP_PONG" 0 7 (meta "const OP_PONG ")) " "
  #("OP_TEXT" 0 7 (meta "const OP_TEXT ")) " "

I think this is a bug with the company-go extension, because this doesn't happen for any other editor. I won't be able to investigate this, but will happily look at PRs if you are able to fix this problem.

I traced with the functiong company-go--invoke-autocomplete of company-go. The gocode returns all symbols when cursor is after a space char, which is expected. But it also return all symbols when cursor is after a golang keyword (such as case, default, switch, return), which is not right.

Thanks for following up. I took a look and https://github.com/mdempsky/gocode/commit/7b3487baddf20fa4af46bd5f95b219880ba32b6a should fix it.


Portfolio finish mobile version

I have created the work section , About myself and other in this project using HTML, CSS, JavaScript
i have created html part with flexbox, Grid css
this project makes me best software developer as ajunior

i don't undestand your comment can you please explain more
On Tue, Feb 21, 2023 at 12:44 PM Francis Wayungi @.***>
wrote:

@.**** requested changes on this pull request.
Hi @tGemechis7 https://github.com/tGemechis7 ,
[image: image]
https://user-images.githubusercontent.com/99656687/220082777-7a0e6a7f-854d-4e32-9c38-3b1eb3b090e4.png
Great work on making the changes requested by a previous reviewer 👏
You've done well implementing some of the requested changes, but there are
still some which aren't addressed yet.
Highlights

Profesional README ✔
All linter checks passing ✔
No merge conflicts ✔
Correct GitHub flow ✔

Required Changes ♻
Check the comments under the review.
Optional suggestions
Every comment with the [OPTIONAL] prefix won't stop the approval of this
PR. However, I strongly recommend you to take them into account as they can
make your code better. Some of them were simply missed by the previous
reviewer and addressing them will really improve your application.
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something
is not 100% clear.
Please, remember to tag me in your question so I can receive the
notification.
Please, do not open a new Pull Request for re-reviews. You should use the
same Pull Request submitted for the first review, either valid or invalid
unless it is requested otherwise.
As described in the Code reviews limits policy
https://microverse.zendesk.com/hc/en-us/articles/1500004088561 you have a
limited number of reviews per project (check the exact number in your
Dashboard). If you think that the code review was not fair, you can request
a second opinion using this form https://airtable.com/shrQAqnBwek5a0O0s.
In index.html
https://github.com/tGemechis7/Portfolio/pull/3#discussion_r1112810005:

You have created another div inside the . The main container of the projects is
therefore  and should have a display:grid

—
Reply to this email directly, view it on GitHub
https://github.com/tGemechis7/Portfolio/pull/3#pullrequestreview-1307054194,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A4TCIVBL5VGLDGSJZBLYRBLWYSE7DANCNFSM6AAAAAAU73UPR4
.
You are receiving this because you were mentioned.Message ID:
@.***>

thank you @.****
On Wed, Feb 22, 2023 at 11:31 AM Shedrack Sunday @.***>
wrote:

@.**** approved this pull request.
Hi @tGemechis7 https://github.com/tGemechis7
Your project is complete! There is nothing else to say other than... it's
time to merge it [image: :shipit:]
Congratulations! 🎉
[image: image]
https://camo.githubusercontent.com/f181708ef1a4a773db8464e77479f28ed4dae506d4d8da5c19f44c8e00d31232/68747470733a2f2f6d65646961322e67697068792e636f6d2f6d656469612f594b646d3931584f4e4c5461772f67697068792d646f776e73697a65642d6d656469756d2e676966
Highlights

No linter errors ✔
Good implementations ✔

Optional suggestions
Every comment with the [OPTIONAL] prefix won't stop the approval of this
PR. However, I strongly recommend you to take them into account as they can
make your code better. Some of them were simply missed by the previous
reviewer and addressing them will really improve your application.
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something
is not 100% clear.
Please, remember to tag me in your question so I can receive the
notification.
As described in the Code reviews limits policy
https://microverse.zendesk.com/hc/en-us/articles/1500004088561 you have
a limited number of reviews per project (check the exact number in your
Dashboard). If you think that the code review was not fair, you can request
a second opinion using this form https://airtable.com/shrQAqnBwek5a0O0s.
—
Reply to this email directly, view it on GitHub
https://github.com/tGemechis7/Portfolio/pull/3#pullrequestreview-1308743276,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A4TCIVBKUDD2KRUJPEGEMTLWYXFGRANCNFSM6AAAAAAU73UPR4
.
You are receiving this because you were mentioned.Message ID:
@.***>


Move 'tasks' section directly below 'notes' section in edit mode

*tasks, not tasls
In view mode for an event, 'tasks' appear directly below 'notes' section.
In edit mode, the 'tasks' section is below the survey results and location section.  Moving it directly below 'notes' will make it easier to see the list of instructors and helpers in the 'notes' that need to be entered in to 'tasks.'

Can we move notes under location section? It's part of the same form while tasks are not, and so it's easier to do.

If the end result is that tasks is directly below notes, then yes, that works.


Fix Dangling domain alert type

The name has been changed from "AppServices_PotantialDanglingDomain" to "AppServices_PotentialDanglingDomain" due to the typo in the word "potential". This is change is being done in the code as well

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

#sign-off

#sign-off

@ahmichae: I'm sorry - only the author of this article, @memildin, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

@ktoliver / @MicrosoftDocs/apex-docs-pr-reviewers, I've signed off, please can you merge this.

Hi @memildin - Thanks for reviewing the pull request.
Publishing in this repository is suspended until Tuesday, March 2. Merging will resume at 7:00 AM PT Tuesday, and we'll merge it then. Thanks.

#sign-off

@ahmichae: I'm sorry - only the author of this article, @memildin, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

#sign-off

Merging in the repo is paused; this PR is in the queue to merge when merging resumes. Thanks.


Require geckodriver for Firefox tests

Change LargeFirefoxTest to require the geckodriver to run the tests,
needed for "newer" Firefox versions (48+).
Refactor the code that checks the presence of the WebDriver (move to
base class LargeTestBase), now used by LargeChromeTest and
LargeFirefoxTest.

@kingthorin looks good (and #3)?

Thanks!


[api] Adding support for tagging tenants

Added Role in miq product feature for Tenant->Operate->Edit Tags
Added tags as subcollection of tenants with assign/unassign ctions.
Added specs.

https://trello.com/c/yMVrH7iT

@gtanzillo @imtayadeway please review
@dclarizio needed to update the miq product feature to provide edit tagging entitlement to tenants (same as we do for users and groups).

:+1: Looks good


Not found error in search against genetic databases

This is also duplicate of #124 – I will close this issue and continue the discussion in #124.


ghactions: update actions

we were stuck on old and deprecated v2 for no good reason. Bump to v5 and get rid of the deprecation warnings.

/cc @marquiz


[BUG] Impossible to add a movie

Describe the bug
Following this guide at I've created my Movie Tracker and everything is fine but I can't add this Docuserie: [American Manhunt: The Boston Marathon Bombing](https://www.imdb.com/title/tt27142031/) Neither using the name of the serie not using the IMDBID
Tried with a different serie and it's working as usual.
To Reproduce
Try to add a movie using Ctrl+P to invoke Run QuickAdd: Add movie
Got an error regarding the script movie.js
Expected behavior
QuickAdd search for the movie the load the Film Template in order to create the note
Desktop (please complete the following information):

OS: Android and Windows

Smartphone (please complete the following information):

Device: Xiaomi
OS: Android13

Thanks for any help

Hey @ceccadroid, thanks for creating an issue!
Can you tell me more about the error you get? I'm trying to recreate this on my end, but can't seem to.
And just to make sure, are you using {{VALUE:fileName}} in the Template Choice in the file name?
The Docuserie contains a :, which is an illegal character for file names, and {{VALUE:fileName}} removes such characters.


Add a bit to the readme of the apps dir.

Refer to this link for build results (access rights to CI server needed):
https://fabric8-ci.fusesource.com/job/fabric8-quickstarts-master-pullreq/473/
Test PASSed.


Fix specific highlighting (CMakeLists.txt ...)

https://github.com/go-gitea/gitea/issues/7685
Add a new map for highlighting files that cannot be guessed with extension/filename (for instance, CMakeLists.txt).

Codecov Report

Merging #7686 into master will decrease coverage by <.01%.
The diff coverage is 25%.

@@            Coverage Diff             @@
##           master    #7686      +/-   ##
==========================================
- Coverage   41.25%   41.24%   -0.01%
==========================================
  Files         471      471
  Lines       63754    63758       +4
==========================================
- Hits        26300    26298       -2
- Misses      34022    34026       +4
- Partials     3432     3434       +2

Impacted Files
Coverage Δ

modules/highlight/highlight.go
30.76% <25%> (-1.05%)
:arrow_down:

modules/process/manager.go
76.81% <0%> (-4.35%)
:arrow_down:

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 0742f71...08f7333. Read the comment docs.


Setup of boilerplate repo for esp32 projects

Boilerplate project for esp32 projects with esp-idf integration. Was kind of a pain to integrate all together due to having to set environment variables as well as relying on custom CMake commands and a non-standard main call from the esp-idf build system.
With this setup, we are able to compile and run locally as well as on target. Debugging on target remains to be seen if feasible, as it does not seem to be supported on the available development boards natively. Could eventually be tested with the Jeff Probes ordered.
It requires the installation of the esp-idf toolchain, currently set as a submodule. The instructions provided in the README should help you there.

LGTM


Ooops, forgot to delete the message after we are done processing it.

Connects to #11.
@rmarianski could you review, please?

:+1:
I should have noticed that when I first looked at it. Good catch!


[BUG] client_active always adds one {delim}

Describe the bug
If I use this example:
client = "{icon}{delim}"
client_active = "{icon}{delim}"

there will be two {delim} after the active window.
To Reproduce

Configure as in the example above.
Open multiple windows on the current workspace.
Note that the active window has two {delim} after the {icon}.
Change active windows.
Note that the previously active window now only has one {delim} and the new active window now has two {delim}.

Expected behavior
The active window should get its formatting from client_active.
Linux Distro (please complete the following information):
NixOS
**Program version?
0.5.2

I feel like this should be fix when I will success to refactor it and join client by {delim} instead append this to each other. There is WIP about this. Thanks for the report.

Fixed in our refacto, to be release soon.

Should be fix in the new release https://github.com/hyprland-community/hyprland-autoname-workspaces/releases/tag/1.0.0


DepthwiseConvolutionLayer kernel size

Hi,
it seems the the only allowed kernel size for DepthwiseConvolutionLayer is 3x3. Is it possible to use different kernel sizes?
Thank you.

Hi, @bubbles1990
CL/NEDepthwiseConvolutionLayer functions support any kernel sizes.
The 3x3 case is an highly optimised one and it has its own function (CL/NEDepthwiseConvolutionLayer3x3)
Maybe you are trying to call the incorrect function?

Hi, thank you.
I should have mentioned that I'm using the graph API. Any kernel size other than 3x3 raises an error.
graph << DepthwiseConvolutionLayer(kernel_height, kernel_width, ...)

Hi,
You should pass a hint to your graph, stating what depthwise convolution method to use. For instance, in our mobilenet example, << DepthwiseConvolutionMethod::OPTIMIZED_3x3 is passed to the graph.
Anyway, keep in mind that the graph API is only here for test purposes, it's not meant to be used for applications development.
You've got other options for that, such as for example ArmNN.
Hope that helps

Thank you.


undefined people in my chums account

Some older accounts seem to randomly get users added to them they are called  undefined

I've marked all 'undefined' users and removed for now.  Waiting to see if they continue to show up.

This was being caused by MembershipApi/people/claim - The B1 app was passing an empty user account to this api, and the api was creating a new user with empty data to go with that user account.  I updated both the API to check for this and the B1 App to not pass a null user.


Incomplete "reach location" quest spamming console when player is in another world.

What is your Quests version / build number (do not say "latest")?
Quests-4.0.4 (release) running on git-Paper-764 (Java 16).
Describe the problem and how to replicate it. Any console errors to post using a pastebin?
Incomplete "reach location" quest spamming console with errors when player is in another world from the quest (here "gallifrey" vs "resource"). Error example below (but x1000):
https://gist.github.com/mercurialmusic/a7d20872606654412b9268fda91482cb
Forcing the player to quit the quest in question solved the error spam.
If applicable, can you provide an example quest from quests.yml using a pastebin?
The quest in question, a simple get to this place and deliver a thing to an NPC:
https://gist.github.com/mercurialmusic/b5fca5a3121b382a0d6aeabbe4d4b6ea

@mercurialmusic Try https://ci.codemc.io/job/PikaMug/job/Quests/244/


build is failing for ubuntu1604.json and ubuntu1604-desktop.json with the vmware-iso image

The packer build is failing for ubuntu1604.json and ubuntu1604-desktop.json with the vmware-iso image.
osboxes@osboxes:~/code/ubuntu$ packer build -only=vmware-iso -var-file=ubuntu1604-desktop.json ubuntu.json
vmware-iso output will be in this color.

==> vmware-iso: Downloading or copying ISO
    vmware-iso: Downloading or copying: file:///Volumes/Storage/software/ubuntu/ubuntu-16.04.3-server-amd64.iso
    vmware-iso: Error downloading: stat /Volumes/Storage/software/ubuntu/ubuntu-16.04.3-server-amd64.iso: no such file or directory
    vmware-iso: Downloading or copying: http://releases.ubuntu.com/16.04/ubuntu-16.04.3-server-amd64.iso
==> vmware-iso: Creating floppy disk...
    vmware-iso: Copying files flatly from floppy_files
    vmware-iso: Copying file: http/preseed.cfg
    vmware-iso: Done copying files from floppy_files
    vmware-iso: Collecting paths from floppy_dirs
    vmware-iso: Resulting paths from floppy_dirs : []
    vmware-iso: Done copying paths from floppy_dirs
==> vmware-iso: Creating virtual machine disk
==> vmware-iso: Building and writing VMX file
==> vmware-iso: Starting HTTP server on port 8480
==> vmware-iso: Starting virtual machine...
==> vmware-iso: Waiting 10s for boot...
==> vmware-iso: Connecting to VM via VNC
==> vmware-iso: Typing the boot command over VNC...
==> vmware-iso: Waiting for SSH to become available...

In VMWare it failes at a step that says:

I'm using packer 1.1.2 and tried it on windows 7 and ubuntu 16.04 and they both failed with the same error.

I got it working by switching the preseed file over to "preseed": "preseed-desktop.cfg" for both ubuntu 16.04 and 17.04 desktop builds.
I'll submit a pull request for the two.


Fix set language content bug

fix bug where changing language immediately after typing on editor and changing back causes wrong data to be displayed

What a smart fix


mappings don't function in NeogitRebaseTodo

Description
While in the NeogitRebaseTodo buffer the key bindings don't function. However if I call the functions directly from command-line eg. :Squash it works.
I also try calling :lua require('neogit.lib.mappings_manager').invoke(11, 10) directly based on the runtime binding and there is no effect.
Neovim version
NVIM v0.9.4
Build type: RelWithDebInfo
LuaJIT 2.1.1692716794
Operating system and version
Linux fedora 6.6.4-200.fc39.x86_64
Steps to reproduce

Rebase a commit
Attempt to use one of the hotkeys

Expected behavior
No response
Actual behavior
It does not register the hotkey
Minimal config
-- NOTE: See the end of this file if you are reporting an issue, etc. Ignore all the "scary" functions up top, those are
-- used for setup and other operations.
local M = {}

local base_root_path = vim.fn.fnamemodify(debug.getinfo(1, "S").source:sub(2), ":p:h") .. "/.min"
function M.root(path)
  return base_root_path .. "/" .. (path or "")
end

function M.load_plugin(plugin_name, plugin_url)
  local package_root = M.root("plugins/")
  local install_destination = package_root .. plugin_name
  vim.opt.runtimepath:append(install_destination)

  if not vim.loop.fs_stat(package_root) then
    vim.fn.mkdir(package_root, "p")
  end

  if not vim.loop.fs_stat(install_destination) then
    print(string.format("> Downloading plugin '%s' to '%s'", plugin_name, install_destination))
    vim.fn.system({
      "git",
      "clone",
      "--depth=1",
      plugin_url,
      install_destination,
    })
    if vim.v.shell_error > 0 then
      error(string.format("> Failed to clone plugin: '%s' in '%s'!", plugin_name, install_destination),
        vim.log.levels.ERROR)
    end
  end
end

---@alias PluginName string The plugin name, will be used as part of the git clone destination
---@alias PluginUrl string The git url at which a plugin is located, can be a path. See https://git-scm.com/book/en/v2/Git-on-the-Server-The-Protocols for details
---@alias MinPlugins table<PluginName, PluginUrl>

---Do the initial setup. Downloads plugins, ensures the minimal init does not pollute the filesystem by keeping
---everything self contained to the CWD of the minimal init file. Run prior to running tests, reproducing issues, etc.
---@param plugins? table<PluginName, PluginUrl>
function M.setup(plugins)
  vim.opt.packpath = {}                      -- Empty the package path so we use only the plugins specified
  vim.opt.runtimepath:append(M.root(".min")) -- Ensure the runtime detects the root min dir

  -- Install required plugins
  if plugins ~= nil then
    for plugin_name, plugin_url in pairs(plugins) do
      M.load_plugin(plugin_name, plugin_url)
    end
  end

  vim.env.XDG_CONFIG_HOME = M.root("xdg/config")
  vim.env.XDG_DATA_HOME = M.root("xdg/data")
  vim.env.XDG_STATE_HOME = M.root("xdg/state")
  vim.env.XDG_CACHE_HOME = M.root("xdg/cache")

  -- NOTE: Cleanup the xdg cache on exit so new runs of the minimal init doesn't share any previous state, e.g. shada
  vim.api.nvim_create_autocmd("VimLeave", {
    callback = function()
      vim.fn.system({
        "rm",
        "-r",
        "-f",
        M.root("xdg")
      })
    end
  })
end

-- NOTE: If you have additional plugins you need to install to reproduce your issue, include them in the plugins
-- table within the setup call below.
M.setup({
  plenary = "https://github.com/nvim-lua/plenary.nvim.git",
  telescope = "https://github.com/nvim-telescope/telescope.nvim",
  diffview = "https://github.com/sindrets/diffview.nvim",
  neogit = "https://github.com/NeogitOrg/neogit"
})
-- WARN: Do all plugin setup, test runs, reproductions, etc. AFTER calling setup with a list of plugins!
-- Basically, do all that stuff AFTER this line.
require("neogit").setup({}) -- For instance, setup Neogit

local neogit = require('neogit')

neogit.setup {
  use_default_keymaps = true,
  -- Hides the hints at the top of the status buffer
  disable_hint = false,
  -- Disables changing the buffer highlights based on where the cursor is.
  disable_context_highlighting = true,
  -- Disables signs for sections/items/hunks
  disable_signs = false,
  -- Do not ask to confirm the commit - just do it when the buffer is closed.
  disable_commit_confirmation = false,
  -- Uses `vim.notify` instead of the built-in notification system.
  disable_builtin_notifications = false,
  -- Changes what mode the Commit Editor starts in. `true` will leave nvim in normal mode, `false` will change nvim to insert mode, and `"auto"` will change nvim to insert mode IF the commit message is empty, otherwise leaving it in normal mode.
  -- When enabled, will watch the `.git/` directory for changes and refresh the status buffer in response to filesystem
  -- events.
  disable_insert_on_commit = true,
    filewatcher = {
    interval = 1000,
    enabled = true,
  },
  -- Used to generate URL's for branch popup action "pull request".
  git_services = {
    ["github.com"] = "https://github.com/${owner}/${repository}/compare/${branch_name}?expand=1",
    ["bitbucket.org"] = "https://bitbucket.org/${owner}/${repository}/pull-requests/new?source=${branch_name}&t=1",
    ["gitlab.com"] = "https://gitlab.com/${owner}/${repository}/merge_requests/new?merge_request[source_branch]=${branch_name}",
  },
  -- Allows a different telescope sorter. Defaults to 'fuzzy_with_index_bias'. The example below will use the native fzf
  -- sorter instead. By default, this function returns `nil`.
  telescope_sorter = function()
    return require("telescope").extensions.fzf.native_fzf_sorter()
  end,
  -- Persist the values of switches/options within and across sessions
  remember_settings = true,
  -- Scope persisted settings on a per-project basis
  use_per_project_settings = true,
  -- Table of settings to never persist. Uses format "Filetype--cli-value"
  ignored_settings = {
    "NeogitPushPopup--force-with-lease",
    "NeogitPushPopup--force",
    "NeogitPullPopup--rebase",
    "NeogitCommitPopup--allow-empty",
    "NeogitRevertPopup--no-edit",
  },
  -- Neogit refreshes its internal state after specific events, which can be expensive depending on the repository size.
  -- Disabling `auto_refresh` will make it so you have to manually refresh the status after you open it.
  auto_refresh = true,
  -- Value used for `--sort` option for `git branch` command
  -- By default, branches will be sorted by commit date descending
  -- Flag description: https://git-scm.com/docs/git-branch#Documentation/git-branch.txt---sortltkeygt
  -- Sorting keys: https://git-scm.com/docs/git-for-each-ref#_options
  sort_branches = "-committerdate",
  -- Change the default way of opening neogit
  kind = "tab",
  -- The time after which an output console is shown for slow running commands
  console_timeout = 2000,
  -- Automatically show console if a command takes more than console_timeout milliseconds
  auto_show_console = true,
  status = {
    recent_commit_count = 10,
    recent_commit_include_author_info = true,
  },
  commit_editor = {
    kind = "split",
  },
  commit_select_view = {
    kind = "tab",
  },
  commit_view = {
    kind = "vsplit",
  },
  log_view = {
    kind = "tab",
  },
  rebase_editor = {
    kind = "split",
  },
  reflog_view = {
    kind = "tab",
  },
  merge_editor = {
    kind = "split",
  },
  preview_buffer = {
    kind = "split",
  },
  popup = {
    kind = "split",
  },
  signs = {
    -- { CLOSED, OPENED }
    hunk = { "", "" },
    item = { "", "" },
    section = { "", "" },
  },
  -- Each Integration is auto-detected through plugin presence, however, it can be disabled by setting to `false`
  integrations = {
    -- If enabled, use telescope for menu selection rather than vim.ui.select.
    -- Allows multi-select and some things that vim.ui.select doesn't.
    telescope = nil,
    -- Neogit only provides inline diffs. If you want a more traditional way to look at diffs, you can use `diffview`.
    -- The diffview integration enables the diff popup.
    --
    -- Requires you to have `sindrets/diffview.nvim` installed.
    diffview = nil,
  },
  sections = {
    -- Reverting/Cherry Picking
    sequencer = {
      folded = false,
      hidden = false,
    },
    untracked = {
      folded = false,
      hidden = false,
    },
    unstaged = {
      folded = false,
      hidden = false,
    },
    staged = {
      folded = false,
      hidden = false,
    },
    stashes = {
      folded = true,
      hidden = false,
    },
    unpulled_upstream = {
      folded = true,
      hidden = false,
    },
    unmerged_upstream = {
      folded = false,
      hidden = false,
    },
    unpulled_pushRemote = {
      folded = true,
      hidden = false,
    },
    unmerged_pushRemote = {
      folded = false,
      hidden = false,
    },
    recent = {
      folded = true,
      hidden = false,
    },
    rebase = {
      folded = true,
      hidden = false,
    },
  },
  mappings = {
    rebase_editor = {
      ["p"] = "Pick",
      ["r"] = "Reword",
      ["e"] = "Edit",
      ["s"] = "Squash",
      ["f"] = "Fixup",
      ["x"] = "Execute",
      ["d"] = "Drop",
      ["b"] = "Break",
      ["q"] = "Close",
      ["<cr>"] = "OpenCommit",
      ["gk"] = "MoveUp",
      ["gj"] = "MoveDown",
      ["<c-c><c-c>"] = "Submit",
      ["<c-c><c-k>"] = "Abort",
    },
    finder = {
      ["<cr>"] = "Select",
      ["<c-c>"] = "Close",
      ["<esc>"] = "Close",
      ["<c-n>"] = "Next",
      ["<c-p>"] = "Previous",
      ["<down>"] = "Next",
      ["<up>"] = "Previous",
      ["<tab>"] = "MultiselectToggleNext",
      ["<s-tab>"] = "MultiselectTogglePrevious",
      ["<c-j>"] = "NOP",
    },
    popup = {
      ["?"] = "HelpPopup",
      ["A"] = "CherryPickPopup",
      ["D"] = "DiffPopup",
      ["M"] = "RemotePopup",
      ["p"] = "PushPopup",
      ["X"] = "ResetPopup",
      ["Z"] = "StashPopup",
      ["b"] = "BranchPopup",
      ["c"] = "CommitPopup",
      ["f"] = "FetchPopup",
      ["l"] = "LogPopup",
      ["m"] = "MergePopup",
      ["F"] = "PullPopup",
      ["r"] = "RebasePopup",
      ["v"] = "RevertPopup",
    },
    status = {
      ["q"] = "Close",
      ["I"] = "InitRepo",
      ["1"] = "Depth1",
      ["2"] = "Depth2",
      ["3"] = "Depth3",
      ["4"] = "Depth4",
      ["<tab>"] = "Toggle",
      ["x"] = "Discard",
      ["s"] = "Stage",
      ["S"] = "StageUnstaged",
      ["<c-s>"] = "StageAll",
      ["u"] = "Unstage",
      ["U"] = "UnstageStaged",
      ["d"] = "DiffAtFile",
      ["$"] = "CommandHistory",
      ["#"] = "Console",
      ["<c-r>"] = "RefreshBuffer",
      ["<enter>"] = "GoToFile",
      ["<c-v>"] = "VSplitOpen",
      ["<c-x>"] = "SplitOpen",
      ["<c-t>"] = "TabOpen",
      ["{"] = "GoToPreviousHunkHeader",
      ["}"] = "GoToNextHunkHeader",
    },
  },
}

They seem to be working fine for me. What does :verbose nmap <c-c><c-c> (or any of the other mappings) return for you?

:verbose nmap <c-c><c-c>
        Last set from Lua
Press ENTER or type command to continue```

:verbose nmap s
n  s           *@<Cmd>lua require('neogit.lib.mappings_manager').invoke(12, 10)<CR>
        Last set from Lua
Press ENTER or type command to continue

I will have to check hopefully another plugin is not conflicting somehow. Calling the function directly works though

I narrowed it to a minimal runtime and still experience the same issue. I notice pressing the key bindings does register something but it just moves the cursor down to the next line in the buffer.

Can you copy the exact content of the rebase buffer and post it here?

#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#

Thanks! Easy fix. I didn't realize - the length of the hash is variable! So, in my test repo (work) it's 10 chars long. Another user pointed out theirs was 8. And yours is 7!
Anyways, thanks for the report ;)

Thank you for checking out this issue!
I think you can also use the functions tpope defined in https://github.com/vim/vim/blob/master/runtime/ftplugin/gitrebase.vim#L20 since they provide the same functionality? 🤔  I am just thinking outloud here.


deploy error

when i type dokcer-compose up . thanks

Stumbled across the same issue. Had to change the repo version to pass this point

in Dockerfile (in the root folder)
replaced openSUSE_Leap_15.0 with openSUSE_Leap_15.1 (2 instances)

Once the version has been changed the installation continued

Successfully repaired opensuse/portus:2.5 OCI container image
hi @countnazgul @semrakky  replacing openSUSE_Leap_15.0 by openSUSE_Leap_15.1 is not enough , I have a solution to use, all details https://github.com/SUSE/Portus/issues/2241#issuecomment-593370789
:)
I will read any feedback from you with interest

users need to understand that Portus as a FoSS is dead. PR are ignored.
this was the last RoR projects I let in my infrastructure.
The market switched to Go for infrastructure applications. Time to switch to https://github.com/goharbor/harbor

users need to understand that Portus as a FoSS is dead. PR are ignored.
this was the last RoR projects I let in my infrastructure.
The market switched to Go for infrastructure applications. Time to switch to https://github.com/goharbor/harbor

hi @bclermont Actually,I worked hard to make portus work reliabily :

one reason is that I don't want a world where there is only harbor : what happens if they decide, at Harbor, say to change licences, or to make choices that happen to be very harmful to your business model ?
What do you think ?
Here is where I stand today : I have an automated deployment that solves all the issues closed, and mot of those still open . I will no doubt, success in the near future, at building portus from source. After digging into it, I am not a big fan of ruby myself, but well, portus really works after the efforts I put into it, and it's fit for production. There is though, one set of feature that portus never considered, it is content trust, notary. I believe I can add without touching a lot of source code.
What I like about portus, is that it's simple, powerful, andsecure enough, to play for rather big development teams.And if it's about distributing signed images to end users, well you have quay and docker hub (anyway you will, publish your app dockerized to docker hub, it's like the containers facebook, every container wants his facebook account)
Where you made me laugh, is that I just tested quickly yesterday another OpenSUSE project, : OBS . Because it is one services they use to package and deliver portus. And it is an opensourec  project. It looks like the trendy at SUSE , currently (27000+ commits). Written in Ruby. And guess what, After 10minutes I had corrected 4 erros, for the OBS docker-compose , even though I had git checked out a release tag. Okay, they've got their style at SUSE. Messy. :)


Not able to Integrate with FastAPI

As stated in Integration with web framework we can integrate PyWebIO with FastAPI but the current version of PyWebIO has no support to FastAPI. i have downloaded the latest version of PyWebIO==1.2.3 and FastAPI has already been downloaded
https://imgur.com/a/mPbomhj

The doc you visited is the dev version, you need to install the dev version of pywebio to use this feature.
Use this command to install lasest  dev version:
pip3 install -U https://code.aliyun.com/wang0618/pywebio/repository/archive.zip

See also: https://github.com/wang0618/PyWebIO/discussions/42

hey @wang0618 , i will test it out! Thanks for the prompt reply!

I have downloaded the latest dev version but when i tried to run my python file, i get this ValueError. May I know what static files i have to host in order for it to work?
ValueError: Default CDN is not supported in dev version. Please host static files by yourself.

Did you download from this github repo directly? This repo doesn't contaion the built static file, you need use this command to install dev version:
pip3 install -U https://code.aliyun.com/wang0618/pywebio/repository/archive.zip

You can use the following code to let pywebio host  static files:
from fastapi import FastAPI
from pywebio.platform.fastapi import asgi_app

app = FastAPI()

@app.get("/app")
def read_main():
   return {"message": "Hello World from main app"}

# `task_func` is PyWebIO task function
app.mount("/tool", asgi_app(task_func, cdn=False)))

Doc: https://pywebio.readthedocs.io/en/dev/platform.html#pywebio.platform.fastapi.asgi_app

Think i got it working! Thankss! When will version 1.3 be released tho?

When will version 1.3 be released?

Probably within a week or two. I need to write more test case and update the document.

looking forward to it! Thanks for the assistance, i will be closing off this issue!


Containerization

add Dockerfile in order to run a server with the latest Chrome and memory cache easily.

This branch includes a Docker file to run the server easily.
Also, the memory cache is activated by default.

@thoop


[WIP] chore(deps): update deps for null-safety

What does this change?
What is the value of this and can you measure success?
Screenshots (Optional)

Codecov Report

Merging #66 (7aa4598) into main (7ff733b) will decrease coverage by 3.57%.
The diff coverage is 31.75%.

@@            Coverage Diff             @@
##             main      #66      +/-   ##
==========================================
- Coverage   42.50%   38.92%   -3.58%
==========================================
  Files          48       48
  Lines         687      745      +58
==========================================
- Hits          292      290       -2
- Misses        395      455      +60

Impacted Files
Coverage Δ

lib/constants.dart
77.77% <ø> (ø)

lib/data/model/article.dart
100.00% <ø> (ø)

lib/data/model/article.freezed.dart
7.54% <0.00%> (-3.27%)
:arrow_down:

lib/data/model/news.dart
100.00% <ø> (ø)

lib/data/model/result.dart
12.00% <0.00%> (ø)

lib/data/model/source.dart
100.00% <ø> (ø)

lib/data/model/source.freezed.dart
14.03% <0.00%> (-3.75%)
:arrow_down:

lib/data/remote/auth_data_source_impl.dart
0.00% <0.00%> (ø)

lib/data/repository/auth_repository_impl.dart
0.00% <ø> (ø)

lib/gen/assets.gen.dart
50.00% <ø> (ø)

... and 24 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 7ff733b...e99ad26. Read the comment docs.


Feature/conversation list 2

This is a copy of https://github.com/ExpediaGroup/flyte-slack/pull/19 which cant be completed due to Travis-CI check
Checking if new PR will work

test PR closed. will be merged in further PR


Error when read wav files by using scipy.io.wavfile

When i start to run train.py and I have error when read wav file
File "/usr/local/lib/python3.7/dist-packages/scipy/io/wavfile.py", line 323, in read     return fs, data UnboundLocalError: local variable 'fs' referenced before assignment
I read wavfile.py file and recognized that the function _read_data_chunk and _read_fmt_chunk cannot reachable so that the "fs" and "data" variables had no value because of the condition
while fid.tell() < file_size: always false because fid.tell() == 12 while file_size == 8 when I printed them
the value fid.tell() turn from 0 to 12 after line
file_size, is_big_endian = _read_riff_chunk(fid)
Error in meldataset.py
at def load_wav(full_path):
sampling_rate, data = read(full_path)
return data, sampling_rate
Can you help me fix this?
Many thanks!

Did you solve the problem ? If not, please share the full trace logs, so me or someone can help you.


Set up spire-extras subproject

The purpose of this subproject would be to contain types and data structures that would increase the size of the main spire jar too much, but that would be useful to have as part of the spire project.
It might be a good idea to move some less-frequently used parts of spire that cause disproportionally large increase in jar size to this repository as well.

:+1: Now that 0.10.1 is out I will look into this.


Update code link in README.md

@porco-rosso-j has a better repo to use as an example, which builds on the one listed and is better documented.

@webthethird - noticed that @porco-rosso-j has worked on some potentially relevant repos that we can link to / add to this compilation.
Any you would suggest or highlight? I spotted this one, as one example: https://github.com/porco-rosso-j/zk-ecdsAA


perf(image): speed up runtime

removed entrypoint.sh and speeded up runtime by pre-installing requirements in the image build process
Types of changes

Refactoring (no functional changes, no api changes)

Checklist

[x] Code follows the code style of this project.
[x] Changes follow the CONTRIBUTING guidelines.
[x] Update necessary documentation accordingly.
[x] Lint and tests pass locally with the changes.
[x] Check issues and pull requests first. You don't want to duplicate effort.

@joundso Thanks! This optimization is awesome.


Add support for continuous integration

Provide a .travis.yml for CI builds
Add coverage report
Add badges to README for easy view of current status of project

CI + coveralls is added since 67cf7849c6e014db34a983a049bb750e4b765c00, closing this now.


Fixing the "unmaintained" warning banner

This warning is now displayed on every v1 document.
This banner is the opposite of our stated support for v1: every part of zowe is maintained such as doc, code, etc.
And users have already complained.
So, we either need a different banner or no banner.
Ideally, we should be saying something like...

latest v2.x: no banner
v2.x less than latest v2.x: warning banner stating you are looking at an outdated version of the documentation, and should look at the latest v2.x as fixes are always applied to the latest version.
latest v1.x: info (not warning) message asking if you're looking for the latest version of zowe (link to v2)
v1.x less than latest v1.x: warning banner stating you are looking at an outdated version of the documentation, and should look at > the latest v1.x as fixes are always applied to the latest version.

The warning message appears to be a default from docusaurus: https://docusaurus.io/docs/versioning
They only have 'none', 'unreleased', and 'unmaintained' banner which gets applied depending on how you organize your versions.
I'm not very familiar with the docs site code and will be away for a few weeks soon, so I'm just adding some insight if it helps:

https://github.com/zowe/docs-site/blob/master/src/pages/versions.js appears to be applying a list that adheres to the versioning API above
Ideally why not set ALL of them to banner=none and make a custom banner that says what you really want to say: https://docusaurus.io/docs/next/markdown-features/admonitions
Worst case, why not take the first non-v2 in the list and set it to banner=none, so the warning doesnt show up.

@nannanli :  At the May24 ZAC we agreed that the current banner / message displayed for the latest V1.x release was misleading to our customers.  All were in favor of the custom banner referenced by @1000TurquoisePogs (Sean) above.  If a custom banner is possible:
We recommend using this message for just the latest Zowe v1.x (1.28) release.
"Please Note:  The Zowe V1 LTS release has transitioned to “maintenance” effective 04/23/2022 with the 1.28 release and will no longer include new features.  Security patches and critical bug fixes will continue to be documented for this release.  For the latest Zowe features and capabilities, please reference the latest version of Zowe Docs for the "active" V2 LTS release (v2.x.x LTS)."
For all prior Zowe V1.x releases, we recommend this message:
"Please Note:  The Zowe V1 LTS release has transitioned to “maintenance” effective 04/23/2022 with the 1.28 release and will no longer include new features.  Security patches and critical bug fixes will continue to be documented for this release.  Customers planning to remain on the V1 LTS release please reference the latest version of Zowe Docs for the maintained V1 LTS release (v1.28.x).  For the latest Zowe features and capabilities, please reference the latest version of Zowe Docs for the active V2 LTS release (v2.x.x LTS)."_
Will customers be allowed to submit DOCUMENTATION UPDATES to the last V1.28.x Zowe Docs?  If yes, is this process documented somewhere within Zowe v1.28.x Doc?  If no, can we add that somewhere?
Thanks very much for your help with this!
@janan07 FYI (in case this comes up on the TSC call)

@idontknowjs Hi Arijit, I know we just changed the banner in PR https://github.com/zowe/docs-site/pull/2222. Is it possible to further customize the banner for different releases.
For just the Zowe v1.28 release, use this message as the banner:
"Please Note: The Zowe V1 LTS release has transitioned to “maintenance” effective 04/23/2022 with the 1.28 release and will no longer include new features. Security patches and critical bug fixes will continue to be documented for this release. For the latest Zowe features and capabilities, please reference the latest version of Zowe Docs for the "active" V2 LTS release (v2.x.x LTS)."
For all prior Zowe V1.x releases, we recommend this message:
"Please Note: The Zowe V1 LTS release has transitioned to “maintenance” effective 04/23/2022 with the 1.28 release and will no longer include new features. Security patches and critical bug fixes will continue to be documented for this release. Customers planning to remain on the V1 LTS release please reference the latest version of Zowe Docs for the maintained V1 LTS release (v1.28.x). For the latest Zowe features and capabilities, please reference the latest version of Zowe Docs for the active V2 LTS release (v2.x.x LTS)."_

Hi @nannanli what needs to be shown in the banner, when v2.1.x will be the latest and v2.0.x will become an archived version just like v1.x.x versions.?

Hi @nannanli what needs to be shown in the banner, when v2.1.x will be the latest and v2.0.x will become an archived version just like v1.x.x versions.?

Hi @idontknowjs , sorry for misssing this part about v2 release. Taking v2.1.0 and v2.0.x for example, the banner for v2.0.x release should be as follows. This should apply to all V2 archived releases.

This is documentation for Zowe v2.0.x LTS. For documentation of the latest version, see v2.1.x LTS.


600 subject added entry--personal name

https://github.com/uwlib-cams/MARC2RDA/blob/main/Working Documents/6XX.csv

@pennylenger
Hi Penny,
In the 600 Google Sheet row 24 column x, the transformation notes say
<workS> or (<work> if no subject work) rdaw:P10256 <tConcept(field)> . // has subject
<tConcept(field)> skos:prefLabel “stripEndStop($x, $y, $z)” .
<tConcept(field)> skos:inScheme <tScheme(2nd indicator or $2)>
If the indicator 2 is 4 - Source not specified, don't mint a concept and just transform the heading as a string with a datatype property.

Page 10 of Gordon's document says:
600 ( $x, $y, $z) => concept for subject of work
Shouldn't this always be mapped as a subject of the main work not a subject of the subject work? I may be misunderstanding the purpose of $x, $y, and $z. Thank you.

I see this from examples. If there is a subject work, it is subject of the subject work. If no, it is a subject of the main work. I don't know how to write this clearly in the mapping.

I asked a question about this. I hope it helps:
Another question is about concept for ( $x, $y, $z)
Concept (exists(600, 610, 611. 648, 651 $x, $y, $z))
rdawo:P10256 <tConcept(field)> . // has subject; topical subdivisions
<tConcept(field)> skos:prefLabel “stripEndStop(concatenateOA($x, $y, $z))” .
<tConcept(field)> skos:inScheme <tScheme(field)> .
For example, for 600, if there is a subject work, it will be:
[work] rdawo:P10257 . // has subject work
[workS] rdawo:P10256 <tConcept(field)> . // has subject
<tConcept(field)> skos:prefLabel “stripEndStop($x, $y, $z)” .
<tConcept(field)> skos:inScheme <tScheme(field)> .
If there is no subject work, like:
600 00$aJesus Christ$xHistory of doctrines$yEarly church, ca. 30-600.
Should we mint a concept for ( $x, $y)
And should we mint a concept for ( $x, $y, $z) each time they appear or
under some circumstance? They seem redundant.
Gordon:
For the x, y, z question: Yes, we should mint a concept each time they
appear. This will result in a large amount of redundancy, but this is
automatically de-duplicated if the loca part of the minted IRI is the
normalized values of x, y, and z.
This allows the work/manifestation to be retrieved by a boolean combination
of the primary subject, the personal name 'Jesus Christ', with the
secondary qualifier string 'History of doctrines -- Early church, ca.
30-600'. Of course, the full heading string will also be available for
retrieval, but this approach also satisfied the end-user requirement for
all stuff on 'History of doctrines', etc.
On Fri, Aug 9, 2024 at 11:23 AM Cypress @.***> wrote:

@pennylenger https://github.com/pennylenger
Hi Penny,
In the 600 Google Sheet row 24 column x, the transformation notes say
 or ( if no subject work) rdaw:P10256 <tConcept(field)> . // has subject
<tConcept(field)> skos:prefLabel “stripEndStop($x, $y, $z)” .
<tConcept(field)> skos:inScheme <tScheme(2nd indicator or $2)>
If the indicator 2 is 4 - Source not specified, don't mint a concept and just transform the heading as a string with a datatype property.
Page 10 of Gordon's document says:
600 ( $x, $y, $z) => concept for subject of work
Shouldn't this always be mapped as a subject of the main work not a
subject of the subject work? I may be misunderstanding the purpose of $x,
$y, and $z. Thank you.
—
Reply to this email directly, view it on GitHub
https://github.com/uwlib-cams/MARC2RDA/issues/14#issuecomment-2278503928,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A4RYKL4UBPBFN4AGYM4SWA3ZQUCJLAVCNFSM6AAAAABMI5W4X2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENZYGUYDGOJSHA
.
You are receiving this because you were mentioned.Message ID:
@.***>

I find another problem, for example, if subject person/work has no source(4 - Source not specified), we use AP, not AAP. I will update the mapping.

This is helpful, thank you.
Looking at examples though:
600 10 $aShakespeare, William, $d1564-1616. $tHamlet $xCriticism, Textual.
600 10 $aCervantes Saavedra, Miguel de, $d1547-1616. $tDon Quixote $xInfluence.
I don't see how "Criticism, Textual" is a subject of "Hamlet" or "Influence" is a subject of the work "Don Quixote".

I think it is because they are all
Subject subdivision portion
$v - Form subdivision (R)
$x - General subdivision (R)
$y - Chronological subdivision (R)
$z - Geographic subdivision (R)
So, they are all default to subject. The whole heading is the subject of the main work. The x, y, z is the subject of the subject work. Maybe my understanding is not thorough.

The first work (1XX/240/245) being described is a textual criticism of Hamlet.
The second work is about the influence of Don Quixote.
We aren’t cataloging/describing either Hamlet or Don Quixote.  They are the subjects of the works being cataloged.
Adam L. Schiff
Principal Cataloger
University of Washington Libraries
Box 352900
Seattle, WA 98195-2900
aschiff @ uw.edu

From: Cypress @.>
Sent: Friday, August 9, 2024 3:43:13 PM
To: uwlib-cams/MARC2RDA @.>
Cc: Subscribed @.***>
Subject: Re: [uwlib-cams/MARC2RDA] 600 subject added entry--personal name (Issue #14)
This is helpful, thank you.
Looking at examples though:
600 10 $aShakespeare, William, $d1564-1616. $tHamlet $xCriticism, Textual.
600 10 $aCervantes Saavedra, Miguel de, $d1547-1616. $tDon Quixote $xInfluence.
I don't see how "Criticism, Textual" is a subject of "Hamlet" or "Influence" is a subject of the work "Don Quixote".
—
Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https://github.com/uwlib-cams/MARC2RDA/issues/14*issuecomment-2278841635__;Iw!!K-Hz7m0Vt54!mMYtCSYZQCJdjoCQG31a-wKjUkujt_EJFxehFT4nt5weMn98cnF2ji-65tpqoEhS8in55IcNW-iFCgLrmTDzs1E$, or unsubscribehttps://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/ADFBVB5OMFGG7WET5T7V46DZQVAYDAVCNFSM6AAAAABMI5W4X2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENZYHA2DCNRTGU__;!!K-Hz7m0Vt54!mMYtCSYZQCJdjoCQG31a-wKjUkujt_EJFxehFT4nt5weMn98cnF2ji-65tpqoEhS8in55IcNW-iFCgLrozxdSuQ$.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

@pennylenger: Apologies, I didn't spot the problem with [workS] rdawo:P10256 <tConcept(field)> . // has subject. It should be [work] rdawo:P10256 <tConcept(field)> . // has subject as I confirmed in answer to @cspayne's query.

Coded aside from attributes #471


Adds Floor model, views, controller.

Coverage remained the same at 100.0% when pulling 9f0aa1c9d8018eaa2c4771f6fdf6dd79bf882cc2 on locator2 into c0ef9f8022f0f34cde2ba2af66f9a71a329c989e on development.


Security Fix for Command Injection - huntr.dev

@zpbrent (https://huntr.dev/users/zpbrent) has fixed a potential Command Injection vulnerability in your repository 🔨. For more information, visit our website (https://huntr.dev/) or click the bounty URL below...
Q | A
Version Affected | *
Bug Fix | YES
Original Pull Request | https://github.com/418sec/ms-rest-nodeauth/pull/1
If you are happy with this disclosure, we would love to get a CVE assigned to the vulnerability. Feel free to credit @zpbrent, the discloser found in the bounty URL (below) and @huntr-helper.
User Comments:
📊 Metadata *
The core function execAz() which is purposely used for az command can be injected with arbitrary other OS commands. Also the attackers can exploit this vulnerability by calling AzureCliCredentials.setDefaultSubscription("OS command") from the Azure CLI.
Bounty URL: https://www.huntr.dev/bounties/1-npm-@azure/ms-rest-nodeauth/
⚙ Description *
Using execFile() to replace exec().
💻 Technical Description *
The use of the child_process function exec() is highly discouraged if you accept user input and don't sanitize/escape them. This PR replaces it with execFile() which mitigates any possible Command Injections as it accepts input as arrays.
🐛 Proof of Concept (PoC) *
// PoC.js
auth = require('@azure/ms-rest-nodeauth');
auth.AzureCliCredentials.setDefaultSubscription('$(touch pzhou@shu)');
🔥 Proof of Fix (PoF) *
Using 'execFile(az, [${cmd}, --out json], { encoding: "utf8" }, (error, stdout) => {...' to replacing 'exec(az ${cmd} --out json, { encoding: "utf8" }, (error, stdout) => {...'
👍 User Acceptance Testing (UAT)

<EMAIL_ADDRESS>test
npm run build && run-p test:tslint test:unit

(node:7156) ExperimentalWarning: The fs.promises API is experimental

<EMAIL_ADDRESS>build
run-s build:tsc build:rollup

(node:7179) ExperimentalWarning: The fs.promises API is experimental

<EMAIL_ADDRESS>build:tsc
tsc -p tsconfig.json
(node:7198) ExperimentalWarning: The fs.promises API is experimental
<EMAIL_ADDRESS>build:rollup
rollup -c rollup.config.js
./dist/lib/msRestNodeAuth.js → ./dist/msRestNodeAuth.js...
created ./dist/msRestNodeAuth.js in 14ms
(node:7232) ExperimentalWarning: The fs.promises API is experimental
(node:7233) ExperimentalWarning: The fs.promises API is experimental
<EMAIL_ADDRESS>test:tslint
tslint -p . -c tslint.json
<EMAIL_ADDRESS>test:unit
mocha
✓ MSI App Service Authentication Credential getToken() should get token from the App service MSI by providing optional properties: 2ms
✓ MSI App Service Authentication Credential getToken() should get token from the App service MSI by reading the environment variables: 0ms
✓ MSI App Service Authentication Credential getToken() should throw if the response contains "ExceptionMessage": 0ms
✓ MSI App Service Authentication loginWithAppServiceMSI (callback) should successfully provide MSIAppServiceTokenCredentials object by providing optional properties: 0ms
✓ MSI App Service Authentication loginWithAppServiceMSI (callback) should successfully provide MSIAppServiceTokenCredentials object by reading the environment variables: 1ms
✓ MSI App Service Authentication loginWithAppServiceMSI (callback) should throw if the response contains "ExceptionMessage": 0ms
✓ MSI Vm Authentication should get token from the virtual machine with MSI service running at default endpoint: 1ms
✓ MSI Vm Authentication should get token from the virtual machine with MSI service running at custom endpoint: 1ms
✓ MSI Vm Authentication should throw on requests with bad resource: 0ms
✓ MSI Vm Authentication should throw on request with empty resource: 0ms
✓ MSI Vm Authentication should append schema to schema-less custom MSI endpoint: 0ms
✓ MSI Vm Authentication should set default api-version: 0ms
✓ MSI Vm Authentication should set custom api-version: 0ms
✓ MSI Vm Authentication should set default HTTP method: 0ms
✓ MSI Vm Authentication should set custom HTTP method: 0ms
✓ MSI Vm Authentication should set clientId as query parameter when provided: 0ms
✓ MSI Vm Authentication should set objectId as query parameter when provided: 0ms
✓ MSI Vm Authentication should set identityId as query parameter when provided: 0ms
✓ MSI Vm Authentication should set identityId, clientid and objectId as query parameter when provided: 0ms
19 passing (13ms)

🔗 Relates to...
https://www.huntr.dev/bounties/1-npm-@azure/ms-rest-nodeauth/

@zpbrent To pass the CI, you will also need to

Update the patch version in the package.json file
Add an entry in the changelog file

cc @xirzec for review and follow ups on the CVE

@ramya-rao-a & @xirzec - done, thanks! 🍰

I'm working on getting a CVE number to stick in the changelog, so please hold for that before merging.

CVE number issued: CVE-2021-28458. @JamieSlome @zpbrent thank you for your patience. Can one of you add this ID to the changelog so we can merge and publish?

@xirzec - done, thanks for the CVE assignment! 🍰

@ramya-rao-a can you give owner approval when you get a moment?

Thanks @zpbrent
@joheredi will be handling the release

I'm working on the release now . I will post an update soon once this change has been released!
/cc: @ramya-rao-a, @zpbrent

v3.0.8 has been released<EMAIL_ADDRESS>/cc: @ramya-rao-a, @zpbrent


ModuleNotFoundError: No module named 'modules.tortoise_dataset_tools.dataset_whisper_tools.train_to_phoneme'

train_to_phoneme file seems to not exist! Checked the repository at https://github.com/JarodMica/tortoise_dataset_tools/tree/master/dataset_whisper_tools and it does not seem to be a thing!

Check to make sure your repo is up-to-date, reinitialize the submodules in the manual instructions section and then pull the repo.

Thanks! That got me past that. Now I just have to add eSpeak to my system variables and I should be good to go! Hey I have to say thanks for all the videos too, man. They are really thorough and I have learned  a lot!

Just had to update from the repo and reinitialize the submodules!


tts.google_say service in 0.80.0 broken

**Home Assistant release with the issue:**0
0.80.0
Last working Home Assistant release (if known):
0.79.0
Operating environment (Hass.io/Docker/Windows/etc.):
Raspberry PI manual install.
Component/platform:
using google home device and using text to speak via web front end.
Description of problem:
Device turns on and makes a bleep but doesnt say anything.

any errors in the logs? does rolling back resolve the issue?

I'm not having any issues with TTS, have you set a base url?

So - tested this:

Rolled back to 0.79.3 starting working again.
I didn't have base_url set.
Updated back to 0.80.0 and stopped working
Added base_url and starting working to :

tts:
  - platform: google
    base_url: http://<IP_ADDRESS>:8123

I don't see any errors in the log.  My Google Home Mini devices have only ever been discovered and i;ve never changed the default tts configuration until now.  So same advice stands:
https://www.home-assistant.io/components/tts
Not sure if you want to treat this as a bug - its an easy fix to add.

Hi @markcarline .
Same problem here but I'm unable to fix it by setting base_url option like you did.
Do you use ssl ?
Thank you

Ok my bad.
Finally I didn't anything to my configuaration.
I just deleted the option "language: 'fr'" which is not (anymore ?) a valid option (language option is used directly in say service)

This is my tts section..
tts:

platform: google
base_url: https://<IP_ADDRESS>:8123
But home mini doesn't play media.  I can play media in browser.
What else can I try / change / do?


Remove finalized events upon startup

Upon start up the agent will process all events of the contracts' history. This is unnecessary because the longer the contract lives, the more events are already finalized.
The definition of finalized here is, there is no possibility that another event can be emitted to a certain request or claim id. Typically that is the case when the request deposit is withdrawn and all claims associated to the request are withdrawn. That is also the case when the agent deletes its internal representation of the request and the claims.
In fact, this will happen after sync. All finalized objects will be deleted.
Currently we have seen that with more events, unforeseen errors appear in the agent's state machine. Almost all of the errors happen during start up, where (only one of the reasons) events arrive in different orders than during runtime.
In order to make the start up more efficient and reduce the probability of errors during start up , we can scan the event loop for all finalized events and remove them before processing. It should result in the same outcome, as all finalized request and claim objects will be removed immediately.
Filtering for finalized events
My suggestion is the following:

fetch all events from both chains
sort target chain events before source chain events
iterate backwards over the event loop (withdrawn events always the last events in the lifetime of requests and claims)
mark any claim id or request id which gets withdrawn
collect all other events with the request or claim id in it
If requests and all associated claims are completely finalized, remove the events from the event loop
start with processing events

I think doing it this way enables only needing to iterate once over the event loop.
When are requests and claims finalized?
A request is finalized if all associated claims are finalized and the deposit is withdrawn
A claim is finalized if all stakes are withdrawn. Note, that with multiple challengers, we can see multiple ClaimStakeWIthdrawn events for a given claim id. Unfortunately we dont emit the amount withdrawn with the event. The solution to this is to match all ClaimMade events which belong to challengers with ClaimStakeWithdrawn events. In this way we can see if all challengers withdrew their stake. If the claimer, is the one who withdrew, then there can only be one ClaimStakeWithdrawn event. This can be checked with the original ClaimMade event (lastChallenger == address(0) or totalClaimStake == 0).
I know that searching for finalized claims is a bit more complicated, but I think it reduces the probability of unforeseen errors during start up by a lot.
Accaptance crtieria

[ ] Finalized requests and claims don't get processed

I briefly looked at the code and luckily the initial sync is already decoupled from the infinite loop in the EventProcessor.
This gives us the possibility to do something like this
@@ -162,6 +162,8 @@ class EventProcessor:
             self._have_new_events.wait(poll_period)
             self._have_new_events.clear()

+        filter_finalized_events(self._events)
+
         while not self._stop:
             if self._have_new_events.wait(poll_period):
                 self._have_new_events.clear()

First, fetching all events from "both chains" will become "fetching all events from "all chain", since we are planning to support multiple chain pairs. We may end up waiting needlessly for some random chain's RPC, while we could do some useful work. And the requirement to sort events makes things worse.

We are doing this already and I actually don't know how you would want to prevent that. We are not processing events before the sync is done.

Second, it is not obvious to me how sorting would even work in case there are multiple source and multiple target chains. We will basically have an any-to-any situation.

That's easy. In order to make it work we need to sort that Request Manager events are at the end of the queue. This is achievable by iterating once over the queue which is of complexity O(n).

Another issue is that of finalization logic. The way I am understanding the description leads me to imagine two mechanisms for finalization: one during sync, the other during regular operation. The latter would work same as it is working now, based on state changes due to processed events, however, the former cannot operate like that due to events not being processed (meaning no state changes occur). This is not nice because we will have to maintain two separate finalization mechanisms.

I don't understand this part. We are simply discarding events as if they never happened.

Yet another issue is that of scalability. With small number of events and objects, this is may be viable, but as the number of events (and chains) increases, the situation worsens.

Why is that so? Given the fact that we actually fetch all events at start up.

Instead of doing this, I would rather implement the idea we already (briefly) mentioned: representing contract state correctly, with a low-level state machine (let's call this CSR - Contract State Representation, for lack of better naming). With CSR combined with your idea of decoupling the Filler and Challenger state machines, I think we would
solve all the event ordering issues on the CSR level
have only one finalization mechanism, instead of two
have no scalability issues, even with multiple chain pairs
simplify the state machines
easily & precisely discard finalized requests and claims

I think those ideas are complementary. And can easily done both.
I think some of the points you mentioned are out of scope of this issue and have nothing to do with it.
The way the agent works right now:

fetch all historic events from both chains
start processing all events
remove all finalized state

-> Outcome: Same is if those events would have never happened.
As I mentioned, the first point is already implemented in the agent and the CSR is complementary to my idea. So the main argument here is scalability. The real difference in doing it or not is how do both approaches scale? I gave it a little bit more thought. Let's assume we compare CSR implemented with CSR implemented + filtering
Let the number of events be N
the number of finalized events F =< N
Number of "live" events L = N - F
A) Filtering
In the case of filtering we iterate over the historic event loop 2 times (Sorting, finding finalized events) (I don't know exactly how removing works, but one could safe the indices so this would mean O(F)). Then for each event which gets processed we do a bunch of Memory state changes and logic to be executed. Let's call this a Factor M. We would then iterate over the live events and do a state change accordingly -> M*O(L).
So we end up with: 2*O(N) + O(F) + M*O(L)
B) No filtering
That's easier. We simply process all historic events.
M*O(N)
In terms of scalability we would have to think about if M*O(N) > 2*O(N) + O(F) + M*O(L).
In other words:
M*O(N) = M*O(L) + M*O(F)
M*O(F) > 2*O(N) + O(F)
M*O(F) > 3*O(F) + 2*O(L)
(No guarantees for correct conversion here)
I think it's hard to reason about these theoretical terms. What I can say is that we can assume that over time L will be more or less constant. So with a growing N, F grows linearly. The rationale behind it is that life events comes from daily usage and eventually they'll all finalize.
To be fair in this calculation we also have to do some memory storage on finding finalized events (storing events in a dictionary) so there should also be an overhead per finalized event.
With growing F 2*O(L) can be neglected
so it boils down to M*O(F) > 3*O(F).
Puh, that was a fun time travel to second semester of CS studies.

As I mentioned, the first point is already implemented in the agent and the CSR is complementary to my idea.

Actually, it is not. With CSR, filtering does not make sense. CSR basically does just what the contracts do. I'd be happy to discuss this in a call.

Let's assume we compare CSR implemented with CSR implemented + filtering

I think we have a different understanding of how CSR would work. Filtering on top of CSR does not make sense -- there is simply nothing to do.

Ok. I understand that CSR represents the contract state. So if we have 10 events regarding an object it would modify the state 10 times and ultimately remove it. Am I wrong?

Ok. I understand that CSR represents the contract state. So if we have 10 events regarding an object it would modify the state 10 times and ultimately remove it. Am I wrong?

No, that's exactly right.

Okay, then we would basically do not do this at all. Because we know beforehand that it will be removed again anyways so we can "safe" writing state 10 times.
Additionally, and most likely we will have to see how we pass events to the state machines of the "roles" like LP and Watcher and if we have to replay state here.

The only argument for doing it is potentially a short term relief on potential sync errors because implementing CSR is most likely not be done in the short term.

I still don't understand why you argue against this with CSR because filtering comes one layer before and I think it potentially speeds up sync even with CSR but all in all it seems to be a nice to have instead of a must have.

CSR, by necessity, must implement finalization logic. Adding another finalization logic and a step before the events are fed to CSR seems completely unnecessary. Consider that you need to fetch all events, sort them (which is NlogN at best) and then visit each object just to check whether it refers to one of the already finalized objects. I think we can agree that that is for sure more costly than a simple state change.

I still don't understand why you argue against this with CSR because filtering comes one layer before and I think it potentially speeds up sync even with CSR but all in all it seems to be a nice to have instead of a must have.

CSR, by necessity, must implement finalization logic. Adding another finalization logic and a step before the events are fed to CSR seems completely unnecessary. Consider that you need to fetch all events, sort them (which is NlogN at best) and then visit each object just to check whether it refers to one of the already finalized objects. I think we can agree that that is for sure more costly than a simple state change.

I think you have not understood what I just wrote above. It's not nlogn.

The only argument for doing it is potentially a short term relief on potential sync errors

Pretty much, though I am quite sceptical about the benefit here.

because implementing CSR will most likely not be done in the short term.

Well, that would depend on prioritization. Personally, I would not postpone CSR, or something that improves the current situation at least that much, for too long because we will end up complicating the code base further and further, which is not sustainable.

Not understanding my above described complexity break down is not a basis for a discussion.

Fully agreed. :+1:
I will reread the description once more to see what I missed.
However, my point still holds even you throw out the sort operation altogether or make it O(1).

I really dont understand why you write We need to fetch all events. We have to do that in any case so this can't be part of an evaluation.
Take this as an illustration:
for event in events:

    if is_instance(event, RequestManagerEvent):
        request_manager_events.append(event)

    if is_instance(event, FillManagerEvent):
        fill_manager_events.append(event)

fill_manager.extend(request_manager)

Does not seem to me as nlogn.

I really dont understand why you write We need to fetch all events. We have to do that in any case so this can't be part of an evaluation.
Take this as an illustration:
for event in events:

    if is_instance(event, RequestManagerEvent):
        request_manager_events.append(event)

    if is_instance(event, FillManagerEvent):
        fill_manager_events.append(event)

fill_manager.extend(request_manager)

[...]

Does not seem to me as nlogn.

Eh, if the above is what you meant by "sort", then that explains my confusion. Nevertheless, as I mentioned, even if you ignore the sort operation, you still do work that is not necessary (note: this is all in response to the "CSR + filtering?" topic).

I would like to expand on this a bit:

With a potential new state machine, filtering can happen on different levels (before CSR, after CSR, etc.)

The CSR is in the best position to do filtering i.e. prevent the unnecessary events reaching the higher (role) level, by doing
the following:

during sync, events for each object (request or claim) are being stored separately, in order (e.g. dict[RequestHash, [Event]))
as the CSR consumes each event and updates its state, some of the objects will become finalized
once an object is finalized, the entire sequence of events for that object is dropped
once the sync is done, the CSR delivers all remaining events (related to still live objects) to the higher level at once
the higher level objects are now able to correctly reconstruct their start
event processing continues as usual, with CSR forwarding necessary events as they come


Recover lost files

My iPhone got hacked and lost a lot of files I need
Open RateCheckGatewayFilterFactory.java.pdf
Safari - Apr 2, 2020 at 8:34 PM 2.pdf

logs_31.zip

logs_298.zip
logs_297.zip

Try pulling the latest code


Support Write Interface For Bencode Encoding

Many times we have some data that we want to bencode right before we write out to the network (or right when we need to check what the size of the data on the wire will be...). Often times, we will have to encode to a buffer that the bip_bencode library allocates and hands back to us.
However, for most use cases (and at least for tokio), users will be using dedicated network buffers. What will happen is that they will encode to the Vec that we return, and then just copy the contents to the network buffer. Instead, we should support writing directly to types like this via Write.
An additional use case for this is determining how many bytes an encoded bencode structure will use before actually encoding. We can expose such a method, but internally calling the encode with a custom Write object that just keeps a counter of bytes written, and return that to the user. This would allow for a zero allocation method to determine the size.

Update UtMetadata* messages to use this when available for things like caching the size of the bencode portion of the message.


Fixing notes typecast issue

[notes typecase] Hardcoding notes to be an array

@shashankkumar @73sl4 Kindly review.

Will reopen if needed.


Fixes Dropdown UI not going away after selecting a value

Fixes #174, by implementing what @divyanshu013 suggested which is adding document.body.click() after the filter has been applied.
Example

Thanks for contributing @MPierre9! 🎉 🎉


No badge and no sound

Hey guys, I have a problem with this plugin on iOS:
I have no badge and no sound when a notification is fired, only the logo and the message sent from the server. Works perfectly fine for WP and Android.
This is the code i use
        var pushNotification;

        document.addEventListener("deviceready", function(){
            pushNotification = window.plugins.pushNotification;
            registra();
        });

        function registra() {
            pushNotification.register(
                tokenHandler,
                errorHandler,
                {
                    "badge":"true",
                    "sound":"true",
                    "alert":"true",
                    "ecb":"onNotificationAPN"
                }
            );
        }

        function tokenHandler (result) {
            alert('device token = ' + result);
            //send the token to ther server
        }

        function endRegSuccess() {
            alert("Token registered");
        }

        function errorHandler (error) {
            alert('error = ' + error);
        }

        function onNotificationAPN(result){
            if ( event.alert )
            {
                alert(event.alert);
            }

            if ( event.sound )
            {
                var snd = new Media(event.sound);
                snd.play();
            }

            if ( event.badge )
            {
                pushNotification.setApplicationIconBadgeNumber(successHandler, errorHandler, 1);
            }
        }

        function successHandler(result) {
            console.log(result);
        }

Any ideas?

Do you use any services to send Push Notifications, such as Parse, Pushwoosh?

I send push with a PyAPNs. I did a console.log of the result of onNotificationAPN and i have everything (alert, sound and badge).
When the app is open and i send a notification the app do the alert(event.alert); but no sound.
Whe the app is closed or in the background i have the notification on top of the phone but no sound and no badge.
Maybe something in the config.xml? Do i need a special permission?
Right now, for the push i have (tried with 2.4.0 and 2.5.0)
<gap:plugin name="com.phonegap.plugins.pushplugin" version="2.4.0" />
and
<gap:plugin name="org.apache.cordova.media" version="0.2.13" />
for the Media to play

I follow the tutorial http://docs.ionic.io/docs/push-from-scratch, I got the same issue. And I got the output log in xcode:
 Attempting to badge the application icon but haven't received permission from the user to badge the application

Check the settings for your app on the device. You may have accidentally disallowed something for notifications.


feat: deprecate jaeger exporter

Description
We are deprecating Jaeger exporter. Haven't gone over examples and docs yet.
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Internal change (a change which is not visible to the package consumers)
[x] Documentation change or requires a documentation update

How Has This Been Tested?

[ ] Tested manually
[ ] Added automated tests

Checklist:

[ ] Unit tests have been added/updated
[ ] Documentation has been updated
[ ] Change file has been generated (npm run change:new)
[ ] Delete this branch (after the PR is merged)

I intended to submit this as a draft until I work on the examples.
Now thinking about it, I would leave the examples as is(removed Jaeger from the main readme.md) and change it only in 2.x branch. What do you think?

@seemk, the example in the readme I converted from Jaeger to OTLP doesn't work without the proto exporter. I'll add it here to make the whole thing make more sense. Sorry for the confusion.

@seemk, I see you've done significant changes to the CI. Cool. I'd still like tests ran on my PRs.

Reopened as https://github.com/signalfx/splunk-otel-js/pull/574 due to Rauno leaving


⚠ Node - us-2d538c95.yalaso.top has degraded performance

In b44b562, Node - us-2d538c95.yalaso.top (http://us-2d538c95.yalaso.top/api/v1/ping) experienced degraded performance:

HTTP code: 200
Response time: 7100 ms

Resolved: Node - us-2d538c95.yalaso.top performance has improved in a75c7b6 after 10 minutes.


Statically Link with the VC Runtime

Background
A user requests on this thread that we statically link with the VC runtime to reduce the need to run the redist installer on a bunch of machines.
Acceptance Criteria

ShadowSpawn no longer requires the VC redist to be installed first.

Tech Notes
It may be possible to statically link with the VC redist, in which case shadowspawn would become standalone. The issue with doing that is that Microsoft publishes security updates to the redist via Windows Update, and we wouldn't get those if we were statically linked. At that point, it would be on the user to download a new version that had the updated version included. Assuming that one of us notices the update and remembers to compile a new version.
Another possibility would be to do the work to remove the dependency on the VC redist. That work may be extensive in nature - no idea.
Our current priority for this issue is low. Comments, however, are welcome.

Comment from a mailing list reader:

We can add 3(6) more configurations to project file
Release-Static-XP ....
We just need to change C++ -> Code Generation -> Runtime Library


Create a failing test for React.forwardRef

This is a failing test to illustrate https://github.com/mobxjs/mobx-react/issues/602. It fails with:
Error: Uncaught [TypeError: Cannot read property 'displayName' of undefined]

I'm pretty confident that this should work, and that this is the underlying issue that breaks styled components: any components that use ref forwarding can't be passed to observe().

Thanks! This was really  helpful :)