Basic interface for tunneling Reticulum over existing Meshtastic mesh network.

Very basic Meshtastic interface that utilizes a configured Meshtastic as-is to tunnel Reticulum over a Meshtatic mesh network. Utilizes the Python Meshtastic API and gracefully handles failure when that API is not installed.

Maybe a little contentious I know, but there's no denying the utility of this in areas without an established Reticulum mesh network.

Thanks for the PR. I have a few questions:

Why is the hardware MTU set to 256? This is much lower than the required 500 bytes and will not work.
In what situations and link conditions has this been tested?
How many MT devices were on the network?
Which kind of Reticulum API functions were verified to run successfully over this?
Were any existing programs and systems tested over this? LXMF, Sideband, nomadnet?

Why is the hardware MTU set to 256? This is much lower than the required 500 bytes and will not work.
MT does not have any low-level support for fragmenting packets afaik. I remember seeing large packets in Reticulum during prior Link testing but was under the impression that the stack would honor and support lower MTUs. Curious which Reticulum packets will absolutely not fit in smaller packets?

The rest of your questions are outside the scope of this work, which is just an Interface that sends and receives over an attached network. I haven't personally been able to test it in the wild yet. I only used rnpath and rnprobe to confirm successful send/recv.
It is no doubt basic and experimental and I only submitted as a PR to make it easier for others to access who would like to play with it. Perhaps it could be included with "experimental" in its interface name to make it clear that it's limited. Or maybe a better option is to add support for user-supplied interfaces so that anyone can easily drop in their own interface for their favorite transport.

For reference, overhead can be determined using the Wire Format in the
manual. For convenience:
https://markqvist.github.io/Reticulum/manual/understanding.html
The major issue is the expectation: Reticulum expects an MTU of 500, so it
will split communications into packets that fit. Sequencing these packets
for transmission may result in up to three packets due to metadata to
ensure they're reassembled in the proper sequence, and if you're having
Reticulum honor the MTU then you reproduce the headers every time.
While I can't think of anything that can't work offhand (excepting
announce data being extremely limited, from ~300 bytes to ~80) it's a
change with a considerable amount of unexpected effects. If you can support
500, it's a much better option. If there's a technical limit in Meshtastic,
then edge cases will need to be determined and tested for.
On Thu, Mar 7, 2024, 10:25 AM Chad Attermann @.***>
wrote:

Why is the hardware MTU set to 256? This is much lower than the required
500 bytes and will not work.
MT does not have any low-level support for fragmenting packets afaik. I
remember seeing large packets in Reticulum during prior Link testing but
was under the impression that the stack would honor and support lower MTUs.
Curious which Reticulum packets will absolutely not fit in smaller packets?
The rest of your questions are outside the scope of this work, which is
just an Interface that sends and receives over an attached network. I
haven't personally been able to test it in the wild yet. I only used rnpath
and rnprobe to confirm successful send/recv.
It is no doubt basic and experimental and I only submitted as a PR to make
it easier for others to access who would like to play with it. Perhaps it
could be included with "experimental" in its interface name to make it
clear that it's limited. Or maybe a better option is to add support for
user-supplied interfaces so that anyone can easily drop in their own
interface for their favorite transport.
—
Reply to this email directly, view it on GitHub
https://github.com/markqvist/Reticulum/pull/462#issuecomment-1983917654,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALIZNIYBCUEYTBHOEBA7RMLYXCIHXAVCNFSM6AAAAABEJ32NOSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOBTHEYTONRVGQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Well, I mean, apart from 500 being a stated requirement for the MTU and
what was planned for. Sometimes I get into the weeds here.
Point is, it's what the stack and applications all expect.
On Thu, Mar 7, 2024, 10:47 AM Michael Faragher @.***>
wrote:

For reference, overhead can be determined using the Wire Format in the
manual. For convenience:
https://markqvist.github.io/Reticulum/manual/understanding.html
The major issue is the expectation: Reticulum expects an MTU of 500, so it
will split communications into packets that fit. Sequencing these packets
for transmission may result in up to three packets due to metadata to
ensure they're reassembled in the proper sequence, and if you're having
Reticulum honor the MTU then you reproduce the headers every time.
While I can't think of anything that can't work offhand (excepting
announce data being extremely limited, from ~300 bytes to ~80) it's a
change with a considerable amount of unexpected effects. If you can support
500, it's a much better option. If there's a technical limit in Meshtastic,
then edge cases will need to be determined and tested for.
On Thu, Mar 7, 2024, 10:25 AM Chad Attermann @.***>
wrote:

Why is the hardware MTU set to 256? This is much lower than the required
500 bytes and will not work.
MT does not have any low-level support for fragmenting packets afaik. I
remember seeing large packets in Reticulum during prior Link testing but
was under the impression that the stack would honor and support lower MTUs.
Curious which Reticulum packets will absolutely not fit in smaller packets?
The rest of your questions are outside the scope of this work, which is
just an Interface that sends and receives over an attached network. I
haven't personally been able to test it in the wild yet. I only used rnpath
and rnprobe to confirm successful send/recv.
It is no doubt basic and experimental and I only submitted as a PR to
make it easier for others to access who would like to play with it. Perhaps
it could be included with "experimental" in its interface name to make it
clear that it's limited. Or maybe a better option is to add support for
user-supplied interfaces so that anyone can easily drop in their own
interface for their favorite transport.
—
Reply to this email directly, view it on GitHub
https://github.com/markqvist/Reticulum/pull/462#issuecomment-1983917654,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALIZNIYBCUEYTBHOEBA7RMLYXCIHXAVCNFSM6AAAAABEJ32NOSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOBTHEYTONRVGQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

So, sorry for the multiple entries here, but the good news is I read the e-mail and initially responded just before a shower, so you got the most productive part of my day.
If this is a Meshtastic limit, it's not insurmountable. From a broadcast side you need to take the packet, check the length, and if it exceeds your MDU (MTU-Overhead, forgive me if that's obvious) then split it into multiple packets. Each will need a packet ID (pull it from the Reticulum packet, a digest, or have a random hash of reasonable length) and a sequence number. Send these along and you'll be good to go.
On the receiving end you get the packets and reassemble them. However, you need to save each packet segment long-term, as you don't know what order they'll arrive in, or what the delay will be. From there, you'll need to set a timeout and have a re-request feature, which I guess means your transmitter will need to store all the segments until cleared. That can either be a timeout, a confirmation, or ideally both, whichever arrives first.
So sequencing, re-requests, confirmation, and local storage. I think that's all doable inside the Interface, making it invisible to both Reticulum and Meshtastic. Data is data, after all.

Thanks for the very constructive feedback @faragher. I was thinking along the same lines if it turned out that the minimum 500 byte MTU was immutable. Fragmentation/reassembly is definitely doable from within the Interface in that case.

Can someone explain the usefulness of this?
Steve N0FPF
Pardon the brevity, sent from a mobile device.
On Thu, Mar 7, 2024 at 10:16 AM Chad Attermann @.***>
wrote:

From Reticulum.py
—
Reply to this email directly, view it on GitHub
https://github.com/markqvist/Reticulum/pull/462#issuecomment-1984154908,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APRMG4VVFYO2PJSS33MNASTYXCVHNAVCNFSM6AAAAABEJ32NOSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOBUGE2TIOJQHA
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Can someone explain the usefulness of this? Steve N0FPF Pardon the brevity, sent from a mobile device.
…
On Thu, Mar 7, 2024 at 10:16 AM Chad Attermann @.> wrote: From Reticulum.py — Reply to this email directly, view it on GitHub <#462 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/APRMG4VVFYO2PJSS33MNASTYXCVHNAVCNFSM6AAAAABEJ32NOSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOBUGE2TIOJQHA . You are receiving this because you are subscribed to this thread.Message ID: @.>

The utility of this is the ability to utilize existing Meshtastic mesh networks (which are becoming increasingly ubiquitous) as a transport medium for Reticulum.

So does Reticulum know about all the other Meshrastic nodes if there is a
tunnel or just other Reticulum nodes?
Just wondering about what happens if a Meshtastic node goes away, but there
is still a path with Meshtastic does Reticulum know about the alternative
path?
Just trying to wrap my head around it.
Steve
Pardon the brevity, sent from a mobile device. So there.
On Thu, Mar 7, 2024 at 10:27 AM Chad Attermann @.***>
wrote:

Can someone explain the usefulness of this? Steve N0FPF Pardon the
brevity, sent from a mobile device.
… <#m_-2191156178037391849_>
On Thu, Mar 7, 2024 at 10:16 AM Chad Attermann @.> wrote: From
Reticulum.py — Reply to this email directly, view it on GitHub <#462
(comment)
https://github.com/markqvist/Reticulum/pull/462#issuecomment-1984154908>,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APRMG4VVFYO2PJSS33MNASTYXCVHNAVCNFSM6AAAAABEJ32NOSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOBUGE2TIOJQHA
https://github.com/notifications/unsubscribe-auth/APRMG4VVFYO2PJSS33MNASTYXCVHNAVCNFSM6AAAAABEJ32NOSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOBUGE2TIOJQHA
. You are receiving this because you are subscribed to this thread.Message
ID: @.>
The utility of this is the ability to utilize existing Meshtastic mesh
networks (which are becoming increasingly ubiquitous) as a transport medium
for Reticulum.
—
Reply to this email directly, view it on GitHub
https://github.com/markqvist/Reticulum/pull/462#issuecomment-1984173565,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APRMG4UC24QNJAJMOZV4XHDYXCWQHAVCNFSM6AAAAABEJ32NOSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOBUGE3TGNJWGU
.
You are receiving this because you commented.Message ID:
@.***>

I know I've asked similar questions and made similar statements, but are you sure this is what you want to do? I assume so, at least for proof of concept.

More academic at this point. If theoretically some members of a community with access to an extensive Meshtastic mesh network wanted to operate their own Reticulum mesh network, they could all coordinate a lower MTU that would work the need to fragment packets.

So does Reticulum know about all the other Meshrastic nodes if there is a tunnel or just other Reticulum nodes?

No, Meshtastic would just be an underlying transport Interface, just like any other in Reticulum. Reticulum nodes would become aware of other Reticulum nodes on the Meshtastic network though.

Just wondering about what happens if a Meshtastic node goes away, but there is still a path with Meshtastic does Reticulum know about the alternative path?

Again, no different from topology changes in any other underlying network. In the case if Meshtastic though, since it's utilizes limited flooding a missing Meshtastic node would not necesarily break a Reticulum route since any other MT node could/would relay the packets.

I wonder if the Meshtastic network being a “slow” network and is flooding
with node info constantly,  if things would just get slowed down too much.
Plus wouldn’t you also be doing a Meshtastic encryption on top of a
Reticulum encryption? Granted… that’s what tunnels do.

