Add an example for converting gltf to inputs.

Hi @lucidrains I added an example of converting gltf2 to your example in the readme.
This is without the sorting strategy.

Let me know what to do with this.

Do you know if the triangles are deduplicated outside meshgpt? They're currently disconnected.

Theres currently a bug where some faces are disconnected. I needed to sleep on it.

You don't need the angles/area/normal's. They are used when embedding the face and automatically calculated using get_derived_face_features function. You only need to provide the vertices (xyz) and faces (indices to vertices array).
 @beartype
    def encode(
        self,
        *,
        vertices:         TensorType['b', 'nv', 3, float],
        faces:            TensorType['b', 'nf', 3, int],
        face_edges:       TensorType['b', 'e', 2, int],
        face_mask:        TensorType['b', 'nf', bool],
        face_edges_mask:  TensorType['b', 'e', bool],
        return_face_coordinates = False
    ):
        """
        einops:
        b - batch
        nf - number of faces
        nv - number of vertices (3)
        c - coordinates (3)
        d - embed dim
        """

        batch, num_vertices, num_coors, device = *vertices.shape, vertices.device
        _, num_faces, _ = faces.shape

        face_without_pad = faces.masked_fill(~rearrange(face_mask, 'b nf -> b nf 1'), 0)

        faces_vertices = repeat(face_without_pad, 'b nf nv -> b nf nv c', c = num_coors)
        vertices = repeat(vertices, 'b nv c -> b nf nv c', nf = num_faces)

        # continuous face coords

        face_coords = vertices.gather(-2, faces_vertices)

        # compute derived features and embed

        derived_features = get_derived_face_features(face_coords)

        discrete_angles = self.discretize_angles(derived_features['angles'])
        angle_embed = self.angle_embed(discrete_angles)

        discrete_area = self.discretize_area(derived_features['area'])
        area_embed = self.area_embed(discrete_area)

        discrete_normal = self.discretize_normals(derived_features['normals'])
        normal_embed = self.normal_embed(discrete_normal)```

Theres currently a bug where some faces are disconnected. I needed to sleep on it.

can confirm sleeping on a problem is the best way to solve them :)

@fire so one suggestion is to modularized this into a GLTFDataset, extending the pytorch Dataset, receiving the folder of 3d shape files and outputting the vertices and faces as a tuple. then it can just be plugged into the trainer here

Do we care about when the artist has modified the normals since that's not geometrically correct?

I'll stop here. Hopefully I'll get more time next weekend.

I removed the normals codes.

What is a pytorch Dataset? I assume its like a binary jsonl? I’ll have to take a look. Then we can investigate translation, rotation and scale of objects.

@lucidrains Let me know if this GLTFDataset is proper?

How do I plug this into the trainer? @lucidrains

@fire if you have a function that turns a .gltf file into the vertices and faces, i can craft a dataset function creator that accepts this function and creates the dataset that you plug into the trainer here

@fire knowing nothing about 3d data, can you confirm that you have a pile of .gltf files to learn on?

https://huggingface.co/datasets/allenai/objaverse-xl here is the pile

@fire is it all .gltf files?

@fire ok, let me switch gears and knock this out for you in the next half hour

example with mock dataset (it should run)
import torch

from meshgpt_pytorch import (
    MeshAutoencoder,
    MeshAutoencoderTrainer,
)

# autoencoder

autoencoder = MeshAutoencoder(
    dim = 512,
    encoder_depth = 6,
    decoder_depth = 6,
    num_discrete_coors = 128
)

# mock dataset

from torch.utils.data import Dataset

class MockDataset(Dataset):
    def __init__(self):
        pass

    def __len__(self):
        return 100

    def __getitem__(self, idx):
        from random import randrange
        return torch.randn(randrange(100, 121), 3), torch.randint(0, 121, (randrange(61, 96), 3))

# autoencoder trainer

trainer = MeshAutoencoderTrainer(
    autoencoder,
    dataset = MockDataset(),
    batch_size = 2,
    grad_accum_every = 2,
    num_train_steps = 3,
    checkpoint_every = 1
)

trainer()

but what i'll also accept (to be built in the next half hour)
MeshAutoencoderTrainer(
   folder = '/path/to/3d-shapes',
   file_to_3d_transforms = dict(
       gltf = gltf_to_3d_fn,
       glb = gltf_to_3d_fn,
       ...
   )
)

Question, the arrays are sorted per primitive, because I got stuck on merging the sub meshes index wise. I think it’ll be fine for the auto encoder though. The shape is different and not flattened because I wasn’t able to round trip it. Let me know if this is a problem

all i really know is the residual VQ + attention portions. that's all i can claim to be an expert on

ok try the latest version
just showing a mock function as an example
from meshgpt_pytorch import DatasetFromTransforms

dataset = DatasetFromTransforms(
    folder = './folder_with_gltf_files',
    transforms = dict(
        gltf = lambda t: (torch.randn(100, 3), torch.randint(0, 3, (60, 3)))
    )
)

trainer = MeshAutoencoderTrainer(
    autoencoder,
    dataset = dataset,
    batch_size = 2,
    grad_accum_every = 2,
    num_train_steps = 3,
    checkpoint_every = 1
)

I think my arrays is in [[p0, p1, p2],…]] and  [[f0, f1, f2], […]] form. So we might need another for loop

from mesh_pytorch import DatasetFromTransforms

dataset = DatasetFromTransforms(
    folder = './your/folder/with/3d/assets',
    transforms = dict(gltf = your_function)
)

I currently do:
dataset = GLTFDataset("unit_test")
mesh_00 = dataset.__getitem__(0)
print(mesh_00)

([(2.625437021255493, -1.0, 1.0), (2.625437021255493, -1.0, 1.0), (2.625437021255493, -1.0, 1.0), (2.625437021255493, 1.0, 1.0), (2.625437021255493, 1.0, 1.0), (2.625437021255493, 1.0, 1.0), (2.625437021255493, -1.0, -1.0), (2.625437021255493, -1.0, -1.0), (2.625437021255493, -1.0, -1.0), (2.625437021255493, 1.0, -1.0), (2.625437021255493, 1.0, -1.0), (2.625437021255493, 1.0, -1.0), (4.625437021255493, -1.0, 1.0), (4.625437021255493, -1.0, 1.0), (4.625437021255493, -1.0, 1.0), (4.625437021255493, 1.0, 1.0), (4.625437021255493, 1.0, 1.0), (4.625437021255493, 1.0, 1.0), (4.625437021255493, -1.0, -1.0), (4.625437021255493, -1.0, -1.0), (4.625437021255493, -1.0, -1.0), (4.625437021255493, 1.0, -1.0), (4.625437021255493, 1.0, -1.0), (4.625437021255493, 1.0, -1.0), (-2.0182169257803615, 2.5430066658662263, 0.9467812917345272), (-2.0182169257803615, 2.5430066658662263, 0.9467812917345272), (-2.0182169257803615, 2.5430066658662263, 0.9467812917345272), (-2.2360159615003505, 1.2905272178401987, 1.1773736974601008), (-2.2360159615003505, 1.2905272178401987, 1.1773736974601008), (-2.2360159615003505, 1.2905272178401987, 1.1773736974601008), (-1.7084187659764165, 2.133268964034903, -0.9861284619477502), (-1.7084187659764165, 2.133268964034903, -0.9861284619477502), (-1.7084187659764165, 2.133268964034903, -0.9861284619477502), (-1.9262178016964056, 0.880789516008876, -0.7555360562221767), (-1.9262178016964056, 0.880789516008876, -0.7555360562221767), (-1.9262178016964056, 0.880789516008876, -0.7555360562221767), (-0.0713326858219051, 2.2724621319403426, 1.3161691791431667), (-0.0713326858219051, 2.2724621319403426, 1.3161691791431667), (-0.0713326858219051, 2.2724621319403426, 1.3161691791431667), (-0.28913172154189404, 1.0199826839143156, 1.5467615848687402), (-0.28913172154189404, 1.0199826839143156, 1.5467615848687402), (-0.28913172154189404, 1.0199826839143156, 1.5467615848687402), (0.23846547398204, 1.86272443010902, -0.6167405745391108), (0.23846547398204, 1.86272443010902, -0.6167405745391108), (0.23846547398204, 1.86272443010902, -0.6167405745391108), (0.020666438262051168, 0.6102449820829926, -0.3861481688135372), (0.020666438262051168, 0.6102449820829926, -0.3861481688135372), (0.020666438262051168, 0.6102449820829926, -0.3861481688135372)], [[8, 20, 14], [8, 14, 2], [8, 11, 23], [8, 23, 20], [20, 23, 17], [20, 17, 14], [2, 11, 8], [2, 5, 11], [14, 5, 2], [14, 17, 5], [47, 35, 32], [35, 29, 26], [23, 11, 5], [23, 5, 17], [41, 47, 44], [41, 29, 47], [29, 35, 47], [29, 41, 38], [44, 47, 32], [32, 35, 26], [38, 41, 44], [38, 44, 32], [26, 29, 38], [26, 38, 32]])```

@fire lgtm!

Any idea what is going wrong?
meshgpt-pytorch> python .\trainer.py
loss: 5.813
Traceback (most recent call last):
  File "C:\Users\ernes\Downloads\meshgpt-pytorch\trainer.py", line 30, in <module>
    trainer()
  File "C:\Users\ernes\scoop\apps\python310\current\lib\site-packages\torch\nn\modules\module.py", line 1518, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "C:\Users\ernes\scoop\apps\python310\current\lib\site-packages\torch\nn\modules\module.py", line 1527, in _call_impl
    return forward_call(*args, **kwargs)
  File "C:\Users\ernes\Downloads\meshgpt-pytorch\meshgpt_pytorch\trainer.py", line 293, in forward
    self.log(loss = loss.item())
  File "C:\Users\ernes\Downloads\meshgpt-pytorch\meshgpt_pytorch\trainer.py", line 211, in log
    self.accelerator.log(data_kwargs, step = self.step.item())
  File "C:\Users\ernes\scoop\apps\python310\current\lib\site-packages\accelerate\accelerator.py", line 615, in _inner
    return PartialState().on_main_process(function)(*args, **kwargs)
  File "C:\Users\ernes\scoop\apps\python310\current\lib\site-packages\accelerate\accelerator.py", line 2479, in log
    for tracker in self.trackers:
