timeshift says "No snapshots found"

I'm sorry to open this, but I want your advice to recover my system.
Question

I want to restore my system using a snapshot, but I can't do that since my info.jsons (in my snapshots) are corrupted. Thus, I want to create a valid info.json manually and replace it with the corrupted one. What should I write to info.json?
Are there any recommended settings to prevent the corruption of info.json?

Situation
I installed Ubuntu Desktop 21.10 on my machine, following your instruction (Ubuntu Desktop 20.04: installation guide with btrfs-luks full disk encryption including /boot and auto-apt snapshots with Timeshift) last week. The system was stable, and I was very comfortable using it.
However, today I accidentally removed a mandatory package, and my system won't boot properly (it shows GNU GRUB version 2.04 instead).
Then I read your article (Timeshift (under construction)), booted my machine from a Live USB stick, and executed
$ sudo cryptsetup luksOpen /dev/nvme0n1p3 cryptdata
$ sudo add-apt-repository ppa:teejee2008/timeshift
$ sudo apt update
$ sudo apt install timeshift

$ sudo timeshift --list --btrfs

/dev/dm-0 is mounted at: /run/timeshift/backup, options: rw,relatime,ssd,space_cache,subvolid=5,subvol=/

E: JSON data must be UTF-8 encoded

(process:8812): Json-CRITICAL **: 02:59:20.107: json_node_get_object: assertion 'JSON_NODE_IS_VALID (node)' failed
E: JSON data must be UTF-8 encoded

(process:8812): Json-CRITICAL **: 02:59:20.108: json_node_get_object: assertion 'JSON_NODE_IS_VALID (node)' failed
E: JSON data must be UTF-8 encoded

[ Omitted since it's massive and repetitive ]

(process:8812): Json-CRITICAL **: 02:59:20.112: json_node_get_object: assertion 'JSON_NODE_IS_VALID (node)' failed
E: JSON data must be UTF-8 encoded

(process:8812): Json-CRITICAL **: 02:59:20.112: json_node_get_object: assertion 'JSON_NODE_IS_VALID (node)' failed
Device : /dev/dm-0 (nvme0n1p3)
UUID   : 17502a7b-cced-4947-9812-ec655bd0c953
Path   : /run/timeshift/backup
Mode   : BTRFS
Status : No snapshots on this device
First snapshot requires: 0 B

No snapshots found

... and saw a bunch of errors.
I opened the GUI version of timeshift and confirmed that my snapshots are saved, but info.jsons are corrupted.

After that, I read this issue that says you can create a valid info.json (by taking new snapshot) and replace it with the corrupted one. That's why I plan to make a new info.json.
The problem is that I'm on a live system (restore only mode) and unable to create new snapshots. I think I should make info.json by hand, but I'm not 100% sure what the content should be.
This is my present situation.
Thank you.

Yes the info.json can get corrupted sometimes, I still don't know why exactly, but don't worry as your snapshots and data are fine. Personally, I would not use timeshift in your case to restore your system, but do it manually. The steps would be something like this (I am not at my computer right now, so the paths might be slightly different).
Boot into the live system and uncrypt your luks partition and mount the top-level root of your btrfs partition:
sudo cryptsetup luksOpen /dev/nvme0n1p3 cryptdata
sudo mount -o subvolid=5 /dev/mapper/cryptdata /mnt
ls /mnt

This should output something like: @ @home timeshift-btrfs Your snapshots are in the folder /mnt/timeshift-btrfs/snapshots/YYYY-MM-DD_HH-MM-SS.
Now first move broken subvolume @ away:
sudo mv /mnt/<EMAIL_ADDRESS>
Next, create a new @ from a good snapshot:
sudo btrfs subvolume snapshot /mnt/timeshift-btrfs/snapshots/YYYY-MM-DD_HH-MM-SS/@ /mnt/@

Restart and all should be back to the way it was.

Thank you very much. My system is now fully restored. Also, I finally understand what timeshift is doing (I was too afraid to touch the contents of the snapshot :joy:).
Kind Regards.

Yes, Timeshift is just a GUI tool for the btrfs command, so it is not really necessary. Anyways, you should check whether timeshift creates new snapshots and either repair the info.json files or simply remove those snapshots.


several errors at inference time

Thanks for powerful facial editing method. I followed your setup and instructions. But I got a different image between your output reported image and several errors at inference time.

I didn't change any code and ran program by python main.py --attribute mouth_slightly_open --outdir output --image input/1815.jpg, but i got different result image as below. (First image is my result, Second image is reported result)

I want to change other local attributes (ex. hair color), however i got a error as
below.

I try to change same attributes with other image (ex. donald_trump.jpg), but i got really poor result. Can you explain why i get these poor image..

I hope that you reply to me.
Sincerely yours.

Hey,
Thank you for the interest!
Regarding the first two issues; fixed the bug in c8644ab1022fa36dbc89f70e309f4d4df8ad3a33.
I tried some editing examples on Trump with varying success - the face seems to be pretty hard to embed in StyleGAN. No examples were as bad as yours though, I guess the issue was covered by the bug mentioned above.
Anyway, I added an additional blending option 'no_skin', which only blends in the final target region, which is much preferable for hard to embed face such as Trump's. The result for 'brown hair' editing with options --e4e_init --blend_option no_skin produces something this:
.
Some visual artifacts are present, playing with number of iterations should help; consider increasing steps.latent in config.yml to achieve better results.
Best,
Martin


Crash on Minecraft 1.19.4 with Quilt

crash-2023-06-25_17.09.41-client.txt
When I click any button Minecraft crashes when I have your mod. (Crash log above)
Minecraft 1.19.4
Quilt 0.19.1
Treechop 0.17.9

Thanks for reporting, I'll get it fixed

It's also a bug on coordinates display and picohud so I'll have to report it there too and i've reported it on Quilt's github

Ah, it may be something else then, or an issue with Quilt's Fabric compatibility. I just tried with Minecraft 1.19.4, Quilt 0.19.1, and only Treechop 0.17.9, and it seems to work for me.
Note to self - quilt issue is https://github.com/QuiltMC/quilted-fabric-api/issues/106#issue-1773565815

Do you think any of my mods could be the issue?

Turns out it was a bug with Yet Another Config Library.

The dev of picoHUB noticed it :D

Oh good! Glad it's sorted out and I don't have to fix anything 😃 Closing!


Made Scribe be aware of existing data

Proposed Changes

Fixes #8134

Requires care_scribe backend plugin pointing to https://github.com/ohcnetwork/care_scribe/pull/12
NOTE: Requires GPT-4O. Can hallucinate at some times, but at very rare occasions.

CANNOT change prescriptions
CANNOT delete or add icd11 diagnosis, but can change confirmation status.

@ohcnetwork/care-fe-code-reviewers
Merge Checklist

[ ] Add specs that demonstrate bug / test a new feature.
[ ] Update product documentation.
[ ] Ensure that UI text is kept in I18n files.
[ ] Prep screenshot or demo video for changelog entry, and attach it to issue.
[ ] Request for Peer Reviews
[ ] Completion of QA

@shivankacker please close pending PR's before opening others.

@bodhish working on this currently

@nihal467 resolved merge conflicts, deploy preview failing due to cache issue, nothing else.

@shivankacker the file upload is still not working

Enhancement

[ ] the users never knew that its a clickable tooltip

@nihal467 enhancements can be taken up later, they will also be dependent on the plugin. I have added an ignore rule for oral issue.

conditional approved it


Change: all async API; If you need sync, maybe futures::executor::block_on(future_fn)

relate https://github.com/nacos-group/nacos-sdk-rust/issues/229

LGTM


Enhancement: Update Prometheus Data Source Docs for Grafana

This isn't necessarily a bug, but an enhancement to this existing documentation.

Add the Prometheus data source, http://host.docker.internal:9090, on Grafana

While setting up Prometheus, using the above URL to access the host port didn't work on my Ubuntu machine running on AWS, I had this error Error reading Prometheus: Post "http://host.docker.internal:9090/api/v1/query": dial tcp: lookup host.docker.internal on <IP_ADDRESS>:53: no such host.
According to this Stackoverflow answer, the URL doesn't work by default, you'd have to use this flag --add-host=host.docker.internal:host-gateway when creating the container.
I opted to use my host's IP address. In my case, this was the public IP address of my host.
My suggestion is to specify that users either use http://host.docker.internal:9090 or http://hostIP:9090
The documentation then becomes the below:

Add the Prometheus data source, http://host.docker.internal:9090 or http://hostIP:9090, on Grafana, replacing hostIP with the IP address of your host.

I'll be happy to work on this issue if it's approved.

If you'd like to enhance this that would be great, I've only tested this with docker on my macbook laptop in the early days of the project. It's a bit outdated now.

/assign @network-charles


NN Archive - Parsers Support

This PR adds support for parsers for all heads. Now, each head has parser_name and metadata that stores key-value pairs for required parameters. Parameters from the old head are moved to metadata object (e.g. n_keypoints, classes,...).
Each head in NN archive has its own Metadata model.  All Metadata models also allow you to have custom fields, but they still validate the required ones. The only problem here is that code editor still underlines the custom parameter as unsupported, you can avoid this by adding #type: ignore. Does anyone know a better way?
metadata = HeadMetadata(
    classes=['person', 'car'],
    n_classes=2,
    custom_parameter='custom', # type: ignore
)

YOLO heads still check the right combination of parameters and allow multiple tasks.
Additionally, one test is added for testing the custom parameter setting in Metadata object.
One example of config.json with custom parameter:
{
    "config_version": "1.0",
    "model": {
        "metadata": {
            "name": "XFeat",
            "path": "matching.onnx",
            "precision": "float32"
        },
        "inputs": [
            {
                "name": "images",
                "dtype": "float32",
                "input_type": "image",
                "shape": [
                    1,
                    3,
                    352,
                    640
                ],
                "layout": "NCHW",
                "preprocessing": {
                    "mean": [
                        0.0,
                        0.0,
                        0.0
                    ],
                    "scale": [
                        255.0,
                        255.0,
                        255.0
                    ],
                    "reverse_channels": false,
                    "interleaved_to_planar": false
                }
            }
        ],
        "outputs": [
            {
                "name": "output",
                "dtype": "float32"
            }
        ],
        "heads": [
            {
                "family": "Segmentation",
                "parser_name": "PP-lites",
                "metadata": {
                    "classes": [
                        "person",
                        "car"
                    ],
                    "n_classes": 2,
                    "is_softmax": false,
                    "custom_field": "custom_field"
                },
                "outputs": {
                    "predictions": "output"
                }
            }
        ]
    }
}

Dataset test is failing, this has nothing to do with the changes.

Update
We removed family from all heads and replaced it with parser. Also, postprocessor_path field is in every head and removed from Yolo's head metadata.
Every head now looks like:
Head:
  parser
  postprocessor_path
  metadata
  outputs

Update

postprocesor_path back in Metadata
Optional reverse_input_channels and interleaved_to_planar
outputs on the head level only lists of strings
outputs in Metadata only for YOLO and SSD
validation moved to Metadata
only a single Head


Feature request: support nvim-treesitter next version

See:

https://github.com/nvim-treesitter/nvim-treesitter/tree/main
https://github.com/nvim-treesitter/nvim-treesitter/issues/4767

@towry Thanks for pointing this out 👍
@mrcjkb Thanks for doing all the work 🎖

@mrcjkb Thanks for your work. 💯


module: added new module to check syntax errors in shell script

Fixed issue https://github.com/nnsuite/TAOS-CI/issues/527.
This commit is to append new module to investigate if the shell script
files include syntax errors.
Changelog

Ver. 1:
Added shell check module newly.
Added configuration variable for shellcheck module.

Signed-off-by: Geunsik Lim<EMAIL_ADDRESS>
[Template] PR Description
In general, github system automatically copies your commit message for your convenience.
Please remove unused part of the template after writing your own PR description with this template.
$ git commit -s filename1 filename2 ... [enter]

Summarize changes in around 50 characters or less

More detailed explanatory text, if necessary. Wrap it to about 72
characters or so. In some contexts, the first line is treated as the
subject of the commit and the rest of the text as the body. The
blank line separating the summary from the body is critical;
various tools like `log`, `shortlog` and `rebase` can get confused
if you run the two together.

Further paragraphs come after blank lines.

**Changes proposed in this PR:**
- Bullet points are okay, too
- Typically a hyphen or asterisk is used for the bullet, preceded
  by a single space, with blank lines in between, but conventions vary here.

Resolves: #123
See also: #456, #789

**Self evaluation:**
1. Build test: [ ]Passed [ ]Failed [*]Skipped
2. Run test: [ ]Passed [ ]Failed [* ]Skipped

**How to evaluate:**
1. Describe how to evaluate in order to be reproduced by reviewer(s).

Add signed-off message automatically by running **$git commit -s ...** command.

$ git push origin <your_branch_name>

:memo: Version: 1.20190225. Thank you for submitting PR #535. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://nnsuite.mooo.com/.


Error when ksql cluster status is Provisioning

If you deploy a ksql cluster and you apply again the changes, terraform confluent module will try again create the cluster and you get an error:
 Error: error creating ksqlDB Cluster "": 400 Bad Request: failed to create API key for KSQL healthcheck: user id or user resource id must be provided to create a key
The module must control the status of the cluster when you try apply the changes.
Now there are two ksql cluster with the same name in 'Provisiong' status.

Facing the same issue even if there is no existing ksql cluster in place. Terraform fails with exactly the same 400 error but UI shows cluster is being provisioned. A week ago everything worked properly. We use the version 1.3.0 if it makes sense.

@javiervelamindcurv @de1et3d thanks for reporting a bug! We're aware of this backend issue and our backend team is working on a fix.

I was told our backend team has fixed the issue. Could you try again @javiervelamindcurv @de1et3d?

I tried again and it seems to work for me now so I'm closing this issue.


Don't assume integers must be 32-bit

See https://github.com/natefaubion/purescript-tidy/issues/37
cc @adrianroe

I don't want to have a dependency on a BigInt library right now. So I'm OK with leaving it as-is.

I don't want to have a dependency on a BigInt library right now. So I'm OK with leaving it as-is.

I actually didn't find one I liked so I wrote my own. (purescript-bigint isn't directly compatible with the browser native BigInts), I agree with you.


