more than 4 stop sequences using model_kwargs for AzureOpenAI result in error

Checked other resources

[X] I added a very descriptive title to this issue.
[X] I searched the LangChain documentation with the integrated search.
[X] I used the GitHub search to find a similar question and didn't find it.
[X] I am sure that this is a bug in LangChain rather than my code.
[X] The bug is not resolved by updating to the latest stable version of LangChain (or the specific integration package).

Example Code
This code generates an error when invoked using chain.invoke from a prompt template. Removing any one of the stop sequences resolves the issue, but adding a stop sequence causes it. Content of stop sequences doesn't matter.
llm = AzureOpenAI(
    api_version="2024-02-01",
    deployment_name = "my-test-deployment",
    max_tokens = 1500,
    temperature= 0.8,
    top_p= 1,
    model_kwargs= {"stop": ["<|im_end|>", "Student response:", "Grading:", "Test case", "Student Response:"]}
    )

Error Message and Stack Trace (if applicable)
BadRequestError: Error code: 400 - {'error': {'message': "'$.stop' is invalid. Please check the API reference: https://platform.openai.com/docs/api-reference.", 'type': 'invalid_request_error', 'param': None, 'code': None}}
Description
I'm trying to use langChain library to communicate with AzureOpenAI LLM, and using model kwargs to send stop sequences, but it seems that entering more than 4 stop sequences causes it to generate an error message.
System Info
System Information

OS:  Windows
OS Version:  10.0.22631
Python Version:  3.12.2 (tags/v3.12.2:6abddd9, Feb  6 2024, 21:26:36) [MSC v.1937 64 bit (AMD64)]

Package Information

langchain_core: 0.1.40
langchain: 0.1.14
langchain_community: 0.0.31
langsmith: 0.1.40
langchain_openai: 0.1.1
langchain_text_splitters: 0.0.1

Packages not installed (Not Necessarily a Problem)
The following packages were not found:

langgraph
langserve

I realized that OpenAI api limits the length of stop sequence to 4....
https://platform.openai.com/docs/api-reference/completions/create#completions/create-stop


Repainting console window black/white

after terminating micro any console window running cmd.exe or msys/bash is painted with black backround and white text. The console windows are configured for grey background and white text.
See: http://abload.de/img/unbenannteesd9.png

Quick note to add this bug (ie on exit from micro the screen colours are set to black backround and white text) also occurs when running micro.exe version 1c2b815 on Windows 10 in a PowerShell console window.

This should be fixed now. Just make sure to update your version of tcell.


Fail to install on Ubuntu 15

sudo apt-get install python-pip gst-python1.0
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
E: Paket gst-python1.0 kann nicht gefunden werden.
E: Mittels regulärem Ausdruck »gst-python1.0« konnte kein Paket gefunden werden.

Then I installed manual the missing package

http://ftp.us.debian.org/debian/pool/main/g/gst-python1.0/python-gst-1.0_1.6.2-1_amd64.deb

Here the commands:

empty@rootu:~/Downloads$ git clone https://github.com/mikar/blockify
Klone nach 'blockify' ...
remote: Counting objects: 1703, done.
remote: Compressing objects: 100% (21/21), done.
remote: Total 1703 (delta 7), reused 0 (delta 0), pack-reused 1682
Empfange Objekte: 100% (1703/1703), 541.63 KiB | 0 bytes/s, Fertig.
Löse Unterschiede auf: 100% (1031/1031), Fertig.
Prüfe Konnektivität ... Fertig.
empty@rootu:~/Downloads$ cd blockify
empty@rootu:~/Downloads/blockify$ sudo pip install .
Unpacking /home/empty/Downloads/blockify
Running setup.py (path:/tmp/pip-l6jO9r-build/setup.py) egg_info for package from file:///home/empty/Downloads/blockify
Traceback (most recent call last):
File "", line 17, in
File "/tmp/pip-l6jO9r-build/setup.py", line 2, in
from blockify.util import VERSION
File "blockify/util.py", line 1, in
import configparser
ImportError: No module named configparser
Complete output from command python setup.py egg_info:
Traceback (most recent call last):

File "", line 17, in

File "/tmp/pip-l6jO9r-build/setup.py", line 2, in

from blockify.util import VERSION

File "blockify/util.py", line 1, in

import configparser

ImportError: No module named configparser

Cleaning up...
Command python setup.py egg_info failed with error code 1 in /tmp/pip-l6jO9r-build
Storing debug log for failure in /home/empty/.pip/pip.log
empty@rootu:~/Downloads/blockify$

Can anyone help me what I'm doing wrong?

Is python3 your system default?

Yes Python3 is installed.

That wasn't really the question. Please make sure setup.py is being called with python3.

Yes I missunderstood, ok here is the result after changing the system default for python:

empty@rootu:~/Downloads/blockify$ sudo pip install .
[sudo] Passwort für empty:
Unpacking /home/empty/Downloads/blockify
Running setup.py (path:/tmp/pip-RL2jBk-build/setup.py) egg_info for package from file:///home/empty/Downloads/blockify
Traceback (most recent call last):
File "", line 17, in
File "/tmp/pip-RL2jBk-build/setup.py", line 2, in
from blockify.util import VERSION
File "blockify/util.py", line 1, in
import configparser
ImportError: No module named configparser
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "", line 17, in
File "/tmp/pip-RL2jBk-build/setup.py", line 2, in
from blockify.util import VERSION
File "blockify/util.py", line 1, in
import configparser
ImportError: No module named configparser

Cleaning up...
Command python setup.py egg_info failed with error code 1 in /tmp/pip-RL2jBk-build
Storing debug log for failure in /home/empty/.pip/pip.log

Here is the result of just typing "python"

python
Python 3.4.3+ (default, Oct 14 2015, 16:03:50)
[GCC 5.2.1 20151010] on linux
Type "help", "copyright", "credits" or "license" for more information.

I installed now
apt-get install python-configparser
and now it is installed. Now I'm testing.

Okay I startet now spotify and then blockify:

blockify
No handlers could be found for logger "util"

Starting blockify-ui:

blockify-ui
Traceback (most recent call last):
File "/usr/local/bin/blockify-ui", line 9, in
load_entry_point('blockify==3.2.0', 'gui_scripts', 'blockify-ui')()
File "/home/empty/.local/lib/python2.7/site-packages/pkg_resources/init.py", line 568, in >load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/home/empty/.local/lib/python2.7/site-packages/pkg_resources/init.py", line 2720, in load_entry_point
return ep.load()
File "/home/empty/.local/lib/python2.7/site-packages/pkg_resources/init.py", line 2380, in load
return self.resolve()
File "/home/empty/.local/lib/python2.7/site-packages/pkg_resources/init.py", line 2386, in resolve
module = import(self.module_name, fromlist=['name'], level=0)
File "/usr/local/lib/python2.7/dist-packages/blockify/gui.py", line 33, in
import urllib.request
ImportError: No module named request

