proposal: net/http: add support for the upcoming "Structured Field Values for HTTP" RFC

Structured Field Values for HTTP is an upcoming RFC from the HTTP Wording Group defining a set of well-defined data types to use in HTTP headers and trailers.
This new format will improve the interoperability and the safety of HTTP by allowing to create generic parsers and serializers suitable for all HTTP headers. It is already used in the wild, for instance for the new security headers supported by Google Chrome (Sec-Fetch-Dest etc), the Signature proposal in Prefer-Push or in Vulcain.
After the RFC publication, it would be nice to be able to parse and generate such headers directly using the standard library.
I proposed a patch adding support for this spec in #41045. The code is also available as a standalone library: https://github.com/dunglas/httpsfv

I think this is probably best outside the standard library until the RFC is accepted. Once it's in the standard library it's pretty frozen and we can't change APIs or break behavior easily.

For sure!

@dunglas, your README has a broken link. Should be https://pkg.go.dev/github.com/dunglas/httpsfv.

Also, given your comment above (For sure!) it sounds like you are saying to close this proposal until at least the RFC is accepted?

@rsc thanks, link fixed.
We should at least wait for the Internet-Draft to become a RFC before merging the patch related to this proposal. However, it should happen soon. The specification is in last stages of standardization. The algorithms described in the I-D and implemented in the patch will most likely not change anymore.
The proposal can probably be kept open, and we can use the time window before the publication as a RFC to review and improve the patch.

@rsc we can maybe reduce the API surface a bit, but probably not much. The spec defines many data structures, and several of them cannot be implemented using only Go's builtins: https://httpwg.org/http-extensions/draft-ietf-httpbis-header-structure.html#types
The main difference is that SFV's maps (Dictionary and Params) are ordered while Go's map isn't. Much of the API surface is related to these two types and the related methods. We can maybe remove the Del() methods from them, but I'm not sure if it's worth it (having the ability to remove elements from maps is convenient in some cases).
Another option would be to use interface{} in most places. This would allow to merge all Unmarshal* methods and maybe to also merge Dictionary and Params, but it will make the library less safe and less practical to use.
However I may have missed opportunities to reduce the API surface. I'm open to any suggestion to simplify this.

It would be nice to see how widely this is adopted. Being an RFC is one thing; being widely used is another.
It might be that x/net/http/sfv would be a decent starting place?
Even if we do put something in x/net I think we'd need to do a very careful API review to try to reduce the amount here.
/cc @neild

It seems like we should put this on hold for now. We are probably going to have to rethink a bit for HTTP/3, and since there are not many uses of structured field values yet, it might make sense to wait until that work is going on too, to try to deal with potential API changes all at the same time.
For now, we've already seen that nothing prevents using a third-party package for this functionality.

Structured Field Values are now officially an RFC: https://www.rfc-editor.org/rfc/rfc8941.html
Should we consider adding this implementation in x/net/http/sfv or should we wait for more headers to adopt it?

@dunglas I looked at https://github.com/dunglas/httpsfv and I must say that I agree with @rsc that the API is large and not very Go idiomatic.  My proposal would be (for standard library):

This should go under encoding/sfv namespace.
It should be made to marshal/unmarshal standard structs and maps and slices like JSON marshaling does, using sfv.Marshal and sfv.Unamarshal functions
It should use struct tags for controlling sfv specific behavior (e.g., parameter handling).

For example, I made a simpler implementation now (others: feel free to request to make it a stand-alone package if anyone else finds it useful as well) which just takes a map[string]interface{} as input and marshals it. It does not support parameters, but if I want to convert only from Go to SFV it works great to encode and send some values.
So my API proposal would be:

Marshal function which takes interface{} as input and returns string, error.
Unmarshal should take []string as input, because SFV strings could be split among multiple headers and in general http.Header values are []string so you do not have to think about which value to pick.
Custom types can implement MarshalSFV or UnmarshalSFV method to control their own serialization.
We should support marshaling regular maps and slices.
Struct tags:

"sfv:name" - under which dictionary key should this be marshaled to/unmarshaled from
"sfv:,display" - for strings, to encode it as (still proposed) display string - we can add it later if/when that draft becomes a standard
"sfv:name,params" - this makes the field provide and get params for the key with name name
"sfv:,value" and "sfv:,params" - for list items it tells them where the list value gets stored and where the list value's params go

So my proposal to support parameters is that one value maps to two Go fields in a struct (when there is a struct), one for the value and one for params. If target is not a struct, params are dropped (e.g., when using map[string]interface{} or []interface{} as target type).
We should probably also look at JSON v2 design doc by @dsnet and see if we can pick some ideas there for the API. For example, the signature of  MarshalSFV and UnmarshalSFV should probably be worked out so that they can get struct tags to tune their behavior.

FYI, my implementation is here: https://github.com/shogo82148/go-sfv

@shogo82148: Also it does not look very idiomatic? Why InnerList and not simple a slice? Dictionary instead of simply any struct?

RFC 9421 (HTTP Message Signatures) recently was recently moved to the standards track, and relies on RFC 8941. I understand that RFC 8941 is not widely adopted yet, but would strongly prefer to build on either an /x/net or standard lib implementation in an RFC 9421 library.

The current iteration is RFC 9651, which obsoletes RFC 8941.
RFC 9651 is currently only referenced by drafts https://datatracker.ietf.org/doc/rfc9651/referencedby/ though it is backwards compatible with RFC 8941, which is referenced by several proposed standards https://datatracker.ietf.org/doc/rfc8941/referencedby/ plus RFC 9110 / STD 97 and RFC 9205 / BCP 56

I'll plan to update my implementation soon. This should be easy, there are few changes.


TS1086: An accessor cannot be declared in an ambient context.

    ERROR in node_modules/@asymmetrik/ngx-leaflet/dist/leaflet/layers/base/leaflet-baselayers.directive.d.ts(22,9): error TS1086: An accessor cannot be declared in an ambient context.
    node_modules/@asymmetrik/ngx-leaflet/dist/leaflet/layers/base/leaflet-baselayers.directive.d.ts(25,9): error TS1086: An accessor cannot be declared in an ambient context.
    node_modules/@asymmetrik/ngx-leaflet/dist/leaflet/layers/control/leaflet-control-layers.directive.d.ts(21,9): error TS1086: An accessor cannot be declared in an ambient context.
    node_modules/@asymmetrik/ngx-leaflet/dist/leaflet/layers/control/leaflet-control-layers.directive.d.ts(22,9): error TS1086: An accessor cannot be declared in an ambient context.
    node_modules/@asymmetrik/ngx-leaflet/dist/leaflet/layers/leaflet-layers.directive.d.ts(24,9): error TS1086: An accessor cannot be declared in an ambient context.
    node_modules/@asymmetrik/ngx-leaflet/dist/leaflet/layers/leaflet-layers.directive.d.ts(25,9): error TS1086: An accessor cannot be declared in an ambient context.

I think this is caused by: https://github.com/microsoft/TypeScript/issues/33939 - It's a backward compatibility with newer Typescript versions.
I suspect your solution is to upgrade Typescript and ng cli to make sure you're running the latest CLI and at least typescript 3.7+.
If not, you should post your package.json

Updating to Angular 9 fixed this for me. https://update.angular.io/

Closing as upgrading Angular CLI is the fix.


Fix chunking util to never call for an empty chunk

An empty chunk was being returned when the chunk size and overall size hit the same border. This could hit a panic in the new chunked check dispatch code

and this is why you only ever have one implementation of chunking folks!

and this is why you only ever have one implementation of chunking folks!

We do! It just wasn't handling this case :P


is cameraRoll create another activity for take photos?

I had develop a cordova app which uesd camera plugin.
It came across this issue : see here PhoneGap camera restarts the application

It occurs because when the camera is triggered, the android activity goes background (onStop state), waiting for the camera to take the picture. Then the GC comes and kills the activity to free memory before the conclusion of camera action, and when the camera is done your activity has already died. That is why the app is restarted.

I am curious about whether RN's cameraRoll api consider this situiation.

The CameraRoll api isn't for taking photos using the Camera, its for accessing photos which are already on the device.

Hey, we use Github for issues only and all questions should be asked on StackOverflow. Please consider posting your question up there providing more details on what specifically you'd like to achieve!
This is for us to keep the number of issues smaller so that we can iterate on React Native versions faster and provide you with the better developer experience.
If you have any ideas on how we could improve the entire process, please share your thoughts on React Native Community group.


Installation error

In Glitc, I try to install the newest version but i get sqlite3 error.
I'm solving the issue with enable-pnpm but the bot do not load up then.
It's last error is:
.../5.4.3/node_modules/better-sqlite3 install:   CC(target) Release/obj.target/sqlite3/gen/sqlite3/sqlite3.o

What is Glitc?

Let me know it this fixes it, run before install: npm i -g node-gyp@latest

Closing due to inactivity.


[Gally]: master <- dev

Automatically created by Git-Ally

:tada: This PR is included in version 4.0.2 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


'makebox' does not put tab characters for new line

Using tesseract to make boxefiles using makebox does not add tab character for new line as needed for LSTM training.
Using text2image to make box files adds the newline boxes with tab characters.

Duplicate of https://github.com/tesseract-ocr/tesseract/issues/768


fix(catalog): remove timeout and add logs

Problem:

Sync an template with tags more than 100 may take more than 5 min to update template version, remove timeout.
The logs of sync an catalog are too brief, it is hard to monitor the progress of sync an catalog.

Solution:

Remove timeout of sync template.
Add debug logs of sync an catalog.

Related Issue:
#1048

can we unify the info in the format: "catalog.Name/template.Name:template.Version"?

template may not belongs to a catalog.

can we unify the info in the format: "catalog.Name/template.Name:template.Version"?

template may not belong to a catalog.

use "template.Name:template.Version"


Port code to Python 3

Using the future package, make arcana Python 2+3 compatible

Implemented in 0.2.3


avoid timeout error on disconnect

What do you think? Ain’t that a cleaner solution? With that I don’t see red ERRORs on disconnect in the log anymore.

I like it except for the name of the variable. I'd prefer to rename no_timeout_error to 'disconnected'. It's explicitly stating what happened.

Current coverage is 35.89% (diff: 100%)

Merging #6 into tls-refactor will not change coverage

@@           tls-refactor         #6   diff @@
==============================================
  Files                24         24
  Lines              6068       6068
  Methods             782        782
  Messages              0          0
  Branches           1535       1535
