proxy: coalesce identical Series() requests

I spent quite some time recently staring at the fan-out code recently and thought that implementing this would be a good idea: let's join multiple requests for the same data if they are being sent to the same StoreAPI nodes (:
Very often when a new dashboard gets opened, a lot of different queries come in where the same metric data is being used. Clicking around the classic node_exporter dashboard shows via the newly implemented metric that this assumption is quite true. It is very unlikely that the retrieved data from SeriesAPI nodes will different if the requests come a few milliseconds between them. So, I think that this is a reasonable optimization to make.
Unfortunately, because upper layers assume sole ownership of the returned storage.SeriesSet it means that we have to make copies of the data before passing the data on. There are potential bigger savings here. Added a TODO for that.
Finally, I think that caching here is unnecessary because caching of the end-user responses is already performed by query-frontend.

[x] I added CHANGELOG entry for this change.
[ ] Change is not relevant to the end user.

Changes
Added a broadcastingSeriesServer that waits for a response on a query and then fans it out to all of the "listeners".
Verification
Tests still pass

The benchmarks aren't too happy:
benchmark                                                                                old ns/op      new ns/op      delta
BenchmarkProxySeries/1000000SeriesWith1Samples/4_client_with_1_samples,_250000_series_each-16<PHONE_NUMBER><PHONE_NUMBER>     +16.66%
BenchmarkProxySeries/1000000SeriesWith1Samples/single_client_with_1_samples,_1000000_series-16<PHONE_NUMBER><PHONE_NUMBER>     +26.64%
BenchmarkProxySeries/100000SeriesWith100Samples/4_client_with_25_samples,_25000_series_each-16       106213070      129375959      +21.81%
BenchmarkProxySeries/100000SeriesWith100Samples/single_client_with_100_samples,_100000_series-16     100188783      126916986      +26.68%
BenchmarkProxySeries/1SeriesWith10000000Samples/4_client_with_2500000_samples,_1_series_each-16      37307          53264          +42.77%
BenchmarkProxySeries/1SeriesWith10000000Samples/single_client_with_10000000_samples,_1_series-16     22434          38284          +70.65%

benchmark                                                                                old allocs     new allocs     delta
BenchmarkProxySeries/1000000SeriesWith1Samples/4_client_with_1_samples,_250000_series_each-16        5298639        5299245        +0.01%
BenchmarkProxySeries/1000000SeriesWith1Samples/single_client_with_1_samples,_1000000_series-16       6000189        6000345        +0.00%
BenchmarkProxySeries/100000SeriesWith100Samples/4_client_with_25_samples,_25000_series_each-16       516583         520291         +0.72%
BenchmarkProxySeries/100000SeriesWith100Samples/single_client_with_100_samples,_100000_series-16     540136         575343         +6.52%
BenchmarkProxySeries/1SeriesWith10000000Samples/4_client_with_2500000_samples,_1_series_each-16      143            184            +28.67%
BenchmarkProxySeries/1SeriesWith10000000Samples/single_client_with_10000000_samples,_1_series-16     90             128            +42.22%

benchmark                                                                                old bytes     new bytes     delta
BenchmarkProxySeries/1000000SeriesWith1Samples/4_client_with_1_samples,_250000_series_each-16        213085944     258318696     +21.23%
BenchmarkProxySeries/1000000SeriesWith1Samples/single_client_with_1_samples,_1000000_series-16       269202688     314400880     +16.79%
BenchmarkProxySeries/100000SeriesWith100Samples/4_client_with_25_samples,_25000_series_each-16       20379208      25327196      +24.28%
BenchmarkProxySeries/100000SeriesWith100Samples/single_client_with_100_samples,_100000_series-16     22262598      29730443      +33.54%
BenchmarkProxySeries/1SeriesWith10000000Samples/4_client_with_2500000_samples,_1_series_each-16      8611          10207         +18.53%
BenchmarkProxySeries/1SeriesWith10000000Samples/single_client_with_10000000_samples,_1_series-16     4271          5826          +36.41%

Let me dig into this more.

Thanks for this attempt. This is generally known as singleflight and there might be even some gRPC libraries for this.
At the end I would worry about real case:

How often request are exactly the same? Often it's for different millisecond which already makes those "different"
If we do this on querier side we are risking that the requests are already load-balanced among many queries.

I wonder, isn't that a good logic to add in query frontend which would allow us to plan ahead better?

Thank you for your comment. Thanks for pointing me to the exact phrase that I was looking for. https://pkg.go.dev/golang.org/x/sync/singleflight this library looks nice, I could reimplement this using that library if the whole approach here is OK to you.
Let's take a real-life case such as the node_exporter dashboard which probably more or less everyone uses. It has a CPU Busy panel that uses a query such as:
(((count(count(node_cpu_seconds_total{instance=~"$node:$port",job=~"$job"}) by (cpu))) - avg(sum by (mode)(irate(node_cpu_seconds_total{mode='idle',instance=~"$node:$port",job=~"$job"}[5m])))) * 100) / count(count(node_cpu_seconds_total{instance=~"$node:$port",job=~"$job"}) by (cpu))

Then there is the CPU Cores panel:
count(count(node_cpu_seconds_total{instance=~"$node:$port",job=~"$job"}) by (cpu))

Then CPU System Load (1m):
avg(node_load1{instance=~"$node:$port",job=~"$job"}) /  count(count(node_cpu_seconds_total{instance=~"$node:$port",job=~"$job"}) by (cpu)) * 100

And so on. There are quite a few panels using node_cpu_seconds_total with identical matchers. So, once someone opens up a dashboard and even with query-frontend, we will happily go and pull all of those metrics a few times from remote object storage. This adds up when machines have 100+ cores. It's the same with some of the other metrics. I imagine the situation is quite similar in other cases.
When a dashboard gets loaded initially it's obviously the slowest but afterward asking for just the newest data with query-frontend is typically quite fast because it usually gets pulled from Prometheus instances.

If we do this on querier side we are risking that the requests are already load-balanced among many queries.

Could you please elaborate on this? Even if the gRPC connections are load-balanced, it's still fine because we'd be sending one Series() call instead of 2 or more.
I don't think we should do this in query-frontend because essentially the whole expression evaluation i.e. PromQL evaluation engine part would have to be pushed up to query-frontend, right? Unless I misunderstood you. In general, I don't think this is related to planning at all. Isn't planning about things such as QoS i.e. assigning some kind of priorities to queries coming from different tenants and so on?
IMHO this is quite a simple optimization that has an orthogonal goal and can be in Thanos independently of query planning.

I have been playing around with groupcache for this and I have some thoughts. I don't think it would work for us in this case at all. This is because the key in groupcache is a simple string and multiple Thanos Query nodes configured in the same group will not always have the same "view" of the leaf nodes. Network errors are inevitable so a key i.e. a series request that will "fall under" some node might not always be doable for that node. So, the keyspace in groupcache would have to be kind of divided into multiple parts where each part has a unique set of StoreAPIs. This is huge work compared to this simple optimization so I'd prefer to go further with the simple variant, and then try to implement the more complex one.

@GiedriusS I am looking at the same use case. Have you tried this implementation already and does it help improve the query performance?
Another question, when Grafana dashboard loads, does it cache the results of the same query or it just simply queries multiple times?

Looks like this pr works for us and I can see the same Series requests are coalesced. This should solve #4407.

Yes, I have tried it. I wouldn't raise a pull request if the code didn't work :smile: The performance question depends on the queries. If there are a lot of them using the same metrics then there is a huge performance win. This still needs a bit of work on the benchmarks. Probably will need to try out https://github.com/lestrrat-go/bufferpool :thinking:

https://github.com/thanos-io/thanos/pull/4379 is also an optimization that implements a similar thing. @yeya24 could you PTAL at it?

Coming back to this. Answering @bwplotka 's questions:

I wonder, isn't that a good logic to add in query frontend which would allow us to plan ahead better?

I think we can do the same logic but they cover two different things. It's very easy to imagine a situation where a range selector is used with a time range bigger than the split interval. For example, if the split interval is 1d and someone is executing rate(foo[2d]) then it means that we would still request the same data twice. Unless we'd have some kind of smarter query introspection in query-frontend. But I think that is even more different from what we are trying to achieve.
I will try to reimplement this as a gRPC interceptor so that it would be easier to understand and we wouldn't have to allocate new strings.

I have tried implementing this as a gRPC interceptor but doing this is not viable there because the first RecvMsg() returns so quickly and then the single-flight mechanism doesn't work properly at all. Here's my code: https://gist.github.com/GiedriusS/313b3be1543f543487df5f624f84d836.
So, I would like to come back to this pull request very soon.


Inform the user how it's searching for containers to stop during deploys

Combinations of host networking and port mapping can lead to inability
to find listening containers, this at least tells the user what it's
trying so they can get some idea of the criteria.

:+1:


New branch

Added landing page preview to README

Sorry, I couldn't merge your PR as it doesn't align well with our CODE OF CONDUCT.


[WebEx Adapter] Apply naming convention

Rename config to _config
Rename api to _api
Remove unnecessary this due to renaming

[ ] All new files must include MS Copyright
[ ] All new methods must have documentation
[ ] Make sure that not foreign commits are included
[ ] Commit titles should be under 50 characters
[ ] No typos in commit messages
[ ] Make sure the target branch is the correct one


New sidebar on projects page with shortcuts to your projects and mentees projects

When not logged in:

When logged in as a normal user:

When logged in as a mentor:

I think it would be better to just not include the sidebar when not logged in. It just looks off

Updated to show the old way with col-12 if the user is not logged in

@SaswatB updated!


add Last.fm Support

Thanks for the suggestion! This sample isn't high on our priority list right now but we'd be happy to review your pull request if you'd like to contribute this feature.


Update PromptTemplate parameters

