Y-Axis Flipped when Rendering FBO to Texture in OpenGL

When rendering a scene to a FBO color attachment and then sampling the texture the Y-Axis is flipped in opengl.
In the example the coloured quad and the cube are rendered to the quad on the right.
Using Metal

Using OpenGL

Best,
Marc

Yes, this is true. Unfortunately, it's one of the few API differences that's hard to hide or paper over. Do you have a suggestion as to how this could be improved?

Oh really. Thats interesting. Why does this happen with FBO's in OpenGL?
Well, for me at least, I dont mind this behaviour as long as it is anticipated/ works across all platforms in Veldrid.
If I could set the Y-Axis/Y write order in a texture view(or something similar) then that would already be very helpful. e.g TextureLayout.WriteYInverted.
I guess then the problem becomes which write order is defined to be "correct" and which one is "inverted". But I would need to know more about the specifics of the problem.
Also, I am now compensating for this in the shader. Is there a way to do this on the CPU side?
Best,
Marc

Oh really. Thats interesting. Why does this happen with FBO's in OpenGL?

At the most basic level, it's just because of a fundamental difference in conventions between OpenGL and every other graphics API.
OpenGL texture coordinates have an origin (0, 0) at the bottom-left corner of the image. D3D and other API's have the origin at the TOP-left corner of the image. From there, you can see that the Y-axis will be flipped with all else being equal. However, you almost never actually encounter anything wrong with this, expect in one case: sampling a rendered image from a framebuffer. This is because when you upload texture data regularly (e.g. it's not the output of a render pass), then the data is placed in the correct orientation (from the bottom up). Reading from these textures will obviously be fine, because they are oriented as expected. However, the output of a framebuffer in OpenGL has the same orientation/coordinate layout as other graphics API's. This means sampling the output of a framebuffer will be "upside down" because of the difference in texture coordinate conventions.
There's two main ways you can fix this:

When you construct your vertex data on the CPU, you can flip the UV coordinates of your quad that you are rendering to. Instead of the "top" vertices having Y-coordinate 0, they should have Y-coordinate 1. The "bottom" vertices would have Y-coordinate 0. For a simple quad for a full-screen pass or something, this works fine.
In your shader, you can correct the difference by flipping the Y-coordinate. Since you already need per-API shaders, this is a pretty simple logical place to do it.

This is probably a good place to mention that there is another important difference in coordinate systems between the graphics backends: clip space coordinates. There are some articles on the internet regarding these differences, but I should put something into the docs website about these differences. In general, they are simple to solve, but the exact solution depends on the conventions you are following in your project. The relevant differences for you might be:

Metal: Clip space Z goes from [0, 1]
OpenGL: Clip space Z goes from [-1, 1]

If you are using the System.Numerics types, then those will give you coordinates that match the D3D conventions (which incidentally match Metal's). So you would want to correct OpenGL's clip-space Z coordinate at the end of your vertex shader by doing something like:
gl_Position = ... // regular computations in your shader

// Fix up clip space depth
gl_Position.z = gl_Position.z * 2.0 - gl_Position.w;

That will scale a [0, 1] depth into the expected [-1, 1] range for OpenGL.
Again, the exact fix will depend on what conventions you are using in your program. If your projection matrices are matching OpenGL's conventions (e.g. you're already mapping depth into the [-1, 1] range), then you would need a fix in the opposite direction for Metal, since it is expecting [0, 1].
These clip space differences aren't as critical as the texture coordinate differences. If you fail to correct OpenGL's clip space, then you will just be sacrificing 50% of your depth range unnecessarily.
I'm papering over some stuff to be (more) brief, but I hope that helps a little bit.

No, that make sense. Thanks for your effort in writing this.
Ive only used OpenGL until now, so I never ran into this issue. In that case, documenting for people like me makes the most sense.
Best,
Marc

I've added a new article here which I will use to document all of the backend differences that should be accounted for. Currently it contains the two cases I listed above, clip space differences and OpenGL framebuffer sampling. Feel free to re-open this if you feel there is more to discuss or if you have any related questions.


After it finally loads (10+ seconds on an i7), Lepton will not login

https://imgur.com/a/h9XDj
The more we know about your system and use case, the more easily and likely we can help.
Environment info

OS: Win10/x64
App Version (Command/Ctrl + ,):  UNKNOWN - latest.  Unable to open the About dialog since it wont even login

Description of the problem / feature request / question:
Login?
Start faster than MSWord opening a 1GB file over a phoneline?
If possible, provide a sample gist or screenshot:
https://imgur.com/a/h9XDj
If possible, provide the log files

Mac: ~/Library/Application Support/Lepton/logs
Windows: C:\Users\<username>\AppData\Roaming\Lepton\logs
Linux: ~/.cached/Lepton/logs

The debug mode is recommended when producing the logs.
You can send your log file to<EMAIL_ADDRESS>if don't want to post it here.

The loading bar is just an animation. The login could fail due to network or other issues. Please forward the logs so that we can investigate on that.

Start faster than MSWord opening a 1GB file over a phoneline?
If you wish to pay and afford me to hire a professional team with thousands of developers, then the answer is YES.

This seems to be the same issue as https://github.com/hackjutsu/Lepton/issues/234.


👌 Improve Error Handling

Currently, both main.py and cfg_gen.py have some error handling, but it doesn't perform as well as expected. It would be good to have a better error handling system, most likely using try and except statements. This issue is split into two parts, probably it'd be nice to have separate Pull Requests for each of the aspects.
Main.py

In load_config() the app should check if a file exists before proceeding to avoid unreadable by non-tech-savvy users system errors.
For authorization, it would be good to have an error message about Privileged Intents not being enabled so there will be less questions from the user side.
For DM logging, it's advisable to NOT log anything if there is no user associated with the provided ID.

Cfg_gen.py

For generating log files, there should be an error message indicating that the system doesn't allow the program to save files.

Hey I wanted to give a shot at working on this but I am confused at a couple things and want to make sure I'm not misunderstanding or messing anything up by changing it.
In load_config() you are using the global keyword, in most cases this is a really bad practice in Python, and you are already assigning said variables outside of a function. This should be enough to consider them global and Python will recognize them without using the keyword. I was wondering if we could remove the use of the global keyword.

Hey I wanted to give a shot at working on this but I am confused at a couple things and want to make sure I'm not misunderstanding or messing anything up by changing it.
In load_config() you are using the global keyword, in most cases this is a really bad practice in Python, and you are already assigning said variables outside of a function. This should be enough to consider them global and Python will recognize them without using the keyword. I was wondering if we could remove the use of the global keyword.

Thanks for the suggestion. I think removing the global keywords would be a nice idea. I can remove them if you haven't already.

Shall I assign the issue to you?

After some testing I found out that I was actually wrong. The global keyword is needed for changing a global variable within a function while accessing one does not require the keyword, I apologize.

Shall I assign the issue to you?

Yes please, I'd be happy to help on this project 😄

After some testing I found out that I was actually wrong. The global keyword is needed for changing a global variable within a function while accessing one does not require the keyword, I apologize.

Shall I assign the issue to you?

Yes please, I'd be happy to help on this project 😄

Assigned, thank you for your interest in contributing to the project, any help is greatly appreciated. 🙂


[SPARK-28599][SQL] Support sorting Execution Time and Duration columns for ThriftServerSessionPage

What changes were proposed in this pull request?
This PR add support sorting Execution Time and Duration columns for ThriftServerSessionPage.
Does this PR introduce any user-facing change?
No.
How was this patch tested?
Manually tested in my local:
Sorted by Execution Time column:

Sorted by Duration column:

Test build #111154 has started for PR 25892 at commit e794fe2.

cc @amanomer

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/16233/
Test PASSed.

Looks good. Nice catch @wangyum .

Test build #111154 has finished for PR 25892 at commit e794fe2.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/111154/
Test PASSed.

I would like to take this in branch by https://github.com/apache/spark/pull/25882.

@amanomer and @wangyum .
In general, please do not mix different ones.

BTW, @wangyum .
As a committer, please make it sure if the PR keeps the original four sections template of the PR.
For me, it seems that it's removed accidentally in this PR. It will be better if you recover it. 😄
cc @HyukjinKwon .

Ok. I have created another PR https://github.com/apache/spark/pull/25893 to back-port this to branch-2.4.

Hi, @wangyum .
Did you check the original STS behavior?

In addition, this PR description is wrong. This is UI PR and that's the reason why you attach the screenshot. Could you fix the PR description?

Does this PR introduce any user-facing change?
No.

Merged to master.

I changed SPARK-28599 from Improvement to Bug.
Since this is a bug fix, we can backport this merged commit (with the fixed commit messages). However, in branch-2.4, there is no Execution Time column. There is Duration column only.
Please make it sure during backporting.


Revert "OpenMM post-link logic."

Reverts omnia-md/conda-recipes#116

Whoops, sorry about that---was I too quick on the draw?


Updated Lane change and driver model alerts

made them more friendly

That pesky syntax. Looks good to merge once Travis-CI is happy and we have a tick

FAIL: test_alert_text_length (tests.test_alerts.TestAlerts)
Traceback (most recent call last):
File "/tmp/openpilot/selfdrive/controls/tests/test_alerts.py", line 45, in test_alert_text_length
self.assertLessEqual(w, MAX_TEXT_WIDTH, msg=msg)
AssertionError: 2200 not less than or equal to 1620 : type: preLaneChangeLeft msg: Checking blind spots preparing to change lanes Left
Try a shorter text


[Bug]: get_or_create should not update metadata if it exists

What happened?
This is unintuitive behaivor
Versions
All
Relevant log output
No response

To clarify - we aren't sure how to solve this problem - its just a bit confusing that get_or_create can silently update the metadata

FWIW - it appears we have maintained this logic in the refactor
https://github.com/chroma-core/chroma/blob/4332adfde59e9f2dff6e436218c47c51628a32c6/chromadb/api/segment.py#L112

we want to update the docstrings to at least be more clear about this behavior


Feature request: show new plugins in a separate category

Besides "Installed" and "Available" plugin categories I'd love to see the "New" category, showing plugins that have been just recently created. As a user I would like to monitor new plugins that are appearing every now and then, but I don't want to scroll through the entire list every time.
It could either be based on the plugin's creation date (if this info can be queried), or we could locally cache plugin names that I've seen, and match that local list of names with the list of results loaded from registry.npmjs.com.
/cc @BrainMaestro

Yeah I like that idea. I think I prefer the local plugin cache method. The only issue with that is a plugin that has been around for over a month can appear as new for a user that does not check their plugins often. Is that acceptable?

I think that totally makes sense, when that user will finally check their plugins after 1 month, they are still interested in the question "what's new, what has changed since last month?".

Instead of a separate category, how about just bubbling up the new plugins to the top of the Available category and indicating them by a :star2: or something? That also gives way to a future possibility of :fire: plugins.


modify Plugin:themes, better support for custom themes

These feature was added:
1. search theme-files in $ZSH_CUSTOM/themes
The original source only search $ZSH_CUSTOM，but as the oh-my-zsh-wiki-Customization said, the custom theme-files may better put into '$ZSH_CUSTOM/themes'.
so, '$ZSH_CUSTOM/themes' need to be searched.
2. lstheme for custom
The original source only list the default themes,
Now, the custom themes were added to be list behind the default themes

