Game Lobby for Multiplayer game server

How can i create a Common lobby for a multiplayer game over server, which can track of all connection and disconnection of clients , like if we have two or more different game server on the same host so how we will connect to the game server on which we want to connect. so i need to make a lobby for each game so that i can track user's connection or disconnection for the particular server and i can create lobby for each game server

Hi @pasha30, deepstream has a presence API which can notify you when clients login/logout. For game lobbies you might want to take a look at records and lists.
You could use records to track clients connected to each room and other data, and a list to hold a reference to the rooms.

Hi , I get to know that we can use List to make different rooms/lobby over server. I am new to server side development. I am bit confuse now. Like i need to make list(rooms) at server side. So which module I'll use to make server side code ? should i code using node js module of deepstream . Currently i have just connected to deepstream server and also concted rethinkdb and redis cache connector. So do i need to write a separate node module to do  server side coding  using node deepstream.io-client-js ? or do i need to implement a server over deepstream.io module?


when will you submit your newest of 3.9.11, I really hope do this soon, very thinks

I found the verison of 3.9.0 of now went crash of input system passwd activity, and i can't solve it by every ways. However ,i search of Google play, then i found there was a new version of breadwallet of 3.9.11 ,and it went very well on my android phone which brand is MeiZu, the android version is 7.1.1,
I thind  you had already  sovled the problem very well，so if you submit you code then i will pull down at once, and i am very glad to do this. Thanks very well

We will update github ASAP.  Thanks!

i had found the problem and make the project success, and let it run ok,thinks a lot

Updated to the lasted.  Sorry for the delay!


Wrap DB writes into (restartable) transactions

DB writes should always end up with a consistent DB, thus we should use transactions. This should also improve performance on multi-inserts.

Closing, there are very little use-cases for this, most data for multi-inserts comes asynchronously so it wouldn't make sense to queue it just for a transaction.


bootloop after corrupt suspend without ability to rollback to prev. gen

Issue description
In changing my configuration.nix I asked systemctl to suspend laptop on low battery (0-5%). Instead, the system began to suspend immediately at 80% battery. Subsequent reboots would resume the suspended image and immediately suspend again.  Finally, I managed to boot from livecd and clear suspend image.
This severely breaks the promise of clean roll backs. I expect selecting any generation but the current should clear suspend image and return to last stable state. To be clear: the issue is not about low batteries. It seems that any severely broken state on resume from suspend is bound to just repeat itself. The rollback mechanism should handle this gracefully in the boot-loader.
Steps to reproduce

add the following code to configuration.nix. Confirmed to work in Arch at /etc/udev/rules.d/99-lowbat.rules:

  services.udev.extraRules = ''
       SUBSYSTEM=="power_supply"
       ATTR{status}=="Discharging"
       ATTR{capacity}=="[0-5]"
       RUN+="${pkgs.systemd}/bin/systemctl hibernate"
  '';

Unplug laptop to trigger the discharging state.

Technical details
/nix/store/5hszvi0hczzh25mmsz5rkb9qa758c10p-bash-4.4-p12-dev
/nix/store/bkx6rzqciq0sdn1z5liard33ffvv1n3s-bash-4.4-p12-doc
copying path '/nix/store/bkx6rzqciq0sdn1z5liard33ffvv1n3s-bash-4.4-p12-doc' from 'https://cache.nixos.org'...
copying path '/nix/store/5hszvi0hczzh25mmsz5rkb9qa758c10p-bash-4.4-p12-dev' from 'https://cache.nixos.org'...

system: "x86_64-linux"
host os: Linux 4.14.51, NixOS, 18.03.132768.94d80eb7247 (Impala)
multi-user?: yes
sandbox: no
version: nix-env (Nix) 2.0.4
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs

Please run nix-shell -p nix-info --run "nix-info -m" and paste the
results.

Correct, there's still no detection whether the chosen generation is the same as the one that created the image.

@denten could you paste here the steps you used to clear the image, in case other people are bitten by this?

@denten could you paste here the steps you used to clear the image, in case other people are bitten by this?

Im stuck in the same situation, how do i clear the suspend image?

This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixosstag.fcio.net/t/paths-in-config-nix-systemctl-is-called-by-udev-rules-but-not-installed-by-udev/427/4


event-handlers are stripped from template

Using an event-handler inside a template doesn't work

${item}

where 'item' == 'image/test.jpg'
is transformed to:

image/test.jpg

That's a feature, not a bug. on* events in templates are a security risk and are stripped out. You can use a regular old event listener for this. addEventListener()
https://gomakethings.com/event-delegation-and-multiple-selectors-with-vanilla-js/