Fixes #195

Update both tutorial 21 and tutorial 22

LGTM. The difs were difficult to parse but as far as I can tell you've added the use of prompt hub and that's it correct?

I used PromptHub for one of them. Apparently, we haven't put lfqa prompt in the hub so I cant use PromptHub for Tutorial 22.


Update scala-library, scala-reflect to 2.13.8

Updates

org.scala-lang:scala-library
org.scala-lang:scala-reflect

from 2.13.7 to 2.13.8.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-lang" } ]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Why would this only come to main?

Sometimes the other branches are delayed, for whatever reason.

The other branches were updated via #5860.


'Download' option doesn't work for alternative version formats (AccessDenied)

Downloading the javadoc jar from javadoc.io (using the button at the top of the page) appears to fail with artifact versions containing the hyphen character (and possibly others).
Example: The download button at the top of this page links to this download url, which returns an AccessDenied error. Artifacts without the hyphened version appear to download as expected.

fixed and deployed

Awesome, thanks mate! Really love and appreciate the service you created, it's helped me out countless times.

cheers :) happy to hear that!


Suggestion: Menu items for control, shift, delete, backspace, and enter

Expected Behavior
If the suggestion was followed, there would be more keys added for the key pressed boolean
Actual Behavior
There aren't menu items for the keys mentioned in the title of this issue.
Steps to Reproduce
It always happens and this is just a suggestion.
Operating System and Browser
It doesn't really matter. This is a suggestion.

A scary suggestion:
What if passing a number to the "key pressed" block simply returned if the key whose key code matches that number is pressed? This would make the "key pressed" block virtually completely powerful, without cluttering the dropdown with keys rarely used such as page up/down. Currently, projects like griffpatch's Word Processor have to actually embed those very ASCII characters right into the string inputs of the "key pressed?" block. (So you get blocks like "key \n pressed?", where \n is literally a newline character.) This is extremely counter-intuitive and definitely a hack (it requires manually editing the JSON of the project, of course). Adding in general support for detecting keypresses based on a key code would solve this (you'd do "key (0 + 13) pressed" or "set (new line) to (13); key (new line) pressed?" instead).
The only problem with this: it's secret behavior, and unclear to someone who isn't expecting it :) - This could be amended by adding information about it to the help screen of the "key pressed?" block, but I'm not sure how you're supposed to explain to someone who's only programmed with Scratch before that passing in a number should make it check if some key code is pressed, according to an arbitrary dictionary of key codes to keyboard keys. Perhaps link to http://keycode.info/? That's a fairly easy-to-use tool.

@towerofnix Maybe instead, there should be another block that is <key with code () pressed?>.

I never agree because TABLES DON'T HAVE THESE KEYS.

@amazinigmech2418
if you want, it should be "extension".

@apple502j Sure, tablets don't have these keys, but they don't have any other keys either. Would it be wise to completely remove the "key pressed" blocks, for the sake of having "computer" projects be 100% supported on tablets?

@towerofnix Then many projects would no longer work. You can just make buttons to make a mini keyboard inside the project for mobile devices.

@apple502j Why would it be an extension? You'd have to make a full new block for the menu to work.

@amazinigmech2418 some blocks which are difficult to understand moved to extension, like pen.
keycode block should be there.

@apple502j You're not understanding what I'm saying. I'm saying to just add those characters to the menus.

This has some serious implications on accessibility with screen-readers (which often use modifier keys as listed above for navigation).

@thisandagain https://wiki.scratch.mit.edu/wiki/Panther_(Scratch_Modification) talks about a mod with the keys I suggested in this issue, so that shows I'm actually not the first person with the idea. You could possibly use the code for that to also get the key codes (not e.keyCode in JS, but the text code for the keys like what would be needed for JSON editing in 2.0).

@thisandagain, I don't see this as an accessibility issue, as long as a accessibility navigation takes precedence over the in-project events and authored behavior. This is exactly like browser keys taking precedence over authored behavior.
Compare the request with the video or microphone blocks. Not all users/devices have that hardware, but we still have those blocks and allow users to make projects that use those features. In the keyboard event case, we have a small minority of users who can interact fully with projects that use that feature.
I personally like the ability to drop a block into the key pressed drop down. The KeyboardEvent.code is the obvious reference of allowed keys. It adds advanced support without cluttering the menu options seen by all users.


Adding "exclude" to oneOf loaders adds minutes to build time

Bug report

What is the current behavior?
module: { rules: [ { oneOf: [

{ enforce: "pre", test: /\.js$/, loader: "source-map-loader",
  exclude: [
    /node_modules/
  ]
},

]}]}

Adding the exclude block with /node_modules/ in it adds several minutes to the build time or simply runs out of memory.
If the current behavior is a bug, please provide the steps to reproduce.
Add this exclude block to webpack config.

What is the expected behavior?
node_modules should be excluded from this loader without several minutes being added to the build time.

Other relevant information:
webpack version:  4.44.1
Node.js version: 12.16.1
Operating System: Linux
Additional tools:

As this is a oneOf block, when this rule doesn't match the next one is executed, which is probably expensive

What is use case using oneOf?

It only matches one of the listed rules. The first one the matches successfully.
It's useful for catch all rules that catch all remaining cases.
Example:
test: /\.js$/,
oneOf: [
  { include: path.resolve(__dirname, "src"), use: ... },
  { include: path.resolve(__dirname, "vendor"), use: ... },
  { use: ... } // All remaining js files
]

It makes sense that it's a little bit expensive, but this will go on for 5 or more minutes. Some patterns never complete.

It would be great if you reduce your issue to a small reproducible example. Best put this example into a github repository together with instructions how to get to the problem.

@isaiahtaylorhh friendly ping

Closing due to inactivity. Please test with latest version and feel free to reopen if still regressions. Thanks!


plumb through the resolved conversationIDkey and set an isPending flag

@keybase/react-hackers this fixes you trying drag/drop or paste an image into a conversation from the new convo flow.
Steps to repro:

create new convo
select a person who you have an existing convo with
drag file or paste image

nothing happens
The reason this happens is we do bookkeeping of the convo and we treat it as a special value PENDING if we're in the middle of building the convo. We also want previews to work so we have a way to resolve the pending to an existing conversation (if it exists)
So before the conversationIDKey in this case would flow down as PENDING, then all the consumers of it would have to check if its pending and act accordingly. But really only a few pieces are pending-aware (the header shows the search bar instead, the input bar does different things).
So now we pass the resolved conversationIDKey so most things act like you're in a regular convo and we additionally pass a new flag isPending which tells components it really is a search state

cc: @mmaxim

LGTM. Just want to make sure the comparison is still valid in inbox/new-conversation/container.js:
isSelected: conversationIDKey === Constants.pendingConversationIDKey,


whitespaces in calc()

CSS-minify removes spaces from calc() expression. I.e. calc(100% + 5px) ends up as calc(100%+5px) which doesn't work.

Thanks a lot for report this. I will fix it 😄

Thanks again. I did a test with this case and it passed. :smile: Thanks!


use add_compile_definitions instead of CMAKE_C_FLAGS

this allows the user-specified CFLAGS/CXXFLAGS to take effect.

actually, this could just use the auto-defined __linux and __unix macros, but this is easier.


Fix object orientation being rotated 180 degrees

When using "Oriented towards user" mode, there was a bug that the object is rotated not towards the user, but exactly from the user.
Reversing the subtraction solves this problem.

Hi @barmyard, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). 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, MSBOT;

Thanks for the fix!


Request Uri always return host in InternalRequester

Hi, there, in my case, the Rest API url of  Wordpress is https://host.com/wp-json/wc/v3, but when we tried to call ListPostRequest , like the example, got error " https://host.com/posts?page=1&per_page=1&order=asc" , the path "/wp-json/wc/v3" was missed.

Hey @liuchiente !
I am not able to reproduce the issue you mentioned. Could you please share more details on this?

Version you are using
Steps to reproduce in detail

Thank you!

Hi, sorry for late, following is some information for the exception.
version: wordpress_client: ^8.4.1
main.dart

final baseUrl = Uri.parse('https://example.com/wp-json/wp/v2');
final client = WordpressClient(
baseUrl: baseUrl,
bootstrapper: (bootstrapper) => bootstrapper
.withStatisticDelegate((baseUrl, requestCount) {
print('$baseUrl -> $requestCount');
})
.withDebugMode(true)
.withDefaultAuthorization(
UsefulJwtAuth(
userName: 'username',
password: 'password',
),
)
.build(),
);

client.initialize();
final request = ListPostRequest(
page: 1,
perPage: 20,
order: Order.asc,
);
final wpResponse = await client.posts.list(request);
as bellow, and I had got exception message like this

https://example.com/posts -> 1
*** Request ***
uri: https://example.com/posts?page=1&per_page=20&order=asc
method: GET
responseType: ResponseType.json
followRedirects: true
persistentConnection: true
connectTimeout: 0:00:30.000000
sendTimeout: 0:00:30.000000
receiveTimeout: 0:00:30.000000
receiveDataWhenStatusError: true
extra: {}
headers:
data:
null

*** DioException ***:
uri: https://example.com/posts?page=1&per_page=20&order=asc
DioException [connection error]: The connection errored: The XMLHttpRequest
onError callback was called. This typically indicates an error on the network
layer. This indicates an error which most likely cannot be solved by the
library.
the exception confuse me is, I had set full restful api url https://example.com/wp-json/wp/v2, then ListPostRequest will get all the post from my Wordpress,  but the DIO exception means that calling url is https://example.com/posts , the path of url wp/v2 has been missing.
did I made the wrong for calling method ?

