[Performance]: guided generation is very slow in offline mode

Proposal to improve performance
With a single request / online mode I'm getting:

no guided 300 tok/sec
outlines 150 tok/sec (2x slower)
lm-format-enforcer 90 tok/sec (~3x slower)

with offline mode I get:

outlines is about 10-20x slower than no guided generation
lm-format-enforcer is about 4x faster than outlines (note that it is slower than outlines for online)

for online I was using this schema:
json_template = {
    "type": "object",
    "properties": {
        "criteria": {"type": "array", "items": {"type": "string"}, "minItems": 1},
        "response": { "type": "string" }
    },
    "required": ["criteria", "response"]
}

for offline I was using an even simpler schema:

{
   "type":"object",
   "properties":{
      "name":{
         "type":"string", "minLength":2, "maxLength":5
      },
      "age":{
         "type":"integer"
      }
   },
   "required":[ "name", "age"]
}

the huge performance hit in the offline mode is very strange for both backends.
2x slow down in the online mode is pretty bad too as it's already a huge impact. The offline mode can actually tolerate 2x no problem as there is no human in the loop, but 10-20x is a way impractical.
vllm=0.6.0 and outlines==0.0.46

@stas00 In my experience, guided generation is always slower than normal. I recommend you try sglang instead. Sglang achieves better throughput than vLLM, but the guided generation is still slower.

Thank you for this suggestion, @Quang-elec44 - I understand that it'll be slower, but it should be marginally slower, not 20x slower. Possibly some problem in the integration?

Thank you for this suggestion, @Quang-elec44 - I understand that it'll be slower, but it should be marginally slower, not 20x slower. Possibly some problem in the integration?

@stas00 is this a new issue on v0.6.0?

@stas00 - looks like someone has just fixed the issue:

https://github.com/vllm-project/vllm/pull/8308

@stas00 In my experience, guided generation is always slower than normal. I recommend you try sglang instead. Sglang achieves better throughput than vLLM, but the guided generation is still slower.

Hey @Quang-elec44 - this is actually not true as of vllm's current release: https://blog.vllm.ai/2024/09/05/perf-update.html
We also have more performance optimizations that will come out in v0.6.0:

https://github.com/vllm-project/vllm/pull/8157

@stas00 is this a new issue on v0.6.0?

no, same with older versions - e.g. 0.5.5

looks like someone has just fixed the issue:

Robert, I have already tried it to no avail.

Thanks @stas00 - @simon-mo can you copy in the folks who implemented the guided decoding?

@robertgshaw2-neuralmagic, do you know why outlines cache doesn't get used and instead it rebuilds the same. e.g. here is one of the repro scripts I created:
import time

from transformers import AutoTokenizer
from vllm import LLM, SamplingParams

model_name_or_path = "TinyLlama/TinyLlama-1.1B-Chat-v0.6"

schema = '{ "type": "object", "properties": { "name": { "type": "string", "minLength": 2,  "maxLength": 5 }, "age": { "type": "integer"} }, "required": ["name", "age"] }'

model = LLM(
    model=model_name_or_path,
    tokenizer=model_name_or_path,
    tokenizer_mode="auto",
    tensor_parallel_size=1,
    trust_remote_code=True,
    dtype="bfloat16",
    gpu_memory_utilization=0.8,
    guided_decoding_backend="outlines",
)

prompt = "Give an example of a person's profile that fits this JSON schema: {schema}"

sampling_params = SamplingParams(
    temperature=0.0,
    seed=42,
    max_tokens=2048,
)
kwargs = dict(
    sampling_params=sampling_params,
    guided_options_request=dict(
        guided_json=schema,
    ),
)

print("Message sent to vllm:")
print(prompt)

# warmup
response = model.generate(prompt, **kwargs)

response = ''
start_time = time.time()
for i in range(5):
    output = model.generate(prompt, **kwargs)
    response += output[0].outputs[0].text
end_time = time.time()

print(response)

tokenizer = AutoTokenizer.from_pretrained(model_name_or_path)

response_tokens = tokenizer.encode(response)
response_tokens_len = len(response_tokens)
#print(response_tokens)

duration = end_time - start_time
print(f"decode tokens: {response_tokens_len} tokens")
print(f"decode tokens: {duration:0.2f}secs")
print(f"decode tokens: {response_tokens_len/duration:0.2f} tok/sec")

w/o warmup we get about 6 tok/sec due to FSM setup overhead. if we warm up it's 166 tok/sec.
re-running it the 2nd time w/o warm up repeats the same recompilation - shouldn't that be pulled from the cache and re-used, rather than recompiling it?

@stas00 I also got the same issue, seems like an issue with the key's format that Outlines uses to store cached data. I opened a PR to fix on Outlines' repo.

so I'm waiting for my colleague to give me a repro case so that I could narrow it down for him.
Meanwhile, why is this pure outlines script so slow?
import outlines
import time
from transformers import AutoTokenizer
import json

model_name_or_path = "TinyLlama/TinyLlama-1.1B-Chat-v0.6"

schema = '{ "type": "object", "properties": { "name": { "type": "string", "minLength": 2,  "maxLength": 5 }, "age": { "type": "integer"} }, "required": ["name", "age"] }'

model = outlines.models.transformers(model_name_or_path)
generator = outlines.generate.json(model, schema)

prompt = "Give an example of a person's profile that fits this JSON schema: {schema}"

# warmup
response = generator(prompt)

# real
response = ''
start_time = time.time()
for i in range(5):
    response += json.dumps(generator(prompt))
end_time = time.time()
print(response)

tokenizer = AutoTokenizer.from_pretrained(model_name_or_path)

response_tokens = tokenizer.encode(response)
response_tokens_len = len(response_tokens)
print(response_tokens)

duration = end_time - start_time
print(f"decode had {response_tokens_len} tokens")
print(f"decode latency: {duration:0.2f}secs")
print(f"decode throughput: {response_tokens_len/duration:0.2f} tok/sec")

I wrote it first to check that standalone outlines was fast and use it as a base-line before I did the exact same generation with vllm+outlines as I shared here:
https://github.com/vllm-project/vllm/issues/8313#issuecomment-2341897511
but actually I discovered that it's very slow!
On A100:
$ python outlines-direct.py
{"name": "John", "age": 29}{"name": "John", "age": 30}{"name": "John", "age": 50}{"name": "Dan", "age": 20}{"name": "John", "age": 30}
decode tokens: 66 tokens
decode tokens: 14.60secs
decode tokens: 4.52 tok/sec

$ python outlines-vllm.py
{"name":"John","age":25}{"name":"John","age":25}{"name":"John","age":25}{"name":"John","age":25}{"name":"John","age":25}
decode tokens: 51 tokens
decode tokens: 0.27secs
decode tokens: 186.48 tok/sec

that's a 40x difference! Perhaps this is what we are hitting, but this is in reverse - vllm+outlines is 40x faster than outlines on its own.

the other odd thing I noticed is that vllm strips spaces:
# outlines:
{"name": "John", "age": 29}{"name": "John", "age": 30}

# vllm:
{"name":"John","age":25}{"name":"John","age":25}

I guess that saves a few tokens from needing to be generated w/o compromising the output structure - nice!

ok, I see that vllm isn't using outlines.generate.json generator but uses the regex engine. which has multiple issues:

why does it recompile the regex on every request?

https://github.com/vllm-project/vllm/blob/b1f3e189586dce42bb3dcda20169a9308c9a25fa/vllm/model_executor/guided_decoding/outlines_logits_processors.py#L142
this should be cached!

this leads to vllm+outline failing to complete json last characters when max_tokens isn't too long. whereas outlines.generate.json seems to always return the correct json.

The problem here is that if the generator runs out of max_tokens and the json structure isn't closed - i.e. missing say } vllm will just return a broken json.
todo: add a repro script here.

The summary of things so far:

one problem proved to be a repeated recomputation of FSM in outlines because the cache was being ignored. @Lap1n has proposed a PR to fix it here https://github.com/dottxt-ai/outlines/pull/1129

the other issue is re-compiling of the regex on each request - I proposed to add it to this other PR by @Lap1n: https://github.com/vllm-project/vllm/pull/8308#issuecomment-2342517212

the truncated JSON is being actively discussed in this Issue: https://github.com/vllm-project/vllm/issues/8350

For the bigger picture that started the current main issue in the OP I'm blocked by my colleague to give me a larger repro test case, so that I could verify it and if true reduce it to a repro case, so please bear with me until they come through.

@

@stas00 In my experience, guided generation is always slower than normal. I recommend you try sglang instead. Sglang achieves better throughput than vLLM, but the guided generation is still slower.

Hey @Quang-elec44 - this is actually not true as of vllm's current release: https://blog.vllm.ai/2024/09/05/perf-update.html
We also have more performance optimizations that will come out in v0.6.0:

[Core][Bugfix][Perf] Introduce MQLLMEngine to avoid asyncio OH #8157

Thanks for your information. I know that vllm=0.06.0 made strong progress compared to sglang=0.3.0. However, in my experiments, sglang still achieves better throughput (my GPUs are A30). I may spend time testing the benchmark on my machine to have a closer look.

Also noticed for very large JSON schemas using guided_json vLLM even in debug mode just returns 500 without any log

any progress？

We are experimenting the same issues on our side, guided generation is a great feature but it is very slow in offline mode.

Is there any update on this?
I am running the samples from the docs for the guided_grammar using the newest docker container with a "meta-llama/Llama-3.2-1B-Instruct".
Without guided grammar: 2.2 second response with 196 tokens
With guided grammar: Stopped generation after 20 minutes


Bad commentstring

Hello,
Since a few days :Stdheader uses "//" for comments instead of "/*"
From what I found in the code of this plugin it seems to use "vim.api.nvim_buf_get_option(0, "commentstring")" but I don't know why neovim suddendly changed the comment string for .h and .c files

I'll tell you the next time I go to the school
I think it is the default Neovim version on clusters' computers (at least in 42 Lyon) because other students have the the same problem
Also I solved it using a autocmd:
local function augroup(name)
	return vim.api.nvim_create_augroup("lazyvim_config_" .. name, { clear = true })
end

vim.api.nvim_create_autocmd("FileType", {
	group = augroup("commentstring"),
	pattern = { "c", "cpp" },
	callback = function()
		vim.opt.commentstring = "/* %s */"
	end,
	desc = "Change commentstring for c/c++ files",
})

It seems the default commantstring for c and cpp changed in newer versions of Neovim
I think 42-header.nvim plugin should override it to "/* %s */" for c (and maybe cpp) files because there is no reason to use the commentstring setting when the norm states that it must be block comment "/* %s */" and not lines comment "// %s //"

A good solution. I will leave the issue open so that others can use this solution until a definitive one is made.
Thank you very much.

➜  ~ which nvim
/usr/bin/nvim
➜  ~ nvim -v
NVIM v0.11.0-dev
Build type: RelWithDebInfo
LuaJIT 2.1.0-beta3

On 42 Lyon computers (Dell, but the problem is also present on Macs so I assume it's the same version)

Thanks for the information. I will soon resolve the problem definitively.


Correctly remove the dynamic replicaset from the pod_name

This should address https://github.com/SumoLogic/fluentd-kubernetes-sumologic/issues/78

Thanks for the suggestions, I've updated the PR with the requested changes.

Hey @frankreno, this implements the suggestion I made in https://github.com/SumoLogic/fluentd-kubernetes-sumologic/issues/78#issuecomment-426832106. Should be good to merge when you have a chance!

v2.1.0 is out with this change


Cannot 'try it out' using swagger after authorize

I'm try to run backend and frontend project, and i got a problem like this :

but swagger don't have authorization to access Management API or i missing configuration?
problem is free when i remove this policy :

Thanks :)