Steve
Pardon the brevity, sent from a mobile device.
On Thu, Mar 7, 2024 at 10:43 AM Chad Attermann @.***>
wrote:

I know I've asked similar questions and made similar statements, but are
you sure this is what you want to do? I assume so, at least for proof of
concept.
More academic at this point. If theoretically some members of a community
with access to an extensive Meshtastic mesh network wanted to operate their
own Reticulum mesh network, they could all coordinate a lower MTU that
would work the need to fragment packets.
So does Reticulum know about all the other Meshrastic nodes if there is a
tunnel or just other Reticulum nodes?
No, Meshtastic would just be an underlying transport Interface, just like
any other in Reticulum. Reticulum nodes would become aware of other
Reticulum nodes on the Meshtastic network though.
Just wondering about what happens if a Meshtastic node goes away, but
there is still a path with Meshtastic does Reticulum know about the
alternative path?
Again, no different from topology changes in any other underlying network.
In the case if Meshtastic though, since it's utilizes limited flooding a
missing Meshtastic node would not necesarily break a Reticulum route since
any other MT node could/would relay the packets.
—
Reply to this email directly, view it on GitHub
https://github.com/markqvist/Reticulum/pull/462#issuecomment-1984200317,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APRMG4RRWJA3N4MRVZ2JWCLYXCYOFAVCNFSM6AAAAABEJ32NOSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOBUGIYDAMZRG4
.
You are receiving this because you commented.Message ID:
@.***>

I can respect academic interest. Be sure to keep track of the results,
they're popular, apparently. :)
On Thu, Mar 7, 2024, 1:00 PM stevewa2066 @.***> wrote:

I wonder if the Meshtastic network being a “slow” network and is flooding
with node info constantly, if things would just get slowed down too much.
Plus wouldn’t you also be doing a Meshtastic encryption on top of a
Reticulum encryption? Granted… that’s what tunnels do.

Steve
Pardon the brevity, sent from a mobile device.
On Thu, Mar 7, 2024 at 10:43 AM Chad Attermann @.***>
wrote:

I know I've asked similar questions and made similar statements, but are
you sure this is what you want to do? I assume so, at least for proof of
concept.
More academic at this point. If theoretically some members of a
community
with access to an extensive Meshtastic mesh network wanted to operate
their
own Reticulum mesh network, they could all coordinate a lower MTU that
would work the need to fragment packets.
So does Reticulum know about all the other Meshrastic nodes if there is
a
tunnel or just other Reticulum nodes?
No, Meshtastic would just be an underlying transport Interface, just
like
any other in Reticulum. Reticulum nodes would become aware of other
Reticulum nodes on the Meshtastic network though.
Just wondering about what happens if a Meshtastic node goes away, but
there is still a path with Meshtastic does Reticulum know about the
alternative path?
Again, no different from topology changes in any other underlying
network.
In the case if Meshtastic though, since it's utilizes limited flooding a
missing Meshtastic node would not necesarily break a Reticulum route
since
any other MT node could/would relay the packets.
—
Reply to this email directly, view it on GitHub
https://github.com/markqvist/Reticulum/pull/462#issuecomment-1984200317,

or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/APRMG4RRWJA3N4MRVZ2JWCLYXCYOFAVCNFSM6AAAAABEJ32NOSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOBUGIYDAMZRG4>

.
You are receiving this because you commented.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub
https://github.com/markqvist/Reticulum/pull/462#issuecomment-1984228135,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALIZNIZYX6HOHGHK4THMXETYXC2NTAVCNFSM6AAAAABEJ32NOSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOBUGIZDQMJTGU
.
You are receiving this because you were mentioned.Message ID:
@.***>

I wonder if the Meshtastic network being a “slow” network and is flooding with node info constantly,  if things would just get slowed down too much.

there is potential for this in LoRa network, right? Granted it's more of an issue without native Reticulum routing on the mesh.

Plus wouldn’t you also be doing a Meshtastic encryption on top of a Reticulum encryption? Granted… that’s what tunnels do.

Yup, but I think we can live with that ;-) The important thing is that none of the security of Reticulum is sacrificed.

Just pushed a new commit that adds fragmentation and re-assembly of packets larger than the MT MDU. Note that it doesn't perform any re-ordering, but then neither does RNode.
Was also able to successfully fetch a page over NomadNet, so Links are now confirmed working. There's still something amiss with occasional Link establishment timeouts in NomadNet but that may just be due to slowness of the network. MT seems to have pretty conservative csma.

Replies

I was under the impression that the stack would honor and support lower MTUs

It's clearly stated on the repo frontpage, in the manual and in the source code, that Reticulum requires mediums to support an MTU of at least 500 bytes. This can happen either directly, or virtually via segmentation by the hardware or interface driver.
Anything lower than that would be quite inefficient (or need implementation of variable MTU).

The rest of your questions are outside the scope of this work, which is just an Interface that sends and receives over an attached network.

Testing that an interface actually works according to what users would reasonably expect is most definitely within the scope of having a pull request of this kind accepted and merged.
I'm certain the reasons for this are fairly obvious, but just to be verbose, including something that does not actually work, or only works in a very limited amount of cases is very confusing for users, and will easily lead them to attributing this to a problem with Reticulum itself, since it is opaque for them where the problem actually lies.

I wonder if the Meshtastic network being a “slow” network and is flooding with node info constantly, if things would just get slowed down too much.

This is very certainly going to be the case. Meshtastic has no actual routing, and is a best-effort delivery system, based on nodes semi-randomly repeating every packet multiple times, until it potentially reaches its destination.
This is incredibly inefficient, since one link-layer packet sent over the system is going to result in many physical layer packets in almost all cases, and the amount of actual airtime consumed will rise significantly with the number of nodes on the system.
Sending just a single 400 byte packet could easily consume many kilobytes of actual on-air bandwidth.

Note that it doesn't perform any re-ordering, but then neither does RNode.

RNode does not perform reordering because packets can never arrive out of order in the first place.
In the case of this interface they could, and probably often will, since MT uses the aforementioned randomised flood-fill methodology. Re-ordering is necessary for this to work reliably.
Other Limiting Factors
Furthermore, last time I checked Meshtastic nodes did not perform any sort of remotely sufficient carrier detection, listen-before-talk or collision avoidance. This is going to result in large amounts of packet collisions, and make an already inefficient and fragile approach even worse.
Since the actual payload MTU for the MT API seems to be only 233 bytes, you would need 3 packets to successfully transport just one normal Reticulum packet, which will often be packed as close to the 500 byte limit as possible, for airtime and bandwidth efficiency reasons.
My pretty educated guess is, that this is going to cause so many unneccessary repeats, collisions and retransmissions over the relatively unintelligent Meshtastic transport, as to be more or less completely useless, for anything else than the simplest of scenarios.
Conclusions
Could you send an announce over this? Probably. But also probably not much more than that, and Meshtastic would choke and die.
Would this be able to work if we had unlimited airtime and bandwidth available? Yes, sure. But unfortunately, we don't. I'd love for it to be possible, but I simply do not possess the powers to change the laws of physics.
I've stated several times, that a naïve solution like this is unlikely to work, and will just cause confusion, and ultimately be detrimental to the perceived usability of Reticulum.
The RNode system already exists, does exactly the same, actually works in the real world, and does so about an order of magnitude more efficiently.
Please do know, that I am happy to be proven wrong. If you can create an interface that works, supports the various Reticulum API functions over the air, over real-world MT repeaters, I will of course be happy and delighted to include it.
You'll most likely have to spend significant time and resources improving Meshtastic before that becomes even remotely possible; it was simply not designed for something like this, but for something much more limited in scope (and for that it works well). That does not mean you can just extrapolate it to this use-case, though.

Maybe a little contentious I know [...]

Yes, definitely. Presenting a non-functional interface as a pull request, and stating that you don't feel it's your responsibility or within the scope of your work to even test it, is something I do consider contentious.
I'm reading that as you saying something similar to: "Here you go, you said it couldn't be done, but by this pull request I challenge that. Now you go and do all the hard work to actually make it work. I'll just completely disregard all the reasons you've previously given why this would not work, but at the same time leave you to solve the problem".
It's completely unhelpful, and just wasted time, since everything I've said here has already been said several times before.
 As soon as you can convincingly demostrate that this idea actually works, I'll merge and release it in a flash.
But if you find it interesting to throw tens of hours at a dead end, I will definitely advice against it, but I won't stop you.
But don't expect me to do the same, thank you.

Closing this PR since it is non-functional, and currently deemed unrealistic to complete.
Re-opening this pull request can happen when the idea has been convincingly demonstrated to be functionally possible, and the points in the above post have been adressed.
Feel free to use this thread to work on, or discuss the idea, or create a discussion thread instead.

Forgot to mention previously that I completely agree there should be an easy way to use custom interfaces. Would be very useful, and also make situations like this much easier for those who want to experiment with highly experimental interfaces.

@markqvist

Maybe a little contentious I know [...]

Yes, definitely. Presenting a non-functional interface as a pull request, and stating that you don't feel it's your responsibility or within the scope of your work to even test it, is something I do consider contentious.
I'm reading that as you saying something similar to: "Here you go, you said it couldn't be done, but by this pull request I challenge that. Now you go and do all the hard work to actually make it work. I'll just completely disregard all the reasons you've previously given why this would not work, but at the same time leave you to solve the problem".

You are completely wrong in the way you took this. By "contentious" I did not mean to your personally, but to the Reticulum community in general which tends to get really worked up over any mention of MT.
When I said that your questions were outside the scope of my work, it's because they were. I provided an interface that sends and receives over a medium. Whether or not you personally "like" that medium or even deem it fit for Reticulum is completely subjective. Of course it's your project and you get to choose what to include, but that doesn't make your questions any more relevant than they would be for say an IP interface.
I submitted this PR as a potentially useful tool for the community fully expecting a constructive discussion, and ultimately either guidance to make it work or a polite refusal. What I got from you instead was a snarky remark that is the definition of "unhelpful". You may not realize it but I have already invested hundreds of hours into development work to support this project. To say that I'm handing you this PR expecting you to "...go and do all the work to actually make it work..." is quite insulting.
Please don't confuse me with one of the trolls that's out to "prove you wrong". This is counter-productive and will get your project nowhere by driving away valuable volunteer talent.

I believe all of this is an issue of expectations. I, personally, expect a pull request to be a finalized, stable, and tested feature. Does it need to be perfect? No. But it needs to be ready for release.
If it's in this repository, a user would expect it to be supported and performant. It would be a part of Reticulum and expected to function as well as any other interface.
By having it in a forked repo for testing and having progress reports in the discussion area is how I would've handled this.
I'm very happy you're working on this, but when the major question is if it can function at scale, the testing is the lion's share of the work.
My only real notes here are that I think it's too early for a pull request, and testing on a live network is required before this is included in the repo.