==============================================
  Hits               2178       2178
  Misses             3890       3890
  Partials              0          0

Powered by Codecov. Last update 0d71f65...d0d8dd0


pretrained SAE models

Dear @sukrutrao @SwetaMahajan
Thank you for sharing the code. Would you mind sharing the weights of SAE and also the concept names associated to each neuron.
Thank you.

@sukrutrao @SwetaMahajan  +1 for this

Hi @KKNakkav2, @heetez1euler, we will upload these soon.

Thank you.

Hello authors,
Any update on this.

Hi @krishnakanthnakkav2, please find the checkpoints and the assigned names at the following link:
https://nextcloud.mpi-klsb.mpg.de/index.php/s/PZYoKSq29XaEgL6

Thank you for releasing!


helm upgrade --instrall => Error: unknown flag: --create-namespace

The command
helm upgrade --namespace=xxxx --install  --create-namespace --wait --timeout 15m -f answer.yaml xxxx .

caused the error
Error: unknown flag: --create-namespace

My DevOps CI ran helm commands within container dtzar/helm-kubectl:3.1.2 . The env is below
Output of helm version:
helm v3.1.2
Output of kubectl version:
kubectl v1.17.3
Cloud Provider/Platform (AKS, GKE, Minikube etc.):

@iWangJiaxiang The --create-namespace flag is only available for the helm install command.

@hickeyma Thank you for quick reply.
According to Helm | Helm Upgrade

  --create-namespace             if --install is set, create the release namespace if not present

From: https://stackoverflow.com/a/60817927/8144350

This feature is implemented in helm >= 3.2 (Pull Request)
Use --create-namespace in addition to --namespace

Sorry, my bad @iWangJiaxiang. I got slightly confused with something else.
I just tested off the current main branch and it works as follows:
$  helm upgrade --install --namespace=foo-ns --create-namespace mychart mychart/
Release "mychart" does not exist. Installing it now.
NAME: mychart
LAST DEPLOYED: Wed Jul 15 08:58:06 2020
NAMESPACE: foo-ns
STATUS: deployed
REVISION: 1
NOTES:
1. Get the application URL by running these commands:
  export POD_NAME=$(kubectl get pods --namespace foo-ns -l "app.kubernetes.io/name=mychart,app.kubernetes.io/instance=mychart" -o jsonpath="{.items[0].metadata.name}")
  echo "Visit http://<IP_ADDRESS>:8080 to use your application"
  kubectl --namespace foo-ns port-forward $POD_NAME 8080:80

Just checked and it was introduced in 3.2.0 as you mentiuoned. In the description, you specified you are using 3.1.2. Is that correct?

Maybe you should consider an version upgrade.

Thank you all.


[Fix] The interface multiscale_output isd efined but not used

The interface multiscale_output is defined in ``_make_stage but never used.
HRNet should be allowed to output a one-level feature in stage 4.
So we should use multiscale_output while making stage 4 and add interface  multiscale_output in the initialization function of HRNet.

@Junjun2016, please have a look, there is the same problem in mmseg.

Please update the title.

Unitests for other module in HRNet is also necessary.
Please refer to unitests for ResNet.

kindly ping @Junjun2016.

kindly ping @Junjun2016.

LGTM


aiohttp 2.0+ support?

Just wanted to know if there is a particular issue why it was restricted to aiohttp <2.0. Was it simply not passing the unittests or someone just needs to thoroughly check unittests and compatibility?

@rutsky I am happy to look into this and figure what needs to be fixed for 2.0 support. I want to move to aiohttp 2.0+ on my system and this one is a blocker. Noticed that you mentioned this will be supported in next release but I figured I'll ask when that might happen.

@trivigy looks like there were only issues in tests. Let's wait for #82 CI completion and I'll do aiohttp_cors 0.5.2 release that will require aiohttp>=1.1.
@trivigy can you try previous aiohttp_cors (0.5.0) release with aiohttp 2.0? I think it should work with aiohttp 2.0, but I haven't thoroughly checked changes in aiohttp 2.0.

@trivigy aiohttp_cors 0.5.2 with aiohttp 2.0 support released, please give it a try!

@rutsky Thanks a lot!!! I appreciate the quick turn over. Let me know if you ever need anything.


[FAB-18485]Fabric orderer - add config option for client keepalives

added config option for orderer client keepalives.  Defaults defined as per the
existing hard coded values.
Signed-off-by: Parameswaran Selvam<EMAIL_ADDRESS>

/ci-run

/ci-run

Sorry, I missed out changes in clientconfig(Orderer/common/server/main.go) where these new options are consumed. I included it into PR now.

@guoger updated the PR as per comments. could you review the PR again.

The code looks good to me now.
I thought I would take the opportunity to try it out and watch for the keepalives to verify it works as we would expect.
I added debug to the config code and I can see the ClientInterval is getting set as expected.
However, when using Wireshark, I don't see any keepalives from the follower (client) to leader (server) as I would expect.
I do however see keepalive messages from the server to client every 15 seconds, which is strange because I didn't set anything to 15 seconds, nor is 15 seconds a default in orderer or grpc go, as far as I can tell.
Another thing that is strange is that these keepalives every 15 seconds always seem to go from server to client, however when I restart an orderer, sometimes the 15 second keepalives go from follower to leader, and sometimes they go from leader to follower (but always from server side to client side).  This makes me think the connections are not getting established as Yacov described to us.
I couldn't figure out how to enable go grpc or http trace to see the connections and keepalives, which is why I'm using Wireshark.
@yacovm Any ideas on how to verify which grpc connections are established? Are there some debug messages I should look for, or would I need to add some more? Any clue why I would see a 15 second keepalive that I didn't configure?

I do however see keepalive messages from the server to client every 15 seconds, which is strange because I didn't set anything to 15 seconds, nor is 15 seconds a default in orderer or grpc go, as far as I can tell.

Could it be the leader heartbeat? Leaders send heartbeats to followers on a periodical basis. We don't know what is actually sent because in Raft it's encrypted with TLS.

however when I restart an orderer, sometimes the 15 second keepalives go from follower to leader, and sometimes they go from leader to follower (but always from server side to client side).

Did you restart the leader by chance?

Here is an example of the 15s keepalive message in Wireshark, note that it goes from 6050 to 59746. My orderer is listening on 6050, so if I'm reading this correctly, it is a server to client keepalive message.

According to the documentation: "gRPC sends http2 pings on the transport to detect if the connection is down. " and looking at the code it appears indeed to be the case.
So you won't be able to see it as a keepalive in wireshark because it's encrypted. Even if it wasn't encrypted, I don't think wireshark classifies http/2 without you explicitly telling it to, and even then, probably it won't present it's an http/2 keepalive with such a label.
Please next time upload the log so we can open it ourselves and understand better what is going on.
As for debugging gRPC, can you perhaps try doing GODEBUG=http2debug=2  ?

Ok @yacovm I looked a bit deeper and I understand what is going on now.
The 15s server to client keepalive I'm seeing is for the deliver service (from orderer to peer), not the consensus service. If I stop the peer those messages go away. So we can ignore that.
Concerning consensus service, what I see is a leader (client) to follower (server port 6050) step message on connection1, followed immediately by a follower (client) to leader (server port 6051) response message on connection2. Here's the log snippet showing the step and response on different connections:
Leader (Raft2):
2021-07-15 14:29:20.163 EDT 01f1 DEBU [orderer.consensus.etcdraft] consensusSent -> Sending msg of 28 bytes to 1 on channel test-system-channel-name took 3.883µs
2021-07-15 14:29:20.163 EDT 01f3 DEBU [orderer.common.cluster.step] sendMessage -> Send of ConsensusRequest for channel test-system-channel-name with payload of size 28 to orderer.example.com(<IP_ADDRESS>:6050) took 41.735µs
2021-07-15 14:29:20.163 EDT 01f6 DEBU [orderer.common.cluster.step] handleMessage -> Received message from orderer.example.com(<IP_ADDRESS>:59225): ConsensusRequest for channel test-system-channel-name with payload of size 28

Follower (Raft1):
2021-07-15 14:29:20.163 EDT 0175 DEBU [orderer.common.cluster.step] handleMessage -> Received message from orderer2.example.com(<IP_ADDRESS>:59222): ConsensusRequest for channel test-system-channel-name with payload of size 28
2021-07-15 14:29:20.163 EDT 0176 DEBU [orderer.consensus.etcdraft] consensusSent -> Sending msg of 28 bytes to 2 on channel test-system-channel-name took 3.038µs
2021-07-15 14:29:20.163 EDT 0177 DEBU [orderer.common.cluster.step] sendMessage -> Send of ConsensusRequest for channel test-system-channel-name with payload of size 28 to orderer2.example.com(<IP_ADDRESS>:6051) took 68.247µs

