Support for Italian Number in .NET

Support for Italian Number.
Cardinal

138 test cases passing.
2 Skipped:
[il 4 maggio]: 4 is extracted as number but it is part of a date (May the 4th), same happens in English test for 4 May.
[uno e mezzo]: mezzo in this context means 0.5 but set in dictionary to 2. recognized as 1/2=0.5 instead of 1+0.5=1.5.

Ordinal

19 passing.
1 Skipped:
[undicesimo]: extracts and identify 'un' as 1 and fails to identify 'dicesimo' so it returns 1 instead of 11
Solution to be investigated in future PR.

Percent

12 passing.

With these changes 135 test cases are passing.
6 test cases were skipped.  mainly related to trailing space after the actual text being recognized (this is being fixed).
the other type of the failing test cases is this pattern: mezzo (half) not being recognized in 1,5 and 2,5

Trailing and proceeding space fixed.
OrdinalModel: 18 test cases passing, 1 failing (11th)  5 cases added.
PercentModel:  all test cases passing. 2 added.

@LionbridgeCS, when you push new commits, can you update the PR description? It should reflect the current pass/fail numbers.

@tellarin  yes the few skipped test cases are failing but they are not core test cases.
The build is failing now, is this something we can fix?

@LionbridgeCS this last commit seems to be incorrect. Also, before updating a PR, please always rebase the changes on top of /master to incorporate the latest changes; and always run all tests locally for all platforms before pushing to the PR. Lastly, please check the CI build log for issues.
The state of the current PR is invalid as it is neither rebased on /master nor is mergeable (probably due to conflicts, which I can't see as the PR is still marked as 'Draft').
As /master is live it's very important to merge PRs as timely as possible, or for author to keep the PRs fresh with the latest /master changes. These two previous PRs are probably relevant for the current conflicts: #1628, #1625.
Can you please fix these issues ASAP? We really need to merge this if support is correct.
Thanks.

@tellarin we will work on solving the merge conflicts and set the PR to ready for review.

@tellarin. can we close this PR and open a new one by reproducing the changes with from the fresh master?

@tellarin the build still complains about javascript, is this something we can fix ourselves?

@LionbridgeCS it seems the last error was an intermittent issues downloading JS dependencies.

Build fails again probably because of  the mentioned intermittent issues downloading JS dependencies.
Is this something we can check for on our end in the next PRs?

@LionbridgeCS I'm not sure why sometimes the CI build is failing downloading JS dependencies. One mitigation for it is to check the build fail log and if that was the reason, re-trigger the build.
When I did that, the build failed at the real cause. Newly added tests were missing a NotSupported tag for non-dotnet platforms. I've fixed it and let's see if the build now passes.
Please always run all platform builds and tests before pushing commits.

quindicisimo is not correct quindicesimo is.
we will work on the last cases and include them in a new PR


Integration is broken for schedulers

When starting scheduler, it doesn't import application and doesn't set dependency context.
Original issue: https://github.com/taskiq-python/taskiq/issues/142

Instead of importing application, use --fs-discover. It will automatically import all files by pattern.
https://taskiq-python.github.io/guide/cli.html#auto-importing

Hi, @nicognaW. Relative imports doesn't work, because taskiq imports your modules as is and has no propper python-path for each tasks file. Consider removing all relative imports from your projects.

Hi, @nicognaW. Relative imports doesn't work, because taskiq imports your modules as is and has no propper python-path for each tasks file. Consider removing all relative imports from your projects.

Hi, I confirmed that I'm not using any relative imports in my own code, it's possible that one of my dependencies does though. Today when I cloned the project on another macOS machine, the error didn't occur, and everything went fine.
Not sure if relevant, there's one more differences between the Windows and macOS environment is that I use in-project venv option with poetry on the Windows machine, and for macOS the venv is created at something like /Users/{username}/Library/Caches/pypoetry/virtualenvs/crazy-diamond-py-E-Drn1To-py3.11.
Anyway, I personally prefer using the modules args, passing the full module name rather than with -fsd searching the fs for a pattern.

Another side-effect with FastAPI-Template is that when workers instrument the OTEL, the process will crash at calling app.url_path_for, since the routers are not registered.

That's really weird. At first I decided to separate tasks from the project and import them using modules as arguments to taskiq. I created a project and defined a task using async_shared_broker.
from taskiq import async_shared_broker

@async_shared_broker.task
async def my_task(a: int) -> None:
    print("lol", a)

And then I created another project which depepnds on the first one.
from taskiq import async_shared_broker
from taskiq_redis import ListQueueBroker

broker = ListQueueBroker("redis://localhost")
async_shared_broker.default_broker(broker)

And finally, I created a main.py where I called a task.
import asyncio

from taskslib.tasks import my_task

from tkqtest.tkq import broker

async def main():
    await broker.startup()
    await my_task.kiq(a=1)
    await broker.shutdown()

if __name__ == "__main__":
    asyncio.run(main())

I started worker with this command:
taskiq worker tkqtest.tkq:broker taskslib.tasks

And it worked out. I tried setting poetry config virtualenvs.in-project to true and false, but no luck. I couldn't reproduce the problem. Maybe it incorrectly resolve names. Can you try renaming .venv to something different without dot?

I'm sorry if I missexpressed anything, but the import issue is with --fs-discover not with manually specifying the task modules.
Manually specify the task modules like you did:

taskiq worker tkqtest.tkq:broker taskslib.tasks

didn't produce the error.
And reviewing my stacktraces, I realized that one of my dependencies s3transfer has a file also called task.py which triggered taskiq cli to think it was a task module that needed to be imported (with the default --tasks-pattern set to task.py), and it tried to import, but the package is located in my .venv folder, and the import error was thrown.
So overall it's not an issue for separating tasks from the project, it's just task.py is too common to let the taskiq cli missimport modules from unintended third-party packages.

I was running my FastAPI project with taskiq integrated (generated from fastapi_template). And I added a taskiq-scheduler instance like this, but it failed to detect and send tasks.
  api: &main_app
    build:
      context: .
      dockerfile: ./deploy/Dockerfile
      target: prod
    image: api_service:${API_SERVICE_VERSION:-latest}
    restart: always
    env_file:
    - .env
    networks:
    - default

  taskiq-worker:
    <<: *main_app
    labels: []
    command:
    - taskiq
    - worker
    - api_service.tkq:broker
    - --fs-discover
    - --tasks-pattern
    - "schedule_*.py"

  taskiq-scheduler:
    <<: *main_app
    labels: []
    command:
    - taskiq
    - scheduler
    - api_service.tkq:scheduler
    - --fs-discover
    - --tasks-pattern
    - "schedule_*.py"
    depends_on:
      api:
        condition: service_started
      taskiq-worker:
        condition: service_started

I observed that it cannot detect my scheduled tasks in this way. After that, I tried two experiences and SUCCESSFULLY made the scheduler active:

Exec the command taskiq scheduler api_service.tkq:scheduler --fs-discover --tasks-pattern "schedule_*.py" right in the terminal of my api instance.

Run the scheduler programmatically: write a separate package for the scheduler as a service, then run the scheduler service instance

import asyncio

from taskiq import TaskiqScheduler
from taskiq.cli.scheduler.args import SchedulerArgs
from taskiq.cli.scheduler.run import run_scheduler
from taskiq.schedule_sources import LabelScheduleSource

from api_service.tkq import broker

scheduler_tkq = TaskiqScheduler(
    broker=broker,
    sources=[LabelScheduleSource(broker)],
    refresh_delay=2,
)

async def main() -> None:
    """Initialize Taskiq scheduler."""
    await run_scheduler(
        SchedulerArgs(
            scheduler=scheduler_tkq,
            modules=[],
            fs_discover=True,
            tasks_pattern="schedule_*.py",
        ),
    )

if __name__ == "__main__":
    asyncio.run(main())

 # ...
   taskiq-scheduler:
    image: api_service:${API_SERVICE_VERSION:-latest}
    restart: "always"
    command:
    - /usr/local/bin/python
    - -m
    - api_service.services.scheduler
    volumes:
      # Adds current directory as volume.
    - .:/app/src/
    depends_on:
      api:
        condition: service_started
      taskiq-worker:
        condition: service_started
 # ...

@haophancs, seems like the problem is with imports, not sure what was the initial problem.
Can you provide a little bit more context? Debug logs for example and show how you defined the scheduler in your tkq module?

@s3rius The taskiq-scheduler instance just has two lines of initial logs and nothing else. So I tried to run that command programmatically by Python and it worked.

@s3rius Oh I got it, if wanna use the CLI command instead of the programmatically way, we need to declare the scheduler BEFORE calling taskiq_fastapi.init. Because in the beginning, I declared it after initializing taskiq_fastapi, it cannot detect the scheduled tasks.
# api_service/api_service/tkq.py
import taskiq_fastapi
from taskiq import InMemoryBroker, TaskiqScheduler
from taskiq.schedule_sources import LabelScheduleSource
from taskiq_redis import ListQueueBroker, RedisAsyncResultBackend

from api_service.settings import settings

result_backend = RedisAsyncResultBackend(
    redis_url=str(settings.redis_url.with_path("/1")),
)

broker = ListQueueBroker(
    str(settings.redis_url.with_path("/1")),
).with_result_backend(result_backend)

if settings.environment.lower() == "pytest":
    broker = InMemoryBroker()

# before calling taskiq_fastapi.init(...)
scheduler = TaskiqScheduler(
    broker=broker,
    sources=[LabelScheduleSource(broker)],
    refresh_delay=settings.scheduler_refresh_delay,
)

taskiq_fastapi.init(
    broker,
    "api_service.app.application:get_app",
)

And then just run an instance for it
# api_service/deploy/docker-compose.yml
  taskiq-scheduler:
    <<: *main_app
    labels: []
    command:
    - taskiq
    - scheduler
    - api_service.tkq:scheduler
    - --fs-discover
    - --tasks-pattern
    - "schedule_*.py"
    depends_on:
      api:
        condition: service_started
      taskiq-worker:
        condition: service_started

Just curios. Has the issue been triaged to the root cause?

The issue is the pattern, it grabs third party packages tasks.py file and drops an exectio with it. After changed the file to tasks_something.py and added the --tasks-pattern 'tasks_*.py' to the worker, it finally started as expected.


Need programmatic method to pull ASE management addresses

Parsing a webpage or markdown file isn't really a great option.
If we could get a generic method for pulling all these addresses then we could automate our processes better.

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

ID: 80d8f411-2e7f-abc4-3e62-8b467e2409e7
Version Independent ID: b4737b1d-b963-2ee4-aed0-558c80f02704
Content: Management addresses - Azure App Service Environment
Content Source: articles/app-service/environment/management-addresses.md
Service: app-service
GitHub Login: @ccompy
Microsoft Alias: ccompy

@MW-b0t Thanks for the feedback! We are taking a look into this and will get back to you soon.

@MW-b0t Thanks again for the feedback! I have assigned the issue to the content author for further and update the document as appropriate.

This capability has been added: https://docs.microsoft.com/en-us/azure/app-service/environment/management-addresses#get-your-management-addresses-from-api
#please-close


SSH - git : from "UNPROTECTED PRIVATE KEY FILE!" to "invalid format"

I carefully followed the guide to generate PGP keys, and then moved onto SSH. Specifically, I'm doing the following:

$ wget -O ~/.gnupg/gpg-agent.conf https://raw.githubusercontent.com/drduh/config/master/gpg-agent.conf
Following the tip, I added pinentry-program /usr/bin/pinentry-gnome3 and commented #pinentry-program /usr/bin/pinentry-curses.
$ gpg-connect-agent /bye
$ export GPG_TTY="$(tty)"
$ export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
$ gpgconf --launch gpg-agent
$ ssh-add -L
$ ssh-add -L | grep "cardno:$CARDNO" > ~/.ssh/id_ed25519_yubikey.pub
$ cat << EOF >> ~/.ssh/config

Host github.com
    IdentitiesOnly yes
    IdentityFile ~/.ssh/id_ed25519_yubikey.pub
EOF

$ ssh<EMAIL_ADDRESS>-vvv

At this point I see, among other things, debug1: Authentication succeeded (publickey). and Hi ***! You've successfully authenticated, but GitHub does not provide shell access.
So I cd into the repo, but when I $ git push the following is shown:
WARNING: UNPROTECTED PRIVATE KEY FILE!
Permissions 0664 for '/home/user/.ssh/id_ed25519_yubikey.pub' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/home/user/.ssh/id_ed25519_yubikey.pub": bad permissions
<EMAIL_ADDRESS>Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

I have tried changing the permissions with chmod as proposed here and here and by doing that I get a different message:
Load key "/home/user/.ssh/id_ed25519_yubikey.pub": invalid format
<EMAIL_ADDRESS>Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights

I've ran out of ideas, looking forward to your expertise.
Thank you.

(Just a side note about the last part: SSH usually expects a private keyfile in ~./ssh/id_rsa_blabla [without the .pub at the end]. This is why you get Load key "/home/user/.ssh/id_ed25519_yubikey.pub": invalid format.)

@RupertEverton are you still having trouble? If so, let us know and we can try to help you out.


Adapt to GeoGig 1.x release changes

Newer changes made to geogig causes various issues in maploom. since we are using latest geogig, we need to resolve the following:

cannot add remotes to a repository through maploom UI
repositories should now be referred to by name as opposed to what is now UUID
layer info needs to show both repo name and repo UUID
since repos have a UUID, remove our version uniqueId

fixed in commit 005bbc6


issue with MariaDB Database for PowerDNS Admin

hello my issue is a docker container is created with volume (pda-data) and created powerdnsadmin in mariadb database  but nothing is stored in mariadb
how can web gui save users and passwords to mariadb database
my os : centos 7
mariadb v10.5
powerdns 4.1.14

Hello,
you need to set the environment variable SQLALCHEMY_DATABASE_URI with this mysql://<mariadb_user>:<mariadb_password>@<mariadb_host>/<mariadb_batabase>.
Example:
<EMAIL_ADDRESS>You can see it also in the docker-compose.yaml

thanks


Allow changing SOCD settings in Web Configuration

SOCD can be adjusted via web-config and has been fixed as of v0.5.2


Update NuGet dependencies

Readiness checklist

[ ] I added/updated unit tests.
[ ] I added/updated integration tests.
[x] I ensured that the PR title is good enough for the changelog.
[x] I labeled the PR.

@NikolaVetnic Could you please do a quick review?


Suppress erroneous IL2026 warning

The trimmer is incorrectly identifying usage of
RSA.Create(RSAParameters) as RSA.Create(String). See #40175 for
discussion.
Resolves #40175 otherwise.

API change check
API changes are not detected in this pull request.


Add i icon for "Built Environment" subsections

Land Use
Zoning
Facilities
Community Assets

@andycochran @allthesignals Tried adding myself, forthcoming on PR

@jorgeh01, was this addressed by https://github.com/NYCPlanning/labs-community-portal/commit/1d1cd8fe6e18f881cff5ba4010f677f97faee959 ?

@andycochran Yes! For the most part, still need to made a few additions/edits.

Resolved via PR


"vagrant provision" fails with "host IP was given to the Vagrant core NFS helper"

Following the Quick Start in README.md using vagrant 1.7.4 on OS X 10.10.3, I'm hitting into a snag after my instance comes up during vagrant up:
No host IP was given to the Vagrant core NFS helper. This is
an internal error that should be reported as a bug.

vagrant ssh works fine to get into the box, but no provisioning occurs. If I run vagrant provision explicitly, it errors out the same way:
$ vagrant provision
No host IP was given to the Vagrant core NFS helper. This is
an internal error that should be reported as a bug.

Full log:
$ vagrant up --provider=google
Bringing machine 'default' up with 'google' provider...
==> default: Launching an instance with the following settings...
==> default:  -- Name:            i-2015071919-2a06374a
==> default:  -- Type:            n1-standard-1
==> default:  -- Disk type:       pd-standard
==> default:  -- Disk size:       10 GB
==> default:  -- Disk name:
==> default:  -- Image:           debian-7-wheezy-v20140619
==> default:  -- Zone:            us-central1-b
==> default:  -- Network:         default
==> default:  -- Metadata:        '{}'
==> default:  -- Tags:            '[]'
==> default:  -- IP Forward:
==> default:  -- External IP:
==> default:  -- Preemptible:     false
==> default:  -- Auto Restart:    true
==> default:  -- On Maintenance:  MIGRATE
==> default:  -- Autodelete Disk: true
==> default:  -- Scopes:
==> default: Waiting for instance to become "ready"...
==> default: Machine is booted and ready for use!
==> default: Waiting for SSH to become available...
==> default: Machine is ready for SSH access!
No host IP was given to the Vagrant core NFS helper. This is
an internal error that should be reported as a bug.

Vagrantfile:
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|
  config.vm.box = "gce"

  config.vm.provider :google do |google, override|
    google.google_project_id = '<CENSORED>'
    google.google_client_email = '<CENSORED>'
    google.google_json_key_location = '<CENSORED>'
    override.ssh.username = 'epall'
    override.ssh.private_key_path = '~/.ssh/id_rsa'
  end
end

TO/ @epall
Hi Eric,
Thanks for reporting this!
TL;DR: This is a regression introduced by https://github.com/mitchellh/vagrant-google/commit/621d95491ef922efe949bbbdeae11092ee14b11d, can be worked around by using:
override.nfs.functional = false

However, I cannot currently reproduce this using your Vagrantfile on the following environment:
OSX 10.10.4
Vagrant 1.7.4
vagrant-google 0.2.0
Virtually identical Vagrantfile:
Vagrant.configure(2) do |config|
  config.vm.box = "gce"

  config.vm.provider :google do |google, override|
    google.google_project_id = ''
    google.google_client_email = ''
    google.google_json_key_location = ''
    override.ssh.username = 'temikus'
    override.ssh.private_key_path = '~/.ssh/id_rsa'
  end
end

Everything's working as it should:
λ vagrant up                                                        (1)
Bringing machine 'default' up with 'google' provider...
==> default: Launching an instance with the following settings...
==> default:  -- Name:            i-2015072011-31e57741
==> default:  -- Type:            n1-standard-1
==> default:  -- Disk type:       pd-standard
==> default:  -- Disk size:       10 GB
==> default:  -- Disk name:
==> default:  -- Image:           debian-7-wheezy-v20140619
==> default:  -- Zone:            us-central1-b
==> default:  -- Network:         default
==> default:  -- Metadata:        '{}'
==> default:  -- Tags:            '[]'
==> default:  -- IP Forward:
==> default:  -- External IP:
==> default:  -- Preemptible:     false
==> default:  -- Auto Restart:    true
==> default:  -- On Maintenance:  MIGRATE
==> default:  -- Autodelete Disk: true
==> default:  -- Scopes:
==> default: Waiting for instance to become "ready"...
==> default: Machine is booted and ready for use!
==> default: Waiting for SSH to become available...
==> default: Machine is ready for SSH access!
==> default: Rsyncing folder: /Users/temikus/Code/vagrant-dev/lab-vagrant-prerelease/ => /vagrant
2.1.6 ~/Code/vagrant-dev/lab-vagrant-prerelease [11:28:28]∞
temikus λ vagrant ssh
temikus@i-2015072011-31e57741:~$ exit
logout
Shared connection to <IP_ADDRESS> closed.
2.1.6 ~/Code/vagrant-dev/lab-vagrant-prerelease [11:28:51]∞
temikus λ vagrant provision
==> default: Rsyncing folder: /Users/temikus/Code/vagrant-dev/lab-vagrant-prerelease/ => /vagrant

Are there any differences from this in your config? Since you did mention that the machine fails during provisioning, I presume you do have a provisioner specified. Can you share the provisioner config or at least the type?
Thanks!
Cheers,
A.

Hmm. Works fine for me on my work laptop, so I'll have to get back to you in a few days when I get some time to debug on my home laptop.
I haven't configured any provisioner, but I'm expecting it to rsync /vagrant with the default configuration, or at least exit with status 0.
I use gpg-agent as my SSH agent, and it's been acting up since I upgraded to Yosemite. Could that be connected to this issue?

@epall
I'm not sure why this is happening on certain machines and not happening on others exactly, but I found the reason why this happens.
The new SyncedFolders action detects that nfs is available on the machine, but nfs_machine_ip and nfs_host_ip env variables required for it are not set.
This is a problem for all remote-instance based providers using this action:
vagrant-vcenter: https://github.com/gosddc/vagrant-vcenter/issues/5
vagrant-rackspace: https://github.com/mitchellh/vagrant-rackspace/issues/113
vagrant-aws: https://github.com/mitchellh/vagrant-aws/issues/357https://github.com/mitchellh/vagrant-aws
There was an upstream bug about it, where mitchell recommended to export those variables correctly:
https://github.com/mitchellh/vagrant/issues/4192
However, the problem is that even with variables exported, this will fail, since default firewall rules will not allow it. I can hack around and set each synced folder type to rsync, but this seems like a very inelegant solution. I'll try to figure this out this week. If not - I will roll back to old behaviour while I get an idea of how to carefully implement it.

Ah, that makes sense. Would it be possible to actually support NFS shared folders by using a reverse SSH tunnel (ssh -R 12049:localhost:2049 ...) and forcing NFS to use TCP?

@epall
AFAIK Vagrant uses NFSv3 by default and v3 doesn't have predictable port forwarding. NFSv4 is configurable, but not all guests will support it, so it'll be tricky. Not mentioning the NFS-over-wide-Internet weirdness.
But I'm open to suggestions. What do you think? Would there be any benefit in NFS support for your use-cases?

Ough. I guess there's still the possibility of tunneling, but now you're talking about superuser access to screw around with network interfaces both locally and remotely. Seems brittle and error-prone, though maybe not that much worse than NFS in the first place.
The rsync-powered synced folders is plenty for my immediate use-case, because I'm just using vagrant to test out a puppet config before pushing it to a production box.
For other use cases, being able to edit files locally and run them remotely on a vagrant box in GCE (without a 20+-second vagrant provision) would give me a best-in-class development experience leveraging powerful remote resources. I'm specifically targeting cross-compilation of OpenWRT, which is a CPU-, RAM-, and disk-intense process that my little Macbook Pro bogs down on.

@epall Ah, for syncing files remotely without provisioning, there are now vagrant rsync and vagrant rsync-auto commands, second will actually poll fs events and fire off syncing when files are changed.
Support for these is one of the reasons I implemented SyncedFolders action that caused this mess in the first place :-P

oh, snap! That's fantastic.

This has been temporarily reverted by #96 and 0.2.1 has been pushed to public.
A possible fix is ready (rewrites folder configs on up to set type to rsync), but needs more testing to make sure it doesn't break multi-provisioner and multi-provider setups.
ETA - 2-3 weeks.

Submitted a bug upstream, will see what vagrant folks reply.

@epall This should be fixed, new release that uses built-in rsync is now available.

I'm closing this issue since this looks resolved.
However, if you still have any questions - no worries at all - just reopen and I'll help you right out!


Option /network:auto breaks /bpp:24

I need to use /bpp:24 to get FreeRDP to work with my xrdp server on linux.  When I also set /network:auto the bpp value of 24 is set to 32.  This causes problems with my connection to my xrdp server.
It looks like this is caused by code in FreeRDP/client/common/cmdline.c lines 1156/1157 which then reset the bpp value at line 3366.
I can't follow the logic of the code in this file so I decided to report it rather than submit a pull request.
I am using FreeRDP version 2.2.0 (c72055d74) on a Raspery Pi 4.

Not a bug, this is required for network autodetection. (enables bandwidth measurement and setting of connection mode automatically, so do not rely on manual settings here)


Custom Tabs instead of webview

I see you still use webview sometimes.
Why not use Chrome/ium, respectively, Firefox Custom Tabs (the two browsers, I know, which support that feature) instead of WebViews?

@CDRussell Webviews will soon be deprecated for use with Facebook login SDK, see, and only Custom Tabs will be usable. Has any kind of Custom Tabs support been added since this issue was initiated?


Support plugin parameters in the GEOPM configuation file.

Add some mechanism to pass parameters to decider plugins based on the GEOPM configuration file.  Could be as simple as an entry in the GEOPM configuration json file that points to a file path that configures the parameters for a plugin.  This will enable the authority that generates the configuration file to control the behavior of the plugins.

Agent's are now JSON policy file driven.


Workaround for newer networkx

topological_sort(reverse=True) is removed

Thanks!  I think this will let us unpin networkx.


[Gamemode] Hot Potato

Hot Potato
Just a very generic gamemode but spicier thanks to Titanfall's unique movement.

One player gets randomly chosen to have the "Hot Potato" after 10 seconds since match start.
You must pass the "Hot Potato" to another player by meleeing them before the countdown ends.
When countdown ends, anyone holding the "Hot Potato" explodes.
Last man standing wins.

TODO

[x] add music
[x] figure out a way to sonar other players only for the marked without having "SONAR DETECTED" (I just gave everybody sonar instead.)

Should be ready to test.

It's been a while since we last added a gamemode to Northstar and this looks different enough that it's not just a reskin of an existing mode.

HotPotato v1.0.0 has been added to the list of verified mods via https://github.com/R2Northstar/VerifiedMods/pull/24 \o/
As such closing this PR as completed via VerifiedMods instead ^^


[minor] Declaration request in status expired #2298

Coverage decreased (-1.3%) to 90.245% when pulling 953a37707ddb169032d32955953294497afcebba on declaration_request_in_status_expired_#2298 into 5add2965d6e14689bd5470547f21aaf21f6fc129 on master.

@AlexKovalevych please roll back this PR


cloud-init.iso - Error: while retrieving remote ISO

System Information
Linux distribution
Archlinux
Terraform version
Terraform v1.2.8

Provider and libvirt versions
dmacvicar/libvirt/0.6.14

git describe --always --abbrev=40 --dirty

8e162ae9b6f09a5e7c3b88413c498f317e6cc214

Checklist

[ ] Is your issue/contribution related with enabling some setting/option exposed by libvirt that the plugin does not yet support, or requires changing/extending the provider terraform schema?

[ ] Make sure you explain why this option is important to you, why it should be important to everyone. Describe your use-case with detail and provide examples where possible.
[ ] If it is a very special case, consider using the XSLT support in the provider to tweak the definition instead of opening an issue
[ ] Maintainers do not have expertise in every libvirt setting, so please, describe the feature and how it is used. Link to the appropriate documentation

[x] Is it a bug or something that does not work as expected? Please make sure you fill the version information below:

Description of Issue/Question
Setup
resource "libvirt_cloudinit_disk" "cloud-init" {
  for_each = local.VMs
    depends_on = [data.template_file.user_data]

    name      = "${random_id.id[each.key].id}_cloud-init.iso"
    user_data = data.template_file.user_data[each.key].rendered
}

resource "libvirt_domain" "domain-ubuntu" {
  for_each = local.VMs
    depends_on = [libvirt_cloudinit_disk.cloud-init]

    name = each.value.hostname

    memory = each.value.vmem
    vcpu   = each.value.vcpu

    cloudinit = libvirt_cloudinit_disk.cloud-init[each.key].id

    network_interface {
      network_name   = "default"
      wait_for_lease = true
    }

    console {
      target_type = "serial"
      type        = "pty"
      target_port = "0"
    }
    console {
      target_type = "virtio"
      type        = "pty"
      target_port = "1"
    }

    disk {
      volume_id = libvirt_volume.ubuntu-base[each.key].id
    }

}

So here is the issue,
from what I see (tf debug) is that cloud-init.iso is being created under a temp directory before "uploaded" to the libvirt image directory.
/usr/bin/mkisofs -output /tmp/cloudinit2562860977/XOxgrQ_cloud-init.iso -volid cidata -joliet -rock /tmp/cloudinit2562860977/user-data /tmp/cloudinit2562860977/meta-data /tmp/cloudinit2562860977/network-config

that's perfectly okay.
The issue I am facing is when libvirt_domain needs the cloudinit id. We are getting the cloud-init id in the creation time, before the ISO being uploaded into the final location.
and so I am getting messages like:
│ Error: error while retrieving remote ISO: error retrieving info for volume: Storage volume not found: no storage vol with matching name '_jX2xw_cloud-init.iso'
│
│   with libvirt_cloudinit_disk.cloud-init["k8scpnode"],
│   on Cloudinit.tf line 23, in resource "libvirt_cloudinit_disk" "cloud-init":
│   23: resource "libvirt_cloudinit_disk" "cloud-init" {
│

As when the libvirt_domain starts to create the VM, the ISO is not yet in the uploaded directory!
Steps to Reproduce Issue
terraform apply

The weird thing is that, this bug is truly  random  that depends completely on many things, like cpu/mem/disk usage at the moment of terraform apply. Most of the times will create a single VM  without an issue. When you are working building a a lab with many VMs then this issue becomes a really annoying bug.

Additional information:
A workaround, I was thinking, would be to return the cloud-init.iso id after a successful upload to libvirt  and not  in CreateIso but when UploadIso
https://github.com/dmacvicar/terraform-provider-libvirt/blob/main/libvirt/cloudinit_def.go#L36
https://github.com/dmacvicar/terraform-provider-libvirt/blob/68c9bb05fd229efd70db0fe8cd0c1faef9c6e64f/libvirt/cloudinit_def.go#L110
PS 1.  I am really sorry - have no idea about golang.
PS 2. I hope what I wrote above makes some sense

fwiw it might be related to recent changes in libvirt that this tf provider is not catching up with - I reverted to libvirt 8.0.0 and this error is gone somehow.


⚠ GitLab Server has degraded performance

In 14276cb, GitLab Server (https://gitlab01.its-telekom.eu) experienced degraded performance:

HTTP code: 200
Response time: 14338 ms

Resolved: GitLab Server performance has improved in fc159ab.


How to rebuild the models ?

I can't find any explaination in the doc about rebuilding the models (typically from tflite to OpenVINO optimized models).
Can you provide the procedure to convert an existing model ?

Hi @xurei,
We used this project to convert models from tflite to tensorflow, and then from tensorflow to onnx: https://github.com/PINTO0309/tflite2tensorflow (I would recommend using the docker image)
And then we used OpenVINO's model optimizer tool to convert the .onnx models to OpenVINO.
For example, these are the commands that we used for Face Landmarks with attention:
#convert tflite to tensorflow (.pb):
tflite2tensorflow \
--model_path face_landmark_with_attention.tflite \
--flatc_path flatc \
--schema_path schema/schema.fbs \
--output_pb

#convert tensorflow to onnx:
 tflite2tensorflow \
--model_path face_landmark_with_attention.tflite \
--flatc_path flatc \
--schema_path schema/schema.fbs \
--output_no_quant_float32_tflite \
--output_dynamic_range_quant_tflite \
--output_weight_quant_tflite \
--output_float16_quant_tflite \
--output_integer_quant_tflite \
--output_integer_quant_typ 'uint8' \
--string_formulas_for_normalization 'data / 255.0' \
--output_tfjs \
--output_onnx \
--onnx_opset 11

# finally, convert onnx to IR
# From the activated openvino_env you previously set up: #
# Use mo to convert from tensorflow to OpenVINO IR -- normalize [0,255] to [0,1]:
mo --framework onnx  --input_model saved_model/model_float32.onnx --data_type FP32 --output_dir ./ov_out/FP32 --model_name face_landmark_with_attention_192x192 --reverse_input_channels --scale 255.0
mo --framework onnx  --input_model saved_model/model_float32.onnx --data_type FP16 --output_dir ./ov_out/FP16 --model_name face_landmark_with_attention_192x192 --reverse_input_channels --scale 255.0

I should also note that all of this was done before OpenVINO supported tflite models directly, which it now does. You shouldn't actually need to convert .tflite models anymore... instead, you can pass then directly to OpenVINO's load_model API.

I'll close this as completed for now, feel free to re-open if you have more questions. Thanks!

Sorry to bother you again...
I did find the face_landmark_with_attention model on https://github.com/PINTO0309/PINTO_model_zoo but couldn't find face_detection models. Any idea where I can find them ?
In any case, thanks for you help so far !


Update WeMod.WeMod to 7.0.19

Microsoft Reviewers: Open in CodeFlow

cc @KevinLaMS: It's installing fine here on my VM:

/azp run

strange. if i go to the web site, i can download from here:
www.wemod.com/download/direct

The stub installer from https://www.wemod.com/download/direct downloads https://storage-cdn.wemod.com/app/releases/stable/WeMod-7.0.19.exe when clicking on the "WeMod-Setup.exe" file.


Fascinating - Can I run this locally with Vicuna? and any vector index?

Thanks Bhaskar - can the above be done? Happy to chat more

So I managed to run it locally but it still uses OPENAI... How can I use a local Vicuna model so that doesnt need OpenAI? Any help would be appreciated. Finally, I would like to use it over all my notes

That is great !
I think it can be run locally by Vicuna as well. I would find some time to add this feature very soon.

I would love more contributors to take up these interesting requests.

One more suggestion would be if this could be run on obsidian markdown notes! Either if I can read all the md files from within a folder or as a plug-in for obsidian. I think your implementation gives very sensible answers

yes as the code is available under a free license, you can go ahead and add support for open source model without the needs of any credits.

If only, I knew how to code. Mostly a code-Lego builder

oh oka no problem. I will create some support for Vicuna and other open sources as I get some bandwidth.

Interesting thought, will have to try it when I get time. I tried GPT4All and the performance wasn't great. Perhaps, it might need more prompt engineering. There is a huge demand for open-source models to minimize cost

Look forward to it


add management command for run bot in polling mode

This usefully for debug bot on local dev environment.
like: https://github.com/peleccom/django-telegrambot/commit/51b733155fbcc157b3532d52ae1536c83acca611

good idea!

I'm working on a new version with a management command to run a polling mode update, but you must set mode in settings and then run the command.
I think that use ngrok is a better and easy way to deploy a bot in local dev enviroment.

Version 1.0.0 includes this feature, and is now available.
Be careful, because it's a major release, I've also changed bot's configuration by adding some new parameters. Check README


Create ECJ based version of AnnotationProcessingPlugin

The Bazel Java Compiler has AnnotationProcessingPlugin.
/** A plugin that records information about sources generated during annotation processing. */
public class AnnotationProcessingPlugin extends BlazeJavaCompilerPlugin {..}

We need to understand why this is needed and if we need to provide an equivalent version for ECJ.

Fixed with #15


Gutter utility overrides margins in all directions

Describe the bug
The .gutter-x-* and .gutter-y-* utility class names imply that they'll only affect either vertical or horizontal spacing between elements. Unfortunately, their output is set up to apply margin on all sides, setting a value of 0 on the sides it's not directly setting:
.gutter-y-1 > * + * {
  --gutter-top: 1;
  --gutter-bottom: 0;
  margin: calc(0.0625rem * var(--gutter-top)) 0 calc(0.0625rem * var(--gutter-bottom)) 0;
}

This means that any direct children of a gutter with additional margin utilities for the other sides will not take effect.
To Reproduce
Steps to reproduce the behavior:

Apply .gutter-y-16 to a parent element with 2+ direct children
Apply .mx-16 to one of the direct children
See that the child element's .mx-16 margin is overridden by the overly broad margin declaration on gutter

Expected behavior
I would expect that .gutter-y-* would output only margin-top and margin-bottom. And likewise that x would only output margin-left and margin-right. Something more like this:
.gutter-y-1 > * + * {
  --gutter-top: 1;
  --gutter-bottom: 0;
  margin-top: calc(0.0625rem * var(--gutter-top));
  margin-bottom: calc(0.0625rem * var(--gutter-bottom));
}

Yeah, this one was specifically designed this way because of how the utility generator works. If we wanted to utilize the automatic sizing map range selection whilst still implementing the gutter-reverse functionality we may have to come up with a different solution to how this utility is generated!
I'll keep this in mind!

Hey @conormuirhead this issue is now addressed in version 1.4.0 alongside other changes! 👍

Awesome, thanks!


Begin investigation of port to VTK-9

We've already had a discussion about the new ospray modules being put into 9.1 version of VTK.
We should begin looking into the port, starting with 9.0.0RC or a clone of master, and keep track of any gotchas or problems encountered.

I downloaded vtk-master and attempted a build.
They way modules are requested has changed significantly.
Our current practice: turn off all module groups, then enable only the modules we know we want. Any dependent modules are then enabled automagically by vtk.
New system:

The new Module flags have new names eg:  VTK_MODULE_ENABLE_VTK_RenderingOpenGL2.
They are no longer boolean flags(on/off, true/false), they are 5-state:
I found this email describing the states.

        * `YES`: Must be built
        * `NO`: Must not be built (turns off modules requiring it;
          errors if required by a `YES` module)
        * `WANT`: Build if possible
        * `DONT_WANT`: Build only if necessary
        * `DEFAULT`: Use group (for modules) and `VTK_BUILD_ALL_MODULES`
          instead

DEFAULT is the default state. Enabling a module with 'YES' does NOT enable any module it depends upon.  (with all groups turned off as we currently do)
I tried changing all 'DEFAULT' module settings to 'DONT_WANT', then to 'WANT' and again the dependent modules were not enabled.

I've started a dialog on VTK's discourse to figure out the correct way to specify modules.

To use the new module system:

use DONT_WANT to turn off groups
use YES to enable desired modules
set VTK_BUILD_TESTING to OFF

Successful compilation of VTK (without vtkh/vtkm/ospray for the time being). Working through VisIt compile errors now. Mostly 'const' additions to function arguments so far, and handling the big changes to vtkCellArray.

Compilation errors all fixed. Now dealing with OSMesa issues for our LC machines.
With VTK-8:
Compiled VTK with VTK_USE_X (for onscreen rendering) and OPENGL_HAS_OSMESA (for offscreen).
Technically, those both can't be used, but VTK didn't prevent setting them during the build.
OPENGL_HAS_OSMESA allowed compilation of vtkOSOpenGLRenderWindow.
VTK_USE_X prevented use of vtkOSOpenGLRenderWindow as a vtkRenderWindow override.
We overcame this limitation in VisIt by specifically using vtkOSOpenGLRenderWindow as an override for vtkXOpenGLRenderWindow when we needed non-x offscreen rendering. (Using a vtkObjectFactory).
With VTK 9:
Prevents setting both VTK_USE_X and VTK_OPENGL_HAS_OSMESA in the same build.
VTK_USE_X sets VTK_CAN_DO_ONSCREEN to true, which causes this error if VTK_OPENGL_HAS_OSMESA is also true:
if (VTK_OPENGL_HAS_OSMESA AND VTK_CAN_DO_ONSCREEN)
  message(FATAL_ERROR
    "The `VTK_OPENGL_HAS_OSMESA` is ignored if any of the following is true: "
    "the target platform is Windows, `VTK_USE_COCOA` is `ON`, or `VTK_USE_X` "
    "is `ON`. OSMesa does not support on-screen rendering and VTK's OpenGL "
    "selection is at build time, so the current build configuration is not "
    "satisfiable.")
endif ()

I tried patching VTK to remove this restriction, so that we can use our current ObjectFactory setup for overriding the on-screen render window when needed.
VTK and VisIt both compile, but due to failures with the test suite when run on pascal (which uses OSMesa). I'm not certain this setup is good. When run on a system that doesn't need OSMesa, the same tests don't fail.

Test suite issues on pascal:

Window saves that involve a resize fail:
databases/bov.py            cases: x_02-x_04, (where x is 0...8)
databases/ffp.py            cases: all
databases/netcdf.py         cases 3_09-3_10
databases/unv.py            cases _06
hybrid/cinema-a.py          cases: all
hybrid/movie.py.py          cases: all
plots/label.py.py           cases: all
rendering/annotation.py     cases: annot2d_27
rendering/axistitles.py     cases: all
rendering/offscreensave.py  cases: 02-07, 09-11
session/legendproperties.py cases: all

Volume rendering with default renderer fail
databases/chgcar.py cases: _05-_08
databases/tecplot.py cases: _17
meshtype/globe.py  cases: _04
operators/reflect.py  cases:  ops_relf14
plots/volumePlot.py all cases using default renderer
rendering/legend.py cases: legends_07
rendering/volume.py cases: 01, 03

Misc issues
queries/pick.py  Most diffs are zones/nodes being listed in a different order
PickBoundary.txt, has failure with sid97.silo, may be the view changed slightly so some picks no longer intersect
simulation/batch.py cases 6_00-6_04, may be a window resize issue
simulation/updateplots_session.py cases all, changes viewport, so may be a window resize issue

Tests which also fail on machine that doesn't use OSMesa:
rendering/pixeldata.py cases: 0_04-0_11   these tests use images saved using the pixelData flag of SaveWindowAttributes.  The new images are very different than previous.
databases/Xmdv.py  cases: _04, _05   point out a 'blurriness' that is occuring with 2D point rendering.
hybrid/clonefirstref.py cases: _02.   Looks like the window was resized after initialization, and the resize didn't cause a  re-initialization or application of the background color There are not plots for this test.
tests_03 and 05 suffer from same background problem, but they have plots.
hybrid/timelock.py cases _19  similar problem as clonefirstref.
plugins/XXVsInstall all versions fail.

Just noticed that test images generated on Windows are much greater in size than baseline images, many almost double, some triple in size.  tube_01 increased 123% ( the edges of the tube look much smoother).
amr_stitch_01 increased 276% (its a contour plot that displays lines), and elevate_10 increased 368% (its a mesh plot, lines are smoother, but to me it looks a bit blurry).
Not really sure why the images have increased in size, unless it has to due with the (automatic?) polygonal/line smoothing/anti-aliasing occurring.
I'll report back if I discover anything.

I am also seeing a lot of instances of this during test-suite run (on Windows):
vtkRectilinearGridReader:135   WARN| vtkRectilinearGridReader (0000020E29226C70): Could not read dimensions or extents from the file.

Completed (VTK version 9.1.0):
#17930
#17934
#17966
#17967
#17972
#17973
#17975
#17959
Then a port to VTK 9.2.6 with
#18924


Cores issue on Login & Password Reset

https://cl.ly/01343Y2d1K0z

This is a problem from localhost not production


std.algorithm: {min,max}Element for a single range

resubmisson of #4019 - as extremum turned out not to be very useful, I changed it to accept directly the mapping function. This is now more efficient as the mapping function is called only once :)
@andralex has already approved the name:

Overall I think this is rather foreign compared to prevalent Phobos style. I think extremum,minElement, and maxElement with the appropriate predicates are the way to go.

Pinging @JackStouffer @burner @ntrel @klickverbot @JackStouffer

This also needs tests using the dummy ranges, as you have no tests currently with input ranges.

Also, I forgot to mention that this should also have unit tests with @nogc @safe nothrow pure.

This also needs tests using the dummy ranges, as you have no tests currently with input ranges.
Also, I forgot to mention that this should also have unit tests with @nogc @safe nothrow pure.

Thanks a lot for your review @JackStouffer!
All comments besides mapType were addressed :)

LGTM besides minor comments.

LGTM besides minor comments.

Thanks a lot for reviewing this @ntrel - I just addressed your comments.
The only open question so far is whether the specialization for a RandomAccessRange is useful in terms of speed.

I don't think having an assert doing the emptyness-checking is robust enough. An enforce or explicit throw should be used instead. Or should we rely on the .front-call in these cases?
Further, I would like an optional second parameter, seed, (like is used in std.algorithm.iteration.reduce) that elides this throw-logic for flexibility, "potentially" making things nothrow.

Is having an assert do the emptyness-checking robust enough? Is this the Phobos-way?

AFAIK asserting with ranges is the style.

AFAIK asserting with ranges is the style.

We need to fix std.numeric thought

@9il What do you mean by: fixing std.numeric?

@9il What do you mean by: fixing std.numeric?

It uses enforce instead of assert. It should be changes to asserts

Further, I would like an optional second parameter, seed,

@nordlow I added support for a seed element - could you please take a look? :)
Any other objections?

@wilzbach , looks good.
Perhaps this implementation should , as reduce does in std.algorithm.iteration, allow seed type to be different from ElementType!R. The CT-logic for handling this is quite complicated. Perhaps parts of it could be reused? Thanks.

Note that seed can be mimicked with r.chain(only(seed)).maxElement. Or with a wrapper it could be r.orElse(seed).maxElement.

Perhaps parts of it could be reused but in a clearer way?

@nordlow done with CommonType + added a test for it.
@ntrel I am not convinced for neither side (pro seed, pro chain) atm - the advantage of seed is clear, but as long as we just use assert, it's still nothrow.
If we go the seed route, I guess there are a couple of more algorithms in Phobos that could use such a seed.

It uses enforce instead of assert. It should be changes to asserts

+1

Looks good!
Now to play devils advocate: could we supply minmaxElement aswell:
C++ has it:
http://en.cppreference.com/w/cpp/algorithm/minmax_element
:)