... that being said ...
I don't have any issue at all with this PR being refused. It would need a lot more work to support re-ordering of packets and that's definitely not worth the added effort vs investing that into RNode instead.  It's also not really appropriate for any sort of streaming due to the flooding nature of MT. There's still value in this interface for applications that don't require Links and ordered packets, but it's better left as maybe a plugin interface in the future for anyone who might want to experiment.
I do question some of the statements made though and would like to get some clarity...

RNode does not perform reordering because packets can never arrive out of order in the first place.

Does RNS itself perform any packet re-ordering then? As you know UDP packets (as one example) can be delivered out of order. Is there some other way of handling this within RNS?

Furthermore, last time I checked Meshtastic nodes did not perform any sort of remotely sufficient carrier detection, listen-before-talk or collision avoidance. This is going to result in large amounts of packet collisions, and make an already inefficient and fragile approach even worse.

Just as a point of fact, Meshtastic does do CSMA and does it quite well actually. Of course the hidden node problem remains and is likely compounded by flooding.

The RNode system already exists, does exactly the same, actually works in the real world, and does so about an order of magnitude more efficiently.

If this were actually the case then I would have never wasted even the small amount of time that it took me to throw together a Meshtastic interface. Here I would love to be proven wrong, but I have tested Reticulum over LoRa extensively and it has its fair share of issues.
As with the MT interface, simple announces and probes over 2 RNode hops work without issue, but transferring a single 706 byte page over nomadnet fails 100% of the time. Just to be certain, I setup a new test this weekend using latest RNS and latest RNode firmware in case anything has changed since I first reported this issue in the matrix channel. The results were identical unfortunately. Without fail the requesting nomadnet node gets to 50% progress and hangs there indefinitely.
As I pointed out in the SDR screen capture that I posted previously, there is clearly a glitch in CSMA that is causing one of the nodes to clobber transmissions from the other, and it's not the hidden node problem. I'm happy to present all of this again and help in any way that I can to work through it, but first this issue needs to be taken seriously.
There is also the fundamental challenge of not being able to perform path-finding over a LoRa mesh. This severely limits the usefulness of Reticulum over a mesh network since all destinations more than 1 hop away would essentially remain un-routable to any newly joining node.
Both of these issues will need to be addressed before progress can be made toward wider adoption.

There is also the fundamental challenge of not being able to perform path-finding over a LoRa mesh. This severely limits the usefulness of Reticulum over a mesh network since all destinations more than 1 hop away would essentially remain un-routable to any newly joining node.

This is incorrect. Any newly joining node can resolve paths to any destination in the network immediately, there just needs to be an established transport node available nearby.

You are completely wrong in the way you took this. By "contentious" I did not mean to your personally, but to the Reticulum community in general which tends to get really worked up over any mention of MT.

Ah, I see that, thanks for clarifying it. I did understand it "personally" (though not in a serious way, or anything ill-spirited). Just as a slightly misguided way to again direct energy and time to this topic, which has already wasted way too much time.
I think that you've completely misunderstood, or created a story in your head about "the Reticulum community getting really worked up over any mention of MT". This is simply not the case.
I think most people in the Reticulum community just really don't care much about it, and sometimes the people that bring up the issue take that as "them getting worked up", simply because people are uninterested and shrug it off.

Whether or not you personally "like" that medium or even deem it fit for Reticulum is completely subjective.

What I personally and subjectively "like" or not has no bearing on whether an interface is added. Whether it works or not has.
What is "fit for Reticulum" is not something I personally "deem", it is a matter of some pretty well-documented specs and basic physics.
Please stop this continued insinuation that I, or anyone else in the community does not "like" meshtastic, and that should somehow be why we don't work on this. It's getting really tiresome.

I submitted this PR as a potentially useful tool for the community fully expecting a constructive discussion.