Hm - I'd rather let the user chose to add sanitizing...
For me this renders this neat project useless, since I don't need sanitizing, but speed, as I operate solely on my own data. Too bad :(
If you look at e.g. marked (https://marked.js.org), they removed sanitizing for just this reason. Imo that's the right approach.

Cool. Use that project instead. 😎

Had a change of heart on this. Fixed with https://github.com/cferdinandi/reef/releases/tag/v4.1.7


docs(QUI-47): include new operator-facing README

#26  👈
main

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

Join @L8D and the rest of your teammates on  Graphite

Merge activity

Sep 22, 11:55 AM EDT: @L8D merged this pull request with Graphite.


Unable to Copy Tooltip Text in ReactFlow

Describe the Bug
I'm attempting to replicate the tooltip text using the Ctrl+C and Ctrl+V commands, but unfortunately, it doesn't seem to be working. Has anyone discovered a workaround to address this issue?

Your Example Website or App
No response
Steps to Reproduce the Bug or Issue
Insert a node containing a tooltip.
Attempt to duplicate the text within the tooltip using Ctrl+C and Ctrl+V.
Verify the accuracy of the copied text.
Expected behavior
When using Ctrl+C and Ctrl+V to copy and paste text, the selected text is successfully copied.
Screenshots or Videos
No response
Platform
Chrome
Additional context
No response

please re-open with a codesandbox.


Load only python files from plugins-dir.

The current behavior for --plugins-dir is to load every file in that folder as a python module. This can result in errors if there are non-python files in the plugins dir (such as .mypy_cache).
This PR restricts the module loading to only python files.

This is an excellent fix. Thanks!
Not sure why codecov is complaining. I'm going to merge it as-is.


add missing permissions for uninstalling rancher-webhook

Issue https://github.com/rancher/rancher/issues/33988
Cause:
When rancher-webhook is uninstalled, it will leave the resource MutatingWebhookConfiguration named rancher.cattle.io, which prevents us from re-installing Rancher into the cluster.
Fixes:

In this PR in rancher/wehbook, we fix the rancher-webhook chart such that it will delete the MutatingWebhookConfiguration when the app is uninstalled.
Here, we add missing permissions for the rancher-post-delete-job to execute the helm uninstall command to uninstall rancher-webhook

For reference, here are the logs of the post-delete-hook-job pod
> k -n cattle-system logs -f rancher-post-delete-rwfzt
Uninstalling Rancher resources in the following namespaces: cattle-fleet-system cattle-system rancher-operator-system
--- Deleting the app [fleet] in the namespace [cattle-fleet-system]
successfully uninstalled [fleet] in the namespace [cattle-fleet-system]
--- Deleting the app [fleet-agent-local] in the namespace [cattle-fleet-system]
successfully uninstalled [fleet-agent-local] in the namespace [cattle-fleet-system]
--- Skip the app [fleet-crd] in the namespace [cattle-fleet-system]
--- Deleting the app [rancher-webhook] in the namespace [cattle-system]
waiting 5 seconds for pods of [rancher-webhook] to be terminated ...
waiting 5 seconds for pods of [rancher-webhook] to be terminated ...
waiting 5 seconds for pods of [rancher-webhook] to be terminated ...
successfully uninstalled [rancher-webhook] in the namespace [cattle-system]
--- Deleting the pod [pod/helm-operation-4jzvk] in the namespace [cattle-system]
pod "helm-operation-4jzvk" deleted
--- Deleting the pod [pod/helm-operation-8zqf9] in the namespace [cattle-system]
pod "helm-operation-8zqf9" deleted
--- Deleting the pod [pod/helm-operation-gphkb] in the namespace [cattle-system]
pod "helm-operation-gphkb" deleted
--- Deleting the pod [pod/helm-operation-jr2mm] in the namespace [cattle-system]
pod "helm-operation-jr2mm" deleted
------ Summary ------
Succeeded to uninstall the following apps: fleet fleet-agent-local rancher-webhook
Cleanup finished successfully.

Before uninstalling Rancher
>  k get validatingwebhookconfigurations.admissionregistration.k8s.io; k get mutatingwebhookconfigurations
NAME                               WEBHOOKS   AGE
cert-manager-webhook               1          4m38s
rancher.cattle.io                  2          77s
validating-webhook-configuration   7          2m36s
NAME                             WEBHOOKS   AGE
cert-manager-webhook             1          4m39s
mutating-webhook-configuration   7          2m37s
rancher.cattle.io                2          56s

After uninstalling Rancher
> k get validatingwebhookconfigurations.admissionregistration.k8s.io; k get mutatingwebhookconfigurations
NAME                               WEBHOOKS   AGE
cert-manager-webhook               1          6m7s
validating-webhook-configuration   7          4m5s
NAME                             WEBHOOKS   AGE
cert-manager-webhook             1          6m7s
mutating-webhook-configuration   7          4m5s


Add wrapper script to gather cluster logs

This is the entry point script associated with the log gathering SSH key. It enables developers to gather cluster logs via:
ssh -i log_gather_key tower2 -- -u username -c clustername

Approved by @dbaker-rh in #2638

Need to fix that the commit ID here changed from the one merged into stg... this is the result of a rebase of my local branch

Sorry for the noise, the problem was that I originally branched off stg. Fixed that via new PRs - the one to prod (equivalent to this one) is #2685 which replaces this one, so closing.


Nix: v2.13.0 and Above are Missing Signatures

For some reason the recently published 2.13.0 and 2.13.1 are missing signature files (install.asc) causing curl to 404 and the devcontainer to fail.
https://github.com/devcontainers/features/blob/7a3a9c5fcaa59cf4d7dbbcece47094a6d642a9b0/src/nix/install.sh#L64

https://github.com/NixOS/nix/issues/7652


Fix refactor swagger

:tada: This PR is included in version 6.106.0 :tada:
The release is available on:

v6.106.0
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 7.0.0-beta.4 :tada:
The release is available on:

v7.0.0-beta.4
GitHub release

Your semantic-release bot :package::rocket:


Aurelia cannot observe indexed assignment of an array- at least not without Object.observe

I was told that

Aurelia cannot observe indexed assignment of an array- at least not without Object.observe, which is no longer being championed in TC39. As long as you use methods on the array instance to mutate the array it will work as you expect. In your case, change  this.somearray[index] = something  to  this.somearray.splice(index, 1, something) .

Updating Aurelia to beta1 has been an absolutely nightmare because of this. Is this really the intended behavior - that we cannot mutate the array and have the views reflect this new array? Changing this to splice won't be a viable solution to me - can anyone come up with a workaround, as to how to get it to work as before? And for what reason did they make this change?

@BruceL33t sorry you're having a difficult time upgrading your project to beta1.  One thing that's important to keep in mind is your pre-beta code only worked in chrome.  All other browsers (IE 11, Edge, FireFox, Safari) would not have worked pre-beta1 or post-beta1 because these browsers did not have Object.observe and were using the observation mechanism that is now used across the board now in beta1.
Aurelia observes array mutation by intercepting calls to the array instance's splice, push, pop, etc, methods.  This allows Aurelia to detect changes to an array instance without any expensive dirty-checking which would require keeping a copy of the array and polling for changes periodically, etc.
With this approach there are tradeoffs.  We're getting vastly improved memory usage, cpu usage and change detection speed at the expense of convenience around indexed array assignment.
It would be good to know more about why changing this.somearray[index] = something to this.somearray.splice(index, 1, something) won't work.  Is it an aesthetics thing or does this change pose a technical barrier in your project?

Thanks for your answer @jdanyow .
I didn't know object.observe had been cancelled, but unfortunately yes that's the sad truth. Your alternative approach is clever, as is all you guys are doing with Aurelia.
I guess we need to adopt using splice etc much more from now on. I just hadn't used it much, and I think I faced a few issues doing deep nested array updates, but unfortunately I don't have the code here right now. Could be just me being a newb though.
I'll make a follow up comment here, if it ever gets a problem again. Thanks! :-)


Improve the parsing algorithm

Currently, we parse the resumes to extract text and put them into JSON file formats.
The Goal here is to create or improve the existing algorithm to improve the current state of file parsing to identify newer keywords, text and job descriptions.
And group the job descriptions based on experience. Like:
Worked at ABC Company. Followed by the context of ABC company, etc.

@SubramanyamChalla24


Ref: operation building

Changing the way the operation object created for Documentation.

coverage: 100.0%. remained the same
when pulling c9074473b8049f85d742b7077bc4241b4c6d993b on ref-operation-building
into d927f0d7e79945b5ec3197c781cd0202c428fdce on master.


Error with registration when I use a cropped version of the image

Normally I am working with images that have the same cellular tissue two or more times. The problem I have is that the medical notes are only in one of them.

Sometimes when I do the registration it is registered with another of the cellular tissues where there are no annotations, so when I transfer them from one image to another it does not do it well.
For this reason, one way to solve it is to crop the original image with only the cellular tissue of interest (a roi).

(I know that some annotations are missing in this example, it is for another reason and it should not affect the register)
But when doing this the normal registration has stopped working in most cases.

I do not understand what is happening. When there were two cellular tissues, the record was done well but just with the one that had no annotations, but when there is only one, the record goes terribly wrong.
Anyone know what might be happening?
Could cropping the image have affected the registration in any way?

Hi @msberges,
Sorry you're running into this issue, but could you please clarify a few things for me?

When you say "Sometimes when I do the registration it is registered with another of the cellular tissues where there are no annotations, so when I transfer them from one image to another it does not do it well" is the problem that the alignment works, but the annotations aren't warping correctly, and so there is a bug in valis that needs fixing? Or, are the annotations being warped correctly, but the issue is that sometimes there is no tissue in the area where the annotations are transferred?

It looks like something odd is going on the image associated with the green overlay. The processed version looks very blocky, but I would have thought it would more like the other image (the pink overlay, associated with annotations?). Is the cropped image the one associated green overlay, and if so, was it saved at the same resolution as the original?

The thumbnails in the "masks" folder should show how valis is converting the full resolution image to the lower resolution one used for registration, with an outline drawn around the regions to be registered. Do these images look as expected? This sort of gets back to whether or not something is going on during the downsampling and/or pre-processing valis does prior to aligning the images.

I think this extra info will help narrow down what's going wrong here.
Best,
-Chandler

What I mean is that, as seen in the first image, I have many mrxs files that when opened with qupath have the same tissue repeated 2, 3 or 4 times (it is the same cellular tissue, but not exactly the same photo) . This only happens to me with the HE stain, not with the HER2, KI67, etc. stains.
Another example:
HE stain:

RE stain:

As can also be seen in the image of the first comment, the annotations are only in one of the cellular tissues (in this case in the one below).

If I ask the program to register the images, sometimes the image in HER2, KI67... will overlap with the tissue above, the one that has no annotations. Therefore, when transferring them, the program will do it wrong.
For this reason I crop the images to only keep the cellular tissue that has the annotations. The problem is that by having one image cropped and the other not, the low quality versions used in the registry have the tissue area with a very different resolution. That's why in processed images, the uncropped image looks so blocky compared to the cropped one.
The solution I found for this problem, to always ensure a good register, is to crop the two ROIs in both images and adjust the annotations at each step.
Here an example of hat I did:
From the original source image to the cropped source image:

From the cropped source image to the cropped target image:

From the cropped target image to the original target image:

This is the solution that I have found and it works very well, although it is probably not the most efficient.


[OTHER]Help!

What would you like to share?
Additional information
Hi, this is Tenshi Ota. I am a member of the EddieHub community. I recently joined this community. But I couldn't join the community's Discord. This is because you can't log in to discord.com. So can you invite me to the discord? Help.
No response

Ok.
I have joined this community but I can't join discord.
How can do I?

https://discord.com/invite/jZQs6Wu

Did it work?

Feel free to reopen an issue


adding bower package file

Bower package file for issue #47
There should be no impact to the dev process, just keep using semver tags for releases and bower will update automatically.
The bower package already exists, and is registered to identitymodel, so once the bower.json file appears in the repo bower should make the new version available automatically.

thanks!


tests, net: Post migration connectivity check with dual stack support.

What this PR does / why we need it:
tests, net: Add dual-stack checks for post migration connectivity

tests, net: Remove post migration connectivity workaround
In order to overcome the arp table update (post the VMI migration)
issue, ingress traffic has been generated at the test.
Such a workaround is inappropriate as it does not reflect the actual
scenario and overcomplicates the test.
A proper solution should be embedded in the production code such that it
will lower the time it takes for the connectivity to recover.
This change drops the workaround and consequently increases the test time.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Release note:
NONE

/cc @AlonaKaplan

/approve


enhance(astToPlainText): improved ReadMe block serialization

📖 PR App
🎫 RM-9982
:octocat: See ReadMe#12167

🧰 Changes

[x] expose variable data off of the astToPlainText RDMD processor
[x] improved plaintext serialization of custom ReadMe blocks

[x] variables
[x] glossary terms
[x] callouts

🧬 QA & Testing
Pull down this branch and try running the following snippet. Compare the results to what you see in next. If ReadMe variables show up as plain text in the output, this worked! :tada:
const body = `> 👍 Success
>
> [Vitae](http://www.google.com) *reprehenderit* at aliquid error voluptates eum dignissimos.

variable: <<name>>
glossary: <<glossary:myMadeUpTerm>>
`;

rdmd.astToPlainText(rdmd.hast(body, { strip: ["style"] }), {
  variables: { defaults: [], user: { name: "John Doe" } },
});

This PR was released!
🚀 Changes included in v6.86.0


How to find the TCP file

How to find TCP file:
Error: Cannot find module '../../tcp'
Require stack:
Thank you...

What version of Companion? (Number at the Top left of the Web UI)
What's the full error message? Do a screenshot if needed.

Update the companion base/core. When modules were moved from lib/module to node_modules those common files needed to move as well. You must have cloned your repo before those libraries were moved.

Can we close this?

Oh, thank you for reply,
I just clone this repo and yarn install,
then I run node index.js,
so guys, do you have step by step how to use this module?

Can we close this?

Alright...

do you have step by step how to use this module?
https://github.com/bitfocus/companion/wiki/Installation


Job Event Data seems to have a changed structure

the format I get via OpenAI Api is
{
    "error_code": "invalid_n_examples",
    "error_param": "training_file"
}

Leading to an Exception in ListJobEventsResponseEvent as the line
$attributes['data'] ? ListJobEventsResponseEventData::from($attributes['data']) : null,
fails as ListJobEventsResponseEventData expects a different structure:
$attributes['step'],
$attributes['train_loss'],
$attributes['train_mean_token_accuracy'],

Hi @axelbecher
To me it looks like your request is invalid.
But if not, can you provide some code to reproduce the error?

Hello @gehrisandro, I do a normal list JobEvents request like

@gehrisandro I hotfixed above problem with an additional check
public static function from(array $attributes): self
    {
        return new self(
            $attributes['object'],
            $attributes['id'],
            $attributes['created_at'],
            FineTuningEventLevel::from($attributes['level']),
            $attributes['message'],
            $attributes['data'] && array_key_exists('step', $attributes['data']) ? ListJobEventsResponseEventData::from($attributes['data']) : null,
            $attributes['type'],
        );
    }

As it seems there are now different JobListEvent formats coming from OpenAI

Thanks for investigating!

@axelbecher This seems strange to me. You fix looks like "step" is missing but the error you originally posted was about an error in the training file.
Could you please provide a raw JSON response which causes the error with the step?

Hello @gehrisandro,
sorry for the late reply and the little bit unstructured communication until here, I was in the middle of a bigger Feature-Release ;-)

To trigger the Problem, I simply fetch the Job-Events for a failed Job with the Client, just like
$openAiClient->fineTuning()->listJobEvents('ftjob-XXXXXXXXXXXXXXXXXXX');

The raw result will look like:
{
  "object": "list",
  "data": [
    {
      "object": "fine_tuning.job.event",
      "id": "ftevent-XXXXXXXXXXXXXXXXXXXXXX",
      "created_at":<PHONE_NUMBER>,
      "level": "error",
      "message": "Training file has 6 example(s), but must have at least 10 examples",
      "data": {
        "error_code": "invalid_n_examples",
        "error_param": "training_file"
      },
      "type": "message"
    },
    {
      "object": "fine_tuning.job.event",
      "id": "ftevent-XXXXXXXXXXXXXXXXXXXX",
      "created_at":<PHONE_NUMBER>,
      "level": "info",
      "message": "Validating training file: file-XXXXXXXXXXXXXXXXXXXX",
      "data": {},
      "type": "message"
    },
    {
      "object": "fine_tuning.job.event",
      "id": "ftevent-XXXXXXXXXXXXXXXXXXXX",
      "created_at":<PHONE_NUMBER>,
      "level": "info",
      "message": "Created fine-tuning job: ftjob-XXXXXXXXXXXXXXXXXXXX",
      "data": {},
      "type": "message"
    }
  ],
  "has_more": false
}