I think I have still problems with python :(

Thank you for your feedback.
Based on your answers I have added an example installation routine to the README.md.
Your problem is that you installed with pip instead of pip3 and you are indeed missing the requests module. Please follow the instructions and it should work.


Feature request: loadHtmlData with .css in local asset

Hello Zou,
Thank you for your fantastic work on the WebView for KMP. Recently, I encountered a use case where I need to create HTML data dynamically, while keeping the associated .css files in the local asset folder. I would greatly appreciate it if you could consider integrating this feature into a future release.
Thanks
grandleaf

Never mind.
It's already there:
rememberWebViewStateWithHTMLData(html2, baseUrl = "file:///android_asset/")


connection drops after a minute or two

Hi,
I have successfully installed pivpn onto a fresh install of Raspbian onto a RPi 3. I am able to connected with OpenVPN on my iPad. However after a minute or two of connectivity, it suddenly just stops. OpenVPN still reports as being "connected" and there is literally nothing that shows up in the OpenVPN log. It is 100% reproducible. If I force a disconnection in OpenVPN, I can immediately reconnect and it works great for another minute or two.
Any ideas what's going on?

@thayneq I am not sure but I think I read somewhere that it is caused due to TLS versions ...
Before we can try anything else,
Can you try connecting to the VPN with another device? perhaps and Android phone, Windows or Linux computer?


Web App does not display landing by first start

From read me klick --> Live App
expected: should display landing page

I am just from clicking on the button ,
The landing page is given the product page first

We can close this issue


Retail inventory management

Hi team,
I moved this from here: https://github.com/MicrosoftDocs/architecture-center.zh-cn/issues/77
@richfox commented yesterday — with docs.microsoft.com
how to realize a small inventory control system with azure, do u have a code sample?

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

ID: 3d11b63e-15f8-5a33-5ab6-eeaf1f7db932
Version Independent ID: 6c36fc2f-a896-53f1-34fa-934e6e216158
Content: Retail and e-commerce using Azure MySQL - Azure Solution Ideas
Content Source: docs/solution-ideas/articles/retail-and-ecommerce-using-azure-database-for-mysql.md
Service: architecture-center
GitHub Login: @adamboeglin
Microsoft Alias: pnp

@CeciAc Thanks for the comment. We are actively investigating on the issue and will get back to you shortly with an update.

We don't currently have a deployment example for this but will capture this request for a future iteration. Thanks so much!


Fix DeprecationWarning: datetime.datetime.utcnow()

Is your feature request related to a problem? Please describe.
Builds sometimes output a deprecation warning; for example: https://github.com/Charcoal-SE/SmokeDetector/actions/runs/6731552476/job/18296462660#step:10:65
Describe the solution you'd like
It looks like there's a suggested alternative: "Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC)."
Describe alternatives you've considered
No other alternatives at this time.
Additional context
globalvars.py:84
/home/runner/work/SmokeDetector/SmokeDetector/globalvars.py:84: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
startup_utc_date = datetime.utcnow()

It looks like the fix consists of:

changing from datetime import datetime to from datetime import datetime, timezone`
changing all instances of datetime.utcnow() to datetime.now(tz=timezone.utc)

Currently working on this on a branch, and will submit a PR when it's ready


Fix pagination limit exception

Temporary fix to load max results until pagination is in place.

@cristianonicolai Wasn't there PRs recently changing from Integer.MAX_VALUE to -1?

@manstis exactly, but apparently I missed something in my tests :/
Double checking the beta3 tag revealed an exception coming from the Kie Server if -1 is sent as page size.


Improve Version Vector Handling for Legacy SDK and Snapshots

What this PR does / why we need it:

Add {actorID:lamport} to accumulate VV when VV is empty in applyChange

Changes with VV length of 0 were created from legacy SDK (v0.5.2 or below)
In legacy SDK, we added lamport to VV to ensure information could be updated properly

Use maxLamport() instead of serverSeq in applySnapshot

Fixed an issue where characters were not being deleted because some lamport values were larger than serverSeq when setting clocks in applySnapshot

Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

Additional documentation:

Checklist:

[x] Added relevant tests or not required
[x] Addressed and resolved all CodeRabbit review comments
[x] Didn't break anything

Summary by CodeRabbit

New Features

Enhanced handling of version vectors in ID management.
Simplified method calls for applying change packs and snapshots.

Bug Fixes

Improved logic for determining client lamport timestamps in node deletion.

Tests

Added a new integration test for validating garbage collection behavior with snapshots and version vectors.

Related to https://github.com/yorkie-team/yorkie/issues/723


Move into Julia and/or under JuliaLang, as stdlib?

Hi,
I believe your package has a good track record by now, just works. Probably not many know of it.
Should it be added to Julia, so that e.g. the compiler/optimizer can use it? It seems we could compete with Mojo that way. It deallocates as fast as possible, before variables go out of scope even (in languages like C++).
A first step would even be helpful on its own:
Phase 1.
Just move unchanged, gives more visibility (could also be had by documenting in Julia's docs). Julia itself wouldn't use. But at any point if could, by uses Bumper.jl as documented.
Phase 2.
This would be up to Julia people also, and the main win with merging. Make use of already existing idiomatic Julia code in or out of Julia use Bumper.jl transparently.
I recall our discussion, but can't find it, about dynamically adding to the buffer. I see it's now Task_local (would it be per thread, or is that in effect what it is?). I mentioned a problem with dynamically enlarging, so you backed away from it and now I found a solution, but it seems redundant, with changes I see you've now already implemented. I see you now allocate 1/8th of physical memory, which seems way excessive, which I think is the point so that you never have to enlarge. You rely on the VM (and [RAM] memory not actually used just virtual memory reserved, and the OS allocating more of it transparently). So why 1/8th? Why not even larger, all of it, or smaller? I'm guessing if you have e.g. 8 threads then you allocate all, and with 16 then 2x overcommit (which is ok, at least on Linux).
I do not believe overcommitting works on Windows however, so do you know of problems, if e.g. you have very many threads? Also say Julia's with 8 threads, and 4 such Julias running at once, is that ok? I don't know about macOS, but it's likely similar. Before merging, such use would need to be confirmed ok, or if lower from 1/8th...
https://github.com/MasonProtter/Bumper.jl/commit/95d51c7a2e643b8574deb1ae58f63c0773fb5173

That's not really how stdlibs work, I strongly doubt any of the language maintainers would be interested in having bumper in a stdlib or base, and I would agree it's inappropriate for that.

Bumper.jl currently has no infrastructure for detecting and warning if a pointer escapes (and that'd be pretty hard to do).
It doesn't support non-isbits types which is something that infastructure from the base language usually should attempt to support
It relies on StrideArraysCore.jl, so that'd also need to be brought in and that'd be a rather unpopular project as well for similar reasons.
People don't want more stdlibs in the language, and in fact one of the bigger ongoing projects right now is about removing stdlibs and turning them into regular packages.

So why 1/8th? Why not even larger, all of it, or smaller? I'm guessing if you have e.g. 8 threads then you allocate all, and with 16 then 2x overcommit (which is ok, at least on Linux).

I was doing all of the physical memory, but I realized that if someone did end up doing some series of calls that ended up using that whole stack of memory, then the whole array would actually be allocated by the OS and not freed, so it'd effectively leak memory. I decided (rather arbitrarily) that one eighth was a reasonable compromise.

I do not believe overcommitting works on Windows however, so do you know of problems, if e.g. you have very many threads?

Yeah, that could end up being a problem. I haven't really done any serious testing on Windows and it's not something I think very often about. (another reason this package is not appropriate for a stdlib). I'd definitely advise Windows users in that case to prefer to use explicitly created buffers, rather than the default_buffer (which is what packages relying on Bumper.jl should be doing anyways.


Error while creating a Replication Rule

Describe your request
Hi all, I'm trying to create a replication rule using the Method NewReplicationPolicy which is throwing:
[POST /replication/policies][400] createReplicationPolicyBadRequest  &{Errors:[0xc00039e5a0]
What's the best way to find out the specific part causing the error?
This is what I'm returning when calling the mentioned method
return s.Client.NewReplicationPolicy(
		ctx,
		policy.DestRegistry,
		nil,
		policy.ReplicateDeletion,
		policy.Override,
		policy.Enabled,
		policy.Filters,
		policy.Trigger,
		policy.DestNamespace,
		policy.Description,
		policy.Name)

The filters I'm passing in:
rp.Filters = []*model.ReplicationFilter{
		{
			Decoration: "",
			Type:       "resource",
			Value:      rule.FilterType,
		},
	}

Where rule.FilterType has the value of image
The trigger is:
	rp.Trigger = &model.ReplicationTrigger{
		TriggerSettings: &model.ReplicationTriggerSettings{Cron: ""},
		Type:            rule.Trigger,
	}

Where rule.Trigger has the value of event_based.
All the values are correct (AFAICT). I'm getting the dest and src registry using the GetRegistryById and the ListRegistries respectively.
I'm inspecting the error type and I'm getting:
error type: *replication.CreateReplicationPolicyBadRequest
Which is from an internal package type and I cannot use it to inspect further.
I would appreciate any help.

Hey @eduartua, thanks for opening this issue. I've tried reproducing your issue with similar parameters but could not see an error. Can you inspect the (debug) logs of the harbor-core component? They should tell you what exactly leads to the error.

This is the only thing I can see in habor-core logs:
2022-09-06T06:15:02Z [INFO] [/server/middleware/security/robot.go:71][requestID="b0f8b2a684b1d0efd3c1c3...."]: a robot security context generated for request GET /api/v2.0/replication/policies
2022-09-06T06:16:04Z [INFO] [/server/middleware/security/robot.go:71][requestID="447afb463a8c11d09cbf68...."]: a robot security context generated for request GET /api/v2.0/registries/0
2022-09-06T06:16:04Z [INFO] [/server/middleware/security/robot.go:71][requestID="f9abb671722e423abfcefc4..."]: a robot security context generated for request POST /api/v2.0/replication/policies
2022-09-06T06:18:31Z [INFO] [/server/middleware/security/robot.go:71][requestID="c14a31280dc2305701bb86..."]: a robot security context generated for request GET /api/v2.0/registries/0
2022-09-06T06:18:31Z [INFO] [/server/middleware/security/robot.go:71][requestID="581dbb46ced3ff31123a...."]: a robot security context generated for request POST /api/v2.0/replication/policies
2022-09-06T06:19:36Z [INFO] [/server/middleware/security/robot.go:71][requestID="06079eddfc58ea4239fb48...."]: a robot security context generated for request GET /api/v2.0/registries/0
2022-09-06T06:19:36Z [INFO] [/server/middleware/security/robot.go:71][requestID="fc83da1ecb1680c3f8ccbd9...."]: a robot security context generated for request POST /api/v2.0/replication/policies

If I'm getting this error:
` [POST /replication/policies][400] createReplicationPolicyBadRequest  &{Errors:[0xc00022c1e0]}`
Then the problem should be the policy object, right?

Hey @eduartua, thanks for following up on this.

Then the problem should be the policy object, right?

It's hard to tell, honestly. You can try enabling the debug log of the core component to maybe get some extensive error messages. There is quite a lot of validation going on for policy objects - you might want to check with the upstream source (for your current version) to see if the error actually is on your side or due to an error in Harbor's validation.
HTH

Using the log level debug I get:
2022/09/06 15:32:54 Model:
2022/09/06 15:32:54 r.r: sub, obj, act
2022/09/06 15:32:54 p.p: sub, obj, act, eft
2022/09/06 15:32:54 e.e: some(where (p_eft == allow)) && !some(where (p_eft == deny))
2022/09/06 15:32:54 m.m: g(r_sub, p_sub) && keyMatch2(r_obj, p_obj) && (r_act == p_act || p_act == '*')
2022/09/06 15:32:54 g.g: _, _
2022/09/06 15:32:54 Policy:
2022/09/06 15:32:54 p: sub, obj, act, eft: [[robot$replication /system/replication * allow] [robot$replication /system/registry * allow] [robot$replication /system/replication-policy * allow]]
2022/09/06 15:32:54 g: _, _: []
2022/09/06 15:32:54 Role links for: g
2022/09/06 15:32:54
2022/09/06 15:32:54 Request: robot$replication, /system/registry, list ---> true

@elenz97 I figured out the problem. It turns out I was passing nil for the destination registry. The right value to pass is an empty Registry struct (&model.Registry{}).
Another question I have is:
Is it possible to set the Flattening option in the Destination section?

@elenz97  I see what's missing. See the NewReplicationPolicy method:
// NewReplicationPolicy creates a new replication policy with the given arguments.
func (c *RESTClient) NewReplicationPolicy(ctx context.Context, destRegistry, srcRegistry *modelv2.Registry,
	replicateDeletion, override, enablePolicy bool,
	filters []*modelv2.ReplicationFilter, trigger *modelv2.ReplicationTrigger,
	destNamespace, description, name string,
) error {
	params := &replicationapi.CreateReplicationPolicyParams{
		Policy: &modelv2.ReplicationPolicy{
			Description:               description,
			DestNamespace:             destNamespace,
			DestNamespaceReplaceCount: nil,
			DestRegistry:              destRegistry,
			Enabled:                   enablePolicy,
			Filters:                   filters,
			Name:                      name,
			Override:                  override,
			ReplicateDeletion:         replicateDeletion,
			SrcRegistry:               srcRegistry,
			Trigger:                   trigger,
		},
		Context: ctx,
	}

	params.WithTimeout(c.Options.Timeout)

	_, err := c.V2Client.Replication.CreateReplicationPolicy(params, c.AuthInfo)
	if err != nil {
		return handleSwaggerReplicationErrors(err)
	}

	return nil
}

It has hardcoded the DestNamespaceReplaceCount: nil, value.

@elenz97 I'll close this issue then. The logic to add the DestNamespaceReplaceCount can be discussed in another issue.


refactor: change account ID SQL's backing type

closes #602
In this PR we change the account ID sql columns from blobs to two integers (u64). This allows us to index only with the prefix (as it uniquely identifies accounts) which is faster than indexing with the whole ID.
In this implementation I used two integers in tables where the full account ID was needed and only prefix when it was used as a foreign key.

I wanted to ask about this part:

used two integers in tables where the full account ID was needed

This is not technically necessary as the suffix may be stored only in the accounts table and retreived using a JOIN but I wasn't sure how this would affect the performance. If we prefer, I can use only prefix and get the suffix with joins if needed.


Clarify docs with some examples

Some examples of formula names as well as where to download the zip files might be handy.

Thank you for the improvements, very much appreciated! I made a few small tweaks and merged them in.


Bug with dateITA and daylight saving time

The dateITA does not validade dates when the date it´s the begging of DST.
For example (in Brazil) the Date 16/10/1966 fails.
When you analyze the date, the var gg is set to 16 but new Date(1966,9,16) returns Date {Sat Oct 15 1966 23:00:00 GMT-0300}.
So when you compare xdata.getDate() == gg (at line 143) it fails because gg is 16.
A workaround I'm using is to change the line 143
if ( ( xdata.getFullYear() == aaaa ) && ( xdata.getMonth () == mm - 1 ) && ( xdata.getDate() == gg ) )

to
if ( ( xdata.getUTCFullYear() == aaaa ) && ( xdata.getUTCMonth () == mm - 1 ) && ( xdata.getUTCDate() == gg ) )

so the DST is ignored. I admit : I didn´t do a good test with older browsers.
Does it makes sense?
BTW, great plugin!

I've found another issue relating to this date validation, and I've found a fix.
v1.13.1 - 10/14/2014
Problem
We had some customers in New Zealand complaining they couldn't submit the form.
This was reproducible by changing the system timezone on my OSX.
Cause
While New Zealand is in daylight savings time their time zone is GMT+13:00.
When javascript processes the "getUTCDate()" it applies -13:00 time change.
This validation function sets the time to 12 noon while parsing, then the -13 hour shift takes the date to the previous day.
Then the if statement "xdata.getUTCDate() === gg" fails and says the date is invalid.
Solution
Our solution was to changethe date parser in
src/additional/dateITA.js:29
xdata = new Date(aaaa, mm - 1, gg, 12, 0, 0, 0);
to
xdata = new Date(Date.UTC(aaaa, mm - 1, gg, 12, 0, 0, 0));
I've tested this with several different timezones and it seems to work well.


didFinishRecordingVideo not getting called bug

Fix a bug where didFinishRecordingVideo delegate method wasn't being called if stopVideoRecording gets called before the actual recording starts.
You can reproduce this issue by just stopping video recording as soon as it starts. Since the actual recording starts asynchronously, self.movieFileOutput?.isRecording doesn't get set to true yet and stopVideoRecording function doesn't do it's job. By making this change we try to stop even if the recording isn't started and it prints an error (which is something we want) but the delegate method gets called.

@dadalar There was some files that were removed and changed. Can you revert that?


go install rsc.io/script@latest fails

I get the following error which is bizarre since there is no go1.22 release and the go.mod file for script does not specify 1.22 release of go at all.
go install rsc.io/script@latest
go: go<EMAIL_ADDRESS>requires go >= 1.22 (running go 1.21.5)
go: go: switching to go >= 1.22: no releases found for go >= 1.22

Here is the output of go env.
GO111MODULE=''
GOARCH='amd64'
GOBIN='/home/shakeel/bin'
GOCACHE='/home/shakeel/.cache/go-build'
GOENV='/home/shakeel/.config/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='amd64'
GOHOSTOS='linux'
GOINSECURE=''
GOMODCACHE='/home/shakeel/go/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='linux'
GOPATH='/home/shakeel/go'
GOPRIVATE=''
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/usr/local/go'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/usr/local/go/pkg/tool/linux_amd64'
GOVCS=''
GOVERSION='go1.21.5'
GCCGO='gccgo'
GOAMD64='v1'
AR='ar'
CC='gcc'
CXX='g++'
CGO_ENABLED='1'
GOMOD='/dev/null'
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/tmp/go-build1589244581=/tmp/go-build -gno-record-gcc-switches'

I figured it out, the v0.0.1 still has go.mod which points to go release 1.22. I guess time to bump the version to 0.0.2 maybe?

you could use @master for now

Pushed the v0.0.2 tag I created long ago and forgot to push.


Bugfix BinlogTombstone tableId is null when db disable binlog

Bug:
BinlogTombstone tableId is null when db disable binlog.
Bugfix:
Added a new constructor for BinlogTombstome, which sets BinlogTombstome.tableId to an ArrayList that only contains the current tableId when db binlog is disabled.

run buildall

run buildall

run buildall

run buildall

run buildall


MudTable: Add CancellationToken into ServerData Function for Cancelable Requests

This update modifies the ServerData function of the MudTable component to add a CancellationToken parameter.  By adding this parameter, requests for data can be canceled, which improves the performance of tables during frequent updates.
How Has This Been Tested?
This feature has been tested by adding a bUnit test to the TableTests class, as well as modifying existing tests to include the new CancellationToken parameter.  The new bUnit test will ensure that:

The initial call to reload the data via ServerData does NOT cancel the current CancellationToken
Any subsequent call to reload the data via ServerData DOES cancel the current CancellationToken

This branch has also been used with a production Blazor Server application which received frequent table updates via SignalR messages.  I have spammed clicking on table sort labels to rapidly change sorting, and the table keeps up nicely without error.
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[X] Breaking change (fix or feature that would cause existing functionality to not work as expected)

This is a functional change which aims to improve the performance of MudTable when frequent refreshes via server data occur.  To use this feature, users should forward the provided CancellationToken to any cancelable tasks, such as making a call to HttpClient, DbContext, or other potentially long-running operation.
Checklist:

[X] The PR is submitted to the correct branch (dev).
[X] My code follows the code style of this project.
[X] I've added relevant tests.

Notes for Reviewers

This PR adds the IDisposable class to the MudTable component due to disposing the new TokenCancellationSource

Upgrading Your Existing ServerData Code
Existing code which uses ServerData can be upgraded to use this feature in two steps:

In your Blazor code, add a CancellationToken token parameter to your server data function
Forward this token to any cancelable operations such as calls to an HttpClient or DbContext

Before:
<MudTable T="int" ServerData="OnReloadData">
</MudTable>

@code
{
    public async Task<TableData<int>> OnReloadData(TableState state)
    {
            var client = new HttpClient();
            var someData = await client.GetAsync("http://example.com");

            var context = new MyDbContext();
            var someMoreData = await context.MyTable.ToListAsync();

            return new TableData<int>() { TotalItems = ..., Items = ... };
    }
}

After:
<MudTable T="int" ServerData="OnReloadData">
</MudTable>

@code
{
    public async Task<TableData<int>> OnReloadData(TableState state, CancellationToken token)
    {
        var client = new HttpClient();
        var someData = await client.GetAsync("http://example.com", token); // <-- Forward the token here

        var context = new MyDbContext();
        var someMoreData = await context.MyTable.ToListAsync(token)); // <-- Forward the token here

        return new TableData<int>() { TotalItems = ..., Items = ... };
    }
}

Hi, thanks for contribution.
Adding @henon for review, what do you think about it? A little awkward to have two ServerData now, feels like the original ServerData should have included cancellation token by default, or to have a design like in the ParameterState that allows different Func<> overloads. But i understand that we cannot break this now, and we need a separate ServerDataWithCancel  for backward compatibility.

Couldn't we just add the CancellationToken to TableState ?  That would be a non-breaking change.
    public class TableState
    {
        public int Page { get; set; }

        public int PageSize { get; set; }

        public string SortLabel { get; set; }

        public SortDirection SortDirection { get; set; }

        public CancellationToken CancellationToken { get; set; } = CancellationToken.None;
    }

TableState

That sounds good on paper, but I think many people use this class to store it in some storage like database or browsers local storage, since it's pretty serializable, I don't think having CancellationToken is desirable there.
But this is not 100% as I don't use this functionality so I can't know for sure.

Hmm, serializing objects you don't control is pretty fragile anyway and would be considered bad practice, so I wouldn't worry too much about it.

Hmm, serializing objects you don't control is pretty fragile anyway and would be considered bad practice, so I wouldn't worry too much about it.

I agree, I always tell people to map it in their own DTO that they send to server / whatever, well I always get argument that it's boilerplate or along this lines, and why framework can't do 99.9% the job for them.

We could mark it [Serializable] and add a [IgnoreDataMember] or a [NonSerialized] attribute. But that covers only one way to serialize it. NewtonJson is another. I think we can't bother with all possible serialization scenarios

We could mark it [Serializable] and add a [IgnoreDataMember] or a [NonSerialized] attribute to the cancellation token. But that covers only one way to serialize it. NewtonSoftJson is another. I think we can't bother with all possible serialization scenarios

I think the Serializable attribute is dead and doesn't do anything starting from certain .NET.
Also STJ doesn't work with Data Members attributes out of the box, the Newtonsoft does, but less people use it now.

Is there a decision so far on using TableState for the token?  I agree that front-end objects probably shouldn't be referenced by back-end frameworks  (e.g. referencing MudBlazor from an API-level project).  That said, however, this PR resembles the already approved SearchFuncWithCancel method for MudAutocomplete PR #4868.

Couldn't we just add the CancellationToken to TableState ? That would be a non-breaking change.
    public class TableState
    {
        public int Page { get; set; }

        public int PageSize { get; set; }

        public string SortLabel { get; set; }

        public SortDirection SortDirection { get; set; }

        public CancellationToken CancellationToken { get; set; } = CancellationToken.None;
    }

@MudBlazor/contribution-team @MudBlazor/core-team please provide your opinions on this so we can come to a decision. Either we add the cancellation token to TableState and avoid further API clutter or merge as is.

Since we are doing breaking changes, I would vote that we create a wrapper class for ServerData, that contains TableState, and other stuff like CancellationToken:

I don't think CancellationToken should live in TableState.
Maybe in future we will want to add new things, and TableState might be either not a good place for it.

With wrapped class we can put anything new there without doing breaking changes.

Couldn't we just add the CancellationToken to TableState ? That would be a non-breaking change.
    public class TableState
    {
        public int Page { get; set; }

        public int PageSize { get; set; }

        public string SortLabel { get; set; }

        public SortDirection SortDirection { get; set; }

        public CancellationToken CancellationToken { get; set; } = CancellationToken.None;
    }

@MudBlazor/contribution-team @MudBlazor/core-team please provide your opinions on this so we can come to a decision. Either we add the cancellation token to TableState and avoid further API clutter or merge as is.

Well, I don't feel so much comfortable with the ideia of existing two different ways to load data (ServerData and ServerDataDataWithCancel, if I didn't understand wrong). I think both should be cancelable, and the Func<> could has a CancelationToken as parameter, if possible.
In another hand. reading about the IParameterState, I purpose the ideia of creating something like internal IParameterState<bool> LoadingState { get; } , with a class that implements it, with its own CancelationToken, firing its cancelation when the state is changed to false.

ParamterState is not about aborting task, in fact it doesn't even have such functionality, it's also not about executing back end things.
ParamterState was mainly created for two reasons:

Not to write to component parameters directly, to avoid these side effects: https://learn.microsoft.com/en-us/aspnet/core/blazor/components/overwriting-parameters?view=aspnetcore-8.0
Not to add logic in setters / getters of component parameters, to not mess up with parent-child communication, and not create side effects like infinity loop, or weird bugs like this  https://github.com/MudBlazor/MudBlazor/issues/8429

It also removed tons of boilerplate code, because you do not need to manually override OnParameterSet / SetParametersAsync and create tons of local variables to preserve previous and current value to compare it to decide when to run your custom logic when they change.
Since most people will make mistake & get it wrong, we created this framework for the contributors and to remove code smells from our code base as well.
@HClausing sorry I edited your comment instead of posting new, lmao.

Is modifying the ServerData Func to include the CancellationToken as a breaking change an option?  I was avoiding any breaking changes but this may be the cleanest change if that was okay.  My only concern would be making sure release notes clearly explained the before/after so they could upgrade as painlessly as possible.  Thanks for everyone's feedback!

Yes, breaking changes are possible in the next release which will be v7.0.0 where we already plan to merge a ton of other breaking changes. Of course breaking is the best option design wise. And there is a migration guide for you to make the transition as easy as possible for you at #8447
So we have two suggestions for breaking changes now:

[Parameter]
public Func<TableState, CancellationToken, Task<TableData<T>>> ServerData { get; set; }

[Parameter]
public TableServerData ServerData { get; set; }

public class TableServerData {
  public Func<TableState, Task<TableData<T>>> { get; set; }
  public CancellationToken CancellationToken { get; set; }
}

I am inclined towards the first as it is simpler to use. The second would be safer and would allow additions w/o breaking changes in the future but we don't know if we will ever need more properties.

I don't think CancellationToken should live in TableState.

Actually I disagree here. In my eyes TableState is nothing more than a class for passing multiple func parameters in a single object as we have in many places in our API. It would also be an excellent fit to add the cancellation token.

[Parameter]
public Func<TableState, CancellationToken, Task<TableData<T>>> ServerData { get; set; }

[Parameter]
public TableServerData ServerData { get; set; }

public class TableServerData {
  public Func<TableState, Task<TableData<T>>> { get; set; }
  public CancellationToken CancellationToken { get; set; }
}

I meant something like this aka 3rd option
[Parameter]
public Func<TableServerData  Task<TableData<T>>> ServerData { get; set; }

public class TableServerData
{
   public readonly TableState State { get; init; }
   public readonly CancellationToken CancellationToken { get; init; }
   ..... anything else
}

Yes, breaking changes are possible in the next release which will be v7.0.0 where we already plan to merge a ton of other breaking changes. Of course breaking is the best option design wise. And there is a migration guide for you to make the transition as easy as possible for you at #8447
So we have two suggestions for breaking changes now:
[Parameter]
public Func<TableState, CancellationToken, Task<TableData<T>>> ServerData { get; set; }

[Parameter]
public TableServerData ServerData { get; set; }

public class TableServerData {
  public Func<TableState, Task<TableData<T>>> { get; set; }
  public CancellationToken CancellationToken { get; set; }
}

I am inclined towards the first as it is simpler to use. The second would be safer and would allow additions w/o breaking changes in the future but we don't know if we will ever need more properties.

I prefer the number 1m too.

Ok, I guess we are reaching a decision here. The breaking change ...
[Parameter]
public Func<TableState, CancellationToken, Task<TableData<T>>> ServerData { get; set; }

... is what got the most votes in favor as of now. I think it is not risky to go for that instead of wrapping TableState again because we can always add parameters to TableState in a non-breaking manner, should we need them. Anyone feeling omitted in this decision please post your opinion, we won't wait forever.
As a sidenote, I think we should break AutoComplete as well and unify the SearchFunc and SearchFuncWithCancel into one.

The second would be safer and would allow additions w/o breaking changes in the future but we don't know if we will ever need more properties.

Admittedly, I could not think of any other properties at the moment
but I'd  go for this one because it is safe an doesn't break in the future.

The second would be safer and would allow additions w/o breaking changes in the future but we don't know if we will ever need more properties.

Admittedly, I could not think of any other properties at the moment but I'd go for this one because it is safe an doesn't break in the future.

Actually I was in error when I made that statement. They are equally safe against breaking changes as we can always add properties to TableState.

In my eyes TableState is nothing more than a class for passing multiple func parameters in a single object...

Indeed, I did not read this one well enough.

Thanks again for the feedback, everyone!  I have made the breaking change to ServerData to add the CancellationToken to the function, and have removed the initial ServerDataWithCancel method.  Some other changes were made as a result of this breaking change:

All existing examples which use ServerData were modified to add the CancellationToken parameter.
The description of this PR was changed to explain modifying the ServerData method.

@henon Would you like a separate PR for the MudAutocomplete change to remove SearchFuncWithCancel and add CancellationToken to the original SearchFunc?

@henon Would you like a separate PR for the MudAutocomplete change to remove SearchFuncWithCancel and add CancellationToken to the original SearchFunc?

Yes please!

Added to v7.0.0 Migration Guide #8447

@henon Would you like a separate PR for the MudAutocomplete change to remove SearchFuncWithCancel and add CancellationToken to the original SearchFunc?

Yes please!

You got it!  PR 8490 was submitted for these changes in MudAutocomplete

This looks good and ready to merge for me.
Maybe the only nit is to add the Async in the tests and examples where ServerData=ServerDataAsync.

Ok, thanks again for the reviews and feedback!  I've rebased onto dev.  @ScarletKuro I couldn't find the specific code you were referring to, where you wanted to see Async added to method names?  Also, there's a great Code Analyzer Microsoft.VisualStudio.Threading.Analyzers which can catch issues like this (adding Async to async methods, and more).

You did a merge and there was 400 file changes, I had to rollback that merge and rebase and force push.

Ok, thanks again for the reviews and feedback! I've rebased onto dev. @ScarletKuro I couldn't find the specific code you were referring to

-<MudTable ServerData="ServerReload" Dense="true" Hover="true">
+<MudTable ServerData="ServerReloadAsync" Dense="true" Hover="true">
-private async Task<TableData<Element>> ServerReload(TableState state, CancellationToken token)
+private async Task<TableData<Element>> ServerReloadAsync(TableState state, CancellationToken token)

This is what I mean.

Also, there's a great Code Analyzer Microsoft.VisualStudio.Threading.Analyzers which can catch issues like this (adding Async to async methods, and more).

yes, we will add this in future.

-<MudTable ServerData="ServerReload" Dense="true" Hover="true">
+<MudTable ServerData="ServerReloadAsync" Dense="true" Hover="true">

-private async Task<TableData<Element>> ServerReload(TableState state, CancellationToken token)
+private async Task<TableData<Element>> ServerReloadAsync(TableState state, CancellationToken token)

But this is not necessary and not related directly to this PR, so I will just merge.
We will do code style cleanup commits anyway.

Thanks @jperson2000

You did a merge and there was 400 file changes, I had to rollback that merge and rebase and force push.

@jperson2000 Do you use Visual Studio for git? Can you tell us what you did or tried to do?
We have had similar issues with other contributors and I found that doing a simple merge with Visual Studio should not cause this. Did you attempt a rebase? I suspect you rebased dev onto your branch instead of the other way round.

You did a merge and there was 400 file changes, I had to rollback that merge and rebase and force push.

@jperson2000 Do you use Visual Studio for git? Can you tell us what you did or tried to do?
We have had similar issues with other contributors and I found that doing a simple merge with Visual Studio should not cause this. Did you attempt a rebase? I suspect you rebased dev onto your branch instead of the other way round.

Oof, my apologies for the merge chaos!  Here's the workflow I went through for this:

First, I forgot to go to GitHub and Sync my Fork, so my rebases were initially against an out-of-sync branch
Next, in Visual Studio 2022, I fetched latest on dev, then I went back to my branch, right-clicked dev then selected Rebase onto Current Branch to rebase my branch onto dev
A series of merge conflicts occurred and I chose the dev version in each case
Finally, I synced the resolved commits

This is the same workflow I did for the other MudAutocomplete PR.  However, it sure does sound like the rebase was backwards; it's the only thing which would explain the massive number of changes.  I'll remember to do a merge instead for future PR's.

I went back to my branch, right-clicked dev then selected Rebase onto Current Branch to rebase my branch onto dev

Thanks for detailing your workflow, I think that explains it. You were on your branch and rebased dev onto it which added all the commits of dev to yours. Instead you would have had to go onto the dev branch and rebase your branch onto Current Branch.
Don't worry, you are not the first to fall into this trap. That's why I always recommend to merge to contributors. It is less error prone.


feat: migrate theme popover to v9

Overview
Brief description of what this PR does, and why it is needed.
Closes #3439
Demo
Optional. Screenshots, curl examples, etc.
Notes
Optional. Ancillary topics, caveats, alternative strategies that didn't work out, anything else.
Testing Instructions

How to test this PR
Prefer bulleted description
Start after checking out this branch
Include any setup required, such as bundling scripts, restarting services, etc.
Include test case, and expected output

Noticed the close button is no longer there, shouldn't we still keep it? but just as a regular button?

@ElinorW since clicking outside the popover closes it, I wonder if we should keep it.

@ElinorW since clicking outside the popover closes it, I wonder if we should keep it.

Hmm good point, the same behaviour is there in the current version as well.
Maybe we can ask design.

Yeah @musale, I noticed the theme was only picked when interacting with theme chooser, currently implementing this.


Refreshed to 2.12 and updated ppc64le TF patch

Checklist before submitting

[ ] Did you read the contributor guide?
[ ] Did you update any affected documentation?
[ ] Did you write any tests to validate this change?

Description
Fixes # (issue).
Review process to land

All tests and other checks must succeed.
At least one maintainer must review and approve.
If any  maintainer requests changes, they must be addressed.

75 additions, 53,579 deletions not shown . whoa!

Yes, TF Serving had a patch to fix boringssl with GCC 11. And now that patch isn't needed. So, that patch accounts for 53579 deletion.


An image should be added for an irc bouncer (weechat, znc, ...)

May have a look into https://octo.sh/MadIRC/weechat-docker if you don't want to build it from scratch.

Actually, this was to explore running it as a relay, not a client -- although I will likely be exploring using a remote client in e.g. k8s and sshing to it with mosh; there are a ton of preexisting client-focused images out there - thanks for the link to that one!

On a completely unrelated note, mounting ~/.weechat into a container running weechat resets your config -- at least, it resets what it doesn't bork.

Closing this, as the repository has been refactored to support mumble-server only.

Closing this, as the repository has been refactored to support mumble-server only.


Browser source merge

@DomNomNom Would you be able to take a look at this and attempt to get your emote support working in app.tsx which serves as the new static display for local express hosting and OBS browser source capture.
Got the new emote support working!!! This is a merge of the express server branch and master. @alexgQQ

@alexgQQ this includes a manual merge of the new app tsx and the old OBS component so that the new functionality works correctly in the browser.

@Y0dax Fantastic! I did update my original PR for the merge, but if this keeps that gif support, lets use it 👍

@Y0dax Fantastic! I did update my original PR for the merge, but if this keeps that emote support, lets use it 👍

Actually scratch that, checked this before discord. I merged this into the original branch, seems to all work 👍


sourcehut: fix #198478

Description of changes

[X] Fix https://github.com/NixOS/nixpkgs/issues/198478 by using propagatedNativeBuildInputs instead of manually propagating dependencies, which caused those build problems due to non-idempotent hooks being run twice.
Kudos to @winterqt for making sense of this bug in https://github.com/NixOS/nixpkgs/pull/198586

Side note: beware that there is a NixOS/sourcehut branch which GitHub is selecting by default when opening a new PR from a branch of our own repository also named sourcehut, which may cause to include more commits than intended and thus notify automatically and without warning unrelated people en masse...
Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[X] Fits CONTRIBUTING.md.

[X] Improve https://github.com/NixOS/nixpkgs/pull/198720/commits/7cc9cd884e1b3b35eb4e7cdd70602e41f80dd932 commit message

I do not know if this is still the case, but from my memory propagatedNativeBuildInputs will actually inject those dependencies into your runtime configuration.
If this is still the case you will be indirectly injecting conflicting versions of sassc and node - sassc is not as much of a problem but node might be a problem.

Th

I do not know if this is still the case, but from my memory propagatedNativeBuildInputs will actually inject those dependencies into your runtime configuration.
If this is still the case you will be indirectly injecting conflicting versions of sassc and node - sassc is not as much of a problem but node might be a problem.

This would only be at build time, AFAIK, where it's less likely to be a problem.

Result of nixpkgs-review pr 198720 run on aarch64-darwin 1

1 package failed to build:

sourcehut.hubsrht

11 packages built:

sourcehut.buildsrht
sourcehut.coresrht
sourcehut.dispatchsrht
sourcehut.gitsrht
sourcehut.hgsrht
sourcehut.listssrht
sourcehut.mansrht
sourcehut.metasrht
sourcehut.pagessrht
sourcehut.pastesrht
sourcehut.todosrht

Wonder what's up with hub -- will check later.

@siraben, thanks for that report on aarch64-darwin. Could you maybe share the logs to help identify the problem?
Just by looking at hub.nix I can only see a difference from other packages, SRHT_PATH is not set:
export SRHT_PATH=${srht}/${python.sitePackages}/srht

But if it were required, I currently don't see why it would not also fail on x86_64.

The error is that pyyaml is not found as a dependency, but I don't know why it suddenly started failing because the dependency was added back in https://git.sr.ht/~sircmpwn/hub.sr.ht/refs/0.13.2.

@tjni , hmm, strange that I cannot reproduce on my x86_64-linux system.
The src.sha256 is correct so it's not a caching issue on my side.
Yet you're right pyyaml is required by the setup.py.

[X] Add pyyaml dependency to hubsrht.

This happens because werkzeug only propagates pyyaml (through watchdog) on non-Darwin systems, which is where it was getting it from on Linux.

Great find, @winterqt. It makes a lot of sense.

Force pushed to fix the commit message to use the attribute name.
- sourcehut/hubsrht: fix missing pyyaml dependency
+ sourcehut.hubsrht: fix missing pyyaml dependency

Waiting on OfBorg...


SSID & PSW show in terminal

Hello ,
Thanks for your code , i have a little bit question . Would you type SSID & PSW in <IP_ADDRESS> and show receive data in your terminal ? However , i tried your code , i could not pass information well.  Thanks.

static esp_err_t psw_ssid_get_handler(httpd_req_t *req)
{
    char buf[128];
    int ret, remaining = req->content_len;

    while (remaining > 0)
    {
        /* Read the data for the request */
        ret = httpd_req_recv(req, buf,MIN(remaining, sizeof(buf)));
        printf("ret :%d\r\n",ret);
        if  (ret <= 0){
            if (ret == 0){
                ESP_LOGI(TAG, "No content received please try again ...");
            }
            else if (ret == HTTPD_SOCK_ERR_TIMEOUT)
            {
                /* Retry receiving if timeout occurred */
                continue;
            }
            return ESP_FAIL;
        }

        /* Log data received */
        ESP_LOGI(TAG, "=========== RECEIVED DATA ==========");
        ESP_LOGI(TAG, "%.*s", ret, buf);
        ESP_LOGI(TAG, "====================================");
        cJSON *root = cJSON_Parse(buf);

        sprintf(__SSID, "%s", cJSON_GetObjectItem(root, "ssid")->valuestring);
        sprintf(__PWD, "%s", cJSON_GetObjectItem(root, "pwd")->valuestring);

        ESP_LOGI(TAG, "pwd: %s", __PWD);
        ESP_LOGI(TAG, "ssid: %s", __SSID);

        remaining -= ret;
    }

Hi chungleepeople,
can you please describe your problem a little bit more specific?
Are you missing output in the terminal?
What kind of information could you not pass well?
thanks
lemmi25

Dear all,
Thank you for your mail. Until yesterday I found out that I did not
change correct IP of  xhr.open in ESP32WiFiAP line 132 .
It is my mistake because I am not very familiar with html syntax.
__
Best regards
Chungleepeople
Moritz Boesenberg @.***> 於 2021年6月29日 週二 上午1:48寫道：

Hi chungleepeople,
can you please describe your problem a little bit more specific?
Are you missing output in the terminal?
What kind of information could you not pass well?
thanks
lemmi25
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/lemmi25/ESP32WiFiAP/issues/4#issuecomment-869890513,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AK4WXF2RJ64WVZBIDR4OFADTVCYXPANCNFSM47G6AAVA
.


⚠ ClamAV has degraded performance

In 4c26d4f, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 84 ms

Resolved: ClamAV performance has improved in 3dabc03 after 5 minutes.


feat: invite ext user - frontend

Codecov Report

Merging #2202 (0f2493c) into main (ead8e13) will increase coverage by 6.74%.
Report is 7 commits behind head on main.
The diff coverage is 0.00%.

:exclamation: Current head 0f2493c differs from pull request most recent head 767b85f. Consider uploading reports for the commit 767b85f to get more accurate results

@@            Coverage Diff             @@
##             main    #2202      +/-   ##
==========================================
+ Coverage   10.20%   16.95%   +6.74%
==========================================
  Files          84      101      +17
  Lines        4106     4495     +389
  Branches      768        0     -768
==========================================
+ Hits          419      762     +343
- Misses       3677     3717      +40
- Partials       10       16       +6

Files
Coverage Δ

...h/api-dh/source/DataHub.WebApi/GraphQL/Mutation.cs
0.00% <ø> (ø)

...Api/Clients/EDI/B2CWebApi/V1/EdiB2CWebAppClient.cs
0.00% <0.00%> (ø)

...s/dh/api-dh/source/DataHub.WebApi/GraphQL/Query.cs
0.49% <0.00%> (-0.04%)
:arrow_down:

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


Update NPM to v1.5

I guess there's something missing for the v1.5 release to show up on NPM. Every time I setup a new environment, I need to download it from GitHub and overwrite it in node_modules folder, because the last release available is 1.4.5.

Thanks.

Thank you for letting us know, we just pushed 1.5.0 to NPM. I don't know how we missed out on that.

Thank u :)


Widget stops refreshing after few hours

I have Raspberry Pi 1 with latest OSMC 2015.09-1 (kernel version: 4.2.1-1-osmc) and my phone is an samsung galaxy s4.
Widget stops refreshing if the phone is long time in sleep mode. I see in the log TransportException: Broken transport; encountered EOF exception. The AlarmManager doesn't stop always immediately, sometimes the exception repeats periodically 2-3 times.
If the AlarmManager sopped working (onReceive function doesn't called  anymore) the widget stay in refresh mode so always showing the progress bar.
If I open and close the app after the AlarmManager has been stopped, it works again.
Here is the log:
00:11:18.259 DEBUG OverclockingWidget - Receiving Intent: action=updateOneWidget
00:11:18.261 DEBUG OverclockingWidget - Updating Widget[ID=178]. initByAlarm = true
00:11:18.275 DEBUG OverclockingWidget - Network available
00:11:18.275 DEBUG OverclockingWidget - Update was initiated by alarm.
00:11:18.276 DEBUG OverclockingWidget - Querying for Widget[ID=178]...
00:11:18.279 INFO  RaspiQuery - New RaspiQuery for host: ropi.no-ip.org
00:11:18.279 INFO  RaspiQuery - Connecting to host: ropi.no-ip.org on port 56565.
00:11:18.319 INFO  RaspiQuery - Using no host key verification.
00:12:42.631 DEBUG RaspiQuery - Querying vcgencmd...
00:12:42.976 DEBUG RaspiQuery - Checking vcgencmd location: vcgencmd
00:12:43.006 DEBUG RaspiQuery - Path check output: bash: vcgencmd: command not found

00:12:43.069 DEBUG RaspiQuery - Checking vcgencmd location: /usr/bin/vcgencmd
00:12:43.141 DEBUG RaspiQuery - Path check output: bash: /usr/bin/vcgencmd: No such file or directory

00:12:43.189 DEBUG RaspiQuery - Checking vcgencmd location: /opt/vc/bin/vcgencmd
00:12:43.229 DEBUG RaspiQuery - Path check output:
00:12:43.230 INFO  RaspiQuery - Found vcgencmd in path: /opt/vc/bin/vcgencmd.
00:12:43.398 INFO  RaspiQuery - Querying core volts...
00:12:43.576 DEBUG RaspiQuery - Querying firmware version...
00:12:43.679 DEBUG RaspiQuery - Firmware version: c156d00b148c30a3ba28ec376c9c01e95a77d6d5 (clean) (release)
00:12:43.681 INFO  RaspiQuery - Querying memory information...
00:13:10.319 INFO  LoadAverageQuery - Querying load average for time period FIVE_MINUTES
00:13:10.413 DEBUG LoadAverageQuery - Checking line: 0.07 0.10 0.12 1/122 2641
00:13:10.414 DEBUG LoadAverageQuery - Checking line: 2
00:13:10.415 INFO  RaspiQuery - Disconnecting from host ropi.no-ip.org.
00:13:10.417 DEBUG OverclockingWidget - min: 0.0  max: 90.0 value: 43.3
00:13:10.417 DEBUG OverclockingWidget - Updating progressbar: scaledValue = 48.11111111111111
00:13:10.418 DEBUG OverclockingWidget - min: 500.0  max: 1200.0 value: 1000.0
00:13:10.418 DEBUG OverclockingWidget - Updating progressbar: scaledValue = 71.42857142857143
00:13:10.419 DEBUG OverclockingWidget - min: 0.0  max: 100.0 value: 10.0
00:13:10.419 DEBUG OverclockingWidget - Updating progressbar: scaledValue = 10.0
00:13:10.419 DEBUG OverclockingWidget - min: 0.0  max: 100.0 value: 83.0
00:13:10.420 DEBUG OverclockingWidget - Updating progressbar: scaledValue = 83.0
00:13:10.420 DEBUG OverclockingWidget - Updating widget[ID=178] view.
00:16:19.569 DEBUG OverclockingWidget - Receiving Intent: action=updateOneWidget
00:16:19.577 DEBUG OverclockingWidget - Updating Widget[ID=178]. initByAlarm = true
00:16:19.589 DEBUG OverclockingWidget - Network available
00:16:19.590 DEBUG OverclockingWidget - Update was initiated by alarm.
00:16:19.590 DEBUG OverclockingWidget - Querying for Widget[ID=178]...
00:16:19.592 INFO  RaspiQuery - New RaspiQuery for host: ropi.no-ip.org
00:16:19.593 INFO  RaspiQuery - Connecting to host: ropi.no-ip.org on port 56565.
00:16:19.632 INFO  RaspiQuery - Using no host key verification.
00:21:01.499 ERROR TransportImpl - Dying because - {}
net.schmizz.sshj.transport.TransportException: Broken transport; encountered EOF
	at net.schmizz.sshj.transport.Reader.run(Reader.java:59) ~[na:0.0]
00:21:19.294 DEBUG OverclockingWidget - Receiving Intent: action=updateOneWidget
00:21:19.300 DEBUG OverclockingWidget - Updating Widget[ID=178]. initByAlarm = true
00:21:19.346 DEBUG OverclockingWidget - Network available
00:21:19.346 DEBUG OverclockingWidget - Update was initiated by alarm.
00:21:19.347 DEBUG OverclockingWidget - Querying for Widget[ID=178]...
00:21:19.588 INFO  RaspiQuery - New RaspiQuery for host: ropi.no-ip.org
00:21:19.590 INFO  RaspiQuery - Connecting to host: ropi.no-ip.org on port 56565.
00:21:19.833 INFO  RaspiQuery - Using no host key verification.
00:23:11.379 DEBUG RaspiQuery - Querying vcgencmd...
00:23:19.334 DEBUG RaspiQuery - Checking vcgencmd location: vcgencmd
00:23:19.374 DEBUG RaspiQuery - Path check output: bash: vcgencmd: command not found

00:23:19.417 DEBUG RaspiQuery - Checking vcgencmd location: /usr/bin/vcgencmd
00:23:19.451 DEBUG RaspiQuery - Path check output: bash: /usr/bin/vcgencmd: No such file or directory

00:23:19.497 DEBUG RaspiQuery - Checking vcgencmd location: /opt/vc/bin/vcgencmd
00:23:19.543 DEBUG RaspiQuery - Path check output:
00:23:19.544 INFO  RaspiQuery - Found vcgencmd in path: /opt/vc/bin/vcgencmd.
00:23:19.747 INFO  RaspiQuery - Querying core volts...
00:23:19.913 DEBUG RaspiQuery - Querying firmware version...
00:23:20.004 DEBUG RaspiQuery - Firmware version: c156d00b148c30a3ba28ec376c9c01e95a77d6d5 (clean) (release)
00:23:20.046 INFO  RaspiQuery - Querying memory information...
00:25:51.265 INFO  LoadAverageQuery - Querying load average for time period FIVE_MINUTES
00:25:51.368 DEBUG LoadAverageQuery - Checking line: 0.10 0.10 0.12 1/122 2714
00:25:51.370 DEBUG LoadAverageQuery - Checking line: 2
00:25:51.371 INFO  RaspiQuery - Disconnecting from host ropi.no-ip.org.
00:25:51.382 DEBUG OverclockingWidget - min: 0.0  max: 90.0 value: 43.3
00:25:51.383 DEBUG OverclockingWidget - Updating progressbar: scaledValue = 48.11111111111111
00:25:51.385 DEBUG OverclockingWidget - min: 500.0  max: 1200.0 value: 1000.0
00:25:51.386 DEBUG OverclockingWidget - Updating progressbar: scaledValue = 71.42857142857143
00:25:51.387 DEBUG OverclockingWidget - min: 0.0  max: 100.0 value: 10.0
00:25:51.388 DEBUG OverclockingWidget - Updating progressbar: scaledValue = 10.0
00:25:51.390 DEBUG OverclockingWidget - min: 0.0  max: 100.0 value: 84.0
00:25:51.391 DEBUG OverclockingWidget - Updating progressbar: scaledValue = 84.0
00:25:51.392 DEBUG OverclockingWidget - Updating widget[ID=178] view.
00:26:18.281 DEBUG OverclockingWidget - Receiving Intent: action=updateOneWidget
00:26:18.291 DEBUG OverclockingWidget - Updating Widget[ID=178]. initByAlarm = true
00:26:18.362 DEBUG OverclockingWidget - Network available
00:26:18.367 DEBUG OverclockingWidget - Update was initiated by alarm.
00:26:18.368 DEBUG OverclockingWidget - Querying for Widget[ID=178]...
00:26:18.377 INFO  RaspiQuery - New RaspiQuery for host: ropi.no-ip.org
00:26:18.378 INFO  RaspiQuery - Connecting to host: ropi.no-ip.org on port 56565.
00:26:18.450 INFO  RaspiQuery - Using no host key verification.
00:31:18.249 DEBUG OverclockingWidget - Receiving Intent: action=updateOneWidget
00:31:18.250 DEBUG OverclockingWidget - Updating Widget[ID=178]. initByAlarm = true
00:31:18.375 ERROR TransportImpl - Dying because - {}
net.schmizz.sshj.transport.TransportException: Broken transport; encountered EOF
	at net.schmizz.sshj.transport.Reader.run(Reader.java:59) ~[na:0.0]
00:31:18.384 DEBUG OverclockingWidget - Network available
00:31:18.385 DEBUG OverclockingWidget - Update was initiated by alarm.
00:31:18.385 DEBUG OverclockingWidget - Querying for Widget[ID=178]...
00:31:18.388 INFO  RaspiQuery - New RaspiQuery for host: ropi.no-ip.org
00:31:18.390 INFO  RaspiQuery - Connecting to host: ropi.no-ip.org on port 56565.
13:16:18.126 INFO  RaspiQuery - New RaspiQuery for host: ropi.no-ip.org
13:16:18.134 INFO  RaspiQuery - Connecting to host: ropi.no-ip.org on port 56565.
13:16:18.238 INFO  RaspiQuery - Using no host key verification.
13:16:22.726 INFO  RaspiQuery - Found vcgencmd in path: /opt/vc/bin/vcgencmd.
13:16:23.317 INFO  RaspiQuery - Querying core volts...
13:16:23.772 INFO  RaspiQuery - Querying memory information...
13:16:24.267 INFO  LoadAverageQuery - Querying load average for time period FIVE_MINUTES
13:16:24.524 INFO  RaspiQuery - Disconnecting from host ropi.no-ip.org.
13:21:17.988 INFO  RaspiQuery - New RaspiQuery for host: ropi.no-ip.org
13:21:17.990 INFO  RaspiQuery - Connecting to host: ropi.no-ip.org on port 56565.
13:21:18.043 INFO  RaspiQuery - Using no host key verification.
13:21:22.981 INFO  RaspiQuery - Found vcgencmd in path: /opt/vc/bin/vcgencmd.
13:21:23.455 INFO  RaspiQuery - Querying core volts...
13:21:24.113 INFO  RaspiQuery - Querying memory information...
13:21:25.124 INFO  LoadAverageQuery - Querying load average for time period FIVE_MINUTES
13:21:25.740 INFO  RaspiQuery - Disconnecting from host ropi.no-ip.org.

Before 13:16 opened and closed I the app, so you can see that the widget work again but without debug info...

Could you dump your alarm after widget update is'nt working any more with

adb shell dumpsys alarm > dump.txt

and post it here?

Hm, it seems like that the AsyncTask, in which the actual query runs, will be killed by Android when device is in sleep and onReceive() of the alarm is finished.
Android documentation suggests to use a Service for this, so thats something that definitely should be changed.

Probably that’s the problem...
When I attach the debugger to the emulator or phone the bug doesn't appear.

Well. I have a similar problem. Widget is not being automatically refreshed at all. Only manual refresh works. After adding it I have to force sync it in order to notice any data. And to update it I have to force sync and so on...

I'm not sure, but I think this bug is related to something else..

@indywidualny i think #117 is what you described?

Yes but in fact it never updates. When I'm adding it there is no data until I refresh it manually. Later I have to refresh it manually too in order to update the widget. It's not updated automatically.

I already fixed that, but it's not released yet.
I want to fix this issue too before next release.
Am 30.01.2016 14:02 schrieb "Krzysztof Grabowski"<EMAIL_ADDRESS>
:

Yes but in fact it never updates. When I'm adding it there is no data
until I refresh it manually. Later I have to refresh it manually too in
order to update the widget. It's not updated automatically.
—
Reply to this email directly or view it on GitHub
https://github.com/eidottermihi/rpicheck/issues/100#issuecomment-177171367
.


DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-archive-test-target_8912edd0-3643-4e66-97a9-89d061e622e5/pull/1 is merged into live branch.
Auto archive content to https://github.com/opstest2/docs-archive-test-target_8912edd0-3643-4e66-97a9-89d061e622e5.git

Docs Build status updates of commit c2470b2:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error-GitBranchDeletedOrForcePushed] Cannot sync git repo to specified commit because branch Release_Archive_master_2021-03-19-07-55-11 has been deleted or has been force pushed

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Can't set theme

Here's a reproduction: https://codesandbox.io/s/6ww513067n
It seems that the theme prop doesn't work and dark is always the default

Themes are external, you need to import them:
import 'tippy.js/themes/light.css';


Backspace doesn't work in windows telnet.

Description
When connecting to ranvier with windows telnet, backspace isn't interpreted correctly.
This means that almost all commands with backspaces in them fail and we have to retype them from scratch.
Expected outcome
If we accidentally type ';' instead of l, press backspace to erase the character and then type l, the look command should get executed.
Actual outcome
The game just displays 'Huh?' in this case. This means the command doesn't get recognized.
Steps to reproduce
On windows Wista and newer.

Go to control panel.
Select Programs and features.
Click enable or disable windows features (I'm not sure how exactly it's called in the english version of windows.).
Check the "telnet client" feature and click ok.
On all windows systems.
Press windows + r, wait for the run dialog to appear and then type telnet   where hostname and port are your ranvier's hostname and port, you can use both your local server as well as the official one to test this.
After pressing enter, telnet should appear and you should see the message of the day, this means you're successfully connected.
Try typing a few letters of some nonexisting character name, erase them with backspace and then type your real character name and press enter.
The game won't recognize your name even though you typed it correctly.

Version of Ranvier
1.1.1

I believe that this is actually an issue with the Windows telnet client. Most clients accumulate data as the user types, and then send a string when the user hits enter. Microsoft Telnet sends each character as it is typed.

Closing as I'm not sure there is a way to fix this, it seems to affect every mud I can find


attach files from a buffer

I need to attach files that do not live in the file system, and I find not good that was needed to be saved and then readed
It would be much better if we can attach directly buffers as files

Oh sorry, I just realized that I forgot to update the README.md too
somehing like...
mailGun.sendEmail({
  to<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>  from<EMAIL_ADDRESS>  subject: 'Email Subject',
  text: 'Email Text',
  attachment: {
    fType: 'text/plain',
    fLoc: __dirname + '/LICENSE'
  },
  otherAttachment: {
    fType: 'some/mime',
    fName: 'foo.bar',
    fBuffer: someBuffer
  }
}[, domainName]);


Forcing Woodstox on all Jackson XML modules.

Same fix as https://github.com/cqframework/clinical_quality_language/issues/768
A Java11-on-Android issue happens on all XmlMapper.builder() calls. The default XmlFactory provided by Jackson calls a JDK11's Streaming API for XML (StAX) javax.xml.stream.XMLInputFactory.newFactory function that does not exist on Android. That function is a simple service loader to find the XMLInputFactory and XMLOutputFactory implementations, which are provided Woodstox, a current forced dependency in our Jackson modules.
This issue can be easily solved by bypassing the service loader and hardcoding the use of Woodstox's Input and Output Factories:
XmlMapper.builder(new XmlFactory(new WstxInputFactory(), new WstxOutputFactory()))...

Instead of
XmlMapper.builder()...

Whoops. Did the PRs in the wrong order. Mind fixing the conflicts on this?


DLL Import Exception in Unity Editor

Hi,
So I am currently using the Unity example project, which is helping my research immensely! I just have 1 doubt: so when I click play on the example unity project, the debug logs give out a DLLNotFoundException for the hl2da dll file. This is obviously included in the plugins folder. However, when I deploy the same to the Hololens, it works. How is it possible? Can you explain the discrepancy with the Unity editor and the Hololens device?
Thanks!

Hello,
I do not know, sorry. I assume Unity is trying to run the project locally as x64 and attempting to load the x64 version of the hl2da plugin, which does not exist.
For quick testing, all images are copied into single channel R8/R16 (red) textures. Not sure if there is a grayscale texture format, have not looked into it. If there is none, then it may have to be converted to RGB using a shader that copies the red channel to the green and blue channels.
PV is the color camera as you said. For PV, the image is returned as NV12 so it has to be converted to RGB and copied into a RGB texture but this is not implemented yet.

Hi,
Thanks a lot for the response. I actually tried implementing the shader myself. Now the video seems to be oriented correctly (it is no longer flipped). However, I cannot seem to convert the YUV to RGB for the PV camera. Here is the code for the shader file and how I am using it.
Shader "Custom/NV12toRGB"
{
    Properties
    {
        _MainTex ("Y Plane", 2D) = "white" {}
        _UVTex ("UV Plane", 2D) = "white" {}
    }
    SubShader
    {
        Tags { "RenderType"="Opaque" }
        LOD 100

        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            // make fog work
            sampler2D _MainTex;
            sampler2D _UVTex;

            #include "UnityCG.cginc"

            struct appdata
            {
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
            };

            struct v2f
            {
                float2 uv : TEXCOORD0;
                float4 vertex : SV_POSITION;
            };

            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.uv = v.uv;
                return o;
            }

            half4 frag (v2f i) : SV_Target
            {
                float2 uv = float2(i.uv.x, 1.0 - i.uv.y);

                float Y = tex2D(_MainTex, uv).r;
                float U = tex2D(_UVTex, uv).r - 0.5;
                float V = tex2D(_UVTex, uv).a - 0.5;

                float3 rgb;
                rgb.r = Y + 1.3983 * V;
                rgb.g = Y - 0.39465 * U - 0.58060 * V;
                rgb.b = Y + 2.03211 * U;

                return half4(rgb, 1.0);
            }
            ENDCG
        }
    }
    FallBack "Diffuse"
}

Here is the method to update PV:
 void UpdatePV(hl2da_framebuffer fb)
    {
        int width = pvcf.width;
        int height = pvcf.height;
        int ysize = width * height;
        int uvsize = ysize / 2;

        tex_pv.LoadRawTextureData(fb.Buffer(0), ysize * sizeof(byte)); // Image is NV12, load Y only, use OpenCV to convert NV12->RGB
        tex_pv.Apply();

        IntPtr uvptr = fb.Buffer(0) + ysize * sizeof(byte);
        Debug.Log("UV-plane pointer computed");
        tex_uv.LoadRawTextureData(uvptr, uvsize * sizeof(byte));
        tex_uv.Apply();
        // Display frame
        Material mat = pv_image.GetComponent<Renderer>().material;
        mat.SetTexture("_MainTex", tex_pv);
        mat.SetTexture("_UVTex", tex_uv);
        Debug.Log("Texture set");
    }

Thanks a lot!

Hello,
The plugin now includes a function for NV12 to RGB conversion.
The code seems OK, what is the format of the tex_uv texture?

It is simply a Texture2D here is the declaration:
// declaration
private Texture2D tex_uv;

// In void Start method

tex_uv       = new Texture2D(pvcf.width / 2, pvcf.height / 2, TextureFormat.RG16, false);

Sure, here is an example https://github.com/jdibenes/hl2da/blob/6b2317c24cb57c7a2441aea481b91ecb5b07681b/hl2da_unity/Assets/Scripts/HoloLens2DA.cs#L491
So if the texture format is RG16 shouldn't V be tex2D().g in the shader?

Thanks a lot! That seems to have fixed the issue!

Hi I am experimenting with this repo. I am updating the data from PV on a quad. I am trying to scale up the size of the quad. However, when I do that the video from PV becomes very glitchy and does not update in real time. When the quad had a smaller size, I did not face such a problem. Is this a resolution issue? How can I resolve this?

Hello,
What PV resolution are you using?
Resolutions with a width that is not a multiple of 64 require that the destination memory (e.g., texture) is padded so the width is a multiple of 64. For example, for PV resolution 760x428 the texture size should be 768x428. hl2da_imt.GetStride_PV computes this value from width.


what's the difference between the proposed maps and small kernel-size gaussian maps ?

Thank you for your inspiring work. However, I don't understand the motivation of FIDTM maps. In visualization, the FIDTM you proposed seems to be similar to the traditional Gaussian map if you set the kernel size small enough. What is the difference between these two maps? Have you compared the counting performance or localization performance of these two maps?

Using the small Gaussian kernel (e.g., kernel =2, 4) to generate the density map will exist overlap in the extremely dense region. Another way is directly to use the point map to represent the crowd, without overlap in the crowd, but the point map lacks supervised information (regressing a point map is difficult), causing undesirable counting and localization performance. The FIDT maps provide enough supervision information and without overlap in the dense region, having the advantage of both point map and density map. In our experiment, the localization performance of FIDT maps is significantly better than the density maps, while the counting result of both is similar.

Thank you for your inspiring work. However, I don't understand the motivation of FIDTM maps. In visualization, the FIDTM you proposed seems to be similar to the traditional Gaussian map if you set the kernel size small enough. What is the difference between these two maps? Have you compared the counting performance or localization performance of these two maps?

Using the small Gaussian kernel (e.g., kernel =2, 4) to generate the density map will exist overlap in the extremely dense region. Another way is directly to use the point map to represent the crowd, without overlap in the crowd, but the point map lacks supervised information (regressing a point map is difficult), causing undesirable counting and localization performance. The FIDT maps provide enough supervision information and without overlap in the dense region, having the advantage of both point map and density map. In our experiment, the localization performance of FIDT maps is significantly better than the density maps, while the counting result of both is similar.

Thank you for your inspiring work. However, I don't understand the motivation of FIDTM maps. In visualization, the FIDTM you proposed seems to be similar to the traditional Gaussian map if you set the kernel size small enough. What is the difference between these two maps? Have you compared the counting performance or localization performance of these two maps?

Additionally, our recent work[1] has also proved that using small Gaussian kernels is not suitable for the crowd localization task, as shown in Tab12 in AutoScale[1].
[1] AutoScale: Learning to Scale for Crowd Counting and Localization. https://arxiv.org/pdf/1912.09632.pdf


Utilise the user-tool.sh to generate credentials

https://issues.redhat.com/browse/ISPN-11575 introduced encrypted security credentials so we should utilise these in the image. Instead of duplicating logic, the config-generator should just forward the parsed content of the identities.yaml to the bin/user-tool.sh included with the server.

user-tool.sh has been deprecated in favour of ./bin/cli.sh user create

Closing. The IDENTITIES_BATCH allows users/roles to be created via the CLI.


Interaction Service API reference

https://github.com/Brightside-F2F/brightside/wiki/Interaction-Service-API-Reference

@galaxy233 Nice work creating an API doc despite not having much info to go on!
Here's some notes:
All interactions are stored on the client (mobile device) as is the contact book, so getInteraction and getLastInteraction aren't of much use; neither are the methods under the Social Graph section.  But there needs to be a way to recover your contacts in case of accidental deletion, so maybe getAllInteractions (or equivalently getAllContacts)
Do you as an end-user need to know whether your contacts are verified unique?  Probably not; 3rd-party apps need to know this, and you might want to know this about yourself--so a request about your own uniqueness status would be useful.
Account update public key, update name, delete, etc.  We don't associate any data with the public keys in the graph.  Only 3rd-party apps do that, and how they handle this is up to them.
Uniqueness Verification You have the right idea here, but I was thinking of separating that into its own API.

@adamstallard Thanks for providing some clarification what will be needed in this API. Thinking about the separate layers of the system has given me a better idea of what kind of interfaces will need to be formulated.
getUniqueCount returns the total number of distinct identities in the network. I'm not sure exactly how this could be used, other than providing an overview of the network. It may not be necessary.
The rating system was something I thought of, and could be going in a completely different direction than you had envisioned. It could be used as a factor when developing algorithms to determine uniqueness. Example: something happened during the interaction to make party A think party B is untrustworthy.
Going even further with the rating system, we could implement something similar to the episode of Black Mirror, where each individual is tied to their rating, and people rate each other on each interaction. I don't believe this is what your were thinking for Brightside, but creating something like this would be a very interesting social experiment.

Reputation systems are one of the three main use-cases for brightside.  Eventually, there will be a full-fledged social network built around brightside, and the reputation scores you're talking about would feature there.  Let's remove that from the interaction service api for now, with the intention of adding it back to the brightside social network later.
On the subject of scores, though, there has been some evolution happening in the Brightside decstack channel.  We're now talking about having a "score" rather than a simple "yes/no" for verification checks.
The anti-sybil systems output a "score" for every user; before I was thinking of just having a threshold: if you're above it you're verified, but suncho got me thinking and I agree, that since we have the score let's just provide that and let each 3rd-party app decide what they want to do with it; they could have their own set of threshold levels for different types of activities in their app.

Thinking about languages / frameworks.  How do you feel about node.js?

This issue was moved to Brightside-Social/brightside-node#2


Unable to complete Invite User process

Steps to reproduce:

Invite a new user through the team page
Click the link in the e-mail
Fill in the form
Click 'Create Account'

Nothing happens when clicking the Create Account button. No visual indication or any network activity.

Anything missing for this task?
I believe a PR was merged for this issue?

This was closed by f3c4df3


[HOLD for payment 2023-09-07] 'FAB' popover menu is not opened when user Sign-up

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Navigate to sign-up page
Enter email & click on continue
Enter magic code

Expected Result:
'FAB' popover menu should be opened on sign-up
Actual Result:
'FAB' popover menu is not opened on sign-up
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: v1.3.59-0
Reproducible in staging?: Y
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/115492554/224660e6-bb48-4952-bab3-b93761c8220a
https://github.com/Expensify/App/assets/115492554/352b5645-ddfd-415f-a784-6b89bc97e3ff
Expensify/Expensify Issue URL:
Issue reported by: @Natnael-guchima
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1693369621472089
View all open jobs on GitHub

:wave: Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open StagingDeployCash deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:

Identify the pull request that introduced this issue and revert it.
Find someone who can quickly fix the issue.
Fix the issue yourself.

This is similar KI https://github.com/Expensify/App/issues/26076

Thanks @grgia!

Seems like we merged and CPed a fix. Removing the blocker label.

@grgia @amyevans @laurenreidexpensify
Dupe of this issue

This one was only reproducible on staging and the issue you linked was reproducible on prod and was reported on Aug 16 that is before the offending PR was merged to main.

I have reported this bug earlier like 15 days ago. So I think I'll be eligible for reporting bonus.
CC: @laurenreidexpensify @garrettmknight

Just flagging for eventual compensation that I reviewed the PR for this. cc @laurenreidexpensify

Just flagging for eventual compensation that I reviewed the PR for this. cc @laurenreidexpensify

I see that your reviewed PR which fixes the regression came from original PR you reviewed.
In that case, double compensation is eligible?

@situchan The regression comes from code added after I approved that PR, so I thought it would be treated more like a standard deploy blocker PR review. I did jump in and take over the PR review from the initial C+ who was assigned (and seemed unavailable), prioritising the review over other work, so I'd think at least some compensation would be due.
That being said, I'm a new C+ and this sort of stuff doesn't really seem to be documented anywhere so honestly unsure how it works in this case! :smile:

@jjcoffee can you please continue discussion on this thread for reference in the future so that other C+s know how much to get paid in such cases?

Looks like this bug report is actually a dupe of https://github.com/Expensify/App/issues/26076. I'll close the other one, but I think @DinalJivani should get the reporter payment.

@laurenreidexpensify Gentle bump for payment on this one!

@grgia @amyevans I'm not familiar with the back and forth here on the regressions etc - can you help me unpick this so we can get it closed? Thanks

@laurenreidexpensify
Gentle bump for payment
&
"Issue reported by:"   should be updated by my name. Thanks
cc: @garrettmknight

@laurenreidexpensify It was a regression from https://github.com/Expensify/App/pull/26182
https://github.com/Expensify/App/issues/26076 was reported in Slack August 16. https://github.com/Expensify/App/pull/26182 wasn't merged until August 29 so I don't really see how #26076 would have reported the bug before it was introduced 😄 That bug report looks specific to a cross-platform flow.
So to me it looks like:

@Natnael-Guchima is due $250 for reporting
@jjcoffee is due $1000 for PR review

But I'd like @grgia to weigh in first because she has more context than I do

@laurenreidexpensify I fixed the regression in this PR https://github.com/Expensify/App/pull/26293 after being alerted on slack by @jjcoffee. I agree it's just whichever bug report came first in this case

They are different bug reports. https://github.com/Expensify/App/issues/26076 is a cross-platform test with different test steps. By the time https://github.com/Expensify/App/issues/26076 was reported the regression fixed here wasn't introduced as @amyevans  mentioned here.

@DinalJivani can you please retest your report again with the exact test steps, and share a video so that we might see if the issue you reported is still reproducible or not?

@grgia @amyevans @garrettmknight
Sorry to tag y'all 😅
Steps are simple:

Logout of all instances, Staging and New
Register with new Email
Open magic code link from email -> Click on 'just sign in here' link

@Natnael-Guchima The bug reports or steps might be same but the resolution to it might be the same for both issue.
https://github.com/Expensify/App/assets/58871336/7e2a5ee8-9cd1-4aa1-825b-bc26d0206201

@DinalJivani correct me if I am wrong. From the video, it seems that the issue you have reported still exists, right?

@Natnael-Guchima Yes I am still able to reproduce this issue.
May be, That's why I could find that bug even before it occurred from regression

Hmmm, if it is still reproducible I think the fix doesn't address the issue you have reported. IMO, both issues seems to be different because one of the bug is fixed and the other is not by the fixing PR.

Yes my issue was closed based on comment by @jjcoffee that it will be fixed in this PR
@Natnael-Guchima  let's wait for them to decide on this now!

@laurenreidexpensify Thanks, offer accepted!

Accepted the offer. Thanks @laurenreidexpensify

@jjcoffee can you please continue discussion on this thread for reference in the future so that other C+s know how much to get paid in such cases?

@jjcoffee bump ^

Payments issued, closing


Don't use OnSendingHeaders

As we've decided to terminate the middleware stack and initiate creating the response, we shouldn't use OnSendingHeaders. Particularly to set the status code as middleware further down the stack can't see what response we've decided to return.
I appreciate this might be a breaking change for some people but I think it's the 'right' answer - so hopefully you might consider accepting this change.

To avoid a breaking change you could add an optional param to the middleware constructor and use a if to exclude the OnSendingHeaders section.

Hi, thanks for considering my PR.
To me that seems like a shame - to introduce the complexity of a flag to switch a behaviour that I don't believe is correct. To me the current behaviour feels like a bug - and this is a fix to that bug.
So maybe this change could wait for a major release - where breaking changes might be allowable?

I will concede that making this change breaks any code reliant on the last-minute mutation of the response, but...
The currently implemented behavior:

does not match that of the ThrottlingHandler which has an immediate mutation
mutates the response outside of the middleware's execution scope, preventing any middleware that runs after the fact from making accurate decisions based on the response and any further mutations would be discarded

Based on those two things, to me it appears as though the currently released implementation is invalid and a bug, and that the last-minute mutation behavior just should not be permitted (and can be achieved by attaching this middleware last if it is truly desired).


protocol stream .end() not working as expected

The end event on the protocol stream returned by core.replicate() does not seem to propogate as expected.
Use case:
I want to gracefully end a replication stream without destroying it.
Expected behaviour:
const s = core.replicate(true)
s.on('end', () => console.log('end'))
s.end()

I would expect the above code to output end. It doesn't. There is a scenario where it does work: if the core that is replicating is a read-only peer, and you call s.end() after first calling core.update(). There does not seem to be a way to end the replication stream for the writer core.
Minimal reproduction:
import Hypercore from 'hypercore'
import RAM from 'random-access-memory'
import test from 'tape'

test('can end replication stream from writer', async t => {
  t.plan(2)
  ;(async () => {
    const core1 = new Hypercore(RAM)
    await core1.ready()
    const core2 = new Hypercore(RAM, core1.key)

    const s1 = core1.replicate(true)
    const s2 = core2.replicate(false)

    s1.on('end', () => t.pass('s1 end'))
    s2.on('end', () => t.pass('s2 end'))

    s1.pipe(s2).pipe(s1)

    await core1.update()
    s1.end()
  })()
})

test('can end replication stream from reader', t => {
  t.plan(2)
  ;(async () => {
    const core1 = new Hypercore(RAM)
    await core1.ready()
    const core2 = new Hypercore(RAM, core1.key)

    const s1 = core1.replicate(true)
    const s2 = core2.replicate(false)

    s1.on('end', () => t.pass('s1 end'))
    s2.on('end', () => t.pass('s2 end'))

    s1.pipe(s2).pipe(s1)

    await core2.update()
    s2.end()
  })()
})

Thanks @LuKks that makes sense, however this is not the behaviour I am seeing: s.end() does not cause any end event on the other side. You can see from running the tests in my comment that the only event that fires is s2.on('end') when you call s2.end(), in the second test. No other end events fire.

Ok did some digging and got the following results. It seems like s.end() results in inconsistent behaviour if called in the same tick, or the next tick, but is consistent (but not quite in the way that you suggest) if I call it after setTimeout(0):
import Hypercore from 'hypercore'
import RAM from 'random-access-memory'

const core1 = new Hypercore(RAM)
await core1.ready()
const core2 = new Hypercore(RAM, core1.key)

const s1 = core1.replicate(true)
const s2 = core2.replicate(false)

s1.on('end', () => console.log('s1 end'))
s1.on('close', () => console.log('s1 close'))
s2.on('end', () => console.log('s2 end'))
s2.on('close', () => console.log('s2 close'))

s1.pipe(s2).pipe(s1)

s2.end()

This code logs nothing, either when calling s1.end() or s2.end().
If I await process.nextTick I get different results depending on which core I await and which stream I end:
await new Promise(res => process.nextTick(res))
s1.end()
// s1 end
// s1 close
// s2 close

await new Promise(res => process.nextTick(res))
s2.end()
// s2 end
// s1 end
// s1 close

If I await setTimeout(0) then I get consistent, but not quite what I would expect based on your comment.
await new Promise(res => setTimeout(res, 0))
s1.end()
// s1 end
// s1 close
// s2 close

await new Promise(res => setTimeout(res, 0))
s2.end()
// s2 end
// s2 close
// s1 close

Try commenting out the lines where you listen to 'end' events, and try again without waiting the next tick

Meanwhile, instead of commenting it out do this:
s1.on('end', () => s1.end())
s2.on('end', () => s2.end())

And try again without waiting any tick

Unsure if you can end these streams atm. We tend to use the replicate(stream) api everywhere with a swarm stream, and the stream returned works a bit differently, but we'll look into it.


Storing images in memory without saving them on a disk

Is here any ability to trigger image and get it into some variable (instead of saving to the file) for further use in opencv functions?
(In C++ or C)
Thanks in advance.

Hello
yes, that is possible. Simply check for the "appsink" Gstreamer module. https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-appsink.html
Stefan

Thx.


Add index documentation

I'm happy to find that duckdb adds ART as an index solution.
I'm not sure if this is already available for use. If so, I think it might be better to document its usages, because I'm pretty confused by the grammar now.
I see some examples in the file test/sql/index/test_art_index.cpp, but still not pretty sure.
Maybe some docs can help? (If the docs already exist, that's great, and please let me know.)

@pdet ?

I'll add a index usage page to the documentation on https://www.duckdb.org/ later this week.

Done.
https://www.duckdb.org/docs/current/sql/indexes