And you got a such. I politely asked you to elaborate details, and I politely explained (again) all the things that are currently obstacles to that. I gave you pretty detailed guidance (as I've done before on the exact same issue) on how to move forward.
I then closed the pull request as currently rejected due being completely non-functional. There was no so-called "snarky-ness" in this.
I've spent a lot of time trying to tell you exactly what needs to be done for something like this to work, and then also made it clear that if you attempt this, you are most probably alone on that venture, and will have to spend considerable amounts of time doing that. It's not snarky, it's just a fair warning.
I've even told you directly, verbosely and several times that it would be great if this worked. I just don't consider it worth working on myself, and I'm trying to keep a well-maintained and reliable package available here.
I appreciate all the work you've done here so far, and all the contributions you've made.
To me, it looks like you are reading a lot more into what I'm writing, than what is actually there, and that the communication is therefore running rather sub-optimally.
If it can be helpful for you to know, the way that I communicate is almost completely verbose and direct. I do not use the diplomatic and social niceties so common in many cultures and contexts. This does not mean, however, that I don't love you ;)
What I write and say is exactly what I mean, and I think, that if you intentionally read it that way, you may see things in a different light.
I am completely aware that this is by no means the norm, and that it may even seem directly offensive to some - that's not going to change me though ;)
If you are put off by this, it's completely fine, I will hold no grudge against you.


Set SYS_UID_MIN/MAX and SYS_GID_MIN/MAX

This sets the SYS_UID_MIN/MAX SYS_GID_MIN/MAX values in the template
file to match those asserted by the tests-os-hardening inspec tests.
This is also the default behavour of the ansible playbook and chef
cookbook.
Adds puppet-rspec tests for the login.defs

The build is failing because rake no longer supports 1.8.7. Can I drop it from the .travis.yml or should I try find an older working version of rake for 1.8.7, 1.9.3, 2.0.0?

@mkrakowitzer just drop 1.8.7

@chris-rock Do you need anything from me in order for this to be merged?


[release-1.31] Backports for 2024-10

Proposed Changes
Backports:

#10868
#10932
#10939
#10978
#10979
#11013
#11029
#10862
#11049
#11060

Types of Changes
backports
Verification
see linked issues
Testing
Linked Issues

https://github.com/k3s-io/k3s/issues/10928
https://github.com/k3s-io/k3s/issues/10944
https://github.com/k3s-io/k3s/issues/10963
https://github.com/k3s-io/k3s/issues/10985
https://github.com/k3s-io/k3s/issues/11050
https://github.com/k3s-io/k3s/issues/11015
https://github.com/k3s-io/k3s/issues/11030
https://github.com/k3s-io/k3s/issues/11037
https://github.com/k3s-io/k3s/issues/11056

User-Facing Change

Further Comments

/trivy


Fix dark theme

@nicktaras Some slight changes to fix & improve dark theme. Maybe we should have Lucas design a new light & dark theme with a setting for custom primary color?

@micwallace merging this into Staging - to ensure the logic "dark-tn" is working as needed.
Let's reach out to get feedback on the look & feel for a future minor release. Can you create a Jira ticket assigned to Lucas with a screen shot of the Light and Dark UI's (at each stage) to gather feedback and any changes needed.


Build instructions?

There are no build instructions?
On Windows using CMAKE I get the error "Could not find a package configuration file provided by "spdlog""
What is required to build this? Is GCC required with MinGW for Windows? I can't find any build docs for this.

Reviving old post for anyone having this problem. Spdlog is another open source project. You need to download/build it and then configure cmake in Radeon rays to point to your build of spdlog


Use studly case instead of camel case

The command currently creates topicController.php. After this change TopicController.php.

this was actually fixed in a previous commit.  your local might be out of date.
https://github.com/laravel/framework/commit/8fb3cfe5a44ea2fbc9d5961f5afe33c23e108c7c

Ah sorry, i'm playing on master branch. Forget check to the 5.3 branch.


Sanitize only cpp compile

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

Project coverage is 89.31%. Comparing base (3a71472) to head (a1cdd02).

Additional details and impacted files

@@            Coverage Diff             @@
##             main     #150      +/-   ##
==========================================
+ Coverage   89.27%   89.31%   +0.03%
==========================================
  Files          96       96
  Lines       10457    10457
==========================================
+ Hits         9336     9340       +4
+ Misses       1121     1117       -4

Files
Coverage Δ

include/async_mqtt/util/scope_guard.hpp
100.00% <100.00%> (ø)

... and 1 file with indirect coverage changes


vue-html-loader在webpack2.0 如何配置

Version
2.4.4
Reproduction link
Steps to reproduce
在webpack新版本中无法配置
What is expected?
在.vue中的template中能够include外部html或vue的template片段
What is actually happening?
在webpack新版本中无法配置

Hi, thanks for your interest but Github issues are for bug reports and feature requests only. You can ask questions on the forum, the Discord server, gitter or StackOverflow.


Bug on connect to many client database

Good afternoon, I've been having problems connecting to customer database
This particular issue began to occur after upgrading to version 0.7.12. It happens to all previously registered customers and does not let the connection occur

Do you have any fix plans or anything that can be done to resolve the issue?

Hi,
I did some testing, does it occur when you try to connect to a postgre database?
The problem seems to occur if there is a pre-selected database. For now, empty the database field and try connecting again.
A fix will be coming in the next few hours.

Another workaround is duplicate the connection.
The bug seems to occur on connections created before 0.7.12.

Update released, now there is only to wait for the Microsoft Store certification stage and you will get the update.

Atualização lançada, agora é só aguardar o estágio de certificação da Microsoft Store e você receberá a atualização.
Hello, there are the same problems there will be an update for the linux systems too?

Hello, there are the same problems there will be an update for the linux systems too?

From what source did you install Antares?

install ubuntu software

The update is also available on Ubuntu software center.


Not working with Catalyst

I get the error:
"Building for Mac Catalyst, but the linked framework 'Kronos.framework' was built for iOS + iOS Simulator."
I have installed it with Carthage. Is there a simple way to fix this or should I add it manually?

This probably requires some changes to the xcconfigs (or maybe upstream) to support this new sdk. I haven't upgraded to Catalina yet so I can't test this, but I'd be happy to review a PR for this


Scout with Blueprint variant

How can I use Scout with say Liquid Blueprint (test: http://www.designbyfire.com/liquid_blueprint/tests/liquid.html; from http://www.ixda.org/node/15655) or my own hybrid blue-print with fixed -and- fluid columns ?
do let me know, thanx,
;-p r a b u!

Blueprint is a fairly dated CSS framework. It has not been updated is 2011. I would recommend looking into a more modern framework to handle page layout/grid systems. Bootstrap, Foundation, and Bulma are all popular alternatives.

Scout-App.io

Closing issue as "will not fix".


Add argocd-autopilot 0.2.1

With this PR I want to add the argocd-autopilot cli to arkade.
Signed-off-by: Engin Diri<EMAIL_ADDRESS>
Description
argocd-autopilot cli added
With the PR i created directy at https://github.com/argoproj-labs/argocd-autopilot/pull/62 there is no need to check for just gz files anymore.
Motivation and Context

https://github.com/alexellis/arkade/issues/406

[x] I have raised an issue to propose this change (required)

How Has This Been Tested?

$ docker container run --rm -v $(pwd):/workspace -ti golang:1.16.3-alpine sh
# cd /workspace
# go build
# ./arkade get argocd-autopilot

Types of changes

[ ] 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 change)

Checklist:

[x] My code follows the code style of this project.
[x] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[x] I've read the CONTRIBUTION guide
[x] I have signed-off my commits with git commit -s
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

[ ] I have tested this on arm, or have added code to prevent deployment

I like this solution. Nicely done @dirien


No license file

Will this be released under a license? Until it's released, no one can technically use it: https://opensource.stackexchange.com/questions/1720/what-can-i-assume-if-a-publicly-published-project-has-no-license

Fixed


Use logger settings on Contract initialization

Closes #897
Pre-review checklist

[x] All code has been formatted using our config (make format)
[x] Any new API feature includes a full example or integration test run with Plutip on CI
[x] The changelog has been updated under the ## Unreleased header, using the appropriate sub-headings (### Added, ### Removed, ### Fixed), and the links to the appropriate issues/PRs have been included

Whether we do want to see the noise I'm not sure

We will in case of an error, so this is a strict improvement


Web - Page with error message(crashed) when selecting Settings button from room details

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open app and login with any applause account
Tap on Fub menu - Select New Room
Create a new room
Select on name of the room to view the details
Select the Settings

Expected Result:
Settings page should open
Actual Result:
Page crashes all the time
Workaround:
Unknow
Platform:

Where is this issue occurring?

Web

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
**Reproducible in production?:**Yes
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/93399543/154357582-f2f6ec90-6035-4d3d-93c3-b3718d8d818b.mp4
Expensify/Expensify Issue URL:
Issue reported by: Applause
Slack conversation:
View all open jobs on GitHub

Triggered auto assignment to @pecanoro (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

It could be due to my PR and please test it if this is fixed on https://github.com/Expensify/App/pull/7782 then please add this issue to that PR as well.

@parasharrajat are you saying your fix is ready? What's the ticket ID?

Yeah, that comment was for assignee.

I'm not able to recreate this on staging @mvtglobally are you able to still reproduce this?
How many users are in the workspace where this error happens?

I still can't recreate this one so I think some other change might have fixed it? It doesn't seem to be linked to the undefined crash because this still works for me on staging. I'm going to close this but if it crops up again feel free to reoopen.


unable to get PHP v 7.2.8 - latest version is 7.2.7

newer php exists - PHP 7.2.9
 docker run --rm --entrypoint=php phpearth/php:latest -v

Unable to find image 'phpearth/php:latest' locally
latest: Pulling from phpearth/php
ff3a5c916c92: Already exists
6e58ae251a6d: Pull complete
5fec3f891fb1: Pull complete
Digest: sha256:031e5883605294c928ba332cf2a6310ebc1c568563b910891c50f8d48e13e1b9
Status: Downloaded newer image for phpearth/php:latest
PHP 7.2.7 (cli) (built: Jun 22 2018 11:43:41) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

http://php.net/ChangeLog-7.php#7.2.9

Latest PHP releases added to Docker images. At the moment the Litespeed one still needs updates, but others are ok to go... Thanks.


usm: kafka: tests: Improve cleanup to solve flakiness

What does this PR do?
Improves the cleanup of the canned server, to remove the chances for races between closing the listener and freeing the port (to be used by the next test) and terminating the test

Motivation
CI flakiness

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

/merge


Add public option for oauth clients

This adds a checkbox for the "public" option when creating an OAuth client.

When editing an OAuth client the field is disabled because it is not editable on the backend.

Coverage increased (+0.008%) to 68.149% when pulling 3ab34307811fe5715bea34c7c9d20a35beec5cb6 on asauber:add-public-option-to-oauth-create into e2a10b1d1cb8a62470fd9607e7d38d2e93305aca on linode:master.

It seems weird to not have a Public || Private column on the list page, but we can create a new task for that and verify that is a valid expectation.


Problem linking to CoreFoundation on darwin

I am trying to build crate2nix-generated package which apparently depends on CoreFoundation framework, compiler fails with "No such file or directory". I suppose that's because linker does not use nix store link to the framework but links directly instead:
❯ nix build . --keep-failed --print-build-logs
warning: Git tree '/private/tmp/unstable-problem' is dirty
rust_bzip2-sys> unpacking sources
rust_bzip2-sys> unpacking source archive /nix/store/xj20yzw7gkqm9bppkvjlikr6kinykyh0-bzip2-sys-0.1.9+1.0.8.tar.gz
rust_bzip2-sys> source root is bzip2-sys-0.1.9+1.0.8
rust_bzip2-sys> setting SOURCE_DATE_EPOCH to timestamp<PHONE_NUMBER> of file bzip2-sys-0.1.9+1.0.8/Cargo.toml
rust_bzip2-sys> patching sources
rust_bzip2-sys> configuring
rust_bzip2-sys> Running cd .
rust_bzip2-sys> Building build.rs (bzip2_sys)
rust_bzip2-sys> Running rustc --crate-name build_script_build build.rs --crate-type bin -C opt-level=3 -C codegen-units=8 --edition 2015 --cfg feature="default" --out-dir target/build/bzip2-sys --emit=dep-info,link -L dependency=target/buildDeps --extern cc=/nix/store/jlm4qfcb21l3z58kdvaw506c9k9f00g9-rust_cc-1.0.59-lib/lib/libcc-799583ee53.rlib --extern pkg_config=/nix/store/mmfm5kgq6smsms9r4rrnavdc29iy6nh1-rust_pkg-config-0.3.18-lib/lib/libpkg_config-d5aa887539.rlib --cap-lints allow --color always
rust_bzip2-sys> error occurred: No such file or directory (os error 2)
note: keeping build directory '/private/tmp/nix-build-rust_bzip2-sys-0.1.9+1.0.8.drv-16'
error: --- Error ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- nix
builder for '/nix/store/dazvh1znpmaikdgagxjz8wyqbwg4lh67-rust_bzip2-sys-0.1.9+1.0.8.drv' failed with exit code 1
error: --- Error ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- nix
1 dependencies of derivation '/nix/store/hrn4qkjhhhjb7vzp5c0w2yjb5f3v86jq-rust_unstable-problem-0.1.0.drv' failed to build

Direct link evidence:
❯ otool -L /private/tmp/nix-build-rust_bzip2-sys-0.1.9+1.0.8.drv-16/bzip2-sys-0.1.9+1.0.8/target/build/bzip2-sys/build_script_build
/private/tmp/nix-build-rust_bzip2-sys-0.1.9+1.0.8.drv-16/bzip2-sys-0.1.9+1.0.8/target/build/bzip2-sys/build_script_build:
        /nix/store/3jfjr7bil98cx71204578pvc68bjy7dm-Libsystem-osx-10.12.6/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1)
        /nix/store/3jfjr7bil98cx71204578pvc68bjy7dm-Libsystem-osx-10.12.6/lib/libresolv.9.dylib (compatibility version 1.0.0, current version 1.0.0)
        /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1677.104.0)

Build is passing correctly on linux.
Here is minimal reproducer.

Did you override the crate to include CoreFoundation in its buildInputs? Not bzip2, but a similar override (as an example):
https://github.com/NixOS/nixpkgs/blob/fab168dbf75a8d40269119e39fbe909a25e86e62/pkgs/build-support/rust/default-crate-overrides.nix#L110

If I understand you correctly, yes I did: https://github.com/onsails/crate2nix-problem/blob/master/flake.nix#L19

Oh wait, I should have recognized that error. You are probably running into:
https://github.com/NixOS/nixpkgs/pull/97000
The problem is that the cc crate now tries to run xcrun when SDKROOT is defined, which is defined until this PR in stdenv. A temporary workaround until that PR lands in master is to use an override like:
  bzip2-sys = attr: {
    nativeBuildInputs = lib.optionals stdenv.isDarwin [ xcbuild ];
  };

The first work-around works, the second one isn't.
Thanks!


Security audit and fixes

follow up and communications regarding the security audit
security fixes

We received 3 proposals from FYEO, Least Authority and KS. Cyber currently assessing to proper tendering. Afterwhich a budget will need to be requested to the CF.


[Modals redesign]Hard to read Mixtypes parameter and arrays on action review screen for safe-apps txs

Description
Hard to read Mixtypes parameters on action review screen for safe-apps txs
Environment

Browser: Chrome
Wallet: MetaMask
Chain: Rinkeby

Steps to reproduce

Go to the safe-apps
Use Bulla banker app
check "createBullaClaim" action details

The same problem if the parameter is an array
Expected result
separate each value in the mixtypes parameter
Obtained result
No separates between the valuems
Screenshots

@liliiaorlenko do we have a design for this?

@liliiaorlenko do we have a design for this?

Nop, I can work on it. I will contact @liliya-soroka for details

https://www.figma.com/file/47wkjxMZkyEeCRbCrLJBJa/safe%232995-Tx-details?node-id=2362%3A22517
design based on mobile solution that currently exists


⚠ Quirk Club Argentina (API endpoint) has degraded performance

In 1a9976b, Quirk Club Argentina (API endpoint) (https://us-central1-quirkclub-dev.cloudfunctions.net/api/check/api) experienced degraded performance:

HTTP code: 200
Response time: 8468 ms

Resolved: Quirk Club Argentina (API endpoint) performance has improved in c12fe03.


Update get_phase_encode_txt.py

Adding support for different vendors json naming conventions (ex. PhaseEncodingDirection vs. PhaseEncodingAxis)

Note that the PhaseEncodingAxis tag in the json file never includes the direction (ie is just i,j,k, never with a '-' in front). So for rev phase encoded acquisitions would still need to find the direction some other way..


'No such module' when trying to import framework in playground

I am trying to create playground with Alamofire. I am doing everything according to the instructions (including building the scheme), but the framework can't seem to be imported in the playground:

My Xcode version is 7.2.1 (7C1002), CocoaPods version is 1.0.0.beta.3 (tried 0.39.0 as well).
Am I missing something?

I'm seeing the same behavior.

I'm assuming you don't see any build errors. Can you try deleting DerivedData and building the scheme again?

@neonichu no, there were no build errors. And yes, removing DerivedData and building the scheme helped, thanks!

I am getting this same error even after deleting derived data and rebuilding.
Any more suggestions?


Ability to use overwritten related object popups

There is ability to overwrite  functions like showRelatedObjectLookupPopup, showRelatedObjectPopup etc with window.showRelatedObjectLookupPopup = showRelatedObjectLookupPopup and it's awesome!
But  when event like click on .related-lookup triggered not overwritten function will be called.

Functions are already overwritable with jQuery Events


Software version fails to fetch from remote

Haven't been able to pin point how it happens yet. Sometimes I can consistently pull it off. Other times it just works as normal.

Doesn't seem to happen anymore... maybe some update to the code fixed this issue. Closing this until it pops up again.


Are intro lines required

When I setup a new change log, I get this boilerplate.
# Changelog
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

If I make any changes to this, will I break any commands? For example, I'd like the title to be # MyModule Changelog. I also might want to have my own intro text and/or delete what New-ChangeLog creates. Will this lead to problems later?

This isn't something I've tested, to be honest, but a quick look at the code makes me think that, as long as you:

Have some kind of header
That header doesn't contain ## [

it should be fine.


refactor: reduce package size

Current dependencies on/for this PR:

main

PR #12   👈

This comment was auto-generated by Graphite.


Test e2e

This is a great start. I was wondering if it would be a good idea to have _spec in the test file names for easy identification, something like test_name_spec.js, or _test to be test_name_test.js

You guys doing awesome work! :)