The Event data
      {
        "error_code": "invalid_n_examples",
        "error_param": "training_file"
      }

Leads to the afromentioned Bug in the Client:
$attributes['data'] ? ListJobEventsResponseEventData::from($attributes['data'])
in ListJobEventsResponseEvent
expects as follows in ListJobEventsResponseEventData
    public static function from(array $attributes): self
    {
        return new self(
            $attributes['step'],
            $attributes['train_loss'],
            $attributes['train_mean_token_accuracy'],
        );
    }

I Maybe the problem occures because the error originates from the file and not the training itself ? Anyway, to simple exclude it from the Client result would be sufficient I think as it does not add anything meaningful to the event itself...
Thanks for taking a look into this!

I am not sure if this problem still exists.
With the latest release (v0.7.10) errors are handled instead of ignored.
But what me still confuses is your json example. In my case I receive a different json structure. May OpenAI has changed something on their side.
If you are still able to reproduce the issue. Please feel free to reopen the issue. And if possible, please provide a full request sequence (JobCreate and JobList) to reproduce the issue.

Hello @gehrisandro,
The problem still exists but it causes no Exception anymore, just warnings. You can provoke it by uploading an invalid trainings-file with less than the mandatory 10 examples. I do a file-upload immediately followed with the job creation, to check the state of the training I list the job-events the returned responses are as follows:
$this->client->fineTuning()->createJob($jobProps) RESPONSE:
{
  "object": "fine_tuning.job",
  "id": "ftjob-XXXXXXXXXXXXXXXXXXXX",
  "model": "gpt-3.5-turbo-0613",
  "created_at":<PHONE_NUMBER>,
  "finished_at": null,
  "fine_tuned_model": null,
  "organization_id": "org-XXXXXXXXXXXXXXXXXXXX",
  "result_files": [],
  "status": "validating_files",
  "validation_file": null,
  "training_file": "file-XXXXXXXXXXXXXXXXXXXX",
  "hyperparameters": {
    "n_epochs": "auto",
    "batch_size": "auto",
    "learning_rate_multiplier": "auto"
  },
  "trained_tokens": null,
  "error": null
}

$openAiClient->fineTuning()->listJobEvents($jobId) RESPONSE:
{
  "object": "list",
  "data": [
    {
      "object": "fine_tuning.job.event",
      "id": "ftevent-XXXXXXXXXXXXXXXXXXXX",
      "created_at":<PHONE_NUMBER>,
      "level": "error",
      "message": "Training file has 5 example(s), but must have at least 10 examples",
      "data": {
        "error_code": "invalid_n_examples",
        "error_param": "training_file"
      },
      "type": "message"
    },
    {
      "object": "fine_tuning.job.event",
      "id": "ftevent-XXXXXXXXXXXXXXXXXXXX",
      "created_at":<PHONE_NUMBER>,
      "level": "info",
      "message": "Validating training file: file-XXXXXXXXXXXXXXXXXXXX",
      "data": {},
      "type": "message"
    },
    {
      "object": "fine_tuning.job.event",
      "id": "ftevent-XXXXXXXXXXXXXXXXXXXX",
      "created_at":<PHONE_NUMBER>,
      "level": "info",
      "message": "Created fine-tuning job: ftjob-XXXXXXXXXXXXXXXXXXXX",
      "data": {},
      "type": "message"
    }
  ],
  "has_more": false
}
PHP Warning:  Undefined array key "step" in /vendor/openai-php/client/src/Responses/FineTuning/ListJobEventsResponseEventData.php on line 35
PHP Warning:  Undefined array key "train_loss" in /vendor/openai-php/client/src/Responses/FineTuning/ListJobEventsResponseEventData.php on line 36
PHP Warning:  Undefined array key "train_mean_token_accuracy" in /vendor/openai-php/client/src/Responses/FineTuning/ListJobEventsResponseEventData.php on line 37


Fix linting and fix return value of signMessage

Pull Request Test Coverage Report for Build 790

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 99.757%

Totals

Change from base Build 778:
0.0%

Covered Lines:
306

Relevant Lines:
306

💛  - Coveralls


lexgen: feed interactions

against current atproto main branch (0edef0ec01403fd6097a4d2875b68313f2f1261f).
some funky thing with cborgen and a *string. I didn't dig deep, just changed one line to get things building. Might warrant a peak from @whyrusleeping.

rebased on main


How to add loaders and configuration options to the webpackconfig in esnext-webpack skeleton.

I am trying to switch over to the new skeleton. Here is my current webpackconfig:
module.exports = {
    devServer: {
        host: 'localhost',
        https: true,
        port: 44366,
        historyApiFallback: {
            index: 'index.html'
        },
        proxy: {
            '/api*': {
                target: 'http://localhost:5000',
                headers: {Connection: 'keep-alive'}
            }
        }
    },
    resolve: {
        alias: {
            resources: path.resolve( __dirname, 'src', 'resources'),
            app: path.resolve( __dirname, 'src', 'app'),
            utils: path.resolve( __dirname, 'src', 'resources', 'utils', 'utils'),
        }
    },
    entry: {
        main: [
            './src/main'
        ]
    },
    output: {
        path: path.join(__dirname, 'build'),
        filename: 'bundle.js'
    },
    plugins: [
        new AureliaWebpackPlugin({
            includeSubModules: [
                {
                    moduleId: 'pnotify'
                }
            ]
        })
    ],
    module: {
        preLoaders: [
            //{test: /\.js$/, loader: 'eslint-loader'}
        ],
        loaders: [
            {
                test: /pnotify.*\.js$/,
                loader: "imports?define=>false,global=>window"
            },
            {
                test: /\.css?$/,
                loader: 'style!css'
            },
            {
                test: /\.js$/,
                loader: 'babel',
                exclude: /node_modules/,
                query: {
                    presets: ['es2015-loose', 'stage-1'],
                    plugins: ['transform-decorators-legacy']
                }
            },
            {
                test: /\.(html|scss)$/,
                loader: 'raw'
            },
            {
                test: /\.(png|gif|jpg)$/,
                loader: 'url-loader?limit=8192'
            },
            {
                test: /\.woff2(\?v=[0-9]\.[0-9]\.[0-9])?$/,
                loader: 'url-loader?limit=10000&minetype=application/font-woff2'
            },
            {
                test: /\.woff(\?v=[0-9]\.[0-9]\.[0-9])?$/,
                loader: 'url-loader?limit=10000&minetype=application/font-woff'
            },
            {
                test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
                loader: 'file-loader'
            }
        ]
    }
};

Then in my main.js I have:
import '!style!css!sass!./main.scss';

I am having a hard time adapting this to the new skeleton (or even knowing where to start). Specifically:

How do I add configuration options to wepack (i.e. I have a proxy option passed to my devServer and a bunch of custom resolves).

How do I add advanced loading support (e.g. I am using the imports-loader for pnotify)

How can I duplicate my sass-loading workflow, where I use the raw-loader for all the sass and then just load the one main file using the  sass-loader (this is to avoid warnings on the compilation of each individual file which may not have references to each variable it uses, whereas these variables are all available in the final main.scss)?

Docs are coming soon. Please be patient.

@niieani Ok, thanks. No problem, would rather see good docs than see them quickly. That said, would there be the possibility to include instructions on how to use this skeleton to generate an aurelia plugin (that can be published to npm and consumed by any of the other plugins), if that is even possible (or should we be using the gulp aurelia-plugin-skeleton project for that?)?

Initial docs regarding easy-webpack are published: https://github.com/easy-webpack/core


Retrieve BP Observations by category vital-signs

Epic does not allow a search of Observations by code without also specifying the category. We may need to change the CQL logic, but since BP Observations are in the prefetch, we might be able to leave as is, knowing CQF Ruler will never try to find these on the Epic server. Need to investigate. In any case, Matt may need to change application code to add the category parameter if he is querying Epic.

Epic DOES support searching for a code using the core-characteristics interface. Observations should be retrievable as written as long as the codes are comma-separated with no spaces. For example:
https://epicmobile.ohsu.edu/FHIRDEV/api/FHIR/R4/Observation?subject=123&code=55284-4,8310-5,72166-2
This already appears to be working, as Matt is grabbing BP observations from Epic.


[LANG-1606] StringUtils.countMatches returns incorrect value while handling intersecting substrings

Coverage remained the same at 94.705% when pulling 14e88e0a96f7b63302574f7a9a2d2996766c6aba on GaliFFun:LANG-1606-countMatches into 649dedbbe8b6ab61fb3c4792c86b7e0af7ec4a73 on apache:master.

Thanks for the PR, but it is the Javadoc that must be fixed, not the code.
If necessary, raise a separate issue for the a version of the method that supports counting overlapping occurrences.


Support keyboard shortcut for formatted Vs Unformatted paste

Ref: https://github.com/github/special-projects/issues/966
Context:
Add support for keyboard shortcuts where when : cmd/ctrl+ shift + v pastes unformatted content like for paste links http://...  and  cmd/ctrl + v formatted  auto linked link on selected text like  [...](http://...)
https://user-images.githubusercontent.com/18541122/167987341-0ac2ae38-5d4e-4874-aa32-235b4870914c.mov
Approach 2
This PR adds support for paste on using keyboard shortcuts - this approaches the fix by creating a class with required keydown handler/helper methods to toggle state which would decide when to paste formatted ( markdown ) content Vs not for a consistent paste.
🍐 @theinterned

Open to feedback/thoughts on this approach Vs in https://github.com/github/paste-markdown/pull/59

Closing in support of #59 being better voted approach.


WebListener Negotiate auth doesn't work with non-machine account

I was using Web API with the OWIN HttpListener running as a Windows service with a domain service account. I configured the SPN so Kerberos authentication was working successfully.
When I switched to ASP.NET Core with WebListener, Negotiate authentication worked during initial testing that used the machine name as the site name and ran the service under the system account. However, once I switched into production mode using the production site name and production service account, Negotiate authentication stopped working.
I was able to workaround by using the old OWIN HttpListener server in place of WebListener:
using System;
using System.Collections.Generic;
using System.Net;
using Microsoft.AspNetCore.Hosting.Server;
using Microsoft.AspNetCore.Hosting.Server.Features;
using Microsoft.AspNetCore.Http.Features;
using Microsoft.AspNetCore.Owin;
using Microsoft.Owin.Host.HttpListener;

namespace Servers
{
    public class HttpListenerServer : IServer
    {
        readonly IFeatureCollection features = new FeatureCollection();
        readonly IDictionary<string, object> properties = new Dictionary<string, object>();

        IDisposable server;