@liuchiente I had used the same configuration for my tests and it was working fine. I am now curious on if the website you are using has some plugins which has some redirect rule to redirect the user from API path to the normal webpage. eg: /wp-json/*
If you have Cloudflare, it is also possible you have some redirect there as well for this path.
I understand the site URL is sensitive, but if it's possible to DM me the URL, then I could further debug it to know where the issue actually is. As of now, i have retested as well but didn't find any issues on how it's handled in the package.

Hey @liuchiente , I am closing this one out as there is no activity for past 2 weeks. Please reopen if you have more to add!


GUI Popups Not Aligned on multiscreen

Initial popup window doesn't not always focus on primary screen, and the secondary popup can start on a different screen.

Second popup now centralises on main screen when created.


List of boolean not evaluated correctly

type Foo:
    attr boolean (1..1)

func ShouldEvalulateToSingleCardinality:
    inputs:
        foos Foo (0..*)
    output:
        result boolean (0..1)

    set result:
        foos count > 0
        and foos extract ExtractAttr // should cause validation error because this returns a list of booleans rather than a single

func ExtractAttr:
    inputs:
        foo Foo (1..1)
    output:
        extractedAttr boolean (1..1)

    set extractedAttr:
        foo -> attr

The above function ShouldEvalulateToSingleCardinality should cause a validation error because the list of booleans needs to reduced to a single boolean, for example by add then all = True.

Note that this bug only happens if the expression is part of a boolean expression.
This should cause a validation error but does not:
func ShouldEvalulateToSingleCardinality:
    inputs:
        foos Foo (0..*)
    output:
        result boolean (0..1)

    set result:
        foos count > 0
        and foos extract ExtractAttr

This correctly causes a validation error:
func ShouldEvalulateToSingleCardinality:
    inputs:
        foos Foo (0..*)
    output:
        result boolean (0..1)

    set result:
        foos extract ExtractAttr


Enforce no set_db / remove_db in Query

The call signature to the query function in contracts is &Extern -> &Storage which is the same as &ReadonlyStorage. Thus, the type system will prevent us from calling modifying operations on the ExternalStorage. However, one could still call the direct imports with no protections (set_db, remove_db). We cannot stop that on the contract side (any more than we have already), but we should make some checks on the VM / Instance side to never allow modifications during query.
I am not really sure where to store that info (already overloaded ContextData? bool on the Instance itself), but it is a nice safety measure

Unless we specifically change something else in the stack, we require a writable KVStore for all calls. And we should take care to enforce that is un-writeable before exposing it to a query.  Especially if these are cross-contract queries that have access to the current state to be committed.
This enforcement could happen in cosmwasm-vm or potentially go-cosmwasm, but I don't want to require that from wasmd, as many people are copying the go/sdk module and it should be hard to open security holes there.

There is consensus on the following non-breaking interface change:

we could easily add a set_readonly method on the Instance which would change a default value on the ContextData, and then call that method from the do_query context

https://github.com/CosmWasm/cosmwasm/issues/385#issuecomment-636913555


importing files

Hello, I am trying to use your extensive list of file formats to import different files in different formats (e.g. PLY, OBJ, etc.) and convert them to VTK objects. Then I will use them for some modelling and just afterwards for visualization.
However, it looks like that Vedo makes available the imported objects already as actors or as "vtkFollower" (using vedo.load()).
Do you have a function to get a "physical" vtkObject, such as a vtkPolyData, vtkStructuredGrid, etc.?
Thanks very much!

Yes, just use e.g.:
mesh = load('myfile.obj').rotateZ(45)
mesh.polydata() # rotated vtkPolydata

mesh.inputdata() # for the other data types


Update lambda-function dependency

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

test


[feat] exported a configuration from this package (closes #165)

Supports extending configurations that use these rules. See #165 for more information.
This doesn't enforce any defaults for rules, although that's possible.

Oh, I thought we were discussing moving tslint to a peer dependency. Please don't move typescript there right now, it'll creating all sort of pain. Anyone running a nightly version won't be able to install properly as the nightly versions (all prereleases) don't satisfy that constraint. It's because of this I have a lot of projects that do: https://github.com/TypeStrong/ts-node/blob/ee1e1e1c34af19026a1e32c39e171c66cf2f866b/.travis.yml#L10.

Okay, removed.

@apexskier Yeah, sorry, it's a real PITA with the prerelease situation. But, I'm sure more people than just I use it like that so best to make that change in a major release if needed. The tslint to peer deps should be reasonable though, since you can't really use this module without tslint anyway and the user should install it themselves.

Not a problem. For tslint, do you propose moving it to a peerDependency, or having it as both a dependency and a peerDependency. Since the rules in this package directly require tslint, I think it needs to be a dependency, so it doesn't need to be a peerDependency.

I'll leave that for @jmlopez-rod to decide, but I think it's reasonable to have it be a peerDependency. That's what peer dependencies are for - a module that is a dependency, but the dependency usually goes in the reverse direction (e.g. a react plugin that depends on react, but we don't need to duplicate the react dependency in each place - which was more important before NPM v3 with a flat tree).

I still don't quite understand what happens when we list the same package under dependencies and peerDependencies. Will npm stop from downloading another version under its own node_modules? Either way, I think we can go with these changes, I'm just not sure how to deal with the version. If its going to be a major change I'd like to get https://github.com/buzinas/tslint-eslint-rules/issues/164 resolved as well.

Just an update on this. I'll mess around with other projects to see if the peerDependencies change will affect the usage on this. If everything goes well I'll go ahead and merge and release it this weekend with a minor version update.

By the way, I don't think there's any reason to do both peerDependencies and dependencies. We should probably move tslint to devDependencies - it's kind of invalid to imply that we want it both installed as a dependency and as a peer since we can only use one.

@blakeembrey I was wondering about that, I'll go ahead and that. Usually developers would start by installing tslint first, then any of the 3rd party plugins such as this one. I'll open an issue to remember to do it on the next release.


Types must follow folder hierarchy as namespace hierarchy

Based on discussion here: https://github.com/aspnet/Mvc/pull/2255
We have quite a couple of files in the Mvc repo that do not follow the folder-namespace convention. We should either move them to the folder-appropriate namespace or move them top level.

@rynowak assigning to you because you're doing the namespace cleanup. I'm not super concerned about the exact details of this bug, so just associate it with your rename commit(s), and close this bug when you're done.

Any preference on a pattern when files can't follow the convention?
Ex: Microsoft.AspNet.Mvc.ViewFeatures contains files in the following namespaces

Microsoft.AspNet.Mvc
Microsoft.AspNet.Mvc.Rendering
Microsoft.AspNet.Mvc.ViewFeatures
Microsoft.AspNet.Builder
Microsoft.Extensions.Builder

We often create fake-ish folders for those.
E.g. have a src/Microsoft.AspNet.Mvc.ViewFeatures/Builder folder that has the Microsoft.AspNet.Builder namespace in it, or similar.
If it's a very small number of types that are misplaced I would put them in the root of the project.

The goal being to not have a giant mess. Small messes are acceptable.

Ok great, that's what I've done in the existing code.

dd952d8d70bab70f8fe336811b20d793931b80e1
a27616969316043822749302247d3b07e3029702
de3b33caf1a808b6e5c2636e60de4cbaf8f7ffea
8b1bd343ba56152d2a7e677cf041dc9d62b4033f


Data partitions: added new attribute nrql ,NR-72647

Modified the data partitions by replacing matchingCriteria with nrql.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: NSSPKrishna:x: renovate[bot]You have signed the CLA already but the status is still pending? Let us recheck it.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: NSSPKrishna:x: renovate[bot]You have signed the CLA already but the status is still pending? Let us recheck it.

Codecov Report

Merging #993 (5d10928) into main (3868a26) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #993   +/-   ##
=======================================
  Coverage   40.28%   40.28%
=======================================
  Files          77       77
  Lines        4875     4875
=======================================
  Hits         1964     1964
  Misses       2766     2766
  Partials      145      145

Flag
Coverage Δ

unit
40.28% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

pkg/logconfigurations/logconfigurations_api.go
0.00% <ø> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


fix(docs): updated bad or missing imports

Fixed some import issues in the docs.

Thanks for contributing!


Fixed 10ms per-byte delay

Fixes #42
Replaced call to getchar with delay 0
Now "timeout" is handled in main loop
Repl responds only to valid characters (not timeouts)

I like this change as it brings back the control to the main loop.
This is some long-term topic in embedded: without an RTOS, it is not possible to use threads.
So it becomes necessary to have some workaround to be able to run multiple tasks in parallel.
The quick hack we did here is run the periodic USB task wherever waiting was needed.
The proper solution would be putting the USB task in an USB interrupt. No idea why this is not done by the pico-sdk...
An alternative is to use Coroutines so that "sleep" switches to the next task, without using threads for this.
https://en.wikipedia.org/wiki/Coroutine#C

USB task in an USB interrupt. No idea why this is not done by the pico-sdk...

Probably to keep interrupts short. It's another golden rule of embedded. Interrupts should notify the main thread and not block.

An alternative is to use Coroutines so that "sleep" switches to the next task, without using threads for this.

Coroutines are cooperative programming, but you'd still need an RTOS to handle task switches.

This is some long-term topic in embedded: without an RTOS, it is not possible to use threads.

Why no RTOS then? I get it, now it'd be a long shot to implement it, but it simplifies weird things like this. For me it's a must have in bigger projects now.

Coroutines are cooperative programming, but you'd still need an RTOS to handle task switches.
Well... there are hacks to bring it to C, but you are right, RTOS is what allows to have a non-damageful sleep().

It's another golden rule of embedded.
Good to be reminded there! I might have been assuming an RTOS while calling something that sleep()s in main().

Why no RTOS then?
It could be better with an RTOS at the global level, but the pico-ice-sdk is built to be as portable as possible so that it is just a pico-sdk library. Maybe for the main firmware an RTOS can be used. I still prefer your fix as it is less intrusive and even if an RTOS was used, it would cover the entire migration period.

Another consideration was using MicroPython, which has asyncio.


Add tiny IRC client

Disclosure: I'm the author of tiny.

Thanks, but we have two other great tools and I think that's enough:

Irssi
WeeChat


Failing tests for Julia LTS version

BOSS.jl does not compile on Julia's LTS version (1.6.7).

Enable the LTS version in CI once resolved.

This was resolved by moving julia LTS version to 1.10.5 for which the tests pass. :)


Improve Lodash imports for tree-shaking

Hi.  I was glancing through this lib to evaluate whether it might be a good fit for our app, and I noticed that it currently imports Lodash as a default import:
import _ from "lodash"
This will likely cause the entire Lodash library to be pulled in and increase bundle sizes for apps.  It would probably be better if the individual functions were imported seperately, like import flatMap from "lodash/flatMap".

It seems that still wouldn't be enough because of the dependency json-schema-deref-sync uses the whole bloated lodash as well.
yarn why lodash
- Hoisted from "openapi-client-axios#lodash"
- Hoisted from "openapi-client-axios#json-schema-deref-sync#lodash"

Shouldn't be hard to switch both to use lodash-es though.

Although it would be super cool to get the bundle size down, like @ptytb mentioned, right now getting rid of lodash as a default export wouldn't have an effect.
I'll be closing this issue but if you have any ideas, I'd be more than happy to receive PRs :)


Holding UI thread while opening file

When I opened a forecasting file VS gave me a disabled message. It showed the busy spinner and eventually went gray.

I can share the file if there isn't a repo.

Can't reproduce any more, maybe it's been fixed.

Okay let's close this!


docs: point readme  to new generator docs

Description
After the generator docs were published to the tools bucket, the links in the Readme are broken and should be read in the website
Related issue(s)
Fixes #892

#892

PR fixes #892

LGTM otherwise🚀

@derberg @pratik2315 please review, I've updated PR from last review

@derberg I'll make adjustments. I think I misunderstood

but I think Overview even if it duplicates stuff a bit, it should stay right?

@Florence-Njeri I see you removed it, you think we do not need overview and repo description is enough?
also is there a reason for ToC removal?

but I think Overview even if it duplicates stuff a bit, it should stay right?

@Florence-Njeri I see you removed it, you think we do not need overview and repo description is enough?
also is there a reason for ToC removal?

Hey @derberg from this issue -> https://github.com/asyncapi/generator/issues/892, I was to remove the TOC from the readme since the links may be broken and point the readers to the main docs in the website.

Hey @derberg from this issue -> https://github.com/asyncapi/generator/issues/892, I was to remove the TOC from the readme since the links may be broken and point the readers to the main docs in the website.

oh, ok, now it makes sense why you wanted to remove it. Luckily in case of main readme we are covered.
@Florence-Njeri @pratik2315 so this is what "security" we have in place

When you look at the source of the readme you see stuff like:<!-- toc is generated with GitHub Actions do not remove toc markers -->

<!-- toc -->
blablabla
<!-- tocstop -->

We use markdown-toc package that handles the regeneration of blablabla part
We have a script that uses this tool https://github.com/asyncapi/generator/blob/master/package.json#L25
And this script is also reused here in https://github.com/asyncapi/generator/blob/master/package.json#L26 that we use directly in our automation:

when release happened -> https://github.com/asyncapi/generator/blob/master/.github/workflows/if-nodejs-version-bump.yml#L39
or when just docs were updated -> https://github.com/asyncapi/generator/blob/master/.github/workflows/update-docs-on-docs-commits.yml#L22

so basically you can add/remove sections in readme, but you do not have to remember about updating TOC as it will be updated by asyncapi-bot

so just remove sections:

Requirements
Using from the command-line interface (CLI)
Generator version vs Template version
How to create a template

and add new Documentation where you mention where our docs are rendered, and maybe mention that in case of docs contribution sources are here in docs folder

/rtm again 😄 🤞🏼

@Florence-Njeri @pratik2315 you can see what I meant that ToC in readme is updated automatically by bot -> https://github.com/asyncapi/generator/pull/932

Yes, makes sense.


Disable the submit button if data is missing?

Sometimes I get carried away with the game notes that I forget to check the missing data when the game mode and deck are not detected.
This results in an API error due to the missing data.
Would it be possible to disable the submit button if data is missing to prevent accidentally submitting incomplete data?

Yes it makes sense ! Maybe @Meowvw  you want to have a look ? It should be easy to implement.

Sorry, I didnt see the message here. I just checked, did you do that already?

Nope, it's not implemented yet, feel free to give it a try :)


cannot run sudo apt-get update in ubuntu 22.04.03

Description
when i run  sudo apt-get update  i get this long error message
russell@Russell-Fish:~$ sudo apt-get update
[sudo] password for russell:
Ign:1 http://security.ubuntu.com/ubuntu jammy-security InRelease
Ign:2 http://archive.ubuntu.com/ubuntu jammy InRelease
Ign:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease
Ign:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease
Ign:2 http://archive.ubuntu.com/ubuntu jammy InRelease
Ign:1 http://security.ubuntu.com/ubuntu jammy-security InRelease
Ign:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease
Ign:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease
Ign:1 http://security.ubuntu.com/ubuntu jammy-security InRelease
Ign:2 http://archive.ubuntu.com/ubuntu jammy InRelease
Ign:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease
Ign:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease
Err:2 http://archive.ubuntu.com/ubuntu jammy InRelease
Cannot initiate the connection to archive.ubuntu.com:80 (2001:502:1ca1::30). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2001:503:231d::2:30). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2001:502:7094::30). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4002:1::102). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4002:1::103). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4000:1::16). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4000:1::19). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4002:1::101). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2001:502:1ca1::30). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2001:503:231d::2:30). - connect (101: Network is unreachable) Could not connect to archive.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to archive.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to archive.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to archive.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to archive.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to archive.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to archive.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to archive.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to archive.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to archive.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to archive.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to archive.ubuntu.com:80 (<IP_ADDRESS>), connection timed out
Err:1 http://security.ubuntu.com/ubuntu jammy-security InRelease
Cannot initiate the connection to security.ubuntu.com:80 (2001:502:1ca1::30). - connect (101: Network is unreachable) Cannot initiate the connection to security.ubuntu.com:80 (2001:503:231d::2:30). - connect (101: Network is unreachable) Cannot initiate the connection to security.ubuntu.com:80 (2001:502:7094::30). - connect (101: Network is unreachable) Cannot initiate the connection to security.ubuntu.com:80 (2620:2d:4000:1::19). - connect (101: Network is unreachable) Cannot initiate the connection to security.ubuntu.com:80 (2620:2d:4002:1::101). - connect (101: Network is unreachable) Cannot initiate the connection to security.ubuntu.com:80 (2620:2d:4002:1::102). - connect (101: Network is unreachable) Cannot initiate the connection to security.ubuntu.com:80 (2620:2d:4002:1::103). - connect (101: Network is unreachable) Cannot initiate the connection to security.ubuntu.com:80 (2620:2d:4000:1::16). - connect (101: Network is unreachable) Cannot initiate the connection to security.ubuntu.com:80 (2001:502:1ca1::30). - connect (101: Network is unreachable) Cannot initiate the connection to security.ubuntu.com:80 (2001:503:231d::2:30). - connect (101: Network is unreachable) Could not connect to security.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to security.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to security.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to security.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to security.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to security.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to security.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to security.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to security.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to security.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to security.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to security.ubuntu.com:80 (<IP_ADDRESS>), connection timed out
Err:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease
Cannot initiate the connection to archive.ubuntu.com:80 (2001:502:1ca1::30). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2001:503:231d::2:30). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2001:502:7094::30). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4002:1::102). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4002:1::103). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4000:1::16). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4000:1::19). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4002:1::101). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2001:502:1ca1::30). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2001:503:231d::2:30). - connect (101: Network is unreachable)
Err:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease
Cannot initiate the connection to archive.ubuntu.com:80 (2001:502:1ca1::30). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2001:503:231d::2:30). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2001:502:7094::30). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4002:1::102). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4002:1::103). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4000:1::16). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4000:1::19). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4002:1::101). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2001:502:1ca1::30). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2001:503:231d::2:30). - connect (101: Network is unreachable)
Reading package lists... Done
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/jammy/InRelease  Cannot initiate the connection to archive.ubuntu.com:80 (2001:502:1ca1::30). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2001:503:231d::2:30). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2001:502:7094::30). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4002:1::102). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4002:1::103). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4000:1::16). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4000:1::19). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4002:1::101). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2001:502:1ca1::30). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2001:503:231d::2:30). - connect (101: Network is unreachable) Could not connect to archive.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to archive.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to archive.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to archive.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to archive.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to archive.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to archive.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to archive.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to archive.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to archive.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to archive.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to archive.ubuntu.com:80 (<IP_ADDRESS>), connection timed out
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/jammy-updates/InRelease  Cannot initiate the connection to archive.ubuntu.com:80 (2001:502:1ca1::30). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2001:503:231d::2:30). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2001:502:7094::30). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4002:1::102). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4002:1::103). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4000:1::16). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4000:1::19). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4002:1::101). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2001:502:1ca1::30). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2001:503:231d::2:30). - connect (101: Network is unreachable)
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/jammy-backports/InRelease  Cannot initiate the connection to archive.ubuntu.com:80 (2001:502:1ca1::30). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2001:503:231d::2:30). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2001:502:7094::30). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4002:1::102). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4002:1::103). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4000:1::16). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4000:1::19). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4002:1::101). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2001:502:1ca1::30). - connect (101: Network is unreachable) Cannot initiate the connection to archive.ubuntu.com:80 (2001:503:231d::2:30). - connect (101: Network is unreachable)
W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/jammy-security/InRelease  Cannot initiate the connection to security.ubuntu.com:80 (2001:502:1ca1::30). - connect (101: Network is unreachable) Cannot initiate the connection to security.ubuntu.com:80 (2001:503:231d::2:30). - connect (101: Network is unreachable) Cannot initiate the connection to security.ubuntu.com:80 (2001:502:7094::30). - connect (101: Network is unreachable) Cannot initiate the connection to security.ubuntu.com:80 (2620:2d:4000:1::19). - connect (101: Network is unreachable) Cannot initiate the connection to security.ubuntu.com:80 (2620:2d:4002:1::101). - connect (101: Network is unreachable) Cannot initiate the connection to security.ubuntu.com:80 (2620:2d:4002:1::102). - connect (101: Network is unreachable) Cannot initiate the connection to security.ubuntu.com:80 (2620:2d:4002:1::103). - connect (101: Network is unreachable) Cannot initiate the connection to security.ubuntu.com:80 (2620:2d:4000:1::16). - connect (101: Network is unreachable) Cannot initiate the connection to security.ubuntu.com:80 (2001:502:1ca1::30). - connect (101: Network is unreachable) Cannot initiate the connection to security.ubuntu.com:80 (2001:503:231d::2:30). - connect (101: Network is unreachable) Could not connect to security.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to security.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to security.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to security.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to security.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to security.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to security.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to security.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to security.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to security.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to security.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to security.ubuntu.com:80 (<IP_ADDRESS>), connection timed out
W: Some index files failed to download. They have been ignored, or old ones used instead.
Platforms affected

[ ] Azure DevOps
[ ] GitHub Actions - Standard Runners
[ ] GitHub Actions - Larger Runners

Runner images affected

[ ] Ubuntu 20.04
[X] Ubuntu 22.04
[ ] macOS 11
[ ] macOS 12
[ ] macOS 13
[ ] macOS 13 Arm64
[ ] macOS 14
[ ] macOS 14 Arm64
[ ] Windows Server 2019
[ ] Windows Server 2022

Image version and build link
?
Is it regression?
i think so
Expected behavior
success
Actual behavior
the long text above
Repro steps
sudo apt-get update

Hello @RussellFish . Looks like problem in your environment. apt in image works correctly itself.
https://github.com/sergei-pyshnoi/workflow-test/actions/runs/8455109102/job/23161794246
I am closing issue as not runner-image related.


Chapter 03 - Code not consistent with book

In the book, on page 90, the new annotations for the domain classes Category, News and User are described that configure these classes for MongoDB persistence.
These annotations are not present in the code in this repository.
The code seems to be working nonetheless, which is very confusing.

Hey @neumannm, you are right. The code will work at all because the spring framework will configure the mongo collection automatically in that version. But I would like to suggest you add the annotation to make things more clear for developers. I will create a PR as soon. Thank you for your feedback!!

Thank you @claudioed for your timely response and your explanation.
Spring is so much magic. :)


Fix cs

Thanks @ScullWM ! ❤
Would be nice to have something on the project to check the code style.

php-cs is too loose on checking.

:) doctrine/coding-standard is a standard for PHPCS
vendor/bin/phpcs --standard=Doctrine src/

I see! After looking an the code: php-cs-fixer is really too loose.

I've made some changes to this PR:

Use doctrine/coding-standard
Rebase and Squased all commits
Sign for participants
Add validation --strict on composer as per @szepeviktor review

Thank you all! @ScullWM @szepeviktor 🎊

@all-contributors please add @ScullWM  for code


Collpase close not working in ie11

version 4.1, collapse close not working

Already fixed by : #26291 and will be available in our next release


Convert node cut by Xdecor

Registrations
-Simplify and add alias for xdecor
Micreoblocks, panels, slabs, stairs
-Simplify for forcing alias or normal
-Add function for convert block xdecor
-Add alias in register.
Init
function
uppercase
calculate the number of capital letters for lbm name
normal_alias_or_force
....
Add function for alll alias Xdecor
Add Settingtypes

Needs a rebase, please. Is this still current?

I have to redo the changes with the new update of moreblocks.

Rebase 01/01/2018

@fozolo can you review this please?


Add Firefox add-on

Current code is built for chrome extension and only published to chrome web store.
For example, the manifest_version is 3, which is only supported by chrome.
Expected the extension can be used in Firefox.

Heard that Firefox will support manifest v3 at the end of 2022, and Chrome will deprecate v2 in 2024.
So not gonna to downgrade the manifest version, current plan of workaround is to build another package with v2.


Add gcloud and sqlcmd to list to use legacy argument passing

PR Summary
sqlcmd and gcloud require legacy argument passing.  Adding them to list that defaults to legacy for specific commands.  Also sorted list.
PR Context
Fix https://github.com/PowerShell/PowerShell/issues/18554
Fix https://github.com/PowerShell/PowerShell/issues/18529
PR Checklist

[x] PR has a meaningful title

Use the present tense and imperative mood when describing your changes

[x] Summarized changes
[ ] Make sure all .h, .cpp, .cs, .ps1 and .psm1 files have the correct copyright header
[ ] This PR is ready to merge and is not Work in Progress.

If the PR is work in progress, please add the prefix WIP: or [ WIP ] to the beginning of the title (the WIP bot will keep its status check at Pending while the prefix is present) and remove the prefix when the PR is ready.

Breaking changes

[x] None
OR
[ ] Experimental feature(s) needed

[ ] Experimental feature name(s):

User-facing changes

[x] Not Applicable
OR
[ ] Documentation needed

[ ] Issue filed:

Testing - New and feature

[x] N/A or can only be tested interactively
OR
[ ] Make sure you've added a new test if existing tests do not effectively test the code changed

Tooling

[x] I have considered the user experience from a tooling perspective and don't believe tooling will be impacted.
OR
[ ] I have considered the user experience from a tooling perspective and opened an issue in the relevant tool repository. This may include:

[ ] Impact on PowerShell Editor Services which is used in the PowerShell extension for VSCode
(which runs in a different PS Host).

[ ] Issue filed:

[ ] Impact on Completions (both in the console and in editors) - one of PowerShell's most powerful features.

[ ] Issue filed:

[ ] Impact on PSScriptAnalyzer (which provides linting & formatting in the editor extensions).

[ ] Issue filed:

[ ] Impact on EditorSyntax (which provides syntax highlighting with in VSCode, GitHub, and many other editors).

[ ] Issue filed:

/backport to release/v7.3.1


Update for Minecraft v1.21.2

Make the mod compatible with MC 1.21.2
Info
MC release 1.21.2: https://feedback.minecraft.net/hc/en-us/articles/31261174284557-Minecraft-Java-Edition-1-21-2-Bundles-of-Bravery

Closed with #32


Library: Edit

Manage resources > Libraries: https://www.figma.com/file/AXufBnFAVHvGdsxnQMVhNF/The-Accessibility-Exchange-Wireframes?node-id=3462%3A101630
Delete can use the same modal as delete collections.


Updated Player SDK to 1.6.0

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

LGTM - thanks for the PR. Will merge and close.


Filter fails due to syntax error

PD 1.1.7
display(classify_df.filter(classify_df["Fresh Vegetables"] > 0))

causes an error when the filter option dialog is opened.
  File "<ipython-input-35-007fe64adfca>", line 2
    self=ShellAccess['classify_df.filter((classify_df['Fresh Vegetables'] > 0))']
                                                           ^
SyntaxError: invalid syntax
\n

Workaround: filter DataFrame before invoking display
df = classify_df.filter(classify_df["Fresh Vegetables"] > 0)
display(df)

I am getting the same error if I click any of the display or configuration options aside from the "table display" option. So the following buttons will give the error for me: "Options", "Share", any other chart dropdown options, and the filter option.
It appears to not be escaping quotes correctly regardless of what type of operation you are performing, as it happens with the following for me:
display(spark.sql("show databases"))

File "<ipython-input-16-60e0265fdbcf>", line 2
    self=ShellAccess['spark.sql('show databases')']
                                    ^
SyntaxError: invalid syntax
\n

Assigning to a variable as @ptitzler suggested corrects it as well, but again, no quotes can be used inside display at all because the following will also fail:
df = spark.sql("show databases")
display(df.select("databaseName"))


[Event Request] Codeunit 99000813 "Carry Out Action" - procedure CarryOutTransOrder - OnCarryOutTransOrderOnBeforeTransOrderChgAndReshedule

Please add an Event OnCarryOutTransOrderOnBeforeTransOrderChgAndReshedule in procedure CarryOutTransOrder in Codeunit 99000813 "Carry Out Action"
[Event Request] Codeunit 99000813 - Carry Out Action - procedure CarryOutTransOrder
    var
        IsHandled: Boolean;
    begin
        PrintOrder := TransOrderChoice = TransOrderChoice::"Make Trans. Orders & Print";

        if SplitTransferOrders then
            Clear(LastTransHeader);

        if TransOrderChoice = TransOrderChoice::"Copy to Req. Wksh" then
            CarryOutToReqWksh(ReqLine, TransWkshTempName, TransJournalName)
        else
            case ReqLine."Action Message" of
                ReqLine."Action Message"::New:
                    InsertTransLine(ReqLine, LastTransHeader);
                ReqLine."Action Message"::"Change Qty.",
                ReqLine."Action Message"::Reschedule,
                ReqLine."Action Message"::"Resched. & Chg. Qty.":

                    begin
                        IsHandled := false;
                        OnCarryOutTransOrderOnBeforeTransOrderChgAndReshedule(ReqLine, PrintOrder, IsHandled); // <-- NEW EVENT
                        if not IsHandled then
                            TransOrderChgAndReshedule(ReqLine);
                    end;

                ReqLine."Action Message"::Cancel:
                    DeleteOrderLines(ReqLine);
            end;
    end;

[IntegrationEvent(false, false)]
local procedure OnCarryOutTransOrderOnBeforeTransOrderChgAndReshedule(ReqLine: Record "Requisition Line"; PrintOrder: Boolean; var IsHandled: Boolean)
begin
end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 44362.


Odd avg temperature value for CPU

I apologise for the repetitive issues, but I noticed another small bug: after upgrading to Sonoma 14.5, the CPU temperature value seems to be shifted one order of floating to the left. Nothing serious, but it would be great if you could take the time to look into this.
Here's the screenshot of temperature value and attached output of the macmon debug command:
macmon_debug.txt

looks like terminal window size issue


Module selection quirk

If a module is a dependency (yellow) of something you've selected (like City Generation as gameplay) you get odd options

if yellow module: offers "Activate" which then goes green (but it is already activated)
if green module: offers "Deactive" which then goes yellow (can't deactivate it as a dependency)

That's the same behavior as an actual deactivated module which then goes green if you activate and back to unselected if deactivated
We probably should have the buttons more accurately reflect what actually happens / can happen (if a module is mandatory for the gameplay choice then disable the toggle button)

Going to close this, at some point we added a "Status" field which shows the distinction pretty decently


Alternative PICO_BOARD configuration not working

I am using Qt Py RP2040, and lastly, I was struggling with the pinout configuration. I used export PICO_BOARD="adafruit_qtpy_rp2040" to change the pinouts. During the compilation, it seems to use the correct pinouts.
Using PICO_SDK_PATH from environment ('/mnt/c/Users/Luky/Documents/Pico/pico-sdk')
PICO_SDK_PATH is /mnt/c/Users/Luky/Documents/Pico/pico-sdk
Defaulting PICO_PLATFORM to rp2040 since not specified.
Defaulting PICO platform compiler to pico_arm_gcc since not specified.
-- Defaulting build type to 'Release' since not specified.
PICO compiler is pico_arm_gcc
-- The C compiler identification is GNU 9.2.1
-- The CXX compiler identification is GNU 9.2.1
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/arm-none-eabi-gcc
Using PICO_BOARD from environment ('adafruit_qtpy_rp2040')
Using board configuration from /mnt/c/Users/Luky/Documents/Pico/pico-sdk/src/boards/include/boards/adafruit_qtpy_rp2040.h

But defining my I2C port as i2c0, the pinout configuration remains the same as in pico.h. When I want to connect to SDA and SCL, instead of using GPIO 24 and 25, it's working only for GPIO 4 and 5. Am I doing something wrong?

Your output above looks OK (although note that we officially don't support WSL), and https://github.com/raspberrypi/pico-sdk/blob/master/src/boards/include/boards/adafruit_qtpy_rp2040.h#L48 suggests that it ought to be using GPIOs 24 and 25 for I2C.
Can you confirm that you're using the latest release (1.3.0) of the SDK? Are you using the PICO_DEFAULT_I2C_SDA_PIN and PICO_DEFAULT_I2C_SCL_PIN defines?

Thank you, Lurch, for your help. I was compiling the wrong file, where I was not using the PICO_DEFAULT_I2C_SDA_PIN and PICO_DEFAULT_I2C_SCL_PIN exactly as you mentioned. I close this issue since it is solved.


ci:  fix issue in javascore build

correct working directory

correct gradle task name

correct output zip filename

deploy xcall-multi contract to uat node

Description:
Commit Message
type: commit message

see the guidelines for commit messages.
Changelog Entry
version: <log entry>

Checklist:

[x] I have performed a self-review of my own code
[ ] I have documented my code in accordance with the documentation guidelines
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have run the unit tests
[x] I only have one commit (if not, squash them into one commit).
[x] I have a descriptive commit message that adheres to the commit message guidelines

Please review the CONTRIBUTING.md file for detailed contributing guidelines.

wrong changes pusshed.


Update example code for c3-chart directive

A consumer had an issue with the c3-chart directive’s example code.

There was an extra setting of donut options in the data field.
Updated the config styling to make it easier to see the fields.

LGTM


Stand in line

Challenge Name

https://www.freecodecamp.com/challenges/stand-in-line#?solution=
function nextInLine(arr%2C item) {
 arr.push(item)%3B
  arr.shift()%3B

  return item%3B  %2F%2F Change this line
}

%2F%2F Test Setup
var testArr %3D [1%2C2%2C3%2C4%2C5]%3B

%2F%2F Display Code
console.log("Before%3A " %2B JSON.stringify(testArr))%3B
console.log(nextInLine(testArr%2C 6))%3B %2F%2F Modify this line to test
console.log("After%3A " %2B JSON.stringify(testArr))%3B

Issue Description

Browser Information

Browser Name, Version:
Operating System:
Mobile, Desktop, or Tablet:

Your Code

Screenshot

Please be more specific.

@Muliro1 you're still missing a step of the challenge, look at this instruction -

The nextInLine function should then return the element that was removed

and look at what you're returning.
If you're still stuck, visit the Help Room for further help.

@Muliro1 you have an error in your code. Please consider asking for help in the chat room by clicking the Help button on the challenge or using the link posted by @Manish-Giri. Thanks.


Added a new meme.

@nxtCP has it been tested?

@nxtCP has it been tested?

Also change cmd name to lewisboner

Guys change the name, its NSFW. We cannot have a rule going against NSFW content & implement an NSFW feature at the same time, even though its a joke. Please use alternative wording for this command, I think it'd be okay to have it send that picture but the command name needs to be something else. End of discussion here.

Guys change the name, its NSFW. We cannot have a rule going against NSFW content & implement an NSFW feature at the same time, even though its a joke. Please use alternative wording for this command, I think it'd be okay to have it send that picture but the command name needs to be something else. End of discussion here.
PS: It also creates a wrong impression for the time/new users on the server or of the bot.

Haven't seen it in that way, I totally agree with you

gotta agree on this one i also think we dont need to have such stuff in the bot since it just turns into a bit of spam and the onlyfans command was a fun meme and many of them ruins the purpose kind of

also you could just go to #starboard or create a tag and would see that funny thing

Can be implemented via tags directly, might add a admin only /tag a_alias add cmd that gives the tag a apex level name


wrong implementation?

I checked various pytorch repos,
all of them have loss for mean and log_var value, but your have not.
Also resampler formula wrong in your repo.

I guess I do not understand. This implementation does have a loss added for kl divergence using the mean and log_var / std dev, it is just added inside of the layer using Layer.add_loss().
Also, what is meant by resampler formula? reparameterization?
I did find this difference:
return mean + K.exp(stddev) * epsilon

normally is this in other implementations:
return mean + K.exp(stddev/2) * epsilon

Anyway, thank you for contributing 😃 !!

In the bottom example, the stddev variable would represent log variance. Dividing it by two and putting it through the exp function simply converts log variance to standard deviation. If you want to use stddev instead of variance or log variance, it would just be return mean + stddev * epsilon

Thanks @Gregor0410, I corrected the output of the previous layer to be called logvar.


Include PR 13 in published master

Can you please publish the current master so https://github.com/darylrowland/react-native-remote-push/pull/13 is being used?
Thank you!

:+1:

Done :)


sourcemap for packages without js is wrong (404)

ex: bootstrap-icons

@ia3andy I don't think this is an mvnpm issue. Maybe esbuild-java ?

@ia3andy - closing here. Please open in esbuild-java or reopen with more details


GMT 6.2.0.dev0 build

This is a manual GMT 6.2.0 devel release based on the latest commit on GMT, which is meant to reduce the diff on the PR at #100 (still a work in progress). I've cherry-picked the non Github Actions CI related commit and placed them here. Besides changes to the recipe/meta.yaml file, the rest are just conda-forge packaging changes.
Please squash and merge this if it's good to merge.

Checklist

[x] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin, please rerender

Thanks! Once the tests pass, remember to squash and merge (if there's that option).


Feature elevated queue

Added the Elevated Queue Functionality

Added in a feature that allows instructors and admins to enqueue a specific student into an elevated queue of a particular instructor such that when the the target instructor dequeues their next student, it will first check to see if their elevated queue is empty. If it's not dequeue that student, else draw from the normal queue
The help messages were updated to reflect this change

Reworked Permission Checks

Reworked configs to differentiate between Admins, Instructors, and Students
This means that permission check functions were generalized and a new function: AtLeastInstructor was added to check if the sender was either an admin or an instructor
The config file was modified to reflect this change
The setup script was updated to grab admin, instructor, and student role_id's all separately.

Added a few logging statements to oh_state_manager.py since I noticed that we currently do no log that someone opened or closed OH
Added a .flake8 file to configure the linter

The hook associated with this linter was updated as well

Fixed the infamous bug that caused double deletion of messages by performing a check to enforce self cleaning in channels that are not the OH Queue channel
Set up the email handler to only be initialized only if the information was provided, making it so that providing that email information, which clients might not want to do, is optional


fix: fix hiding Ferdi from systray on Macos fullscreen mode

Pre-flight Checklist

Please remember that if you are logging a bug for some service that has stopped working or is working incorrectly, please log the bug here
If you are requesting support for a new service in Ferdi, please log it here
Please remember to read the self-help documentation - in case it helps you unblock yourself for issues related to older versions of recipes that were installed on your machine. (These will get automatically upgraded when you upgrade to the newer versions of Ferdi, but to get new recipes between Ferdi releases, this documentation is quite useful.)
Please consider supporting Ferdi!
👉 https://github.com/sponsors/getferdi
👉 https://opencollective.com/getferdi/donate
Please ensure you've completed all of the following.

[X] I have read the Contributing Guidelines for this project.
[X] I agree to follow the Code of Conduct that this project adheres to.
[X] I have searched the issue tracker for a feature request that matches the one I want to file, without success.

Description of Change
I copy the same code from #1883
I try to factorize the code, and not duplicate it. But I don't reallly know where i can add my code ? I try to use an event on hide, but it make an infinite loop where he go to fullscreen and leave fullscreen.
Motivation and Context
I have the same issue of #1878  when I hide to systray ferdi in fullscreen mode, not with close button like the issue, but by clicking on the systray icon, or on 'Hide Ferdi' in Systray contextual menu
Checklist

[X] My pull request is properly named
[X] The changes respect the code style of the project (npm run prepare-code)
[X] npm test passes
[X] I tested/previewed my changes locally

Release Notes
Fix hiding from systray when Ferdi is in Fullscreen on Macos

@sad270 - can you please confirm that this is working as intended? The description seems to have double-negatives and I can't get a clear picture of the problem being solved.

I'm sorry.
This fix is working.
This is the same issue of #1878 but with the systray "Hide Ferdi" action (not with the close button).
To fix it I copy the code of the close button action and past it in the systray "Hide Ferdi" action
The "Negative" part of my PR message is that i made code duplication to fix the issue.


Renamed Columns Element to Dataset

As the title says this is a simple renaming from Columns to Dataset. This is because data interfaces are no longer required to be columnar, also supporting gridded data for instance. A general baseclass called Dataset will be very useful to wrap very high-dimensional datasets, which do not have a clear visual representation.

Ready to merge, preferably via the new squash commit functionality.

Need to look into why the data cache is complaining even though the tests are passing at some point.

Need to look into why the data cache is complaining, even though the tests are passing, at some point.

Ok, sounds liked you can do that in a different PR. Merging.


Add Support for Loading Audio Separate From Video

This is probably a very niche request but I need to use videojs-wavesurfer to display wavesurfer where the contents of the waveform are pulled from a different file/URL than is used for the video.
FWIW, I'll briefly explain why I need this. I want to be able to extract audio from a video file of two people speaking and process it to separate it into two channels: Person 1 on the left, and Person 2 on the right. I already have this part working.
I then want to be able to use videojs-wavesurfer to display the original video while showing wavesurfer with the results of the splitChannel audio file. It doesn't matter which version of the audio file is actually played back. I assume it would be the audio from the original non-split video, which is fine. But I need wavesurfer itself to show the splitChannel file.
I know I can do this by editing the original video to splice in the new audio, but I'm hoping to be able to avoid that approach.
I tried to use player.wavesurfer().surfer.load(url) after video.js loaded to swap in a new audio file. This does work but it seems to break the playback link between the video.js and wavesurfer so they are no longer in sync.
I looked at the code and it does seem like it might be a fairly minor change to support this, if you're willing to offer a "url" config option to support this.
It might look something like this where you could check for a "url" property on the wavesurfer config object and use that to override the "src" being used with the video:

Note that I think this code should be above the switch case because it might apply to both backend types. In my case, I'm actually using MediaElement because of this bug in wavesurfer.
That being said, I'm happy if you can help provide a resolution to this for either backend type. So if there is some workaround that will work with the current code but not with MediaElement, that would be fine.
Any help or advice you can give would be appreciated. I'm happy to help with testing or a pull request if you can confirm there is no current workaround and that my suggested change would probably work. (Although to test it I'd need to figure out how to build this project)
Thanks,
Dan

I looked at the code and it does seem like it might be a fairly minor change to support this, if you're willing to offer a "url" config option to support this.
It might look something like this where you could check for a "url" property on the wavesurfer config object and use that to override the "src" being used with the video:

Sounds like a good enhancement, no matter if there are other workarounds. Can you maybe check what properties are/should be supported, besides src and peaks, in video.js so we can fix it properly in one go?

In my case, I'm actually using MediaElement because of this bug in wavesurfer.

Could you add a one or two sentence summary of the bug in a new comment on that wavesurfer.js ticket? It'll make it a lot easier to digest the issue, the original report is quite large.

@thijstriemstra -- The Wavesurfer bug is kind of unrelated but I did add a note there.
You're right about probably including peaks at the same time as src. I didn't see any other properties in that file or elsewhere that I'm aware of that should be included.
So maybe something like this above the switch statement?
`
let src = this.player.wavesurfer().surfer.params.src || srcObj.src;
let peaks = this.player.wavesurfer().surfer.params.peaks || srcObj.peaks;
        // if src was passed in through wavesurfer, call load() regardless of the backend
        if (this.player.wavesurfer().surfer.params.src) {
            this.player.wavesurfer().load(src);
        }

`

It just occurred to me that I probably don't need to be using MediaElement here since the audio playback is done through video.js and not Wavesurfer. Since my only concern with the default backend pertains to improper playback of 3+ channel audio files, this isn't an issue when playback is handled by video.js. Thus, I can use the regular backend here and the simpler change would actually be fine for me as well:
            let src = this.player.wavesurfer().surfer.params.src || srcObj.src;
            let peaks = this.player.wavesurfer().surfer.params.peaks || srcObj.peaks;

But that assumes the audio I hear when I play a video comes from video.js and not wavesurfer.

since the audio playback is done through video.js and not Wavesurfer.

It isn't, when using webaudio backend.

this.player.wavesurfer().surfer.params.src

No, I don't want to use src param again, videojs-wavesurfer 3.x moved away from that.

Oh. Then, yea, the longer fix would be better for me. But really the 3-channel thing is a minor annoyance. I'd be happy with the shorter fix, using WebAudio, and just dealing with that bug. It's not a deal breaker for me.
Can you just use a different param name? Even something namespaced for this use-case is fine. Really any way to manually inject a different URL to wavesurfer (or update it after the fact without breaking the sync) is all my use case requires.

Really any way to manually inject a different URL to wavesurfer (or update it after the fact without breaking the sync) is all my use case requires.

The way to load a file or url is player.src() (see https://github.com/collab-project/videojs-wavesurfer/blob/master/examples/index.html#L61). What is 'breaking the sync'? Is there a bug?

Can you just use a different param name? Even something namespaced for this use-case is fine.

A different name for what? A src param? As I said, you should use player.src(). In videojs-wavesurfer 2.x there was src param and videojs's player.src() which was confusing and didn't make much sense, so it was removed in favor of the videojs way of doing things.

I was using player.load() and not player.src() so let me try that and see if it works. If it does, then I should be all set. I am using 3.x.

No luck. I think I'm misunderstanding what you're getting at, or there is indeed a bug.
These are the two things I tried.
REPLACING WAVESURFER AUDIO VIA SURFER.LOAD()

Behavior:  The audio and video playback buttons get out of sync. Calling surfer.play() triggers the new audio but does not trigger video playback. Clicking the video play button does nothing.
REPLACING AUDIO WITH PLAYER.SRC

Behavior:  The video turns all black and won't play. Calling surfer.play() triggers the new audio but does not trigger video playback. Clicking the video play button triggers audio playback but the video does not play.
One thing that I don't think is related but I will mention is that the audio and video files I'm using to test his are different lengths. They won't be in the final product, this is just what I had handy. I can retest with files of identical lengths if you think that might be the cause of the bug.
Am I doing something wrong?

can you test replacing different audio with audio, and video with video? we can take a look at audio for video after that.

also you shouldn't use timeout, wait until the waveform is ready and then load:
player.on('waveReady', function(event) {
    player.src(/* etc */);
});

