This emoji 🧑🏾💻 can't display correctly on version 12.1.4

I enter this emoji 🧑🏾💻 with iPhone keyboard, but it displays like as follow:

and on the console, the message shows as follow:

It seems this emoji 🧑🏾💻 can't be matched by the RegExp. Can anybody help me with it?

According to emojipedia this is currently only supported by apple, see https://emojipedia.org/technologist/

@makepanic Is there any way to display this emoji directly?

We'll have support for the gender neutral occupations (including this one) coming soon.


Removed test as redundant (issue #413)

Where is the link to the redundant tests?

Closing, contained in https://github.com/kaazing/gateway/pull/854


Add text size classes, and option to shrink on mobile

Add text size classes (PR #743)
Add option to shrink text on small displays (PR #745)
Combine these so that shrink text option works on text size classes

Demonstration:
https://cl.ly/jtEB

@jsit thanks for the PR! Some cool stuff going on here. After chatting with the Foundation Team, I think that we're in agreement that we want to have control over the font sizes when when we hit mobile, however we're leaning towards increasing the font size by default.
Our opinion is that we would want to decrease the header font sizes, while bumping up the body copy size for mobile devices. See: https://templates.mailchimp.com/development/responsive-email/increasing-text-size/
Interested in hearing your opinion!

Maybe .grow-text-for-small and .shrink-text-for-small classes for more granular control?

So does this replace the other two PRs?


TripletCMakeVarProvider::launch_and_split crash due to incorrect iterator usage

Describe the bug
Crash.
Environment

OS: Windows 11

To Reproduce
Steps to reproduce the behavior:

Have whole OS messed up and nothing working
./vcpkg install any_library

Expected behavior
Doesn't crash.
Additional context
https://github.com/microsoft/vcpkg-tool/blob/f9a044cb139423024cd7c667222d3561a45767eb/src/vcpkg/cmakevars.cpp#L196
When block_start is equal to port_end because no new start was found, it will be incremented and cause a crash.

Seems to be duplicate of https://github.com/microsoft/vcpkg/issues/18636 - downgrading cmake worked as a fix.
Tried it with a quick fix applied, which stops it from crashing:
if (block_start != port_end) ++block_start;
auto block_end = std::find(block_start, port_end, BLOCK_END_GUID);

However it just errors out with Invalid architecture string:  where the string is empty.

@BillyONeal
Could you please help take a look?
Thanks.

Ping @BillyONeal, could you please take a look this issue? Thanks in advance.

This issue has been fixed in PR https://github.com/microsoft/vcpkg-tool/pull/107, so I am closing this issue for now.


unset() should restore property to initial state if no convention set

// build.gradle
task demo {
    def list = objects.listProperty(Integer)
    doLast {
        assert list.orNull == []

        // the initial state above is impossible to recreate as soon as you make any changes
        list.add(1)
        assert list.orNull == [1]

        list.set([]) // `unset()` would cause the assertion below to fail
        assert list.orNull == []

        // conventions don't kick in anymore
        list.convention([1, 2, 3])
        assert list.orNull == [1, 2, 3]
    }
}

@ljacomet This addresses the inability to restore a property to its initial state

@bot-gradle test RFN

I've triggered the following builds for you. Click here to see all build failures.

ReadyForNightly build

🧪 It seems to be missing tests for the behavior of unset with scalar properties

You were right. I moved the test case to base abstract test suite class.


Let us intersect the type of a function argument based on the value of another argument

Here is a basic User class:
class User< U > {

    private _user: Partial< U > = {};

    public set< K extends keyof U >(

        key: K,
        val: U[ K ],

    ) : void {

        this._user[ key ] = val;

    }
}

And a basic Employee interface:
interface Employee {

    name: string;
    city: string;
    role: number;

}

Now, consider the following implementation:
const admin = new User< Employee >();

admin.set( "name", 10 );

The above script yields the following error which is expected.

Argument of type 'number' is not assignable to parameter of type 'string'.

Now take a look at the following implementation:
const admin = new User< Employee >();

admin.set< "name" | "role" >( "name", 10 );

The above script does not yield any error and it is also expected, as long as 10 is assignable to name or role.
To make it more clear, let's take a look at the following script:
const admin = new User< Employee >();

admin.set< "name" | "role" >( "name", true );

The above script yields the following error which is also expected.

Argument of type 'boolean' is not assignable to parameter of type 'string | number'.

Now, what I want to achieve is, 10 should not be allowed to be stored as a value of name at any mean.
For this, I need to make some changes to my code something similar to the followings:
public set< K extends keyof U >(

    key: K,
    val: U[ valueof key ],

) : void {

    this._user[ key ] = val;

}

But as long as there is nothing like valueof key, this cannot be achieved dynamically.
For testing, if you replace U[ K ] by U[ "name" ], you will see 10 is no longer allowed anymore at any form.
Many programmers solved similar problems by applying T[ keyof T ] which I think is not applicable to this case.
Thanks in advance.
Playground

Fundamentally a duplicate of #27808.

Hi @marcin-serwin sorry about not following the issue template. Please accept my apology.
I think my issue is slightly different than #27808 as because this is about dynamic literal types. Let me leave this as a comment there. Thanks.

But as long as there is nothing like valueof key, this cannot be achieved dynamically.

There already is typeof key, but this doesn't solve your actual issue that K can be a union of different keys. This is where #27808 kicks in.

Now I see your point. Thanks for the clarification. I have left a comment there, hopefully this will add some value to the discussion.

@MartinJohns this has nothing to do with #27808.
Your problem is that your set function's type is not quite correct (and TypeScript has a bit of unsoundness for convenience here - assignments are treated covariantly even when they should be treated contravariantly, and therefore doesn't catch it).
You want
type UnionToIntersection<U> =
  (U extends any ? (k: U)=>void : never) extends ((k: infer I)=>void) ? I : never
type ExtractField<T> = T extends { field: infer F } ? F : never;

class User<U> {
    private _user: Partial<U> = {};
    public set<K extends keyof U>(
        key: K,
        val:  ExtractField<UnionToIntersection<U extends infer OneCase ? (K extends keyof OneCase ? {field : OneCase[K]} : never) : never>>,
    ) : void {
        this._user[key] = val as any;
    }
}

Converting the union to an intersection achieves the correct variance here. Alternatively you could directly inline that function declaration to get the appropriate variance (UnionToInsersection is just a bit of a hack).

I'm saying that #27808 would allow this to be typed in a sound way.

I am loathe to suggest it, but this is the one legitimate use case for Union to Intersection conversion: https://stackoverflow.com/questions/50374908/transform-union-type-to-intersection-type
The "proper" fix would be #14520


Avoid using global variables for configuration

Current situation
The setup of the webhook checks for OpenShift API to set a global api/v1alpha1 package variable which indicates whether it's openshift or not. In the same place the infrastructure config is retrieved and and another global variable for PlatformStatus is set in the same package.
The rest of the code uses this to switch case between pure Kubernetes and OpenShift installations.
Problem 1: platform detection and status have no logical adherence to the API wehbook. This is something which has to be done once but the webhook is not optimal place for this.
Problem 2: testing with global variables is more difficult as the functions depend on external variants which are not easy to set and even more difficult to be reset to the previous values.
Proposal
Move the platform specific things into the operator's config: pkg/operator/config#Config. The platform gets detected in main (only Kube client is needed), the platforms status gets retrieved at the operator initialization (we already know the platform and can use the specific client). Then these data is propagated to the places where it's needed.
Result: the things which have to be done once are not bound to the webhook setup, fewer dependencies on the global variables. Slightly (a couple of %) better code coverage.

/assign @miheer

aws e2e test failed: multiple nameservers failed to find the record. Intermittent?
/retest

AWS e2e failure is due to the operand POD which didn't find a key in the credentials secret:
                "containerStatuses": [
                    {
                        "image": "k8s.gcr.io/external-dns/external-dns:v0.8.0",
                        "imageID": "",
                        "lastState": {},
                        "name": "external-dns-n587hc8h58fh55cq",
                        "ready": false,
                        "restartCount": 0,
                        "started": false,
                        "state": {
                            "waiting": {
                                "message": "couldn't find key aws_access_key_id in Secret external-dns/external-dns-credentials-test-extdns",
                                "reason": "CreateContainerConfigError"
                            }
                        }
                    }
                ],

@alebedev87 please make sure you test this on Azure, AWS and GCP.

AWS e2e failure is due to the operand POD which didn't find a key in the credentials secret:
                "containerStatuses": [
                    {
                        "image": "k8s.gcr.io/external-dns/external-dns:v0.8.0",
                        "imageID": "",
                        "lastState": {},
                        "name": "external-dns-n587hc8h58fh55cq",
                        "ready": false,
                        "restartCount": 0,
                        "started": false,
                        "state": {
                            "waiting": {
                                "message": "couldn't find key aws_access_key_id in Secret external-dns/external-dns-credentials-test-extdns",
                                "reason": "CreateContainerConfigError"
                            }
                        }
                    }
                ],

Yes please test the code manually on AWS.

You need to make changes here
https://github.com/openshift/external-dns-operator/blob/main/pkg/operator/controller/externaldns/controller.go#L108

Also here
https://github.com/openshift/external-dns-operator/blob/main/pkg/operator/controller/credentials-secret/controller.go#L256

I think you have made the above changes but it looks somewhere the bool is not getting set properly which is not creating the secret properly.

I will really recommend to test this manually on AWS, Azure and GCP.

@miheer : there is no need to test the code manually on any provider. CCO logic is already tested by the e2e tests. That's actually why I got the error which I fixed in the commit that followed the comment: because I modified desiredCredentialsSecret function which was used in the CCO related flow.

Added the change to not use the CCO credentials if they are explicitly specified in CR.
Use case when credentials are taken from CCO will be covered in https://github.com/openshift/external-dns-operator/pull/82.

/lgtm


Fix atomgraph kwargs

a semicolon got lost and then none of the keywords worked 😢
But now it's fixed 🎉

Codecov Report

Merging #97 (f88b55d) into main (99618bc) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #97   +/-   ##
=======================================
  Coverage   85.28%   85.28%
=======================================
  Files          12       12
  Lines         299      299
=======================================
  Hits          255      255
  Misses         44       44

Impacted Files
Coverage Δ

src/atoms/atomgraph.jl
72.58% <ø> (ø)

Continue to review full report at Codecov.

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

aren't these changes the same as those proposed in #95?

facepalm oops yes
On Jul 1, 2021, 7:23 PM -0400, Anant Thazhemadam @.***>, wrote:

aren't these changes the same as those proposed in #95?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub, or unsubscribe.

haha no issues, #95  also  removes a module redefinition, and does some minor refactoring a test too (+ docstring update) too. So I'll fix the merge conflicts, and merge that as well.


Fix error-reporting for bad fragments

Fixes https://github.com/smola/galimatias/issues/52 (regression caused by https://github.com/smola/galimatias/issues/35).

Superseded by #61 (4fb9a17)


Syntax checking with syntastic

It would be nice to highlight compile errors for crystal in vim.
We can compile sources written in crystal with command and parse it's output:
$ crystal build filename.cr

First that comes to the mind is integration with Syntastic. Good example of such approach is rust.vim.
Or we can supply it with syntastic directly. @rhysd, @scrooloose what can you say?

Hi @veelenga.
Thank you for your suggestion.  But I'm not using syntastic and I don't know how to do that.
Could you send pull request?
I'm checking Crystal's syntax by writing quickrun setting manually here
Essentially, you can check the syntax by below command.
$ crystal run --no-build --nocolor {source.cr}

Hi @rhysd. Thanks for quick reply.  Ok, I will send pull request soon.

@veelenga
Thanks!
BTW I think errorformat is a bit complex and you can leave it empty.

Unfortunately, without errorformat it will not work.


isn't it time for a new release ?

to get "SQL Server 2012" in UTF-16. cp35 wheel, ... cp36 wheel...

Can you elaborate.  It is time for a new release, but is there a particular issue you want closed?  Or are we missing binaries?

missing binaries for python 3.5 and 3.6

I've released 3.1.1 binaries for 2.7 and 3.5.  Python 3.6 is, of course, only in beta so I didn't build it yet.  I'm not sure if I should really upload beta binaries to PyPI.


[graphql-playground-html] Yarn package missing version 1.6.26

This issue pertains to the following package(s):

[ ] GraphQL Playground - Electron App
[X] GraphQL Playground HTML
[ ] GraphQL Playground
[ ] GraphQL Playground Express Middleware
[ ] GraphQL Playground Hapi Middleware
[ ] GraphQL Playground Koa Middleware
[ ] GraphQL Playground Lambda Middleware

What OS and OS version are you experiencing the issue(s) on?
Debian Bullseye
What version of graphql-playground(-electron/-middleware) are you experiencing the issue(s) on?
1.6.26
What is the expected behavior?
Being able to yarn the package
What is the actual behavior?
yarn add apollo-server-express
error An unexpected error occurred<EMAIL_ADDRESS>Request failed \"404 Not Found\"".

What steps may we take to reproduce the behavior?
yarn add apollo-server-express
apollo-server-express use version 1.6.26
https://github.com/apollographql/apollo-server/blob/main/packages/apollo-server-express/package.json#L30
But the package is not found in the yarn registry:
<EMAIL_ADDRESS>

This seems to be a problem with npm package registry,
got many errors on all build pipleline:
npm ERR! 404 Not Found - GET<EMAIL_ADDRESS>

Problem solved, the package is available again.


GpuMat as input tensor

I'm looking to avoid a Device -> Host -> Device copy. I use Nvidia Video Codec to decode a video, pre-process in OpenCV and then scale/letterbox the GpuMat to the network input size. Now I'm stuck passing the GpuMat to network_predict_gpu_cudnn https://github.com/AlexeyAB/yolo2_light/blob/1f270bf1c1c04dde3fbc779dd0ce90f85490301a/src/yolov2_forward_network_gpu.cu#L529
Here are some of my assumptions:

Resize and letterbox to network size
Convert BGRA2RGB
Convert GpuMat to float32 (CV_32FC3) and scale .convertTo(tempImage, CV_32FC3, 1.f/255);
Pass the GpuMat->data pointer to the updated network_predict_gpu_cudnn and set the network input

It looks you currently load in an IplImage and convert it to an image, rgbgr_image, resize_image and then pass resized.data pointer to network_predict_gpu_cudnn.

The function network_predict_gpu_cudnn(, float *X) gets X in float CHW-format (channel, height, width).
Since IplImage and GpuMat contain images in uint8_t HWC-format (height, width, channel).

On CPU you would try to use cv::extractChannel() to convert HWC->CHW but it is no on GPU: https://stackoverflow.com/questions/44094299/opencv-image-mat-to-1d-chwrr-r-gg-g-bb-b-vector/44094878#44094878
So you should do on GPU:

Convert uint8_t to float
Divide float / 255
Convert HWC->CHW, write on CUDA function like this and pass gpu_mat.ptr() to this function: https://github.com/AlexeyAB/yolo2_light/blob/f78f261c339eb1ed535dd9fe60a45ece68876701/src/additionally.c#L2763-L2781

Or you can try to use CUDNN-library instead of your own function on CUDA for converting HWC->CHW. Use cudnnTransformTensor() function to convert NHWC-array with NHWC-descriptor to the NCHW-array with NCHW-descriptor, where is N=1: https://docs.nvidia.com/deeplearning/sdk/cudnn-archived/cudnn_701/cudnn-user-guide/index.html#cudnnTransformTensor

Ahh, the HWC -> CHW was not obvious to me.
I came across this example of where someone converts a GpuMat to a tensor for caffe2.
https://github.com/alexge233/espresso-maker/blob/master/espresso.cpp#L120-L127
That looks like it is changing to CHW order to me?
After changing the order wouldn't I be passing the data/ptr to a custom function similar to network_predict_gpu_cudnn ? I would just set state.input=input; in place of the cudaMemcpy on line 539.
https://github.com/AlexeyAB/yolo2_light/blob/master/src/yolov2_forward_network_gpu.cu#L529-L553
Is net.input_state_gpu a pointer to a tensor of NCHW? Sorry, my c++ skills are nil, it is a miracle I was able to get this far :)
Thanks for putting up with my questions and pointing me in the right direction.

Is net.input_state_gpu a pointer to a tensor of NCHW?

Yes.

That looks like it is changing to CHW order to me?

Yes, you can use something like this:
    cv::cuda::GpuMat resized_rgb; // pre-allocate it once to speedup
    cv::cuda::GpuMat mfloat; // pre-allocate it once to speedup
    cv::cuda::GpuMat gpu_dst(net.h, net.w, CV_32FC3); // pre-allocate it once to speedup

    cv::cuda::GpuMat src_rgb= ...;  // your GpuMat

    cv::cuda::resize(src_rgb, resized_rgb, cv::Size(net.w, net.h) ); //resize to the network size
    //cv::cuda::cvtColor(resized_rgb, resized_rgb, CV_RGB2BGR);  // if BGR is used in GpuMat

    resized_rgb.convertTo(mfloat, CV_32FC3, 1.0/255, 0); // uint8_t -> float, divide by 255

    size_t width = mfloat.cols * mfloat.rows;
    std::vector<cv::cuda::GpuMat> input_channels {
        cv::cuda::GpuMat(mfloat.rows, mfloat.cols, CV_32F, gpu_dst.ptr()[0]),
        cv::cuda::GpuMat(mfloat.rows, mfloat.cols, CV_32F, gpu_dst.ptr()[width]),
        cv::cuda::GpuMat(mfloat.rows, mfloat.cols, CV_32F, gpu_dst.ptr()[width * 2])
    };
    cv::cuda::split(mfloat, input_channels);  // HWC -> CHW

    float *gpu_input = gpu_dst.ptr();  // now there is CHW-tensor for Yolo

    network_predict_gpu_cudnn_custom(net, gpu_input);

Also you can try to use custom network predict function

Add float *network_predict_gpu_cudnn_custom(network net, float *gpu_input); here: https://github.com/AlexeyAB/yolo2_light/blob/f78f261c339eb1ed535dd9fe60a45ece68876701/src/additionally.h#L963

And add here: https://github.com/AlexeyAB/yolo2_light/blob/f78f261c339eb1ed535dd9fe60a45ece68876701/src/yolov2_forward_network_gpu.cu#L554
this code:

float *network_predict_gpu_cudnn_custom(network net, float *gpu_input)
{
    cudaError_t status = cudaSetDevice(net.gpu_index);
    //check_error(status);
    int size = net.layers[0].inputs * net.batch;
    network_state state;
    state.index = 0;
    state.net = net;
    //status = cudaMalloc((void **)&(state.input), sizeof(float)*size);
    state.input = net.input_state_gpu;
    status = cudaMemcpy(state.input, gpu_input, sizeof(float)*size, cudaMemcpyDeviceToDevice);
    state.truth = 0;
    state.train = 0;
    state.delta = 0;

    forward_network_gpu_cudnn(net, state); // network on GPU
    int i;
    for (i = net.n - 1; i > 0; --i) if (net.layers[i].type != COST) break;
    layer l = net.layers[i];
    if (l.type != REGION && l.type != YOLO) status = cudaMemcpy(l.output, l.output_gpu, l.outputs*l.batch * sizeof(float), cudaMemcpyDeviceToHost);
    return l.output;
}

Yahoo!! Thank you so much @AlexeyAB, your example got me there! I skipped the cudaMemcpyDeviceToDevice and write directly to the tensor.
  // change HWC -> CHW
  size_t width = floatMat.cols * floatMat.rows;
  auto ptr = net.input_state_gpu;
  std::vector<cv::cuda::GpuMat> input_channels {
      // cv::cuda::GpuMat(floatMat.rows, floatMat.cols, CV_32F, &gpu_dst.ptr()[0]),
      // cv::cuda::GpuMat(floatMat.rows, floatMat.cols, CV_32F, &gpu_dst.ptr()[width]),
      // cv::cuda::GpuMat(floatMat.rows, floatMat.cols, CV_32F, &gpu_dst.ptr()[width * 2])
      cv::cuda::GpuMat(floatMat.rows, floatMat.cols, CV_32F, &ptr[0]),
      cv::cuda::GpuMat(floatMat.rows, floatMat.cols, CV_32F, &ptr[width]),
      cv::cuda::GpuMat(floatMat.rows, floatMat.cols, CV_32F, &ptr[width * 2])
  };
  cv::cuda::split(floatMat, input_channels);

What is odd is that I get the same number of detections but the probability and position/shape of the detections is different. I'm letterboxing on my own custom code to ensure the aspect ratio stays the same though.
Loading image..
Loaded: [2592 x 1520]
Copying image to GPU
Yolo init...
Inference/Forward pass CPU
{"count":6,"detections":[{"class":"bicycle","h":0.10750982910394669,"prob":41.243019104003906,"w":0.10677994042634964,"x":0.2582123577594757,"y":0.2441323846578598},{"class":"person","h":0.1448991298675537,"prob":74.84734344482422,"w":0.0748751237988472,"x":0.26099643111228943,"y":0.20761257410049438},{"class":"bicycle","h":0.13626842200756073,"prob":64.60626220703125,"w":0.08505499362945557,"x":0.6012123823165894,"y":0.32591888308525085},{"class":"person","h":0.11625362187623978,"prob":58.37776184082031,"w":0.025033235549926758,"x":0.804175078868866,"y":0.10271923243999481},{"class":"person","h":0.10068065673112869,"prob":58.4838752746582,"w":0.029243452474474907,"x":0.8210407495498657,"y":0.13315366208553314},{"class":"person","h":0.17619214951992035,"prob":89.7964096069336,"w":0.054545797407627106,"x":0.8246187567710876,"y":0.4376811385154724}]}
Inference/Forward pass GPU
{"count":6,"detections":[{"class":"bicycle","h":0.11343485862016678,"prob":57.9716911315918,"w":0.09171831607818604,"x":0.2577689588069916,"y":0.2589259445667267},{"class":"person","h":0.1407172530889511,"prob":59.478240966796875,"w":0.05163392052054405,"x":0.26681193709373474,"y":0.19178378582000732},{"class":"bicycle","h":0.15915322303771973,"prob":87.5683822631836,"w":0.1316957175731659,"x":0.5635986924171448,"y":0.3042897880077362},{"class":"person","h":0.10582529753446579,"prob":52.8826789855957,"w":0.025335870683193207,"x":0.807508111000061,"y":0.10039293766021729},{"class":"person","h":0.20624111592769623,"prob":73.27076721191406,"w":0.06404555588960648,"x":0.8099210858345032,"y":0.4397156834602356},{"class":"person","h":0.08801490068435669,"prob":50.49589157104492,"w":0.022464683279395103,"x":0.8264353275299072,"y":0.13221701979637146}]}
Inference Duration: 72 CPU / 23 GPU

Inference/Forward pass CPU
{"count":6,"detections":[{"class":"bicycle","h":0.10750982910394669,"prob":41.243019104003906,"w":0.10677994042634964,"x":0.2582123577594757,"y":0.2441323846578598},{"class":"person","h":0.1448991298675537,"prob":74.84734344482422,"w":0.0748751237988472,"x":0.26099643111228943,"y":0.20761257410049438},{"class":"bicycle","h":0.13626842200756073,"prob":64.60626220703125,"w":0.08505499362945557,"x":0.6012123823165894,"y":0.32591888308525085},{"class":"person","h":0.11625362187623978,"prob":58.37776184082031,"w":0.025033235549926758,"x":0.804175078868866,"y":0.10271923243999481},{"class":"person","h":0.10068065673112869,"prob":58.4838752746582,"w":0.029243452474474907,"x":0.8210407495498657,"y":0.13315366208553314},{"class":"person","h":0.17619214951992035,"prob":89.7964096069336,"w":0.054545797407627106,"x":0.8246187567710876,"y":0.4376811385154724}]}
Inference/Forward pass GPU
{"count":6,"detections":[{"class":"bicycle","h":0.11343485862016678,"prob":57.9716911315918,"w":0.09171831607818604,"x":0.2577689588069916,"y":0.2589259445667267},{"class":"person","h":0.1407172530889511,"prob":59.478240966796875,"w":0.05163392052054405,"x":0.26681193709373474,"y":0.19178378582000732},{"class":"bicycle","h":0.15915322303771973,"prob":87.5683822631836,"w":0.1316957175731659,"x":0.5635986924171448,"y":0.3042897880077362},{"class":"person","h":0.10582529753446579,"prob":52.8826789855957,"w":0.025335870683193207,"x":0.807508111000061,"y":0.10039293766021729},{"class":"person","h":0.20624111592769623,"prob":73.27076721191406,"w":0.06404555588960648,"x":0.8099210858345032,"y":0.4397156834602356},{"class":"person","h":0.08801490068435669,"prob":50.49589157104492,"w":0.022464683279395103,"x":0.8264353275299072,"y":0.13221701979637146}]}
Inference Duration: 71 CPU / 24 GPU

Total Duration: 2699

I just did two forward passes on the same image

Detections CPU:

Detections GPU:

@sberryman
Do you use your own code with letterbox that calls the function network_predict_...() for detection on both CPU and GPU?

I use your code to call it via cpu (I just convert the cv::Mat to IplImage)
I do my own letterboxing for the GPU side. Funny enough I prefer the results from the GPU :)