        public HttpListenerServer()
        {
            features.Set<IServerAddressesFeature>(new ServerAddressesFeature());
        }

        public IFeatureCollection Features => features;

        public void Start<TContext>(IHttpApplication<TContext> application)
        {
            OwinServerFactory.Initialize(properties);

            var addressesFeature = features.Get<IServerAddressesFeature>();

            var addressList = new List<IDictionary<string, object>>();

            foreach (var address in addressesFeature.Addresses)
            {
                Uri uri = new Uri(address);

                addressList.Add(new Dictionary<string, object>() {
                    { "scheme", uri.Scheme },
                    { "host", uri.Host },
                    { "port", uri.Port.ToString() },
                    { "path", uri.AbsolutePath }
                });
            }

            properties["host.Addresses"] = addressList;

            HttpListener listener = (HttpListener)properties["System.Net.HttpListener"];
            listener.AuthenticationSchemes = AuthenticationSchemes.Negotiate;

            server = OwinServerFactory.Create(async (environment) =>

            {
                TContext context = application.CreateContext(new FeatureCollection(new OwinFeatureCollection(environment)));

                try
                {
                    await application.ProcessRequestAsync(context);
                }
                catch (Exception exception)
                {
                    application.DisposeContext(context, exception);
                    throw;
                }

                application.DisposeContext(context, null);
            }, properties);
        }

        public void Dispose()
        {
            server.Dispose();
        }
    }
}

With the exact same configuration and using the production service account, I tried running the Web API exe (using OWIN HttpListener), and auth worked. I switched to ASP.NET Core using WebListener, and auth stopped working. I switched to using OWIN HttpListener within ASP.NET Core, and auth started working again, so I believe the problem is in WebListener.
Does WebListener (HttpSysServer) set the SPN on the server side the same way HttpListener did? That's my best guess for where the bug would be.

This behavior is different because WebListener uses the kernel mode http.sys auth (running as the machine account), where HttpListener implemented this in user mode. It's not clear if you'd be able to get the old behavior.

Is it possible to set the SPN when using kernel mode auth?
Otherwise, is the fix to to switch to user mode auth?
Thanks,
David

https://blogs.msdn.microsoft.com/amol/2010/10/29/understanding-kernel-mode-authentication-in-iis-7/
https://github.com/aspnet/HttpSysServer/issues/42
It sounds like UseAppPoolCredentials maps to HTTP_AUTH_EX_FLAG_CAPTURE_CREDENTIAL and would be one way of enabling this.

Hey guys,
we are running into the same problem with Kerberos-Authentication.
We have a Windows on premises Service Fabric Cluster with an Asp.Net Core Web API/WebListener running on all cluster-nodes. HTTP-Traffic is distributed via DNS round-robin across the nodes.
We can't use the machine-account for the spn in our scenario because it would tie our public URL to only one of the cluster nodes.
There is a support ticket open at MS: REG:117103016576681
I hope you'll be able to focus on that Issue soon because we can't go-live without appropriate Authentication in place.
Thanks,
Alex

@strabu This bug has been open for a while, so I wouldn't tend to expect an immediate solution. A workaround such as the code above may be your best option for go-live (it's what I had to do to unblock moving to ASP.NET Core for our service).

Bringing this back to triage.

Triage decision: We only support kernel mode NTLM, we don't plan to support user mode.

If you could provide information about future plans of HttpListener vs HttpSysServer that would be helpful - I had been assuming HttpSysServer was the replacement for HttpListener and would cover its scenarios.
Also, I believe this support is key to running in Docker when using Windows Authentication. With Windows Containers, AD authentication uses a gMSA, which won't match the machine account. See:
https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/manage-serviceaccounts

Thanks for taking this into consideration.
We'll stick with NTLM for a few more months and move on to something completely different later this year.


Brightness not detected

General description of bug:

What happened:

When running env NO_CONFIG=1 fastfetch --load-config all --show-errors --stat --multithreading false --disable-linewrap false --hide-cursor false, brightness is not detected. Discovered in #497

What should happen:

Brightness should be properly detected

Did it work in an older version:

Not sure, I've never used this feature

Where did you get the binary:

AUR git version

Does this issue still occurs in the latest dev build?

Yes

Often helpful information:
Output of fastfetch --version:
fastfetch 1.12.2-318 (x86_64)

The content of the configuration file you use (if any)
N/A

Output of env NO_CONFIG=1 fastfetch --load-config all --show-errors --stat --multithreading false --disable-linewrap false --hide-cursor false:

                  -`                     tabulate@xenon                                                                                0ms
                 .o+`                    --------------                                                                                0ms
                `ooo/                    OS: Arch Linux x86_64                                                                                0ms
               `+oooo:                   Host: MS-7C02 (1.0)                                                                                0ms
              `+oooooo:                  Bios: 3.70 (5.14)                                                                                0ms
              -+oooooo+:                 Board: B450 TOMAHAWK MAX (MS-7C02) (1.0)                                                                                0ms
            `/:-:++oooo+:                Chassis: Desktop (1.0)                                                                                0ms
           `/++++/+++++++:               Kernel: 6.4.2-arch1-1                                                                                0ms
          `/++++++++++++++:              Uptime: 6 hours, 48 mins                                                                                0ms
         `/+++ooooooooooooo/`            Processes: 947                                                                                0ms
        ./ooosssso++osssssso+`           Packages: 2216 (pacman), 22 (flatpak-system), 1 (flatpak-user)                                                                                1ms
       .oossssso-````/ossssss+`          Shell: fish 3.6.1                                                                                7ms
      -osssssso.      :ssssssso.         Display (DP-0[��]1): 1920x1080 @ 144Hz *
     :osssssss/        osssso+++.        Display (DP-2): 1920x1080 @ 144Hz
    /ossssssss/        +ssssooo/-        Display (DP-4[��]1): 1920x1080 @ 144Hz                                                                                25ms
  `/ossssso+/:-        -:/+osssso+-      Brightness: No result is detected.                                                                                0ms
 `+sso+:-`                 `.-/+oso:     LM: sddm 0.20.0 (X11)                                                                                0ms
`++:.                           `-/+/    DE: KDE Plasma 5.27.6                                                                                0ms
.`                                 `/    WM: KWin (X11)                                                                                0ms
                                         WM Theme: Breeze                                                                                0ms
                                         Theme: kvantum-dark (BreezeDark) [QT], Breeze [GTK2/3/4]                                                                                0ms
                                         Icons: Hey-classic-dark [QT], Hey-classic-dark [GTK2/3/4]                                                                                0ms
                                         Font: Noto Sans (10pt) [QT], Noto Sans (10pt) [GTK2/3/4]                                                                                0ms
                                         Cursor: breeze (24px)                                                                                0ms
                                         Wallpaper: 7680x4320-purple-3.png                                                                                0ms
                                         Terminal: yakuake                                                                                0ms
                                         Terminal Font: Unknown terminal: yakuake                                                                                0ms
                                         CPU: AMD Ryzen 5 3600 (12) @ 4.208203 GHz                                                                                1ms
                                         CPU Usage: 10%                                                                                0ms
                                         GPU: NVIDIA GeForce RTX 2070 SUPER                                                                                5ms
                                         Memory: 3.77 GiB / 31.29 GiB (12%)                                                                                0ms
                                         Swap: Disabled                                                                                0ms
                                         Disk (/): 778.55 GiB / 916.03 GiB (84%) - ext4
                                         Disk (/run/media/tabulate/largeDisk): 2.23 TiB / 3.58 TiB (62%) - ext4                                                                                0ms
                                         Battery: batteryDir doesn't contain any battery folder                                                                                0ms
                                         Power Adapter: Not supported on this platform                                                                                0ms
                                         Media Player: VLC - Galaxy S10                                                                                2ms
                                         Media: Unknown Artist - fd://67                                                                                0ms
                                         Public IP: xxxxxxxxxxxx                                                                                80ms
                                         Local IP (enp34s0): <IP_ADDRESS>                                                                                0ms
                                         Wifi: No Wifi interfaces found                                                                                8ms
                                         Date & Time: 2023-07-13 20:43:42                                                                                0ms
                                         Locale: en_US.UTF-8                                                                                0ms
                                         Vulkan: 1.3.242 - NVIDIA [535.54.03]                                                                                14ms
                                         OpenGL: 4.6.0 NVIDIA 535.54.03                                                                                134ms

Output of fastfetch --list-features:
threads
libpci
vulkan
wayland
xcb-randr
xcb
xrandr
x11
gio
dconf
dbus
imagemagick7
chafa
zlib
xfconf
egl
glx
osmesa
opencl
libpulse
libnm
libddcutil

Oh, I forgot that the DDC/CI detection is guarded behind --allow-slow-operations. Can you try  again with it?

Weird, that crashes it. Here's the backtrace:
#0  compile_and_eval_regex (pattern=0x7ffff7bc7e94 <error: Cannot access memory at address 0x7ffff7bc7e94>, value=0x7ffff0000e83 "card0-HDMI-A-1") at util/sysfs_filter_functions.c:164
#1  0x00007ffff7ba53f3 in dir_filtered_ordered_foreach.constprop.0 (dirname=dirname@entry=0x7ffff7ba830d <error: Cannot access memory at address 0x7ffff7ba830d>,
    dir_filter=0x7ffff7b95970 <is_card_connector_dir>, func=func@entry=0x7ffff7b6fab0 <get_sysfs_drm_examine_one_connector>, accumulator=accumulator@entry=0x7ffff0000db0, depth=depth@entry=0, compare_func=0x0)
    at util/file_util.c:584
#2  0x00007ffff7b712b7 in get_sysfs_drm_displays () at ddc/ddc_watch_displays.c:227
#3  0x00007ffff7b718a9 in watch_displays_using_udev (data=0x555555605750) at ddc/ddc_watch_displays.c:415
#4  0x00007ffff7918d75 in g_thread_proxy (data=0x5555556000b0) at ../glib/glib/gthread.c:831
#5  0x00007ffff7def44b in start_thread (arg=<optimized out>) at pthread_create.c:444
#6  0x00007ffff7e72e40 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Seems it crashed inside a worker thread of ddcutil. I'll try adding some debug logs to find what's going wrong.

Can you try it with my fork repo: https://github.com/CarterLi/fastfetch

It no longer crashes using the build from that latest commit, and there's still no brightness when adding --allow-slow-operations. However, I tried it again with my installed version and it detects everything correctly now

Just found out the reason for the crash. If i2c_dev isn't loaded it causes the crash

It no longer crashes using the build from that latest commit

It's strange. I just added some debug logs in the commit

If i2c_dev isn't loaded it causes the crash

I don't want the program to crash in any situations. Can you help me find which line is causing the crash?

It works in my old build as well I forgot to mention, it was just crashing cause that module wasn't loaded

