Kubernetes Backstage Plugin - Kubernetes Proxy API Route

Overview
This PR is an implementation of this RFC. In short, the code adds a proxy (/proxy) route to the Backstage K8s plugin which will allow Backstage plugins to make arbitrary requests against the K8s REST API.
The main benefit to this proxy route is that Backstage plugins can (more easily) make write requests against K8s and access data that was previously inaccessible from the Backstage K8s backend plugin.
Security
We are implementing an "opaque-token" approach for authenticating to K8s. When the K8s backend plugin receives a proxy request for one or multiple clusters, it parses names and Kubernetes tokens for each cluster in the request header. Then, the K8s backend puts together a request for each cluster using the cluster address and optional CA data stored in app-config.yaml. The responses are aggregated and sent as one object to the requestor.
Since the K8s backend plugin will not be storing any information/secrets, we are delegating secret/token management to the plugins making requests against the proxy themselves.

Functionality
To test the functionality of the proxy, follow these steps:

Pull the branch and run the Backstage backend (yarn start-backend), identify the address it's running at
Identify the K8s API route you'd like to test, and URI encode it (for example, api/namespaces becomes api%2Fv1%2Fnamespaces)
Create the a valid X-Kubernetes-Clusters header object (more on that later)
Make a request to the proxy using the Backstage backend address, API route, and X-Kubernetes-Clusters header

For example, if my Backstage backend is running at localhost:7007, and I want to make a proxy request to /api, I would send a request that would look something like this:

The X-Kubernetes-Clusters object
The Kubernetes proxy supports multi-cluster requests (making the same request to multiple clusters). Each cluster's name and token is stored in a key-value map, where the cluster's name is the key, and the cluster's token is the value. This map is then encoded with Base64. For example, if we wanted to make a request to cluster1 and cluster2, we would make a map object that looks like this:
{
  "cluster1": "token1",
  "cluster2": "token2",
}

Then, we would convert the object to Base64:
ewogICJjbHVzdGVyMSI6ICJ0b2tlbjEiLAogICJjbHVzdGVyMiI6ICJ0b2tlbjIiLAp9

This encoded string (ewog...) should then be included in the request as the X-Kubernetes-Clusters header.
Response format
Much like the X-Kubernetes-Clusters header, the response returned by the proxy is again a key-value map, with the key identifying the name of the cluster and the value containing the actual response from the Kubernetes API. For our example request against /api for cluster1 and cluster2, we could expect a response somewhat like this:
{
    "cluster1": {
        "kind": "APIVersions",
        "versions": [
            "v1"
        ],
        "serverAddressByClientCIDRs": [
            {
                "clientCIDR": "<IP_ADDRESS>/0",
                "serverAddress": "<IP_ADDRESS>:8000"
            }
        ]
    }
    "cluster2": {
        "kind": "APIVersions",
        "versions": [
            "v1"
        ],
        "serverAddressByClientCIDRs": [
            {
                "clientCIDR": "<IP_ADDRESS>/0",
                "serverAddress": "<IP_ADDRESS>:8001"
            }
        ]
    }
}

⚠ IMPORTANT: ⚠ Since we need to return data in a consistent format for multiple responses, the response returned by the proxy will always be in JSON, regardless of the original Content-Type sent by the request. If the Content-Type of the proxy request is NOT application/json, the response from each cluster will be treated as a string. A response for a non-JSON request will look something like this:
{
    "cluster1": "Some encoded string 1",
    "cluster2": "Some encoded string 2",
}

Checklist

[x] A changeset describing the change and affected packages
[ ] Added or updated documentation
[x] Tests for new functionality and regression tests for bug fixes
[x] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message

Hey, you'll need to run yarn build:api-reports and commit the results as well whenever you make public API changes (see the build log).

@freben thanks for the tip - I ran yarn build:api-reports plugins/kubernetes-common and committed those results, but the same checks are still failing. When I run yarn build:api-reports, I get errors with these files, none of which are changed as part of the PR:
rathkel@rathkel-a01 backstage % yarn build:api-reports
yarn run v1.22.19
$ yarn build:api-reports:only --tsc
$ ts-node -T -P scripts/tsconfig.json scripts/api-extractor.ts --tsc

TIP: You can generate api-reports for select packages by passing package paths:

       yarn build:api-reports packages/config packages/core-plugin-api

$ tsc --project /Users/rathkel/Documents/GitHub/backstage/tsconfig.json --skipLibCheck false --incremental false

Found 56 errors in 23 files.

....................

 Are there any recommended steps towards resolving these issues?

A bunch of little comments - hope that's ok

Thank you so much for the detailed feedback! I will get to these items today.

Hi @freben -- @liamrathke issued this PR as part of an internship that has since concluded, and @RubenV-dev is planning to take over handling any further feedback. If I've understood correctly, e1d655800310503c194af9ef45cce16d2e837728 should address the following unresolved conversations:

undesired ts-ignore
incomplete type export
unnecessary backticks
surprising user name constant

Do you actually have permission to resolve these threads? Reading the docs I'm a bit worried that you don't 😬. Maybe we need to do some administration on the VMware side to keep this moving...
In any case, I think that leaves us with the following conversations still to resolve:

inappropriate handling of the missing cluster supplier
proxy member instantiated in constructor
error-prone construction of Request object
wrong visibility of getProxyServices method
failing to use msw for request stubbing
swallowing errors from bad cluster tokens encoding

I know it's been almost 2 weeks since the last discussion here -- so sorry for the delay (I was on vacation), but if you're up to it, can you look over this and check my understanding?

I can resolve my own comments sure! Sounds like it's complex enough that a re-review might be in place. Either way I see that the build is red and there are conflicts. So a good way forward would be to clear all that up for starters.

@jamieklassen Just a mild ping to remove the stale label, no rush

This has been on hold while I summarized our research and explored and refined some requirements for #13685. I expect to return to this soon.

Remember to run yarn build:api-reports and commit all api-report.md changes as well.

@Rugvip Can I get another check? I believe I have addressed most if not all of the comments, but can't resolve them since I'm not the owner of the PR nor a maintainer.

Tests are failing, not sure why the yarn install step of the pipeline is giving error, I can run tests locally fine so far.

I was reading all comments as well as the RFC to try to understand how the proxy works as well as why we didn't use the @kubernetes/node-client library, in short does this describe the purpose of this proxy?:

We provide a way to proxy requests from the user to the cluster to avoid CORS issues
Ensure the requested cluster is configured in the application, be it in the yaml config or the catalog
Ensure authentication is enabled and passed to each cluster based on the tokens in X-Kubernetes-Clusters header
Ignore the type of resource being requested, delegating any resource specific logic to the cluster's API
Allow for multi-cluster requests
Aggregate responses & errors of multi-cluster requests in a single response

If so seems the user/plugin that uses the proxy would be the one to take advantage of the @kubernetes/node-client library, and requests to get properly typed request params & response, as long as it gives the proxy the correct params, so I'm a bit confused about these:

From code URI would land in /proxy/:encodedQuery, however Express will grab until next /, thus the need to URI encode the rest of the path, we could use instead wildcard param /proxy/:query(*) and grab from the params with req.params.query, thus removing the need to encode the rest of the path.
We're supposed to respond with a k8s like object (json) according to RFC comment, which is ok, but what does the apiVersion in root represents? doesn't each cluster have a different apiVersion? or are we going to provide versioning for the proxy?
In the RFC it shows some query params in a request example, would guess our proxy would need to proxy those query params as well? I think we don't at the moment in this PR, should I add it? not sure if the k8s API supports query params.
Feel like we can export a response type with a Generic so the user/plugin can get typings support for the response & based on the resource requested, feed the type of the resource to the generic like KubernetesProxyResponse<T> so the plugin would use it like KubernetesProxyResponse<V1Pod> or KubernetesProxyResponse<V1Cluster>, should I keep it as unknown type or explore this option?

From code URI would land in /proxy/:encodedQuery, however Express will grab until next /, thus the need to URI encode the rest of the path, we could use instead wildcard param /proxy/:query(*) and grab from the params with req.params.query, thus removing the need to encode the rest of the path.

That does sound a lot better - yeah for sure, let's not encode unnecessarily.

We're supposed to respond with a k8s like object (json) according to RFC comment, which is ok, but what does the apiVersion in root represents? doesn't each cluster have a different apiVersion? or are we going to provide versioning for the proxy?

I honestly don't know enough about the intent here, to understand why it's even of interest to make the top level object k8s-like.

In the RFC it shows some query params in a request example, would guess our proxy would need to proxy those query params as well? I think we don't at the moment in this PR, should I add it? not sure if the k8s API supports query params.

That sounds sensible to proxy along, yeah. Maybe there's more stuff too that's not thought of yet.

Feel like we can export a response type with a Generic so the user/plugin can get typings support for the response & based on the resource requested, feed the type of the resource to the generic like KubernetesProxyResponse<T> so the plugin would use it like KubernetesProxyResponse<V1Pod> or KubernetesProxyResponse<V1Cluster>, should I keep it as unknown type or explore this option?

Sounds worth exploring, I'd say.

@freben Can we get a check? keep having to do rebases to fix DCO issues on the squished commits

Hm, why are DCO issues related to rebases? Not sure that a rebase affects that 🤔 if you add a --signoff of your own on the rebased commits that should be fine. You could even squash into a single commit and add both of your signoffs onto that one, to keep things simple. I'm personally not one of the many-commits-type-person so I wouldn't bat an eye at least :)
I'll do a review soon again, sure.

@freben I would expect the same, but for some reason, my squashes in this PR sometimes break DCO check when I rebase from the master branch, even if it's correctly signed off, I even do the rebase again to fix it but don't actually change the message...

Alright. What's the state of the PR in general? After the RFC update to do single-cluster especially

It should be ready, @jamieklassen gave it a check as well, the only thing I think could be missing that was not mentioned in the RFC is the CORS configuration to ensure only backstage domains are allowed to make use of the proxy (like the base app or the plugins), not sure if it is a good idea or not...

This PR looks good! Would you mind adding some documentation for plugin authors & integrators?

FYI - i'm making some adjustments on top of this, pushing to your branch because we needed to clean up our index files anyway. Hang on, I'll report back in a little bit

Nice 👍👍🎉🎉


Fix tests for step 25 of Football team cards to allow for arrow function callbacks or regular functions

Describe the Issue
A camper on the forum ran into an issue here
https://forum.freecodecamp.org/t/learn-modern-javascript-methods-by-building-football-team-cards-step-25/685021
They wanted to know why they couldn't pass with a regular function for the callback.
playerCards.innerHTML += arr.map (function( ) { });

the directions don't specify it should be an arrow function instead.
but both answers should pass.
So the tests should be updated.
Affected Page
https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures-v8/learn-modern-javascript-methods-by-building-football-team-cards/step-25
Your code
see explanation above
Expected behavior
see explanation above
Screenshots
No response
System

Device: [e.g. iPhone 6, Laptop]
OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04]
Browser: [e.g. Chrome, Safari]
Version: [e.g. 22]

Additional context
No response

Hi, Can I work on fixing this issue ? I would need some help in locally setting up so that I can test my code changes.


Update run-kibot.yml

This change sets the kibot workflow to use kicad v7 to match your local version. This allows the automated workflow to update the PCB preview in the main readme file when you change the pcb.

Ahh nice, thanks! ❤


Can you please provide a "requirements.txt" for the python packages and their versions used in this repository