So the response does not use the same connection1, it uses its own connection2. This is different than what you mentioned but I can accept it as fact since that is what the log shows.
Follower (client) to leader (server) transaction broadcast messages also uses the same connection2.
Since the default tick interval is 500ms, there will never be idle time on either connection. This is why I'm not seeing the keepalive messages that I had configured, they are truly not needed.  I then increased tick interval to 15s and set client keepalive to 12s, and now I do see the keepalive message 12 seconds after the step response.
So this proves that this PR to add a client keepalive configuration works as expected. But based on the default tick interval of 500ms and the fact that both connections are exercised for step messages, I think the conclusion is that we do not need a client keepalive after all (although it wouldn't hurt anything).
Does my assessment make sense to you? And if so, should we close this PR since no client keepalive is needed after all?

@denyeart  - this makes sense.  I did not think that we actually had idle connections at the gRPC layer we actually do send ticks at the Raft layer.  I guess it does not hurt, but fundamentally I don't think it is actually needed.

@denyeart - this makes sense. I did not think that we actually had idle connections at the gRPC layer we actually do send ticks at the Raft layer. I guess it does not hurt, but fundamentally I don't think it is actually needed.

I think the rational behind this PR is that if you have a long lasting and idle connection from a follower to a leader, then a load balancer along the path might reap the connection, and then when a transaction will be forwarded from that follower to the leader, it will not get to the leader because the connection is dead.

@denyeart - this makes sense. I did not think that we actually had idle connections at the gRPC layer we actually do send ticks at the Raft layer. I guess it does not hurt, but fundamentally I don't think it is actually needed.

I think the rational behind this PR is that if you have a long lasting and idle connection from a follower to a leader, then a load balancer along the path might reap the connection, and then when a transaction will be forwarded from that follower to the leader, it will not get to the leader because the connection is dead.
Unless you're saying that for every heartbeat from the leader, there is an ack from the follower?
I think that you're right:
func (r *raft) handleHeartbeat(m pb.Message) {
	r.raftLog.commitTo(m.Commit)
	r.send(pb.Message{To: m.From, Type: pb.MsgHeartbeatResp, Context: m.Context})
}

So the response does not use the same connection1, it uses its own connection2. This is different than what you mentioned but I can accept it as fact since that is what the log shows.

I never said they are on the same connection... I know that Raft nodes always send messages via client connections and receive them via server connections. I did write that code after all...

Follower (client) to leader (server) transaction broadcast messages also uses the same connection2.

We have a single TLS connection between every pair of nodes and all gRPC streams are multiplexed on it.

So this proves that this PR to add a client keepalive configuration works as expected. But based on the default tick interval of 500ms and the fact that both connections are exercised for step messages, I think the conclusion is that we do not need a client keepalive after all (although it wouldn't hurt anything).

How does it prove it? You are showing application logs and the gRPC keepalive is in a lower layer that is not quoted by you and I do not think it's even quoted.
I don't see a reason to have a client keepalive if we do not need it.  But now we have proven that both connections get exercised at every step tick interval so the client keepalive is not needed.
How does it prove it? I used Wireshark to verify the step message use both connections (aligned with the orderer logs), and to verify that client keepalive messages showed up if configured frequently enough using this PR (those do not show up in orderer logs but do show up in Wireshark as smaller messages).
Ultimately, I agree that this PR is not needed, as you say a misconfigured client keepalive will cause more problems than we were trying to solve. So let's close it if nobody else has comments.

How does it prove it? I used Wireshark to verify the step message use both connections every tick interval (aligned with the orderer logs), and to verify that client keepalive messages showed up if configured frequently enough using this PR (those do not show up in orderer logs but do show up in Wireshark as smaller messages).

Oh I see, you're saying that the when you set the keepalives to be more frequent than the heartbeats, the wireshark messages also increased in frequency accordingly.

nice work @denyeart

Ultimately, I agree that this PR is not needed, as you say a misconfigured client keepalive will cause more problems than we were trying to solve (if configured too frequent the server will tell the client to go away). So let's close it if nobody else has comments.

Agreed, let Param close this.


Command failed - docker exec aspnetcore_sample ipconfig

I could not get this sample to work. I cloned the sample app and ran it locally. And I was able to build it and run it in Docker for Windows. docker ps shows that it's running, but the command to determine the container's IP address fails. When I run 'docker exec aspnetcore_sample ipconfig' I get 'OCI runtime exec failed: exec failed: container_linux.go:348: starting container process caused "exec: "ipconfig": executable file not found in $PATH": unknown'. I ran 'docker container inspect container aspnetcore_sample', the output of which includes an IP address, but when I browse to that IP address in my browser I get no response.

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

ID: 9731aae1-505b-abb1-0d4b-d6a83ec735e1
Version Independent ID: 760790d5-0e81-ea6c-19ea-f226d08ddf1f
Content: Docker images overview - .NET Core
Content Source: docs/core/docker/building-net-docker-images.md
Product: dotnet-core
GitHub Login: @JRAlexander
Microsoft Alias: johalex

zoehart, if you are using a Linux container (even on a Windows machine with Docker for Windows) then I don't think you need to/can run the ipconfig command. That tutorial step is part of running the app in a Windows container. Apologies if I'm mistaken!

Yes, I think that the root of my problem was that I thought Docker for Windows had created a Windows container, not a Linux container. When I installed Docker for Windows, I checked an option that said something like "Use Windows containers instead of Linux containers". Based on that, I thought/assumed that my containers would be Windows containers. I ended up going into settings and changing it over to use Windows containers and all worked well after that. Maybe the install option I checked isn't working... or didn't mean what I thought it meant?

@zoehart It looks like the question you raised was answered. If you still feel a need to continue the discussion, feel free to reopen it and add your comments.

Hi @zoehart ,
I am also getting the same error:
OCI runtime exec failed: exec failed: container_linux.go:348: starting container process caused "exec: "ipconfig": executable file not found in $PATH": unknown
Could you please help me how you would have fixed this issue?
Thanks
Sudhir


Favorite characters are sorted above NEW characters in the add character modal

https://discord.com/channels/785153694478893126/787340960173391903/990346881815175268
NEW characters should always be on top

Tagging onto this

Tagging onto this

should be a separate issue.

I think we can modify the sorting logic, so that "new" and "favorite" are both sorting, and in this case, it would be "new" with "favorite" tiebreaker. Might be a case for multiple tiebreakers, so tiebreakers should be an array...

I was thinking the same thing in regards to updating tiebreakers to be more comprehensive

looks like you have a way forward, i expect PR at the end of the week.


Disable (or extend) auto-logout of the Console?

When using the console feature, inside a container, I have to repeatedly log back into the console over and over. Often-times I'll runs some commands, have to go do some research/Google-Fu, etc, and then I come back and it's already closed, and all the stuff I had done in it that I may need to copy/paste into a forum or something has gone along with it.
(referring to this area)

Is there some switch or setting that I can either completely disable auto-logout or set it's timeout length to something drastically larger than what it is? I'd rather it just logout when I navigate away from that section, or close the window entirely.

Hi there;
The console connection is not designed to time out in Portainer, are you using a proxy? as this may be related to the configuration of that. As has been the case previously which a user discussed here

ping @STaRDoGG were you able to solve your problem?

Hi @itsconquest Sorry for not responding sooner, had a death in the family and still dealing with it.
I did try to increase the timeout in the conf file and I think it might've helped, but haven't fully tested things yet.

I am sorry to hear that @STaRDoGG , my condolences to you.
If you find this hasn't solved the issue, let me know and we can investigate further.

@itsconquest  Thank you, I appreciate it. =)
If I run into issues with it again, I will revisit this thread.

I am having this issue running Portainer behind Traefik 2.2. Portainer log shows
2020/04/17 16:03:37 http error: An error occured during websocket exec operation (err=websocket: close 1006 (abnormal closure): unexpected EOF) (code=500),
2020/04/17 16:03:37 http: response.WriteHeader on hijacked connection from github.com/portainer/libhttp/error.writeErrorResponse (error.go:37),
2020/04/17 16:03:37 http: response.Write on hijacked connection from encoding/json.(*Encoder).Encode (stream.go:227)

I'd be interested to know more details about how this was resolved for other users.

@ProfessorSalty IIRC default websocket timeout with reverse proxies are quite low, you might want to investigate Traefik configuration.

This is still an (major) issue

Was wondering if anyone ever found a solution? Might I also add that cloudflare closes websockets by default after 100 seconds...


Python SDK  How to Retrigger Workflow

 // fast api to call workflow

  @router.get("/start_workflow")
  def start_workflow():

          logging.info("Starting workflow runtime...")

          with DaprClient() as d:
              workflow_runtime = WorkflowRuntime("localhost","3500")
              workflow_runtime = WorkflowRuntime()

              workflow_runtime.register_workflow(task_chain_workflow)
              workflow_runtime.register_activity(step1)
              workflow_runtime.register_activity(step2)
              workflow_runtime.register_activity(step3)
              workflow_runtime.start()

              logging.info('starting wfrnt taskchain')
              start_resp = d.start_workflow(instance_id= workflow_instance_id ,
                                            workflow_component= workflow_component ,
                                            workflow_name= workflow_name,
                                            input= 33,
                                            workflow_options=workflow_options

                                            )
              print(f'start_resp {start_resp.instance_id}')
              logger.info(f'start_resp {start_resp.instance_id}')

              get_response = d.get_workflow(
              instance_id=workflow_instance_id, workflow_component='dapr'
          )
              print(f'Get response from {workflow_name} after pause call: {get_response.runtime_status}')

              sleep(2)
              d.purge_workflow(instance_id=workflow_instance_id, workflow_component=workflow_component)
              try:
                  d.get_workflow(instance_id=workflow_instance_id, workflow_component=workflow_component)
              except DaprInternalError as err:
                  if non_existent_id_error in err._message:
                      print('Instance Successfully Purged')
              # d.purge_workflow(instance_id=workflow_instance_id,workflow_component=workflow_component)
              sleep(2)
              workflow_runtime.shutdown()

          return start_resp.instance_id

I am triggering the Workflow from a fast api . It executes , all good.
moreover when i retrigger again its showing the error as
File "/usr/local/lib/python3.10/site-packages/dapr/ext/workflow/workflow_runtime.py", line 80, in register_workflow
workflow-service_1             |     raise ValueError(f'Workflow {fn.name} already registered as {alt_name}')
workflow-service_1             | ValueError: Workflow task_chain_workflow already registered as task_chain_workflow

@kpradp
You only need register the workflow and acitvities once per lifetime of your process.
I'm not a python dev, but it looks like you may be registering the workflow and activities on every call to your /start_workflow endpoint?
workflow_runtime.register_workflow(task_chain_workflow)
workflow_runtime.register_activity(step1)
workflow_runtime.register_activity(step2)
workflow_runtime.register_activity(step3)

Thanks my bad i mixed few samples


run-tests-with-build parameterize final invoker goal

It would be useful for invoker configuration to allow changing pre-defined invoker goals.
Currently the goals configurations is in most places either:
<goals>
  <goal>clean</goal>
  <goal>verify</goal>
</goals>

or
<goals>
  <goal>clean</goal>
  <goal>unpack</goal> <!-- unpack-maven-plugin -->
  <goal>verify</goal>
</goals>

The last goal could be parameterized, so that when needed user can pick test instead, or so (no need to predefine allowed values, simple maven property would do).

Resolved by kiegroup/run-tests-with-build#95


update jenkins-slave to 1.2

https://github.com/zebrunner/jenkins-slave/milestone/3?closed=1

reopened as it was decided to upgrade jenkins components only in 1.7

done together with upgrading jenkins-master to 1.5

verified on dev. branch.


Generating wsdl with nillable and minOccurs

Is there any way to generate the WSDL with nillable and minOccurs? I was not able to find a way.
<xs:element minOccurs="0" name="NumberTires" nillable="true" type="xs:int"/>

@hypemedia This package does generate the nillable attribute based on DocBlock annotation of your methods (see the demo). Regarding minOccurs and maxOccurs, I found this annotation hack for the Zend component, perhaps it still works:
http://zend-framework-community.634137.n4.nabble.com/Zend-Soap-Autodiscover-how-to-generate-minOccurs-and-maxOccurs-in-WSDL-td675932.html#a675934

Ok thanks fo the info that will work. But custom headers is it possible to genereate?

@hypermedia If you mean returning custom headers with the response, you could extend the controller and override the server() method to perform XML post-processing before returning it.

No the problem is that in the request that we get on the server it is sent an soap header like this:
<soapenv:Header> <esb:header> <esb:message_type>AddNewOrder</esb:message_type> <esb:version>01.80</esb:version> <esb:source_entity>LPRO</esb:source_entity> <esb:source_application>NOLS</esb:source_application> <esb:destination_entity>KEIT</esb:destination_entity> <esb:destination_application>TIRE</esb:destination_application> </esb:header> </soapenv:Header>
The problem is that the requesti is failing because of that header. Is there an way to define that header in the wsdl. The soap header element is part of the SOAP specifications.

Now I understand - that header (for an ESB proxy?) is part of a request format you can't change, so the server must accept it.
I could not find any way to achieve this via auto-discovery (please let me know if you do), but there are a few guides on IBM and RedHat sites, and this example, explaining how to manually map a SOAP request header in WSDL.
It seems the solution is to override the server() method, adding post-processing of the generated WSDL file, inserting the necessary request header mapping.

Thanks I will get back if I find a way of doing this with auto-discovery.

@hypemedia Thanks, and good luck!


Usage with connection pool?

This library is currently built to use one connection per process. Are there any reasons why I should not try to integrate it with a connection pool (thinking of db_connection)?
Or do any of the maintainers plan to provide an official way to integrate ADBC with a connection pool?

There are no plans at the moment because each databases in ADBC give different guarnatees regarding concurrent reads and so on. So we decided to keep this one low-level. You can add pooling on top, perhaps via tools like poolboy.

I was able to hack together a driver that uses db_connection and a working Ecto adapter that delegates most callbacks to Ecto.Adapters.Postgres 🤓 will consider sharing once the implementation is a bit more mature.


[raylib] Fix the feature issue

Fixes https://github.com/microsoft/vcpkg/issues/12707
The original feature 'non-audio' added, however, the ${FEATURE_OPTIONS} wasn't added to cmake, then related symble doesn't export, that cause the link errors when use the raylib.
Change it build as default feature now.
Test:
#include "raylib.h"

int main(void)
{
	const int screenWidth = 800;
	const int screenHeight = 450;

	InitWindow(screenHeight, screenHeight, "raylib example");
	InitAudioDevice();
	Music music = LoadMusicStream("woop.mp3");
	PlayMusicStream(music);
}

cc  @myd7349

When using vcpkg_check_features, FEATURE_OPTIONS must be passed to vcpkg_configure_cmake. This is very easy for us to ignore this point. I think we should improve vcpkg_configure_cmake.


stm32 pinmux add the missing GPIOs

the pinmux_stm32.c file not include the gpioi, gpioj, gpiok.
This path add the gpios.

Codecov Report

Merging #8788 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #8788   +/-   ##
=======================================
  Coverage   52.33%   52.33%
=======================================
  Files         195      195
  Lines       24723    24723
  Branches     5139     5139
=======================================
  Hits        12940    12940
  Misses       9709     9709
  Partials     2074     2074

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 25b0212...89699cb. Read the comment docs.

@jinyongiot you need to use tabs instead of spaces:
https://app.shippable.com/github/zephyrproject-rtos/zephyr/runs/18517/5/tests
please fix that, amend your commit with git commit --amend and then force-push to your branch with git push -f

Thanks for this change, please rebase on #9191


Plugin crashes upon start (if logging is disabled)

Describe The Bug:
Crashes upon start. The interesting part: for me it only happens if logging is disabled.
Haven't really investigated it further as its quite late. But I can take another look at some other time.
To Reproduce:
I just installed the plugin, entered my ip and the name (didnt enter anything for the presets). (I am using the raspberry pi 5 with the newest firmware)
Expected behavior:
Shouldn't crash.
Logs:
[5/12/2024, 2:29:30 AM] TypeError: Converting circular structure to JSON
    --> starting at object with constructor 'Socket'
    |     property 'parser' -> object with constructor 'HTTPParser'
    --- property 'socket' closes the circle
    at JSON.stringify (<anonymous>)
    at WledWsPlatformAccessory.updateAccessoryInformation (/var/lib/homebridge/node_modules/homebridge-wled-ws/src/WledWsAccessory.ts:583:61)
    at WledWsPlatformAccessory.onStateReceived (/var/lib/homebridge/node_modules/homebridge-wled-ws/src/WledWsAccessory.ts:298:12)
    at /var/lib/homebridge/node_modules/homebridge-wled-ws/src/WledWsAccessory.ts:244:12
    at _class2.<anonymous> (/var/lib/homebridge/node_modules/homebridge-wled-ws/node_modules/wled-client/src/utils.emitter.ts:17:37)
    at _class2.[nodejs.internal.kHybridDispatch] (node:internal/event_target:826:20)
    at _class2.dispatchEvent (node:internal/event_target:761:26)
    at _class2.emit (/var/lib/homebridge/node_modules/homebridge-wled-ws/node_modules/wled-client/src/utils.emitter.ts:34:15)
    at _class2.setContext (/var/lib/homebridge/node_modules/homebridge-wled-ws/node_modules/wled-client/src/client.ts:186:19)
    at _class2.refreshContext (/var/lib/homebridge/node_modules/homebridge-wled-ws/node_modules/wled-client/src/client.ts:125:8)

Plugin Config:
{
    "name": "wled-ws platform",
    "controllers": [
        {
            "name": "TV Licht",
            "address": "<IP_ADDRESS>"
        }
    ],
    "logging": false,
    "platform": "wled-ws"
}

Environment:

Plugin Version: v0.0.11
Homebridge Version: Homebridge v1.8.1 (HAP v0.12.0)
Node.js Version: v20.12.2
NPM Version: 10.5.0
Operating System: Raspbian

Hi @LeLunZ,
I will try to reproduce it in my environment. I am using different versions of Node/Homebridge. Just to rule out the WLED side - which firmware does your WLED controller run on?

I am running 0.14.3 :)