Sure, I'll get the correct audio file that matches the video file in length as well, just so we can not have to worry about that difference. Gimme an hour or two.

I'll report my tests one at a time. First, trying to swap in new video for existing video...
Result:  Works as expected. The new video replaces the old one and all the playback works correctly with video.js and wavesurfer remaining synced.
There is one minor quirk. I think it probably qualifies as a wavesurfer bug, but maybe not. There are two events that I need to track:  player.waveReady (the video player is ready) and wavesurfer.ready (per the docs: "When audio is loaded, decoded and the waveform drawn").
Technically, there is a race condition here. Wavesurfer doesn't exist yet before player.waveReady has fired so I cannot set its "ready" handler before starting the loading process. As it turns out, this actually is a problem and wavesurfer.ready never fires because it gets set AFTER the event occurred. It is also interesting to note that the event is not actually waiting for the waveform to be drawn. I'm using a big video file and there is a noticeable delay between when I see in my console output that wavesurfer.ready gets set and when the waveform actually appears. So it seems like the event is actually not linked to when the waveform is visible on the page. So I think maybe the docs are wrong about when the event is fired? Or something else may be going on.
At any rate (and this is interesting) when I swap in a new video with player.src(), the wavesurfer.ready event DOES fire this second time because the race condition does not apply to this second video, only to the first one.
For my purposes, I have an inline fix for the race condition and it is not a concern. Here is my code that I tested with:

I finished testing replacing audio with audio via player.src(). It works as expected and has no issues.
BUT it shows the video player with a black pane, which makes sense since there is no video:

This explains the behavior I see when I try to use player.src() to swap in new audio for a video. What it is actually doing is unloading the video and replacing everything with the audio. That's actually the behavior I would expect and want it to do. So I think that approach is probably not valid for what I need to do, which is to get the wavesurfer to show audio that is NOT taken from the video file which is being displayed.
Even when the audio and video are identical length, when I use player.wavesurfer.surfer.load() to swap in a different audio file it does not give satisfactory results. Everything works okay EXCEPT when I click a button bound to wavesurfer.play() it does not play the video. And when I play the video or move the video search bar, it does not sync with wavesurfer. Here you can see the audio and video can be put in different positions after I called player.wavesurfer.surfer.load() and broke the sync:

Is there a way I can manually re-sync these? That would be an acceptable workaround for me. Alternately, being able to pass in "src" to wavesurfer also addresses the issue.

And when I play the video or move the video search bar, it does not sync with wavesurfer.

What wavesurfer backend are you using?

I was using WebAudio. I just retested with MediaElement and the behavior is identical.

Here is my config:

Forget about all the other issues I mentioned. I don't really care about any of them, except this:

Calling "player.wavesurfer.surfer.load()" to update wavesurfer breaks the synchronization between video-js and wavesurfer