Container Download

Can we document whether the On-premises data gateway is available to run as a container?

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

ID: dc58ee8d-9650-6a07-8740-e10bf9dc12af
Version Independent ID: ca47ad42-0033-3b26-f7ac-6fb32c3ff8d6
Content: Install On-premises data gateway for Azure Analysis Services
Content Source: articles/analysis-services/analysis-services-gateway-install.md
Service: azure-analysis-services
GitHub Login: @Minewiskan
Microsoft Alias: owend

@grayjeremy Unfortunately, you cannot install on-premises data gateway to run as a container.
For more details, review the requirements section in the installation article.
Hope this helps.


Load account info after unlocking

this asynchronously loads the balance and account info after unlocking the accounts.
This fixes a bug that the balance is not shown directly after unlocking the popup.

@dylancom why is this line 57 needed: https://github.com/getAlby/lightning-browser-extension/pull/496/files#diff-746a7eac0422151ff7dbb6d284688b1e54131a065e8953ae8df7c9c7f2839f62R57

@bumi that was added so if you switch account, you'll see the skeleton loading animation when alias & balance aren't present. Could handle it differently if desired.


Update with latest from Eureka master

Looks good. 👍 Going to rebase this one to get a more linear history since we don't own the source.


T.L2.2 - Topical Hashtag Frequency

Week of 3/3: Formatting based on lab template
Week of 3/10: Content Update and Checkpoints
Week of 3/17: Finalizing Content

#1008
#1009

#993


fix(cli): use more inclusive language

Description of changes
This commit replaces the use of whitelist and blacklist throughout the codebase with allowlist and denylist.
Issue #, if available
No associated issue, but this builds on #6331 and #5497.
Description of how you validated changes
Local testing and E2E tests.
Checklist

[x] PR description included
[x] yarn test passes
[x] Tests are changed or added

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

please make sure to create a docs PR to document the Feature Flag

Docs PR at https://github.com/aws-amplify/docs/pull/3078.

Description of changes
This commit replaces the use of whitelist and blacklist throughout the codebase with allowlist and denylist.
Issue #, if available
No associated issue, but this builds on #6331 and #5497.
Description of how you validated changes
Local testing and E2E tests.
Checklist

[x]  PR description included
[x]  yarn test passes
[x]  Tests are changed or added

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Can we who belong to the rest of the normal world who never had slaves at home keep on using the old terms?


Improve Proxy documentation

This came up in https://github.com/mdn/stumptown-content/issues/447.
Our documentation for the JavaScript Proxy object is confusing and badly organized.
The main page: Proxy describes the Proxy class, so it should have a "Constructor" section linking to a separate page describing its constructor.
Instead it has "Syntax" that describes the constructor call. This is a pattern we've been removing the other JS docs.
But it also has "Instance methods" listing things like handler.getPrototypeOf(). These are not instance methods of Proxy. They are functions you can define on the handler argument to the Proxy constructor. It is very confusing to organize them like this.
I think we should have a new Proxy() constructor page, with a big section called "Handler methods", that describes all the handler methods, using content from the subpages of handler. Correspondingly we should remove handler and all the pages underneath it, and make them redirect to the Proxy() constructor page.
This does mean that we will have a quite huge Proxy() constructor page, but at least its organization will make sense.
We should also make sure the main Proxy page has a good description of how to use this and why you might want to. https://hacks.mozilla.org/2015/07/es6-in-depth-proxies-and-reflect/ is good source material here.

I've written a basic Proxy() constructor page.
I think the main question is what to do about all the handler pages.
 The handler argument is an object, and you define on it any operations that you want to intercept (like get, defineProperty etc).
At the moment we document this with a hierarchy of pages like:

Proxy: the page for the Proxy class, which lists handler methods under "Instance methods".

handler: a catalogue of the methods you can define on handler

handler.get: a subpage for each of the methods you can define on handler
etc

There are semantic problems with this that I think have a real effect on the usability of this documentation:

Proxy: lists handler methods under "Instance methods". This implies that when I create a Proxy I can call things like myProxy.defineProperty(), which I can't of course.

handler: is tagged as a namespace, which it isn't.

The methods of handler are presented as normal JS methods, but they're not.

From a purist point of view, what I am tempted to do is:

make the handler page and its subpages redirect to the Proxy() constructor page.
add a new section in the Proxy() constructor page that describes all the handler methods as methods you can define on the handler argument.

But this will make the constructor page very long, and means we'll have to change the way handler methods are described (because the heading hierarchy won't work when the documentation for a handler is under an H2 rather than in a standalone page).
So I think I'd like to:

keep the separate handler pages, but just indicate that they don't describe "normal" JS methods, but instead methods you can define on the handler argument
move the handler pages under the Proxy() constructor page
make the handler page redirect to the Proxy() constructor page
add a section to the Proxy() constructor page that lists and links to the handler method pages.
delete the "Instance methods" section from the main Proxy page.

@Elchi3 , what do you think?

A close analogy to this seems to be the Promise() documentation, where the constructor takes an executor function with a particular signature and expected behavior. We don't have a separate "javascript-method" page at Promise/executor for this: we document it in the Promise() constructor page as an argument.

Thanks for this detailed research, Will!
I think this problem reminds me of another debate in API docs, that I'd call "The Great Dictionary Debate": Should dictionaries, or generally, complex constructor parameters be split out into sub pages (or even pages in the main API namespace), or should they be presented inline?
We haven't agreed on structures for this and so, yes, as you say, oftentimes our current structures make no sense semantically.
That said, I like the plan you've proposed for Proxy handlers and I think this topic will come back once we talk about structuring API docs. For now, I'd say we can go ahead with restructuring like you've proposed and see how it feels.

I've made all the changes proposed in https://github.com/mdn/sprints/issues/3268#issuecomment-632908816 and added BCD for the Proxy() constructor.


[ReusableLib][Laravel] Modified the README.md file

Modified the README.md file

Refs: Task # 337870

fine. Proceed


ARROW-5380: [C++] Fix memory alignment UBSan errors.

Add utility methods for unaligned loads use where errors
are discovered.
Upgrade version of flatbuffers to avoid issues with unaligned
load in that library
Discover bug in spec that makes zero-copy well defined behavior
virtually impossible with flatbuffers (need to discuss on ML).  For now I'm
not turning on ASAN and will file a follow-up JIRA to track this.

Still needed:

[ ] Performance testing
[X] Discuss flatbuffers issues (I sent e-mail to LM)

Codecov Report

Merging #4757 into master will increase coverage by 2.55%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #4757      +/-   ##
==========================================
+ Coverage   86.44%   88.99%   +2.55%
==========================================
  Files         992      717     -275
  Lines      138020    99399   -38621
  Branches     1418        0    -1418
==========================================
- Hits       119309    88460   -30849
+ Misses      18349    10939    -7410
+ Partials      362        0     -362

Impacted Files
Coverage Δ

cpp/src/arrow/util/bpacking.h
99.83% <ø> (+0.02%)
:arrow_up:

cpp/src/parquet/arrow/writer.h
100% <100%> (ø)
:arrow_up:

cpp/src/parquet/file_reader.cc
94.3% <100%> (ø)
:arrow_up:

cpp/src/arrow/util/hashing.h
99.12% <100%> (ø)
:arrow_up:

cpp/src/plasma/common.cc
88.46% <100%> (ø)
:arrow_up:

cpp/src/parquet/encoding.cc
93.99% <100%> (ø)
:arrow_up:

cpp/src/parquet/column_reader.cc
91.5% <100%> (ø)
:arrow_up:

cpp/src/arrow/util/ubsan.h
100% <100%> (ø)
:arrow_up:

cpp/src/parquet/arrow/reader.cc
85.71% <100%> (ø)
:arrow_up:

cpp/src/plasma/thirdparty/ae/ae.c
70.75% <0%> (-0.95%)
:arrow_down:

... and 276 more

Continue to review full report at Codecov.

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

@ursabot benchmark

@ursabot benchmark --help

@ursabot benchmark --benchmark-filter=Bit

Heh, didn't see Antoine merged, opened link from ML :)

@fsaintjacques thank you for the comments I'll address them in a follow-up PR>


[5.1] Routes with Closure are cachable

This might not be a great idea because those closure might in turn contain something that are nasty and shouldn't be serialized. I am open to criticization and discussion.
However a simple example with nested closure did ok on local tests.
Route::any('/something', function () {
    $hello = function () {
        return "Hello";
    };

    return $hello();
});

Usuage
In several use-cases, we have routes that don't fit anywhere, like a redirection of /shop to /s or something like that. And having a dedicated controller to handle things like that sounds ugly. This change will allow us to have a closure as a route which is cachable.

The problem is serializing the Closures sort of defeats the purpose of ultra-high speed.


[1.5.0][Berlin] Introduce Evaluatory MySQL Data Source Helm Chart for Open Banking

Purpose

This performs $subject fixing the linked issues.

Goals

Introduce Evaluatory MySQL Data Source Helm Chart for Open Banking based on Berlin specification

Test environment

Helm version: 3.2.4
GKE based Kubernetes Server version: 1.15+, Git Version: v1.15.12-gke.2

Does the database depend on the country?.

@ThilinaManamgoda yes.
Please refer to AU, Berlin and UK documentation.
As per the aforementioned documentation, the openbank_openbankingdb database schema of Berlin specification differ with that of AU and UK based specifications.
Yes, we can add two different databases with different names for this purpose (once, other specifications are supported) but IMO, we do not need to setup databases which are not required for the deployment, although we used to do otherwise in the past for other products. WDYT?


Issue on docs

Path: /getting-started/integration-method/anthropic
the url param is base_url now: https://github.com/anthropics/anthropic-sdk-python/blob/main/src/anthropic/_client.py#L64