Uploaded requirements.yml
Let me know if you need anything else.

Thank you!


Add an automatic reinstallation process based on semantic.json

This feature is added to allow to automatize a semantic-ui
re-installation with the same configuration (such as in your CI build)
To switch it on, simply add ("auto-install": true) in semantic.json
Of course, configuration name could be changed :)

Could work as a workaround for some cases quoted in https://github.com/Semantic-Org/Semantic-UI/issues/1816

This seems to be an important issue, i'll try to take a look soon.

@jlukic any news here ? Is there anything we can do to get it merged ?

Looking at this today

Thanks for your patience, fixed issue where autoInstall was returning semantic.json instead of setup questions, modified style to match.


[NEW DEVICE] - MyQ - Gate

Which device would you like us to support?
I have my MyQ enabled garage doors and driveway gate linked to my alarm.com account. It works well on the alarm.com app and on the web portal, but the gate does not link to HA. The four garage doors do, but the gate does not. I would like the gate to be a device on HA. It's odd that the integration into alarm.com from MyQ only integrates the four
Where does this device appear in the Alarm.com mobile app?
It shows up in a separate "card" titled GATES
What types of actions does this device support?
Opening and closing
Which provider do you use?
Custom Automated Technologies / alarm.com
Include pyalarmdotcomajax Server Output
I am not sure how to do this without possibly compromising my login credentials.
Include Action Endpoints
I am not sure how to do this but presume it's nearly identical to garage doors.
See screenshot attached.

@elahd (or anyone else) - is there anything I can provide to help someone look into the above?

Can you run through a few command line steps to share the data structure for gates?

Install Python >= 3.9.
Install pyalarmdotcomajax via pip: pip install pyalarmdotcomajax.
Run adc -v -u "your_username" -p "your_password" get -x
Paste all of the text that appears in the ====[ Gate ]==== section.