Hi Alexei,
I stricly tried your method to transform my input GpuMat to CHW order and to float*, to pass it to tensorrt implementation.
It works well, if I display each channel stocked in "input_channels", I have well the differents parts of my image. The problem I have is when I display  "gpu_dst", I only have a black image. Do you have any idea of what's going on ?
Thanks


Kubernetes cannot scrape the operator pod (tries port 80, but the operator uses port 8080)?

Discussed in https://github.com/microsoft/retina/discussions/734

Originally posted by kastl-ars September 12, 2024
Hi all,
I just installed Retina and kube-prometheus-stack according to the documentation.
But one of the retina-pods targets is unhealthy according to Prometheus. It tries to get the metrics for the operator pod on port 80:
Get "http://<IP_ADDRESS>:80/metrics": dial tcp <IP_ADDRESS>:80: connect: connection refused

However, the operator pods seems to listen on port 8080?
[...]
ts=2024-09-12T11:23:41.024Z level=info caller=legacy/deployment.go:251 msg="Starting manager"
2024-09-12T11:23:41.024Z        info    controller-runtime.metrics      Starting metrics server
2024-09-12T11:23:41.024Z        info    controller-runtime.metrics      Serving metrics server  {"bindAddress": ":8080", "secure": false}
2024-09-12T11:23:41.024Z        info    starting server {"name": "health probe", "addr": "[::]:8081"}
[...]