I did a first test using the same software versions like in your setup. The only difference is that my home bridge instance runs as docker container on a Synology NAS. I was not able to reproduce the crash. Do you have DEBUG Mode enabled in your HB instance?

@smhex thx for trying. I think I have debug mode disabled(?), as I didn't change anything and I did a complete new install of the raspberry/homebridge and wled-ws.
But I will try to debug the issue and actually check what object goes into the JSON.stringify function. From the error, it seems its somehow referencing itself.

@smhex enabling logging doesn't solve the issue but its just happening way less often.
Also it seems to work sometimes, when logging is disabled. On my last try, It crashed and rebooted homebridge 8 times, and then it worked. So it seems like some kind of race condition?

@LeLunZ it looks like one 🥹. I have an idea what might be the problem. I will create a beta for you to test my assumption.

@smhex That works! No more crashes :)

Perfect, I think it's a good time to make a release out of this beta version 😄

Fixed in 0.0.13


Logging problems in FlexMex2_2

At some occasions, the postprocessing of FlexMex2_2 produces an error message which is related to the following two logging functions:
log_solver_time_to_file(es.meta_results, exp_paths.logging_path)
log_problem_metrics_to_file(es.meta_results, exp_paths.logging_path)
The postprocessing works if these functions are commented out in oemof_flexmex/postprocessing.py.

I got this error also when executing snakemake -j1 results/FlexMex2_1c/03_postprocessed --allowed-rules postprocess, so it is not only a problem in FlexMex2_2.
And, to add to the above statement, the output in the snakefile obviously also needs to be adjusted for the postprocessing to run.

Running snakemake -j1 results/FlexMex2_1a/03_postprocessed --allowed-rules postprocess results in the following error:
Traceback (most recent call last):
  File "scripts/postprocessing.py", line 27, in <module>
    run_postprocessing(scenario_specs, paths)
  File "[...]/oemof-flexmex/oemof_flexmex/postprocessing.py", line 1229, in run_postprocessing
    log_solver_time_to_file(es.meta_results, exp_paths.logging_path)
  File "/[...]/oemof-flexmex/oemof_flexmex/postprocessing.py", line 1166, in log_solver_time_to_file
    "System time"
KeyError: 'System time'


An issue with the legend when drawing a box plot

when i was running your example ,some result PDF in plots/traj_est such as the rel_translation_err has something wrong. The legend did not displayed correctly.

i solve this problem by using the release version

i solve this problem by using the release version

I have the same problem. Can you explain it in detail?

Hi, can you tell me how are you capturing these results? I have recorded the ground truth and the estimated poses in a txt file with the correct format but my results are as follows:
======================================
Absolute Trajectory Error
rmse_ori = 178.702 | rmse_pos = 0.103
mean_ori = 178.701 | mean_pos = 0.097
min_ori  = 176.714 | min_pos  = 0.016
max_ori  = 179.984 | max_pos  = 0.173
std_ori  = 0.547 | std_pos  = 0.037
Relative Pose Error
seg 8 - median_ori = 143.450 | median_pos = 4.591 (2383 samples)
seg 16 - median_ori = 88.770 | median_pos = 3.702 (2082 samples)
seg 24 - median_ori = 92.984 | median_pos = 3.481 (1816 samples)
seg 32 - median_ori = 85.973 | median_pos = 3.481 (1427 samples)
seg 40 - median_ori = 138.841 | median_pos = 3.082 (1099 samples)


Pocket Dictionary App

Have you read the Contributing Guidelines ?

[x] Yes

Description
This is an example app for Mobile Applications using Flutter called Pocket Dictionary where users can store words for which they don't know the meanings for and the data is made persistent using SharedPreferences file.
Fixes #189 under GSSoC'22

Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code.

Changes have been made! Please review, Thanks!


Re-send verification

Make it possible for the user to trigger the verification email from user settings, it should be possible max every 30 min. 5 times.

To maintain record in Database about the count of email and email should be triggered after every 30 min, we need add two new columns "max_sent_mail" and "mail_sent_time" in database.
So can add these column under user table?

Having few queries as below:

when user changes the email, do we need to trigger verification mail at the same time or CronNewUsersEmail class will trigger mail after every 15 mins.
what if user changes the email two times within the 30 mins limit, do we need to allow the user or we need to show an error message
what will happen after 5- email id is also changed, will the application sent the verification mail?