It's working after 3.2.0
https://github.com/brunohbrito/JPProject.IdentityServer4.SSO/pull/28


[TACHYON-599] Provide evictors and allocators a narrow view of the block store

Step1, Use BlockMetadataView as a proxy for BlockMetadataManager in Evictors and Allocators
See more detailed description in TACHYON-599

redesign, closing this PR


Prompt when pasting (multiple lines)

Other terminal emulators (like ConEmu or SecureCRT) have an option to confirm before pasting anything into the terminal, or specifically when pasting multiple lines.
It will open a pop-up dialog showing you what you are about to paste, and you can choose to proceed or cancel.
This is very useful to verify what is in your clipboard before pasting it, which will help you avoid accidentally pasting the wrong thing.
Is this something you could consider implementing into Windows Terminal?

Thanks for the suggestion! This is actually already being tracked by another issue on our repo - please refer to #2349 for more discussion.
/dup #2349


Broken reset password link

A user reported that he clicked on "reset password" and was taken to https://kite.com/account/resetPassword/request?email={ email }
Seems like this line of code is causing this.
The URL should be https://kite.com/reset-password?email={ email }

Fix already on master


DRAFT test auto conversion

Proposed changes
Issue Number: close #xxx
Problem summary
Describe your changes.
Checklist(Required)

[ ] Does it affect the original behavior
[ ] Has unit tests been added
[ ] Has document been added or modified
[ ] Does it need to update dependencies
[ ] Is this PR support rollback (If NO, please explain WHY)

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 33.75 seconds
stream load tsv:          419 seconds loaded<PHONE_NUMBER>9 Bytes, about 170 MB/s
stream load json:         23 seconds loaded<PHONE_NUMBER> Bytes, about 97 MB/s
stream load orc:          60 seconds loaded<PHONE_NUMBER> Bytes, about 17 MB/s
stream load parquet:          30 seconds loaded 861443392 Bytes, about 27 MB/s
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230515074444_clickbench_pr_143649.html

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 34.01 seconds
stream load tsv:          418 seconds loaded<PHONE_NUMBER>9 Bytes, about 170 MB/s
stream load json:         22 seconds loaded<PHONE_NUMBER> Bytes, about 102 MB/s
stream load orc:          59 seconds loaded<PHONE_NUMBER> Bytes, about 17 MB/s
stream load parquet:          30 seconds loaded 861443392 Bytes, about 27 MB/s
insert into select:          76.2 seconds inserted 10000000 Rows, about 131K ops/s
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230522045506_clickbench_pr_148063.html

run buildall

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 36.84 seconds
stream load tsv:          421 seconds loaded<PHONE_NUMBER>9 Bytes, about 169 MB/s
stream load json:         22 seconds loaded<PHONE_NUMBER> Bytes, about 102 MB/s
stream load orc:          59 seconds loaded<PHONE_NUMBER> Bytes, about 17 MB/s
stream load parquet:          30 seconds loaded 861443392 Bytes, about 27 MB/s
insert into select:          77.6 seconds inserted 10000000 Rows, about 128K ops/s
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230522072922_clickbench_pr_148175.html

run buildall

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 34.95 seconds
stream load tsv:          461 seconds loaded<PHONE_NUMBER>9 Bytes, about 154 MB/s
stream load json:         23 seconds loaded<PHONE_NUMBER> Bytes, about 97 MB/s
stream load orc:          59 seconds loaded<PHONE_NUMBER> Bytes, about 17 MB/s
stream load parquet:          30 seconds loaded 861443392 Bytes, about 27 MB/s
insert into select:          74.7 seconds inserted 10000000 Rows, about 133K ops/s
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230524031907_clickbench_pr_149303.html


Began work on reformatting to Catlab standards.  I apologize for the inconvenience.

Began reducing line length and changing indent to 2 for Syntax, Composition and Stratification.

I'll need to rewrite Composition and Stratification to be less esoteric...


[FEATURE]support custom dashbaord(kibana) index.

come from https://forum.opensearch.org/t/reporting-feature-doesnt-work/9632.
Is your feature request related to a problem?
yes, https://forum.opensearch.org/t/reporting-feature-doesnt-work/9632
What solution would you like?
reporting should use the configure instead of harding code to .kibana.
What alternatives have you considered?
no
Do you have any additional context?
none

@jockjiang Hi, from the thread on forum, I noticed you mentioned kibana.index. I assume you are using Elastic shield where it allows multi tenancy, and It's not open source. Reporting works with kibana/ES 7.x OSS. In OpenSearch we have our own multi-tenancy solution, feel free to check it out. https://opensearch.org/docs/latest/security-plugin/access-control/multi-tenancy/

Hi @zhongnansu , Thanks for your checking, it is nothing with multi-tenancy. here is the backgroup, we use elasticsearch for 7+ years, at that time, there is no such feature of multi-tenancy, we just run multiple kibana instance on the same host in the same cluster, so we configure kibana to use different , as we upgrade to opensearch-dashboard, we continue run multiple opensearch-dashboard , with the same settings of index name as kibana for opensearch-dashboard.

@zhongnansu , for my understanding, with multi-tenancy, all the dashboard information of all tenancies are saved in one index, right?

@zhongnansu Can you explain the logic as to why this is tagged as 'won't fix'?  Using a custom index name via opensearchDashboards.index property in the yaml seems pretty standard to me. I have been using '.opensearch-dashbaords' for a while and it was not easy to figure out that this does not work with the rporting plugin. Will it be possible to remove the hard coded kibana logic from the plugin and use the value people have configure?

My program can confirm the same issue. We have multiple instances of Opensearch. Some instances are single-tenant, other instances are multi-tenant.  In all instances reporting did not function/work until we changed references from .opendashboards to .kibana

@gss-wc @peleino @robertdkmarshall @jockjiang
You guys are right, OSD does support customized index name in configuration. Currently Dashboards-reports codebase has serval places using hardcoded .kibana index to build queries, do validation. To support customized index name, we need to read it from config then replace the hardcode value.
https://github.com/search?q=repo%3Aopensearch-project%2Fdashboards-reports .kibana&type=code


Root slashes in resource data prevents complete file handling

This is a little bit of pilot error, but it was easy to do and took a long time to debug.
I'm writing an ingestor to import rsoxs scattering data into databroker. When I compose the resource, I accidentally placed a forward slash in front of my resource_path below:
        ccd_resource = run_bundle.compose_resource(
            spec='FITS',
            root=images_root,
            resource_path="/foo/bar.fits",
            resource_kwargs={})

This prevents the file from being found, but os.path.lib here ignores the first parameter if it sees the forward slash in the second parameter:
https://github.com/bluesky/event-model/blob/cc4c340fafacfc6411a002b7d3f3b2dbae0922bd/event_model/__init__.py#L813
Should this be documented? Should there be check for a forward slash in resource_path and remove it? I dunno. But even if we don't do anything this issue might help someone in the future.

I tripped over this as well at some point this year but failed to open an issue. Thanks for flagging this. I think this should be prevented in document validation, and fixed retroactively on old data via a migration.

I think this should be prevented in document validation, and fixed retroactively on old data via a migration.
Ah, yes, that's a better strategy.

Thinking more on this, I see your to you notion that get_handler not change the intent of what was put into the resource document, especially since success or failure depends on configuration in the future. On the other hand, here's a case that we know will never work.... a root was configured and found in a root_map, and a forward slash means it will never work.
How about a strongly-worded log message? That alone could have saved me a lot of time.

In that case we just raise a clear exception? The application can catch it and log it if it wants to, be at the library layer my impulse is to fail informatively rather than log and then fail cryptically.

I would totally agree with that but I'm a little nervous. Will that cause innocent queries on the run that don't need to access the image to fail just because someone screwed up the file mapping?

Fair point. I guess the order of operations then should be:

Add log message as you suggest.
Make document-creation functions pickier to stop generated problematic Resources.
Fix historical documents.
Change that log message to an error message.

Sound right?

Actually, I might have a slightly better idea. When we attempt the create the handler
https://github.com/bluesky/event-model/blob/91d0b1c1a23d1d6fe473fa3782fd7522a1785af9/event_model/__init__.py#L808-L831
if we find ourselves about to error out and die anyway, can we at that point check whether the original resource_path was absolute, and raise a specific error message?
That's a bit complex, but I don't like the situation where you get a non-specific exception raises and the useful information is logged earlier, somewhere else, so it maybe worth going to these lengths to avoid that.

I just deleted a whole reply because now I guess I understand error_to_raise better. So, in my situation, I raised an error_to_raise, and you're proposing to add text to that? Sure, seems right.

Yeah, to be precise I might even add a custom exception type rather than adding text so it can be caught/handled specifically if need be---an AbsoluteResourcePath exception class or something.


Wi-SUN BR and router do not connect well

Hi,
I tried mbed-os-5.14.0 for both nanostack-border-router and mbed-os-example-mesh-minimal but they failed to connect each other. Could you please help me on which steps I could have missed?
Logs
2019-09-30 Failure logs
teraterm_20190930.1607 - border router.log
teraterm_20190930.1631 - router.log
How to reproduce
Border Router setup

Use K64F + S2LP RF (HW modified for SPI CLK)
get nanostack-border-router of mbed-os-5.14.0
cp configs/Wisun_Stm_s2lp_RF.json mbed_app.json
change the regional code for Korea

		"regulatory-domain": 9,

Compile

mbed compile -j4 -v --profile debug -t GCC_ARM -m K64F > build_log.txt

Router setup

Use NUCLEO-F429ZI + S2LP RF (HW modified for SPI CLK)
get mbed-os-example-mesh-minimal of mbed-os-5.14.0
cp configs/mesh_wisun_S2LP.json mbed_app.json
change the trace

            "mbed-trace.enable": true,

Compile

mbed compile -j4 -v --profile debug -t GCC_ARM -m NUCLEO_F429ZI > build_log.txt

Test

Connect BR to IPv6 tunneler. Make sure it can acquire public IPv6 address.
Start router.

Hi,
Do I need to set "regulatory-domain": 9, on Router setup as well?

Another question. Due to json configuration, there seems to be double regulatory domains.
BUILD/K64F/GCC_ARM-DEBUG/mbed_config.h:47:#define MBED_CONF_APP_REGULATORY_DOMAIN                                       9                                                                                // set by application
BUILD/K64F/GCC_ARM-DEBUG/mbed_config.h:173:#define MBED_CONF_MBED_MESH_API_WISUN_REGULATORY_DOMAIN                       3                                                                                // set by library:mbed-mesh-api

Is this expected or should there be integrity on domains?

ARM Internal Ref: IOTCELL-2212

Hi,
I looked at the logs and the mesh minimal log has not waited long enough that the network can start. Wi-SUN networks are slow and the network formation takes normally about 10-15 minutes and can take even longer if there is missed packets during startup.
Reason for this is that networks are designed to have hundreds of devices and as the individual device does not know how large the surrounding is it cannot start spamming the channels.
so could you verify that after 15 minutes the network forms or doesn't ?

Hi, @mikter
I let one BR and two routers to run for more than 30 minutes but they didn't connect. Here are the logs.
teraterm_20191004.1411 - Copy.log
teraterm_20191004.1356 - Copy.log
teraterm_20191004.1357 - Copy.log