LGTM sans comments

LGTM sans comments

Addressed.

Looks good! Now to play devils advocate: could we supply minmaxElement aswell? C++ has it:

Sure, but I submitted this as a separate PR (see #4248). The method is different anyways and {min,max}Element already have "name-approval".

Why not to use map!(...).cache.reduce!min instead?

Why not to use map!(...).cache.reduce!min instead?

Apart from the fact that cache doesn't provide random access which I think is faster, the main is that you would only get the mapping back, not the original element.

Apart from the fact that cache doesn't provide random access which I think is faster, the main is that you would only get the mapping back, not the original element.

Why random access is needed for cumulative operation?
Random access is not faster. The good example is Slice and byElement. Or you have a good example where it faster?

the main is that you would only get the mapping back, not the original element

Is this is perfomance problem?

Why random access is needed for cumulative operation? Random access is not faster

This has been discussed here before and to be honest I don't know, but most other algos in this module use it too (e.g. commonPrefix, countUntil, find, findSplit, {min,max}Count, {min,max}Pos, startsWith). So I guess if we find that RandomAccess is not faster, we should remove the code for the other algos too.
@9il have you read this?

the main [reason] is that you would only get the mapping back, not the original element.

see e.g.
assert([2, 1, 4, 3].enumerate.maxElement!"a.value" == tuple(2, 4));

This has been discussed here before and to be honest I don't know, but most other algos in this module use it too (e.g. commonPrefix, countUntil, find, findSplit, {min,max}Count, {min,max}Pos, startsWith). So I guess if we find that RandomAccess is not faster, we should remove the code for the other algos too.

It is not faster and we can remove such optimizations. Furthermore they are significantly slowdown ndslice.

the main [reason] is that you would only get the mapping back, not the original element.
see e.g.
assert([2, 1, 4, 3].enumerate.maxElement!"a.value" == tuple(2, 4));

I don't understand. Could you please explain why access to preserved value is bad?

I don't understand. Could you please explain why access to preserved value is bad?

Oh no - you want to preserve the original element, if you just use map and reduce you will loose the tuple and thus the index:
assert([2, 1, 4, 3].enumerate.maxElement!"a.value" == tuple(2, 4));
assert([2, 1, 4, 3].map!"a.value".cache.reduce!max == 4);

Oh, OK. understand now)