changing the email sets verified = false I believe, which triggers the verify email cron
Good question, the user should be allowed to change the email once a day. I'll make that another change.
Didn't understand

task done. Pused the brnch with name "resendVerification#17".

Thanks, will review later

@Nidhi0257 the patch https://github.com/sliechti/feedrdr/compare/resendVerification%2317 is adding a date check to make sure the email can only be changed once a day.
What we need is the option for an user to trigger the send verification email again, in case the user didn't receive it. For this, we need to set the b_reg_sent = false and also make sure that the user can only trigger this event once in 3h.

so here's  how I will proceed:

will remove email_count from table and from DBFields.
revert all the entries of the count
will added button to send verification email, which will update b_reg_sent = false
and will be only visible next after 3h.
and the update button will work same as it was working earlier.

Should I proceed with this flow?

(1. and 2. No need to remove code done so far, we can leave it as part of this patch since that is correct and we do need that functionality.

yes
Not sure what changed.


Want to contribute to project

Hi, I'm a student working on a thesis right now, and my proposal is to add dependent typing to Python and numpy in particular. I don't know if this is the right place to post or ask about this, but I want to ultimately contribute directly to numpy, python, and mypy and this seemed like an appropriate place. Specifically, I want to extend this project and be able to reject statically
x = np.zeros((1, 2))
x @ x

and accept
x @ x.T

Would this be the right place to discuss syntax, necessary work, and other things required to make this a reality?

Hi, it'd be great to have someone work on this effort! There is some discussion here: https://github.com/python/typing/issues/513
Also at the last typing summit there was discussion of type system features for pytorch. I think bringing this up on<EMAIL_ADDRESS>is probably the best place to introduce yourself to the relevant people.

Thank you for the information! I'll also respond on the thread you linked and shoot an email to the mailing list.


Minusbug

Fix quota related bugs. Now now display quota,cpu_use and mem_use precisely.

is is reasonable to get quota from etcd ?


chore: update tekton pipelines with correct naming

I think my wires got crossed when I first attempted to onboard multiple components in a single repo. The name of the pipelines was mixed up with the name of the files. Anyhooo... I believe this should fix it.

/retest e2e

/test e2e


ArrayTagSet#addAll(Map<String, String> ts) can throw ArrayOutOfBoundsException

Using version 0.92.1 I ran into an ArrayIndexOutOfBoundsException while adding tags stored in a ConcurrentMap.  This can happen if an item is added after the array is created but before the map is iterated on.
java.lang.ArrayIndexOutOfBoundsException: 1
        at com.netflix.spectator.api.ArrayTagSet.addAll(ArrayTagSet.java:169)
        at com.netflix.spectator.api.DefaultId.withTags(DefaultId.java:71)
        at com.netflix.spectator.api.DefaultId.withTags(DefaultId.java:26)

While the exception could be avoided, I'm not sure that is the best option. I would argue if you are hitting this error it indicates a correctness bug in creating the id as there is no way to know that the correct tags are added. Avoiding the exception would just make it a silent failure that could be quite difficult to debug. Even as it is it seems quite likely you could also have silent failures where a given tag is overwritten from another context and some data ends up tagged incorrectly.

While I see your point regarding correctness, in my specific use case using a ConcurrencyMap meant that I've chosen to avoid lock contention and am willing to accept rare situations where a tag may be dropped.  My expectation for withTags was that it would take a current snapshot and never fail.  With that said, I can concede that this may not be true in the general case.  This could potentially be addressed either via documentation, special casing ConcurrentMap somehow, or even identifying the situation and maybe throw a more meaning exception, such as a ConcurrentModificationException.


UTF8 text got invalid annotation offset

Given the following UTF8 text : 💩This is an annotation.
Imported as TSV, then added an annotation around "annotation", then exported as TSV.
Result is as follows :
ID      TEXT    id      label   annotator       annotation_id   created_at      updated_at      lead_time
1       💩This is an annotation.        1       "[{""start"": 13, ""end"": 23, ""text"": ""annotation"", ""labels"": [""Annotation""]}]"<EMAIL_ADDRESS>     2       2021-08-23T12:19:18.905800Z     2021-08-23T12:19:18.905819Z     8.416
Probelm : Start and end offsets are off by one : start should be 12 codepoints,  end 22 codepoints.
It arises from a discrepancy between the original UTF8 text, and the way javascript handles emojis as a pair of surrogates. All annotations after an "astral codepoint", are off, and unusable.
Moreover, if the annotation contains an emoji, it is expanded into its surrogate pairs, and does not conform to the original input.

Hi, I'm having a pretty similar issue, where the offset sometimes is 1 and sometimes 2 characters. However, for the same text it happened sometimes, not always. In fact, I've created different projects inside label studio, and adding the same text on all the projects with the same settings, it happens that in one project this issue appears frequently, while in the other it doesn't.

@ghpu @lucianosilvi
What LS version do you use? We fixed similar problems in 1.2.

I encountered the problem with the following version :
{
"label-studio-os-package": {
"version": "1.2",
"short_version": "1.2",
"latest_version_from_pypi": "1.2",
"latest_version_upload_time": "2021-08-18T16:22:25",
"current_version_is_outdated": false
},
"label-studio-os-backend": {
"message": "Correction : le fichier ca-certificates.conf n'\u00e9tait pas enregistr\u00e9 av ...",
"commit": "16d1aa69f4133eea26382d36e8b9664d40cfbdc6",
"date": "2018-12-05 15:49:38 +0100",
"branch": "master",
"version": "16d1aa6+dirty"
},
"release": "1.2",
"label-studio-frontend": {
"message": "[fix] loading images with relations (#239)",
"commit": "c02a287aef3bea907a09196bd2145c7225208efe",
"branch": "master",
"date": "2021-08-18T07:32:08Z"
},
"dm2": {
"message": "Merge pull request #9 from heartexlabs/feature/regex-filter  [ext] Add ...",
"commit": "e67fb3ab5bcabfb663a4e010503c83ecb3d2ed44",
"branch": "master",
"date": "2021-08-17T13:41:09Z"
},
"label-studio-converter": {
"version": "0.0.30"
}
}

Hi all! @ghpu @lucianosilvi
Try this PR, please, it should fix the problem — #1559

Better for simple, one unicode character based  emojis (like pile of poop), but does not work for composing emojis, like "rainbow flag" 🏳🌈 : the annotations are off even in the interface when annotating a word after the emoji.

Oh, yes, I forgot to describe the solution. It counts code points, not a glyphs, so for composed emojis it may return length more than 1. This is how python works (and most of other software I suppose).
"Glyph" is a very render-specific thing, new emojis will be displayed "broken" on user-agents from one year ago. And code-points are standardised thing. If you create your pre-annotations in python and load them into LabelStudio they'll work well in this PR. And vice versa.


Missing docker/notary/tuf/store package for docker/api/client/trust.go

Output of docker version:
github master branch

Output of docker info:
n/a

Additional environment details (AWS, VirtualBox, physical, etc.):
go 1.6.2
Steps to reproduce the issue:

go get github.com/docker/notary/tuf/store

Describe the results you received:
cannot find package "github.com/docker/notary/tuf/store"
Describe the results you expected:
Should be able to go get "github.com/docker/notary/tuf/store"
Additional information you deem important (e.g. issue happens only occasionally):
docker/api/client/trust.go imports docker/notary/tuf/store package here: https://github.com/docker/docker/blob/master/api/client/trust.go#L39

I don't think go get github.com/docker/notary/tuf/store will work in this case, because that tries to look up the package in the latest version of notary, and that package has since been removed/refactored.
The docker project has vendored an older version of notary (0.3), which does have the package:  https://github.com/docker/docker/tree/master/vendor/src/github.com/docker/notary/tuf/store
You might want to check out that particular version of notary manually, either using git or go get github.com/docker/notary, then go to $GOPATH/github.com/docker/notary and git checkout v0.3.0


Convert to byte array?

Hi,
I was wondering if it's possible to convert the wrapped objected into a byte array, send the data over Android Wear's messaging API, receive the byte array data, and unwrap it back to its POJO form?
Thanks!

Can you point out the specific api you want to use?

Here it is. I need to serialize my payload from the phone into a byte array, send it over the wire to the werable, and deserialize it.
I am currently using Apache deserialization tools which I suspect is a lot slower than using Parcels.
https://developers.google.com/android/reference/com/google/android/gms/wearable/MessageApi.html#sendMessage(com.google.android.gms.common.api.GoogleApiClient, java.lang.String, java.lang.String, byte[])

If you want to use the Parcel to marshal your beans via byte[] you can use the marshal() and unmarshall() methods.  Here's a SO post with some details: http://stackoverflow.com/questions/18000093/how-to-marshall-and-unmarshall-a-parcelable-to-a-byte-array-with-help-of-parcel

Thanks @johncarl81 , I did see that post and tried using it, but failed to figure it out.
Gow do use the public static <T> T unmarshall(byte[] bytes, Parcelable.Creator<T> creator)  method if I don't have access to my custom object's Creator?
Thanks!

You can reference the generated code, giving you access to the generated CREATOR field.  It would probably look like the following:
ParcelableUtil.unmarshall(bytes, MyClass$$Parcelable.CREATOR)

Oh okay, that's very useful info. I will try that approach tonight. Thanks :)


Replaces empty class attribute with some waired text

Template
Please write your blade template that occurs issues.
Context (Environment)

Version: 1.60.0 (user setup)
Commit: e7d7e9a9348e6a8cc8c03f877d39cb72e5dfb1ff
Date: 2021-09-01T10:41:52.311Z
Electron: 13.1.8
Chrome: 91.0.4472.164
Node.js: 14.16.0
V8: 9.1.269.39-electron.0
OS: Windows_NT x64 10.0.22000

Description
Before formatting :

After Formatting :

Thanks @iyashpal
Just released fix as https://github.com/shufo/vscode-blade-formatter/releases/tag/v0.7.28.

Thank you very much


Issues setting project up

Hi There
I'm quite new to Swift, and I came across your Dropper Library. It seems nice and small but I can't seem to find example code of getting it setup in a basic ViewController. The example project seems to not have any such example, unless I am missing something?

You aren't missing anything, still in development, it's been hard to find time working on it, but I happy to help you set it up!
 Here is an example of how to set up a dropper menu with button hooked up threw storyboards:
@IBAction func DropAction() {
    if drop.status == .Hidden {
        drop.items = ["Hello", "Item 2", "Item 3", "Item 4", "Item 5"]
        drop.theme = Dropper.Themes.White
        drop.delegate = self
        drop.cornerRadius = 3
        drop.showWithAnimation(0.15, options: Dropper.Alignment.Center, button: dropbutton)
    } else {
        drop.hideWithAnimation(0.1)
    }
}

That's pretty much it. It is still pretty buggy and I would not suggest using it until I work out all the tiny issues and stuff.
If you have any other questions, I would be happy to answer!


Tektro sequence

Good work on the whole. I left one small comment and I will redo a more complete review tomorrow.

Looks good to me, thanks for your very helpful feedback @MatthieuDartiailh


Create drop-simulator

This drop simulator plugin allows for the simulation of any number of trials of most NPCs with a drop table. Uses the osrsbox-api to gather an NPC's drop data. Drops are then simulated and displayed in the plugin panel. Hovering over a drop will display the name, quantity, and value of the item stack.

The bot doesn't seem to like your username I suppose... I'll post a diff link here in a minute.

New plugin drop-simulator: https://github.com/mxp190009/drop-simulator/tree/013d53487565a82f8e02f304016ae560e4e51876

accidentally closed this request, changes should be committed

You'll need to re-push your drop-simulator branch and reopen this PR, then update the reference commit to point at your latest changes


Fix minor spelling errors.

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

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

TTYL, AZPRBOT;

@mcollier Thanks for the contribution!  I'm having the author review.


[SliderUnstyled] Fix dragging on disabled sliders

Fixes https://github.com/mui/material-ui/issues/31851

From my perspective, this is the whole fix:
 [`&.${sliderClasses.disabled}`]: {
   pointerEvents: 'none',
   cursor: 'default',
   color: theme.palette.grey[400],
 },

updating the demo.

I will add this in addition, but I still think we need to disable the interaction on the component itself. We already support the prop, so why not handle it in the unstyled component? We partially handle some of the interaction based on the disabled prop, but not all, which can be confusing.

could you update the unstyled demos with the codesnippet above in https://github.com/mui/material-ui/pull/31850 to avoid conflicts?

Sure! As the interaction is blocked in the event handlers, we don't need pointer-events: none, do we?

Sure! As the interaction is blocked in the event handlers, we don't need pointer-events: none, do we?

Good point, yes, we shouldn't need it.


Swap even and odd bits

I will implement this program in the C language as a part of GSSoC'21. Could you please assign this issue to me?

/assign

/assign


make t(link) (temporal aggregation of new process copies) flexible

Currently, t(link) (temporal aggregation of new process copies) is set to 1 year. It would be great to let the users define the level of aggregation themselves, possibly within a reasonable temporal range. E.g. seconds/minutes might not be suitable as this would lead to a large quantity of new processes in the database and does not fit with common LCA problems.

Another issue with the current implementation is that the aggregated process copies get assigned to the first timestamp within the aggregated time period in the timeline_df.
E.g. for temporal resolution = year:
P1 at 2024-12-31 and P2 at 2024-08-31 get grouped within one 2024 row and this row is reassigned to date= 2024-01-01. Correct would be to get some kind of (weighted) temporal average for the date that takes the timing of P1 and P2 into account but I wasn't able to achieve this with groupby and datetime/timedelta.
see code medusa_tools, l-115 ff

Ok, I checked with Chris and currently this indeed hardcoded to be an int32. Might be possible to change this but I suppose we could do a quick mapping as well, which might be faster.
What do we want to be able to save year-month-day-hour. I guess the season as well as discussed before, but it is already contained in the month.


Allow use of DVID volumes as back-end

PyDVID might be useful:

https://github.com/janelia-flyem/pydvid
https://janelia-flyem.github.io/pydvid/quickstart.html

Please do not use pydvid.  It is deprecated.  Use libdvid-cpp which has a libdvid python implementation.  It is fast and up-to-date.

Noted! Maybe put a big fat "DEPRECATED" sign on the PyDVID docs and readme... =)