Problem is that there is a different configuration in border router and in router.
You can see that from logs by comparing these lines
BR
[2019-10-04 13:56:39.460] [INFO][mlme]: RF config update:
[2019-10-04 13:56:39.468] [INFO][mlme]: Frequency(ch0): 917300000Hz
[2019-10-04 13:56:39.472] [INFO][mlme]: Channel spacing: 400000Hz
[2019-10-04 13:56:39.476] [INFO][mlme]: Datarate: 150000bps
[2019-10-04 13:56:39.483] [INFO][mlme]: Number of channels: 16
[2019-10-04 13:56:39.484] [INFO][mlme]: Modulation: 4
[2019-10-04 13:56:39.490] [INFO][mlme]: Modulation index: 0
From router
[2019-10-04 13:57:15.118] [INFO][mlme]: RF config update:
[2019-10-04 13:57:15.121] [INFO][mlme]: Frequency(ch0): 863100000Hz
[2019-10-04 13:57:15.127] [INFO][mlme]: Channel spacing: 200000Hz
[2019-10-04 13:57:15.131] [INFO][mlme]: Datarate: 150000bps
[2019-10-04 13:57:15.136] [INFO][mlme]: Number of channels: 35
[2019-10-04 13:57:15.141] [INFO][mlme]: Modulation: 4
[2019-10-04 13:57:15.144] [INFO][mlme]: Modulation index: 0
So check configurations off both devices and make them match. Also verify that you have same version of Wi-SUN stack on both devices

Hmm... It's strange. I used mbed-os-5.14.0 on both softwares. Anyway, I will try to match them as you commented. Thanks for the quick support!

As I read your error description you only change the regulatory domain for Border router, and it needs to be changed on both

Thanks for the feedback. I will investigate and get back to you soon.

@mikter
I verified that reverting back "regulatory-domain": 3, changed back the frequency to 863100000Hz in the border router. This means router application doesn't change the frequency from setting the "regulatory-domain": 9,. Could you or your team please enable "regulatory-domain": 9, on this mesh-minimal application?
(CC: @AnttiKauppila )

Hi, @mikter
Thanks for the guidance. I finally got the connection using "regulatory-domain": 3,. 😃
teraterm_20191007.1812-2 - Copy.log
[2019-10-07 18:34:14.749] [DBG ][WSND]: app_parse_network_event() 0
[2019-10-07 18:34:14.754] [INFO][WSND]: Wi-SUN bootstrap ready
[2019-10-07 18:34:14.757] Connected. IP = 2001:470:f857:1fe9:94bf:b293:d974:9d5b
[2019-10-07 18:34:14.764] [DBG ][example]: start_mesh_led_control_example()

I am going to do just simple demo locally and do I need to set "regulatory-domain": 9,? Could you kindly explain what happens if I don't?
Thanks!

For simple demo locally You are using frequency bands that are not intended for that usage, but on low power and shielded environment it is ok.
If you add the regulatory domain setting in both applications it should work on regulatory domain 9, but it must be on both applications

Hi, @mikter
I changed the issue title as Wi-SUN regulatory-domain not implemented for router.
Even if I change the regulatory-domain in the mesh-minimal Wi-SUN application, it does not change the frequency band. Border router application is fine, but mesh-minimal application is not fine.
Could you please guide on how we router Wi-SUN application (mesh-minimal) can change regulatory-domain? Just adding this line didn't change the setting.
		"regulatory-domain": 9,

The correct configuration added to target overrides is
            "mbed-mesh-api.wisun-regulatory-domain": 9,

@mikter
Could you please review this log? There is an error and mesh-minimal/BR does not work even I set BR and R the domain 9.
mesh_minimal_domain9_failure01.zip
[2019-10-08 16:28:29.752] [INFO][wsps]: EAPOL target: c6:d1:8d:b4:b4:b5:54:4b
[2019-10-08 16:28:29.761] [INFO][ksep]: Initial EAPOL-Key send, PMKID not set PTKID not set GTKL 0
[2019-10-08 16:28:30.316] [ERR ][mMCp]: MAC tx fail

Could you check that Border router and mesh minimal has the same versions on Nanostack and rf driver as there seem to be only one way link between the devices.

@mikter
I checked again and the versions are the same. When I run with the domain 3, it works well. When I only change the domain to 9 then it fails.
FYI. This is the version of the border router.
andcho01@bc-a1-1-3:~/code/nanostack-border-router$ git status
HEAD detached at mbed-os-5.14.0

This is the version of mesh minimal.
andcho01@bc-a1-1-3:~/code/mbed-os-example-mesh-minimal$ git status
HEAD detached at mbed-os-5.14.0

@mikter
I checkout the domain 9 and still I get the MAC TX fail.

WiSUN_5.14.0_domain9_fail02.zip

@andrewc-arm We found the issue and it was merged in to mbed-os master The fix will be released in 5.14.1