AttributeError: 'Accelerator' object has no attribute 'trackers'

The trainer.py script seems to work. I tested with some characters which were too slow and a furniture folder.
Let me know how to use the trained function, I'm curious.

I tested with the code in this branch and it's training. I have to go for today, but you can check the git history for my changes.
meshgpt-pytorch> python .\trainer.py
loss: 5.734
loss: 5.988

As of 03582fa loss seems to decrease which is amazing.

As of 03582fa loss seems to decrease which is amazing.

loss goes down, dopamine goes up
that's life being a deep learning practitioner

I have a GLTFDataset I want to test. How do I do that with the auto encoder? I want to load it into blender to check.

is gltf the most popular format for meshes?

FBX, GLTF, and USD are for the modt populsr for scenes. STL,OBJ and ply are popular too but for example these can be in rotated in 6 arbitrary ways which makes it hard to define a unified format. The rest of the formats trail off significantly.
Note that implementing FBX and USD from scratch is expensive due to complexity.

The count in the 10 million count data set roughly matches popularity

🙄 that's a lot of file formats
please standardize more kthnxbai

Theres an xkcd about 14 standards.. Also we can convert all of these to gltf, we don't care about materials.

@fire is gltf your perferred format? it doesn't seem like the most popular from the statistics you show

indeed, i know that xkcd comic! lol

Here's a more detailed summary.

fileType
count
category
comments

stl
4317074
Mesh Format
STL is a widely used mesh format, commonly used for 3D printing models. However, it lacks an unambiguous top position ordering required by MeshGPT.

obj
1620091
Mesh Format
OBJ is another popular mesh format often used for 3D graphics. It also lacks an unambiguous top position ordering required by MeshGPT and has wide support in 3D graphics software.

fbx
1509719
Scene Format
FBX is the most popular scene format but creating an FBX importer is non-trivial. It's widely used in the film industry and game development for its versatility.

gltf/glb
1112411
Scene Format
GLTF/GLB are open standard scene formats developed by the Khronos Group. They are designed for efficient loading and interoperability across platforms.

ply
839343
Mesh Format
PLY is a mesh format commonly used in 3D scanning systems. Like STL and OBJ, it lacks an unambiguous top position ordering required by MeshGPT.

blend
238201
Scene Format
BLEND is the native format of Blender, a popular open-source 3D modeling software. Creating a BLEND importer would require understanding the Blender system, which can be complex.

dae
123438
Scene Format
DAE (Collada) is an interchange file format for interactive 3D applications. It's managed by the Khronos Group. However, it is not an active standard.

usdz
5681
Scene Format
USDZ is a variation of the USD 3D file format used in Apple's ARKit. It's optimized for sharing in apps like Messages, Safari, and Mail. Creating an USDZ importer can be complex.

abc
1053
Scene Format
ABC (Alembic) is an open computer graphics interchange framework. It's commonly used in the VFX industry for exchanging complex animated scenes. This is the least common format.

Supporting all the available formats could increase MeshGpt compatibility and reach, but it also presents challenges.
Importing FBX files requires a copy of Maya, costing $2000 to $3000 per year, due to the complexity of handling these files in Blender.
Similarly, USDZ files may require standalone tools like Apple's Reality Converter, which might not support all file features.
The DAE format lacks standardization, complicating consistent results across platforms or software.
However, integrating Blender support is feasible and has been demonstrated by @MarcusLoppe. Blender could potentially import the remaining formats. However, it means that Blender would be part of the Dataset importer class which would make embedding the entire MeshGPT system into a game engine more difficult.

@lucidrains Let me know how you want me to contribute the GLTFDataset code into the main repo. I can create a new pull request.


TypeError: detectObjectsFromVideo() got an unexpected keyword argument 'custom_objects'

Hi @OlafenwaMoses and thanks for great tool, i recently found this library. I am JS developer and today only for your library i'm learning Python (v3) as Tensorflow, Keras and some tool already available in Node.js, but i found your library very flexible and easy-to-use as JS developer.
Today i runned some examples from your project, at first and 3-4 tries worked, but after changing few lines it stopped working.
Can you help me?
Sorry for stupid questions, but today my first day on Python world :)
Code
from imageai.Detection import VideoObjectDetection
import os
import cv2

execution_path = os.getcwd()

detector = VideoObjectDetection()
# detector.setModelTypeAsRetinaNet()
detector.setModelTypeAsTinyYOLOv3()
detector.setModelPath(os.path.join(execution_path, "yolo-tiny.h5"))
detector.loadModel(detection_speed="normal")
custom_objects = detector.CustomObjects(person=True, bicycle=True, motorcycle=True)

def detectObjects(camera, file):
    video_data = detector.detectObjectsFromVideo(
        custom_objects=custom_objects,
        camera_input=camera,
        output_file_path=os.path.join(execution_path, file),
        frames_per_second=60,
        log_progress=True,
        minimum_percentage_probability=70,
        save_detected_video=True,
        return_detected_frame=False,
    )

detectObjects(camera=cv2.VideoCapture(0), file="camera_detected_video")

Env
OS: macOS 10.15.2
Python: 3.7
Pip: 19.3.1
Virtual Env: virtualenv
Shell: fish shell
Thanks

Sorry, it's my fault


Unable to parse loopback-example with openapi-to-graphql library