as the file oh-my-zsh.sh, $ZSH_CUSTOM's themes are sourced first, then $ZSH_CUSTOM/themes
so I need to change the priority to consider  $ZSH_CUSTOM first
I will close this pull request,and open the new one.


LC_NUMERIC can make lvm.py fail

Bug Report
What happened:
As a European, I am used to writing e.g. "two and a half" as 2,5 (not 2.5). As such I tend to set LC_NUMERIC=en_DK.UTF-8 on my Linux workstation[1].
When I ssh to a RHEL7 box, these get then passed as per the default AcceptEnv LANG LC_CTYPE LC_NUMERIC… etc in /etc/ssh/sshd_config of RHEL7 (also affects Fedora 28).
So, with this setting, the OSDs will get the var as per the default sshd_config on the OSDs and (as expected) have the comma separator in vgs output.
[root@odroid-hc2-00 ~]# env|grep LC
LC_MEASUREMENT=en_DK.UTF-8
LC_MONETARY=de_DE.UTF-8
LC_COLLATE=en_US.UTF-8
LC_NUMERIC=en_DK.UTF-8
LC_TIME=de_DE.UTF-8
[root@odroid-hc2-00 ~]# vgs --noheadings --readonly --units=g --separator=";"
  ceph-64ff50de-28b8-4bb6-bf76-601df9dc1e8e;1;1;0;wz--n-;931,48g;0g
[root@odroid-hc2-00 ~]# unset LC_NUMERIC
[root@odroid-hc2-00 ~]# vgs --noheadings --readonly --units=g --separator=";"
  ceph-64ff50de-28b8-4bb6-bf76-601df9dc1e8e;1;1;0;wz--n-;931.48g;0g

It seems that /usr/lib/python2.7/site-packages/ceph_volume/api/lvm.py on the OSDs chokes on the comma, expecting a dot. (my OSDs are Fedora 28 ARM based, do tell if you need me to reproduce with RHEL7 x86_64 based OSDs)
If I unset the LC_NUMERIC on the host running ceph-ansible, ansible-playbook site.yml (copy of site.yml.samle) works just fine.
If LC_NUMERIC=en_DK.UTF-8, then I get
2019-02-06 15:49:45,682 p=27999 u=ansible |  TASK [ceph-osd : use ceph-volume lvm batch to create bluestore osds] **************************************************
2019-02-06 15:49:45,683 p=27999 u=ansible |  Wednesday 06 February 2019  15:49:45 +0100 (0:00:00.508)       0:06:06.035 ****
2019-02-06 15:49:49,216 p=27999 u=ansible |  fatal: [odroid-hc2-03]: FAILED! => {"changed": true, "cmd": ["ceph-volume", "--cluster", "ceph", "lvm", "batch", "--bluestore", "--yes", "--dmcrypt", "/dev/sda"], "delta": "0:00:02.467296", "end": "2019-02-06 15:49:49.161515", "msg": "non-zero return code", "rc": 1, "start": "2019-02-06 15:49:46.694219", "stderr": "Traceback (most recent call last):\n  File \"/usr/sbin/ceph-volume\", line 11, in <module>\n    load_entry_point('ceph-volume==1.0.0', 'console_scripts', 'ceph-volume')()\n  File \"/usr/lib/python2.7/site-packages/ceph_volume/main.py\", line 38, in __init__\n    self.main(self.argv)\n  File \"/usr/lib/python2.7/site-packages/ceph_volume/decorators.py\", line 59, in newfunc\n    return f(*a, **kw)\n  File \"/usr/lib/python2.7/site-packages/ceph_volume/main.py\", line 148, in main\n    terminal.dispatch(self.mapper, subcommand_args)\n  File \"/usr/lib/python2.7/site-packages/ceph_volume/terminal.py\", line 182, in dispatch\n    instance.main()\n  File \"/usr/lib/python2.7/site-packages/ceph_volume/devices/lvm/main.py\", line 40, in main\n    terminal.dispatch(self.mapper, self.argv)\n  File \"/usr/lib/python2.7/site-packages/ceph_volume/terminal.py\", line 182, in dispatch\n    instance.main()\n  File \"/usr/lib/python2.7/site-packages/ceph_volume/decorators.py\", line 16, in is_root\n    return func(*a, **kw)\n  File \"/usr/lib/python2.7/site-packages/ceph_volume/devices/lvm/batch.py\", line 284, in main\n    self.execute(args)\n  File \"/usr/lib/python2.7/site-packages/ceph_volume/devices/lvm/batch.py\", line 175, in execute\n    strategy.execute()\n  File \"/usr/lib/python2.7/site-packages/ceph_volume/devices/lvm/strategies/bluestore.py\", line 126, in execute\n    lvs = lvm.create_lvs(create['vg'], parts=create['parts'], name_prefix='osd-data')\n  File \"/usr/lib/python2.7/site-packages/ceph_volume/api/lvm.py\", line 643, in create_lvs\n    sizing = volume_group.sizing(parts=parts, size=size)\n  File \"/usr/lib/python2.7/site-packages/ceph_volume/api/lvm.py\", line 1067, in sizing\n    size = int(self.free / parts)\n  File \"/usr/lib/python2.7/site-packages/ceph_volume/api/lvm.py\", line 1008, in free\n    return self._parse_size(self.vg_free)\n  File \"/usr/lib/python2.7/site-packages/ceph_volume/api/lvm.py\", line 994, in _parse_size\n    return util.str_to_int(integer)\n  File \"/usr/lib/python2.7/site-packages/ceph_volume/util/__init__.py\", line 40, in str_to_int\n    raise RuntimeError(error_msg)\nRuntimeError: Unable to convert to integer: '1862,98'", "stderr_lines": ["Traceback (most recent call last):", "  File \"/usr/sbin/ceph-volume\", line 11, in <module>", "    load_entry_point('ceph-volume==1.0.0', 'console_scripts', 'ceph-volume')()", "  File \"/usr/lib/python2.7/site-packages/ceph_volume/main.py\", line 38, in __init__", "    self.main(self.argv)", "  File \"/usr/lib/python2.7/site-packages/ceph_volume/decorators.py\", line 59, in newfunc", "    return f(*a, **kw)", "  File \"/usr/lib/python2.7/site-packages/ceph_volume/main.py\", line 148, in main", "    terminal.dispatch(self.mapper, subcommand_args)", "  File \"/usr/lib/python2.7/site-packages/ceph_volume/terminal.py\", line 182, in dispatch", "    instance.main()", "  File \"/usr/lib/python2.7/site-packages/ceph_volume/devices/lvm/main.py\", line 40, in main", "    terminal.dispatch(self.mapper, self.argv)", "  File \"/usr/lib/python2.7/site-packages/ceph_volume/terminal.py\", line 182, in dispatch", "    instance.main()", "  File \"/usr/lib/python2.7/site-packages/ceph_volume/decorators.py\", line 16, in is_root", "    return func(*a, **kw)", "  File \"/usr/lib/python2.7/site-packages/ceph_volume/devices/lvm/batch.py\", line 284, in main", "    self.execute(args)", "  File \"/usr/lib/python2.7/site-packages/ceph_volume/devices/lvm/batch.py\", line 175, in execute", "    strategy.execute()", "  File \"/usr/lib/python2.7/site-packages/ceph_volume/devices/lvm/strategies/bluestore.py\", line 126, in execute", "    lvs = lvm.create_lvs(create['vg'], parts=create['parts'], name_prefix='osd-data')", "  File \"/usr/lib/python2.7/site-packages/ceph_volume/api/lvm.py\", line 643, in create_lvs", "    sizing = volume_group.sizing(parts=parts, size=size)", "  File \"/usr/lib/python2.7/site-packages/ceph_volume/api/lvm.py\", line 1067, in sizing", "    size = int(self.free / parts)", "  File \"/usr/lib/python2.7/site-packages/ceph_volume/api/lvm.py\", line 1008, in free", "    return self._parse_size(self.vg_free)", "  File \"/usr/lib/python2.7/site-packages/ceph_volume/api/lvm.py\", line 994, in _parse_size", "    return util.str_to_int(integer)", "  File \"/usr/lib/python2.7/site-packages/ceph_volume/util/__init__.py\", line 40, in str_to_int", "    raise RuntimeError(error_msg)", "RuntimeError: Unable to convert to integer: '1862,98'"], "stdout": "Running command: vgcreate --force --yes ceph-8e748fdb-e322-4be0-b3c1-6bc0f1120351 /dev/sda\n stdout: Physical volume \"/dev/sda\" successfully created.\n stdout: Volume group \"ceph-8e748fdb-e322-4be0-b3c1-6bc0f1120351\" successfully created", "stdout_lines": ["Running command: vgcreate --force --yes ceph-8e748fdb-e322-4be0-b3c1-6bc0f1120351 /dev/sda", " stdout: Physical volume \"/dev/sda\" successfully created.", " stdout: Volume group \"ceph-8e748fdb-e322-4be0-b3c1-6bc0f1120351\" successfully created"]}

When this happens, the OSD node have a VG defined but no LV in that VG after the playbook errored out. I'll attach a full log of the ansible-playbook run.
What you expected to happen:
If ceph-ansible has requirements for LANG and/or LC_NUMERIC, it should enforce their values.
How to reproduce it (minimal and precise):

LC_NUMERIC=en_DK.UTF-8 ansible-playbook site.yml with the following;
[ansible@ceph-ansible ceph-ansible]$ grep "^[^#;]" group_vars/osds.yml
---
dummy:
copy_admin_key: true
devices:
  - /dev/sda
dmcrypt: True
osd_scenario: lvm
[ansible@ceph-ansible ceph-ansible]$ grep "^[^#;]" group_vars/all.yml
---
dummy:
fetch_directory: ~/ceph-ansible-keys
cluster: ceph
configure_firewall: False
ntp_service_enabled: true
ntp_daemon_type: chronyd
ceph_origin: distro
ceph_repository: rhcs
ceph_rhcs_version: 3
ceph_repository_type: cdn
fsid: "{{ cluster_uuid.stdout }}"
generate_fsid: True
rbd_cache_writethrough_until_flush: "false"
rbd_client_directories: false # as per  CEPH125-RHCS3.0-en-1-20180517 pages 45 and 60
monitor_interface: eth0
journal_size: 5120 # OSD journal size in MB
public_network: <IP_ADDRESS>/24 # HouseNet
cluster_network: "{{ public_network | regex_replace(' ', '') }}"
ceph_conf_overrides:
  global:
    mon_allow_pool_delete: true
  client:
    rbd_default_features: 1
ceph_docker_image: "rhceph-3-rhel7"
ceph_docker_image_tag: "latest"
ceph_docker_registry: "registry.access.redhat.com/rhceph/"
[ansible@ceph-ansible ceph-ansible]$ cat /etc/ansible/hosts
[ceph-arm-nodes]
odroid-hc2-[00:04]

[ceph-x86-nodes]
ceph-ansible

[ceph-housenet:children]
ceph-arm-nodes
ceph-x86-nodes

[ceph-housenet:vars]
ansible_user=ansible

[mons]
odroid-hc2-[00:02]

[mgrs]
odroid-hc2-[00:02]

[osds]
odroid-hc2-[00:04]

[clients]
odroid-hc2-00

[ansible@ceph-ansible ceph-ansible]$

Environment:

OS (e.g. from /etc/os-release): Red Hat Enterprise Linux Server release 7.6 (Maipo)
Kernel (e.g. uname -a): Linux ceph-ansible.internal.pcfe.net 3.10.0-862.el7.x86_64 #1 SMP Wed Mar 21 18:14:51 EDT 2018 x86_64 x86_64 x86_64 GNU/Linux
Docker version if applicable (e.g. docker version):
Ansible version (e.g. ansible-playbook --version): ansible-playbook 2.6.12
ceph-ansible version (e.g. git head or tag or stable branch): ceph-ansible-3.2.4-1.el7cp.noarch
Ceph version (e.g. ceph -v): ceph version 12.2.10 (177915764b752804194937482a39e95e0ca3de94) luminous (stable)

note: all except ceph -v collected on the RHEL7 x86_64 machine running ceph-ansible. ceph -v was collected on an affected OSD running Fedora 28 ARM
[1] JFYI; the complete list of language related varoables I normally set is;
LANG=en_US.UTF-8
GDM_LANG=en_GB.UTF-8
LANGUAGE=en_GB:en_US
LC_MONETARY=de_DE.UTF-8
LC_NUMERIC=en_DK.UTF-8
LC_COLLATE=en_US.UTF-8
LC_MEASUREMENT=en_DK.UTF-8
LC_TIME=de_DE.UTF-8

logfile.txt

Hum, the issue seems to be in ceph-volume, not in ceph-ansible, do you mind opening a tracker bug here instead? https://tracker.ceph.com/projects/ceph-volume
Thanks.

done, https://tracker.ceph.com/issues/38221


NoMan29 part 1

I will make several pull requests where every next part will be updated a little bit more ( part 1, part 2 ( part 1 + two more books, or something small), part 3 ( part 2 + new), etc). I hope that helps you a bit.

Merged in 508b99f6bfdaa945be5144f8a6e72feb2e9ac592.


How to change characterset in DataGrip?

How to change characterset in DataGrip?

Hi! This is a repository for TeamCity, which is a different product.
I'm not familiar with DataGrip and cannot help you, unfortunately, but maybe this thread could help you?


Update vdr-tools dependency

Signed-off-by: Miroslav Kovar<EMAIL_ADDRESS>

Codecov Report

Merging #567 (03e0803) into main (2ddb75c) will decrease coverage by 8.44%.
The diff coverage is 40.00%.

:exclamation: Current head 03e0803 differs from pull request most recent head f1129ea. Consider uploading reports for the commit f1129ea to get more accurate results

@@            Coverage Diff             @@
##             main     #567      +/-   ##
==========================================
- Coverage   61.42%   52.98%   -8.45%
==========================================
  Files         174      174
  Lines       18161    13918    -4243
  Branches     3962     2519    -1443
==========================================
- Hits        11155     7374    -3781
- Misses       2824     4284    +1460
+ Partials     4182     2260    -1922

Flag
Coverage Δ

integration-aries-vcx
?

unittests-agency-client
25.97% <0.00%> (ø)