@mikter
I tried with the very latest mbed-os (https://github.com/ARMmbed/mbed-os/commit/ea3ead034992f72453836e2d6f7efdf7346cde06) and I got mesh-minimal working with regulatory-domain 9!
WiSUN_master_domain9_success01.zip
Thank you for your support!


FlushListener receives duplicate events for a single flush determined by the amount of listeners

Expected behavior
Each listener should receive a single event for a single flush.
Actual behavior
Each listener receives N flush events for a single flush where N is the amount of FlushListener instances.
Steps to reproduce or test case

Add more than one instance of FlushListener to RKeys
Flush Redis

Redis version
7.0.10
Redisson version
3.27.1
Redisson configuration
singleServerConfig:
idleConnectionTimeout: 10000
connectTimeout: 10000
timeout: 3000
retryAttempts: 3
retryInterval: 1500
password: null
subscriptionsPerConnection: 5
clientName: null
address: "redis://<IP_ADDRESS>:6379"
subscriptionConnectionMinimumIdleSize: 1
subscriptionConnectionPoolSize: 50
connectionMinimumIdleSize: 24
connectionPoolSize: 64
database: 0
dnsMonitoringInterval: 5000
threads: 16
nettyThreads: 32
codec: !<org.redisson.codec.SerializationCodec> {}
transportMode: "NIO"
protocol: RESP3
This can be easily circumvented on my end, but this doesn't seem like intended behavior.

Fixed. Thanks for report


Remove signals (1st gen) - deprecated since 1.54.0 - announced 1.68.0 - removed 1.69.0

@mjcaisse please kick the build again (or the individual jobs that failed) looks like environmental issues.

We committed to doing this for 1.69, so here goes.

If there are no issues or once any issues are resolved, I'll take care of merging this to master.

This needs a release note as well.

Already planned, including a heartfelt thank you to Doug for his contribution in the release notes.


Add crypto_sign_ed25519_{sk,pk}_to_curve25519

This also includes a fix by @prook in #14 which crashes the Erlang VM in some error case.

Thanks for the addition, could you review the comment? Will merge the PR after.

@ArteMisc sure! The backslash was purely accidental. Fixed!


[core] Screen size origin issues, framebuffer offseted on Y axis from window

If you create a window with a height that is larger than the available size on them monitor then the origin of the OpenGL context is offset by this difference.
A simple way to duplicate this is the following code (run on a 1080p display)
#include "raylib.h"

void main()
{
	InitWindow(2000, 1065, "test");
	SetTargetFPS(144);

	while (!WindowShouldClose())
	{
		Vector2 mousePos = GetMousePosition();

		BeginDrawing();
		ClearBackground(DARKGRAY);

		DrawRectangle(200, 0, 100, 5, RED);
		DrawRectangle(200, 5, 100, 5, BLUE);
		DrawFPS(0, 0);

		EndDrawing();
	}
	CloseWindow();
}

You can see  that the FPS counter is cut in half and the RED bar is not visible.
I'm not sure what is going on, but should raylib be even creating a window that is larger that the monitor?
This has been duplicated in windows Visual Studio 2022 with C.
I do not think this is a major issue, mostly I just wanted to get the steps for reproduction stored in an issue.

Seems to work fine for me, what platform are you in?

This has happened on multiple Windows installs. I do believe it will be OS specific, possibly GLFW related.

Also of note, I don't think it's driver related, as one report is on an intel chipset and I can duplicate it on an nvidia card.

@JeffM2501 Wow! What an issue! Really weird... I tried with 1065 and it worked ok for me but I could reproduce it using 1080.
It seems related to OS and the way window is created... it seems the framebuffer is offseted to fit in the window to fit in the display... quite weird behaviour...

Yes it's very strange. I think the 1065 is due to the taskbar on windows (windows 11).
It may be a GLFW bug too and there is nothing we can do about it, I just don't know enough about how raylib creates the context to dig deeper.
Note that this is not blocking anything or causing any real problems. The one bit of code that had this issue (RPG example ) now has code to prevent creating a window that is too big.

I just don't know enough about how raylib creates the context to dig deeper.

Actually most of that work is not related to raylib but GLFW and the driver. raylib just calls glfwCreateWindow() with the framebuffer size to request it and afaik, no glfwWindowHint() has an influence on the window, only on the OpenGL capabilities.

Just reviewed it again, actually some glfwWindowHint() have an influence on the window (borderless, top-most, mouse pass-through...) but I can't see anything related to the issue.

@JeffM2501 I debugged this issue and it took me to the Win32 system call AdjustWindowRectEx(), from User32.lib Windows system library. The returned rectangle computes negative top-left corner values for provided inputs.
Call stack:
InitWindow(int width, int height, const char * title)
    InitGraphicsDevice(int width, int height)
         glfwCreateWindow(int width, int height, const char * title, GLFWmonitor * monitor, GLFWwindow * share)
              _glfwCreateWindowWin32(_GLFWwindow * window, const _GLFWwndconfig * wndconfig, const _GLFWctxconfig * ctxconfig, const _GLFWfbconfig * fbconfig)
                   createNativeWindow(_GLFWwindow * window, const _GLFWwndconfig * wndconfig, const _GLFWfbconfig * fbconfig)
                       AdjustWindowRectEx(&rect, style, FALSE, exStyle);

I'm afraid this issue is out-of-scope of raylib, probably even out-of-scope for GLFW. I'm closing it.
Feel free to reopen it if required.


Unit configuration option for borderWidths, radii and shadows

Problem statement
I'm attempting to change the unit of all figmagictokens from px to rem and get frustrated by the lack of configuration options.
Describe the solution you'd like
I'd like the possibility of changing each figmagic token category individually. Currently, Figmagic lacks the options for borderWidths, radii and shadows.
Describe alternatives you've considered
Manually converting them, post Figmagic has run, using the same base unit as set in Figmagic's configuration file (figmagic.json).
Additional context
Whether the web dev community consensus is to move towards the adoption of rem for the above-mentioned categories should be besides the point, if the unit configuration option exists for some categories, it should be there for all.
I do however still welcome discussions on the pros and cons of using rems for each and every category. At the heart of it, rems do make sense whenever the content seeks to be responsive. Perhaps it should be the future default of Figmagic (even though Figma doesn't support anything other than px yet).

I got less time than needed, but now it's just really the radii that's left needing a fix (that solution uses normalizeUnits() which requires a somewhat different approach on my end).

This is now done, and I'll be releasing it in 4.3.6 shortly.


uv self update: failed to execute installer (status: exit code: 1) on Windows

When running uv self update --verbose on my Windows 11 machine, I get the following output:
DEBUG uv 0.2.28
info: Checking for updates...
error: failed to execute installer (status: exit code: 1)

Installing and updating uv through the following command works as expected: irm https://astral.sh/uv/install.ps1 | iex
uv has only been installed via the standalone installer, not via pip.
I can't seem to reproduce the issue on any other system or virtual machine.

Thanks for the report!

What shell are you using?

I'm using the current PowerShell v7.4.4.
But switching to the built-in PowerShell v5 from Windows produces the same result.

Unfortunately I'm not sure what's going on. I'm chatting with maintainers of the upstream dependency (cargo-dist) which creates the installer for us.
Does it persist if you delete and reinstall?

Do you mind testing with the latest version? It should have a change that surfaces more information in the trace.

@tschneiderr I couldn't reproduce your issue on my Windows 11 system either. So I'm wondering if it could be an instruction set architecture issue? Windows 11 currently comes in both ARM64 and x86-64 versions. My Windows 11 is the x86-64 version.

I updated uv to v0.2.30 via the following command, which worked as before:
irm https://astral.sh/uv/0.2.30/install.ps1 | iex

Running uv self update --verbose now doesn't give any additional information:
DEBUG uv 0.2.30
info: Checking for updates...
error: failed to execute installer (status: exit code: 1)

@charliermarsh Is there any way for me to provide more detailed logs of what's going wrong?
@FishAlchemist I'm running Windows on x86-64.

Trying to update uv v0.2.36 via uv self update --verbose revealed some information which helped me fix the problem.
DEBUG uv 0.2.36
info: Checking for updates...
error: The installation failed. Output from the installer:
C:\Users\Thomas\AppData\Local\Temp\.tmpCelC4m\installer.ps1 : File
C:\Users\Thomas\AppData\Local\Temp\.tmpCelC4m\installer.ps1 cannot be loaded because running scripts is disabled on
this system. For more information, see about_Execution_Policies at https:/go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1
+ C:\Users\Thomas\AppData\Local\Temp\.tmpCelC4m\installer.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : SecurityError: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

My Execution-Policy is set to RemoteSigned. The uv standalone installer also works, so what's going on here?
Get-ExecutionPolicy -List
        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser    RemoteSigned
 LocalMachine    RemoteSigned

It turnes out that the current PowerShell Core (v7) and the integrated PowerShell Classic (v5) have separate Execution-Policy settings and for some reason the integrated uv updater runs in PowerShell Classic!
powershell.exe Get-ExecutionPolicy -List
        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine       Undefined

Changing the Execution-Policy to RemoteSigned in PowerShell Classic too fixes my issues! 😄
I think the updater should run in the same shell as the uv command is run from to prevent there kind of issues.

Thanks for the details! The updater itself is managed outside of uv — we'll raise this with the Axo team.

I had a similar problem with Powershell on windows. What worked for me was the following command to avoid spawning the shell within a shell:
Invoke-WebRequest https://astral.sh/uv/install.ps1 -UseBasicParsing | iex

@jon-ton would you be willing to contribute that to the installation docs?

Ah, sorry, I'm a reluctant Windows user.
It ended up being even easier. If using PowerShell core:
irm https://astral.sh/uv/install.ps1 | iex
Whereas the original uses the old windows PowerShell:
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
Is it safe to assume people should be using the new PowerShell core and just replace the installation instructions, or list both?

I'm not sure — these recommendations are from an external dependency which creates these installers for us. I'll check in there.

I agree it would be great to just run in the current version of powershell, core on not. Unfortunately, explicitly invoking powershell here is a workaround for the reverse problem: people would paste this command into cmd and it would fail. And microsoft quite explicitly made classic powershell and powershell core have different commands (powershell vs pwsh) to make sure you don't accidentally invoke one when you meant the other, since they have fairly different semantics (especially around utf8 vs utf16).
I'm pretty confident the cmd case is more pervasive than the pwsh one, but still, it would be good for us to find a way to manage this execution policy thing better.

I've hit this too. I have a pretty default Windows 11, with PowerShell core, but with dev mode disabled:
PowerShell 7.4.4

PS C:\Users\user> powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
Error: PowerShell requires an execution policy in [Unrestricted, RemoteSigned, ByPass]
to run uv. For example, to set the execution policy to 'RemoteSigned' please run:

    Set-ExecutionPolicy RemoteSigned -scope CurrentUser

PS C:\Users\user> irm https://astral.sh/uv/install.ps1 | iex
Downloading uv 0.3.3 (x86_64-pc-windows-msvc)
Installing to C:\Users\user\.cargo\bin
  uv.exe
  uvx.exe
everything's installed!

C:\Users\user\.cargo\bin was added to your PATH, you may
need to restart your shell for that to take effect.

The alternative ways of installing on Windows should at least be documented:
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
powershell -ExecutionPolicy Bypass -c "irm https://astral.sh/uv/install.ps1 | iex"
irm https://astral.sh/uv/install.ps1 | iex

It might be worth mentioning that under cmd one should use the powershell -c variant, and the irm ... variant for powershell.
Windows also ships with curl now, so a variation of this would work under both cmd and powershell. The .bat file would autodetect the env it's run under and proceed accordingly:
curl -LsSf https://astral.sh/uv/install.bat -o uv_install.bat && .\uv_install.bat

curl has different behaviors in windows. It is recommended to add .exe to explicitly use curl.exe.

Powershell 5.1 (Windows Powershell)

Powershell 5.1 (Windows Powershell) with .exe

PowerShell 7 (PowerShell Core)

Command Prompt (cmd.exe)

Link:
Invoke-WebRequest (Microsoft Learn)
curl shipped by Microsoft (curl website)


ARM: Adding multi-tenant authentication support

Fixes #14360
NOTE: In order for CI to pass this PR depends on tagging the new version of azcore that adds the TenantID param on TokenRequestOptions.

These changes will be added in a new PR with the new multi tenant design.


Unable to install

I am trying to npm install via github. I am getting this error:
Failed to resolve entry for package "@townsquarexyz/ui-vue". The package may have incorrect main/module/exports specified in its package.json.

same problem

Same

We didn't really release the package, but still thanks for your attention.
We just finished the code and published it. It should work now.


Make Time and Date Location (in)sensitiv

We fix with it, really stange timezone in an PostgreSQL on using Time:
0001-01-01 00:53:28+00:53:28 BC


I10n german update

corrected some German translations and maintained missing translations
Closes #17718

Thank you for contribution.

Verified


Fail to launch Node in case of Linux

Branch: issue/96.
remote:
remote: Create a pull request for 'issue/96' on GitHub by visiting:
remote:      https://github.com/zeam-vm/pelemay_backend/pull/new/issue/96
remote:


Enable function for Mobile

Is there a way to make this dapp work with metamask on mobile?

In Metamask App browser you can mint one !.. works exactly the same. Basically the metamask is like bridge to make your normal browser a web3 supporting one.

Not working with mobile. The message is «We couldn't resolve that ENS name», which seems something is wrong. Any ideas? Thanks


C

Hi @loekd, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no contribution license agreement is required at this point. Real humans will now evaluate your PR.

TTYL, AZPRBOT;

@loekd - Thanks for this contribution!
@mani-ramaswamy - Could you please review this contribution and let me know if I can merge it?

@mani-ramaswamy - second notice - please review this public repo contribution


Error: No responses defined for platform: DIALOGFLOW_CONSOLE

Hi All,
I am trying to read data from an API in Dialogflow. Below is the code but I am getting the following error and it looks like I have defined my responses in agent.add but still getting the following error. I am not a java expert but trying to learn and maybe I am doing some syntax error. I am not sure but I would appreciate your time and help. Following are errors i am getting:
Error: No responses defined for platform: DIALOGFLOW_CONSOLE
at WebhookClient.send_ (/workspace/node_modules/dialogflow-fulfillment/src/dialogflow-fulfillment.js:488:13)
    at promise.then (/workspace/node_modules/dialogflow-fulfillment/src/dialogflow-fulfillment.js:306:38)
    at process._tickCallback (internal/process/next_tick.js:68:7)

textPayload: "Error: No responses defined for platform: DIALOGFLOW_CONSOLE
    at WebhookClient.send_ (/workspace/node_modules/dialogflow-fulfillment/src/dialogflow-fulfillment.js:488:13)
    at promise.then (/workspace/node_modules/dialogflow-fulfillment/src/dialogflow-fulfillment.js:306:38)
    at process._tickCallback (internal/process/next_tick.js:68:7)"
insertId: "000000-1fd08a04-56f8-4c82-b000-360724f95c3a"
resource: {2}
timestamp: "2020-10-21T19:07:49.495Z"
severity: "ERROR"
labels: {1}
logName: "projects/testbigquery-edjv/logs/cloudfunctions.googleapis.com%2Fcloud-functions"
trace: "projects/testbigquery-edjv/traces/e8c0d32bfe9e582267667f01e30c1141"
receiveTimestamp: "2020-10-21T19:07:49.683046180Z"

Function execution took 1294 ms, finished with status: 'crash'
textPayload: "Function execution took 1294 ms, finished with status: 'crash'"
insertId: "000000-0840e9bd-0a4b-4ee3-bf4d-9a1e451a2c0f"
resource: {2}
timestamp: "2020-10-21T19:07:49.497111804Z"
severity: "DEBUG"
labels: {1}
logName: "projects/testbigquery-edjv/logs/cloudfunctions.googleapis.com%2Fcloud-functions"
trace: "projects/testbigquery-edjv/traces/e8c0d32bfe9e582267667f01e30c1141"
receiveTimestamp: "2020-10-21T19:07:49.683046180Z"

My code is below:
// See https://github.com/dialogflow/dialogflow-fulfillment-nodejs
// for Dialogflow fulfillment library docs, samples, and to report issues
'use strict';
const functions = require('firebase-functions');
const {WebhookClient} = require('dialogflow-fulfillment');
const {Card, Suggestion} = require('dialogflow-fulfillment');
const axios = require('axios');
process.env.DEBUG = 'dialogflow:debug'; // enables lib debugging statements
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
const agent = new WebhookClient({ request, response });
console.log('Dialogflow Request headers: ' + JSON.stringify(request.headers));
console.log('Dialogflow Request body: ' + JSON.stringify(request.body));
function getSpreadsheetData(){
return axios.get('https://sheetdb.io/api/v1/y79vpk8pj29cv');
}
function welcome(agent) {
const city =agent.parameters.city;
return getSpreadsheetData().then(res => {
res.data.map(person => {
if(person.City === city)
agent.add(Here are the details for ${"city"}.CollectionC: ${person.CollectionC}, Address: ${person.Address}, Phone: ${person.Phone});
});
});
}
function fallback(agent) {
agent.add(I didn't understand);
agent.add(I'm sorry, can you try again?);
}
// // Uncomment and edit to make your own intent handler
// // uncomment intentMap.set('your intent name here', yourFunctionHandler);
// // below to get this function to be run when a Dialogflow intent is matched
// function yourFunctionHandler(agent) {
//   agent.add(This message is from Dialogflow's Cloud Functions for Firebase editor!);
//   agent.add(new Card({
//       title: Title: this is a card title,
//       imageUrl: 'https://developers.google.com/actions/images/badges/XPM_BADGING_GoogleAssistant_VER.png',
//       text: This is the body text of a card.   // Use Actions on Google library
//   agent.add(conv); // Add Actions on Google library responses to your agent's response
// }
// // See https://github.com/dialogflow/fulfillment-actions-library-nodejs
// // for a complete Dialogflow fulfillment library Actions on Google client library v2 integration sample
// Run the proper function handler based on the matched Dialogflow intent name
let intentMap = new Map();
intentMap.set('Default Welcome Intent', welcome);
intentMap.set('Default Fallback Intent', fallback);
// intentMap.set('your intent name here', yourFunctionHandler);
// intentMap.set('your intent name here', googleAssistantHandler);
agent.handleRequest(intentMap);
});

In my case I had to return an agent.
if(person.City === city)
return agent.add(Here are the details for ${"city"}.CollectionC: ${person.CollectionC}, Address: ${person.Address}, Phone: ${person.Phone});
Also make sure your Google Development account is activated with billing information. In trial mode remote call's are not allowed.
You can check the result in the Diagnostic info.
"webhookStatus": {
"message": "Webhook execution successful"
}
If an error is shown chances are your account is not acitvated. This took me a couple of days myself, billing information was defined but account was still in trial model, once activated the error No responses defined for platform: DIALOGFLOW_CONSOLE was gone!

I was struggling with this error for hours, only to find out I needed to change these 2 little things:

in package.json, change the version of "dialogflow-fulfillment" to "0.6.1" (instead of 0.5.0)
make sure your intent has at least 1 default response in the bottom section of the intent configuration screen (Dialogflow ES)

I was struggling with this error for hours, only to find out I needed to change these 2 little things:

in package.json, change the version of "dialogflow-fulfillment" to "0.6.1" (instead of 0.5.0)
make sure your intent has at least 1 default response in the bottom section of the intent configuration screen (Dialogflow ES)

Thanks A LOT!

Hi guys! I'm new to nodejs and dialogflow and am getting this exact same error when trying to integrate my GPT-J from banana with Dialogflow, below is my codes and I would really appreciate any help  🙏🙏
const express = require("express");
require("actions-on-google")
require('dotenv').config();
const axios = require('axios');
const { WebhookClient } = require("dialogflow-fulfillment");
const app = express();
const fetch = require('node-fetch');
const banana = require('@banana-dev/banana-dev');

app.get('/', (req,res) => {
    res.send('Welcome to Dialogflow-GPTJ2 Application!!');
  })

app.post("/dialogflow", express.json(), (req, res) => {
const agent = new WebhookClient({ request: req, response: res });
let intentMap = new Map();
intentMap.set("Default Welcome Intent", welcome);
intentMap.set("Default Fallback Intent", defaultFallback);
agent.handleRequest(intentMap);

function welcome(agent) {
    agent.add('Hi, I am Debra! I am your virtual personal assistant from Orient Telecoms. How are you doing today?');
}

async function defaultFallback(agent) {
    let query = agent.query;
    console.log('querytext: ', query)
    var modelKey = "gptj"

    const modelParameters = {
        "text":query,
        "length":50,
        "temperature":0.9,
        "batchSize": 1
    }

    try {
        let run = async (modelParameters) => {
            var botResponse = await banana.run(process.env.apiKey, modelKey, modelParameters)

            console.log('botResponse: ', botResponse)
            agent.add(botResponse)
        }
    } catch (err) {
        console.log('This is error:', err);
        agent.add('Sorry. Something went wrong. Can you say that again?');
    }
}
});

const port = 3000;
app.listen(port, () => console.log(`App listening on port ${port}!`))

When I tried to use Dialogflow to update google Sheets using Axios. I met the same error, but an expert helps me fix the issue via the following code:
`'use strict';
const functions = require('firebase-functions');
const {WebhookClient} = require('dialogflow-fulfillment');
const {Card, Suggestion} = require('dialogflow-fulfillment');
const axios = require('axios');
// const qs = require('qs');
process.env.DEBUG = 'dialogflow:debug'; // enables lib debugging statements
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
const agent = new WebhookClient({ request, response });
console.log('Dialogflow Request headers: ' + JSON.stringify(request.headers));
console.log('Dialogflow Request body: ' + JSON.stringify(request.body));
function welcome(agent) {
agent.add(welcome);
}
function fallback(agent) {
agent.add(I didn't understand);
agent.add(I'm sorry, can you try again?);
}
function bookkeepingHandler(agent) {
axios.post(https://sheetdb.io/api/v1/htvjf0t8az3f8?sheet=Entries, {"data": {
"EntryType":agent.parameters.entrytype,
"Date":agent.parameters.date,
"Amount":agent.parameters.amount
}
});
agent.add(Thank you! Check the google sheet for the data recorded.);
}
//data，{header: {'x-api-key': 'eRjwrg6ya88d1i@z#91cb01rz%u$6cxU5FOf#3LG#P%8$#JZwlj9aawgHhabpYGT'}}
// Run the proper function handler based on the matched Dialogflow intent name
let intentMap = new Map();
intentMap.set('Default Welcome Intent', welcome);
intentMap.set('Default Fallback Intent', fallback);
intentMap.set('bookkeepEntry', bookkeepingHandler);
//intentMap.set('bookNow', bookkeepingHandler);
// intentMap.set('your intent name here', googleAssistantHandler);
agent.handleRequest(intentMap);
});`

Pay attention to the code here (`` symbol is very important):
axios.post(https://sheetdb.io/api/v1/htvjf0t8az3f8?sheet=Entries, {"data": {
"EntryType":agent.parameters.entrytype,
"Date":agent.parameters.date,
"Amount":agent.parameters.amount
}
});