Describe the bug
Unable to parse simple ping interface API from loopback.
To Reproduce
Run the loopback example project with just the ping interface.
(Sample project https://github.com/vtapadia/loopback-example)
Create another project that uses the openapi-to-graphql lib
(Example: https://github.com/vtapadia/graphql-from-openapi)
Follow the steps and replace set the oas variable as follows
const oas = ["http://localhost:3000/openapi.json"]
Start this application with simple node command
node index.js
Server fail to start with following error
(node:16960) UnhandledPromiseRejectionWarning: Invalid specification provided
Expected behavior
Server should be up but it is failing with the following reason.

@vtapadia Thank you so much for filling this issue. We definitely want to support LoopBack-made APIs.
This actually seems to be an error with the OAS validator that we are using. As a result, there isn't too much we can do from our side as the library is out of our control.
I will still investigate to see what exactly is the issue.
A relate issue is #334 which discusses replacing our validator.

@Alan-Cha Thanks for the remark. But this does not make sense.
I tried the same API with the CLI and it worked. I would assume that the CLI is just a wrapper on top of the actual library. But maybe I am wrong.
Here is the output from the CLI.
$ openapi-to-graphql http://localhost:3001/openapi.json
{
  "warnings": [],
  "numOps": 1,
  "numOpsQuery": 1,
  "numOpsMutation": 0,
  "numOpsSubscription": 0,
  "numQueriesCreated": 1,
  "numMutationsCreated": 0,
  "numSubscriptionsCreated": 0
}
GraphQL accessible at: http://localhost:3000/graphql

Could you help me understand the discrepancy?

Nevermind, I looked at the openapi-to-graphql-cli project and realized that the service needs a JSON parsed object. After doing that, the issue is resolved.


ecs.update_service does not handle service_arns, just services names.

Actual:
When running:
ecs_client.update_service(
            cluster=cluster_arn,
            service=service_arn,
            desiredCount=0
)

I'm getting ServiceNotFoundException raised, even though I'm using service and cluster ARNs returned by a call to describe_services, after creating the services with moto.
Expected:
Service/Cluster names and ARNs should both be supported.
Walkaround:
I changed my application logic to make it testable with moto, and it worked, but I shouldn't have to do that, especially that both boto3 and AWS API allow using Names/ARNs interchangeably.

Thanks for raising this @mkielar - marking this as an enhancement.


Fix ios light mode flashes

When ios backgrounds it takes snapshots in light and dark mode (as far as my googling tells me) this leads us to get the color change events in quick succession which causes the flashing on foreground. Instead we debounce the call and ignore the middle one

are changes in https://github.com/keybase/client/pull/19987 still necessary?

they're unrelated to each other. one is pure startup and the other is foreground/background


Supports multi-region

What type of enhancement is this?
Tech debt reduction
What does the enhancement do?
Currently in GreptimeDB, only one region can be created for a table on one datanode, which will cause data corruption when the number of table partitons exceeds the number of datanodes.
In fact, table engine supports creating multiple regions for one table, but we have to go through all those components on datanodes whether they can accommodate multiple regions.
Implementation challenges
To support multiple regions on datanode, both standalone and distributed mode should be considered.

[X] In distributed mode, requests are parsed on frontend, and frontend forward queries to datanode. Thus, datanode's incoming requests must carry region info, for example, the region to insert, regions to query from etc. It should be relatively easy to add this parameters.
[ ] While in standalone mode, things get a bit tricky. If datanode has only one region, then query engine is not aware of partition rules. But if datanode has multiple regions for one table, then query engine should associate requests with corresponding regions according to partition rules. There are two problems here:
In standalone mode, catalog manager does not support storing partition rules, we must add an options field to SystemCatalogTable
https://github.com/GreptimeTeam/greptimedb/blob/8402ef94af0043351cceecfa7620e0d8fe320be6/src/catalog/src/system.rs#L49
Find regions for queries according to partition rules. Currently it's implemented in DistTable. But in standalone mode, requests are directly forwarded to datanode. Thus we need to extract the partition logic to some separate struct to reused it in both distributed mode and standalone mode.
https://github.com/GreptimeTeam/greptimedb/blob/8402ef94af0043351cceecfa7620e0d8fe320be6/src/frontend/src/table.rs#L85-L95

Future work

[ ] Scan on schema change: when schema change happens while scanning multiple regions on one datanode, currently it just raises an error, we may need to try to adapt to schema change.
https://github.com/GreptimeTeam/greptimedb/blob/5d62e193bd2d491517680e4a332ad31731db6d31/src/mito/src/table.rs#L178-L186
[ ] We need to find a way to pass region filters to datanode through substrait plans so that we don't have to iterate all regions on some datanode https://github.com/GreptimeTeam/greptimedb/issues/926
[ ] DROP TABLE SQL is not currently implemented in parser, we need to support drop all regions on datanode. #497
[ ] We need to adapt DDL operations to multi regions to procedure framework to allow fault recovery as soon as #286 finishes.

MitoTable should be modified to accommodate multiple regions, and it's create/open/insert/select methods must explicitly provide regions.
Currently all partition rules are parsed in frontend and datanode does not validate if data inserted satisfies partition rule, but we may add this validation once repartition is supported.

Maybe we should add an regions: Option<Vec<RegionNumber>> argument.

Vec<RegionNumber> should be adequate as None and an empty vector should represent the same thing.

Maybe we should add an regions: Option<Vec<RegionNumber>> argument.

Vec<RegionNumber> should be adequate as None and an empty vector should represent the same thing.

Also, if there're regions with different schema in a table, then what will be the schema for record batches yielded? Can we compare the versions of schemas of all regions and find the schema with the min version?

Can we compare the versions of schemas of all regions and find the schema with the min version

This might be the most applicable way before #275 is done. BTW, this reminds me that we need to move the version field somewhere else, as mentioned in #349

But you may need to handle the projection field carefully and solve the difference of schema between table and region. What about returning an error if regions have different schemas in the first PR and leaving some work to the next PR?

But you may need to handle the projection field carefully and solve the difference of schema between table and region. What about returning an error if regions have different schemas in the first PR and leaving some work to the next PR?

Projection is an issue. Looks better to just throw an error for now.

Looks like region failover(#1126) also requires multi region support.

Close this issue as version 0.4 already supports multi-region.


"targetResourceType property is missing or invalid."

When deploying an alert from an ARM template that monitors a single resource we are receiving the following error:
'{
"Code": "BadRequest",
"Message": "targetResourceType property is missing or invalid."
}'
It is my understanding that we only need to provide targetResourceType when monitoring multiple VMs. This seems to only happen on newer versions of Azure powershell. It work on another machine with Azure Powershell 5.1.1 but doesn't work on my machine (version 5.3.0) as well as Azure Devops pipelines

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

ID: 1f2bd9d0-af11-d684-051b-7ac8e611cca9
Version Independent ID: f83d6e85-4d52-6b7f-a79e-f3ed3f3d0a95
Content: Create a metric alert with a Resource Manager template
Content Source: articles/azure-monitor/platform/alerts-metric-create-templates.md
Service: azure-monitor
GitHub Login: @snehithm
Microsoft Alias: snmuvva

@nhart12, could you share the ARM template and parameter files with me off-line at snmuvva AT Microsoft DOT com?

@snehithm I've sent the requested files

I am also seeing the same issue re-deploying an existing ARM template that monitors a Postgres instance. Deleting the alert seems to fix it but re-applying the alert on top of the existing alert throws this error.

Hi folks,
Thanks for providing the repro and sorry for the incovenience. We identified a bug which was causing this. We are working on a fix. I will keep you posted when the fix lands.
Regards,
Snehith

This issue is now fixed. If you are still seeing this issue please do let us know on<EMAIL_ADDRESS>Docs team, #please-close


1-Click create a new plugin

Have we considered making OpenSearch and OpenSearch Dashboards plugin template repos?

In the meantime, I created a boilerplate plugin github template repo to play around with. The main challenge here is to create a gradle init task that is customized and sets the following:

the plugin name: in build.gradle, class names, integTest code, yamlTest code,
description: in build.gradle
path for plugin: in build.gradle, package names across all files
the opensearch version: in build.gradle

Creating a custom init script in gradle is a request the community has had for a while - the issue is still open though.
Any suggestions regarding implementation here? I was looking at this as an option.

I would move your repo into opensearch-project/opensearch-plugin-template and just keep iterating on it. It needs a clean README to get started and what not. Gradle templates sounds awesome.

After reviewing the options it seems clear to me that:

People are not going to create so many plugins as to require a 1-click plugin
The idea of using gradle to build this is counter intuitive to the template repo

The repo can have comments stating what needs to be changed + a readme file explaining each part
Having the gradle script in the template repo is redundant - we could just go back to square one and have a tool to initialize an opensearch plugin in the opensearch-plugins repo.

I would like to change this into a simple template so one could just change the naming etc and get going quickly rather than commit to developing an init tool that would require more complex maintenance.
@dblock, @saratvemulapalli WDYT ?

I am 💯 with this, a README is largely sufficient.
I think a template builder doesn't hurt, especially if it lives with another set of tools (not in the template repo). This removes the mental overhead of knowing where the plugin template repo lives, for example. But it's all small potatoes and if anyone finds it difficult to follow a README, they can contribute a tool.

Definitely, I am in line with both of you.
We do not have to make a big piece and then have it to maintain it for ever.
Let's start with a simple template, cover most of the important information in the README.md and comments.
Also hopefully the blog post https://github.com/opensearch-project/project-website/pull/73 should also help.
I always like start small, iterate and make it better.
And as @dblock said, if we see more pain from the community they can work on building a new tool.
@AmiStrn since you already took a stab at helloworld plugin, do you think you convert that code into a template plugin repository? @stockholmux can help us find the right place for the template.

@saratvemulapalli the template plugin is in progress (missing the readme and comments in the code).
Regarding moving this template into the project: this is tricky, I can add a PR to a repo a maintainer would have to first add and set it as a GitHub template (only maintainers can set that).

I've opened https://github.com/AmiStrn/opensearch-plugin-template/issues/4 to move this to opensearch-project eventually.

The template is prepared, it still needs to be moved to opensearch project:)
@saratvemulapalli and @dblock thanks for the feedback!
Please take a look at the CI I put in place - if it is missing anything in your opinion I would be happy to fix it.
the template repo -  https://github.com/AmiStrn/opensearch-plugin-template

The template is prepared, it still needs to be moved to opensearch project:)

I am discussing what process we should follow with some people at Amazon - it will take a bit of time since it's the first repo to would be joining the opensearch-project org, and I want to make sure we write down a standard process for it.

@dblock as we brought in the repository into opensearch-project, do we have any other action items here, if not can we close this?

Let's close this!


Unable to simultaneously satisfy constraints.

Unable to simultaneously satisfy constraints.？

@gityoung issue reports like this are extremely unproductive and disrespectful to the owners/contributors that freely use their spare time to address open issues.
Please when you open issues on open source repo's include as much information as possible and clearly  lay out what your issue is and the expected behaviour you think you should be seeing.


Binance web socket stream disconnects

The binance web socket API doc states that:

The websocket server will send a ping frame every 3 minutes. If the websocket server does not receive a pong frame back from the connection within a 10 minute period, the connection will be disconnected. Unsolicited pong frames are allowed.

Please check out PR #68. Note that I am relatively new to Rust and especially streams, so feedback is welcome.

This issue can be closed, see discussions on PR #68


Fix haskell-language-server / direnv config

Last minute shell script change in #2990 broke it - oops.
This PR also adds a CI step to check the hls config.
Issue Number
ADP-1229

bors r+


Pool with stable token

how to create pool with spl token and USDC
for example:
USDC on testnet = CpMah17kQEL2wqyMKt3mZBdTnZbkbfx4nqmQMFDP5vwp
SPL token on solana testnet = 2uWhmBh48rRhDdrM2mMq6BhiHh1yX16DAw6RtZJTfdHg
kindly suggest me

Hi there, we don't use GitHub for support, so please join us at #developer-support on Discord https://discord.gg/solana!
To give a you a few pointers, you can read through the docs at https://spl.solana.com/token-swap#creating-a-new-token-swap-pool and take a look at how to create a pool in this end-to-end test https://github.com/solana-labs/solana-program-library/blob/00767dbd28fea3e0faff22ab7c803ea64ba12766/token-swap/js/cli/token-swap-test.ts#L89


Miscategorisation of SAM Coupe disks

https://github.com/keirf/greaseweazle/wiki/Supported-Image-Types
puts Sam Couple discs in with Amstrad ones.
This is misleading and they should be noted and are supported just like other MGT disks from e.g. disciple or+D, using the identical 80TDSDD 10 sector 800 format as all the other MGT interfaces.
I suspect the error is caused by over-reliance on the last three characters of a filename as some 1970s legacy hint about the contents. .DSK is widely used for all MGT image formats, and presumably someone from Amstrad-land jumped to conclusions.
To disambiguate these the length of 819200 bytes is a better determinant than whatever the name happens to end with. To be sure, mash up the first 40 sectors on side 0 and make sure there are no multiple bits set in the 80 sector address maps there (two per 512-byte sector) - see https://sinclair.wiki.zxnet.co.uk/wiki/MGT_filesystem

To be honest I mashed Sam Coupe in there following the same categorisation as SAMdisk: https://simonowen.com/samdisk/formats/
So my understanding is that EDSK may be used for Sam Coupe disks. Well, of course it can, but I mean actually you may find Sam Coupe EDSK images "in the wild", supported by emulators, etc?
I should split out DSK from EDSK, as you are correct that DSK can also be a raw sector image (not an Amstrad CPC image format). Greaseweazle auto-detects on import, by looking for the CPC image header signature, and on export cannot write Amstrad CPC images and so will always write a raw sector DSK image.
Based on all this, what do you think I should do? Split DSK from EDSK, and perhaps further split DSK into two (raw vs CPC)?

