Enhancement: pass data created in threadpool back to main JS thread in zero-copy way

The #67 talks about a critical optimization when passing data into the threadpool (to do work on it). The corresponding optimization that is equally important is that large data created in the threadpool needs to be efficiently passed back across the boundary from C++ to JS.
Otherwise if the data is large then this hurts performance in the After callback (called HandleOkCallback when using Nan::AsyncWorker), which runs on the main event loop. In particular, large copies at this point can trigger expensive allocation and further slow down the main event loop.
refs this code: https://github.com/mapbox/node-cpp-skel/blob/44f8d413f58fec46839ed7febb75d70ec1fe584e/src/standalone_async/hello_async.cpp#L104-L113.
Proposal
Modify node-cpp-skel to return a node::Buffer from the threadpool using node::Buffer::New.
We'll need to modify the example code to make this logical: we'll need to invent a scenario where a node::Buffer would be appropriate. A good example of this is when passing gzip compressed data back from the threadpool.

large data created in the threadpool needs to be efficiently passed back across the boundary from C++ to JS

Modify node-cpp-skel to return a node::Buffer from the threadpool using node::Buffer::New.

The way to achieve both of these things is to allocation data once and move it into the node.Buffer. Because the node.Buffer object does not support C++ move sematics we can accomplish this with the custom node::Buffer::New signature that accepts an existing char * to data and also a free_callback to use once ownership of that data is passed to node::Buffer::New. This can be accomplished like:

Using a std::make_unique<std::string>(); to allocate data and work with it (append data, for example) in the threadpool
The unique_ptr will own the data while working on it
Then exchange ownership with the node::Buffer after returning from the threadpool like so:

baton->string_ptr.release();
v8::Local<v8::Value> argv[2] = { Nan::Null(),
                                 Nan::NewBuffer((char*)baton->string_ptr->data(),
                                    baton->string_ptr->size(),
                                    [](char *, void * hint) {
                                        delete reinterpret_cast<std::string*>(hint);
                                    },
                                    baton->string_ptr.get()
                                 ).ToLocalChecked()
                               };
Nan::MakeCallback(Nan::GetCurrentContext()->Global(), Nan::New(baton->cb), 2, argv);

Described at https://github.com/mapnik/node-mapnik/issues/531#issuecomment-328545822

Note that we ran into malloc errors related to passing buffers back to JS land in https://github.com/mapbox/vtcomposite/pull/19 - it'd be great to get this set up in node-cpp-skel to avoid rewriting the strings into std::unique_ptr!

Done in #147


Stabilize and document static dispatch interface

For some libraries I'm writing, I'd like to provide multiple versions of my functions with support for static dispatch, but I don't want to take a dependency on syn, and therefore also no dependency on multiversion. However, I'd like to allow my users, some of whom are willing to depend on multiversion, to benefit from static dispatch when calling into my library.
Would it be possible to stabilize the static dispatch interface, and document it, so that I can manually provide functions that are available to multiversion's static dispatch?

I'm actually working on some fairly large changes, one of which will entirely remove the static dispatch API.  Without getting into too much detail, it relies on some hacks that are not flexible and have some edge cases.
I'm not sure how useful it will be in your particular use case, but the new version will provide some sort of const feature object, that will allow you to do something like
if FEATURES.supports("avx") {
    call_avx_fn()
} else {
    call_default_fn()
}

While more verbose than the existing static dispatch, I believe this should allow conditionally selecting code (not just functions!) at compile time.


Remove PlanConvLoopOrder pass

We should really track -ves in PRs and reward it. THanks for cleaning this up Ahmed!

Regressions can be avoided if we enabled conv-to-img2col for these two models, but we can leave these for now and until we have a vectorized convolution in place to use.

Regressions can be avoided if we enabled conv-to-img2col for these two models, but we can leave these for now and until we have a vectorized convolution in place to use.

My vote is to leave it as is. SSD one is within noise range, but not sure.


chore: update  terser and terser-webpack-plugin

What kind of change does this PR introduce?
Fix https://github.com/webpack/webpack/pull/13482
Fix https://github.com/webpack/webpack/pull/13377
update dep - terser & terser-webpack-plugin

Did you add tests for your changes?
Yes updated snapshots

Does this PR introduce a breaking change?
No

What needs to be documented once your changes are merged?
Nothing

Thanks


Logger handler does not handle connection :terminated

I see the logger class handles :terminating but not :terminated.
https://github.com/gausby/tortoise/blob/master/lib/tortoise/handler/logger.ex#L26
Actually might help if these states were documented better. The example in README.md only lists :up and :down as valid options. Presumably :terminating happens first, followed by :terminated, followed by :down? Not really sure.
I noticed my code generating the following error, which is why I chose to investigate:
** (FunctionClauseError) no function clause matching in Robotica.Client.connection/2
    (robotica) lib/robotica/client.ex:16: Robotica.Client.connection(:terminated, %Robotica.Client.State{})

Regards

Actually just noticed a "terminated" function, but maybe this isn't used now???u
https://github.com/gausby/tortoise/blob/113e70b43d0d6a5eb347bc761ac0d82c95ede756/lib/tortoise/handler/logger.ex#L56

Internally tortoise have a pubsub like mechanism for informing its various processes of events happening in the system. One of the topics is the connection topic, and one of the messages it can receive is :terminating. The "terminating" event is used when a process request a network port it can use to put data on when it want to publish a package to the broker—in the case it receive a :terminating message it will not await the port and instead inform the requester that the message could not be transmitted because the client is terminating.
So, the connection callback can receive a "terminating" message. It should happen before you get the :down message when the client is terminated by an administrator.
The terminate/2-callback mimic the OTP behaviour and is the opposite of the init/1 callback. You can use the terminate callback to close down some support system that you created in the init—also, should the process crash the reason would be the error tuple.
Notice that I am working on upgrading the client to MQTT 5. This will bring some changes to the design. I hope that I can make a compatibility mode so the code that currently rely on tortoise should work (or work with minimal changes). The changes are due to major changes in the protocol itself, which would make the current Tortoise design a bit too opinionated—MQTT 3.1.1 was a more strict protocol, where MQTT 5 is more open and "do what ever you want"; so I need to expose more of the MQTT internals to the end user to support this :)

Thanks for these details. Where does the connection :terminated message fit into this?

There is a difference between being "down" (we might come up again later) and "terminated" (the connection is closed and will not come up again).
But these semantics might change in the future, because I had to rewrite the connection logic to accommodate the extended authentication exchange introduced in MQTT 5.

Ok, so looks like in current versions I should look for both :terminated and :down if I want to know when the connection is down?


(contract): update hub contract to adaptive interchain get block.

Codecov Report

:exclamation: No coverage uploaded for pull request base (feature-1.3.2@fa2b2c3). Click here to learn what that means.
 Consider uploading reports for the commit 4d96c4a to get more accurate results

Additional details and impacted files
@@               Coverage Diff                @@
##             feature-1.3.2      #29   +/-   ##
================================================
  Coverage                 ?   13.74%
  Complexity               ?      113
================================================
  Files                    ?       49
  Lines                    ?     4584
  Branches                 ?      394
================================================
  Hits                     ?      630
  Misses                   ?     3901
  Partials                 ?       53

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


index out of range error in planetelements.Mean()

	jde := julian.TimeToJD(time.Now())
	var e planetelements.Elements
	planetelements.Mean(planetelements.Earth, jde, &e)
	earthSemiMajorAxis := e.Axis
	fmt.Println("semi-major axis of Earth:", earthSemiMajorAxis)

yields:

goroutine 1 [running]:
github.com/soniakeys/meeus/v3/base.Horner(...)
        /Users/cjs/dev/go/pkg/mod/github.com/soniakeys/meeus/v3@v3.0.1/base/math.go:29
github.com/soniakeys/meeus/v3/planetelements.Mean(0x100c77018?, 0x1400005c010?, 0x14000108e98)
        /Users/cjs/dev/go/pkg/mod/github.com/soniakeys/meeus/v3@v3.0.1/planetelements/planetelements.go:129 +0x20c
main.main()
        /Users/cjs/dev/solar/main.go:35 +0x174