thx)

Wait a minute please

assert([2, 1, 4, 3].enumerate.reduce!(a.value < b.value ? a : b) == tuple(2, 4));

What wrong with this code?

If we are so lazy to write lambdas then just allow min/max to accept map function instead ;-)

What wrong with this code?

It evaluates the map function twice ;-)

If we are so lazy to write lambdas then just allow min/max to accept map function instead ;-)

Yes I would love to see min working for ranges!

As you mentioned a lot of languages (Java, C#, Python, more at Rosetta) allow min to be used with one argument and as still being a newcomer to D I feel that many people like me will just expect [1,2,3].min to work.

Another option is add combined mapReduce to the iteration module.

It evaluates the map function twice ;-)

So we need combined mapReduce

But please do not rush to write it right now. We need to think how this can be generalized for multidimensional Slice

btw just a quick update - @9il and I tested for a couple of array types with random access & -release -O3 -boundscheck=off.
-> the variant with RandomAccess is faster (source) (even for ndslice).

@9il is this good to go?

@DmitryOlshansky @9il what is your opinion on renaming this to min ? The other min expects two or more parameters and @GassaFM's comment about tuple expansion with a single array in the tuple is seldom and then still understandable.

OK, we can move forward. Looks like ndslice will have its own functional

@wilzbach min may cause bad behavior with templated code. I prefer current name