Update README.md

added travis logo to readme

We have to wait 'til official shields.io allows travis ci logo


IA-1810: Submissions details start, end, today fields

Start, end , today type of field were not present on a detail of a submission.
Self proof reading checklist

[x] Did I use eslint and black formatters
[x] Is my code clear enough and well documented
[ ] Are my typescript files well typed
[ ] Did I add translations
[ ] My migrations file are included
[ ] Are there enough tests

Changes
I moved those field from meta to form field
How to test
You need a form using thos types: start, end and today like this:
form_a_2021100801.xls
Create a submission wiht this form and go to the detail of it, those field should display a value.
Print screen / video

I'll display raw string for now, as some work needs to be done on form types to support date, number, ...


Repo does not work on Ubuntu 22.04 ( Jammy )

During apply the module I got...
Notice: /Stage[main]/Apt::Update/Exec[apt_update]/returns:   404  Not Found [IP: <IP_ADDRESS> 443]
Notice: /Stage[main]/Apt::Update/Exec[apt_update]/returns: Get:6 https://packagecloud.io/sensu/stable/ubuntu jammy InRelease [24.5 kB]
Notice: /Stage[main]/Apt::Update/Exec[apt_update]/returns: Get:9 https://packagecloud.io/sensu/stable/ubuntu jammy/main amd64 Packages [3946 B]
Notice: /Stage[main]/Apt::Update/Exec[apt_update]/returns: Reading package lists...
Notice: /Stage[main]/Apt::Update/Exec[apt_update]/returns: E: The repository 'https://packagecloud.io/sensu/community/ubuntu jammy Release' does not have a Release file.
Notice: /Stage[main]/Apt::Update/Exec[apt_update]/returns: W: https://packagecloud.io/sensu/stable/ubuntu/dists/jammy/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
Error: /Stage[main]/Apt::Update/Exec[apt_update]: Failed to call refresh: '/usr/bin/apt-get update' returned 100 instead of one of [0]
Error: /Stage[main]/Apt::Update/Exec[apt_update]: '/usr/bin/apt-get update' returned 100 instead of one of [0]

After apply the module y have this...
root@admin:/etc/apt/sources.list.d# ls -la
total 20
drwxr-xr-x 2 root root 4096 Oct 13 06:31 .
drwxr-xr-x 8 root root 4096 Oct 13 06:31 ..
-rw-r--r-- 1 root root   72 Sep 15 21:52 puppet7.list
-rw-r--r-- 1 root root  179 Oct 13 06:30 sensu.list
-rw-r--r-- 1 root root  195 Oct 13 06:31 sensu_community.list

root@admin:/etc/apt/sources.list.d# cat sensu*
# This file is managed by Puppet. DO NOT EDIT.
# sensu
deb https://packagecloud.io/sensu/stable/ubuntu/ jammy main
deb-src https://packagecloud.io/sensu/stable/ubuntu/ jammy main
# This file is managed by Puppet. DO NOT EDIT.
# sensu_community
deb https://packagecloud.io/sensu/community/ubuntu/ jammy main
deb-src https://packagecloud.io/sensu/community/ubuntu/ jammy main

If I run an apt-get update manually, I got...
Err:8 https://packagecloud.io/sensu/community/ubuntu jammy Release
  404  Not Found [IP: <IP_ADDRESS> 443]
Hit:6 https://packagecloud.io/sensu/stable/ubuntu jammy InRelease
Reading package lists... Done
E: The repository 'https://packagecloud.io/sensu/community/ubuntu jammy Release' does not have a Release file.

packagecloud.io support told me that...

Hi there, thanks for your patience.
The reason why you're getting this error for the Jammy/community repo is because there are zero packages in that repo.

I'm using the module in a Ubuntu 22.04 ( Jammy ) with puppet 7.19.0
root@cthulhu:/etc/puppetlabs/code/environments/production/modules/sensu# git remote -v
origin	https://github.com/sensu/sensu-puppet.git (fetch)
origin	https://github.com/sensu/sensu-puppet.git (push)
root@cthulhu:/etc/puppetlabs/code/environments/production/modules/sensu# git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean
root@cthulhu:/etc/puppetlabs/code/environments/production/modules/sensu# git log
commit 9f6abced35b46425d90d6e11902b3607944b72a9 (HEAD -> master, origin/master, origin/HEAD)
Merge: 1e1efcc2 1ea09e78
Author: Garrett Honeycutt<EMAIL_ADDRESS>Date:   Thu Dec 2 17:50:13 2021 -0500

@icalvete did packagecloud.io's support say when they would be supporting jammy? Is this because they don't currently support that Ubuntu release yet?

@ddelnano They only said ...

Hi there, thanks for your patience.
The reason why you're getting this error for the Jammy/community repo is because there are zero packages in that repo.

I'd recommend opening issues with Sensu Go project as it would seem they don't build packages for Ubuntu 22.04.

I'd recommend opening issues with Sensu Go project as it would seem they don't build packages for Ubuntu 22.04.

Done
https://github.com/sensu/sensu-go/issues/4914

@treydock does the puppet module have that repo as a dependency? The use case for that repo is that it provides an installable package for the sensu-plugin command that's used to install Sensu plugins that haven't been converted to assets. If the reason for including the repo is to have that command, my suggestion would be to remove the dependency altogether. If folks need to have a plugin converted to an asset, then asking on https://github.com/sensu/catalog would be a better avenue than installing the plugins through the sensu-plugin command.

The community repo is only included if you include the sensu::plugins class which is not part of the main sensu::agent setup, so it's opt-in for those wanting to install those non-asset Sensu plugins.  The current package installed in sensu::plugins class is the sensu-plugins-ruby package which I think is why the community repo is added if that class is included in the catalog.

