Password protected key

I successfully installed in a VPS server this VPN service.
It works. Thanks the script.
Is it possible to protect the login session with password? I mean when I connect from my Android mobile phone to the VPN, its not required to enter a password.
I use also free vpnbook service. When I try to connect,  I have to type a password to access the VPN server.
Thanks

https://github.com/Angristan/OpenVPN-install/pull/160


Endpoints on the workload point to incorrect values when there is no ingress controller running.

**Rancher versions: Build from master
Steps to Reproduce:
Create a cluster with ingress node selector set
"nodeSelector": {
"test1": "ingress"
},

Add nodes to the set up without the  ingress node selector label.
Deploy workload.
Create ingress pointing to this workload.
Ingress gets created successfully and gets to "active" state.
Is there a way to indicate that even though the Ingress is created , it is not functional by having a state other than "active"?
Endpoints on the workload and Ingress get created with the address having the node ip where ingress controller is not running.
Endpoint urls present in the UI is non functional.
Expected Behavior:
No endpoints should be created for workload and Ingress in this case.

This is the bug of our ingress-controller fix. It requires authorization to list/watch daemon set.

@orangedeng @sangeethah i was able to test the fix with the following steps:
Create a cluster with ingress node selector set
"nodeSelector": {
"test1": "ingress"
},
Add nodes (h1,h2,h3) to the set up without the ingress node selector label.
Deploy workload.
Create ingress pointing to this workload with Automatically generate a .xip.io hostname option
Ingress gets created successfully and gets to "active" state.
Add ingress label to h1.
After a while i can see endpoint created for node h1, and it can reach the workload normally.
Note
when i select Use as the default backend option when creating the ingress, i can't see any endpoints get created.

@deniseschannon I remember that we have an issue https://github.com/rancher/rancher/issues/11800  about default backend of RKE. We are not showing ingress default backend for workload because it might not work as user's expectation. Since we have a better way to fix 11800, we will show it in workload.
But there is an issue for default backend which should be fixed. The service for default backend is not created by now. I will fix that first.


fix(app): handle user names in git clone

Fixes a problem with names with a middle name during the setup of the repo when launching a session.
This was introduced by the conversion of the "git clone" code from bash to python.

I was able to reproduce this by adding a middle name to my account. With the fix on my personal deployment it works. But on dev things fail.

The integration tests are failing because gitlab closes the connection. This happens often lately.


Support all OCI image fields

Problem
Some OCI image fields can be set by a Dockerfike but are not supported by the Dagger API. For example, healthcheck.
Solution
Add missing functions to the Container type to reach feature parity with Dockerfiles.

