Do not try to read sets array if empty in ImageProcessQueue

In ImageProcessQueue I get empty arrays sometime. This error blocks my building process.

Thanks, @mino89  :)


functional-tester: latency Injection shows error on live tester

The current 3 node tester is reporting error on latency injection.
2016-11-09 18:18:23.568204 I | etcd-agent: set latency of 500ms (+/- 50ms)
2016-11-09 18:18:23.648393 I | etcd-agent: error setting latency exit status 1
2016-11-09 18:18:23.784513 I | etcd-agent: removing latency
2016-11-09 18:18:23.802817 I | etcd-agent: error removing latency

The current tester inject latency on dev eth0(https://github.com/coreos/etcd/blob/master/pkg/netutil/isolate_linux.go#L49), but the agents don't have dev eh0
fanminshi@test01-agent01:~$ ifconfig
ens4      Link encap:Ethernet  HWaddr 42:01:0a:f0:00:02
          inet addr:<IP_ADDRESS>  Bcast:<IP_ADDRESS>  Mask:<IP_ADDRESS>
          inet6 addr: fe80::4001:aff:fef0:2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1460  Metric:1
          RX packets:508807089 errors:0 dropped:0 overruns:0 frame:0
          TX packets:625083325 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:596458454684 (596.4 GB)  TX bytes:473036079782 (473.0 GB)

lo        Link encap:Local Loopback
          inet addr:<IP_ADDRESS>  Mask:<IP_ADDRESS>
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:525075 errors:0 dropped:0 overruns:0 frame:0
          TX packets:525075 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1
          RX bytes:30065638 (30.0 MB)  TX bytes:30065638 (30.0 MB)

we need a programmatic way to configure network interface.

@fanminshi For these env dependent tests, probably we can just skip it if failure injection fails?

@xiang90 the current tester will skip if latency injection has failed. So the tester still proceed. the problem is that latency injection failure is not being tested at all on live tester.

@fanminshi OK. That is bad. We should fix it.

Yeah, I noticed this problem when I am working on https://github.com/coreos/etcd/issues/5614.


Predict() is not working when using BatchNormalization()

I am trying to use a following little complicated LSTM language model for text generation.
# -*- coding: utf-8 -*-
import json
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"
import keras
from keras.models import Model
from keras.layers import Input, Dense, Activation, Embedding, LSTM, TimeDistributed, concatenate
from keras.layers.normalization import BatchNormalization
from keras.optimizers import Adam
from keras.regularizers import l2

class MyLSTM:
    def __init__(self):
        self.FEATURE_SIZE = 1000
        self.VOCA_SIZE = 20000
        self.MAX_LEN = 20

    def build(self):
        print('Build model...')
        # INPUT LAYER 1
        word_input = Input(shape=(self.MAX_LEN,), dtype='int32', name='word_input')
        word_emb = Embedding(output_dim=512, input_length=self.MAX_LEN, input_dim=self.VOCA_SIZE, name='word_emb')(word_input)
        # INPUT LAYER 2
        feature_inputs = Input(shape=(self.MAX_LEN, self.FEATURE_SIZE), dtype='float32', name='f_inputs')
        feature_denses = TimeDistributed(Dense(512, activation='relu', kernel_regularizer=l2(0.01), name='f_dense'), name='f_denses')(feature_inputs)
        # CONCAT LAYER
        merge_layer = concatenate([word_emb, feature_denses], name='concat_layer')
        # LSTM
        word_lstm = LSTM(1024, implementation=1, kernel_regularizer=l2(0.01), name='word_lstm')(word_emb)
        word_dense = Dense(self.VOCA_SIZE, kernel_regularizer=l2(0.01), name='word_dense')(word_lstm)
        word_norm = BatchNormalization(name="word_norm")(word_dense)
        word_output = Activation('softmax', name='word_output')(word_norm)
        self.model = Model(inputs=[word_input, feature_inputs], outputs=[word_output])
        # COMPILE
        optimizer = Adam(lr=0.001)
        self.model.compile(optimizer=optimizer, loss={'word_output': 'categorical_crossentropy'})

    def save(self):
        self.model.save_weights('model.hdf5')
        with open('model.json', 'w') as f:
            f.write(self.model.to_json())

def main():
    mylstm = MyLSTM()
    mylstm.build()
    mylstm.save()

if __name__ == "__main__":
    main()

Using Keras.js and encoder.py, I could load this model.
However, I also get the same error as comment #69, when calling Model.predict() in Keras.js .
And I can use Model.predict() when I do not use BatchNormalization()
What is the solution to this error?
Or can you please fix BatchNormalization() and Predict() ?
I'm using Keras 2.0.4 and python 3.5.3

I can confirm this. I am getting the same error with a different neural network structure that also uses BatchNormalization.

I have this problem, too. I want to know whether this is a problem of keras-js.

I also encounter the same problem using Keras 2.2.4 on normal CNN with BN ...


Some side menus can become quite large. It would be neat to have a filter input that as the user types, filters out non-relevant menu items.

Why is this feature necessary?
Some side menus can become quite large
Do you have examples of this feature in other projects?

https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/acmpca_certificate_authority_certificate

Participation

[ ] I am willing to submit a pull request for this issue.

I think has added this filter function.

Thanks for the suggestion @geerew! This would probably need really thorough testing and has a lot of UX and accessibility considerations, so definitely not a simple thing to implement.
I think I might push for us to wait until #415 is addressed and then it might be something people can implement as a plugin rather than having it as a built-in feature.


Integration Test - Release - 2022/01/28 02:50:53

Auto create for integration test. IssueCommandFlow

#pri1

Just type '#pri3'

#pri2

#pri3

#assign PRMergerTest1

#assign NonAllowedUser

The following users don't have valid GitHub IDs, or are not collaborators on this repo: nonalloweduser

#reassign PRMergerTest2

#reassign NonAllowedUser

The following users don't have valid GitHub IDs, or are not collaborators on this repo: nonalloweduser

GitHub user PRMergerTest1 has been removed from the MicrosoftDocs organization, so they were automatically removed as an assignee.

#please-close

#unassign PRMergerTest1

#unassign NonAllowedUser


Mesh does not render (draw) all the faces.

Description
I am using the Mesh to create procedurally a mesh and then adding the vertices and indices to the mesh. I do not understand why the generate cube mesh method works and a procedurally generated one does not.
I ended up using the Cube.GetVerts to extract the default Mesh.Cube vertices. I know that it draws a cube just fine. But not when I try to create the mesh using the extracted vertices.
I tried making each side a different color so that I could tell what is being drawn. The draw method draws only one triangle for each side of the cube. Stranger still all faces of the triangles face the inside of the cube (color is on the inside) except the face that is facing forward when the mesh is created.
I have attached a file that has just the failing code to draw the cube (should anyway). I use a simple test app with holographic remoting to simply add the file to the StereoKit using the SK.AddStepper method. To test, I used the SK template for Visual Studio. I added the file in the attached zip to the project. I added the holographic remoting so I could test rapidly locally and with HoloLens 2.
Any help in understanding why the mesh behaves at it does, is greatly appreciated.
Platform / Environment
Windows 11 using remoting and HoloLens2 latest build. Visual Studio Enterprise latest version, StereoKit 0.3.8 version.
MeshCube.zip

@maluoi This is likely more a documentation issue than a code issue. I have struggled for a couple days now trying to figure out how to draw a cube using a mesh with the colors on the faces. My goal is to create complex shapes where complex is an odd-shaped object from a point cloud with vector data. The point data contains all edges to all other points.

@maluoi I kept reading and found that most descriptions of mesh diagramming kept referring to the particular render engine design. I had used the Mesh.GetVerts method so I used the Mesh.GetInds method to get the indices of the Mesh.Cube. With pencil and paper, I sketched out the cube and all the verts. I then created a connection flow for each side. Turns out to be fairly simple.
Think of it as a stack of paper squares where the edge closest to you is the bottom. The 0 corner is the left bottom corner and the 1 corner it the bottom right. The top left is number 2 and the top right is number 3. The winding flow then is left 0->right 1 then up 3. Then start back at left 0 -> across to right 3 then from right 3 -> left top 2. Repeat this flow for all sides.
Now that I can see the flow, I can image a number of arrangements.

Sounds like one thing you might be missing here is that the winding order of your indices is important to how culling works! For example:
Defining a triangle as:
0 1 2

Is different from defining it as:
2 1 0

Here, these triangle definitions face in different directions. StereoKit uses a counter-clockwise order to mean "forward" facing, meanin that if the vertex order looks counter-clockwise from your position, it's facing towards you, and if it looks clockwise, then it's facing away from you.
You can set the Material's FaceCull property to flip how this behaves on a per-material basis as well. By default, StereoKit culls back facing triangles.


filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm asking a question and not reporting a bug or requesting a feature
[X] I've looked through the README
[X] I've verified that I have updated yt-dlp to nightly or master (update instructions)
[X] I've searched known issues and the bugtracker for similar questions including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Please make sure the question is worded well enough to be understood
`import yt_dlp
import os
प्रोफाइल का उपयोगकर्ता नाम
profile_username = "naturefusiongallery"
आउटपुट फोल्डर
output_folder = "/sdcard/FB-upload"
अगर आउटपुट फोल्डर मौजूद नहीं है, तो इसे बनाएं
if not os.path.exists(output_folder):
os.makedirs(output_folder)
Session ID को कस्टम रूप से सेट करें
session_id = "57121688826%3AVtVpeffgEFGIox%3A18%3AAYdd9768Z4wJA5s7z31BwvHY4gESbO-9wIUSIUMUVg"
yt-dlp के लिए ऑप्शंस
ydl_opts = {
'format': 'bestvideo+bestaudio/best',  # उच्च गुणवत्ता में वीडियो डाउनलोड करें
'merge_output_format': 'mp4',           # केवल MP4 फॉर्मेट में वीडियो सेव करें
'outtmpl': os.path.join(output_folder, '%(title)s.%(ext)s'),  # वीडियो का नाम प्रोफाइल के कैप्शन पर आधारित
'postprocessors': [{
'key': 'FFmpegVideoConvertor',
'preferedformat': 'mp4'           # आउटपुट फॉर्मेट MP4 रखें
}],
'cookiefile': None,  # Ensure that cookiefile is not used if using direct session ID
'cookies': {
'sessionid': session_id  # Directly using the session ID as a cookie
}
}
yt-dlp डाउनलोड प्रोसेस
try:
# yt-dlp इंस्टाग्राम प्रोफाइल से वीडियो डाउनलोड करें
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
ydl.download([f"https://www.instagram.com/{profile_username}"])
print(f"Downloaded all videos from: {profile_username}")
except Exception as e:
print(f"Failed to download videos: {e}")'
Provide verbose output that clearly demonstrates the problem

[ ] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[ ] If using API, add 'verbose': True to YoutubeDL params instead
[ ] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
WARNING: The program functionality for this site has been marked as broken, and will probably not work.
[instagram:user] Extracting URL: https://www.instagram.com/naturefusiongallery
[instagram:user] naturefusiongallery: Downloading webpage
ERROR: [instagram:user] naturefusiongallery: Unable to extract data; please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
Failed to download videos: ERROR: [instagram:user] naturefusiongallery: Unable to extract data; please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U

You will have to formulate some sort of question, so we can help you. What kind of response are you expecting by just posting code snippets and an incomplete log that tells you that Instagram user extraction is currently broken?


feat: add node debug info tab

This PR provides a new node tab to display node debug infos - a JSON representation of the node object with all available details:

Pull Request Test Coverage Report for Build 538451364

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

Totals

Change from base Build 537375417:
0.0%

Covered Lines:
1996

Relevant Lines:
9843

💛  - Coveralls

@robertsLando I've added the possibility to use MDI icons, since I've always had troubles finding good icons.
Now everybody can use https://materialdesignicons.com/ to find good icons and use them within zwavejs2mqtt.

@robertsLando PR is ready.


ibus not working

kernel: 6.50
OS: lubuntu 22.04
chromium ver: 123.0.6312.134
ibus ver: 1.5.26
ibus i use is ibus-bamboo, they say i have to reach to dev app to fix this so i just do this here
also thanks for reading first <3

ok, new update fix it, thanks your guy alot <3 <3


[AutoPR cdn/resource-manager] Testing PR bot

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/4942

Closed initial issue


Questions related to integration.

This is very great thing for a learners indeed. Though there are some things that i want to understand, hope i am asking right questions.

Does this FPGA design runs on standalone FPGA or it requires a host PC ( MAC, Intel, etc. )
If it integrates both CPU and GPU in one design only, what kind of CPU architecture it's using? ( RICS-V, etc. )
If i want to just design a GPU and integrate with host processor like ( PCIExress using ) how i should be able to do it?
You have mentioned opencl integration has been done, but i couldn't find a source repo?
The whole Architectural diagram is available of how the GPGPU works?

Sorry to bother you!

No problem!

The host PC is required to load the bitstream onto the FPGA, and to load software onto it. The FPGA board could be made standalone by implementing a flash interface (for persistent storage to load the software from) and supporting flashing the bitstream onto the board (#156)
It's a custom instruction set. https://github.com/jbush001/NyuziProcessor/wiki/Instruction-Set. Were I starting this today, I'd probably use RISC-V, but the vector extensions didn't exist when this project started.
A number of people have done this on the Zynq chips from Xilinx, which couple an ARM processor with FPGA. Some are listed here: https://github.com/jbush001/NyuziProcessor/wiki/Related-Projects-and-Research. None of that work is in this repo, but there are some forks that have it. There are many other ways of doing this. You generally need some sort of shared memory, which could be SDRAM with an AXI multi-master configuration, or a chunk of dual ported SRAM.  Those aren't terribly complex if you are familiar with the bus protocols, but not trivial.
See #189. I think the closest thing is https://dl.acm.org/doi/10.5555/3314872.3314912
Architecture description is in the Wiki: https://github.com/jbush001/NyuziProcessor/wiki/Microarchitecture

I hope that helps; I'm happy to answer any other questions!


NOISSUE - Fix proto files in VerneMQ

Pull request title should be MF-XXX - description or NOISSUE - description where XXX is ID of issue that this PR relate to.
Please review the CONTRIBUTING.md file for detailed contributing guidelines.
What does this do?
Which issue(s) does this PR fix/relate to?
Put here Resolves #XXX to auto-close the issue that your PR fixes (if such)
List any changes that modify/break current functionality
Have you included tests for your changes?
Did you document any new/modified functionality?
Notes

Codecov Report

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

@@           Coverage Diff           @@
##           master     #834   +/-   ##
=======================================
  Coverage   85.53%   85.53%
=======================================
  Files          72       72
  Lines        4701     4701
=======================================
  Hits         4021     4021
  Misses        444      444
  Partials      236      236

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 9ccc37c...3e61550. Read the comment docs.


InnerListener concept is burdeonsome, should be on the data binding

InnerListener exists because a bind could be an Observable, in which case we should use the value inside the observable instead of the observable itself. Unfortuantely all expressions end up using InnerListener just in case it's an Observable. The observables can only originate from bindings however, so it doesn't make sense to automatically test all items for observable status.
This adds needless overhead in both processing time and memory. Consider a simple expression like X="attract({pos}.x) * 100%". Each time posis updated a check ofis IObservableis done on the member lookup.x`, the attract argument, and the multiplication.
This also means it'd be impossible to right an identity function now, or an expression that somehow produces an observble.
This might require a UX compiler change, so that a binding used in an expression is a different type than one bound to an object or IObservable* type.

@yupferris This will require a UX compiler change to do. Working from this example:
	<RangeControl Value="{a}" ux:Name="a"/>
	<RangeControl Value="toUpper({b})" ux:Name="b"/>
	<Each Items="{items}"/>
	<Each Items="pass({items})"/>

What I think needs to happen is the UX processor adds listenValue() functions where appropriate. This happens in any situation when assigning to a non-object value, or as some to-be-decided marker for a function (like on pass). This results in the following logical translation of the above:

listenValue({a})
toUpper(listenValue({a}))
{items}
pass({items})

THe first two have an implied listenValue and the second-two have no transformation. This would allow us to remove InnerListener (the code would become listenValue). It'd also allow for creation of high-level fucntions that could work with Observables.


[TF_Java] adding  whileLoop method for the Java API

Co-authored-by: Irene Dea<EMAIL_ADDRESS>Co-authored-by: Samantha Andow<EMAIL_ADDRESS>

This commit adds an all-in-one while loop method for the Java API, per discussion here
cc @skye @asimshankar @karllessard

/CC @sjamesr

I have no experience with this code. Please redirect.

@sjamesr are you able to review this?

Yes, thank you. I just got added to the tensorflow org but forgot to assign this to me.


Host is unknown

Describe the bug
my settings of an url endpoint is http://sub.example.localhost/?graphql
the request dosnt work ist works when i change the tld to de and the query to a folder. the folder is not the problem but the tld thats not my testsystem.

@GeneralCrime hi! I'm not sure I understand the issue well. Could you please provide a complete error message?

I have 2 systems:
Test system via docker on http://ptu.example.localhost/?graphql
Live system on https://ptu.example.de/?graphql
With the test system I get the following message:
http://ptu.example.localhost/?graphql: the specified host is unknown (ptu.example.localhost)
With the live system, I get a correct answer from the system.
The test system is running and all graphql queries are running. Only the plugin doesn't work here.
There are only 2 differences "http / https" and top level domain "localhost / de" the problem is the top level domain.


Crash of the“set variable by name(dynamic)”node in Built version.

System Information

OS: Windows11
Unreal Engine version: 5.0.3
Plugin version: 1.2.0

Hey,man!
I found an issue of the plugin when I built it to exe and run this program.
When the program runs to the “set variable by name(dynamic)”node, it crashed.
here is the details.

could u plz give me a resolution?
looking forward for your early reply!

@1910991875
I could not reproduce your error.
Could you show me the "minimum example" which can reproduce this error?

os: Windows11
Unreal Engine version: 5.0.3
plugin wersion: 1.2.0

The test project base on the first-person template.

（一）bullet Blueprint
The bullet blueprint adds two new variables”MaxNumber” and “Number”. And modified these three places.

the Rifle variable in the character blueprint point to the weapon.

1 and 3, the weapon shoot MaxNumber of bullets at once.

（二）character blueprint
The character blueprint adds a new Rifle variable, as mentioned above. It is the player's current weapon.

Then a new function is added to set the MaxNumber value of the weapon through the set variable by name(dynamic) node to control the weapon to fire how many bullets at a time.
And press 1 to let the weapon shoot a bullet. Press 2 to let the weapon shoot two bullets.
The simplest test project has been completed.
======================Package==========================
Run the game and pick up the weapon. Press 1 or 2 and an error dialog box will pop up.

Here is all the error message :

Assertion failed: Result [File:D:\build++UE5\Sync\Engine\Source\Runtime\CoreUObject\Public\UObject\Stack.h] [Line: 280]

0x00007ff7bc0909ec BIanliangxiugaiceshi.exe!UObject::execLocalVariable() []
0x00007ff7bc08fe20 BIanliangxiugaiceshi.exe!UObject::execLet() []
0x00007ff7bc06aba1 BIanliangxiugaiceshi.exe!ProcessLocalScriptFunction() []
0x00007ff7bc046cfe BIanliangxiugaiceshi.exe!ProcessScriptFunction<void (__cdecl*)(UObject * __ptr64,FFrame & __ptr64,void * __ptr64)>() []
0x00007ff7bc06a495 BIanliangxiugaiceshi.exe!ProcessLocalFunction() []
0x00007ff7bc06aba1 BIanliangxiugaiceshi.exe!ProcessLocalScriptFunction() []
0x00007ff7bc046cfe BIanliangxiugaiceshi.exe!ProcessScriptFunction<void (__cdecl*)(UObject * __ptr64,FFrame & __ptr64,void * __ptr64)>() []
0x00007ff7bc06a495 BIanliangxiugaiceshi.exe!ProcessLocalFunction() []
0x00007ff7bc06aba1 BIanliangxiugaiceshi.exe!ProcessLocalScriptFunction() []
0x00007ff7bc069da1 BIanliangxiugaiceshi.exe!UObject::ProcessInternal() []
0x00007ff7bbe76809 BIanliangxiugaiceshi.exe!UFunction::Invoke() []
0x00007ff7bc0692b2 BIanliangxiugaiceshi.exe!UObject::ProcessEvent() []
0x00007ff7c0148586 BIanliangxiugaiceshi.exe!AActor::ProcessEvent() []
0x00007ff7c11f9c81 BIanliangxiugaiceshi.exe!UExporter::ExportToOutputDevice() []
0x00007ff7c11f679a BIanliangxiugaiceshi.exe!FInputActionUnifiedDelegate::Execute() []
0x00007ff7c1225ac0 BIanliangxiugaiceshi.exe!UPlayerInput::ProcessInputStack() []
0x00007ff7c0d097bb BIanliangxiugaiceshi.exe!APlayerController::ProcessPlayerInput() []
0x00007ff7c0d1c461 BIanliangxiugaiceshi.exe!APlayerController::TickPlayerInput() []
0x00007ff7c0d07ebe BIanliangxiugaiceshi.exe!APlayerController::PlayerTick() []
0x00007ff7c0d1b5d6 BIanliangxiugaiceshi.exe!APlayerController::TickActor() []
0x00007ff7c0132e7b BIanliangxiugaiceshi.exe!FActorTickFunction::ExecuteTick() []
0x00007ff7c10e969b BIanliangxiugaiceshi.exe!FTickFunctionTask::DoTask() []
0x00007ff7c10ee695 BIanliangxiugaiceshi.exe!TGraphTask<FTickFunctionTask>::ExecuteTask() []
0x00007ff7bb69b894 BIanliangxiugaiceshi.exe!FNamedTaskThread::ProcessTasksNamedThread() []
0x00007ff7bb69bd2e BIanliangxiugaiceshi.exe!FNamedTaskThread::ProcessTasksUntilQuit() []
0x00007ff7bb6a3b45 BIanliangxiugaiceshi.exe!FTaskGraphCompatibilityImplementation::WaitUntilTasksComplete() []
0x00007ff7c10fc568 BIanliangxiugaiceshi.exe!FTickTaskSequencer::ReleaseTickGroup() []
0x00007ff7c11011e7 BIanliangxiugaiceshi.exe!FTickTaskManager::RunTickGroup() []
0x00007ff7c092098f BIanliangxiugaiceshi.exe!UWorld::RunTickGroup() []
0x00007ff7c09277a2 BIanliangxiugaiceshi.exe!UWorld::Tick() []
0x00007ff7c0755c9c BIanliangxiugaiceshi.exe!UGameEngine::Tick() []
0x00007ff7ba2b9b57 BIanliangxiugaiceshi.exe!FEngineLoop::Tick() []
0x00007ff7ba2d14ac BIanliangxiugaiceshi.exe!GuardedMain() []
0x00007ff7ba2d157a BIanliangxiugaiceshi.exe!GuardedMainWrapper() []
0x00007ff7ba2d45fc BIanliangxiugaiceshi.exe!LaunchWindowsStartup() []
0x00007ff7ba2e5db4 BIanliangxiugaiceshi.exe!WinMain() []
0x00007ff7c2354fda BIanliangxiugaiceshi.exe!__scrt_common_main_seh() [D:\a_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
0x00007ff8752926bd KERNEL32.DLL!UnknownFunction []
0x00007ff87654dfb8 ntdll.dll!UnknownFunction []

------------------ 原始邮件 ------------------
发件人:                                                                                "colory-games/UEPlugin-AccessVariableByName"                                                                                @.>;
发送时间: 2023年1月21日(星期六) 中午11:51
@.>;
<EMAIL_ADDRESS>主题: Re: [colory-games/UEPlugin-AccessVariableByName] Crash of the“set variable by name(dynamic)”node in Built version. (Issue #34)
@1910991875
I could not reproduce your error.
Could you show me the "minimum example" which can reproduce this error?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>

os: Windows11
Unreal Engine version: 5.0.3
plugin wersion: 1.2.0
The test project base on the first-person template.
bullet Blueprint
The bullet blueprint adds two new variables”MaxNumber” and “Number”. And modified these three places.

the Rifle variable in the character blueprint point to the weapon.

1 and 3, the weapon shoot MaxNumber of bullets at once.

character blueprint
The character blueprint adds a new Rifle variable, as mentioned above. It is the player's current weapon.
Then a new function is added to set the MaxNumber value of the weapon through the set variable by name(dynamic) node to control the weapon to fire how many bullets at a time.

And press 1 to let the weapon shoot a bullet. Press 2 to let the weapon shoot two bullets.

The simplest test project has been completed.
======================Package==========================
it doesn't have any errors in PIE but crash in package game.
Run the game and pick up the weapon. Press 1 or 2 and an error dialog box will pop up.
Here is all the error message :
Assertion failed: Result [File:D:\build++UE5\Sync\Engine\Source\Runtime\CoreUObject\Public\UObject\Stack.h] [Line: 280]
0x00007ff7bc0909ec BIanliangxiugaiceshi.exe!UObject::execLocalVariable() []
0x00007ff7bc08fe20 BIanliangxiugaiceshi.exe!UObject::execLet() []
0x00007ff7bc06aba1 BIanliangxiugaiceshi.exe!ProcessLocalScriptFunction() []
0x00007ff7bc046cfe BIanliangxiugaiceshi.exe!ProcessScriptFunction<void (__cdecl*)(UObject * __ptr64,FFrame & __ptr64,void * __ptr64)>() []
0x00007ff7bc06a495 BIanliangxiugaiceshi.exe!ProcessLocalFunction() []
0x00007ff7bc06aba1 BIanliangxiugaiceshi.exe!ProcessLocalScriptFunction() []
0x00007ff7bc046cfe BIanliangxiugaiceshi.exe!ProcessScriptFunction<void (__cdecl*)(UObject * __ptr64,FFrame & __ptr64,void * __ptr64)>() []
0x00007ff7bc06a495 BIanliangxiugaiceshi.exe!ProcessLocalFunction() []
0x00007ff7bc06aba1 BIanliangxiugaiceshi.exe!ProcessLocalScriptFunction() []
0x00007ff7bc069da1 BIanliangxiugaiceshi.exe!UObject::ProcessInternal() []
0x00007ff7bbe76809 BIanliangxiugaiceshi.exe!UFunction::Invoke() []
0x00007ff7bc0692b2 BIanliangxiugaiceshi.exe!UObject::ProcessEvent() []
0x00007ff7c0148586 BIanliangxiugaiceshi.exe!AActor::ProcessEvent() []
0x00007ff7c11f9c81 BIanliangxiugaiceshi.exe!UExporter::ExportToOutputDevice() []
0x00007ff7c11f679a BIanliangxiugaiceshi.exe!FInputActionUnifiedDelegate::Execute() []
0x00007ff7c1225ac0 BIanliangxiugaiceshi.exe!UPlayerInput::ProcessInputStack() []
0x00007ff7c0d097bb BIanliangxiugaiceshi.exe!APlayerController::ProcessPlayerInput() []
0x00007ff7c0d1c461 BIanliangxiugaiceshi.exe!APlayerController::TickPlayerInput() []
0x00007ff7c0d07ebe BIanliangxiugaiceshi.exe!APlayerController::PlayerTick() []
0x00007ff7c0d1b5d6 BIanliangxiugaiceshi.exe!APlayerController::TickActor() []
0x00007ff7c0132e7b BIanliangxiugaiceshi.exe!FActorTickFunction::ExecuteTick() []
0x00007ff7c10e969b BIanliangxiugaiceshi.exe!FTickFunctionTask::DoTask() []
0x00007ff7c10ee695 BIanliangxiugaiceshi.exe!TGraphTask::ExecuteTask() []
0x00007ff7bb69b894 BIanliangxiugaiceshi.exe!FNamedTaskThread::ProcessTasksNamedThread() []
0x00007ff7bb69bd2e BIanliangxiugaiceshi.exe!FNamedTaskThread::ProcessTasksUntilQuit() []
0x00007ff7bb6a3b45 BIanliangxiugaiceshi.exe!FTaskGraphCompatibilityImplementation::WaitUntilTasksComplete() []
0x00007ff7c10fc568 BIanliangxiugaiceshi.exe!FTickTaskSequencer::ReleaseTickGroup() []
0x00007ff7c11011e7 BIanliangxiugaiceshi.exe!FTickTaskManager::RunTickGroup() []
0x00007ff7c092098f BIanliangxiugaiceshi.exe!UWorld::RunTickGroup() []
0x00007ff7c09277a2 BIanliangxiugaiceshi.exe!UWorld::Tick() []
0x00007ff7c0755c9c BIanliangxiugaiceshi.exe!UGameEngine::Tick() []
0x00007ff7ba2b9b57 BIanliangxiugaiceshi.exe!FEngineLoop::Tick() []
0x00007ff7ba2d14ac BIanliangxiugaiceshi.exe!GuardedMain() []
0x00007ff7ba2d157a BIanliangxiugaiceshi.exe!GuardedMainWrapper() []
0x00007ff7ba2d45fc BIanliangxiugaiceshi.exe!LaunchWindowsStartup() []
0x00007ff7ba2e5db4 BIanliangxiugaiceshi.exe!WinMain() []
0x00007ff7c2354fda BIanliangxiugaiceshi.exe!__scrt_common_main_seh() [D:\a_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
0x00007ff8752926bd KERNEL32.DLL!UnknownFunction []
0x00007ff87654dfb8 ntdll.dll!UnknownFunction []

2023.01.24 the latest feedback
This bug caused the Crash only in the development packaged game.
If it's packaged as a shipping, that's fine.No crash or error.

@1910991875

Crash only in the development packaged game.

Thanks.
We could confirm this error on our environment.
We will tackle this issue from now.


send body even GET method

There are many customized protocols requiring body with GET.

We need this too.


Bug Bash Feedback: bubbling CloudFormation error

My environment failed to deploy
devhex uttara$ archer env add production --profile archer-test --prod
⠏ Deploying env... Error: ResourceNotReady: failed waiting for successful resource state

I had to go step into the cloudformation console to get the error message , only to find out the dreadful error The maximum number of VPCs has been reached

This should be much better now!


Issue found on page 'Node.js API' when configuring DuckDB instance

Page URL: https://duckdb.org/docs/api/nodejs/overview.html
I am trying to setup a simpel DuckDB database, as described in the page above. When I copy my configuration in, it fails, as the config type is different. Also looking into the definition of the DuckDB Node Constructor, it should not:

So, the code is working as expected, but the documentation recommends differently.

Hi, which code snippet on that page is erroring for you?

This one:


Use onResponse, onTimeout and onRequestAbort route hooks to clean up temp files

Prerequisites

[X] I have written a descriptive title

[X] I have searched existing feature requests to ensure it has not already been proposed

[X] I agree to follow the Code of Conduct that this project adheres to

Description
Fastify v4.14.0 added the onRequestAbort hook, which runs when a client aborts a request.
At present the onSend hook is used as a workaround to handle client aborts, but blocks the response until the temp files are cleared.
Changing to onResponse, onTimeout and onRequestAbort route hooks will stop the blocking and improve response times.

Not a huge boost, onSend catches everything


problem running on UCL's Legion server

Got this error:
Traceback (most recent call last):
  File "/home/skgtnst/miniconda/envs/phy/bin/kk2_legacy", line 9, in <module>
    load_entry_point('klustakwik2==0.2.1', 'console_scripts', 'kk2_legacy')()
  File "/home/skgtnst/miniconda/envs/phy/lib/python3.4/site-packages/setuptools-17.1.1-py3.4.egg/pkg_resources/__init__.py", line 558, in load_entry_point
  File "/home/skgtnst/miniconda/envs/phy/lib/python3.4/site-packages/setuptools-17.1.1-py3.4.egg/pkg_resources/__init__.py", line 2682, in load_entry_point
  File "/home/skgtnst/miniconda/envs/phy/lib/python3.4/site-packages/setuptools-17.1.1-py3.4.egg/pkg_resources/__init__.py", line 2355, in load
  File "/home/skgtnst/miniconda/envs/phy/lib/python3.4/site-packages/setuptools-17.1.1-py3.4.egg/pkg_resources/__init__.py", line 2361, in resolve
  File "/home/skgtnst/miniconda/envs/phy/lib/python3.4/site-packages/klustakwik2/__init__.py", line 3, in <module>
    from .mask_starts import *
  File "/home/skgtnst/miniconda/envs/phy/lib/python3.4/site-packages/klustakwik2/mask_starts.py", line 5, in <module>
    from .numerics import mask_start_clusters
  File "/home/skgtnst/miniconda/envs/phy/lib/python3.4/site-packages/klustakwik2/numerics/__init__.py", line 7, in <module>
    from .cylib import *
  File "/home/skgtnst/miniconda/envs/phy/lib/python3.4/site-packages/klustakwik2/numerics/cylib/__init__.py", line 3, in <module>
    from .compute_cluster_masks import *
  File "/home/skgtnst/miniconda/envs/phy/lib/python3.4/site-packages/klustakwik2/numerics/cylib/compute_cluster_masks.py", line 1, in <module>
    from .compute_cluster_masks_cy import doaccum
ImportError: /home/skgtnst/miniconda/envs/phy/lib/python3.4/site-packages/klustakwik2/numerics/cylib/compute_cluster_masks_cy.cpython-34m.so: undefined symbol: _intel_fast_memcpy

do you know the architecture of the node? just linux 64-bit?
we could try to build a conda package for linux 64-bit and install iti on legion via binstar -- cc @nippoo

Oh I somehow didn't notice this problem. I guess this is a cython issue not a specific kk issue?


NuGet package update ?

Hi, is there a possibility that the NuGet package of the library could be updated ?  Looks like it was not updated since the end of 2019 :-\
Or maybe I am missing something.

Hey, since the repo seems to be in hibernation and this issues hasn't received an answer in 2 years I went ahead and created an unofficial nuget package for the purpose of providing support for newer frameworks. I removed the old targets (net20, net35, net40, net45,  netstandard2) and added net48, net50, net60, net80. I only did very limited testing with net60 pertaining to my usecase.
If you decide to "officially" update the nuget or want me to remove the package for other reasons please get in touch via github.

Hey, sorry, I've been slammed with non dev stuff so haven't had the time to maintain this. I'll try to get the CI/CD pipeline rehabbed and start getting nugets published again. I'll keep you posted.


K8SPXC-1163: fix cluster deletion in init state

https://jira.percona.com/browse/K8SPXC-1163
DESCRIPTION
Problem:
When pxc pod stuck in some error state during the cr update, operator is unable to execute finalizers
Cause:
When PXC statefulset is updated, operator updates PXC pods one by one using applyNWait method. This method waits pod to be restarted and can wait up to 2 hours until it's ready. In this period of time, we can't delete the cr if finalizers are used
Solution:
We should check PXC container state in the applyNWait method. If the pod has ImagePullBackOff, ErrImagePull, CrashLoopBackOff, we should return an error
CHECKLIST
Jira

[x] Is the Jira ticket created and referenced properly?
[x] Does the Jira ticket have the proper statuses for documentation (Needs Doc) and QA (Needs QA)?
[x] Does the Jira ticket link to the proper milestone (Fix Version field)?

Tests

[ ] Is an E2E test/test case added for the new feature/change?
[ ] Are unit tests added where appropriate?
[ ] Are OpenShift compare files changed for E2E tests (compare/*-oc.yml)?

Config/Logging/Testability

[ ] Are all needed new/changed options added to default YAML files?
[ ] Are the manifests (crd/bundle) regenerated if needed?
[ ] Did we add proper logging messages for operator actions?
[ ] Did we ensure compatibility with the previous version or cluster upgrade process?
[ ] Does the change support oldest and newest supported PXC version?
[ ] Does the change support oldest and newest supported Kubernetes version?

Test name
Status

affinity-8-0
passed

auto-tuning-8-0
passed

cross-site-8-0
passed

demand-backup-cloud-8-0
passed

demand-backup-encrypted-with-tls-8-0
passed

demand-backup-8-0
passed

haproxy-5-7
failure

haproxy-8-0
failure

ignore-labels-annotations-8-0
passed

init-deploy-5-7
passed

init-deploy-8-0
passed

limits-8-0
passed

monitoring-2-0-8-0
passed

one-pod-5-7
passed

one-pod-8-0
passed

pitr-8-0
passed

proxy-protocol-8-0
passed

proxysql-sidecar-res-limits-8-0
passed

recreate-8-0
passed

restore-to-encrypted-cluster-8-0
passed

scaling-proxysql-8-0
passed

scaling-8-0
passed

scheduled-backup-5-7
passed

scheduled-backup-8-0
passed

security-context-8-0
passed

smart-update1-8-0
failure

smart-update2-8-0
passed

storage-8-0
passed

tls-issue-cert-manager-ref-8-0
passed

tls-issue-cert-manager-8-0
passed

tls-issue-self-8-0
passed

upgrade-consistency-8-0
passed

upgrade-haproxy-8-0
passed

upgrade-proxysql-8-0
passed

users-5-7
passed

users-8-0
passed

validation-hook-8-0
passed

We run 37 out of 37

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/1392/commits/fb4cc2737ee547ad400004189c41ad6874d60edf
image: perconalab/percona-xtradb-cluster-operator:PR-1392-fb4cc273

Test name
Status

affinity-8-0
passed

auto-tuning-8-0
passed

cross-site-8-0
passed

demand-backup-cloud-8-0
passed

demand-backup-encrypted-with-tls-8-0
passed

demand-backup-8-0
passed

haproxy-5-7
passed

haproxy-8-0
passed

ignore-labels-annotations-8-0
passed

init-deploy-5-7
passed

init-deploy-8-0
passed

limits-8-0
passed

monitoring-2-0-8-0
passed

one-pod-5-7
passed

one-pod-8-0
passed

pitr-8-0
passed

proxy-protocol-8-0
passed

proxysql-sidecar-res-limits-8-0
passed

recreate-8-0
passed

restore-to-encrypted-cluster-8-0
passed

scaling-proxysql-8-0
passed

scaling-8-0
passed

scheduled-backup-5-7
passed

scheduled-backup-8-0
passed

security-context-8-0
passed

smart-update1-8-0
passed

smart-update2-8-0
passed

storage-8-0
passed

tls-issue-cert-manager-ref-8-0
passed

tls-issue-cert-manager-8-0
passed

tls-issue-self-8-0
passed

upgrade-consistency-8-0
passed

upgrade-haproxy-8-0
passed

upgrade-proxysql-8-0
passed

users-5-7
passed

users-8-0
passed

validation-hook-8-0
passed

We run 37 out of 37

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/1392/commits/fb4cc2737ee547ad400004189c41ad6874d60edf
image: perconalab/percona-xtradb-cluster-operator:PR-1392-fb4cc273


two questions about ratio loss and training patch extraction

Hi, thank you for the great work first. May I ask two questions:

Basically ratio loss is unsuitable (doesn't converge at all) for keypoint matching according to your paper, so the best choice is ranking with anchor swap. Am I correct?
How are the training patches from Lowe's DoG keypoints extracted? Is it just a fixed-size window cropping or based on the keypoints' scale ( possibly orientation as well?) followed by a normalization step?

Thanks in advance.

I'm also wondering how is the network's performance on rotation scenarios.

@RuibinMa please check the test code, where you can find the runtime example using openCV.


Use more friendly names for semantics

Some of the semantic names come from HLSL. I suggest we keep them as aliases for compatibility, but the official names move to something more friendly.
e.g. instead of SV_Position, we accept position
similarly
SV_Target0 becomes target(0)
SV_VertexID becomes vertex_id
and so on.

I'm all for more friendly names.
My research on HLSL compatibility shows that these semantics seem to be arbitrary; a user can put any string they want in there and the compiler will use it. It seems like the arbitrary names are relevant to attributes, where data flows into and out of each shader stage - I expect that these arbitrary strings get matched between the vertex and fragment stages.  This seems to explain why the built-in names start with "SV_" - prefixing with "SV_" creates a namespace where the user can't supply names.
I hope we can find some sort of middle ground between the two models, though. We would have to think of a proposal for how they're going to work.

We have:
SV_InstanceID
SV_VertexID
PSIZE
SV_Position
SV_IsFrontFace
SV_SampleIndex
SV_InnerCoverage
SV_Target
SV_Depth
SV_Coverage
SV_DispatchThreadID
SV_GroupID
SV_GroupIndex
SV_GroupThreadID

I wonder how many of the arbitrary names in use would be conflicting with things like "position".


[test/plugin]update report stage

Please answer these questions before submitting pull request

Why submit this pull request?

[x] Bug fix

[ ] New feature provided

[ ] Improve performance

Related issues

Bug fix

Bug description.

How to fix?

New feature or improvement

Describe the details and related test reports.

/run ci


Explore using MCU boot as the second stage bootloader

Related to #1973, we're leaning towards using MCUBOOT, but we need to explore if this is viable before we settle on it. The most important thing we need to know is can we change the ota slot addresses without forcing the user to rebuild the MCU boot project.

Don't want to count my chickens before they hatch, so being purposefully a bit cryptic here 😉
Took me a few days to get going on this, unfortunately encountered a number of issues which slowed me down. However, based on some very rudimentary tests I think this should be viable.
I still have some work to do before I'm able to say for sure, but I'm hoping that I can have a better idea by end of day tomorrow. I will update this issue by early-to-mid next week with my findings.

I'm able to build mcuboot and inject arbitrary values in for the required configuration values. These are stored in a contiguous block, and should be easily identifiable by tools e.g. espflash. Therefore, I believe this approach should be viable.
The next  steps are:

Add the required linker scripts to support mcuboot in esp-hal
Update our tooling (i.e. espflash) to support the mcuboot image format

I guess this can probably be closed? The exploration is complete, additional work needs to be done but this involves writing new linker scripts in the HAL (which IMO is outside the scope of this issue) and updating tooling (which isn't in this repository, and has its own tracking issue already).

I agree, but we still need to track the linker script work - we all know how fun they are :D. Could you open a new issue for that, and perhaps include some details on how to build MCUBOOT etc so whoever works on the linkerscripts can get a head start?
After that we can close this.

BTW here are the changes we had for supporting C3: https://github.com/esp-rs/esp-hal/pull/49/files#diff-f68012054272d7ce1611e965d7c6771a128c2e93fdcb4d8153cbcb9ef691062f
There is also setting up the MMU - I wonder if that was really necessary (I hope not) or not. If it is necessary, I guess ESP32 might add some fun to the task

https://github.com/esp-rs/esp-hal/issues/2479


Added Complex Class, fixed a matrix bug

This change adds the complex number class to morpho complete with all the associated operations
complex.c and complex.h contain the bulk of the changes as they define the class
I have also changed vm.c to check if objects can be raised to powers the same way it checks if objects can be added or subtracted.
This change fixes #103 as well (I was looking at matrix as a template for this class)
Tests are all in one file test/complex/ComplexBasics.morpho
The change to test.py is so github now properly marks failing tests.

I will also be adding doc, an example and a parsing pattern to identify im as an imaginary number.

I just realized that we will need to get the builtin math functions to work with complex numbers too, but that can be a separate update I suppose.

Checks are not passing...

I just realized that we will need to get the builtin math functions to work with complex numbers too, but that can be a separate update I suppose.

I've actually got these working now, I'll push the new commit as soon I as have the tests written

Checks are not passing...

This is due to issue #107 (and a precision mismatch from functionals/gradsq/gradsq3d.morpho)
I'll update gradsq3d to pass.
as for the too many args test (issue #107) I think the right thing to do is comment out that test (assume fail it) and when we fix #107 we can put it back online

Also: I was thinking of adding real and imag as builtin functions instead of methods on complex numbers. so we don't have some functions that are builtin and some that are methods

Hmmmm its clear this need a little more bake time, I'll pull out the test and bug fixes and put those in another pull request

This is due to issue #107 (and a precision mismatch from functionals/gradsq/gradsq3d.morpho)
I'll update gradsq3d to pass.

I partially updated gradsq3d.morpho so you should just reduce the comparison threshold on one of the tests.

as for the too many args test (issue #107) I think the right thing to do is comment out that test (assume fail it) and when we fix #107 we can put it back online

Ah yes; sorry I'd forgotten about this! I'll take a look at that one with valgrind.

Also: I was thinking of adding real and imag as builtin functions instead of methods on complex numbers. so we don't have some functions that are builtin and some that are methods

Look at what Julia does? I also think that having re() and im() as functions and .real and .imag as methods would be ok too. very often we want to write something like
re(z) + im(z)^2

which is more compact and intuitive than
z.real() + z.imag()^2

OK! Latest update now add builtin function support for complex numbers (sin cos tan abs log ...) as well as adding 4 new builtin functions (conj, angle, real, imag) for complex numbers.
I have also added a parse pattern for detecting im. This means you can now enter complex numbers like
var A = 1+1im
I have also added an equality for complex numbers:
var B = 1+im
print A==B \\ expect: true
I stuck to the standard Juila uses for complex numbers https://docs.julialang.org/en/v1/manual/complex-and-rational-numbers/
I still have to finish the test suite before I submit
Left to do is for testing is
[  ] builtins
[  ] equality
[  ] im parse pattern

Ok! Tests are written and some more bugs were fixed.
I think this is ready for full review and pull.
I just had one question about the need to bind or not in common.c:35 (I'm casting a float to a complex and leaving it unbound because its not needed beyond the scope of the function)
Please let me know what you think!
The writing the class itself was very easy and I plan on creating morpho class template. This change set is so far reaching because of the need for the new parse pattern, the inclusions of the builtin functions and the equality of complex number with 0 imaginary part and real numbers (I did not add other comparisons for these).
I think the next extension for complex numbers should be to expand the Matrix class to handle Complex Matrices. That will take some further thought and planning.

This is really exciting @ConduitDan! I'll review next week when I get back from March meeting.
If an object is needed within a C function, but not beyond, I recommend creating it on the C stack rather than creating/freeing. See MORPHO_STATIC_MATRIX and MORPHO_STATIC_STRING and how they're used.
Objects only need to be bound if they're returned to the runtime and must be disposed of when no longer referred to; anything that is tracked separately or is a temporary object doesn't need to be bound [this actually is a big benefit of the binding mechanism].

The new changes look great! I like the ease that im provides, and I also like how real and imag are both builtin as well as member functions.

[ ] Change file names to cmplx
[ ] Make macro to create a static complex number and use that in common.c (look in object.h:311)
[ ] Change common.c to check if imag is 0 and then compare real parts

Clang threw a warning on this function. Previously, the results of atan2 were not being assigned to val. @ConduitDan  check this is ok. Was there a test to lock all these methods down?
value Complex_angle(vm *v, int nargs, value *args) {
    objectcomplex *a=MORPHO_GETCOMPLEX(MORPHO_SELF(args));
    double val=atan2(cimag(a->Z),creal(a->Z));
    return MORPHO_FLOAT(val);
}

@ConduitDan  it's also worth documenting that if you add  a new token type [as you do here] that you also MUST add an entry in cli.c for syntax highlighting. The syntax highlighter reuses the lexer and highlights by token type.

I've made a few minor edits to fix some of the above issues; @ConduitDan please review, fix the filename and I think we're ready to merge this excellent contribution.

Hmmm.. ComplexTrig.morpho and ComplexBuiltin.morpho are failing on macOS. I'll investigate.

Clang threw a warning on this function at line 599. Previously, the results of atan2 were not being assigned to val. @ConduitDan check this is ok. Was there a test to lock all these methods down?
value Complex_angle(vm *v, int nargs, value *args) {
    objectcomplex *a=MORPHO_GETCOMPLEX(MORPHO_SELF(args));
    double val=atan2(cimag(a->Z),creal(a->Z));
    return MORPHO_FLOAT(val);
}

I've changed this in my update; just confirm this is what was intended.

Ooooh good catch, I missed the test for that method. I've added them in.

Ok, with this most recent change I have

Added a static complex macro
added sqrt(negitive#) (and test)
Cleaned up up equality
Renamed files to cmplx
Cleaned up and Added test for Complex.angle()

I think this is good to go and will merge later today!


Is this still maintained?

We find this library useful but there are some things we would like to fix / fixes by others we would like to use. These are mostly in the open PR queue but it looks like the last commit was in 2019.
Are you still maintaining this? Interested in co-maintainers? Happy for this to be forked?

Please let me know if this is forked as I too would like to have a maintained version

I see this fork shows intent - will try a PR there https://github.com/maybe-Baylie/name-parser

@eileenmcnaughton I see you have your own fork as well.  If maybe-Bailie doesn't merge your PR, will you be picking up the torch?
I'd like to start using this library, but like you would really prefer someone to be maintaining it.

@cheesegrits well yeah - I created that fork just to put up a PR to see what happens but yeah - we just need one to consolidate around

@eileenmcnaughton I don't hold out much hope for that fork.  The author has a grand total of 10 commits in 8 years.
Wrt the question you asked on that fork about Packagist, there is no way to transfer ownership of a package.  An owner can add other maintainers, but that's not helpful if the owner is not responding.  I've been thru this before with abandoned packages.  The only way forward is to change the namespace in a fork and publish a totally separate package yourself.


Unexpected "Body" returned from RigidBody2D.body_entered(body) signal with Rapier Physics

Describe the bug
When a RigidBody2D collides with a StaticBody2D, the body_entered(body) signal should provide the "body" as the StaticBody2D. However, using Rapier Physics, it incorrectly returns the RigidBody2D instead.
To Reproduce

Create the Wall:
-Create a Node2D named "Wall".
-Add a StaticBody2D as a child of "Wall".
-Add a Sprite2D with the Wall image as a child of the StaticBody2D.
-Add a CollisionPolygon2D from the Sprite2D toolbar as a child of the StaticBody2D.
-Attach the following script to the StaticBody2D:

extends StaticBody2D

func _to_string() -> String:
    return "WallBody"

Create the Ball:
-Create a Node2D named "Ball".
-Add a RigidBody2D as a child of "Ball".
-Enable Contact Monitor and set Max Contact Reported to 1.
-Add a PhysicsMaterial to the RigidBody2D and set Bounce to 1.
-Add a Sprite2D with the Ball image as a child of the RigidBody2D.
-Add a CollisionPolygon2D with a CircleShape2D as a child of the RigidBody2D.
-Attach the following script to "Ball":

extends Node2D
@onready var rigid_body_2d: RigidBody2D = $RigidBody2D

func _ready() -> void:
    rigid_body_2d.body_entered.connect(_on_body_entered)

func _on_body_entered(body):
    print ('Entered from node')
    print (str(body))

-Attach the following script to the RigidBody2D:
extends RigidBody2D

func _to_string() -> String:
    return "BallBody"

Create the Main Scene:

-Create a main scene.
-Add the "Wall" and position it near the bottom of the scene.
-Attach the following script to the main scene:
func _ready() -> void:
        var ball = preload("res://Ball.tscn").instantiate()
        ball.position = Vector2(551, 96)
        call_deferred("add_child", ball)

Expected behavior
Using GodotPhysics2D, when the "Ball" bounces off the "Wall", it prints:

Entered from node
WallBody
This is the expected behavior.
screen-recorder-fri-aug-02-2024-20-24-25.webm

Using Rapier Physics, when the "Ball" bounces off the "Wall", it prints:

Entered from node
BallBody
screen-recorder-fri-aug-02-2024-20-26-45.webm
This is incorrect. The body sent from _on_body_entered(body) should be "WallBody" instead of "BallBody".

Additionally, the last bounce did not trigger _on_body_entered(body).
Environment:
-OS: Microsoft Windows 10 Home
-Version: 10.0.19045 Build 19045
-Godot Version: 4.3rc2 (also tested on 4.2 and 4.3rc1 with the same result)
Example project(zip)
https://drive.google.com/file/d/15y4xSufl-TudEPx96C8o8-U5siQV_OMW/view?usp=sharing

Can you instead upload the file directly on github? As it is now it's on google drive and i don't have access to it.

Can you instead upload the file directly on github? As it is now it's on google drive and i don't have access to it.

https://github.com/paklong/ball_bounce_rapier

Also, what version of the Rapier plugin are you using?

Rapier Physics - Cross Platform Determinism
Version: 0.7.23

I have implemented a fix, will merge it soon


Callstack not always being cleared on function exit

While working on the Spec library, I encountered an interesting error:
Uncaught Exception: No variable or method `start` for Kernel
  from `start` at /Users/jon/Sites/myst-lang/myst/spec/myst/spec.mt:22:53
  from `-` at /Users/jon/Sites/myst-lang/myst/spec/myst/spec.mt:22:46
  from `puts` at /Users/jon/Sites/myst-lang/myst/spec/myst/spec.mt:22:4
  from `block` at /Users/jon/Sites/myst-lang/myst/stdlib/spec.mt:41:5
  from `describe` at /Users/jon/Sites/myst-lang/myst/spec/myst/time_spec.mt:62:1
  from `run` at /Users/jon/Sites/myst-lang/myst/stdlib/spec.mt:28:10
  from `it` at /Users/jon/Sites/myst-lang/myst/spec/myst/integer_spec.mt:61:3
  from `block` at /Users/jon/Sites/myst-lang/myst/stdlib/spec.mt:28:15
  from `block` at /Users/jon/Sites/myst-lang/myst/stdlib/spec/single_spec.mt:11:7
  from `run` at /Users/jon/Sites/myst-lang/myst/stdlib/spec.mt:28:10
  from `it` at /Users/jon/Sites/myst-lang/myst/spec/myst/integer_spec.mt:56:3
  from `block` at /Users/jon/Sites/myst-lang/myst/stdlib/spec.mt:28:15
  from `block` at /Users/jon/Sites/myst-lang/myst/stdlib/spec/single_spec.mt:11:7
  from `run` at /Users/jon/Sites/myst-lang/myst/stdlib/spec.mt:28:10
  from `it` at /Users/jon/Sites/myst-lang/myst/spec/myst/integer_spec.mt:51:3
  from `run` at /Users/jon/Sites/myst-lang/myst/stdlib/spec.mt:28:10
  from `it` at /Users/jon/Sites/myst-lang/myst/spec/myst/integer_spec.mt:47:3
  from `run` at /Users/jon/Sites/myst-lang/myst/stdlib/spec.mt:28:10
  from `it` at /Users/jon/Sites/myst-lang/myst/spec/myst/integer_spec.mt:43:3
  from `block` at /Users/jon/Sites/myst-lang/myst/stdlib/spec.mt:41:5
  from `describe` at /Users/jon/Sites/myst-lang/myst/spec/myst/integer_spec.mt:3:1

At a glance, it looks fairly simple, but looking at where the error came from shows an issue: the line of code causing the error is at the top-level scope. The error comes from the last line here with IO.puts:
start = Time.now

# TODO: add Dir globbing to automatically detect and require all `*_spec.mt`
# files under this directory.
require "./enumerable_spec.mt"
require "./integer_spec.mt"
require "./list_spec.mt"
require "./map_spec.mt"
require "./string_spec.mt"
require "./unary_ops/not_spec.mt"
require "./type_spec.mt"
require "./time_spec.mt"

finish = Time.now

# The only way to reach this point is if all of the Specs passed. Any failures
# will immediately exit the program, so reaching here implies success.
IO.puts("\nAll in-language specs passed in <(finish-start)> seconds.")

Interestingly, this actually shows two errors with the callstack management:

A function being called is pushed onto the stack before it's arguments are evaluated. This is why puts is the third entry in the list, when the error is actually coming from its argument.
When a function exits, it may not be removed from the callstack.

A similar issue with the selfstack was addressed previously (see #65), but this seems mostly unrelated.

If someone is interested in investigating and potentially resolving this issue, the callstack is managed using the @callstack property of the Interpreter class.
Entries are pushed to the callstack with @callstack.push. Some occurrences of this are in util.cr and call.cr.
Whenever a value is pushed to the callstack, it should have a corresponding place where that value would be _popped. For Calls, this is just a few lines down, but it doesn't seem like other instances of @callstack.push have corresponding pops. That might be a good place to start looking.

Remember to add specs for any changes you make so we can be sure this bug doesn't come back in the future! There actually aren't any specs around the Callstack yet, so that would definitely be a good thing to start! That file should live under spec/interpreter/callstack_spec.cr.
If you have any questions about this issue, feel free to ask either in a comment here, or in the #help channel in our community discord server, or message me directly (faulty#7958 on discord). Good luck!


Incorrect screen shot, steps to assign licenses incorrect or obsolete on "Set up SharePoint Syntex" page

The "Assign licenses" section of the "Set up SharePoint Syntex" page contains an incorrect/obsolete screen shot and the steps documented are incorrect or obsolete.
The "Assign licenses" section specifies step #3 is to "Select Assign more."  When I select "Manage product licenses," the right-side panel is displayed as shown below.

There is no "Assign more" link or button on this screen. Therefore, the steps are impossible to follow.

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

ID: 215aae2b-deef-07f9-03cf-009006b8cabb
Version Independent ID: bb7fd949-ff1a-dc43-d454-3fa2c4d938db
Content: Set up SharePoint Syntex
Content Source: microsoft-365/contentunderstanding/set-up-content-understanding.md
Product: microsoft-365-enterprise
GitHub Login: @MikePlumleyMSFT
Microsoft Alias: mikeplum

@mcox13579 Thank you for your feedback. the screenshot is correct, but the navigation has changed as assign more option is not available anymore.
After you click on manage licenses-->Apps--> Shows apps for Sharepoint syntex. I have updated the document accordingly via PR#https://github.com/MicrosoftDocs/microsoft-365-docs/pull/4075
Note that Sharepoint syntex is an addon that needs to be purchased separately.
Thanks
Sri

@msbemba Thank you very much for the contribution and updating the documentation with PR. @mcox13579 Hope this update is helpful for you. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


class value and export coordinates to csv

Hi, I have a question related to issue # 19:
I'm working through the detectron2 demo (detectron2_cars.py) to understand the code and wanted to change the detected class from cars to person. I found that changing row 32 to "if c == 0" does this. How do I export/print a list of the detected classes?
Also, I would like to export to a csv file the centroid/center coordinates for each tracked object for each frame (similar to print_objects_as_table, but ideally with the data from each frame in one row). Any suggestions?

Thanks for your reply joaqo.
Following up on the second question, could you please help me understand the norfair results? I may well be approaching this in the wrong way (I am completely new to python).
I think the coordinates I want to export are saved as a numpy array within detection.points and possibly also last_detection of tracked_objects. For each frame, printing detections or tracked_objects gives me a list containing items like this: <norfair.tracker.Detection object at 0x7f792baa0940>
I assume this hexadecimal contains the coordinates and object ID? How to convert to 'human readable' format? (Or is there a better way to obtain the data?)
Otherwise, as you recommended, I think I'm okay with saving the results from each frame and converting into a CSV afterwards.

Hi nacho!
On each frame processed, Norfair takes as inputs a list of Detection objects and returns as output a list of TrackedObjects. Your detector is in charge of producing the list of Detections to feed into norfair, and then it is your job to take the list of TrackedObject that Norfair produces and do something useful with them.
With regards to how to use these TrackedObjects, here you can see their attributes. The one you probably will be more interested in is estimate, as it is a numpy array containing the position Norfair estimates each point in that object to be in.
Regarding that hexadecimal number, its just the memory address of that object, just an internal python implementation detail and not really related to Norfair.
Please feel free to ask more questions.

Thanks again Joaqo! You helped push me in the right direction to have a working implementation using TrackedObject's estimate :)
It would be nice to have the actual Detection's coordinates whilst maintaining Norfair's ID for each object, but I can manage with the slight loss of accuracy.
I have another question unrelated to the above, so I'll open as a new issue...

You actually can access the Detection's coordinates, its listed in the link to TrackedObject's arguments I linked above, under last_detection.

Hey Joaqo, took me awhile but I got there...
Might be helpful for others in future:
Accessing last_detection just gave me the memory address as noted above. The x, y coordinates can be obtained from: obj.last_detection.points[0], obj.last_detection.points[1]
Their storage shape is slightly different to that of 'estimate', from which the x, y can be obtained from: obj.estimate[:, 0], obj.estimate[:, 1]
Thanks!

Oh I now understand what you meant.
The property last_detection returns a Detection object, which contains several things inside it, among others is the points attribute, which stores the coordinates you needed. You can look at this part of the documentation to see what other attributes it contains.
Regarding the memory address you mention, last_detection wasn't returning its memory address to you, it was returning a Detection object, which python prints to console as a string, which among other things contains its memory address. Look into pythons __repr__ method if you want to look deeper into this.


Add news

It is possible to implement news if we want to, we can try and use that for something

Update: this is pulled from local directory so it won't work properly with launcher


Implementation of HPACK encoding and header tables

Implementation of HPACK routines, including integer compression, header compression and indexed header tables, and huffman string compression.
Motivation:
This is the beginning of removing the dependency on nghttp2.
Modifications:
I've added a new library target, NIOHPACK, which contains all the necessary pieces to implement HPACK encoding as specified in RFC 7541. There are unit tests exercising all the code and some additional edge cases around integer encoding, along with some performance tests for the Huffman encode/decode process. The latter currently takes longer to decode than to encode, which is worrying, but this is only really noticeable when encoding > 16KB strings as a rule; therefore I've decided not to pull out the optimization hammer just yet. Included in the unit tests are the inputs and outputs from all the examples in RFC 7541 and RFC 7540.
I've tried to match the coding style from the repo, but some of my own idioms may have crept in here & there. Please let me know if you see anything wrong in that regard.
Currently the static header table and Huffman encoding tables are implemented as Swift lets. For the static header table that's ok (only 62 entries), but the Huffman table is huge. I'm debating whether it's worth having that in a plain C file somewhere, but I'm not sure what the tradeoffs are vs. performance. Right now it seems to only affect compilation time, but I may be wrong.
Result:
In general, nothing will change: nothing in NIOHTTP2 is using this library yet. That part is what I'm working on now.

@swift-nio-bot test this please

Hey @AlanQuatermain, what's the status of this patch?

Code is written, my own tests run successfully, and I'm integrating the tests from the HPACK test suite. Right now I'm trying to track down a weird bug: while encoding the fourth case of story 06, my decoder doesn't produce the same data that was input, and the two items' dynamic header tables' contents and size don't match. BUT that only happens if I run the entire suite of all stories.
The most annoying thing here is that I'm creating new encoder/decoder pairs for each story, with empty dynamic tables and new Huffman encoders. So I'm kinda scratching my head as to what's going on here.

Huh. It does sometimes go wrong if I just run that one test. Not often, but sometimes. In those cases, two bytes of the Huffman-encoded output are incorrect: A7 → AF and EB → E9. Both are single-bit changes.
Well, at least I know where it's happening now.

Okay, that problem is solved—UnsafeMutableRawPointer.allocate() isn't zeroing bytes, so I need to do that myself. Now it's crashing much later on in the decoder by going out of bounds while attempting to read an encoded integer. Sigh.

The joys of avoiding bounds checks! Thanks for keeping up the work though. 👍
Just to keep you appraised I’m swinging back around to the HTTP/2 stuff. I’m going to start work on the other side of the coin, with the frame parser. Hopefully I’ll have a patch up and ready by the end of next week.

Turns out the bounds problem was due to the indices on ByteBufferView not being zero based. There's something else going wrong now that I'll have to look into tomorrow. In the meantime, though, I do have a frame parser as well. I basically have all the wire protocol handling implemented, just needing conversion to mesh with the NIO HTTP/2 implementation. You can see broadly what it looks like at [https://github.com/alanQuatermain/H2Swift](my older repository), where I initially started working on it. I have another variation here somewhere which has been ported to use NIO instead of Foundation, but that's not on Github apparently.

Turns out the bounds problem was due to the indices on ByteBufferView not being zero based.

Ah yeah, the typical Swift collections issue. Easy trap to fall into, I do it myself a lot.

In the meantime, though, I do have a frame parser as well.

Yeah, I did see that. In the end I concluded that it was probably just as easy to greenfield the frame parser, given that we'd have to make the following set of changes to yours:

Do work early by eagerly parsing frame headers even when the entire frame body is not available.
Avoid buffering DATA frames in their entirety.
Produce NIO's HTTP/2 frame structures.
Port to NIO data structures e.g. bytebuffer (as I didn't see any code with NIO support)

All-in-all that made me err on the side of doing the work in a green field implementation.
If you have a NIO-based implementation sitting around I'll happily re-evaluate it and see how much work it would be to adapt to NIOHTTP2.

Oh, also, it's my understanding that you have the wire format stuff but none of the protocol state machine, is that correct? It's totally fine, I've built a HTTP/2 state machine before and I'm happy to do it again, just wanted to check that I'd correctly understood the work you've done.

That's correct—wire protocol is implemented and tested (well, was, anyway) but I'd not yet begun work on the stream things. I never studied CS beyond sixth-form, so when specs throw out references to adjustable-priority queues like they're something everyone would know I rather break out in a cold sweat… 😰
I'm going to look at uploading the NIO-based decoder somewhere shortly, as soon as I've fixed my obviously incorrect decode-bytes-from-hex-string implementation in these integration tests. Oops.

'Tis done, sir. Lots of information inside the commit message, though it's an even bigger diff than was originally the case. Sigh.
As to the frame encode/decode implementation, that would now need to be reworked again based on the changes I've made here. I can do that & submit a separate pull request early next week. One of the main differences between my approach and yours is around the handling of things like settings and frame flags; I quite liked my enumeration representation for those. I also found the OptionSet representation of frame flags to be useful when it comes to ignoring and/or not sending unknown flags. I would have each frame type understand what flags it allowed and vend that for use in intersection() or similar.
My initial first scratch-pad attempt has been uploaded now. It's incomplete, but it should give some idea how I was intending to go about things originally.

I never studied CS beyond sixth-form, so when specs throw out references to adjustable-priority queues like they're something everyone would know I rather break out in a cold sweat… 😰

Heh, the secret is that the priority queues are entirely optional, and can be omitted when first building the implementation. That's the plan here: we currently don't allow users to see any priority information, and will continue to do so while we replace nghttp2. Priority support can come later.

One of the main differences between my approach and yours is around the handling of things like settings and frame flags; I quite liked my enumeration representation for those.

I don't mind using an OptionSet for flags. I mostly avoided it for the sake of not overcomplicating the API in the initial version: I'd certainly be happy to accept a patch that swaps to that representation.
I'm certainly open to seeing a PR for the frame codec. We'll likely have to do some substantial reworking of it to achieve the incremental frame parsing support we need, but if you'd like to do that work I'm certainly not going to stop you! :wink:

Thanks for pushing up the new patch! I'm going to let us finish circling around our discussion points before I re-review: each review of this patch takes around half a day, so I want to spread them out a bit just to make sure I get other stuff done!

Okay, it's only complaining because the target byte-count is below underestimatedCount, I think. I'm using dropLast(n:) to keep it from complaining about that. Not entirely sure on the economy of that move for the indefinite-length Sequence type, but it should happen rarely enough that it's not a problem. It also reminds me to support set(staticString:) and friends, too.

Oh wait, I already do support static strings, hehe.

I've pushed what will hopefully be a good final attempt now, with ~90% code coverage from tests.

I've filed a bug about the extraordinary compile time for the static Huffman decode table, which takes 54 seconds in Xcode, 40 seconds via swift build, and which uses 4.3GB of memory when compiling on the command line: SR-8314.

Further thoughts on the HPACKHeaders vs. HTTPHeaders API:
It occurs that a common underlying type exists that consists of a raw buffer containing UTF-8 string data and a sequence of indices into that buffer, with an optional extra item associated with each index. The only wrinkle is the fact that they both contain string pairs rather than individual strings. With some thought, though, we might be able to extract a common base type used by both which would aid transformation between them.

I mean, I think the common base type is "buffer + indices". In this case, the thing to do is to make the currently-internal API for HTTPHeaders that constructs it in that manner public, and document it as only being intended for specific use-cases (in fact, we'll probably make it a static method, rather than an initialiser).
Then we can have a zero-copy transform between the two data types.

Yet Another Pull Request Update:
The requested changes have landed. I've also pushed a PR to swift-nio to make HTTPHeaders' representation accessible within NIOHPACK: https://github.com/apple/swift-nio/pull/525
I've tried to pare down the API to the absolute bare minimum. As a rule, when I'm designing APIs I try to evaluate the likely direction in which it will evolve and create things that are able to easily expand in that direction—or, ideally, already support the anticipated use-cases. If you prefer to start small and only include what's needed at the particular moment, then I bow to your request, however much it grates 😉 My OCD won't quite let me go as far as having asymmetric API though, with unwrite() but not unread(), etc. I'm losing hair fast enough as it is 😄
I've got another branch where I've begun tweaking the HTTP/2 frame implementations and started looking at encode/decode flows, but I'll try to space this out into smaller, more narrowly focussed PRs.

Okay, I've done away with the set(at:length:) methods, and the two _set methods are now the basic write(bytes:) implementations—one for ContiguousCollection, one for Collection. I'm not using Sequence any more, so I'm preflighting the collection against the amount of contiguous space available and splitting it then recursing to write its components (after checking we have room for it all). The other write methods then just proxy onto these by extracting the appropriate collection from their input String or StaticString types.

That's done, with unit tests to match.

@swift-nio-bot test this please

Looks like we're missing the linux test script changes. Mind addressing that?

@swift-nio-bot test this please

(absolutely no idea if that'll actually do anything for a non-admin like me…)

Argh. I have a RHEL7 box next to me here, I'll see if I can get it up & running on there.

On second thought, RHEL looks like it'll take a lot of work. I'll spin up Ubuntu in Parallels instead.

Okay, that took a little longer than expected and ran into problems with APIs in both JSONEncoder and FileManager, but everything seems to be functioning as intended now.
The next thing would be to find some way of having the submodule be checked out when running the tests, so that the HPACK integration tests don't just quietly succeed in automation.
Well, that, plus I have a small change to start off the actual framer implementations.

Ok cool, I don't have admin on the Jenkins box so I can't add the submodule checkout until @tomerd gets back on Thursday. Let's spin back around on this then.

@weissi want to re-review?

Ping! How is this looking now?

@Lukasa happy to help, i see tests are passing now. do we still need to do something here re. CI setup?

@tomerd There's a submodule used by some of the HPACK tests. The CI would need to be updated to initialize that and pull it down. Also note the submodule remote will likely change once this is live—it currently points to my own fork of a repo.

@AlanQuatermain @Lukasa i update the CI setting to fetch submodules, i hope this is what you need. can you confirm?
@swift-nio-bot test this please

Looks like the checkout works and the tests run as expected:
23:23:59 Test timing metrics:
23:23:59  - haskell-http2-naive-huffman           : 9.12 seconds.
23:23:59  - haskell-http2-static-huffman          : 7.98 seconds.
23:23:59  - haskell-http2-linear-huffman          : 6.43 seconds.
23:23:59  - go-hpack                              : 9.08 seconds.
23:23:59  - nghttp2-change-table-size             : 6.42 seconds.
23:23:59  - node-http2-hpack                      : 6.45 seconds.
23:23:59  - haskell-http2-naive                   : 4.86 seconds.
23:23:59  - haskell-http2-linear                  : 4.83 seconds.
23:23:59  - swift-nio-hpack-huffman               : 6.50 seconds.
23:23:59  - python-hpack                          : 6.54 seconds.
23:23:59  - haskell-http2-static                  : 4.76 seconds.
23:23:59  - nghttp2                               : 6.27 seconds.
23:23:59  - swift-nio-hpack-plain-text            : 4.94 seconds.
23:23:59  - nghttp2-16384-4096                    : 6.17 seconds.
23:23:59 Test Case 'HPACKIntegrationTests.testDecoder' passed (130.125 seconds)

@tomerd I've updated the contributor list and added a mapping in the mailmap from your gmail address to your apple one. Sigh. I used to have one of those… 😟

<3 thanks

Ok, let's try to pull the trigger on this monster.

@swift-nio-bot test this please

Nicely done @AlanQuatermain, great chunk of work! Looking forward to seeing the next stage here. 🎉


Editor improvements

This PR improves the editor and scene code.

Adds zooming (scrollwheel) and panning (click and drag)
Adds a manual zoom button and a button to center the view on the room
Changed some of the styling for the editor
Fixed some issues with SceneObjects
Created a scene test page to test some of the functionality of SceneObjects. Accessible at /scene-test
Fixed some other small issues

Everything looks really good.

Everything looks really good.


Assertion `db_data != MAP_FAILED' failed

I'm getting the following error when trying to create an optimized version of the database:
1594460918244:  [Info] Starting to load DB: /ebio/abt3_projects/databases_no-backup/gt-pro
1594460918245:  [ERROR] Failed to MMAP /ebio/abt3_projects/databases_no-backup/gt-pro_optimized_db_snps.bin.  This is fine, but init will be slower as we recreate this file.
1594460918245:  [ERROR] Failed to MMAP /ebio/abt3_projects/databases_no-backup/gt-pro_optimized_db_kmer_index.bin.  This is fine, but init will be slower as we recreate this file.
1594460918263:  [Info] Using -l 32 -m 36 as optimal for system RAM
1594460918264:  [ERROR] Failed to MMAP /ebio/abt3_projects/databases_no-backup/gt-pro_optimized_db_mmer_bloom_36.bin.  This is fine, but init will be slower as we recreate this file.
1594460923257:  [ERROR] Failed to MMAP /ebio/abt3_projects/databases_no-backup/gt-pro_optimized_db_lmer_index_32.bin.  This is fine, but init will be slower as we recreate this file.
gt_pro: ./src/gt_pro.cpp:1711: int main(int, char**): Assertion `db_data != MAP_FAILED' failed.
Aborted

reprex:
cd /ebio/abt3_projects/databases_no-backup/
wget http://jason.shi-bucket.s3.amazonaws.com/public/20190723_881species_optimized_db_kmer_index.bin
wget http://jason.shi-bucket.s3.amazonaws.com/public/20190723_881species_optimized_db_snps.bin
wget http://jason.shi-bucket.s3.amazonaws.com/public/variants_main.covered.hq.snp_dict.tsv
cd ~
git clone https://github.com/zjshi/gt-pro.git
cd gt-pro
make
./gt_pro -d /ebio/abt3_projects/databases_no-backup/ </dev/null

system info:
Ubuntu 18.04.4 LTS

OK, I didn't see that the user needs to provide a prefix of the database files & not just the directory path. Using ./gt_pro -d /ebio/abt3_projects/databases_no-backup/20190723_881species </dev/null. It might be good to include a more informative error if the user provides the directory instead of the directory + file_prefix.


Performance issues with recorded voices

Hello,
I have attempted to test your model on some recorded voices, but unfortunately, the results have not been satisfactory. Specifically, I have tested the model using samples from non-seen datasets such as the gunshot dataset from Kaggle, and in those cases, I achieved good results. However, when I recorded sounds using the microphone on my phone and passed them to the model, the results were incorrect. The voices themselves were clear when listened to with the human ear, and I even tried using different microphones to test the model. Additionally, I attempted to use various techniques such as amplifying the sounds and removing noise, but the results remained the same. Finally, I even used sox to resample the sounds to 16KHz in Python.
Could you please provide me with some assistance on how to address this issue?

Hi there,
First,

Finally, I even used sox to resample the sounds to 16KHz in Python.

This is actually a very basic and mandotory thing to do because our model is pretrained with 16kHz data, any other sampling rate would cause the model totally fail.
Second, which script did you use to do inference? I recommend to use this: https://colab.research.google.com/github/YuanGongND/ast/blob/master/colab/AST_Inference_Demo.ipynb#scrollTo=sapXfOwbhrzG and change the line:
sample_audio_path = 'https://www.dropbox.com/s/vddohcnb9ane9ag/LDoXsip0BEQ_000177.flac?dl=1'

to your audio path.
Third, if still fail, please use sox --i <filename> to check your audio and paste the output here. The model should work at the best when your audio is ~10 seconds long as it is the training setting. Btw, what is the ground-truth label of your audio?
-Yuan

I have do the first and second stages and obtained correct results for an actual 2-second sound. Here is some information about the unsampled and sampled recorded sound. The ground truth for this recording is a machine gun.

So it is two channel audio, try do this:
sox sound-16k.wav leftchannel.wav remix 1 and sox sound-16k.wav rightchannel.wav remix 2. Listen to both, and try again with AST model with the single channel audio.
-Yuan

There have been no changes, and both channels sound satisfactory.
leftchannel:

rightchannel:

I have attached all of the sound files and will send you an email through Gmail for your review. Thank you.

It seems reasonable to me that sound effect is the predicted class for your audio. The limitation of this model is its training data, it might not listened to AK during training. "sound effect" class contains some continous explode sounds, which could be close to your audio. I suspect all models trained on AudioSet more or less having this behavior, but some other model might generalize better.
Practical suggestions:

If you aim to get a high number on a closed set (e.g., for a Kaggle challenge), try finetune the model (see ESC50 recipe) with your data, this would dramatically improve the number, but the model's performance on real-world data is not guarenteed.
If you aim to build a app or some software for real-world usage. Try merging the scores of classes that are close to gunshot (or other classes you are interested in), e.g., merging sound effect to the gunshot class. See https://github.com/YuanGongND/ast/blob/master/egs/audioset/data/class_labels_indices.csv for the full label set. The implementation would be relatively easy.

-Yuan


Add support for HIL

Describe problem solved by this pull request
With reference to PR # 28 for enabling HITL with JSBSim bridge, this uses the modifications from that PR and further builds on it to successfully run HITL for Rascal with JSBSim Bridge. Using that PR directly resulted in takeoff issues which have now been resolved.
Steps for HITL

Change the mixer file referenced in 1000_rc_fw_easystar.hil to plane_sitl.main.mix required by rascal.
Build and upload the code on hardware. Select the HILStar airframe from QGC.
Build the jsbsim bridge with make px4_sitl jsbsim.
Change the directory to the location of build of jsbsim bridge. It is usually PX4-Autopilot/build/px4_sitl_default/build_jsbsim_bridge.
From the above directory, run the following command:
HEADLESS=1 ./jsbsim_bridge rascal -d /dev/ttyACM0 -s ~/13.2/PX4-Autopilot/Tools/jsbsim_bridge/scene/LSZH.xml
Where:

rascal is the name of config file.
-d specifies the port of connected hardware.
-s specifies the path of the scene file.

From QGC, upload the vehicle specific and HIL parameters provided here.
rascal_hitl.zip
Now simply command the vehicle through QGC as required.

Testing
The method has been successfully tested on Pixhawk 4 with PX4 v1.13.2. A screenshot of the vehicle in mission mode is shown below:

The log file is here.

Hello, I really need your help. I tried to run your modified code, but an error message will be reported as follows:
`Opened serial device/dev/ttyACM0
In file/home/lh/Code/autopilot HITL/Tools/jsbsim_ Bridge/models/Rapid/Rapid 110 JSBSim.xml: line 104
Engine location ignored, only thrust location is used
In file/home/lh/Code/autopilot HITL/Tools/jsbsim_ Bridge/models/Rapid/Rapid 110 JSBSim.xml: line 109
Engine orientation ignored, only thrust orientation is used
Send: Connection reused
Send: Connection reused
Send: Connection reused
Send: Connection reused
`
If you take the time out of your busy schedule to help me take a look, I would greatly appreciate it


TileLoad* related deprecations

Deprecated specialized listeners and global/static event adding for three TileLoad* events in favor of methods in ol.source.Tile.

Thanks!


feat: Output timestamps in prover-stats raw logs

Outputs block submission and proof submission timestamps along with raw logs if a proving timeout is set.

Benchmark results
Metrics with a significant change:

protocol_circuit_simulation_time_in_ms (private-kernel-tail-to-public): 689 (-51%)
avm_simulation_time_ms (FeeJuice:_increase_public_balance): 41.0 (-71%)
avm_simulation_time_ms (FeeJuice:set_portal): 11.6 (+50%)
avm_simulation_time_ms (Token:mint_public): 44.4 (-83%)
avm_simulation_time_ms (Token:assert_minter_and_mint): 255 (+394%)
avm_simulation_time_ms (Token:transfer_public): 14.5 (-49%)
avm_simulation_time_ms (Token:_increase_public_balance): 36.5 (-31%)
l2_block_processing_time_in_ms (4): 258 (-18%)
l2_block_processing_time_in_ms (16): 818 (-31%)

Detailed results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
Proof generation
Each column represents the number of threads used in proof generation.

Metric
1 threads
4 threads
16 threads
32 threads
64 threads

proof_construction_time_sha256_ms
5,785 (+1%)
1,554
708
766
776 (+1%)

proof_construction_time_sha256_30_ms
11,581 (+1%)
3,079 (+1%)
1,375 (+1%)
1,430 (+2%)
1,463

proof_construction_time_sha256_100_ms
44,271 (+1%)
11,854 (+1%)
5,402 (-8%)
6,001 (-1%)
5,480 (+2%)

proof_construction_time_poseidon_hash_ms
78.0
34.0
34.0
57.0
86.0

proof_construction_time_poseidon_hash_30_ms
1,536 (+1%)
421 (+1%)
200
223 (-2%)
271 (+1%)

proof_construction_time_poseidon_hash_100_ms
5,681 (+1%)
1,523 (+1%)
684 (+2%)
754 (-1%)
750

L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
4 txs
8 txs
16 txs

l1_rollup_calldata_size_in_bytes
4,612
8,260
15,524

l1_rollup_calldata_gas
52,828
97,596
186,920

l1_rollup_execution_gas
819,514
1,555,690
3,346,449

l2_block_processing_time_in_ms
:warning: 258 (-18%)
442 (-3%)
:warning: 818 (-31%)

l2_block_building_time_in_ms
9,407 (+1%)
18,454 (-2%)
36,577 (-1%)

l2_block_rollup_simulation_time_in_ms
9,406 (+1%)
18,454 (-2%)
36,577 (-1%)

l2_block_public_tx_process_time_in_ms
8,014 (+1%)
17,036 (-2%)
35,099 (-1%)

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 8 txs.

Metric
3 blocks
5 blocks

node_history_sync_time_in_ms
3,139 (+1%)
3,999 (-4%)

node_database_size_in_bytes
14,237,936
18,227,440

pxe_database_size_in_bytes
16,258
26,818

Circuits stats
Stats on running time and I/O sizes collected for every kernel circuit run across all benchmarks.

Circuit
simulation_time_in_ms
witness_generation_time_in_ms
input_size_in_bytes
output_size_in_bytes
proving_time_in_ms

private-kernel-init
76.0 (+1%)
391 (-3%)
20,975
44,933
N/A

private-kernel-inner
140
712 (-2%)
71,787
45,067
N/A

private-kernel-reset-tiny
333 (-1%)
733 (-4%)
64,273
44,922
N/A

private-kernel-tail
152 (-2%)
141 (-1%)
50,551
57,178
N/A

base-parity
5.59
N/A
160
96.0
N/A

root-parity
35.2
N/A
73,964
96.0
N/A

base-rollup
2,119 (-2%)
N/A
189,128
664
N/A

block-root-rollup
41.6
N/A
58,217
2,448
N/A

public-kernel-setup
87.0 (-1%)
N/A
114,433
79,670
N/A

public-kernel-app-logic
99.8
N/A
114,251
79,670
N/A

public-kernel-tail
585 (-3%)
N/A
487,098
16,414
N/A

private-kernel-reset-small
306 (-3%)
N/A
66,345
45,629
N/A

private-kernel-tail-to-public
:warning: 689 (-51%)
626 (-3%)
448,120
1,825
N/A

public-kernel-teardown
86.3 (-1%)
N/A
114,697
79,670
N/A

merge-rollup
19.8 (-1%)
N/A
38,182
664
N/A

undefined
N/A
N/A
N/A
N/A
99,399 (-2%)

Stats on running time collected for app circuits

Function
input_size_in_bytes
output_size_in_bytes
witness_generation_time_in_ms

ContractClassRegisterer:register
1,344
11,731
349 (-1%)

ContractInstanceDeployer:deploy
1,408
11,731
18.3 (-3%)

MultiCallEntrypoint:entrypoint
1,920
11,731
425 (-2%)

FeeJuice:deploy
1,376
11,731
396 (-1%)

SchnorrAccount:constructor
1,312
11,731
60.9 (-1%)

SchnorrAccount:entrypoint
2,336
11,731
368 (-1%)

FeeJuice:claim
1,344
11,731
38.3

Token:privately_mint_private_note
1,280
11,731
74.9

FPC:fee_entrypoint_public
1,344
11,731
25.7 (-3%)

Token:transfer
1,312
11,731
212

Benchmarking:create_note
1,344
11,731
74.1 (-1%)

SchnorrAccount:verify_private_authwit
1,280
11,731
26.4

Token:unshield
1,376
11,731
485

FPC:fee_entrypoint_private
1,376
11,731
644

AVM Simulation
Time to simulate various public functions in the AVM.

Function
time_ms
bytecode_size_in_bytes

FeeJuice:_increase_public_balance
:warning: 41.0 (-71%)
1,268

FeeJuice:set_portal
:warning: 11.6 (+50%)
1,208

Token:constructor
254
10,758

FPC:constructor
67.2 (-1%)
7,939

FeeJuice:check_balance
35.2 (-2%)
1,093

Token:mint_public
:warning: 44.4 (-83%)
2,293

Token:assert_minter_and_mint
:warning: 255 (+394%)
1,551

AuthRegistry:set_authorized
46.4 (+3%)
543

FPC:prepare_fee
88.4 (-6%)
1,596

Token:transfer_public
:warning: 14.5 (-49%)
8,779

FPC:pay_refund
40.7 (-5%)
2,098

Benchmarking:increment_balance
1,002 (-2%)
1,536

Token:_increase_public_balance
:warning: 36.5 (-31%)
1,239

FPC:pay_refund_with_shielded_rebate
52.0 (+1%)
2,098

Public DB Access
Time to access various public DBs.

Function
time_ms

get-nullifier-index
0.156 (-1%)

Tree insertion stats
The duration to insert a fixed batch of leaves into each tree type.

Metric
1 leaves
16 leaves
64 leaves
128 leaves
256 leaves
512 leaves
1024 leaves

batch_insert_into_append_only_tree_16_depth_ms
2.17 (-2%)
3.86 (-1%)
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_count
16.7
31.8
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_ms
0.114 (-2%)
0.109 (-1%)
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_32_depth_ms
N/A
N/A
11.3
17.4 (-3%)
30.7 (-2%)
58.6 (-3%)
113

batch_insert_into_append_only_tree_32_depth_hash_count
N/A
N/A
95.9
159
287
543
1,055

batch_insert_into_append_only_tree_32_depth_hash_ms
N/A
N/A
0.108
0.101 (-2%)
0.0999 (-1%)
0.101 (-3%)
0.101 (+1%)

batch_insert_into_indexed_tree_20_depth_ms
N/A
N/A
14.3 (-1%)
25.9
43.9 (-2%)
81.9 (-2%)
162

batch_insert_into_indexed_tree_20_depth_hash_count
N/A
N/A
109
207
357
691
1,363

batch_insert_into_indexed_tree_20_depth_hash_ms
N/A
N/A
0.109 (-1%)
0.105
0.106 (-1%)
0.101 (-2%)
0.102 (-1%)

batch_insert_into_indexed_tree_40_depth_ms
N/A
N/A
16.1 (-1%)
N/A
N/A
N/A
N/A

batch_insert_into_indexed_tree_40_depth_hash_count
N/A
N/A
129
N/A
N/A
N/A
N/A

batch_insert_into_indexed_tree_40_depth_hash_ms
N/A
N/A
0.106 (-1%)
N/A
N/A
N/A
N/A

Miscellaneous
Transaction sizes based on how many contract classes are registered in the tx.

Metric
0 registered classes
1 registered classes

tx_size_in_bytes
72,416
668,302

Transaction size based on fee payment method
| Metric |  |
| - |  |


Assertion of participant liveliness receiving any RTPS message [6386]

This PR changes the behavior of asserting the participant liveliness. With these changes, the assertion occurs each time we received an RTPS message from the remote participant.

Build status:

Linux
Mac
Windows

Build status:

Linux
Mac
Windows

Build status:

Linux
Mac
Windows

Build status:

Linux
Mac
Windows

Liveliness tests seem to be also failing on base branch (1.8.x). See this manual run


Word count changes if a non-active tab is updated

I have two tabs open, main.tex (active) and main.log.
When I compile my TeX file outside of Atom, main.log changes. Atom automatically refreshes the file contents even though that file tab is not active, but the word count indicator in the status bar changes too! Even though I am still viewing main.tex, the indicator now shows me the word count of main.log, even though that tab is not active.

Hey @johnjcamilleri that indeed sounds like a bug, and my guess for the caue is that the view is updated on keystoke events https://github.com/nesQuick/atom-wordcount/blob/master/lib/main.coffee#L27-L28 so there is no eventlistener for a fs file change. But it can be implemented, this might be a good starting point: https://atom.io/docs/api/v1.0.7/TextEditor#instance-onDidChange


Set timeout for parse request

I'm running analyzis on many files some of them are big.
I see quite many
rpc error: code = DeadlineExceeded desc = context deadline exceeded

errors.
I would prefer to process slower but avoid these errors.
Timeout future similar to client-go could help here.

Different gRPC clients have different approaches for handling timing issues, as noted in official doc.
Java client, that Scala uses underneath, has only a concept of Deadlines and does not have Timeouts (the difference is well explained in https://github.com/grpc/grpc-java/issues/1495#issuecomment-190273517).
Current impl of the scala-client use the defaults from io/grpc/CallOptions.java#L44 which AFAIK do not set any deadline for each request.
So the simplest thing we could do here is to expose such Deadlines (a fixed point in time) as an optional argument of BblfshClient constructor, along with host, port, etc. which does not seem to be that useful. Best possible effort would be to expose the Deadline at Parse() API call, so it can be set per-call, rather then per-client.
Let me know if that would help.

I would prefer to process slower but avoid these errors.

From the analysis of the batch processing logs discussed elsewhere, it seems that the Deadline solution might not help as a solution, as the problem might be in bblfshd server when under a heavy load.
But please, let me know if there any particular files that reproduce the deadline exception.

Deadline in Parse() sounds good. Let me come back to it a little bit later.
I'll try to come up with some test case that we can use to reproduce the issue and validate the fix.

All the information above is related to grpc timeout/deadline which will workin only after a migration to V2 protocol that is currently "on hold"  in #76
For v1 that scala client does support right now we expose a ParseRequest.timeout on Protobuf level so under this issue I'm going to make sure it's configurable by the client.
This should reach the desired effect for current state of affairs.

Test case:
$ git clone https://github.com/smacker/client-scala
$ cd client-scala
$ git checkout timeout_error

smacker in ~/Work/client-scala on timeout_error [?]
$ ./sbt "test-only *BblfshClientTimeoutTest"
[info] BblfshClientTimeoutTest:
[info] - Parse timeout requests *** FAILED ***
[info]   Vector("rpc error: code = DeadlineExceeded desc = context deadline exceeded") was not empty (BblfshClientTimeoutTest.scala:21)


Segments doc refactor

Updated heading levels in Segments doc and corrected heading capitalization.
This PR has:

[x] been self-reviewed.

Committed suggested edits and updated structure. Ready for re-review.


polygon mesh

We already have --detect-shared-borders:

-ab or --detect-shared-borders: In the manner of TopoJSON, detect borders that are shared between multiple polygons and simplify them identically in each polygon. This takes more time and memory than considering each polygon individually.

How about a mesh option like https://github.com/topojson/topojson-client#mesh which extracts shared borders from polygons and creates a single line?
This is useful when creating a map of parcel boundaries as lines only, where you don't need the original polygon as it avoids overlapping lines which can improve how it renders visual. Not sure if it would decrease or increase the file size.

It would be relatively straightforward to pull out the detected edges into new features, but I don't feel like this necessarily belongs in Tippecanoe, since it seems like more of a data analysis task than a tiling task. It seems like it might be better as a preprocessor. Do you think it makes more sense as part of tiling?

I agree, it's something that can be done outside of tippecanoe. I was thinking doing it part of tippecanoe would be more efficient since it's already detecting the shared borders when using -ab, but if it'll add too much blot I understand.

With the au/qld parcels from zoom 12-16 it comes to a 1.1GB tileset without --extract-borders and 950MB with --extract-borders.
For me it's more the rendering benefits this brings from drawing a single line instead of multiple overlapping lines.

I'm glad this was useful for you. In the long run I still think it makes more sense to do as a preprocessing step on the source data (using TopoJSON, for instance) rather than as part of tiling. (Or perhaps as part of the large-scale spatial join tool that is still in the back of my mind, since detecting shared borders could be one aspect of finding feature overlap.)

I was actually going to request a very different but also very related feature, which is to treat all polygons as line features. I was primarily thinking of the size benefit - presumably all the tiles that are entirely within a single polygon would no longer have to exist, so the end result would be a lot smaller.
But I also figured that could be done by a pre-processor, so... shrug