exit status 2```

I think a more Go-like way to implement this would be to have the code work something like this:
element := planetelements.New(planet.Earth)
fmt.Println("semi-major axis:", element.Axis())

I see that Sonia has passed.  Maybe someone else will take up this issue.


[Bug] Unable to build from source

Search before asking

[X] I searched in the issues and found nothing similar.

Version
OS: MacOS 13.0.1 on Apple Silicon
IoTDB version: 1.01 (latest)
Describe the bug and provide the minimal reproduce step
Unable to build iotdb from source
Steps for reproducing the error:
1 execute git clone https://github.com/apache/iotdb.git
2 go to the root directory of iotdb by executing cd iotdb
3 execute mvn clean package -pl distribution -am -DskipTest
4 error reproduced as follows:
[FATAL] Non-resolvable parent POM for org.apache.iotdb:iotdb-parent:1.2.0-SNAPSHOT: Could not transfer artifact org.apache:apache:pom:23 from/to central (https://repo.maven.apache.org/maven2): transfer failed for https://repo.maven.apache.org/maven2/org/apache/apache/23/apache-23.pom and 'parent.relativePath' points at wrong local POM @ line 24, column 13
What did you expect to see?
iotdb built successfully from source
What did you see instead?
iotdb failed to be built from source
Anything else?
No response
Are you willing to submit a PR?

[X] I'm willing to submit a PR!

Hi, what is your maven version?

Hi, what is your maven version?

Hi HTHou, my environment info is as follows:
Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63)
Maven home: /opt/homebrew/Cellar/maven/3.8.6/libexec
Java version: <IP_ADDRESS>, vendor: Homebrew, runtime: /opt/homebrew/Cellar/openjdk/<IP_ADDRESS>/libexec/openjdk.jdk/Contents/Home
Default locale: zh_CN_#Hans, platform encoding: UTF-8
OS name: "mac os x", version: "13.0.1", arch: "aarch64", family: "mac"

And I also manage to reproduce the bug with another environment as follows:
Apache Maven 3.6.3 Maven home: /usr/share/maven Java version: 11.0.18, vendor: Ubuntu, runtime: /usr/lib/jvm/java-11-openjdk-amd64 Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "4.15.0-143-generic", arch: "amd64", family: "unix"

Hi, can you ping this URL on your environment?
ping repo.maven.apache.org

Upon diving deeper into the installation documentation I've realized I've missed the thrift compiler option. The correct installation command for macOS and Linux environments should be mvn clean package -pl distribution -am -DskipTest -Dthrift.download-url=http://apache.org/licenses/LICENSE-2.0.txt -Dthrift.exec.absolute.path=/opt/homebrew/Cellar/thrift/0.16.0/bin/thrift
Please be advised to replace /opt/homebrew/Cellar/thrift/0.16.0/bin/thrift with your local absolute path of thrift.

Hi, can you ping this URL on your environment?
ping repo.maven.apache.org

Kudos to HTHou. It turns out this issue is caused by the DNS server of my local network. Pinging repo.maven.apache.org  would be prompted unknown host . Switching the network environment or switching the DNS server is the correct way of doing it.


add a parser function to add fontStyle to typography tokens

Summary:
This adds a parser function to add a fontStyle to typography tokens based on the fontWeight value.
Problem:
When working with tokens-studio, it's kind of difficult to work with fontWeights and certainly when combined with something like italics.
Proposed solution:
I was wondering if it would be an idea to solve this in the custom parser. I'm thinking you could strip out "italic" from the fontWeight and add it to a typography token as a separate property. After which, it could be expanded if you'd like that.
So
"my-typography-token": {
  "value": {
    "fontFamily": "Roboto",
    "fontWeight": "ExtraBold Italic",
    "lineHeight": "16px",
    "fontSize": "12px"
  },
  "type": "typography"
}

would be (after parsing)
"my-typography-token": {
  "value": {
    "fontFamily": "Roboto",
    "fontWeight": "ExtraBold",
    "lineHeight": "16px",
    "fontSize": "12px",
    "fontStyle": "italic"
  },
  "type": "typography"
}

Also: the spec mentions it will probably document a fontStyle type
Note:
This is a work in progress. I'm sharing what I have right now, but I don't know any typescript so I'm hoping you can pick this up to finish it. 😄

Fixed the tests coverage, added tests for how typography type token that has a reference as value is handled (which should be kept as is), as well as fontWeight prop inside a typography value object that has a reference (which should be processed).

I added another commit that adds more integration tests for this feature. From that, I noticed that fontStyle wasn't being properly handled in the fontWeights transform, nor the Typography CSS shorthand transform, so now that's added as well :)!

Just tested the final implementation and seems to work great! Thanks!
I'm still wondering one thing. Wouldn't it be better to always add a fontStyle instead of only when there's a match with normal|italic|oblique?
I think I'd add a default fontStyle: "normal". What do you think?

Hmm I see your point, but at the same time, there's a small drawback that this means that people who are expanding typography tokens will always get a fontStyle token, which is basically a bloat to their tokens output if they don't use fontStyle whatsoever. So I'm leaning to then have people explicitly add the fontStyle to their fontWeight in the figma plugin, if they want that prop in their final output. What do you think, does that seem reasonable?

The drawback you're describing is an upside for me personally. That's actually why I asked 😄
This way you get a more consistent and normalized output. The fontstyle token is then always there. I don't know about other people's setup but in ours, it's invaluable. We create a multibranded design system with a component library for more than 20 brands. Suppose some brand wants their buttons to be italic. It's now just a matter of adding
.button {
  ...
  font-style: $some-typography-token-font-style;
}

which will work for all brands then.

(by the way, I noticed there's still an export missing for the addFontStyles in https://github.com/tokens-studio/sd-transforms/blob/main/src/index.ts)

The drawback you're describing is an upside for me personally. That's actually why I asked 😄 This way you get a more consistent and normalized output. The fontstyle token is then always there. I don't know about other people's setup but in ours, it's invaluable. We create a multibranded design system with a component library for more than 20 brands. Suppose some brand wants their buttons to be italic. It's now just a matter of adding
.button {
  ...
  font-style: var(--some-typography-token-font-style);
}

which will work for all brands then.

I guess I could also do this with a CSS Custom Property fallback
.button {
  ...
  font-style: var(--some-typography-token-font-style, initial);
}


Bump forc to 0.6

Probably requires #13 to be done simultaneously.

Also requires https://github.com/FuelLabs/sway/pull/917 (along with a follow-up forc 0.6.1 release) for the tests to pass as witnessed by @vnepveu (see here).

After trying to update forc to 0.6, it seems some tests are broken for no reason:
---- abigen_different_structs_same_arg_name stdout ----
  Bytecode size is 156 bytes.
Contract deployed @ 9906afc4d317e5d16ff3694bd14c0f908f1a5c21a685f6e778e18b2b363d73da
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `43`', fuels-abigen-macro/tests/harness.rs:1337:5
```. If you look a the concerned contract, there is *afaik* no reason its behavior should be changed by the `forc` update.

@vnepveu https://github.com/FuelLabs/fuels-rs/blob/master/fuels-core/src/code_gen/functions_gen.rs#L117-L135
We're still checking for the 3 mandatory arguments (u62, u62, b256) and encoding it in the call. forc/sway 0.6.x removed it, so if you compile it with forc 0.6.x, it will be deployed with all methods not including these args in the function signature but the SDK will still be encoding it, leading to all sorts of errors.
I'm currently working on these changes to support forc 0.6 though.


"zero config for you debug adapter" is not true

the first screenshot is what the documentation says:

the second one is what really happens after installing the ray-x plugin and trying to run the debugger:

Do you have a minium vimrc to reproduce.
Alternatively, please check out the virmc here https://github.com/ray-x/go.nvim/blob/master/playground/init_lazy.lua


Update guides for coda clone and link.

Also includes a few minor tweaks to the CLI quickstart.

Do we use some non-standard tool to generate docs that understands these annotations?

We generate our documentation using MkDocs with the Material for MkDocs theme.


Add line_management and discourage tower:type usage on power supports

Dear maintainers,
Recently, line_management key has been reviewed on osm wiki.
Mappers are now encouraged to use it to describe particular topology situations of power lines around their supports.
https://wiki.openstreetmap.org/wiki/Key:line_management
Furthermore, tower:type and pole:type are now discouraged on power=tower, power=pole, power=portal, power=insulator and power=terminal
Could you add line_management to power=tower, power=pole, power=insulator, power=terminal and power=portal presets please?
Use of tower:type=* or pole:type=* with any power=* value should raise a warning.
See approved proposal for replacement scheme : https://wiki.openstreetmap.org/wiki/Proposed_features/Lines_management#Values_to_be_replaced
Thanks in advance to get this done, all the best
François

This is great, thank you @quincylvania

How do you call line management in other words? Because I'm thinking of the right translation. Wikipedia doesn't help.

How do you call line management in other words?

I'm not sure, but I'm open to suggestions for the English label. "Line Management" isn't very intuitive, but I left it since it matches the tag directly and only power-mappers are likely to see it anyway.

Line management is definitely an OSM vocabulary chosen accordingly with line_attachment=* key.
It deals with particular topologies of any kind of line (both underground and overhead) around their supports or particular waypoints.
It could be rephrased as Line topology pattern IMHO.


Feature request Support for aws c5 hosts

Rancher versions:
rancher/server: 1.6.12
Could you support C5 hosts type in Rancher?

rancher/ui@82ee59876


Feedback: Tooltip behind right click menu

Right now if you examine and the tooltip pops up, its always at the front with the right click menu always being placed behind it so you can't see the right click menu or it interferes with other menus.
Is there a way to have it so that if I right click, the right click menu is always on top?
Even changing the opacity still makes it distracting or hard to read the menu.
Example:

I agree this is worth improving. I went ahead and added a config in "Display settings" called "Overlay Layer" that should fix this issue for you.
I had set the tooltips to appear on top of everything "Always On Top" to ensure they never get hidden by something in the game. I still kept this as the default setting with the new config option, but now if you select "Above Widgets", it should render below the right-click menu.
I haven't tested this extensively however, but I doubt it'll create any issues otherwise.
You may keep track of the update PR here: https://github.com/runelite/plugin-hub/pull/3781
I will close the issue once you play with the updated plugin and confirm to me everything's good.

Here's what the option looks like in the config, for reference:

The update should be live now, can you confirm this fixes your issue?

Omg this is perfect thank you.
Its working great!
I've commented on changes or updates on so many plugins but you're the first who actually responded and solved it.
Thanks so much man!


Question about GIven Code of Project1 PartA

I have difficulty understanding some SIMD Part A code. In the .../CSC4005- 2023Fall/project1/src/cpu/simd_PartA.cpp file, 59th and 60th lines of code are below:
        // Load the 8 red chars to a 256 bits float register
        __m128i red_chars = _mm_loadu_si128((__m128i*) (reds+i));

variable incurred:
auto reds = new unsigned char[input_jpeg.width * input_jpeg.height + 16];

So, the code means loading 128 bits from reds, i.e. 16 red channel characters each with a 0-255 value, to red_chars. That is to say, this line handles 16 pixels of red channels. But why does the 59th comment say it only loads 8 red chars? It also confuses me that the iteration stridence is 8.
Thank you for your kind answer.

Though it reads 16 bits from the red channel, it only uses the first 8. Because you need to amplify each uchar (8 bits) to float (32 bits) in order to take floating point operation afterwards. This is what _mm256_cvtepu8_epi32 function does in the next line. A $8\times32 = 256$ bits vector register can only accommodate 8 float.

Though it reads 16 bits from the red channel, it only uses the first 8. Because you need to amplify each uchar (8 bits) to float (32 bits) in order to take floating point operation afterwards. This is what _mm256_cvtepu8_epi32 function does in the next line. A 8×32=256 bits vector register can only accommodate 8 float.

Thanks!  I get it. the function _mm256_cvtepu8_epi32 is used to zero-extend the lower eight unsigned 8-bit integers in a 128-bit integer vector to 32-bit integers in a 256-bit integer vector. The upper eight elements of the input vector are unused.


Could not load file or assembly 'System.Security.Permissions, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The located assembly's manifest definition does not match the assembly reference. (0x80131040)'

Describe the bug
This exception was threw if I remove this from my net6.0-windows10.0.19041 console project
<UseWindowsForms>true</UseWindowsForms>

StackTrace:
   at Vanara.Windows.Shell.ShellLink.LoadAndResolve(String linkFile, SLR_FLAGS resolveFlags, HWND hWin, UInt16 timeOut)
   at Vanara.Windows.Shell.ShellLink..ctor(String linkFile, LinkResolution resolveFlags, HWND window, TimeSpan timeOut)
   at FullTrustProcess.Program.<HandleCommand>d__18.MoveNext() in C:\Users\ruofan.a.zhu\source\repos\RX-Explorer\FullTrustProcess\Program.cs:line 2454

What code is involved
ShellLink Link  = new ShellLink("Path");

Expected behavior
Should not threw exception
Screenshots
None

Add 'System.Security.Permissions' nuget package to my project fixed that issue, but I think Vanara should include that component with it

Vanana.Windows.Shell.Common references System.Security.Permissions v5.0.0 already.

Install Vanana.Windows.Shell.Common is not work for me

Are you using v3.3.15 or earlier then of Vanara.Windows.Shell?

I'm using v3.4.0 for all Vanara packages