Same here - minElement is established name, and single ard min is problematic in generic code

Auto-merge toggled on

Hmm... how can I use this new functions with http://dlang.org/phobos/std_math.html#.cmp ?

how can I use this new functions with http://dlang.org/phobos/std_math.html#.cmp ?

For reference: see #4257 where I propose to make extremum public ;-)

Thanks!

Why are minElement/maxElement not in the documentation at https://dlang.org/phobos/std_algorithm_searching.html?

Why are minElement/maxElement not in the documentation at https://dlang.org/phobos/std_algorithm_searching.html?

They are part of the 2.072 release (it's quite big due to the long accumulation period - April to September). Hopefully it can be released soon, but with all the regressions popping up it doesn't look good :/

Thanks for the info.


ERROR: An extractor error has occurred

It says report it so here you go.
$  youtube-dl  --verbose "https://odysee.com/@TheQuartering:1/bill-released-on-technicality!-a-free:4"
youtube-dl  --verbose "https://odysee.com/@TheQuartering:1/bill-released-on-technicalityaproposefree:4"
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'--verbose', u'https://odysee.com/@TheQuartering:1/bill-released-on-technicalityaproposefree:4']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2021.06.06
[debug] Python version 2.7.13 (CPython) - Linux-4.9.0-15-amd64-x86_64-with-debian-9.13
[debug] exe versions: ffmpeg N-92964-g9217ded, ffprobe N-92964-g9217ded
[debug] Proxy map: {}
[lbry] @TheQuartering#1/bill-released-on-technicalityaproposefree#4: Downloading stream JSON metadata
ERROR: An extractor error has occurred. (caused by KeyError(u'value',)); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
File "/home/pfred1/bin/youtube-dl/youtube_dl/extractor/common.py", line 534, in extract
ie_result = self._real_extract(url)
File "/home/pfred1/bin/youtube-dl/youtube_dl/extractor/lbry.py", line 178, in _real_extract
result_value = result['value']
KeyError: u'value'
Traceback (most recent call last):
File "/home/pfred1/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 815, in wrapper
return func(self, *args, **kwargs)
File "/home/pfred1/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 836, in __extract_info
ie_result = ie.extract(url)
File "/home/pfred1/bin/youtube-dl/youtube_dl/extractor/common.py", line 547, in extract
raise ExtractorError('An extractor error has occurred.', cause=e)
ExtractorError: An extractor error has occurred. (caused by KeyError(u'value',)); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