Those splits make sense to me.
I've not seen an EDSK but can imagine why Si Owen would find it useful personally, especially as a sort of CPC CP/M to SAM ProDOS bridge.
I have hundreds of .DSK images and original media from Sams and Spectrums, all exactly 800K.

I've had a go at this, see what you think before I close the ticket.

You can safely add Sam Coupe to the .MGT cluster. The original SamDOS and better BetaDOS are identical format-wise, differing only in file-type flags. I'd also add Sam Coupe after Spectrum +3, given the Si Owen/EDSK information, his site, use of .DSK for e.g. the entire Sam Supplement collection, and knowing him. I guess he might yet be inclined to bridge SAMdisk, SimCoupe/DSL (running here now) and gw direct access, which would be awesome though going via .dsk etc makes more sense for those with specific intent rather than triaging hundreds of floppies including many swaps.

This ticket has been closed prematurely. Please reread my comment of 27th December above, in the context of your helpful offer that day to ‘have a go’. Further to the deletion of SAM coupe from what you problematically choose to mean by .DSK,
MGT (Sinclair ZX Spectrum DISCiPLE/+D)

should more helpfully read
MGT (Sinclair ZX Spectrum DISCiPLE/+D, SAM Coupe)

as the SAM coupe was also an MGT product based on the same DOS and with IDENTICAL formatting and default directory structure.
Given this correspondence it would be helpful to list Sam Coupe in the MGT group rather than simply do away with the ambiguous DSK classification and pretend that Greaseweasel does not support SAM media when it does.
The category errors that remain are substantially caused by the prevalent but problematic presumption that the characters in a file name are predictive of its content. That mistake bites both experts and beginners, as it did Keir in the case of DSK. But a more substantial redesign of the document, to incorporate more reliable (yet still uncertain) signifiers such as byte count (always a multiple of 204800 for .MGT and equivalent .DSK files, almost always 819200 in practice) would be necessary to make the document more accurate and useful.
The presumption about file extensions, derived from DEC SYSTEM 10 via CP/M, also causes trouble in other contexts such as .DOC (not proprietary to Microsoft, inconsistently applied even by them) , .TXT (ambiguous for the majority of bytes which are not defined by ASCII, and most problematic for line termination), .WAV (could be WMA, NVADPCM or many other non-PCM formats), .MOV etc etc.

Thanks, that’s fine now.
Some of my software to unpack the contents of MGT disk images is here: https://simon.mooli.org.uk/nextech/index.html#NextMGTreader
It runs on a ZX Spectrum Next (or emulation) and supports GDOS, G+DOS, UniDOS, SAMDOS, MasterDOS and BetaDOS; with a little tweak to seek to the required 800K offset it could also access SAM file within BDOS hard disk images.


Wsp 1657 Advanced Scanning options

Tag @vplugins/websitepro

Could you as well add some description to the PR?


[yum_repository] Add indentation for multiple baseurls

Properly indenting multiple baseurls for yum_repository resource
Description
Fixes https://github.com/chef/chef/issues/9133
Related Issue
https://github.com/chef/chef/issues/9133
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)

Checklist:

[x] I have read the CONTRIBUTING document.
[ ] I have run the pre-merge tests locally and they pass.
[ ] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.
[ ] All commits have been signed-off for the Developer Certificate of Origin.

Notice that the @config.gpgkey field is doing exactly this in the same file: https://github.com/chef/chef/blob/master/lib/chef/provider/support/yum_repo.erb#L42


Pydantic's model_validate() in favor of deprecated parse_obj()

I was trying to run the parse_data.py script to examine the FaVe dataset. Pydantic's parse_obj() is now deprecated in favor of model_validate() I believe (correct me if I'm wrong), so I added the fix.

Thank you!


[Help] Struggling with Lookup pickChange()

Hi there,
First of all, thank you very much for your work on this @AnBauer
I was wondering if you could give me some lights, I'm struggling a fair bit to have a Lookup component return me the value on the pickChange() callback.
My html is the following:

    <ngl-lookup [lookup]="lookupAsync" field="userPrincipalName" [(pick)]="user" (pickChange)="pickChange($value)" debounce=400 >
        <ng-template nglLookupLabel>User</ng-template>

Users found:

        <ng-template nglLookupItem let-ctx>

{{ctx.displayName}}

                UPN: {{ctx.userPrincipalName}}

        </ng-template>
    </ngl-lookup>

The input array objects have 3 properties: id, displayName and userPrincipalName.
When I search for something, the lookup is working, I able to pick a user/result and everything is looking good.
Now I wanted to get the value back on my .component.ts and I did this test function:
  pickChange(value: any) {
        console.log(value);
  }

However it returns "undefined" always.
I've looked at ng-lightning documentation and your code but I just can't figure out why that is.
Could you help me?
Thank you,
Ralms

I've figured out the problem.
I though the parameter name on the callback could be anything, so I called it "value" as such:
(pickChange)="pickChange($value)"
Changed to event and started working.
(pickChange)="pickChange($event)"
Don't really understand why, but ok.


build alternative - parcel

https://github.com/parcel-bundler/parcel

Sure, Parcel should be added.


Suggestions to make model easier to run

Hi. Gave the model a quick spin to see if I could get it working. This pull request implements some suggestions to make getting up and running with the model quicker and easier for other people:

Explicitly list the required R packages for running the model. This should make it easier for people to install all the dependencies up front.
A Dockerfile and instructions on running the model with Docker. This provides a way for users to install all dependencies and run the model with just two commands.

Should you choose to merge these, as a colleague at Imperial I'm happy to field any queries relating to Docker and undertake any maintenance required. If you're interested in exploring this route further it is possible to upload a pre-built Docker image to GitHub so that users could run the entire model with just a single command. Building and testing of the pre-built image could also be carried out using GitHub actions. This is all freely available under the Imperial GitHub organisation.

After sleeping on it, it occurs to me that an environment.yml file would be a good option as well to allow users to easily create a conda environment with all dependencies installed. Happy to knock one together if that seems like a good idea.

Agree with the environment.yml - would be good to specify the minimum version of R as well for this to run. @s-mishra @cc-a

See prototype below. I'll wait for a steer on whether to include this as part of the PR.
name: covid19model
dependencies:
  - r-bayesplot
  - r-data.table
  - r-envstats
  - r-lubridate
  - r-gdata
  - r-ggpubr
  - r-rstan
channels:
  - conda-forge

This is great. @Ettie, we can remove dependency on ggpubr, right? Any
others that are easy to swap out?
On Thu, 2 Apr 2020, 11:16 Christopher Cave-Ayland<EMAIL_ADDRESS>wrote:

See prototype below. I'll wait for a steer on whether to include this as
part of the PR.
name: covid19model
dependencies:

r-bayesplot
r-data.table
r-envstats
r-lubridate
r-gdata
r-ggpubr
r-rstan
channels:
conda-forge

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/ImperialCollegeLondon/covid19model/pull/4#issuecomment-607754466,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAOPW6IQEC2GKAG6LB2QM3RKRQXLANCNFSM4LZQNB4Q
.

Hi Chris,
Go ahead and make the environment.yml too. Thanks for the effort @cc-a. Once done I will accept the pull request. @harrisonzhu508  can you just cross-check the chnage?

No problem, I'll test the container and let you know.

Yeah - ggpubr is just to make the plots look like the other Imperial ones but it's not necessary

Hi @cc-a and @s-mishra
Please check related suggestion I have placed here:
https://github.com/thecapitalistcycle/covid19model/issues/1
I have put it there to keep it out of the way and not create a separate issue for a suggestion I cannot actually contribute to.

Hi, I've added the environment.yml and added a dedicated section to the README on "installing dependencies".
If you do decide to remove ggpubr as a dependency this can then be removed from both environment.ymland docker/Dockerfile.
Please let me know if you'd like any further changes or are interested in automating some testing around these.

Thanks a lot for the suggestions! Would be interested to explore the GitHub actions aspect or automated testing. Just building the docker image at the moment but will let you know if it's all good on my machine.

@cc-a  @s-mishra  Ran the container and was all good from my side. I suggest we merge after we discuss some automatic testing or adding pre-built docker images into GitHub?

Just one thought before this is merged, instructions for running Docker may need to be different for Windows just doing a quick check.

Made a couple of minor tweaks to get the build and run to work with Docker on Windows.

Hi Chris,
Thanks for your efforts. Can I ask one thing? Do we have GitHub actions in this pull request so that running and reproducing is easy every time we push an update? If this is something you can do easily then please do and we will accept the PR. Thanks again for your work and time.

As is this does not include use of GitHub actions. With the amount of time I can realistically spend putting that together would take me a day or two I expect. It's a bit tricky to put together without admin access to the repo as well.

Maybe best if I raise a separate issue and suggest what I think is possible, the functionality it would provide and what would be needed to implement. Then we could figure out how to go forward from there?

That sounds good, I think we can merge. @s-mishra @cc-a

Thanks Christopher, really appreciate it.
On Thu, 2 Apr 2020, 17:25 hbz<EMAIL_ADDRESS>wrote:

That sounds good, I think we can merge. @s-mishra
https://github.com/s-mishra @cc-a https://github.com/cc-a
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ImperialCollegeLondon/covid19model/pull/4#issuecomment-607949662,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAOPW3DLIUWHKBN2SO64STRKS35VANCNFSM4LZQNB4Q
.

Thank you, Christopher.
On Thu, 2 Apr 2020 at 17:45, Seth Flaxman<EMAIL_ADDRESS>wrote:

Thanks Christopher, really appreciate it.
On Thu, 2 Apr 2020, 17:25 hbz<EMAIL_ADDRESS>wrote:

That sounds good, I think we can merge. @s-mishra
https://github.com/s-mishra @cc-a https://github.com/cc-a
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<
https://github.com/ImperialCollegeLondon/covid19model/pull/4#issuecomment-607949662
,
or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/AAAOPW3DLIUWHKBN2SO64STRKS35VANCNFSM4LZQNB4Q
.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/ImperialCollegeLondon/covid19model/pull/4#issuecomment-607960831,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACYTMIUAFETLQCZBOADV2ZTRKS6I7ANCNFSM4LZQNB4Q
.

--
Dr Samir Bhatt
Senior Lecturer (Associate Professor) in GeostatisticsThe Department of
Infectious Disease EpidemiologyImperial College London
http://www.map.ox.ac.uk/ http://www.map.ox.ac.uk/

Thank you, going to merge it now.


Don’t show checkboxes without label

Hey there!
We are using a custom field for showing the comment count on our resource index :

Our custom field has no column name/title and should not be on/off switchable or sortable by column-toggler.
Before the changes in this pull request there was always an empty row shown in the column-toggler.
My solution was to hide checkboxes within the column toggler that have an empty title.
Thanks a lot for this great component

🙏


Find Inventory Diffs Between Scans

What has changed in the environment: new users, new VMs, new service accounts

There is a question if this should be part of the inventory or auditor service.  We should create a design doc to scope this out.


Localtest2017

:x: Validation status: errors

File
Status
Preview URL
Details

:x:Error

Details

[Error] Cannot sync git repo to specified state. Please make sure the pull request is mergeable. Details: Git merge results in conflict, repository remote url: https://github.com/TinaLiuGirl/TinaTestReport, working directory: W:\g3bl-s, target branch: master, target branch commit: a6a98988c44e684b5bf5adbc714b8b7f5fe81f9c, source branch: localtest2017, source branch commit: .

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

:x: Validation status: errors

File
Status
Preview URL
Details

:x:Error

Details

Line 128: [Error] Pull content in folder W:\vefu-s_themes failed. Error: remote: Repository not found. fatal: repository<EMAIL_ADDRESS>not found

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

:x: Validation status: errors

File
Status
Preview URL
Details

:x:Error

Details

Line 128: [Error] Pull content in folder W:\s2ye-s_themes failed. Error: remote: Repository not found. fatal: repository<EMAIL_ADDRESS>not found

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Quiz button padding

What does this change?

Add padding to bottom of quiz
Why
On DCR we need some space between the quiz and the footer content
Images

Before:

After:

You should get vertical padding from Figure. We want to maintain this kind of thing in one place I think so part of my task to bring that component in is to delete this kind of css.


does our Docker-ized fuskei only work inside of incognito browser windows?

I will try to answer the question in the issue name.

No, it works in both Incognito and non-Incognito browser windows.

Closing.

Sorry, I should have kept this up to date. Fuseki, from Docker, does not run in a normal browser session on either my Ubuntu workstation or in my Intel LBL MacBook Pro. I believe I have tried both chrome and Firefox. I can provide screen shots, or we could just Zoom.

Will you elaborate on what you mean by "does not run"? What does the web browser show (e.g. blank page, the login prompt, an error message, etc.)?

Sorry about that. Totally blank browser window, plus warning about unsafe URL in navigation bar.

Thanks. Interesting.
What happens when you visit other http:// URLs in those web browsers (specifically, those that don't automatically redirect to an https:// URL)?
Here's an example of such a URL:

http://web.simmons.edu/~grabiner/comm244/weektwo/links.html

If that example web page loads OK for you, please confirm that your web browser hasn't automatically navigated to the https:// version of it.

I can provide screen shots

I would like to see a screenshot of the error message that also shows the URL in the nagivation bar. That will show me the error message and confirm that the web browser didn't automatically try to go the https:// version of the URL.

Moved to next sprint. I expect it to take under an hour to resolve.

Hi @turbomam, will you take a look at comments https://github.com/microbiomedata/nmdc-schema/issues/1694#issuecomment-1911039419 and https://github.com/microbiomedata/nmdc-schema/issues/1694#issuecomment-1911098139 and tell me what you think?