Fair enough :)  I just added a quick line to libdvid-cpp noting that there are copious examples of the API in the unit tests for both C++ and python API.  At some point, I need to document the python API as well as the C++ one is documented.
In general, the C++ library tries to implement the "best of" DVID API plus some special functions.  We expose much of this through the python API. If you need other things exposed, ask Stuart or me and it should be doable.  Right now there are some heavier-duty stuff not exposed like a parallel tile and sparse block fetcher.


Refactor edit buttons into base component and migrate to TS, Part IV

This is a continuation of #380 , #381, #382 and completes the migration to TS of the UI.

Closes issue #332


[BUG] Memory usage problem using OpenReadAsync inside a list

Describe the bug
There is a memory issue when using OpenReadAsync inside a list.
In our code, we get all the blobs from a container and add them to a list. We use the OpenReadAsyc. Once the list is created, we loop through all the items and add them to a zip file.
With the WindowsAzure.Storage package 9.3.3 version, there were no problems, but with the Azure.Storage.Blobs package version 12.8.3 we have a memory leak problem. In each iteration, the memory goes up. When we have many blobs, the service crashes.
With the previous version the memory usage is stable, but with Azure.Storage.Blobs is not.
Expected behavior
What is the expected behavior?
Memory usage should be stable, as it was in the WindowsAzure.Storage package. Memory usage in WindowsAzure.Storage:

Actual behavior (include Exception or Stack Trace)
Memory usage using Azure.Storage.Blobs:

To Reproduce
You can reproduce this behavior using this simple test to upload some blobs and then loop through them doing an OpenReadAsync.
WindowsAzure.Storage:
const string folderName = "test";

var blobClient = CloudStorageAccount.Parse("UseDevelopmentStorage=true").CreateCloudBlobClient();
var azureContainer = blobClient.GetContainerReference(_containerName);
await azureContainer.CreateIfNotExistsAsync();

for (var i = 0; i < 1000; i++)
{
    var blobName = BlobPath.Combine(folderName, $"{_blobName}{i}");

    var blob = azureContainer.GetBlockBlobReference(blobName);
    await blob.UploadFromByteArrayAsync(content, 0, content.Length).ConfigureAwait(false);
}

var blobList = new List<Task<Stream>>();
for (var i = 0; i < 1000; i++)
{
    var blobName = BlobPath.Combine(folderName, $"{_blobName}{i}");
    var blob = azureContainer.GetBlobReference(blobName);

    blobList.Add(blob.OpenReadAsync());
}

Azure.Storage.Blobs. The memory goes up on every iteration of the second foreach
var content = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };
const string folderName = "test";

var blobClient = new BlobServiceClient("UseDevelopmentStorage=true");
var azureContainer = blobClient.GetBlobContainerClient(_containerName);
await azureContainer.CreateIfNotExistsAsync();

for (var i = 0; i < 1000; i++)
{
    var blobName = BlobPath.Combine(folderName, $"{_blobName}{i}");

    var blob = azureContainer.GetBlobClient(blobName);
    using (var stream = new MemoryStream(content, 0, content.Length))
    {
        await blob.UploadAsync(stream, overwrite: true).ConfigureAwait(false);
    }
}

var blobList = new List<Task<Stream>>();
for (var i = 0; i < 1000; i++)
{
    var blobName = BlobPath.Combine(folderName, $"{_blobName}{i}");
    var blob = azureContainer.GetBlobClient(blobName);

    blobList.Add(blob.OpenReadAsync());
}

Environment:

Name and version of the Library package used: Azure.Storage.Blobs 12.8.3
Hosting platform or OS and .NET runtime version: Azure AppService .NET Framework 4.6.2
IDE and version: Visual Studio 16.8.3

@kasobol-msft can you look?

@pilarodriguez V12 SDK uses larger buffer by default, i.e. 4MB (see here). The V11 SDK used just above 16KB.
Therefore I recommend to specify smaller buffer size explicitly when calling open read to accommodate your usage pattern. Please let us know if this resolves your issue.

Yes, this fixes the issue. Thanks a lot

One extra question, is the buffer size specified in megabytes or in bytes? In the method summary it is only mentioned that the default is 1MB.

Buffer size is in bytes.


Replace does not replace current selection

As the title said, replace does not replace the currently selected text (e.g. through find) , but replace the next occurrence of the match instead.

This is broken. To fix this:
edit /usr/local/www/codiad/components/editor/init.js
find line:
case 'replace':
i.replace(replace) should be BEFORE the find. This is the intuitive way to use this
"Find" a string. Enter replace value and hit replace; current item will be replaced and it will find the next occurance.


Add actions for the ipc module

With the new module action system, we can easily deprecate the old way of triggering hooks in the ipc module and replace it with a module action.
This has several advantages:

Cleaner way of handling messages (just register for certain action names)
Hooks can easily be triggered by click commands using the action syntax (``#module.name`)
Use the same system as all other modules

I propose adding the following actions:

hook: To trigger the given hook
next/prev: To trigger the next/previous hook. This would solve the request in #999
append: To append text to the module (maybe a prepend as well)
reset: To reset the module contents (maybe also reset the currently active hook)

Additional Context
The hook action should use a 0-based index for selecting the hook. Currently polybar-msg hook uses a 1-based index. This should also be clearly communicated in the docs.
#2463 already implemented a first action in the ipc module to display arbitrary text.

Is this something like what you had in mind?

@MTBorg Exactly!

@MTBorg Are you still working on this ?

Not really, feel free to take over if you want to :)

I don't see the use-case for append that could not be done by the definition of the hook
If the use case really exists, should the append action be persistent between hook change ?
I mean, what would be the result of:

hook-n => foo
append bar => foobar
next => baz or bazbar?

Then if 'prepend` is to be added and then others string transformations, maybe a more general approch can be taken with some more generic formatting capabilities like std::format mixed with the polybar format tags.

The idea was that whenever a hook runs, the module contents are completely reset to the output of the hook, so append actions wouldn't be persistent.
But I think maybe that action wasn't really thought through. The important ones are hook, next, prev, and next. Let's not do string transformation, it will probably lead down a rabbit hole in the future.


refactor: improve folder structure

Description
Updated the project file structure.
Additional context
#417.

What is the purpose of this pull request?

[ ] Bug fix
[ ] New Feature
[ ] Documentation update
[x] Other

Before submitting the PR, please make sure you do the following

[x] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
[x] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[x] Ideally, include relevant tests that fail without this PR but pass with it.
[x] Read contribution guidelines.

Everything is currently working correctly except for one test in:
test/rules/sort-imports/read-closest-ts-config-by-path.test.ts