Are you not able to replicate this? If that's the case, it might have something to do with me being inside a Vue.js component. I don't think this would matter but maybe it does.

can you make a codepen that reproduces the issue?

@thijstriemstra -- Thanks for the suggestion to use your demo page. That was much easier than having to make a code pen.
Here is a simple demonstration of the bug:

Go to https://collab-project.github.io/videojs-wavesurfer/demo/video.html
Paste the following into the dev console:  player.wavesurfer().surfer.load('https://voicevibes.s3-us-west-2.amazonaws.com/static/video/downloaded.wav');
Click on the video file slider to change the playback position. Observe that playback position of the wavesurfer waveform does not change.
Paste into dev console: player.wavesurfer().surfer.play();
Observe that the new audio plays but the video does not.

Technically, the new audio is much longer than the old audio it is replacing, but I know from my other testing that even with audio of identical length, the bug remains.
Do you think it is possible to fix this and make the two remain synced?

Also, I hacked away at the compiled JS file and tested the fix I was asking about originally (passing in a custom "src" argument). I had to specify to use the "WebAudio" backend to get it to load it. This has something to do with how that switch statement is constructed. Unfortunately, when I do that, it doesn't load the video. I though this was because the switch statement didn't call next(null, srcObj); so I added that line in as well.
This gets me really close. The correct video and audio are now showing. But when I click a play button, BOTH audio files start playing.