I could not reproduce this issue in new console project.
In case if you have interest in this issue, you could download repro from here. Remove "System.Security.Permission" nuget package from "FullTrustProcess" project and then run "Package" project with debugger attached to the process of "FullTrustProcess". Navigate to Desktop folder in RX will trigger this issue.
Appreciate to any helps.

@zhuxb711 Are you still seeing this issue?

@zhuxb711 Are you still seeing this issue?

Not sure because I added an independent package for that dll to fix this issue

Not seen this issue and I have already remove the independent System.Security.Permission nuget package


refactor: Improve readability for Execute and add a retry logic in AppiumCommandExecutor.cs

Change list

Split the execute method into 3 small methods:
a. HandleCommandException
b. HandleCommandCompletion
c. HandleNewSessionCommand

Since I've noticed flakiness when we send commands, I've implemented a retry mechanism based on response status in the Execute method. The method now attempts command execution up to MaxRetryAttempts times, checking the success status of the response before returning. I'm still in between about this change, not sure if it's a good approach at all, all I know is that it has improved the stability of the tests.

Types of changes
What types of changes are you proposing/introducing to .NET client?
Put an x in the boxes that apply

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

Documentation

[ ] Have you proposed a file change/ PR with appium to update documentation?

This can be done by navigating to the documentation section on http://appium.io selecting the appropriate command/endpoint and clicking the 'Edit this doc' link to update the C# example
Integration tests

[x] Have you provided integration tests to pass against the beta version of appium? (for Bugfix or New feature)

Details
Please provide more details about changes if it is necessary. If there are new features you can provide code samples which show the way they
work and possible use cases. Also you can create gists with pasted C# code samples or put them here using markdown.
About markdown please read Mastering markdown and Writing on GitHub

@Dor-bl sorry i missed this PR. Did you find the reason why the execute method is flaky?

@laolubenson, I'm in between here regarding the retry mechanism, it's not so elegant but does the trick when it comes to the flakiness of the execute method.
Maybe @mykola-mokhnach  & @jlipps can add their input on why we have this issue in the first place that sometimes the server fails to succeed only after the 2nd try.


Magic Leap - Single Pass Instanced rendering

Since shaders are based on VertexColor.cginc, we have a rendering issue on Magic Leap: the stereo mode is broken, i.e. the rendering is only on the left eye (nothing appear on right eye..).
Do you have an idea ?
Thx in advance,
Eric

Please update to the latest version and open a new issue if the problem persists. Thanks!


handle relative urls (and use empty)

Do not add leading slash to path if host is not set or empty (see also #14).

Be careful, empty returns true for "0". Having an url of the format http://example.com#0 must be handled for example.

@kolesar-andras see #14 .

http_build_url('https://www.google.com', [ 				'query' => 'test=1', 			], HTTP_URL_JOIN_QUERY);
Shouldn't this add the / to path even if it's empty?


Perform masking on interop views, whose clipped and unclipped bounding boxes don't match

Perform masking on interop views, whose clipped and unclipped bounding boxes don't match.
Before:
https://github.com/JetBrains/compose-multiplatform-core/assets/4167681/68b1cecd-bb82-4eb3-9c06-6a3edb336551
After:
https://github.com/JetBrains/compose-multiplatform-core/assets/4167681/3d57cfec-e0ec-497f-bd92-ecde145f4fb3
Release Notes
iOS - Fixes

Interop views are now correctly clipped when their measured clipped and unclipped bounding boxes don't match

@ASalavei proposed to clip using interopView itself, seems like a better idea


User with permissions cannot save security settings?

I am using this on a current project and its been great, ran into an issue today that I feel may be a simple fix...
I granted a user group permissions to the Comments plugin:
https://www.dropbox.com/s/q76rje9psg464nx/Screenshot 2015-08-03 17.33.07.png?dl=0
However, when the user is logged in and enters new words in admin/comments/settings > security they are unable to save new data in comment moderation:
https://www.dropbox.com/s/mq38v2rnx2fai4d/Screenshot 2015-08-03 17.31.04.png?dl=0
Any direction on how to proceed with fixing this, I thought adding the permissions on the user settings would allow the user to save the plugin settings?

@themccallister Ah, thats an interesting one! Only admin users can save plugin settings (among any other settings-based function), which is why its throwing the permission error. In fact, logged in as this use, you won't be able to access anything under Settings. All of those settings are settings of the plugin.
One way around this is to roll these settings into their own model/record, which is something I might do to get around this. You could also have two permission settings - one for general access, and one for editing the settings.
Interestingly, you shouldn't even be able to access the Settings page without being an Admin - is this something that you've removed out in settings/index.html?

I did modify this and its Craft's native behavior. I'm going to close this ticket out.


not return those field in query whose default value is false, empty string

I have query my user data and get all data but those field are not  included whose default value was null, "" or false
json data when i have toggled is_active from false to true during login
{
        "id": 1,
        "name": "Harsh Mangalam",
        "username": "harshmangalam",
        "gender": "male",
        "role": "user",
        "is_active": true,
        "created_at": "2021-07-20T08:31:54.667045+05:30",
        "updated_at": "2021-07-20T13:18:54.199194+05:30",
        "edges": {}
    }

after some time json data when i have toggled is_active from true to false during logout
{
        "id": 1,
        "name": "Harsh Mangalam",
        "username": "harshmangalam",
        "gender": "male",
        "role": "user",
        "created_at": "2021-07-20T08:31:54.667045+05:30",
        "updated_at": "2021-07-20T13:09:52.705781+05:30",
        "edges": {}
    }

Tech
Version

Go
go1.16.6 linux/amd64

Ent
v0.8.0

Database
Postgresql

Driver
https:/github.com/lib/pq

Hi @harshmangalam ,
Thanks for reaching out.
I'm not sure I understand what your question is. Can you elaborate?
What you described is expected behavior from json.Marshal for struct fields annotated with omitempty.
If you look at the structs generated by ent, by default, fields are tagged with omitempty:
https://github.com/ent/ent/blob/279d6c2a123e786cde54218caca9ee9c66c21b76/entc/integration/customid/ent/doc.go#L19-L29
This behavior is described in the godoc for the json package.
To control struct tags in the generated code, you can use the StructTag modifier when defining your ent schema.

I have the same problem with @harshmangalam
so is there any general way to remove the tag omitempty, Annotations() or StructTags works, but not so simple and clean

Hi @y4code,
If you want to apply a general manipulation to all schemas, you can use Codegen hooks to mutate the graph before code is generated. Does this answer your question?

@rotemtam Thanks, seems like using Hooks with entc works fine
If I want to remove omitempty with ent CLI,  should i write a feature flag which would be used like this ?
go run entgo.io/ent/cmd/ent generate --feature noomitempty ./ent/schema

@rotemtam Thanks, seems like using Hooks with entc works fine
If I want to remove omitempty with ent CLI, should i write a feature flag which would be used like this ?
go run entgo.io/ent/cmd/ent generate --feature noomitempty ./ent/schema

Use external templates instead of feature flag, I figured it out, thanks @rotemtam

Ok, sounds great. A feature flag for this is indeed a bit overkill :-)
Closing this. Let me know if you need any other assistance.
If you haven't signed up for our newsletter, you can subscribe to updates and great content about ent.


Use correct address family for ipvs destinations

When IPv6 addresses are present in node.Status.Addresses, the IPVSLoadBalancer parses the addresses and attempts to add them as an IPv4 destinations. This results in useless entries in the service table that only hold the last 32 bits of address.
This change does two things:

uses the appropriate address family when creating the service
ignores backend addresses that use a different address family than the service

This avoids the immediate problem of using the wrong address family for IPv6 destinations and the useless entries in the service table.
#497 appears to report this problem

This should be fine to merge, the errors are on deprecated code that I'm going to rip out anyway.


"its property must be something" doesn't work with boolean value

Description :
It seems that the new syntax doesn't work with boolean value
To Reproduce

main.tf

resource "aws_lb" "internal" {
  name               = "${local.project_name_dash}-alb"
  internal           = true
  load_balancer_type = "application"

  security_groups = [
    module.alb_sg.this_security_group_id,
    data.terraform_remote_state.shared.outputs.internal_https_only_sg
  ]

  subnets                          = data.terraform_remote_state.shared.outputs.private_subnets[*].id
  enable_cross_zone_load_balancing = true
  idle_timeout                     = var.alb_idle_timeout
  enable_deletion_protection       = var.environment == "prod" ? true : false

  tags = merge(local.tags, { Name = "${local.project_name_dash}-alb" })
}

-f test -p tfplan
docker
error:

    Scenario: Application load balancer must be internal
        Given I have aws_lb defined
                        Failure: Can not find true in internal property of aws_lb.internal.
        Then its internal must be true
          Failure:

<Your feature/scenario/steps>

    Scenario: Application load balancer must be internal
        Given I have aws_lb defined
        Then its internal must be true

Expected behavior :

Tested versions :

1.1.11
terraform 0.12.21

Additional context
The old way works:
    Scenario: Application load balancer must be internal
        Given I have aws_lb defined
        Then it must contain internal
        And its value must be true

Very similar problem to #231. This is also fixed in the master branch.
Will release both very soon.

Can you have a try with 1.1.13 please ?


Line to apply bar offset raises error when computing MIRI coronagraphic PSF.

https://github.com/JarronL/webbpsf_ext/blob/613b4fa47b45b251e71c2a21c00ec5f2e5507674/webbpsf_ext/webbpsf_ext_core.py#L2541

Thanks! Fix has been applied to develop branch.


Tiles Grid Theme next panel thumb position error

			if(rowsCounter >= g_options.grid_num_rows){

				//change to a new pane
				rowsCounter = 0;
				baseX = posx;
				posy = baseY;
				paneMaxY = 0;//<=====reset paneMaxY

				//change grid width to max width
				if(g_temp.numPanes == 1){
					g_temp.gridWidth = maxx+g_options.grid_padding;
					g_objGrid.width(g_temp.gridWidth);
				}

				g_temp.numPanes++;
				g_temp.arrPanes.push(baseX-g_options.grid_padding);

			}else{			//start new line in existing pane
				posx = baseX;
				posy = paneMaxY + g_options.grid_space_between_rows;
			}

HI, it's the max y in each pane. Please tell me where is the problem.
btw, I think I have fixed the issue in the latest version, remember that
was something like this. Please show me on your website where is the bug
you describe, how you see it?
On Fri, May 20, 2016 at 7:34 PM, Chiung-Hung Lai<EMAIL_ADDRESS>wrote:

        if(rowsCounter >= g_options.grid_num_rows){

            //change to a new pane
            rowsCounter = 0;
            baseX = posx;
            posy = baseY;
            paneMaxY = 0;//<=====reset paneMaxY

            //change grid width to max width
            if(g_temp.numPanes == 1){
                g_temp.gridWidth = maxx+g_options.grid_padding;
                g_objGrid.width(g_temp.gridWidth);
            }

            g_temp.numPanes++;
            g_temp.arrPanes.push(baseX-g_options.grid_padding);

        }else{          //start new line in existing pane
            posx = baseX;
            posy = paneMaxY + g_options.grid_space_between_rows;
        }

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/vvvmax/unitegallery/issues/76