Branch tree:
https://github.com/azat-io/eslint-plugin-perfectionist/tree/refactor/structure

@azat-io Fix for the test can be found here: https://github.com/azat-io/eslint-plugin-perfectionist/pull/426.

@hugop95 Nice, thank you!
Ready for review.

@hugop95 I don't have a clear opinion on this. There are no index.ts files in the utilities folders for rules (rules/sort-array-includes), it seems logical to me that there is no index.ts in utils.

@azat-io There is one in types, this is why I was asking 🙂. No big difference for me.

Or we could remove index.ts from types/

@azat-io

Or we could remove index.ts from types/

Fine by me as well 👍

Done!


add shading to tables, fix figure order and size issue

#115 - add alternating shading to rows (not columns) for improved pdf table view
#106, #107 - addressed size issue for the smaller figures in both pdf and website
#161 - the figures are now positioned strictly in the order they are introduced in document

Looks good, but I can't verify anything related to LaTeX


502 Bad Gateway - Internal server error

Hi there, thanks for this great API.
When visiting a forecast endpoint
https://dev.pirateweather.net/forecast/KEY/37.643422,128.680311

I see
{"message": "Internal server error"}

The same URL was working intermittently earlier today.

Seems to be working again now. 👍

Thanks for the speedy reply. I did a quick drop in replacement for darksky and had accidentally picked up the dev (https://dev.pirateweather.net) url rather than the production one (https://api.pirateweather.net). I updated my code to the production one. Thanks again for the help and for making this great API.


White Theme or maybe different color themes?

Hello all,
I noticed in the app there are no options for customizing the look of the app. Maybe a white theme or a pure black theme for OLED display on the iPhone X. Just a suggestion mostly.
Have a good one!
Rose

Hi @roseusgarcia - thanks for the suggestion! :)

We're currently evaluating our road map and will take this feedback in to consideration.  Thanks again for taking the time to get in touch. :)


rename command not in initialization response

My language client doesn't know go-langserver can perform renames because go-langserver doesn't add the capability in the initialize response. Would we be able to add that?
I would be happy to make a PR myself if someone can help point me in the right direction. (I just started learning Go this past week and completed a Udemy course on it, and this would be a fun first PR.)

Oh perfect 🎉  I'll make a PR as soon as I get home from work

Had to steal my PR @fannheyward ! I'm teasing. I'm glad it got in and that I could help with creating the issue :)

@Dbz sorry for steal your PR. Just see that you have not submit for hours, so I made it.

I know, I just got home from work. But it is OK - I was just teasing. What is important is that we help each other build better software, and we're doing that. It doesn't matter if I do it, or if you do it. I'm glad there are more people out there who want to improve the project 👍

Haha I didn't notice the author was different, my bad :P FWIW CI just detected a (unrelated) data race  if anyone wants to look into that 😜https://github.com/sourcegraph/go-langserver/issues/344


Update in-product conversation strings

Summary
Updated existing string "Add a comment..." to "Reply to this conversation..." to account for users replying to threads.
Ticket Link
Documentation ticket: https://mattermost.atlassian.net/browse/MM-37329
Release Note
Updated in-product text terminology to shift from comments to conversations and replies.

@matthewbirtch @esethna - Great question! There are two main reasons why I went with "conversation" over "thread" for these specific changes:

I reviewed the Google Ngram viewer results for both "thread" and "conversation", and "conversation" is used far more often, across more contexts, than "thread". This data point strongly suggests to be that the term "conversation" is more widely understood overall, across more contexts, than the term "thread".
We have updated strings in the product now that changed "Mute/Unmute Channel" to "Mute/Unmute Conversation" and "Edit Channel Header" to "Edit Conversation Header" for DMs and group messages.

With this context in mind, is there a preference to move to "threads" overall?

@cwarnermm thanks for the context. For me it's about recognizability of the term "Threads" that appears throughout the UI. Using the term "Thread" here ties the act of replying to creating a thread:

For me it's about recognizability of the term "Threads" that appears throughout the UI. Using the term "Thread" here ties the act of replying to creating a thread

100% agree with @esethna on this. I don't think it's good for the UX if we use different terms to describe the same core function of the product.

We have updated strings in the product now that changed "Mute/Unmute Channel" to "Mute/Unmute Conversation" and "Edit Channel Header" to "Edit Conversation Header" for DMs and group messages.

@cwarnermm I think it makes total sense for the Mute and Edit options for DMs to not say Channel anymore, but I think it's important we stay with the threads terminology. We say Follow thread and Unfollow thread so I think we should say Reply to this thread as well

Great feedback @esethna and @matthewbirtch! I've updated the instances of "conversation" to "thread".

Thanks Carrie :)

/update-branch

Removing cloud test server as it is failing to get deployed because of the failing circle ci build. Please feel free to add it again once sorted :)

/update-branch

Error trying to update the PR.
Please do it manually.