I think it's still possible to get the behavior I want one way or another, but it doesn't seem as easy as I had initially hoped. I do want/need to get this working though, so any advice or next steps you can provide would be much appreciated.

Here is a simple demonstration of the bug:

Thanks for those steps. Can you try the same steps with player.src() and report results? Using the wavesurfer instance directly, e.g. player.wavesurfer().surfer is not encouraged, but for testing/debugging, sure.

It throws an error because the player is in video mode and we are trying to load an audio file.

@DrLongGhost that last screenshot, player.src() expects an object, try this instead:
player.src({src: 'url_of_your_file', type: 'audio/wav'});

Using player.src() to swap in a different audio file results in the Video playback window resetting its duration counter to 00:00/00:00 and no longer playing the video when my wavesurfer play button is clicked, so this isn't a working solution for me.


'Cordova/CDVJSON.h' file not found in CDVBackgroundFetch.m on Archive step

Hi chris,
Thank you for great plugin.
Im having a strange issue here, only when im trying to archive/export the project.
When i just install the app in simulator or phone (iphone 4 here) it builds and works fine.
The error is: 'Cordova/CDVJSON.h' file not found   in CDVBackgroundFetch.m
Ive atached a screen shot with more details.
Im using cordova 6.0.0, ios-deploy 1.8.5, cordova ios 4.0.0, the background-fech plugin is v 2.0.4, my xcode is 7.0 and target deployment is IOS 7.0.
Sorry to bother you but im really lost here.
Thank you again!