Just a heads up that the pasted data may leak sensitive information. (I.e.: We'll see what you named your garage door.) Give the text a quick scan and redact anything that you don't want posted.
Thanks!

@elahd Thank you!  See below:
←[1m←[43m←[30m====[ Gate ]====←[0m
{"data": [{"id": "103168694-2209", "type": "devices/gate", "attributes": {"state": 2, "desiredState": 2, "supportsRemoteClose": true, "managedDeviceType": 5, "hasState": true, "canBeRenamed": true, "canBeDeleted": false, "canAccessWebSettings": true, "canAccessAppSettings": true, "webSettings": 1004, "canAccessTroubleshootingWizard": false, "troubleshootingWizard": null, "addDeviceResource": 0, "canBeAssociatedToVideoDevice": false, "associatedCameraDeviceIds": {}, "macAddress": "", "manufacturer": "Chamberlain", "isAssignedToCareReceiver": false, "isOAuth": true, "isZWave": false, "supportsCommandClassBasic": false, "isMalfunctioning": false, "canBeSaved": true, "canChangeDescription": true, "description": "Driveway Gate", "deviceModelId": 9475, "canConfirmStateChange": true, "canReceiveCommands": true, "remoteCommandsEnabled": true, "hasPermissionToChangeState": true, "deviceIcon": {"icon": 305}, "batteryLevelNull": null, "lowBattery": false, "criticalBattery": false}, "relationships": {"system": {"data": {"id": "13207056", "type": "systems/system"}}, "stateInfo": {"data": {"id": "103168694-2209-2", "type": "devices/state-info"}}}}], "included": [], "meta": {"transformer_version": "1.1"}}

Thanks. Try this:

In Home Assistant, go to HACS and click on the Alarm.com integration.
Click on the three dots on the top right, then click on "Redownload".
From the "Select version" menu, select "master", then click download.
Restart Home Assistant.

Does your gate show up? Can you open and close it?

Thank you very much @elahd
I was able to add it to Home Assistant, but it is not functional. It does not allow me to open or close the gate.  Please let me know what to try next.

It would help if you're able to share the debug logs that are generated after you try to open or close the gate. I'm coding in the dark as I don't have a gate myself! You can enable debugging by adding the following to your configuration.yaml, followed by rebooting:
logger:
  default: warn
  logs:
    custom_components.alarmdotcom: debug
    pyalarmdotcomajax: debug

Thanks!

Do you see anything relavent in the logs?
Also, can you press the debug button on the gate in Home Assistant and paste the debug logs here?
First:

Then check HA's logs for a debug entry:

This is all I see, @elahd

@elahd
I found out that when the gate is open, it shows the "close" function and it works perfectly.  It seems that it does not recognize when the gate is shut and it can be opened.
Not sure if this helps, but thought I'd share.

Hi @elahd any update? Thank you!

Hey -- sorry for the radio silence! A bit tied up with the holidays but I'll get back to this soon.

@elahd Thank you and happy holidays!

Thanks!
Try again now. Redownload from the master branch and restart HA.

Hi @elahd I tried this and it does not work. The previous function of closing it when it was left open does still work, though.

Is the open button still disabled? Also, do you see any errors in Home Assistant's logs?

Actually, forget that. It looks like my fix didn't make it into the master branch. It's there now. Can you redownload/reset and test once more?

@elahd It works! Thank you!!

Awesome! It's now released as v2.0.19. Thanks for testing.

Thanks again!


RuntimeError During Training

INFO:zerot:{'train': {'log_interval': 50, 'eval_interval': 100, 'seed': 1234, 'epochs': 20000, 'learning_rate': 0.0002, 'betas': [0.8, 0.99], 'eps': 1e-09, 'batch_size': 32, 'fp16_run': True, 'lr_decay': 0.999875, 'segment_size': 8192, 'init_lr_ratio': 1, 'warmup_epochs': 0, 'c_mel': 45, 'c_kl': 1.0}, 'data': {'training_files': 'filelists/train.txt.cleaned', 'validation_files': 'filelists/val.txt.cleaned', 'text_cleaners': ['japanese_phrase_cleaners'], 'max_wav_value': 32768.0, 'sampling_rate': 22050, 'filter_length': 1024, 'hop_length': 256, 'win_length': 1024, 'n_mel_channels': 80, 'mel_fmin': 0.0, 'mel_fmax': None, 'add_blank': True, 'n_speakers': 0, 'cleaned_text': True}, 'model': {'inter_channels': 192, 'hidden_channels': 192, 'filter_channels': 768, 'n_heads': 2, 'n_layers': 6, 'kernel_size': 3, 'p_dropout': 0.1, 'resblock': '1', 'resblock_kernel_sizes': [3, 7, 11], 'resblock_dilation_sizes': [[1, 3, 5], [1, 3, 5], [1, 3, 5]], 'upsample_rates': [8, 8, 2, 2], 'upsample_initial_channel': 512, 'upsample_kernel_sizes': [16, 16, 4, 4], 'n_layers_q': 3, 'use_spectral_norm': False}, 'model_dir': './logs/zerot'}
WARNING:zerot:/content is not a git repository, therefore hash value comparison will be ignored.
DEBUG:h5py._conv:Creating converter from 7 to 5
DEBUG:h5py._conv:Creating converter from 5 to 7
DEBUG:h5py._conv:Creating converter from 7 to 5
DEBUG:h5py._conv:Creating converter from 5 to 7
INFO:numexpr.utils:NumExpr defaulting to 2 threads.
./logs/zerot/G_0.pth
INFO:zerot:Loaded checkpoint './logs/zerot/G_0.pth' (iteration 1)
./logs/zerot/D_0.pth
INFO:zerot:Loaded checkpoint './logs/zerot/D_0.pth' (iteration 1)
INFO:zerot:Train Epoch: 1 [0%]
INFO:zerot:[6.072409152984619, 6.071518421173096, 0.25956135988235474, 96.23096466064453, 2.0617756843566895,<PHONE_NUMBER>3652344, 0, 0.0002]
INFO:zerot:Saving model and optimizer state at iteration 1 to ./logs/zerot/G_0.pth
INFO:zerot:Saving model and optimizer state at iteration 1 to ./logs/zerot/D_0.pth
Traceback (most recent call last):
File "train.py", line 290, in
main()
File "train.py", line 50, in main
mp.spawn(run, nprocs=n_gpus, args=(n_gpus, hps,))
File "/usr/local/lib/python3.7/dist-packages/torch/multiprocessing/spawn.py", line 200, in spawn
return start_processes(fn, args, nprocs, join, daemon, start_method='spawn')
File "/usr/local/lib/python3.7/dist-packages/torch/multiprocessing/spawn.py", line 158, in start_processes
while not context.join():
File "/usr/local/lib/python3.7/dist-packages/torch/multiprocessing/spawn.py", line 119, in join
raise Exception(msg)
Exception:
-- Process 0 terminated with the following error:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/dist-packages/torch/multiprocessing/spawn.py", line 20, in _wrap
fn(i, *args)
File "/content/train.py", line 117, in run
train_and_evaluate(rank, epoch, hps, [net_g, net_d], [optim_g, optim_d], [scheduler_g, scheduler_d], scaler, [train_loader, eval_loader], logger, [writer, writer_eval])
File "/content/train.py", line 144, in train_and_evaluate
(z, z_p, m_p, logs_p, m_q, logs_q) = net_g(x, x_lengths, spec, spec_lengths)
File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py", line 722, in _call_impl
result = self.forward(*input, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/torch/nn/parallel/distributed.py", line 511, in forward
output = self.module(*inputs[0], **kwargs[0])
File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py", line 722, in _call_impl
result = self.forward(*input, **kwargs)
File "/content/models.py", line 495, in forward
z_slice, ids_slice = commons.rand_slice_segments(z, y_lengths, self.segment_size)
File "/content/commons.py", line 63, in rand_slice_segments
ret = slice_segments(x, ids_str, segment_size)
File "/content/commons.py", line 53, in slice_segments
ret[i] = x[i, :, idx_str:idx_end]
RuntimeError: The expanded size of the tensor (32) must match the existing size (0) at non-singleton dimension 1.  Target sizes: [192, 32].  Tensor sizes: [192, 0]

音频过短，已解决


Increase open and read timeouts for TPS client

[#97390140]

We don't believe that the failures in [#97390140] will be fixed with these increased timeouts, and we feel uncomfortable increasing these timeouts as they seem to be working for all other requests. Let's continue the conversation in [#97390140]


Fail to boot if DB schema is incompatible

https://github.com/remind101/empire/issues/890 For background.
This would help in upgrade scenarios, so that a previous version of Empire wouldn't boot against a newer schema, and vice versa.

I think this could just go in the db health check


Flight data

Hi, your research is very useful, I am also currently working on a problem related to flight trajectory clustering, but struggling to find a relevant dataset, I found that Flight data is used in your REPORT, is it possible to provide a relevant dataset please. my email is<EMAIL_ADDRESS>you vert much.

You may use https://seljuk.me/upload/CVRR_dataset_trajectory_clustering.zip to download the public dataset used in the README visualizations. The other dataset showing air traffic on Turkey is private and i'm not allowed to share.


Fix no default account crash on compose

Fix #3538
K-9 already redirects most attempts to compose a message without a default account set to the account setup activity. This fix makes this behavior consistent when the default account isn't set and an attempt to compose a message without an account argument is made from any context.

Thanks!


Topic recognition

Name: Yang Tzu Yu
ID: 48338004
Hi, I'm submitting my code for the Improved UNet for the ISIC 2018 segmentation dataset (Task 1).

train.py: Trains a neural network on the ISIC2018 dataset for skin lesion segmentation using the Improved U-Net architecture, custom loss functions, and learning rate adjustments, followed by a prediction phase.
predict.py: Uses a pre-trained Improved U-Net model to predict skin lesion segmentations on the ISIC2018 dataset, displaying the original images alongside their predicted and true masks.
modules.py: Defines the ImprovedUNet class, an enhanced U-Net neural network model with an encoder-decoder structure and additional convolutional layers for semantic segmentation tasks, optimized for GPU usage if available.
dataset.py: Sets up the ISIC Dataset class for handling ISIC skin lesion images and their corresponding masks, including resizing and optional transformations, and defines specific transformation functions for both images and masks, ensuring compatibility with PyTorch's DataLoader.

Update: It can reach 80% around 40 Epochs

Wrong files path. All student constructed document should be packed in one document under the ‘recognition’ document.
Algorithm solves the problem appropriately. Average Dice Coefficient in testing dataset: 0.85765. Predicted Mask output looks good.
Try to use PyTorch to construct the Improved U-Net model, but the model body is roughly a U-Net-like model(filters start with 64 and end up with 512) instead of the improved U-Net one(filters start with 16 and end up with 256). No data augmentation.
Good coding design.
Sufficient docstring and comment in the code, but need some references.
Easy difficulty problem, no higher difficulty marks.

Wrong files path. All student constructed document should be packed in one document under the ‘recognition’ document.
Algorithm solves the problem appropriately. Average Dice Coefficient in testing dataset: 0.85765. Predicted Mask output looks good.
Try to use PyTorch to construct the Improved U-Net model, but the model body is roughly a U-Net-like model(filters start with 64 and end up with 512) instead of the improved U-Net one(filters start with 16 and end up with 256). No data augmentation.
Good coding design.
Sufficient docstring and comment in the code, but need some references.
Easy difficulty problem, no higher difficulty marks.

So anything that need to improve ir order to get more marks or NO

Wrong files path. All student constructed document should be packed in one document under the ‘recognition’ document.
Algorithm solves the problem appropriately. Average Dice Coefficient in testing dataset: 0.85765. Predicted Mask output looks good.
Try to use PyTorch to construct the Improved U-Net model, but the model body is roughly a U-Net-like model(filters start with 64 and end up with 512) instead of the improved U-Net one(filters start with 16 and end up with 256). No data augmentation.
Good coding design.
Sufficient docstring and comment in the code, but need some references.
Easy difficulty problem, no higher difficulty marks.

So anything that need to improve ir order to get more marks or NO

Just some comments for marking.

Wrong files path. All student constructed document should be packed in one document under the ‘recognition’ document.
Algorithm solves the problem appropriately. Average Dice Coefficient in testing dataset: 0.85765. Predicted Mask output looks good.
Try to use PyTorch to construct the Improved U-Net model, but the model body is roughly a U-Net-like model(filters start with 64 and end up with 512) instead of the improved U-Net one(filters start with 16 and end up with 256). No data augmentation.
Good coding design.
Sufficient docstring and comment in the code, but need some references.
Easy difficulty problem, no higher difficulty marks.

So anything that need to improve ir order to get more marks or NO

Just some comments for marking.

oh ok Thanks, then I'm not gonna change anything in the code

Wrong files path. All student constructed document should be packed in one document under the ‘recognition’ document.        -> FIXED

Marking
Good Practice (Design/Commenting, TF/Torch Usage)
Adequate design and implementation, but not improved UNet model only regular UNet -4
Good spacing and comments
Header blocks missing -1
Recognition Problem
Solves problem
Driver Script present
File structure present
Shows Usage & Demo & Visualisation & Data usage
Module present
Commenting
No Data leakage, no augmentation -1
Difficulty: Easy -10
Commit Log
Meaningful commit messages
Progressive commits used
Documentation
ReadMe acceptable, no usage -1
Model/technical explanation minimal -1
Good Description and Comments
Markdown used and PDF submitted
Pull Request
Successful Pull Request (Working Algorithm Delivered on Time in Correct Branch)
Feedback required, move readme into project, restore repo readme -2
Request Description good

Feedback marks possible +2 if the requested changes are made (see above).

No feedback attempt and no feedback marks granted.

Feedback marks possible +2 if the requested changes are made (see above).

Just saw this now, all done and fixed.
Thank you

No feedback attempt and no feedback marks granted.

Isn’t the attempt till 29th?

Feedback attempt, but not successful. Please see Shakes' instruction above and do the modification works. But I will give you the feedback marks granted +2. Please try it again so that Shakes can merge your pull request.
Cheers.


Unhandled rejection error

While trying out your examples:
var oxford = require('project-oxford'),
    client = new oxford.Client('myAPIKey');

client.emotion.analyzeEmotion({
    path: "01.jpg",
}).then(function (response) {
    console.log(response);
});

i get this error:
Unhandled rejection Error: [object Object]
    at Object.ensureErrorObject (/Users/Javascript/mstest/node_modules/bluebird/js/main/util.js:261:20)
    at Promise._rejectCallback (/Users/Javascript/mstest/node_modules/bluebird/js/main/promise.js:472:22)
    at /Users/Javascript/mstest/node_modules/bluebird/js/main/promise.js:489:17
    at _return (/Users/Javascript/mstest/node_modules/project-oxford/dist/emotion.js:25:13)
    at Request._callback (/Users/Javascript/mstest/node_modules/project-oxford/dist/emotion.js:51:17)
    at Request.self.callback (/Users/Javascript/mstest/node_modules/request/request.js:187:22)
    at emitTwo (events.js:106:13)
    at Request.emit (events.js:191:7)
    at Request.<anonymous> (/Users/Javascript/mstest/node_modules/request/request.js:1048:10)
    at emitOne (events.js:96:13)
    at Request.emit (events.js:188:7)
    at IncomingMessage.<anonymous> (/Users/Javascript/mstest/node_modules/request/request.js:969:12)
    at emitNone (events.js:91:20)
    at IncomingMessage.emit (events.js:185:7)
    at endReadableNT (_stream_readable.js:974:12)
    at _combinedTickCallback (internal/process/next_tick.js:74:11)

Maybe something very trivial i am missing. Any help is very much appreciated.
Thanks in advance.

Can you tack on a error handler, like this?
client.emotion.analyzeEmotion({
    path: "01.jpg",
}).then(function (response) {
    console.log(response);
}).catch(function (err) {
    console.log(err);
});

The error message should help you narrow down the issue.

Continuing on SO


Standardize use of breadcrumb in frontend

Navigation not super clear at the moment, some original pages have breadcrumb but hasn't made it to all pages

@sebastian-echeverria
Breadcrumb is a UI component to show the path you are at in the UI. https://designsystem.digital.gov/components/breadcrumb/
The structure is pretty flat at the moment, so may not be super useful. Let me know what you think after the other navigation updates I made.

Looking at the current status and the current changes, I agree, I don't think this UI component would be very useful, for now. If the structure gets more complex, it could help out, but as I see it now, the navigation bar propvides plenty of cues of where we are, and I don't see what this would add other than redundancy.

Agreed. Can reconsider later if it starts to get confusing again. Thanks


[Banana Cake Pop] Save as for collection

I wonder, is there a possibility to save a collection of graphQl requests to defined location? For local testing BCP is very fine, but how can I share my requests with someone else?
Or I missed some important documentation?

This is coming.

We'll bring data export functionality with the upcoming version which will come in May. In the first version it will be a simple import/export everything solution. The second version will be a more sophisticated solution backed by a cloud service where someone can share portions of a collection with individuals or teams.

It would be great, thank you!


React to WebListener configuration changes.

@davidfowl Does this look better than the MusicStore version?
@JunTaoLuo @mikeharder @muratg @Eilon

Offline :shipit: from @davidfowl


v0.2.2-alpha gets permission denied for uprobe_Http2Client_CreateHeaderFields

Describe the bug
I'm following the getting started guide and instrumentation binary fails giving permission denied (in instrumentation container, and various errors in application containers.)
After applying 'emojivoto-instrumented.yaml' to the deployed emojivoto application, each pod began to get CrashLoopBackOff errors.
$ kubectl get pod -n emojivoto
NAME                        READY   STATUS             RESTARTS      AGE
emoji-6b75c5bb9d-vtv49      1/2     CrashLoopBackOff   4 (85s ago)   3m16s
vote-bot-85c88b944d-zv2bt   1/1     Running            0             21m
voting-6fd5647844-t8kjm     1/2     CrashLoopBackOff   4 (75s ago)   3m16s
web-6669cb5dcb-rclfl        1/2     CrashLoopBackOff   4 (76s ago)   3m16s

The below are kubectl logs results of the application container and instrumentation container.
Application container log
web-6669cb5dcb-rclfl
2023/08/12 07:09:31 Connecting to [voting-svc.emojivoto:8080]
2023/08/12 07:09:31 Connecting to [emoji-svc.emojivoto:8080]
2023/08/12 07:09:31 Starting web server on WEB_PORT=[8080]
2023/08/12 07:09:46 Error serving request [&{GET /api/list HTTP/1.1 1 1 map[Accept-Encoding:[gzip] User-Agent:[Go-http-client/1.1] X-B3-Sampled:[1] X-B3-Spanid:[dd7bd45e48f6f683] X-B3-Traceid:[7e89c05812bf622545bcd8318723da49]] {} <nil> 0 [] false web-svc.emojivoto:80 map[] map[] <nil> map[] <IP_ADDRESS>:56860 /api/list <nil> <nil> <nil> 0xc000473c80}]: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:8080: connect: connection refused"
2023/08/12 07:09:47 Error serving request [&{GET /api/list HTTP/1.1 1 1 map[Accept-Encoding:[gzip] User-Agent:[Go-http-client/1.1] X-B3-Sampled:[1] X-B3-Spanid:[bb4960a75cb6715c] X-B3-Traceid:[9f23f8cebdcff5708a6aafded73079ef]] {} <nil> 0 [] false web-svc.emojivoto:80 map[] map[] <nil> map[] <IP_ADDRESS>:56860 /api/list <nil> <nil> <nil> 0xc00051d440}]: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:8080: connect: connection refused"
(snip)

Instrumentation container log
$ kubectl logs -n emojivoto --tail=-1 web-6669cb5dcb-rclfl -c emojivoto-web-instrumentation
{"level":"info","ts":1691824381.7525637,"caller":"cli/main.go:37","msg":"starting Go OpenTelemetry Agent ..."}
{"level":"info","ts":1691824381.7526317,"caller":"opentelemetry/controller.go:119","msg":"Establishing connection to OTLP receiver ..."}
{"level":"info","ts":1691824383.7542899,"caller":"process/discover.go:55","msg":"found process","pid":19}
{"level":"info","ts":1691824383.7552807,"caller":"ptrace/ptrace_linux.go:121","msg":"attach successfully","tid":124}
{"level":"info","ts":1691824383.7553968,"caller":"ptrace/ptrace_linux.go:121","msg":"attach successfully","tid":19}
{"level":"info","ts":1691824383.7554424,"caller":"ptrace/ptrace_linux.go:121","msg":"attach successfully","tid":20}
{"level":"info","ts":1691824383.755489,"caller":"ptrace/ptrace_linux.go:121","msg":"attach successfully","tid":21}
{"level":"info","ts":1691824383.7555323,"caller":"ptrace/ptrace_linux.go:121","msg":"attach successfully","tid":22}
{"level":"info","ts":1691824383.7555752,"caller":"ptrace/ptrace_linux.go:121","msg":"attach successfully","tid":23}
{"level":"info","ts":1691824383.7556107,"caller":"ptrace/ptrace_linux.go:121","msg":"attach successfully","tid":24}
{"level":"info","ts":1691824383.7556758,"caller":"ptrace/ptrace_linux.go:121","msg":"attach successfully","tid":25}
{"level":"info","ts":1691824383.7557383,"caller":"ptrace/ptrace_linux.go:121","msg":"attach successfully","tid":26}
{"level":"info","ts":1691824383.755764,"caller":"ptrace/ptrace_linux.go:121","msg":"attach successfully","tid":27}
{"level":"info","ts":1691824383.7557971,"caller":"ptrace/ptrace_linux.go:121","msg":"attach successfully","tid":28}
{"level":"info","ts":1691824383.7631552,"caller":"process/analyze.go:94","msg":"Detaching from process","pid":19}
{"level":"info","ts":1691824383.7633414,"caller":"process/analyze.go:139","msg":"mmaped remote memory","start_addr":"7FB215000000","end_addr":"7FB216800000"}
{"level":"info","ts":1691824383.7728987,"caller":"process/analyze.go:168","msg":"found relevant function for instrumentation","function":"net/http.HandlerFunc.ServeHTTP","start":4000480,"returns":[4000557]}
{"level":"info","ts":1691824383.7740054,"caller":"process/analyze.go:168","msg":"found relevant function for instrumentation","function":"google.golang.org/grpc/internal/transport.(*http2Client).createHeaderFields","start":4215872,"retur
ns":[4221143,4227817,4227872]}
{"level":"info","ts":1691824383.7741108,"caller":"process/analyze.go:168","msg":"found relevant function for instrumentation","function":"google.golang.org/grpc.(*ClientConn).Invoke","start":4671232,"returns":[4671538,4671708]}
{"level":"info","ts":1691824383.7741737,"caller":"cli/main.go:79","msg":"target process analysis completed","pid":19,"go_version":"1.15.0","dependencies":{"contrib.go.opencensus.io/exporter/ocagent":"v0.6.0","github.com/census-instrument
ation/opencensus-proto":"v0.2.1","github.com/golang/groupcache":"v0.0.0-20200121045136-8c9f03a8e57e","github.com/golang/protobuf":"v1.4.0","github.com/grpc-ecosystem/grpc-gateway":"v1.14.4","go.opencensus.io":"v0.22.3","golang.org/x/net"
:"v0.0.0-20200425230154-ff2c4b7c35a0","golang.org/x/sync":"v0.0.0-20200317015054-43a54
02ce75a","golang.org/x/sys":"v0.0.0-20200430082407-1f5687305801","golang.org/x/text":"v0.3.2","google.golang.org/api":"v0.22.0","google.golang.org/genproto":"v0.0.0-20200430143042-b979b6f78d84","google.golang.org/grpc":"v1.29.1","google.golang.org/protobuf":"v1.21.0"},"total_functions_found":3}
{"level":"info","ts":1691824383.7742577,"caller":"cli/main.go:85","msg":"invoking instrumentors"}
{"level":"info","ts":1691824383.7846236,"logger":"allocator","caller":"allocator/allocator_linux.go:43","msg":"Loading allocator","start_addr":140402833227776,"end_addr":140402858393600}
{"level":"info","ts":1691824383.7862031,"caller":"instrumentors/runner.go:85","msg":"loading instrumentor","name":"net/http"}
{"level":"info","ts":1691824383.787083,"caller":"inject/injector.go:91","msg":"Injecting variables","vars":{"ctx_ptr_pos":232,"headers_ptr_pos":56,"is_registers_abi":false,"method_ptr_pos":0,"path_ptr_pos":56,"url_ptr_pos":16}}
{"level":"info","ts":1691824383.8583603,"caller":"instrumentors/runner.go:85","msg":"loading instrumentor","name":"google.golang.org/grpc"}
{"level":"info","ts":1691824383.8595946,"caller":"inject/injector.go:91","msg":"Injecting variables","vars":{"clientconn_target_ptr_pos":24,"end_addr":140402858393600,"is_registers_abi":false,"start_addr":140402833227776,"total_cpus":16}}
{"level":"error","ts":1691824383.8649273,"caller":"instrumentors/runner.go:88","msg":"error while loading instrumentors, cleaning up","name":"google.golang.org/grpc","error":"field UprobeHttp2ClientCreateHeaderFields: program uprobe_Http2Client_CreateHeaderFields: load program: permission denied: 890: (bf) r7 = r0: ; buff[(4 * (truncated, 1148 line(s) omitted)","stacktrace":"go.opentelemetry.io/auto/pkg/instrumentors.(*Manager).load\n\t/app/pkg/instrumentors/runner.go:88\ngo.opentelemetry.io/auto/pkg/instrumentors.(*Manager).Run\n\t/app/pkg/instrumentors/runner.go:36\nmain.main\n\t/app/cli/main.go:86\nruntime.main\n\t/usr/local/go/src/runtime/proc.go:250"}
{"level":"info","ts":1691824383.864974,"caller":"grpc/probe.go:240","msg":"closing gRPC instrumentor"}
{"level":"info","ts":1691824383.8649883,"caller":"server/probe.go:241","msg":"closing net/http instrumentor"}
{"level":"error","ts":1691824383.9335227,"caller":"cli/main.go:88","msg":"error while running instrumentors","error":"field UprobeHttp2ClientCreateHeaderFields: program uprobe_Http2Client_CreateHeaderFields: load program: permission denied: 890: (bf) r7 = r0: ; buff[(4 * (truncated, 1148 line(s) omitted)","stacktrace":"main.main\n\t/app/cli/main.go:88\nruntime.main\n\t/usr/local/go/src/runtime/proc.go:250"}
tmc-user@tmcdev1-observer:~/getting-started$

Environment

OS: Ubuntu 22.04.1 LTS (amd64),
Go Version: 1.20 (I think, I'm using release binaries)
Version: v0.2.2-alpha  (dockerhub image digest: sha256:03448c64be10365fa2fa1078ec2aed12ee1d6c91aea7e70beadf506bb3d5fc4c)
kubernetes; 1.27.3 (installed by kind)

To Reproduce
Steps to reproduce the behavior:
Follow getting started guide except:

Replace the image tags in emojivoto-instrumented.yaml from 'otel-go-instrumentation' to 'otel/autoinstrumentation-go:v0.2.2-alpha'

Expected behavior
I don't get the errors reported above.
Additional context
At first, I tried on another k8s cluster using k8s 1.27.4 + crio 1.27.0 + cilium 1.14.0 + go-instrumentation v0.22-alpha (dockerhub) and
got the same error.
Better to build the image using the latest source by myself?
Looks like there are 19 commits after 0.2.2-alpha tag.
$ git log --oneline  -n 20
0e59801 (HEAD -> main, origin/main, origin/HEAD) Merge pull request #246 from open-telemetry/dependabot/go_modules/golang.org/x/sys-0.11.0
a6b2a87 Merge branch 'main' into dependabot/go_modules/golang.org/x/sys-0.11.0
09f5ad9 Fix context propagation across goroutines (#118)
df128e2 Bump golang.org/x/sys from 0.10.0 to 0.11.0
6072ffd Bump go.uber.org/zap from 1.24.0 to 1.25.0 (#245)
9754d1b Bump go.opentelemetry.io/build-tools/multimod in /internal/tools (#247)
c30840a Update generated offsets (#244)
cfc0c7a Bump google.golang.org/grpc from 1.56.2 to 1.57.0 (#243)
3cb8fe3 Bump go.opentelemetry.io/build-tools/multimod in /internal/tools (#242)
298c38b BPF FS: add support for multiple processes (#211)
6cf75fd Bump helm/kind-action from 1.7.0 to 1.8.0 (#226)
51fbba7 Bump go.opentelemetry.io/build-tools/multimod in /internal/tools (#225)
d7d4280 Update generated offsets (#224)
3ed8fe0 Bump github.com/cilium/ebpf from 0.10.0 to 0.11.0 (#216)
0ba0580 Bump docker/setup-buildx-action from 2.8.0 to 2.9.1 (#223)
e495a40 Bump golang.org/x/sys from 0.9.0 to 0.10.0 (#215)
6e9df9d Bump golang.org/x/arch from 0.3.0 to 0.4.0 (#214)
93fe786 Fix dice randint range (#222)
db172c2 (tag: v0.2.2-alpha, tag: test/e2e/nethttp/v0.2.2-alpha, tag: test/e2e/gorillamux/v0.2.2-alpha, tag: test/e2e/gin/v0.2.2-alpha, tag: offsets-tracker/v0.2.2-alpha, tag: examples/rolldice/v0.2.2-alpha) Release v0.2.2-alpha (#213)
7136a5e Merge pull request #221 from open-telemetry/automated/generated-offsets
$

I tried the latest building the go-instrumentation image, but the result was the same.
https://github.com/open-telemetry/opentelemetry-go-instrumentation/commit/0e59801d8cab2585a1c79f18258798d018697623
What information do you need next?

Hi,
I checked using the current HEAD and confirmed this issue is resolved.
Thanks @RonFed !, and I'm closing this issue.
$ git log -n 1
commit 2e7d536515d008ad0778dbb00e7e7c01e7264bd2 (HEAD -> main, origin/main, origin/HEAD)
Author: Tyler Yahn<EMAIL_ADDRESS>Date:   Wed Aug 30 07:52:31 2023 -0700

    Deprecate the gorilla/mux instrumentor and test pkgs (#262)

    * Deprecate the gorilla/mux instrumentor and text pkgs

    * Fix lint
$


Allow search by specific mod requirements

Platform
This feature request concerns: (select all that apply)

[x] Client
[x] Server

Details
In order to find maps which require specific mods such as mapping extensions or Chroma, a search filter should be present in order to locate these maps.
Preferred Solution
I would like an option on the search page to filter by maps which require any mod. Ideally, I'd like to select which mods I wish to filter for, but as an MVP for this feature the ability to show maps which require any mod would be a good first step.

Looking into this a little more, I see that not all custom levels are consistent in how they indicate if there's a mod required.
Perhaps if the _difficultyBeatmapSets[]._difficultyBeatmaps[]._customData.{_warnings,_suggestions} fields are both used as a source.


an option for the xunit file ?

in https://github.com/agallou/atoum-standard-edition/blob/master/configuration.php#L25 we add an environnement variable to indicate where to writte an xunit report (this could be usefull in ci environnements)
Should we add also an option (like a --log-junit <file> for example) ?
(and also, should the presence of the option override the envionnement variable configuration (if the env is present and the option is passed, only the option is used) ? (I think it should)
cc  @jubianchi, @Grummfy ?

in this case it should be the same on other options. I would prefer to have a command that list the env var available

@Grummfy the PR #15 lists available env vars.

nice

So,
what we will do about this one?


UC2/US5 Find datasets on soil carbon

As a researcher,
I want to identify existing documented datasets on soil carbon
so that I can re-use them for my investigations
Extended User Story
SoilWise repository (SWR) could feed Impact4Soil as follows:
•	Projects related to soil organic carbon (SOC) inventoried in SWR could populate the Network module of Impact4Soil with information related to the project and the partners involved in the project
•	Datasets related to soil organic carbon (SOC) inventoried in SWR could populate the Dataset module of Impact4Soil
•	Knowledge extraction (also) via SWR on practices
Acceptance criteria

[ ] System should be able to capture projects related to SOC and be able to extract the info from Cordis
[ ] System should offer a filter option to select datasets by property=SOC

acceptance criteria too weak, this issue aims to discover projects/people? as well as datasets related to soc, mainly predicted soc distribution (in space/time) and/or raw sample data?

Extracted Requirements:

01.1 - Data Discovery - Query Catalogue: search by observable property (SOC)
01.1 - Data Discovery - Query Catalogue: search of datasets, projects, knowledge
04 - Download data: Access SOC data
07 - Harvesting: populate the Dataset module of Impact4Soil
08 - Vocabulary: Vocabs on SOC
10 - Data harmonization: populate the Dataset module of Impact4Soil


Update mifs.py

sklearn.externals.joblib.parallel throws error. To get the cpu count we can use the following.
from multiprocessing import cpu_count

thanks!


Two issues with new version of InputReferenceSelector

Ticket filed by : @CharlesBronzwaer
1.) We get an NullPointerException error when we use an on change microflow. We get this error when the user changes the value of the InputRefSelector when an on change MF is configured in the widget properties:
java.lang.NullPointerException: null
at com.mendix.webui.actions.client.ExecuteAction.execute(ExecuteAction.java:56)
at com.mendix.webui.requesthandling.ClientRequestHandler$$anonfun$handleRequest$1.apply$mcV$sp(ClientRequestHandler.scala:322)
at com.mendix.webui.requesthandling.ClientRequestHandler$$anonfun$handleRequest$1.apply(ClientRequestHandler.scala:315)
at com.mendix.webui.requesthandling.ClientRequestHandler$$anonfun$handleRequest$1.apply(ClientRequestHandler.scala:315)
at com.mendix.core.session.Worker$$anonfun$receive$3$$anonfun$2$$anon$1.execute(ActionDispatching.scala:145)
at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:32)
at com.mendix.core.session.Worker$$anonfun$receive$3$$anonfun$2.apply(ActionDispatching.scala:147)
at scala.util.Try$.apply(Try.scala:191)
at com.mendix.core.session.Worker$$anonfun$receive$3.applyOrElse(ActionDispatching.scala:141)
at akka.actor.Actor$class.aroundReceive(Actor.scala:465)
at com.mendix.core.session.Worker.aroundReceive(ActionDispatching.scala:137)
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)
at akka.actor.ActorCell.invoke(ActorCell.scala:487)
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238)
at akka.dispatch.Mailbox.run(Mailbox.scala:220)
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393)
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
2.) It is not possible to add a validation feedback to the widget. The feedback is shown in a popup in stead of beneath the inputRefSelector field.

@CharlesBronzwaer I reproduced issue 1. Have fixed it in this version: https://github.com/mendix/InputReferenceSelector/raw/master/test/widgets/refkit.mpk will you test that one?

Issue 1 is tested and ok. Tnx! Did you have time to reproduce issue 2?

Yes. This should be fixed soon. Thanks for testing, will let you know when I fixed issue 2

Second issue is also solved. Tested this with your test-project as well. Thanks for reporting the issues! I have submitted an update to the AppStore, should be updated there in a day or two.


Crash in source() on Android

Running servo on Android using the odroid-ioctl energymon implementation, it appears to crash in EnergyMonitor::source().  Commenting out the call to this function prevents the crash.
I don't see any reason this should fail in the native library code, so my suspicion is that it's somewhere in the (probably unsafe) Rust code.

The problem actually appears when we trying to print the String value.


issue: Model management - In progress - Dataset Sources

In model management, we create a new model. In the section "In progress", we can see "Dataset Sources = FAIR4Health PPDDM-Agent for UNIGE FAIR4Health PPDDM-Agent for IACS FAIR4Health PPDDM-Agent for SAS". However, our dataset was created only with data from SAS agent. Is it an error of the interfaz? Thank you in advance.

Solved on backend


Best traineddata feedback - Sanskrit

san.lstm-unicharset does not have the following devanagari characters
ऐ 1 0,255,0,255,0,0,0,0,0,0 Devanagari 109 0 109 ऐ	# ऐ [910 ]x
औ 1 0,255,0,255,0,0,0,0,0,0 Devanagari 92 0 92 औ	# औ [914 ]x
झ 1 0,255,0,255,0,0,0,0,0,0 Devanagari 54 0 54 झ	# झ [91d ]x
ळ 1 0,255,0,255,0,0,0,0,0,0 Devanagari 123 0 123 ळ	# ळ [933 ]x
Here are some words with these:
ऐकान्तिकस्य (aikaantikasya) = ultimate
ऐक्य (aikya) = unity
ऐच्छत् (aichchhat.h) = desired
ऐरावतं (airaavataM) = Airavata
ऐश्वरं (aishvaraM) = divine
ऐश्वर्य (aishvarya) = desire for power
औद्योगिक (audyogika) = industrial
औपम्येन (aupamyena) = by comparison
औशध (aushadha) = medicine
औषध (aushhadha) = medicine
औषधं (aushhadhaM) = medicine
औषधम् (aushhadham.h) = (n) medicine
औषधसूची (aushhadhasuuchii) = (f) syringe, injection
औषधिवन (aushhadhivana) = medicinal garden
औषधीः (aushhadhiiH) = vegetables
झषाणां (jhashhaaNaaM) = of all fish
झृम्बणम् (jhRimbaNam.h) = (n) yawning
मूळ (muuLa) = Nineteenth nakshatra
मङ्गळ (ma.ngaLa) = Auspiciousness and well-being

Also missing are the following vowels and their combining signs, though these are used rarely.
ऌ | 2316 | ऌ | 090C | DEVANAGARI LETTER VOCALIC L
ॠ | 2400 | ॠ | 0960 | DEVANAGARI LETTER VOCALIC RR
ॡ | 2401 | ॡ | 0961 | DEVANAGARI LETTER VOCALIC LL

See the following for OCR Eval reports
Sanskrit + one Vedic Sanskrit sample
https://shreeshrii.github.io/tess4eval-san/
For old orthography and listing of alphabets
https://shreeshrii.github.io/tess4eval_deva/

My suggestion for fixing this kind of problems (in ALL language traineddatas) is to add the full alphabet of the language to the desired_characters file for that language (rather than only adding characters which do not get picked up otherwise).
So, basically the desired characters file becomes the desired unicharset file.

Alternative will be to have a small hand-crafted training text which has the full alphabet and desired characters, and a mechanism to ensure that it gets picked up while building the synthetic training image for each font.

Recognition of old orthography is quite poor - see error reports at https://shreeshrii.github.io/tess4eval_deva/

Looked at the Sanskrit wordlist from lstm-word-dawg
It has many words with special characters which should not be there. Some examples:
~रं
~र~म
~=
~=अनसल
~दअ
~दविरअ
~दारयत्
~दकइएन
~दह
~¦
~ऽ
~ध
~धनन
~निॐत
~नसर
~न¬
~ल
~:((ॐ)):~
~*थ
~*उभवो
~*धो
~¬
~¬त
~¬तजइ
~¬तमो
~¬¬
~¬¬~
~¬¬मऽअ
~¬¬चइत
सा$$मर्षतयेव
सा$मावस्या
सा$ब्रवीत्
सा$वीरा
सा$पि
सा$पत्रपा$न्यतः
सा$पत्रपा$न्यतः

See attached reports, run using https://github.com/eddieantonio/isri-ocr-evaluation-tools which supports utf-8 text.
ALL-san-imagessan-rpt.txt


[Bug] Groups collecting nodes

Here we go again...
I'm on 1.4.13 frontend btw
https://github.com/user-attachments/assets/46ce3485-58b7-48f1-bcf4-0f2756df3974

I can't reproduce.... but I've just pushed some changes that ought to avoid this arising.

I have the latest dev update.
I don't notice this issue.
But I also didn't notice it before.

But once thing I noticed while testing, is that nodes are just "in and out" of controllers, when I move the groups around in the graph.
In the screenshot, the KSampler node just showed up in the Controller window with the ControlNet group, when I moved its group over the ControlNet group, in the graph.
This is still while clicking down.
And when I move the group back to its place, it's gone again.

Yes, this is by design. The idea is you can see how it will look before you let go.

Yes, this is by design. The idea is you can see how it will look before you let go.

Oh, cool ! If it does not cause any issues, it's an interesting visual cue.

Ok, the issue is fixed!


reset with parameter doesn't work

https://github.com/LennartHennigs/ESPRotary/blob/59d5476a53ce227e44117792483318e8be908e75/src/ESPRotary.cpp#L51
p needs to be multiplied by steps_per_click:
last_position = (lower_bound > p) ? lower_bound * steps_per_click : p * steps_per_click;

Thx for pointing this out. Fixed it!


refactor: reduce DB updates by traits update requests without real changes in the data

Thanks for submitting a PR! Please check the boxes below:

[ ] I have added information to docs/ if required so people know about the feature!
[x] I have filled in the "Changes" section below?
[ ] I have filled in the "How did you test this code" section below?
[x] I have used a Conventional Commit title for this Pull Request

Changes
It is common case for mobile app to set traits on the app start, because some properties can be changed offline or by request from another device with the same account etc. However in this case db is update even if no changes in the data. This change should reduce updates by getting list of traits from db than compares the existing and incoming data, and only add/update when the data actually changes. This strategy drastically reduces unnecessary UPDATE operations in case when the clients send requests with the same data.
How did you test this code?
manually
Please describe.

@devapro just checking in to see if you had time to look at my recent review comments and whether you might have time to update the PR?

Sorry for long response, will check your comments next week.

Thanks for the changes @devapro . I've added a couple more comments.
As per my previous review though, it's still missing any sort of testing coverage.

I checked existing unit tests and looks like it is covered all logic that I refactored.
I think will be good to add test that checks case when db is not called, but my knowledge in python very limited, I didn't find an example of how to do it in current code.

I think will be good to add test that checks case when db is not called, but my knowledge in python very limited, I didn't find an example of how to do it in current code.

You can just copy one of the existing tests, manipulate the data to be what you want and then use the django_assert_num_queries fixture to do something like:
with django_assert_num_queries(0):
    ...

You'll find plenty of usages of this fixture throughout the code base.

I think will be good to add test that checks case when db is not called, but my knowledge in python very limited, I didn't find an example of how to do it in current code.

You can just copy one of the existing tests, manipulate the data to be what you want and then use the django_assert_num_queries fixture to do something like:
with django_assert_num_queries(0):
    ...

You'll find plenty of usages of this fixture throughout the code base.

I can't find existing test for method that I changed. It is not simple for me to understand how to write new test for specific method.
Didn't manage to run tests locally, for running project I am using docker + mounting specific files with changes, because can't install all required dependencies.


reverting a week of tooling changes

Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

@alyssawilk #26049 is now passing pretty reliably - im just running it through a full uncached run to confirm
it would be very good to fix forward in this case, given the amount of time put into debugging and resolving


No Change Face Cosmetic script

the Change Face Cosmetic script is non existent 😭

Bro, theres no change anything script goofy
you are supposed code it yourself

Hopefully, they will make one, but you will have to read the documentation for now.


Any plan for supporting NFS?

Hello, looks like a great project.
Do you have any plans to support NFS? It will be appealing to a wider customer-base.

Hi, thanks for the suggestion. We will quickly discuss this and get back to you within a few days!

Hi, we have no plan for NFS yet as we are focusing on block devices currently.


Bug:  Type Undefined to DIY IPTV

Describe The Bug
can't support DIY IPTV. It was working in v1.x.x.
To Reproduce
push TV button.
Expected behavior
The TV turns on.
Relevant log output
debug log(Turn ON TV)

[10/20/2022, 3:13:54 AM] [@switchbot/homebridge-switchbot] This plugin generated a warning from the characteristic 'Saturation': characteristic value expected valid finite number and received "undefined" (undefined). See https://homebridge.io/w/JtMGR for more info.
[10/20/2022, 3:13:55 AM] [SwitchBot] [DEBUG] DIY IPTV: MyTV Active: 1
[10/20/2022, 3:13:55 AM] [SwitchBot] [DEBUG] DIY IPTV: MyTV pushTvOnChanges Active: 0, allowPushOn: false
[10/20/2022, 3:13:55 AM] [SwitchBot] DIY IPTV: MyTV Connection Type: undefined, commands will not be sent to OpenAPI

### Config for homebridge-switchbot

```shell
Not set.

Screenshots
device info

Device & Model
switch bot hub mini
Node.js Version
v16.14.0
NPM Version
v8.3.1
Homebridge Version
v4.50.1
Homebridge Switchbot Plugin Version
v2.2.1
Homebridge Config UI X Plugin Version
No response
Operating System
Docker

Might be related.
https://github.com/OpenWonderLabs/homebridge-switchbot/issues/507

Maybe something is wrong with the IR devices.
Air conditioner doesn't work.
[10/20/2022, 3:34:55 AM] [@switchbot/homebridge-switchbot] This plugin generated a warning from the characteristic 'Saturation': characteristic value expected valid finite number and received "undefined" (undefined). See https://homebridge.io/w/JtMGR for more info.
[10/20/2022, 3:34:59 AM] [SwitchBot] [DEBUG] Air Conditioner: Air Conditioner Set Active: 0
[10/20/2022, 3:34:59 AM] [SwitchBot] [DEBUG] Air Conditioner: Air Conditioner pushAirConditionerOffChanges, Active: undefined
[10/20/2022, 3:34:59 AM] [SwitchBot] [DEBUG] Air Conditioner: Air Conditioner pushAirConditionerOffChanges Active: undefined, allowPushOff: undefined

Can you try the latest beta:

Click here to find out how to install Beta

@donavanbecker I tried it. It didn't work in v2.2.2-beta.9.
debug log
DIY IPTV
[10/20/2022, 1:00:25 PM] [SwitchBot] [DEBUG] DIY IPTV: TV Active: 1
[10/20/2022, 1:00:25 PM] [SwitchBot] [DEBUG] DIY IPTV: TV pushTvOnChanges Active: 0, allowPushOn: false
[10/20/2022, 1:00:25 PM] [SwitchBot] DIY IPTV: TV Connection Type: undefined, commands will not be sent to OpenAPI

TV
[10/20/2022, 1:01:26 PM] [SwitchBot] [DEBUG] TV: SonyTV Active: 1
[10/20/2022, 1:01:26 PM] [SwitchBot] [DEBUG] TV: SonyTV pushTvOnChanges Active: 0, allowPushOn: false
[10/20/2022, 1:01:27 PM] [SwitchBot] TV: SonyTV Connection Type: undefined, commands will not be sent to OpenAPI

Device Info
DIY IPTV

TV

@donavanbecker It didn't work in v2.2.2-beta.19.
[10/21/2022, 4:50:56 PM] [@switchbot/homebridge-switchbot] This plugin generated a warning from the characteristic 'Saturation': characteristic value expected valid finite number and received "undefined" (undefined). See https://homebridge.io/w/JtMGR for more info.
[10/21/2022, 4:50:56 PM] [@switchbot/homebridge-switchbot] Error:
    at Saturation.Characteristic.characteristicWarning (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:2142:105)
    at Saturation.Characteristic.validateUserInput (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:2030:14)
    at Saturation.<anonymous> (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:1534:24)
    at step (/usr/local/lib/node_modules/homebridge/node_modules/tslib/tslib.js:144:27)
    at Object.next (/usr/local/lib/node_modules/homebridge/node_modules/tslib/tslib.js:125:57)
    at fulfilled (/usr/local/lib/node_modules/homebridge/node_modules/tslib/tslib.js:115:62)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)

Fixed in v2.2.2


Update request:  BleachBit 4.4.0 → BleachBit 4.6.0

Package name: BleachBit
Latest released version: BleachBit 4.4.0
Search your package here: BleachBit
Current version on the unstable channel: 4.4.0
Current version on the stable/release channel: 4.4.0
Type the name of your package and try to find an open pull request for the package
If you find an open pull request, you can review it!
There's a high chance that you'll have the new version right away while helping the community!
[ ] Checked the nixpkgs pull requests
@mbprtpmnr
If the search.nixos.org result shows no maintainers, tag the person that last updated the package. --> https://search.nixos.org/packages?channel=23.11&from=0&size=50&sort=relevance&type=packages&query=bleachbit

Note for maintainers: Please tag this issue in your PR.

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

@stnert
Hi Fábio, as of today (Apr 25 2024), bleachbit is still of version 4.4.0 on unstable channel. (It prompts you to update it on launch. And bleachbit --version also shows 4.4.0)


support elixir 1.15

Elixir 1.15 hard-deprecates Logger.warn.  Custom logger backends that still use the legacy custom backend API must translate the log level to avoid emitting a deprecation warning.
Fixes #552

One tiny comment but otherwise LGTM!

@antonpirker @sl0thentr0py this is ready for review.

Great work! Lots of Elixir 1.15 adoption, so it would be awesome to get this merged in 🙃

@mitchellhenke @michallepicki still with Sentry?

Please get this released 🙏🏻 🙇🏻 It's our current 1.15.2 upgrade blocker 🙂

Great work! Lots of Elixir 1.15 adoption, so it would be awesome to get this merged in 🙃

Couldn't agree more 😅

Sorry to be this guy but can we get a release for this? 😬

@anthonator don't be that guy... 😄 Just kidding. We merged this literally a few hours ago, we're working on a release, no worries! 🙃


Add a setter for List.first|last

I ❤ 💘 😍 T get first and T get last for the List interface - 💝 it.
It makes really sad I can't use the same great API to set the first or last element:
void main() {
  var list = [1];
  list.add(2);
  list.first = 0;
  list.last = 3;
  print(list); // [0, 3]
}

That would make me very happy. It looks easily inline-able too!

I'm positive to this change (https://github.com/dart-lang/sdk/commit/f528beb9f2f99ac1716b077ee66fb62cb32a4636) :smile:

I think was done? @lrhn

Looks like it was done:
void main() {
  var x = [1, 2];
  x.first = 2;
  x.last = 3;
  print(x);
}


Render text with proper resolution

Sometimes it is scaled up making it blurry (first pic); sometimes it is scaled down (second pic). Both does not look well.

This can be fixed by detecting scale value, for example if it is greater than 5 or less than 0.2, we can redraw the circle. Please do not redraw the circle on every loop because it will drop performance.

Scale should be exactly 1, otherwise it will be blurred or not antialiased. Except for a large sizes (when the outline is a far thicker than one pixel) it can be scaled down.
To retain performance, rendered text can be cached (maybe for various sizes too).

With a 15k mass ball, its size is about 1200, while smallest size is 10, that means we have to cache a lot. We may use cache, but will be in intelligent way if we do not want to have memory leak

Maybe on resize we redraw the text and sphere and scale them down and slowly scale them back up.
PS: Don't change the font size, instead change the text scale.


Convert project into react js

I want to convert into react so that it will easy for the contributors to implement new features into your project please assign me this issue under GSSOC'24

"Ready to contribute to GSSoC 24, would appreciate being assigned an issue

Hey @Pratik2401  it is my issue you raise your own issue

@Anishkagupta04 Any thoughts for this migration?

Can do ....what you say @varshith257

I haven't setup the project and will look into codebase and will suggest my opinion


to fix issue 580

3q for your great work for bring us this useful JavaScript library, When I use this library, I came acoss the same isuuse as issue 580, and i read the Sortable.js, I found its because one of progresses is asynchronous，so when move too fast between two lists, this progress will be delay, and cause evt.item.parentNode doesn't equal to evt.from.

This change is

This method cannot be performed synchronously, this results in the loss of all the effects.

@Jocs, try setimmediate-branch


Move to the workspace where a detected application is opened

i want to be able to move to the new workspace when i open app with rules

DEFAULT
[[on-window-detected]]
if.app-id = 'com.github.wez.wezterm'
run = "move-node-to-workspace T"

i want to be able to do the following
[[on-window-detected]]
if.app-id = 'com.github.wez.wezterm'
run = ["move-node-to-workspace T" ,"wokspace T"]

Checklist

[x] I've searched for duplicates. My search queries were (please don't forget to search in closed issues too):

move if detected
if detected
...

[x] I've read the documentation https://nikitabobko.github.io/AeroSpace/guide & https://nikitabobko.github.io/AeroSpace/commands

aerospace version
aerospace CLI client version: 0.14.2-Beta 0cb8dbdfc5ee73b8cbc200f175f467ebead55201

Wierd, for me this
[[on-window-detected]]
if.app-id = 'company.thebrowser.Browser'
run = ['move-node-to-workspace 2']

is moving my browser to workspace 2 AND moves me to workspace 2 automatically

@crates51  yeah i dont know , there are not many people who are using it so maybe there are some bugs

The issue doesn't make sense
As correctly pointed by @crates51, inside the callback, move-node-to-workspace works as if "focus followed window". But normally, move-node-to-workspace doesn't have "focus following" behavior
The reason on why it works this way is actually not because move-node-to-workspace has "focus following" inside the callback, but because newly appeared window steals the focus from AeroSpace.
It's an implementation coincidence that AeroSpace firstly runs the callback and then checks if the focus was stolen by macOS.
But it's an implementation coincidence that I'm not going to change, because it's a good naive expected behavior, which too many people already rely on

ok that does make sense , thanks


TLS: can't specify certificates in client library

Describe the feature
Currently, it does not seem possible to specify certificate path when making a TLS connection with valkey-glide from client libraries.
Use Case
This feature is useful if we need to manage multiple certificates at the same time, for example, Memorystore for Valkey in Google Cloud.
Proposed Solution
I think it is possible to specify a certificate inside glide-core:
https://github.com/valkey-io/valkey-glide/blob/0e7616dbc3f9d45152a932a93b7f2f011b4f7bba/glide-core/redis-rs/redis/src/tls.rs#L23-L28
Therefore, I think it is important to make this option available from other client libraries.
Other Information
No response
Acknowledgements

[X] I may be able to implement this feature request
[ ] This feature might incur a breaking change

Client version used
1.2.0
Environment details (OS name and version, etc.)
Linux, Kubernetes

Hi @lapla-cogito :)
Thanks for opening the issue!
Fully agree, it is indeed important.
I see that you may be able to implement it, would you like to take it?
We would really appreciate it!

@lapla-cogito
I will be your contact point for this issue.
Thanks again for taking interest.
The specification of the issue is actually not fully correct - GLIDE is built on top of redis-rs. Thus, it is possible to specify the certificates for tls-enabled connection per rustls_native_certs.
The enablement of TLS in controlled via "use_tls" parameter which is available in all bindings.
We might indeed need to improve docs on it , opened issue: https://github.com/valkey-io/valkey-glide/issues/2790
Regarding your proposal of extending the client creation params with the certificates - by all means we would love to have it.
Please make sure you are implementing it for the currently supported binding (at least) - Java, Python, Node, with GO is a bonus.
Feel free to open a PR and have myself as a reviewer.
BR

Thanks for the response! I'll implement it for binding.

@lapla-cogito any update on it, we are considering having it in 1.3


Train 41

#436, #438

looks like something in the python really broke the bash. Will investigate (knock the python from the train if needed).


Graph API 500 Internal error

Hello,
I am using the below function to try and page through all SharePoint sites. The endpoint ignores top which is annoying, it seems to only return a max of 500 sites so that is what I set it to. Other than that the query is really rather basic, just return everything. The code then pages through until completion. I keep running into an internal server error and I am wondering how I can get help from someone internal to explain. There is no official support channel for Graph that I am aware of. Thanks.

 -ForegroundColor Cyan
                break
            }
        }
        $global:GraphSharePointSites = $sharePointSites
        return $sharePointSites
    }catch{
        $errorM = $_.exception.message
        Write-Host "Error On SharePoint: $errorM" -ForegroundColor Red
        RecursiveEmail "" "We ran into an error getting all sites:<br>$errorM" "O365 Master Loop - Error" 0
        $global:GraphSharePointSites = $sharePointSites
        return $sharePointSites
    }
}

Hello @ganlbarone
Here, we are limited to documentation fixes, is there any specific article under this repository that you feel needs a fix?
Your inquiry seems better suited for support, if you open a support request from your tenant, they might be able to help answer your inquiry. thank you

@get-itips Thank you very much for the contribution and sharing this explanation. @ganlbarone Hope this comment is helpful for you. Considering the nature of the issue, as advised, please open a service ticket in your tenant and follow with them for the resolution. We proceed to close it as here we are limited to documentation fixes and improvements only.
We will be very happy if you can share the outcome or resolution with us if you see documentation update is required. We will certainly update this documentation with that valuable information. Thanks again, for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


Redirect System out and err to log4j (#840)

Created a class under utils that will tie out and err to log4j. This
class does this in the main functions of AzkabanWebServer and
AzkabanExecServer, so that all out going messages will be caught by
log4j.

I'm confused that Ihow do you define "out going messages" ?

I meant any messages that the server tries to relay to the outside world will be caught by log4j. This includes exceptions and stack traces.


iOS support

winit/wgpu support iOS and bevy does too, no reason we shouldn't either

Closing this since we have more than enough stuff that needs doing, and mobile is so low on my personal list of priorities that chances of it happening in the next months are basically zero.


how to get entered text from richtextbox

In the future version (0.0.20) you will be able to bind RichTextBox.Text. I will probably release it to NuGet later today.


Search any STAC catalog

Search any new STAC catalog (UP42 is one):

UI element to give the STAC API URL (probably a STAC category within the aggregators list, with a button to add to the list or remove existing
parse results and columns to display in datagrid.

Could use existing STAC js tooling like m-mohr/stac-js , but there does not seem to be any JS search client library - only full-fledged apps like stac-server or leaflet layer and stac-search (to deploy a stac, these are the go-to resource: stac-fastapi and pystac)

Search STAC working on
const STAC_SEARCH_URL = 'https://planetarycomputer.microsoft.com/api/stac/v1/search'
const STAC_COLLECTIONS = ['landsat-8-c2-l2', 'sentinel-2-l2a', 'landsat-c2-l1', 'landsat-c2-l2']

Only thing left is UI elements to edit STAC catalogs being searched + make sure footprint retrieval works correctly


Tab Refactor: Managed, Longview Landing & Details

Description
This updates Managed, Longview Landing & Details tab setup to the Reach tab convention.
Type of Change

Non breaking change ('change')

Closing in favor of https://github.com/linode/manager/pull/6423 (where longview refactor will be) and a new separate PR for managed refactor work (PR incoming shortly)


Can not access remote repository

Network timed out while trying to connect to https://index.docker.io/v1/repositories/slavash/ecweb55w/images. You may want to check your internet connection or if you are behind a proxy.
The URL responses with error: "The Repository is Locked, access denied"

This looks like a private repository which I unfortunately can't check. I would recommend a quick reboot of your VM first and see if that solves the issue:
docker-machine restart default


feat: add prerequisites check

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


TextRenderer bug

TextRenderer enableWrapping = true，不设置text或设置为空字符串报错

麻烦提供一下对应引擎的版本号。

0.9.20
发自我的iPhone
------------------ Original ------------------
From: AZhan @.>
Date: Tue,Sep 19,2023 4:29 PM
To: galacean/engine @.>
Cc:<PHONE_NUMBER> @.>, Author @.>
Subject: Re: [galacean/engine] TextRenderer bug (Issue #1775)
麻烦提供一下对应引擎的版本号。
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

Has fixed https://github.com/galacean/engine/pull/1634


Added main key for bower.json

I specified the main key in the bower.json file.  I did mainly to allow other libraries such as Wiredep to pick out the related js files.

Thank you for your contribution @bhtruong93! I am wondering if including the angular wrapper in the "main" would not cause some people to accidentally import it while they expected to require the core library? That's really just a question as I'm not really aware of bower's "main" conventions.

Oh that's true. I use ng-poly so I don't have that issue, but that's not
always the case. I don't know of another workaround, maybe just putting it
in the readme for people that might be using ng-poly? Btw awesome library!
On Fri, Apr 1, 2016 at 12:55 PM Gabin Aureche<EMAIL_ADDRESS>wrote:

Thank you for your contribution @bhtruong93
https://github.com/bhtruong93! I am wondering if including the angular
wrapper in the "main" would not cause some people to accidentally import it
while they expected to require the core library? That's really just a
question as I'm not really aware of bower's "main" conventions.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/Zhouzi/linkhunter/pull/3#issuecomment-204543585

Sounds like the angular code should be its own bower component and depend on this library.

That makes sense! Do you think it should be in a separate repo? I'm starting to wonder if adding the wrapper is worth it. What do you think guys? Is it actually saving you time or you'd be willing to copy/paste a snippet?
@bhtruong93 would you mind removing the angular wrapper from the bower's main so I can merge it?

@Zhouzi Done! And making it a separate repo sounds good to me.

Thanks @bhtruong93!


Importing enum from '@ns'

import { NS, CrimeType } from '@ns';

export async function main(ns: NS) {
  ns.tprint(CrimeType.shoplift);
}

Will result in:
[viteburner] Error: Failed to resolve import "@ns" from "playground\src\enum\index.ts". Does the file exist?

Enums in TypeScript is special. It generates codes both on type domain and variable domain. For example, the code
enum CrimeType {
  shoplift = "Shoplift",
  robStore = "Rob Store",
  mug = "Mug",
  larceny = "Larceny",
  dealDrugs = "Deal Drugs",
  bondForgery = "Bond Forgery",
  traffickArms = "Traffick Arms",
  homicide = "Homicide",
  grandTheftAuto = "Grand Theft Auto",
  kidnap = "Kidnap",
  assassination = "Assassination",
  heist = "Heist",
}

... will result in:
"use strict";
var CrimeType;
(function (CrimeType) {
    CrimeType["shoplift"] = "Shoplift";
    CrimeType["robStore"] = "Rob Store";
    CrimeType["mug"] = "Mug";
    CrimeType["larceny"] = "Larceny";
    CrimeType["dealDrugs"] = "Deal Drugs";
    CrimeType["bondForgery"] = "Bond Forgery";
    CrimeType["traffickArms"] = "Traffick Arms";
    CrimeType["homicide"] = "Homicide";
    CrimeType["grandTheftAuto"] = "Grand Theft Auto";
    CrimeType["kidnap"] = "Kidnap";
    CrimeType["assassination"] = "Assassination";
    CrimeType["heist"] = "Heist";
})(CrimeType || (CrimeType = {}));

So CrimeType needs to exist both in type domain and variable domain. But this is not possible in bitburner as NetscriptDefinitions.d.ts is a declaration file which cannot contain variable domain contents. It uses declare enum CrimeType to avoid emitting actual code to variable domain.
So the following code will result in compile-time error:
import { NS, CrimeType } from '@ns';

export async function main(ns: NS) {
  ns.tprint(CrimeType.shoplift);
}

As the CrimeType from @ns (NetscriptDefinitions.d.ts) does not exist in variable domain, the compiler found no matching CrimeType so such an error is thrown. You can resolve this using import type:
import type { NS, CrimeType } from '@ns';

export async function main(ns: NS) {
  ns.tprint(CrimeType.shoplift); // TS1361
}

Now because the CrimeType we imported is in type domain only, we cannot use CrimeType.shoplift to retrieve the value in variable domain. We can use only raw value "Shoplift" only.

I see. Design choice by BB. Thanks for clearing that up!

I see. Design choice by BB. Thanks for clearing that up!

Things would have been much easier if BB exports those enums to the client via nsapi, rather than just in the definition file.


Update sbt-version-policy to 1.0.1

Updates ch.epfl.scala:sbt-version-policy from 1.0.0-RC5 to 1.0.1.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "ch.epfl.scala", artifactId = "sbt-version-policy" } ]

labels: sbt-plugin-update, semver-pre-release

Superseded by #187.


Predicted probabilities don't fit size of hammer mesh?

Hi,
I have been working on refactoring the code in this repository a bit for my purposes to run without any visualization built into it. I am able to run the test_decoder function without updating the weights with a subsequent click. However, I am running into a minor issue:
The resulting probabilities falling out of the mlp application here:
prob_tensor = mlp(input_tensor)

have the shape (1, 11595, 2), whereas the example hammer mesh has 69384 vertices and 23128 faces. Shouldn't the size of the prediction tensor correspond to the size of the mesh itself (probably the vertices, I suppose)?
For completeness, here's the link to the refactored files. The relevant par would be this Jupyter notebook.
Thanks in advance!

Dear @jo-mueller,
Thank you for your interest in our project!
The example hammer mesh should be downloaded with the scrip download_demo_data.sh, using the command:
bash download_demo_data.sh

The mesh contains 11,595 vertices and 23,128 faces. The prediction size matches the number of mesh vertices.
Can you please use the script and check if you get these values? Please let me know if you have any issues with that.
Thanks!

Hi @itailang ,
Thanks for the quick reply! I am usually working on a windows machine so I am not sure whether bash scripts work there like in the description, so I followed the links to the files from the Google drive.
I'll try again on a linux machine and then it should work :)

Great, thanks!


Move Images to Cloud

Make checklist for this when ready to start

Compressed some images and load times did improve; may need to clean up unused image files/directory


Adds unicode support via future

Address the small issue in #1877
Anything else I should do here? I may need some help with the unit testing framework going further.
I choose just to import future as it seems the repo is moving towards support python 3. Of course, I can go through and change the .format calls to be u'...'.format if that's the preferred method.

Thanks @IanSchweer. No need for unit testing for this.

Thanks for the fix, everyone! How can I determine when a release including the fix is available through PyPI?


Need a way to add the Toolkit's InputManager axes to a project without overwriting existing axes

#936 added the ability to completely replace the existing InputManager.asset with the one from the repo, but that has the potential to overwrite any existing custom axes that may be defined.
I've written a menu tool in #1126 to programatically edit InputManager.asset, adding the desired new axes.

Looks like GitHub didn't automatically close these issues when merged into master. I'll close these manually and look into why.


it's a problem..

Owning 150 bots. Every minute or less bots decrease in number, why? 150 149 147 143 etc.
My proxy it's verry good every hour i have a new fresh 150 proxy list.

This script has memory leaks and is inefficient. That's why. Use agario-client to make your own.

Exactly I said it over and over again... @MasonBurdette. :+1:


Update GraphQL queries to Project V2

ProjectNext query is deprecated and soon will stop working.
We need to update to use ProjectV2.
Example call
Documentation

looks like could be closed


fixed capital G in HoloLens (1st gen)

Docs Build status updates of commit 6961c32:
:warning: Validation status: warnings

File
Status
Preview URL
Details

mixed-reality-docs/interaction-fundamentals.md
:warning:Warning
View
Details

mixed-reality-docs/hololens-emulator-archive.md
:white_check_mark:Succeeded
View

mixed-reality-docs/perception-simulation.md
:white_check_mark:Succeeded
View

mixed-reality-docs/tutorials.md
:white_check_mark:Succeeded
View

mixed-reality-docs/using-the-hololens-emulator.md
:white_check_mark:Succeeded
View

mixed-reality-docs/interaction-fundamentals.md

Line 163: [Warning] Illegal link: `<a href="index.md#news-and-notes">coming soon</a>` -- missing bookmark. The file index.md doesn't contain a bookmark named news-and-notes.

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.

Docs Build status updates of commit f5a721c:
:warning: Validation status: warnings

File
Status
Preview URL
Details

mixed-reality-docs/interaction-fundamentals.md
:warning:Warning
View
Details

mixed-reality-docs/hololens-emulator-archive.md
:white_check_mark:Succeeded
View

mixed-reality-docs/perception-simulation.md
:white_check_mark:Succeeded
View

mixed-reality-docs/tutorials.md
:white_check_mark:Succeeded
View

mixed-reality-docs/using-the-hololens-emulator.md
:white_check_mark:Succeeded
View

mixed-reality-docs/interaction-fundamentals.md

Line 163: [Warning] Illegal link: `<a href="index.md#news-and-notes">coming soon</a>` -- missing bookmark. The file index.md doesn't contain a bookmark named news-and-notes.

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.


No Frames Received in RealSense Viewer for RGB Camera and L500 Depth Sensor/Infrared

librealsense
2.49.0 RELEASE

OS
Windows

Name
Intel RealSense L515

Serial Number
f1381306

Firmware Version
<IP_ADDRESS>

Camera Locked
YES

Usb Type Descriptor
3.2

Product Line
L500

Asic Serial Number
0003cba4cfcb

Firmware Update Id
0003cba4cfcb

Please provide a description of the problem
Hello,
We have bought the Intel Realsense L515 Camera and wanted to record some 3D-Models with it. Until now I've only been trying to make the camera work in the Viewer.
I downloaded the standalone Viewer. It recognizes the camera, but when I turn on any Streams, I receive the "NO Frames Received" Message.

The motion module works and I can also see changes when i move the Camera.
I get two Warnings when I run the Viewer:

I have tried to run the Viewer with the camera on my colleagues Laptops and it worked fine there without any problems.
Do you have any Idea why I am having this issue?
Thanks in advance,
Vlad

Hi @Vkhark  Do the depth and RGB streams work correctly if you shut down and reboot the PC and then launch the RealSense Viewer but do not enable the Motion Module (just depth and RGB)

Hi @MartyG-RealSense,
No, I am getting the same error even if I don't turn on the motion module. The problem also persists if i start the Viewer as admin.

I've also tried to turn the USB-C Input, as it was mentioned in other issues.
Br,
Vlad

As your L515 works correctly on your colleagues laptops, that would seem to rule out a problem with the camera hardware, the USB cable or the camera firmware driver (which is stored inside the camera).
Please next use the instructions at https://github.com/IntelRealSense/librealsense/issues/3381#issuecomment-503424789 to check that permission to access the camera and permission for applications to access the camera are both set to On in the Windows camera permission settings.
If the camera privacy settings are set to On, please then try completely uninstalling and reinstalling the two Depth and RGB camera drivers in the Device Manager interface of Windows using instructions at the link below.
https://support.intelrealsense.com/hc/en-us/community/posts/4419989666323-Installing-D400-UWP-driver-disables-Infrared-streams-on-D435?page=1#community_comment_4431239847443
Did the privacy settings or driver uninstall / reinstall resolve your problem?

Camera Access is activated and I already tried reinstalling drivers. When uninstalling drivers I do not get the option to tick a checkbox. There is no option "Delete the driver software for this device" after pressing "uninstall device"
I can also access the RGB & Depth Camera over the Windows Camera App. It just does not work inside the Viewer.

Thank you.  Looking at your kindly provided images, I see that the camera is detected correctly in the Viewer, and hardware timestamps being unavailable should not prevent RGB and depth streams from being displayed.
Are these streams able to be displayed if you run thers-capture.exe example program?  This program and other pre-made executable examples and tools programs are located in an SDK folder called 'Tools'.  To find the Tools folder quickly, right-click on the RealSense Viewer launch icon on the desktop and select Open File Location from its menu.

When i start the rs-capture.exe, a window with a black screen opens and closes again.
I called it from terminal and received following error:

Just to be sure, I just restarted my computer again and started rs-capture again. Still same error.
I have no other applications running.

Is your model of laptop the same as the one that your colleagues use?  If the camera works correctly on their machines, perhaps there is a characteristic of your laptop's hardware or the version of Windows on it that causes a conflict with the camera.
For example, in the Kameras section of the Device Manager, does it make a difference if you right-click on 'Integrated Camera' and select 'Disable device' to temporarily disable the driver of the laptop's built-in webcam (you can re-enable it at any time by right-clicking on 'Integrated Camera' and selecting 'Enable device' from the menu).

Hi again @MartyG-RealSense ,
I have done some Updates on my Windows PC and I started getting a new Error:
When I start the Viewer an error is shown:

This Error appears also when i start the Depth Sensor or the RGB Camera Stream in the Viewer:

I have also disabled the integrated camera.... but that did not change anything.
BR,
Vlad

Soo. I've installed an Ubuntu VM on Virtualbox and forwarded the USB 3.0.

At least I can try the camera and SDK in Ubuntu VM now.
If you have any other suggestions on how to get it to work on Windows, I'd be happy to try them, as I'd prefer to work there instead of the VM.

Is the Virtualbox installed on the same Windows PC and the camera inserted in the same USB port?  If so then the camera being able to function in the VM suggests that there is not a problem with that computer's USB port.

The VM is installed on the same PC and I am using the same USB port. Only the viewer and SDK on my native Windows on my Laptop are not able to access the Frames, even though the camera is recognized by the Viewer.

If you are comfortable with Linux style commands and compiling then there is the option to try building the RealSense SDK from source code on Windows with CMake instead of using the usual installer file to see whether that makes a difference.
https://github.com/IntelRealSense/librealsense/blob/master/doc/installation_windows.md
The section of the guide titled Enabling metadata on Windows can be skipped because it is easy to do it in the RealSense Viewer instead once the SDK has been installed.

Hi @Vkhark  Do you require further assistance with this case, please?  Thanks!

Hi @MartyG-RealSense,
It currently works fine in the VM. So i think I'll just stay there. I might check the installation with CMake in the future. though.
I'm trying to create a handheld-sensor where i can walk around and record objects with it.
I am trying to repeat this: https://dev.intelrealsense.com/docs/rs-motion in Python.
I am trying to rotate the axis according to the movement of the camera. But the resulting rotation-matrix, that I get after calculating Theta just makes the Axis spin uncontrollably. I calculated the matrix as follows:

I wondered if you have an example in Python on how to do it?  I am not too experienced with Python or using Depth Sensors, so any help is appreciated.
Thanks,
Vlad

At https://github.com/IntelRealSense/librealsense/issues/4391 where a RealSense Python user attempted to create an equivalent of rs-motion that could extract roll, pitch and yaw, they experienced difficulties such as highly fluctuating results.
They were advised by a RealSense team member that "in an inertial system affected by G-Force only you can extract the actual Pitch and Roll angles.  You also track the left-right rotation, but the initial Heading angle is arbitrary defined".

Hi @Vkhark  Do you require further assistance with this case, please? Thanks!

Case closed due to no further comments received.


Refactor WAL event handling and storage

This pull request refactors the WAL event handling and storage system. Key changes include:

Simplified the WalEvent schema by removing the embedded WalEventData structure and flattening the fields directly into the WalEvent schema.

Updated the MessageHandler module to adapt to the new WalEvent structure, simplifying the event creation process.

Added new fields to the WalEvent schema, including action, changes, committed_at, and source_table_oid.

Introduced a new WalEventServer module to handle the processing and writing of WAL events to the destination database.

Updated the database migration to reflect the changes in the WalEvent schema, including new columns and indexes.

Added a TestEventLog model and corresponding factory for testing purposes.

Implemented new helper functions in the Databases and Replication modules to support the refactored WAL event system.

Updated tests to align with the new WAL event structure and processing flow.

These changes aim to streamline the WAL event handling process, improve performance, and provide a more flexible structure for future enhancements.

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#353  👈
#352
#350
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @acco and the rest of your teammates on  Graphite


[Question]: Choose RMP for a professor with 2 profiles

@TyHil how do you choose the correct RMP for a professor with 2 entries, like:
Dr. Octavious Smiley: https://www.ratemyprofessors.com/professor/2941177 & https://www.ratemyprofessors.com/professor/2982353
Dr. Scott Dollinger: https://www.ratemyprofessors.com/professor/2523207 & https://www.ratemyprofessors.com/professor/2651411
Code of Conduct

[X] I agree to follow this project's Code of Conduct

I updated the new RMP scraper to address this. It chooses the prof with the larger number of ratings. Any value could be sorted on but I thought that was most appropriate.

Sounds good

Will be resolved when the PR gets merged


[FEATURE] Persistent Gradient Direction

Is your feature request related to a problem? Please describe.
Direction of gradient changes on clicking random generator button or selecting new colors from the picker.
Describe the solution you'd like
Direction of gradient should remain constant according to the selected radio button.

Solved


Fix #84

I don't know if this is the same crash as #83 because there's no crash log to look at, but #84 is related to a bug in the code that handles the yellow "pulse window" that appears after a search.
More specifically, in -[HFRepresenterTextView fadePulseWindowTimer:], a call to -[NSWindow close] over-releases the pulse window by 1. I fixed the crash by simply setting the window to not be released on close.
Originally the crash did not happen because, as the comment in the code says, the retain implicitly done when creating the window was meant to be balanced by the implicit release in that very same -[NSWindow close] call, but ARC does not understand that and it blindly releases the window as soon as the pulseWindow ivar is set to nil. At that point, the reference count of the window is 1 (because NSTimer retains its userInfo), but it will be released both by -[NSWindow close] and by the NSTimer.

Thanks! I applied the fix in 5858f53f9dae620f025d0bf5edfcb1f95d41c253.


Show the service identity on the diagnose page

Currently the diagnose page (Service inventory) only shows the uuid. Additionally, the instance it is about is only shown when the api call returns instead of immediately.
Also use the service identity in the diagnose error message.

Hey team! Please add your planning poker estimate with ZenHub @andraskvr @bartv @Stijnkool