If you don't mind I might add another issue for the docs as well.
Anthropic Node.js client already prepends the /v1/completion, so if the documentation is as to be followed (see below)

It would result in Anthropic Node.js client to hit /v1/v1/completion which result in 404.


curried set for model attributes

model.set.attr should return curried setter function.
model.set.attr.to( x ) should return function setting attribute to x.
function( val ){ model.set( 'attr', val ); }
Useful for linking attributes to callbacks in React.

Just created 4 separated ticket for that problem.


az interacte failed in WSL2 on Windows 11

This is autogenerated. Please review and update as needed.
Describe the bug
Command Name
az interactive
Errors:
The command failed with an unexpected error. Here is the traceback:
No module named 'prompt_toolkit.interface'
Traceback (most recent call last):
  File "/opt/az/lib/python3.10/site-packages/knack/cli.py", line 233, in invoke
    cmd_result = self.invocation.execute(args)
  File "/opt/az/lib/python3.10/site-packages/azure/cli/core/commands/__init__.py", line 663, in execute
    raise ex
  File "/opt/az/lib/python3.10/site-packages/azure/cli/core/commands/__init__.py", line 726, in _run_jobs_serially
    results.append(self._run_job(expanded_arg, cmd_copy))
  File "/opt/az/lib/python3.10/site-packages/azure/cli/core/commands/__init__.py", line 697, in _run_job
    result = cmd_copy(params)
  File "/opt/az/lib/python3.10/site-packages/azure/cli/core/commands/__init__.py", line 333, in __call__
    return self.handler(*args, **kwargs)
  File "/opt/az/lib/python3.10/site-packages/azure/cli/core/commands/command_operation.py", line 121, in handler
    return op(**command_args)
  File "/opt/az/lib/python3.10/site-packages/azure/cli/command_modules/interactive/custom.py", line 41, in start_shell
    azext_interactive.start_shell(cmd, style=style)
  File "/home/jim/.azure/cliextensions/interactive/azext_interactive/__init__.py", line 10, in start_shell
    from .azclishell.app import AzInteractiveShell
  File "/home/jim/.azure/cliextensions/interactive/azext_interactive/azclishell/app.py", line 33, in <module>
    from prompt_toolkit.interface import Application, CommandLineInterface
ModuleNotFoundError: No module named 'prompt_toolkit.interface'

To Reproduce:
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

Put any pre-requisite steps here...
az interactive

Expected Behavior
Environment Summary
Linux-<IP_ADDRESS>-microsoft-standard-WSL2-x86_64-with-glibc2.31, Ubuntu 20.04 LTS
Python 3.10.5
Installer: DEB

azure-cli 2.41.0

Extensions:
interactive 0.4.5

Dependencies:
msal 1.20.0b1
azure-mgmt-resource 21.1.0b1

Additional Context

Duplicate of https://github.com/Azure/azure-cli/issues/24213


Lumen compatibility on publishing

function config_path not available in Lumen Framework,  and publish is not relevant there, example
https://github.com/spatie/laravel-package-tools/blob/d7ea4f74ffe1f7863f01bf5ba4b6d64847dacf8b/src/PackageServiceProvider.php#L61-L61
This part forces users to add a helper function to be able to use the package, with this change this would be optional, you don't need to add anything new to use it, you can keep it as simple as possible, but it leaves open the possibility of using packages like larasupport to have the publish option

We don't support Lumen.

@freekmurze here  you said the opposite:  https://github.com/spatie/laravel-package-tools/pull/26
https://github.com/spatie/laravel-package-tools/blob/d7ea4f74ffe1f7863f01bf5ba4b6d64847dacf8b/CHANGELOG.md?plain=1#L237

We don't support Lumen.

But other packages do,
is this an internal space package or can it be used to create other packages?
Also, This change does not affect the current functionality of Laravel at all.

This package has everything I was looking for, I only need two small changes to move forward


Added default behavior

https://github.com/MicrosoftDocs/office-docs-powershell/issues/5022

Docs Build status updates of commit 028c8bc:
:clock10: Full build: the average full build time is 12 min(s) 22 sec(s), this is based on the last 1000 build(s) for this repository.

Docs Build status updates of commit 028c8bc:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

skype/skype-ps/skype/Get-CsCallQueue.md
:white_check_mark:Succeeded
View (skype-ps)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Carousel crashes when swiping in the opposite direction

Describe the bug
I've been trying out the examples from exampleExpo repo. Whenever I swipe the cards in the opposite direction of their design, the carousel crashes.
Example : Open StackCards and swipe right or left when the direction is actually vertical. Or open Parallax and swipe up or down when the direction is actually horizontal.
To Reproduce
Steps to reproduce the behavior:

Open any example in exampleExpo.
Swipe horizontally if the carousel is vertical or swipe vertically if the carousel is horizontal.
Carousel crashes

Expected behavior
Carousel should not crash and should just ignore the swipe that was done in the opposite diretion.
Screenshots
https://user-images.githubusercontent.com/90186621/175821520-c1ef207b-8864-4064-9bb9-296d0befeaf1.mov
Versions (please complete the following information):

react: v17.0.2
react-native: v0.68.2
react-native-reanimated: v~2.8.0
react-native-reanimated-carousel: latest
react-native-gesture-handler: v~2.2.1

Smartphone (please complete the following information):

Device: [e.g. iPhone6] iPhone 13 simulator
OS: [e.g. iOS8.1] iOS
Browser [e.g. stock browser, safari] NA
Version [e.g. 22] NA

Additional context
NA

Hi @aditya-keri-betterhalf, I'm running multiple examples and I found the same gesture issue, let me see what's happening behind the scenes and why is crashing

I have an implementation of the carousel in production and everything seems to behave correctly, don't crashing reports or bugs. this is a related problem to our exampleExpo project, we will be fixing this soon.

@aditya-keri-betterhalf  @AleRaDev12  Thanks for the detail information, I'll fix it ASAP.

Fixed in 3.0.3.

Fixed in 3.0.3.

Thank you


dobs: add paging logic for regions with many volumes

This fixes the issue of returning only 20 volumes. A better solution is to paginate and look for other volumes if there are available.
cc @protochron @andrewsykim

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Dan Norris seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Codecov Report

Merging #1112 into master will increase coverage by 0.03%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1112      +/-   ##
==========================================
+ Coverage   34.16%   34.19%   +0.03%
==========================================
  Files          36       36
  Lines        2901     2901
==========================================
+ Hits          991      992       +1
+ Misses       1807     1806       -1
  Partials      103      103

Impacted Files
Coverage Δ

libstorage/api/types/types_localdevices.go
86.3% <0%> (+1.36%)
:arrow_up:

Continue to review full report at Codecov.

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

@codenrhoden Sorry about the confusion! I think the easiest way forward would be to close this PR and I can submit a replacement with the author correctly set up so that the CLA Assistant is happy. I can reference this PR and add that whitespace  back in.

@protochron awesome! That would be fantastic. Thanks Dan! I heard that I missed you at the booth at KubeCon. I left about 30 minutes before you swung by. One day I'll meet you!

I'll go ahead and close this and watch for the new one.


feat(logs): improve prefab deserialization logging

I was doing similar things for components yesterday: https://github.com/MovingBlocks/Terasology/pull/4543/commits/46394fd911f6018bb92fa0bb4c767ebd02baec56


Not able to do ZOOM/PAN while adding svg data to object dynamically

Hi,
Thanks in advance.
I am trying to load data attribute to svg object dynamically on click of a button through javascript function call
below was my code

html
head
script src="svg-pan-zoom.js"
script
// Don't use window.onLoad like this in production, because it can only listen to one function.
function enable(filepath){
document.getElementById("demo-tiger").data=filepath;
svgPanZoom('#demo-tiger', {
zoomEnabled: true,
controlIconsEnabled: true
});
}
script

head
body
object id="demo-tiger" type="image/svg+xml" style="width: 500px; height: 500px; border:1px solid black; "/object
button type='button' id="svg1" value="file1" onclick="enable('tiger.svg');return false;">file 1/button
/body
/html

by this way I am Not able to do ZOOM/PAN while adding svg data to object dynamically
I am getting below error
Uncaught TypeError: undefined is not a functionsvg-pan-zoom.js:488
ShadowViewport.getCTMsvg-pan-zoom.js:400
ShadowViewport.processCTMsvg-pan-zoom.js:330
ShadowViewport.initsvg-pan-zoom.js:302
ShadowViewportsvg-pan-zoom.js:622
module.exportssvg-pan-zoom.js:677
SvgPanZoom.initsvg-pan-zoom.js:633
SvgPanZoomsvg-pan-zoom.js:1341
svgPanZoomobject.html:10 enableobject.html:20
onclick
When I debug in the JS, I found error at
var safeCTM = this.options.svg.createSVGMatrix() showing error message "Uncaught TypeError: undefined is not a function"
Could some one help me to resolve this issue
Thanks
Rajesh

This is a duplicate of #84
An explanation and solution is posted in that issue.