Thanks in advance.

Huh weird, I can only reproduce the crash if I build it on my computer. Here's the output:
                  -`                     tabulate@xenon                                                                                0ms
                 .o+`                    --------------                                                                                0ms
                `ooo/                    OS: Arch Linux x86_64                                                                                0ms
               `+oooo:                   Host: MS-7C02 (1.0)                                                                                0ms
              `+oooooo:                  Bios: 3.70 (5.14)                                                                                0ms
              -+oooooo+:                 Board: B450 TOMAHAWK MAX (MS-7C02) (1.0)                                                                                0ms
            `/:-:++oooo+:                Chassis: Desktop (1.0)                                                                                0ms
           `/++++/+++++++:               Kernel: 6.4.2-arch1-1                                                                                0ms
          `/++++++++++++++:              Uptime: 21 mins                                                                                0ms
         `/+++ooooooooooooo/`            Processes: 1106                                                                                0ms
        ./ooosssso++osssssso+`           Packages: 2216 (pacman), 22 (flatpak-system), 1 (flatpak-user)                                                                                1ms
       .oossssso-````/ossssss+`          Shell: fish 3.6.1                                                                                5ms
      -osssssso.      :ssssssso.         Display (DP-0%�<^1): 1920x1080 @ 144Hz *
     :osssssss/        osssso+++.         I'll try it myself to find a solution.

==9285==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x6040000009f4 at pc 0x7ffff78818ef bp 0x7fffffffca30 sp 0x7fffffffc1d8
READ of size 5 at 0x6040000009f4 thread T0
    #0 0x7ffff78818ee in __interceptor_strlen /usr/src/debug/gcc/gcc/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:461
    #1 0x5555558d9f86 in ffStrbufAppendS /home/tabulate/fastfetch/src/util/FFstrbuf.h:166
    #2 0x5555558da1d5 in ffStrbufInitS /home/tabulate/fastfetch/src/util/FFstrbuf.h:208
    #3 0x5555558da278 in ffStrbufCreateS /home/tabulate/fastfetch/src/util/FFstrbuf.h:214
    #4 0x5555558de231 in xcbRandrHandleMonitor /home/tabulate/fastfetch/src/detection/displayserver/linux/xcb.c:297
    #5 0x5555558dedf1 in xcbRandrHandleMonitors /home/tabulate/fastfetch/src/detection/displayserver/linux/xcb.c:339
    #6 0x5555558df7dc in xcbRandrHandleScreen /home/tabulate/fastfetch/src/detection/displayserver/linux/xcb.c:368
    #7 0x5555558e0b6f in ffdsConnectXcbRandr /home/tabulate/fastfetch/src/detection/displayserver/linux/xcb.c:435
    #8 0x5555558d0520 in ffConnectDisplayServerImpl /home/tabulate/fastfetch/src/detection/displayserver/linux/displayserver_linux.c:87
    #9 0x55555580e99b in ffConnectDisplayServer /home/tabulate/fastfetch/src/detection/displayserver/displayserver.c:39
    #10 0x555555889a6f in ffPrintDisplay /home/tabulate/fastfetch/src/modules/display/display.c:16
    #11 0x5555557e6333 in parseStructureCommand /home/tabulate/fastfetch/src/fastfetch.c:1162
    #12 0x5555557e793f in main /home/tabulate/fastfetch/src/fastfetch.c:1313
    #13 0x7ffff763984f  (/usr/lib/libc.so.6+0x2384f) (BuildId: 2f005a79cd1a8e385972f5a102f16adba414d75e)
    #14 0x7ffff7639909 in __libc_start_main (/usr/lib/libc.so.6+0x23909) (BuildId: 2f005a79cd1a8e385972f5a102f16adba414d75e)
    #15 0x5555557dba74 in _start (/home/tabulate/fastfetch-build/fastfetch+0x287a74) (BuildId: 4977afe260b7b4967a2eed6888438302293c7dcc)

0x6040000009f4 is located 0 bytes after 36-byte region [0x6040000009d0,0x6040000009f4)
allocated by thread T0 here:
    #0 0x7ffff78e1369 in __interceptor_malloc /usr/src/debug/gcc/gcc/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x7ffff64e1bc3  (/usr/lib/libxcb.so.1+0xcbc3) (BuildId: f91cf228ed88bb657ff0eac72aa1b9eb1d9610c9)

This seems unrelated to brightness module. I noticed the garbled code

Display (DP-0%�<^1): 1920x1080 @ 144Hz *

What does ls -l /sys/class/drm print?

total 0
lrwxrwxrwx 1 root root    0 Jul 13 22:23 card0 -> ../../devices/pci0000:00/0000:00:03.1/0000:26:00.0/drm/card0/
lrwxrwxrwx 1 root root    0 Jul 13 22:23 card0-DP-1 -> ../../devices/pci0000:00/0000:00:03.1/0000:26:00.0/drm/card0/card0-DP-1/
lrwxrwxrwx 1 root root    0 Jul 13 22:23 card0-DP-2 -> ../../devices/pci0000:00/0000:00:03.1/0000:26:00.0/drm/card0/card0-DP-2/
lrwxrwxrwx 1 root root    0 Jul 13 22:23 card0-DP-3 -> ../../devices/pci0000:00/0000:00:03.1/0000:26:00.0/drm/card0/card0-DP-3/
lrwxrwxrwx 1 root root    0 Jul 13 22:23 card0-HDMI-A-1 -> ../../devices/pci0000:00/0000:00:03.1/0000:26:00.0/drm/card0/card0-HDMI-A-1/
lrwxrwxrwx 1 root root    0 Jul 13 22:23 card0-Unknown-1 -> ../../devices/pci0000:00/0000:00:03.1/0000:26:00.0/drm/card0/card0-Unknown-1/
lrwxrwxrwx 1 root root    0 Jul 13 22:23 renderD128 -> ../../devices/pci0000:00/0000:00:03.1/0000:26:00.0/drm/renderD128/
-r--r--r-- 1 root root 4096 Jul 13 22:23 version

If I run fastfetch without any extra command line arguments, the garbled stuff goes away and it displays correctly
Display (DP-0): 1920x1080 @ 144Hz *
Display (DP-2): 1920x1080 @ 144Hz
Display (DP-4): 1920x1080 @ 144Hz

Does fastfetch --multithreading false work?

fastfetch --multithreading false doesn't crash but also it's not displaying the brightness because I don't have that in my config. The other command just prints this
                  -`                     Display (DP-0): 1920x1080 @ 144Hz *
                 .o+`                    Display (DP-2): 1920x1080 @ 144Hz
                `ooo/                    Display (DP-4): 1920x1080 @ 144Hz
               `+oooo:
              `+oooooo:
              -+oooooo+:
            `/:-:++oooo+:
           `/++++/+++++++:
          `/++++++++++++++:
         `/+++ooooooooooooo/`
        ./ooosssso++osssssso+`
       .oossssso-````/ossssss+`
      -osssssso.      :ssssssso.
     :osssssss/        osssso+++.
    /ossssssss/        +ssssooo/-
  `/ossssso+/:-        -:/+osssso+-
 `+sso+:-`                 `.-/+oso:
`++:.                           `-/+/
.`                                 `/

If I run fastfetch -s display:brightness --allow-slow-operations it does the same thing as above but then crashes

I think I find where the bug is
Please try the latest build

That didn't seem to fix it. Here's this if this helps:
Thread 7 "watch_displays" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff73ed6c0 (LWP 31802)]
__strchr_avx2 () at ../sysdeps/x86_64/multiarch/strchr-avx2.S:67

I was fixing the garbled code issue, not the brightness one

Yes, that does fix the garbled code issue

Good! Thanks for testing!

It should work in the latest dev build. Please test it

If I don't have i2c-dev enabled, it no longer crashes with the previous command (fastfetch -s display:brightness --allow-slow-operations). However if I do have it enabled, it shows the brightness but also produces this error:
[tabulate@xenon ~]$ ./fastfetch-build/fastfetch -s display:brightness --allow-slow-operations
                  -`                     Display (DP-0): 1920x1080 @ 144Hz *
                 .o+`                    Display (DP-2): 1920x1080 @ 144Hz
                `ooo/                    Display (DP-4): 1920x1080 @ 144Hz
               `+oooo:                   Brightness (LG ULTRAGEAR): 70%
              `+oooooo:                  Brightness (DP-2): 70%
              -+oooooo+:                 Brightness (DP-3): 70%
            `/:-:++oooo+:
           `/++++/+++++++:
          `/++++++++++++++:
         `/+++ooooooooooooo/`
        ./ooosssso++osssssso+`
       .oossssso-````/ossssss+`
      -osssssso.      :ssssssso.
     :osssssss/        osssso+++.
    /ossssssss/        +ssssooo/-
  `/ossssso+/:-        -:/+osssso+-
 `+sso+:-`                 `.-/+oso:
`++:.                           `-/+/
.`                                 `/

=================================================================
==18616==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 32816 byte(s) in 1 object(s) allocated from:
    #0 0x7f03d9ee1369 in __interceptor_malloc /usr/src/debug/gcc/gcc/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x7f03d9ce62b5  (/usr/lib/libc.so.6+0xd02b5) (BuildId: 2f005a79cd1a8e385972f5a102f16adba414d75e)

SUMMARY: AddressSanitizer: 32816 byte(s) leaked in 1 allocation(s).

It's memory leak and it's expected. If you build fastfetch in Release mode the error will disappear.