Hi @treydock and @asachs01
This is my code.
    class { 'sensu':
      api_host                                   => 'sensu3.mydomain.com',
      password                                  => '****',
      agent_password                       => '****',
      agent_entity_config_password => '****',
      ssl_ca_source => 'puppet:///modules/common/ssl/my-ca.crt',
    }
    class { 'sensu::plugins':
      plugins => [
        'cpu-checks',
        'memory-checks',
        'disk-checks',
      ],
    }
    class { 'sensu::agent':
      subscriptions => ['linux', 'nuc']
    }
    sensu::agent::config_entry { 'deregister': value => true }
    sensu::agent::config_entry { 'deregistration-handler': value => 'deregistration' }sensu::agent::config_entry { 'deregialue => 'deregistration' }

What is the way to install those plugins?

@icalvete so installing those plugins (which are the old ruby-based ones) is a bit deprecated. The recommended approach is to use assets to install plugins. In the puppet module, you'd follow this convention, as the plugins you've listed all have updated (and maintained) golang analogs. You'd also use the asset approach to install those ruby checks, along with the ruby runtime.

Thanks  @asachs01  but  is not working on agent my code.
I added  this resource to both codes, agent and backend.
  sensu_bonsai_asset { 'sensu/check-cpu-usage':
    ensure  => 'present',
    version => 'latest',
  }

If I run puppet agent in a machine with both codes, agent a backend, works fine.
If I run puppet agent in a machine only with my agent code I get...
root@bast01:~# puppet agent -t
Info: Using environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Info: Caching catalog for bast01.fluzo.com
Error: /Stage[main]/Fluzo::Monitoring/Sensu_bonsai_asset[sensu/check-cpu-usage]: Sensu namespace 'default' must be defined or exist

Installation by hand works fine.
root@bast01:/etc/systemd/system# sensuctl asset add sensu/check-cpu-usage
no version specified, using latest: 0.2.2
fetching bonsai asset: sensu/check-cpu-usage:0.2.2
added asset: sensu/check-cpu-usage:0.2.2

You have successfully added the Sensu asset resource, but the asset will not get downloaded until
it's invoked by another Sensu resource (ex. check). To add this runtime asset to the appropriate
resource, populate the "runtime_assets" field with ["sensu/check-cpu-usage"].

AGENT
  class { 'sensu':
    api_host                     => 'sensu3.mydomain.com',
    password                     => '****',
    agent_password               => '****',
    agent_entity_config_password => '****',
    ssl_ca_source => 'puppet:///modules/common/ssl/fluzo-ca.crt',
  }

  include sensu::cli

  sensu_bonsai_asset { 'sensu/check-cpu-usage':
    ensure  => 'present',
    version => 'latest',
  }

  class { 'sensu::agent':
    subscriptions => ['default', 'linux', $hostname, 'nuc']
  }

BACKEND

    class { 'sensu::backend':
      ssl_cert_source => 'puppet:///modules/common/ssl/my.crt',
      ssl_key_source  => 'puppet:///modules/common/ssl/my.key',
      config_hash     => {
        'deregistration-handler' => 'deregistration',
        'event-log-file'         => '/var/log/sensu/events.log'
      }
    }

    sensu_check { 'check-cpu':
      ensure         => 'present',
      command        => 'check-cpu-usage -w 75 -c 85',
      interval       => 60,
      subscriptions  => 'linux',
      publish        => true,
      runtime_assets => ['sensu/check-cpu-usage']
    }

What i'm doing wrong?. Thanks !!!

@icalvete so the reason it doesnt work is that assets (and by extension, asset definitions) are for the backend only. See https://docs.sensu.io/sensu-go/latest/plugins/use-assets-to-install-plugins/ and https://docs.sensu.io/sensu-go/latest/plugins/assets/. The docs do a useful job of explaining how assets work. Basically, you define an asset, which just tells an agent or backend where to fetch it from, and then on the first invocation of the asset, it's downloaded to the agent or backend cache.


MessageCard type

MessageCard is in the example:
"@type": "MessageCard"
but MessageCard not listed in Types of cards. Could not find any info about MessageCard. Also Search feature does not find anything. Even this "MessageCard" in example

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

ID: 28316a67-22fa-8a05-1ae0-fbe1c5720ef9
Version Independent ID: 8a250e46-2a30-af86-839d-9f83a8b48041
Content: Sending messages to Connectors and Webhooks - Teams
Content Source: msteams-platform/webhooks-and-connectors/how-to/connectors-using.md
Product: msteams
GitHub Login: @laujan
Microsoft Alias: lajanuar

MessageCard is not a type of card. We will use MessageCard as type for O365 card. You can see O365 card in type of cards Could you please go through the docs here?

So "MessageCard" is a type for O365 or it is not a type?
O365 is described in the page you provided, but there is no mention of "MessageCard" value of "@type" property, and it's not clear whether I should use it and how

Yes, "MessageCard" is a type for O365 card. Could you please go through the O365 connector card example?


[NP-9759] Block access to view reference for disabled users

ref: https://nanopay.atlassian.net/browse/NP-9759
Summary
Disabled users are not authorized to access their ucjs. If we allow ops users to view view reference for disabled users, it will generate numerous exceptions from the server when the wizardlets call crunchService from the client to load the ucjs for the disabled users. The simplest fix to this problem is to block access to view reference for disabled users so that the underlying work to load the user's ucjs in the wizardlets is never executed.

I have considered making the view reference button disabled/unavailable, but decided to go with the notification so that ops team is aware what is happening


Resolve all non-obsoleting warnings in content

Technical details

title
except like 1 random regex one and the imagesharp warnings
Media

[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes

n/a

done


Improve user-agent handling

Currently the user agent is retrieved using the navigator.userAgent global variable.
This is what the browser reports by default.
However, some power users might be using user agent switchers or Firefox's resistFingerprinting setting, making navigator.userAgent the "wrong" value.
We should probably make use of a 3rd party API to retrieve the user agent that the browser sends to websites, if possible via the extension.

The plan, as of right now, is to utilize Cloudflare Workers with my own custom worker: https://github.com/M-rcus/CloudflareWorkers/tree/main/user-agent
I assume that some people, for privacy reasons, might dislike the usage of Cloudflare Workers for user agent detection. So if I'm not really lazy, I'll probably release this feature in two ways:

v1.0.2 - Force-enabled for all users, but there are otherwise no changes with the release. It will, however, save a setting that will be used in the future releases (v1.1.0+)
v1.1.0 - Opt-in setting for the user agent handling, so people that can't rely on navigator.userAgent can explicitly enable it themselves.

The (sub)domain I plan on using is ua.rcus.dev


Importing validators module from superset-ui

CATEGORY
Choose one

[ ] Bug Fix
[ ] Enhancement (new features, refinement)
[x] Refactor
[ ] Add tests
[ ] Build / Development Environment
[ ] Documentation

SUMMARY

Changes the reliance in Viz plugin controls from a local validators file to the (newer) module imported from @superset-ui/validator
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

TEST PLAN

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Changes UI
[ ] Requires DB Migration.
[ ] Confirm DB Migration upgrade and downgrade tested.
[ ] Introduces new feature or API
[ ] Removes existing feature or API

REVIEWERS
@kristw

@kristw I'm having a hard time figuring out why I can't get cypress to live through a run... does anything jump out at you here?

import { legacyValidateInteger, legacyValidateNumber, validateNonEmpty } from '@superset-ui/validator';
There is a non-legacy validateInteger and validateNumber which has the logical behavior, but will break superset because it seems to expect the wrong output from the legacy functions at the moment.

You should use legacyValidateInteger and legacyValidateNumber.
https://github.com/apache-superset/superset-ui/pull/322
I'll move these note into the package README

Codecov Report

Merging #9465 into master will decrease coverage by 0.01%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master    #9465      +/-   ##
==========================================
- Coverage   58.78%   58.77%   -0.02%
==========================================
  Files         390      389       -1
  Lines       12386    12370      -16
  Branches     3073     3066       -7
==========================================
- Hits         7281     7270      -11
+ Misses       4921     4917       -4
+ Partials      184      183       -1

Impacted Files
Coverage Δ

...rc/explore/components/controls/AnnotationLayer.jsx
2.36% <0.00%> (ø)

...nd/src/explore/components/controls/TextControl.jsx
13.79% <0.00%> (ø)

...rset-frontend/src/explore/controlPanels/DeckArc.js
0.00% <ø> (ø)

...-frontend/src/explore/controlPanels/DeckGeojson.js
0.00% <ø> (ø)

...et-frontend/src/explore/controlPanels/DeckMulti.js
0.00% <ø> (ø)

...-frontend/src/explore/controlPanels/DeckScatter.js
0.00% <ø> (ø)

...et-frontend/src/explore/controlPanels/EventFlow.js
0.00% <ø> (ø)

...rset-frontend/src/explore/controlPanels/Heatmap.js
0.00% <ø> (ø)

...et-frontend/src/explore/controlPanels/LineMulti.js
0.00% <ø> (ø)

...t-frontend/src/explore/controlPanels/Partition.jsx
0.00% <ø> (ø)

... and 3 more

Continue to review full report at Codecov.

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

import { legacyValidateInteger, legacyValidateNumber, validateNonEmpty } from '@superset-ui/validator';
There is a non-legacy validateInteger and validateNumber which has the logical behavior, but will break superset because it seems to expect the wrong output from the legacy functions at the moment.

You should use legacyValidateInteger and legacyValidateNumber.
apache-superset/superset-ui#322
I'll move these note into the package README

Ahhh, thanks. Didn't catch the intent. I'll see about unifying those, as I don't love the idea of moving forward with "legacy" things in a refactor project, but it seems CI is green, yay!
If you don't mind giving this a review, that'd be wonderful.
Thanks,
-e-

Ahhh, thanks. Didn't catch the intent. I'll see about unifying those, as I don't love the idea of moving forward with "legacy" things in a refactor project, but it seems CI is green, yay!

Agree. I tried to think of clean way to do the migration while discourage people from using the illogical method in more places. We should sweep and get rid of them at some point.

Sorry. I notice two package-lock.json. Please remove the one in root.

Good eyes! Removed, and re-Travis-ing.


Issue with LocalCompare for iOS 12.0 simulator safari

Hei there,
Wanted to ask, is iOS simulator with version 12 and safari supported by visual regression service? Currently when trying to compare iOS image, I'm getting:
Cannot destructure property `width` of 'undefined' or 'null'.
TypeError: Cannot destructure property `width` of 'undefined' or 'null'.
  at execute(<Function>, true) - index.js:267:37
  at execute(<Function>, 0, 0, true) - index.js:267:37
  at execute(<Function>, "") - index.js:267:37
  at screenshot() - index.js:267:37
  at pause(100) - index.js:267:37
  at execute(<Function>, 0, 0, false) - index.js:267:37
  at execute(<Function>, "635px") - index.js:267:37
  at execute(<Function>) - index.js:267:37
  at execute(<Function>) - index.js:267:37
  at pause(200) - index.js:267:37
  at execute(<Function>, 0, 0) - index.js:267:37
  at execute(<Function>) - index.js:267:37
  at execute(<Function>, false) - index.js:267:37
  at execute(<Function>) - index.js:267:37
  at orientation() - getOrientation.js:14:28
  at getOrientation() - index.js:267:37
  at url() - getUrl.js:30:28
  at getUrl() - index.js:259:23
  at checkViewport([object Object]) - at execute(<Function>, 0, 0) - index.js:267:37

At the same time getting the screenshot it self with wdio-screenshot seems to be working.

Closing this as it turned out to not be related to visual regression service.


[SPARK-40056][BUILD] Upgrade mvn-scalafmt from 1.0.4 to 1.1.1640084764.9f463a9

What changes were proposed in this pull request?
This PR aims to upgrade mvn-scalafmt from 1.0.4 to 1.1.1640084764.9f463a9
Why are the changes needed?
The last upgrade occurred 2 year ago.

maven repo version: https://mvnrepository.com/artifact/org.antipathy/mvn-scalafmt
The new version specifically update the following issues:

1.https://github.com/SimonJPegg/mvn_scalafmt/commit/6b9e0a4c4169c133729b087c587c1d542359ad75

2.mvn_scalafmt_2.11(scala 2.11) be deprecated: https://github.com/SimonJPegg/mvn_scalafmt/commit/9f3d1095d1e4e944d1e375925fd8b9e3aad63894

Does this PR introduce any user-facing change?
No.
How was this patch tested?
Pass GA & Manual test

1.mvn -Pscala-2.12 scalafmt:format -Dscalafmt.skip=false
2.mvn -Pscala-2.13 scalafmt:format -Dscalafmt.skip=false

Merged to master

Actually this breaks ./dev/scalafmt script, see SPARK-40221.
Reverted.

Ah OK yeah revert. We might just be able to fix scalafmt.conf? but maybe this update isn't super important anyway and can re-fix it later


turn off TaskNotification creation for api downloads

Pull Request Checklist:

[ ] Positive Test Case Written by Dev

[ ] Automated Testing

[ ] Sufficient User and Developer Documentation

[ ] Passing Jenkins Build

[ ] Peer Code review and approval

Positive Test Case

[Enter positive test case here]

METRIC
VALUE

https://sonarqube.cuahsi-workstation.com:9000/dashboard?id=hydroshare-4098

METRIC
VALUE

https://sonarqube.cuahsi-workstation.com:9000/dashboard?id=hydroshare-4098


Add link to Youtube channel

Add a link along with our other social links to point to our awesome new youtube channel!
If possible it'd be pretty cool to add a banner to the top of the page when live streaming. (There's an API but doing it client side may be tricky)

:+1: :+1: :+1: :+1: :+1: , especially to showing the live stream on the site, that would be supercool

If I get a chance I'll see if I can do it. There is an API to find out the currently streaming videos its just getting that to work without a backend. (Perhaps a little heroku app we could use as a proxy)

Link has been added in #139.
I attempted to work with the YouTube API but failed pretty bad. Not sure if anyone else wants to give this a go?


Fix signature of Date

Dear authors, this patch fix opendf.exceptions.python_exception.SemanticException: Unexpected input name dayOfWeek to node Date raised in the following dialog.
Dialog 102
GUID: 921adff2-0276-40a1-9cb3-1c7ed4ada011 OpenDF:

U1: I will be in Kirkland, but not on the weekend
A1: Does one of these work?
U2: Yes, the second one works perfect. Could you also put moving out on the calandar for me sometime before the weekend?
A2: I've put that on your calendar. __BREAK Does one of these work?
U3: Yes, either of those will work! Could you fit in a jump rope challenge but not this weekend. sooner.
A3: I've put that on your calendar on Monday the 27th from 10:00 to 10:30 AM. __BREAK Does one of these work?

 CreateEvent(
    AND(
       at_location(
          Kirkland ) ,
       avoid_start(
          Date?(
             dayOfWeek= Weekend(
                ) ) ) ) )

Is this still relevant?

No, it's fixed in e7cc2dbdfe3e367ee703b6e8ca5fccdbd740ca43


How to enable recommended test

About You:
Name: Christoph Pirkl
Company: Exasol AG
Your question:
I would like to add support for the DATEPARSE function in our Tableau connector and enable the TDVT tests for this function. They seem to be deactivated by default. I didn't find an option
This is our current TDVD configuration: https://github.com/exasol/tableau-connector/blob/main/tdvt_jdbc/config/exasol_jdbc.ini

add the following section in your config:
[DateParseTests]
Type = expression
Name = DateParseTests.
TDS = cast_calcs.*.tds
TestPath = exprtests/dateparse

Thank you for your help, it worked!

Nice.


Add public holidays of Azerebaijan

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

54 of 54 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.07%) to 98.761%