My English is pretty basic, Sorry about that.
fix the problem=>
unitegallery.js  about at  line 7511
add >>>>>> paneMaxY = 0;

Fixed the issue. Thanks. missed the issue with some of my last updates.
On Mon, May 23, 2016 at 3:11 PM, Chiung-Hung Lai<EMAIL_ADDRESS>wrote:

My English is pretty basic, Sorry about that.
fix the problem=>
unitegallery.js about at line 7511
add >>>>>> paneMaxY = 0;
[image: 2016-05-23t11-51-11 740z]
https://cloud.githubusercontent.com/assets/5386866/15470107/f3a30d46-2120-11e6-98d6-8205c2be28c5.png
—
You are receiving this because you commented.
Reply to this email directly or view it on GitHub
https://github.com/vvvmax/unitegallery/issues/76#issuecomment-220963085


FirebasePlugin.unregister() is not working

**window.FirebasePlugin.unregister();** this is not working, this will display the "function not found error". I want to unsubscribe from all subscribed topic. Please help me

I have "SERVICE_NOT_AVAILABLE" on fail callback

closing for now, reopen if still an issue

I have "SERVICE_NOT_AVAILABLE" on fail callback, too!


cmd/go: Make go get -u update existing packages, or add another flag

There is a constant stream (golang/lint#173, golang/lint#169, golang/lint#168, golang/lint#167, golang/lint#165 this list goes on and on) of user for golint that have outdated packages. This reports make it apparent that the -u flag of go get is kind of flawed. As the documentation for it states

By default, get uses the network to check out missing packages but does not use it to look for updates to existing packages.

The wording "by default" would suggest that there is another flag which does update existing packages but it seems that this is still missing.
I am happy to work on this, but would first like to discuss if this should be another flag, and if so, what it name should be.

The golang/lint bugs are often due to the move of x/tools from code.google.com to github. There is, of course, a general class of problems here to do with the use of vanity import paths, but the specific case of the Go subrepos is a particularly notable instance of that class, and I wonder if it would be worth explicitly checking for them in go get even if we don't try to solve the general class.

The wording is "By default, get uses..." (emphasis mine).

The -u flag instructs get to use the network to update the named packages
and their dependencies.  By default, get uses the network to check out
missing packages but does not use it to look for updates to existing packages.

So go get -u updates the named packages and their deps. go get without the flag just downloads missing packages.

Note that it only updates the particular checkout of a package (e.g. approximately git pull); it doesn't "update" in the semantic sense if a vanity import path changes where it points.

@dsymonds hm, that seems like an oversight. We should probably print an error in that case.

Didn't f3a98dee27540afab414d3201aff18f30c2b163e address the issue of vanity paths changing where they point?

I'm guessing f3a98de only checked the named package, not its dependencies.

"go get -u" does update existing packages. Maybe there is something wrong with something else. If so, please file a separate bug.


navigator.share is not always a function

Bug Report
navigator.share is undefined is many browsers, yet TypeScript reports it as "the function is always defined"
🔎 Search Terms
navigator.share
share
🕗 Version & Regression Information
Version 4.1.5 & Nightly
⏯ Playground Link
https://www.typescriptlang.org/play?#code/JYMwBAFAdghgbsA5jALgewE4DoDOALGDAUwEowBvAWACgw6wBjNKHNAGyKzbUQgHIAKniJhYKYHBH5CIkEVQBXYmGA4VAWwAOHdUSgoiAEz4kA3DQC+YImxwiqtekxbtO3XoOGjUEqQWVyisqqomgoGtpEuvpGJubUFkA
💻 Code

if (navigator.share) {
    console.log('The native share feature is implemented');
} else {
    console.log('The native share feature is not implemented');
}

🙁 Actual behavior
TypeScript reports it as "the function is always defined"
🙂 Expected behavior
If should report navigator.share as maybe being present.

I'm surprised this definition is provided in the first place, given that it's only specified in a draft specification and only two browsers support it (Edge and Safari, not even Chrome or Firefox).

There is ton of definitions from Edge Web IDLs so I think this definition is one from Edge.

Apparently no - it's not from Edge.
https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/837
#18642

I have a workaround for now., set a state variable that I update when the component loads
const [canShare, setCanShare] = React.useState<any | undefined>(undefined);
useEffect(()=> {setCanShare(navigator.share)}, [])

Ran into the same issue. Discovered that using navigator['share'] instead also works around the Typescript error, at least with my installed version of TypeScript 4.5.3.

This worked for me thank you!!

or 'share' in navigator


How to hide the description of article?

The theme is excellent and I want to know how to customize the description of the  article ?
In default format, it shows 4 lines of the article, and  it seems so  long .
So how to set the theme doesn't show the description  or customize the count of lines to show?
Thanks!

Just change the index html can solve that, thanks.


mmseqs_update: Problem with data file.

When I am trying to run mmseq_update on some data set below error was popping up.
ERROR:
mmseqs_update: Problem with data file. Is it empty or is another process readning it?: Invalid argument
commons/DBReader.cpp:49 ffindex_index_parse: /anno/narsapvi/fern_clustering/run/tmp/A.index: Invalid argument
What can be the possible solution for this..!!

Hi and thank you for your bug report.
Would you mind switching to MMseqs2, our new and much improved release? MMseqs1 is not supported anymore.
With that said, it looks like your A.index file is corrupted. Check if it has the expected number of lines (=number of clusters) and also if for every line there are three values.

I am upgrading my system(cmake, g++ etc) to make suitable for MMseq2 installation. Once it is done I will switch to MMseqs2.
The A.index file is totally empty. I am unable to figure out the possible solution.
I have tried multiple times with all input files formatted correctly.
Thanks  in advance.

You can use MMseqs2 without any requirements using the static compiled verison.
    wget https://mmseqs.com/latest/mmseqs-static_sse41.tar.gz
    tar xvzf mmseqs-static_avx2.tar.gz
    export PATH=$(pwd)/mmseqs/bin/:$PATH

Can you send me how you called mmseqs_update? What kind of data did you use?

Firstly  I have converted the fasta format to ffindex
fastatoffindex old_DB.fasta old_DB
fastatoffindex new_DB.fasta new_DB
mmseq_cluster old_DB old_DB_clu tmp/ --cascaded
Above generated  old_DB_clu, I have given as oldDB_clustering to mmseq_update
mmseq_update old_DB new_DB old_DB_clu new_DB_clu tmp/
The above last command throws below error.
mmseqs_update: Problem with data file. Is it empty or is another process readning it?: Invalid argument
commons/DBReader.cpp:49 ffindex_index_parse: tmp//A.index: Invalid argument

Is it possible that old_DB and new_DB do not have any keys in common? A.index should be just empty if there is no overlap between both databases.

There is no identical fasta ids/keys between old_DB and new_DB

Okey we do not handle this. We will have a look if this also occures in MMseqs2.
You could add one sequences from the old_DB to the new DB as a quick fix.

I have tried to update my clusters with the static compiled verison of mmseq2.
command used for updating clusters.
mmseqs clusterupdate old_DB new_DB old_DB_clu new_DB_clu tmp2/

Errors noticed at various levels:
Failed to mmap memory dataSize=0 File=tmp2//NEWDB.newSeqs
Failed to mmap memory dataSize=0 File=tmp2//NEWDB.newSeqs
mv: cannot stat `/tmp2/aln_4': No such file or directory
Failed to mmap memory dataSize=0 File=tmp2//NEWDB.newSeqs
Could not open data file tmp2//newSeqsHits.swapped.all!
awk: cmd. line:1: fatal: cannot open file `tmp2//newSeqsHits.index' for reading (No such file or directory)
mv: cannot stat `tmp2//aln_*': No such file or directory
mv: cannot stat `tmp2//pref_*': No such file or directory
mv: cannot stat `tmp2//clu_*': No such file or directory
mv: cannot stat `tmp2//input_*': No such file or directory
Failed to mmap memory dataSize=0 File=tmp2//toBeClusteredSeparately
Failed to mmap memory dataSize=0 File=tmp2//toBeClusteredSeparately
awk: cmd. line:1: fatal: cannot open file `tmp2//clu_redundancy.index' for reading (No such file or directory)
Failed to mmap memory dataSize=0 File=tmp2//toBeClusteredSeparately
Could not open data file tmp2//input_step_redundancy!
Could not open data file tmp2//input_step_redundancy!
Could not open data file tmp2//input_step_redundancy!
Failed to mmap memory dataSize=0 File=tmp2//toBeClusteredSeparately
mv: cannot stat `tmp2//clu': No such file or directory
mv: cannot stat `tmp2//clu.index': No such file or directory

After adding a single sequence record from old_DB to new_DB, the mmseq program seems to be working.
Thanks for the inputs martin-steinegger.
In future, if the above case (no identical keys between old and new DB) is handled either in MMseq or MMseqs2 that will be a great help for us.

We fixed the updating in MMseqs2. In order to use MMseqs2 you need to recluster you database since the database format changed. To recluster you have to recreate the sequence database with createdb and call cluster afterwards. You can use update this clustering than. Sorry for the inconvenience. Please open another issue if there is still a problem.

@altaetran does the problem also occur with the newest version MMseqs2?
Is the issue related to updating?

I'm not sure, I installed a few months ago at most though, and I don't have the flexibility to reinstall a new mmseqs version at the moment.

I manually removed the redundancies before entering into mmseqs and it worked again. I suspect there is something off about the redundancy filter in mmseqs.


Updating "user" in configuration in web gui has no effect

Steps to reproduce:

In the gui, click on an application
Go to the "configurations" tab
Click edit
change the "user" field from empty value to whatever value OR directly insert it into the JSON in JSON mode
Click "Change and deploy configuration"
The following PUT call sent to the server has payload "{}" :(

Updating other values, like "command", works. I only experience thus problem with "user".

Thanks for reporting it. @Poltergeist @Poltergeist

Fixed in PR #788 in marathon-ui repo


[NEW ICON] Jotai

Skill Name
jotai
Why?
It's popular for state manangement
Reference Image
https://github.com/pmndrs/jotai/blob/main/img/jotai-mascot.png

Duplicate


Is there a way to use BLT to call native methods?

TL;DR: I'm looking into calling some native methods via exposed C API. I'd like to provide a library/dll file that I can call into from Lua. Would the BLT hook be a way to go about this?

The existing FFI solutions I've glazed over is difficult to tell if I can release binaries that users don't have to compile/install beyond drag/drop to PD2 directory.
Besides those two options, I guess I could also do a local web server to redirect to my native code, but if I can't automate that running when PD2 is it's probably inconvenient for users too.
I'm wanting to reduce maintenance of my BigLobby project by avoiding the pdmod which breaks with most game updates. I've looked into how PD2 is handling network packets which is UDP via SteamWorks, packets are identified by an id incremented by message elements in the network.network_settings XML which I currently patch, so a proxy server that manipulates the packets isn't going to work either.
I did try BLTs network message feature early on in my project but it proved unreliable at delivering messages effectively from memory. Does the way BLT work with it's hook make it possible to call native code from another library easily if that's also provided as a DLL(either through BLT or using the same technique)?

Well, yes. But you're going to have to write wrappers around your function calls to go between C(++) and Lua using Lua's attrocious (imo) but simple FFI interface.
BLT has no actual mechanism by which to load a new native library at runtime, and I don't see the need for one soon.
Now, as the primary developer of the Linux version, I would like to discourage you from shipping native libs, but you are welcome to look at blt4l for examples because the code is just a little bit more clean than the windows version, simply by nature of not using windows API's.

@RomanHargrave What are your suggestions about approaching this without shipping a native lib? I'm a Linux user myself so they'd be the .dll for Windows users that is drag/drop and the .so for Linux users that just have to add to the LD path like blt4l does. It would be a library/mod that others can interact with to add their own network methods avoiding the problems that present approach has.
I'll be writing the code in Rust exposing a C API. This is easy enough, not familiar with the FFI interface Lua is providing that you mention, unless OVK have included the luaffi library I've come across. Any information on that would be appreciated.
From what I understand some users relay network messages through static Steam IPs for their p2p API. This probably means to support those users I'll need to provide my own relay server(Last Bullet might be able to help with this).

BLT has no actual mechanism by which to load a new native library at runtime

I don't think I need this as mentioned above, wouldn't the methods be available via FFI? I just need a way to bridge Lua calls to my native lib and back.

I didn't mean to say FFI so much as the stack-centric native call interface. If the code is open, that means that the problem of platform incompatibility is theoretically eliminated.
Moving on, since I'm not terribly familiar with the BigLobby mod, nor its workings, I can't make any specific suggestions about ways to go about transmitting data between users, other than perhaps looking in to what exactly causes reliability issues with the user-to-user messaging interface in BLT.
That being said, one potential option is to expose an interface to load native code and then register Lua native functions corresponding to certain symbols exposed by that code. That being said, such a prospect is rather disturbing, moreso given the nature of game mods on windows being very secretive and potentially malicious (HoxHud).

My code would be open source, as is the majority of code I put out there :) If it's worthwhile, perhaps BLT could incorporate what I'm trying to do as a part of it? Not sure if anyone using it could do anything malicious then?
Network methods get defined in an XML file, that gets parsed and methods generated(perhaps with something like googles protobuf .proto format), UDP connections are made with some network hole punching to avoid issues with NAT and not needing to port forward(what the game currently does through Steams p2p API). On the lua end, you provide a handler class to respond to network messages as they arrive, and would modify the network Send function to redirect custom network messages to this native code instead of going through Steams/PD2's network class.
Existing BLT method uses a hidden channel in the games chat system to send data via strings.

Perhaps if it were more generally implemented as a P2P RPC system, it would be useful for other mods. Since that's pretty much what you described, generalising it and adding it to BLT's responsibilities would be far more in scope.

Yes the game refers to it as RPCs, I'm just not sure how viable it is to use the existing RPC for each peer in the game as I believe these are provided by the blackbox Network class outside of Lua. As far as I know, what I'm planning to do is generalized already? I'm wanting to support additonal methods for my own mod, but using the existing stucture/architecture that PD2 uses itself in Lua, just not using the existing Network class which handles additional logic and routes messages through Steams P2P API.
I'm happy to contribute to this if assistance can be provided on the BLT side of things. I'm not very experienced in C/C++.
Looking through your hook, Subhook is supported on Windows as well, any reason there isn't a crossplatform BLT lib?

@polarathene RE crossplatform BLT Primarily because BLT for windows came first.
Ultimately, much of the logic could probably be merged, but the way that the libraries find the methods to hook is very different. On Linux, the game includes debugging symbols, which means that we can just get method addresses from the linker. On windows, the game does not include such symbols, which means that those addresses must be found via a search thru the executable segment.

Ultimately, blt4l uses few C++ features, save for where i blatantly copied things out of blt for windows. The architecture is very uncomplicated, and blt4l is very stable right now, meaning that opening PR's or collaborating to build an RPC system is definitely possible.
Currently, there's no real system in place to insure feature parity between the linux and windows parts. Now, that being said, I would definitely be interested in a Windows-familiar developer if we wanted to look at supporting both platforms and reusing the BLT API implementation between the two. I personally cannot build the windows portion myself because I do not have a windows machine, and I like to avoid Windows - let alone developing windows software - like fire.

@RomanHargrave I'll look through the repo's and try get familiar with the code. I'm curious how well it'd port over to Rust. I'm planning to rely on Crates(language packages in Rust) to provide the majority of the network features. It can compile native libraries for both platforms, if Windows specific code is required should be able to include that as well. I have a Windows VM that can do windows builds if needed.
Feel free to add me on Steam and discuss: http://steamcommunity.com/profiles/76561198052399869/

A network interface between BLT users isn't out of the question. I'd just be going for a message queue as opposed to anything even remotely resembling RPC, there's just no need for that.
I don't really know enough about PD2 networking though, can we establish that kind of connection at all?

A message queue would be a good idea, and RPC could easily be made to sit on top of that for compat.
Hole punching is still a question. If we can get info about steamworks networking, that would be useful.

Some peers need to relay messages through Steams IPs, it might be required to provide that via a webserver(last bullet is happy to help here) if unable to use SteamWorks API. The UDP transport that Steam uses I've read is more TCP like in nature. WireShark also shows rather excessive STUN bind requests/respsonses to do the hole punching.
It would be easiest to maintain if the existing infrastructure could be used. This would require patching the XML asset before it's loaded at runtime by the native Network class Diesel uses. If you implement your own additional network class and can utilize SteamWorks P2P API effectively, that'd work too.
Far as I recall, network calls are all handled via NetworkPeer:Send(), when receiving native Network class receives the packet data, matches the packet id, then unpacks the data to send as params to the network handler class bound to that packet id(unit or connection are defaults, I've supplied my own). I can handle everything on the Lua end.
As the packet id is equivalent to the network messages element order in the XML, players with different network methods from other mods could result in each player having a different packet id assigned for the same network method. Eg, P1 has methods A B and P2 has B C, when P1 sends network message B to P2, it's identified as C on P2's setup.....obviously an issue if you were to patch the XML definitions asset at runtime to use PD2's existing network infrastructure.

I'm honestly surprised steam doesn't do something like n2n and use a p2p VPN over a hole-punched connection.

@RomanHargrave It seems similar based on the readme for this implementation: https://github.com/patr0nus/n2n
I'm not sure if that's how it works with Steam or just TCP for other platforms. The network code has a specific port to broadcast servers and discover them from, from there p2p connections are initiated. For many peers it's direct IP connections but some need to relay thorugh Steams servers it seems.

heh, I didn't realize that another p2p software had that name.
http://www.ntop.org/n2n/ is what I was referring to.

@polarathene We could just add one message type for all BLT messages and add an interface so that people can register listeners on string message identifiers and BLT just passes the message along.

@SirWaddles As long as it's compatible with the existing system that works for me. If you take a look at the current network message definitions, you'll notice that messages vary with things like:

Delivery reliability(possibly something to do with TCP/UDP protocol based on importance/type of message along with affects on latency),
A receiver which is basically an event handler, passing the params unpacked to a method with the RPC of who the sender was as the last param.
Some methods are restricted to client or server sending/receiving only.
Parameters have types for encoding/validation and some have logic like min/max values.

Majority of all that is handled by Network class on the engine side. I have no idea how the unit type is encoded but it ends up as a two byte value. I've not been able to make sense how that value in the packet is created, but I'm assuming it's some sort of lookup like a hash. An alternative might be to use the units id() method which provides a number that I think is between 0 and 4096, provided the receiving peer has that unit, you can loop through all units looking for a matching id value and continue from there.
If the packets you deliver with this are all string based that would probably impose some performance penalties(encode/decode + latency)? I'm not sure how that differs much from the current private chat channel method.

It'd be better to just patch the XML asset before it's accessed with generic methods in that case. If you really wanted to get creative with it, a simple API exposed on top for the developer to use addUnit(tazer_unit:id()), addString("It's a tazer"), etc) that kept track of params used could probably match the packet to be sent to the correct generic method using something like a bitmask.
Alternatively you do some post processing prior with developers messages defined in another XML file like the original network methods parse that and map to generic methods where possible so that in their mod they just call something like BLT.Network.send("unit_and_string", tazer_unit:id(), "It's a tazer").

I was more intending to leave most of it up to the developers, and I don't really expect people to lay out their network functions inside of aggregated XML files.
I think we just need one extra network message in the XML, with ordered delivery (If someone really needs to save the latency caused by dropped packets over TCP, they can use their own networking functions, it's basically a non-issue) with two parameters, a string identifer and string contents. The encoding is up to the developer. The identifier is just a shorthand name for the message type "ChatMessage" for example.
In your mod init scripts, you do something like
network.register("ChatMessage", function(message, length)
    local fromId = message.ReadInt16()
    local text = message.ReadString()
    local messageObj = network.CreateMessage("ChatMessage")
    messageObj.WriteInt16(foobar)
    messageObj.WriteString("This is a message")
    network.SendToServer(message)
end)

@SirWaddles I understand the XML definitions probably don't benefit any other mod devs if you're not utilizing the XML file that PD2 uses for it's network infrastructure. As my mod heavily relies on tweaking a few of the param constraints, I'm not sure how affected they would be if they weren't consistent with specific settings for the packet or params. Lag can already be bad enough that any high frequency packets being encoded/decoded as strings may cause more latency. My only options presently are patching that XML file or utilizing BLT for some other network implementation, which probably can't handle units as parameters(no idea if my proposed solution is going to be bug free).
My own needs aside, that example looks good. You should be able to infer the local peer id rather than require though(assuming that's the what the WriteInt16(foorbar) is. What makes it any different to the current approach BLT uses with the hidden chat channel sending strings? Looks similar to how I remember when I sent JSON strings in my first version of my mod.

I can't imagine there'd be much lag from writing different types into and from a string. There's no parsing going on, no structure to preprocess.
I don't really know much about the hidden chat channel method, but given that it's for chat it seems like there would be some overhead with things already hooked into it. Using the underlying network functions just removes some of that, but this is largely speculative. Is there any reason you're using the XML definitions as opposed to the chat channel?

@SirWaddles

Is there any reason you're using the XML definitions as opposed to the chat channel?

Yes, I initially tried JSON strings through the chat channel for sending params(strings/numbers). Sometimes I'd have delays of over 30 seconds to 5 minutes from memory, can't recall but some messages might not have delivered(I remember peers above 4 could not see chat from others but me, but that might have been another connection issue caused elsewhere).
I also need to use the XML definitions because I'm providing modified original network messages(increasing the allowed max peer value). For proper compatibility with what the handlers expect along with logic like min/max, it's much easier to use what is already defined in the XML, makes diffing changes easy too. It also meant no work around for the unit type which I have no idea how that value is figured out(happens in the engines network class).
I wouldn't know what lag to expect(Assuming it wouldn't have the same problems as the hidden chat channel method), what I do know is that strings will make for larger packets, long numbers for example(steams 64-bit user ids) are much larger as a string vs 8 bytes. Quite a few number params would be 2x the size. I've not looked over which packets are sent frequently, but ones like movement for example which are frequent and send vectors(x,y,z) are a good example of packet size being much larger and frequent likely resulting in lag.

That's not what I mean. An 8-byte integer will still be 8 bytes. I'm just using the string type in the XML to allow a variable amount of data, think of the string as just a binary byte array. For example, the ReadInt16 function will pull the first two bytes from the string, convert it into the integer (which is a recast, no parsing required) and then advance the read 'head' 2 bytes.

Ok so this steam id for example:<PHONE_NUMBER>2399869 (17 digits). Would be using the same bytes in the string:  0x1100001057DDAFD without casting resulting in a gibberish looking string?
What about when combined with an actual string? String length in bytes + 1 or more bytes appended to indicate read length?(This is how strings are handled in the current packet data). So the only overhead that should actually exist compared to other packets would be an extra byte or two in the packet data for the length of this entire string being sent(a 300 length string for example would have first two bytes in the packet to indicate string length(our string + 2 more bytes for length = 302), then the string value will start with two bytes describing the length of string we actually sent).
Here are packet definitions that only have a string param, you'll notice that several could be used to get the different delivery types or client/server flow restrictions when required. You'd just need to modify the connection/unit receiver handlers to detect the string is intended for BLT use and not the original network message that was hijacked.
<message name="request_player_name_reply" delivery="ordered" receiver="connection">
			<param type="string" />
</message>

<message name="set_trade_spawn" delivery="ordered" receiver="unit" check="server_to_client">
			<param type="string" /> <!-- Criminal name -->
</message>

<message name="lobby_sync_update_difficulty" delivery="ordered" receiver="connection" check="server_to_client">
			<param type="string" />
</message>

<message name="sync_award_achievement" delivery="ordered" receiver="connection" check="server_to_client">
			<param type="string" /> <!-- Achievement ID -->
</message>

<message name="client_used_weapon" delivery="reliable" receiver="connection" check="client_to_server">
			<param type="string" /> <!-- weapon id -->
</message>

<message name="sync_used_weapon" delivery="reliable" receiver="connection" check="server_to_client">
			<param type="string" /> <!-- weapon id -->
</message>

<message name="killzone_set_unit" delivery="ordered" receiver="unit" check="server_to_client">
			<param type="string" />
</message>

<message name="sync_show_hint" delivery="unreliable" receiver="unit">
			<param type="string" />
</message>

<message name="server_unlock_asset" delivery="ordered" receiver="unit" check="client_to_server">
			<param type="string" /> <!-- Asset id -->
</message>

<message name="statistics_tied" delivery="ordered" receiver="unit" check="server_to_client">
			<param type="string" /> <!-- Tweakdata table name of tied down unit -->
</message>

<message name="bain_comment" delivery="ordered" receiver="unit">
			<param type="string" />
</message>

Strings might be limited to a length of 255 characters/bytes, for the few messages that require more than that such as the following packet description, you might need to use the type longstring:
<message name="set_unit" delivery="ordered" receiver="unit" check="server_to_client">
			<param type="unit" />
			<param type="string" />                <!-- character name -->
			<param type="longstring" />            <!-- outfit_string -->
			<param type="int" min="0" max="100" /> <!-- outfit_version -->
			<param type="int" min="0" max="4" />   <!-- Peer id. 0 means its an AI -->
			<param type="string" />                <!-- team_id string -->
</message>


Migrate animation package to null safety

We should migrate this package to null safety:
https://github.com/flutter/packages/tree/master/packages/animations

Duplicate of https://github.com/flutter/flutter/issues/74736

Duplicate of https://github.com/flutter/flutter/issues/74736


feat: Add forms for configuring MediaMTX API

:tada: This PR is included in version 1.4.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Missing csproj in src

Is it possible for you to add .csproj to Src\sofiaconsole? If not, not a big deal.

It's the same as this one as I use the demo project for dev, but I'll try and see if I can couple it out more properly.


Proposed Recipes for Himawari-8 Level 3 SST

Dataset Name
Himawari-8
Dataset URL
https://registry.opendata.aws/noaa-himawari/
Description
@pbranson Has prototyped some initial kerchunk index generation for the Himawari-8 Level 3 SST data as part of a project for OceanHackWeek in this repo.  Using his example, I'll try to put together a initial recipe ref https://github.com/oceanhackweek/ohw22-proj-kerchunk/issues/2
License
Open Data
Data Format
NetCDF
Data Format (other)
No response
Access protocol
S3
Source File Organization
s3://noaa-himawari8/{dataset}/{year}/{month}/{day}/{hour}/YYYYMMDDHHHHSS-STAR-L3C_GHRSST-SSTsubskin-AHI_H08-ACSPO_V2.80-v02.0-fv01.0.nc
Which alters to s3://noaa-himawari8/{dataset}/{year}/{month}/{day}/{hour}/YYYYMMDDHHHHSS-NCCF-L3C_GHRSST-SSTsubskin-AHI_H08-ACSPO_V2.80-v02.0-fv01.0.nc from 7 April 2021 forward.
Example URLs
s3://noaa-himawari8/AHI-L2-FLDK-SST/2022/01/13/0000/20220113000000-NCCF-L3C_GHRSST-SSTsubskin-AHI_H08-ACSPO_V2.80-v02.0-fv01.0.nc

s3://noaa-himawari8/AHI-L2-FLDK-SST/2020/01/13/0000/20200113000000-STAR-L3C_GHRSST-SSTsubskin-AHI_H08-ACSPO_V2.80-v02.0-fv01.0.nc

Authorization
No response
Transformation / Processing
NA
Target Format
Reference Filesystem (Kerchunk)
Comments
No response

@sharkinsspatial, per our "jam" session yesterday with @wildintellect, Anthony Lukach, and Aimee Barciauskas, I'm posting details on our work to identify gaps in the available files in AWS S3.
We may want to tidy things up a bit within a single script, but here are all the parts.
Produce List of Actual L3C Files
To produce a list of the relevant L3C files in lexicographical (and also chronological order, given the naming convention):
aws s3 ls --recursive s3://noaa-himawari8/AHI-L2-FLDK-SST/ | grep '[-]L3C' | cut -c 32- > l3c-actual.txt

Example file:
AHI-L2-FLDK-SST/2020/01/16/1500/20200116150000-STAR-L3C_GHRSST-SSTsubskin-AHI_H08-ACSPO_V2.60-v02.0-fv01.0.nc

Upon visual inspection, we identified 3 places where the file pattern shifts:

Change in version from V2.60 to V2.71 occurring at this point in the list (notice the transition occurs between the 2 middle items, but that both of those items share the same date/time value, so we have an overlap):
AHI-L2-FLDK-SST/2020/07/02/1300/20200702130000-STAR-L3C_GHRSST-SSTsubskin-AHI_H08-ACSPO_V2.60-v02.0-fv01.0.nc
AHI-L2-FLDK-SST/2020/07/02/1400/20200702140000-STAR-L3C_GHRSST-SSTsubskin-AHI_H08-ACSPO_V2.60-v02.0-fv01.0.nc
AHI-L2-FLDK-SST/2020/07/02/1400/20200702140000-STAR-L3C_GHRSST-SSTsubskin-AHI_H08-ACSPO_V2.71-v02.0-fv01.0.nc
AHI-L2-FLDK-SST/2020/07/06/1300/20200706130000-STAR-L3C_GHRSST-SSTsubskin-AHI_H08-ACSPO_V2.71-v02.0-fv01.0.nc

Change in version from V2.71 to V2.80 (notice that there are several missing hourly files between these 2, so we cannot tell specifically which hourly interval at which the version change occurs):
AHI-L2-FLDK-SST/2021/03/22/1600/20210322160000-STAR-L3C_GHRSST-SSTsubskin-AHI_H08-ACSPO_V2.71-v02.0-fv01.0.nc
AHI-L2-FLDK-SST/2021/03/23/0100/20210323010000-STAR-L3C_GHRSST-SSTsubskin-AHI_H08-ACSPO_V2.80-v02.0-fv01.0.nc

Change in format from STAR to NCCF (again, there are several hourly files missing between these 2):
AHI-L2-FLDK-SST/2021/04/05/1500/20210405150000-STAR-L3C_GHRSST-SSTsubskin-AHI_H08-ACSPO_V2.80-v02.0-fv01.0.nc
AHI-L2-FLDK-SST/2021/04/06/1200/20210406120000-NCCF-L3C_GHRSST-SSTsubskin-AHI_H08-ACSPO_V2.80-v02.0-fv01.0.nc

Further, the actual transition from STAR to NCCF (shown above) appears not to jive with the documented time where that change should occur, which seems to indicate that the transition should appear starting 2021/05/03, but perhaps that document only indicates when NCCF files will first become available, but not necessarily the earliest date of NCCF files produced (sometime during 2021/04/05 or 2021/04/06 based upon the 2 files shown above). [Thanks to @wildintellect for locating this reference.]
Produce List of Expected S3 Files
Given that our visual inspection of the S3 file list makes it apparent that there are numerous gaps, we want to produce a list of expected hourly files so that we can identify all of the gaps.
This logic is similar to what we'll need for our FilePattern, and uses the pattern changes identified above (and perhaps writing something to automatically identify such pattern changes would be helpful, to avoid the manual, error-prone visual inspection):
# list-expected-files.py

import pandas as pd

def print_filenames(start, end, format, version):
    for date in pd.date_range(start, end, freq="1H"):
        print(
            "AHI-L2-FLDK-SST/{time:%Y/%m/%d/%H}00/{time:%Y%m%d%H}0000-{format}-"
            "L3C_GHRSST-SSTsubskin-AHI_H08-ACSPO_{version}-v02.0-fv01.0.nc".format(
                time=date,
                format=format,
                version=version
            )
        )

print_filenames("2019-12-10 16:00:00", "2020-07-02 14:00:00", "STAR", "V2.60")
print_filenames("2020-07-02 14:00:00", "2021-03-22 16:00:00", "STAR", "V2.71")
print_filenames("2021-03-23 01:00:00", "2021-04-05 15:00:00", "STAR", "V2.80")
print_filenames("2021-04-06 12:00:00", "2022-08-17 23:00:00", "NCCF", "V2.80")

To produce the list of expected files:
python list-expected-files.py > l3c-expected.txt

Identify Missing Files
We can now produce a list of files that are missing from S3:
diff l3c-actual.txt l3c-expected.txt | grep "^>" | sed -E 's/^> (.*)/\1/' > l3c-missing.txt

For reference, I've attached a list of missing files, through 2022-08-17: l3c-missing.txt

@Patrick-Keown In preparation for generating a kerchunk index for the Himawari-8 Level 3 SST data we have identified several missing hourly time steps and a potential inconsistency in the timestamps for changes in product version id.  There is email contact associated with the NOAA BDP https://registry.opendata.aws/noaa-himawari/ but in the spirit of tracking of conversation in an open repository I was hopeful that you might be able to provide some feedback on these anomalies, if there is more appropriate point of contact for these discussions please let me know.

Are these missing hourly timestamps expected?
Is there documentation describing the key naming structure for the version and the STAR to NCCF transition?

Thank you in advance for any input you can provide.

Hi Patrick, Sean,
I'm definitely not the best person to talk about L3 products.  STAR
transitioned all Himawari 8 processing to OSPO about a year and a half
ago and I was only tangentially related to that process.
As for the times missing, could you please provide some examples?
Are you only using the L2 SST data?
Thanks,
Matt.
Matthew Jochum
NESDIS / STAR / ITT
System Owner - NOAA5018
Network Lead
O: 1-301-683-3506
I don't always test my code,
but when I do, I do it in production.
On 8/22/22 09:59, Patrick Keown - NOAA Federal wrote:

Hi Sean,
I am CC'ing Matt Jocum who I believe will be able to answer your data
specific questions on Himawari data.
Matt,
Are you able to assist?
Thanks,
Patrick Keown
Program Manager, NOAA Open Data Dissemination (NODD)
Office of the Chief Information Officer (OCIO)
National Oceanic & Atmospheric Administration
(615) 319-5906 | @.***
"Be sure when you step, step with care and great tact" - Dr. Seuss
On Fri, Aug 19, 2022 at 5:39 PM Sean Harkins @.***>
wrote:

@Patrick-Keown https://github.com/Patrick-Keown In preparation for
generating a kerchunk index for the Himawari-8 Level 3 SST data we have
identified several missing hourly time steps and a potential inconsistency
in the timestamps for changes in product version id. There is email contact
associated with the NOAA BDP https://registry.opendata.aws/noaa-himawari/
but in the spirit of tracking of conversation in an open repository I was
hopeful that you might be able to provide some feedback on these anomalies,
if there is more appropriate point of contact for these discussions please
let me know.
- Are these missing hourly timestamps expected?
- Is there documentation describing the key naming structure for the
version and the STAR to NCCF transition?

Thank you in advance for any input you can provide.
—
Reply to this email directly, view it on GitHub
https://github.com/pangeo-forge/staged-recipes/issues/173#issuecomment-1221111094,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOISIED6AK4NMX2UIYV76ADVZ75G7ANCNFSM5626VOGQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

@Patrick-Keown I don't see an email in the chain for Matthew Jochum, is there a good contact point for him (you can message me directly with it so as not to publish his email on a open channel).   For a list of the missing L3 SST time steps you can review this list https://github.com/pangeo-forge/staged-recipes/files/9377046/l3c-missing.txt compiled by @chuckwondo .

It looks like Matt mentioned to me that he may not be the best contact.
With that said, I would actually reach out to @.***
and they would be able to direct you to the appropriate contact.
Patrick Keown
Program Manager, NOAA Open Data Dissemination (NODD)
Office of the Chief Information Officer (OCIO)
National Oceanic & Atmospheric Administration
(615) 319-5906 | @.***
"Be sure when you step, step with care and great tact" - Dr. Seuss
On Wed, Aug 24, 2022 at 4:45 PM Sean Harkins @.***>
wrote:

@Patrick-Keown https://github.com/Patrick-Keown I don't see an email in
the chain for Matthew Jochum, is there a good contact point for him (you
can message me directly with it so as not to publish his email on a open
channel). For a list of the missing L3 SST time steps you can review this
list
https://github.com/pangeo-forge/staged-recipes/files/9377046/l3c-missing.txt
compiled by @chuckwondo https://github.com/chuckwondo .
—
Reply to this email directly, view it on GitHub
https://github.com/pangeo-forge/staged-recipes/issues/173#issuecomment-1226303253,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOISIEF5MNBYSRUHEX4GYQTV22CWDANCNFSM5626VOGQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

Hi Sean,
I am CC'ing Matt Jocum who I believe will be able to answer your data
specific questions on Himawari data.
Matt,
Are you able to assist?
Thanks,
Patrick Keown
Program Manager, NOAA Open Data Dissemination (NODD)
Office of the Chief Information Officer (OCIO)
National Oceanic & Atmospheric Administration
(615) 319-5906 | @.***
"Be sure when you step, step with care and great tact" - Dr. Seuss
On Fri, Aug 19, 2022 at 5:39 PM Sean Harkins @.***>
wrote:

@Patrick-Keown https://github.com/Patrick-Keown In preparation for
generating a kerchunk index for the Himawari-8 Level 3 SST data we have
identified several missing hourly time steps and a potential inconsistency
in the timestamps for changes in product version id. There is email contact
associated with the NOAA BDP https://registry.opendata.aws/noaa-himawari/
but in the spirit of tracking of conversation in an open repository I was
hopeful that you might be able to provide some feedback on these anomalies,
if there is more appropriate point of contact for these discussions please
let me know.

Are these missing hourly timestamps expected?
Is there documentation describing the key naming structure for the
version and the STAR to NCCF transition?

Thank you in advance for any input you can provide.
—
Reply to this email directly, view it on GitHub
https://github.com/pangeo-forge/staged-recipes/issues/173#issuecomment-1221111094,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOISIED6AK4NMX2UIYV76ADVZ75G7ANCNFSM5626VOGQ
.
You are receiving this because you were mentioned.Message ID:
@.***>


suggestion: simplify archetype definition customisation

With the new module / provider, we are still providing two methods to specify / modify archetypes.
Either by supplying your own library or by supplying variables to add / remove from built in / custom archetypes.
I think we could simplify the provider / module by just supporting a single method of customisation.
I would propose enabling overriding / adding to the built in archetypes. If someone supplies a custom library that includes archetypes and they have the use_alz_lib set to true, then we should take the archetype definitions in their folder and either override the built in archetype definitions if the name matches or add a new archetype if it does not already exist. We just take the first or last if they provide multiple folders with the same ones (or throw an error if we like).
By doing this, we offer full flexibility while still allowing them to re-use our built in archetypes.
We can then remove the ..._to_add and ..._to_remove variables as they are not required for customisation anymore.
I think having one approach is more intuitive and using the files is easier to see / review than the variables. I also think it will simplify the code and documentation for contributors.
This is one for further discussion and as usual it is highly likely I have missed the reason for providing two methods of customisation.

The idea behind the ..._to_add was so that the caller could customise the archetypes without having to maintain a fork.
E.g. they wanted root but with the addition of x, y, & z.

Understood, I totally get the point. I think my thoughts are moving towards this:
Using the lib folder is a great way to see what you are customising very easily and works really well with source control. Whereas using vars can be less obvious, especially if combined with a custom lib. This is because customers can supply vars in multiple different ways and even end up building their own custom config file structure to manage it.
I was thinking that perhaps there could be a concept of an override archetype where you can use the json file to inherit from another archetype (built in or custom) and add / remove things using that file structure instead of using the vars. I appreciate that the removing aspect needs some thought as to how it would be represented in the json.
In summary, having a single opinionated way to customise archetypes that is easy to see and understand. Providing flexibility is great, but having two ways to achieve the same result is where I think we could end up accidently causing confusion.

Suggestion accepted! It's on the roadmap. Thanks mate!

closed as released in v0.10.0


tom comments

What does this PR do and why?
Provide a description of what this PR does. Link to any relevant GitHub issues, Notion tasks or Discord discussions.
Screenshots or screen recordings
If applicable, provide screenshots or screen recordings to demonstrate the changes.
Acceptance checklist

[ ] I have evaluated the Approval Guidelines for this PR.
[ ] I have tested this PR in all supported browsers.
[ ] I have tested this PR in dark mode and light mode (if applicable).

⏳ This pull request is set to merge as part of a Graphite merge job
Stack job ID: SovDrrRD6szLOn7scu54.
See details on graphite.dev


Create 0000-01-02-ArlynRichards.md

This was entered as a commit comment.
Add ArlynRichards file.

sdf

adsfasf sfda  af f

sdf sdf sdf


Added support for multioutputs to ResponseProcesser, with tests.

Description
Changes ResponseProcessors to process response inputs for multiple fields, supporting things like multilabel or multiclass classification.
Motivation
This is a new feature that extends the generality of the org.tribuo.data.columnar system, but the direct motivation is to allow CSVLoader to become a special case of CSVDataSource, by supporting all of the features of CSVLoader within ColumnarDataSource.

I believe I've addressed all the changes requested with this commit, let me know if I missed something.


Unbounded Binary Search using python

📚 Documentation
Unbounded Binary Search  is :
Given a function ‘int f(unsigned int x)’ which takes a non-negative integer ‘x’ as input and returns an integer as output. The function is monotonically increasing with respect to value of x, i.e., the value of f(x+1) is greater than f(x) for every input x. Find the value ‘n’ where f() becomes positive for the first time. Since f() is monotonically increasing, values of f(n+1), f(n+2),… must be positive and values of f(n-2), f(n-3), .. must be negative.
Have you read the Contributing Guidelines on Pull Requests?
yes, I read them .

I'm a GSSoC'21 participate, please assign this to me.

/assign


Not working with WKWebView

I know this is not key, considering the performance of WKWebView would be nice to have

I actually would suggest ditching the ionic keyboard plugin for iOS when using the WKWebView.
I also suggest defaulting to native scrolling so that iOS has full control over the functioning of the keyboard + scrolling logic.
I have tested this and the native functionality works great.
I would suggest that you enable native scrolling by default, which allows for iOS to correctly calculate and control input logic.
$ionicConfigProvider.scrolling.jsScrolling(false);

Also track this pull: https://github.com/driftyco/ionic/pull/3894

@chaffeqa  I've just ditched  ionic keyboard plugin for iOS when using the WKWebView with meteor 1.3 (which by default uses WKWebView) and the keyboard is now missing when I go onto fields.
I have basically replaced in a fork of meteor-ionic, all occurence of Meteor.isCordova  by Meteor.isCordova && Platform.isAndroid() in files ionFocus.jsand ionKeyboard.js. I need to keep  it for Android though so cannot get rid of
Am I doing something wrong ? How do you actually "ditch"   ionic keyboard plugin for iOS using the WKWebView?

Basically took the DSL of the ionic plugin (iOS only) and either stubbed the methods that are no longer usable or replaced them with the WKWebview cordova version.
You can see / use the fork we created: here

@chaffeqa  thanks a lot for the tip. What do you mean by DSL ? I've tried to use your fork of ionic-plugin-keyboard but it still doesn't work. In meteor-ionic, package.js, I've replaced in
Cordova.depends({
  //'ionic-plugin-keyboard': '1.0.8'
  'ionic-plugin-keyboard': 'https://github.com/sportstech/ionic-plugin-keyboard/tarball/a75c589918638ebf87e48f2fe6eca3feb715133e'
});


v0.0.42 Custom Rollup is not working

Short description of the problem:
I'm using a custom rollup config and after the upgrade to v0.0.42 it's not running ionic serve anymore. I'm getting "rollup failed: Could not resolve './app.module' from ...app\src\app\main.dev.ts".
My custom rollup.config is just to add env variables into my app. I got the idea from here https://github.com/driftyco/ionic/issues/8370
If, there is a better way to do it or a way to do it with webpack, it would be good to know.
What behavior are you expecting?
After the upgrade to the newest version, it should still work.
This is my rollup.config.j
var nodeResolve = require('rollup-plugin-node-resolve');
var commonjs = require('rollup-plugin-commonjs');
var globals = require('rollup-plugin-node-globals');
var builtins = require('rollup-plugin-node-builtins');
var json = require('rollup-plugin-json');
var replace = require('rollup-plugin-replace');
var fs = require('fs');

// https://github.com/rollup/rollup/wiki/JavaScript-API
var rollupConfig = {
  /**
   * entry: The bundle's starting point. This file will
   * be included, along with the minimum necessary code
   * from its dependencies
   */
  entry: '{{SRC}}/app/main.dev.ts',

  /**
   * sourceMap: If true, a separate sourcemap file will
   * be created.
   */
  sourceMap: true,

  /**
   * format: The format of the generated bundle
   */
  format: 'iife',

  /**
   * dest: the output filename for the bundle in the buildDir
   */
  dest: 'main.js',

  /**
   * plugins: Array of plugin objects, or a single plugin object.
   * See https://github.com/rollup/rollup/wiki/Plugins for more info.
   */
  plugins: [
    replace({
      include: 'src/config/index.ts',
      './config': process.env.IONIC_ENV == 'prod' ? './config.prod' : './config.dev',
    }),
    builtins(),
    commonjs(),
    nodeResolve({
      module: true,
      jsnext: true,
      main: true,
      browser: true,
      extensions: ['.js']
    }),
    globals(),
    json()
  ]

};

//check if files actually exist
if (process.env.IONIC_ENV == 'prod') {
  // production mode
  rollupConfig.entry = '{{TMP}}/app/main.prod.ts';
  rollupConfig.sourceMap = false;
  fs.access('src/config/config.prod.ts', fs.F_OK, (err) => {
    if (err) {
      throw err;
    }
  });
} else {
  fs.access('src/config/config.dev.ts', fs.F_OK, (err) => {
    if (err) {
      throw err;
    }
  });
}

module.exports = rollupConfig;

A part of my package.json
  ....
  "scripts": {
   "ionic:build": "ionic-app-scripts build",
   "ionic:serve": "ionic-app-scripts serve",
    "build": "ionic-app-scripts build --dev",
    "watch": "ionic-app-scripts watch",
    "serve:before": "watch",
    "emulate:before": "build",
    "deploy:before": "build",
    "build:before": "build",
    "run:before": "build"
  },
  "config": {
    "ionic_rollup": "./scripts/rollup.config.js",
    "ionic_tslint": "./tslint.json"
  },
  "dependencies": {
   ....
   }
  "devDependencies": {
    "@ionic/app-scripts": "0.0.42",
    "rollup-plugin-replace": "^1.1.1",
    "typescript": "2.0.6"
   }
  ....

Which @ionic/app-scripts version are you using?
v0.0.42

I've just saw this open issue, so it's kind of answer a part of my problem https://github.com/driftyco/ionic-cli/issues/1205

ok, so using a custom webpack config for env variables, it worked. But using my custom rollup.config.js, the problem still happens like i described

@rodriguesgm,
I'll take a look.
Thanks,
Dan

This should be fixed now. Will be published today as 0.0.43, I'll close it after I publish.
Thanks,
Dan

This is resolved. Please install npm install @ionic/app-scripts@latest.
Thanks,
Dan


Does Telebot support Webhooks?

I see,that  bot shoud listen telegramm per time,but as i understand it uses cpu (simple while loop).
Does Telebot support Webhooks?

Telebot uses long polling with provided poll timeout interval (see Bot.Start or Bot.Listen). It is not supposed to use much CPU.
I fail to see any benefit in implementing Webhooks at this point or later.

I fail to see any benefit in implementing Webhooks at this point or later.

I think it may be interesting to keep the possibility of adding such support in the future open. Primarily, I see two advantages of incoming webhooks over the outgoing long-polling alternative:

Load balancing & high availability: Long polling only supports a single active instance. A second connection immediately disconnects the first (which, with the current implementation, will immediately reconnect, disconnecting the other, creating a connect/disconnect storm). This makes running a reduntant instance technically challenging.
With webhooks, the above becomes a lot easier to do.  Assuming a properly configured loadbalancer, instances may come and go without users noticing.
It is unlikely hobby projects would go this route, however, if a commercial company were to build a bot atop telebot which provides some kind of service to customers, the above quickly becomes relevant.

Compatibilty with serverless architectures: Serverless computing is slowly gaining in popularity. A persistent process cannot run in such an environment, however, coupled with something like the Amazon API Gateway it should be possible to build a Telegram bot that can.  :)


Is client secret readable ?

https://github.com/stripe-samples/firebase-mobile-payments/blob/d114070ebcd4ca1a538bf7f336c0e506afab64ce/android/app/src/main/java/com/example/firebasemobilepayments/MainActivity.kt#L85

https://stripe.com/docs/api/payment_intents/object#payment_intent_object-client_secret

sorry, i assumed client_secret as secret_key. You are right i have same approach on my app too. Thank you for the answer!


Add license token string to cluster spec

Issue #, if available:
#2855
Description of changes:
This PR adds a new optional licenseToken string to the cluster spec for extended kubernetes version support.
Testing (if applicable):
make eks-a
make build-all-test-binaries
make lint
make unit-test
make generate
make generate-manifests
make release-manifests

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

/approve

/hold

/unhold


feat : URL shortener Extension

i want to work on this issue under jwoc

i want to work on this issue under jwoc

@mnnkhndlwl Assigned 🚀
All the best 👍
@whiteHatpro you can look at other issues

Completed - #67


Is the log in send file wanted ?

The send file function logs a lot even if everything went right
form.submit(hookURL, (error, response) => {
        console.log(error);
        console.log(response);
}

Is this behavior wanted ?

should be optional

Removed in 1.0.9, was accidentally left in there.


Chore updated changelog for rel-24.05

Description

updated changelog for rel-24.05.
appversion -> 2.3.8 and chart version -> 0.1.7

Pre-review checks
Please ensure to do as many of the following checks as possible, before asking for committer review:

[x] DEPENDENCIES are up-to-date. Dash license tool. Committers can open IP issues for restricted libs.
[x] Copyright and license header are present on all affected files

Closing this PR for app version correction


hcm: use optional instead of iter end

Description:
The pattern iterator::end() as pivot is less expressive than an
optional. Fix all the occurrences in HCM
Risk Level: LOW
Testing: existing test

Thanks for the contribution. This seems a bit like change for change sake and not worth the regression risk. What's the rationale for the change?
/wait-any

Thank you for the comment!

Regression concern:
All the changes are limited to stack variables so the existing tests should cover.

What's the hunch when you see trailers_added_entry == encoder_filters_.end()?
Reaching the end of the iterator, or it is never assigned to a legit value, especially in a 150-line function ConnectionManagerImpl::ActiveStream::decodeHeaders(HeaderMapPtr&& headers, bool end_stream)?
We need the everlasting refactors to make the semantic more straightforward, don't we?

@silentdai OK I think I understand the intent of the change now, sounds good on the optional part. Please revert the other parts with the ternary operator as this will conflict with ongoing @soya3129 change and generally seems like change for change sake. Thank you.
/wait

Thanks! I agree with your that the ternary operator does bring much values: only save a default constructor invoke which is nothing here. I revert it and keep only optional type.

I am not saying there is any bug in existing code. Otherwise I would throw a test case.
The idea is that continue_data_entry valued end() has readability issue although it is semantically correct.
I understand that this code was authored when absl::optional is not announced yet.
I read beyond this code and the vagueness is no longer an issue to me. I am fine if you don't accept.
I just hope with this PR the future contributors could understand it easier when they encounter continue_data_entry at their first time.

OK let's close for now as I don't think the optional is really any better than initializing to end(). We can reopen if this comes up again.


Nodes are flapping between ready and not ready state

I am trying to launch kubernetes cluster using your code. But I am facing flapping issue same as https://github.com/kubernetes/kubernetes/issues/45419 . Also when nodes are in not ready state, i got cpu spikes.

Could you please share your configuration? Thanks.


cuda: hash the first (largest) part of the header only once

On a 4 CPU Linux instance with 2 Tesla V100s I noticed a speed-up from ~460 MH/s to ~990 MH/s.

Note that you'll need to rebuild the library to make use of this change.


[enhancement] Optimize the log content to make the meaning clearer

Proposed changes
Issue Number: close #xxx
Problem Summary:
log conent message is wrong  not report to master ,but refresh storage policy from master FE
before

after

Checklist(Required)

Does it affect the original behavior: (Yes/No/I Don't know)
Has unit tests been added: (Yes/No/No Need)
Has document been added or modified: (Yes/No/No Need)
Does it need to update dependencies: (Yes/No)
Are there any changes that cannot be rolled back: (Yes/No)

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

hi @chenlinzhong , it has been fixed in #11123.
And it also fixed some other problem.

hi @chenlinzhong , it has been fixed in #11123. And it also fixed some other problem.

log content is wrong, the action is "refresh the storage policy" not  "report to master"