[DON'T REVIEW] Testing build comments

Signed-off-by: Gera Shegalov<EMAIL_ADDRESS>

build

test succeeded


Search is not working

I have copy-pasted and translated from the Italian branch the searchissues.html, search.js and search.min.js files. When you search on the gr branch, we have no results.

I translated search terms. I believe we need to update lunr to get utf-8 search

duplicate of #522 . I close.


artist, album and title not shown with Tidal via bubbleupnp server

I installed pydPiper and use it with a Winstar LCD screen. It works very nice, thanks to dhrone, you created a great piece of software. On the raspberry I run the mediaplayer software by Pete Manchester, which is a Java-based openhome renderer which uses mpd for playback. As control point, I use LINN Kazoo or the LUMIN software running on an ipad. Everthing works perfect when I stream music from my Music Server. In order to have tidal access, I run the bubbleupnp server software on the pi, which provides tidal access for the mediaplayer.  When I use tidal in this setting, no artist, album and title information is available although Kazoo or Lumin shows all the information
Do you have any idea what could be the reason?

yes, I use the MPD source driver.
When I use the --showupdates  parameter when I run the program, I get the message db[encoding]'webradio'. Is that normal?

interestingly, sometimes it shows title and artist but no album with tidal via bubbleupnp server and sometimes all three items are missing. I have no idea what could be the reason for this differences.

db[encoding] will equal 'webradio' whenever the file that MPD is playing is specified as a webserver address.  In other words if the current file starts with 'http' the driver assumes that the source is a web server that is streaming the contents to the player.


Configuration file

I would like to use this mod in a pack, however I would like to tweak some of the settings of the mod. Unfortunately there is no configuration file, would you be able to add one?

You're going to need to provide more information than that. What do you want to configure?

I'd like to be able to configure the odds for events to happen, toggle specific behaviours (such as black ice), along with potentially settings to change the amount of particles rendered.

There are no "events" that happen; weather is regional and controlled by time-dependent noise. That noise should already be configurable via datapacks. I'll look into allowing configuration of stuff like black ice; for particles, it should just follow the same logic as vanilla rain/snow particles?

Oh alright. The particles felt a bit different to me, maybe that was another mod at play though.

The particles use different textures, which may be more dense than the vanilla ones. You can change that with a resource pack.


Is the "Up" button really useful?

I thought that its function was to go back to the top, but I realized that it only goes back in the same way that I would do using the navigation bar.

The top button is used to go one level up in the folder hierarchy, so it does what it' supposed to.

The up button is very useful, while you can do that from the navigation bar as well, many users are used to using the up button. It is also useful if the path in the navigation bar is very long and you would have to scroll to find the path you want to switch to.


Collected styles get cleared upon HMR on SSR development

Description
This might be more of a question, but here it goes.
I am currently trying to write a boilerplate with preact + otion SSR. Everything works well on production, but there is a small issue on development.
Before any HMR happens, I am getting the extracted CSS correctly,
{
  style: '<style id="__otion">._zjik7{display:flex}._1y5pc60{color:white}._ppce79{height:20vmin}._1opdq3a{animation:_x7zxwf infinite 1.6s ease-in-out alternate}._2ji30f{width:80%}._hq6nwu{background:#333333}._1fr108o{border:1px solid #282c34}._1v03bf2{padding:2rem}._4zleql{display:block}._boonzp{width:30vw}._xsvpxu{margin:2rem auto}@media(max-width:600px){._17oe20f{padding:1.25rem}}@media(max-width:600px){._1ve5e7k{width:auto}}._1azakc{text-align:center}._13867xz{background-color:#282c34}._1uiai01{min-height:100vh}._qdeacm{flex-direction:column}._1h3rtzg{align-items:center}._f7ay7b{justify-content:center}._ski4pt{font-size:calc(10px + 2vmin)}._k19fg7{object-fit:contain}._17inu87{max-height:24vmin}._je8g23{pointer-events:none}._8dk3vg{margin-bottom:1rem}._1flj9lk{text-align:left}._1irf8uk{border-radius:2rem}@keyframes _x7zxwf{from{transform:scale(1)}to{transform:scale(1.06)}}</style>'
}

But after making any changes to the code, HMR is triggered and the next request will not get CSS anymore.
{ style: '<style id="__otion"></style>' }

I might be doing something wrong here, but I am not sure what. Here is the code that handle the SSR part.
Reproduction

Clone the repo https://github.com/jackyef/preact-otion-snowpack
Install dependencies: yarn
Run the client static assets server: yarn start
Run the SSR dev server: yarn dev:server
Go to localhost:8001, the HTML document will include the extracted CSS.
Make any changes to server/index.tsx, wait for HMR to trigger
Go to localhost:8001 again, now the HTML document will no longer include CSS.

Expected behavior
After HMR, the CSS should still exist, or at least there is a way to make this happen on development with HMR.
Actual behavior
After HMR triggers, the CSS no longer exist on SSR.
Environment

## System:
 - OS: Windows 10 10.0.18363
 - CPU: (8) x64 Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz
 - Memory: 4.10 GB / 15.97 GB
## Binaries:
 - Node: 12.18.0 - D:\Program Files\NodeJS\node.EXE
 - Yarn: 1.16.0 - D:\Program Files\Yarn\bin\yarn.CMD
 - npm: 6.14.4 - D:\Program Files\NodeJS\npm.CMD
## Browsers:
 - Chrome: 85.0.4183.83
 - Edge: Spartan (44.18362.449.0)
 - Internet Explorer: 11.0.18362.1
## npmPackages:
 - otion: ^0.6.1 => 0.6.1

Thank you for reporting! You seem to be doing everything fine.
During development, server-side prerendering of styles isn't required. Please make sure that the DOMInjector is in use on the client side for debugging. It should emit a visible output to the <style id="__otion"> tag.

I can see everything works fine after the JS is executed on the client side, the styles are injected to the <style id="__otion"> tag as well.

During development, server-side prerendering of styles isn't required.
While I do agree with this in most cases, but in some cases we might want to develop and test SSR on development, which is something I am trying to achieve here. Currently it works, but after HMR triggers, the VirtualInjector would lose all of its styles. Is there anything we can do here?

After HMR, the server has no chance to inject styles into the HTML anymore, so the VirtualInjector won't have an effect. I'm closing this as the behavior seems to be as intended by your detailed description. Thank you for asking these questions!


enum.groups.id hardcoded to 0x2dfa95a94 if uid is numeric

brief
The title should be self explanitory
Steps to recreate

call data = LumoData(...) with a v0.5.0 .lumo file
type in data.enum.groups.id

Good catch, this will get a bit more testing when layout/group uid cross-checking is implemented


Tab Navigation does not work on Safari

Description of the issue

When pressing Tab on a service that supports tab navigation, a yellow bar should appear at the top that says "Skip to main content", when clicking the link in the bar, it should scroll to the main content on the page.
This feature works on all browsers except Safari on Mac, we would like to know if there is a design pattern that enables this to work on Mac by default.
Steps to reproduce the issue

One service I know of that uses this is called ATAR (Advanced tariff rulings, operational service).
Link here
Scroll to ATAR Operational service section, and use QA or Staging URL, use any string for PID and paste one valid role to login. When on the service, pressing tab should activate this feature. It doesn't work for Mac however.
Actual vs expected behaviour

Pressing tab on a page that supports the skip to main content button, should make a yellow bar appear at the top, with a link that says "skip to main content", then the page moves to the main content, the bar does not appear by default on a Mac on Safari.
Environment (where applicable)

Operating system: iOS
Browser: Safari
Browser version: Any
Library Name & Version: Any

This might be an issue for us to feedback to govuk design system team, because opening https://design-system.service.gov.uk/components/skip-link/default/index.html with safari I can't access the skip link there either. Maybe I'm forgetting something basic though, will see if we can ask a few more people to take a look first

Hi @yangwong9664
I tested on a Mac using Browserstack.com with a Mac(Monterey) and Safari(15.1), it worked for me when i tabbed to main content and then pressed enter.

@yangwong9664 apologies, this is a quirk of safari, where tab navigation of web pages has to be turned on in safari's preferences to work. I had an inkling there was something like this that I'd forgotten about, here's an example:


Empty result with npm   webpack on existing website (but working with unpkg)

Version
3.1.5
Steps to reproduce
I'm trying to add vue to an existing website using npm   webpack. The target div is not changed and is left empty, so it seems that the mounting fails somewhere. No errors are shown in the dev console. If I instead use vue via unpkg then the result is the expected one.

package.json:

{
  "name": "foo",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "node -r esm index.js",
    "build": "webpack --config webpack.config.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "esm": "^3.2.25",
    "express": "^4.17.1",
    "vue": "^3.1.5",
    "webpack": "^5.49.0"
  },
  "devDependencies": {
    "webpack-cli": "^4.7.2"
  }
}

webpack.config.js:

module.exports = {
  entry: {
    component: './component.js',
  },
  optimization: {
    minimize: false
  },
  output: {
    path: `${__dirname}/public`,
    filename: '[name].js',
  }
}

index.js:

import express from 'express'
const app = express();
app.use(express.static(`${__dirname}/public`));
app.listen(3000, () => console.log(`App listening at http://localhost:${3000}`))

component.js:

import { createApp } from 'vue'

createApp({
  template:`

Component

I'm a little component that display a list of numbers

{{ n }}

  `,
  data() {
    return {
      numbers: [1, 2, 3],
    }
  },
}).mount('#my-container')

public/index.html:

MWE

Resulting html:

MWE

However, if I instead use vue via unpkg then it works as expected:
diff --git a/component.js b/component.js
--- a/component.js
    b/component.js