This is the values.yaml I uses for the installation:
image:
  tag: 'v0.0.16'
operator:
  enabled: true
  tag: 'v0.0.16'
  enableRetinaEndpoint: true
loglevel: 'info'
enabledPlugin_linux: "[dropreason,packetforward,linuxutil,dns,packetparser]"
enablePodLevel: true
remoteContext: true

Any ideas?
Kind Regards,
Johannes

The legacy helm chart added a ServiceMonitor via #695 which should be the recommended means for adding scraper jobs for Prometheus for all the retina-agent pods in the daemonset. If the service is created properly and all agent pods run on port 8080. For clarification is this hubble helm chart ?


fix(stage): fatal channel closed error

Task downloaders can return None only if the response relaying channel was closed. This should be considered a fatal error to prevent the pipeline from running forever.

Codecov Report

Merging #1379 (16e9e57) into main (a9b9f42) will decrease coverage by 30.15%.
The diff coverage is 66.66%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@             Coverage Diff             @@
##             main    #1379       +/-   ##
===========================================
- Coverage   76.32%   46.18%   -30.15%
===========================================
  Files         354      354
  Lines       39531    39540        +9
===========================================
- Hits        30173    18262    -11911
- Misses       9358    21278    +11920

Flag
Coverage Δ

integration-tests
20.37% <0.00%> (-2.72%)
:arrow_down:

unit-tests
37.57% <66.66%> (-32.67%)
:arrow_down:

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

Impacted Files
Coverage Δ

crates/stages/src/error.rs
0.00% <ø> (-66.67%)
:arrow_down:

crates/stages/src/stages/headers.rs
25.07% <0.00%> (-69.78%)
:arrow_down:

crates/stages/src/stages/bodies.rs
66.08% <100.00%> (-27.42%)
:arrow_down:

crates/rpc/rpc-api/src/trace.rs
0.00% <0.00%> (-100.00%)
:arrow_down:

crates/stages/src/pipeline/event.rs
0.00% <0.00%> (-100.00%)
:arrow_down:

crates/interfaces/src/p2p/priority.rs
0.00% <0.00%> (-100.00%)
:arrow_down:

crates/net/network-api/src/reputation.rs
0.00% <0.00%> (-100.00%)
:arrow_down:

crates/rpc/rpc-types/src/eth/trace/filter.rs
0.00% <0.00%> (-100.00%)
:arrow_down:

crates/rpc/rpc/src/layers/auth_layer.rs
0.00% <0.00%> (-99.21%)
:arrow_down:

crates/storage/libmdbx-rs/src/lib.rs
4.54% <0.00%> (-95.46%)
:arrow_down:

... and 167 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Update Popper.js to version 2

Second version of Popper.js was published and it would be nice to support it.

Duplicate of #328, see discussion in #241 :)

<EMAIL_ADDRESS>is now on npm, it supports Popper 2, but it doesn't provide a React Hooks based API for the moment.
I bumped the minimum React version to 16.8 in order to get rid of create-react-context and to make it possible to release a feature version with a new Hooks based API in the future without having to cut a new major.
Please report any problems with it by filing new issues.


npm install --production

Hi,
I have submitted this in multiple repo's now but got redirected to this one.
https://github.com/dockerfile/nodejs-runtime/issues/1
https://github.com/GoogleCloudPlatform/nodejs-docker/issues/27
My thoughts on the npm install command used:

I think you actually want to run npm install --production instead of npm install. This decreases the size of projects that use separate dependencies and devDependencies in the package.json. This is pretty common. I think the majority of the people want to actually run it with the --production flag but they do not know about it. I think this is a better default and people that for some reason want to build the docker image with devDependencies can use a workaround.
What is the best way to work around this? Can you overwrite certain commands or should you use your own docker file by copy pasting this one?
Thanks for the help!

It sounds like you're using the onbuild image. If you switch to the normal
image (e.g. 0.10), you can write any npm install command you want.
As for using --production by default, I don't think it's appropriate for
the onbuild image. For one thing, changing it could break existing
downstream images. Secondly, the onbuild image in my mind is a least-effort
turnkey image for the simplest cases, so it shouldn't surprise people by
doing something other than the simplest thing. In many cases that I've
seen, projects don't have their dependencies and devDependencies correctly
separated anyways.

Thanks for the workaround, that is kinda what we are doing now using the Google images (see my issue there, linked above).
The point I am trying to make is that it might be better for everyone if we change it to be --production by default and let people use the workaround if they need anything else. I think this is a good thing to do because using --production is probably what most people want to use.

Thanks for raising this!
I think you could be right: a lot of people maybe aren't interested in having devDependencies installed.
I guess the argument could be made that npm install should probably default to the --production flag behaviour and things should have been the other way around (npm install --development), but it is what it is.
So, looking at this another way, how big a deal is it for most people to have devDependencies installed for a given package? I'm assuming in your use case, a lot of devDependencies packages are being installed such that it affects the final mage size? Would that be the case for most people?
Another thing to consider: would packages installed via devDependencies be useful for debugging something in production? I'm wondering if the utility of that would be more important than image size.