We currently support all OCI [ImageConfig](https://github.com/opencontainers/image-spec/blob/036563a4a268d7c08b51a08f05a02a0fe74c7268/specs-go/v1/config.go#L23-L50) fields, but healthcheck is part of an extended DockerOCI which adds Docker specific fields:

Healthcheck
OnBuild
Shell

I suppose OnBuild doesn't make sense when using Dagger, but could be if publishing a base image that's intended to be used in a Dockerfile later. Do people still use that?
Shell is used to set the shell-form of RUN, CMD and ENTRYPOINT.


Update WHFRP2.css

Making sure that the CSS is up to date with the new updated HTML.

Could you do me a quick favor and make one pull request for all four of these updates?

Sure thing. I guess I was just lazy. I'll close these and open a new one instead.


0.8.1

Current coverage is 67.21%

Merging #194 into master will not affect coverage as of 5a08d5a

@@            master    #194   diff @@
======================================
  Files           39      39
  Stmts          485     485
  Branches         0       0
  Methods          0
======================================
  Hit            326     326
  Partial          0       0
  Missed         159     159

Review entire Coverage Diff as of 5a08d5a

Powered by Codecov. Updated on successful CI builds.

:+1: lgtm

Found that invalid checksum on 404 page. but in my case this happens on both firefox and chrome

Will open an issue for that.


Any plan for a gui  or webui?

It would be amazing to play with a gui

nope

Anyway, thanks for making this tool.


Events | use returned widget for updates

Change all event functions that take an widget to require to return a widget.
So the widget can be modified within the event function and just be updated where the event was called.
Wonder if its too ambitious to return the entire widgets map + the key of the widget that was involved in the event.
Perhaps side effect functions like update! remove! could be changed to helper functions to work on the widgets map. Core could contain those helper function + a way to get or only swap! the current widgets map.
Will be handled in #25

available in 0.0.1-alpha25


Sync with ethereum/eth2.0-specs#699: fix committee assignment bugs

What was wrong?
Spec PR:  ethereum/eth2.0-specs#699
How was it fixed?

Sync with ethereum/eth2.0-specs#699
Refactor get_crosslink_committees_at_slot with ShufflingContext

Cute Animal Picture

Whoops, sorry, I accidentally merged it without approval... 😱
@djrtwo if any post-merged feedback, I will be applied it to https://github.com/ethereum/eth2.0-specs/pull/707 related PR.


Loading both juliacall and pyjulia triggers crash

I would not expect this to work anyways but just wanted to point it out:
[ins] In [1]: from julia import Main as pyjulia_jl

[ins] In [2]: from juliacall import Main as juliacall_jl
Fatal Python error: PyThreadState_Get: the function must be called with the GIL held, but the GIL is released (the current Python thread state is NULL)
Python runtime state: initialized

Thread 0x000000016e883000 (most recent call first):
  File "/Users/mcranmer/.pyenv/versions/3.10.10/lib/python3.10/threading.py", line 320 in wait
  File "/Users/mcranmer/.pyenv/versions/3.10.10/lib/python3.10/threading.py", line 607 in wait
  File "/Users/mcranmer/.pyenv/versions/3.10.10/lib/python3.10/site-packages/IPython/core/history.py", line 884 in run
  File "/Users/mcranmer/.pyenv/versions/3.10.10/lib/python3.10/site-packages/IPython/core/history.py", line 60 in only_when_enabled
  File "/Users/mcranmer/.pyenv/versions/3.10.10/lib/python3.10/site-packages/decorator.py", line 232 in fun
  File "/Users/mcranmer/.pyenv/versions/3.10.10/lib/python3.10/threading.py", line 1016 in _bootstrap_inner
  File "/Users/mcranmer/.pyenv/versions/3.10.10/lib/python3.10/threading.py", line 973 in _bootstrap

Current thread 0x00000001e0935ec0 (most recent call first):
  File "/Users/mcranmer/PermaDocuments/PySR/.venv/lib/python3.10/site-packages/juliacall/__init__.py", line 222 in init
  File "/Users/mcranmer/PermaDocuments/PySR/.venv/lib/python3.10/site-packages/juliacall/__init__.py", line 228 in <module>
  File "<frozen importlib._bootstrap>", line 241 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 883 in exec_module
  File "<frozen importlib._bootstrap>", line 688 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1006 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1027 in _find_and_load
  File "<ipython-input-2-c645ed7a88d4>", line 1 in <module>
  File "/Users/mcranmer/.pyenv/versions/3.10.10/lib/python3.10/site-packages/IPython/core/interactiveshell.py", line 3508 in run_code
  File "/Users/mcranmer/.pyenv/versions/3.10.10/lib/python3.10/site-packages/IPython/core/interactiveshell.py", line 3448 in run_ast_nodes
  File "/Users/mcranmer/.pyenv/versions/3.10.10/lib/python3.10/site-packages/IPython/core/interactiveshell.py", line 3269 in run_cell_async
  File "/Users/mcranmer/.pyenv/versions/3.10.10/lib/python3.10/site-packages/IPython/core/async_helpers.py", line 129 in _pseudo_sync_runner
  File "/Users/mcranmer/.pyenv/versions/3.10.10/lib/python3.10/site-packages/IPython/core/interactiveshell.py", line 3064 in _run_cell
  File "/Users/mcranmer/.pyenv/versions/3.10.10/lib/python3.10/site-packages/IPython/core/interactiveshell.py", line 3009 in run_cell
  File "/Users/mcranmer/.pyenv/versions/3.10.10/lib/python3.10/site-packages/IPython/terminal/interactiveshell.py", line 881 in interact
  File "/Users/mcranmer/.pyenv/versions/3.10.10/lib/python3.10/site-packages/IPython/terminal/interactiveshell.py", line 888 in mainloop
  File "/Users/mcranmer/.pyenv/versions/3.10.10/lib/python3.10/site-packages/IPython/terminal/ipapp.py", line 318 in start
  File "/Users/mcranmer/.pyenv/versions/3.10.10/lib/python3.10/site-packages/traitlets/config/application.py", line 1043 in launch_instance
  File "/Users/mcranmer/.pyenv/versions/3.10.10/lib/python3.10/site-packages/IPython/__init__.py", line 129 in start_ipython
  File "/Users/mcranmer/.pyenv/versions/3.10.10/bin/ipython", line 8 in <module>

[64935] signal (6): Abort trap: 6
in expression starting at none:2
__pthread_kill at /usr/lib/system/libsystem_kernel.dylib (unknown line)
Allocations: 596578 (Pool: 595526; Big: 1052); GC: 1
[1]    64935 abort      ipython

This will not be an issue if everyone moves to juliacall, but the transition period where some packages use PyCall (like PyPlot) and some packages use PythonCall may cause some of these issues.
Maybe there is a safety switch to get around this issue temporarily.

Yeah we should at least check for this and issue a better error message (like we do in PythonCall).

Maybe we could do it similarly to how PyTorch is handled
https://github.com/JuliaPy/PythonCall.jl/blob/13f596d6a7d60ef7bfcee2d538cd895f59826d95/pysrc/juliacall/__init__.py#L59-L64
But not sure if it needs to also be checked on the PythonCall.jl/PyCall.jl side?


Phalcon PHP 7 Debian 3.0.0 no longer available

Hi,
According with my last issue (#5), Phalcon 3.0.0 is no longer available for PHP 7 and Debian Jessie.
I can't use 3.0.1 (bugs). Can you "reupload" or something else? 3.0.0 version is still available for Stretch.
https://packagecloud.io/app/phalcon/stable/search?filter=all&q=php7.0-phalcon_3.0.0&dist=debian
Thanks.
HanXHX

Done


Adding custom packages to faasm

I want to add a custom package to faasm, so that I can use it in my functions.
I cloned pyodide repo in third-party/pyodide folder as it was empty?
I will use boto3 as the running example
cd faasm_home
source workon.sh
./bin/pyodide mkpkg boto3 # this creates a meta.yml
./bin/pyodide buildpkg --package_abi=0 packages/boto3/meta.yaml

I don't see any errors yet.
Next step is to modify tasks/python.py
I take this is file is present in faasmcli/faasmcli
I add it to the dictionary as explained, similar to other modules but with proper version
Next step
inv python.set-up-package

It says 'inv' command not found. Here is where I am wondering if this has to be done after running
./bin/cli.sh.
I tried that, and it generated machine code.
On running a simple python file that uses boto3, it shows, No module named boto3
I am not sure which step is wrong over here or are there some inconsistencies in the documentation.

Few Updates:

I saw that the for pyodide you have a different fork, I got that up and running
All the steps mentioned here "https://github.com/lsds/Faasm/blob/master/docs/python.md"
from Building CPython till Adding the new package to the runtime root have to be performed post

./bin/cli.sh

I have achieved codegen step and it's all successful. But still get some error

If I remember correctly boto3 is used in the CLI commands. It looks like you're trying to develop locally so make sure you follow the steps in (the local dev)[https://github.com/lsds/Faasm/blob/master/docs/local_dev.md), or at least the bits relevant to python. Here you're missing
cd faasm_home
pip install -r faasmcli/requirements.txt

Hi @nayakajay first off, you're right that Faasm uses a custom Pyodide fork, this is handled using Git submodules, which guarantee the repo is pinned to a specific commit. third-party/pyodide will be empty if you haven't updated these Git submodules, which you can do by running git submodule update --init third-party/pyodide (more docs here. This is left out of the normal container set-up as the submodules are not needed for runtime execution.
While Faasm and Pyodide can technically run arbitrary packages, the feasibility of this will depend on the underlying runtime. Faasm functions run inside Faasm, and Pyodide code normally runs in a browser, neither of which are "normal" POSIX-like environments, hence will not provide normal filesystem or networking support. Faasm's filesystem support is limited to "global read local write", with functions being isolated from the underlying host filesystem (which is where you've run into issues with #239). This is discussed briefly in the host interface docs. Networking support is equally limited. As a result, I can't guarantee that boto3 will operate as normal even if we do solve your issue.
What you're seeing is down to using the containerised Faasm environment:

You're compiling CPython and setting up boto3 in the CLI container (where it's getting set up in /usr/local/faasm/runtime_root)
You're executing the function in the worker container, which is a different container, hence has its own virtual filesystem, and can't "see" the boto3 files
To share the relevant files between containers, you can try setting up a shared volume on /usr/local/faasm/runtime_root directory, just like we already have with /usr/local/faasm/object

I would usually recommend doing this level of development with the local dev setup rather than in containers as it avoids such issues.
Can I ask what you're aiming to achieve? Perhaps I can give some pointers and avoid any wasted effort if the end goal is ultimately unfeasible.

I have a bunch of functions with usage of nltk, boto3, tensorflow and few other packages. I would like to use them in faasm environment. I was trying to add them to the environment one by one.
However, I get your point when you mentioned can't "see", makes sense to me now.
For local dev setup, I am not sure if i want to change Faasm code yet, however I would like to add more packages.
So to achieve this, I don't have to build cpython from scratch?
Just the Adding new package to environment root?
To create a shared volume, is there any documentation I can follow?

I would be surprised if an application combining those packages will work in Faasm/ Pyodide without a lot of work. Every Python package requires effort to port to Pyodide, especially if it uses a lot of C bindings. Tensorflow has some fairly heavyweight C/C++ code which must be compiled to WebAssembly, and will introduce further native dependencies that also need to be compiled to WebAssembly. As an experiment I would run strace on your existing application and see which system calls it uses and which libraries it links dynamically. Any system calls not currently supported by Faasm and WASI will need to be added, and any dynamically linked libraries will need to be ported too (native libraries and Python C bindings). This should give you an indication of the scale of the task ahead.
You can probably get away with porting pure Python libraries without compiling CPython from scratch, but to build any libraries that have C bindings you'll need to link against the compiled WebAssembly CPython.
Docker volumes are a standard feature and amenable to Googling (e.g. https://docs.docker.com/storage/volumes/).


Glitches after GPU fix update

Hyprland Version
 System/Version info
Hyprland, built from branch main at commit 301b48b74087cc59753ffa144b215540e6f82831 dirty (renderer: fix invalid damage accumulation with invalid buffer_age).
Date: Sun Feb 18 21:34:08 2024
Tag: v0.35.0-49-g301b48b7

flags: (if any)

System Information:
System name: Linux
Node name: mach
Release: 6.7.5-zen1-1-zen
Version: #1 ZEN SMP PREEMPT_DYNAMIC Sat, 17 Feb 2024 14:02:21 +0000

GPU information:
00:02.0 VGA compatible controller [0300]: Intel Corporation CometLake-U GT2 [UHD Graphics] [8086:9b41] (rev 02) (prog-if 00 [VGA controller])

os-release: NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo

plugins:

Bug or Regression?
Bug
Description
Some time launching applications seeing artifacts of glitches.
How to reproduce
After the discord announcement of gpu

considerable gpu performance hit from a commit introduced in v0.33.0 has been fixed in git.
i updated hyprland-git.

Now launching apps like firefox sometime show glitches before rendering it is so fast that m failing to take screenshot.
will attach if got any.
Crash reports, logs, images, videos
No response

The glitch is not like this but screenshot tool (grim) getting this

Can confirm this. For example while writing this comment, the text only refreshed after mouse movement. (tried enabling and disabling mouse_move_enables_dpms too)

can someone record it?

https://github.com/hyprwm/Hyprland/assets/107314235/6e02e133-d36e-4b37-8afe-4463e8437255

https://github.com/hyprwm/Hyprland/assets/24554850/8cc6cec3-39c3-4fd7-9369-b40e62801225

can I get a log

I also have this bug here is my log:
[LOG] Instance Signature: 301b48b74087cc59753ffa144b215540e6f82831_1708288882
[LOG] Hyprland PID: 7505
[LOG] ===== SYSTEM INFO: =====
[LOG] System name: Linux
[LOG] Node name: matteo-laptop
[LOG] Release: 6.1.77
[LOG] Version: #1-NixOS SMP PREEMPT_DYNAMIC Mon Feb  5 20:13:03 UTC 2024

[LOG] GPU information:
0000:00:02.0 VGA compatible controller [0300]: Intel Corporation TigerLake-LP GT2 [Iris Xe Graphics] [8086:9a49] (rev 01) (prog-if 00 [VGA controller])

[LOG] os-release:
BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues"
BUILD_ID="24.05.20240207.f8e2ebd"
DOCUMENTATION_URL="https://nixos.org/learn.html"
HOME_URL="https://nixos.org/"
ID=nixos
IMAGE_ID=""
IMAGE_VERSION=""
LOGO="nix-snowflake"
NAME=NixOS
PRETTY_NAME="NixOS 24.05 (Uakari)"
SUPPORT_URL="https://nixos.org/community.html"
VERSION="24.05 (Uakari)"
VERSION_CODENAME=uakari
VERSION_ID="24.05"

[LOG] ========================

[INFO] If you are crashing, or encounter any bugs, please consult https://wiki.hyprland.org/Crashes-and-Bugs/

[LOG]
Current splash: We're all living in America, America, America.

[LOG] Creating the HookSystem!
[LOG] Creating the KeybindManager!
[LOG] [hookSystem] New hook event registered: configReloaded
[LOG] Creating the AnimationManager!
[LOG] Created a bezier curve, baked 255 points, mem usage: 4.08kB, time to bake: 41.86µs. Estimated average calc time: 0.10µs.
[LOG] Creating the ConfigManager!
[LOG] NOTE: further logs to stdout / logfile are disabled by default. Use debug:disable_logs and debug:enable_stdout_logs to override this.
[LOG] Created a bezier curve, baked 255 points, mem usage: 4.08kB, time to bake: 24.54µs. Estimated average calc time: 0.10µs.
[LOG] Using config: /home/matteo/.config/hypr/hyprland.conf

http://0x0.st/Hnvx.txt

here's my log: https://0x0.st/Hnvn.log

patch.txt
try

@vaxerski your patch does not contain your changes in wlroots
diff --git a/subprojects/wlroots b/subprojects/wlroots
--- a/subprojects/wlroots
+++ b/subprojects/wlroots
@@ -1 +1 @@
-Subproject commit 00b869c1a96f300a8f25da95d624524895e0ddf2
+Subproject commit 00b869c1a96f300a8f25da95d624524895e0ddf2-dirty

How i apply that patch? im assuming you modified something in wlroots?

no, thats just git being git. patch -p1 < /path/to/patch.txt and it should just work

didn't work for me, needed to remove that -dirty part

I tested the patch and it didnt work
Before 301b48b74087cc59753ffa144b215540e6f82831
https://github.com/hyprwm/Hyprland/assets/6665402/5625de20-c4dd-4c15-8d40-81079abed24e
After 301b48b74087cc59753ffa144b215540e6f82831 with and without your patch
https://github.com/hyprwm/Hyprland/assets/6665402/7b4de2d9-07f2-4a49-bc86-1b19dc60db58
Im on AMD card 6700xt, for me its just the screen capture not the whole screen

wait it's only screencopy?

Check the video of @Seme4eg https://github.com/hyprwm/Hyprland/issues/4744#issuecomment-1951432467
@Seme4eg its your whole desktop or its just screencopy?

Foot is affected while Kitty is not. Firefox with hw-accel enabled works flawlessly but it has lots of artifacting with it turned off. Kate, Dolphin and Libreoffice suite are affected. I tried out the patch with the same results.

pretty sure it's unrelated to this patch and this patch has just shown it. Can someone try and take the commit as a patch, and bisect but with that patch applied? It should work for every rev after ~0.33.0.
soo bisect but before testing any commit apply the patch that caused this behavior.
Pretty sure if you apply this to 0.33.0 it wont cause this. I'll explain more tomorrow if necessary its 4am and I have class tmr

@rurigk , those artifacts appear only on wayland windows, xwayland ones don't have them, and all other animations like switching workspaces don't products artifacts.

What 'fixed' it for me is removing scaling from my monitor. I have a hidpi 4k laptop screen i usually scale by 1.8. Removing it fixed those artifacts, but i have everything super tiny now

I don't use any scaling, can you test desktop capture with no scaling?

I'm only noticing the glitches in GTK apps so far, with scaling 1.6. Unscaled works fine.

 Just like I said, c4365f20ed8ff0dd480b7ed7cf1bfff1a0b6911a was the real faulty commit.
Anyways fixed for me with above.

minor oopsies with fs-v1 surfaces fixed in the subsequent<PHONE_NUMBER>53a6558b8125726bbdaf6411593488
All issues here should be solved.

Still glitches for me

noticable visual glitches fixed for me, but screen recording is still borked.

No it doesn't.

yes it does. Most often it happens when notification disappears, but i still cannot reproduce it consistently.
https://github.com/hyprwm/Hyprland/assets/79580247/a8ba08e4-7824-4324-8fb9-669e950a2d06
had to record via camera because obs recording has its own glitches
https://github.com/hyprwm/Hyprland/assets/79580247/5e84e44b-955b-433e-a930-20681d1f2404

try to cleanbuild hyprland and reboot the machine and if it still persists, then try to bisect commits

Updated and not faced it yet.
Will try for a while and if no issue comes up then I guess this issue should be close.

@KrolixW that does not look like this issue. That looks like your gpu driver giving up

@KrolixW that does not look like this issue. That looks like your gpu driver giving up

The issue is there I am on latest hyprland
It happens so rare and so quickly that can't record.
Mostly faced on foot terminal

Wish I could vax but I'm a little busy right now. If nobody is competent enough to do it by the time I'm free I'll do it myself.

P.s. the patch you're talking about is this? https://github.com/hyprwm/Hyprland/issues/4744#issuecomment-1951481092

no, this: https://github.com/hyprwm/Hyprland/commit/301b48b74087cc59753ffa144b215540e6f82831

Thanks bb, will test now :)

Seems I am unable to apply the patch and build correctly on 0.33.0 and 0.34.0
/usr/bin/c++ -DHAS_EXECINFO -DHyprland_EXPORTS -DUSES_SYSTEMD -DWLR_USE_UNSTABLE -I/home/faaris/Hyprland/.  -I/home/faaris/Hyprland/src -I/home/faaris/Hyprland/subprojects/wlroots/include -I/home/faaris/Hyprland/subprojects/wlroots/build/include -I/home/faaris/Hyprland/subprojects/udis86 -I/home/faaris/Hyprland/protocols -I/home/faaris/Hyprland/subprojects/udis86/libudis86 -isystem /usr/include/libdrm -isystem /usr/include/pango-1.0 -isystem /usr/include/cairo -isystem /usr/include/freetype2 -isystem /usr/include/harfbuzz -isystem /usr/include/glib-2.0 -isystem /usr/lib/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/libmount -isystem /usr/include/blkid -isystem /usr/include/fribidi -isystem /usr/include/libpng16 -isystem /usr/include/sysprof-6 -O3 -DNDEBUG -std=gnu++23 -O3 -Wall -Wextra -Wno-unused-parameter -Wno-unused-value -Wno-missing-field-initializers -Wno-narrowing -Wno-pointer-arith -pthread -Winvalid-pch -include /home/faaris/Hyprland/build/CMakeFiles/Hyprland.dir/cmake_pch.hxx -MD -MT CMakeFiles/Hyprland.dir/src/config/ConfigManager.cpp.o -MF CMakeFiles/Hyprland.dir/src/config/ConfigManager.cpp.o.d -o CMakeFiles/Hyprland.dir/src/config/ConfigManager.cpp.o -c /home/faaris/Hyprland/src/config/ConfigManager.cpp
/home/faaris/Hyprland/src/config/ConfigManager.cpp: In lambda function:
/home/faaris/Hyprland/src/config/ConfigManager.cpp:2307:17: error: ‘wlr_output_enable_adaptive_sync’ was not declared in this scope
 2307 |                 wlr_output_enable_adaptive_sync(m->output, 0);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/faaris/Hyprland/src/config/ConfigManager.cpp:2309:22: error: ‘wlr_output_commit’ was not declared in this scope; did you mean ‘wlr_output_init’?
 2309 |                 if (!wlr_output_commit(m->output))
      |                      ^~~~~~~~~~~~~~~~~
      |                      wlr_output_init
/home/faaris/Hyprland/src/config/ConfigManager.cpp:2316:17: error: ‘wlr_output_enable_adaptive_sync’ was not declared in this scope
 2316 |                 wlr_output_enable_adaptive_sync(m->output, 1);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/faaris/Hyprland/src/config/ConfigManager.cpp:2318:22: error: ‘wlr_output_test’ was not declared in this scope; did you mean ‘wlr_output_init’?
 2318 |                 if (!wlr_output_test(m->output)) {
      |                      ^~~~~~~~~~~~~~~
      |                      wlr_output_init
/home/faaris/Hyprland/src/config/ConfigManager.cpp:2323:22: error: ‘wlr_output_commit’ was not declared in this scope; did you mean ‘wlr_output_init’?
 2323 |                 if (!wlr_output_commit(m->output))
      |                      ^~~~~~~~~~~~~~~~~
      |                      wlr_output_init
/home/faaris/Hyprland/src/config/ConfigManager.cpp:2340:17: error: ‘wlr_output_enable_adaptive_sync’ was not declared in this scope
 2340 |                 wlr_output_enable_adaptive_sync(m->output, 1);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/faaris/Hyprland/src/config/ConfigManager.cpp:2342:22: error: ‘wlr_output_test’ was not declared in this scope; did you mean ‘wlr_output_init’?
 2342 |                 if (!wlr_output_test(m->output)) {
      |                      ^~~~~~~~~~~~~~~
      |                      wlr_output_init
/home/faaris/Hyprland/src/config/ConfigManager.cpp:2347:22: error: ‘wlr_output_commit’ was not declared in this scope; did you mean ‘wlr_output_init’?
 2347 |                 if (!wlr_output_commit(m->output))
      |                      ^~~~~~~~~~~~~~~~~
      |                      wlr_output_init
/home/faaris/Hyprland/src/config/ConfigManager.cpp:2351:17: error: ‘wlr_output_enable_adaptive_sync’ was not declared in this scope
 2351 |                 wlr_output_enable_adaptive_sync(m->output, 0);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/faaris/Hyprland/src/config/ConfigManager.cpp:2353:22: error: ‘wlr_output_commit’ was not declared in this scope; did you mean ‘wlr_output_init’?
 2353 |                 if (!wlr_output_commit(m->output))
      |                      ^~~~~~~~~~~~~~~~~
      |                      wlr_output_init
[52/114] Building CXX object CMakeFiles/Hyprland.dir/src/debug/HyprCtl.cpp.o
ninja: build stopped: subcommand failed.
make[1]: *** [Makefile:15: release] Error 1
make[1]: Leaving directory '/home/faaris/Hyprland'
make: *** [Makefile:31: all] Error 2

what you mean didnt fix it? Or are you incapable of reading the patch is only meant for ON-SCREEN flicker and NOT screencopy??

d62e7a5125c551fe8a94e076e64d42b702d923b1 and e793f10b8bd1685a2e2bbd7cc90063f12bf380c4 fix both issues.

Date: Tue Feb 20 08:54:15 2024
Tag: v0.35.0-59-g86be75dd

flags: (if any)

updated from AUR i face glitches sometime in foot terminal
is there someother way to build to get fixed or the issue is there ?

here after rebuild from aur

facing this on foot till only for now.

hello again vax. Seems your fixes may have solved in some cases but I seem to be experiencing the issue(s) still on my Thinkpad L14 (AMD CPU and iGPU)

Anything you need me to test? Once again sorry for the trouble

there are two issues here and I want you to not mix those up.
One is visible on-screen, one is only visible on recordings. Which are you talking about

there are two issues here and I want you to not mix those up.
One is visible on-screen, one is only visible on recordings. Which are you talking about

Yep, I understand. No issues afaik on screen. Issues with screencopy, aka OBS and Grim.

@niksingh710 your issue looks more like your gpu drivers crying than anything else. Nvidia?
@Fxzzi can you fiddle with your config on your laptop and see if any options solve the problem?

@Fxzzi can you fiddle with your config on your laptop and see if any options solve the problem?

For sure, I'll have a look for you when I can. I assume it'll just be something in Hyprland config?
For ref, here are all of my configs
https://gitlab.com/fazzi/dotfiles

yeah, try stuff like making your monitors at 0x0, changing res, maybe fiddle with rendering-related options

yesterday i tried the latest commit in one of my friends laptop he is having nvidia 1650 for him everything was working fine.
tears if nvidia_tear variable is false but the fps is 60
and if nvidia_tear is true then no tear but fps is 30.
(on kde wayland too he get's 30 fps on monitor screen)

yeah, try stuff like making your monitors at 0x0, changing res, maybe fiddle with rendering-related options

after fiddling a bit, it seems having waybar running and visible seems to break the screenshots. Here is my testing:
Minimal config:

monitor = eDP-1,1920x1080@60,0x0,1 # Set display to max res, auto offset

$MOD = SUPER

bind = , Print, exec, screenshot.sh --monitor
bind = , XF86Launch2, exec, screenshot.sh --selection
bind = SHIFT, Print, exec, screenshot.sh --active

binde=, XF86AudioRaiseVolume, exec, audio.sh vol up 5
binde=, XF86AudioLowerVolume, exec, audio.sh vol down 5
binde=, XF86AudioMute, exec, audio.sh vol toggle
binde=, XF86AudioMicMute, exec, audio.sh mic toggle

binde=, XF86MonBrightnessUp, exec, brightness.sh up 5
binde=, XF86MonBrightnessDown, exec, brightness.sh down 5

bind = $MOD, T, exec, foot
bind = $MOD SHIFT, E, exec, pkill wleave || wleave --protocol layer-shell -b 5 -T 360 -B 360
bind = $MOD SHIFT, R, exec, hyprctl reload

bind = $MOD, Q, killactive
bind = $MOD, Space, fullscreen
bind = $MOD, Tab, togglefloating
bind = $MOD, P, pseudo # dwindle
bind = $MOD, S, togglesplit # dwindle

bind = $MOD, left, movefocus, l
bind = $MOD, right, movefocus, r
bind = $MOD, up, movefocus, u
bind = $MOD, down, movefocus, d

bind = $MOD SHIFT, left, movewindow, l
bind = $MOD SHIFT, right, movewindow, r
bind = $MOD SHIFT, up, movewindow, u
bind = $MOD SHIFT, down, movewindow, d

binde = $MOD CTRL, left, resizeactive, -10 0
binde = $MOD CTRL, right, resizeactive, 10 0
binde = $MOD CTRL, up, resizeactive, 0 -10
binde = $MOD CTRL, down, resizeactive, 0 10

bind = $MOD, 1, workspace, 1
bind = $MOD, 2, workspace, 2
bind = $MOD, 3, workspace, 3
bind = $MOD, 4, workspace, 4
bind = $MOD, 5, workspace, 5
bind = $MOD, 6, workspace, 6
bind = $MOD, 7, workspace, 7
bind = $MOD, 8, workspace, 8
bind = $MOD, 9, workspace, 9
bind = $MOD, 0, workspace, 10
bind = $MOD ALT, up, workspace, e+1
bind = $MOD ALT, down, workspace, e-1

bind = $MOD SHIFT, 1, movetoworkspace, 1
bind = $MOD SHIFT, 2, movetoworkspace, 2
bind = $MOD SHIFT, 3, movetoworkspace, 3
bind = $MOD SHIFT, 4, movetoworkspace, 4
bind = $MOD SHIFT, 5, movetoworkspace, 5
bind = $MOD SHIFT, 6, movetoworkspace, 6
bind = $MOD SHIFT, 7, movetoworkspace, 7
bind = $MOD SHIFT, 8, movetoworkspace, 8
bind = $MOD SHIFT, 9, movetoworkspace, 9
bind = $MOD SHIFT, 0, movetoworkspace, 10

bindm = $MOD, mouse:272, movewindow
bindm = $MOD, mouse:273, resizewindow
bind = $MOD, mouse_down, workspace, e+1
bind = $MOD, mouse_up, workspace, e-1

no issues with screenshots or video recording on this minimal config
Now for my config:
https://gitlab.com/fazzi/dotfiles/-/raw/hyprland-laptop/.config/hypr/hyprland.conf
Issue with screenshots:

However, strangely, screen recording seems fine:

Killing waybar and screenshots seem fixed from what I can tell:

I tested whether or not it was some issue with the waybar reserved area, however doesn't seem like it, as adding monitor = eDP-1,addreserved,40,0,0,0 with waybar killed and screenshots are still good

patch.txt
le try

committed

committed

screen copy wasn't an issue for me updated to latest commit
sometimes still i see artifacts on foot terminal
After updating to latest git commit my laptop screen had abit of artifact but as cursor went their it cleaned up.
[LOG] Instance Signature: 02c9a2d769dc3ae5efb942ad16578eee45a6f6dd_1708443832
[LOG] Hyprland PID: 977
[LOG] ===== SYSTEM INFO: =====
[LOG] System name: Linux
[LOG] Node name: mach
[LOG] Release: 6.7.5-zen1-1-zen
[LOG] Version: #1 ZEN SMP PREEMPT_DYNAMIC Sat, 17 Feb 2024 14:02:21 +0000

[LOG] GPU information:
00:02.0 VGA compatible controller [0300]: Intel Corporation CometLake-U GT2 [UHD Graphics] [8086:9b41] (rev 02) (prog-if 00 [VGA controller])

[LOG] os-release:
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo

[LOG] ========================

[INFO] If you are crashing, or encounter any bugs, please consult https://wiki.hyprland.org/Crashes-and-Bugs/

[LOG]
Current splash: Never gonna let you down (I am trying!)

[LOG] Creating the HookSystem!
[LOG] Creating the KeybindManager!
[LOG] [hookSystem] New hook event registered: configReloaded
[LOG] Creating the AnimationManager!
[LOG] Created a bezier curve, baked 255 points, mem usage: 4.08kB, time to bake: 53.64µs. Estimated average calc time: 0.08µs.
[LOG] Creating the ConfigManager!
[LOG] NOTE: further logs to stdout / logfile are disabled by default. Use debug:disable_logs and debug:enable_stdout_logs to override this.
[LOG] Created a bezier curve, baked 255 points, mem usage: 4.08kB, time to bake: 35.12µs. Estimated average calc time: 0.08µs.
[LOG] Using config: /home/niksingh710/.config/hypr/hyprland.conf

I see reading the third-to-last line of the log is difficult.

I see reading the third-to-last line of the log is difficult.

Sarcasm ?....
Only this much was in logs ....

@niksingh710 enable those options in your config, then post the log you get here

@niksingh710 enable those options in your config, then post the log you get here

Logs
aaaah i literaly thought till date that logs are enabled by default 💢

this is the source most likely, if you don't have tearing enabled explicitly then this signifies a driver issue.

@vaxerski in my observation
if monitor is connected and then hyprland is launched the it's ok just glitches are there.
but if i disconnect monitor and then reconnect it to running hyprland instance everything freezes. and then reboot is the only option.

I experienced this too
when disconnecting my laptop from the external monitors, I have to use REISUB

Could be totally unrelated.
But earlier when I used to reboot my system was kept on ondemand but now when I reboot it is on schedutil

@vaxerski I'm fairly sure this should be reopened.
OBS Screen Recordings are fine now, sure, but I still do fairly often see weird graphical glitches appear on screen, usually after opening an app using rofi, before its window appears, or randomly on a monitor after flameshot closes, stuff like that. Looks like the exact same thing this issue was opened for
It is hard to record, as they are usually present for a very short time. But those glitches usually consist in some formation of randomly placed randomly colored pixels in a selected area (usually rectangles, about ~40% of pixels appear glitched)
I highly doubt that all of our gpu drivers decided do die all of a sudden, especially since the glitches seem to appear in specific situations.

Managed to replicate it pretty consistently.
https://quickshare.samsungcloud.com/bRdRajgOMG1E
This is what this issue looks like, most of the time (similar glitches sometimes appear in smaller parts of the screen). It shows part of the window that was previously open, even though it might not even exist anymore. Also, as can be seen from this video, the opening time of firefox is a lot longer when the glitch appears (it should always be nearly instantaneous).

is this nvidia

Nope, intel

open a different issue then, as this one is fixed.

I guess the original issue was never fixed then, as @niksingh710 isn't using nvidia either.
But sure, I can open a different one

this issue has been fixed.

I guess the original issue was never fixed then

I tried with both AMD and Nvidia, vaxrys' fixes fixed it on both

https://github.com/hyprwm/Hyprland/issues/4804


unknown symbol `expm1' (windows)

Hi!
I was installing random-fu which depends on your library and got the following error message:
[...]
ghc.exe: unable to load package `math-functions-<IP_ADDRESS>'
ghc.exe: C:\Users\joshua\Documents\PhD\Code\FSMs\.cabal-sandbox\x86_64-windows-ghc-7.10.3\math-functions-<IP_ADDRESS>-9MCqDJNYasuJ7jjxm3Fr23\HSmath-functions-<IP_ADDRESS>-9MCqDJNYasu
J7jjxm3Fr23.o: unknown symbol `expm1'

Using version 1.7 (which did not have expm1 yet) solved the issue for me.
This might be windows (10) related.

I feared it will happen. I'll try to reproduce it. Hopefully it could be passed by adding link flags to cabal. Otherwise I'll have to implement expm1 in haskell.

I cannot reproduce the issue on Win10 64bit. What windows are you using?

I too have Win10 with 64bits. I have a pretty vanilla install (no MinGW or Cygwin, only VS).

How did you install haskell? I used stack so difference could be in
installation method.

I installed the Haskell Platform with ghc 7.10.
I can try to update to a newer release, but that'll take some time (I will have to do it anyways at some point).

Ok I just installed Haskell Platform 8.0.1, and now it builds!

I used stack and GHC-7.10.3 and everything worked fine. I'll try to
reproduce issue with haskell platform.

If it's not possible to reproduce (for either of us), then maybe it has to do with some Windows update and we can close the issue.


Support for time series data

Add initial support for uncertain time series. This includes a class building on the distribution class but also contains the time steps.
Additionally, meaningful plots are required, for example, similar to this paper: https://doi.org/10.1109/TVCG.2024.3364388

The basic interface is created in the branch time_series.
What still needs to be done before merging to main:

[ ] Implement time series plot (see #30)
[ ] Implement correlation length plot (see #31)
[ ] Check and create example
[ ] Update documentation


[WIP] development for upcoming v1.0.0 release

Changes:

remove deprecated pois module
remove deprecated footprints module
remove deprecated utils_graph.induce_subgraph function
remove deprecated node_type parameter from io.load_graphml function
set use_cache=True by default (resolves #583)

Coverage increased (+0.5%) to 92.596% when pulling 7455fae4dc7714c4c548916ec4e2c7c1a10acba9 on v1 into 6a3ea0709a0ce1cda7513aa464ef2094dbe65d0e on master.


Issues with running basic-deploy.sh locally

When running in cloud shell, are prereqesuites (zip, az, etc.) are always available but, when running locally, the user may run into problem when running the script if prerequisites are not installed.
We need to harden the setup script that it checks for all prerequisites before attempting to set up Mona.

How about beginning the script with a check if it's in the Cloud Shell environment. I'm trying to find a reliable way of checking this, but maybe it is as simple as checking the existence of the ACC_ prefixed environment variables?
Maybe:
AZURE_ACCESS_TOKEN_FILE
ACC_RESOURCE_AUTHENTICATION_TOKEN

are good candidates?
This will not fix the issue with running the script locally, but at least we can inform the user that he/she must run in a cloud shell environment, not locally.

I will review the associated pull request and mark this as complete if successful


congestion control of quic-go

Dear,
I would ask you what kind of congestion control algorithm that quic-go supports?
Regards

Reno.


我采用ffmcreator合成一个2分钟的视频，累计时间9分钟完成，速度超慢能解决吗

我我采用ffmcreator合成一个2分钟的视频，里面有用了很多动画操作，
整个视频2分2秒，执行完成需要9分钟左右；服务器是独立主机，8核32G内存；
我通过优化了配置
highWaterMark=‘6mb’
parallel=8；
pool=true
没有任何左右，速度仍然很忙

const creator = new FFCreator({
cacheDir,
outputDir,
width,
height,
parallel: 8,
frames:8,
pool:true,
highWaterMark:'10kb',
audioLoop:false,
});
合成一个2分钟视频，需要9-10分钟

需要具体分析，可调整及更多ffmpeg params
vb | 无 | string | ffmpeg vb
-- | -- | -- | --
crf | 无 | number (默认crf) | ffmpeg crf
preset | 无 | string | ffmpeg preset

const path = require('path');
const colors = require('colors');
const CFG = require('./config');
const {FFCreatorCenter, FFAudio, FFScene, FFImage, FFText, FFCreator, FFVtuber} = require('../');
const font2 = path.join(__dirname, './img/font_song.ttf');
const ajpg = path.join(__dirname, './img/a.jpg');
const leftpng = path.join(__dirname, './img/left1.png');
const leftz1 = path.join(__dirname, './img/z1.png');
const leftz2 = path.join(__dirname, './img/z2.png');
const testerpng = path.join(__dirname, './img/tester.png');
const top_1 = path.join(__dirname, './img/top/'+CFG.ballArr[0]+'.png');
const top_2 = path.join(__dirname, './img/top/'+CFG.ballArr[1]+'.png');
const top_3 = path.join(__dirname, './img/top/'+CFG.ballArr[2]+'.png');
const top_4 = path.join(__dirname, './img/top/'+CFG.ballArr[3]+'.png');
const top_5 = path.join(__dirname, './img/top/'+CFG.ballArr[4]+'.png');
const top_6 = path.join(__dirname, './img/top/'+CFG.ballArr[5]+'.png');
const top_7 = path.join(__dirname, './img/top/'+CFG.ballArr[6]+'.png');
const png_num1 = path.join(__dirname, './img/'+ randomSence() +'/' +CFG.ballArr[0]+'.png');
const png_num2 = path.join(__dirname, './img/'+ randomSence() +'/'+CFG.ballArr[1]+'.png');
const png_num3 = path.join(__dirname, './img/'+ randomSence() +'/'+CFG.ballArr[2]+'.png');
const png_num4 = path.join(__dirname, './img/'+ randomSence() +'/'+CFG.ballArr[3]+'.png');
const png_num5 = path.join(__dirname, './img/'+ randomSence() +'/'+CFG.ballArr[4]+'.png');
const png_num6 = path.join(__dirname, './img/'+ randomSence() +'/'+CFG.ballArr[5]+'.png');
const png_num7 = path.join(__dirname, './img/'+ randomSence() +'/'+CFG.ballArr[6]+'.png');
const mp4_am = path.join(__dirname, './media/am.mp4');
const audioyy1 = path.join(__dirname, './sound/yy1.wav');
const audioyy2 = path.join(__dirname, './sound/yy2.wav');
const audioyy3 = path.join(__dirname, './sound/yy3.wav');
const audioyy4 = path.join(__dirname, './sound/yy4.wav');
const audioyy5 = path.join(__dirname, './sound/yy5.wav');
const audiohao = path.join(__dirname, './sound/hao.wav');
const audioqi = path.join(__dirname, './sound/qi.wav');
const mp3mix = path.join(__dirname, './mix.mp3');
const mp3mix2 = path.join(__dirname, './mix2.mp3');
const audiok1 = path.join(__dirname, './sound/k1.wav');
const audiok2 = path.join(__dirname, './sound/k2.wav');
const audiok3 = path.join(__dirname, './sound/k3.wav');
const audiok4 = path.join(__dirname, './sound/k4.wav');
const audiok5 = path.join(__dirname, './sound/k5.wav');
const audiok6 = path.join(__dirname, './sound/k6.wav');
const audiok7 = path.join(__dirname, './sound/k7.wav');
const outputDir = path.join(__dirname, './output/');
const cacheDir = path.join(__dirname, './cache/');
// 1.构造
const width = 1920;
const height = 1080;
const creator = new FFCreator({
cacheDir,
outputDir,
width,
height,
highWaterMark: '3mb',
parallel: 8,
fps: 30
});
//2.添加场景
const scene1 = new FFScene();
scene1.setDuration(132);//131秒
creator.addChild(scene1);
//3.添加视频
const mp4bg = new FFVtuber({path: mp4_am, x: 0, y: 0, width: width, height: height});
mp4bg.setAnchor(0, 0);
scene1.addChild(mp4bg);
//=======================声音开始================================
creator.addAudio(new FFAudio({ path: audioyy1, start:6 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioperoid1, start:8.5 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioperoid2, start:8.8 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioperoid3, start:9.1 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioperoid4, start:9.4 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioperoid5, start:9.7 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioperoid6, start:10 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioperoid7, start:10.3 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioyy2, start:10.6 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioperoid1, start:23 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioperoid2, start:23.3 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioperoid3, start:23.7 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioperoid4, start:24 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioperoid5, start:24.3 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioperoid6, start:24.7 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioperoid7, start:25 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioqi, start:25.5 ,loop:false }));
//启动
creator.addAudio(new FFAudio({ path: mp3mix, start:26 ,loop:false }));
creator.addAudio(new FFAudio({ path: mp3mix2, start:33 ,loop:false }));
//第1个号码
creator.addAudio(new FFAudio({ path: audiok1, start:38 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioball1, start:40 ,loop:false }));
creator.addAudio(new FFAudio({ path: audiohao, start:40.6 ,loop:false }));
//第2个号码
creator.addAudio(new FFAudio({ path: audiok2, start:48 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioball2, start:50 ,loop:false }));
creator.addAudio(new FFAudio({ path: audiohao, start:50.6 ,loop:false }));
//第3个号码
creator.addAudio(new FFAudio({ path: audiok3, start:58 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioball3, start:60 ,loop:false }));
creator.addAudio(new FFAudio({ path: audiohao, start:60.6 ,loop:false }));
//第4个号码
creator.addAudio(new FFAudio({ path: audiok4, start:68 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioball4, start:70 ,loop:false }));
creator.addAudio(new FFAudio({ path: audiohao, start:70.6 ,loop:false }));
//第5个号码
creator.addAudio(new FFAudio({ path: audiok5, start:78 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioball5, start:80 ,loop:false }));
creator.addAudio(new FFAudio({ path: audiohao, start:80.6 ,loop:false }));
//第6个号码
creator.addAudio(new FFAudio({ path: audiok6, start:88 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioball6, start:90 ,loop:false }));
creator.addAudio(new FFAudio({ path: audiohao, start:90.6 ,loop:false }));
//第7个号码
creator.addAudio(new FFAudio({ path: audiok7, start:98 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioball7, start:100 ,loop:false }));
creator.addAudio(new FFAudio({ path: audiohao, start:100.6 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioyy3, start:102 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioball1, start:107 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioball2, start:108 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioball3, start:109 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioball4, start:110 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioball5, start:111 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioball6, start:112 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioyy4, start:113 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioball7, start:114 ,loop:false }));
creator.addAudio(new FFAudio({ path: audioyy5, start:117 ,loop:false }));
//=======================声音end================================
/*=====
const test1 = new FFImage({path: ajpg, x: 1000, y: 400, width: 500, height: 300});
test1.setAnchor(0.5, 0.5);
test1.addAnimate({
from: {rotate:0},
to: {rotate:0.9},
time: 2,
delay: 1
});
scene1.addChild(test1);
*/
const delaynum1 = 36;
const centerup1 = new FFImage({path: png_num1, x: 919, y: 590, width: 31, height: 31, opacity:0.1});
centerup1.setAnchor(0.5, 0.5);
centerup1.addEffect(['fadeIn'], .3, delaynum1-.7);
centerup1.addAnimate({
from: {x: 919, y: 590},
to: {x: 919, y: 418},
time: .3,
delay: delaynum1-.7
});
scene1.addChild(centerup1);
centerup1.remove(delaynum1);
const center1 = new FFImage({path: png_num1, x: 919, y: 418, width: 31, height: 31, opacity:0.5});
center1.setAnchor(0.5, 0.5);
center1.addEffect(['fadeIn'], .3, delaynum1);
center1.addAnimate({
from: {x: 919, y: 418},
to: {x: 820, y: 445},
time: .1,
delay: delaynum1
});
center1.addAnimate({
from: {x: 820, y: 445},
to: {x: 763, y: 492},
time: .1,
delay: delaynum1 + 0.1
});
center1.addAnimate({
from: {x: 763, y: 492},
to: {x: 727, y: 558},
time: .1,
delay: delaynum1 + 0.2
});
center1.addAnimate({
from: {x: 727, y: 558},
to: {x: 720, y: 605, rotate:Math.random()},
time: .1,
delay: delaynum1 + 0.3
});
scene1.addChild(center1);
const top1= new FFImage({path: top_1, x: 930, y: 680, width: 150, height: 150});
top1.setAnchor(0, 0);
top1.addEffect(['fadeIn'], 0.5, delaynum1 + 0.4);
top1.addAnimate({
from: {x: 930, y: 680},
to: {x: 345, y: 84},
time: 0.5,
delay: delaynum1 + 0.4
});
scene1.addChild(top1);
const leftball1 = new FFImage({path: png_num1, x: 245, y: 377, width: 110, height: 110});
leftball1.setAnchor(0.5, 0.5);
leftball1.addEffect(['rollIn'], .3, delaynum1);
leftball1.addAnimate({
from: {x: 245, y: 377},
to: {x: 164, y: 495},
time: .1,
delay: delaynum1
});
leftball1.addAnimate({
from: {x: 164, y: 495},
to: {x: 92, y: 710, rotate:0.1},
time: .1,
delay: delaynum1 + 0.1
});
leftball1.addAnimate({
from: {x: 92, y: 710},
to: {x: 100, y: 940, rotate:0.3},
time: .1,
delay: delaynum1 + 0.2
});
leftball1.addAnimate({
from: {x: 90, y: 940},
to: {x: 130, y: 1015, rotate:Math.random()},
time: .1,
delay: delaynum1 + 0.3
});
leftball1.addAnimate({
from: {x: 150, y: 950},
to: {x: 120, y: 930, rotate:Math.random()},
time: .06,
delay: delaynum1 + 0.4
});
leftball1.addAnimate({
from: {x: 130, y: 880},
to: {x: 135, y: 1015, rotate:Math.random()},
time: .06,
delay: delaynum1 + 0.46
});
scene1.addChild(leftball1);
leftball1.addAnimate({
from: {rotate:leftball1.display.rotation},
to:   {rotate:leftball1.display.rotation+0.001},
time: .04,
delay: delaynum1 + 1
});
leftball1.addAnimate({
from: {rotate:leftball1.display.rotation},
to:   {rotate:leftball1.display.rotation+0.006},
time: .04,
delay: delaynum1 + 2
});
leftball1.addAnimate({
from: {rotate:leftball1.display.rotation},
to:   {rotate:leftball1.display.rotation+0.002},
time: .04,
delay: delaynum1 + 3.8
});
leftball1.addAnimate({
from: {rotate:leftball1.display.rotation},
to:   {rotate:leftball1.display.rotation-0.001},
time: .04,
delay: delaynum1 + 5.3
});
leftball1.addAnimate({
from: {rotate:leftball1.display.rotation},
to:   {rotate:leftball1.display.rotation+0.005},
time: .04,
delay: delaynum1 + 7.8
});
center1.addAnimate({
from: {rotate:leftball1.display.rotation},
to:   {rotate:leftball1.display.rotation+0.001},
time: .04,
delay: delaynum1 + 1
});
center1.addAnimate({
from: {rotate:leftball1.display.rotation},
to:   {rotate:leftball1.display.rotation+0.006},
time: .04,
delay: delaynum1 + 2
});
center1.addAnimate({
from: {rotate:leftball1.display.rotation},
to:   {rotate:leftball1.display.rotation+0.002},
time: .04,
delay: delaynum1 + 3.8
});
center1.addAnimate({
from: {rotate:leftball1.display.rotation},
to:   {rotate:leftball1.display.rotation-0.001},
time: .04,
delay: delaynum1 + 5.3
});
center1.addAnimate({
from: {rotate:leftball1.display.rotation},
to:   {rotate:leftball1.display.rotation+0.005},
time: .04,
delay: delaynum1 + 7.8
});
const delaynum2 = 46;
const centerup2 = new FFImage({path: png_num2, x: 919, y: 590, width: 31, height: 31, opacity:0.1});
centerup2.setAnchor(0.5, 0.5);
centerup2.addEffect(['fadeIn'], .3, delaynum2-.7);
centerup2.addAnimate({
from: {x: 919, y: 590},
to: {x: 919, y: 418},
time: .3,
delay: delaynum2-.7
});
scene1.addChild(centerup2);
centerup2.remove(delaynum2);
const center2 = new FFImage({path: png_num2, x: 919, y: 418, width: 31, height: 31, opacity:0.5});
center2.setAnchor(0.5, 0.5);
center2.addEffect(['fadeIn'], .3, delaynum2);
center2.addAnimate({
from: {x: 919, y: 418},
to: {x: 820, y: 445},
time: .1,
delay: delaynum2
});
center2.addAnimate({
from: {x: 820, y: 445},
to: {x: 763, y: 492},
time: .1,
delay: delaynum2 + 0.1
});
center2.addAnimate({
from: {x: 763, y: 492},
to: {x: 720, y: 577, rotate:Math.random()},
time: .1,
delay: delaynum2 + 0.2
});
scene1.addChild(center2);
const top2= new FFImage({path: top_2, x: 930, y: 680, width: 150, height: 150});
top2.setAnchor(0, 0);
top2.addEffect(['fadeIn'], 0.5, delaynum2 + 0.4);
top2.addAnimate({
from: {x: 930, y: 680},
to: {x: 495, y: 84},
time: 0.5,
delay: delaynum2 + 0.4
});
scene1.addChild(top2);
const leftball2 = new FFImage({path: png_num2, x: 245, y: 377, width: 110, height: 110});
leftball2.setAnchor(0.5, 0.5);
leftball2.addEffect(['rollIn'], .3, delaynum2);
leftball2.addAnimate({
from: {x: 245, y: 377},
to: {x: 164, y: 495, rotate:0.1},
time: .1,
delay: delaynum2
});
leftball2.addAnimate({
from: {x: 164, y: 495},
to: {x: 92, y: 710, rotate:0.4},
time: .1,
delay: delaynum2 + 0.1
});
leftball2.addAnimate({
from: {x: 92, y: 710},
to: {x: 100, y: 890, rotate:0.8},
time: .1,
delay: delaynum2 + 0.2
});
leftball2.addAnimate({
from: {x: 100, y: 710},
to: {x: 102, y: 930, rotate:0.2},
time: .07,
delay: delaynum2 + 0.3
});
leftball2.addAnimate({
from: {x: 95, y: 882},
to: {x: 85, y: 860, rotate:0.1},
time: .06,
delay: delaynum2 + 0.37
});
leftball2.addAnimate({
from: {x: 85, y: 860},
to: {x: 95, y: 930, rotate:Math.random()},
time: .06,
delay: delaynum2 + 0.43
});
leftball1.addAnimate({
from: {x: 130},
to: {x: 134, rotate:leftball1.display.rotation+0.05},
time: .1,
delay: delaynum2 + 0.3
});
scene1.addChild(leftball2);
leftball1.addAnimate({
from: {rotate:leftball1.display.rotation},
to:   {rotate:leftball1.display.rotation+0.02},
time: .04,
delay: delaynum2 + 3
});
leftball2.addAnimate({
from: {rotate:leftball2.display.rotation},
to:   {rotate:leftball2.display.rotation+0.004},
time: .04,
delay: delaynum2 + 1.5
});
leftball2.addAnimate({
from: {rotate:leftball2.display.rotation},
to:   {rotate:leftball2.display.rotation+0.006},
time: .04,
delay: delaynum2 + 3
});
leftball2.addAnimate({
from: {rotate:leftball2.display.rotation},
to:   {rotate:leftball2.display.rotation+0.002},
time: .04,
delay: delaynum2 + 5
});
//中途滚动center
center1.addAnimate({
from: {rotate:leftball1.display.rotation},
to:   {rotate:leftball1.display.rotation+0.02},
time: .04,
delay: delaynum2 + 3
});
center2.addAnimate({
from: {rotate:leftball2.display.rotation},
to:   {rotate:leftball2.display.rotation+0.004},
time: .04,
delay: delaynum2 + 1.5
});
center2.addAnimate({
from: {rotate:leftball2.display.rotation},
to:   {rotate:leftball2.display.rotation+0.006},
time: .04,
delay: delaynum2 + 3
});
center2.addAnimate({
from: {rotate:leftball2.display.rotation},
to:   {rotate:leftball2.display.rotation+0.002},
time: .04,
delay: delaynum2 + 5
});
const delaynum3 = 56;
const centerup3 = new FFImage({path: png_num3, x: 919, y: 590, width: 31, height: 31, opacity:0.1});
centerup3.setAnchor(0.5, 0.5);
centerup3.addEffect(['fadeIn'], .3, delaynum3-.7);
centerup3.addAnimate({
from: {x: 919, y: 590},
to: {x: 919, y: 418},
time: .3,
delay: delaynum3-.7
});
scene1.addChild(centerup3);
centerup3.remove(delaynum3);
const center3 = new FFImage({path: png_num3, x: 919, y: 418, width: 31, height: 31, opacity:0.5});
center3.setAnchor(0.5, 0.5);
center3.addEffect(['fadeIn'], .3, delaynum3);
center3.addAnimate({
from: {x: 919, y: 418},
to: {x: 820, y: 445},
time: .1,
delay: delaynum3
});
center3.addAnimate({
from: {x: 820, y: 445},
to: {x: 793, y: 470},
time: .05,
delay: delaynum3 + 0.1
});
center3.addAnimate({
from: {x: 793, y: 470},
to: {x: 731, y: 550, rotate:Math.random()},
time: .05,
delay: delaynum3 + 0.15
});
scene1.addChild(center3);
const top3= new FFImage({path: top_3, x: 930, y: 680, width: 150, height: 150});
top3.setAnchor(0, 0);
top3.addEffect(['fadeIn'], 0.5, delaynum3 + 0.4);
top3.addAnimate({
from: {x: 930, y: 680},
to: {x: 650, y: 84},
time: 0.5,
delay: delaynum3 + 0.4
});
scene1.addChild(top3);
const leftball3 = new FFImage({path: png_num3, x: 245, y: 377, width: 110, height: 110});
leftball3.setAnchor(0.5, 0.5);
leftball3.addEffect(['rollIn'], .3, delaynum3);
leftball3.addAnimate({
from: {x: 245, y: 377},
to: {x: 164, y: 495},
time: .1,
delay: delaynum3
});
leftball3.addAnimate({
from: {x: 164, y: 495},
to: {x: 122, y: 690, rotate:0.2},
time: .1,
delay: delaynum3 + 0.1
});
leftball3.addAnimate({
from: {x: 122, y: 690},
to: {x: 100, y: 830, rotate:0.5},
time: .1,
delay: delaynum3 + 0.2
});
leftball3.addAnimate({
from: {x: 100, y: 830},
to: {x: 110, y: 820, rotate:0.1},
time: .06,
delay: delaynum3 + 0.37
});
leftball3.addAnimate({
from: {x: 110, y: 820, rotate:leftball3.display.rotation},
to: {x: 102, y: 830, rotate:Math.random()},
time: .06,
delay: delaynum3 + 0.43
});
leftball2.addAnimate({
from: {rotate:0.2},
to: {rotate:0.1},
time: .1,
delay: delaynum3 + 0.3
});
leftball1.addAnimate({
from: {x: 130},
to: {x: 132, rotate:leftball1.display.rotation-0.08},
time: .1,
delay: delaynum3 + 0.3
});
scene1.addChild(leftball3);
leftball2.addAnimate({
from: {rotate:leftball2.display.rotation},
to:   {rotate:leftball2.display.rotation-0.01},
time: .04,
delay: delaynum3 + 3
});
leftball3.addAnimate({
from: {rotate:leftball3.display.rotation},
to:   {rotate:leftball3.display.rotation+0.003},
time: .04,
delay: delaynum3 + 2
});
leftball3.addAnimate({
from: {rotate:leftball3.display.rotation},
to:   {rotate:leftball3.display.rotation+0.007},
time: .04,
delay: delaynum3 + 4
});
leftball3.addAnimate({
from: {rotate:leftball3.display.rotation},
to:   {rotate:leftball3.display.rotation-0.005},
time: .04,
delay: delaynum3 + 6.5
});
center2.addAnimate({
from: {rotate:leftball2.display.rotation},
to:   {rotate:leftball2.display.rotation-0.01},
time: .04,
delay: delaynum3 + 3
});
center3.addAnimate({
from: {rotate:leftball3.display.rotation},
to:   {rotate:leftball3.display.rotation+0.003},
time: .04,
delay: delaynum3 + 2
});
center3.addAnimate({
from: {rotate:leftball3.display.rotation},
to:   {rotate:leftball3.display.rotation+0.007},
time: .04,
delay: delaynum3 + 4
});
center3.addAnimate({
from: {rotate:leftball3.display.rotation},
to:   {rotate:leftball3.display.rotation-0.005},
time: .04,
delay: delaynum3 + 6.5
});
const delaynum4 = 66;
const centerup4 = new FFImage({path: png_num4, x: 919, y: 590, width: 31, height: 31, opacity:0.1});
centerup4.setAnchor(0.5, 0.5);
centerup4.addEffect(['fadeIn'], .3, delaynum4-.7);
centerup4.addAnimate({
from: {x: 919, y: 590},
to: {x: 919, y: 418},
time: .3,
delay: delaynum4-.7
});
scene1.addChild(centerup4);
centerup4.remove(delaynum4);
const center4 = new FFImage({path: png_num4, x: 919, y: 418, width: 31, height: 31, opacity:0.5});
center4.setAnchor(0.5, 0.5);
center4.addEffect(['fadeIn'], .3, delaynum4);
center4.addAnimate({
from: {x: 919, y: 418},
to: {x: 820, y: 445},
time: .1,
delay: delaynum4
});
center4.addAnimate({
from: {x: 820, y: 445},
to: {x: 744, y: 520, rotate:Math.random()},
time: .1,
delay: delaynum4 + 0.1
});
scene1.addChild(center4);
const top4 = new FFImage({path: top_4, x: 930, y: 680, width: 150, height: 150});
top4.setAnchor(0, 0);
top4.addEffect(['fadeIn'], 0.5, delaynum4 + 0.4);
top4.addAnimate({
from: {x: 930, y: 680},
to: {x: 805, y: 84},
time: 0.5,
delay: delaynum4 + 0.4
});
scene1.addChild(top4);
const leftball4 = new FFImage({path: png_num4, x: 245, y: 377, width: 110, height: 110});
leftball4.setAnchor(0.5, 0.5);
leftball4.addEffect(['rollIn'], .3, delaynum4);
leftball4.addAnimate({
from: {x: 245, y: 377},
to: {x: 184, y: 420, rotate:0.2},
time: .1,
delay: delaynum4
});
leftball4.addAnimate({
from: {x: 184, y: 420},
to: {x: 164, y: 495, rotate:0.7},
time: .1,
delay: delaynum4 + 0.1
});
leftball4.addAnimate({
from: {x: 164, y: 495},
to: {x: 106, y: 740, rotate:0.4},
time: .1,
delay: delaynum4 + 0.2
});
leftball4.addAnimate({
from: {x: 106, y: 740},
to: {x: 120, y: 670, rotate:0.1},
time: .05,
delay: delaynum4 + 0.3
});
leftball4.addAnimate({
from: {x: 120, y: 670},
to: {x: 112, y: 740,  rotate:leftball4.display.rotation},
time: .05,
delay: delaynum4 + 0.35
});
leftball3.addAnimate({
from: {rotate:0},
to: {rotate:0.2},
time: .06,
delay: delaynum4 + 0.43
});
leftball2.addAnimate({
from: {rotate:0.2},
to: {rotate:0.1},
time: .1,
delay: delaynum4 + 0.3
});
leftball1.addAnimate({
from: {x: 130},
to: {x: 134, rotate:0.1},
time: .1,
delay: delaynum4 + 0.3
});
scene1.addChild(leftball4);
leftball1.addAnimate({
from: {rotate:leftball1.display.rotation},
to:   {rotate:leftball1.display.rotation-0.01},
time: .04,
delay: delaynum4 + 4
});
leftball3.addAnimate({
from: {rotate:leftball3.display.rotation},
to:   {rotate:leftball3.display.rotation+0.01},
time: .04,
delay: delaynum4 + 3
});
leftball4.addAnimate({
from: {rotate:leftball4.display.rotation},
to:   {rotate:leftball4.display.rotation+0.004},
time: .04,
delay: delaynum4 + 2
});
leftball4.addAnimate({
from: {rotate:leftball4.display.rotation},
to:   {rotate:leftball4.display.rotation+0.007},
time: .04,
delay: delaynum4 + 3.7
});
leftball4.addAnimate({
from: {rotate:leftball4.display.rotation},
to:   {rotate:leftball4.display.rotation+0.008},
time: .04,
delay: delaynum4 + 5
});
leftball4.addAnimate({
from: {rotate:leftball4.display.rotation},
to:   {rotate:leftball4.display.rotation+0.001},
time: .04,
delay: delaynum4 + 7
});
center1.addAnimate({
from: {rotate:leftball1.display.rotation},
to:   {rotate:leftball1.display.rotation-0.01},
time: .04,
delay: delaynum4 + 4
});
center3.addAnimate({
from: {rotate:leftball3.display.rotation},
to:   {rotate:leftball3.display.rotation+0.01},
time: .04,
delay: delaynum4 + 3
});
center4.addAnimate({
from: {rotate:leftball4.display.rotation},
to:   {rotate:leftball4.display.rotation+0.004},
time: .04,
delay: delaynum4 + 2
});
center4.addAnimate({
from: {rotate:leftball4.display.rotation},
to:   {rotate:leftball4.display.rotation+0.007},
time: .04,
delay: delaynum4 + 3.7
});
center4.addAnimate({
from: {rotate:leftball4.display.rotation},
to:   {rotate:leftball4.display.rotation+0.008},
time: .04,
delay: delaynum4 + 5
});
center4.addAnimate({
from: {rotate:leftball4.display.rotation},
to:   {rotate:leftball4.display.rotation+0.001},
time: .04,
delay: delaynum4 + 7
});
const delaynum5 = 76;
const centerup5 = new FFImage({path: png_num5, x: 919, y: 590, width: 31, height: 31, opacity:0.1});
centerup5.setAnchor(0.5, 0.5);
centerup5.addEffect(['fadeIn'], .3, delaynum5-.7);
centerup5.addAnimate({
from: {x: 919, y: 590},
to: {x: 919, y: 418},
time: .3,
delay: delaynum5-.7
});
scene1.addChild(centerup5);
centerup5.remove(delaynum5);
const center5 = new FFImage({path: png_num5, x: 919, y: 418, width: 31, height: 31, opacity:0.5});
center5.setAnchor(0.5, 0.5);
center5.addEffect(['fadeIn'], .3, delaynum5);
center5.addAnimate({
from: {x: 919, y: 418},
to: {x: 820, y: 445},
time: .1,
delay: delaynum5
});
center5.addAnimate({
from: {x: 805, y: 445},
to: {x: 761, y: 495, rotate:Math.random()},
time: .1,
delay: delaynum5 + 0.1
});
scene1.addChild(center5);
const top5 = new FFImage({path: top_5, x: 930, y: 680, width: 150, height: 150});
top5.setAnchor(0, 0);
top5.addEffect(['fadeIn'], 0.5, delaynum5 + 0.4);
top5.addAnimate({
from: {x: 930, y: 680},
to: {x: 955, y: 84},
time: 0.5,
delay: delaynum5 + 0.4
});
scene1.addChild(top5);
const leftball5 = new FFImage({path: png_num5, x: 245, y: 377, width: 110, height: 110});
leftball5.setAnchor(0.5, 0.5);
leftball5.addEffect(['rollIn'], .3, delaynum5);
leftball5.addAnimate({
from: {x: 245, y: 377},
to: {x: 204, y: 400, rotate:0.9},
time: .05,
delay: delaynum5
});
leftball5.addAnimate({
from: {x: 204, y: 400},
to: {x: 164, y: 495, rotate:0.5},
time: .05,
delay: delaynum5 + 0.05
});
leftball5.addAnimate({
from: {x: 164, y: 495},
to: {x: 125, y: 640, rotate:0.2},
time: .1,
delay: delaynum5 + 0.1
});
leftball5.addAnimate({
from: {x: 125, y: 640},
to: {x: 140, y: 520, rotate:0.1},
time: .05,
delay: delaynum5 + 0.2
});
leftball5.addAnimate({
from: {x: 140, y: 520},
to: {x: 135, y: 640, rotate:Math.random()},
time: .05,
delay: delaynum5 + 0.25
});
leftball4.addAnimate({
from: {x: 110},
to: {x: 107, rotate:0.2},
time: .05,
delay: delaynum5 + 0.25
});
leftball3.addAnimate({
from: {rotate:0},
to: {rotate:0.2},
time: .06,
delay: delaynum5 + 0.25
});
leftball2.addAnimate({
from: {rotate:0.1},
to: {rotate:0.2},
time: .1,
delay: delaynum5 + 0.25
});
leftball1.addAnimate({
from: {x: 130},
to: {x: 134, rotate:0.2},
time: .1,
delay: delaynum5 + 0.25
});
scene1.addChild(leftball5);
leftball4.addAnimate({
from: {rotate:leftball4.display.rotation},
to:   {rotate:leftball4.display.rotation-0.01},
time: .04,
delay: delaynum5 + 4
});
leftball3.addAnimate({
from: {rotate:leftball3.display.rotation},
to:   {rotate:leftball3.display.rotation-0.01},
time: .04,
delay: delaynum5 + 3
});
leftball2.addAnimate({
from: {rotate:leftball2.display.rotation},
to:   {rotate:leftball2.display.rotation-0.01},
time: .04,
delay: delaynum5 + 5
});
leftball5.addAnimate({
from: {rotate:leftball5.display.rotation},
to:   {rotate:leftball5.display.rotation-0.006},
time: .04,
delay: delaynum5 + 1.4
});
leftball5.addAnimate({
from: {rotate:leftball5.display.rotation},
to:   {rotate:leftball5.display.rotation-0.01},
time: .04,
delay: delaynum5 + 3
});
leftball5.addAnimate({
from: {rotate:leftball5.display.rotation},
to:   {rotate:leftball5.display.rotation+0.008},
time: .04,
delay: delaynum5 + 5
});
leftball5.addAnimate({
from: {rotate:leftball5.display.rotation},
to:   {rotate:leftball5.display.rotation+0.003},
time: .04,
delay: delaynum5 + 7
});
center4.addAnimate({
from: {rotate:center4.display.rotation},
to:   {rotate:center4.display.rotation-0.01},
time: .04,
delay: delaynum5 + 4
});
center3.addAnimate({
from: {rotate:center3.display.rotation},
to:   {rotate:center3.display.rotation-0.01},
time: .04,
delay: delaynum5 + 3
});
center2.addAnimate({
from: {rotate:center2.display.rotation},
to:   {rotate:center2.display.rotation-0.01},
time: .04,
delay: delaynum5 + 5
});
center5.addAnimate({
from: {rotate:center5.display.rotation},
to:   {rotate:center5.display.rotation-0.006},
time: .04,
delay: delaynum5 + 1.4
});
center5.addAnimate({
from: {rotate:center5.display.rotation},
to:   {rotate:center5.display.rotation-0.01},
time: .04,
delay: delaynum5 + 3
});
center5.addAnimate({
from: {rotate:center5.display.rotation},
to:   {rotate:center5.display.rotation+0.008},
time: .04,
delay: delaynum5 + 5
});
center5.addAnimate({
from: {rotate:center5.display.rotation},
to:   {rotate:center5.display.rotation+0.003},
time: .04,
delay: delaynum5 + 7
});
const delaynum6 = 86;
const centerup6 = new FFImage({path: png_num6, x: 919, y: 590, width: 31, height: 31, opacity:0.1});
centerup6.setAnchor(0.5, 0.5);
centerup6.addEffect(['fadeIn'], .3, delaynum6-.7);
centerup6.addAnimate({
from: {x: 919, y: 590},
to: {x: 919, y: 418},
time: .3,
delay: delaynum6-.7
});
scene1.addChild(centerup6);
centerup6.remove(delaynum6);
const center6 = new FFImage({path: png_num6, x: 919, y: 418, width: 31, height: 31, opacity:0.5});
center6.setAnchor(0.5, 0.5);
center6.addEffect(['fadeIn'], .3, delaynum6);
center6.addAnimate({
from: {x: 919, y: 418},
to: {x: 820, y: 445},
time: .1,
delay: delaynum6
});
center6.addAnimate({
from: {x: 820, y: 445},
to: {x: 779, y: 473, rotate:Math.random()},
time: .1,
delay: delaynum6 + 0.1
});
scene1.addChild(center6);
const top6 = new FFImage({path: top_6, x: 930, y: 680, width: 150, height: 150});
top6.setAnchor(0, 0);
top6.addEffect(['fadeIn'], 0.5, delaynum6 + 0.4);
top6.addAnimate({
from: {x: 930, y: 680},
to: {x: 1105, y: 84},
time: 0.5,
delay: delaynum6 + 0.4
});
scene1.addChild(top6);
const leftball6 = new FFImage({path: png_num6, x: 245, y: 377, width: 110, height: 110});
leftball6.setAnchor(0.5, 0.5);
leftball6.addEffect(['rollIn'], .3, delaynum6);
leftball6.addAnimate({
from: {x: 245, y: 377},
to: {x: 204, y: 400, rotate:0.1},
time: .05,
delay: delaynum6
});
leftball6.addAnimate({
from: {x: 204, y: 400},
to: {x: 175, y: 550, rotate:0.5},
time: .05,
delay: delaynum6 + 0.05
});
leftball6.addAnimate({
from: {x: 175, y: 550},
to: {x: 170, y: 500, rotate:0.1},
time: .05,
delay: delaynum6 + 0.1
});
leftball6.addAnimate({
from: {x: 170, y: 500},
to: {x: 183, y: 550, rotate:Math.random()},
time: .05,
delay: delaynum6 + 0.15
});
leftball5.addAnimate({
from: {rotate:0.1},
to: {rotate:Math.random()},
time: .05,
delay: delaynum6 + 0.15
});
leftball4.addAnimate({
from: {rotate:0.2},
to: {rotate:0.23},
time: .05,
delay: delaynum6 + 0.15
});
leftball3.addAnimate({
from: {rotate:0},
to: {rotate:0.2},
time: .06,
delay: delaynum6 + 0.15
});
leftball2.addAnimate({
from: {rotate:0.1},
to: {rotate:0.2},
time: .1,
delay: delaynum6 + 0.15
});
leftball1.addAnimate({
from: {x: 130},
to: {x: 134, rotate:0.2},
time: .1,
delay: delaynum6 + 0.15
});
scene1.addChild(leftball6);
leftball4.addAnimate({
from: {rotate:leftball4.display.rotation},
to:   {rotate:leftball4.display.rotation+0.01},
time: .04,
delay: delaynum6 + 2
});
leftball3.addAnimate({
from: {rotate:leftball3.display.rotation},
to:   {rotate:leftball3.display.rotation+0.01},
time: .04,
delay: delaynum6 + 3
});
leftball5.addAnimate({
from: {rotate:leftball5.display.rotation},
to:   {rotate:leftball5.display.rotation+0.01},
time: .04,
delay: delaynum6 + 5
});
leftball6.addAnimate({
from: {rotate:leftball6.display.rotation},
to:   {rotate:leftball6.display.rotation+0.001},
time: .04,
delay: delaynum6 + 1
});
leftball6.addAnimate({
from: {rotate:leftball6.display.rotation},
to:   {rotate:leftball6.display.rotation+0.004},
time: .04,
delay: delaynum6 + 2
});
leftball6.addAnimate({
from: {rotate:leftball6.display.rotation},
to:   {rotate:leftball6.display.rotation-0.004},
time: .04,
delay: delaynum6 + 4
});
leftball6.addAnimate({
from: {rotate:leftball6.display.rotation},
to:   {rotate:leftball6.display.rotation+0.004},
time: .04,
delay: delaynum6 + 6
});
center4.addAnimate({
from: {rotate:leftball4.display.rotation},
to:   {rotate:leftball4.display.rotation+0.01},
time: .04,
delay: delaynum6 + 2
});
center3.addAnimate({
from: {rotate:leftball3.display.rotation},
to:   {rotate:leftball3.display.rotation+0.01},
time: .04,
delay: delaynum6 + 3
});
center5.addAnimate({
from: {rotate:leftball5.display.rotation},
to:   {rotate:leftball5.display.rotation+0.01},
time: .04,
delay: delaynum6 + 5
});
center6.addAnimate({
from: {rotate:leftball6.display.rotation},
to:   {rotate:leftball6.display.rotation+0.001},
time: .04,
delay: delaynum6 + 1
});
center6.addAnimate({
from: {rotate:leftball6.display.rotation},
to:   {rotate:leftball6.display.rotation+0.004},
time: .04,
delay: delaynum6 + 2
});
center6.addAnimate({
from: {rotate:leftball6.display.rotation},
to:   {rotate:leftball6.display.rotation-0.004},
time: .04,
delay: delaynum6 + 4
});
center6.addAnimate({
from: {rotate:leftball6.display.rotation},
to:   {rotate:leftball6.display.rotation+0.004},
time: .04,
delay: delaynum6 + 6
});
const delaynum7 = 96;
const centerup7 = new FFImage({path: png_num7, x: 919, y: 590, width: 31, height: 31, opacity:0.1});
centerup7.setAnchor(0.5, 0.5);
centerup7.addEffect(['fadeIn'], .3, delaynum7-.7);
centerup7.addAnimate({
from: {x: 919, y: 590},
to: {x: 919, y: 418},
time: .3,
delay: delaynum7-.7
});
scene1.addChild(centerup7);
centerup7.remove(delaynum7);
const center7 = new FFImage({path: png_num7, x: 919, y: 418, width: 31, height: 31, opacity:0.5});
center7.setAnchor(0.5, 0.5);
center7.addEffect(['fadeIn'], .3, delaynum7);
center7.addAnimate({
from: {x: 919, y: 418},
to: {x: 1037, y: 456},
time: .1,
delay: delaynum7
});
center7.addAnimate({
from: {x: 1037, y: 456},
to: {x: 1108, y: 525},
time: .1,
delay: delaynum7 + 0.1
});
center7.addAnimate({
from: {x: 1108, y: 525},
to: {x: 1125, y: 605, rotate:Math.random()},
time: .1,
delay: delaynum7 + 0.2
});
scene1.addChild(center7);
const top7 = new FFImage({path: top_7, x: 930, y: 680, width: 150, height: 150});
top7.setAnchor(0, 0);
top7.addEffect(['fadeIn'], 0.5, delaynum7 + 0.4);
top7.addAnimate({
from: {x: 930, y: 680},
to: {x: 1300, y: 84},
time: 0.5,
delay: delaynum7 + 0.4
});
scene1.addChild(top7);
const leftball7 = new FFImage({path: png_num7, x: 305, y: 889, width: 110, height: 110});
leftball7.setAnchor(0.5, 0.5);
leftball7.addEffect(['rollIn'], .06, delaynum7);
leftball7.addAnimate({
from: {x: 305, y: 889},
to: {x: 374, y: 1015, rotate:0.1},
time: .1,
delay: delaynum7
});
leftball7.addAnimate({
from: {x: 374, y: 990, rotate:0.1},
to: {x: 320+getRandom(), y: 920, rotate:0.4},
time: .1,
delay: delaynum7 + 0.1
});
leftball7.addAnimate({
from: {x: 320, y: 920},
to: {x: 374+getRandom(), y: 1015, rotate:0.8},
time: .07,
delay: delaynum7 + 0.27
});
leftball7.addAnimate({
from: {rotate:0.2},
to: {rotate:Math.random()},
time: .05,
delay: delaynum7 + 0.34
});
scene1.addChild(leftball7);
leftball6.addAnimate({
from: {rotate:leftball6.display.rotation},
to:   {rotate:leftball6.display.rotation-0.004},
time: .04,
delay: delaynum7 + 1
});
leftball6.addAnimate({
from: {rotate:leftball6.display.rotation},
to:   {rotate:leftball6.display.rotation+0.004},
time: .04,
delay: delaynum7 + 2
});
leftball6.addAnimate({
from: {rotate:leftball6.display.rotation},
to:   {rotate:leftball6.display.rotation+0.004},
time: .04,
delay: delaynum7 + 4
});
leftball6.addAnimate({
from: {rotate:leftball6.display.rotation},
to:   {rotate:leftball6.display.rotation+0.004},
time: .04,
delay: delaynum7 + 6
});
center6.addAnimate({
from: {rotate:leftball6.display.rotation},
to:   {rotate:leftball6.display.rotation-0.004},
time: .04,
delay: delaynum7 + 1
});
center6.addAnimate({
from: {rotate:leftball6.display.rotation},
to:   {rotate:leftball6.display.rotation+0.004},
time: .04,
delay: delaynum7 + 2
});
center6.addAnimate({
from: {rotate:leftball6.display.rotation},
to:   {rotate:leftball6.display.rotation+0.004},
time: .04,
delay: delaynum7 + 4
});
center6.addAnimate({
from: {rotate:leftball6.display.rotation},
to:   {rotate:leftball6.display.rotation+0.004},
time: .04,
delay: delaynum7 + 6
});
creator.output(path.join(__dirname, "../../public/video/"+CFG.id+CFG.peroid+".mp4"));
creator.start();
creator.on('start', () => {
console.log(AI-MIX start);
});
creator.on('error', e => {
console.log(colors.red(AI-MIX error: ${e.error}));
});
creator.on('progress', e => {
console.log(colors.yellow(AI-MIX progress: ${(e.percent * 100) >> 0}%));
});
creator.on('complete', e => {
console.log(
colors.magenta(AI-MIX completed: \n USEAGE: ${e.useage} \n PATH: ${e.output} ),
);
console.log(colors.green(\n --- You can press the s key or the w key to restart! --- \n));
});
============================
上面是代码，可以帮我看看吗，我不知道参数怎么调 @drawcall

我把fps:24, 原本9分多时间，现在7分多钟时间

crf参数，我从0 - 10 - 22 - 50 都试过了，合成时间还是9-10分钟，巨慢

preset参数，我从 veryslow到 ultrafast都是试过了，合成时间9-10分钟，巨慢

vb 参数怎么设置呢？

const creator = new FFCreator({
cacheDir,
outputDir,
width,
height,
audioLoop:false,
highWaterMark: '32mb', //合成速度慢
renderClarity:'low',
frames: 8,
threads: 8,
pool:true,
//preset:'veryslow', //合成速度慢
//crf:50,  //合成速度慢
//vb:'512kb' //VB该怎么设置呢？
});

@drawcall

需要具体分析你的动画，追求速度可以使用ffcreatorlite或者v2.0

ffcreatorlite有些需求实现不了。
v2.0是 ffcreator V2.0.8这个版本的代码吗 @drawcall

main2.zip
这是代码，可以帮我分析一下吗，真的没招了，

使用lite版本，我把ffcreator代码拿过去运行，提示FFAudio is not a constructor

@drawcall 大佬，使用lite版本，我需要要在视频中播放声音文件怎么操作，lite版本有文档或者demo吗？

有点忙 回头帮你看sorry

@drawcall ,大佬，记得帮我看看代码。
我刚才用lite版本运行了代码，但是很多方法都报错提示没有定义方法，比如：
1，没有FFAudio ，我的需要是视频中，我需要播放好几段mp3音频
2,  FFimage没办法设置图片大小，就是一张图我需要定义他的具体尺寸来生成视频。
目前lite版本我有这2个问题，有lite版的详细文档吗？

// 1.构造
const width = 1920;
const height = 1080;
const creator = new FFCreator({
cacheDir,
outputDir,
width,
height,
//audioLoop:false,
//highWaterMark: '32mb',
//renderClarity:'low',
//frames: 8,
threads: 8,
});
//2.添加场景
const scene1 = new FFScene();
scene1.setDuration(132);//131秒
creator.addChild(scene1);
creator.start();
就上面这段代码，其他啥也不做；总时长132秒； 生成时间需要93秒=1分33秒


Bedtools shuffle -incl option produces undesired output for strand information.

I'm not sure if this behavior of bedtools shuffle was an intentional design but for the -incl option the strandedness of the -incl .bed file is ignored. Instead the strand information from the -i .bed file is used, resulting in intervals that are in the correct region, but that have the wrong strand information.
For example here is the output that bedtools produces:
$cat test.bed
chr1    1   100 .   .   -
chr1    100 200 .   .   +
chr1    200 300 .   .   -

$region.bed
chr1    1000    10000   .   .   -

$bedtools shuffle -g chomInfo.txt -incl region.bed -i test.bed
chr1    3928    4027    .   .   -
chr1    7108    7208    .   .   +
chr1    6850    6950    .   .   -

The desired output would instead be:
$bedtools shuffle -g chomInfo.txt -incl region.bed -i test.bed
chr1    3928    4027    .   .   -
chr1    7108    7208    .   .   -
chr1    6850    6950    .   .   -

This difference could cause serious miscalculations if the shuffled intervals are used in coverage calculations involving strand specific overlaps. The bedtools version is v2.24.0. Thanks!

I confirmed that the same behavior exists for bedtools v2.28.0. I'm hoping that the behavior will be documented, and/or a new option for using strand information will be added.

This is now fixed in master. Thanks for reporting.


Export Error with .NET 9 on iOS

Tested versions
Reproducible in 4.3.stable.mono
System information
macOS Sequoia (15.1.1) - Mac Mini (2018)
Issue description
With .NET 9 out of RC I tested for any errors and there is an error that prevents exporting specifically for iOS.
MSB3030: Could not copy the file "/Users/[username]/.nuget/packages/microsoft.netcore.app.runtime.nativeaot.ios-arm64/9.0.0/runtimes/ios-arm64/native/icudt.dat" because it was not found. /Users/[username]/.nuget/packages/godot.net.sdk/4.3.0/Sdk/iOSNativeAOT.targets(18,5)

Checking this directory shows that indeed this file no longer exists and that the entire structure is different now. A quick search shows that icudt.dat is not longer bundled in .NET 9 as outlined here.
Steps to reproduce

Create C# enabled Godot project
Use .NET 9
Export for iOS

Minimal reproduction project (MRP)
N/A

I don't know why we're copying the ICU file, I assume it's needed in .NET 8 which is the minimum version required for exporting to iOS and we wouldn't want to break that.
You didn't include an MRP so I'm not sure if you have changed anything in your .csproj. I'm not sure that the ICU file is always missing. We could copy it only if it exists in the expected path:
https://github.com/godotengine/godot/blob/aa8d9b83f66488dbb2c9c918e9016ef80f821fb4/modules/mono/editor/Godot.NET.Sdk/Godot.NET.Sdk/Sdk/iOSNativeAOT.targets#L18
As a workaround for now, disabling "hybrid globalization" may still produce the ICU file. Try adding this to your .csproj:
<HybridGlobalization>false</HybridGlobalization>

I'm also puzzled why this file is copied just for iOS as I've tested .NET 8 and .NET 9 with Native AOT enabled on other platforms and it doesn't seem to make a difference that it's not copied there.

Exporting to iOS is very different from other platforms, we need to use Xcode to create the final binaries. I assume we need to do this so Xcode is able to include the file, but  I'm not very familiar with iOS exports and if you can confirm we don't need to do this then we can stop doing it.

Since .NET seems to be going towards leveraging the target platform's native API for localization info, would you recommend that the export process change by checking for icudt.dat, then icudt_hybrid.dat (since that is the name of the new slimmed down file for hybrid ICU in .NET 9), and if they're not found, simply skip past and proceed with a successful export?

That works for me too. If you can confirm that doing this doesn't break the resulting export.


Allow to quickly jump back to the Select tool

This change adds support for double-clicking a glyph or pressing the Escape key to activate the Select tool.
You could also consider changing it such that double-clicking just select a different layer, but does not switch to the Select tool, like so:
        if theEvent.clickCount() == 2:
            self.selectGlyph_(theEvent)
            return

Good idea! Thanks


The new visualization module could use a user guide and/or migration guide.

With the addition of the new visualization submodule in #902, the need for a guide on plotting figures in analysis classes has increased. Previously, developers of analysis classes used Matplotlib in their own independent way. The new module means that users are discouraged from using Matplotlib directly, and instead to use subclasses of BasePlotter. However, the usage of these classes is only documented in the API reference (i.e., docstrings) and not as a separate user guide or tutorial.

Tutorial added in #983.


[LaTeX] refactor keymaps section

Completed in https://github.com/sharkov63/nvim-cfg/commit/621f0823869080bb31c86d9181b85a4d980330cd


Server error 500 of localhost:8080

Hello,
I'm trying to use ComparEval in Windows 7 64-bit system with wampserver (PHP-5.6.35, Apache-2.4.33 and MySQL-5.7.21), but I can't access to localhost: 8080, though it seems that the port has not be occupied. I'm not sure it's relevant with the enviorment or setting, or the server itself.

I have no experience with MT-ComarEval in Windows, but if you think the problem may be in the port number (8080 may be blocked by your Apache), you can try a different number, e.g. 8081 with php -S localhost:8081 -t ./www.

Hello again,
The error message is "Nette\InvalidArgumentException Table 'experiments' does not exist."
And here is the code:
6:     */
7:    class Experiments {
8:
9:        private $db;
10:
11:        public function __construct( Nette\Database\Context $db ) {
12:            $this->db = $db;
13:        }
14:
15:        public function getExperiments() {
16:            return $this->db->table( 'experiments' )
17:                ->where( 'visible', 1 );
18:        }
19:
20:        public function getExperimentById( $experimentId ) {

The argument
$table | "experiments" (11)

is for line 16.

Yes. I run it again and find some problems. They might be the reason of the incorrect inistainstallation:

Python 2.7 can only be installed in C:\Python27 or C:\Program Files (x86), but not C:\Program Files in the batch file, even I choose it manually; I'm not sure if sqlite in different folder will affect the function.
And I find this error report in the batch file:
'"C:\Program Flies\sqlite3"' is not recognized as an internal or external command, operable program or batch file.
I've tried to add this path to system variables, but get the same error.

I see, the problem is with sqlite3 installation. Initialise the database manually https://github.com/choko/MT-ComparEval/blob/master/bin/win/install.bat#L2? I am sorry, I can't help you much without Windows.
In the long term, I think it would be much better to Dockerise MT-ComparEval and use Docker on Windows. @martinpopel @lefterav

Hi. Line 2 install.bat presupposes that sqlite has been installed in C:/Program Files . Has it really been installed there? The error you showed shows that there is no sqlite there.

Oh I think that is the point... I'll try it later.


⚠ Bofrost.at has degraded performance

In 73c704f, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1039 ms

Resolved: Bofrost.at performance has improved in ef4fdf5.


more basic instructions?

Hi,
I'm very happy to see there is a vim plugin, but my attempts to get it installed have not been successful. I wonder if there could be instructions that start from scratch.
So far, I've used pathogen to clone this repo into ~/.vim/bundles, added the pathogen commands to ~/.vimrc, and also done a npm install polymer-analyzer (and also tried with -g since that seemed to make more sense).
What I get when I edit a src/shop-app.html in the shop app is :
"src/shop-app.html" 542L, 16846C
Error detected while processing function polymer_ide#Enable..<SNR>31_bufferModified..<SNR>31_send_command..<SNR>31_get_process:
line    2:
E117: Unknown function: job_start
E15: Invalid expression: job_start(['node', s:plugin_path . '/../node_modules/polymer-editor-service/lib/polymer-editor-server.js'], {'callback': function('s:_on_stdout')})^I
line    3:
E121: Undefined variable: job
E15: Invalid expression: { 'job': job, 'cmd_id': 0, 'chanel': job_getchannel(job) }
Error detected while processing function polymer_ide#Enable..<SNR>31_bufferModified..<SNR>31_send_command..<SNR>31_get_process..<SNR>31_make_project_processes..<SNR>31_send_command..<SNR>31_get_process:
line    2:
E117: Unknown function: job_start
E15: Invalid expression: job_start(['node', s:plugin_path . '/../node_modules/polymer-editor-service/lib/polymer-editor-server.js'], {'callback': function('s:_on_stdout')})^I
line    3:
E121: Undefined variable: job
E15: Invalid expression: { 'job': job, 'cmd_id': 0, 'chanel': job_getchannel(job) }
Error detected while processing function polymer_ide#Enable..<SNR>31_bufferModified..<SNR>31_send_command..<SNR>31_get_process..<SNR>31_make_project_processes..<SNR>31_send_command..<SNR>31_get_process..<SNR>31_make_project_processes..<SNR>31_send_command..<SNR>31_get_process:
line    2:
E117: Unknown function: job_start
E15: Invalid expression: job_start(['node', s:plugin_path . '/../node_modules/polymer-editor-service/lib/polymer-editor-server.js'], {'callback': function('s:_on_stdout')})^I
line    3:
E121: Undefined variable: job
E15: Invalid expression: { 'job': job, 'cmd_id': 0, 'chanel': job_getchannel(job) }
-- More --

It seems clear that I've not done some basic setup step correctly, or at all.
Any clues to help me get this working?
Thanks.

perhaps I need vim version 8 or above....I see that as a requirement, but the version for ubuntu seems to only be :
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Nov 24 2016 16:43:18)
Included patches: 1-52
Extra patches: 8.0.0056

I guess I need to try to find how to get a more recent version.

@davidmaxwaterman yes problem with version. My plugin use latest features async jobs.  You should update vim. may be this instructions help you

ok, so I have vim 8 :
maxw@DESKTOP-PCK3HLA:~/z/shop$ vim --version | head
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Jan 29 2017 21:40:50)
Included patches: 1-267
Modified by<EMAIL_ADDRESS>Compiled by<EMAIL_ADDRESS>
but :h polymer_ide says there's no help, so I guess I missed something else.

Hm, so strange try reinstall plugin.

aaaaaaa you install plugin manually. Docs not generated in manually mode.

you can go to inside polimer_ide folder and run in console next command vim -c "helptags doc/". With command generate documentation.

I installed using the instructions on the pathogen.vim page you linked to...which says :
cd ~/.vim/bundle && \
git clone https://github.com/tpope/vim-sensible.git

Initially, I didn't do an npm install, but I figured you meant I should do that, even if I use my favourite package manager, and doing so seemed to help with a lot of the errors, but I still don't get anything different to normal...perhaps it's more subtle than I thought. I was trying the example app in your repo.
I'll read your README again more carefully and watch those videos again.
vim -c "helptags doc/" seems to make the :help polymer_ide command work, but seems to be a temporary solution. I don't think I did a "manual" installation, did I?

From pathogen git repository

Normally to generate documentation, Vim expects you to run :helptags on each directory with documentation (e.g., :helptags ~/.vim/doc). Provided with pathogen.vim is a :Helptags command that does this on every directory in your 'runtimepath'. If you really want to get crazy, you could even invoke Helptags in your vimrc. I don't like to get crazy.

I use vundle plugin manager for vim and this manager automatically generate documentation

I add new plugin in my .vimrc and then run command  vim +PluginInstall +gall. I think all managers work same. But pathogen work differently.
Command npm install  use for install polymer-editor-service. This service write on js and place inside in npm repository. If you know another place, you can use another packet manager. Which have polymer-editor-service.

Ok, but I'm still not sure I even have the plugin installed - I was just using the :help command to check if it was...it doesn't look anything like in your gifs anyway.
Can you give me a way to check if it is installed?
Hrm, I just tried it from the ex prompt and it did seem to do something - ie I put the cursor over the first 's' on :
    <shop-category-data categories="{{categories}}"></shop-category-data>

and then did :
:call polymer_ide#GoToDefinition(':vs')

and hit return, and it opened another window for shop-category-data.html with the cursor over the '{' on the Polymer call.
That means it's working, right?
Odd that it doesn't look anything like your gifs though, but I guess those are other plugins you've loaded?

That means it's working, right?

Seems work correct

other plugins

you mean paper-button,paper-splite?

Odd that it doesn't look anything like your gifs

you can tune work plugin. All what you see on a gif possible

I mean you don't just have the polymer-ide plugin, so in the gif, there are other things that I don't have that I might mistake for polymer-ide?
For example, on the first gif, I see tabs at the top with the buffer names on...I could imagine that might be some other vim plugins that do that, but I'm not sure. Also, those 100% 50% things...I don't see anything like that.
However, the completion doesn't seem to work for me - how do I get that to work? The gif shows some underlining that I'm not seeing. It all looks quite different :/
I see some mentions in the docs that aren't familiar - omnifun and UltiSnips for example.

ok, well, anyway, thanks very much for your help. I'll see how I can fit it into my work flow. Perhaps I'm just not fluent enough with vim - I've been using vi since 1985, and tend to use vim much the same, so perhaps I need to learn more vim specific features.
Thanks again.

I should probably just add that I'm using vim inside a command-line window, so there's no GUI - furthermore, I'm using it in bash-on-ubuntu-on-windows, so that might complicate things too (eg the function keys).

I mean you don't just have the polymer-ide plugin, so in the gif, there are other things that I don't have that I might mistake for polymer-ide?

You right my plugin do only that i wrote:

typeahead completions for imported elements, with documentation
typeahead completions for element attributes, with documentation
inline errors (marks on lines)
jump to definition support for custom elements and attributes

for better position cursor plugin use UltiSnips. It's another plugin.
I am also new to the vim world. And i am use next plugin:
Plugin 'jlanzarotta/bufexplorer'
Plugin 'scrooloose/nerdtree'
Plugin 'tpope/vim-repeat'
Plugin 'ctrlpvim/ctrlp.vim'
Plugin 'godlygeek/tabular'
Plugin 'othree/html5.vim'
Plugin 'ervandew/supertab'
Plugin 'pangloss/vim-javascript'
Plugin 'mattn/emmet-vim'
Plugin 'Valloric/MatchTagAlways'
Plugin 'joshdick/onedark.vim'
Plugin 'vim-airline/vim-airline'
Plugin 'qpkorr/vim-bufkill'
Plugin 'terryma/vim-multiple-cursors'
Plugin 'webdesus/polymer-ide.vim'
Plugin 'SirVer/ultisnips'
Plugin 'tomtom/tcomment_vim'
Plugin 'vim-syntastic/syntastic'
Plugin 'rust-lang/rust.vim

You can read about on each, maybe you  find something intresting for you. And I use vundle manager, it's more easier install plugins

Hmm, I'm also getting some problems that make me wonder if I'm not installing it correctly...
I am using Vim 8.0 on OSX. I installed it using vim-plug. Opening a file, I get a mess of errors, screenshot included below. After clicking through the file, I get  more errors:
Error detected while processing function <SNR>125_bufferModified[1]..<SNR>125_send_command:
line    4:
E906: not an open channel
Error detected while processing function <SNR>125_bufferModified[2]..<SNR>125_send_command:
line    4:
E906: not an open channel

I guess I can't be positive that this it is polymer-ide.vim causing the problems, but deleting it from my .vimrc and reloading makes the problems go away. Anything obvious that I could be doing wrong here?

@srsudar you forgot execute  npm install inside plugin folder.

Indeed I did. Is there a way to run a script as part of the install process that would remove that step? YouCompleteMe requires a secondary install step, but otherwise all my plugins don't require an extra step. I'd love to fold it into a single step if that were possible.

Yes I has plan remove this step. I think it's should be possible.

@srsudar vim-plug can run command after install plugin. Rewrite your line inside .vim
Plug  'webdesus/polymer-ide.vim', { 'do': 'npm install' }
This approach remove step execute manual npm install 😏


Update to isomorphic-fetch 3.x to resolve vulnerability in transitive dependency node-fetch

Summary
Update to isomorphic-fetch 3.x to resolve vulnerability in transitive dependency node-fetch 1.7.3
Steps to reproduce
Run npm audit in a project that has "mattermost-redux": "5.28.1" as dependency.
Expected behavior
There are no security vulnerabilities related to mattermost-redux.
Observed behavior
A vulnerability is indicated that cannot be resolved automatically:
  Low             Denial of Service

  Package         node-fetch

  Patched in      >=2.6.1 <3.0.0-beta.1|| >= 3.0.0-beta.9

  Dependency of   mattermost-redux

  Path            mattermost-redux > isomorphic-fetch > node-fetch

  More info       https://npmjs.com/advisories/1556

Possible fixes
Update isomorphic-fetch to latest version.

Thanks for the report, @sbley! We'll be doing a round of dependency updates later this week, so we can take a look at it then. By the sound of the advisory, it shouldn't affect us since we're not limiting the size of responses here, but it's still good to know about.

@hmhealey, sounds good. Are you planning to add these updates also to current ESR version 5.25.x?

No, we're not planning on it.
Looking into it a bit further, while isomorphic-fetch is listed under dependencies, it's actually only used for the unit tests. The web/desktop apps use the native browser and Electron versions of fetch, so they wouldn't be affected anyway. I'll make a note to fix that when we're updating the dependencies.

Could isomorphic-fetch be a devDependency, then?
In our project we are constrained to use only ESR versions of Mattermost. On the other hand, we have strict policies to not use any vulnerable dependencies in our code.

Yeah, it should be under devDependencies. Even though it's under dependencies though, I don't think it's shipped with actual releases since it's only referenced by test code.

Hi @hmhealey. Have you had a chance to update the dependencies?
If it helps, I could create a pull request that moves isomorphic-fetch to the devDependencies.

No sorry, I haven't had a chance to do that yet. We'd definitely welcome a PR to move that though 🙂

@sbley Thanks again for bringing this up and for the PR. At this point, it'll be included in the 5.31 release of mattermost-redux coming out in January. In the mean time, since you said you're only able to use ESR versions, do you have a fork of this that you can use? Even if we were to get this into an update to the ESR, I'm not actually sure if we cut new versions of mattermost-redux for it because it usually doesn't change for them.

Hi @hmhealey. We are planning to release (code freeze) end of January, so updating to 5.31 would be an option. Is your release date "in January" pretty reliable or could it also be delayed until February?

Our releases are consistently in the middle of the month around the 16th. It's sometimes moved by a few days due to weekends, but that's only a few days at most.

Hi @hmhealey, can we expect a release by the end of the week (Jan 22)?

Hi @hmhealey, can we expect a release by the end of the week (Jan 22)?

The release was cut last week, so it should be available now from https://mattermost.com. It's also our next ESR release since I know you mentioned you could only use ESRs.

The release was cut last week, so it should be available now from https://mattermost.com. It's also our next ESR release since I know you mentioned you could only use ESRs.

Actually, if you're looking for the mattermost-redux release, I don't know why we didn't have a release cut for it for 5.30 or 5.31. I'll look into why that's not happening. Perhaps there's something being missed in our build process.

Actually, if you're looking for the mattermost-redux release, I don't know why we didn't have a release cut for it for 5.30 or 5.31. I'll look into why that's not happening. Perhaps there's something being missed in our build process.


Fix tsDirWriter Flush race

Fix a race occurring with tsDir Flush. If the stale flusher loop calls flush on
a tsdir at the same time the main write thread flushes that same tsdir, there's
a race ending with the loser getting for calling Spill on a nil
spill.MergeSort.
Fix this by placing a general mutex on both the Write() and flushStaleDirs()
calls of import.Writer. From my measurements this change has a negligible
change to import performance.
Closes #1759

This was actually a recommendation by @alfred-landrum when this was originally reviewed. I've seen the light now 😄

Running this on the large log file that @marktwallace ran into problems with. Will merge if successful.

Finished running this on the problematic data set and can confirm that this branch was able to successful ingest the data and be queried.


How long you take to train a epoch in S3DIS? I want to know it. Thank you!

I‘m sorry that I don't remember the exact time. I remember that the training is finished within 2 days.