Fixed format error

I know that format is better, but that's n ot how the logging system works.
If you didn't like that, you should have used a better logging system.  :-D
You are not supposed to pass computed strings into logs.  You are supposed
to pass a format string and then variables that are optionally put into the
format string.
The link above makes that clear.
pylint, a popular and stricter linting system that I've used on multiple
projects, complains about this bitterly.  (flake8 cannot, but only because
PEP8 pre-dates logging...)
You can leave it in, but somewhere in America Guido van Rossum is shaking
his head...
On Wed, Jun 28, 2017 at 1:06 PM, Adam Haile<EMAIL_ADDRESS>wrote:

@adammhaile commented on this pull request.
In bibliopixel/return_codes.py
https://github.com/ManiacalLabs/BiblioPixel/pull/254#discussion_r124512366
:

@@ -29,5 +29,5 @@ class BiblioSerialError(Exception):

def print_error(error, exception_class=BiblioSerialError):
msg = RETURN_CODE_ERRORS.get(error, 'Unknown error occured.')

log.error('%s: %s', msg)

log.error('{}: {}'.format(error, msg))
raise exception_class(msg)

Ug... no thanks. format() all the way.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ManiacalLabs/BiblioPixel/pull/254#discussion_r124512366,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAPdsgfgAqelwPluTfvQ3ZrJ9CDwBrw_ks5sIjOzgaJpZM4OHzT9
.

--
/t
https://tom.ritchford.com https://tom.ritchford.com
https://tom.swirly.com https://tom.swirly.com

@rec That's idiotic. No one uses the % formatting anymore... not who's sane anyways :P
Whatever, fixed it.

You didn't have to fix it!  I'm sorry I said it was an "affront to human
dignity" or whatever. ;-)
I should have approved it to make that clear.
Particularly in that case, when you always want it displayed, who cares?
I'll make it clear when it's not binding in future.
TBH we will probably change the logging at some point in the moderate
future - so we can easily send it back over the wire.
When your remote machine is failing on the network, you want to see the
logs where you can read 'em.
It'd be a pleasant half hour to change it to our own simpler system, allow
forwarding, and use format instead of this monster, but some other time....
On Wed, Jun 28, 2017 at 2:12 PM, Adam Haile<EMAIL_ADDRESS>wrote:

Assigned #254 https://github.com/ManiacalLabs/BiblioPixel/pull/254 to
@rec https://github.com/rec.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ManiacalLabs/BiblioPixel/pull/254#event-1142240814,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAPdsgLsBF07JzmYVT-1VdE5pf_O_e6Sks5sIkMUgaJpZM4OHzT9
.

--
/t
https://tom.ritchford.com https://tom.ritchford.com
https://tom.swirly.com https://tom.swirly.com

Haha... no worries.
And yeah... better loggin would be sublime.


Add a grammar for cuda-cpp

This change adds a TextMate grammar file for cuda-cpp and adds a grammar section to the package.json file for the cpp extension to point to the new grammar file.
Related to: PR #119287: Nvidia/cuda cpp lang.

Closing in favor of https://github.com/microsoft/vscode/pull/119444


Added a text property to IrcEvent.

The text property is the last element of IrcEvent's params seq.
This is equivalent to the message that would be sent in an IRC channel, or private message.

I also updated the docs to be a working example.

Nit: no reason to duplicate this message, much better to just provide this as an accessor.

Was wondering the same - could just be a template that returns the last param or an empty string

{.inline.} proc should work just as well, use the least powerful construct :)


add Fresh Components

I noticed that Button was left disabled (it was using IS_BROWSER on a component that was not called from island). I will fix this as well so converted to draft fpr now

Looks good!
Would it be difficult to syntax highlight the code?


NERDTreeMapOpenInTab crashes MacVim

Steps to reproduce

Having NerdTree installed
Then trying to open a new tab pressing t

Expected behaviour
The given file should be opened in a new tab.
Version of Vim and architecture
VIM - Vi IMproved 9.0 (2022 Jun 28, compiled Sep 15 2022 18:56:17) macOS version - x86_64 Included patches: 1-472
Environment
[Ventura 13.0.1 (22A400), 2,4 GHz 8-Core Intel Core i9]
[iTerm2]
[fish, version 3.3.1]
How MacVim was installed
Homebrew
Logs and stack traces
No response
Vim configuration where issue is reproducable
No response
Issue has been tested with given configuration

[ ] by running MacVim.app from GUI macOS interface
[X] by running vim/gvim/etc installed by MacVim
[ ] by running other versions of vim (e.g. /usr/bin/vim)

Issue has been tested with no configuration

[ ] by running mvim --clean (or gvim, supplied by MacVim distribution)
[ ] by running vim --clean (in terminal, supplied by MacVim distribution)
[ ] by running vim --clean (in terminal, other suppliers, e.g. /usr/bin/vim)

Other conditions

[X] The both Homebrew packages "vim" and "macvim" are installed

Hi, I have a few questions about the issue
Could you please share the trace log as it's a crash
How MacVim has been installed?
Have you tried in the GUI version? If not, please try.
Could you share minimal vimrc configuration with which another person can reproduce the issue. Please, have no assumptions how plugins are installed as I'd like to have exact machine-repeatable test to find out the problem

I think this is a dup of #1333. @jacobespersen you can try to follow https://github.com/macvim-dev/macvim/issues/1333#issuecomment-1303248931 to use non-GUI tabs for now until the next release which will have the fix.

@ychin It indeed looks like a duplicate!
Thanks a lot for the help


Create a sample react app using resaga to do CRUD

Consider those examples in here https://github.com/redux-saga/redux-saga/tree/master/examples
Might not able to mimic everything, but those with API requests should work

Try nightmare or selenium to write Acceptance Testing for redux-saga Async example.


Add new service support: ReDB

https://github.com/cberner/redb
A simple, portable, high-performance, ACID, embedded key-value store.
redb is written in pure Rust and is loosely inspired by lmdb. Data is stored in a collection of copy-on-write B-trees. For more details, see the design doc

I can help to impl this feature, Please assign it to me.

I can help to impl this feature, Please assign it to me.

Have fun!


AddressResolver.resolveAll doesn't return consistent result