fyi, This has caused several failed tests in Cypress E2E (fix submitted already - https://github.com/mattermost/mattermost-webapp/pull/9378) and will require update to several existing test cases in Zephyr (test management). Please always request for QA review not only for us to validate the PR but also for us to list down other QA todos (ex. update test management, Rainforest, etc). In other cases where review is not required, feel free to add "QA Deferred" label for our reference.

Thanks for all of your guidance and support, @saturninoabril. I now have a much better understanding of the types of updates that require QA engagement as well as what that effort looks like from the QA side!


Update wallet w/ blake2 changes

depends on https://github.com/MystenLabs/sui/issues/9225 (so we should do after we merge that)

In wallet I don't think we do any hashing, but we use our ts sdk that I can see it does hash the public key to get the address (here and here) and the transaction data to get the digest (here). Is there anything we should update? @kchalkias @jonas-lj @666lcz
Any side effects that we need to consider?
Does https://www.npmjs.com/package/@noble/hashes#blake2b-blake2s look the right hash to you?

Yea, the sdk should be changed to be aligned. And yes, that looks like the right hash. We use Blake2b with 256 bit outputs.

https://github.com/MystenLabs/sui/pull/9262


Use credentials to query region on non-public buckets

          TODO: use credentials to query region on non-public buckets

https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html#:~:text=Request to public buckets that grant the s3%3AListBucket permission publicly do not need to be signed.
https://github.com/aws/aws-sdk-go-v2/pull/2716#:~:text=unauthorized operations will only work against non-public buckets.
Originally posted by @kaovilai in https://github.com/openshift/oadp-operator/issues/1470#issuecomment-2234182422

/lifecycle frozen


Some displays not recognized anymore after update

Describe the bug
Only one of my three displays is recognized and displays anything. xrandr only showed that one display. The non-working displays were connected with display port, the working one was HDMI.
This happened after updating (I am on unstable): https://github.com/Nilstrieb/nixos/commit/3039fb6454aeae6730d5d1fabc895cc25dbb1fdd
I will attempt to bisect the regression.
Steps To Reproduce
Steps to reproduce the behavior:
I don't really have concise steps to reproduce, it happened when upgrading from 20f77aa09916374aa3141cbc605c955626762c9a to 2726f127c15a4cc9810843b96cad73c7eb39e443. I use X11 with GNOME.
Expected behavior
All 3 displays are working.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.
Notify maintainers

Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
# This is the working version, as I can't properly show the non-working one.
 - system: `"x86_64-linux"`
 - host os: `Linux 6.6.22, NixOS, 24.05 (Uakari), 24.05.20240321.20f77aa`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.18.2`
 - channels(root): `"nixos"`
 - channels(nils): `"nixos"`
 - nixpkgs: `/nix/store/wa8lhchql76i6czzvad3bqz6lvnjnbr5-source`

Add a :+1: reaction to issues you find important.

I think the regression was in 1ed5df1e703135d2d6814a761ce67e6e8073af30, I will try to verify that.

Yes, it was that commit. @K900 do you have an idea what could be causing this problem? I know nothing about graphics, so I'm happy to fix my config of there was a problem somewhere.

CPU: AMD Ryzen 9 3950X, GPU: NVIDIA GeForce RTX 2080 Ti

Are you running the proprietary Nvidia driver or Nouveau?

I think I am using the proprietary driver: https://github.com/Nilstrieb/nixos/blob/03be64e31a82968c42f2de5fae6787e971ca798c/nixos/configuration.nix#L127

Can you try setting hardware.nvidia.modesetting.enable = true;?

Same propblem here on an ThinkPad T470s via Intel HD Graphics

I'm having this same issue on an Asus Rog Strix G15. I'm using Hyprland.
CPU: AMD Ryzen 9 5900HX
GPU: AMD Radeon RX 6800M
Also this if it's helpful:
[emmet@snowfire:~]$ nix-shell -p nix-info --run "nix-info -m"
- system: `"x86_64-linux"`
- host os: `Linux 6.8.0-zen1, NixOS, 24.05 (Uakari), 24.05.20240321.20f77aa`
- multi-user?: `yes`
- sandbox: `yes`
- version: `nix-env (Nix) 2.18.2`
- channels(root): `"nixos-22.11"`
- channels(emmet): `"home-manager, nixpkgs"`
- nixpkgs: `/home/emmet/.nix-defexpr/channels/nixpkgs`

I get an issue where xrandr only picks up a None-1 connected after updating from 23.11 to 24.05 where it used to pick up DP-3 connected primary and so i get terrible resolution.
trying hardware.nvidia.modesetting.enable = true; xrandr does pick up the display seemingly correctly but i get some very weird graphical hiccups (flashing, failing to select, transparency not working)
For now going to stay on 23.11 and see how this shakes out.

My info
I'm running with a NVIDIA GeForce RTX 2070 SUPER and AMD Ryzen 5 3600X 6-Core Processor
with the proprietary drivers
Heres nix-shell -p nix-info --run "nix-info -m"
[jackschu@nixos:~]$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 6.6.37, NixOS, 24.05 (Uakari), 24.05.2539.49ee0e94463a`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.18.4`
 - channels(root): `"nixos-24.05"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

Same issue for me on a 2080 Ti and 5600X.
❯ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 6.6.43, NixOS, 24.05 (Uakari), 24.05.20240730.cf05eea`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.18.5`
 - channels(carl): `""`
 - channels(root): `"nixos, nixpkgs"`
 - nixpkgs: `/nix/store/z3vrsz16ypv60m2pp0gi7x7gpx40gfh1-source`

After hardware.nvidia.modesetting.enable = true; resolution was set for my display but lots of graphical glitches.


Moved out entity system to use EnTT instead of Wire

This will enable more features, more room for optimizations, and overall more stability.
This pull request may contain bugs and will continue to be iterated on for a long period of time. This is mainly a base of the new implementation.
Closes #23

This should be merged into development instead of main now, no?

Yes it should, will fix

Fixed

All has been fixed


change class to typename in typedef

I believe this change is needed for strict C++ compatibility, to identify to treat a value as a typenane. I think one needs to use typename in this case and not class. Clang on the Mac complains without this change, though I only tested it for ac_pow_pwl.

I noticed that some (but not all, I think) of these changes are in #1.


[Bug Report]: When declaring many producer with same topic name, creation fail

Prerequisites

[X] I have searched issues to ensure it has not already been reported

Description
If we call CreateTopicIfNotExists multiple time with same topic name we have an error at creation.

Confluent.Kafka.KafkaException: 'CREATETOPICS worker failed to parse response: CreateTopics response protocol parse failure: Local: Bad message format'

%3|****|PROTOERR|rdkafka#producer-1| [thrd:main]: ssl://*****: Broker returned topic development-users multiple times

Steps to reproduce

Call CreateTopicIfNotExists with same topic name multiple time
Launch app

Expected behavior
Topic would be created
Actual behavior
An exception is thrown
KafkaFlow version
latest

Hi @kYann,
Thank you for your contribution.
We are sorry to provide feedback just now.
Since you already opened this issues #383 and #500, can you please consider update to the latest KafkaFlow version with the master latest branch and check if the issue still persist?
After the update and your feedback we are planning to review your PR in the near future.


Add ability to set /local_xy_origin in Mapviz

Normally the origin is set by the swri_transform_util/initialize_origin.py node, but if that node isn't running or isn't initialized properly, the /wgs84 frame won't work right and Mapviz won't be able to do things like render tile maps.
It would be handy if Mapviz could detect whether that has been initialized properly, display a warning to the user if it hasn't been, and provide the ability to set it to a fixed point.

I can work on this, since it is giving me some headache...

Sure, feel free.  I haven't worked on it mostly because for my purposes, it's easy to just start a swri_transform_util/initialize_origin.py node and let it take care of it, but it would be convenient to have a way to notify the user if it hasn't been set and allow them to manually set it.

I got something that works quite well, at least for me (famous last words).
It is still a little rough around the edges, though.
https://github.com/Eurecat/mapviz/tree/local_XY
I used a concept similar to this plugin https://github.com/gareth-cross/rviz_satellite
The GPS coordinates can be inserted manually or calculated automatically from NavSatFix message and the frame of the robot where the GPS receiver is located.
Before submitting a PR, it would be nice if someone takes a look at it.
The shortcomins of setting the local_xy_origin in swri_transform_util/initialize_origin.py is that I can hardly find the relationship between the robot frame and a geolocalized fixed frame. This bransh provides a way to do that.

 Is that the case?
If so, your changes won't work as part of a live robot system that depends on local_xy_util for things besides mapviz.

If I do that, it is not intentional. I will double check the code.

The local_xy_origin is always advertized but published only here:
https://github.com/Eurecat/mapviz/blob/local_XY/mapviz/src/mapviz.cpp#L1556
I changed that https://github.com/Eurecat/mapviz/commit/9675638b64c418dd5a32a0f0c8ce36525dac2bff
Nevertheless, I wonder if it wouldn't be easier, instead of publishing local_xy_origin, to directly Re-Initialized my local instances of LocalXyWgs84Util and TransformManager.
This is of course related to the other issue we are discussing https://github.com/swri-robotics/marti_common/pull/499

Ok, I fixed quite a lot of things in my branch here: https://github.com/Eurecat/mapviz/tree/local_XY
No modification of TransfomManager is necessary, even if it would be nice to expose in the public API the swri_trasnform_util::TransformManager::local_xy_util_ as I show here:
https://github.com/facontidavide/marti_common/blob/transform/swri_transform_util/include/swri_transform_util/transform_manager.h#L179
The main differences of the last commit are:

All the plugin now do share the instance of TransformManager instantiated by mapviz, instead of creating their own.
https://github.com/Eurecat/mapviz/blob/local_XY/mapviz/include/mapviz/mapviz_plugin.h#L66

There allows me to correctly reset everything here https://github.com/Eurecat/mapviz/blob/local_XY/mapviz/src/mapviz.cpp#L1588

After many attempts, this is the only solution I found, since calling Initialize() wasn't sufficient.
From my side, I start being confident enough to submit a PR...

Calling initialize at https://github.com/Eurecat/mapviz/blob/local_XY/mapviz/include/mapviz/mapviz_plugin.h#L73 might cause problems for some plug-ins which don't currently expect to have initialize called multiple times.  Only calling the subclass initialize method if 'initialized_' is false would prevent that.
There is also the issue of data that has already been transformed becoming obsolete if the origin changes.  One way to deal with that is to add a virtual resetTransforms function that does nothing by default but that individual plugins could implement to clear obsolete data.

You can use customized swri_transform_util/initialize_origin.py from my PR https://github.com/swri-robotics/marti_common/pull/544 that allow to specify local_xy_custom_topic


Bug report: Impossible to filter on boolean values using m365 entra user list

Priority
(Low) Something is a little off
Description
Currently, when using the command m365 entra user list, we allow unknown options to be used for filtering. This seems to work, however, we always use startsWith as a filter operator.
This means, that when we for example want to list only the disabled accounts, we cannot do this with the current implementation, as this is a boolean field in Graph which only supports eq, ne, not or ìn`, and an error is thrown.
Steps to reproduce

Execute m365 entra user list --accountEnabled $false

Expected results
A list of all the disabled users
Actual results
Error: Invalid filter clause: No function signature for the function with name 'startsWith' matches the specified arguments. The function signatures considered are: startsWith(Edm.String Nullable=true, Edm.String Nullable=true).
CLI for Microsoft 365 version
v7.8.0
nodejs version
v20.11.0

Seems like a good improvement indeed. However, I don't know if it was ever intended to support this, so in that case maybe it's an enhancement instead of a bug.

Seems like a good improvement indeed. However, I don't know if it was ever intended to support this, so in that case maybe it's an enhancement instead of a bug.

Could be, however, accountEnabled is just a property to filter on, so I think this should be intended by the command by default, but I'm fine with labeling it as an enhancement rather than a bug 😃

The docs say:

To filter the list of users, include additional options that match the user property that you want to filter with. For example --displayName Patt will return all users whose displayName starts with Patt. Multiple filters will be combined using the and operator.

Here it's mentioned that startsWith is used (I find that a weird way to implement filters, but anyway). So I think only string properties were intended.

Then let's label it as an enhancement, as it makes a lot of sense for example to only list enabled users 😄 . The startsWith is indeed quite weird too, wouldn't it make more sense to use contains?

Then let's label it as an enhancement, as it makes a lot of sense for example to only list enabled users 😄 . The startsWith is indeed quite weird too, wouldn't it make more sense to use contains?

Maybe, or just an equals. But that will be a breaking change anyway.

Then let's label it as an enhancement, as it makes a lot of sense for example to only list enabled users 😄 . The startsWith is indeed quite weird too, wouldn't it make more sense to use contains?

Maybe, or just an equals. But that will be a breaking change anyway.

I have just tested, and contains doesn't seem to work properly on let's say displayName, so I'm not sure how to go about this. I suggest that we start with adding filters for booleans and see if there is a need for more options after that.

We can always revisit the way of filtering in a V8 issue.

We can always revisit the way of filtering in a V8 issue.

Would you like to close this issue and have me create a new one or rather that I rework this one?

We can always revisit the way of filtering in a V8 issue.

Would you like to close this issue and have me create a new one or rather that I rework this one?

I think it's fine to rework this one and target this for v8 👍

We can implement filtering on booleans and create another issue to discuss the way of filtering which probably will take some time.

Since unknown properties are, well unknown, it's hard to choose the right operator given that we don't know what we're comparing against. One way to solve it, would be to get smarter based on the passed value. If we see a string, we use startsWith, if we see a bool or a number, we use equals. That way, we retain the current functionality and allow more flexibility for non-string properties.

It would definitely be a breaking change, but I find startsWith a weird way to use a filter. If you specify a filter I would expect it to be an equals.


Modify how speculator uses git repos

Modified so it has a "master" repo and local A/B repos which pull from the
"master". This saves an extra git clone operation per HTTP request.

LGTM modulo a weird rename

LGTM


Disabling "Generate document preview" causes 404 requests

By default, "Generate document preview" is set to false. However, ownCloud core does not know anything about this setting, thus it will try to render a preview nonetheless. This results in various 404 calls and missing icons in the file versions list:

Steps to reproduce:

Create a new docx file with OnlyOffice
Open the browser console and refresh the page -> you will notice multiple 404 errors
Edit the file a few times so new versions are being created
Open the versions list -> the previews/icons wont be rendered

I think the preferred way to handle this setting is via changing the PreviewManager's capabilities dynamically based on the setting. This way, ownCloud core implicitly knows about this setting and can handle previews properly.

@LinneyS is this fix part of the latest release?

Hi @micbar
Yes
v6.3.1


new code with sound fix to be released to github

Dear Sir/Madam
I would like to humbly request that the latest version with working sound is released to github.
Thank you in advance

If I could I would release the code now, however for reasons I cannot go into in a public forum I am not able to at the moment. Hopefully soon.

Thank you for the reply.


Redesigned a fully responsive modern homepage

Fixes #84

Description:
I have redesigned a fully responsive home page of Apni Dukaan website using HTML, CSS, Bootstrap 5 .
Chages:
I have redesigned the navbar with another logo which perfectly matches the color.
I have added some new features like card design of the product categories and also added some HINDI comments in the slider.
I have removed some designs which were not looking professional and added my design into it.
Checklist

[ ] I have mentioned related issue number in PR description.
[ ] The title of my pull request is a short description of the requested changes.
[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.

Okay, should I make a new PR?

Okay, should I make a new PR?

Make the necessary changes in this PR no need for a new one.

Okay, should I make a new PR?

Make the necessary changes in this PR no need for a new one.

Okay.

Actually deals,html was added yesterday and I had cloned the project 2 days back. So, should I make a new PR?

in that case fetch (pull) all the update from upstream

Check it now, I have updated the code.

Looking great!
but I think link to "./deals.html" is missing

Link to the deals page in navbar is still wrong

Yeah, done now.