Hi!
Just found out that i had to use cordova 3.9.2, looked into cordova ios in that version and the file was in CordovaLib folder, in 4.0.0 the structure of the folder is different.

I haven't been using this plugin for a while.  Feel free to fix it and
issue a pull-request.
Perhaps one of the forks has figured out a solution already.
On Thu, Feb 25, 2016 at 8:53 AM, David Azevedo<EMAIL_ADDRESS>wrote:

Hi!
Just found out that i had to use cordova 3.9.2, looked into cordova ios in
that version and the file was in CordovaLib folder, in 4.0.0 the structure
of the folder is different.
—
Reply to this email directly or view it on GitHub
https://github.com/christocracy/cordova-plugin-background-fetch/issues/27#issuecomment-188791933
.

--
Chris Scott
Transistor Software http://www.transistorsoft.com

Thank you for take the time to come here Chris


feat: upgrade to cdkv2

Fixes #
Upgrade cdk version to use CDK 2.2.0
Tests have also been upgraded to use aws-cdk-lib/assertions
Can read more about cdk by visiting the AWS CDK Reference Document

Also I see there's a build error The engine "node" is incompatible with this module. Expected version ">= 14.15.0". Got "12.22.7" - I think this can be fixed by adding minNodeVersion: '14.15.0' within .projenrc.js and updating it with npx projen.

@Chriscbr Hey Chris! Thanks for taking a look. I've updated based on your comments :)


encode and decode invalid Json, throws error

Hi all,
I just want to understand why encode invalid JSON works well without exception but decode breaks with an error.
My use case is to encode data on Redis for caching an HTTP request, and when another request matches the criteria, the value on Redis, when decoded, throws an error saying that it is not possible to decode.  I´m still trying to understand what is the upstream answering with invalid json, but I need now to not store on redis when json is not valid

you can write the json data into a file and check what is invalid in it.

sure, but my point is why encode does not throw an error?

would you please give an example of the json data

`
local cjson = require "cjson.safe"
local invalidJson = '{"key": "value"'
local req_json, error_encode = cjson.encode(invalidJson)
print(req_json)
print(error_encode)
local res_json, error_decode = cjson.decode(invalidJson)
print(res_json)
print(error_decode)`

local cjson = require "cjson.safe"

local invalidJson = '{"key": "value"'

local req_json, error_encode = cjson.encode(invalidJson)

print(req_json)
print(error_encode)

local res_json, error_decode = cjson.decode( req_json)  ---> You should
decode the encoded json here

print(res_json)
print(error_decode)

On Fri, Aug 2, 2024 at 4:51 PM luis.silva @.***> wrote:

`
local cjson = require "cjson.safe"
local invalidJson = '{"key": "value"'
local req_json, error_encode = cjson.encode(invalidJson)
print(req_json)
print(error_encode)
local res_json, error_decode = cjson.decode(invalidJson)
print(res_json)
print(error_decode)`
—
Reply to this email directly, view it on GitHub
https://github.com/openresty/lua-cjson/issues/105#issuecomment-2264891963,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA6RHPWV2ZJTZFB66DQ6ROTZPNCCRAVCNFSM6AAAAABLUHFWZCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENRUHA4TCOJWGM
.
You are receiving this because you commented.Message ID:
@.***>

Sure, it was a typo, but as you can see, you can encode invalid JSON, but the decode will return nil. So my point is why encode returns an encoded value when decode could not decode.

I think you have no idea about what are JSON encoding and JSON decoding.
local invalidJson = '{"key": "value"'
The above is a Lua string.
You can encode the Lua string into a JSON string.
For the JSON decoding, it must be a valid JSON-encoded string other than any string.
you can use print() to see the result of req_json.

Thanks for you explanation.


update repository url of licensee

Why:

The https://github.com/benbalter/licensee repository was moved to the dedicated organization licensee. This updates the link to point directly to the repository instead of relaying on the redirect.

What's being changed:
Update owner name to the new dedicated licensee organization.

Check off the following:

[x] All of the tests are passing.
[x] I have reviewed my changes in staging. (look for the deploy-to-heroku link in your pull request, then click View deployment)
[x] For content changes, I have reviewed the localization checklist
[x] For content changes, I have reviewed the Content style guide for GitHub Docs.

@Shegox Thanks so much for opening a PR! I'll get this triaged for review ⚡

Thanks for your patience! Our small team is working our way through reviewing all of the amazing contributions ✨

Thanks for your patience! Our small team is working our way through reviewing all of the amazing contributions ✨


Fix directory traversal security issues with Archive::unpack().

Similar to directory traversal security issues that have affected GNU tar in the
past, Archive::unpack() should not allow '..' to be used to overwrite arbitrary
files.
While I was in this area, I also made the following changes:

Remove #[cfg(feature = "nightly")] and provide a fallback for unix and
Rust stable that calls libc::chmod() instead.
Fix the issue that set_perms() was not calling APIs that persisted the permissions
changes. Permissions::set_readonly() does not modify the filesystem and presumably
PermissionsExt::set_mode() does not, either.
Ignore AlreadyExists errors from fs::create_dir_all().

Awesome, thanks!

I am not sure why the build is failing with Rust nightly:
https://travis-ci.org/alexcrichton/tar-rs/jobs/63471092#L160
I am using rustc 1.2.0-nightly (0cc99f9cc 2015-05-17) (built 2015-05-17) and I do not see this error.
Do you know what the cause is?

Thanks again! Looked like the tests were passing on travis and just failing on Windows, so I pushed a few fixes. I also reverted the if let Err(e) = ... change for create_dir_all because I believe that the function create_dir_all already works if the directory already exists, so that error would just imply a race which shouldn't particularly be handled by this library I believe.


chore(Mobile): Fix mobile resolution bugs.

What this PR does 📖
-various fixes for the emoji, gif, and sticker picker. Also adds new breakpoints for the sidebar
Which issue(s) this PR fixes 🔨

Resolve #234

Special notes for reviewers 🗒
Additional comments 🎤

rad! Def would like Matt's eyes, he prob has a cleaner way than what I did. The centering was on purpose for mobile, but I feel like it could use some tweaking, maybe just not to take up the whole screen like it does now

Hey @InfamousVague do we still need this pr? I know you mentioned grabbing a couple things out of it but figure we can close this one now?


rewrite prop tests as iterator | closes #143

"45,\"prop_two\":\"foo\"},\"not_component\":42,\"$version\":5}";

should we have bool and double in this?

Refers to: tests/ut/azure_iot_hub_client_properties_ut.c:64 in b127621. [](commit_id = b1276212743a74496047b2337172832ef14998f1, deletion_comment = False)