Expected behavior
AddressResolver.resolveAll always returns full list of ips.
Actual behavior
AddressResolver.resolveAll returns some part of full list ips.
Steps to reproduce
dev.myredis.com host has two ips: <IP_ADDRESS>, <IP_ADDRESS>.
I guess AddressResolver.resolveAll should always return these two ips, but it's not true on practice if DnsAddressResolverGroup object shared between multiple threads
If this object created per invocation then the problem is gone.
Seems like DnsAddressResolverGroup is not thread safe!
Minimal yet complete reproducer code (or URL to code)
Here is my test case:
        NioEventLoopGroup niogroup = new NioEventLoopGroup();

        DnsAddressResolverGroup group = new DnsAddressResolverGroup(NioDatagramChannel.class, DnsServerAddressStreamProviders.platformDefault());
        ExecutorService es = Executors.newFixedThreadPool(2);
        for (int i = 0; i < 100; i++) {
            es.execute(new Runnable() {
                @Override
                public void run() {
                    AddressResolver<InetSocketAddress> resolver = group.getResolver(niogroup.next());
                    try {
                        URI uri = new URI("redis://dev.myredis.com:6379");
                        Future<List<InetSocketAddress>> allNodes = resolver.resolveAll(InetSocketAddress.createUnresolved(uri.getHost(), uri.getPort()));
                        List<InetSocketAddress> list = allNodes.syncUninterruptibly().getNow();
                        System.out.println(list);
                    } catch (URISyntaxException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            });
        }

        Thread.sleep(10000);
        group.close();
        es.shutdown();
        niogroup.shutdownGracefully();

Output is:
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
[dev.myredis.com/<IP_ADDRESS>:6379]
But it always should be: [dev.myredis.com/<IP_ADDRESS>:6379, dev.myredis.com/<IP_ADDRESS>:6379]
Netty version
4.1.23.Final
JVM version (e.g. java -version)
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
OS version (e.g. uname -a)
Windows 7

@mrniko can you share a query that I can retry here to reproduce it ?

I used http://maradns.samiam.org/ to reproduce that. You can find its config attached to this message.
maradns-config.zip

@mrniko I was looking for a query that I can run against a dns server that shows this behaviour :)

sorry, I can't help here

@mrniko I have an idea... can you actual disable the cache by using a NoopDnsCache and let me know if you still see the issue ?

@normanmaurer How do I define it? DnsAddressResolverGroup doesn't expose any method to do it.

@mrniko actually I think I was wrong and this needs a bit more work. I am looking into fixing it as we speak.

@mrniko now for real... Can you check https://github.com/netty/netty/pull/7906. I think this will fix it as I could not reproduce it anymore with the pr pulled in.

Thanks for your work! I tested it against default_dns_cache_fix. I don't see the issue anymore, but a new one - java.net.UnknownHostException: failed to resolve 'dev.myredis.com' after 2 queries . This problem is arise if DnsAddressResolverGroup object shared between multiple threads. Have a look at attached log error.txt

@mrniko I think you just close the channel to early. Use a CountDownLatch and only shutdown stuff after all queries returned.

No, this won't happen if I comment out resolver.close(); line

@mrniko please show me the code you use... I tested it to resolve multiple different hostnames (like for example "web.de") and it always returns the same results.

the code is at Minimal yet complete reproducer code (or URL to code) section

yes I did and could not reproduce... Can you reproduce with query for example web.de

Basically what I ask you is to change the code to:
        NioEventLoopGroup niogroup = new NioEventLoopGroup();

        DnsAddressResolverGroup group = new DnsAddressResolverGroup(NioDatagramChannel.class, DnsServerAddressStreamProviders.platformDefault());
        ExecutorService es = Executors.newFixedThreadPool(2);
        CountDownLatch latch = new CountDownLatch(100);
        for (int i = 0; i < 100; i++) {
            es.execute(new Runnable() {
                @Override
                public void run() {
                    AddressResolver<InetSocketAddress> resolver = group.getResolver(niogroup.next());
                    try {
                        URI uri = new URI("redis://dev.myredis.com:6379");
                        Future<List<InetSocketAddress>> allNodes = resolver.resolveAll(InetSocketAddress.createUnresolved(uri.getHost(), uri.getPort()));
                        List<InetSocketAddress> list = allNodes.syncUninterruptibly().getNow();
                        System.out.println(list);
                    } catch (URISyntaxException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } finally {
                        latch.countDown();
                    }
                }
            });
        }
        latch.await();
        group.close();
        es.shutdown();
        niogroup.shutdownGracefully();

@normanmaurer OK. Thanks for the clarification!


[Update Request]: Oracle.VirtualBox 7.1.4

What type of update are you requesting?
A new version of an existing package
Current Package Identifier
Oracle.VirtualBox
Package Version
7.1.4
Please describe the changes you would like to see
The virtualbox stuff hasnt been updated since v7.0.6 (January 17th, 2023). A newer version would be great

My apologies folks. I saw the lack of updates on winget.run and assumed those version numbers flowed through from here.


Unable to retrieve result for pulse job

Environment

{'qiskit-terra': '0.21.1', 'qiskit-aer': '0.10.4', 'qiskit-ignis': None, 'qiskit-ibmq-provider': '0.19.2', 'qiskit': '0.37.1', 'qiskit-nature': '0.4.2', 'qiskit-finance': '0.3.3', 'qiskit-optimization': '0.4.0', 'qiskit-machine-learning': '0.4.0'}
python3.8
IBM Quantum Lab

What is happening?
When I try to send a pulse schedule to IBMQ Jakarta in IBM Quantum Lab. I get the following error
Traceback (most recent call last):
Input In [24] in <cell line: 1>
job2.result().get_counts()
File /opt/conda/lib/python3.8/site-packages/qiskit/providers/ibmq/job/ibmqjob.py:290 in result
raise IBMQJobFailureError(
IBMQJobFailureError: 'Unable to retrieve result for job 634c09e4d31ce7a982d82517. Job has failed: Waveform memory exceeds the maximum amount of memory currently available. Error code: 8018.'
How can we reproduce the issue?
import numpy as np
import qiskit
qiskit.IBMQ.enable_account("KEY")
qiskit.IBMQ.providers()
backend = ibmq_provider.get_backend("ibmq_jakarta")

from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit
from numpy import pi

qreg_cin = QuantumRegister(1, 'cin')
qreg_a = QuantumRegister(1, 'a')
qreg_b = QuantumRegister(1, 'b')
qreg_cout = QuantumRegister(1, 'cout')
creg_c = ClassicalRegister(2, 'c')
qc = QuantumCircuit(qreg_cin, qreg_a, qreg_b, qreg_cout, creg_c)

# set input states
qc.x(qreg_a[0])
# a = 1
qc.x(qreg_b[0])
# b = 1
# add a to b, storing result in b
qc.cx(qreg_a[0], qreg_b[0])
qc.cx(qreg_a[0], qreg_cin[0])
qc.ccx(qreg_cin[0], qreg_b[0], qreg_a[0])
qc.cx(qreg_a[0], qreg_cout[0])
qc.ccx(qreg_cin[0], qreg_b[0], qreg_a[0])
qc.cx(qreg_a[0], qreg_cin[0])
qc.cx(qreg_cin[0], qreg_b[0])
qc.measure(qreg_b[0], creg_c[0])
qc.measure(qreg_cout[0], creg_c[1])

from qiskit import transpile
transpiled_qc = qiskit.transpile(qc, backend=backend,optimization_level = 3)
pulse_schedule_standard = qiskit.schedule(transpiled_qc, backend)
job2 = qiskit.execute(pulse_schedule_standard, shots=8192, backend=backend)
job2.status()
job2.result().get_counts()

What should happen?
I never had this issue before. The execution has to provide me the fidelity of the output state "10".
Any suggestions?
No response

Hi @jakelishman, I'm still stuck with the same problem. Can you please help me?

Can you try different backend? This bug has been reported in the qiskit-pulse channel in our slack. This is not a Qiskit bug, but some (weird) compiler problem only occurring with the PulseQobj payload. If you attach a whole schedule to another quantum circuit as a pulse gate you can bypass pulse job and experiment works again.

Yes, exactly. We are going to remove pulse payload and migrate to pulse gate. The problem has been already reported but I guess the priority is not quite high.


Fix spacing

Lindsay's photo is showing up blank. Same hyphen/underscore issue. I'm going to sleep now, but will check in the morning before 7:30am.

Removed duplicates, fixed Lindsay


NBS compaction can blow up memory

the first pass at compaction is going to just take a bunch of the smallest tables and merge them into one. Since tableWriter wants one big buffer to write into, this process may explode RAM.

this is now fixed.


fix compilation problems in Kafka integration test

Although the build failed for GHA kogito runtimes, the kakfa-it test succeeded.


Fix mipmaps for 90%

I wasted a week on fixing mipmaps. You're not going to believe the fix 😡
However, there seems to be an issue with MeshLambertMaterial. When using that in the mipmaps example the mesh becomes black, but when using MeshBasicMaterial the textures work. Somehow MeshLambertMaterial is being treated differently.
I tried to update the MeshLambertMaterial class and set the default values like threejs does in r106, but I had no luck yet.
Forgive me for my useless "merge pull request" commits xD.

I added the kotlinx-io dependency because it's required for a Texture object to have a non-nulled image in order for it to render anything. Maybe you can add an EMPTY_IMAGE constant in the Texture class or something so you don't need the dependency.

I added the kotlinx-io dependency because it's required for a Texture object to have a non-nulled image in order for it to render anything. Maybe you can add an EMPTY_IMAGE constant in the Texture class or something so you don't need the dependency.

I'm a little sidetracked at the moment. I promise to look at this next week!

I'm a little sidetracked at the moment. I promise to look at this next week!

Aight, I had a look. There was clearly a wrong use with texImage2D that you spotted. Good job.
For the MeshLambertMaterial case, simply add a light source :D

Aight, I had a look. There was clearly a wrong use with texImage2D that you spotted. Good job.
For the MeshLambertMaterial case, simply add a light source :D


Tooltip doesn't show up when svg's  elements with  are used on the page

The issues forum is NOT for support requests. It is for bugs and feature requests only.
Please read https://github.com/angular-ui/bootstrap/blob/master/CONTRIBUTING.md and search
existing issues (both open and closed) prior to opening any new issue and ensure you follow the instructions therein.
Bug description:
If there are svg elements with body tag on the page, tooltip doesn't show up
Link to minimally-working plunker that reproduces the issue:
Version of Angular, UIBS, and Bootstrap
Angular:
UIBS:
Bootstrap:

https://github.com/angular-ui/bootstrap/blob/master/CONTRIBUTING.md#you-think-youve-found-a-bug

Closing due to lack of response.


How are phones with two SIM cards managed

Ask your Question
I have a
I have the following situation:
My application uses the useNetInfo() hook to get the value of isInternetReachable.
The application is launched on an Android phone with two SIM cards. Both networks have good internet access.
One of the networks loses internet access.
Should the variable isInternetReachable still be true?
Because in my application, it seems that it is not stable, that sometimes isInternetReachable is false, and other times it is true.
Since I am not familiar with the use of two SIM cards,
that it is apparently not possible to have an Android emulator with two SIM cards, and that the Android documentation doesn't mention it, I'm a bit confused! (documentation in question: https://developer.android.com/training/monitoring-device-state/connectivity-status-type#RegisterForUpdates)
Sorry for the long and boring question, I would have preferred to ignore that dual SIM exist 😅

Hi there! This is not handled directly, that is, the library does not handle the case of multiple SIM cards.
However, it is possible to use something like the configuration example here https://github.com/react-native-netinfo/react-native-netinfo#configure to run a periodic head check to see if there is reachability without regard to multi-SIM state
It is also possible to force a state update if you determine (via a failed API call or similar) that reachability has changed in practice without netinfo state capturing it

Thank you for your quick response!
Indeed, configuring NetInfo in this way would allow me to not have to deal with these weird cases... I'll test it!
Thanks again for your work.


[Large 2D load for GEMM - #1] Support repCluster field in converting shared layout to dot layout.

Support the repCluster field in convert shared layout to dot layout with parent layout of DPAS.

Yes. I am working on the lit test to cover the code changes.

I see we're throwing lots of unrecoverable errors here. Are these actual errors or situations we should never reach? Can we fail gracefully if they're actually errors instead? Same as @etiotto: can we get a lit test?

The used repCluster size: For M, 1, 2 and 4. For N, 1 and 2. The LIT test has been added for the used test case M=2, 4 and N=2.
I replace the LLVM fatal error with assertion in the code lowering.
The invalid configuration should be verified in the DPAS layout attributer verify. I will create a new PR to enhance the verify and more error information.


TST: More thorough test to check correctness of to_html_unicode

The current test for test_to_html_unicode only checks for whether the function works but does not check for its correctness.

On green. Can this be merged?

looks good. will merge soon.

thanks!


Eos designs fails with port-channel error

Issue Type

[x] Bug Report
[ ] EOS Configuration rendering error
[ ] Documentation Issue Report

Summary
eos_designs fails with following error message
fatal: [leaf2]: FAILED! =>
  msg: '''adapter_port_channel_mode'' is undefined'

Component Name
arista.avd.eos_designs

Root cause:

ESI on port channel
LACP in active mode


onLoop function not called in nuxt generate (SSG) but working in dev mode

Describe the bug
I'm using nuxt with SSG, so running nuxt generate to build it,
I noticed this thing, everything works fine in dev mode, but when i build using generate the onLoop function never get called.
Attached I have the reproduction link
I'm running on
    "nuxt": "^3.11.2",
    "@tresjs/cientos": "^3.8.0",
    "@tresjs/core": "^3.8.0",
    "@tresjs/nuxt": "^2.1.1",

DEV MODE, as you can see it triggers the logs correctly, including the loop

BUILD, the onLoop never get triggered

Reproduction
https://stackblitz.com/edit/nuxt-starter-hsw5j9
Steps to reproduce
npm i
npm run dev
npm run generate
System Info
System:
    OS: macOS 14.4.1
    CPU: (8) x64 Apple M1
    Memory: 16.41 MB / 16.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 20.10.0 - ~/.nvm/versions/node/v20.10.0/bin/node
    npm: 10.2.3 - ~/.nvm/versions/node/v20.10.0/bin/npm
    pnpm: 8.6.7 - ~/Library/pnpm/pnpm
    bun: 1.0.17 - ~/.bun/bin/bun
  Browsers:
    Brave Browser: <IP_ADDRESS>
    Chrome: 123.0.6312.107
    Safari: 17.4.1

Used Package Manager
npm
Code of Conduct

[X] I agree to follow this project's Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] The provided reproduction is a minimal reproducible example of the bug.

As a workaround just call resume @dghez
const { onLoop, resume } = useRenderLoop();

console.log('BOX: GENERATE');

onLoop((state) => {
  if (mesh.value) {
    mesh.value.position.x = Math.sin(state.elapsed);
  }
});

resume();

https://stackblitz.com/edit/nuxt-starter-s6xuwx?file=components/Box.vue,package.json

For the lazy people, I've made an explicit composable so i'm sure I won't forget to call the resume
import { useRenderLoop } from '@tresjs/core'

export const useCustomFrame = (cb) => {
  const { onLoop, resume } = useRenderLoop()

  onLoop((state) => {
    cb(state)
  })

  resume()
}


ntr protein serine/threonine kinase binding

I would like to see "protein serine/threonine kinase binding” added to the GO ontology under the parent term "protein kinase binding (GO:0019901).  The definition could be "Interacting selectively and non-covalently with a protein serine/threonine kinase.”  Example can be found in PMID:28608965.

I have always found it odd that protein tyrosine kinase binding is a term but not protein serine/threonine kinase binding

Discussing at the editor's call. These terms are problematic for annotation, because they require that we we evidence that (1) there is a binding activity and (2) one of the partner is a kinase (or whatever activity the term implies).
Ideally this should be a query of the type : for protein X, give me binding partners that are kinases (based on MF annotations). If we can do that then we would merge these terms into 'protein binding'.
@cmungall do you thing it would be possible to do these types of queries ?
Depending on your answer we'll decide what to do next.
Thanks, Pascale

@ukemi - I noticed that this one still had the "editors-discussion" tag, but when we discussed it last year, we concluded that you and @dougli1sqrd were going to do some analysis, so I added you to the assignees for this ticket.

Was the decision here that specific protein family binding terms are "out of scope"?

From discussions with Pascale about transcription factors I believe that the 'function'-binding terms were being kept and new terms can be approved
@pgaudet

For any function???

Ontology call - let's do it.

Pascale: add rules in the wiki documentation and/or yaml

So what are the rules? Can a binding term be added for any activity?
Why isn't the "with' field sufficient?
What is special about protein kinases (I expected that protein kinase binding would go eventually because it is redundant with the input). GO seem to have different rules on different days.

So what are the rules? Can a binding term be added for any activity?
Why isn't the "with' field sufficient?
What is special about protein kinases (I expected that protein kinase binding would go eventually because it is redundant with the input). GO seem to have different rules on different days.

I would say we're going with practicality rather than absolute rules. Yes, we would like to get to a place where we don't have binding terms for specific types of substrates. However, currently we do not have the ability to do useful grouping based on the contents of the with field. Until we do, we feel that this term is reasonable as it represents a grouping of large class of proteins rather than an individual gene product. Are we perfect every time? Of course not, but we're trying to balance current usability with long term goals and we've come to the conclusion that there isn't a good substitute for this term at this time.

The thing is, such a term is only useful if it is used for all instances of protein kinase binding that are annotated.
Pombe has 130 protein kinase which have over 1000 interactions curated so far, all of  these interactors  should move to protein  kinase binding.  Nobody is going to do this, so these terms will be inconsistently annotated. Anything  that is inconsistently annotated isn't really useful. The usefulness only comes when the same things are annotated using the same terms.
Wouldn't it be better to move towards  the  final aim rather than have an incomplete/partial  interim solution which won't really help  users but  will create more work in the long run? Then we could concentrate on the things that are really needed.
If a user really really wants  everything that is kinase binding (which will likely be everything if you think about the phoproteome - because we aren't excluding substrates in these terms?) they can mine the with field with a bit of shell scripting.

Fission yeast has 3073 phosphorylated proteins so far.  These (mainly) bind to serine/threonine protein kinases.
The definition is
Interacting selectively and non-covalently with a protein kinase,
so the terms do not exclude substrates  even if that was the intention.

So what I am trying to say is that by adding these terms we are doing the users a diservice, because they would get a better (infinitely more complete) set of genes by mining the "with field"  for  all of the GPs annotated to  "protein kinase activity" and "protein binding"

The issue is there are > 900 children classes to 'protein binding', and quite a few annotations:
https://docs.google.com/spreadsheets/d/1bSNOQg8FZi8LYdNn047WGwK7ljAb8Nvqgjgx9W046iQ/edit#gid=0
Excluding IntAct, about 1/3 of the protein binding annotations are to children of GO:0005515.
Ideally we would annotate to GO:0005515 with an interactor in the 'with' field, but that's a huge task to tackle right now. So, given this, we decided to leave that project for later and allow the creation of that term. (just 'protein kinase binding and children has 1385 EXP annotations).
I agree the inconsistency is not ideal but if curators fill in the 'with' field for all those annotations, it will facilitate migration later.
Thanks,
Pascale

The definition is
"Interacting selectively and non-covalently with a protein kinase"
so the terms do not exclude substrates even if that was the intention.

I dont think that was the intention ?

OK. PomBase has 2 annotations to protein kinase binding, one annotated and one from PAINT. I'm going to  filter/fix because we can't be consistent.

I don't think that was the intention ?

I don't think that is clear...and sometimes we know binding information before substrate?
and we have things like this:
https://www.pombase.org/gene/SPCC63.05
GO:0051721 | protein phosphatase 2A binding | IBA with 62011 , PTN000101130
where the nature of the interaction isn't known, so substrate is likely?

I agree the inconsistency is not ideal but if curators fill in the 'with' field for all those annotations,

Is the "with" field mandatory for protein binding children? I don't think it is- but it is mandatory for protein binding.

It is not mandatory because in some cases it is not known. I'm thinking of 'actin binding', maybe this is rather an exception ? We could enforce IPI (which requires a 'with' value), except for those exceptions ?

I think that could be useful for later. and warnings. It's a step towards removal.
Presumably  a term where everything has a "with" field can be merged.


Gekidou Sentry Installation

Summary
This is the first PR related to the Sentry feature.
ACHIEVED
In here, the following have been tested:

successful sourcemap upload for Android
successful sourcemap upload for iOS
the error event shows the line number for Android
the error event shows the line number for iOS
integration with the react-native-navigation lib for Performance monitoring

The above points took so time to figure out as:

the 'react-native-exception-handler' was absorbing the error event and thus not allowing Sentry to report what was happening
the sentry-cli was crashing on Android for the 'sourcemap' upload task and after much trials,  tweaking the build.gradle solved it.

PENDING

Release flow

It would be best that point the sourcemap generation+upload happens in the CircleCI pipeline to achieve full automation.  Even, after an environment variable in the CI config, the build still failed and I'm looking in it.

Creation of Sentry Project for Gekidou/v2 on the Mattermost Sentry Account

At the moment, for testing purposes, I'm using my own Sentry account.  Once, I get the 'CircleCI' part working, I will update the sentry.properties files with the data from the 'Sentry Mattermost' project.
Release Note
NONE

Building app in separate branch.

Successfully building:
https://circleci.com/gh/mattermost/mattermost-mobile/24852
https://circleci.com/gh/mattermost/mattermost-mobile/24851

Building app in separate branch.

Successfully building:
https://circleci.com/gh/mattermost/mattermost-mobile/24859
https://circleci.com/gh/mattermost/mattermost-mobile/24858

Building app in separate branch.

Successfully building:
https://circleci.com/gh/mattermost/mattermost-mobile/24864
https://circleci.com/gh/mattermost/mattermost-mobile/24863

Closing in favor of #6726


3D DEM intersection for ZTD

This fairly significant PR implements the DEM intersection method for calculating delays for ZTD
This change introduces a change in how the delays get calculated; i.e. there are no rays computed for ZTD. This results in several differences with the existing scenario tests, described below.
Description

Refactored and simplified code to handle 3D point intersection going off of ARIA-tools implementation (just a RegularGridInterpolator operation)
Added a "Conventional" class definition to complement the existing "Zenith" class, for calculating slant delays using the conventional approach. This is now the default behavior when passing a LOS file.

Motivation and Context

This puts in place the 3D intersection of the query points with the native weather model grid for calculating ZTD. Eventually this will be implemented for LOS as well.

Also fixes #81

How Has This Been Tested?

All unit tests except the scenarios pass locally
Autopep8 ran on changes

test_delay module added for testing functions in the delay.py module.

This update breaks current unit tests test_scenario_1 and test_scenario_2.

hydrostatic delays are ~5% different and wet delays are ~0.3% different for both tests
There are fewer NaN-values in the new mode than the original. Presumably this is because there is no DEM and all the weather model points are used, even those below ground.

Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

[ ] I have added an explanation of what your changes do and why you'd like us to include them.
[x] I have written new tests for your core changes, as applicable.
[x] I have successfully ran tests with your changes locally.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.

@dbekaert and @bbuzz31 this PR should be ready to review / merge. It calculates Zenith delays on the 3D cube and does the 3D DEM intersection as per @sssangha's ARIA-tools implementation. I also added a conventional slant delay calculation, which is the default now when passing an ISCE-style line-of-sight file (instead of an orbit vector).

@dbekaert I have a copy of this PR with only a single commit if you'd rather do it that way.


Create sign-up functionality for new users

User statement
As a new user, I would like to be able to create an account to access the web interface
Proposed solution
Let's create a new sign-up page that you can get to from the log-in page. The user should be prompted with input fields to fill in their information such as first name, last name, email, and password. Look at the Figma mock-up for inspiration!
Development notes
Add any other notes, context, or screenshots relevant to the ticket here

Functionality was complete in #9.


⚠ Empornium has degraded performance

In c787b52, Empornium ($EMP) experienced degraded performance:

HTTP code: 200
Response time: 3727 ms

Resolved: Empornium performance has improved in 9152b75.


Outlook conditional comment

Description:
Conditional comments do not work in Ractive
Template:

Output:

Template:

  {{{ifnotie}}}BROWSE{{{ifend}}}
  {{{ifie}}}BROWSE{{{ifend}}}

data: {
      ifie: '',
    url: 'www.google.com'
    }

Output:

BROWSE
BROWSE

When I put the comments in the data, Ractive modifies the comments so they don't work anymore.

any solution?
Versions affected:
Platforms affected:
Reproduction:

It's not that it doesn't work. It was never supported at all. Both HTML comments, including IE's special conditional comments,  as well as template comments are ignored by Ractive's parser and never make it to the AST (which is the basis for rendering).
What I recommend is sticking in a boolean on a global piece of data using Ractive.defaults.data at the beginning of your app. Then use that on your templates.
Ractive.defaults.data.isIE = /* IE checking logic, true if yes */;

Ractive({
  template: `
    {{# isIE }}I'm IE{{/}}
    {{^ isIE }}Not IE{{/}}
  `
})

See also https://ractive.js.org/api/#stripcomments

It looks like there's a bug with rendering comments since somewhere before 0.7.3.


Only navigation bar (+loading circle) visible via web access - local access works

Hello again, if I access the container via its 192xxxx:5800 URL it works perfect.
Now, If i come there via reverse proxy from the internet, I can only see the title bar and the loading circle. I tried many different browsers, even on mobile phones. No changes.
I'm running the container on a Synology - Any suggestions?

Ok I should stop writing issues 5 min before I find solutions. I hope this helps somebody:
This to be added to the Reverse Proxy settings in DSM.

Ok I should stop writing issues 5 min before I find solutions. I hope this helps somebody:
This to be added to the Reverse Proxy settings in DSM.

Facing the same issue inside of docker+compose with an nginx as a server

It leads to

If I comment out the /websockify section and set it like this

It loads something for a long time and shows the same error again
Thanks in advance. If it is needed - I can raise a new issue

Well, yeah, it doesn't reopen it...


fix: code issues after merging develop

Description
This PR fixes code issues for CS and Rector.
Checklist:

[x] Securely signed commits
[ ] Component(s) with PHPDoc blocks, only if necessary or adds value
[ ] Unit testing, with >80% coverage
[ ] User guide updated
[ ] Conforms to style guide

Thank you!


Investigate using intro.js (or similar)

We particularly want to give new users a walk through of each page.  Also the text / steps should be configurable.

http://introjs.com/
http://code.mendhak.com/angular-intro.js/example/index.html


[Perf]: Planning time increases linearly with number of stripes

What's wrong?
I noticed this because I have two tables with the same data, but one was built with the default 150k rows per stripe and the other with 10k rows per stripe. The table has about 1 billion rows. Both tables have a BTree index on vid.
This is an explain analyze for the table with 150k rows per stripe:
explain analyze select s.amount_in from swap_columnar_vid s where vid in (899171129, 999171129);
                                                                   QUERY PLAN
-------------------------------------------------------------------------------------------------------------------------------------------------
 Index Scan using idx_swap_columnar_vid on swap_columnar_vid s  (cost=0.57..1945.61 rows=2 width=10) (actual time=21.079..21.093 rows=1 loops=1)
   Index Cond: (vid = ANY ('{899171129,999171129}'::bigint[]))
 Planning Time: 11.635 ms
 Execution Time: 21.899 ms
(4 rows)

And now for the table with 10k rows per stripe:
d30750a14969=> explain analyze select s.amount_in from swap_columnar_vid_stripe_10k s where vid in (899171129, 999171129);
                                                                                QUERY PLAN

---------------------------------------------------------------------------------------------------------------------------------------------------------------
------------
 Index Scan using idx_vid_on_swap_columnar_vid_stripe_10k on swap_columnar_vid_stripe_10k s  (cost=0.57..142.02 rows=2 width=10) (actual time=6.422..6.435 rows
=1 loops=1)
   Index Cond: (vid = ANY ('{899171129,999171129}'::bigint[]))
 Planning Time: 142.906 ms
 Execution Time: 6.474 ms
(4 rows)

Notice how the query planning increased proportionally to the increase in number of stripes, and to an unreasonable 140ms. And the plan isn't even a columnar scan. This can be worked around to some extent by using prepared statements to take advantage of plan caching, but still this is a performance issue.

Hi @leoyvens thank you for report.
Lowering stripe max row count will increase stripes for table and thus  related metadata. Part of planning is to read table stripe metadata to calculate cost for reading columnar tables and there is where difference is.
Although it looks significant 11ms vs. 142ms, both times are still milliseconds.
We'll discuss if this is something that is on our priority to work on - so marking this as enhancement rather than bug.

Instead of reading the metadata table directly, which seems unusually expensive for a planning step, perhaps the stripe count and row count could be kept as statistics.

So we can understand your use case better, what are you trying to accomplish by making the maximum stripe size smaller? Did doing so have the desired effect (aside from the increased planning time)?

I am looking to improve the performance of index scans. As you can also see in the OP, the smaller stripe size resulted in a much faster execution time. In my measurements I saw an average speed up of 5x in index scans when using a 10k stripe size instead of the default 150k.
Taking a step back, if I'm fetching a single column of a single row using a btree index, there is no fundamental reason why columnar should perform worse than a heap table. At default configurations, heap performs better because its page size is much smaller than the default columnar stripe size, but that's a tuneable parameter and not a fundamental limitation of columnar.
In fact, according to the benchmarks I ran, if this issue and the column overfetching issue discussed in #187 are addressed, columnar index scans at a 10k stripe size should become competitive with heap index scans.


make unsafe method a different function

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (7c60ccb) 94.44% compared to head (76e3221) 94.33%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main       #3      +/-   ##
==========================================
- Coverage   94.44%   94.33%   -0.11%
==========================================
  Files           3        3
  Lines          54       53       -1
==========================================
- Hits           51       50       -1
  Misses          3        3

Files
Coverage Δ

src/alloc_interface.jl
96.00% <100.00%> (-0.16%)
:arrow_down:

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Add Pager clipped property

I found an issue where the top and bottom of the Pager were being clipped by default, causing problems when trying to achieve the effect seen in the video below.
https://user-images.githubusercontent.com/4598443/229994317-7b2700fc-9e5c-460e-8a9e-53ace75cad54.mov
To fix this issue, I added a new property called isClipped to the Pager, which can be set to false to prevent the clipping.
Pager(...).isClipped(false)

https://user-images.githubusercontent.com/4598443/229994359-c02fc82b-8f44-4d14-8c48-098ba1db5c39.mov

Having the same issue, would be nice to have this merged, @fermoya can you review this please?


['BarcodeScanner'] took '13.405762' ms. Plugin should use a background thread.

Platform and Version:
IOS 13
Cordova CLI version and cordova platform version
Apache Cordova native platform version 5.1.1
Plugin version
cordova plugin version | grep phonegap-plugin-barcodescanner: latest version

Logs taken while reproducing problem
THREAD WARNING: ['BarcodeScanner'] took '12.704834' ms. Plugin should use a background thread.

@thameurr I had the same issue. Have you checked your config.xml? You need to tell iOS to ask the user for camera permission. You can find the instructions here.

I have confirmed the NSCameraUsageDescription property is being included and I'm still getting the same warning.


make_expression() generates a type more complicated than expected

make_expression<boost::yap::expression, expr_kind::terminal>(1);
generates a type which an a terminal within a terminal:
const boost::yap::expression<     boost::yap::expr_kind::terminal,     boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal,                                               boost::hana::tuple<int>>>>
This is more complicated than the expected type:
const boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<int> >
The above is also the type correctly returned by
expression<expr_kind::terminal, boost::hana::tuple<int>>{1};

You got what you asked for.   But integer 1 is not a YAP expression, so YAP wraps it in a terminal first.  Imagine you had instead called:
auto x = make_expression<boost::yap::expression, boost::yap::expr_kind::unary_plus>(1);
The type of x is:
const boost::yap::expression< boost::yap::expr_kind::unary_plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple>>>
... which is the same pattern of return you got with your original call, just with the outer "terminal" replaced with "unary_plus".
I think you meant to use make_terminal instead.  Here are the types MPL reports for these two expressions:
boost::mpl::print<decltype(boost::yap::make_expression<
                           boost::yap::expression,
                           boost::yap::expr_kind::terminal>(1))>
    f;
(void)f;

boost::mpl::print<decltype(
    boost::yap::make_terminal<boost::yap::expression>(1))>
    e;
(void)e;

/home/tzlaine/boost_1_66_0/boost/mpl/print.hpp: In instantiation of ‘struct boost::mpl::print<boost::yap::expression<(boost::yap::expr_kind)1, boost::hana::tuple<boost::yap::expression<(boost::yap::expr_kind)1, boost::hana::tuple > > > >’:
/home/tzlaine/yap/example/calc3.cpp:103:9:   required from here
/home/tzlaine/boost_1_66_0/boost/mpl/print.hpp:64:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
sizeof(T) > -1
~~^~
/home/tzlaine/boost_1_66_0/boost/mpl/print.hpp: In instantiation of ‘struct boost::mpl::print<boost::yap::expression<(boost::yap::expr_kind)1, boost::hana::tuple > >’:
/home/tzlaine/yap/example/calc3.cpp:108:9:   required from here
/home/tzlaine/boost_1_66_0/boost/mpl/print.hpp:64:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]

Thanks for this explanation. Could be useful to add to the documentation.
By the say, the trick about using boost::mpl::print doesn't work for me (at least with clang-5). It is a useful tool to have. How do you trigger your type-printing error/warning messages?

I think you need -Wall.  Another option is to do MPL_ASSERT:
        BOOST_MPL_ASSERT((std::is_same<
                          decltype(yap::deref(std::move(ref))),
                          term<double> &>));

Which produces very nice, very verbose output for what the two non-same types are.


Nested objects flattening loose lot of information ("required" for example)

When I use nested objects (without reference), flattening phase loose lot of info from it. For example "required"
  schemas:
    ReturnInformation:
      type: object
      properties:
        manufacturer_signin_credentials:
          type: object
          properties:
            login:
              type: string
            password:
              type: string
          required:
            - login
            - password

geberate ReturnInformationManufacturerSigninCredentials which fields are optional, but should be required from spec.
I found its ahppening during flattening phase. In InlineModelResolver.modelFromProperty() method which copy only few properties.

@MercurieVV Thanks for reporting this. We merged a fix for it. Please let us know if it's still an issue.


Processing all descriptions as markdown

Rendering processes all descriptions as markdown whether they are or not.
Need to look at what the different formats are for things that aren't markdown. Just plain text? Anything that will be messed up by processing as markdown?

Haven't found any cases where running descriptions through markdown breaks them so closing this unless/until we do.


refactor relay threads

Relay class

Add thread instantiation to connect method
Add is_connected method which checks if the ws.run_forever thread is alive. I think this is more reliable because this thread will be torn down on disconnect.
Various renaming

Relay Manager

Remove thread instantiation from add_relay (handled in relay.connect now)
Add relay_connection_monitor thread, which periodically (connection_monitor_interval_secs) checks if the relays are disconnected and reconnects them if they are.

Note: I felt like reconnection logic belongs in the relay manager as it's job is to manage the relays

@callebtc can you give this a review if you get a chance?

Also @kdmukai, can you give this a review if you have a chance?

I think error handling is an issue (see my comment) but apart from that LGTM. I agree with @kdmukai that the way Threads a distributed across files could be confusing but I think this way is better than before where both threads were launched from the relay manager.
It makes more sense that a Relay has its own Queue thread instead of running side by side with it.
Could not test yet!

On suggestion: Instead of a fixed connection_monitor_interval_secs, it would be better to have an exponential backoff strategy. Otherwise this client will hopelessly try to reconnect to a down server every ~5 seconds (default), which is spammy in the logs at best. There are libraries out there to do this...or it should be simple to roll your own. Something like, which caps out at 5 mins indefinitely: 5, 10, 30, 60, 300, 300, 300... The backoff should be per-relay, though

@jeremywhelchel I like this idea but if the backoff strategy is per relay, how would the reconnection monitor thread on the relay manager be able to handle that? It seems like we would need a reconnection monitor thread for each relay.


Expose query to sync context

Change-type: minor
Signed-off-by: Josh Bowling<EMAIL_ADDRESS>

@balena-ci I self certify!


Revised edits and --http-debug addition

Closes https://github.com/influxdata/docs-v2/issues/3116
Deleting issues from the previous PR. Added CLI release notes and the --http-debug flag to references.

[ ] Signed the InfluxData CLA
(if necessary)
[ ] Tests pass (no build errors)
[ ] Rebased/mergeable

The official changelog updates are in https://github.com/influxdata/influx-cli/blob/2.1/CHANGELOG.md#v211-2021-09-22

Ah, I see, thank you @russorat!
Would it make sense to have the following docs match, or are they intentionally different?:
https://github.com/influxdata/influx-cli/blob/main/CHANGELOG.md
https://github.com/influxdata/influx-cli/blob/2.1/CHANGELOG.md

They are intentionally different. main is for the next minor release, 2.1 is for the next patch release in the 2.1.x series.

@kelseiv we are reviewing the way our changelogs are being generated. I'll update you after we come to a solution.


SSL Certificate decode error (pkcs12: expected exactly two safe bags in the PFX PDU)

Hey,
I seem to have run into a certificate issue as I get the error: pkcs12: expected exactly two safe bags in the PFX PDU. I'm generating the Production Apple Push Notification Service SSL cert as described in Apple's docs and I had simply exported the certificate/private-key pair from my keychain to get a .p12 file and I'm using this p12 file's path as filename in line cert, err := certificate.Load(filename, password) of the package's example. The error is returned by pkcs12 package in the Decode method of cert.go and specifically, by pkcs12.Decode. Would you happen to know why this error occurs or maybe what steps need to be taken to get the correct p12 file?

@idyll What needs to be done to remove the duplicates from a p12 file?

@nathany @idyll Hey guys, gentle reminder to post the fix please :)

When you export the p12 from Keychain, be sure to select both the certificate and the private key.
If I only select the private key, I get the following error:
pkcs12: expected exactly two items in the authenticated safe
Does this resolve the issue for you?

I tried recreating the cert from scratch and it still logs the same error. I've attached the new certificate p12:
app_id_1.p12.zip. Password is 'googler'. I wonder if my p12 has more than 2 safe bags instead of 1! Could you give it a try with my certificate please?

Well this is weird! I edited the pkcs12.go file and commented out the safe bags' validation just to test:
if len(bags) != 2 {
    err = errors.New("pkcs12: expected exactly two safe bags in the PFX PDU")
    return
}
and voila! Notification sent!
So, I think I'll use the edited version of pkcs12.go for now. Now the only thing left to test is whether the same TLS connection is being reused or not? I intend to batch send push messages, so this is important too.

Glad to hear you found a workaround, though I'm still not sure why it was necessary.

I forgot to mention that I had later tried to use only the public certificate (and not public cert and private key exported together as mentioned in Apple's docs) and got it to work without commenting out the safe-bags validation in crypto/pkcs12.go. The weird thing is that Apple has mentioned (Step 4: Select both the certificate and the key, and choose File > Export Items. under Installing a Client SSL Signing Identity on the Server) to export both public cert and private key while the tests suggest that the private key is not required for authenticating the requests! I thought I'd add this info for other developers who will likely stumble upon this if following Apple's docs.

Thanks for logging a bug with the crypto team.
It's odd that I had a somewhat opposite experience https://github.com/RobotsAndPencils/buford/issues/8#issuecomment-169464471

Same thing that tipycalFlow reported here.  Following the Apple Guide and exporting both the cert and private key resulted in the same two bags error but exporting just the cert got past that.
I noticed that a couple of the buford source files, e.g. push/client.go and certificate/cert.go, import "golang.org/x/net/http2" or "golang.org/x/crypto/pkcs12".  I'd expect that the Go 1.6 release includes those packages without the "x/" part in their paths.  Is that done to explicitly enable the features for older Go versions?

There is an issue to support more than two bags for pkcs12, but I haven't had a chance to work on it yet. https://github.com/golang/go/issues/14015
As to your other question, x/crypto/pkcs12 is not included in Go 1.6 and still must be imported from there. There aren't any plans to bring it into the standard library.
We are pulling in x/net/http2 because of a bug in Go 1.6 (see #26). Though the bug is fixed for Go 1.6.1, we will probably still need to pull in x/net/http2 because we are using an Apple signed certificate to establish the HTTP/2 connection (rather than the default certs). This requires that we reassure net/http that we want HTTP/2, and right now that requires x/net/http2.
Maybe API could be added to Go 1.7 to allow the equivalent of http2.ConfigureTransport(transport) or maybe there is a way to do this already that I'm not aware of. Either way I should suggest that. (/cc @bradfitz).
In my tests the current x/net/http2 client doesn't work with Go 1.5.

This still seems like it is a problem.  I've been using a system that output pks12 and it has the same problem.
In my case, I found that if in Decode() I:

Disable bags length check
Limit the bags to 0

I get what I'm looking for.  In the same way Apple does, I seem to be getting 4 bags.
Here's exactly what I did:
`/*
if len(bags) != 2 {
         err = errors.New("pkcs12: expected exactly two safe bags in the PFX PDU")
            return
    }
    */

for i := 0; i < 2; i++ {
bag := bags[i]
....
`
I don't know enough about how PKCS12 works to understand the problem between what is in the file and this library to know what is going on.  But I wanted to indicate this is a problem for other users.

Maybe should switch to https://github.com/SSLMate/go-pkcs12?

Same problem and same solution. Thanks to @element-of-surprise and @tipycalFlow
I wonder - what could it be? Incorrect interpretation of rfc?

if using https://github.com/SSLMate/go-pkcs12 you should be probably using the DecodeChain instead, the Decode alone is not expecting the whole chain but only the key and main cert.


Closes: #1

Updated validations.py python script.
Fixed the behavior of validate_user function in validations.py.Closes: #1 Updated validations.py python script.
Fixed the behavior of validate_user function in validations.py.
Fixes #<issue_number_goes_here>

It's a good idea to open an issue first for discussion.

[x] Tests pass
[x] Appropriate changes to README are included in PR

some try and demo over course's scenerio.

successfully completed


Add tests to cover enableWhen exists logic for integer, decimal and b…

…oolean
Ref: https://github.com/beda-software/sdc-ide/issues/60

Still existing problems. We should decide what we need to do with them. We can discuss it tomorrow on the morning sync call.

Looks like the test pipeline was broken a long time ago. This created a situation where tests from the web application are not actual now. I don't write about the sense of the tests, a mean a code base. Ex: it waiting for variables from hooks that are not provided now. Question: do we need to fix them? Currently all of them a skipped.
I think the reason why the test pipeline was broken is the incorrect tsconfig file configuration. When we run the TSC command it builds the project and then we run the tests it will run tests from the lib folder. If we run tests before the TSC all works well. Question: do we need to find and fix the problem?

Add console warning


Why is the name changed from Sombra to Zarya?

Because "Zarya" looks more powerful, like this project, based on C++ and runs so strong. Sombra seems more like a hacker does


Add a way to specify additional classes by configuration (instead of hardcoding it and recompiling)

This PR introduces args4j in the codebase to allow using the tool without having to recompile it each time.
The core goal here was to scan JAXB classes, and we decided to make this reusable instead of just hardcoding our need, given we may need soon to do this again for JAXB or other APIs.

[x] Add options to run the tool without code modification/hardcoding :heavy_check_mark:
[ ] :warning: fix remaining misbehavior when using --onlyAdditionalClasses && --onlyAdditionalClasses: it does filter out a lot of things, but still some are not filtered out. Not sure yet why.

The new way of using the tool will look like the following:
# Build it if needed
$ mvn clean package
# Run it (help mode to show existing options)
$ java -jar target/deprecated-usage-in-plugins-0.1-SNAPSHOT-jar-with-dependencies.jar --help
 --additionalClasses FILENAME  : File name for additional classes to scan
 --onlyAdditionalClasses       : Only include in the report the specified
                                 classes (default: false)
 --onlyIncludeJenkinsClasses   : Only include in the report Jenkins related
                                 classes (jenkins.*, hudson.*, etc. (default:
                                 false)
 -c (--includeJavaCoreClasses) : Include classes from java.* and javax.* in the
                                 report (not included by default) (default:
                                 false)
 -h (--help)                   : Shows help (default: true)

$ cat add.txt
javax/xml/bind/DatatypeConverterImpl
javax/xml/bind/DatatypeConverter
$ java -jar target/deprecated-usage-in-plugins-0.1-SNAPSHOT-jar-with-dependencies.jar --additionalClasses add.txt --onlyAdditionalClasses
Downloaded update-center.json
All files are up to date (1590 plugins)
Analyzing deprecated api in Jenkins
add.txt found, adding 2 classes
        adding javax/xml/bind/DatatypeConverterImpl
        adding javax/xml/bind/DatatypeConverter
Analyzing deprecated usage in plugins
.......... .......... .......... .......... ..........
.......... .......... .......... .......... ..........
.......... .......... .......... .......... ..........
.........Writing output/usage-by-plugin.json
Writing output/usage-by-plugin.html
Writing output/deprecated-and-unused.json
Writing output/deprecated-and-unused.html
Writing output/usage-by-api.json
Writing output/usage-by-api.html
duration : 7150 ms at 8 févr. 2019 12:17:45

Build failed; the context from the latest run is:
Expand to view
[Pipeline] End of Pipeline

GitHub has been notified of this commit’s build result

org.eclipse.jgit.errors.MissingObjectException: Missing unknown 72a9fa5c5d7b7da6b85c58d68f9237227362ad4c
	at org.eclipse.jgit.internal.storage.file.WindowCursor.open(WindowCursor.java:168)
	at org.eclipse.jgit.lib.ObjectReader.open(ObjectReader.java:236)
	at org.eclipse.jgit.revwalk.RevWalk.parseAny(RevWalk.java:890)
	at org.eclipse.jgit.revwalk.RevWalk.parseCommit(RevWalk.java:800)
	at org.eclipse.jgit.api.CheckoutCommand.call(CheckoutCommand.java:264)
Also:   hudson.remoting.Channel$CallSiteStackTrace: Remote call to ubuntu-jenkinsinfra0b8280
		at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1741)
		at hudson.remoting.UserRequest$ExceptionResponse.retrieve(UserRequest.java:357)
		at hudson.remoting.Channel.call(Channel.java:955)
		at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.execute(RemoteGitImpl.java:146)
		at sun.reflect.GeneratedMethodAccessor923.invoke(Unknown Source)
		at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
		at java.lang.reflect.Method.invoke(Method.java:498)
		at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.invoke(RemoteGitImpl.java:132)
		at com.sun.proxy.$Proxy231.execute(Unknown Source)
		at jenkins.plugins.git.MergeWithGitSCMExtension.checkout(MergeWithGitSCMExtension.java:146)
		at jenkins.plugins.git.MergeWithGitSCMExtension.decorateRevisionToBuild(MergeWithGitSCMExtension.java:112)
		at hudson.plugins.git.GitSCM.determineRevisionToBuild(GitSCM.java:1083)
		at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1176)
		at org.jenkinsci.plugins.workflow.steps.scm.SCMStep.checkout(SCMStep.java:120)
		at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:90)
		at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:77)
		at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
		at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
		at java.util.concurrent.FutureTask.run(FutureTask.java:266)
		at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
		at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
		at java.lang.Thread.run(Thread.java:748)
Caused: org.eclipse.jgit.api.errors.JGitInternalException: Missing unknown 72a9fa5c5d7b7da6b85c58d68f9237227362ad4c
	at org.eclipse.jgit.api.CheckoutCommand.call(CheckoutCommand.java:334)
	at org.jenkinsci.plugins.gitclient.JGitAPIImpl.doCheckoutWithResetAndRetry(JGitAPIImpl.java:348)
	at org.jenkinsci.plugins.gitclient.JGitAPIImpl.access$100(JGitAPIImpl.java:140)
	at org.jenkinsci.plugins.gitclient.JGitAPIImpl$1.execute(JGitAPIImpl.java:315)
	at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$GitCommandMasterToSlaveCallable.call(RemoteGitImpl.java:161)
	at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$GitCommandMasterToSlaveCallable.call(RemoteGitImpl.java:154)
	at hudson.remoting.UserRequest.perform(UserRequest.java:212)
	at hudson.remoting.UserRequest.perform(UserRequest.java:54)
	at hudson.remoting.Request$2.run(Request.java:369)
	at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
	at java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.lang.Thread.run(Thread.java:844)
Finished: FAILURE

Powered by the Comment Logger

I consider this mostly ready for review. There's a last small misbehavior, but nothing blocking.

Side note: I'm aware we might want to (should?) likely rename a few classes/packages to something along usage or code_usage instead of deprecatedusage given this tool is going to be able in standard to do more than just looking for code marked @Deprecated with this addition.

Looks good in general. My only doubt is what would happen if someone calls this new version in the old way, without providing options and so on? Everything would keep working as it previously did?

@varyvol I believe the only place this is really called is the CI really. So, you're quite right I need to check this still works with the previous way (mvn clean package exec:java), or adapt the Jenkinsfile. But I think this still behaves the same if no CLI switch at all is passed.
Apart from that automated use, I believe that 1) anyway there are only a handful of users of this tool out there and 2) adapting the usage to the new way with switches for interactive usage.

@batmat if you feel confident about it, I'm fine.


xuml import TBD option

Provide a second explanatory option for imported, non-developed classes.
See xx Subsystem OR
See xx Subsystem
(not yet modeled)
Use two lines on 2nd option so class isn't super wide

Done!


Fixed Issue #15, 'next' and 'previous' button of carousel are made responsive.

Previous Issue #15, 'Next' and 'Previous' made were overlapping the content of the carousel.
Previous Issue Screenshot :

Issue #15, Resolved
Screenshot :

Issue #15 resolved


Desktop UI is upside down and the control on the y axis is inverted

I can't replicate, but I know this happens in some worlds and there is a way to fix it. I assume its a shader problem as it was a problem with the original one as well.


Allow user selection of Disaptcher Flush UI Flush Agents

Dispatch Flush UI selects all the active dispatcher flush agents by default and does not give the option to select the required agents. Can you please update this so that it gives an option to select from the available dispatcher flush agents.

I can do that. Is help still needed?

@kalyanar yup - this we never implemented!


[ILVerify] Fix assembly friend access being sensitive to white-spaces

As described in #4938, ILVerify should not be sensitive to white-spaces when validating assembly friend access.
I could not find any clear definitions of allowed values for the string passed to the InternalsVisibleToAttribute. Are there any other rules I should consider (e.g. case insensitivity, etc.)?
This fixes #4938.
Tagging @jcouv @VSadov

case insensitivity

Yes, the names are compared case insensitive.

I could not find any clear definitions of allowed values

I would use CoreCLR sources as the reference. From a very cursory look, this seems to be using the same parser that all AssemblyNames get parsed with. Letting System.Reflection.AssemblyName do the job of parsing might save you some headaches. E.g. a comma is a valid character in assembly names and the format provides means to escape it...

Thanks, I don't know why I didn't come up with this myself.
Is there any better way to parse the PublicKey as well?
Considering that the assembly name could include a comma, determining where the PublicKey actually starts is also problematic.

AssemblyName has PublicKey property that will contain the parsed PublicKey.

I didn't realize I could pass the whole string to it. That actually makes a lot of things easier, thanks!
I have tested this with some strings that are used in existing assemblies e.g.
"System, PublicKey=00000000000000000400000000000000"
However, the AssemblyName returns null for GetPublicKey. Only the PublicKeyToken seems to be accesible after parsing such a string.

That's unfortunate bug. I would just compare public key tokens then - it is slightly imperfect, but it should be good enough for ILVerify.
The other option would be to pull part or full copy of the assembly name parser into ILVerify. It seems overkill.

The other option would be to pull part or full copy of the assembly name parser into ILVerify. It seems overkill.

I agree.

I pulled this change into my Roslyn branch, and found that we have a test explicitly checking case-sensitivity in IVT. That test verifies fine with PEVerify.
(Given this is a single test, it is not critical, but wanted to keep you aware)

The assembly names are pretty much always compared as OrdinalIgnoreCase. It would make sense to do the same here.

The assembly names are pretty much always compared as OrdinalIgnoreCase. It would make sense to do the same here (it is what runtime does as well).

Yes, my bad. I will correct that.


SimulationBodies overlap after DistanceJoint applied

Hi William,
I have the following szenario:

3 different areas modelled as SimulationBody with MassType.INFINITE and applied CategoryFilter
Circular SimulationBodys: All with the same mass but different sizes. These SimulationBodys are arranged in the specific areas (see picture). And also applied CategoryFilter so that they collide with each other (in the same area) and with the different borders (overall border -> red, border to other areas) => This works I tested it with randomly set velocities to specific SimulationBodys
I wait, till there is no longer an overlapping of defined SimulationBodys (in that case all circular SimulationBody)
I apply DistanceJoints to SimulationBodys => Not all are connected with each other but one SimulationBody can have several relations/connections (see gif)

Material:

Problem:
After the DistanceJoints are applied, the 2 SimulationBodys from area 3 also move to area 1 and overall a lot of SimulationBodys start to overlap with each other so that it is not possible to reach a system equilibrium (no movement).

My goal:
The connected SimulationBodys should move as close together as possible without overlapping because my idea is, that the system can rearrange itself automatically and that the SimulationBody will find their position based on all relations.

What I tested:

The category filter are working
Connected SimulationBodys will find their equilibrium even when there is a SimulationBody inbetween them (for example if another connection could come closer together in a faster way e.g. based on initial distances etc.) and the DistanceJoint could reach the defined rest length (setDistance())

I also set the circular SimulationBody to bullet, in case the instant applied DistanceJoints cause to much velocity

My questions:

Do you have any idea what could cause the problem with the tunneling?
Is it possible to change the "anti-penetration" forces to solve overlapping?
Do you have any other idea how I can achieve my goal with self-arranging SimulationBodys?

Every hint is appreciated :)
Thank you in advance. If you need more information please let me know.

I'm totally new to dyn4j but here's a few ideas based on work with Box2d,
liquidfun and such.

If the distance joints are springs, reduce the tension on the spring.
They snap together very aggressively.  I don't yet understand "frequency"
vs "damping" in dyn4j so here's a note from the Javadocs:

This joint doubles as a spring/damper distance joint where the length can
change but is constantly approaching the target distance. Enable the
spring/damper by setting the frequency and damping ratio to values greater
than zero. A good starting point is a frequency of 8.0 and damping ratio of
0.3 then adjust as necessary.
https://www.javadoc.io/doc/org.dyn4j/dyn4j/latest/org.dyn4j/org/dyn4j/dynamics/joint/DistanceJoint.html

Increase the distance between joints until the system functions.  Then
slowly reduce that distance until it fails again. (You don't mention max
radius vs joint distance so I have a concern that you might be forcing
items too close together.)

Start with only single-connections to see if the items with connections
to more than one object are causing the issues.  Especially with adding the
joints all of a sudden, I can see multiple joints on tightly packed objects
behaving unpredictably.

Increase the height of the outer box so there isn't downward pressure on
the system.  Currently, your tangle of objects is constrained on 3 sides.
The combination of "pressure" from 3 sides may be accelerating the
collapse.

Reduce the size of your largest circles until the system functions.  You
have circles that are very close to 50% height.  Notice the way your test
with an object between your two joined objects.  The circle entity pulls
inside the object briefly  If you have 3 large circles nearly stacked
when you yank things together, my guess is you might be pulling the
exterior edge of a circle past the center of some other circle.  I imagine
that might cause the joint to fail.

Try polygon shape instead of circle.  The polygon in your test with the
object in between, the polygon doesn't penetrate the in between object.

And, finally ... test with fewer objects!  It is tempting to go for the
gusto when designing but when things go wrong, simplify.
I hope some of this helps.
Dean
On Thu, Oct 29, 2020 at 10:20 AM DubWa91<EMAIL_ADDRESS>wrote:

Hi William,
I have the following szenario:

3 different areas modelled as SimulationBody with MassType.INFINITE
and applied CategoryFilter
Circular SimulationBodys: All with the same mass but different
sizes. These SimulationBodys are arranged in the specific areas (see
picture). And also applied CategoryFilter so that they collide with
each other (in the same area) and with the different borders (overall
border -> red, border to other areas) => This works I tested it with
randomly set velocities to specific SimulationBodys
I wait, till there is no longer an overlapping of defined
SimulationBodys (in that case all circular SimulationBody)
I apply DistanceJoints to SimulationBodys => Not all are connected
with each other but one SimulationBody can have several
relations/connections (see gif)

Material:
[image: grafik]
https://user-images.githubusercontent.com/34217758/97583075-d02a1480-19f6-11eb-837e-01603564983d.png
[image: ezgif com-video-to-gif]
https://user-images.githubusercontent.com/34217758/97584176-0916b900-19f8-11eb-833f-7690beafd82e.gif
Problem:
After the DistanceJoints are applied, the 2 SimulationBodys from area 3
also move to area 1 and overall a lot of SimulationBodys start to overlap
with each other so that it is not possible to reach a system equilibrium
(no movement).
My goal:
The connected SimulationBodys should move as close together as possible
without overlapping because my idea is, that the system can rearrange
itself automatically and that the SimulationBody will find their position
based on all relations.
What I tested:

The category filter are working
Connected SimulationBodys will find their equilibrium even when
there is a SimulationBody inbetween them (for example if another
connection could come closer together in a faster way e.g. based on initial
distances etc.) and the DistanceJoint could reach the defined rest
length (setDistance())

[image: Spring_reach_equilibirum]
https://user-images.githubusercontent.com/34217758/97586046-1a60c500-19fa-11eb-90ff-77ce304d2327.gif

I also set the circular SimulationBody to bullet, in case the
instant applied DistanceJoints cause to much velocity

My questions:

Do you have any idea what could cause the problem with the tunneling?
Is it possible to change the "anti-penetration" forces to solve
overlapping?
Do you have any other idea how I can achieve my goal with
self-arranging SimulationBodys?

Every hint is appreciated :)
Thank you in advance. If you need more information please let me know.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/dyn4j/dyn4j/issues/157, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHBPBK5ZAARJA5473DEHA4TSNF22TANCNFSM4TDZQKGA
.

Self-arranging is a study in itself is my understanding.  Doing this with dyn4j might work, but it will be all about getting the settings right.  Can you try something like the following:
DistanceJoint<Body> dj = ...
// all joints by default do not allow collision, but in this case we need it
dj.setCollisionAllowed(true);
// set the target distance to zero
dj.setDistance(0);
// set the frequency low (this reduces the forces used to bring them together)
dj.setFrequency(1);
// set the damping ratio to high (this reduces the bouncing)
dj.setDampingRatio(0.7);

This worked in my tests with and without gravity enabled.

William,
I'm very excited to have found your physics engine.  I started doing
simulations in Processing using JBox2d and LiquidFun but much of the code
hasn't been updated in years and some crashes were driving me nuts.  dyn4j
seemed to me to be the only lightweight, currently maintained
implementation I could find.  And your code documentation is great. I'm
thrilled!
Your explanation of distance joints helped me a lot, especially the
distance zero and frequency/damping explanations.
Is there a reason spring "tension" is called frequency?  Is that like
frequency of a directional impulse used to emulate tension, or
something like that?
Dean
On Thu, Oct 29, 2020 at 8:54 PM William Bittle<EMAIL_ADDRESS>wrote:

Self-arranging is a study
https://www.diva-portal.org/smash/get/diva2:811085/FULLTEXT01.pdf in
itself is my understanding. Doing this with dyn4j might work, but it will
be all about getting the settings right. Can you try something like the
following:
DistanceJoint dj = ...// all joints by default do not allow collision, but in this case we need it
dj.setCollisionAllowed(true);// set the target distance to zero
dj.setDistance(0);// set the frequency low (this reduces the forces used to bring them together)
dj.setFrequency(1);// set the damping ratio to high (this reduces the bouncing)
dj.setDampingRatio(0.7);
This worked in my tests with and without gravity enabled.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/dyn4j/dyn4j/issues/157#issuecomment-719105908, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AHBPBK3HMT3S2UJQJYNCGM3SNIFDPANCNFSM4TDZQKGA
.

First of all thank you both very much for your answers :-)

If the distance joints are springs, reduce the tension on the spring. They snap together very aggressively.  I don't yet understand "frequency" vs "damping" in dyn4j so here's a note from the Javadocs:

They snap together so aggressivly because of the maybe huge difference of the current distance and the set target distance.
I also tested different settings for frequency and damping ratio. I think the problem here is really the distance because in my example I have several meters(!)

Increase the distance between joints until the system functions.  Then
slowly reduce that distance until it fails again. (You don't mention max
radius vs joint distance so I have a concern that you might be forcing
items too close together.)

Currently I have set the target distance between 2 joined SimulationBody to the sum of their radii (radius) -> intention is, that they then move as close together as possible.
I already have some code (listener) which can achieve what you describe. I will apply it to my use-case. Thank you for reminding me of that :)

Start with only single-connections to see if the items with connections
to more than one object are causing the issues.  Especially with adding the
joints all of a sudden, I can see multiple joints on tightly packed objects
behaving unpredictably.

I will also test this one.

Increase the height of the outer box so there isn't downward pressure on
the system.  Currently, your tangle of objects is constrained on 3 sides.
The combination of "pressure" from 3 sides may be accelerating the
collapse.

I have to maintain these boxes (these are constraints). But maybe I can try to relax this, and then after they are arranged I can add again the top-box which forces the SimulationBody to arrange themself in the width of the area.

Reduce the size of your largest circles until the system functions.  You
have circles that are very close to 50% height.  Notice the way your test
with an object between your two joined objects.  The circle entity pulls
inside the object briefly  If you have 3 large circles nearly stacked
when you yank things together, my guess is you might be pulling the
exterior edge of a circle past the center of some other circle.  I imagine
that might cause the joint to fail.

That is a very good point. Thank you. Didn't notice it.

Try polygon shape instead of circle.  The polygon in your test with the
object in between, the polygon doesn't penetrate the in between object.

I will also test this approach.

And, finally ... test with fewer objects!  It is tempting to go for the
gusto when designing but when things go wrong, simplify.

:-) You are totally right. I often make this mistake :-(

Self-arranging is a study in itself is my understanding.

Thank you for that paper. I will have a look.

Can you try something like the following:

DistanceJoint<Body> dj = ...
// all joints by default do not allow collision, but in this case we need it
dj.setCollisionAllowed(true);
// set the target distance to zero
dj.setDistance(0);
// set the frequency low (this reduces the forces used to bring them together)
dj.setFrequency(1);
// set the damping ratio to high (this reduces the bouncing)
dj.setDampingRatio(0.7);

This worked in my tests with and without gravity enabled.

I will try this and provide feedback. Thank you.
Could you reach a system equilibrium? And did you had also the same workflow? That means, that you also apply the DistanceJoints very spontaneous or did you set all in the initializeWorld() method?

Update:
I could make it run (at least now the overlapping problem is solved) :-)
The problem was caused because sometimes I set the frequency of some DistanceJoints to 0.0.
I define a ratio of 2 random integer and when the value is 0.0 then this ratio will be multiplied with a global set frequency.
With that approach I want to define different "strengths" of attraction.
But I also tried the approach with the polygonal circle, which is also suitable for my goal.
Thank both you very much for your hints and suggestions :-) Now it's up to me to define a suitable termination criteria

@DubWa91 glad to hear.
@dlwaters In short, the frequency is the oscillation period (in hertz) - how many times per second should the spring be oscillating around the rest position.  Naturally, the damping coefficient will slow it down.
The equation f = 1 / (2π) * sqrt(k / m), can be rewritten as  k = m(2πf)^2.  The implication is that if the mass of the body changes and the frequency is constant, the spring constant must change.  On the flip side, if the mass of the body changes and the spring constant is constant, the frequency must change.  The former seemed more stable from a user perspective - in other words, if you had a spring between two bodies and you modified one of those bodies to have more mass, the oscillation frequency would stay the same and the spring constant would automatically be adjusted.

That makes makes good sense and I think it was a good choice.
Your code is so cleanly written and documented that I was pretty sure
frequency was a deliberate naming choice. Knowing (intuitively) what is
behind the name helps me understand and remember it's function.
Many coders are not so kind in their naming conventions!
On Fri, Oct 30, 2020, 6:24 PM William Bittle<EMAIL_ADDRESS>wrote:

@DubWa91 https://github.com/DubWa91 glad to hear.
@dlwaters https://github.com/dlwaters In short, the frequency is the
oscillation period (in hertz) - how many times per second should the spring
be oscillating around the rest position. Naturally, the damping coefficient
will slow it down.
The equation
https://en.wikipedia.org/wiki/Hookes_law#Harmonic_oscillator f = 1 /
(2π) * sqrt(k / m), can be rewritten as k = m(2πf)^2. The implication is
that if the mass of the body changes and the frequency is constant, the
spring constant must change. On the flip side, if the mass of the body
changes and the spring constant is constant, the frequency must change. The
former seemed more stable from a user perspective - in other words, if you
had a spring between two bodies and you modified one of those bodies to
have more mass, the oscillation frequency would stay the same and the
spring constant would automatically be adjusted.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/dyn4j/dyn4j/issues/157#issuecomment-719826706, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AHBPBK4A4O2CLSMCHS44R5DSNM4KXANCNFSM4TDZQKGA
.


Resolve template matching degree ties when one of the templates contains wildcards

For example, consider the following template, of degree 3:
"foo": {
    "bar": "baz",
    "baz": "qux"
}

And the following template, also of degree 3, but which contains wildcards:
"foo": {
    "bar": "[[string]]",
    "qux": "[[string]]"
}

They both match, but one of them contains wildcards. Which one matches "more"?

I think we should give preference to non-wildcard matches. Maybe wildcard properties can add 0.5 to the degree instead of 1?

Closing as obsolote.


Editor freezes after editing localization .csv and launching project

Godot version:
v3.2.stable.official
OS/device including version:
Linux Mint 19.3 Cinnamon 4.4.8
Issue description:
Upon launching a project after changing a .csv file used to translate strings within the project, the editor freezes. It doesn't seem to ever start responding again, only closing and restarting the editor fixes this.
Since this might be relevant; I am using LibreOffice Calc to edit the .csv file.
Steps to reproduce:
In a project that uses localization;

Open the .csv file
Edit any translation and save the file
Launch the project

The editor will no longer respond.
Minimal reproduction project:
IssueTest.zip

Can't reproduce in 3.2.2.stable on linux mint 18.3. Tried editing with godot open and closed, changing text, adding and removing locales etc. Godot editor and game run fine.
@MennoMax can you still reproduce this?
(ps. LibreOffice Calc csv output is identical to text-edited .csv afaics)

Can you check the file encoding of the CSV file? You can use the file command to do this: file /path/to/file.csv.
The CSV file should be encoded in UTF-8 without BOM, as stated in the documentation.

I am no longer able to reproduce this issue, seems to be fixed.

This issue was definitely present in 3.2, but something must've fixed it by now.


Build dll on Windows

This pull request builds a dll of the bmi_hydrotrend library rather than just a static library when building on Windows.

Never mind. I'm going to try this again with a more up-to-date version of hydrotrend.


Validation not called on props change

I found this comment, which points out that I can access any part of the state during validation by providing a mapStateToProps.
So now I have
function serverErrorToProps(state) {
  return {
    serverError: state.error
  }
}
function Validation(fields) {
  return (values, props) => {
    console.log("Props passed to validate:", props);
    // ...
  }
}

class RequestForm extends Component {
  // ...
}

reduxForm({
  form: 'request-form',
  fields: Object.keys(Fields),
  validate: Validation(Fields)
}, serverErrorToProps)(RequestForm);

The idea: if the server sends back an error concerning a specific field, I want to show them on the field itself, not in the global error message we usually display.
But validate apparently doesn't get called on when the props change, only when the form changes.
(I recognize that there might be better ways to display error messages from the server - and I'll look into them - but I still found this worth reporting.)

I think this is desired behavior. Validation only concerns itself with changes to the form so other prop changes wouldn't influence its behavior. redux-form does provide a mechanism for validating for specific fields from the server with asyncValidate See the example here as something to go off of!

Sync validation gets called on every single render.

Am I misunderstanding something, or is that not actually working?
I did some print debugging (code pretty much the same as above) and my log says:
[...]
Validation.js?85f1:5 Server error passed to Validate null
UserForm.js?0cd4:16 Server error passed to render() null
api.js?cd39:40 POST http://localhost:3001/users 400 (Bad Request)callApi @ [...]
UserForm.js?0cd4:16 Server error passed to render() Object {Mail: "Already exists"}
[...]

So clearly it gets rendered again, but it doesn't seem to validate again.

Was this ever resolved? I have the same issue in v6: Synchronous validation is not being performed on props change despite render being called.

Hi @danielevns, that was from the v5 age.
It would be great if you could open a new issue with an example.

I'm having this problem too
Using redux-form v6.8.0

@rafaelcorreiapoli As discussed in the linked issue #2809, this is per design. The workaround is to use shouldValidate.


Clear method

Issue #44
Clear method added. Same concept as the replace method where the first parameter is either the path list, or no parameter is provided (the whole css is deleted in that case). The second argument is the ignore_error argument which is by default true.

Coverage decreased (-0.008%) to 97.404% when pulling caa6736fdb7b3a09f3d1348abd0cbba931e96f34 on nadaj:CSSExtension into 668584962d48ebea4847b3e8c529d3a7f90af0f3 on Hrabal:master.


Resovers throw exception while reference are null

I am working on resolvers now, I am getting into an issue that when we try to fetch any related resource for a resource reference [with 1:1 cardinality ratio] which does not have any related resource (null) for any particular object, it is throwing an "object set to null reference" exception. I cannot return an empty object as well cos related resource's primary key required a value to be assigned. otherwise, it is throwing an error as "cannot assign a null value for a non-nullable type", any suggestions?

I am working on resolvers now, I am getting into an issue that when we try to fetch any related resource for a resource reference [with 1:1 cardinality ratio] which does not have any related resource (null) for any particular object, it is throwing an "object set to null reference" exception. I cannot return an empty object as well cos related resource's primary key required a value to be assigned. otherwise, it is throwing an error as "cannot assign a null value for a non-nullable type", any suggestions?

I changed NonNullableType Primary key to Normal Field, now I could return the empty Object if no referenced resource found


Give error for [\1\Z]

if meta chars are not allowed in [], it is not handled, and no error shows.
e.g. try regex [\1] or [\Z] - this gives char '1' in [], char 'Z' in [].
suggestion- show error here.
            if regparse^ = EscChar then
            begin
              Inc(regparse);
              if regparse >= fRegexEnd then
              begin
                Error(reeParseAtomTrailingBackSlash);
                Exit;
              end;
              if _IsMetaChar(regparse^) then
              begin
                AddrOfString := nil;
                CanBeRange := False;
                EmitC(OpKind_MetaClass);
                EmitC(regparse^);
              end
              else
              begin
                EmitSimpleRangeC(UnQuoteChar(regparse));
               //!! error
              end;

@andgineer Ok to do?

This is unclear for me.
Now we CAN have meta-chars inside [] like \s, \W and so on.
But also we can use "escaped" simple chars for example [a-z] - so this is not range a-z but just three chars 'a', '-', 'z'. So we do nee escaping inside [].
as well as \x20 for example.
Why do you want to raise an error?


[MWPW-132069] Steps How To Carousel - Color Page

Please always provide the JIRA issue(s) your PR is for, as well as test URLs where your change can be observed (before and after):
Fix MWPW-132069
Description:
How To Steps build from scratch (renamed as Steps How To Carousel)
Currently the only version supported is Color page with SVG. We will be expanding the block for retrospective features existing on the old How To Steps Carousel
Test URLs:

Before: https://main--express--adobecom.hlx.page/express/colors/red?lighthouse=on
After: https://mwpw-132069--express--adobecom.hlx.page/express/colors/red?lighthouse=on

@vhargrave We will likely not prioritize this until after Project X GA. Do you think we should close this for now?

@vhargrave We will likely not prioritize this until after Project X GA. Do you think we should close this for now?

@qiyundai Sure, just add a link to this closed PR as a comment on the task so we know we need to reopen it again

Closing for deprioritization


retry smoke test & dial update

Currently SmokeTest fails as soon as the scheduler dies.  Any call to ScootAPI that fails results in the test failing.  However, we want to test scheduler restarts, which means some calls may fail.
This update allows failures to the scheduler to be retried.  Currently by reusing the ScootApiClient associated with the Dialer, a broken pipe will be broken forever so Dial() needs to create a new scootClient connection on every call

Current coverage is 60.85% (diff: 100%)

No coverage report found for master at 27df90a.

Powered by Codecov. Last update 27df90a...5c4ab66


HDDS-2360. Update Ratis snapshot to d6d58d0

What changes were proposed in this pull request?
Update Ratis dependency version to snapshot d6d58d0, to fix memory issues (RATIS-726, RATIS-728).
Thanks @szetszwo and @bshashikant for the fixes, and @mukul1987 for creating the snapshot release.
https://issues.apache.org/jira/browse/HDDS-2360
How was this patch tested?
Tested with Freon using 1MB and 16MB keys.

+1 pending CI.

Test failure of ratis is not related to this patch. Thank you @adoroszlai for the contribution and @xiaoyuyao for the review.

Thanks @xiaoyuyao for the review and @bharatviswa504 for merging it.