Does instructor support Azure OpenAI API ?

When I use Azure OpenAI, I often encounter errors, but occasionally it succeeds. I am not sure if the current instructor can use the Azure OpenAI API. Below is the function  and frequent error message.
new_updates = openai.ChatCompletion.create(
        response_model=Report,
        deployment_id= dep.GPT_4,
        max_retries=2,
        messages=[
                {
                    "role": "system",
                    "content": SYSTEM_PROMPT_KG_SYT
                },
                {
                    "role": "user",
                    "content": f"""Extract any new events from the following:
                    # Part {i}/{num_iterations} of the input:

                    {inp}"""
                },
                {
                    "role": "user",
                    "content": f"""Here is the current state of the report:
                    {cur_state.model_dump_json(indent=2)}"""
                }
            ],

    )  # type: ignore

Describe the bug
openai.error.InvalidRequestError: 'content' is a required property - 'messages.3'
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
Traceback (most recent call last):
File "C:\Users\yubo.he\Desktop\LLM_AE_Extrator\run.py", line 92, in
ade_report: Report = generate_report(text_chunks)
File "C:\Users\yubo.he\Desktop\LLM_AE_Extrator\run.py", line 47, in generate_report
new_updates = openai.ChatCompletion.create(
File "C:\Users\yubo.he\AppData\Local\Continuum\anaconda3\envs\syngenta\lib\site-packages\instructor\patch.py", line 162, in new_chatcompletion_sync
response, error = retry_sync(
File "C:\Users\yubo.he\AppData\Local\Continuum\anaconda3\envs\syngenta\lib\site-packages\instructor\patch.py", line 117, in retry_sync
response = func(*args, **kwargs)
File "C:\Users\yubo.he\AppData\Local\Continuum\anaconda3\envs\syngenta\lib\site-packages\openai\api_resources\chat_completion.py", line 25, in create
return super().create(*args, **kwargs)
File "C:\Users\yubo.he\AppData\Local\Continuum\anaconda3\envs\syngenta\lib\site-packages\openai\api_resources\abstract\engine_api_resource.py", line 155, in create
response, _, api_key = requestor.request(
File "C:\Users\yubo.he\AppData\Local\Continuum\anaconda3\envs\syngenta\lib\site-packages\openai\api_requestor.py", line 299, in request
resp, got_stream = self._interpret_response(result, stream)
File "C:\Users\yubo.he\AppData\Local\Continuum\anaconda3\envs\syngenta\lib\site-packages\openai\api_requestor.py", line 710, in _interpret_response
self._interpret_response_line(
File "C:\Users\yubo.he\AppData\Local\Continuum\anaconda3\envs\syngenta\lib\site-packages\openai\api_requestor.py", line 775, in _interpret_response_line
raise self.handle_error_response(
openai.error.InvalidRequestError: 'content' is a required property - 'messages.3'
Desktop (please complete the following information):

OS: Windows

Additional context
Azure OpenAI version : 2023-08-01-preview

it does not but i can make it compatible in 0.3.10, give me a day.

While trying the examples provided in the README using Azure OpenAI, I've encountered some issue with the following code:
`from pydantic import BaseModel, ValidationError, BeforeValidator
from typing_extensions import Annotated
from instructor import llm_validator
class QuestionAnswer(BaseModel):
question: str
answer: Annotated[
str,
BeforeValidator(llm_validator("don't say objectionable things"))
]
try:
qa = QuestionAnswer(
question="What is the meaning of life?",
answer="The meaning of life is to be evil and steal",
)
except ValidationError as e:
print(e)`
The error message is the following:
`InvalidRequestError
Traceback (most recent call last)
/Users/xxxxxxxxx/Documents/Projects/GenerativeAI/Instructor/introduction.ipynb Cell 11 line 1
7     answer: Annotated[
8         str,
9         BeforeValidator(llm_validator("don't say objectionable things"))
10     ]
12 try:
---> 13     qa = QuestionAnswer(
14         question="What is the meaning of life?",
15         answer="The meaning of life is to be evil and steal",
16     )
17 except ValidationError as e:
18     print(e)
[... skipping hidden 1 frame]

File ~/miniconda3/envs/openai/lib/python3.10/site-packages/instructor/dsl/validators.py:67, in llm_validator..llm(v)
66 def llm(v):
---> 67     resp = openai.ChatCompletion.create(
68         functions=[Validator.openai_schema],
69         function_call={"name": Validator.openai_schema["name"]},
70         messages=[
71             {
72                 "role": "system",
...
89         )
90 else:
91     if model is None and engine is None:
InvalidRequestError: Must provide an 'engine' or 'deployment_id' parameter to create a <class 'openai.api_resources.chat_completion.ChatCompletion'>
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings...`
I then checked in the validators.py the function llm_validator and it doesn't seem to have the code to use Azure OpenAI
   def llm(v):         resp = openai.ChatCompletion.create(             functions=[Validator.openai_schema],             function_call={"name": Validator.openai_schema["name"]},             messages=[                 {                     "role": "system",                     "content": "You are a world class validation model. Capable to determine if the following value is valid for the statement, if it is not, explain why and suggest a new value.",                 },                 {                     "role": "user",                     "content": f"Does{v} follow the rules: {statement}",                 },             ],             model=model,             temperature=temperature,         )  # type: ignore         resp = Validator.from_response(resp)
This code explain why I have this error.
How to use Instructor with Azure OpenAI?

oh interesting i see, theres some hard coded model vs engine
I'll work on fixing that

For now I'd just use this code.
from pydantic import Field
from typing import Optional
import instructor
import openai

class Validator(instructor.OpenAISchema):
    """
    Validate if an attribute is correct and if not,
    return a new value with an error message
    """

    is_valid: bool = Field(
        default=True,
        description="Whether the attribute is valid based on the requirements",
    )
    reason: Optional[str] = Field(
        default=None,
        description="The error message if the attribute is not valid, otherwise None",
    )
    fixed_value: Optional[str] = Field(
        default=None,
        description="If the attribuet is not valid, suggest a new value for the attribute",
    )

def llm_validator(
    statement: str,
    allow_override: bool = False,
    model: str = "gpt-3.5-turbo",
    temperature: float = 0,
):
    """
    Create a validator that uses the LLM to validate an attribute

    ## Usage

    ```python
    from instructor import llm_validator
    from pydantic import BaseModel, Field, field_validator

    class User(BaseModel):
        name: str = Annotated[str, llm_validator("The name must be a full name all lowercase")]
        age: int = Field(description="The age of the person")

    try:
        user = User(name="Jason Liu", age=20)
    except ValidationError as e:
        print(e)
    ```

    ```
    1 validation error for User
    name
      The name is valid but not all lowercase (type=value_error.llm_validator)
    ```

    Note that there, the error message is written by the LLM, and the error type is `value_error.llm_validator`.

    Parameters:
        statement (str): The statement to validate
        model (str): The LLM to use for validation (default: "gpt-3.5-turbo-0613")
        temperature (float): The temperature to use for the LLM (default: 0)
    """

    def llm(v):
        resp = openai.ChatCompletion.create(
            functions=[Validator.openai_schema],
            function_call={"name": Validator.openai_schema["name"]},
            messages=[
                {
                    "role": "system",
                    "content": "You are a world class validation model. Capable to determine if the following value is valid for the statement, if it is not, explain why and suggest a new value.",
                },
                {
                    "role": "user",
                    "content": f"Does `{v}` follow the rules: {statement}",
                },
            ],
            engine=engine,
            temperature=temperature,
        )  # type: ignore
        resp = Validator.from_response(resp)

        # If the response is  not valid, return the reason, this could be used in
        # the future to generate a better response, via reasking mechanism.
        assert resp.is_valid, resp.reason

        if allow_override and not resp.is_valid and resp.fixed_value is not None:
            # If the value is not valid, but we allow override, return the fixed value
            return resp.fixed_value
        return v

    return llm

This code:
message = {"role": "user", "content": "Jason is 25 years old."}

resp = client.chat.completions.create(messages=[message],
                                      model=model,
                                      response_model=UserDetail,
                                      max_retries=2)

gets me this error:
  File "C:\Users\andre\projects\channelcognition\sandbox_instructor\azure_experiment.py", line 27, in <module>
    resp = client.chat.completions.create(messages=[message],
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\andre\projects\channelcognition\sandbox_instructor\venv\Lib\site-packages\instructor\patch.py", line 192, in new_chatcompletion_sync
    response, error = retry_sync(
                      ^^^^^^^^^^^
  File "C:\Users\andre\projects\channelcognition\sandbox_instructor\venv\Lib\site-packages\instructor\patch.py", line 132, in retry_sync
    response = func(*args, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\andre\projects\channelcognition\sandbox_instructor\venv\Lib\site-packages\openai\_utils\_utils.py", line 299, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\andre\projects\channelcognition\sandbox_instructor\venv\Lib\site-packages\openai\resources\chat\completions.py", line 598, in create
    return self._post(
           ^^^^^^^^^^^
  File "C:\Users\andre\projects\channelcognition\sandbox_instructor\venv\Lib\site-packages\openai\_base_client.py", line 1063, in post
    return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\andre\projects\channelcognition\sandbox_instructor\venv\Lib\site-packages\openai\_base_client.py", line 842, in request
    return self._request(
           ^^^^^^^^^^^^^^
  File "C:\Users\andre\projects\channelcognition\sandbox_instructor\venv\Lib\site-packages\openai\_base_client.py", line 885, in _request
    raise self._make_status_error_from_response(err.response) from None
openai.NotFoundError: Error code: 404 - {'error': {'message': 'Unrecognized request argument supplied: functions', 'type': 'invalid_request_error', 'param': None, 'code': None}}

Am I doing something wrong?

Just as an FYI to others, I ran into this error while using instructor v0.3.5 with Azure:
openai.NotFoundError: Error code: 404 - {'error': {'message': 'Unrecognized request argument supplied: functions', 'type': 'invalid_request_error', 'param': None, 'code': None}}
The fix was to switch away from the 2023-05-15 version of the Azure API. Version 2023-09-01-preview did the trick, though I haven't checked whether there are others that also work.


Question : Will karate framework be public all time like Rest-Assured ?

Hi Peter,
I created structurally Karate in my project based on what you showed in the GitHub and going to use it for future but I am getting little worried about the framework support in future so please clarify will it be public all the time or it can be licensed framework in some days or once it get's popular.
I have Rest -assured framework as well but due to the easy orientation of Karate, i am currently using it over Rest-Assured.
Your reply would be appreciated!

@rgupta7888 - great to hear your positive feedback !  As you know, Karate is a public project on GitHub and we have no plans to change from the MIT license under which it is currently open sourced.


Refactored Encapsulation (and a few more improvements)

Hey!
Following @mattosborn's tips, I took some time to look at how we can properly encapsulate data fields.
This is somehow a continuation of our discussion in this PR.
Currently, a JavaScript user (not TypeScript) can bypass the "access-modifier-safety" offered by TypeScript. For example, skipping thecreate() method and creating instances directly using the constructor, or setting read-only fields. This would result in important validation logic not be executed, and the client having unexpected behavior.
The goal of the suggested changes is to make misusage of the client more difficult even for JavaScript users as well.
A mix of TypeScript access modifiers, getters, setters, and JavaScripts private fields are used to achieve this.
Main points:

All internal data fields in DripsClient are now private (using JavaScript private fields "#") instead of marking them as readonly.
We still expose them, but now via public getters instead of the direct readonly access.
The (private) constructor in DripsClient contains no logic at all now. All initialization logic is in the static factory method create. With TypeScript it is "impossible" to directly call a private constructor, but with JavaScript, you can and we want to guard against this.
Nothing really changes from the last merge in terms of logic, just the way it is implemented.
Most of changes concern the DripsClient but some small related changes are done to the SubgraphClientas well.
Explicitly added the access modifiers in properties and methods. TypeScript infers them, but as a personal preference, I am used to state them in the code. We can remove them if you don't agree with this code styling of course.
Relates to: https://github.com/radicle-dev/drips-js-sdk/issues/9
(a few unrelated improvements here and there, like adding error code to error messages, updating unit tests, etc.)

Let me know what you think and feel free to suggest another approach! 😊

LGTM!
The only question that comes to mind is whether or not you think there's any value in still exposing any of these for debugging, workarounds, curious developers, etc. The _ prefix is usually used in this way, and implies that it's not intended to be used externally and doesn't form a part of the lib's interface as far as versioning is concerned. i.e. "use at your peril, as it may change from version to version without warning"

Oh awesome! Yes... having the changes there is what matters :)


Etch a sketch

Title and Issue number

#1167
Close #1167

Checklist:

[X] I have mentioned the issue number in my Pull Request.
[X] I have commented my code, particularly in hard-to-understand areas
[X] I have created a helpful and easy to understand README.md

@PalakAgrawal020 please resolves conflicts


Tab component, menuItem requirement to accept jsx, currently only strings can be used

Feature Request
Problem description
I am dynamically adding tabs. I need the functionality of delete. I need to put a  (X) button with the string so that I can remove tabs. Current my content area has a button to do so.
Here's what I'm making. Just click Add Test button , fill the name and click OK, tab will be appended to the right.
https://codesandbox.io/s/upbeat-bas-pb0t2?file=/src/components/PatientProfileForm.js
Proposed solution
A clear and concise description of what you want to happen. Add any considered drawbacks.
MVP
[Fork, update, and replace this pen if you can show the proposed solution]:

@Teut2711 it's already possible, as menuItem is a shorthand property 😉

      menuItem: {
        content: (

{testList[testID].text}

            <Button color="red" compact size="mini">
              X
            </Button>

        )
      },

https://codesandbox.io/s/small-leaf-jy7ru?file=/src/components/Main.js:1639-2025

Thanks for the help!

       <Tab menu={{ fluid: true, vertical: true, tabular: true }}
              panes={details}
              activeIndex={currentTabIndex}
              onTabChange={handleTabChange} />
            <Tab menu={{ fluid: true, vertical: true, tabular: true }}
              panes={allTests}

              onTabChange={handleTabChange} />

I need this kind of a menu rather than the current one where the first set of fields would be for the Patient Profile heading, after a small gap the Test List heading and the tests corresponding to that has to be there. How can I have such a list without the complicacy of playing with the first and the last items of each sub-menu, i.e., checking if it's the first element and put the header there. And I need a search box too like in one of the menu so that user can filter out test?

Can you help with this issue too, please?
       <Tab menu={{ fluid: true, vertical: true, tabular: true }}
              panes={details}
              activeIndex={currentTabIndex}
              onTabChange={handleTabChange} />
            <Tab menu={{ fluid: true, vertical: true, tabular: true }}
              panes={allTests}

              onTabChange={handleTabChange} />

I need this kind of a menu rather than the current one where the first set of fields would be for the Patient Profile heading, after a small gap the Test List heading and the tests corresponding to that have to be there. How can I have such a list without the complicacy of playing with the first and the last items of each sub-menu, i.e., checking if it's the first element and put the header there using what you told above. And I need a search box too like in one of the menu so that user can filter out test? Multiple tab menus broke everything.

  const menuItems = [     { menuItem: { header: true, content: Patient Profile, active: false } },     details, ...allTests]
Did it, sorry took a bit to understand the shorthand prop.


[close #355] chore: use latest gotestsum

What problem does this PR solve?
Issue Number: close #355
Problem Description: ci: error obtaining VCS status: exit status 128
What is changed and how does it work?
Update to latest gotestsum.
Code changes

No code

Check List for Tests
This PR has been tested by at least one of the following methods:

No code

Side effects

No side effects

Related changes

No related changes

To reviewers

Please follow these principles to check this pull requests:

Concentration. One pull request should only do one thing. No matter how small it is, the change does exactly one thing and gets it right. Don't mix other changes into it.
Tests. A pull request should be test covered, whether the tests are unit tests, integration tests, or end-to-end tests. Tests should be sufficient, correct and don't slow down the CI pipeline largely.
Functionality. The pull request should implement what the author intends to do and fit well in the existing code base, resolve a real problem for TiDB/TiKV users. To get the author's intention and the pull request design, you could follow the discussions in the corresponding GitHub issue or internal.tidb.io topic.
Style. Code in the pull request should follow common programming style. (For Go, we have style checkers in CI). However, sometimes the existing code is inconsistent with the style guide, you should maintain consistency with the existing code or file a new issue to fix the existing code style first.
Documentation. If a pull request changes how users build, test, interact with, or release code, you must check whether it also updates the related documentation such as READMEs and any generated reference docs. Similarly, if a pull request deletes or deprecates code, you must check whether or not the corresponding documentation should also be deleted.
Performance. If you find the pull request may affect performance, you could ask the author to provide a benchmark result.

(The above text mainly refers to TiDB Development Guide. It's also highly recommended to read about Writing code review comments)

/run-unit-test

/run-unit-test

/run-unit-test

/run-unit-testv


[stable/spinnaker] user can input ingress path not only /

Hi,
ingress and ingressGate's path is fixed, "/".
For somebody who does not use cloud, (local on-prem k8s), domain address is very restricted,
user want to make address to "my.tool.com/spinnaker"
like "my.tool.com/other_tool"
Please consider this case.
Thanks.

@paulczar @viglesiasce Could you consider this issue?


Colorize: Add support for HSL colors

How about supporting HSL colors?

How about not?

what do you mean "support"? can't the developer just use the   values (hsl(120, 100%, 0%)) in a string to create their color

I think they're talking about adding Colorize::ColorHSL akin to Colorize::ColorRGB.

Yes, that is what everyone assumed. It just definitely has no place in the standard library.

This is one possible implementation:
require "colorize"

def hsl(h, s, l)
  # https://en.wikipedia.org/w/index.php?title=HSL_and_HSV&oldid=1068256614#HSL_to_RGB
  c = (1.0 - (2.0 * l - 1.0).abs) * s
  h_prime = h.to_f % 360.0 / 60.0
  x = c * (1.0 - (h_prime % 2.0 - 1).abs)
  m = l - c / 2.0

  rgb = case h_prime.floor
        when 0 then {c, x, 0}
        when 1 then {x, c, 0}
        when 2 then {0, c, x}
        when 3 then {0, x, c}
        when 4 then {x, 0, c}
        else        {c, 0, x}
        end

  Colorize::ColorRGB.new(*rgb.map { |x| ((x + m) * 255).clamp(0.0, 255.0).to_u8! })
end

(0..360).step(10) do |h|
  print "foo".colorize.fore(hsl(h, 0.8, 0.6)).back(hsl(h + 90.0, 0.3, 0.2))
end
puts

HSL colors are not part of any standard ANSI escape sequences, so they are beyond the scope of Colorize.

I suppose it wouldn't necessarily hurt to add a constructor ColorRGB.hsl. But I don't expect it would be used very much.
A custom conversion method is easy to implement in user code if necessary.

I think it's best to close this issue. This is indeed out of scope for standard library.
Hopefully there's some shard for color spaces (otherwise just obtain something like the code snippet above) and then indeed you can just convert anything to RGB and pass that in the end.


Add version notice (post-SDK update)

Codecov Report

Merging #220 into master will increase coverage by 0.05%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #220      +/-   ##
==========================================
+ Coverage   88.39%   88.45%   +0.05%
==========================================
  Files          16       16
  Lines        1697     1697
==========================================
+ Hits         1500     1501       +1
+ Misses        197      196       -1

Impacted Files
Coverage Δ

hybrid/flow.py
93.09% <0%> (+0.27%)
:arrow_up:

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 1f8b4c1...c96af9e. Read the comment docs.

The note should appear only in the repos' RTDs, not the SDK's


Incorrect type promotion in co19_2/Language/Expressions/Logical_Boolean_Expressions/type_t16.dart

co19_2/Language/Expressions/Logical_Boolean_Expressions/type_t16.dart test has the following code:
f(var x) {
  x is D && skyIsBlue(x = new C()) ? x.f() : null;
}

Kernel for this function:
  static method f(dynamic x) → dynamic {
    x is typ::D* && typ::skyIsBlue(x = new typ::C::•()) as{TypeError,ForDynamic} core::bool* ?{dynamic} x{typ::D*}.{typ::D::f}() : null;
  }

In this function variable x is incorrectly promoted to type D*, while it was actually modified.
Dynamic call x.f() is incorrectly converted to an interface call with incompatible interface target.
This results in an incorrect code in AOT (or crash after https://dart-review.googlesource.com/c/sdk/+/165625).
@johnniwinther @stefantsov @stereotype441

I will investigate ASAP

What's going on here is a bug in the front end's implementation of legacy type promotion (which I implemented way back in April of 2017!)  It turns out that the front end doesn't implement the proper rules for when assignments defeat type promotion.  The rules it's supposed to implement are:

When an the condition of an if or ?: attempts to promote a variable to a type, but the body of the then contains an assignment to that variable, the promotion doesn't happen.
When the LHS of an && promotes a variable to a type, but the RHS contains an assignment to that variable, the promotion doesn't happen.

The rule it actually implements is:

When there is an assignment to a variable, promotion of that variable is disabled in the innermost enclosing "type promotion scope", where a type promotion scope is the RHS of an && or ||, or the part of an if or ?: that follows the condition.

Amazingly, as different as these rules are, this bug apparently went undetected for 3 years!  Honestly, I'm kind of baffled.  I guess it's mostly because the front end defeats fewer promotions than it should (which means that by and large, the failure mode is that code is incorrectly accepted rather than incorrectly rejected), and so fortunately people who code using the analyzer never write the incorrect code in the first place.
So, in the example from the bug report, there are two type promotion scopes:
f(var x) {
  x is D && skyIsBlue(x = new C()) ? x.f() : null;
  //        ^------scope #1------^   ^-scope #2-^
}

The assignment defeats promotion in scope #1 but not in scope #2, so x is incorrectly considered promoted at the site of x.f().
I'll start working on a fix.

FYI, fixing this bug is technically a breaking change (though hopefully the impact will be small due to the fact that the analyzer implements promotion correctly).  I'll work with @leafpetersen to figure out whether we need to go through the breaking change process on this.

Technically I believe that this fix could change the behavior of working code.  It's a very unlikely case: you need code that is valid with and without the promotion (rare already), and the difference in the type needs to either affect something statically (e.g. extension method resolution) or dynamically (by being reified).  I would be amazed if any code actually hits that trifecta, but it is technically possible.
@stereotype441 I would suggest that you land the fix with a note in the CHANGELOG about the breaking change.
cc @davidmorgan as a heads up on any possible internal breakage (very unlikely).
We should file a breaking change request to give people time to raise any concerns before the next stable release - I'm happy to do that.

Fixed by 2c40d6a22a4a63eca2cf4515297da35405d95dbb


Updated the Get/Set UmbracoVersion to support the .NET Core format

Added backwards-compatible support for not having a SolutionInfo.cs but instead a Directory.Build.props
So basically updated the GetUmbracoVersion and SetUmbracoVersion to support the .NET Core format Directory.Build.props
Test

Just ensure it still works for v8

In this project root run powershell .\build\build.ps1
In umbraco core build-bootstrap.ps1 update $nugetsourceUmbraco  to point to Umbraco.Build's  "\build.out"
Run  powershell .\build\build.ps1 in umbraco core

Tested it with the v8/dev, and it works fine there.
I also tried it with the v8/8.7 branch, since it's the earliest branch I could find where $nugetsourceUmbraco is still a thing, but on that branch, the build script fails with the following error:
Compile Belle
Logging to C:\Users\nikol\Documents\Github\Umbraco\v80\build.tmp\belle.log
Set hidden attribute on node_modules
Error!

RemoteException: Browserslist: caniuse-lite is outdated. Please run next command `npm update`
At C:\Users\nikol\Documents\Github\Umbraco\v80\build\build.ps1:128:9
+ npm run build --buildversion=$this.Version.Release >> $log 2>&1

Abort
Error!

RemoteException: Browserslist: caniuse-lite is outdated. Please run next command `npm update`
At C:\Users\nikol\Documents\Github\Umbraco\v80\build\build.ps1:128:9
+ npm run build --buildversion=$this.Version.Release >> $log 2>&1

Abort


Much worse results than in paper

Hi,
First of all, thank you for this nice implementation.
I trained the network with default settings and data (~500k iteration), but the results are really unnaturalistic (eg.: link) and far from the samples provided by the author of the paper:
http://www.kecl.ntt.co.jp/people/kaneko.takuhiro/projects/maskcyclegan-vc/index.html
Why is this? Did you experience the same or you got nice results?

Hi @terbed , thanks for creating this issue. We found that the quality of conversion depended on heavily on the pairs of speakers selected. It worked better between speakers of the same gender. However, we saw large improvements over CycleGAN-VC3 and CycleGAN-VC2.

It look's like it stuck's in a local optimum and after that the generator loss will not improve
any suggestion for escape local optimum ?

@todalex Maybe cyclical learning rate schedulers?
https://pytorch.org/docs/master/generated/torch.optim.lr_scheduler.CyclicLR.html

Thank you @todalex and @terbed for your suggestions. May I ask which speakers both of you are converting between?
i trained a model for conversion between VCC2SF3 and VCC2TF1 and the results were generally comparable to the paper's results after 3500 epochs (~260,000 iterations). They can be seen found: https://github.com/GANtastic3/MaskCycleGAN-VC/tree/main/audio_samples/VCC2SF3_VCC2TF1
The original paper's authors also convert between these speakers http://www.kecl.ntt.co.jp/people/kaneko.takuhiro/projects/maskcyclegan-vc/index.html
There is a possibility that conversion works better between some speakers, especially same gender speakers.

@todalex Since the generator's loss is adversarial, you would expect the loss curve to plateau while the generator and discriminator continue to compete against each other to improve the conversion process. Unfortunately, generator loss convergence is not a good metric to determine when training concludes. Could you try training for longer and sharing your results?

@HikaruHotta dear Hikaruhotta i am using my own dataset for persian speakers  and since epoch 700 my g_loss is 7.5 i continued training till epoch 2400 and sadly the generator loss did not changed

@todalex The generator should continue to improve even if the generator loss stays the same at 7.5 or increases. Could you attach an audio sample an audio sample at epoch 700 and 2400 of the ground truth and the converted audio? Could you also attach the training curves for both generators and discriminators?

Hi to all
I am also train on my own dataset and result is
https://prnt.sc/126uirv

Hi,
First of all, thank you for this nice implementation.
I trained the network with default settings and data (~500k iteration), but the results are really unnaturalistic (eg.: link) and far from the samples provided by the author of the paper:
http://www.kecl.ntt.co.jp/people/kaneko.takuhiro/projects/maskcyclegan-vc/index.html
Why is this? Did you experience the same or you got nice results?

In my case, the performance of the neural vocoder (Melgan) limited the synthesized voice. In the article, they might use different melgan weigths which could better capture the speaker voice.

Hi,
First of all, thank you for this nice implementation.
I trained the network with default settings and data (~500k iteration), but the results are really unnaturalistic (eg.: link) and far from the samples provided by the author of the paper:
http://www.kecl.ntt.co.jp/people/kaneko.takuhiro/projects/maskcyclegan-vc/index.html
Why is this? Did you experience the same or you got nice results?

In my case, the performance of the neural vocoder (Melgan) limited the synthesized voice. In the article, they might use different melgan weigths which could better capture the speaker voice.

You can use HiFi vocoder
its better than MelGan

@pavelxx1 https://prnt.sc/126uirv seems to be a dead link

@pavelxx1 https://prnt.sc/126uirv seems to be a dead link

link is ok
check your internet

What is your problem with this? I think it is OK
Pavel @.***> (időpont: 2021. ápr. 28., Sze, 10:43) ezt
írta:

Hi to all
I am also train on my own dataset and result is
https://prnt.sc/126uirv http://url
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/GANtastic3/MaskCycleGAN-VC/issues/3#issuecomment-828271034,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADJCETJJQMWA7LVAXNUX2W3TK7DDJANCNFSM4247CXTA
.

--
Üdv,
Dani

@HikaruHotta
dear Hikaru
i changed my data into same gender as you said it would have better resualt's but i have the same problem and g_loss is not getting better
here is my tensorboard :
https://tensorboard.dev/experiment/3QJKZ0ZjQQa0dw5TMoLRbw/
and here is converted output of epoch 2000:
https://drive.google.com/drive/folders/1-8xE4AvkjSMr2h3_lPrNToHmtVyiCluN?usp=sharing

@todalex It's great that you're experimenting with new datasets to determine the robustness of MaskCycleGAN-VC.

@todalex The generator should continue to improve even if the generator loss stays the same at 7.5 or increases. Could you attach an audio sample an audio sample at epoch 700 and 2400 of the ground truth and the converted audio? Could you also attach the training curves for both generators and discriminators?

As mentioned above, g_loss does not always monotonically decrease when training GANs because you have two models competing against each other. The optimization problem changes every time the generator or discriminator is updated. Sometimes g_loss goes up and the generator would still improve.
Here is a stackoverflow link on how to interpret GAN losses: https://stackoverflow.com/questions/42690721/how-to-interpret-the-discriminators-loss-and-the-generators-loss-in-generative
I would encourage you to train your model for longer since it's probably still learning. Your model is definitely not suffering from mode collapse. Do you have audio samples from the real dataset? It could be helpful to diagnose what could be going wrong.

@HikaruHotta this is my dataset of same gender (male) and i split into two parts train/s1 eval/s1 and train/s2 eval/s2:
4/1AY0e-g6GjgqzHZ_j0mMsKusCQ5fcite0EbMNlN26v3D1gLnMx2TVnTOOczs

@HikaruHotta, If I want use Mel_gan vocoder for non English dataset
Must I train MelGan vocoder from scratch on my dataset also? thx

@HikaruHotta thank you for the link about GAN losses it was very good for me
this is my dataset of same gender (male) and i split into two parts train/s1 eval/s1 and train/s2 eval/s2:
4/1AY0e-g6GjgqzHZ_j0mMsKusCQ5fcite0EbMNlN26v3D1gLnMx2TVnTOOczs
as you said I will continue training because the d_loss is Descending
but i think the model has learned well enough and reached to some optimum but the output is no good
how can i change the learning rate and reach to a good learning rate for my data ?so i try training with new learning rate again and see if the resault is any better

You can modify the --lr (learning rate) argument as shown here: https://github.com/GANtastic3/MaskCycleGAN-VC#training

@pavelxx1 Seeing that the melGAN vocoder was trained on https://keithito.com/LJ-Speech-Dataset/, I would expect that it doesn't model the complexities of other languages. I suggest that you take a look at Universal MelGAN which seems to work across multiple languages that it was not trained on.

@HikaruHotta, If I want use Mel_gan vocoder for non English dataset
Must I train MelGan vocoder from scratch on my dataset also? thx

@pavelxx1 Seeing that the melGAN vocoder was trained on https://keithito.com/LJ-Speech-Dataset/, I would expect that it doesn't model the complexities of other languages. I suggest that you take a look at Universal MelGAN which seems to work across multiple languages.

@HikaruHotta, If I want use Mel_gan vocoder for non English dataset
Must I train MelGan vocoder from scratch on my dataset also? thx

@pavelxx1 Seeing that the melGAN vocoder was trained on https://keithito.com/LJ-Speech-Dataset/, I would expect that it doesn't model the complexities of other languages. I suggest that you take a look at Universal MelGAN which seems to work across multiple languages.

thx
but if I want use MelGan for my lang(UA) - I must train a vocoder also?

No, the vocoder is language independent, I am using it for Hungarian language, and works quite well.

On 2021. May 3., at 0:15, Pavel @.***> wrote:
@HikaruHotta https://github.com/HikaruHotta, If I want use Mel_gan vocoder for non English dataset
Must I train MelGan vocoder from scratch on my dataset also? thx
@pavelxx1 https://github.com/pavelxx1 Seeing that the melGAN vocoder was trained on https://keithito.com/LJ-Speech-Dataset/ https://keithito.com/LJ-Speech-Dataset/, I would expect that it doesn't model the complexities of other languages. I suggest that you take a look at Universal MelGAN https://kallavinka8045.github.io/icassp2021/ which seems to work across multiple languages.
thx
but if I want use MelGan for my lang(UA) - I must train a vocoder also?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/GANtastic3/MaskCycleGAN-VC/issues/3#issuecomment-830915341, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADJCETN5MNUQNYMAW6DBP73TLXFG5ANCNFSM4247CXTA.

My performance issue on male speaker is solved with #7 , the bad performance can be attributed to the fact that the spectrogram was scaled with the female statistics.

@HikaruHotta  what i meant is pleas help me to find a good lr number i dont know i should change it to what number?current is
5e-4


Unable to update git: fatal: empty ident name (for<EMAIL_ADDRESS>not allowed

Whenever I try saving content from the panel, i get the following error message:
The form could not be saved
Exception: undefined
Unable to update git: fatal: empty ident name (for<EMAIL_ADDRESS>not allowed

my credentials are definitely set—
% git config --list
> user.name=my name
><EMAIL_ADDRESS>
I tested multiple times, following the steps in the README.md.
I have an SSH key set and pushing changes from the terminal works just fine.
config.php looks like this:
return [
  'blankogmbh' => [
    'gcapc' => [
      'commit' => true,
      'push' => true,
      'displayErrors' => true,
      'gitBin' => '/usr/bin/git'
    ],
  ],
];

I am using Laravel Valet, PHP 7.4 and MacOS Catalina
Is there anything super obvious I am doing wrong?

Hi, it seems your Kirby User does not have a name. The plugin uses your Kirby user’s name and email address to commit.

ahhhhh, that did the trick. I'm now running into this issue… -> https://github.com/blankogmbh/kirby-git-commit-and-push-content/issues/53#issuecomment-498645663 but I'm sure I'll figure it out somehow. Thanks for your reply!


allow wfs200 BB to be nil

Merging base BB configuration fails on wfs capabilties generation and results in an bb of 0,0,0,0

This is in line with the WFS200 spec regarding: Table 11 — Elements to describe feature types


symlink : apache tries to open a .htaccess that doesn't exist

i try to work on a php project that uses symlinks (it was developped on linux)
when apache tries to reach a file within the symlinks it fails.
e.g. when i try to open /var/www/website/symlink/index.html it returns a 403 :
[core:error] [pid 742] AH00554: Access to file /var/www/website/symlink/.htaccess denied by server: not a regular file
i don't know why but it seems apache tries to open a .htaccess file that does not exist, and of course fails at it.
(the symlink points out of the scope of the virtualhost root)
everything is 777.
i can successfully access /var/www/website/symlink/index.html from the command line.
i can successfully access the index.html file when i remove the symlink and copy its target directory instead.
i tried to delete symlinks and recreate them, it doesn't change anything.
i tried to create /var/www/website/symlink/.htaccess but it doesn't chage anything.

issue was related to #650 , sorry
i wonder when it will get fixed though...


Add error checks for DirAccess creation

I was noticed some crashes with invalid DirAccess objects. While I've not been able to determine the root cause yet, for safety, I've put error checks in places where a null DirAccess object might be returned in order to prevent hard crashes.

Thanks!


Consecutive reduceop fusion

in mean+stddev, softmax and layernorm, one reduceop builds up on its parent reduceop.
tinygrad is making progress towards fusing these into a single kernel.
Milestones

mean+stddev fusion

linearizer changes: https://github.com/tinygrad/tinygrad/pull/4259
scheduler changes: pending

softmax/layernorm fusion

fyi @0xtimmy

Beginning of scheduler tests: #4972


Random int test record on mac

I wrote a simple test program. The output revealed qsort is better than blitsort on ARM macOS when sort the random int.
And on ARM macos, the size of long long and size of long double maybe is the same.
I used gcc to compile the code, compiler said duplicated value 8byte. So I commented the line and compiled successfully.
I don't know wether the qsort implementation in c is optimized on ARM Macos or not.I'm just a noob, the code maybe have some errors. You can point out my error. My operating system is bigsur 11.0 on mac.
My code as follow:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <sys/time.h>
#include <time.h>
#include <errno.h>
#include <math.h>
#include "blitsort.h"
int cmp_int (const void * a, const void * b)
{
return ( (int)a - (int)b );
}
long long utime()
{
struct timeval now_time;
gettimeofday(&now_time, NULL);
return now_time.tv_sec * 1000000LL + now_time.tv_usec;
}
int main(){
int a[100000],b[100000],c[100000];
int seed = time(NULL);
srand(seed);
long long assignment_start_one = utime();
for(int i = 0;i < 100000;i++){
a[i] = rand();
}
for(int j = 0;j < 100000;j++){
b[j] = a[j];
c[j] = a[j];
}
long long assignment_end_one = utime();
printf("Assignment time: %lld. \n",assignment_end_one - assignment_start_one);
long long start = utime();
blitsort(b,100000,sizeof(int),cmp_int);
long long end = utime();
long long total = end - start;
long long start_qsort = utime();
qsort(c,100000,sizeof(int),cmp_int);
long long end_qsort = utime();
long long total_qsort = end_qsort - start_qsort;
printf("Blitsort time: %lld. \n",total);
printf("Qsort time: %lld. \n",total_qsort);
return 0;
}

Did you compile using gcc -O3 ? The binary search requires the -O3 optimization for optimal performance, and likely other routines do as well.
Your cmp_int function is incorrect, try:
int cmp_int(const void * a, const void * b)
{
        int fa = *(int *)a;
        int fb = *(int *)b;

        return fa - fb;
}

Thanks!
I'm just a noob.


any way to support sort

Hi,
Is there any way to create a drag sort list using this component.

I seems that onDrop event is not supported.

Agreed, react-dnd is likely a better fit for that kind of use. It could be built on top of <DraggableCore> but I don't see any reason to.


Add floating button will be small in size , it will show only  add logo

Add floating button will be small in size , it will show only  add logo .
Like :

I want to work on this issue under JWOC


Charge Current Limit based on Time of Day + General Battery Monitor Question

Hi,
I found this repo through your link in a dbus-serial-battery issue and was wondering, if I could use them together.
Basically I want to limit the Charge/Discharge Current based on the time of day. My problem is the noise my three Multiplus 2s create when turning on the fans, and since my bedroom is located next to them, preventing the fans to turn on during my sleep would be nice.
However, (atm) I only want to change the Charge and Discharge Current through Node-Red and let the other logic reside in dbus-serial-battery. Is this possible?
This also leads to my next question: Currently I have the Multiplus as my Battery Monitor selected. However dbus-serial-battery still imposes its parameters. Who is actually in charge of the limits?
Thanks in advance, Jan

Hey,
thanks for your fast answer and thanks for your suggestion. I will test the Victron Energy Nodes. :)
Yes, I've enabled ESS and DVCC. But I dont understand why dbus-serialbattery works, when i've set the battery monitor to the Multiplus.
Anyway, this issue has nothing to do with your project.

Then this is the node you are searching for:

Why should dbus-serialbattery not work? You can have more than one battery monitore. Some have even more than 5 batteries.

Thanks!
You said

if you have selected the MultiPlus as battery monitor, than the MultiPlus set the CCL and DCL.

and I assumed that with the multiplus as the monitor, dbus-serialbatterys settings regarding CCL and DCL would have no effect. How would different monitors work if they calculate/set different values for CCL and DCL?

It gets only the value from the selected monitor.

It gets only the value from the selected monitor.

I think that this is only mostly true.
When a single BMS lowers the Max Charge Current,  I belive the lowest one is used. I bet I saw this behabiour several Times...

Maybe best would be, if you ask in the victron community.

Thanks 👍
I will also post my findings there. Probably tomorrow

Ok, so the Victron Community got an answer :)
The battery monitor is not the same as the BMS selected.
With Venus OS >3.00 you can select the BMS that should be used for DVCC:

Thank you so much for the research! So everything works as expected by the Victron engineers :D
I'm still unsure how I will implement my idea. I will have a look at the ESS Control Node :)

The ESS Control Node works nicely. Thanks again :)

Nice, can you explain more detailed what exactly you did? Maybe this could also be interesting for others :-)

Sure :)
I started with updating my Venus Controller to the large image to get NodeRed.
In NodeRed I created my flow to set the maximum charge current to 50A based on the day of time. It's simple:

The first node is light scheduler:

It outputs ON/OFF as the payload, which in the end sends either to 50, or -1 to the "ESS Control" Node. The value -1 disables the current limit.

Here my exported flow: ESS-Current-by-daytime.txt


Migrate Contact library outside Planners folder

In https://github.com/dic-iit/bipedal-locomotion-framework/pull/142, we identified the Contact class to have a more generic usage extending beyond just planning.
So we abstracted the current Contact class into a ContactBase class and implemented derived classes PlannedContact and EstimatedContact classes.
In order to not break the current workflows and python bindings related merges, I created a new library Contacts and added only the above mentioned classes (See https://github.com/dic-iit/bipedal-locomotion-framework/pull/142#discussion_r522830098).
However, it would make sense to eventually move other contacts-related components from the Contact library that are currently existing in the Planners folder as well into the new Contacts folder.
Consequently, we might also have to make changes in the python bindings generation? (do we? please correct me if I am wrong.)
Specifically, the changes will be

renaming of Contact as PlannedContact
renaming ContactList, ContactPhase, ContactPhaseList to corresponding PlannedContact equivalents
replacing using namespace Plannerstousing namespace Contacts

cc @GiulioRomualdi @S-Dafarra  @diegoferigo

No problem for the renaming from my side, I don't have much code to migrate and I think I'm the only one that developed in the past weeks some code in Python.

Consequently, we might also have to make changes in the python bindings generation? (do we? please correct me if I am wrong.)

Yes there are few required changes, for instance (they might not be all of them):

bindings/python/Contacts.cpp
python/tests/test_contact.py
python/tests/test_time_verying_dcm_planner.py

Thanks @diegoferigo. I will open a PR after https://github.com/dic-iit/bipedal-locomotion-framework/pull/142/files gets merged, and add you as one of the reviewers for the python part.

https://github.com/dic-iit/bipedal-locomotion-framework/pull/142 has been merged. I will proceed with the complete migration soon.

https://github.com/dic-iit/bipedal-locomotion-framework/pull/142 has been merged. I will proceed with the complete migration soon.


Fix toggle action for Charging Location

Charging Locations takes 2x clicking on the checkbox for layer to display

https://developer.nrel.gov/api/alt-fuel-stations/v1.geojson?fuel_type=E85,ELEC&state=PA,NJ&api_key=taN3m0ZboD1V8ZGxQL8uAA75Ho3ANLeIPewzT9gq

This action/functionality has been resolved. Map Layer styles need to NOT have visibility set in them in the style properties as this is handle in the form.js


Update README.md

Thanks for the awesome paper list of reasoning! The paper of Pi et al. 2022 also investigates on the reasoning capabilities of language models by designing new pre-training objective functions.

@jeffhj Feel free to leave comments if there is any problem

Hi @SivilTaram, thanks for your pull request!
I am very busy this week. I will read the paper and deal with the pull request next week.
(Since I need to make sure the categorization is correct :)

Read the paper. Good work!

@jeffhj Thanks for the kind words! Great survey!


Adding Redux example

ok @bpostlethwaite , the example works now, however it seems like revisions are necessary.
I didn't quite figure out yet why making them optional's not working, I know that our current shouldComponentUpdate in the PlotlyEditor would have to be adjusted to make this work. But even with an adjustment there, something's not quite right and my app is stuck in an infinite loop instead of rendering. Browser just crashes.
How do you find the README for the lib?

which README lib?

also can you file a bug about the revision numbers?

@bpostlethwaite merging this one, alright?

:dancer:


Ensure deleted/expired bins are not reused

Currently it is possible to reuse deleted bins. This is a known issue. The current version does not have a database other than the filesystem, which means it is not obvious how this state can be stored.

This has been "fixed" in filebin2 (https://github.com/espebra/filebin2).


Rooms layout is sometimes off the grid

As you can see with the white room border line, the rooms' layout is not always the same. Which leads to problematic transitions (you can get stuck in a wall)
 vs

(the one line is about 8 pixels lower than the other)

The border lines are only helpers to show you the room's bounds. It's generally difficult to fit all tiles fully inside room, because it limits what tile sizes and resolutions you can use (especially with 16:9 ratio) and the borders may appear displaced depending on the layout.
I was thinking about adding a preview for neighboring scenes. It would make matching them easier. Maybe in some future version 🤔

In the current setup, you run into problems like here

where when I leave the bigger room for the bottom left one, I will more often than not be stuck in a wall, because they are not aligned. Which I can also not solve with a 16x16 tile size.
Here is how it looks
https://github.com/KoBeWi/Metroidvania-System/assets/2575407/d3b2cda7-f1dc-41bc-ad1d-9ba9ae9d24bd
Here again with an invisible ramp of 8px
https://github.com/KoBeWi/Metroidvania-System/assets/2575407/0c921fbc-0e5e-4d12-923c-0f7754b6279d

I managed to reproduce the issue, I should probably mention it in the README. I never tested uneven room sizes and didn't think it can be an issue.
You can avoid hard-coding rooms by tweaking the teleport code:
if prev_map:
	player.position.y -= floorf(player.position.y / MetSys.settings.in_game_cell_size.y) * 16 # change 16 to match your game
	player.position -= MetSys.get_current_room_instance().get_room_position_offset(prev_map)
	player.position.y += floorf(player.position.y / MetSys.settings.in_game_cell_size.y) * 16
	player.on_enter()

This works only for horizontal connections, you'd need to detect horizontal vs vertical for a complete solution.

you're a life-saver!

I looked into this issue again and the fix I provided does not work for all cases. The fractional tile offset can be any value, including irrational numbers. Thus there is no generic solution based only on teleporting the character.
However today I added a feature I had in plans, which is neighboring room previews (WIP):

In your case the misalignment can be something like this:

I did not really test how feasible is that, but the "ultimate" solution for such problems is simply... offsetting the tilemap. You can craft any kind of alignment if your TileMap is not necessarily at (0, 0). The previews make that much easier to achieve. I only wonder how it fares in complex layouts with multiple potentially misaligned rooms.


ERROR #98124 WEBPACK ?? Content is missing ??

Full disclaimer, I'm not a pro of Gatsby, this is why I want to use Builder.IO but I'm already stuck at integrating my Public API Key
I Found it, this ok, but how to integrate it in ./src/config.js is a mystery
here my line: builderAPIKey: process.env.d4797e74-d1ba-406a-80f8-b750fb37e302
but it give me an: ERROR #85923  GRAPHQL
for File: src/layouts/PageLayout.jsx:20:5 which point at the content.
Technically I have 2 page published

But when I visit https://wasp-commercial-green.builder.live/, Johnny don't think so

Here more detail on the error

It is recommended to explicitly type your GraphQL schema if you want to use optional fields. This way you don't have to add the mentioned "dummy content". Visit our docs to learn how you can define
the schema for "Query":
https://www.gatsbyjs.org/docs/schema-customization/#creating-type-definitions
File: src/templates/LandingPage.jsx:40:5
failed extract queries from components - 0.112s
success write out requires - 0.004s
ERROR #98124  WEBPACK
undefined failed
Can't resolve '../../public/page-data/sq/d/2865936176.json' in '/home/jond/website/my-builder-site/src/layouts'
If you're trying to use a package make sure that '../../public/page-data/sq/d/2865936176.json' is installed. If you're trying to use a local file make sure that the path is correct.
File: src/layouts/PageLayout.jsx

I'll retry soon, now the page are showing under: https://wasp-commercial-green.builder.live/

@JOduMonT for the config change you just need to add your public api key to src/config.js
{
  builderAPIKey: "public-api-key"
}

For your page model domain on https://wasp-commercial-green.builder.live/, you're running into an issue where if you publish an empty page you get 404 Johnny in the response, this solved now and planned for release, to get around it please publish something in your page then bust the cache of the page (https://wasp-commercial-green.builder.live/?cachbust=true) , I'll keep this issue open until we release the fix.


Article uses outdated, preview API version for Microsoft.Insights/diagnosticSettings

All sample ARM template from the article use 2017-05-01-preview, e.g.:
{
  "type": "Microsoft.Storage/storageAccounts/fileServices/providers/diagnosticsettings",
  "apiVersion": "2017-05-01-preview"
}

or
{
  "type": "Microsoft.KeyVault/vaults/providers/diagnosticSettings",
  "apiVersion": "2017-05-01-preview"
}

Per the API spec for Microsoft.Insights the latest API version is 2021-05-01 what means this version might be used. Need to check with the SME on the team though.

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

ID: 07fc8414-3bff-03f8-fdca-f040eed71389
Version Independent ID: 8196bd5d-b265-fd62-59c4-2a97b34ebf69
Content: Resource Manager template samples for diagnostic settings - Azure Monitor
Content Source: articles/azure-monitor/essentials/resource-manager-diagnostic-settings.md
Service: azure-monitor
Sub-service: essentials
GitHub Login: @bwren
Microsoft Alias: bwren

@abatishchev - Thanks again for bringing this to our attention. We have updated the Doc and it will be live once its merged.  We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


How to import fury as external dependency in my c++ project through bazel?

I found that although Fury supports C++, there are no user instructions for using it.
Maybe two points are very necessary for c++ users:

demo as java/python
how to import fury as external dependency through bazel.

I'm confused and looking for help.

For each of your two questions:

I will add code examples for the C++ part soon.
I am not familiar with bazel, maybe @chaokunyang can help. BTW I am planning to support cmake as an alternative to bazel.

Note that only row format is supported in C++, and also the current encoder for row format in C++ part is quite experimental.

Nice! CMAKE is used more common, it would be great if we can add cmake build.
For Bazel setup, I'll take a look at bazel external dependency  setup later


What's the intended audience?

The introduction (README.md) decribes the goals of this lecture material, but without stating who the intended audience is. The overall impression it leaves is "this is a good starting point for anyone doing scientific computing, except for those who need high-performance computing". However, it is probably unrealistic for any concrete down-to-earth material to address the needs of such a wide audience. Notebooks, for example, are great for some scientific applications but a bad match for others. More generally, any tool might be inappropriate simply because many people are constrained in their software choice by the habits of their field. Readers should know from the start that the material might not be right for them, and that it's not their fault (or stupidity) if things don't work out for them.

Hi @khinsen -- these are good points.
I think the intended audience is "anyone with some experience in using a programming language wanting to get more involved in computing".
Notebooks are just the support for the material, and not the only way to do computing, of course. But I suspect that they will be sufficient for 90% of users.
If you have some suggestions about how to reword, do you want to open a pull request?

Closed by #16


Errors thrown while building route should break the build

Problem code is in src/util/buildRoute.js:
'use strict';

module.exports = (options) => {
  ...
  }).then(() => {
    logger.success(`Finished building page ${path}`);
  }).catch((err) => {
    logger.error(`Error building page ${path}. Error: ${err.stack || err.toString()}`); <-- ERROR NEEDS TO BE THROWN AND NOT JUST LOGGED
  });
};

Published<EMAIL_ADDRESS>with this fix.


[feature request] Add readable substring of the error location in json_error_t

Currently when the in-memory string is parsed the source field has ''.
For error reporting and troubleshooting purposes it would have been great if this structure contained the substring of json around the error location.

See also #218


“getnep5transfers” doesn't get expected result on mainnet

I made a test for NEP5Tracker on mainnet yesterday. getnep5balances worked well as expected, but getnep5transfers didn't work until I sync to the latest height. However, it works well on my privatenet. The only difference is the version of consensus. Is there any possibility of the VM difference between 2.4.0 and 2.4.2?
The mainnet is 2.9.4 and my privatenet is 2.10.2 preview3. So in order to prove that, we also applied it on testnet since the consensus version is 2.10.1+. The result is the same as my privatenet. It worked as expected. But it still doesn't work on mainnet.
For example, on mainnet, I choose a random address "AZsvkf5fopsUvfMbsHfx9qKmwswtgdsgZv" which has a transaction on height of "1768508".
The txid is "0f2896032f3ad8614ce50e87b0db17a028bba976d25715f517c9201de82ee7d5".

Then I use getnep5transfers to get all nep5 transaction history. But the result is like this.

Nothing is there.

Do you know if this contract create the transfer notification?
https://github.com/neo-project/neo-plugins/blob/master/RpcNep5Tracker/RpcNep5Tracker.cs#L127

I don't know if it create the transfer notification. But on my privatenet, when I use 2.9.4 to make consensus, and install NEP5Tracker on external node which is in 2.10.2 preview3, I could still meet this problem. My nep-5 contract which I deployed on it must create the transfer notification. And during my mainnet test, **getnep5transfers ** has this issue on all contracts, this is only one of them. @shargon

Hi @superboyiii, how is it going?
If it is still a problem verified let's fix this asap because it will be important for both 2.x and 3.0.

It only returns the time for the transfers in the last 7 days, you have to include additional parameters to get history for different interval...

I think I answered this before on a comment made on the plugin PR also. Feel free to open it again if you verify you are using the api appropriately and still don’t see the transfer history, but it should work if you include the correct time range in the query.

Thanks, @jsolman.
Could you give more details of this parameter? I will make sure to include a description in the code for making it an easy adjustment in the future.

The parameter is easy to find in the code in the GetNep5Transfers function; first param: script hash, second param: startTime, third param endTime


Feature Request: Ability to edit yml files prior to launch from catalog

Maybe change "Preview" verbiage to "Staged"

Component
Version

Rancher
v1.6.14

Cattle
v0.183.37

User Interface
v1.6.37

Rancher CLI
v0.6.7

Rancher Compose
v0.12.5

With the release of Rancher 2.0, development on v1.6 is only limited to critical bug fixes and security patches.


Custom Invocation of Managed Workflows

In some use cases it would handy to implement custom code before the managed workflows executes, see for example:
https://github.com/java-operator-sdk/java-operator-sdk/issues/1896
Currently the managed workflow always execute before the reconcile(...) method automatically. What we could provide is a method invoke the managed workflow:

 public UpdateControl<MyCustomResource> reconcile(MyCustomResource primary, Context<MyCustomResource> context) {
    simulateErrorIfRequested(webPage);

    // custom code before workflow execution

    context.managedDependentResourceContext().invokeWorkflow();

   // custom code after workflow execution

    return UpdateControl.patchStatus(primary);
  }

Probably would be nicer to do this just in some cases, so NOT require explicit invocation by default.
So such a feature flag could look like:
@ControllerConfiguration(
    workflow = @Workflow(
          explicitInvocation = true,
          dependents = {
              @Dependent(...),
              @Dependent(...)}
    )
public class MyCustomResourceReconciler { }

see also related issue about naming: https://github.com/java-operator-sdk/java-operator-sdk/issues/1773

Would it make sense to have pre- and post-reconcile workflows that would get executed before and after calling the main reconciler method, respectively?

Not sure how the user would then update the status, based on the results of the flow after the second workflow. Was thinking on other variants also, like having a list of managed workflows.
But would not complicate it, there are still standalone  workflows for complex use cases. And usually I guess users have a set of resources they want to reconcile, with custom invocation we give possibility to check the precondition / pre-processing and set the status after, this is both general and powerful enough.

Typically this would be useful also to set some default values as discussed here:
https://discordapp.com/channels/723455000604573736/723455000604573739/1201920896080543824

Note that this is little bit more cumbersome for cleanup, if Cleaner interface is not implemented probably should be called implicitly even the flag is there (when not all dependents are garbage collected), if cleaner is implemented it should be called explicitly when the flag is on.

What about making the @Workflow annotation a top level and directly appleid to the Reconciler?
IMHO this would improve readability as personally I'm not a fun of overusing nested annotations.


Issues with bolt, flask, python, and socket mode

Apologies for the newbie question, I tried<EMAIL_ADDRESS>for our paid plan, and they referred me here.
I'm trying to use bolt with python and socket mode for some internal apps, as our company is behind a firewall. After hacking for a bit with bolt and socket mode, I was only able to get it to work if I did:
from slack_bolt.adapter.socket_mode import SocketModeHandler
app = App(token=token, signing_secret=signing_secret)
handler = SocketModeHandler(app, app_token)

Realizing I needed to make this handle web requests, I decided to learn Flask and have started with:
from slack_bolt.adapter.flask import SlackRequestHandler
app = App()
from flask import request
from flask import Flask
flask_app = Flask(__name__)
handler = SlackRequestHandler(app)

But here I appear to be stuck. I'm getting:

DEBUG:slack_sdk.web.slack_response:Received the following response - status: 200, headers: {'date': 'Mon, 01 Mar 2021 02:15:03 GMT', 'server': 'Apache', 'x-xss-protection': '0', 'pragma': ....

But I'm not getting the hello message that Socket mode sees. Same issue occurs with "out of the box" example from https://github.com/slackapi/bolt-python/blob/main/examples/flask/app.py. Running flask in development mode is showing the simple web page I described for /, so that part seems to be working ok.
Any ideas on what I'm doing wrong or how to fix it? Thank you for any help!

HI @Roblrobl , the part is not included in your code snippet but probably you're using SocketModeHandler#start() method to start your Socket Mode app. This method blocks the current thread. If you want to run a web app server in the same process, you can use SocketModeHandler#connect() instead.
Here is a simple example to run Socket Mode event handlers along with OAuth flow web endpoint hosting in a single process: https://github.com/slackapi/bolt-python/blob/v1.4.1/examples/socket_mode_oauth.py#L123-L124
Also, if you are going to use slack_bolt.adapter.flask.SlackRequestHandler only for OAuth flow handling, that's totally fine! However, if you are planning to use Events API over HTTP (Flask) and Socket Mode at the same time, unfortunately it's not possible. If you just want to serve web pages in the same app, you don't need to use the Flask adapter. This means running a Flask app without any adapters. You can run Flask app after calling SocketModeHandler#connect().

Hi @seratch , thank you for the quick response!
Correct, I left some bits out for brevity and was using SocketModeHandler.start() for my socket mode testing. The socket mode example you have looks good, but I'm confused a bit on your statement that it's not possible to use events api over http (flask) and socket mode at the same time. But then you mention I can without adapters and not sure what that means.
The Flask example at https://github.com/slackapi/bolt-python/blob/v1.4.1/examples/flask/app.py uses the SlackRequestHandler as you note - I take it that is different than SocketMode? If so, any idea on why that isn't working for me? Or is it not functional yet? What do you mean by Flask adapter? Apologies for my newness, just starting with Flask too. :) That doesn't have a handler.start() function so I'm not sure what kicks things off to get stuff started with Flask then looping and kicking slack connection open.
You're correct that I want to handle slack, socketmode, python, bolt in an easy fashion, and serve up web pages. Likely to place it under WSGI and Apache, along with some simple LDAP authentication and session handling. Just not sure what you mean by a Flask app without any adapters??

@Roblrobl Thanks for sharing more about what you're struggling to understand.
Before talking about the details of Bolt for Python, understanding the difference between Socket Mode and Events over HTTP (a.k.a. HTTP Mode) should be helpful for you.
Socket Mode allows your app to receive any Slack events (Events API data, user actions such as button click, modal data submission, and slash command invocation) through a WebSocket connection. Thus, when you run a simple Socket Mode app, your app doesn't need to serve any web endpoints.
On the other hand, Events over HTTP (or HTTP Mode) requires to set up a web app server and host a public web endpoint to receive data from Slack. This endpoint is Request URL in the Slack app configuration pages. If you switch to HTTP Mode, you will set the Request URL to https://{your public domain}/slack/events (/slack/events is the default path by Bolt). For this use case, you can use Flask web framework along with Bolt's Flask adapter (slack_bolt.adapter.flask.SlackRequestHandler).

I'm confused a bit on your statement that it's not possible to use events api over http (flask) and socket mode at the same time.

This means you have to choose either of these two ways to connect to Slack. Your app cannot receive events as both WebSocket messages and HTTP requests at the same time. Thus, slack_bolt.adapter.flask.SlackRequestHandler is useless as long as you go with Socket Mode.

But then you mention I can without adapters and not sure what that means
Just not sure what you mean by a Flask app without any adapters??

This means, if you want to run a web app which does not handle any HTTP requests related to Slack, you can run a plain Flask web app without any extra configuration or anything specific to Slack. For instance,

serve up web pages. Likely to place it under WSGI and Apache, along with some simple LDAP authentication and session handling.

for this requirements, the web app does not require slack-bolt and its underlying slack-sdk PyPI packages.
I hope this is helpful to you.

@seratch , awesome, thank you so much for the clarification! This really helps a lot. Can I check to see if I understand?

My slack bot will only run under socket mode and never through a request URL due to our corporate firewall. I'll listen to many different events and make web calls to write back to the user, have an app home tab, etc.
I'd like to host a web app associated with the bot, and ideally combine the 2 processes. Combined app would then be apache, WSGI, python, bolt, flask and some other junk ... sounds like your suggestion here is to slack_bolt.adapter.socket_mode, get that going, and then do the Flask initialization. Is this correct? It seems to me that using SocketModeHandler.start() starts the event loop. Would that not prevent Flask's event loop from running? I see some bits about async mode there too, but not sure how that fits in.
One issue I had with my first test with slack_bolt.adapter.socket_mode is that the code seems to call Event().start(). I'd like to register other events - timers, perhaps listen to another socket for command line access, etc. But as Event() was not assigned to anything by the slack library, I didn't see a way to access it. Do you know of a way?
Perhaps multiple event loops are not too bad, but I envision needing to save/restore state, and that could require file locking. Multiple event loops could then deadlock on it. ie: consider the slack/bolt stuff needing to lock for write and then the flask stuff needs to do the same, and they step on each other perhaps?
Are there any python version dependencies? Right now I have WSGI setup with Apache and Python 3.6, upgrading all of that is a bit painful. (and I'm sure I'll have to sometime, just postponing the pain)
For socket mode examples, I see socket_mode, as well as _async and _oath versions. Do you know what the difference is between these 3? Any suggestions for which I should pick based on my use case?

Thank you again for the great help and advice! Now I can drop all the tests on the flask code examples and focus on the socket_mode examples with flask.

Aha ... perhaps I need the async version, then wait on the first callback and call asyncio.get_running_loop() and extend that?
I see the open modal and favorite-animal code, any suggestions on how to invoke those from within slack?
Sorry for all the questions & thank you so much for the help!

Great to know you've figured your issue out! Let me close this issue now.


Put all @objc on same line as func

Idk why I went w/ this style originally, but it looks clowny. Should be an easy project-wide find/replace.

https://github.com/realm/SwiftLint/blob/5673b3fb5ed2e147be62970816263e69be3491ba/Source/SwiftLintFramework/Rules/AttributesRulesExamples.swift
https://github.com/realm/SwiftLint/blob/5673b3fb5ed2e147be62970816263e69be3491ba/Source/SwiftLintFramework/Rules/AttributesRule.swift
There's a SwiftLint rule that already exists for this 😄 Enable, and fix violations?

Yaaay, let's!

Weird! I try enabling swift lint but not working as expected.
opt_in_rules:
  - attributes


Higher power consumption with AirportItlwm.kext version 2.0.0

Hi,
I noticed this comparating AirportItlwm.kext version 2.0.0 (included since EFI 2.3.0) and version 1.3.0 (I think the last EFI with this version was 1.9.0).
Using Intel power gadget, I saw the value of consumption (IDLE) with AirportItlwm.kext 1.3.0 was about 0,80-0,90 W. With 2.0.0 version, this value rised to 1,50-1,60 W. (using EFI 2.3.0 in both cases).
I know, version 2.0.0 is faster and more stable than 1.3.0, but this power consumption increase are quite bigger and causes a faster battery draining.
Did you experience something similar?
Thks

I'll check this asap...

Hi Profzei. Thanks for your answer.
I didn't report this issue on itlwm Gitter page. I was waiting for your answer ;)


update the image for the Event grid

[Enter feedback here]

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

ID: 08e12671-466a-8807-63bb-fb1923554d60
Version Independent ID: 88dcdcb5-e611-134d-5c2e-66c657416445
Content: Azure messaging comparison - Event Grid, Event Hubs, Service Bus
Content Source: articles/event-grid/compare-messaging-services.md
Service: event-grid
GitHub Login: @spelluru
Microsoft Alias: spelluru

Updated the image
#please-close


Implement gopass sync

Fixes #281

I'll rebase and add the special case for the root store. Was already thinking about doing that anyway.
What do you mean with your remark about Output ...? This is an error case, isn't it?

@metalmatze Rebased and added the special case for the root store.

I'd prefer to keep the error ouput like it is for now. OK?


Fix the feature test and turn on in CI

Codecov Report

Merging #2060 (0c94208) into main (ebef6db) will decrease coverage by 0.04%.
The diff coverage is 100.00%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2060      +/-   ##
==========================================
- Coverage   64.82%   64.78%   -0.04%
==========================================
  Files         129      129
  Lines       14765    14768       +3
==========================================
- Hits         9571     9568       -3
- Misses       5194     5200       +6


Make git clone lightweight

Move assets (especially large animations) to yuca_docs
Add instructions for shallow clone

This was addressed in commits 5d6673c2d3babe0be0946258438235aa63b32e1f and 5d6673c2d3babe0be0946258438235aa63b32e1f


Port 80 not responding.

My miner has been running fine for over a month (with port 44158 forwarded)until the 5th September when the miner reported a relayed status.
I rebooted the miner, connected to port 80, and could see that it was no longer in relay. However, soon after this, the miner went offline. I attempted another reboot and could ping the miner consistently, and Bluetooth diagnostics came back OK. however, i now cannot access the IP diagnostics page and telnet reports port 80 as closed.
  telnet <IP_ADDRESS> 80                                                                                
Trying <IP_ADDRESS>...
telnet: connect to address <IP_ADDRESS>: Connection refused
telnet: Unable to connect to remote host

I have tried multiple reboots to no avail.
i logged a ticket(#273208) with<EMAIL_ADDRESS>but the responses have been unhelpful to say the least. The support guy keeps telling me to try connecting to <IP_ADDRESS> instead of .217 which is the ip address my miner has. I even proved this by showing the latest bluetooth diag which i have attached below as well. He also asked me to reboot, even though i had already said i had tried this multiple times.
please help.
Latest Bluetooth diagnostic:
Hotspot: bouncy-alabaster-jay
Hotspot Maker: Nebra Ltd
Address: 11H6D1cV1R3HWt4xE1yMfw3h3y89WzeGJgzHhhBwQ4w4pSaSLr2
Connected to Blockchain: yes
Dialable: yes
Height: 1,002,109
Last Challenge: 2021-09-08 10:02 AM
Firmware: 2<IP_ADDRESS>
App Version: 3.4.7
Wi-Fi MAC: 8C:88:1B:70:04:5C
Eth MAC: 00:BD:27:EF:7E:DF
NAT Type: None
IP Address: <IP_ADDRESS>
Disk status:
Report Generated: 2021-09-08 12:12 PM
Device Info: iPhone13,4 | ios 14.6

you seem to be connected via both wifi and ethernet which is why you are getting two IP addresses - <IP_ADDRESS> and <IP_ADDRESS>
If you check on https://dashboard.nebra.com you will see that both of these IP addresses are assigned to your device.
anyway, we will follow up via support ticket.


Air purifer Icon

I get Air Quality Icon as main device instead Air Purifier one on iOS14. Can this be fixed? Thanks! :)

This only happening when i disable buzzer and led

This only happening when i disable buzzer and led

Found the same issue.
Workaround is to enable the buzzer, and then in the Home app, choose "show as separate tiles"