Totals

Change from base Build<PHONE_NUMBER>:
0.07%

Covered Lines:
5598

Relevant Lines:
5606

💛  - Coveralls

Thank you very much! Great work 👍


(DO NOT MERGE) (PUP-4516) Exit immediately when sent INT or TERM

Starting in ruby 2, signal handlers are not allowed to acquire a
mutex[1], because it could deadlock[2]. For example, the main thread
acquires a mutex, is interrupted by a signal, signal handler runs in a
separate thread, and will deadlock if tries to acquire the already
locked mutex. In ruby 1.8/9, the behavior was allowed, but wasn't safe.
In ruby 2, it's a hard failure.
Commit 6238616 removed thread-safety code because it was incomplete and
puppet primarily runs single threaded -- exceptions being its signal
handler and webrick request processing. PUP-202 was marked as fixed
since we no longer tried to acquire a mutex from a trap context.
However, the signal handler would still call back into puppet code, e.g.
reload, which led to PUP-1635 "current thread not owner".
Commit 245de036f modified the signal handler to queue the method to
execute, e.g. reload, and have the Daemon's event_loop periodically
check if a new signal had been received, calling the method from the
main ruby thread.
However, the event loop checks for new signals every 5 seconds, so
puppet will not immediately exit when sent INT or TERM. Also, if puppet
is making a blocking system call, e.g. agent is blocked reading from a
socket, then puppet will not exit until the system call returns.
This commit changes puppet's signal handlers to exit immediately in
response to INT or TERM. We call stop instead of exit to gracefully
shutdown, e.g. delete our pid file. There is a possibility the stop
method could cause a mutex to be acquired, e.g. in ruby's webrick or
logger, but it doesn't seem to happen in practice.
Also we preserve the existing async handling for HUP, USR1, and USR2.
This commit affects the agent and webrick master as both support
daemonizing.
[1] https://github.com/ruby/ruby/blob/v2_1_7/thread.c#L4384-L4386
[2] https://bugs.ruby-lang.org/issues/6416

Getting this up for review for now. We'd like to get this fixed in 3.8.5 and 4.3.0 but are in the process of releasing and need to hold off on merging.

Can we target 3.x for this fix?

Superceded by PR #4382 which targets 3.x


[Bug]: When I tried to import a large txt or a large number of txts into chroma, the program stopped without error. Why?

What happened?
When I tried to import a large txt or a large number of txts into chroma, the program stopped without error. Why?
This is the structure of file.

This is the main.py:
import chromadb
import os
import shutil

with open('test2.txt', 'r') as file:
    content = file.read()

contents = []
ids = []

for i in range(200):
    contents.append(content)
    ids.append("id{}".format(i))
print(len(contents))

shutil.rmtree("chromadb", ignore_errors=True)
client = chromadb.PersistentClient(path="chromadb")

collection = client.create_collection(name="my_collection")
# collection = client.get_collection(name="my_collection")

collection.add(
    documents= contents,
    ids=ids
)

print(collection.get(ids=["id9"]))
# print(collection.get(ids=["id199"]))

The size of "test2.txt" is 13.5KB, which only contains letters like 'a' and 'b'.
Versions
Chroma v0.5.4, Python 3.10.14, Windows 11
Relevant log output
There were no errors.

In this case, the file chroma.sqlite3-journal would be retained.

@bill2766, thanks for reporting this. Let me see if I get this right.

What you are saying is that your program never gets to print(collection.get(ids=["id9"]))?
Reading the code, I can tell you inserted 200 identical documents (the contents of test2.txt file)?

haha, that's to test whether the code can run to that location. So when I import a large txt or a large number of txts into chroma, the code would stop without running the following code(print(collection.get(ids=["id9"]))).
Yes. The code is used to reproduce the problem.

example content of test2.txt
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
(repeat many times)

I test the code in my environment, but it doesn't work.
import chromadb
import os
import shutil

from chromadb.utils.embedding_functions.onnx_mini_lm_l6_v2 import ONNXMiniLM_L6_V2

ef  = ONNXMiniLM_L6_V2(preferred_providers=["CPUExecutionProvider"])

with open('test2.txt', 'r') as file:
    content = file.readline()

contents = []
ids = []

for i in range(200):
    contents.append(content.strip())
    ids.append("id{}".format(i))

shutil.rmtree("chromadb-2749", ignore_errors=True)
client = chromadb.PersistentClient(path="chromadb-2749")

collection = client.create_collection(name="my_collection")
# collection = client.get_collection(name="my_collection")

collection.add(
    documents= contents,
    ids=ids
)
print(len(contents))

print(collection.get(ids=["id9"]))
# print(collection.get(ids=["id199"]))

result:
no print and sqlite3-journal exists.

@bill2766, thanks for testing it out. Let me ask this. When you say result: does it mean nothing returns e.g. the process crashes or the process hangs?

yes, the program stopped without print and error.

@bill2766, this looks like HNSW silent crash we're experiencing on Windows with AMD processors (#2513). Can you downgrade to version 0.5.0 and try the script?
pip install chromadb==0.5.0

@tazarov thanks, it works, and ONNXMiniLM_L6_V2 need to be commented out. My virtual env is python=3.9, numpy=1.26, chromadb=0.5.0, windows with intel processor.


Sharing a single (factory) ViewModel between ViewWidgets causes a re-initialized final error.