Yes, the packages unnecessarily increase the image size.
I agree that either way has some valid arguments. That NPM doesn't default to --production i can get behind because when a developer runs that command he almost always wants a dev install so this makes it easier. That you need to add a flag for production is acceptable because you will almost always script this, like we are doing with this Dockerfile. So adding the flag there is no problem. But now the flag is not there and you can't add it; you have to copy paste the script and change it on 1 line.
If you need to debug something in production than this is (hopefully) the exception and it's only logically that you need to do something for that (e.g. making a dev build).
I can imagine that this dockerfile just has npm install in it because no one really gave it that much thought. (Correct me if i'm wrong!)
So that is what i want to do with this issue; give it some thought. If we reach the conclusion to leave it as is that is no problem, but then we know why it is that way.

Hi!
So it turns out this has come up before:
https://github.com/docker-library/node/issues/14
We (Joyent) just recently took over maintaining the official Node.js image from Docker. Some GitHub history unfortunately got lost. I'm working on bringing over the git commit history. I don't think there's anything I can do about the GitHub issues etc though :(
The conclusion in the above issue was that if you want more control over what get's installed (e.g., you want npm install --production and a leaner image) you should probably create your own Dockerfile (copying the 5 relevant lines from our onbuild variant) and use debian:version (e.g., debian:jessie) or use the node:slim variant for an even leaner image (no buildpack-deps)
Also, FYI, I just accepted a pull request to make the slim version even, uh, slimmer: #2
That hasn't landed in the registry yet but will soon.

Thanks for the info! I'm happy to know that it is considered by the community.

I'm working on bringing over the git commit history.

Thanks you so much for doing that!

I don't think there's anything I can do about the GitHub issues etc though :(

One alternative (but maybe it's too late) would be to simply "transfer" the project to a different org.


Suggestion: Start a timer by clicking on a CookLang timer

It would be really great if I could start a timer by clicking on one of the timers defined in the recipe.

This is in the latest version now!
It's still very new, so feedback and bug reports are welcome


Funding

@lmsimp - could you update the acknowledgement.md file with the correct grant code.

I have added Stuart from HPC.


chore: Set permissions for GitHub actions

Restrict the GitHub token permissions only to the required ones; this way, even if the attackers will succeed in compromising your workflow, they won’t be able to do much.

Included permissions for the action. https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions

https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions
https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs
Keeping your GitHub Actions and workflows secure Part 1: Preventing pwn requests
Signed-off-by: naveen<EMAIL_ADDRESS>

Thanks for the PR! Actually all of our GitHub actions workflows are managed automatically through the sbt-typelevel plugin, so may I kindly suggest you redirect your PR there? Thanks!
https://github.com/typelevel/sbt-typelevel/


Fantastic js-ctypes! select and fd_set

I was working on a bugzilla issue to bring a  file watching API and needed to use select and needed the FD_SET macro. (https://github.com/Noitidart/jscFileWatcher/issues/12)  I found you guys already wrote up this macro for use with select here: https://github.com/pioneers/tenshi/blob/9b3273298c34b9615e02ac8f021550b8e8291b69/angel-player/src/chrome/content/common/serport_posix.js#L497
This is real awesome thank you! May I "borrow" this please haha

PS I saw the note "this should hopefully work" which kind of worries me:

https://github.com/pioneers/tenshi/blob/9b3273298c34b9615e02ac8f021550b8e8291b69/angel-player/src/chrome/content/common/serport_posix.js#L474
https://github.com/pioneers/tenshi/blob/9b3273298c34b9615e02ac8f021550b8e8291b69/angel-player/src/chrome/content/common/serport_posix.js#L437

I'm not intending to use this on mac but it would be awesome if we can improve this to not have any assumptions. Can you please mention to me in what direction I can go to make these not based on any assumptions, like I can calculate if the system is 64bit or not with no assumption with:
if (ctypes.voidptr_t.size === 4 /* 32-bit */) {
	var is64bit = false;
} else if (ctypes.voidptr_t.size === 8 /* 64-bit */) {
	var is64bit = true;
} else {
	throw new Error('huh??? not 32 or 64 bit?!?!');
}

Here is how i'm using it: https://github.com/Noitidart/jscFileWatcher/blob/inotify-move-to-select/modules/workers/FSWPollWorker.js#L662

Hi Noitidart,
Unfortunately I'm very busy the next couple of days, so I can't help
much. PiE also isn't really using this code any more. But, I know that
sizeof(void *) != sizeof(long) on many platforms. I'm pretty sure the
easiest way of handling this on most platforms it to assume that the
fd_set is just a fully packed array (of e.g. bytes), and compute the
result of that function as
return {'elem8': Math.floor(fd / 8), 'bitpos8': fd % 8};
That looks like it will run on most Unix systems based on my reading of
http://fxr.watson.org/fxr/source/sys/fd_set.h?v=NETBSD
and
http://fxr.watson.org/fxr/source/sys/select.h
and
http://fxr.watson.org/fxr/source/include/linux/posix_types.h?v=linux-2.6#L38
and
https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/types.5.html
and
http://fxr.watson.org/fxr/source/sys/select.h?v=OPENBSD#L61
and
http://fxr.watson.org/fxr/source/include/sys/select.h?v=minix-3-1-1#L33
since all of those systems put the array at the beginning of the fd_set
struct.
However, it's not guaranteed to work according to the POSIX standard,
and I can't confirm that it will work on Solaris or some other targets
(newlib?, cygwin?).
It definitely won't work on Windows, as you can see from the layout
listed on this page:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms737873(v=vs.85).aspx
However, it should be relatively easy to get around that (just add the
size of u_int to the elem8 field). Let me know if you have any questions!
I recently discovered how useful file watching can be, so I'd love to
see your extension completed.
On 04/23/2015 04:51 PM, Noitidart wrote:

Here is how i'm using it:
https://github.com/Noitidart/jscFileWatcher/blob/inotify-move-to-select/modules/workers/FSWPollWorker.js#L662
—
Reply to this email directly or view it on GitHub
https://github.com/pioneers/tenshi/issues/277#issuecomment-95752337.

Thank you very much @zentner-kyle for that input! I'll definitely use that and share any improvements we make. As of right I dropped your code into mine and it's working so thank you very much for that! :)
I noticed I had to do fd_set every time in the loop. Also would it be safe to cache the value of elem8 and bitpos8 in a session? It's weird cuz I've noticed it change but I can't recall what was different except session.

Hey @zentner-kyle we have OS.Constants.Sys.bits available to us now :) It tells us if its 32 or 64 bits :)
I wanted to rewrite this so it works perfectly but I was wondering if you had time :p I was in middle of some open source stuff but after I finish that Ill definitely revisit this if you haven't knocked it out by then :) A sincere thanks again for sharing this awesomeness in the open!

Hi @zentner-kyle I'm wrapping up my file watcher, I converted it to a submodule so it can be included into any addon.
I was wondering your thoughts on this FD_XXX macros, an awesome person from Stackoverflow provided this. Would this accomdate all situations (mac 32bit, mac 64bit, *nix 32bit, *nix 64bit, *nix 64bit but 32bit)?
    			var SIZE_32 = 4
    			var SIZE_64 = 8

    			var LITTLE_ENDIAN = [0, 1, 2, 3, 4, 5, 6, 7];
    			var BIG_ENDIAN = [7, 6, 5, 4, 3, 2, 1, 0];

    			function fdset(setSize, endianness, size)
    			{
    				var buffer = new Uint8Array(div(setSize + 7, 8));

    				function div(a, b)
    				{
    					return Math.floor(a / b);
    				}

    				function make_index(index)
    				{
    					return div(index, 8 * size) * size + endianness[div(index % (8 * size), 8)] % size;
    				}

    				buffer.set_bit = function(index)
    				{
    					buffer[make_index(index)] |= 1 << (index % 8);
    				};

    				buffer.clear_bit = function(index)
    				{
    					buffer[make_index(index)] &= ~(index % 8);
    				};

    				buffer.get_bit = function(index)
    				{
    					return buffer[make_index(index)] & 1 << (index % 8);
    				};

    				buffer.zero = function()
    				{
    					buffer.fill(0);
    				}

    				return buffer;
    			}

    			function FD_SET(fd, fdset)
    			{
    				fdset.set_bit(fd);
    			}

    			function FD_ISSET(fd, fdset)
    			{
    				return !!fdset.get_bit(fd);
    			}

    			function FD_CLR(fd, fdset)
    			{
    				return fdset.clear_bit(fd);
    			}

    			function FD_ZERO(fdset)
    			{
    				return fdset.zero();
    			}

            var s = fdset(128, LITTLE_ENDIAN, SIZE_64);

            //s in an Uint8Array

            console.log(s);

            FD_SET(0, s);    //Byte 0 = 1
            FD_SET(9, s);    //Byte 1 = 2
            FD_SET(18, s);   //Byte 2 = 4
            FD_SET(27, s);   //Byte 3 = 8
            FD_SET(36, s);   //Byte 4 = 16
            FD_SET(45, s);   //Byte 5 = 32
            FD_SET(54, s);   //Byte 6 = 64
            FD_SET(63, s);   //Byte 7 = 128

            FD_SET(120, s);  //Byte 15 = 1
            FD_SET(113, s);  //Byte 14 = 2
            FD_SET(106, s);  //Byte 13 = 4
            FD_SET(99, s);   //Byte 12 = 8
            FD_SET(92, s);   //Byte 11 = 16
            FD_SET(85, s);   //Byte 10 = 32
            FD_SET(78, s);   //Byte 9 = 64
            FD_SET(71, s);   //Byte 8 = 128

            console.log(s);

            //64 bits, BE: [128, 64, 32, 16, 8, 4, 2, 1, 1, 2, 4, 8, 16, 32, 64, 128]
            //64 bits, LE: [1, 2, 4, 8, 16, 32, 64, 128, 128, 64, 32, 16, 8, 4, 2, 1]
            //32 bits, BE: [8, 4, 2, 1, 128, 64, 32, 16, 16, 32, 64, 128, 1, 2, 4, 8]
            //32 bits, LE: [1, 2, 4, 8, 16, 32, 64, 128, 128, 64, 32, 16, 8, 4, 2, 1]

Hi @Noitidart,
Sorry for the slow response. I kinda get a lot of Github notifications, and this one was lost in the flood.
This looks pretty good. I would also like to see the Mozilla DevTools gain file watching ability, so it would be great if you could land this capability there. It might mostly work as is, but there are a handful of minor issues.
I think the only issue you need to address is that fd_set is assumed by native code to have a specific size. If you allocate an array smaller than that, and pass it to select as an fd_set, you can segfault the process you're running in.
Unfortunately, the size varies between each Unix. Fortunately, being too large should not be a problem. As far as I can tell, the largest fd_set variant is that used by Linux, which is 1024 bits. This variant is used by almost every Unix, excluding at least NetBSD and Minix (both of which use a smaller size). So if you always make setSize 128 or greater, we can avoid crashing.
Unforunately, there's go guarantee that wordSize is correct in general. From reading the headers, it is correct for x86 Linux and x86_64 Linux. It is probably also correct for Linux on other platforms (like ARM), but I'm not positive. However, it appears that OSX and several of the BSD's always uses 32 bit integers for each entry in fd_set. Fortunately, if this value is wrong, the result only changes on big endian architectures, and most processors are little endian these days.
Besides that, it looks like there might be a bug in the clear_bit function, since it doesn't shift by the index. I think the correct function would be:
buffer.clear_bit = function(index) {
  buffer[make_index(index)] &= ~(1 << (index % 8));
};

If you'd like to point me at a repo to review instead, I'd be happy to take a look at that.

Thanks very much @zentner-kyle - I really appreciate that background and checking. Especially the platform dependent explanation.
The repo is here - https://github.com/Noitidart/jscFileWatcher/
It is meant for use from a ChromeWorker instance, here is live demo usage - https://github.com/Noitidart/CommPlayground/tree/jscfilewatcher-demo
The non-setup code is here - https://github.com/Noitidart/CommPlayground/blob/jscfilewatcher-demo/resources/scripts/MainWorker.js
There is some setup on the mainthread as Gio file watcher is mainthread only. Right now i'm forcing it to use inotify as i'm trying to fix the poll there. I really badly wanted to use select but I'm not sure if we're getting it right. So I'm using poll right now - https://github.com/Noitidart/jscFileWatcher/blob/master/DirectoryWatcherPollWorker.js#L418
For inotify, I'm getting an unexplained EINTR ( https://bugzilla.mozilla.org/show_bug.cgi?id=1288293 ), but everything is almost set. I just have to fix this EINTR issue, and then make the delivery to the callback set up the by the developer in a common way across all platforms. Right now you will see it successfully trigger callback on all Windows, OSX (10.7), GTK (if inotify is not forced) systems.
I really appreciate your input!


Documentation Grammar Errors

As I read through the documentation of this GUI framework for plugins I found some grammatical errors and I think that it would be better if I would list them here in this issue.
I don't want to hurt anyone with this issue.
If you don't like to read a lot of text, you can just skip everything and go to Simpler Form where everything is also in table form.
Text
Setup

In the sentence In order to include the framework in your project, you need to add the following to your pom.xml, in the plugins section. there is unfortunately a single comma to much: In order to include the framework in your project, you need to add the following to your pom.xml in the plugins section.
The second sentence ( Replace [YOUR PACKAGE]with your plugin's package, for example me.myplugin.plugin.) should be separated and there needs to be a comma after the example word: Replace [YOUR PACKAGE]with your plugin's package. For example, me.myplugin.plugin.

Paginated GUI

In "Paginated GUI" I would replace Simple GUI that allows you to have multiple pages and navigate between them with A simple GUI that allows you to have multiple pages and navigate between them.
To have a better flow of information I would use instead of The page size, is how big the page should be, in the example above it's 45 slots dedicated for the page, if nothing is set the lib will calculate the page size when opening. a version that is split into multiple sentences: The page size is how big the page should be. In the example above, there are 45 slots dedicated to the page. If nothing is set, the lib will calculate the page size when opening.
In the first sentence of the Creating the navigation section only a comma is missing and so I would change To create the navigation items we can simply do: into To create the navigation items, we can simply do:.
I would just use It is recommended instead of Recommended as a start of a sentence.
In the first sentence of the Populating the page section only a comma is missing and so I would change To add items to the page once again we use the PaginatedGui#addItem which takes a GuiItem.  into To add items to the page once again, we use the PaginatedGui#addItem, which takes a GuiItem.
And as a more stylistic approach I would just use instead of Items added with PaginatedGui#setItem will not be counted towards the page but as static GUI items. this: Items added with PaginatedGui#setItem will be treated as static GUI items rather than page items.

Scrolling GUI

In "Scrolling GUI" I would replace Simple GUI that allows you to scroll on a Paginated GUI instead of going page by page. with A simple GUI that allows you to scroll on a Paginated GUI instead of going page by page.
The first sentence is somehow missing: To create a Scrolling G and I would just use To create a Scrolling GUI, all you need to do is:
In the codeblockScrollingGui gui = Gui.scrolling()
        .title(Component.text("GUI Title!"))
        .rows(6)
        .pageSize(45)
        .scrollType(ScrollType.HORIZONTAL) // Not needed, defauilts to VERTICAL.
        .create();

the word defaults has an i that is not needed:ScrollingGui gui = Gui.scrolling()
        .title(Component.text("GUI Title!"))
        .rows(6)
        .pageSize(45)
        .scrollType(ScrollType.HORIZONTAL) // Not needed, defaults to VERTICAL.
        .create();

Instead of Just like the normal GUI the first parameter is the rows the GUI should have. I would use Just like the normal GUI, the first parameter is the number of rows the GUI should have
And the sentence Like the Paginated GUI the second parameter is to specify the page size, as in how big the page should be, in the example above it's 45 slots dedicated for the page. I would split and reword the second part, as I don't think you meant It is 45 slots, into Like in the Paginated GUI, the second parameter is to specify the page size, as in how big the page should be. In the example above, there are 45 slots dedicated to the page.

Storage GUI

In "Storage GUI" I would replace GUI that does not clear it's items on close/open, any external non GuiItem added to it will stay. (it does not persist on server restart) with Any GUI that does not clear its items on open or close will have any external non-GuideItem added to it stay (it does not persist when the server is restarted).
I would change To create a persistent GUI all you need to do is: into To create a persistent GUI, all you need to do is:.
Instead of Just like the normal GUI the first parameter is the rows the GUI should have. I would use Just like the normal GUI, the first parameter is the number of rows the GUI should have
Instead of Differently to the normal GUI, the addItem method takes an ItemStack instead. I would use the words In contrast as it makes the sentence more lively and shows the difference: In contrast to the normal GUI, the addItem method takes an ItemStack instead.
The sentence Any GuiItem added will have actions applied to it, the persistent items are simple ItemStacks that have nothing associated to it. should be separated and to it is singular and it should be plural Any GuiItem added will have actions applied to it. The persistent items are simple ItemStacks that have nothing associated with them.

GUI features

In "GUI Features" I would replace After the basics of a GUI there is a lot more useful features you can use. with After learning the basics of a GUI, there are a lot more useful features you can use.
To show the difference to the reader I would change The GUI filler allows you to fill in the GUI in many ways, for example, completely filling or filling the bottom or top of the GUI. to The GUI filler allows you to fill in the GUI in many ways, for example, completely filling or just filling the bottom or top of the GUI.
The sentence Setting you fill item will fill the slots in your GUI that doesn't contain a GUI item. should be Setting the item will fill the slots in your GUI that don't contain a GUI item.
In the sentence Just like any other item these items can also have a click action, but they'll be the same for all the slots it is filled. there is just a comma and the it is filled: Just like any other item, these items can also have a click action, but they'll be the same for all the slots they fill.
After the for example there should be a comma and so For example if you call event.setCancelled(true)  should be changed into For example, if you call event.setCancelled(true) .
The ever in This will display the action you set when ever the GUI is closed. is not needed in this context: This will display the action you set when the GUI is closed.
The ever in This will display the action you set when ever the GUI is open . is also not needed in this context and there is a space too much: This will display the action you set when the GUI is open.
The sentence If you want to add a click action to a specif slot without needing to have to specify the item in the slot, you can simple use the setSlotAction. should be rewritten into If you want to add a click action to a specific slot without needing to specify the item in the slot, you can simply use setSlotAction.
I would change The update method will update the entire GUI except the title, due to how inventories work. into Due to how inventories work, the update method will update the entire GUI except the title.
After the for example in This is the preferable way of making updates in your GUI, for example an item that keeps refreshing, etc. there should be a comma: This is the preferable way of making updates in your GUI, for example, an item that keeps refreshing, etc.

Simpler form
As I know that this format is a little bit harder to read, I am here adding a simpler way of accessing this information in the form of a table:
Setup

Original String
New String

In order to include the framework in your project, you need to add the following to your pom.xml, in the plugins section.
In order to include the framework in your project, you need to add the following to your pom.xml in the plugins section.

Replace [YOUR PACKAGE]with your plugin's package, for example me.myplugin.plugin.
Replace [YOUR PACKAGE]with your plugin's package. For example, me.myplugin.plugin.

Paginated GUI

Original String
New String

Simple GUI that allows you to have multiple pages and navigate between them.
A simple GUI that allows you to have multiple pages and navigate between them.

The page size, is how big the page should be, in the example above it's 45 slots dedicated for the page, if nothing is set the lib will calculate the page size when opening.
The page size is how big the page should be. In the example above, there are 45 slots dedicated to the page. If nothing is set, the lib will calculate the page size when opening.

To create the navigation items we can simply do:
To create the navigation items, we can simply do:

Recommended
It is recommended

To add items to the page once again we use the PaginatedGui#addItem which takes a GuiItem.
To add items to the page once again, we use the PaginatedGui#addItem, which takes a GuiItem.

Items added with PaginatedGui#setItem will not be counted towards the page but as static GUI items.
Items added with PaginatedGui#setItem will be treated as static GUI items rather than page items.

Scrolling GUI

Original String
New String

Simple GUI that allows you to scroll on a Paginated GUI instead of going page by page.

A simple GUI that allows you to scroll on a Paginated GUI instead of going page by page.

To create a Scrolling G

To create a Scrolling GUI, all you need to do is:

ScrollingGui gui = Gui.scrolling()
        .title(Component.text("GUI Title!"))
        .rows(6)
        .pageSize(45)
        .scrollType(ScrollType.HORIZONTAL) // Not needed, defauilts to VERTICAL.
        .create();

 ScrollingGui gui = Gui.scrolling()
         .title(Component.text("GUI Title!"))
         .rows(6)
         .pageSize(45)
         .scrollType(ScrollType.HORIZONTAL) // Not needed, defaults to VERTICAL.
         .create();

Just like the normal GUI the first parameter is the rows the GUI should have.

Just like the normal GUI, the first parameter is the number of rows the GUI should have

Like the Paginated GUI the second parameter is to specify the page size, as in how big the page should be, in the example above it's 45 slots dedicated for the page.

Like in the Paginated GUI, the second parameter is to specify the page size, as in how big the page should be. In the example above, there are 45 slots dedicated to the page.

Storage GUI

Original String
New String

GUI that does not clear it's items on close/open, any external non GuiItem added to it will stay. (it does not persist on server restart)
Any GUI that does not clear its items on open or close will have any external non-GuideItem added to it stay (it does not persist when the server is restarted)

To create a persistent GUI all you need to do is:
To create a persistent GUI, all you need to do is:

Differently to the normal GUI, the addItem method takes an ItemStack instead.
In contrast to the normal GUI, the addItem method takes an ItemStack instead

Any GuiItem added will have actions applied to it, the persistent items are simple ItemStacks that have nothing associated to it.
Any GuiItem added will have actions applied to it. The persistent items are simple ItemStacks that have nothing associated with them.

GUI Features

Original String
New String

After the basics of a GUI there is a lot more useful features you can use.
After learning the basics of a GUI, there are a lot more useful features you can use.

The GUI filler allows you to fill in the GUI in many ways, for example, completely filling or filling the bottom or top of the GUI.
The GUI filler allows you to fill in the GUI in many ways, for example, completely filling or just filling the bottom or top of the GUI.

Just like any other item these items can also have a click action, but they'll be the same for all the slots it is filled.
Just like any other item, these items can also have a click action, but they'll be the same for all the slots they fill.

For example if you call event.setCancelled(true)
For example, if you call event.setCancelled(true)

This will display the action you set when ever the GUI is closed.
This will display the action you set when the GUI is closed.

This will display the action you set when ever the GUI is open .
This will display the action you set when the GUI is open.

If you want to add a click action to a specif slot without needing to have to specify the item in the slot, you can simple use the setSlotAction.
If you want to add a click action to a specific slot without needing to specify the item in the slot, you can simply use setSlotAction.

The update method will update the entire GUI except the title, due to how inventories work.
Due to how inventories work, the update method will update the entire GUI except the title.

This is the preferable way of making updates in your GUI, for example an item that keeps refreshing, etc.
This is the preferable way of making updates in your GUI, for example, an item that keeps refreshing, etc.

Wow! This is amazing, I am working in migrating the documentation to a new platform and I'll definitely include all this when I transfer. Thank you so much, it's very detailed and I really appreciate it!


Simplify use with transparent constructor

It would be awesome if we could simply var debug = require('logdown')({prefix: 'foo}); instead of having to call new on Logdown. I think browser-people used to use jQuery would also prefer Logdown({prefix: 'foo'});.

I thought about it at first, but for me that way of instantiating objects is not explicit enough about what is happening.
And with ES6, new is becoming the default way of creating new objects again.
About jQuery, you can use it with or without new.
jQuery just protects you in case you forget t use new.
BTW, im using the same approach, as you can see here
You can use Logdown without the new operator, it will behave the same way.
But i don't recommend that pattern.

And require('logdown)({prefix: 'foo'}) works, also.

Thanks for the explanation :smile:

Always here to help =)


Select multiple tracks / execute action on multiple tracks

I'd like to be able to select multiple tracks and then execute the same action (if appropriate) on all those tracks.
For example:
Press 'v' to select a track.
Press 'v' to select another track.
Press 'v' again multiple times to select more tracks.
Press 'g a' for ShowActionsOnSelectedItem
Select "AddToQueue" -> all selected tracks are added to the queue

I've thought about implementing multi-selection before. One of my use cases is to start playback from the selected tracks so that it can be treated as a mini-playlist.
That said, I decided not to mainly because it may(?) complicate the current program structure. Regarding your use case, isn't it better to just implement https://github.com/aome510/spotify-player/issues/125 and execute that shortcut on the focused track multiple times?

No problem, that would cover most cases I guess.


[Feature Request] Enable separating concerns of file/folder naming and test suite names in output.xml

File/Folder Names vs. Test Suite Names
When it comes to organizing big test suites on the hand you have to deal with naming of folders and files on your file-system on the other hand this directly impacts the look of RF's output results (log.html and report.html). See examples below

It would be great if one would have more control about separating this concerns. I can think of at least three options:
Option 1
When you use folders (and sub-folders) to organize your tests the log and report can become a bit hard to read (see screenshot below). Thus it would be handy to define test suite names via settings table of the test suite file - like this:
*** Settings ***
Name        What Ever Name You Want

Option 2
Of course if you have 100 test suites (files) in a folder it could become tedious to set suite names that way. In that case it should be possible to do it in a __init__.robot file. But this would require to set the names dynamically, e.g. by taking only a substring of related filename(?) or any other approach.  Examples:
*** Settings ***
Name          ${no path}         # omitting relative path
Name          fetch from right ${*)}
Name          other ideas?

Option 3
Alternatively I could think of a cli option like --log-no-path or --report-short-suite-name to omit the relative path of deepest test suite from log/report (green part in screenshot above).

First of all, it would be easy to clean up the suite names already now:

Don't run that robot folder but instead run contribution tests directly.
Rename contribution tests to something shorter or use --name option to rename it.

That said, being able to use Name setting to set a custom name to a suite would have its benefits. Most importantly it would allow using characters that cannot be used in  filesystem paths. If anything more complicated would be needed, it's possible to use pre-run modifier.

@pekkaklarck  applied your suggestions :+1:

Apparently you got it working well? If you still think Name setting to override suite name would be useful, please submit a separate issue covering only that (i.e. Option 1 in your original description).


Add map union and max plots

Union map plots across environments
Take a max across environments for distributions

LGTM


Partial Page Load - ApplicationCustomizer not loading

Category

[ ] Question
[ ] Typo
[x] Bug
[ ] Additional article idea

Expected or Desired Behavior
When navigating between Classic & Modern Pages I expect the ApplicationCustomizers to be loaded - meaning its onInit() to be called
Observed Behavior
onInit is not being called, therefore neither this.context.placeholderProvider.changedEvent nor this.context.application.navigatedEvent are working.
Steps to Reproduce
Steps to reproduce:

Deploy an extension to a site.
Navigate to task list or any classic page.
Navigate back to any list or library (with modern page) via Side Navigation which does a partial load (for example _layouts/15/viewlsts.aspx is always a full load and the issue cannot be reproduced - but a ListView like any AllItems.aspx is a partial load)
The extension won't load.

Also described here (Isuses already closed):
https://github.com/SharePoint/sp-dev-docs/issues/1042#issuecomment-497196583
https://github.com/SharePoint/sp-dev-docs/issues/1971#issuecomment-520399952

as a workaround I am doing the following in a classic jslink, so that issue does not arise:
$("a[onepagenavigationaction='1']").removeAttr("onepagenavigationaction");


Menu bar color is white while environment is dark

Type: Bug
I just opened VS Code on Monday and realized that menu bar is white, while whole system and VS Code are dark. I tried to apply styles manually in settings.json (https://code.visualstudio.com/api/references/theme-color#menu-bar-colors), but it simply does not affect anything. This can be related to my OS, because I am on Ubuntu 22.04.3 LTS, but I use canonical Ambience color theme from previous versions.

 It looks like you may be using an old version of VS Code, the latest stable release is 1.82.1. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

The colors of the native header bar and native menu are controlled by the operating system.
There are tools that allow you to customize this. Search for Gnome tweaks.
Alternative you could switch VS Code to use the custom title bar: See window.menuBarVisibility

@aeschli problem did not exist before updating VS Code, so that was changes in VS Code release that affected menu bar background color.
Also, window.menuBarVisibility does not adjust background color of menu bar, it only changes the visibility.

@aeschli how can I re-open the issue, as it was not solved, you simply suggested non-related to problem things.
Gnome tweak also not an option, as other colors are absolutely fine, only this ugly menu bar in VS Code.

Sorry I meant "window.titleBarStyle": If you choose native (the default) the window bar and menu bar are rendered by the OS.
I tried various, random older versions of VS Code (1.73, 1.78, 1.81, 1.82), the menu bar always looks the same. I'm testing on Ubuntu 22.04, Gnome 42.9

Thanks for pointing me out to window.titleBarStyle setting. I had native before and that caused an issue for me. I don't know why, maybe Gnome settings changed some coloring patterns for me. But switching to custom allowed me to make it dark again :+1:


Allow downstream projects to catch up with upstream releases

Knative currently releases on a 6 week release cadence. That's awesome for getting features out quickly, but it makes it hard for downstream projects, that might be on a slower release cadence, to keep track of upstream. We're facing that in Openshift Serverless currently. Kubeflow has fallen behind quite a bit in releases too.
Should we make it possible for such downstream projects to be able to "catch up" with the upstream project? I think so. Others do too :slightly_smiling_face:.
We had an initial discussion about this in Slack, which I'll try to summarize here.

(from @rhuss): If we widened our upgrade policy from N-1 -> N to N-2 -> N, we'd allow downstream releases to catch up rather than continuously falling behind.
(from @mattmoor, @markusthoemmes, @vaikas): To allow the operator to orchestrate an upgrade through several versions, we need a good signal that an upgrade is actually done. Our reconcilers implicitly do a lot of the upgrade logic today in that they gracefully handle new fields and default them actively for example. That work would need to be "watchable" (i.e. by being externalized into a job) so that the operator knows when version Y has been upgraded successfully, so it can move on to Z. That'd allow an upgrade through an arbitrary number of versions.

/remove-lifecycle stale
Just out of curiosity, is there any work planned for this feature ? Or is it not a thing anymore ?

The Operations WG has a planned feature to support orchestrated upgrades across minor versions in https://github.com/knative/operator/issues/744

/remove-lifecycle stale

Since #744 was closed, close this feature as well.
Orchestration of the upgrade is implemented in the kn-plugin-operator.


Added Readme

Hey,
@smv1999 I have added readme in array domain please look it and also if their any mistake then please tell me or solve by yourself
thanks ..
issue no: #66 resolve
Happy Coding

please review this

please review it @smv1999  if there is any mistake so please tell me


Jquery minus minus

Removed jQuery dependency and moved to modern vanilla APIs and features. Should fix #27

@PavelVanecek Great job on this PR. Thank you. Unfortunately, I have no time to maintain it for multiple reasons and the first one is: I don't use bitbucket for my current job. I can merge what you did but if you are agree you can become the main maintainer of this project?
Or at least the one who commit for FF version ?

@dragouf sure, I am using bitbucket actively and I can maintain. Can you still publish to stores or can you pass that too?

I can let you maintains stores version. No problem. I don’t know if there is an option to transfer it to another maintainer but in case you can create your own version of the package and I can specify on mine that it’s an old version.


[PIO-105] Batch Predictions

JIRA issue PIO-105
Provides a new pio batchpredict command using the same core logic & APIs as pio deploy. The only intentional difference between batchpredict and deploy is that the new batchpredict processes all queries via RDD#map.
As a result, a new engine constraint is added only for batchpredict:
All algorithm classes must be serializable.
Reads from multi-object JSON input file. Example:
{"user":"1"}
{"user":"2"}
{"user":"3"}
{"user":"4"}
{"user":"5"}

Writes to multi-object JSON output file (actually Hadoop partition files). Example:
{"query":{"user":"1"},"prediction":{"itemScores":[{"item":"1","score":33},{"item":"2","score":32}]}}
{"query":{"user":"2"},"prediction":{"itemScores":[{"item":"5","score":55},{"item":"3","score":28}]}}
{"query":{"user":"3"},"prediction":{"itemScores":[{"item":"2","score":16},{"item":"3","score":12}]}}
{"query":{"user":"4"},"prediction":{"itemScores":[{"item":"3","score":19},{"item":"1","score":18}]}}
{"query":{"user":"5"},"prediction":{"itemScores":[{"item":"1","score":24},{"item":"4","score":14}]}}

See the included console usage help
Thanks to @dszeto for architectural guidance and debugging assistance.

@takezoe thank you for the feedback. As a relatively-new Scala programmer I really appreciate this kind of review.
I am a bit hesitant to make these changes. I'm trying to maintain likeness with the CreateServer.scala code, to minimize differences in prediction behavior between pio deploy and pio batchpredict. Any of these stylistic points should probably be matched in CreateServer, so that it continues to be easy to reason about their similarity.

@mars These changes should work as same as original code completely, but difference of code appearance might cause confusion. So these kind of changes might have to be done at once (in an another pull request).
I think it's a reasonable decision that even if you don't apply these changes in this pull request. 👍

LGTM. Great work @mars !
Agree with @takezoe 's comments. I think there are a few follow up tasks we should do.

Refactor common code that exists in both CreateServer and BatchPredict.
Brush up Scala coding style as pointed out by @takezoe .
Document the new feature in the doc site.

Created https://issues.apache.org/jira/browse/PIO-110 and https://issues.apache.org/jira/browse/PIO-111 as follow-ups. Thanks @mars for the feature and @takezoe for the feedback!


[Region Refactoring] Move region data into its own struct

GDI+ internally actually stores regions as the following:
typedef enum {
    NodeTypeAnd = CombineModeIntersect,
    NodeTypeOr = CombineModeUnion,
    NodeTypeXor = CombineModeXor,
    NodeTypeExclude = CombineModeExclude,
    NodeTypeComplement = CombineModeComplement,
    NodeTypeRect = 0x10000000,
    NodeTypePath = 0x10000001,
    NodeTypeEmpty = 0x10000002,
    NodeTypeInfinite = 0x10000003,
    NodeTypeNotValid = 0xFFFFFFFF,
} RegionDataNodeType;

typedef struct {
    RegionDataNodeType type;

    union {
        GpRectF rect;
        struct {
            GpPath *path;
            BOOL lazy;
        };
        struct {
            int leftIndex;
            int rightIndex;
        };
    };
} RegionData;

struct GpRegion
{
    RegionData mainNode;
    RegionData *combineNodes;
    void *regionDataLazilyCreated;
}

Essentially, as a performance optimisation and for ease of implementation GDI+ actually doesn't perform any CombineMode operations when calling things like GdipCombineRegionRect/Path/Region. It just modifies the current mainNode to be a combine operation between two functions.
We need/should to copy GDI+ for several reasons

We do not have any compatibility between GDI+ and libgdiplus is important in GdipCreateRegionRgnData and GdipGetRegionData[Size].
If/when we start reading EmfPlus metafiles, regions are in a binary format matching the manner described above. So we need to be able to a) serialize regions to something GDI+ understands and b) read regions created by GDI+ (which we currently cannot do)
GDI+ and libgdiplus differ in their understanding of empty/infinite regions after performing combination functions and aligning their behaviours is one way to improve compat
Currently everytime we perform a combine function we actually execute the region steps. Instead, we should be "on demand" as GDI+ is, for perf reasons. Also, GDI+ is a lot more performant that libgdiplus in that it avoids creating a bitmap of the size of the region

This PR does not actually make any headway towards these aims but is a necessary step along the way, because I will be refactoring the code to lazily create rects or tree/path. Therefore, storing all of the data in a structure called a RegionCachedData is a good thing for now. The PR just avoids horrible diffs in the future
This will not only align us more with GDI+, but it will improve our performance AND actually improve the accuracy of our functions as we will hopefully be getting rid of the horrible bitmap stuff.
Let me know if I'm not making sense!

Closing, as libgdiplus is deprecated


Integration with ImageSharp

Hi Team,
I have setup ImageSharp.Web to resize image on project Simplcommerce but it did not working, I have been try create another project and it working fine and I don't know why it not working on Simplcommerce please help me resolve this issue
Link setup:
https://github.com/SixLabors/ImageSharp.Web
and configuration on Simplcommerce
Startup.cs file in SimplCommerce.WebHost
 services.AddImageSharpCore()                 .SetRequestParser<QueryCollectionRequestParser>()                 .SetMemoryAllocatorFromMiddlewareOptions()                 .SetCache(provider => new PhysicalFileSystemCache(                     provider.GetRequiredService<IHostingEnvironment>(),                     provider.GetRequiredService<MemoryAllocator>(),                     provider.GetRequiredService<Microsoft.Extensions.Options.IOptions<ImageSharpMiddlewareOptions>>())                 {                     Settings =                     {                         [PhysicalFileSystemCache.Folder] = PhysicalFileSystemCache.DefaultCacheFolder                     }                 })                 .SetCacheHash<CacheHash>()                 .AddProvider<PhysicalFileSystemProvider>()                 .AddProcessor<ResizeWebProcessor>()                 .AddProcessor<FormatWebProcessor>()                 .AddProcessor<BackgroundColorWebProcessor>();
and Configure function
 app.UseDefaultFiles();   app.UseImageSharp();   app.UseStaticFiles();
Thank you so much!

You have to add  app.UseImageSharp() before app.UseCustomizedStaticFiles(env); (line 108) in the Startup.cs

It's worked already
Thank you so much


[Bug]: internvl2 multi-prompt input with one image each get RuntimeError

Your current environment

The output of `python collect_env.py`
Collecting environment information...
PyTorch version: 2.4.0
Is debug build: False
CUDA used to build PyTorch: 12.4
ROCM used to build PyTorch: N/A

OS: Alibaba Group Enterprise Linux Server 7.2 (Paladin) (x86_64)
GCC version: (GCC) 10.2.1 20200825 (Alibaba 10.2.1-3 2.17)
Clang version: Could not collect
CMake version: version 3.22.1
Libc version: glibc-2.32

Python version: 3.10.13 (main, Sep 11 2023, 13:44:35) [GCC 11.2.0] (64-bit runtime)
Python platform: Linux-5.10.112-005.ali5000.al8.x86_64-x86_64-with-glibc2.32
Is CUDA available: True
CUDA runtime version: 12.4.99
CUDA_MODULE_LOADING set to: LAZY
GPU models and configuration: GPU 0: NVIDIA L20
Nvidia driver version: 535.161.08
cuDNN version: Probably one of the following:
/usr/lib64/libcudnn.so.9.0.0
/usr/lib64/libcudnn_adv.so.9.0.0
/usr/lib64/libcudnn_cnn.so.9.0.0
/usr/lib64/libcudnn_engines_precompiled.so.9.0.0
/usr/lib64/libcudnn_engines_runtime_compiled.so.9.0.0
/usr/lib64/libcudnn_graph.so.9.0.0
/usr/lib64/libcudnn_heuristic.so.9.0.0
/usr/lib64/libcudnn_ops.so.9.0.0
HIP runtime version: N/A
MIOpen runtime version: N/A
Is XNNPACK available: True

CPU:
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                128
On-line CPU(s) list:   8-15,72-78
Off-line CPU(s) list:  0-7,16-71,79-127
Thread(s) per core:    0
Core(s) per socket:    32
Socket(s):             2
NUMA node(s):          2
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 143
Model name:            Intel(R) Xeon(R) Gold 6462C
Stepping:              8
CPU MHz:               3899.765
CPU max MHz:           3900.0000
CPU min MHz:           800.0000
BogoMIPS:              6600.00
Virtualization:        VT-x
L1d cache:             48K
L1i cache:             32K
L2 cache:              2048K
L3 cache:              61440K
NUMA node0 CPU(s):     0-31,64-95
NUMA node1 CPU(s):     32-63,96-127
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 cat_l2 cdp_l3 invpcid_single intel_ppin cdp_l2 ssbd mba ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb intel_pt avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local split_lock_detect avx_vnni avx512_bf16 wbnoinvd dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp hwp_pkg_req avx512vbmi umip pku ospke waitpkg avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg tme avx512_vpopcntdq rdpid bus_lock_detect cldemote movdiri movdir64b enqcmd fsrm uintr md_clear serialize tsxldtrk pconfig arch_lbr amx_bf16 avx512_fp16 amx_tile amx_int8 flush_l1d arch_capabilities

Versions of relevant libraries:
[pip3] numpy==1.26.4
[pip3] nvidia-ml-py==12.560.30
[pip3] nvidia-ml-py3==7.352.0
[pip3] pynvml==11.5.0
[pip3] pyzmq==26.2.0
[pip3] torch==2.4.0
[pip3] torchaudio==2.4.0a0+69d4077
[pip3] torchmetrics==1.4.1
[pip3] torchvision==0.19.0
[pip3] transformers==4.44.2
[pip3] triton==3.0.0
[conda] Could not collect
ROCM Version: Could not collect
Neuron SDK Version: N/A
vLLM Version: 0.6.0@32e7db25365415841ebc7c4215851743fbb1bad1
vLLM Build Flags:
CUDA Archs: Not Set; ROCm: Disabled; Neuron: Disabled
GPU Topology:
GPU0	CPU Affinity	NUMA Affinity	GPU NUMA ID
GPU0	 X 	8-15,72-78	0		N/A

Legend:

  X    = Self
  SYS  = Connection traversing PCIe as well as the SMP interconnect between NUMA nodes (e.g., QPI/UPI)
  NODE = Connection traversing PCIe as well as the interconnect between PCIe Host Bridges within a NUMA node
  PHB  = Connection traversing PCIe as well as a PCIe Host Bridge (typically the CPU)
  PXB  = Connection traversing multiple PCIe bridges (without traversing the PCIe Host Bridge)
  PIX  = Connection traversing at most a single PCIe bridge
  NV#  = Connection traversing a bonded set of # NVLinks

🐛 Describe the bug
I init the mode with
from vllm import LLM, SamplingParams

load_dir=""OpenGVLab/InternVL2-8B""
llm = LLM(
    model=load_dir,
    trust_remote_code=True,
    max_num_seqs=5,
    max_model_len=8192,
)

tokenizer = AutoTokenizer.from_pretrained(load_dir, trust_remote_code=True)

stop_tokens = ["<|endoftext|>", "<|im_start|>", "<|im_end|>", "<|end|>"]
stop_token_ids = [tokenizer.convert_tokens_to_ids(i) for i in stop_tokens]

sampling_params = SamplingParams(temperature=0.2,
                                 max_tokens=8192,
                                 top_p=0.5,
                                 repetition_penalty=1.0,
                                 stop_token_ids=stop_token_ids)

I run the inference with
llm.generate(prompt, sampling_params=sampling_params)

and the prompt is as below
[{'multi_modal_data': {'image': <PIL.Image.Image image mode=RGB size=800x800 at 0x7FE280267490>}, 'prompt': '<s><|im_start|>user\n{prompt_text}<image><|im_end|>\n<|im_start|>assistant\n'}, {'multi_modal_data': {'image': <PIL.Image.Image image mode=RGB size=500x500 at 0x7FE280267430>}, 'prompt': '<s><|im_start|>user\n{prompt_text}<image><|im_end|>\n<|im_start|>assistant\n'}, {'multi_modal_data': {'image': <PIL.Image.Image image mode=RGB size=800x800 at 0x7FE2982D40A0>}, 'prompt': '<s><|im_start|>user\n{prompt_text}<image><|im_end|>\n<|im_start|>assistant\n'}]

where the {prompt_text} is some text.
And I meet the

Before submitting a new issue...

[X] Make sure you already searched for relevant issues, and asked the chatbot living at the bottom right corner of the documentation page, which can answer lots of frequently asked questions.

Does the problem occur when you only pass in one image at a time?

Does the problem occur when you only pass in one prompt at a time?

@DarkLight1337
I have tested it, and it works correctly this way.


pkg/ansible; Add watching of dependent resources

Description of the change:
Adding support for the Ansible Operator to keep track of resources that are created by adding them for the controller to watch if we have already created a controller object for the specific GVK.
Motivation for the change:
Performance Enhancement.

/retest

Travis seems to have a transient error unrelated to my PR

/retest

Travis failure seems to be a transient networking problem


Improve edge_weigths description in GINConv

Is the edge_weigths are a way to do GINE ? this is not clear in the arg definition:             edge_weights: Edge weights leveraged in message passing. Default: None
Normally, we need to do first a linear projection of edge_features into node_features for GINE code (https://github.com/akensert/molgraph/blob/main/molgraph/layers/convolutional/gin_conv.py or https://github.com/aimat-lab/gcnn_keras/blob/master/kgcnn/literature/GIN/_model.py)

So basically, the edge_weights arg can be passed to any MessagePassing layer. They will just weigh the features from neighbors in the message function. edge_weights is supposed to store scalar elements for each edge, so it has a shape (E, ) or (E, 1).
Edge features are thus not implemented yet in GIN. To integrate GINE, we may want to create a dedicated GINE layer that applies the projection on the edge features beforehand.

Generally this is the second option that makes more sense cause it's just an extension of the GIN.

Would you like to work on this issue @thegodone?

I will but not this week
Le jeu. 7 mars 2024 à 21:30, Tristan Bilot @.***> a
écrit :

Would you like to work on this issue @thegodone
https://github.com/thegodone?
—
Reply to this email directly, view it on GitHub
https://github.com/mlx-graphs/mlx-graphs/issues/141#issuecomment-1984371508,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJBWYTFKRTFSE6RCCZNAZTYXDE7JAVCNFSM6AAAAABEISS5J2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOBUGM3TCNJQHA
.
You are receiving this because you were mentioned.Message ID:
@.***>


Add other values of the target attribute

"_self" "_parent" "_top" _"targetframe"

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

This looks good to me.  Thank you for your contribution!

@barrettfett Well done!


Alignment is not proper

Describe the Bug 🐛
In the birds, pokemon, and dogs page the padding and spacing of those items are not correct.
I would like to work on this issue under JWOC.
can you please assign me this.

Okay @Faraaz2633 I am assigning this to you


OpenCost dependency is old

https://github.com/kubecost/kubectl-cost/blob/main/go.mod#L9
I bring this up because 1.108 had a substantial refactor and we probably can't just bump up the version to the latest

Good point! kubectl-cost should only depend on opencost/core, so we'll have to update some imports but we'll likely benefit from a reduced dependency footprint.


Discussion: General todos

Most importantly:
Is there a best way to get the PRs from ogham/exa into this repo?
Pinging the people who opened it?
Pull them locally and open them again up manually?
@syphar I'm mainly asking because your comment in ogham/exa/issues/1139 sounded to me that you had something like that in mind?!

If not possible / wanted I would alternatively create a fork, and start merging open PRs from this into it.

Also: how do we feel about

branch protections? (Very much in favor. At least for master)
discussions (github feature)? (idk. I have seen other projects use it. just a thought.)

branch protections?

Yes! Big fan.

discussions

Having somewhere to communicate would be nice, if nothing better is proposed I think this would be a good solution.

Note/Answer to my own question:

Is there a best way to get the PRs from ogham/exa into this repo? Pinging the people who opened it? Pull them locally and open them again up manually?

I don't know if there is something easier but it is possible to pull a PR from ogham/exa with
git fetch <exa-origin> pull/<pull-id>/head:<new-branch-name>.
The changes can then be reviewed (on the <new-branch-name> branch) and pushed to zetta, keeping the commit history intact.

I created branch protection rules, for now only forbidding force-push & delete.

Getting discussions and/or some other place where we can track what pull requests have been dealt with would be great, this is soon gonna become very hard to manage :confounded:

Getting discussions and/or some other place where we can track what pull requests have been dealt with would be great, this is soon gonna become very hard to manage :confounded:

I'm for anything that you feel you need, though with this example I'm not sure if discussions are the right place.
Personally I was hoping that the effort to merge PRs from the original exa repo would mostly be a one-time effort, which we could track in one issue.
I'm happy to activate any feature if you are feeling that these would help you

@cafkafk Am I right in the assumption that you are planning on merging the PRs in your fork first and then put them all into zetta in one go?
If so: Great idea.
Just so I know and don't start working on anything you are doing already.
Also: I'm creating a collected issue (maybe I'll do a project instead to tick them off easier) right now to track the exa pulls

@cafkafk Am I right in the assumption that you are planning on merging the PRs in your fork first and then put them all into zetta in one go?
If so: Great idea.
Just so I know and don't start working on anything you are doing already.

It's up to you two how you prefer to handle this, but you could also just create a single PR to this repo that merges the others, or even review / test the original PRs, and then just push to master on this repo.

Also: I'm creating a collected issue (maybe I'll do a project instead to tick them off easier) right now to track the exa pulls
On that topic: I would propose to use a project for the catch up.
Makes it easy to track progress and "tag" all of the catch-up related things in one go.
@syphar You'd need to enable them (if there aren't any oppositions) (just for now. probably disable them after we're done. it's just the easiest to tick off who's done what without needing one person to update an issue imo)

Activated.

Am I right in the assumption that you are planning on merging the PRs in your fork first and then put them all into zetta in one go?

Not entirely, I'm expecting these changes to be trivial to pull into zetta, but honestly I'm not as sure of it just being a temporary fork. exa seems very dead to me, and I also am considering some changes that might diverge too drastically (e.g. I am not so sure about using vagrant for testing).
However, first I'm just focusing on getting the exa PRs working.

Activated.

Thank you very much.
I don't understand what permissions github wants but sadly I cannot create a new project in this repo.
But I don't want to cause any more work on your side so I'm just making an issue.

Not entirely, I'm expecting these changes to be trivial to pull into zetta, but honestly I'm not as sure of it just being a temporary fork.

Agreed.
I trust your judgement with the pulls and hope the stuff coming straight from exa which has already been merged in your forked can go into zetta via a combined pull.

I'd really love to see efforts combined so to clarify: Are the (potential) goals of zetta and cafkafk/eza currently actually incompatible and thus need to be seperate projects?

we all agree that the first step is to get the open exa pulls merged
(the repo at that commit would still be compatible enough with exa to merge back if ever wanted)
after that: the project can continue, potentially diverging from exa (or do you disagree @syphar?)

I really don't care about the amount of projects existing. Only about whether or not work has to be done twice or whether the only difference is in repo-permissions.

I've just finished my first pass through all the PRs. It's simply more efficient for me to be the owner when I'm iterating this rapidly, and given how syphar seems occupied elsewhere it just makes sense to me to work in my own fork.
I think the only major diverging goal is that zetta identifies as a temporary project, where I want a project that continues exa, but with active maintenance. I'm not as concerned with whether or not ogham ends up being the owner, I'm much more interested in a faster turnaround on PRs.

I've just finished my first pass through all the PRs. It's simply more efficient for me to be the owner when I'm iterating this rapidly, and given how syphar seems occupied elsewhere it just makes sense to me to work in my own fork.

I would be totally fine giving you permissions, but it's of course understandable if you feel more efficient working on your own fork.

I think the only major diverging goal is that zetta identifies as a temporary project, where I want a project that continues exa, but with active maintenance. I'm not as concerned with whether or not ogham ends up being the owner, I'm much more interested in a faster turnaround on PRs.

I'm not sure I see the difference between the two, same as where you saw that this should be a temporary project.
Exa has the bigger user-base and depending on how long it takes to be maintained again it would be a totally valid approach to merge back into exa, if possible.
That being that, when we/I feel we want to take a different direction, this project might diverge.
In any case, I wish you all the best with your idea, in the end, that's open source :)


can't copy multiline password to clipboard.

Summary

Steps To Reproduce

Expected behavior

Environment

OS: [Ubuntu 20.10]
OS version: [5.8.0-44-generic #50-Ubuntu SMP Tue Feb 9 06:29:41 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux]
gopass Version: [gopass 1.12.0-git+HEAD go1.14.7 linux amd64]
Installation method: [gopass repo]

Additional context

We define the password field as the first line of a secret. So, yes. This is not supported.


[SPARK-9118][ML]: Implement IntArrayParam in mllib

Implement IntArrayParam in mllib

Merged build triggered.

Merged build started.

Test build #37667 has started for   PR 7481 at commit d3b1766.

Test build #37667 has finished for   PR 7481 at commit d3b1766.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class IntArrayParam(parent: Params, name: String, doc: String, isValid: Array[Int] => Boolean)

Merged build finished. Test PASSed.

LGTM. Merged into master. Thanks! (It would be better to implement this when we really need it.)

thanks @mengxr


Add tags for releases

Hi there, do you think you could add git tags for the releases? It looks like 30cd59a0c51e24b16135aeb02cb66068d632dbc1 is 7.1.1 and ebb21118e6cad962834ebfcd5b20008504911a24 is 8.0, but it's harder to figure out what code corresponds to which version without tags.
Thanks!

Thanks for the suggestion.

I double-checked and the releases should already all be tagged.
Try cloning https://github.com/jorangreef/sudo-prompt and then running git tag.
You should see all the tags corresponding to each release.

Ah, I see tags are on my machine but they are not made available when cloning...

Fixed, thanks!

Awesome, thank you!


Adding Ark as a file archiver

Since the default plasma desktop already got dolphin-plugins adding ark for archiving would make plasma desktop more complete as well

On one hand, it is not listed in the recommended packages to install by default: https://community.kde.org/Distributions/Packaging_Recommendations
On the other hand, stuff like Elisa or Okular are preinstalled, so... I don't know.
Also, @SuperSandro2000 doesn't like Ark: https://github.com/NixOS/nixpkgs/pull/175738#discussion_r889040370.

If we are aiming to have a desktop environment that does most things that most people will need out of the box, then I'm all for including ark as part of the default set.
Sure, some people don't like it, but being on the "path of least surprise" should trump one person's personal preference.
We essentially have these options:

leave it out and have people add it manually. This could be handled by having a wiki page or similar that describes "things you probably want to add in after enabling KDE".
add it in by default. Some will not use it and others will actively dislike it. And so what? We are not trying to optimize for the smallest possible installation size when talking desktops. Those who don't like it can simply not use it.
add it to the optional packages list which means people who really want to can simply remove it through the "excludedPackages" option.

I'm very much in favour of option 3 though. It will do what most people expect and still allow those die-hards to exclude it.

@nachoslover813260, what's your take on adding it to optionalPackages?

I fully agree on making it optional, in fact I'd personally like to disable dolphin too, so I submitted a PR for that: https://github.com/NixOS/nixpkgs/pull/218994
From what I can tell, making things optional costs next to nothing, while adding to the non-optional package list makes the plasma module less flexible

Super, thanks all!


Skypatrol in release 2.12 not connecting to server

Hello anton, I have installed in my server the traccar version 2.12 and I'm trying to connect a skypatrol TT870+ (plus) gps device but if I see the logger (tracker-server.log) file I cannot see anything coming  to the configured port which in my case is 5023
I was wondering if maybe there is a bug in the skypatrol protocol that is not accepting the data from the device, I have also enabled the bit27 to send the mask, this is another listener data example received:
GPGGA,174204.00,1059.66828,N,06349.46838,W,1,08,0.95,35.3,M,-31.8,M,,*5A
GPRMC,174204.00,A,1059.66828,N,06349.46838,W,0.000,0.0,291015,,,A*40 009F

SkyPatrol is using UDP protocol, but port 5023 is a TCP port (in default Traccar config).

I configured skypatrol device to use TCP protocol how do you know is sending in UDP?

Traccar supports only UDP for SkyPatrol protocol, so you need to configure it to use UDP.

ohhhhh ok ok ok.... how do I configure traccar for udp then? which port should I use?

Default port for SkyPatrol is 5021.

and how do I enable udp for that port in config.cfg ??? using the old configuration file

Depends on how old. This is what you need to add if you are using version 3.0 or higher:
<entry key='skypatrol.port'>5021</entry>

I'm using version 2.12

Then you should have following lines:
    <entry key='skypatrol.enable'>true</entry>
    <entry key='skypatrol.port'>5021</entry>

Anton, I received this already but no position is stored:
392e34373038322c572c312c30372c312e31362c32332e382c4d2c2d33312e382c4d2c2c2a3532204750524d432c3231313532392e30302c392c313035392e36363832362c4e2c30363334392e34353234332c572c302e3030302c302e302c3239313031352c2c2c412a34332030313333

This format is not supported by SkyPatrol decoder, but you can try Enfora protocol. Port 5008 and it's using TCP, so you need to switch device back to TCP.

ok, let's check, one question, is the last skypatrol decoder compatible with the format sent by the device?

No, SkyPatrol supports only binary format, but it should work with Enfora decoder.

yes anton, it worked! regards and thanks