Adapt the PR labeler to the new format

Description
This PR adapts the labeler bot configuration to the new format of the labels (i.e. with the /)

/rebase

/merge


added tutorial for problem 1133

Also check it please @rebornplusplus

Um, you haven't changed anything in 1425. Please see the review I left.

Oh I see you have added another PR for 1425. In that case, erase the 1425/ directory from this branch and push.
Also, mention the problem no and name in the PR name. :)

Updated :) @rebornplusplus

Merged. Thank you. :green_apple:


PTX-4481 fix fio app for ocp

Signed-off-by: Thiago Gonzaga<EMAIL_ADDRESS>
What this PR does / why we need it:
this PR is required for running fio apps on OCP
Which issue(s) this PR fixes (optional)
Closes #
Special notes for your reviewer:

tested here http://jenkins.pwx.dev.purestorage.com/job/Torpedo/view/Torpedo NextPX Cloud/job/tp-fio-ocp-sharedv4/14/


Bug using SSL + $axios modules + asyncData

Version
v1.4.0
Reproduction link
https://github.com/danielsalles/nuxt-bug-asyncData-Axios
Steps to reproduce
npm install
npm run dev
Open browser:
Acess localhost:3000/usingssr
ctrl+f5

Acess localhost:3000/usingnossr
ctrl+f5