unittests-aries-vcx
55.30% <41.37%> (+0.19%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

agency_client/src/agency_client.rs
24.19% <0.00%> (ø)

agency_client/src/api/downloaded_message.rs
0.00% <ø> (ø)

agency_client/src/api/onboarding.rs
0.00% <ø> (ø)

agency_client/src/utils/libindy/crypto.rs
40.90% <ø> (-4.10%)
:arrow_down:

aries_vcx/src/handlers/connection/cloud_agent.rs
27.94% <ø> (-33.43%)
:arrow_down:

aries_vcx/src/handlers/connection/connection.rs
44.23% <ø> (-14.41%)
:arrow_down:

aries_vcx/src/handlers/connection/public_agent.rs
35.08% <ø> (-12.96%)
:arrow_down:

aries_vcx/src/handlers/discovery/mod.rs
0.00% <ø> (-87.10%)
:arrow_down:

aries_vcx/src/handlers/issuance/holder.rs
54.68% <ø> (-10.21%)
:arrow_down:

aries_vcx/src/handlers/issuance/issuer.rs
54.07% <ø> (-2.81%)
:arrow_down:

... and 135 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


fix: Massmint not working

PR Type

[x] Bugfix
[ ] Feature
[ ] Refactoring

Context
collection lastIndexUsed which is used to calculate the nft id was missing

[x] Closes #11177

Screenshot 📸

[x] My fix has changed something on UI;

https://github.com/user-attachments/assets/ba62789b-df33-4e2f-a40e-31e8034b1e56

Can you please check the failing test?

Can you please check the failing test?

#11185


Try to avoid reflection usage in IConsume

Per discussion: https://github.com/oskardudycz/PostgresOutboxPatternWithCDC.NET/pull/7#discussion_r1629335230
About: https://github.com/oskardudycz/PostgresOutboxPatternWithCDC.NET/blob/3d42e3552956cecfd1773e97a9afd0170ada0937/src/PostgresOutbox/Subscriptions/Subscription.cs#L138
@oskardudycz:

CONCERN: Is this used to call the generic method of the IConsume? If yes, then I'd recommend extending IConsume to have a method accepting an object message, then default implementation in IConsume that would call the typed method. This would reduce the need for this reflection access here, we could just call it.

@lsfera

We might support different scenario.
A truly confident user could simply decide to deal with raw data, hence a basic IConsume would be enough. Or he would rather prefer to work typed data and generics support, hence some sort of (memoized)reflections stuff should unavoidable. Some benchmark here might help in solving the dilemma of reflection adoption.

I'm working on a prototype the following these assumptions:

retain publication filter capability
allow mixin of different consuming strategies

The consumer code:

Here are the contracts:

The goal is to read jsonb as a string

or as an object

This way we should be able to address all use cases but binary format.

Interesting. If you have some draft, I'm happy to take a look to learn more about that.
Also, FYI, from 13th July till the end of the month, I'm on vacation, and I plan to be offline to recharge a bit, but I plan to also do more work on Blumchen in August.

This summer I'm having shorter breaks - a week or less - every month so that kids have feelings of longer vacations... We'll see how effective this strategy works, but I can definitely say that it's exhausting :-;
I'm playing with this branch - https://github.com/lsfera/Postgresql.Outbox/tree/serialization - to cover more jsonb options skipping deserialization when not needed
Here's https://github.com/lsfera/Postgresql.Outbox/blob/serialization/src/Subscriber/Program.cs#L35-L39 how you can make use of new functionalities


smart constructors for BExpr

In the recent week I saw at least two cases that should be solved by smart constructors for BExpr:
In TxsHappy, we see the implementation of the smart constructor (that combines multiple parallels) in multiple places
$$ = case $1 of
                        { Parallel chids bexps
                            -> if (Set.fromList chids) == (Set.fromList (chanIdExit:$$.inhChanSigs)
                                 then Parallel (chanIdExit:$$.inhChanSigs) (bexps ++ [$3])
                                 else Parallel (chanIdExit:$$.inhChanSigs) [$1,$3]
                        ; _ -> Parallel (chanIdExit:$$.inhChanSigs) [$1,$3]
                        }

For LPE, we want to replace the ActionPrefix A[[False]] >-> P by STOP

[x] Add smart constructors (indirection)  -- see #604
[ ] Add smart constructor (logic)

To rewrite the BExpr we have to specify the equivalence relation.
Possible rewrites
 p |[ X ]| EXIT == p

 p ## STOP == p

a [[False]] >-> p == STOP

Anything also used in LPE (see #128)

See also #488 and #487

Implemented using the following choices: ANY and initial state can be any number.

Possible improvement:
When cond is  True, don't generated IF THEN ELSE FI in
alternative (Trans from' (ActOffer offers' cond) update' to')
in StautDef.hs
This prevent code like observed with AdderStAut.txs:
( { Res ! statevar}
[[ ( IF ( 1 == $s ) THEN True ELSE False FI ) ]]
>-> ( std_adder [Act,Res] ( 0, statevar )
) )

alternative: solve it in the smart constructor of ITE

With
{-# LANGUAGE ViewPatterns #-}
The following works:
alternative :: Trans -> BExpr
        alternative (Trans from' (ActOffer offers' (ValExpr.view -> Vconst (Cbool True)))  update' to') =
          let Just fromIndex = Map.lookup from' stateMap
              Just toIndex   = Map.lookup to'   stateMap in
            actionPref (ActOffer offers' (cstrEqual (cstrVar stateId) (cstrConst (Cint fromIndex))))
                       (procInst procId chans (combineArguments args' (cstrConst (Cint toIndex)) (map ( subst update' fdefs . cstrVar ) vars')))
        alternative (Trans from' (ActOffer offers' cond) update' to') =
          let Just fromIndex = Map.lookup from' stateMap
              Just toIndex   = Map.lookup to'   stateMap in
            actionPref (ActOffer offers' (cstrITE (cstrEqual (cstrVar stateId) (cstrConst (Cint fromIndex))) cond (cstrConst (Cbool False))))
                       (procInst procId chans (combineArguments args' (cstrConst (Cint toIndex)) (map ( subst update' fdefs . cstrVar ) vars')))

Any suggestion to reduce the code duplication?

StAut not yet removed to keep supporting Petra van den Bos and her research to cover all states of a State Automaton.

Also see #366 for a rewrite rule:
if procDef is just a procInst, replace procInst to that procDef by its procInst
this will save a procInst at run-time.
Note LPE (#128) already removes these procInst, so is low priority at most!

When adding error handling to BExpr, one has another challenge.
For example, Q in the following context
P1 ::= A?x >-> [[x>0]] ==> EXIT
Q ::= P1 >>> P2

is fine, since the functionality of P1 is EXIT.
However, once the action A ! -3 is taken, substitution of x by -3 will change P1 into STOP.
The composition of Q has become invalid, since >>> requires that the initial process has functionality EXIT and STOP has functionality NOEXIT.
@tretmans Do you agree that since substitution is possible, one should not check on functionality, but only rewrite behaviour when possible.

Alternative: check on creation, yet allow that due to substitution functionality can change and hence should no longer be checked.


Crawl4 AI是否支持自定义LLM

Crawl4 AI是否支持自定义LLM

@Hesongwork Yes it does! What would you like to use?

@Hesongwork Crawl4AI supports Ollama, so you can use any LLM that Ollama supports. For the actual crawling, we don’t rely on LLMs, which is key to making it fast. LLMs come into play when you need to extract semantically structured output. In the new version, you can even create specific JSON schemas using CSS selectors to extract patterns (like from e-commerce sites) super quickly, reducing the need for LLMs and keeping things efficient. But of course, we still support LLM extraction if needed, and you can use any LLM you like!


Tweet button on mobile

There is no tweet button on the speakers sites, only a link with the text "Tweet" which is positioned weirdly.

Which platform is this on? Looks good on Chrome/Safari on iOS at least.

Firefox on Android

tweet button removed on the new speaker site that are about to be publiched


DocBlock comments are parsed incorrectly

See the image below.  Note the parens after @param {ResponseModel} responseModel, the white*, and so on.

Hi, I need sample code to debug.

Sure, try any comment:
  /**
   * Handler for preloading ideas when the Response form is first loaded.
   *
   * @param {Array} ids
   *    An array of Idea ids to load.
   */

Thanks, this happened inside class block

Awesome, thank you!

Doesn't work for me now:

/**
 * @public
 * @param {Object[]} changedOrderNumbers e.g. [{goodId: 1, shopOrderNumber: 32}, {goodId: 2, shopOrderNumber: 23}]
 * @returns {Promise}
 */


Fix row bytes number and prevent invalid PRJ in BIL format writer

Corrects BANDROWBYTES and TOTALROWBYTES that were off by a factor of 2 and causing issue when files were read by GDAL.
I also changed the default raster config to make the projection definition empty so that if the input file has none defined, the output BIL won't generate an invalide PRJ file (containing the string not specified). It will also affect other raster format where PRJ were always generated (like SAGA raster).
https://github.com/jblindsay/whitebox-tools/blob/c9fa7a673d08d891601274ccfc4fc00f39a4e72c/whitebox-raster/src/esri_bil.rs#L573-L588

There are other things in the Whitebox platform that expect to find the "not specified" rather than blank string when the projection is unspecified. Accepting this PR would make breaking changes.

There are other things in the Whitebox platform that expect to find the "not specified" rather than blank string when the projection is unspecified. Accepting this PR would make breaking changes.

Oh... sorry, I searched for "not specified" in all the code base and saw that it wasn't used anywhere in this context so I assumed it wouldn't break anything.
Considering that !r.configs.projection.is_empty() will always return True because the projection string is "not specified" by default, does changing it for r.configs.projection != "not specified" would be sufficient while avoiding breaking anything elsewhere?
https://github.com/jblindsay/whitebox-tools/blob/78a3a00992a021859166dca7af9b206329560be2/whitebox-raster/src/esri_bil.rs#L574
https://github.com/jblindsay/whitebox-tools/blob/78a3a00992a021859166dca7af9b206329560be2/whitebox-raster/src/saga_raster.rs#L614


Volume QA: inspect, prune, create (fixes and tests)

This is part 2 of #3125 - same idea.
Tests:

parallelized
expanded
cleaned-up / normalized
added namespace testing

Code changes:

docker match: no labels should be nil, not []string{}
docker match: --label "" should error
docker match: multi-inspect that is partly failing
remove useless / duplicated code (specifically around validation of identifiers that was performed multiple times)
make sure volStore.Get is locking to avoid race
replace broken/racy logic get then create by create (since behavior has been recently changed and now always returns success)

What is left todo for volumes:

[ ] add more / finish tests for anonymous volumes
[ ] investigate #3132 and possibly move usedContainers inside the lock func
[ ] revamp last list tests

@AkihiroSuda what's the timeline for v2?
Do I still have time for more or are we frozen for v2 already?
I would have liked to cleanup / fix all bugs for login overall, and maybe some network work, but there is only so much I can do today - so, if you intend on freezing, lmk.

v2

Planned to be synced with containerd v2
https://github.com/orgs/containerd/projects/9

v2

Planned to be synced with containerd v2 https://github.com/orgs/containerd/projects/9

Cool.
So I guess we also need this in then: https://github.com/containerd/stargz-snapshotter/pull/1545
And #2902 to pass.
Lmk if there is something I can do to help with ^.

nerdctl v2 will have containerd v2 binaries in the nerdctl-full bundle, but I guess it is not necessary to use Go packages of containerd v2

Lmk if there is something I can do to help with ^.

Thanks, I'd appreciate if you can help #2902 and its dependencies (stargz, soci, etc.) 🙇

@AkihiroSuda this is finally ready - sorry it took so long to get there.
Also it is bigger that I wanted it to be - sorry about that as well. I guess problems just kept on piling up as I parallelized more...
Pure code changes are relatively small and targeted.
The only really new / interesting bit is the introduction of the "durable" locking mechanism for VolumeStore that allow operations like container create or container remove to lock the store for the duration of their operation.
The rest is merely small bug fixes - and a boatload of new tests.
I have added a bunch of github comments alongside the code to facilitate review.
PTAL at your convenience.
Thanks!

Rebased.
@AkihiroSuda last tiny push does remove the spurious commented leftovers, extra line, and updated the comment on rootful/buidkit.
Just did another proofread of the diff -  we should be good to go (let's make sure the CI is happy of course).

Thanks

Thanks a lot @AkihiroSuda
Appreciate your time and effort reviewing these.


Fix: change resultHolder.Get

I would like to check if this is working under Linux, too. Because you designed your patches for mingw.


Improve code coverage

Coverage increased (+0.4%) to 65.235% when pulling 67f91bc7d93213142f040fa9fa3a275d5d4b5894 on test_coverage into 664ac16d80e1fa05238de10d46547101f0fddc83 on master.

Coverage increased (+0.3%) to 66.012% when pulling c2097555f43502c10513b133c0e109acc03cb0dc on test_coverage into d47607bfdf5aa0a4d5acc3a5e36070fcaad5e854 on master.

Coverage increased (+3.4%) to 69.035% when pulling fc1056edce2041550ecf308006e98480a9789fb4 on test_coverage into d47607bfdf5aa0a4d5acc3a5e36070fcaad5e854 on master.

Coverage increased (+4.6%) to 70.225% when pulling 17fa1a9a7d99456578cb94683eedca76df963173 on test_coverage into d47607bfdf5aa0a4d5acc3a5e36070fcaad5e854 on master.

Coverage increased (+5.2%) to 70.844% when pulling 3c52aca933d2845dee4a9375c652a88f655026c9 on test_coverage into d47607bfdf5aa0a4d5acc3a5e36070fcaad5e854 on master.

Coverage increased (+6.0006%) to 71.665% when pulling 16884ebcdab86101a9ffd22cf562cb2018de818c on test_coverage into d47607bfdf5aa0a4d5acc3a5e36070fcaad5e854 on master.

Coverage increased (+7.7%) to 73.411% when pulling d724d709a60661822b342a7898c09db356e09624 on test_coverage into d47607bfdf5aa0a4d5acc3a5e36070fcaad5e854 on master.

Coverage increased (+8.1%) to 73.79% when pulling d58fad21f0986ab83557d3b5417171356e925ef1 on test_coverage into d47607bfdf5aa0a4d5acc3a5e36070fcaad5e854 on master.


Fix some ruby text objects

I saw this PR added some text objects for Ruby, but it has some bugs and unhandled cases.
So I created this PR to fix it. Hope you can take a look.
I'm Ruby dev, so I'm very glad if you can mention to me if have any changes in the Ruby text object, I can check it to be sure it's correct.
Commit
Fix class, function and block text objects, tested with many cases from:
https://github.com/tree-sitter/tree-sitter-ruby
Add some cases for parameter text object.

Thanks @luathn! I will try to remember you when we have changes to the Ruby textobjects.

Thanks @theHamsta.


If you use $ in name or id scroll is freezed in scrollable area

If you make some select2 in scrollable area and use $ in name or id of this element like  or   scroll is freezed. Sometimes $ used in form-generator
Example here:
https://jsfiddle.net/3hLe68nb/

Hi,
Did you find any solution ? I have the same problem.
Regards.

Yes. I remove $ from names ;)

Hi,
Did you find any solution ? I have the same problem.
Regards.


Atomic float op + slang RT compilation

Optional atomic float op.
Slang RT minimum code to compile with RAY TRACING flag (not supported yet).

I merge after the prefix is added

Note, as device.h and device.cpp just had a different feature made optional, in master the device flag 1 << 11 is already used.

What do you mean by prefix? the flags were fixed

I was tired reading this there is nothing wrong with what you did


88 Rename Free Elements

This PR completes #88. We also update the documentation on the @free annotation.

Codecov Report

Merging #90 into master will not change coverage.
The diff coverage is 76.74%.

@@           Coverage Diff           @@
##           master      #90   +/-   ##
=======================================
  Coverage   64.31%   64.31%
=======================================
  Files          28       28
  Lines         241      241
  Branches        1        1
=======================================
  Hits          155      155
  Misses         86       86

Continue to review full report at Codecov.

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


Polymer 2 Performance in IE11

Description
Reloading Polymer 2 apps on IE11 generates a spike in memory consumption. Also app fails to load one third of the times.
The memory leak was initially reported for Polymer 1 and webcomponentsjs v0 in:

webcomponents/webcomponentsjs#541
#3430
#4269

Steps to Reproduce
Simplest way to reproduce it is with Polymer 2 stater kit app

polymer init
select polymer-2-starter-kit
polymer serve
open in IE11

(also verified with latest commit of 2.0-preview branch of polymerelements/polymer-starter-kit)
Expected Results
App loads correctly and can be reloaded multiple times without errors. And there is no memory leak for each reload.
Actual Results
Memory spikes and doesn't recover. One third of times app doesn't load.

Browsers Affected

[ ] Chrome
[ ] Firefox
[ ] Edge
[ ] Safari 9
[ ] Safari 8
[x] IE 11

Versions

polymer-cli: 0.18.0-pre.15
polymer: 2.0.0-rc.3
webcomponentsjs: 1.0.0-rc.7

I see the memory go up by ~14 Megs with each refresh, but it fails for me.  That's from replicating the tests above (but not sure if I have the same exact version of polymer-cli).
Fortunately, I'm not seeing memory climb with pure polymer 2 (nothing hybrid) pages.  Do you?

@bahrus @alvarezguille How are you making memory measurements?
If I use the IE 11 developer tools, I can see what you are describing, but using Task Manager and watching IE memory usage, I can't with any regularity.
Also, I can't replicate the "One third of times app doesn't load" statement without the dev tools open.

I did not have dev tools open.  I monitored the memory usage via the details tab of task manager.  I also noted, on the positive side, that if I repeatedly opened the site in different tabs, which would spawn (slowly) more iexplore.exe processes, those processes did flush after a minute or so, after closing all those tabs..
The test where I saw memory climb was refreshing within one tab.  I'll try the test some more with all the latest.

I'm embarrassed to say that when I ran the tests last time, I actually ran them with the Polymer1-starter-kit.  In my weak defense, the cli highlights in bright green the one below the selection.  It highlights the selected one with a more muted blue color (and a > to the left).  Maybe this is standard for cli's...  Anyway...
I updated my polymer-cli, and reran the steps tests alvarezguille (more carefully this time).
I monitor the column "Memory ( private working set)" in the Task Manager.  I also disabled add-ons in internet explorer.
When I first load Polymer-2-starter kit in IE11, it settles down around 50Megs.  4 refreshes later, it climbs to ~80 megs.  4 more refreshes and it is at 110 Megs.  I closed IE11 and tried this three times, same approximate results each time.
So with Polymer2-starter-kit, my memory climbs 7 Megs each refresh, not 14.

@bahrus Can you say which version of IE you have or version of Windows?

11.1066.14393.0
Update Versions:  11.0.41 (KB4014661)
Windows 10 Home 1607
OS Build 14393.1066.

Hmm, I have
11.0.15063.0
Update Versions: 11.0.41 (KB4012204)
Windows 10 1704
So I wonder if this is fixed with the Creator Update to Windows 10 :/

Very possible.  I'll test again when I get it, and try my other PC's as well.

I can also try spinning up another VM with something more closely matching what your environment is.

Now that the same laptop I was testing with above has updated to Creator Update, running the same tests (including the same version of polymer as before), I find that memory only climbs approximately 400 kbytes per refresh.  This seems to be in line with other web sites I try.  Much better!

I've been testing with modern.ie VMs and checking memory with task manager.
The memory is not the only issue here.
The fact that the compiled app fails to load every now and then is affecting us more. @azakus, should I create a separate issue for the refresh part?

The fact that the compiled app fails to load every now and then is affecting us more

+1, same issue here

When you guys say compiled app you mean javascript compiled down to ES5 right? My app is failing to load every time now as well.

Beyond the memory leak Polymer 2 seems to run scales slower on IE11 than Polymer 1. Is there any plan to improve performance on IE11 for Polymer 2.x?

@xanister I would also ask the same question and voice my disappointment about the performance on IE11 after upgrading to Polymer 2. While the past 12 months usage of IE11 has dropped from 4.3% to 2.2% many our partners are small local councils around Europe that many are stuck with old IT infrastructure featuring IE11. We are even considering relaunching the Polymer 1 app and serve it to IE11 users, but this is a major inconvenience for a small nonprofit open source developer :(

I think the Polymer team should be more upfront about this and warn people that performance of Polymer 2 in IE11 is bad. Maybe they should even drop support for IE11 if they can't/won't provide a good user experience.
Ignoring the memory leak issue, which is a big issue, you can get apps to perform in IE11 if you start micro-optimizing (don't use shadowDom), reduce compositions to have fewer elements per page, etc etc.

Per https://github.com/Polymer/polymer/issues/4511#issuecomment-293992301 and https://github.com/Polymer/polymer/issues/4511#issuecomment-298484976 we were unable to definitively reproduce the memory leak as stated in the first comment. To resolve this issue, we require a small reproduction case that shows the memory leak in IE11 that we can confirm and then fix.
Regarding other performance issues in IE11, we require a reproduction case as well which show significant performance regressions compared to other comparable websites. Most notably, we require reproduction cases which show the measured performance numbers regressing. If you can provide a minimal reproduction case, please open a separate issue (please look through other existing issues as well, as it might have already been tracked), as this issue is tracking the memory leak instead.

@TimvdLippe I'm sure the IE11 performance is acceptable in most "minimal reproduction cases" but our problem is that our feature rich citizen participation app has become unusable on IE11 after we upgraded to Polymer 2. Many features result in long delays including getting "long running script" popups.
We're a tiny non-profit and having to go back to also maintaining a Polymer 1 version of the app is daunting but the app not working on IE11 is causing us a lot of problems and we must solve this.
We've built the app using best practices through Polymer 0.5 then 1.0 and now 2.0. We have optimized everything we can think of. The app is blazing fast on Chrome and Safari but unusable on IE11 and slow on Edge. Please help...!
Here are live production servers running the Polymer 2.0 version:
https://yrpri.org/
https://betrireykjavik.is/
https://consultation.parlement-ouvert.fr/group/4
Here is the source code:
https://github.com/CitizensFoundation/your-priorities-app

Just to add we do get one JavaScript error in IE11 on load but probably not connected  - this seems to cause the initial theme to fail to load causing color problems but you can still click through and too slowly use the app without errors.

Hey @TimvdLippe thanks for this! :) Good point to look at the DOM nodes size.
After the quite time consuming Polymer 2 upgrade we spent about 2 person months to get first meaningful paint from 32 sec to under 5 sec in the Audit tool - in reality on most modern phones its less than 2s - this was a major effort but gave us good results.
The nature of our citizen participation projects, where citizens have real influence on local and national government policy, gives us low bounce rates even in the loading time is not fully optimal on the slowest devices and the app works fast after its loaded except on IE11 and Edge. We still want it to go faster of course but most of the development of the app is volunteer based at the moment and there only 24 hours in the day so we're highly resources constraint. We would not go ahead to make it faster on Chrome (for most it now loads almost instantly now) except to fix this IE11 problem. We have a long list of features we want to implement with our limited time but this would further compound the IE11 problem.
For all practical purposes the app works fast on Chrome, Safari and Firefox even with this node count and worked ok on IE11 and Edge in Polymer 1 with the more or less the same element count from the app side.
I realize that we use a lot of web components but even on a simpler page with a lot less showing in the UI then this page has over 7.200 DOM nodes, 2192 HTMLElements and 4916 HTMLDivElements. Only a few hundred DOM elements, at most, are visible but still counts over 7.200 in the Audit. https://betrireykjavik.is/post/17249
Further help in tackling those issues is greatly needed and appreciated!
 Do components loaded with Service Worker contribute to this count?
We're already using the PRPL pattern but turns out that each of my lazy loads has a lot of common elements making the first download so large.  What more can I do here?
Can I somewhere in the Chrome debug tools see what HTMLElement classes have the most instances? I guess the HTMDivElement classes are divs used in the HTMLElement classes.
Is the Shady DOM polyfill key suspect in the performance regression with IE11 on Polymer 2?

Hmm, while the elements are actually lazy loaded using HTML Import then I'm using iron-pages that I thought did not instantiate the elements but looks like they do when I found your element here ;) Going to test it. https://github.com/TimvdLippe/iron-lazy-pages
I'm also waiting on a 500mb IE11 profiling file to open in VS, will report on that later.

Initial results from the IE11 profiling.

@rbjarnason I think the very first low-hanging fruit is your usage of iron-list. Initially I suspected you were not using the element, given the very large rendering of elements. However, after closer inspection it appears you ARE using the element. However, as pointed out at https://github.com/PolymerElements/iron-list#sizing-iron-list you have to explicitly size the list height. On https://yrpri.org/domain/3 the iron-list in yp-community-grid does not have an explicit height, and it defaults to 6000px height. If you set this to something like 90vh, you should be able to render a LOT less dom elements.

the app works fast on Chrome

Do you have any data based on your target audience? I am unable to reproduce these results. Granted, the website loads reasonably fast on my development machine, on lower-end machines I am not seeing the same results. IE11 on a slow machine will be definitely a lot harder to optimize.

 Do components loaded with Service Worker contribute to this count?

Every element you render in the DOM will be counted, including in shadow dom. So yes they will be counted.

We're already using the PRPL pattern but turns out that each of my lazy loads has a lot of common elements making the first download so large.  What more can I do here?

You could split up the bundles manually. In other words, create some common dependencies .html file where you specify the dependencies and how to load them. Then bundle the dependencies in that specific file and lazy-load it. In general, I think reducing the amount of custom elements you define and use is a good approach. Sometimes the large amount of layers will be a big performance issue.
Looking at Polymer.telemetry in the console, there are 2189 instances of custom elements while there are only 88 custom element definitions on the page, that is quite a lot. In comparison, https://www.youtube.com/ has 1500 instances for 500 definitions.

Is the Shady DOM polyfill key suspect in the performance regression with IE11 on Polymer 2?

That is quite hard to say sadly, there could be multiple factors. In general, for every custom element you define the polyfill has to do some setup work. Then for every instances (especially with the usage of CSS mixins) there needs to be additional style computations. I would first focus on the DOM nodes issue with iron-list before doing other profiling.

Hmm, while the elements are actually lazy loaded using HTML Import then I'm using iron-pages that I thought did not instantiate the elements but looks like they do when I found your element here ;) Going to test it. https://github.com/TimvdLippe/iron-lazy-pages

While I am glad you discovered this element, it is not a golden solution and I was not specifically advocating for the element in this issue. That said, if the element can help you out, that is of course great :smile:
TLDR: I have a big suspicion that fixing the iron-list issue will actually solve most of the problems :pray:

Thanks @TimvdLippe - I will look into the iron-list on the front page and your other suggestions. I was aware of this iron-list requirement and thought I had fixed this everywhere in the app but this is sadly not the problem. If you look at this page then it has two iron-lists with only 3 elements total but this page has over 7200 DOM elements more than the front page. https://betrireykjavik.is/post/17249

Thanks @LarsDenBakker!

@rbjarnason One of your culprits is the dialogs container, which has active dom nodes for all possible dialogs. Even though they're not shown, the polyfill has to write all these up in the DOM. We had the exact same issue actually :)

This is great news, thank you both so much! :) It looks like we have paths to first a quick fix by wrapping top level iron-pages in dom-if with restamp! And to add dom-if also to the dialog system which should be quick as its quite well abstracted. Then a second path to simplifying repeated elements that use elements like iron-ajax and paper-material - I will report the results here later.

@LarsDenBakker Thank you very much for your insights and debugging the dialog issue. Much appreciated!
Definitely agreed that heavy usage of the DOM-heavy elements can run into performance problems. Light-weight elements for these use-cases could be more appropriate. We are doing research on these elements and how we can improve them, so hopefully we can publish some results in the near future. In the mean time, the proposed solutions could already shows some improvement, hopefully enough.

@TimvdLippe @LarsDenBakker Success! After implementing iron-lazy-pages with dom-if restamp both for the top level pages and for the dialogs we're down to 1,362 DOM nodes from 6,230 when not logged in and when admin from gulp 18,547 notes to 10,212 nodes (More work to figure out what admin features can be instantiated on demand) but a great start.
I will report after testing this on IE11 and Edge.

Ok, the app is lot faster on Edge and IE11 :) I will provide detailed numbers later but I'm getting two errors in both browsers and one that makes some dialogs fail to load using the new schema. One seems to have started to appear somewhere along the way of webcomponentsjs updates and has to do with Shady DOM and results in the color scheme not be fully loaded with "Invalid argument". The other makes the dialog fail to load is A dom mutation error (NoModificationAllowedError) maybe connected to https://github.com/Polymer/polymer/issues/4878

@TimvdLippe I've created a new issue to track the Invalid argument crash in Edge and IE. https://github.com/Polymer/polymer/issues/5191

Glad the website is loading a lot faster now, thanks for the detailed investigation :tada:


[CHAD-8727] Added missing fingerprint for ZLL RGBW bulb

@SmartThingsCommunity/srpol-pe-team

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


possible pagination-fix using mongo skip

Related Issue(s):

#https://github.com/Healy-Hyperspatial/stac-fastapi-mongo/issues/1

Description:
PR Checklist:

[ ] Code is formatted and linted (run pre-commit run --all-files)
[ ] Tests pass (run make test)
[ ] Documentation has been updated to reflect changes, if applicable
[ ] Changes are added to the changelog

The tests are failing because of pre-commit. If you run python -m pip install pre-commit and then pre-commit run --all-files it will either fix the issue or tell you what it is.

The other thing to do (which I haven't been doing well so far on this project but will start doing) is to update the Changelog. So like here we describe the addition or fix this pr is making and then link either the issue number of the pr number. Then when we release the next version people can read about what has changed. https://raw.githubusercontent.com/stac-utils/stac-fastapi-elasticsearch-opensearch/main/CHANGELOG.md

The tests are failing because of pre-commit. If you run python -m pip install pre-commit and then pre-commit run --all-files it will either fix the issue or tell you what it is.

I've done it and it made some changes:

I've updated the changelog but I'm unsure if this is how you are supposted to do it:
https://github.com/pedro-cf/stac-fastapi-mongo/blob/pagination-fix/CHANGELOG.md
I've also unskipped the 3 pagination tests:
https://github.com/pedro-cf/stac-fastapi-mongo/commit/ef8f08d90460187e01345f042eda4def0f613c17#diff-a38bef06b3f69317891c409bc81044f53cca52841ea63ec9a6821ea08dea98f6
These changes are all in this commit: https://github.com/pedro-cf/stac-fastapi-mongo/commit/ef8f08d90460187e01345f042eda4def0f613c17
but it seems the pagination tests are failing

Any new changes always go into the Unreleased section and then later we will update the version and push a new release to PyPI

I don't know why the tests are failing - I can look at it tomorrow too if you don't know either or don't have time

The tests are just copied from stac-fastapi-elasticsearch

https://github.com/Healy-Hyperspatial/stac-fastapi-mongo/blob/e59c421c816abe69ced82b472e3b1b837bf6495f/stac_fastapi/tests/resources/test_item.py#L634-L648
"links": [] in page_data seems to be empty, which is causing an error.  It definitely seems weird that links is empty. Could be a problem somewhere else.

Here it says ingest 5 items but the items are being created outside of the loop?
     for _ in range(5):
         ctx.item["id"] = str(uuid.uuid4())
     await create_item(txn_client, ctx.item)
     ids.append(ctx.item["id"])```

I've made fixes to the 3 pytests: https://github.com/pedro-cf/stac-fastapi-mongo/commit/a32d1fe4adf89ed0f77412f39f6060dbff1af98b

Here it says ingest 5 items but the items are being created outside of the loop?
     for _ in range(5):
         ctx.item["id"] = str(uuid.uuid4())
     await create_item(txn_client, ctx.item)
     ids.append(ctx.item["id"])```

1. test_pagination_token_idempotent

Like you mentioned items were being created outside of the loop

2. test_pagination_post

Again, items were being created outside of the loop
idx  was starting at zero which is a problem because in the conftest.py a test-item is add by default  in ctx
https://github.com/Healy-Hyperspatial/stac-fastapi-mongo/blob/e59c421c816abe69ced82b472e3b1b837bf6495f/stac_fastapi/tests/resources/test_item.py#L611
https://github.com/Healy-Hyperspatial/stac-fastapi-mongo/blob/e59c421c816abe69ced82b472e3b1b837bf6495f/stac_fastapi/tests/conftest.py#L154-L164

3. test_pagination_item_collection

Again, idx  was starting at zero which is a problem because in the conftest.py a test-item is add by default in ctx
assert not page_data["features"] was bit confusing to me here? The Last item in the search (the one that does not include a next should still include features correct? So I've changed it to page_data["features"]
https://github.com/Healy-Hyperspatial/stac-fastapi-mongo/blob/e59c421c816abe69ced82b472e3b1b837bf6495f/stac_fastapi/tests/resources/test_item.py#L581

Nice catches. Did that help any of the tests pass? You have to run pre-commit run --all-files again. It's something I almost always forget too.

Nice work! Thank you.

I think test_pagination_item_collection and test_pagination_post still need some rework because the logic doesn't seem right

I improved the tests: better variable naming; comments for clarity; code improve
tests seem to run ok

Sort of weird these test pass on stac-fastapi-elasticsearch.... They probably need to be fixed there too

Sort of weird these test pass on stac-fastapi-elasticsearch.... They probably need to be fixed there too

I'm not 100% sure I'm correct... but  perhaps you could take a look at my tests?
But for example:
https://github.com/Healy-Hyperspatial/stac-fastapi-mongo/blob/e59c421c816abe69ced82b472e3b1b837bf6495f/stac_fastapi/tests/resources/test_item.py#L570
Why would we expect 7 requests for 6 items ?
https://github.com/Healy-Hyperspatial/stac-fastapi-mongo/blob/e59c421c816abe69ced82b472e3b1b837bf6495f/stac_fastapi/tests/resources/test_item.py#L560-L593


Its not FUD Virus Detected

When i run the exe its shows the pop up that process terminated and when i check the report as mentioned its been catch by system watcher by checking the behavior of the program

Python FUD not Exe

get a good crypter lil man


建议取消AZ联盟的支持

PT 助手版本: All

PT 助手安装方式：（市场安装，或zip包安装）

浏览器名称及版本：

浏览器是否安装了其他插件：

停用其他插件后是否正常工作：

问题描述：

https://tieba.baidu.com/p/7744859250

相关截图：

重现步骤：

@ronggang @Rhilip 并且考虑Release一版

We officially support https://github.com/Jackett/Jackett
If you want to search our websites, please use the search API as used by Jackett
Refer here: https://github.com/Jackett/Jackett/issues/8873

Searching our website directly is not good. Please use our API to perform search.
We officially support https://github.com/Jackett/Jackett
If you want to search our websites, please use the search API as used by Jackett

Thank you for provide offical document even in other repo,
We will try to obey this docuement,
But currently, we can only remove all support for avistaz sites.
Also, Our project want to get userInfo like uid, username,level, uploaded, downloaded,seeding,seedingSize et al.
Will sites provide these API ?

Also, Our project want to get userInfo like uid, username,level, uploaded, downloaded,seeding,seedingSize et al.
Will sites provide these API ?

User information will never be available in any form or API, as we respect the privacy and confidentiality of user information.

https://github.com/ronggang/PT-Plugin-Plus/issues/1070
更新相关问题
Release Issue

最新的AZ公告显示 Jackett API disabled.
故目前API请求支持大概也是不行了


Uncaught TypeError: Cannot read property 'play' of undefined

The audio still starts playing, but console logs that error.
twiddle	@	angular.audio.js:128
if (ngAudioGlobals.unlock) {

            window.addEventListener("click",function twiddle(){
                audio.play();
                audio.pause();
                window.removeEventListener("click",twiddle);
            });

        }

I'm having this exact same issue. What is the twiddle function used for?

See https://github.com/danielstern/ngAudio/issues/70

@danielstern I have the same problem.
Should 'audio' be a parameter to the callback function.
Also after reading issue #70 I am none the wiser to what this twiddle function is for.
Have you referenced the right issue?


Fix blockModels loading

This fixes block models with multiple words like ImageGridBlock which should be registered as imageGrid not as image-grid

https://github.com/bnomei/autoloader-for-kirby/releases/tag/v4.3.1

thanks @iskrisis for providing this fix

@bnomei thanks for the plugin and lightning bolt release.

@iskrisis I decided to revert the change and keep the kebab case but provide a working way to configure the behaviour on a per-plugin index.php basis. In your case you need to change your setup to something like this
/site/plugins/example/index.php
<?php

Kirby::plugin('bnomei/example', autoloader(__DIR__, [
        'blockModels' => [
            // mapping BlockModel class names to file names, like
            // MyCustomBlock::class => 'myCustom' (site/blueprints/blocks/myCustom.yml)
            'transform' => fn ($key) => \Bnomei\Autoloader::pascalToCamelCase($key),
        ],
    ])->toArray()
);


App Rejected

Guideline 2.1 - Performance - App Completeness
We discovered one or more bugs in your app when reviewed on iPad running iOS 12.2 on Wi-Fi.
Specifically, no sound is produced when the app is launchd. The app remains frozen on the initially launched screen.
Next Steps
To resolve this issue, please run your app on a device to identify any issues, then revise and resubmit your app for review.
If we misunderstood the intended behavior of your app, please reply to this message in Resolution Center to provide information on how these features were intended to work.
For new apps, uninstall all previous versions of your app from a device, then install and follow the steps to reproduce the issue. For updates, install the new version as an update to the previous version, then follow the steps to reproduce the issue.
Resources
For information about testing your app and preparing it for review, please see Technical Note TN2431: App Testing Guide.
For a networking overview, please review About Networking.

Does your app work when you test it under that scenario? (on a device - iPad running iOS 12.2 on Wi-Fi)
If it does, maybe try re-submitting?

I fixed this by clicking "requires full screen" in xcode and then resubmitting. Approved within 24 hours. Thank you!

What is the relation?

Glad you got it figured out, @paulgnz!


No tag for 4.0.38

Describe the bug
4.0.38 has been released on NuGet, but there is no git tag for it.
To Reproduce
N/A
Screenshots
N/A

Good catch!
https://github.com/swharden/ScottPlot/releases/tag/4.0.38


Add initial IDE interface, adding an overlay filesystem a diagnostics getter method

Debugging some Windows issues but the PR is broadly ready for review


added forgot password interface

#163
demo:
https://github.com/user-attachments/assets/229bc459-72aa-4a9b-a2f4-ff8e43e48cc0

@ananyag309 : I think you need to send actual email for reset password link.
Sending toast message do nothing except misleading user.

i don't know how to do it - backend can you do it then please take up the issue @mehul-m-prajapati


Incorrect value for Content-Encoding header passed

https://github.com/wal-e/wal-e/blob/master/wal_e/operator/backup.py#L243
content_encoding should be identity or removed altogether; value shown is a MIME type: application/json, not an encoding type. See https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.5

Can you submit a patch?

Oops, just saw your pr.

Closed as redundant, per #273


[Feature]: separation of NWBFile formation and dataset configuration

What would you like to see added to NeuroConv?
We are in the process of generalizing NeuroConv to support HDF5 and Zarr backends and found that there are many places in the code that use H5DataIO, which is causing problems for the Zarr backend. Another problem is that you cannot set conversion options individually for different datasets, which has become a problem in some applications. The proposed solution is to remove all of these H5DataIO calls and instead provide a separate interface to alter these settings on a per-dataset basis in a later step. This provides a separation between setting the values of the data and metadata and setting the storage options.
Here is a proposal based on our conversation and some follow-up conversations with the NWB team:

Remove all H5DataIO and any other backend-specific code from the underlying methods of run_conversion, and move all other code into a new method, named something like add_to_nwb(). For each large dataset (where an H5DataIO was previously used) we would instead add each container to a dict. Something like: data_interface.dataset_configs.update[container_id, field] = dict(**default_io_kwargs)

The BaseDataInterface would have an additional optional backend arg. This can be called during init or can be set later with data_interface.set_backend("hdf5|zarr") with a default "hdf5". NWBConverter would similarly have a backend arg that propagates to inner interfaces.

BaseDataInterface.set_dataset_configs() would take args of the same form  as dataset_configs: **{(container_id, field): dict(**io_kwargs)}.

BaseDataInterface.write() would first apply all the dataset_configs and then call the NWB**IO.write() command based on the backend chosen.

BaseDataInterface.run_conversion() would stick around for backwards compatibility, and would call .add_to_nwb() and then .write(). We could allow for some basic compression options as before, but this method would not allow for dataset-specific conversion options.

Thoughts on this approach?
One thing I'm not entirely happy with is the fact that it will be difficult to see which container you are adjusting with the tuple (container_id, field), because a user won't be able to see the name, location, or neurodata type of that container. It might be better for this dict to be {readable_key: dict(container_id=uuid, field=str, io_kwargs=dict)},
Is your feature request related to a problem?
No response
Do you have any interest in helping implement the feature?
No.
Code of Conduct

[X] I agree to follow this project's Code of Conduct
[X] Have you ensured this bug was not already reported?

This is closely related to https://github.com/catalystneuro/neuroconv/pull/398
and would depend on https://github.com/hdmf-dev/hdmf/issues/856

@CodyCBakerPhD This is a good start. I see you are making the prepare_for_write call on the write_nwbfile, which already knows the backend, so you should be able to omit it within the context. I think we can combine make_or_load_nwbfile into write_nwbfile and combine parse_for_write with write. Something like:
def run_conversion(...):
  with NeuroConvIO(..., backend="zarr") as neuroconv_io:
       nwbfile = converter.assemble_nwb(nwbfile)  # or anything else that 'assembles' the file structure
       neuroconv_io.write(nwbfile, filepath, dataset_configurations=...)

class NeuroConvIO():
    def write(nwbfile, filepath, dataset_configurations: Optional[dict] = None):
        for (container_id, field), dset_config in dataset_configurations.items():
            data = nwbfile.get_object(container_id).getattr(field)
            nwbfile.get_object(container_id).getattr(field) = set_dataio(data=data, **dset_config)

I like the idea of adding separate interface methods for both appending (add_to_nwb) and writing. In my view, having separate methods instead of a single run_conversion that writes or appends depending on the input is way cleaner and transparent.
Looking at #455 it seems that this run_conversion will still work for  NWBConveter and the ConverterPipe. I think it would be a good idea to add a write method to those classes. I like the idea of having consistent methods between stand-alone interfaces and the converters such as in:
https://neuroconv.readthedocs.io/en/main/conversion_examples_gallery/combinations/spikeglx_and_phy.html

@h-mayorquin yes, that's the way I am thinking about it. metadata is added via add_to_nwbfile, then .write handles data packing settings

All right, then it is just missing from the signature in the base class.

Well actually that was done intentionally. Note that with the **kwargs, you don't really need to put metadata in that signature- it will work even if not explicitly defined in the abstract class. There are edge cases where interfaces actually don't need a metadata arg  at all, and if you put metadata in the abstract class then code inspectors complain that the downstream class methods do not match the abstract method signature.

I see.
I was mislead about the purpose because the kwargs here are named conversion_options. But this is probably temporary until we fully separate adding from writing.

This is mostly done; only more thorough testing of Zarr output per interface remains
Good to close?


Fixed grammar in README

Fixed grammar in README:
These objects are consist of the following fields: =>  These objects consist of the following fields:
My editor also removed trailing spaces, which is probably another good thing to do.

Thanks!

Released in 2.2.3


fix: Highcharts v12 side effect import sorting

Highcharts v12 introduces a new simpler way to import it's additional modules, which uses side effect imports to achieve.
By default, eslint-plugin-simple-import-sort groups side effect imports at the top of the file, which makes highcharts/modules/... being imported before highcharts, resulting in a runtime error.
To fix this, we add a custom groups config for simple-import-sort/imports to group Highcharts side effect imports after package imports.
Highcharts v12 info: https://www.highcharts.com/blog/changelog/#:~:text=When importing Highcharts as a node module%2C additional modules no longer require initialization

As @lixiaoyan is concerned about the maintainability of this fix, we are considering alternative workarounds for this issue.
I am converting this PR to a draft. Once we reach a conclusion, this PR may be closed or ready for review again.


[Other] Use constructor method

To my mind self::start() should be placed in the constructor method to make sure it gets called.

Using constructor is unnecessary here.

The method start() gets called every time where we set, get or check a session. It would make more sense to me to call that method right in constructor or even rename it to constructor.

Method start, use check session status. Use method start guarantees the existence of session.
Object session not guarantees start session:
Example construct:
protected $statusSession = false;

publick function __construct(array $option = [])
{
	$this->statusSession = session_start($option);
}

publick function getStatusSession(): bool
{
	return $this->statusSession;
}

Use source:
// your source
$session = new Session();

if (session->getStatusSession) {
	// your source
	$session->set('example', 'example_value');
	// your source
}
// your source

Your friend edit source:
// your source
$session = new Session();

if (session->getStatusSession) {
	try {
		// your source
	} catch (Throwable $e) {
		$this->reset();
	}
	$session->set('example', 'example_value');
	// your source
}
// your source

publick function reset(): void
{
	// source your friend
	 session_destroy();
	// source your friend
}


Dnd

Addresses #6 using https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/patterns/multi-drag.md
I didn't implement all their selection methods because I think it is fine not to use hotkeys to select layers. It also may be useful to be able to use the arrow keys to move the elements around after selecting it. I did implement the drag and drop like it was described in the react-beautiful-dnd docs though.
I also think that for the feature where holding shift allows you to multi-select layers, command/control would be better because I think that's how it usually is and shift is used to select all layers inbetween the first layer clicked and the layer that was just clicked.
Thoughts?

@Mxchaeltrxn Now the we've got #63 merged, do could you get this up-to-date with master? Looks like there's going to be conflicts in Editor.js.

I didn't implement all their selection methods because I think it is fine not to use hotkeys to select layers.

Totally agree.

I also think that for the feature where holding shift allows you to multi-select layers, command/control would be better because I think that's how it usually is and shift is used to select all layers inbetween the first layer clicked and the layer that was just clicked.

:+1: I've been meaning to make an issue for this.

@haydn So I haven't addressed your comment yet because I just noticed it. I can do it in a moment.
But if you decide to look at this now, dragging the layers causes the list items to shift and because the layers are separated by a border, it looks really ugly. I've put a border around each list item to make this really obvious. I'm not entirely sure how to style it so that it looks good. I've considered removing those borders while an item is being dragged and using the div inside to create the border rather than the one outside. In my head, these are still really ugly. Thoughts?

@Mxchaeltrxn Yeah, let's get this one merged next! I think there's going to be some tricky merging ahead of you, so let's get through that first and make sure everything works and we'll clean-up styles at the end.
A little bug to note in the current version: if you select a layer and then drag a different layer the new layer you dragged won't get selected and the layer that is selected will be the one that gets reordered. Might just be a visual bug.

@haydn Addressed that problem. I had the logic wrong.
Notes/todos:

I'm not really sure about the tests I wrote that target reordering multiple elements.
Style the layer elements.
What do you think about these lines in reorder.js? I'm trying to validate the predicates that are used as arguments. I'm asking because I'm not exactly sure how I should be testing the predicate (and therefore validating it as well).

  // If filtered arrays have overlap, predicates are invalid.
  if (
    elementsToShiftList.filter(elem =>
      set(multipleElementReorderedList).has(elem)
    ).length > 0
  ) {
    return "invalid predicate(s)";
  }

@Mxchaeltrxn Alright, nice work dealing with the merge conflicts! I assume it was a bit painful.
I reckon there's probably a better interface for the reorder function that doesn't use predicates. Unlike the functions in layers.js we won't get much benefit from an inversion of control pattern because we're already just passing in indices and doesn't have any special knowledge of what is in the array it's reordering — just that it's an array. We could use it for reordering layers, an array of strings (as we do in the tests) or anything else we want to. That's the same goal we're trying to achieve by using predicates for the functions in layers.js — we're trying to minimise the knowledge those functions have of the data they're operating on (they only know this items passed to them have x1, y1, x2 and y2 values, but nothing else).
With that in mind, I reckon we can make is so the startIndex argument can be either a single index or an array of indices (these test are just a handful of examples, it's still good to include all those edges case you've covered in your tests):
test("single element, move to end", () => {
  expect(reorder(["a", "b", "c", "d"], 0, 3)).toEqual(["b", "c", "d", "a"]);
});
test("multiple elements, move to start", () => {
  expect(reorder(["a", "b", "c", "d"], [0, 3], 0)).toEqual([
    "a",
    "d",
    "b",
    "c"
  ]);
});
test("multiple elements, move to middle", () => {
  expect(reorder(["a", "b", "c", "d"], [0, 3], 1)).toEqual([
    "b",
    "a",
    "d",
    "c"
  ]);
});
test("multiple elements, move to end", () => {
  expect(reorder(["a", "b", "c", "d"], [0, 3], 2)).toEqual([
    "b",
    "c",
    "a",
    "d"
  ]);
});
test("ignore duplicates", () => {
  expect(reorder(["a", "b", "c", "d"], [0, 0], 3)).toEqual([
    "b",
    "c",
    "d",
    "a"
  ]);
});

I'm assuming we'll be able to use this something along these lines, however, this might might need adjustment because I'm not 100% sure what the value of destination.index is:
const onDragEnd = ({ destination }) => {
  if (!destination) return;
  setState(current => ({
    ...current,
    doc: {
      ...current.doc,
      layers: reorder(
        current.doc.layers,
        current.doc.layers
          .map(({ id }, index) => ({ id, index }))
          .filter(({ id }) => selection.has(id))
          .map(({ index }) => index),
        destination.index
      )
    }
  }));
};

@haydn Yeah it was a little annoying to merge. Hmm I didn't realise that inversion of control wasn't that useful here. It did make things much easier to do though.
So I've fixed the function and added relevant tests. The way you setState there is super cool. I'm surprised it took so few lines of code to do achieve that result. I've changed it a little to put the source.index at the start of the array so it's compatible with the reorder function.

@Mxchaeltrxn Sorry for the delay getting back to you!
Let's use ESDoc syntax to document the function:
/**
 * Reorder the elements of an array using their indices.
 * @param {Array<T>} list - An array of elements to be reorder.
 * @param {number|Array<number>} originalIndices - Index or indices of the elements to be reordered. If multiple indices are provided the order they are specified in will be preserved in the resulting array.
 * @param {number} targetIndex - The index the reordered items should appear at in the resulting array.
 * @return {Array<T>} A new array with the items from the original array reordered.
 * @example
 * reorder(["a", "b", "c", "d"], [2, 0], 1); // -> ["b", "c", "a", "d"]
 */

I've noticed some tests cases that would fail with the current implementation:
test("consecutive elements, move to end", () => {
  expect(reorder(["a", "b", "c"], [0, 1], 1)).toEqual(["c", "a", "b"]);
});

test("consecutive elements reordered, move to end", () => {
  expect(reorder(["a", "b", "c"], [1, 0], 1)).toEqual(["c", "b", "a"]);
});

I have quite worked out where/why that's happening, but I think there's some simplifying that can be done to that function. Conceptually, it needs to do 3 things:

Get the arguments into a known shape — make the originalIndices argument an array of indices even when only a single index was supplied.
Split list into two separate lists — the items being moved (in the order they need to be in) and the items not being moved (in the order they were originally in).
Inject the items being moved into the items not being moved at the target index specified.

Unfortunately, JS doesn't give us a nice easy way to do step 2, so we'll have to do two passes over the list to separate it into the parts we want (this is achievable in utilities libraries such as Ramda using groupBy, but it's probably a bit heavy handed to introduce a whole dependency for one fairly minor case). We'll also need to do some funkiness to inject the items back into the array because the splice method takes the items to inject as individual arguments instead of an array. Here's the gist of how we can do it (I haven't actually tested this code and I expect there are some mistakes in it, but it should give you a good starting point):
// reorder(["a", "b", "c", "d"], [2, 0], 1);
const originalIndicesAsArray = Array.isArray(originalIndices)
  ? originalIndices
  : [originalIndices];
const itemsBeingMoved = originalIndicesAsArray.map(i => list[i]);
const itemsNotMoving = list.filter(
  (_, i) => !originalIndicesAsArray.includes(i)
);
return Array.prototype.splice.apply(itemsNotMoving, [
  targetIndex,
  0,
  ...itemsBeingMoved
]);

Also, I see you are ignoring duplicates in your implementation. You're right, it's a case we need to handle, but I think it's probably better to just throw an error instead of trying to remove the duplicates. It's not really an intended use case and the exact results would be hard to predict (a user wouldn't know if it uses the position of the first or last duplicate index for the item's new position) and it makes our life a lot easier to explicitly not handle the case instead of adding lots of extra code to cover it off. We can just do something like this (and similar things for cases where there are indices that are out of bounds, although they'll probably throw errors anyway so it won't really add much value handling them ourselves):
if (new Set(originalIndicesAsArray).size !== originalIndicesAsArray.length)
  throw TypeError("Duplicate indices are not allowed in originalIndices");

FYI — You can test that the function correctly throws an error with toThrow.

Still gotta add the tests that check if the function throws correctly so this isn't done yet


Besu RPC service consistency against other client implementations #1

(Updated 22.08.11.)
Sorry, I moved the remaining parts of this report to the following link: https://github.com/ethereum/execution-apis/issues/286
Please check for the edit history to see my original report.

Description
Hi all,
I am working on a project that validates whether Besu behaves consistently to other Ethereum client implementations against RPC requests.
(I will refer to the implementations as node A, B and C here.)
I would appreciate it if you can clarify whether the following results are intentional or require patches.
Thank you so much in advance and please let me know if there is anything necessary.
Q1. getPendingTransactions support

(Besu) returns an error: "Method not found"
(Node A,C) returns []

Steps to Reproduce (Bug)

Please download all the .tar.gz files below.
https://drive.google.com/file/d/1ufiZH8hjJrr5Wn-Nif4KSN8QgxOGHi1H/view?usp=sharing
https://drive.google.com/file/d/16QkzKvit4gTEg-HInt8gJmyyOpdm6Dke/view?usp=sharing
test_cases.tar.gz
Untar the downloaded .tar.gz files. They contain valid chain data and test cases that are semi-automatically generated by our project techniques.
Check out CHAIN_DIR and TC_FILE for your Q{n} from the description below.
Execute Besu binary with the following flags:
besu --data-path CHAIN_DIR/data-besu --genesis-file CHAIN_DIR/besu.json --rpc-http-port 8549 --rpc-http-enabled --rpc-http-api ETH --network-id 15 --discovery-enabled false
Execute the test case file: node TC_FILE

Q1. chain-1 / TC_1659703707.js

Versions (Add all that apply)

Software version: besu/v22.4.4/linux-x86_64/openjdk-java-16
OS Name & Version: Ubuntu 20.04.4 LTS
Node.js / web3.js Versions: v16.15.0 / v1.7.3

Hi @JosephK95
Ethereum does not have a strict RPC specification. So differences between clients can be expected. There is an ongoing effort to standardize RPC calls, but no official specification came out of it.
The closest thing to a spec can be found here: https://ethereum.github.io/execution-apis/api-documentation/
As all the examples, except for getPendingTransactions, are error handling. I think it does not make sense to change them until we have an official spec. I hope you understand.

Hi, @daniellehrner.
Yes, I agree that the implementations can behave differently.
So I just wanted to know whether all the results above were intended by Besu developers or some of them can be considered to be patched. (as Besu returns errors in some other cases such as getFeeHistory and getProof)
Thanks.

Hi @JosephK95 I'm taking a look at this - agree with @daniellehrner the spec is a little vague - and at the same time consistency is generally good.
Further analysis including actual error messages, and with differences highlighted - https://docs.google.com/spreadsheets/d/1w1xauhHt8T17jBNwyVvaLs8isM0L7sPrYteoyjzq75w/edit#gid=0
@JosephK95 in your analysis you mention getProof and getFeeHistory but there are no test files for those?

Created #4987 for the remaining getUncle difference.


Cannot read property 'public' of undefined

Cannot read property 'public' of undefined
Versions

nuxt: v2.14.0

Reproduction

npm run start

What is Expected?
Server is running but on navigating to website getting this error:

No page is opening
The corresponding line number has this code:

What is actually happening?
Getting error.

Could you create a reproduction sample?

This happened to me too，is there any solution?
After I ran the command, different file server.js  were generated between my fiend and me ,

I also had this situation，There is no problem for others to pack and deploy，Should be related to local environment，I haven't found a reason yet，Do you have any solving experience？

I solved it,I compared dependence，Too high version of nuxt results in

@ThreeFiveSevenWords can you please describe how you solved it again? Will be helpful to me. Thanks in advance


Block Explorer > Markets page shows incorrect data

Description
Something is up with the markets page:

Every market shows the same title
The JSON field shown below doesn't match what I'd expect

Steps to Reproduce

Go to https://explorer.fairground.wtf/markets
Scroll down the page, taking note of the titles - they will all match
Refresh the page, the titles will be different, but all match

Expected behavior
Correct market details are shown
Screenshots

Additional context

Running the query manually returns reasonable data (not all markets have the same name)

curl 'https://api.n09.testnet.vega.xyz/graphql' -X POST -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:105.0) Gecko/20100101 Firefox/105.0' -H 'Accept: */*' -H 'Accept-Language: en-GB,en;q=0.5' -H 'Accept-Encoding: gzip, deflate, br' -H 'Referer: https://explorer.fairground.wtf/' -H 'content-type: application/json' -H 'Origin: https://explorer.fairground.wtf' -H 'DNT: 1' -H 'Connection: keep-alive' -H 'Sec-Fetch-Dest: empty' -H 'Sec-Fetch-Mode: cors' -H 'Sec-Fetch-Site: cross-site' -H 'TE: trailers' --data-raw '{"operationName":"MarketsQuery","variables":{},"query":"query MarketsQuery {\n  markets {\n    id\n    fees {\n      factors {\n        makerFee\n        infrastructureFee\n        liquidityFee\n        __typename\n      }\n      __typename\n    }\n    tradableInstrument {\n      instrument {\n        name\n        metadata {\n          tags\n          __typename\n        }\n        id\n        code\n        product {\n          ... on Future {\n            settlementAsset {\n              id\n              name\n              decimals\n              globalRewardPoolAccount {\n                balance\n                __typename\n              }\n              __typename\n            }\n            __typename\n          }\n          __typename\n        }\n        __typename\n      }\n      riskModel {\n        ... on LogNormalRiskModel {\n          tau\n          riskAversionParameter\n          params {\n            r\n            sigma\n            mu\n            __typename\n          }\n          __typename\n        }\n        ... on SimpleRiskModel {\n          params {\n            factorLong\n            factorShort\n            __typename\n          }\n          __typename\n        }\n        __typename\n      }\n      marginCalculator {\n        scalingFactors {\n          searchLevel\n          initialMargin\n          collateralRelease\n          __typename\n        }\n        __typename\n      }\n      __typename\n    }\n    decimalPlaces\n    openingAuction {\n      durationSecs\n      volume\n      __typename\n    }\n    priceMonitoringSettings {\n      parameters {\n        triggers {\n          horizonSecs\n          probability\n          auctionExtensionSecs\n          __typename\n        }\n        __typename\n      }\n      __typename\n    }\n    liquidityMonitoringParameters {\n      triggeringRatio\n      targetStakeParameters {\n        timeWindow\n        scalingFactor\n        __typename\n      }\n      __typename\n    }\n    tradingMode\n    state\n    proposal {\n      id\n      __typename\n    }\n    state\n    accounts {\n      asset {\n        id\n        name\n        __typename\n      }\n      balance\n      type\n      __typename\n    }\n    data {\n      markPrice\n      bestBidPrice\n      bestBidVolume\n      bestOfferPrice\n      bestOfferVolume\n      bestStaticBidPrice\n      bestStaticBidVolume\n      bestStaticOfferPrice\n      bestStaticOfferVolume\n      midPrice\n      staticMidPrice\n      timestamp\n      openInterest\n      auctionEnd\n      auctionStart\n      indicativePrice\n      indicativeVolume\n      trigger\n      extensionTrigger\n      targetStake\n      suppliedStake\n      priceMonitoringBounds {\n        minValidPrice\n        maxValidPrice\n        trigger {\n          auctionExtensionSecs\n          probability\n          __typename\n        }\n        referencePrice\n        __typename\n      }\n      marketValueProxy\n      liquidityProviderFeeShare {\n        party {\n          id\n          __typename\n        }\n        equityLikeShare\n        averageEntryValuation\n        __typename\n      }\n      __typename\n    }\n    __typename\n  }\n}\n"}' | jq

Fixed in develop, will be fixed by a deploy to testnet


feat: added PR template

What’s the focus of this PR
This PR adds this awesome PR template. Feel free to suggest modifications for it
How to review this PR
With lots of love
Before submitting this PR, I made sure:

[x] The code builds clean without any errors or warnings
[x] I'm using our guidelines
[] I've added unit tests if feasible

I wasn't aware of this, @inigomarquinez should we wait for the general one to be included?


[Testing] refactor test files to improve code quality and coverage

Please ensure your issue adheres to the following guidelines:
Refactor the tests files to remove code duplication of the common src utility files in the test folder (ex: mock_utility, mock_constants).
Make use of patch to efficiently access and mock the utility files within the tests as well.

[ ] Use the following format: * [owner/repo](link)
[ ] Link additions should be added to the bottom of the relevant category.
[ ] New categories or improvements to the existing categorization are welcome.
[ ] Search previous suggestions before making a new one, as yours may be a duplicate.
[ ] Sort by alphabetical order

Thanks for contributing!

@namitad Thanks for contributing. Hoping to see more encore contributions in the future.


Adding a property mediator with the scope AXIS2_CLIENT gives 'org.apache.synapse.SynapseException'

Description:

It generates the synapse configs with axis2_client as the scope attribute. But it should be axis2-client.

Suggested Labels:

Suggested Assignees:

Affected Product Version:
OS, DB, other environment details and versions:
Steps to reproduce:
Related Issues:

Follow this on: https://github.com/wso2/mi-vscode/issues/136


Entry not found in cache error when entering a globally unique name for a new web app

Repro steps:

Open the command palette
Select: Azure App Service: Create New Web App...
Enter any value
Hit return

Other considerations:

I have "appService.advancedCreation": true set in my settings
I'm logged in and have successfully used the extension in the past

Action: appService.CreateWebApp
Error type: Error
Error Message: Entry not found in cache.
Version: 0.13.1
OS: darwin
VS Code Version: 1.33.1

Call Stack
a.module.exports.a.createError (dist/extension.js:1:49013)
b.<anonymous> (dist/extension.js:229:176642)
dist/extension.js:229:171257
dist/extension.js:229:43312
dist/extension.js:229:41305
dist/extension.js:229:40927
i.module.exports.i.find (dist/extension.js:229:75420)
module.exports.find.init.then (dist/extension.js:229:22917)

I also see the following in my sidebar

Hi @nnja
This seems to be related to this issue: https://github.com/Microsoft/vscode-azure-account/issues/53
Unfortunately, I'm not sure there's a lot our team can do about this bug, but I think the workaround is logging out and then logging back in. ☹
In the command palette, that's Azure: Sign Out and Azure: Sign In

I uninstalled and reinstalled the extension, and it seems to have resolved itself.
Is there any way to detect and fix this state from the extension itself for a better user experience?

Just for clarification, when you say you uninstalled/reinstalled the extension, are you referring to App Service or the Account Extension??
We could try to catch the error and resign the user out/in maybe. @fiveisprime Would this be too jarring of a user experience?

Closing as external.  We are currently tracking this issue: https://github.com/Microsoft/vscode-azure-account/issues/53

@nturinski -- I uninstalled and reinstalled the Azure App Service extension. That cleared the error.
I didn't touch the Account extension, and I did not log out.

We could try to catch the error and resign the user out/in maybe. @fiveisprime Would this be too jarring of a user experience?

Yeah, I don't like that at all. Does a reload work? I'd be fine with a button as part of the error that would exec a reload for them.