@@ -1,6  1,4 @@
-import { createApp } from 'vue'
-
-createApp({
 Vue.createApp({
   template:`

Component

diff --git a/package.json b/package.json
--- a/package.json
    b/package.json
@@ -4,15  4,13 @@
   "description": "",
   "main": "index.js",
   "scripts": {
-    "start": "node -r esm index.js",
-    "build": "webpack --config webpack.config.js"
     "start": "node -r esm index.js"
   },
   "author": "",
   "license": "ISC",
   "dependencies": {
     "esm": "^3.2.25",
     "express": "^4.17.1",
-    "vue": "^3.1.5",
     "webpack": "^5.49.0"
   },
   "devDependencies": {
diff --git a/public/index.html b/public/index.html
--- a/public/index.html
    b/public/index.html
@@ -1,4  1,7 @@

+
+

What is expected?
For the div element to get replaced with the component
What is actually happening?
vue silently does not mount the component

No errors are shown

Your webpack config is missing an alias to pont to the right build of Vue - one that includes a runtime-compiler for string templates:
https://v3.vuejs.org/guide/installation.html#with-a-bundler

Hi @LinusBorg, is there some basic example of a webpack configuration that allows this to work? I'm fairly new to bundling in general and the provided link is not clear enough to me.

In particular, what does an alias to the "the right build of Vue" mean?

In particular, what does an alias to the "the right build of Vue" mean?

In order to use the functionality of the vue.js template, you need to load the finished package with the compiler and runtime, but vue.js by default loads the runtime only version, so you need to explicitly specify the version (vue.esm-bundler.js)
try this
// webpack.config.js
module.exports = {
    resolve: {
        alias: {
            'vue$': 'vue/dist/vue.esm-bundler.js'
        }
    }
}

Got it, tyvm!


Add cocoapods-user-defined-build-types

Add cocoapods-user-defined-build-types to package.json.
Based on this issue, it was preferred to open a PR.

👍 looks good


Problems with tests

I registered a new version of PermGroups using  AbstractPermutations.
First, I did not any more pass my tests since you have defined a method
Base.show(::IO,::MIME"text/plain",::AbstractPerm)
Since I did not define such a method for my Perm, this was hijacking in many cases my own show for Perm. I fixed the problem by defining such a method, but I think you should not define such a method.
I don't pass your tests for the last two reasons below:

You assumed that a malformed permutation raises an ArgumentError. Since I raised another error type, your test failed and made all the other tests fail (not execute). Since I don't mind, I made my functions return ArgumentError  but I think you should fix your tests so that at least they continue even if another error type is returned.
I introduced a checking constructor, but, as I always do, I made  check  a keyword argument and not an optional argument. I will not change this since I think it is much clearer what it means when you encounter in some code Perm(v;check=false) versus Perm(v,false).
In your tests the constructor is called in the form Perm{T}(v). I did not define such a constructor, since it is not necessary. If you want to convert the argument you may always do Perm(T.(v)). (I have a constructor Perm{T}(i1,...,in) for a cycle but that is a different circumstance).

You are free to adjust how your permutations are printed according to your taste. (I will be modifying io part soon anyway to make use of more extended features such as display limiting, etc. Contributions/ideas are welcome!
the ArgumentError on invalid images is non-compulsory as we have discussed this; moreover you stated that you don't even validate the images constructor, hence I introduced this commit: https://github.com/kalmarek/AbstractPermutations.jl/commit/6b959b8a9bec3af8062132dda737eb7d8aaef7e5
Now, since you actually started validating the images is this commit even necessary?
indeed Perm constructor with keyword argument might be another option; however then we need to put some consideration into its name (which is not the case for standard argument). I have two suggestions here: APerm(images; check=true) or APerm(images; validate=true), with slight preference for the latter actually. Any preference/suggestion from you?
do you refer to those tests: https://github.com/kalmarek/AbstractPermutations.jl/blob/main/test/abstract_perm_API.jl ? Then I don't see where Perm{T} is called, only P which is the argument.

To answer your various points

You are free to adjust how your permutations are printed according to your taste

My printing is basically like yours. The difference is that I print the type Perm{T}:  when T is not Int16 (the default type for my Perms) and the type has not been already printed (which can be determined by the io property :typeinfo).

Now, since you actually started validating the images is this commit even necessary?

It is not any more necessary.

I have two suggestions here: APerm(images; check=true) or APerm(images; validate=true), with slight preference for the latter actually. Any preference/suggestion from you?

Both are slightly imprecise. validate_input would be precise but is cumbersome. I prefer check which is short and clear enough (and you probably agreed when you called your optional argument check in the source code of your constructor).

I don't see where Perm{T} is called, only P which is the argument.

Line 6 of arithmetic.jl you have return typeof(σ)(img, false) where typeof(σ) expands to Perm{T}. You should use instead the argument P to abstract_perm_interface_test. You would have found this if you had tried to test my package.
By the way, your README is not as clear as it could be. You write
abstract_perm_interface_test(ExamplePerms.Perm)
where according to what you write above it should be
abstract_perm_interface_test(ExamplePerms.APerm)
I think it would even be better if you wrote APerms instead of ExamplePerms.

in #13 I added more advanced printing methods; feel free to suggest more improvements there
ok I'll remove it then, ArgumentErrors will be thrown.
APerm(images::AbstractVector; check::Bool=true) it will be then.
Well then PermGroups.Perm{T} doesn't implement the interface, does it? The interface requires a constructor based on type. As I said before I will not "shove anything down your throat" (just to quote you :). You need to implement, check and run it yourself.
The point of the snippet given in README is that it can be pasted directly and run in any julia session that has access to AbstractPermutations. I'll remove the reference to APerm.

in https://github.com/kalmarek/AbstractPermutations.jl/pull/13 I added more advanced printing methods; feel free to suggest more improvements there

I am not sure to have followed correctly your logic, but:
my permutation pass the round-trip test:  p==eval(Meta.parse(repr(p))). For that, print(p)  prints the style
perm"(1,2)(3,4)" while I think you print the non-parseable "(1,2)(3,4)" (which should be printed only if `:limit=true' which is the most reliable indicator that one is in the REPL, Ijulia or pluto).

Well then PermGroups.Perm{T} doesn't implement the interface, does it? The interface requires a constructor based on type. As I said before I will not "shove anything down your throat" (just to quote you :). You need to implement, check and run it yourself.

What you say is not clear to me. We have Perm{T}<;Permfor any T. So Perm is as well the type of permutations a Perm{T} is. And Permis the argument to abstract_perm_interface_test.  I did not implement a constructor Perm{T}since it seems to me pointless (thus harmful). I could write
Perm{T}(v;check) where T=Perm(v;check)
but that is even more silly. Something like
Perm{T}(v;check) where T=Perm(T.(v);check)
seems more reasonable. But what is the point? This is completely unneeded. So please, be kind and explain/justify a bit your design for my enlightenment.

#13 decoupled show/printing from the interface; You can continue to use whatever show for your permutations that suits your taste.
Every concrete subtype of AbstractPermutation needs to implement a constructor of specified semantics. This sentence seems clear enough. Maybe what is not clear to you is that Perm is not a concrete type. Your constructor for Perm just happens to return Perm{T} for some T.
But regardless: maybe such constructor is not needed from your perspective, but to preserve the type of permutations given by our users while providing uniform construction method it is indeed necessary. That is unless you propose something else that works also for permutations which encode additional information in their type (except T).

I have had problems since I used AbstractPermutations. Errors sometimes with deepcopy, in general deepcopy much
slower. I think this is due to the definition of Base.deepcopy_internal  in your code. I solved it by defining Base.deepcopy in my code (it was not overloaded before)  but is what you did OK?

What is the error? Note that one should not overload Base.deepcopy directly.
Indeed there was an error in the implementation that did not preserve the identical permutations. Have a look at #16

Why do you overload Base.deepcopy_internal ? This makes it impossible to avoid your code. But at least you could make your code so that I could avoid the slowdown that your method  _deepcopy  brings to me (now you renamed it _copy_by_images). Since you define Base.copy by _deepcopy, in the code you wrote for  Base.deepcopy_internal you should just call copy instead of _deppcopy and then the copy will go through my fast code.

@jmichel7 feel free to make a PR on top of #16 with the changes that you deem fit.

well, I just ask to change line 155 of abstract_perm.jl from
    `stackdict[p] = _copy_by_images(p)`

to
    `stackdict[p] = copy(p)`

It should be faster for you to do this than for me to prepare a PR.

such change would not be correct

because copy is not the same as deepcopy. the former may resolve to the latter but not the other way around. please consult the docstrings of both methods

My reasoning is very simple:  your code for copy(AbstractPerm) is _copy_by_images. So for you replacing
_copy_by_images by copy changes nothing. But for me who has my own method for copy which is faster than your method (since I just copy the data field) this makes an improvement.
Speaking about correct I think it is not correct for you to overload an internal non-exported and undocumented function deepcopy_internal.

It changes plenty, since by default copy may not create an object fully independent from its argument, while deepcopy must.
as for overloading deepcopy_internal: all those words could be spared had you consulted the docstring of deepcopy.

You did not answer me:
why did you deemed necessary to overload deepcopy_internal.

so that this method doesn't have to be overloaded multiple times (for every subtype), especially that it is not trivial to get it right.
But reading between your verses: Are you suggesting the removal of the definition and relying on the default mechanisms of julia instead?

Yes, I would prefer if you rely on the default mechanism of Julia. This is the only one of your definitions that a subtype of AbstractPermutations cannot easily overload. The default mechanism of Julia applied to my permutations is quite a bit faster than going through your code.

#19 has been merged, all things should be resolved now.

I just registered a version, 0.2.15, which passes all tests of AbstractPermutations 0.3.0


Save to S3

@phil-shenk development commit (86ebc7a77f0a50433709facb2c4afc7c91a83163) contains Data.S3.lvclass. It contains your VIs with new names and class wire


Added GRID groupAlignment option

The GRID alignment allows you to divide the groups on several lines; in this case it is necessary
to specify the row index on which you want to place the group. Each row will contain all the groups
with the corresponding index for which the maximum width of the screen will be that of the widest row.
With this alignment you will be able to use the screen space to the maximum without having
to define groups with a very large height. Group 'row' setting is ignored for HORIZONTALLY and VERTICALLY alignments

I've pushed some minor formatting/naming changes. Now that that's out of the way I'll focus on the actual feature. But give me some time for that. :)

Interestingly my changes don't show up in the diff. Something weird about this branch and all sorts of merges. :)

Well done for the naming / style changes ... On our work projects there are the various Jenkins / Travis who do it ... Actually, I also had the question of whether to call the new alignment mode "GRID" or "TABLE "... You choose :)

In my testing I can see that groups align in the middle vertically while in your screenshot they align to the top. Do you have some custom styles applied?

There is a style for table and table row
you must change    vertical-align:middle to vertical-align: top in line 474 of main.less to work
I remember that groups are also used in popup, is this right? If affirmative this must be checked, how I can activate popup?

As for testing the popup, I use this tile (you will probably have to change entity IDs to ones that exist in your setup):
                  {
                     position: [4, 0],
                     width: 2, height: 2,
                     type: TYPES.POPUP,
                     icon: 'mdi-android',
                     title: 'POPUP',
                     state: false,
                     id: {},
                     secondaryAction: function (item, entity) {
                        this.$scope.openPopup({
                           type: TYPES.POPUP,
                           position: [0, 3],
                           id: {},
                           icon: 'mdi-android',
                           title: 'History popup',
                           state: false,
                           popup: {
                              tileSize: 100,
                              items: [
                                 {
                                    type: TYPES.SWITCH,
                                    subtitle: 'Office',
                                    position: [1, 3],
                                    id: 'light.everspring_inwall_dimmer_level_3',
                                    title: 'Test',
                                    icons: {
                                       on: 'mdi-spin mdi-fan',
                                       off: 'mdi-fan',
                                    },
                                    states: {
                                       on: 'On',
                                       off: 'Off',
                                    },
                                 },
                              ],
                           },
                        }, '');
                     },
                     popup: {
                        tileSize: 100,
                        items: [
                           {
                              position: [0, 0],
                              type: TYPES.LIGHT,
                              id: 'light.everspring_inwall_dimmer_level_3',
                           },
                        ],
                     },
                  },

There is a style for table and table row, you must change vertical-align:middle to vertical-align: top in line 474 of main.less to fix

Sure but I'm wondering what's the good default here and whether it should be changed. Or alternatively, a new option should be provided.

I mean I added a style for tables and rows (the 'groups-table' and 'groups-table-row' classes) to use for this functionality ...
About the opportunity not to change the style at line 474, the groups are now rendered in the table rows anyway (which has style vertical-align: middle) ... We can try to understand if something else can be done with a style local in index.html.ejs but then it should be! important and frankly I don't understand why; the only reason for conflict for not making that change I see in the behavior of the popup that I am now going to try ...

The rows are not aligned properly with customTheme: CUSTOM_THEMES.WINPHONE theme for example. I've only tested WINPHONE and HOMEKIT so far so there might be issues in other themes also.

i tried to check with all themes ... i also did the comparison with the version before my modification. I found some "strange" behavior in the original version that includes overlapping titles, menu bar; before "fixing everything" I would like to know what the desired / expected behavior is ... It seems strange to me that with a vertical layout the group titles should overlap the tiles or the header or possibly the sidebar ...

can you send me a screenshot of this incorrect placement?

The issue with the WINPHONE theme you should be able to see if you create two groups with the same row index. In that theme they are positioned above/below each other rather than in one row. That's because there is a rule that makes them display: block here https://github.com/resoai/TileBoard/blob/7b29fad5d2bff861d226ab6d06eb3c702a4242e3/styles/themes.less#L376-L376

before "fixing everything" I would like to know what the desired / expected behavior is ... It seems strange to me that with a vertical layout the group titles should overlap the tiles or the header or possibly the sidebar ...

I would recommend not to start fixing old issues in this same PR as it can get messy quickly. We can handle them later. Let's just try to get GRID layout to work nicely for now.
When you have a lot of tiles that take a lot of space vertically then the tiles start overlapping header and that's not nice but we should try to find some generic solution for that later since it's not a new problem. For example:

Fixed everything ... (What you requested). Since the GRID alignment does not make sense for the MOBILE and WINPHONE themes I have introduced a control that if one of those themes is selected returns the alignment to the default HORIZONTALLY. I've also made sure that the grid is only used for GRID alignment, otherwise the old code is used. I think that's okay ...


Document experimental fetch subcommand

Document experimental fetch subcommand
This documents the fetch subcommand introduced in
https://github.com/facebook/dotslash/pull/20. I tried to keep the
description brief, but it is admittedly the longest one in the table.

@bigfootjon I don't think this has to be live before v0.4.0 is released, but it would be nice!


Refresh control indicator is not displayed on iOS

Current behavior

Refresh control is not visible when I navigate to ListScreen and refreshing was triggered when screen was mounted in useEffect as below:

const ListScreen = () => {
  const data = [{ x: 1 }, { x: 2 }, { x: 3 }, { x: 4 }];

  const [isRefreshing, setIsRefreshing] = useState(false);

  const refresh = () => {
    setIsRefreshing(true);

    setTimeout(() => {
      setIsRefreshing(false);
    }, 2000);
  };

  const renderItem = ({ item }) => (
    <View style={{ height: 100 }}>
      <Text>{item.x}</Text>
    </View>
  );

  useEffect(() => {
    refresh();
  }, []);

  return (
    <SafeAreaView style={{ flex: 1 }}>
      <FlashList
        data={data}
        renderItem={renderItem}
        refreshControl={<RefreshControl refreshing={isRefreshing} onRefresh={refresh} />}
        estimatedItemSize={100}
      />
    </SafeAreaView>
  );
});

Refresh control works fine when it is triggered by swipe and additionally refresh control is visible when I've added some timeout (like below) but it doesn't solve the issue:
  const refresh = () => {
    setTimeout(() => {
      setIsRefreshing(true);
   }, 500);

    setTimeout(() => {
      setIsRefreshing(false);
    }, 2000);
  };

Expected behavior
Refresh indicator should be displayed even if it was triggered immediately after screen mount
To Reproduce

https://snack.expo.dev/@piotrborowski/graceful-donut
Platform:

[x] iOS
[ ] Android

Environment

1.4.0 but also doesn't work on 1.4.3

I got the same problem...

Same issue

facing same issue

Working fine for me with recent unreleased fixes. (tested with 0.75.4)
https://github.com/facebook/react-native/pull/46655
https://github.com/facebook/react-native/pull/46628

Facing this issue currently as well.
react native : 0.73.6
flashlist: 1.7.0


[DIR-194] Monitoring Page

This PR introduces the monitoring page in the new design
Preview 🚀

Other Changes
Playwright tests have been re-enabled on every Pull Request once again.
I replaced the Bug icon with the ActivitySquare
Used the TooltipCopyBadge on the invoker column on the instance page as well (only for child instance)
fixes a bug in the Button component where the following code will not behave like a link (button is not clickable because the class pointer-events-none was accidentally applied)
<Button asChild>
  <Link to="...">Link</Link>
</Button>

On the instances Page, the full screen button on the diagram panel had no background

Before
After

Added a new RefreshButton component for better feedback when the user clicked a refresh button

I changed the pattern on how we consume the streaming data in our components

The old API looked like this:
...
const InstancesPage = () => {
  const { t } = useTranslation();

  /**
   * This hook will subscribe to a SSE stream. It will setup a connection
   * on mount and cancel the connection on unmount. To avoid unnecessary
   * reconnects, make sure to place this hooks in a isolated a parent component
   * that will not rerender very often.
   */
  useNamespaceLogsStream();

  return (

        <ActivitySquare className="h-5" />
...

We offer a hook for streaming, but it comes with a separate handbook on how to use it. When you place that hook wrong, it will reconnect a lot. Using streaming should be more simple and the context should not matter at all. The new solution lets us place a streaming provider component where ever we want (we can even place it deep down in a tree, when one of the parents is affected by the streaming updates and needs to re-render)
The problem of the previous solution was, that it was dependent on where it was placed. Since it was a hook it was re-rendering a lot, when the component it was in has changed. My idea was to somehow memo-ize the hook to avoid unnecessary re-renderings. But the hook has to have a useEffect in it and I did not find a good solution to memo-ize an effect (I think it is simply not possible without violating the exhaustive-deps eslint rule).
So the solution would be to place it in its own component and put a memo() around it to only re-render when the props change. The new usage looks like this.
...
const InstancesPage = () => {
  const { t } = useTranslation();
  return (

      <NamespaceLogsStreamingProvider />  {/* could also be  <NamespaceLogsStreamingProvider enabled={somevar} /> */}
       ...

...

My first intuition was to have it like this <NamespaceLogsStreamingProvider>...</NamespaceLogsStreamingProvider> but this would also re-render too often, because children are just props as well and memo will re-render when the children change. And it would also be kind of wrong to make this a wrapping component, because it would look like it would do something for its children while it does not have any parent child dependency. An empty component like <NamespaceLogsStreamingProvider /> looks a bit weird and looks like it should be a hook, but I did not find a way to replicate the same behavior in a hook.
Here is a screen recording of my test case:
https://github.com/direktiv/direktiv-ui/assets/121789579/dde1fd01-e4de-4771-96f1-3012d91e0917

I put the provider directly inside the log component (which re-renders a lot when new logs comes in)
I made a toggle for the enabled attribute of NamespaceLogsStreamingProvider to demo that the component will re-render when it has to (when props change)
the network tab and the console output in this video shows when a new stream connection is established and when it is closed
The old method would have shown a new connection in the network tab whenever we click that toggle, and also whenever a new log comes in.
the new method is able to avoid re-rendering when anything around it does, but it will rerender when it has to (e.g. when its own prop changes)
I wonder if we should call it "provider". My mental model of a provider component would provide something to its children. What do you think about the name?

How to test
A good way to test the logs is to have two windows open (use two different browsers just to make sure you don't hit the browser limit for maximal number of open SSE connections) and watch the monitoring page as you trigger a workflow that spawns a lot of children automatically
follow-up tickets

E2E test

@sebxian Thanks you @sebxian, very helpful input as usual. I should have resolved all the open issues and will wait for your final approval 🚀


Hypnocube Generic Controller will only send [0x00]

Hey, this is Joe from FRC Team 3322.
The board you gave me has been amazing, everyone's really impressed with the demo programs. However, I've been having an issue where trying to upload my own demo sequence does absolutely nothing but send [0x00]. Am I doing something wrong?

(Windows 8 x64)
I apologize if I've made a stupid mistake, I'm still very new to this sort of thing.

On another note, the first time I connect to the controller, picking a remapping+demo and pressing "Start Playback" for the first time returns with "ERROR: unrecognized command. Enter 'help' for a list."

The return bytes [0x00] are a heartbeat sent from the module to denote it has seen a frame of image.
When showing the internal demos from the module (not from outside control), if you send a lot of bytes in a command to the module, it loses a few as it returns from the demo code. The internal buffer is only a few bytes wide. This demo software is not designed to handle that cleanly, but in the documentation we recommend sending a /n/r sequence and wait a few ms.
If you want to add new visualizations for your uses, and want to use this code base, you need to add more visualization classes. If you're just going to add some control for strips, it may be easier stripping out the file that handles module interfacing and talk to that.
I also recommend setting the internal module demos off (set the start delay to 0) and save the settings. You can do this from a terminal program, or from the sample code.

Alright, is that the reason the strip doesn't do anything?

Work through the quick setup from the PDF instructions http://hypnocube.com/product/led_serial_driver/


Adding push notification on chat messages

Push messaging provides a simple and effective way to re-engage with the users and handle incoming push messages. It also helps to subscribe and unsubscribe a user for push messaging and display a notification and respond to notification clicks

I would like to work on this issue using firebase messaging and vapid api keys

@shreya024 You can work on it

@shreya024 You can work on it but make a PR after 11 dec okay

Okay ...Kindly assign

I will need the fcm server id to actually send and test the push notifications.

@shreya024 Okay...can I send the ID in the discord ??

@shreya024 Okay...I have sent the ID in the email

I have replied.I need the Firebase Cloud messaging server key. Kindly check it :)


node DOM coordinate and canvas coordinate are different

I find node DOM coordinate and canvas coordinate are different in vis-network. There are 4 nodes in diagram A. Then remove one node and make diagram B with the same options as well as A. The 3 nodes' location in diagram B are different with the 3 nodes in diagram A. I find they have the same canvas coordinate and diffrent DOM coordinate. I want they have the same DOM coordinate as well as canvas.
There is a demo. When right click the diagram, delete a node. Remaining nodes' locations change.
<!doctype html>

Network

Anybody could help me?

The DOM and Canvas coordinates will always be different as the canvas keeps it's own screen space.
There are methods that allow for you to convert between the two.


Add profiles by grabbing the executable of a focused window.

In Pie-Menus V1, I used to have a method of adding profiles:

Click a button to start a 5 second countdown.
User focuses the desired window to add a profile for.
When the countdown ends, grab the executable of the focused window.
Prompt the user to add this profile.

This is more convenient than searching for an executable, and it will ensure that the correct executable is acquired.
Adding UWP applications or other windows native programs results in grabbing an incorrect executable.  If you add a profile for notepad.exe in Win11, a profile will be created for that.  But when notepad.exe runs, the application that is running is actually "Notepad.exe".  Calculator has calc.exe but runs in "ApplicationFrameHost.exe".

It reminds me of AltSnap, which features a way to capture an application thanks to a "target icon"(that the user has to drag over the focussed application):

Dang, wish I saw that before I added this.
This has been added in v1.0.24