What is expected ?
The answer is correct === /usingnossr
What is actually happening?
Wrong response === /usingssr
Additional comments?
This bug is referenced to this question (https://cmty.app/nuxt/nuxt.js/issues/c7224).
I'm basically trying to consume an API and I'm not getting it. If it is HTTP (without SSL) it works normally, but I need SSL enabled.

This bug report is available on Nuxt community (#c7225)

The server responds with the header 'content-encoding': 'br'. Your code works if you clear the 'accept-encoding' header before the query:

$axios.setHeader('accept-encoding', false);

@zyxd It worked. But is there any special reason to have to do this in SSR mode?
Thanks!

By default, the 'proxyHeader' mode is enabled. In this mode, @nuxt/axios copies all properties of the 'context.request.headers' to axios request headers. Including 'accept-encoding' if your browser send it.
The Chrome browser sends 'accept-encoding: gzip deflate br', because it can decode all of them. But in JS code you must decode it manually or use 'identity' (raw content) encoding which is default if 'accept-encoding' not specified.


Consolidate combinational Cava instances

At the moment, we have separate Cava (combinational semantics) typeclass instances for "combinational circuits" (CombinationalSemantics from CombinationalMonad.v) and "combinational components of sequential circuits" (SequentialCombSemantics from Sequential.v). This means that proofs about combinational components don't carry over once the combinational component is put into a sequential circuit unless the proof is done twice. We should either:

Make the SequentialCombSemantics version the canonical combinational semantics, since the only really interesting circuits to us have sequential components. Port all the existing proofs over to SequentialCombSemantics. The main potential pitfall here is increased complexity in the combinational proofs/definitions.
Don't require the sequential and combinational typeclasses to use the same datatype; let the sequential typeclass use a projection from the combinational datatype (e.g. list), and make the CombinationalSemantics instance the canonical combinational semantics. The main potential pitfall is that then we're dealing with differently-typed data for sequential and combinational components, which could complicate circuit descriptions.

Complicating circuit descriptions is worse than complicating proofs of combinational combinators, so I'll try 1) first, and if I run into problems I'll try 2) and see how it goes.

This is a prerequisite for #413, because we will need to make a loop and use proofs of combinational combinators to prove properties about it.

This is a prerequisite for #413, because we will need to make a loop and use proofs of combinational combinators to prove properties about it.


Let dtypes take single value that applies to all columns AND/OR cast DateTime to String instead of raising UnsupportedColumnTypeCombinationError

Sometimes I'll have a file that has some rows of disclaimers and other stuff to be skipped, followed by dates. When I try to read in the file I'll get an UnsupportedColumnTypeCombinationError: unsupported column type combination: {DateTime, String} but since I can't open the file, I don't know what the columns are to use dtypes. I can work around this by doing
column_names = [str(x) for x in range(10)]
dtypes={
               str(x):'string' for x in range(10)
           }

but it only works if the problematic column is in the first 10, not to mention it's annoying and overly verbose.
It'd be nice if we could just do dtypes='string' and then all the columns would just be a string.

This should be resolved in v0.11.0 that just got released.
Can you try again?

@PrettyWood
yup good to go, thanks


[compiling] error

Issue description:
Issue when compiling on Ubuntu 20.10
Environment:
Ubuntu
[133/135] Building CXX object CMakeFiles/handy3dscanner.dir/src/camera/pointcloud.cpp.o FAILED: CMakeFiles/handy3dscanner.dir/src/camera/pointcloud.cpp.o  /usr/bin/c++  -DPROJECT_VERSION=\"0.5.1\" -DQT_3DCORE_LIB -DQT_3DEXTRAS_LIB -DQT_3DINPUT_LIB -DQT_3DLOGIC_LIB -DQT_3DQUICKEXTRAS_LIB -DQT_3DQUICK_LIB -DQT_3DRENDER_LIB -DQT_CORE_LIB -DQT_DISABLE_DEPRECATED_BEFORE=0x060000 -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_NO_FOREACH -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_QUICK_LIB -DQT_SENSORS_LIB -I. -I../../ -Ihandy3dscanner_autogen/include -I../../lib/pcl -I../../lib/src/librealsense-2.20.0/include -I../../lib/src/librealsense-2.20.0/third-party -I../../lib/src/draco-1.3.5/src -Ilib/draco/draco -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/x86_64-linux-gnu/qt5/QtQuick -isystem /usr/include/x86_64-linux-gnu/qt5/QtQmlModels -isystem /usr/include/x86_64-linux-gnu/qt5/QtQml -isystem /usr/include/x86_64-linux-gnu/qt5/QtNetwork -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtSensors -isystem /usr/include/x86_64-linux-gnu/qt5/Qt3DCore -isystem /usr/include/x86_64-linux-gnu/qt5/Qt3DRender -isystem /usr/include/x86_64-linux-gnu/qt5/Qt3DInput -isystem /usr/include/x86_64-linux-gnu/qt5/Qt3DQuick -isystem /usr/include/x86_64-linux-gnu/qt5/Qt3DLogic -isystem /usr/include/x86_64-linux-gnu/qt5/Qt3DQuickExtras -isystem /usr/include/x86_64-linux-gnu/qt5/Qt3DExtras -std=c++11  -O3 -DNDEBUG   -fPIC -std=gnu++11 -MD -MT CMakeFiles/handy3dscanner.dir/src/camera/pointcloud.cpp.o -MF CMakeFiles/handy3dscanner.dir/src/camera/pointcloud.cpp.o.d -o CMakeFiles/handy3dscanner.dir/src/camera/pointcloud.cpp.o -c ../../src/camera/pointcloud.cpp ../../src/camera/pointcloud.cpp: In constructor 'PointCloud::PointCloud(QObject*)': ../../src/camera/pointcloud.cpp:40:62: warning: 'Qt3DRender::QBuffer::QBuffer(Qt3DRender::QBuffer::BufferType, Qt3DCore::QNode*)' is deprecated [-Wdeprecated-declarations]    40 |     vertex_buffer(new QBuffer(QBuffer::VertexBuffer, geometry)),       |                                                              ^ In file included from /usr/include/x86_64-linux-gnu/qt5/Qt3DRender/QBuffer:1,                  from ../../src/camera/pointcloud.cpp:16: /usr/include/x86_64-linux-gnu/qt5/Qt3DRender/qbuffer.h:99:28: note: declared here    99 |     QT_DEPRECATED explicit QBuffer(BufferType ty, Qt3DCore::QNode *parent = nullptr);       |                            ^~~~~~~ ../../src/camera/pointcloud.cpp:43:61: warning: 'Qt3DRender::QBuffer::QBuffer(Qt3DRender::QBuffer::BufferType, Qt3DCore::QNode*)' is deprecated [-Wdeprecated-declarations]    43 |     color_buffer(new QBuffer(QBuffer::VertexBuffer, geometry)),       |                                                             ^ In file included from /usr/include/x86_64-linux-gnu/qt5/Qt3DRender/QBuffer:1,                  from ../../src/camera/pointcloud.cpp:16: /usr/include/x86_64-linux-gnu/qt5/Qt3DRender/qbuffer.h:99:28: note: declared here    99 |     QT_DEPRECATED explicit QBuffer(BufferType ty, Qt3DCore::QNode *parent = nullptr);       |                            ^~~~~~~ ../../src/camera/pointcloud.cpp:46:60: warning: 'Qt3DRender::QBuffer::QBuffer(Qt3DRender::QBuffer::BufferType, Qt3DCore::QNode*)' is deprecated [-Wdeprecated-declarations]    46 |     index_buffer(new QBuffer(QBuffer::IndexBuffer, geometry)),       |                                                            ^ In file included from /usr/include/x86_64-linux-gnu/qt5/Qt3DRender/QBuffer:1,                  from ../../src/camera/pointcloud.cpp:16: /usr/include/x86_64-linux-gnu/qt5/Qt3DRender/qbuffer.h:99:28: note: declared here    99 |     QT_DEPRECATED explicit QBuffer(BufferType ty, Qt3DCore::QNode *parent = nullptr);       |                            ^~~~~~~ ../../src/camera/pointcloud.cpp:49:76: error: 'QLatin1Literal' was not declared in this scope; did you mean 'QStringLiteral'?    49 |     index_enabled(Settings::I()->val("UI.Edit.display_mode").toString() != QLatin1Literal("POINTS")),       |                                                                            ^~~~~~~~~~~~~~       |                                                                            QStringLiteral ../../src/camera/pointcloud.cpp:50:63: warning: 'Qt3DRender::QBuffer::QBuffer(Qt3DRender::QBuffer::BufferType, Qt3DCore::QNode*)' is deprecated [-Wdeprecated-declarations]    50 |     options_buffer(new QBuffer(QBuffer::VertexBuffer, geometry)),       |                                                               ^ In file included from /usr/include/x86_64-linux-gnu/qt5/Qt3DRender/QBuffer:1,                  from ../../src/camera/pointcloud.cpp:16: /usr/include/x86_64-linux-gnu/qt5/Qt3DRender/qbuffer.h:99:28: note: declared here    99 |     QT_DEPRECATED explicit QBuffer(BufferType ty, Qt3DCore::QNode *parent = nullptr);       |                            ^~~~~~~ ../../src/camera/pointcloud.cpp: In member function 'void PointCloud::setVertexAttribute()': ../../src/camera/pointcloud.cpp:505:89: warning: 'void Qt3DRender::QAttribute::setDataType(Qt3DRender::QAttribute::VertexBaseType)' is deprecated [-Wdeprecated-declarations]   505 |     vertex_attribute->setDataType(static_cast<QAttribute::VertexBaseType>(vertex_format));       |                                                                                ^ In file included from /usr/include/x86_64-linux-gnu/qt5/Qt3DRender/QAttribute:1,                  from ../../src/camera/pointcloud.cpp:18: /usr/include/x86_64-linux-gnu/qt5/Qt3DRender/qattribute.h:130:24: note: declared here   130 |     QT_DEPRECATED void setDataType(VertexBaseType type);       |                        ^~~~~~~~~~~ ../../src/camera/pointcloud.cpp:506:36: warning: 'void Qt3DRender::QAttribute::setDataSize(uint)' is deprecated [-Wdeprecated-declarations]   506 |     vertex_attribute->setDataSize(3);       |                                    ^ In file included from /usr/include/x86_64-linux-gnu/qt5/Qt3DRender/QAttribute:1,                  from ../../src/camera/pointcloud.cpp:18: /usr/include/x86_64-linux-gnu/qt5/Qt3DRender/qattribute.h:131:24: note: declared here   131 |     QT_DEPRECATED void setDataSize(uint size);       |                        ^~~~~~~~~~~ ../../src/camera/pointcloud.cpp: In member function 'void PointCloud::setColorAttribute()': ../../src/camera/pointcloud.cpp:522:87: warning: 'void Qt3DRender::QAttribute::setDataType(Qt3DRender::QAttribute::VertexBaseType)' is deprecated [-Wdeprecated-declarations]   522 |     color_attribute->setDataType(static_cast<QAttribute::VertexBaseType>(color_format));       |                                                                                ^ In file included from /usr/include/x86_64-linux-gnu/qt5/Qt3DRender/QAttribute:1,                  from ../../src/camera/pointcloud.cpp:18: /usr/include/x86_64-linux-gnu/qt5/Qt3DRender/qattribute.h:130:24: note: declared here   130 |     QT_DEPRECATED void setDataType(VertexBaseType type);       |                        ^~~~~~~~~~~ ../../src/camera/pointcloud.cpp:523:35: warning: 'void Qt3DRender::QAttribute::setDataSize(uint)' is deprecated [-Wdeprecated-declarations]   523 |     color_attribute->setDataSize(4);       |                                   ^ In file included from /usr/include/x86_64-linux-gnu/qt5/Qt3DRender/QAttribute:1,                  from ../../src/camera/pointcloud.cpp:18: /usr/include/x86_64-linux-gnu/qt5/Qt3DRender/qattribute.h:131:24: note: declared here   131 |     QT_DEPRECATED void setDataSize(uint size);       |                        ^~~~~~~~~~~ ../../src/camera/pointcloud.cpp: In member function 'void PointCloud::setIndexAttribute()': ../../src/camera/pointcloud.cpp:539:57: warning: 'void Qt3DRender::QAttribute::setDataType(Qt3DRender::QAttribute::VertexBaseType)' is deprecated [-Wdeprecated-declarations]   539 |     index_attribute->setDataType(QAttribute::UnsignedInt);       |                                                         ^ In file included from /usr/include/x86_64-linux-gnu/qt5/Qt3DRender/QAttribute:1,                  from ../../src/camera/pointcloud.cpp:18: /usr/include/x86_64-linux-gnu/qt5/Qt3DRender/qattribute.h:130:24: note: declared here   130 |     QT_DEPRECATED void setDataType(VertexBaseType type);       |                        ^~~~~~~~~~~ ../../src/camera/pointcloud.cpp:540:35: warning: 'void Qt3DRender::QAttribute::setDataSize(uint)' is deprecated [-Wdeprecated-declarations]   540 |     index_attribute->setDataSize(1);       |                                   ^ In file included from /usr/include/x86_64-linux-gnu/qt5/Qt3DRender/QAttribute:1,                  from ../../src/camera/pointcloud.cpp:18: /usr/include/x86_64-linux-gnu/qt5/Qt3DRender/qattribute.h:131:24: note: declared here   131 |     QT_DEPRECATED void setDataSize(uint size);       |                        ^~~~~~~~~~~ ../../src/camera/pointcloud.cpp: In member function 'void PointCloud::setOptionsAttribute()': ../../src/camera/pointcloud.cpp:554:51: warning: 'void Qt3DRender::QAttribute::setDataType(Qt3DRender::QAttribute::VertexBaseType)' is deprecated [-Wdeprecated-declarations]   554 |     options_attribute->setDataType(QAttribute::Int);       |                                                   ^ In file included from /usr/include/x86_64-linux-gnu/qt5/Qt3DRender/QAttribute:1,                  from ../../src/camera/pointcloud.cpp:18: /usr/include/x86_64-linux-gnu/qt5/Qt3DRender/qattribute.h:130:24: note: declared here   130 |     QT_DEPRECATED void setDataType(VertexBaseType type);       |                        ^~~~~~~~~~~ ../../src/camera/pointcloud.cpp:555:37: warning: 'void Qt3DRender::QAttribute::setDataSize(uint)' is deprecated [-Wdeprecated-declarations]   555 |     options_attribute->setDataSize(1);       |                                     ^ In file included from /usr/include/x86_64-linux-gnu/qt5/Qt3DRender/QAttribute:1,                  from ../../src/camera/pointcloud.cpp:18: /usr/include/x86_64-linux-gnu/qt5/Qt3DRender/qattribute.h:131:24: note: declared here   131 |     QT_DEPRECATED void setDataSize(uint size);       |                        ^~~~~~~~~~~ [134/135] Building CXX object CMakeFiles/handy3dscanner.dir/src/gltf2/sceneentityparser.cpp.o ninja: build stopped: subcommand failed.
If you can help me.

Hi @pagetronic , could you please describe the environment you using for compilation:

version you trying to compile - master or some another one?
Qt version - I see you using some modern Qt version, and H3DS is not support them
some other useful information...

Most probably you are not following the Build procedure, so I think it's a good place to start.

So I suppose the build process was not followed (never unsupported version of Qt was used) and now it's working as expected. If not - please reopen the ticket.

So I suppose the build process was not followed (never unsupported version of Qt was used) and now it's working as expected. If not - please reopen the ticket.


Few questions about difference from original implementation

Hi
Thank you very much for sharing
I've read through your code (and was very impressed!) and collected several questions about difference from the original implementation.
I'm wondering whether I'm right and the differences exist, and why you have chosen to implement it this way

The learning rate that you use is very different. You use ~0.018 (after warmup), while the original work uses 0.0001 (times 5, because they multiply by 5 where the mask is true, while you divide by 5 where it is false). That is a very significant factor of 36... am I missing something? Maybe something is different between torch in lua and pytorch?

The original work first trains only on edges, and then trains both on edges and on corners. Why have you chosen to avoid this?

You haven't implemented the gamma augmentation (But I'm quite sure that it is not very significant)

You use weight decay. Why?

You use learning rate decay. Why?

The original work clamped the gradients at 10. You have clipped the gradients' norm (Not the individual gradients) at 3. Any reason you have chosen to change this value?

The questions obviously don't criticize your work, just trying to understand the differences and get the best of both worlds...
Thanks

Hello,
Thank you very much for your appreciation.

It follows original paper sec 3.3 which says the learning rate is set to "e^-4". I interpret "e" as Euler's number. (so it that actually "10"?) Two reasons why it still work are (1) Adam (original) vs SGD (this) and default lr for Adam in Pytorch is lower than others. (2) The learning rate schedule (warmup + poly decay) help convergence.
I prefer train a network in one shot. My first trial to attack this is learning rate schedule + SGD with momentum and found it work.
I just add this in commit 0f7b879
I expect this components could get better result according to my experience. At least, my first trial with them work
same as 4)
I didn't note that. Their paper doesn't mention this so I add this component intuitively.

Hope my answer help and have a nice day :)

About 1 - Yes, they use 0.0001. From their implementation in file (model_pano_joint.lua):
cmd:option('-lr' , 1e-4, 'learning rate')

Still seems very different from the number you use. My guess is that there is some difference between torch in lua and pytorch, but I have no idea. Or maybe it's related to the difference between Adam and SGD.


Fiters are not applied in rest query