First url you've shown contains !, shell history expansion.
Second url you've passed to youtube-dl doesn't contain that character. Maybe this url is invalid.
Use single quotes to not ! interpreted by shell.

Doh! I got screwed by a special character! Thanks my bad.


16995 - Change Store Actions Types

Issue #: /bcgov/entity#16995
Description of changes:

Updated all instances of "ActionBindingIF" to the specific type used in the Store

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the bcrs-entities-create-ui license (Apache 2.0).

@severinbeauvais Can you add some reviewers to this PR? Thanks


add required params to gql server

Description
Use server side form-field validation to require both fields. Makes this api less confusing to consumers & decreases potential for nil reference errors.
Targets #1475

@coderabbitai revi

@coderabbitai review

@coderabbitai review

@coderabbitai review
well that's annoying


Documentation on how to use gobu in Windows

maybe we should include a testing of all functions for windows too. In my PR regarding issue #2 i only tested the shell spawn and running commands in it part.
It should be tested if exec ect. are running proper too


nym: 2024.12-aero -> 2024.13-magura-patched

Things done

Built on platform(s)

[x] x86_64-linux
[x] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
25.05 Release Notes (or backporting 24.11 and 25.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

@ofborg build nym

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 358978

x86_64-linux

:white_check_mark: 1 package built:

nym

aarch64-linux

:white_check_mark: 1 package built:

nym

x86_64-darwin

:white_check_mark: 1 package built:

nym

aarch64-darwin

:white_check_mark: 1 package built:

nym

@GaetanLepage Done.


No camera

I am not getting any camera feed either when idle or printing. I am using the multicam plugin, not sure if that might be the issue.

It's possible that OA is not compatible with MultiCam plugin. Will investigate it.

I have a similar issue. My OA webcam feed was working and now it's not. I run my webcam on Yawcam connected to a pc. The feed is still working normally in Octoprint, I can access it fine with a browser and I also have the feed set up in Blue Iris and it works okay there too but since yesterday I no longer see it in OA.

@kidwon13 Are you also using MultiCam plugin?

No I am not. It also started working when I started printing. It just wasn't displaying while idle.

The cam feed has longer lag when printer is idle to save bandwidth. But if you wait, say more than 30 seconds and the cam feed is still not coming up, then I'm pretty sure it indicates some bug in the code. Will be happy to dig deeper if that's the case.
Can you send me the octoprint.log file?

octoprint.log

Hi @kidwon13 It looks like the wifi network your OctoPi is on has sporadic connectivity issues. For instance, OctoPrint Anywhere couldn't reach to internet during the periods of 2018-10-02 21:34 - 2018-10-02 21:38 (GMT), 2018-10-03 05:30 - 2018-10-03 05:34. There were also times when the Yawcam couldn't be reached.
Next time when you lose the cam feed, can you SSH to your OctoPi to check if it has connectivity to the internet and yamcam server?

I seem to still be losing webcam access when the printer is idle. I did ssh into my raspberry pi and I can ping an internet ip address no problem (I used <IP_ADDRESS> for my test). Even while I was pinging I did not have the webcam feed on getanywhere.io but I do see it both in the web access to yawcam and on the control tab of octoprint.  I think the wi-fi outages you saw were when I was making configuration changes on my router.
Curiously I tried to configure a similar setup for my step-dad and he never sees his camera feed on getanywhere.io. It shows his temperatures and status correctly but no webcam feed. I also pinged out from his raspberry pi and it seems to be working okay but he did have a little more packet loss than I did. About 1% over 3 or 4 minutes.
I'll attach both of our current octoprint.log files.
StepDad_octoprint.log
My_octoprint.log

Thanks a lot @kidwon13  for the detailed info. It sounds like we need a screen sharing session to debug further.
Can you send me email at kenneth dot jiang at gmail dot com to coordinate a time?

@greg-wood I installed MultiCam myself and it still works.
@kidwon13 helped me find a bug in the cam feed code (thank you @kidwon13!). Just fixed it and released 0.8.5 for that.
Can you upgrade to 0.8.5 to see if that solves your problem too. If not, can you post the screenshots of your webcam config and MultiCam config page (I posted the screenshots for my configuration as examples)?

Closing it with the assumption that it's fixed.


[Doc] Laplacian for Deep Dream 2.0

Hi, i will skip the complete description of the issue because it ' s obvious thing. In the original Deep Dream code you managed to do a very complex code of splits and merges, this code tuned for much better the Deep Dream results. I dont see it in the 2.0 version.
Also, iam aware of Lucid project, the "laplace pyramid" present in Lucid does not seems to resemble the old Deep Dream code.
My question, Is there anyone who tryied to implement this sucessfully for tf 2.0 ? at last something that can talk with the notebook of Deep Dream for TF 2.0 ?
Thank you.

@Uiuran, Here is the link for Tensorflow DeepDream tutorial which uses Tf 2.x. Thanks

@gadagashwini exactly this that iam using to do my version, whoever the laplacian is not there, and it 's fairly visible the difference, the deep dream from older versions (before 2.x) is far better in generating images.
My question reside in, there is any implementation of that laplacian near from the logic of eager tf.functions for Tensorflow ? i was not able translate that Laplacian code of deep dream to 2.0.
(many error surged, one of them is that recommends an initial_scope, but this didnt works. Plus i tried to put it on eager mode too with tf.functions but it poped up an Error saying that i was trying to access a Tensor that was not directly connected to the graph).
But since the code is too big and ugly, there is no small snippet of code to reproduce that ... or i dont know how to reproduce.

I found a way, or perhaps a way to be tried. I will try it in the eager mode of tf 2.0.
The point, to me, is that even with tf.function that uses AutoGraph to build an optimized comp graph, there is some Neural Network algorithms that are simply too hard to build all the graph first then execute in a session. For example the Laplacian.
Autograph still cant build 2 graphs in the same scope, and then rewire them coherently (that is, bearing in mind that the output to be rewired to the node op has to be the same dimensionality and so on ...).
This makes hard to build a model with Keras, from another in the zoo, and them build a fresh Laplacian graph and rewire ... Although the older Deep Dream is not in eager mode afaik.

" I found a way, or perhaps a way to be tried. I will try it in the eager mode of tf 2.0. "
It worked in eager mode, i only plugged the old code and deleted all tf.functions that builds the comp graph and exec in non eager mode.
But the part:
" Autograph still cant build 2 graphs in the same scope, and then rewire them coherently (that is, bearing in mind that the output to be rewired to the node op has to be the same dimensionality and so on ...) "
Still relevant, but maybe it is a feature rather than docs ?
If you think its not relevant for Autograph to be able to rewire two graphs, then the problem to me is finished and i just close ...

Hi @Uiuran, github is best for reporting bugs. If you're trying to better understand how to use TF2 and migrate TF1 code, then Stack Overflow is a better option. There's a wider community to read and answer questions there. If you think you've found a bug, please provide reproducible code so we can troubleshoot. Thanks!


Spotify Plugin Not Working

Description
Following the instructions given, I've installed the SpotifyPlugin and tried using the Spotify option given in the media player selection. Even though I've selected it, nothing happens and the visualizer still picks up all my audio as it would on first install.
Versions

Rainmeter Version: 4.2.0 r3111
OS Version: Windows 10 home (build 17134)
Skin Version: 2.0.2
Spotify Version: 2.1.5

Duplicate of #191.


Refresh bibliography should remove entries

I played around with Chocolate.bib. I added [3], but removed it later.
When pressing the bibliography-refresh-button, that number needs to go, too.
Maybe, all text markes need to be scanned and all numbers re-adjusted?

Re-calculation: numbering starts with the first appearance in the text. Thus, if I swap two citations, the numbers are swapped, too.

Okay, understood. This is a big one.
Once a citation which is not the last citation is removed from the document, the numbers need to be recalculated and redistributed. Last now it works on "refresh on the basis of highest cited number of a unique entry").
This would also involve updating the citation text.
@Siedlerchr this will be a mammoth task with non ending complexity, owing to what the number is covered by, due difference in style formats (multiplied by 2 as grouped citation behavior/formatting is different from individual for many styles (which can't be traced except if hard-coded). Multiply that by infinity if a user, god forbid, uses multiple citation styles in the same document.

Okay, understood. This is a big one.
Once a citation which is not the last citation is removed from the document, the numbers need to be recalculated and redistributed. Last now it works on "refresh on the basis of highest cited number of a unique entry").
This would also involve updating the citation text.
@Siedlerchr this will be a mammoth task with non ending complexity, owing to what the number is covered by, due difference in style formats (multiplied by 2 as grouped citation behavior/formatting is different from individual for many styles (which can't be traced except if hard-coded). Multiply that by infinity if a user, god forbid, uses multiple citation styles in the same document.

I think, it covers numeric citations only. - I saw that you track the numbers at citation inserting (see org.jabref.logic.openoffice.oocsltext.CSLCitationOOAdapter#updateMultipleCitations).
It is only about updating org.jabref.logic.openoffice.oocsltext.CSLReferenceMarkManager#citationKeyToNumber.

Clear citationKeyToNumber
for each reference mark:
a. num = getCitationNumber(referenceMark.getCitationKey() b. update text withnum`

The only "hard" part is 2.b - but this can be done using regex, since you know the format is [  number ]. And you need to replace number by num.

I think, it covers numeric citations only. - I saw that you track the numbers at citation inserting (see org.jabref.logic.openoffice.oocsltext.CSLCitationOOAdapter#updateMultipleCitations).
It is only about updating org.jabref.logic.openoffice.oocsltext.CSLReferenceMarkManager#citationKeyToNumber.

Clear citationKeyToNumber
for each reference mark:
a. num = getCitationNumber(referenceMark.getCitationKey()b. update text withnum`

The only "hard" part is 2.b - but this can be done using regex, since you know the format is [ number ]. And you need to replace number by num.

Questions:

How would we update the numbers in the entire document, and not just the bibliography section?
Format is [1] for some citations. Some have [1], [2], [1,2], (1),(2), (1,2), [1;2], (1;2) (surprisingly), some even other formatting like superscript{(1,2)}, some superscript{1,2}, some superscript{[1,2]}, superscript{[1],[2]} and many other kinds. Furthermore, things like superscript are "relatively" easy to deal with before the citation is inserted, as we are dealing with raw HTML 1,2 or [1,..] and so on (that is how we assign citation numbers when inserting), but once it enters the document, what to scan for?

I think, it covers numeric citations only. - I saw that you track the numbers at citation inserting (see org.jabref.logic.openoffice.oocsltext.CSLCitationOOAdapter#updateMultipleCitations).
It is only about updating org.jabref.logic.openoffice.oocsltext.CSLReferenceMarkManager#citationKeyToNumber.

Clear citationKeyToNumber
for each reference mark:
a. num = getCitationNumber(referenceMark.getCitationKey()b. update text withnum`

The only "hard" part is 2.b - but this can be done using regex, since you know the format is [ number ]. And you need to replace number by num.

Questions:

How would we update the numbers in the entire document, and not just the bibliography section?
Format is [1] for some citations. Some have [1], [2], [1,2], (1),(2), (1,2), [1;2], (1;2) (surprisingly), some even other formatting like superscript{(1,2)}, some superscript{1,2}, some superscript{[1,2]}, superscript{[1],[2]} and many other kinds. Furthermore, things like superscript are "relatively" easy to deal with before the citation is inserted, as we are dealing with raw HTML 1,2 or [1,..] and so on (that is how we assign citation numbers when inserting), but once it enters the document, what to scan for, and how to update precisely those? There can be other text with these formattings too.

Even if hypothetically somehow we manage to do it for individual citations, grouped citations have a single combined reference mark at the end of the citation text (because we could not selectively wrap them around each entry of the group, as each grouped citation acts as a single citation output. I tried dealing it using regex, and even at the raw stage it failed because of the difference in styles and separators between the numbers). This means even if we had a way to store the location of every citation using their respecive reference marks, we cannot have the exact location for grouped entries.
JStyles had a relatively simpler problem statement when it comes to this, as we define the style and separators ourselves (and not many variations, some even hardcoded).

Ref. https://github.com/JabRef/jabref/blob/main/src/main/resources/resource/openoffice/default_authoryear.jstyle

I think, it covers numeric citations only. - I saw that you track the numbers at citation inserting (see org.jabref.logic.openoffice.oocsltext.CSLCitationOOAdapter#updateMultipleCitations).
It is only about updating org.jabref.logic.openoffice.oocsltext.CSLReferenceMarkManager#citationKeyToNumber.

Clear citationKeyToNumber
for each reference mark:
a. num = getCitationNumber(referenceMark.getCitationKey()b. update text withnum`

The only "hard" part is 2.b - but this can be done using regex, since you know the format is [ number ]. And you need to replace number by num.

Questions:

How would we update the numbers in the entire document, and not just the bibliography section?
Format is [1] for some citations. Some have [1], [2], [1,2], (1),(2), (1,2), [1;2], (1;2) (surprisingly), some even other formatting like superscript{(1,2)}, some superscript{1,2}, some superscript{[1,2]}, superscript{[1],[2]} and many other kinds. Furthermore, things like superscript are "relatively" easy to deal with before the citation is inserted, as we are dealing with raw HTML 1,2 or [1,..] and so on (that is how we assign citation numbers when inserting), but once it enters the document, what to scan for, and how to update precisely those? There can be other text with these formattings too.

Even if hypothetically somehow we manage to do it for individual citations, grouped citations have a single combined reference mark at the end of the citation text (because we could not selectively wrap them around each entry of the group, as each grouped citation acts as a single citation string output. I tried dealing it using regex, and even at the raw stage it failed because of the difference in styles and separators between the numbers). This means even if we had a way to store the location of every citation using their respecive reference marks, we cannot have the exact location for grouped entries. [extended problem: you can turn on ctrl+f8 and even play around/move those combined citation marks!]
JStyles had a relatively simpler problem statement when it comes to this, as we define the style and separators ourselves (and not many variations, some even hardcoded).

Questions:

How would we update the numbers in the entire document, and not just the bibliography section?

We have the JabRef_ text markers marking the areas of the citation, don't we? These text markers mark the start and the end of the citation string. Don't they? - If both assumptions are true, one can iterate through all text marks and work on their content.

Format is [1] for some citation styles. Some have [1], [2], [1,2], (1),(2), (1,2), [1;2], (1;2) (surprisingly), some even other formatting like superscript{(1,2)},

All of them have in common that numbers are used for the citation number and other strings for some citation sugar.
Thus, searching for the first match of \d+ matches the first number, the next search the next number etc.

grouped citations have a single combined reference mark

Does that have all citation keys? If yes: Good; If not: we need to modify the CslRefernceMark class accordingly.
Maybe first implement the refresh for non-grouped only. If that works, one can think about extending it to grouped citations.

We have the JabRef_ text markers marking the areas of the citation, don't we? These text markers mark the start and the end of the citation string. Don't they? - If both assumptions are true, one can iterate through all text marks and work on their content.

Reference markers don't give us the location of text in the document. They are just used to annotate text in an invisible way. What we are looking forward to are "anchors" and "page info" information. Implementing them can be a starting point.

All of them have in common that numbers are used for the citation number and other strings for some citation sugar.
Thus, searching for the first match of \d+ matches the first number, the next search the next number etc.

This is assuming we have used numbers in our document only in citation text. Search will not work on the basis of citation text. If we search on the basis of reference markers, we will be able to update the number in the reference mark but not the text, as they don't give us the location of text.
I will not attempt this as of now, maybe when we have more time. You can ask @Siedlerchr how difficult it was to even trace and manipulate a newline in a "marked" (even anchored) area of the document. Whenever cursors come into play, they take a lot of experimentation which can be done when we have time.
For future reference - me or anybody who wants to try this
We will have to (A)

anchor the reference mark insertion point
re-distribute numbers if a citation is removed from document (has to be done when update is pressed as first step)
get the anchor locations
use \d+ regex to match, early stop at first match.
change the citation number in the text.
update the reference mark

OR (B)

anchor the citations
Handle redistribution of numbers on deletion of a citation
search using regex and https://wiki.documentfoundation.org/Documentation/SDKGuide/Text_Search_and_Replace
if the match is anchored, manipulate the citation text
update the reference mark

To the reader - more things to ponder on: How to update an existing reference marker text (A.6 or B.5)? We can update text, we can read existing reference marks, but how to change them, as they are not a part of the primary text. We need to find a way to remove the old reference mark and insert a new one.

Idea:
If we only have the CID available, but no wrapper around the citation, then maybe the following could work:
We cite the first time: Nothing shall happen:
Any other make/sync bibliography, cite or cite-in-text (in random sequence in the document) should trigger the following:

Create directly behind old citations (v1) a new citation (v2) with correct order of numbering. (Exception: if a citation is deleted, do not create a new citation.)
Copy the reference mark of all old citations (v1) to and attach to new citations (v2).
Delete the old citations (v1) and delete the reference marks of old citations (v1) too. We know that a citation is a citation, because a reference mark is attached to it. We also know that every second citation is the new version of the citation. By rule of elimination, we can infer that the other citations must be of the old version and are those we can delete.

Now, what we should have are numerically correctly ordered citations, but wrong (old) reference marks.

Delete all reference marks.
Re-create all reference marks.

Now, what we should have are correctly orderd citations and new correctly ordered reference marks.
Here the German translation:
Eine Idee:
Wenn wir nur die CID zur Verfügung haben, aber keine Anführungs und Endzeichen, dann könnte vielleicht folgendes funktionieren:
Wir zitieren das erste Mal: Es soll nichts passieren:
Jedes weitere erstellen / synchronisieren eines Literaturverzeichnises, zitieren oder zitieren im Text (in beliebiger Reihenfolge im Dokument) sollte folgendes auslösen:

Direkt hinter den alten Zitaten (v1) werden neue Zitate (v2) mit der korrekten Reihenfolge der Nummerierung erstellt. (Ausnahme: Wenn ein Zitat gelöscht wird, wird kein neues Zitat erstellt).

 Wir wissen, dass ein Zitat ein Zitat ist, weil es mit einer Referenzmarke versehen ist. Wir wissen auch, dass jedes zweite Zitat die neue Version des Zitats ist.

Was wir nun haben sollten, sind numerisch korrekt geordnete Zitate, aber falsche (alte) Referenzmarken.

Es werden alle Verweiszeichen gelöscht.
Alle Verweiszeichen werden neu angelegt.


Use a mountebank for fake tests with lime

Works local but in travis fail.  I post this questions on stackoverflow and google groups but at the moment, I not receive answers.

Tests now use a local tcp mock server.


Java: Add DUMP and RESTORE commands

https://redis.io/docs/latest/commands/dump/
https://redis.io/docs/latest/commands/restore/

Dump and Restore commands are currently not supported (blocked) in Transaction and related tests.


Make any user useable without granting write permission to all users

What would you like to be added:
To enable to specify UID that Piped runs as, we granted write permission to /etc/ssh/ssh_config to all users on https://github.com/pipe-cd/pipe/pull/1880. This is just a workaround. Better seek for another one.
Why is this needed:

Another problem was found so another issue was open up: https://github.com/pipe-cd/pipe/issues/1885
/close


Thor User Profiles Aren't Displaying All Campaign Images

Despite having both the landscape and square crop uploaded, campaign images aren't showing up on user profiles.

It looks like this happens with Language-neutral Campaigns, e.g. #RealPrincess. Will make the campaign English to test it.

Yes, making the campaign English fixed the image.


Add RelativeExpense property to DrawOperations

This property, much like AsyncTendency, is an enum that would help a given GraphicsManager in organizing it across parallel CommandLists, grouping short operations together and assigninglonger ones to less busy CommandLists
Include alongside a compiler symbol to enable/disable

DrawOperations are now completely synchronous


Pager artifacting on Android 4.2.2 and below

Nexus 4 with 4.2.2 and Galaxy Nexus with 4.0.4 are both exhibiting this behavior:

There is no fade in from the side animations like on 4.4 and above, the view clips at the bounds of the current month view.
I've tried this and also calling invalidate on the calendar when the month changes, but no luck.

I have the exact same error.

I haven't been able to replicate the artifacts on the couple of test devices I have, but I think the offending lines might be one of these:
root.setClipChildren(false);
root.setClipToPadding(false);

Could you remove them and see that fixes this?

Still not working for me

@dandc87 removing those lines fixed the issue on both devices. I did some more digging and think it might be related to this.
I added the following, which seems to fix the issue and allow newer devices to maintain the nice page fade on scroll:
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
    root.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
root.setClipChildren(false);
root.setClipToPadding(false);

Yes, it works, thank you too much.
Instead of  root.setLayerType(View.LAYER_TYPE_SOFTWARE, null); i used root.setLayerType(View.LAYER_TYPE_HARDWARE, null); because it seems to run better.

Thats odd because the threads on the android-dev mailing list I was reading indicated that the issue was caused by using hardware rendering.

Hey @joshfriend or @kulio, I've made some big changes with #99 that should solve this issue. Either by fix it, or by allowing the implementer to setClipToPadding() and setClipChildren() on the MaterialCalendarView itself to fix it. Could either of you test the latest version from the snapshot repo?

I checked out the branch from #99 (gradle couldn't find com.prolificinteractive:material-calendarview:0.8.0-SNAPSHOT) and the issue isn't fixed automatically. I still had to do this to get it working right:
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
    widget.setClipToPadding(true);
    if (Build.VERSION.SDK_INT > Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
        widget.setClipChildren(true);
    }
}

Tested with these devices that previously exhibited the artifacting:

4.0.4 Galaxy Nexus
4.1.1 Nexus 4 (Emulator)
4.2.2 Nexus 4

KitKat and newer devices still work fine. Is there a reason not to do the above clip settings in the library itself?
Also, the swiping was noticeably slower on the older Galaxy Nexus device.

Fix should be in version 0.8.0


reader/xlsx: support io::Reader

So I've made a similar change to my previous PR for making the writer accept any io::Write trait, but this time for the reader (allowing any io::Read). There's a number of formatting changes in other files from an automated refactor where cargo fmt ran automatically. I hope that's ok. if not, let me know, and I may try to to the refactor again, but it would take at least an hour or two.
This also decouples the code entirely from using the filesystem, both for the read and write API, as well as removing the dependence on the temp directory on a file system.
Happy to give you more details on the changes involved.

Thank you for your continued help.
I have checked the changes.
There are no problems, and we will merge them.


All for patterns

Can we allow for patterns in the .concat file?
e.g.
---
files:
-js/*.js
-js/vendor/modernizr.js

It should work, as it inherits from the files option in metalsmith-concat.
Could you put together a test that shows this behavior?


TS errors for draft objects with properties that are indexed using well-known symbols

🐛 Bug Report
Draft<T> objects (at least according to TS) don't bring along any symbol-indexed properties from the original object. Is this expected? I'm not sure if this is only an issue in the TS types, or is the underlying JS draft object also missing its symbol-indexed properties?
Although well-known symbols are usually used with classes, I was able to repro the problem with a plain object too.
I'm using TS 4.1, if it matters.
FWIW, I ran into this because I was trying to call produce() with a deeply-nested object which had a Uint8Array-valued property far down in the tree. When I tried to pass the draft object to another method that expected the original type, TS complained that [Symbol.iterator] and [Symbol.toStringTag] properties that were required on Uint8Array but missing on the Draft<T> object. I'm not trying to mutate the array (that'd be #696); I'm just expecting a deep clone but (at least from TS's perspective) the symbol properties are missing.
Link to repro
import produce, { Draft } from 'immer';

const foo = {
  a() { return 42; },
  get [Symbol.toStringTag]() { return 'foo'; }
}

type Foo = typeof foo;

function withFoo(f: Foo) {
  return f[Symbol.toStringTag];
}

const ok = foo[Symbol.toStringTag];  // no error
const ok2 = withFoo(foo);  // no error

const producer = produce((draft: Draft<Foo>) => {
  draft.a();  // no error
  withFoo(draft);
  /*      ^^^^^
    Argument of type 'WritableDraft<{ a(): number; readonly [Symbol.toStringTag]: string; }>'
    is not assignable to parameter of type '{ a(): number; readonly [Symbol.toStringTag]: string; }'.
    Property '[Symbol.toStringTag]' is missing in type 'WritableDraft<{ a(): number;
    readonly [Symbol.toStringTag]: string; }>' but required in type
    '{ a(): number; readonly [Symbol.toStringTag]: string; }'. (2345)
  */

  const fail = draft[Symbol.toStringTag];
  /*           ^^^^^^^^^^^^^^^^^^^^^^^^^
     Element implicitly has an 'any' type because expression of type 'symbol' can't be used
     to index type 'WritableDraft<{ a(): number; readonly [Symbol.toStringTag]: string; }>'.(7053)
  */
});

https://www.typescriptlang.org/play?#code/JYWwDg9gTgLgBGKEAmBXAxgUwDRwN5wAiUAhgGbwC+cZSIcA5KCJlAwNwBQn6EAdgGd4ZCBDgBefJzhwSACgCU+OFEwxUUPnAAsAJnZxK2aXADmauAG0AygE8QAIwgAbAHQwI1mFGB9TAFRJTAF1FZVV1TUYRCA5DTkpuGFswTDgAMVEJOGTUiDIaUS5OMlQ+dBhgfjgAd2AYAAtMiDkyAC4M0SU8EwiNLTIbeyc3Dy8fP0CQrkSefiE4CABrbJihxxd3T29fAKDggzgAeiO4PjFWJCg5wXhl3Wy6xubWrsOTs4uoK+5eW4QkGgsFBsogUBhMHI5MhSBQOsRyDAADzNAB8SnEqKkMhhiNc8gU71O5zgl2gJieTVE0NhMEJJiOACoZCy4AA9DkckwyACCUFMqBYfDuBVyaQYAHUfDASA5nJgERQkQQCR0+IKHKwDKoSMh+M5bFY7BtRtsJnsQh0hOaDJRUQw4Ny4MABJ94CQBAJgKY+LL5TkxGASKQWDBWItRSlxSrFGqNVqVJhdfrDesRltxrspsErTs-LaGK4nQAFJCpWCGhhpzZjPMW4IOl1wEAur1+Z1aMWMKX1P0K2nK2Sxs7xqAGJ06vV8A1G4Y1s1Z-a5m2Ge1wByoeCqACOqGAqmQHZyUcdrIYMYUcccCcnKdnJozdezy92BdccDkugAzNoAKwKExGSObgZD+BYyBIYBnGyXEKGrU1M0mfYuBkJlWXQmROSw7CcNwp04AAUXlIV4FAMBnGAdB6hnBoPVkLQGBIPhbAdLtNXQEhUAENJMAAD0QTBPSqLR8mPVJGAEOdnAdDi+AYeBNTgLjMGQfCPA7ZA+LE8UexlOV+0RQdVRHa8x0TZNp1TY101rc1nzga1X1XQs5AAdgABl-L8AJkICEnpIA
LMK if you want me to turn the TS playground code above into a CodeSandbox example; happy to do so.
To Reproduce
Steps to reproduce the behavior:

Create a producer that accepts a TS type that has a well-known symbol property
Try to read that property or call a function that accepts a parameter of T from Draft<T>. Note that mutation is not required-- this problem affects read-only access.

Observed behavior
TS errors as noted above.
Expected behavior
No TS errors.
Environment
We only accept bug reports against the latest Immer version.

Immer version:
[x] I filed this report against the latest version of Immer
[n/a (TS only)] Occurs with setUseProxies(true)
[n/a (TS only)] Occurs with setUseProxies(false) (ES5 only)

Apparently (see https://github.com/microsoft/TypeScript/issues/37182) the root cause is that TS doesn't include well-known symbols in keyof results. So any transformation of object types using keyof will lose symbols and cause this bug.
I tried to see if this could be fixed by patching types-external.ts. The changes below fixed the problem in my code:
/**
 * Symbols are not (in TS 4.1) included in [K in keyof T] expressions. The type
 * below adds symbols back.
 */
type WellKnownSymbols<T> = (T extends {[Symbol.asyncIterator]: infer V}
	? {[Symbol.asyncIterator]: V}
	: {}) &
	(T extends {[Symbol.hasInstance]: infer V} ? {[Symbol.hasInstance]: V} : {}) &
	(T extends {[Symbol.isConcatSpreadable]: infer V}
		? {[Symbol.isConcatSpreadable]: V}
		: {}) &
	(T extends {[Symbol.iterator]: infer V} ? {[Symbol.iterator]: V} : {}) &
	(T extends {[Symbol.match]: infer V} ? {[Symbol.match]: V} : {}) &
	// @ts-ignore matchAll may be used in later lib versions
	(T extends {[Symbol.matchAll]: infer V} ? {[Symbol.matchAll]: V} : {}) &
	(T extends {[Symbol.replace]: infer V} ? {[Symbol.replace]: V} : {}) &
	(T extends {[Symbol.search]: infer V} ? {[Symbol.search]: V} : {}) &
	(T extends {[Symbol.split]: infer V} ? {[Symbol.split]: V} : {}) &
	(T extends {[Symbol.species]: infer V} ? {[Symbol.species]: V} : {}) &
	(T extends {[Symbol.toPrimitive]: infer V} ? {[Symbol.toPrimitive]: V} : {}) &
	(T extends {[Symbol.toStringTag]: infer V} ? {[Symbol.toStringTag]: V} : {}) &
	(T extends {[Symbol.unscopables]: infer V} ? {[Symbol.unscopables]: V} : {})

export type WritableDraft<T> = {-readonly [K in keyof T]: Draft<T[K]>} &
	WellKnownSymbols<T>

Unfortunately, the changes above broke a few tests because spec.ts doesn't consider A & B to be equivalent to A.  So I tried to patch spec.ts with similar changes:
/**
 * Symbols are not (as of TS 4.1) included in [K in keyof T] expressions. The
 * type below adds symbols back. Remove this if
 * https://github.com/microsoft/TypeScript/pull/24738 lands. See also:
 * https://github.com/microsoft/TypeScript/issues/24622 and
 * https://github.com/microsoft/TypeScript/issues/37182#issuecomment-594933808
 */
type WellKnownSymbols<T> = (T extends { [Symbol.asyncIterator]: infer V }
  ? // @ts-ignore asyncIterator requires later lib version than Symbol
  { [Symbol.asyncIterator]: V }
  : {}) &
  (T extends { [Symbol.hasInstance]: infer V } ? { [Symbol.hasInstance]: V } : {}) &
  (T extends { [Symbol.isConcatSpreadable]: infer V }
    ? { [Symbol.isConcatSpreadable]: V }
    : {}) &
  (T extends { [Symbol.iterator]: infer V } ? { [Symbol.iterator]: V } : {}) &
  (T extends { [Symbol.match]: infer V } ? { [Symbol.match]: V } : {}) &
  // @ts-ignore matchAll requires later lib version than Symbol
  (T extends { [Symbol.matchAll]: infer V } ? { [Symbol.matchAll]: V } : {}) &
  (T extends { [Symbol.replace]: infer V } ? { [Symbol.replace]: V } : {}) &
  (T extends { [Symbol.search]: infer V } ? { [Symbol.search]: V } : {}) &
  (T extends { [Symbol.split]: infer V } ? { [Symbol.split]: V } : {}) &
  (T extends { [Symbol.species]: infer V } ? { [Symbol.species]: V } : {}) &
  (T extends { [Symbol.toPrimitive]: infer V } ? { [Symbol.toPrimitive]: V } : {}) &
  (T extends { [Symbol.toStringTag]: infer V } ? { [Symbol.toStringTag]: V } : {}) &
  (T extends { [Symbol.unscopables]: infer V } ? { [Symbol.unscopables]: V } : {});
type WithSymbols<T> = T extends object ? T & WellKnownSymbols<T> : T
// prettier-ignore
export type MergeInsertions<T> = T extends object
  ? { [K in keyof WithSymbols<T>]: MergeInsertions<WithSymbols<T>[K]> }
  : T;
export type TestAlike<X, Y> = TestExact<MergeInsertions<X>, MergeInsertions<Y>>;

export type Test<Left, Right> = IsAny<Left> extends 1
  ? IsAny<Right> extends 1
    ? 1
    : "❌ Left type is 'any' but right type is not"
  : IsAny<Right> extends 1
  ? "❌ Right type is 'any' but left type is not"
  : [Left] extends [Right]
  ? [Right] extends [Left]
    ? Any extends TestAlike<Left, Right> // replaced TestExact with TestAlike
      ? 1
      : "❌ Unexpected or missing 'readonly' property"
    : "❌ Right type is not assignable to left type"
  : "❌ Left type is not assignable to right type";

These spec.ts changes broke Immer tests that used readonly arrays, probably because TS doesn't have a concept of "read-only iterators" so the iterator coming from a readonly array was a writable iterator.
At this point, I'm stumped!  It's possible there may not be a perfect solution until TS lands https://github.com/microsoft/TypeScript/pull/24738, although my experiments above suggest that there may be least-bad solutions possible with some tradeoffs.
Any ideas how to fix this without the tradeoffs noted above?

Did you try the cast utilities? https://immerjs.github.io/immer/typescript#cast-utilities

Did you try the cast utilities? https://immerjs.github.io/immer/typescript#cast-utilities

This doesn't work with those as in the original example above, Draft<Foo>[Symbol.toStringTag] is never. Because Draft and Immutable drop them.


Youtube embed isn't filling it's container like before when played.

Strange occurrence happening.
https://elie.net/blog/magic/3-million-smiles-during-the-pandemic-the-retrospective
The player has started not filling it's container when playing like it was before. It actually works as expected when running locally. Can anyone shed any light on why this might be happening..

Sorry I was running a build script to inline my CSS and it was causing the issue.


Events are invoked twice

Hi,
I'm trying to figure this out from a couple of days:
The join event is invoked twice, and the disconnect one doesn't at all.
I've tried even the sample application provided in the repo, but the same thing happens.

Kinda "it works on my machine" error
I did try the application in another PC and the disconnect event fired...
I guess I'll try to debug by myself.
Anyway, all the events fired twice.

Hi,
this is a bug in TS3-Server since the very early beginning,
I've created a report here, but it was never ever answered:
https://forum.teamspeak.com/threads/49640-Queryport-Some-notifications-are-sent-twice!
It's not a bug of this library. If you just use telnet to connect and register for the events on the server and on all channels the 2 events are fired twice.

Oh, ok...
I did try to check the library and found nothing and I was kind of blaming the server, without being sure anyway...
Do you think the library should try to implement something like a "protection"?
(For example just storing the last string received and comparing with the successive message; I don't know if it's possible to receive 2 equal messages related to 2 different events)

it would be possible to reveice 2 events which are equal but real. Like Messages.

I've added a raw logging mechanism to the library. You can see it if you pull the latest version. When you use the test-client you can use "!log" to see the raw Messages sent and reveived. If you replay all the commands in a telenet client you'll see, that the events are also received twice.

Yup,
I'm not familiar with the TS3 query language and I don't know if 2 messages can be the same even if they refer to different events

The problem. Only exists for events. So I could implement an option to filter duplicate events if they are fired within a short timeframe.

Do you want some help?

Yeah you can try to fix the "bug" and do a Pull-Request.

The necessary code block where to implement the check is:
https://github.com/Scordo/TS3QueryLib.Net.Core/blob/b4445ff70e3a60e821f836c4c9c267d702afb3d1/TS3QueryLib.Net.Core/QueryClient.cs#L233-L236
You should store the last received notification message and the datetime received. if the current mesage equals the last message and the Timespan is less than 200ms --> Ignore the message

Ok. I've submitted the Pull Request (#9)...
Let me know if the comments and the variable names are in line with the project 😄

Ok, I figured out it's not a Teamspeak problem:
If I ask for being notified about every channel (the 0, so every channel in this case) and the server too, a notification will be about a channel and one about the server...
So my question now is: if I subscribe to all the channel, am I subscribing to the server itself and/or vice-versa?

I did try, and it looks like subscribing to all channels and the server at the same time doubles all the event I did try (and it's right I guess)...
So my question is if the PR should be accepted or not.

The problem is, to get specific events like Server-wide Text-Messages, Joins and so on you have to subscribe to server events.
To get Channel-Based events like Messages in Channels you have to subscribe to each and every channel or subscribe to all channels by using "0".
So to get all events, for all channels and server you have to subscribe to both. And if you do, you'll get specific notifications twice.

How about a flag that is used only if the lib listens for both Server and all channels events?

I think the problem is solved with the "hacky" fix. I dont want to solve problems which the vendor of teamspeak should solve.

And I agree with you (that's why it's hacky 😆)


It works with nativescript vue?

I need to use a WebSocket on my nativescript vue application and I just wanna make sure that one works fine with.

Yes it works. We're using it for VueDevtools for example.

是的有效。例如，我们将它用于VueDevtools。

Execute tns run ios
Project successfully prepared (ios)
Building project...
Xcode build...
error: SWIFT_VERSION '5.0' is unsupported, supported versions are: 3.0, 4.0, 4.2. (in target 'Starscream')
error: SWIFT_VERSION '5.0' is unsupported, supported versions are: 3.0, 4.0, 4.2. (in target 'Starscream')
warning: Capabilities for nativescriptvueexamples may not function correctly because its entitlements use a placeholder team ID. To resolve this, select a development team in the build settings editor. (in target 'nativescriptvueexamples')
note: Using new build systemnote: Planning buildnote: Constructing build description
** BUILD FAILED **

Unable to apply changes on device: 2B15A4F7-A85B-4E42-9D11-5DE643C6C45E. Error is: Command xcodebuild failed with exit code 65.

SupermandeMacBook-Pro:~ superman$ xcrun swift -version
Apple Swift version 4.2.1 (swiftlang-1000.11.42 clang-1<IP_ADDRESS>)
Target: x86_64-apple-darwin18.0.0

@nuochong Make sure you're up-to-date (NativeScript 6.x, and XCode 10.3)


Adds a minimal support for user phrases.

The user phrases are stored in a text file in the same format of "data.txt" contained in the application bundle. A user can use shift and arrow keys like left and right to select a range of the text in the composing buffer, and use enter key to add the text into the text file. Once a user does so, the input method reloads the entire text file into a copy of FastLM.
Now, creating an instance BlockReadingBuilder requires two language models, one is the original language model, while another one is for user phrases. When BlockReadingBuilder::build() is called, the builder gets unigrams from both language model.
Since the user phrases are in a text file, a user can edit it with any text editor. I did not let the input method app to watch the change of text file since I don't think user may often edit it with external text editors. I just add a menu item to let user to reload user phrases manually.
I did not block duplicate entries of user phrases. Since the text file is editable, a user can just remove the duplicated entries anytime and reload the user phrases.
Fixes #6, #85 and #131 .

@zonble 請問，您目前這套系統交給使用者自訂語彙時，使用者填每一行的格式時的頻率是不是也要填那種經過換算過後的指數？
我記得每個字詞的頻率換算時用到的 norm 數值是要在遍歷所有詞的總頻率之後才能算出來的。

我在這邊分享一下我的設想好了，打算接下來這周我這邊先開工。
https://github.com/ShikiSuen/vChewing-macOS/issues/12
這個設計圖紙當中沒有考慮到小麥注音的ㄅ半傳統輸入模式的情況，但可以再追加。
也就是在編譯的時候只篩留單個字的結果而已。

LGTM.