If you want to share a (single instance) ViewModel between ViewWidgets in MVVM+, it would be usual to use a higher level Bilocater that lives in the registry. Something like this:
class MainPage extends StatelessWidget
{
  @override
  Widget build(
      BuildContext context)
  {
    return Scaffold(
        body: Bilocator<ContainerViewModel>(
            builder: ()
            {
              return ContainerViewModel();
            },
            location: Location.registry,
            name: 'ContainerViewModel',
            child: SafeArea(
                child: PageContainer()
            )
        )
}

And then use it in each ViewWidget like this:
class PageContainer extends ViewWidget<ContainerViewModel> {
  PageContainer({super.key}) :
        super(builder: () => Bilocator.get(name: 'ContainerViewModel'));

  .. .. ..
}

or, for the second ViewWidget that needs the same ViewModel:
class PageHeader extends ViewWidget<ContainerViewModel> {
  PageHeader({super.key}) :
        super(builder: () => Bilocator.get(name: 'ContainerViewModel'));

  .. .. ..
}

When the second ViewWidget (PageHeader above) is created, MVVM+ raises an exception. Something like:
‘LateInitializationError: Field '_context@42364977' has already been initialized’

This, I think, is because the ViewModel builder is internally re-initializing already initialized (late final) members.

Ah. Interesting use case, Loz. I didn't quite follow what you were doing via email but see what's going on now.
The issue is that, under the hood, ViewModels are given the context of the Widget that built it. That way, the ViewModel can use the context to "get" and "listen" to other ViewModels and Properties. What's happening in your example is that a Widget built a ViewModel and then gave it its context. Then, when the builder of the second Widgets retrieved the same ViewModel, it also trying to assign it its context, but it was already assigned and is a late final which is why you got the exception.
ViewModels in the widget tree need to know where they are in the tree, so I don't anticipate changing this approach anytime soon. But it sounds like there is an alternative, maybe better way to do what you want.
My recommendation for your second widgets to subclass from StatelessViewWidget instead of ViewWidget. StatelessViewWidget has no ViewModel (so no builder) and instead "gets" or "listens" too one or more ViewModels owned by other widgets. Check out the mvvm+ examples. Most of the widgets in it are StatelessViewModels.
E.g., here's an class in the mvvm+ example that subclasses StatelessViewWidget. You can see in the class how it uses get and listenTo to access the other ViewClass.
/// Demonstrates [get] and [listenTo] for a [Model]
class ModelWidget extends StatelessViewWidget {
  ModelWidget({super.key});

  @override
  Widget build(BuildContext context) {
    return Column(
      children: [
        const Text('get/listenTo Model'),
        Text('${listenTo<CounterModel>().count}'),
        const SizedBox(height: 10),
        Fab(onPressed: get<CounterModel>().incrementCount),
      ],
    );
  }
}

When you and I chatted via email, I thought you were trying to access a ViewModel in the registry from within the body of the constructor, like this
class MyWidget extends ViewWidget<MyWidgetViewModel> {
  MyWidget({super.key}) : super(builder: () => MyWidgetViewModel()) {
     final value = get<Counter>(); // <-- This should work if "Counter" is in the registry, but was causing an exception, so a bug
  }

  @override
  Widget build(BuildContext context) {
    return Text(viewModel.someText); // <- your "viewModel" getter
  }
}

which is a use case that I did not anticipate and was indeed a bug. So, I just pushed version 1.5.4 that fixes this, though you may not need it.

Hi Rich,
Based on your comments I think I have finally got a working solution. By the way, the description that you gave about late final was kind of what I thought was happening, so thanks for the Super Quick fix.
Here is what I did. First, I no longer use Bilocator directly to plant a ContainerViewModel in the tree within the Scaffold code.
Second, I create a ContainerViewModel in the PageContainer ViewWidget instance like this:
class PageContainer extends ViewWidget {
PageContainer({super.key})
: super(
builder: () {
return ContainerViewModel();
},
location: Location.registry
);
...
}
Finally, the other classes are now StatelessViewWidgets, for example:
class PageContent extends StatelessViewWidget {
PageContent({super.key});
@override
Widget build(BuildContext context) {
final ContainerViewModel viewModel = get();
...

}
}
I do the above for PageHeader, PageSideBar and PageContent and they all find the (single) ContainerViewModel instance from the registry.
The critical part above is the ‘location: Location.registry’ line in PageContainer. Without this, the other classes can’t find the ViewModel.
According to this page:
<EMAIL_ADDRESS>
in the ‘Retrieving ViewModels from anywhere’ section, this should be accomplished by ‘register: true’. But that is not possible anymore, so I think the documentation may need to be updated?
Anyway, thanks so much for your help and such a quick turn-around.
Best regards, Loz.
From: Rich Coutts @.>
Sent: Thursday, November 2, 2023 9:52 PM
To: buttonsrtoys/mvvm_plus @.>
Cc: Loz Groves @.>; Author @.>
Subject: Re: [buttonsrtoys/mvvm_plus] Sharing a single (factory) ViewModel between ViewWidgets causes a re-initialized final error. (Issue #45)
Ah. Interesting use case, Loz. I didn't quite follow what you were doing via email but see what's going on now.
The issue is that, under the hood, ViewModels are given the context of the Widget that built it. That way, the ViewModel can use the context to "get" and "listen" to other ViewModels and Properties. What's happening in your example is that a Widget built a ViewModel and then gave it its context. Then, when the builder of the second Widgets retrieved the same ViewModel, it also trying to assign it its context, but it was already assigned and is a late final which is why you got the exception.
ViewModels in the widget tree need to know where they are in the tree, so I don't anticipate changing this approach anytime soon. But it sounds like there is an alternative, maybe better way to do what you want.
My recommendation for your second widgets to subclass from StatelessViewWidget instead of ViewWidget. StatelessViewWidget has no ViewModel (so no builder) and instead "gets" or "listens" too one or more ViewModels owned by other widgets. Check out the mvvm+ examples. Most of the widgets in it are StatelessViewModels.
E.g., here's an class in the mvvm+ example that subclasses StatelessViewWidget. You can see in the class how it uses get and listenTo to access the other ViewClass.
/// Demonstrates [get] and [listenTo] for a [Model]
class ModelWidget extends StatelessViewWidget {
ModelWidget({super.key});
@override
Widget build(BuildContext context) {
return Column(
children: [
const Text('get/listenTo Model'),
Text('${listenTo().count}'),
const SizedBox(height: 10),
Fab(onPressed: get().incrementCount),
],
);
}
}
When you and I chatted via email, I thought you were trying to access a ViewModel in the registry from within the body of the constructor, like this
class MyWidget extends ViewWidget {
MyWidget({super.key}) : super(builder: () => MyWidgetViewModel()) {
final value = get(); // <-- This should work if "Counter" is in the registry, but was causing an exception, so a bug
}
@override
Widget build(BuildContext context) {
return Text(viewModel.someText); // <- your "viewModel" getter
}
}
which is a use case that I did not anticipate and was indeed a bug. So, I just pushed version 1.5.4 that fixes this, though you may not need it.
—
Reply to this email directly, view it on GitHub https://github.com/buttonsrtoys/mvvm_plus/issues/45#issuecomment-1791588433 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AGKZRATJ3LVSTSXSTFMDDWTYCQIYNAVCNFSM6AAAAAA63HJVVSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOJRGU4DQNBTGM .
You are receiving this because you authored the thread.  https://github.com/notifications/beacon/AGKZRAQMMHBJMBRPNGODL6DYCQIYNA5CNFSM6AAAAAA63HJVVSWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTTKZF4FC.gif Message ID: @.*** @.***> >

Hi Loz,
That's great you got it working! I understood your email except the very
end where you said, "But that is not possible anymore." What is not
possible? Retrieving a ViewModel from the tree? That should be working.
If you don't set location: Location.registry then mvvm+ put the ViewModel
on the widget tree. Other widgets should be able to then retrieve the
ViewModel by using the get function and setting its "context" parameter. So,
final viewModel = get(context: context);
The get function then looks for the CountainerViewModel in an ancestor
widget. It won't work if the ViewModel isn't owned by an ancestor (e.g.,
it's a child or on another widget tree branch.)
Is that what you mean or were you referring to something else?
Rich
On Fri, Nov 3, 2023 at 11:03 AM Loz Groves @.***> wrote:

Hi Rich,
Based on your comments I think I have finally got a working solution. By
the way, the description that you gave about late final was kind of what I
thought was happening, so thanks for the Super Quick fix.
Here is what I did. First, I no longer use Bilocator directly to plant a
ContainerViewModel in the tree within the Scaffold code.
Second, I create a ContainerViewModel in the PageContainer ViewWidget
instance like this:
class PageContainer extends ViewWidget {
PageContainer({super.key})
: super(
builder: () {
return ContainerViewModel();
},
location: Location.registry
);
...
}
Finally, the other classes are now StatelessViewWidgets, for example:
class PageContent extends StatelessViewWidget {
PageContent({super.key});
@override
Widget build(BuildContext context) {
final ContainerViewModel viewModel = get();
...
}
}
I do the above for PageHeader, PageSideBar and PageContent and they all
find the (single) ContainerViewModel instance from the registry.
The critical part above is the ‘location: Location.registry’ line in
PageContainer. Without this, the other classes can’t find the ViewModel.
According to this page:
@.***/flutter-state-management-with-mvvm-1b55e6911975
in the ‘Retrieving ViewModels from anywhere’ section, this should be
accomplished by ‘register: true’. But that is not possible anymore, so I
think the documentation may need to be updated?
Anyway, thanks so much for your help and such a quick turn-around.
Best regards, Loz.
From: Rich Coutts @.>
Sent: Thursday, November 2, 2023 9:52 PM
To: buttonsrtoys/mvvm_plus @.>
Cc: Loz Groves @.>; Author @.>
Subject: Re: [buttonsrtoys/mvvm_plus] Sharing a single (factory) ViewModel
between ViewWidgets causes a re-initialized final error. (Issue #45)
Ah. Interesting use case, Loz. I didn't quite follow what you were doing
via email but see what's going on now.
The issue is that, under the hood, ViewModels are given the context of the
Widget that built it. That way, the ViewModel can use the context to "get"
and "listen" to other ViewModels and Properties. What's happening in your
example is that a Widget built a ViewModel and then gave it its context.
Then, when the builder of the second Widgets retrieved the same ViewModel,
it also trying to assign it its context, but it was already assigned and is
a late final which is why you got the exception.
ViewModels in the widget tree need to know where they are in the tree, so
I don't anticipate changing this approach anytime soon. But it sounds like
there is an alternative, maybe better way to do what you want.
My recommendation for your second widgets to subclass from
StatelessViewWidget instead of ViewWidget. StatelessViewWidget has no
ViewModel (so no builder) and instead "gets" or "listens" too one or more
ViewModels owned by other widgets. Check out the mvvm+ examples. Most of
the widgets in it are StatelessViewModels.
E.g., here's an class in the mvvm+ example that subclasses
StatelessViewWidget. You can see in the class how it uses get and listenTo
to access the other ViewClass.
/// Demonstrates [get] and [listenTo] for a [Model]
class ModelWidget extends StatelessViewWidget {
ModelWidget({super.key});
@override
Widget build(BuildContext context) {
return Column(
children: [
const Text('get/listenTo Model'),
Text('${listenTo().count}'),
const SizedBox(height: 10),
Fab(onPressed: get().incrementCount),
],
);
}
}
When you and I chatted via email, I thought you were trying to access a
ViewModel in the registry from within the body of the constructor, like
this
class MyWidget extends ViewWidget {
MyWidget({super.key}) : super(builder: () => MyWidgetViewModel()) {
final value = get(); // <-- This should work if "Counter" is in
the registry, but was causing an exception, so a bug
}
@override
Widget build(BuildContext context) {
return Text(viewModel.someText); // <- your "viewModel" getter
}
}
which is a use case that I did not anticipate and was indeed a bug. So, I
just pushed version 1.5.4 that fixes this, though you may not need it.
—
Reply to this email directly, view it on GitHub <
https://github.com/buttonsrtoys/mvvm_plus/issues/45#issuecomment-1791588433>
, or unsubscribe <
https://github.com/notifications/unsubscribe-auth/AGKZRATJ3LVSTSXSTFMDDWTYCQIYNAVCNFSM6AAAAAA63HJVVSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOJRGU4DQNBTGM>
.
You are receiving this because you authored the thread. <
https://github.com/notifications/beacon/AGKZRAQMMHBJMBRPNGODL6DYCQIYNA5CNFSM6AAAAAA63HJVVSWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTTKZF4FC.gif>
Message ID: @.*** @.***> >
—
Reply to this email directly, view it on GitHub
https://github.com/buttonsrtoys/mvvm_plus/issues/45#issuecomment-1792495830,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAXIK3P5U7T6KOXQTICK22TYCT2U7AVCNFSM6AAAAAA63HJVVSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOJSGQ4TKOBTGA
.
You are receiving this because you commented.Message ID:
@.***>

Hi again Rich,
Well, I didn’t quite mean that. The documentation from that page gives an example (under the ‘Retrieving ViewModels from anywhere’ section):
class MyOtherWidget extends View {
MyOtherWidget(super.key) : super(
viewModelBuilder: () => MyOtherWidgetViewModel(
// Register ViewModel:
register: true,
),
);
}
That doesn’t compile anymore. But it’s on medium.com and probably written by you a long time ago (Aug 10, 2022).
This has solved everything for me when you said below:
            final viewModel = get<ContainerViewModel>(context: context);

I hadn’t included the context argument so was forced get the ViewModel from the registry (having put it there using ‘location: Location.registry’).
Once again, many thanks. And happy days, Loz.
From: Rich Coutts @.>
Sent: Friday, November 3, 2023 3:15 PM
To: buttonsrtoys/mvvm_plus @.>
Cc: Loz Groves @.>; Author @.>
Subject: Re: [buttonsrtoys/mvvm_plus] Sharing a single (factory) ViewModel between ViewWidgets causes a re-initialized final error. (Issue #45)
Hi Loz,
That's great you got it working! I understood your email except the very
end where you said, "But that is not possible anymore." What is not
possible? Retrieving a ViewModel from the tree? That should be working.
If you don't set location: Location.registry then mvvm+ put the ViewModel
on the widget tree. Other widgets should be able to then retrieve the
ViewModel by using the get function and setting its "context" parameter. So,
final viewModel = get(context: context);
The get function then looks for the CountainerViewModel in an ancestor
widget. It won't work if the ViewModel isn't owned by an ancestor (e.g.,
it's a child or on another widget tree branch.)
Is that what you mean or were you referring to something else?
Rich
On Fri, Nov 3, 2023 at 11:03 AM Loz Groves @.***<EMAIL_ADDRESS>> wrote:

Hi Rich,
Based on your comments I think I have finally got a working solution. By
the way, the description that you gave about late final was kind of what I
thought was happening, so thanks for the Super Quick fix.
Here is what I did. First, I no longer use Bilocator directly to plant a
ContainerViewModel in the tree within the Scaffold code.
Second, I create a ContainerViewModel in the PageContainer ViewWidget
instance like this:
class PageContainer extends ViewWidget {
PageContainer({super.key})
: super(
builder: () {
return ContainerViewModel();
},
location: Location.registry
);
...
}
Finally, the other classes are now StatelessViewWidgets, for example:
class PageContent extends StatelessViewWidget {
PageContent({super.key});
@override
Widget build(BuildContext context) {
final ContainerViewModel viewModel = get();
...
}
}
I do the above for PageHeader, PageSideBar and PageContent and they all
find the (single) ContainerViewModel instance from the registry.
The critical part above is the ‘location: Location.registry’ line in
PageContainer. Without this, the other classes can’t find the ViewModel.
According to this page:
@.***/flutter-state-management-with-mvvm-1b55e6911975<EMAIL_ADDRESS>in the ‘Retrieving ViewModels from anywhere’ section, this should be
accomplished by ‘register: true’. But that is not possible anymore, so I
think the documentation may need to be updated?
Anyway, thanks so much for your help and such a quick turn-around.
Best regards, Loz.
From: Rich Coutts @.***<EMAIL_ADDRESS>>
Sent: Thursday, November 2, 2023 9:52 PM
To: buttonsrtoys/mvvm_plus @.***<EMAIL_ADDRESS>>
Cc: Loz Groves @.***<EMAIL_ADDRESS>>; Author @.***<EMAIL_ADDRESS>>
Subject: Re: [buttonsrtoys/mvvm_plus] Sharing a single (factory) ViewModel
between ViewWidgets causes a re-initialized final error. (Issue #45)
Ah. Interesting use case, Loz. I didn't quite follow what you were doing
via email but see what's going on now.
The issue is that, under the hood, ViewModels are given the context of the
Widget that built it. That way, the ViewModel can use the context to "get"
and "listen" to other ViewModels and Properties. What's happening in your
example is that a Widget built a ViewModel and then gave it its context.
Then, when the builder of the second Widgets retrieved the same ViewModel,
it also trying to assign it its context, but it was already assigned and is
a late final which is why you got the exception.
ViewModels in the widget tree need to know where they are in the tree, so
I don't anticipate changing this approach anytime soon. But it sounds like
there is an alternative, maybe better way to do what you want.
My recommendation for your second widgets to subclass from
StatelessViewWidget instead of ViewWidget. StatelessViewWidget has no
ViewModel (so no builder) and instead "gets" or "listens" too one or more
ViewModels owned by other widgets. Check out the mvvm+ examples. Most of
the widgets in it are StatelessViewModels.
E.g., here's an class in the mvvm+ example that subclasses
StatelessViewWidget. You can see in the class how it uses get and listenTo
to access the other ViewClass.
/// Demonstrates [get] and [listenTo] for a [Model]
class ModelWidget extends StatelessViewWidget {
ModelWidget({super.key});
@override
Widget build(BuildContext context) {
return Column(
children: [
const Text('get/listenTo Model'),
Text('${listenTo().count}'),
const SizedBox(height: 10),
Fab(onPressed: get().incrementCount),
],
);
}
}
When you and I chatted via email, I thought you were trying to access a
ViewModel in the registry from within the body of the constructor, like
this
class MyWidget extends ViewWidget {
MyWidget({super.key}) : super(builder: () => MyWidgetViewModel()) {
final value = get(); // <-- This should work if "Counter" is in
the registry, but was causing an exception, so a bug
}
@override
Widget build(BuildContext context) {
return Text(viewModel.someText); // <- your "viewModel" getter
}
}
which is a use case that I did not anticipate and was indeed a bug. So, I
just pushed version 1.5.4 that fixes this, though you may not need it.
—
Reply to this email directly, view it on GitHub <
https://github.com/buttonsrtoys/mvvm_plus/issues/45#issuecomment-1791588433>
, or unsubscribe <
https://github.com/notifications/unsubscribe-auth/AGKZRATJ3LVSTSXSTFMDDWTYCQIYNAVCNFSM6AAAAAA63HJVVSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOJRGU4DQNBTGM>
.
You are receiving this because you authored the thread. <
https://github.com/notifications/beacon/AGKZRAQMMHBJMBRPNGODL6DYCQIYNA5CNFSM6AAAAAA63HJVVSWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTTKZF4FC.gif>
Message ID: @.***<EMAIL_ADDRESS>@.***<EMAIL_ADDRESS>> >
—
Reply to this email directly, view it on GitHub
https://github.com/buttonsrtoys/mvvm_plus/issues/45#issuecomment-1792495830,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAXIK3P5U7T6KOXQTICK22TYCT2U7AVCNFSM6AAAAAA63HJVVSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOJSGQ4TKOBTGA
.
You are receiving this because you commented.Message ID:
@.***<EMAIL_ADDRESS>>

—
Reply to this email directly,  https://github.com/buttonsrtoys/mvvm_plus/issues/45#issuecomment-1792625060 view it on GitHub, or  https://github.com/notifications/unsubscribe-auth/AGKZRAUZTEBKLB5ZBBOSKILYCUC7FAVCNFSM6AAAAAA63HJVVSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOJSGYZDKMBWGA unsubscribe.
You are receiving this because you authored the thread.  https://github.com/notifications/beacon/AGKZRARTG45WQQEZMB574JDYCUC7FA5CNFSM6AAAAAA63HJVVSWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTTK3FE2I.gif Message ID: < @.> @.>

Ah. Yes. That's from and outdated version and needs to be updated. Thanks!

FYI, Rich:
class PageContainer extends ViewWidget {
PageContainer({super.key})
: super(
builder: () {
return ContainerViewModel();
},
//      location: Location.tree
);
and this:
class PageContent extends StatelessViewWidget
{
PageContent({super.key});
@override
Widget build(BuildContext context) {
final ContainerViewModel viewModel = get(context: context);
Doesn’t work. You get a runtime error.
The location must be specified specifically as ‘tree’, not what you said earlier (ie, its not the default, which is registry). (If I uncomment the location: Location.tree line it runs fine).
Anyway, have a great day and thanks.
Loz.
From: Rich Coutts @.>
Sent: Friday, November 3, 2023 4:07 PM
To: buttonsrtoys/mvvm_plus @.>
Cc: Loz Groves @.>; Author @.>
Subject: Re: [buttonsrtoys/mvvm_plus] Sharing a single (factory) ViewModel between ViewWidgets causes a re-initialized final error. (Issue #45)
Ah. Yes. That's from and outdated version and needs to be updated. Thanks!
—
Reply to this email directly, view it on GitHub https://github.com/buttonsrtoys/mvvm_plus/issues/45#issuecomment-1792712660 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AGKZRAUXUIPW5URAM774MYLYCUJBJAVCNFSM6AAAAAA63HJVVSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOJSG4YTENRWGA .
You are receiving this because you authored the thread.  https://github.com/notifications/beacon/AGKZRAQ4S5ZL46BJBGJSSVDYCUJBJA5CNFSM6AAAAAA63HJVVSWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTTK3KP5I.gif Message ID: @.*** @.***> >


New1

Before you submit an issue, please review the guidelines for this repository.
Please report an issue only for a BUG, not for asking questions.
Note that it will be much easier for us to fix the issue if a test case that
reproduces the problem is provided. Ideally this test case should not have any
external dependencies. Provide a copy of the image or link to files for the test case.
Please delete this text and fill in the template below.

Environment

Tesseract Version:
Commit Number:
Platform:

Current Behavior:
Expected Behavior:
Suggested Fix:

Before you submit an issue, please review the guidelines for this repository.
Please report an issue only for a BUG, not for asking questions.
Note that it will be much easier for us to fix the issue if a test case that
reproduces the problem is provided. Ideally this test case should not have any
external dependencies. Provide a copy of the image or link to files for the test case.
Please delete this text and fill in the template below.
Environment

Tesseract Version:
Commit Number:
Platform:

Current Behavior:
Expected Behavior:
Suggested Fix:

Yes, it works. But please don't use the issues here as a playground.

I had to block you now temporarily because you did not stop playing here (and in other repositories).


Prepare v1.1.0 release

Also added a really basic doc describing the release process. It needs to be updated with instructions for publishing to the Marketplace. Mind adding that @shehzan10?

Thanks for the pull request @kring!

:heavy_check_mark: Signed CLA found.

Reviewers, don't forget to make sure that:

[ ] Cesium for Unreal Samples works.


Implement Member.util

Lmk if there is any other common functionality that we could put in member.util

Client Side:

Server side:

Bot logs:

Pretend that says 2 days

bump


Challenge http://www.freecodecamp.com/challenges/bonfire-return-largest-numbers-in-arrays has an issue

Solution produces results equal to those asserted but but fails same tests, below. Code to replicate included, below.
assert(largestOfFour([[4, 9, 1, 3], [13, 35, 18, 26], [32, 35, 97, 39], [1000000, 1001, 857, 1]]).should.eql([9,35,97,1000000]));Cannot read property 'eql' of undefined
(largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]])).should.eql([5,27,39,1001]);Cannot read property 'eql' of undefined
function largestOfFour(arr) {
maxArr = [];
maxNum = 0;
for (var x in arr) {
for(var y in arr[x]) {
if (arr[x][y] > maxNum) maxNum = arr[x][y];
}
maxArr.push(maxNum);
maxNum = 0;
}
return maxArr;
}

Fixed with a previous commit. Thanks for the heads up!


Dialogic Code Cleanup/Simplification

This issue is supposed to be a place to collect things that are currently working well, but have some terrible code behind the scenes.
It's not about changing the behaviour of things if possible.
I just wanted a place to note these things down, whenever I find them, and not create a separate issue for each one.

[ ] DialogicUtil.get_character_list() creates an unnecessary layer of complexity by creating a new dict with the same info AND the original dict for each character. Unfortunately some other parts of dialogic are build around this layer, so the effects of removing/changing this are hard to predict.
[ ] DialogNode.update_custom_events() is deprecated, but still present.
[ ] DialogicDefinitionsUtil.set_definition_variable() and .set_glossary_variable() require you to provide everything about the definition as separate arguments, meaning any change to the content of a definition also requires the change of these functions even though all they do is put that EXACT values into a dictionary. It would be much easier to add a single content or data argument that would be a dictionary.

More will come over time I'm sure. Feel free to suggest things I should add to this.

one thing I would add is the over complicated nature of the implementation of the folder structure since they were added after the fact, and to a lesser extent an issue with the
currently this happens on every time in the following order whenever you try to do a lookup with the folder path:

the entire folder structure JSON is loaded into a new Dictionary
the dictionary is iterated through once to find a matching path to find the matching ID... multiple unnecessary steps happen at this phase, at each level of the folder tree as it searches, with for variables another Dictionary of all the variables is pulled from the Engine meta definition store and then fully looped through multiple times at each tree level to find a matching ID, and for timelines it has to load and check every single timeline file at each tree level to see if it's a matching one
once the ID is finally from the search function, theyre passed to the actual function that's using them... which then has to do one more pull of the Engine meta into another copy Dictionary, or another check of the timeline files to get the matching one to pass on and process

it's massively over complicated, with way too many loops and extra data thats created and discarded. and even for the cases that don't use the full path, its only partially simplified by removing step 2, the additional extra steps in 3 are still happening too.
ideally this could all be solved by a few one-time extra steps at load time. first, when the definitions are first loaded at runtime and stored in the Engine meta, it currently adds a dictionary with values of ID, Name, Type, and Value. an additional value should be added of Path so that is stored as well and always available. second, an additonal dictionary should be generated at runtime and stored in the Engine meta for the Timelines so it doesn't have to keep reading those from the files, also with ID, Name, and Path.
with those changes, it would be possible to dramatically speed up both variable and timeline lookup, since you only need just the ID or the Path+Name to iterate through the dictionaries once. It brings the search speed down to O(n), from something so complicated I don't even know how to classify it right now, and cuts out a lot of unnecessary memory allocation and garbage collection as well

This issue is outdated (at least for 2.0) as the near-complete rewrite means the problems mentioned above aren't in 2.0.


The wiki is missing step-by-step guide

The process of adding custom entity to pmmp server is not clear from the current wiki.
I've created the custom entity (with blockbench usage, the entity has animations)
What should I do now? Should I install Customies plugin? Should I create a new plugin then? Is there any sample plugin to use/modify? Where the code from the wiki should be used?

SamplePluginAndResourcePack.zip
Here is sample plugin and sample resource pack, which could be used as an example.

Can u provide a example of item pls?


Implement SHA512

Pull Request type
Please check the type of change your PR introduces:

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no API changes)
[ ] Build-related changes
[ ] Documentation content changes
[ ] Other (please describe):

Issue Number: #114
Does this introduce a breaking change?

[ ] Yes
[x] No

still draft ?

still draft ?

The PR is good to go but I use the u512 Default trait from https://github.com/starkware-libs/cairo/pull/3366/files in it

Changed to create u512 object instead of using Default. I can update the repo to v2.0.0-rc5 once it's out also

@LucasLvy this isn't draft anymore :)


git-annex: error if git-annex is enabled but missing

This adds a check so that if setting.Annex.Enabled is true and git-annex is not in the PATH gitea will abort on startup with a reasonable error message.
Fixes #41.

@kousu Happy new Year!
Do you have any idea when you might get around to reviewing my PRs? :slightly_smiling_face:


How to operate vertices dynamically is like setting ordinary uniform variables.

How to operate vertices dynamically is like setting ordinary uniform variables.

I'm not sure what you're asking here. Could you clarify this issue?


Feature - Scrutinizer analysis engine update

This PR upgrades our Scrutinizer configuration to use the new PHP analysis engine
More info here: https://scrutinizer-ci.com/docs/tools/php/php-analyzer/guides/migrate_to_new_php_analysis

Tests passed and code quality is still 10/10 with the new configuration. Perfect!
:green_heart: :+1: :shipit:


variable in autoload is recognized as constant

Operating system or device - Godot version:
Godot 2.2 alpha with current master head c9366f8b563c186b4d0ab09088d09d47580f749d
Issue description (what happened, and what was expected):
variable in autoload script is recognized as constant, so can't assign it
Steps to reproduce:
global.gd (autoload)
extends Node

var not_const_var

func _ready():
	pass

node.gd
extends Node

func _ready():
	global.not_const_var = []

when run, debugger says Parser Error: Can't assign to constant
maybe regression with #7390?
Link to minimal example project (optional but very welcome):

@bojidar-bg would you check for this?

I tested with back to false on https://github.com/godotengine/godot/blob/master/modules/gdscript/gd_parser.cpp#L2026
Node *expression = _parse_and_reduce_expression(p_block,p_static,false,true);
global.gd (autoload)
extends Node

const const_var = 1
var not_const_var

node.gd
extends Node

const const_local = 1

func _ready():
	const_local = 2 # no error
	prints("const_local=",const_local) # prints 2

	global.not_const_var = [] # no error
	prints("const_var=",global.const_var) # prints 1
	global.const_var = 2 # error : Invalid set index 'const_var' (on base: 'Node (global.gd)').


Docs contain unsupported argument for get_event

Describe the issue:
There is a rendering issue in the get_event docs entry. The entry claims that there is a strict_search optional argument for the function when this is actually not implemented.
Although this is something we can support in the future as part of the fuzzy matching PR I’m preparing.
Reproduce the code example:
strict_search (bool) – Match precisely the query, or default to fuzzy search. If no event is found with strict_search=True, the function will return None

Error message:
No response

There is a rendering issue, yes. But the documentation is correct. The signature in the docs is also auto-generated from the true signature. So while the text could be wrong, the rendered signature is very unlikely to be wrong. The argument exists and it is working.
Did you click on the "source" link next to the function in the docs? The source that is rendered there is out of date. Actually, it is from version 2.2.2 as you can see on that page. Somehow, the CI isn't properly building the docs from scratch. I noticed this a few weeks ago, but haven't got around to investigating this.
But the feature exists, and it worked as intended when I just checked.

Although this is something we can support in the future as part of the fuzzy matching PR I’m preparing.

Agree, it would be nice if all the fuzzy endpoints support this. What's your opinion on the name strict_search. I'm somehow not a fan of that name any more, although I was the one who named the argument like that.

I see. I didn't realize the source is out of date. If you want a new name I propose exact_match.

I see. I didn't realize the source is out of date. If you want a new name I propose exact_match.

I think "exact_match" is better, yes. If we use that on new functions, then we should change it here as well, with proper deprecation.


showBarcodes not working (data.table has NULL row.names?)

https://github.com/PoisonAlien/maftools/blob/55867358510447ac852ca19830c0c5f11f7f69ac/R/plotMafSummary.R#L74
Tried the following code with the example data and I can't seem to be able to show the barcodes in the "Variants per sample" plot
require(maftools)

laml.maf = system.file('extdata', 'tcga_laml.maf.gz', package = 'maftools') #path to TCGA LAML MAF file
laml.clin = system.file('extdata', 'tcga_laml_annot.tsv', package = 'maftools') # clinical information containing survival information and histology. This is optional

laml = read.maf(maf = laml.maf)

plotmafSummary(
  maf = laml,
  rmOutlier = TRUE,
  addStat = 'median',
  dashboard = TRUE,
  titvRaw = FALSE,
  showBarcodes = TRUE,
  textSize = 10,
  fs = 1,
  top = 20
)

Hi,
Including barcodes there would make the plot pretty crowded and unreadable. But it will work with dashboard = FALSE . I will update the docs to make it clear. Hope this helps.

Hey!
Thanks for such positive feedback to my comments!
What I would suggest is at least giving the option to show the names there. I have a cohort of 48 samples and I think I would love to be able to show them there. The dashboard view is awesome!
Dashboard = FALSE does not show all the panels though.

Yes, thats the point. If dashboard style is too crowded setting it to false will just draw variant per sample and variant classification summary.

I have fixed it. Also I have added annotations to the bar plots - you will see when you use it.
Please let me know if this helps you.

Hello,
Just tested it and it is showing the sample ID's only when "dashboard = FALSE". I understand that it might be illegible for large datasets (as in the attached image of the laml dataset) in the "dashboard = TRUE" view but for smaller datasets I think it would still be nice to have. In any case, I can still make both the TRUE/FALSE plots and use them accordingly.
Thanks!

Actually, I re-installed the master repo and not "RELEASE_3_7" which is where you made the changes.
The Sample IDs are now in the dashboard view, thanks!
But there is an error and the Hugo_Symbol plot.
require(maftools)

laml.maf = system.file('extdata', 'tcga_laml.maf.gz', package = 'maftools') #path to TCGA LAML MAF file
laml.clin = system.file('extdata', 'tcga_laml_annot.tsv', package = 'maftools') # clinical information containing survival information and histology. This is optional

my_maf = read.maf(maf = laml.maf)

plotmafSummary(
  maf = my_maf,
  rmOutlier = TRUE,
  addStat = 'median',
  dashboard = TRUE,
  titvRaw = FALSE,
  showBarcodes = TRUE,
  textSize = 0.1,
  fs = 1,
  top = 20
)

Error in dashboard(maf = maf, color = color, rmOutlier = TRUE, titv.color = titvColor,  :
  object 'laml' not found

I have made a comment in the Dashboard.R code for you where "laml" has been hardcoded instead of "maf"
#--------------------------- hugo-symbol plot -----------------
gs = getGeneSummary(maf)
nsamps = as.numeric(laml@summary[ID %in% "Samples", summary])

Fixed it. Thanks for going through the code.


Feat(agents-api): Replace Retry Policies with Temporal Interceptors & Add more non-retryable errors

[!IMPORTANT]
Replaces retry policies with Temporal interceptors to handle non-retryable errors and updates worker to use these interceptors.

Interceptors:

Add CustomActivityInterceptor and CustomWorkflowInterceptor in interceptors.py to handle non-retryable errors by raising ApplicationError.
CustomInterceptor combines both activity and workflow interceptors.

Non-Retryable Errors:

Define NON_RETRYABLE_ERROR_TYPES and is_non_retryable_error() in exceptions/tasks.py to identify non-retryable errors.

Retry Policy:

Set DEFAULT_RETRY_POLICY to None in retry_policies.py due to conflict with interceptors.

Worker:

Update create_worker() in worker.py to use CustomInterceptor.

This description was created by  for 7a50b72a4677195f7d73fc444fa56fd6472afa4b. It will automatically update as commits are pushed.

@HamadaSalhab - actually how will we do maximum attempts etc without retry policies?

@HamadaSalhab - actually how will we do maximum attempts etc without retry policies?

It seems like the interceptors & retry policies do not work well when both are set. I left a FIXME regarding that.


1.20.6

Version update to 1.20.6?

The mod has been updated in 1.0.5, and is now available for download on curseforge and modrinth. Thanks for notifying


Remediate failure if font is not loaded

Expand game_errors.txt calls to include details if a font fails to load.
Note, default font loading to be a FATAL ERROR
Update any necessary data within locale modules to account for a NULL or nullpr.
Check for any places that can cause application or games to crash if a font is not loaded.
Check for default system folders for Arial based fonts.

Update game_errors.txt content when font fails to load and updated splash screen for editor. Merged PR.


RHEL-07-040350 not applying on RHEL7 Workstations

Describe the Issue
RHEL-07-040350 is not properly applying on RHEL7 Workstations by not uncommenting the #IgnoreRhosts yes in /etc/ssh/sshd_config
Expected Behavior
Post running this playbook the line #IgnoreRhosts yes should change to IgnoreRhosts yes
Actual Behavior
Regex does not seem to be finding the syntax for #IgnoreRhosts yes
Control(s) Affected
RHEL-07-040350
Environment (please complete the following information):

Ansible Version: 2.9.27
Host Python Version: 3.6.8
Ansible Server Python Version: N/A
Additional Details:

Additional Notes
This is configured in fix-cat2.yml line 3420
- name: "MEDIUM | RHEL-07-040350 | PATCH | The Red Hat Enterprise Linux operating system must be configured so that the SSH daemon does not allow authentication using rhosts authentication."
  lineinfile:
      dest: /etc/ssh/sshd_config
      regexp: "(?i)^#?IgnoreRhosts"
      line: IgnoreRhosts yes
      validate: /usr/sbin/sshd -t -f %s
  notify: restart sshd
  when:
      - rhel_07_040350
      - rhel7stig_ssh_required
  tags:
      - RHEL-07-040350
      - CAT2
      - CCI-000366
      - SRG-OS-000480-GPOS-00227
      - SV-204590r603261_rule
      - V-204590
      - ssh

Possible Solution
The regex seems to be invalid and needs modification on line 3420 of cat-fix2.yml
Currently:
"(?i)^#?IgnoreRhosts"
Change to:
"^#IgnoreRhosts"
This regex seems to function properly.

(?i)^#?.?IgnoreRhosts
Would match:
IgnoreRhosts
#IgnoreRhosts
# IgnoreRhosts

hi @bordenit
Thank you again for raising this issue. This has now been merged into the devel branch. Aiming to put this into main if all is well in the next couple of weeks.
many thanks again
uk-bolly


Building InnerEye Workspace Fails with NoPublicIP Error on ML Compute Cluster

Deployment of InnerEye Workspace Fails from API because of Public IP Address Setting on Compute Cluster
Deploying InnerEye Workspace via API fails during the build of machine learning compute workspaces
Error Message
code: PropertyNotAllowed
message: Cluster without public IP is not supported in the compute region. Please refer to this documentation for the regions support No Public IP cluster https://docs.microsoft.com/azure/batch/batch-pool-no-public-ip-address
Steps to reproduce

Deploy TRE

Publish tre-workspace-innereye using porter build and publish_register_bundle.sh script

Deploy InnerEye Workspace via POST to /api/workspaces

Check Deployment Status via GET /api/workspacess/{workspace_id}

Temporary Fix
Set parameter EnableNodePublicIp to 'true' in: templates > workspace_services > azureml > user_resources > aml_compute > terraform > deploypl_compute_instance.json

@dram1964 this relates to #1081, that's why those restrictions were there - although did need removing as were outdated.
Before enabling public IP on the compute, you should to understand if enabling a public IP on compute impacts your IG policies or not.
We could add an option of enabling public IP on Azure ML, but is not something we can fix. Will be a case of manually overriding as you have done for now.
Will close this as isn't something we can fix in the Azure TRE project - need to wait on region availability. Useful info for others so thanks for reporting, and hope other regions are enabled soon.
cc @ktakeda1 @deniscep


please merge

hello,
I am sending this pull request for not being too behind with your code base. This is the last of the first set of things I changed providing some code cleanup. I would focus now on testing.

Thanks for the pull request. I'll hold off merging it in until you've had a chance to do some testing, just to make sure the master branch is functional.

ok sounds good
On Thu, Jul 13, 2017 at 12:07 AM, Gabriel Burca<EMAIL_ADDRESS>wrote:

Thanks for the pull request. I'll hold off merging it in until you've had
a chance to do some testing, just to make sure the master branch is
functional.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/gburca/amazon-glacier-cmd-interface/pull/3#issuecomment-314922987,
or mute the thread
https://github.com/notifications/unsubscribe-auth/APnbz7X9xaoNq96jxDxj6j6cSE61qqM5ks5sNVGXgaJpZM4ORnZf
.

--
Simone Marzona
Linux registered user number: 509183
PGP key ID: 1024D/36F88CC3
Star Trek (2009):
Burly Cadet #1: Hey farmboy. Maybe you can't count. But there are four
of us and one of you.
James T. Kirk: So get some more guys and then it'll be an even fight.


HUD position issue

Hi, first of all — thanks for awesome lib that you've made!
Unfortunately, i've faced an issue with it :(
Version: 1.3.1
iOS versions: 8&9. Both simulator & device.
Flow:

present HUD in UIViewControllers view
push another view controller to navigation stack
rotate device
go back to previous controller
observe wrong position for HUD

I've made small project with shows the issue: https://github.com/Austinate/JGProgressHudIssue
You can run UI test testRotation and see what's happening. Sorry if test is bad or it's code smells, it was my first experience with XCTest UI testing :sob:
Image that shows issue.
As i see what's happening — view controllers view bounds doesn't change on rotation if controller wasn't presented on screen during rotation.
I'm not sure if it's actually any implementation issue for JGProgressHUD (since it's accessing view bound as supposed to do), but i'd like to receive any advice that can help me, thanks!

Hey, thanks for the detailed bug report! I'll look into it soon.

i've made small update on issue and created this pull request to fix case that i had before what i described in update

I just wanted to check out your example, but the repo seems to be gone. #47 might fix this issue (I'm merging that PR now).

Can you confirm that the issue has been resolved? Otherwise I'll close the ticket due to inactivity.

Hi, sorry for delay, i'll try to check if it's fixed during a couple of days.


update with good v7.x.x example

@arb are you good with this?

No the main line of the description needs to be updated to indicate that it's just a write able stream for loggly.

Now?

Thanks @bsapot!


Adding support for Low-Pri VM eviction

With 2017-11-01, Schedule events now notify when Low-priority VMs are being evicted. https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-use-low-priority

@sandeepgeorge : Thanks for your contribution! The author, @ericrad, has been notified to review your proposed change.

@EricRadzikowskiMSFT - Would you review the proposed changes?
@sandeepgeorge - Note that Microsoft authors should make updates to content through the private repository so the updates can be staged and validated by the validation rules. See this article for more information. Thanks!

Submitted change from private repo https://github.com/MicrosoftDocs/azure-docs-pr/pull/68670


Update certificates.md

seems like the certificate directory on the client has to include the port to work

Deploy preview ready!
Built with commit d917992df0f6725b82b5c18fe2e79930f846086a
https://deploy-preview-826--docker-docs.netlify.com


Update .gitignore to new dart_tool pub cache

dart-lang/sdk#32030

Codecov Report

Merging #50 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #50   +/-   ##
=======================================
  Coverage   51.55%   51.55%
=======================================
  Files           3        3
  Lines         161      161
=======================================
  Hits           83       83
  Misses         78       78

Continue to review full report at Codecov.

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


Added support for ZipFile and added more features to IAssembly

Update the code to use 4 space indentation, not tabs.

The files ZIpFileWrapTests.cs has wrong CamelCasing.

You'll have to check it out and apply your code styling. I'm not resetting all my options in Visual Studio.

These settings does not require you to change your Visual Studio preferences. They can be managed by extensions like Editor Config, ReSharper and others, so Visual Studio uses per-project based code styles.
These are standard C# code style formatting settings. I cannot accept the pull request without it.

Not everybody has a Resharper license, you know. I'm pretty sure EditorConfig doesn't support curly braces on the next line, either. I added a Rebracer file, though. That should support everything you want.
And they're a standard for C# formatting, not the standard. But I've changed everything to match.

Thanks for updating the code style. Rebracer sounds great, I did not want to imply everybody must use ReSharper, just that there are extension to manage per project settings.

Why there is new AssemblyFactory class and why were the IAssembly.LoadFrom methods marked as obsolete?

AssemblyFactory houses all the static methods in the underlying Assembly class, and IAssembly now contains only the instance methods from Assembly (hence the deprecation of LoadFrom, which is a static method in Assembly). Rather than injecting an IAssembly to do a load, you'd inject an IAssemblyFactory. It felt a little clunky to inject an IAssembly, then call Load on that IAssembly which returned another IAssembly. LoadFrom and all of its cousins really are essentially factory methods in the underlying system library, so I think it kind of makes sense to separate those functions out into a separate factory wrapper.

I see, that makes sense for IAssemblyFactory.
I've split the pull request to two parts: one for the Zip implementation and the other will include Assembly related changes. I will merge it and make new release.

Fair enough. I wasn't sure if you'd want it as two separate PRs or one. I figured you could split it if you wanted. Thanks!

Implemented in #18 and #19.
I hope did not forget anything when I squashed and split commits.

Thanks for contribution!

Absolutely. Thanks for the great library! Sorry about being a curmudgeon about the formatting.


separate tournament definition from engine, add comments

Pretty self explanatory.
Might want to have a conversation about class header comments and how we want them to look, though?

I think a reasonable style docstrings for functions, classes, etc. would be something along the lines of:
def a_function(a: int, b: float) -> float:
    """
    Single sentence description

    Paragraph description. Lorem ipsum dolor sit amet, consectetur adipiscing
    elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
    Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
    aliquip ex ea commodo consequat.

    Parameters
    ----------
    a : int
        Parameter description
    b : float
        Parameter descripton 2

    Returns
    -------
    result_name : float
        Sum of `a` and `b`

    See Also
    --------
    another_function

    Examples
    --------
    >>> c = a_function(1, 2)
    >>> c
    3.0
    """
    return a + b

Where there is a blank line between sections and everything after the single line comment is optional.

To clarify, simple functions really don't need all of that. This was just to show everything that we could add.


Lack of unitTextTypeface

There is a speedTextTypeface but we do not have that for unitTextTypeface.
It's good to be able to change the typeface of the unit as well.

Use textTypeface.

But the comment before that function says:

/**
* Maybe null, change typeface for all texts without speed and unit text.
*/
var textTypeface: Typeface?

Sorry, actually they're all the same (speed and unit)
speedTextTypeface