Rent-o-matic version: 0.1.0
Python version: 3.6
Operating System: Linux (Ubuntu)

Description
I've tried to filter results through query string in HTTP request and it occurred that results are not filtered. It is due to mismatch types in function _check in MemRepo because values in domain objects are numbers but filter values are strings.
What I Did
$ http get "http://localhost:5000/storagerooms?filter_size__gt=200"

HTTP/1.0 200 OK
Content-Length: 378
Content-Type: application/json
Date: Thu, 05 Apr 2018 09:27:08 GMT
Server: Werkzeug/0.14.1 Python/3.6.3

[
    {
        "code": "f853578c-fc0f-4e65-81b8-566c5dffa35a",
        "latitude": 51.75436293,
        "longitude": -0.09998975,
        "price": 39,
        "size": 215
    },
    {
        "code": "fe2c3195-aeff-487a-a08f-e0bdc0ec6e9a",
        "latitude": 51.74640997,
        "longitude": 0.18228006,
        "price": 66,
        "size": 405
    },
    {
        "code": "913694c6-435a-4366-ba0d-da5334a611b2",
        "latitude": 51.45994069,
        "longitude": 0.27891577,
        "price": 60,
        "size": 56
    }
]

I thought I'd have an attempt at solving this. Given the lack of enthusiasm to rebase, here is probably a good place for a possible solution to live for the time being.
First, let's change tests/rest/test_get_storagerooms_list.py:
...
storageroom2_dict = {
    'code': 'fe2c3195-aeff-487a-a08f-e0bdc0ec6e9a',
    'size': 405,
    'price': 66,
    'longitude': 0.18228006,
    'latitude': 51.74640997,
}

storageroom3_dict = {
    'code': '913694c6-435a-4366-ba0d-da5334a611b2',
    'size': 56,
    'price': 60,
    'longitude': 0.27891577,
    'latitude': 51.45994069,
}

storageroom4_dict = {
    'code': 'eed76e77-55c1-41ce-985d-ca49bf6c0585',
    'size': 93,
    'price': 48,
    'longitude': 0.33894476,
    'latitude': 51.39916678,
}

storagerooms1_domain_model = StorageRoom.from_dict(storageroom1_dict)
storagerooms4_domain_model = StorageRoom.from_dict(storageroom4_dict)

storagerooms_dict_list = [storageroom1_dict, storageroom2_dict, storageroom3_dict, storageroom4_dict]
storagerooms = [StorageRoom.from_dict(sr) for sr in storagerooms_dict_list]
...
@mock.patch('rentomatic.use_cases.storageroom_use_cases.StorageRoomListUseCase')
def test_get_with_valid_filter(mock_use_case, client):
    mock_use_case().execute.return_value = res.ResponseSuccess([storagerooms1_domain_model, storagerooms4_domain_model])

    http_response = client.get('/storagerooms?filter_price__lt=60')

    assert json.loads(http_response.data.decode('UTF-8')) == [storageroom1_dict, storageroom4_dict]
    assert http_response.status_code == 200
    assert http_response.mimetype == 'application/json'

To fix, edit rentomatic/rest/storageroom.py:
for arg, values in request.args.items():
    if arg.startswith('filter_'):
        parsed_values = values
        if arg.replace('filter_', '').split('__')[0] in ['price', 'size']:
            parsed_values = int(values)

        qrystr_params['filters'][arg.replace('filter_', '')] = parsed_values

This won't work for any filters with more than one parameter, e.g. /storagerooms?filter_price__lt=60+70, but since the examples given all have single values I don't see it as a problem.