[fix](grouping sets) fix grouping sets have multiple empty sets (#32317)

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

#32317

run buildall

#32112


Environment Detector doesn't see Valkyrien skies entites

Describe
As described in title. I want to use environment detector as radar, but it can't see any valkyrien skies entities.
Steps to reproduce
Use scanEntities method
Multiplayer?
No
Version
1.18.2-0.7.31r (Latest 1.18.2)
Minecraft, Forge and maybe other related mods versions
Forge 40.2.21 Minecraft 1.18.2
Screenshots or Videos
No response
Crashlog/log
No response

Dup IntelligenceModding/Advanced-Peripherals-Features#89


AMBARI-24833. Create cloud input/output skeleton.

What changes were proposed in this pull request?

Introduce cloud storage mode for Log Feeder
2 parallel way of Log Feeder usage: default or cloud mode (or both)
both mode can work independently from each other (see the Conditional beans in ApplicationConfig)
new cloud storage mode use the local implementation of config api, so it won't manage any zookeeper operations, won't depend on solr or zookeeper
refactor: move out ConfigHandler class to different classes (operations of the class will be based on the cloud storage mode), and rename as InputConfigManager
update spring versions to the newest ones
update easymock version -> re-enable ignored tests (because of jdk 11 support)

How was this patch tested?
with docker env by changing the default cloud mode

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-LogSearch-Github-PR-Builder/24/
Test PASSed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-LogSearch-Github-PR-Builder/25/
Test PASSed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-LogSearch-Github-PR-Builder/27/
Test PASSed.


Add data visualization feature

It might be a good idea to integrate chart.js to the theme as default and leave an option in the config file.

examples

+1 on this feature!!

Plotly.js may be a better option to explore initially since a significant number of users are already using Plotly with Python/R for data analytics/science?

I use plotly. It is easy to use, you should have a try.

@YonghuiDong I would like to try! Do you have tutorials that I could refer to?

@YonghuiDong I would like to try! Do you have tutorials that I could refer to?

You can check this website: https://plotly.com/graphing-libraries/.

@gcushen I also prefer PlotlyJs but there is currently an issue using MathJax v3 and plotlyjs: plotly cannot be loaded. The problem comes from plotlyjs.
See the issue

In a lot of my work I'm interested in GIS maps and data. I have looked at amCharts several times: https://www.amcharts.com/ it is not maybe the best fit for this project, but I'd hope that what ever plotting lib was chosen would also support GIS displays. I'm coming at this from a sans R position. I do not use any of the R tooling with Academic.

@HughP It seems to be a powerful library. It's a freeware (free of charge if we let an attribution). The source code is available but I do not think it is "open-source" (?) If so, this might be a no-go for certain users.

@gcushen I also prefer PlotlyJs but there is currently an issue using MathJax v3 and plotlyjs: plotly cannot be loaded. The problem comes from plotlyjs.
See the issue

I can't thank you enough for this. Spent hours trying to understand why Plotly wouldn't work with Hugo for me. Is there an alternative to MathJax v3 that could work with Plotly and Hugo? I also do prefer support to Plotly.

@lucasfr As far as I know: no. It's simply impossible to use PlotlyJS + Mathjax v3. The problem does not come from Hugo but from PlotlyJs. It checks if mathjax has been loaded, if that is the case, plotlyjs does some stuff about configuration of MathJax, which does not work with mathjax v3 (breaking changes from v2 to v3), leading to a crash of plotlyjs.

@Bertbk thank you. It worked for me too. However I am between a rock and a hard place as I need both some support to maths and plotly. Have even considering going back to MathJaxV2 but haven't been very successful, as I'm not very skilled with CSS and JS.

going back to MathJaxV2

That should be easy to do: In the page you want to use mathjax2, ...

set math=false
add these lines in the end of the .md file (in the body, with your markdown)

You can also create a /layouts/partials/custom_js.html (you might need to create the folder, this is NOT in the /themes/academic folder!) file with this inside
{{end}}

The problem is that you would need to set math=false everywhere. You can add a parameter, though, but I believe the first solution is the best: it does not affect the other pages and you can revert to MathJax3 easily.

@Bertbk Thank you for the suggestions. I have tried on both .md and .Rmd files without success. It keeps showing equations either between $ $ or \( \).

@lucasfr We should switch to the forum and we'll find a solution :)

I try to build a chart as a default theme using chartjs.  I am using Academia Hugo to be my main theme. Also, There are 3 file added including a json, a theme html and a md.
In the markdown file, I have add a tag called "[chart]". User can thougth this tag to get the new theme. In addition, I create 2 choices to generate a chart. The first one is using JSON. the user just needs to put a json into the tag called "json", then the chart will be generated. The second one is using tag for insert or edit the chart detail.  Details as follows:
chart.md

+++
# A section created with the Chart widget.
widget = "chart"  # See https://sourcethemes.com/academic/docs/page-builder/
headless = true  # This file represents a page section.
active = true  # Activate this widget? true/false
weight = 22  # Order that this section will appear.

# Note: a full width section format can be enabled by commenting out the `title` and `subtitle` with a `#`.
title = "Chart"
subtitle = ""
[design]
  # Choose how many columns the section has. Valid values: 1 or 2.
  columns = "2"
  format = "2"  # Change the chart and text position. Valid values: 1 or 2.

[design.background]
  # Apply a background color, gradient, or image.
  #   Uncomment (by removing `#`) an option to apply it.
  #   Choose a light or dark text color by setting `text_color_light`.
  #   Any HTML color name or Hex value is valid.

  # Background color.
  # color = "navy"

  # Background gradient.
  # gradient_start = "DeepSkyBlue"
  # gradient_end = "SkyBlue"

  # Background image.
  # image = "image.jpg"  # Name of image in `static/img/`.
  # image_darken = 0.6  # Darken the image? Range 0-1 where 0 is transparent and 1 is opaque.

  # Text color (true=light or false=dark).
  # text_color_light = true

[design.spacing]
  # Customize the section spacing. Order is top, right, bottom, left.
  # padding = ["0px", "0px", "0px", "0px"]

[advanced]
 # Custom CSS.
 css_style = ""

 # CSS class.
 css_class = ""

 [chart]
 #2 Style for generate chart

 #Using JSON to generate a chart
 json="../json/testData3.json"

 #Using tag to generate a chart
 id = "myChart"
 chart_label = "Source Rank"
 backgroundColor = "rgba(255,207,47,0.6)"
 borderColor = "rgba(255,207,47)"
 borderWidth = "2"
 yGridLines = "false"
 xGridLines = "false"
 type = ""
 data = "a:1,b:2,c:3,d:4,e:5"

+++

In the html file, If you want to using the the second choice, you need to uncomment the code first, and then comment the getjson part. Also, you need to put the html file to the theme file first.
chart.html

{{ $st := .page }}
{{ $columns := $st.Params.design.columns | default "2" }}
{{ $format := $st.Params.design.format | default "1" }}

  {{ if ne $columns "1" }}

      {{ with $st.Title }}
{{ . | markdownify | emojify }}
{{ end }}
      {{ with $st.Params.subtitle }}
{{ . | markdownify | emojify }}
{{ end }}

	{{ if eq $st.Content "" }}

	{{ else }}
		{{ if eq $format "1"  }}

				{{ $st.Content }}

		{{ else }}

				{{ $st.Content }}

		{{ end }}
	{{ end }}

  {{ else }}

      {{ with $st.Title }}
{{ . | markdownify | emojify }}
{{ end }}
      {{ with $st.Params.subtitle }}
{{ . | markdownify | emojify }}
{{ end }}

	{{ if eq $st.Content "" }}

	{{ else }}
		{{ if eq $format "1"  }}

				{{ $st.Content }}

		{{ else }}

				{{ $st.Content }}

		{{ end }}
	{{ end }}
  {{ end }}

testData.json

{
	"type": "horizontalBar",
	"data": {
		"labels": ["apple", "banana", "orange", "lemon", "punch", "melon", "pear", "cherry", "mango", "strawberry", "coconut"],
		"datasets": [{
			"label": "fruit value",
			"data": ["23", "21", "19", "18", "17", "16", "16", "15", "11", "9", "9"],
			"backgroundColor": "rgba(255,207,47,0.6)",
			"borderColor": "rgba(255,207,47,0.6)",
			"borderWidth": "2",
			"hoverBorderWidth": "0"
		}]
	},
	"options": {
		"scales": {
			"yAxes": [{
				"categoryPercentage": "1.5",
				"barPercentage": "0.5",
				"gridLines": {
					"display":false
				}
			}],
			"xAxes": [{
				"gridLines": {
					"display":false
				}
			}]
		},
		"elements": {
			"rectangle": {
				"borderSkipped": "center"
			}
		},
		"tooltips": {
			"enabled": false
		},
		"hover": {
			"animationDuration": "0"
		},
		"plugins": {
			"datalabels": {
				"color": "rgb(0,0,0)",
				"anchor": "end",
				"align": "end"
			}
		}
	}
}

This looks really good. I need to check this out. With all that code, is it
reasonable to make a short code?
On Tue, Jun 16, 2020 at 12:07 PM HACLLALEX<EMAIL_ADDRESS>wrote:

I try to build a chart as a default theme using chartjs. I am using
Academia Hugo to be my main theme. Also, There are 3 file added including a
json, a theme html and a md.
In the markdown file, I have add a tag called "[chart]". User can thougth
this tag to get the new theme. In addition, I create 2 choices to generate
a chart. The first one is using JSON. the user just needs to put a json
into the tag called "json", then the chart will be generated. The second
one is using tag for insert or edit the chart detail. Details as follows:
chart.md
+++
A section created with the Chart widget.
widget = "chart"  # See https://sourcethemes.com/academic/docs/page-builder/
headless = true  # This file represents a page section.
active = true  # Activate this widget? true/false
weight = 22  # Order that this section will appear.
Note: a full width section format can be enabled by commenting out the title and subtitle with a #.
title = "Chart"
subtitle = ""
[design]
Choose how many columns the section has. Valid values: 1 or 2.
columns = "2"
format = "2"  # Change the chart and text position. Valid values: 1 or 2.
[design.background]
Apply a background color, gradient, or image.
Uncomment (by removing #) an option to apply it.
Choose a light or dark text color by setting text_color_light.
Any HTML color name or Hex value is valid.
Background color.
color = "navy"
Background gradient.
gradient_start = "DeepSkyBlue"
gradient_end = "SkyBlue"
Background image.
image = "image.jpg"  # Name of image in static/img/.
image_darken = 0.6  # Darken the image? Range 0-1 where 0 is transparent and 1 is opaque.
Text color (true=light or false=dark).
text_color_light = true
[design.spacing]
Customize the section spacing. Order is top, right, bottom, left.
padding = ["0px", "0px", "0px", "0px"]
[advanced]
Custom CSS.
css_style = ""
CSS class.
css_class = ""
[chart]
#2 Style for generate chart
#Using JSON to generate a chart
json="../json/testData3.json"
#Using tag to generate a chart
id = "myChart"
chart_label = "Source Rank"
backgroundColor = "rgba(255,207,47,0.6)"
borderColor = "rgba(255,207,47)"
borderWidth = "2"
yGridLines = "false"
xGridLines = "false"
type = ""
data = "a:1,b:2,c:3,d:4,e:5"
+++
In the html file, If you want to using the the second choice, you need to
uncomment the code first, and then comment the getjson part. Also, you need
to put the html file to the theme file first.
chart.html

{{ $st := .page }}
{{ $columns := $st.Params.design.columns | default "2" }}
{{ $format := $st.Params.design.format | default "1" }}

  {{ if ne $columns "1" }}

      {{ with $st.Title }}{{ . | markdownify | emojify }}{{ end }}
      {{ with $st.Params.subtitle }}{{ . | markdownify | emojify }}{{ end }}

{{ if eq $st.Content "" }}

{{ else }}
{{ if eq $format "1"  }}

{{ $st.Content }}

{{ else }}

{{ $st.Content }}

{{ end }}
{{ end }}
{{ else }}

{{ with $st.Title }}{{ . | markdownify | emojify }}{{ end }}
{{ with $st.Params.subtitle }}{{ . | markdownify | emojify }}{{ end }}

	{{ if eq $st.Content "" }}

	{{ else }}
		{{ if eq $format "1"  }}

				{{ $st.Content }}

		{{ else }}

				{{ $st.Content }}

		{{ end }}
	{{ end }}
  {{ end }}

testData.json
{
"type": "horizontalBar",
"data": {
"labels": ["apple", "banana", "orange", "lemon", "punch", "melon", "pear", "cherry", "mango", "strawberry", "coconut"],
"datasets": [{
"label": "fruit value",
"data": ["23", "21", "19", "18", "17", "16", "16", "15", "11", "9", "9"],
"backgroundColor": "rgba(255,207,47,0.6)",
"borderColor": "rgba(255,207,47,0.6)",
"borderWidth": "2",
"hoverBorderWidth": "0"
}]
},
"options": {
"scales": {
"yAxes": [{
"categoryPercentage": "1.5",
"barPercentage": "0.5",
"gridLines": {
"display":false
}
}],
"xAxes": [{
"gridLines": {
"display":false
}
}]
},
"elements": {
"rectangle": {
"borderSkipped": "center"
}
},
"tooltips": {
"enabled": false
},
"hover": {
"animationDuration": "0"
},
"plugins": {
"datalabels": {
"color": "rgb(0,0,0)",
"anchor": "end",
"align": "end"
}
}
}
}
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/gcushen/hugo-academic/issues/1673#issuecomment-644668664,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAJ2JVF33VGJTWOFBS3V7TRW475XANCNFSM4MVV2VFA
.

@HughP Thank you for the reply, I will try it.

@HACLLALEX do you have a demonstration website working with this code? or a git repo? I'm trying to follow along on my own website.

@HughP  This is the git repo with this code.
The chart is designed to be a widgets.
html file location:

themes\academia-hugo\layouts\partials\widgets\chart.html

markdown file location:

content\home\chart.md

Json file location:

C:\alex\hugo\sites\hugo-with-chartjs\static\json

hope this helps

I make a shortcode to generate a chart by JSON and I have some update of my code.
For the shortcode, I add an HTML file and the location is

hugo-with-chartjs/layouts/shortcodes/chart.html

if you want to use this shortcode. You need to add the code like {{< chart id="[chartId]" json="[JSON]" >}} into the markdown file. Then, the Chart will be generated.
Simple location:

hugo-with-chartjs/content/home/shortcode.md

For the update of my code, To clearly for building chart.  I rewrite the HTML file which is designed to be a widget. If you insert id and a JSON into each tag like
 [chart]
 #Using JSON to generate a chart
 id = "myChart2"
 json="../json/testData4.json"

Then, the chart will be generated. Besides, I have kept the old version and the location will be

hugo-with-chartjs/themes/academia-hugo/layouts/partials/widgets/chart_16062020.html

my git repo is updated too. Please have a look at it.

@Bertbk
According to this new comment on Plotly repository, it is possible to load Plotly and MathJax v3. Has anyone tried this on Hugo + Academic?
https://github.com/plotly/plotly.js/issues/4563#issuecomment-647047186

@lucasfr It works like a charm! Thanks!
@gcushen Using plotly + MathJax 3 works with hugo+academic, provided this line is set before loading plotly (it's still kind of a hack...)

For others, if you are interested, this is part of my layouts/partials/custom_head.html file:
{{ if .Params.plotly }}

{{ end }}

A plotly = true parameters has to be set in the frontmatter of my markdown file where I want plotly to be displayed.

Thank you for the guidance, @Bertbk. Worked here too...

Hey guys, do you know why im failing to post my plotly charts? I'm saving then as html as i work with python and importing then using the shortcode
{{ $r := resources.Get (printf "plotly/%s.html" ($.Get 0)) }}
{{ $r.Content | safeHTML }}
then calling then with
{{< plotly-chart CHART_NAME_HERE >}}
its working well on local, but when i send the code to netlify i aways get runtime error. Does it have something to do with the template?

Hey, I and my team would like to give it a try if you allow us? @Bertbk @renegades12 @gcushen

Documentation: https://academic-demo.netlify.app/post/writing-technical-content/#charts

Is this in the 4.8 branch or the 5.0 branch. The netify hosted Academic site which has documentation for the chart in it has the latest version as 4.8 but I would expect a new feature to be added to the WIP version... Which one do I need to clone?

Is this in the 4.8 branch or the 5.0 branch. The netify hosted Academic site which has documentation for the chart in it has the latest version as 4.8 but I would expect a new feature to be added to the WIP version... Which one do I need to clone?

You want to clone the latest master


[CH]Reuse last WholeStageTransformer instead of creating new one in FileFormatWriter

Description
In #1925 ,  we introduced native parquet writer, and it will add an extra WholeStageTransformer_for_sort(which contains project and sort) in FileFormatWriter. So the last stage of a writing SQL would be like :  (WholeStageTransformer_origin) -> (WholeStageTransformer_for_sort) -> output
The fact that WholeStageTransformer_for_sort is separated from WholeStageTransformer_origin will cause problems:

we'll have to manually materialized all columns of WholeStageTransformer_for_sort's input, check this:

Let's say we're at spark 3.3 and meet the case in https://issues.apache.org/jira/browse/SPARK-37194 (which is not fixed until 3.4). For static partitioning, the sort column is actually a const value (so CH should be smart enough to skip the sort by knowing it's const) . However, since WholeStageTransformer_for_sort is separated from WholeStageTransformer_origin and WholeStageTransformer_for_sort reads input from a iterator, it  is not aware the sorted column is const(the constness metadata is lost). This causes WholeStageTransformer_for_sort perform unnecessary sort.

So let's reuse last WholeStageTransformer instead of creating new one in FileFormatWriter

due to https://github.com/oap-project/gluten/pull/3382#issuecomment-1774665349 , close it for now


Not able to fetch the css files on installing the module.

I did not see the css file in the node modules folder for react-select-input upon installation.

Hey @Akshay-Choudhary, thanks for noticing that! Please upgrade to v1.0.0 and you should find the CSS file in lib/.
Let me know if it works!

@Akshay-Choudhary You can just override the CSS in your custom stylesheet.
For example, you could do something like:
@import 'react-select-input/lib/react-select-input.css';

/* override react-select-input CSS with your custom styles */


Performance issue when use azcopy sync on huge file count (from 10.5.0)

Which version of the AzCopy was used?
Note: The version is visible when running AzCopy without any argument
AzCopy 10.5.0
Which platform are you using? (ex: Windows, Mac, Linux)
Linux
What command did you run?
Note: Please remove the SAS to avoid exposing your credentials. If you cannot remember the exact command, please retrieve it from the beginning of the log file.
azcopy sync 'https://ocrdatasetprodwu2.blob.core.windows.net/ocr-dataset/dataset/CDIP-IMAGES/20200611T022412/' 'https://ocrdatasetprod.blob.core.windows.net/ocr-dataset/dataset/CDIP-IMAGES/20200611T022412/' --recursive --delete-destination true
What problem was encountered?
azcopy sync will scan files both in target and source, but it is very slow. In my case, I have 20M files in both source and target. It took 14 hours but still not finish the scanning in target folder. And what's more, the CPU usage always 90+ percent.
I did the same actions with 10.4.3, it only took 2 hours.
How can we reproduce the problem in the simplest way?

Prepare a folder with 20M files in it.
Use azcopy copy to copy them to another container
Use azcopy sync '***' '***' --recursive --delete-destination true  to sync them again
In the third step, expect it can finish the scanning in 2 hours, but in my case it took 14 hours but still not finish scanning target folder.

OR
Ping me on Microsoft Teams, my alias is lchao
Have you found a mitigation/solution?
Roll back to 10.4.3

Hello,
I also have this issue: azcopy sync --recursive --delete-destination true is very slow on file share in my case.
This is the command i used for troubleshooting:
./azcopy_10.13.0 sync "https://<storage_source>.file.core.windows.net/asshared/?se=2021-11-04T17%3A11Z&sp=rl&spr=https&sv=2018-03-28&ss=f&srt=sco&sig=<sig>" "https://<storage_dest>.file.core.windows.net/asshared/?se=2021-11-04T17%3A11Z&sp=rwdl&spr=https&sv=2018-03-28&ss=f&srt=sco&sig=<sig>" --log-level ERROR --recursive=true --delete-destination=true
I made my tests on a Standard_A2m_v2 linux VM (2 vCPUs, 16GB RAM).
The destination storage does not get other traffic than my test.
Here are the number of files scanned at destination in 60s:

azcopy version
Nb files scanned

10.4.3
69185

10.5.0
17964

10.5.1
24966

10.6.0
26160

10.8.0
17365

10.9.0
2710

10.10.0
2265

10.13.0
3462

I made several tests and numbers change a little but stay in the same order of magnitude.
10.5.0 : "Improved scanning performance for most cases by adding support for parallel local and Blob enumeration."
1.9.0 : "Added scanning logs"
We can see a huge drop in scan performance!
I'm available to make more tests.


"NearDrop" can't be opened because Apple cannot check it for malicious software.

Getting this error, any workarounds?

Have you tried reading the readme?


refactor: implement vite and remove live-server

This pull request implements Vite as the development server.
I use vite to serve the demo file, replacing the live-server package due to its high-severity npm issues.
This change prepares the project for future enhancements and builds using Vite.

What kind of change does this PR introduce?
Change Type: Configuration Update

What is the new behavior?
No new behavior is implemented.

Implementation Details:
Add Vite configuration files.
Update scripts in package.json to use Vite for serving the demo.
Remove live-server package from dependencies.

With live-server:

With vite:

Nice suggestion.
Vite is definitely much more than a dev server, and I think it is a great option when starting any new web app.
However, I'm actually happy with the current build system which uses esbuild both for development and production builds (with differences only in minification and source maps).
I'm also using some ?hacks like building some files then importing them as strings, injecting styles, loading web worker as data URL, patching TypeScript definitions, ...etc I'm not sure vite will cover all these scenarios.
If it ain't broken, don't fix it :)
Maybe I should later on document the workflow and the justifications for those decisions in some contribution guides.
Long ago, this project used a library that used rollup under the hood for build. It was so much slower and error-prone. Esbuild is really really fast and I do not need to deal with inconsistencies between development and production builds.
I'm using the dev server only for demo purposes for some plain html files that cover different scenarios. The docs website uses docusaurus which has its own dev server. Maybe we still need to change live-server to a better package. However, I haven't had major problems with it.
I may even replace all these demo files with live playgrounds, since now we have LiveCodes. And then maybe we even get rid of the dev server all together!
Anyway, I will still try out your proposed changes and let you know about my thoughts. I'm out for the next 3 days. I will get back to you once I get a chance.
I'm really grateful for your contributions.
Thank you 💚

I'm grateful for your explanation 😄
Absolutely, I understand if your current setup with esbuild is working well and you're happy with it, there's no rush to change things up. It sounds like you’ve crafted a robust workflow with your customizations and optimizations.
Documenting your setup and decisions could be valuable for future contributors or for clarity within the project.
I'll go ahead and experiment with the vite on a separate branch to gain more experience and see how they fit with current setup.