@turbomam, is this still happening on your Ubuntu machine? If so, will you provide more info about the behavior (see comments https://github.com/microbiomedata/nmdc-schema/issues/1694#issuecomment-1911039419 and https://github.com/microbiomedata/nmdc-schema/issues/1694#issuecomment-1911098139)?

I'm in favor of moving this to the next sprint if there are no updates by Thursday night.

I don't have the bandwidth to work on this this sprint. I'll move it to the next one.

On second thought, I will reassign to @turbomam to provide more information.

I will remove from the sprint. @turbomam @eecavanna if still active please add to the next sprint.

@turbomam and I looked into this together today.
For reference, he recently reformatted his Linux machine, so the context may be different from what it was when this issue was created.
Today, he demonstrated that the Fuseki container would not start up properly. It reported that it didn't have permission to do something in /fuseki/fuseki-data (a filesystem path in the container). For reference, that is mapped to ./local/fuseki-data on his host machine.
He checked the permissions of ./local/fuseki-data on his host machine and found that they were:
$ stat local/fuseki-data/
# ...
Access: (0755/drwxr-xr-x)  Uid: ( 1000/    mark)   Gid: ( 1000/    mark)
# ...

As an experiment, he ran $ chmod -R 777 local/fuseki-data/, then restarted the Docker stack. Now, the Fuseki container started up normally.
With the Fuseki container running normally, he was able to access its web GUI from both a normal and an incognito web browser.
The only issue I see as outstanding here is that the container didn't start up normally until after he loosen the directory permissions so much. I don't want Linux developers to have to do that.


Derivative of SOAP

Hi,
Is there a way to get the derivative of the SOAP descriptor corresponding to the positions? I believe the derivative is necessary if I want to do force training. I couldn't find documentation about it. Thanks!

Hi,
Analytical derivatives of SOAP for the GTO basis are possible, but there will be a lot of grinding calculations (see the last few pages in https://github.com/SINGROUP/SOAPLite/blob/master/soapDoc.pdf
) . Numerical derivatives are also possible and a bit easier to implement, but the computations will be heavy and would be quite slow. At the moment we don't have plans to implement either.

Thanks!


Ensure that 3 tuple responses are rv, status, header (no ambiguity)

This should match Flask's logic.

Fixed in bb34797207700839514dcab3d08c74e3cd1eeee5


Error when I try to add to Smartthings

You don't have access to bspranger/Xiaomi
That's what I get when I try to add repository to Smartthings........ how do I fix that?

I had this error and had to disconnect/reconnect to my github account integration


why not support sqlserver2005 conncect?

data_source_name: 'sqlserver://sa:a123456!@<IP_ADDRESS>:1433'
running info
[root@DB3 sql_exporter]# ./sql_exporter
I0821 18:00:24.978808  127262 main.go:52] Starting SQL exporter (version=0.5, branch=master, revision=fc5ed07ee38c5b90bab285392c43edfe32d271c5) (go=go1.11.3, user=root@f24ba5099571, date=20190114-09:24:06)
I0821 18:00:24.979826  127262 config.go:18] Loading configuration from sql_exporter.yml
I0821 18:00:24.980410  127262 config.go:131] Loaded collector "dir_mssql_collector" from dir_mssql.collector.yml
I0821 18:00:24.980508  127262 main.go:67] Listening on :9399
I0821 18:00:37.546241  127262 promhttp.go:38] Error gathering metrics: [from Gatherer #1] Login error: EOF
I0821 18:00:52.551666  127262 promhttp.go:38] Error gathering metrics: [from Gatherer #1] Login error: EOF

@guochaoqun8 Your problem is unrelated to sql_exporter, but the underlying MSSQL driver or your connection string. Please, take a look at the issue here and other issues in the respective driver repository. Alternatively, try to connect to your database with usql first, it should help finding the problem. 🙂


build fails because URL for glibc returns 404

Found a version on github that seems to work, patch attached.
diff.txt

see #3 there is the bug fix now


missing "--ip" information

Hi, when I put this line in Composerize website, it's missing the IP address information:
docker run -d --name host --ip <IP_ADDRESS> -p 81:82 --network ipvlan -v /docker/hosted:/data --hostname host container_name --restart=always
It seemed to be conflicting/ignoring when "--network" is present.

Hi @copenhaus , thanks, should be fixed in latest deployed version


Issue #429 regridding cache

Fixes #429
Description
Now caches weight sets instead of regridders when regridding models. This saves re-computing weights, because the same weights are used for different regridders (if the regridder type is the same and only the regridding method is different).
For example if we have 2 overlap regridders, but one is of method "mean" and the other one is of method "geometric_mean" they will use the same weights.
Checklist

[X] Links to correct issue
[X] Update changelog, if changes affect users
[X] PR title starts with Issue #nr, e.g. Issue #737
[X] Unit tests were added
[ ] If feature added: Added/extended example

FYI: I made a issue about the public API https://github.com/Deltares/imod-python/issues/936

Thanks for implementing this! Have you tested if it actually resulted in performance gains by regridding a simulation (e.g. one of the examples)? That would be worthwhile to do; feel free to make a separate issue if it hampers the merging of this PR too much.

On the example "hondsrug_regridding", regridding takes  27.9 seconds with this approach, and 27.7 seconds with the approach taken on master.  I think it's not big enough to showcase the advantages of this method. We should try with a bigger model.


Conditionally check for hashed password in serializer

Refs: https://openscience.atlassian.net/browse/LEI-281
Companion to: CenterForOpenScience/experimenter#132
Purpose
UI Responsiveness in account creation
Summary of changes
Adds conditional check for encrypted password
Testing notes

Checks for hashed password and runs bcrypt if the password is not hashed, otherwise, it just calls super


AI Search networking configuration for portal access does not work.

Followed the instructions on this page, including trying to add my actual internet facing IP address directly in the Search Networking config page. It told me that my ip address was already included in the CIDR range I provided so I KNOW I did that right. I also followed the instruction about adding the Portal ip address just as written. However after doing all of that the Portal is still saying:
"Restricted access: When IP rules are configured, some features of the Azure portal may be disabled. You can view and manage service level information, but portal access to indexes, indexers, and other top-level resources is restricted. You can restore portal access to the full range of search service operations by allowing access from your client IP address."
Leaving me with nothing else to try.

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

ID: 4a2dc2ca-c6ba-8660-4f48-45211c86aca3
Version Independent ID: f7e13c3e-ac89-b705-c673-18c1a6a06f11
Content: Configure an IP firewall - Azure AI Search
Content Source: articles/search/service-configure-firewall.md
Service: cognitive-search
GitHub Login: @HeidiSteen
Microsoft Alias: heidist

@randomsamples, I'll retry the instructions.  I recall getting a working portal experience.
If you go further down the page, there's a paragraph about authorization, but for the portal, it's "built-in" at least assuming the search service is using API keys or "both" (check the API options in the Keys page).   If the auth option is "Roles", then you need assignments for sure.
Here is the paragraph(s) about authorization, post-firewall configuration:
Providing IP addresses for clients ensures that the request isn't rejected outright, but for successful access to content and operations, authorization is also necessary. Use one of the following methodologies to authenticate your request:
Key-based authentication, where an admin or query API key is provided on the request
Role-based authorization, where the caller is a member of a security role on a search service, and the registered app presents an OAuth token from Microsoft Entra ID.

I really dont understannd all of this. I want to build a chat bot with a RAG. I do not need any of this accessible publicly but it seems like setting up the RAG without a public endpoint is SUPER complicated. Why is private not just the default behavior?

I really dont understannd all of this. I want to build a chat bot with a RAG. I do not need any of this accessible publicly but it seems like setting up the RAG without a public endpoint is SUPER complicated. Why is private not just the default behavior?

PS my current search service is using key based auth, sounds like that should "just work"?

It is a little bit complicated.  You either need to be in an Azure virtual network, where all the clients are VMs or services that exposes their endpoints to the network -- or you can lock it down with a firewall -- or, third option, which is what I use, you can leave the search service on the public internet, and just really protect those keys.  Make sure you aren't posting them in code or pages on Github or anywhere that's public.

If no one has your keys, or a role assignment, they aren't getting access to your search service.  The problem with keys is that they can get leaked inadvertently.  I accidentally forgot to remove a server name and key from an example I was testing, and even thought it never showed up in public docs, it was in commit history on GitHub, so basically visible to the world.

An easier way to get started might be the playground in Azure OpenAI Studio.  Its UX driven, and they set up everything behind the scenes.  There are some limits on data, but you could at least get proof of concept before you invest lots more time and energy.  There is a DEPLOY button in the Studio that generates code.
I'm mostly familiar with this exercise so I recommend this one, but there are other tutorials that go a little deeper:  https://learn.microsoft.com/en-us/azure/ai-services/openai/use-your-data-quickstart?context=%2Fazure%2Fsearch%2Fcontext%2Fcontext&tabs=command-line%2Cpython-new&pivots=programming-language-studio

The problem with public access is that my company security folks scan the Azure account. Public ports are not allowed so we got a ticket this am and I had to fully delete the service because it had been created as free tier and you cant use network configuration on the free tier (which is not very clearly stated in the firewall configuration docs!) or migrate the service to a different tier. Anyway, Im still not clear why keys arent working (i get the security risk but why they arent allowing the portal to configure the search service i dont understand) but I will try what you said with roles maybe...

An easier way to get started might be the playground in Azure OpenAI Studio. Its UX driven, and they set up everything behind the scenes.

Thanks a lot for the time and info @HeidiSteen!

@randomsamples
Thank you for bringing this to our attention.
I've delegated this to content author, who will review it and offer their insightful opinions.

@randmonsamples, I rewrote this article (plus the "enable RBAC" doc) and those updates are now live:  https://learn.microsoft.com/en-us/azure/search/service-configure-firewall
I also tested the instructions on a personal Azure subscription that's decoupled from my Microsoft work account. My findings are that the instructions work, but the configuration changes aren't instant, and that was confusing because my first assumption was that it wasn't working. I updated the instructions to set expectations regarding the delay, and also that the banner message about portal behaviors persists even after you give yourself more admin rights per RBAC roles.
Because I think this issue is resolved, I'm going to close it, but if you have more feedback, you can post it here and I'll see it.  Thanks for your patience in working through these doc updates!
#please-close


IPv6 subnet/range details

The documentation says: "If you have VNet traffic blocked by a Conditional Access policy, check your Azure AD sign-in log. Once you’ve identified the traffic, you can get the IPv6 address being used and exclude it from your policy."
How can we determine the IPv6 address (single Network Interface Card) of the range (complete subnet in the vNet) up front? Or at least how large are the IPv6-ranges (I now made an assumption that is /120 to allow multiple Virtual Machines)?

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

ID: 74b164a7-31c5-7cb3-c8e2-7533d375bd43
Version Independent ID: 11399252-d935-2cba-a414-a44e51e67007
Content: Location condition in Azure Active Directory Conditional Access
Content Source: articles/active-directory/conditional-access/location-condition.md
Service: active-directory
Sub-service: conditional-access
GitHub Login: @MicrosoftGuyJFlo
Microsoft Alias: joflore

@nduijvelshoff Thank yo for your query. We will investigate and update the thread.

#59437  Closing as duplicate for 59437


STG95 Files OAuth - full data plane support

API change check
APIView has identified API level changes in this PR and created following API reviews.
com.azure:azure-storage-file-share


K8SPS-53 use '--safe-slave-backup' option for backups

Test name
Status

config
passed

init-deploy
passed

monitoring
failed

semi-sync
passed

service-per-pod
passed

scaling
passed

sidecars
passed

users
failed

demand-backup
passed

We run 9 out of 9

commit: https://github.com/percona/percona-server-mysql-operator/pull/92/commits/3a46561e00cacd103606cd73ab888ef7ebcd7a26
image: perconalab/percona-server-mysql-operator:PR-92-3a46561


[Relay][Dyn] Dynamic TopK Op

@zhiics @lixiaoquan @kevinthesun
This splits dynamic TopK out of the standard op, many thanks to @kevinthesun for all of the pieces. :)
Adds the op to the dynamic to static pass, and adds dynamic testing.
Thanks!

@lixiaoquan @kevinthesun please https://tvm.apache.org/docs/contribute/code_review.html#approve-and-request-changes-explicitly

Thanks @mbrookhart @lixiaoquan @kevinthesun


Census URLs have moved

Expected behaviour
Census Header and Footer links work
Actual behaviour
Census Header and Footer URLs have moved, links return 404 .
Steps to reproduce the behaviour

Launch a Census questionnaire
Verify header and footer links work and go to the correct place

Technical information
URLs are:

Link name
URL

Help for RH and eQ (English)
https://www.ons.gov.uk/censushelp

Help for RH and eQ (Welsh)
https://www.ons.gov.uk/helpcyfrifiad

Privacy (including cookie notice at top of the RH page)(English)
https://www.ons.gov.uk/census/censustransformationprogramme/privacystatement

Privacy (including cookie notice at top of the RH page)(Welsh)
https://cy.ons.gov.uk/census/censustransformationprogramme/privacystatement

Terms and conditions (English)
https://www.ons.gov.uk/census/censustransformationprogramme/termsandconditions

Terms and conditions (Welsh)
https://cy.ons.gov.uk/census/censustransformationprogramme/termsandconditions

Accessibility (English and Welsh)
https://www.ons.gov.uk/help/accessibility

ONS website (English and Welsh)
https://www.ons.gov.uk

Individual questionnaire request page (English and Welsh)
https://www.census.gov.uk/individualquestionnaire

Languages redirect from back of ICL (English)
https://www.census.gov.uk/languages

Languages redirect from back of ICL (Welsh)
https://www.cyfrifiad.gov.uk/ieithoedd

Redirect put on ONS website. Closing.


How to capture a CPU profile of an extension loading?

I've had a few users report that VS Code shows a warning about bad "High CPU" from my extension. I managed to get one of them to attach a profile trace, and it shows really bad performance during the loading of my extension:

It seems like lots of time is spend loading and compiling the JS files (a surprising amount - for ex. the big "(anonymous)" blog bottom left-of-center is seemingly compiling a 300 line file.
In order to improve things (which will probably be via cutting down on the number of files, or packing the extension) I'd really like to be able to measure the impact of the changes I'm making - however I can't find any way to profile the initial loading of an extension like this (the users profile was auto-generated by VS Code).
Once the extension is loaded, I can profile it from the "Running Extensions" page, but that's too late.
Is this possible? If not, please consider this a request for such.

As a sort-of workaround, you can force the automatic dump of a profile by putting a loop that lasts for >3 seconds in top-level code:
const time = Date.now();
let i = 0;
while (Date.now() - time < 3000) {
	i++;
}
console.log(i);

The profile seems to cut off at 5s though, so seems you need to aim for the total to be >3s but <5s to get everything you need in the profile.

F1> Show Running Extensions
Select 'start extension host profile'
Activate your extension, e.g trigger its activation event
Stop profiling, save profile

If that doesn't work for you, e.g when you must be *-activated then use this cmd-line switch
--inspect-brk-extensions <port>    Allow debugging and profiling of extensions with the extension host being paused after start. Check the developer tools for the connection URI.

It seems like lots of time is spend loading and compiling the JS files (a surprising amount - for ex. the big "(anonymous)" blog bottom left-of-center is seemingly compiling a 300 line file.

That's very likely and likely doesn't reproduce on a fast machine, see https://github.com/Microsoft/vscode/wiki/Explain:-extension-causes-high-cpu-load#code-loading. We strongly encourage to bundle extensions as this cuts down loads costs dramatically

F1> Show Running Extensions
Select 'start extension host profile'
Activate your extension, e.g trigger its activation event

To activate my  extension I need to open a folder, which seems to restart the extension host, which seems to cancel this profiling?

We strongly encourage to bundle extensions as this cuts down loads costs dramatically

That's specifically what I was trying to measure. Since bundling is going to cause pain with testing (or result in not testing the same code I'm shipping) I want to be sure I can see the benefits.
As it turned out, measuring by forcing the profile with my loop above, on my (fast) machine it seemed to go from around 1s to around 0.1s so it does seem like a good saving. I'll see if I can come up with a reasonable compromise for the tests.

(Thanks!)


Update comment ID type

Changed the comment ID type from string to int.
Reason: an error was occurring during json marshall when adding a comment to a task.

HI, @jonathanschmittcs. Thank you for your contribution.
Could you please confirm the failed CI job?

HI, @jonathanschmittcs. Thank you for your contribution. Could you please confirm the failed CI job?

Sure 😃 ! I also implemented some methods and tests for time tracking.
Thanks for creating go-clickup ❤


Publish the C api crate a library

Motivation
Enabling the blazesym-c crate as a library ensures that we can compose the blazesym library with other rust libraries that would publish C bindings.

This seems fine to me, thanks, but for my understanding, can you describe in more detail what the problem is? Conceptually, nothing except C code should depend on blazesym-c would be my take, so I fail to see where the composability requirement is coming from (but surely it's just my lack of imagination).

This seems fine to me, thanks, but for my understanding, can you describe in more detail what the problem is? Conceptually, nothing except C code should depend on blazesym-c would be my take, so I fail to see where the composability requirement is coming from (but surely it's just my lack of imagination).

Here is my use case:
I have a C++ binary that already links with a rust (static) library.
I want to add blazesym to the existing rust library and expose the blazesym C APIs. I don't want to build and pull in two libraries into the C++ binary. That would pull in separate rust runtimes and would be wasteful (and possibly would not work if rust versions are different?).
By making the crate a lib, I am able to compose the C APIs of my existing rust library with the blazesym C APIs.

I updated the commit to sign it.

Thanks for the explanation.

I updated the commit to sign it.

Thanks, I think DCO is still barking about a mismatch:

Commit sha: 8f6b727, Author: r1viollet, Committer: r1viollet; Expected "r1viollet<EMAIL_ADDRESS>but got "r1viollet<EMAIL_ADDRESS>
Can you please fix that? Then we can go ahead with the merge.

<EMAIL_ADDRESS>
Sorry about that, fixed.

Thank you! I think next around CI should start automatically without requiring explicit approval for each run...that's some GitHub weirdness.


GKE ingress health check fails

If someone is to create a GKE ingress, it requires that the health check endpoint respond with a code 200 as described here. Currently, the workaround is to switch back to the / endpoint rather than the /health because / responds with a 200 rather than a 204.
readinessProbe:
  httpGet:
    path: /
    port: 7700

I haven't looked at the helm charts, but I did modify the /manifest/meilisearch.yaml file to include the above change and that allowed me to pass the GKE ingress health checks.

@alimoabd2127
The / route sends a 200 only when in development environment, but as soon as you run it in production environment, this behavior changes, and this workaround won't be a solution anymore. This should be indeed treated in MeiliSearch core itself, to fix the problem!
Thanks for the issue!

Hello @alimoabd2127!
A fix will be done in a near future to fix this issue in the MeiliSearch repo!
Closing this issue since it's related to this repo!
And thanks @alimoabd2127 for the workaround


bigkeys

top 10 bigkeys只显示其中6个key

rdb -c bigkey -n 10 <IP_ADDRESS>_6379.rdb
database,key,type,size,size_readable,element_count
0,one,string,88,88B,0
0,key:3275,string,72,72B,0
0,jaava,hash,66,66B,1
0,key:42,string,64,64B,0
0,key:1111,string,56,56B,0
0,java,string,48,48B,0

let me see see

thank you


Upgrade to ada 2.5.0

This PR updates ada to 2.5.0, and the version for this library to 0.2.0 (should we call it 1.0.0?).

Let's go for 1.0.0 👍


fix(dt): policy in example

Description
This updates the example to the proper set of odrl-constraints for the dataspace in operation since R24-08. Raised by @markuskeidl
Pre-review checks
Please ensure to do as many of the following checks as possible, before asking for committer review:

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

I am not sure if we should remove the membership credential as you proposed. @DanielaWuensch : What is your opinion about this?


[1.7] backport #17885

Backport #17885

@mxnet-bot run ci [unix-cpu]

@mxnet-bot run ci [unix-gpu, windows-gpu]

@samskalicky Can we rename the PR title to have 1.x instead of 1.7 since that's the base branch for this PR?


ARROW-12575: [R] Use unary negative kernel

@thisisnic could you add some tests with multiple unary negative operators stacked up. Maybe test with odd & even numbers of them, and parens also, e.g.
---2
-(-(-2))
--2
-(-(2))

@thisisnic could you add some tests with multiple unary negative operators stacked up. Maybe test with odd & even numbers of them, and parens also, e.g.
---2
-(-(-2))
--2
-(-(2))

Wouldn't this just be testing R's parser?

The multiple negations and parenthesis are resolved on R side as only the resolved value is passed to the C++ backend. If the expression was passed as a string then it would make sense to check these cases.
When we did the C++ tests, we checked for nested negations and they passed (although these tests were not included in the final PR).

Wouldn't this just be testing R's parser?

In theory yes? I tend to have this philosophy re tests: https://twitter.com/gshotwell/status/1389563734679605251?s=20


Login Form Broken Link

Describe the bug
In the login Form Conditions of use, link is broken. On clicking it links to the Home page like you can see in the video.
https://www.loom.com/share/d395ddc7cac04b0dbb372585692f14ae
But in Code

there is an anchlink variable present which links to Amazon's Condition of use

Expected behaviour
It should Redirect to this link.
https://amazon.in/gp/help/customer/display.html/ref=ap_signin_notification_condition_of_use?ie=UTF8&nodeId=200545940
Screenshots
No response
Additional context
No response

Hey! @Kanika637 can you checkout this issue and if it is correct than can you assign it to me.

Thanks for opening the issue @mecskyverse .Go ahead🚀


Create a page corresponding to forget password link | GSSoC '23

Context
The currently existing forget password link does not correspond to a page where user can visit to complete their request of changing password.
Expected Behavior
According to me there must exist two pages :-

To verify user is the owner of the account, ( we can either have an OTP type input field where user has to enter the OTP, or we can have a simple page that tells that a email regarding reset of the password has been sent to the user)
Upon verification the user is able to go forward and change password ( either by opening the email link or by entering the OTP)

My solution for now will focus on front end part.
Current Behavior
Currently no pages corresonding to password reset exist.

OK, I will follow the Email verification direction, Thank You.

@aceta-minophen Please Review , https://github.com/agamjotsingh18/pollitup/pull/98

@AmoghCreator could you work on #122 also ?

@AmoghCreator could you work on #122 also ?

Yes, I'll be happy to .


"File has no contents" while loading

When loading a file, the main file pane shows the false message "File has no contents" as an inaccurate informational point:

When loading a large file, or a medium-large diff (by clicking on a file name in the Git tab; package-lock.json often does it for me), or even a small file on a slow computer, this message might be displayed for a long time, long enough that the user might believe it and wonder where the contents of the file went.
If they leave it open to "File has no contents" for long enough (which might extend into tens of minutes or hours), the contents will eventually appear, but the informational message is telling the user the opposite of that.  They may click away to investigate long before the contents appear.
The desired behavior is that when loading, the pane says "Loading" instead of "File has no contents." If the file has finished loading, and been conclusively found to have no contents, the message should then change, but not before.
Versions
//atom --version
Atom    : 1.23.2924.87
Electron: 1.6.15
Chrome  : 56.0.2924.87
Node    : 7.4.0
//apm --version:
apm  2.4.3
npm  6.2.0
node 10.2.1 x64
atom 1.40.1
python
git 2.15.0.windows.1
visual studio 2015
Win10 Pro

Atom    : 1.41.0
Electron: 4.2.7
Chrome  : 69.0.3497.128
Node    : 10.11.0

Consider updating your software:
https://github.com/atom/atom/releases/
Please return to tell us if anything changed.

// atom --version
Atom    : 1.41.0
Electron: 4.2.7
Chrome  : 69.0.3497.128
Node    : 10.11.0

// apm --version
apm  2.4.3
npm  6.2.0
node 10.2.1 x64
atom 1.41.0

Your Atom version looks strange.
Did you use an install from ..?
https://github.com/atom/atom/releases/

@WilSnoop I agree the version looks strange, but yes.   However, this has been an issue for a while now, going back several versions.

@wbt, I can't seem to reproduce this error on atom 1.41.0, can you confirm this exists on atom 1.41.0 ?

@darangi Do you know if there are good informational resources about what all customizations get lost in reinstalling/upgrading?

@wbt : See if the following is helpful -
https://discuss.atom.io/t/error-while-installing-atom/69666/2

I do still occasionally experience this issue.  Things tend to load faster than before, but better distinction between "loading" and "no contents" is still desirable.

I do still occasionally experience this issue.  Things tend to load faster than before, but better distinction between "loading" and "no contents" is still desirable.


Import the container image if any tag is not found on the current ones.

This will ensure that as long as there's one unmatched new tag, we'll
import (and retag) the container image.
Fixes: bsc#1090841

Will verify the fix and give feedback here.

@ereslibre Did you verify it's working?

I can confirm it works in an artificial test I did, but didn't yet verify it works in the original environment where this happened:
caasp-admin:~ # docker images | grep haproxy
sles12/haproxy            1.6.0               ae179d271f06        17 hours ago        172MB
sles12/haproxy            1.6.0-1.271         ae179d271f06        17 hours ago        172MB
sles12/haproxy            latest              ae179d271f06        17 hours ago        172MB
caasp-admin:~ # docker rmi sles12/haproxy:1.6.0-1.271
Untagged: sles12/haproxy:1.6.0-1.271
caasp-admin:~ # container-feeder
caasp-admin:~ # docker images | grep haproxy
sles12/haproxy            1.6.0               ae179d271f06        17 hours ago        172MB
sles12/haproxy            latest              ae179d271f06        17 hours ago        172MB
caasp-admin:~ # ./container-feeder
INFO[0003] Successfully imported the following images:
INFO[0003]   - docker.io/sles12/haproxy:1.6.0
caasp-admin:~ # docker images | grep haproxy
sles12/haproxy            1.6.0               ae179d271f06        17 hours ago        172MB
sles12/haproxy            1.6.0-1.271         ae179d271f06        17 hours ago        172MB
sles12/haproxy            latest              ae179d271f06        17 hours ago        172MB

I confirm this fix works on the affected original environment.

 Bug 1090841 - updates can break when container-feeder skips loading images


The literature export function gives an empty file

The literature export function gives an empty file
Clicking on the download as TSV on the literature search in the web interface file gives an empty file: https://www.gbif.org/resource/search?contentType=literature&gbifDatasetKey=50c9509d-22c7-4a22-a47d-8c48425ef4a7

Github user: @ManonGros
User: See in registry - Send email
System: Safari 17.4.1 / Mac OS X 10.15.7
Referer: https://www.gbif.org/resource/search?contentType=literature&gbifDatasetKey=50c9509d-22c7-4a22-a47d-8c48425ef4a7
Window size: width 1717 - height 926
API log
Site log
System health at time of feedback: OPERATIONAL

fixed and deployed to prod


Concatenate SSH command for user

If the container has a "ssh" port, concatenate the SSH information for better user experience

Test cases:

submit an SSH-enabled job; click View SSH Info on job detail page; make sure the command is usable

submit an SSH-disabled job; click View SSH Info on job detail page; make sure the command reminds you to enbale SSH


[Bug]: win11 won't boot

Is there an existing issue for this?

[X] I have searched the existing issues

Machine specifications
Intel(R) Core(TM) i7-1165G7 @ 2.80GHz, 2803 Mhz, 4 Core(s), 8 Logical Processor(s)/ 32GB RAM
Operating system
Linux LT-ANTOINEM <IP_ADDRESS>-microsoft-standard-WSL2 #1 SMP Thu Jan 11 04:09:03 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Docker version
Docker version 26.0.0, build 2ae903e
Description
Using a Win11, x64 as host, the script fails to boot win11 to completion
Docker compose
docker run -it --rm --name windows -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 120 -e BOOT_MODE=windows_plain dockurr/windows
Docker log
?
Screenshots (optional)

You could also increase your WSL system's RAM in your .wslconfig file in your Windows home directory, assuming your machine has enough RAM to begin with.

I think i got the same issue.
Environment:

Ryzen 9 3950X
128G RAM
Windows 10 22h2 19045.3930
WSL2

I'm trying to run it without kvm
Docker compose
version: "3"
services:
  windows:
    image: dockurr/windows
    container_name: windows
    environment:
      VERSION: "win11"
      KVM: "N"
      CONSOLE: "Y"
      CPU_CORES:  "8" # I also tried to remove quotes char
      DISK_SIZE: "100G"
      RAM_SIZE: "8G"
      HV: "N" # I tried to remove it also
      BOOT_MODE: "windows_plain" # i also try with UEFI
    cap_add:
      - NET_ADMIN
    ports:
      - 8006:8006
      - 3389:3389/tcp
      - 3389:3389/udp
    stop_grace_period: 2m
    restart: on-failure

Result

Tell me if it's not related to this issue.

I think I also have the same issue I am stuck at
docker run -it --rm --name windows -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 120 dockurr/windows
❯ Starting Windows for Docker v3.01...
❯ For support visit https://github.com/dockur/windows
BdsDxe: loading Boot0004 "Windows Boot Manager" from HD(1,GPT,FD4B275D-953A-4181-95F0-26E5FFBCD081,0x800,0x40000)/\EFI\Microsoft\Boot\bootmgfw.efi
BdsDxe: starting Boot0004 "Windows Boot Manager" from HD(1,GPT,FD4B275D-953A-4181-95F0-26E5FFBCD081,0x800,0x40000)/\EFI\Microsoft\Boot\bootmgfw.efi

@OlivierArgentieri If you set RAM_SIZE to 2G, does it make a difference?

Thank you for your reply !
No i got the same result.

@OlivierArgentieri This means its running connect to that port and you will see that Widows is installing

@OlivierArgentieri This means its running connect to that port and you will see that Widows is installing

But i mean, it's loading endlessly like this:

Are this message the error message or it's just the normal behavior ?
BdsDxe: failed to load Boot0002 "UEFI QEMU QEMU HARDDISK " from PciRoot(0x0)/Pci(0xA,0x0)/Scsi(0x0,0x0): Not Found

I've increased my WSL RAM in .wslconfig to 8GB but didn't notice a change in the reported RAM size, so in addition added an explicit RAM size and now the win11 ran to completion:


Custom validation

Hey guys, it's possible to add new kind of validation for card number? for example:
XXXX XXXX XXXX 3456 to be valid!

Not at the moment, happy to keep this issue open about it though if I have time to work on it. I can add the ability to add new types w/ a provider.

@bendrucker Can you suggest any quick way?

@bendrucker, man any idea on how to do that that will be great 👍

Yeah it would be awesome to add extra validation when running through test card sequences like 4222 2222 2222 2222 etc so you could define a list of test cards that will pass

Closing based on inactivity, I'm not planning on taking this on


Feedback from Rory White

Hello group 20, I love your dashboard. It's really impressive and I like the concept of visualizing CO2 emissions. It's a good counterpoint to our dashboard which helps people emit by flying.
Here is my feedback for how you could make it more useful:

Some of the filtering, for instance by year, is quite slow. Could you speed that up by indexing columns or something like that?
Consider implementing a toggle between total emissions and per capita emissions to provide a fairer representation
The map visualization and bar chart is very red, you could consider a wider color range with yellow colours too to enable a more intuitive understanding for the user.
You could pair the color range on the map with the range on the bar chart, so countries are the same color on both.
When you click on one country on the map it filters to that, but if you click on another afterwards it doesn't update. You could consider implementing that so it updates.
If possible, you could try to fit it on a single view, so that it doesn't require scrolling to see the whole dashboard. You could do this by making it responsive to the screen size.
It doesn't seem possible to select an individual year. I think that for some policy uses people will definitely want to look at a single calendar year, so you could update your slider to allow this if possible.

Thanks so much for this helpful feedback Rory!

Thanks for the feedback Rory! Below are our responses to your suggestions:

Some of the filtering, for instance by year, is quite slow. Could you speed that up by indexing columns or something like that?

We've optimized the dashboard as much as we can (i.e., having a pre-processed/cleaned paraquet file and implementing memory caching) but there is still some lag as a result of how large the dataset was. We've added a loading animation to help our users' expectations as plots update ✅

Consider implementing a toggle between total emissions and per capita emissions to provide a fairer representation

Thanks for the suggestion! As this additional callback might be a bit more involved, we decided on a middle ground for the current implementation, by having an additional plot (i.e., cumulative CO2 emission per country per capita). ✅

The map visualization and bar chart is very red, you could consider a wider color range with yellow colours too to enable a more intuitive understanding for the user.

We changed the default red colour scale to a custom colour scale that incorporates more orange/yellow to help distinguish the colours a bit more. We also implemented a log-scale for the colour range so that the countries in the middle of the range can be more easily distinguished from one another ✅

You could pair the color range on the map with the range on the bar chart, so countries are the same color on both.

We thought about the implementation of this detail, but decided against implementing it, as the top emitters would have very slightly different shades of red, which might not look all that different from what we currently have ✖

When you click on one country on the map it filters to that, but if you click on another afterwards it doesn't update. You could consider implementing that so it updates.

We made box select our current default, which gets around this issue ✅

If possible, you could try to fit it on a single view, so that it doesn't require scrolling to see the whole dashboard. You could do this by making it responsive to the screen size.

Thanks for this suggestion! The screen size responsivity is a bit tricky given the final layout we decided on. This is something we're hoping to look into for future implementations, time permitting ✖

It doesn't seem possible to select an individual year. I think that for some policy uses people will definitely want to look at a single calendar year, so you could update your slider to allow this if possible.

We understand that this is an important aspect that policy makers might be interested in, however, the restricted year range is an intention decision, as we wanted to showcase the trendline plot of temperature/CO2 over time, for the current implementation of the dashboard ✖


Hero Skills and Cooldowns

Hi!
I need to check out which Abilities a Hero has skilled how much, and if it is on CD.
I found this one:
+-------+--------------------------------------------------+----------------------+
| 10/1  | m_hAbilities.0001                                | 15696234             |
+-------+--------------------------------------------------+----------------------+
And then we have the CDOT_Ability Entity. I am just confused how those 2 match. What dies the value 15696234 tell me? Anywhere i can look that up or match it to the Abilitiy Entity?
Maybe ill just go for the Ability Entity and store that somewhere so I know which is updated. But still the m_hAbilities.xxxx bothers me. Anyone know why there aer 16 slots for that?
Regards and thanks in advance
Peter

It's a handle (Properties starting with m_h are handles)
You can get the corresponding ability-entity by using ctx.getProcessor(Entities.class).getByHandle(theHandle)
And I think it's 16 slots to allow custom game developers some headroom.

Thanks! That really helped me out alot! Thank you!!!