Thanks both for the contribution! I'm catching up with some of the things that I left undone, and this is the next one. @AshleyByeUK I will consider your solution, even though it's probably time to review the whole project and article (also because as you mention in issue #3 I never completed what I wanted to. Thanks for the patience!

Hi! So I completely misunderstood the issue, and the solution was much simpler than I thought. Thanks @AshleyByeUK for the solution but in the end I fixed it where it should have been fixed, that is the MemRepo class. I'm also updating the post to explain the reason the bug wasn't spotted. Thanks!

I've just tried the update and one test fails - listing from the repo with the code filter.  The test pass because the case showed by @mikus is not tested at repository level (_check() is not tested). At this point I think we need to implement something a tad less trivial and cover all possible cases. I wanted to keep the repository simple to ease the understanding but evidently it is not possible.

Ok, it looks like this time I have a proper solution. I still have to include it in the article, but the code has been updated. Since the repository is aware of the keys (it stores the objects) it can selectively manage their comparison. So the code now is
        if key in ['size', 'price']:
            return getattr(element[key], operator)(int(value))
        elif key in ['latitude', 'longitude']:
            return getattr(element[key], operator)(float(value))

        return getattr(element[key], operator)(value)

This makes all the test pass and fixes the issue spotted by @mikus.
Thanks both for the help!


AttributeError: module 'tkinter' has no attribute 'messagebox'

AttributeError: module 'tkinter' has no attribute 'messagebox'

Hey, I have the same issue.
My Error Message is:
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python3.9/tkinter/init.py", line 1892, in call
return self.func(*args)
File "/home/pi/Tkinter-Designer/gui/gui.py", line 63, in btn_clicked
response = tk.messagebox.askyesno(
AttributeError: module 'tkinter' has no attribute 'messagebox'

me too
File "c:/Users/Daisy/Documents/Tkinter-Designer-1.0.5/Tkinter-Designer-1.0.5/gui/gui.py", line 63, in btn_clicked
response = tk.messagebox.askyesno(
AttributeError: module 'tkinter' has no attribute 'messagebox'

I think I found a way
Delete the assignment of line 63 and change it to any text


Add vertexDirty boolean, with bacwards compatibility flag.

This should fix #4037, should not introduce any breaking changes and can be used as an optimization for static meshes.

What if we call it "autoVertexUpdate" and make it true by default? Pixi doesnt have "manualXXX" fields

That's what I had initially, but it was strange setting something to false to enable it, I can change it though.

I'm also fine with autoVertexUpdate = true, it's more that the user is opting out of default behavior than enabling something else.

I tested it locally on our strip example, it works.


[NETBEANS-1074] Review j2ee.kit

Added license header to Bundle.properties
Scanned remaining files and headers looked good
Ignored test files as to not change headers...tests fail without adding any license headers to test files so left alone

Could you please also adjust /enterprise/j2ee.kit/test/qa-functional/src/org/netbeans/test/j2ee/Bundle.properties? It has a GPLv2/CDDL header, which should not be there anymore.
I found it by running:
cd enterprise/j2ee.kit
grep -r CDDL *

That grep call can produce false positives, but it can be used to quickly assess the situation.

Sorry - I just realized, that that was the file you modified. You original change was correct, I failed to checkout the correct revision. The second commit removes the ALv2 header, which should be there.
The situation can be rectified with the CLI client:
git checkout review-j2ee.kit # switch to the branch used for the PR
git rebase -i HEAD~1 # change the first verb in the line from pick to drop, save and quit, this removes the last commit from history
git push -f          # force push, as history was changed

@matthiasblaesing thanks for your help.  I've removed the last commit, thereby reverting the last change.  Let me know if you need anything else for this PR.  Again, thanks for all of your assistance...it is appreciated!

Merged - thank you.


[CT-461] Capture exceptions at top level of threads and cli

Is there an existing feature request for this?

[X] I have searched the existing issues

Describe the Feature
discovered while coding up #4326. Somewhere in here when an exception is raised, the thread just hangs and you have to step through a debugger to read the exception message. Exceptions should bubble all the way to the top even in threaded environments.
you can recreate this by making fields_to_json throw.

I saw a similar problem when adding the event_status dictionary to ParsedNodeDefaults. It hung executing a test in test/integration/059... because the SourceDefinition didn't have that attribute. Did not see anywhere the actual error, but since I had just added that attribute I guessed, added it to SourceDefinition, and it fixed it.

Estimation:

guess is that when an exception is thrown inside a thread, it's not caught and handled correctly
rpc server would benefit from this fix as well. Possibly fix existing tickets?
This is basically one big unknown unknown
Might be a better fit for the execution team
suggesting a 2 day spike instead of estimating.

Note: this failure was experienced while running tests. On a particular type of test failure, the tests would hang and not complete. I was able to recreate this failure by removing "NodeInfoMixin" from the ParsedSourceDefinition class and executing: ".tox/py-integration/bin/python -m pytest -nauto --full-trace tests/functional/sources".  (The "--full-trace" was suggested by pytest.)  The resulting stacktrace started in /_pytest/main.py, and ended in threading.py, in the wait function, on the line "gotit = waiter.acquire(True, timeout)".
It looks like this might actually be a pytest threading/timeout issue and not an actual dbt thread hanging issue. It's possible that installing the pytest-timeout package and setting a timeout might help, but we'd have to experiment with the length of the timeout. Or maybe there's someplace in the test suite that we could be capturing exceptions that pytest would be happier with?
Since this looks like a pytest/testing issue rather than an actual dbt bug, I'm going to put this on the backburner.

Closing this issue in favor of new ticket #5602, as requested.


RSDK-5390 - [BREAKING] MoveOnGlobe definition change

Ticket
Depends on:
RDK: https://github.com/viamrobotics/rdk/pull/3303
Previous SDK change: https://github.com/viamrobotics/viam-python-sdk/pull/500
API change: https://github.com/viamrobotics/rdk/pull/3303

@njooma this PR depends on the latest api definition (v0.1.238+). How do I go about updating that?

@nicksanford The new protos are in this PR: https://github.com/viamrobotics/viam-python-sdk/pull/505
You can test using this. If you want me to merge it in, LMK and we can do that too

@njooma If possible I'd like to get the protos & this PR merged this week so the python SDKS are compatible with the next stable version of viam server.

@nicksanford You'll have to pull in the changes from the automated PR in order to get the updated protos in order for this PR to pass tests, and then we can merge it all in this week


Create the Admin panel

Need to make an Admin panel to interact with the the backend with CRUD test cases.

Admin Panel for problems api has been created


Regression in latest release? (when upgrading from 1.4 to 1.5)

Hi,
I added a PR with two examples of cases that started failing for us when trying to apply the update: #675
The smallest case looks like this:
  function handleArgumentThatIsPartOfUnion(requestId: 27 | 28) {
    return 22;
  }
  yield* Effects.call(handleArgumentThatIsPartOfUnion, 27);

This code works in 1.4 but in 1.5 the argument to the function called (27) gets interpreted as number (instead of that specific number it seems?)
Has anyone else had this problem? ideas to fix it?

I think this is related:
import { call } from "typed-redux-saga";

interface DownloadFileProgress {
  onDownloadProgress: (data: { total: number; loaded: number }) => void;
}

export const downloadAudioFile = function* (
  fileId: string,
  { onDownloadProgress }: Partial<DownloadFileProgress>
) {
  // download file
};

function* test() {
  yield* call(downloadAudioFile, "some-id", {
    // total and loaded is any
    onDownloadProgress: ({ total, loaded }) => {

    }
  });
}

in 1.5 the parameters of onDownloadProgress is inferred as any
in 1.4 it works as expected, loaded  and total is number.

Hello everyone! I still think there is some regression with string literals:
import { call } from 'typed-redux-saga';
import { SagaIterator } from 'redux-saga';

type StringLiteral = 'GET' | 'POST' | 'PUT' | 'DELETE';

type ObjectWithLiteral = {
    method: StringLiteral,
};

function simpleOne(object: ObjectWithLiteral): StringLiteral {
    return object.method;
}

function* generator(object: ObjectWithLiteral): SagaIterator<StringLiteral> {
    return object.method;
}

function* test(): SagaIterator<void> {
    // shows error
    const a = yield* call(simpleOne, {method: 'GET'});
    // shows error
    const b = yield* call(generator, {method: 'GET'});
}

// do not show error, which is correct behaviour according to latest typescript
simpleOne({method: 'GET'});

We have had to stay on 1.4 to avoid these issues :-(


round(), int() returns incorrect value

print(round(123456.0), ",", round(123456789.0), ",", round(1234567890.0))
print(int(123456.0), ",", int(123456789.0), ",", int(1234567890.0))

both cases prints 123456,123456792,1234567936

sounds like precision issue. My guess is underneath implementation uses single-precision.

Yes like @choikwa says, I guess it's a matter of using single precision for floats, and thus numbers with 10 significant digits like your second one show precision issues.
See #288 for a request to add double precision support.
I'll close the issue as I believe it's not a bug but just a consequence of #288 not being solvd yet, though feel free to tell me if you think this is not the appropriate resolution.


Update pod-identity-webhook cert secret path typo

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/lgtm

/approve


Feature/neutral dixon coles

General update of NeutralDixonColesMatchPredictor so that AIrsenal can use these new features. Confederation strength is currently not necessary in that setting.

Added doc strings for NeutralDixonColesMatchPredictorWC and NeutralDixonColesMatchPredictor models
Updated NeutralDixonColesMatchPredictor to have time and match importance weighting (key difference between the models is just that the WC model allows for modelling confederation strengths)
Updated NeutralDixonColesMatchPredictor to have sample_score and sample_outcome methods - although I don't think these will be used in AIrsenal just yet, but nice to have in the future if we did want to optimise AIrsenal sampling code
Added tests for WC model (although still not passing all tests due to some NaNs - couldn't really figure out why)

LGTM, I'll merge it. Probably some tidying up to be done before merging everything to main though, e.g. ideally it would be nice if we can have a consistent interface between all the models so we don't have to duplicate a lot in the tests files etc., if we can figure out a way that makes sense even though the neutral ones have additional inputs. Plus maybe "Neutral" isn't the best name for the updated model we'll end up using for AIrsenal.


Question: using Media.Plugin with Fabulous

Question / Discussion
I'm attempting to use Media.Plugin with Fabulous. Unfortunately, using the Xamarin.Essentials Media Picker would not be ideal as it doesn't yet support everything I need to do. Right now I'm just trying to figure out what compiles and works, I'm not at all sure this is the best way to do it, or if what I'm trying to do is actually possible. Currently I'm trying to get Media.Plugin to open up the photo gallery for picking photos on iOS, via the CrossMedia.Current.PickPhotosAsync method. Current problem is the photo gallery never appears.
In my page, I have a button that dispatches a SelectFromGallery message. This message is matched in update:
    let update msg model =
        match msg with
        | SelectFromGallery -> { model with IsBusy = true },
                               Cmd.ofMsg (processSelectFromGallery model |> Async.StartImmediateAsTask).Result, ExternalMsg.NoOp

processSelectFromGallery is called and looks like this:
    let processSelectFromGallery model =
        async {
            try
                match CrossMedia.Current.IsPickPhotoSupported with
                | false -> return SelectFromGalleryError
                | true ->
                    let mediaOptions = new PickMediaOptions (RotateImage = true)
                    let multiPickerOptions = new MultiPickerOptions (MaximumImagesCount = model.MaximumImagesCount)
                    let! currentPhotos =
                            CrossMedia.Current.PickPhotosAsync (mediaOptions, multiPickerOptions) |> Async.AwaitTask

                    return SelectFromGallerySuccess currentPhotos
            with
            | _ -> return SelectFromGalleryError
        }

I have left out Async.SwitchToThreadPool() as it seems things should be happening on the UI thread otherwise an exception is thrown out from Media.Plugin code. I gathered from this issue that using Async.RunSynchronously silently "refuses" to run the code on the UI thread, hence why I've gone with Async.StartImmediateAsTask, as I was hoping to return the collection of photos with the SelectFromGallerySuccess message. I don't actually get to returning SelectFromGallerySuccess.
CrossMedia.Current.PickPhotosAsync is called and following the code execution inside Media.Plugin I can see Media.Plugin is constructing a UIViewController that looks like it is meant to show the photo gallery picker. But this UIViewController never displays. My hunch is that this is all happening orthogonal to the update loop and so it's not registering. CrossMedia.Current.PickPhotosAsync is meant to return a System.Collections.Generic.List<MediaFile> so the UIViewController construction and display all happens inside Media.Plugin code.
So my questions would be: is my hunch correct? Or am I going about this entirely wrong? Is using MediaPlugin or the Xamarin Essentials MediaPicker (which I assume works in a similar way to James Montemagno's MedaPlugin in so far as constructing its own view controller) with Fabulous actually possible? And if not, what would be the recommended alternate way forward for dealing with picking media from the photo gallery?

@gaelian Your code is good, except you need to use Cmd.ofAsyncMsg instead of Cmd.ofMsg.
let update msg model =
    match msg with
    | SelectFromGallery ->
        let model = { model with IsBusy = true }
        let cmd = Cmd.ofAsyncMsg (processSelectFromGallery model)
        model, cmd, ExternalMsg.NoOp

Fabulous will execute your async function as soon as update returns.
When the async call returns, Fabulous will dispatch the message returned.
But when you execute the async call yourself with Async.StartImmediateAsTask, there is chance to cause a deadlock as both Fabulous and Media.Plugin require the UI thread to run.
(Also, try to never ever use .Result in any code, even more so in UI Code. It's almost a guaranteed deadlock)
You can see this specific PickPhotosAsync in action in the FabulousContacts sample: https://github.com/TimLariviere/FabulousContacts/blob/e623e9a69c3c5912c5f82e443235751256f5cd6a/FabulousContacts/EditPage.fs#L198-L200

Thanks Tim, I'll give it another go with that guidance. I was looking for examples of MediaPlugin use across the Fabulous repo but I didn't look in FabulousContacts.

(Also, try to never ever use .Result in any code, even more so in UI Code. It's almost a guaranteed deadlock)

Oh yes, trust me, I'm trying! I've read James Montemagno's blog post on that. But was just trying to get something working for now. :P


Change DENO_INSTALL to DENO_INSTALL_ROOT

According to the docs (https://deno.land/manual/tools/script_installer), the environment variable that controls where deno is installed is DENO_INSTALL_ROOT.

@jmcantrell I think this is a misunderstanding:
DENO_INSTALL_ROOT is the path where Deno scripts will be installed if you deno install them.
DENO_INSTALL is the path where Deno itself will be installed.

Ok, thanks for the clarification.


Make pear usable alongside Pyrus.

Would be awesome :+1:

It works for now, without any modifications, but I'm still working on getting both class paths into PHP's include path.
One thing that I don't want to change (because it breaks phpenv) is that both install their executables to $PREFIX/bin, though that shouldn't be much of an issue for most people.

You now can use both, just put the with_pear in definitions before the install_package call.
PEAR's include path precedes Pyrus' include path.


WS: Error getting permissions for repository

In some repositories I get following error in logs:
WS: Error getting permissions for repository grid-client-js. Error: sql: no rows in result set
And no output in UI is printed. However after build is finished, all output is there. Where should I start digging?

May be this is related: I have selenium-binaries in node dependencies. When it try's to build itself it gives tons of output:
[selenium-binaries] Downloading selenium
[selenium-binaries] http://selenium-release.storage.googleapis.com/2.44/selenium-server-standalone-2.44.0.jar
[selenium-binaries]  -> /home/ubuntu/.selenium-binaries/selenium/2.44.0
[selenium-binaries] Status: 525 of 35169724[selenium-binaries] Status: 8981 of 35169724[selenium-binaries] Status: 10189 of 35169724[selenium-binaries] Status: 11397 of 35169724[selenium-binaries] Status: 12605 of 35169724[selenium-binaries] Status: 13813 of 35169724[selenium-binaries] Status: 15021 of 35169724[selenium-binaries] Status: 16229 of 35169724[selenium-binaries] Status: 17437 of 35169724[selenium-binaries] Status: 18645 of 35169724[selenium-binaries] Status: 19853 of 35169724[selenium-binaries] Status: 21061 of 35169724[selenium-binaries] Status: 22269 of 35169724[selenium-binaries] Status: 23477 of 35169724[selenium-binaries] Status: 24685 of 35169724[selenium-binaries] Status: 25893 of 35169724[selenium-binaries] Status: 27101 of 35169724[selenium-binaries] Status: 28309 of 35169724[selenium-binaries] Status: 29517 of 35169724[selenium-binaries] Status: 30725 of 35169724[selenium-binaries] Status: 31933 of 35169724[selenium-binaries] Status: 33141 of 35169724[selenium-binaries] Status: 34349 of 35169724[selenium-binaries] Status: 35557 of 35169724[selenium-binaries] Status: 36765 of 35169724[selenium-binaries] Status: 37973 of 35169724[selenium-binaries] Status: 39181 of 35169724[selenium-binaries] Status: 40389 of 35169724[selenium-binaries] Status: 41597 of 35169724[selenium-binaries] Status: 42805 of 35169724[selenium-binaries] Status: 44013 of 35169724[selenium-binaries] Status: 45221 of 35169724[selenium-binaries] Status: 46429 of 35169724[selenium-binaries]

Seems like [0G character is not handled properly.

In perms table there is no row for my id and repository id - thats causing this error, but this repo is public and I have rights to clone it. Even after sync there is no row in perms table.

I think this is the problem:
https://github.com/drone/drone/blob/master/server/handler/ws.go#L70
We always return a permission so I think we should ignore the error. If there were no rows in the database for the perm, then perm.Read == false. If the repo is public and there is no row, then we set perm.Read == true


Correct Javascript example

Missing closing tag in javascript example. Make it obvious that we need to replace the instrumentation_key.

@peterneave : Thanks for your contribution to the Azure documentation! The author, @mrbullwinkle, has been notified to review your proposed change.

#sign-off


updated support for 1.2.0

pytorch 1.2 isn't available for windows right for some reason. At least it's missing from the conda channel: https://anaconda.org/pytorch/pytorch/files. Would be great if in setup.py, install requires could be set to torch>=1.1.

Good to know! the readme has instructions on installing Lightning with 1.1.0.
https://github.com/williamFalcon/pytorch-lightning#faq


libhttp.h: No such file or directory

where ?

did you install it correctly?

and what operating system are you using? (linux/macos/*bsd/win32/win64)

Where did you install it? (/usr/local/include, /usr/include, C:\MinGW\include etc.)

and, try out #incldue"libhttp.h" or try switching to another compiler

Have you solved the issue? @sandikodev
Can we close it?

How would you close it?

You should. I don't have the permissions for it.


Updates to ossindex exclusions

Signed-off-by: Rick Stevens<EMAIL_ADDRESS>

I had to make more extensive changes to exclusion rules for sonatype/ossindex vulnerabilities. In adding to excluding latest items being flagged, I had to update all prior exclusion rules given ossindex changed their vulnerability id model so that our prior rules would no longer work.

Can we delete the commented out exclusions? I don't know if we'll need to reference the old IDs in the future, but I hope not.

Agree - I suppose we can always look at commit history if we ever need those old ids again - pretty doubtful they will be needed going forward. Will remove them.


Add a Gitter chat badge to README.md

AGBrown/pouchdb.d.ts now has a Chat Room on Gitter
@AGBrown has just created a chat room. You can visit it here: https://gitter.im/AGBrown/pouchdb.d.ts.
This pull-request adds this badge to your README.md:

If my aim is a little off, please let me know.
Happy chatting.
PS: Click here if you would prefer not to receive automatic pull-requests from Gitter in future.

Added link to discussion section, won't add badge.