Propose a new set of intrinsics considering tail and mask agnostic/undisturbed policy.

In PR #101, we propose _mt intrinsics to introduce tail policy argument without adding too many intrinsics. However, there are several problems in the design.

There is no intrinsic for tu,ma combination.
There is no intrinsic for ta,ma for multiply-add intrinsics because the destination of multiply-add could not be vundefined().
We use all-one mask and vundefined() to control the tail/mask policy. It is not an obvious way for users.
The code gen quality is not good for unmasked tail undisturbed intrinsics.

For the last point, we propose PR #116 to introduce _tu variant for unmasked intrinsics.
There are two styles in the current intrinsics. For unmasked ones, we append the suffix _tu to control the policy. For masked ones, we use the additional ta argument plus some implication rules to control the policy.
Ideally, we should make the design consistent. So, we are thinking about to append {tu/ta}, {mu/ma} to the intrinsic names. There are some reasons to do it.

{tu/ta}, {mu/ma} are parts of vtype. We already encode part of the vtype, e.g., i8m1, into the intrinsic names. It makes sense to encode {tu/ta}, {mu/ma} in the intrinsic names.
It is apparent to users to use it. There is no implication rules for all-one mask and maskedoff == vundefined().
It makes the design consistent between masked and unmasked intrinsics.

The only problem of the proposal is it will bring a whole bunch set of intrinsics. However, if we could reduce the header size of intrinsics. It should not be a serious problem. From https://reviews.llvm.org/D103228. It should be a solvable problem.
So, we propose the following new set of intrinsics for tail/mask policy.

Masked?
TU?
MU?
Intrinsic

No
No
N/A
vadd_vv_i8m1_ta(vs2, vs1, vl) and vadd_vv_i8m1(vs2, vs1, vl)1

No
Yes
N/A
vadd_vv_i8m1_tu(merge,vs2, vs1, vl)

Yes
No
No
vadd_vv_i8m1_tama(mask, vs2, vs1, vl)

Yes
No
Yes
vadd_vv_i8m1_tamu(mask, merge, vs2, vs1, vl)

Yes
Yes
No
vadd_vv_i8m1_tuma(mask, merge, vs2, vs1, vl)

Yes
Yes
Yes
vadd_vv_i8m1_tumu(mask, merge, vs2, vs1, vl) and vadd_vv_i8m1_m(mask, merge, vs2, vs1, vl)1

For multiply-add intrinsics or other intrinsics with the destination argument.

Masked?
TU?
MU?
Intrinsic

No
No
N/A
vmacc_vv_i8m1_ta(vd, vs1, vs2, vl)

No
Yes
N/A
vmacc_vv_i8m1_tu(vd, vs1, vs2, vl) and vmacc_vv_i8m1(vd, vs1, vs2, vl)1

Yes
No
No
vmacc_vv_i8m1_tama(mask, vd, vs1, vs2, vl)

Yes
No
Yes
vmacc_vv_i8m1_tamu(mask, vd, vs1, vs2, vl)

Yes
Yes
No
vmacc_vv_i8m1_tuma(mask, vd, vs1, vs2, vl)

Yes
Yes
Yes
vmacc_vv_i8m1_tumu(mask, vd, vs1, vs2, vl) and vmacc_vv_i8m1_m(mask, vd, vs1, vs2, vl)1

1 For backward compatibility before v0.10 intrinsics. The problem is whether we should support these intrinsics for long run or we should deprecate these intrinsics one day. If we should deprecate these intrinsics, we may need to issue warnings to users to avoid using them in the future.

May I ask how many of the new tail/mask types will support overloaded intrinsic functions. Thanks.

There are other cases that have not mention above:
Some cases like vector reduction or vslideup/vslidedown operations which do not need to have destination argument in ta and tama.

Masked?
TU?
MU?
Intrinsic

No
No
N/A
redsum_vs_i8m1_ta(vs1, vs2, vl)

No
Yes
N/A
redsum_vs_i8m1_tu(vd, vs1, vs2, vl) and redsum_vs_i8m1(vd, vs1, vs2, vl)1

Yes
No
No
redsum_vs_i8m1_tama(mask, vs1, vs2, vl)

Yes
No
Yes
redsum_vs_i8m1_tamu(mask, vd, vs1, vs2, vl)

Yes
Yes
No
redsum_vs_i8m1_tuma(mask, vd, vs1, vs2, vl)

Yes
Yes
Yes
redsum_vs_i8m1_tumu(mask, vd, vs1, vs2, vl) and redsum_vs_i8m1_m(mask, vd, vs1, vs2, vl)

@kuanlinchentw I think we could encode the policy in the end of function name, what do you think?
For example, vadd would have vadd_ta, vadd_tu, vadd_tama, vadd_tamu, vadd_tuma, vadd_tumu.

It's fine with me. Thanks.

I have a question about this new intrinsic design. For example, for the vadd intrinsics without the mask, what is the mean of N/A of the MU? row. Does that mean leaving the decision to the compiler? Why not let the users of intrinsics decide?

Compiler can help on choosing the best mask policy for nomask operations to reduce vsetvli instruction.
IMO, asking users to give the mask policy for nomask operations, it does not make sense to me.

Another question is: From the RISCV Spec 1.0, It says "Compares write mask registers, and so always operate under a tail-agnostic policy." So is there have vmseq_vv_i8m1_b8_tu intrinsic?

Compiler can help on choosing the best mask policy for nomask operations to reduce vsetvli instruction. IMO, asking users to give the mask policy for nomask operations, it does not make sense to me.

Thanks for your prompt answer. I agree with you.

So is there have vmseq_vv_i8m1_b8_tu intrinsic?
We won't have _tu intrinsic for compare instruction or mask instructions, Spec say "Compares write mask registers, and so always operate under a tail-agnostic policy." [1] and "the tail elements, are always updated with a tail-agnostic policy." for  mask instruction [2].

[1] https://github.com/riscv/riscv-v-spec/blob/master/v-spec.adoc#118-vector-integer-compare-instructions
[2] https://github.com/riscv/riscv-v-spec/blob/master/v-spec.adoc#15-vector-mask-instructions

We won't have _tu intrinsic for compare instruction or mask instructions

Is there also no _ta intrinsic? That is to say, only have vmseq_vv_i8m1_b8 for nomask operation and leaving the decision of vsetvl's tail policy to the compiler?

From my current understanding, I enumerate the possible cases for intrinsics. Can you help me with a review to see if there are any omissions or misunderstandings? Thanks.

mask policy and tail policy

7. Vector load

except mask load（vlm）

11.1. Vector Single-Width Integer Add and Subtract
11.2. Vector Widening Integer Add/Subtract
11.3. Vector Integer Extension
11.4. Vector Integer Add-with-Carry / Subtract-with-Borrow Instructions
11.5. Vector Bitwise Logical Instructions
11.6. Vector Single-Width Shift Instructions
11.7. Vector Narrowing Integer Right Shift Instructions
11.9. Vector Integer Min/Max Instructions
11.10. Vector Single-Width Integer Multiply Instructions
11.11. Vector Integer Divide Instructions
11.12. Vector Widening Integer Multiply Instructions
12.1. Vector Single-Width Saturating Add and Subtract
12.2. Vector Single-Width Averaging Add and Subtract
12.3. Vector Single-Width Fractional Multiply with Rounding and Saturation
12.4. Vector Single-Width Scaling Shift Instructions
12. Vector Fixed-Point Arithmetic Instructions
13. Vector Floating-Point Instructions

except 13.13, 13.15, 13.16

14. Vector Reduction Operations
15.8. Vector Iota Instruction ???
15.9. Vector Element Index Instruction
16.3. Vector Slide Instructions
16.4. Vector Register Gather Instructions

Masked?
TU?
MU?
Intrinsic

No
No
N/A
vadd_vv_i8m1_ta(vs2, vs1, vl)vadd_vv_i8m1(vs2, vs1, vl)1

No
Yes
N/A
vadd_vv_i8m1_tu(vd, vs2, vs1, vl)

Yes
No
No
vadd_vv_i8m1_tama(mask, vs2, vs1, vl)

Yes
No
Yes
vadd_vv_i8m1_tamu(mask, vd, vs2, vs1, vl)

Yes
Yes
No
vadd_vv_i8m1_tuma(mask, vd, vs2, vs1, vl)

Yes
Yes
Yes
vadd_vv_i8m1_tumu(mask, vd, vs2, vs1, vl)vadd_vv_i8m1_m(mask, vd, vs2, vs1, vl)1

mask policy and tail policy and vd get involved

11.13. Vector Single-Width Integer Multiply-Add Instructions
11.14. Vector Widening Integer Multiply-Add Instructions

Masked?
TU?
MU?
Intrinsic

No
No
N/A
vmacc_vv_i8m1_ta(vd, vs1, vs2, vl)

No
Yes
N/A
vmacc_vv_i8m1_tu(vd, vs1, vs2, vl)vmacc_vv_i8m1(vd, vs1, vs2, vl)1

Yes
No
No
vmacc_vv_i8m1_tama(mask, vd, vs1, vs2, vl)

Yes
No
Yes
vmacc_vv_i8m1_tamu(mask, vd, vs1, vs2, vl)

Yes
Yes
No
vmacc_vv_i8m1_tuma(mask, vd, vs1, vs2, vl)

Yes
Yes
Yes
vmacc_vv_i8m1_tumu(mask, vd, vs1, vs2, vl)vmacc_vv_i8m1_m(mask, vd, vs1, vs2, vl)1

only mask policy

7. Vector Store and Mask load（vlm）
11.8. Vector Integer Compare Instructions
13.13. Vector Floating-Point Compare Instructions
15.2. Vector count population in mask vcpop.m
15.3. vfirst find-first-set mask bit
15.4. vmsbf.m set-before-first mask bit
15.5. vmsif.m set-including-first mask bit
15.6. vmsof.m set-only-first mask bit

Masked?
TU?
MU?
Intrinsic

No
N/A
N/A
vmseq_vv_i8m1_b8(vs1, vs2, vl)

Yes
N/A
No
vmseq_vv_i8m1_b8_ma(mask, vs1, vs2, vl)

Yes
N/A
Yes
vmseq_vv_i8m1_b8_mu(mask, vd, vs1, vs2, vl)vmseq_vv_i8m1_b8_m(mask, vd, vs1, vs2, vl)1

only tail policy

11.4. Vector Integer Add-with-Carry / Subtract-with-Borrow Instructions

vadc.vvm, vadc.vxm, vadc.vim
vsbc.vvm, vsbc.vxm

11.15. Vector Integer Merge Instructions
11.16. Vector Integer Move Instructions
13.15. Vector Floating-Point Merge Instruction
13.16. Vector Floating-Point Move Instruction
16.1. Integer Scalar Move Instructions

vmv.s.x

16.2. Floating-Point Scalar Move Instructions

vfmv.s.f

16.5. Vector Compress Instruction

Masked?
TU?
MU?
Intrinsic

No
No
N/A
vmerge_vvm_i8m1_ta(mask, vs1, vs2, vl)vmerge_vvm_i8m1(mask, vs1, vs2, vl)1

No
Yes
N/A
vmerge_vvm_i8m1_tu(mask, vs1, vs2, vl)

ignore mask policy and ignore tail policy

11.4. Vector Integer Add-with-Carry / Subtract-with-Borrow Instructions

vmadc.vvm, vmadc.vxm, vmadc.vim, vmadc.vv vmadc.vx, vmadc.vi
vmsbc.vvm, vmsbc.vxm, vmsbc.vv, vmsbc.vx

15.1. Vector Mask-Register Logical Instructions
16.1. Integer Scalar Move Instructions

vmv.x.s

16.2. Floating-Point Scalar Move Instructions

vfmv.f.s

Masked?
TU?
MU?
Intrinsic

No
N/A
N/A
vmadc_vvm_i8m1_b8(vs1, vs2, carryin, vl)

only mask policy
7. Vector Store and Mask load（vlm）

I believe vlm.v and vsm.v are always tu and unmasked.

@kito-cheng I agree with your argument, but the API doc says, in reference to the legacy API:

Reduction intrinsics will generate code using tail undisturbed policy unless vundefined() is passed to the dest argument.

So I think you are proposing a backwards incompatible change.
I am OK with this backwards incompatible change, since I disagreed with several of the old defaults (although I understood their motivation). Frankly, I propose deprecating the legacy API. Less aggressively, if we're willing to break backwards compatibility but insist on keeping the legacy intrinsic names, I would just redefine them to alias the (new) "agnostic" instrinsics (_ta, _ma, or _tama as applicable).

Is there also no _ta intrinsic? That is to say, only have vmseq_vv_i8m1_b8 for nomask operation and leaving the decision of vsetvl's tail policy to the compiler?

Precisely. As you noted earlier, the spec says:

Mask destination tail elements are always treated as tail-agnostic, regardless of the setting of vta.

Our consensus is that it would be confusing to the intrinsics programmer to have tu intrinsics for these when there is no guarantee that the tail will be undisturbed. And without tu as an option, ta is redundant, so we decided to omit it from the API.
In terms of generating assembly, the compiler might choose tu or ta. For example, if the previous instruction uses tu, then the compiler might continue using tu for the vmseq --- even though it's not guaranteed to be tail-undisturbed --- in order to avoid an unnecessary change to vtype (a vsetvli instruction).

I'd like to expand on a point in my previous comment, that the meaning of {t,m}{a,u} changes subtly across the intrinsics/assembly interface. More generally, the vtype register is not explicitly exposed to the intrinsics programmer. This enables compiler optimizations, for example:

The programmer could use a tu intrinsic, and the compiler is allowed to implement it by masking and mu. This might be worthwhile if the appropriate mask was already available and tamu was already set in vtype, since it would avoid a vsetvli instruction.

the programmer could use a ta intrinsic, and the compiler could implement it with tu, knowing that "undisturbed is a valid implementation of agnostic". This might be worthwhile if tu was already set in vtype, since it would avoid a vsetvli instruction.

Whether or not contemporary compilers choose to leverage these optimizations, or plan to do so, isn't relevant to this API discussion.

@kito-cheng @nick-knight

I would suggest the semantic of redsum_vs_i8m1(vd, vs1, vs2, vl) and vmacc_vv_i8m1(vd, vs1, vs2, vl) should be ta rather than tu, although that could be optimize to ta by compiler in theory, but reduction and macc instruction might used as loop carried variable which result the def-use of the dest register are both tu, then it hard to optimized to ta.
And the tail element are usually unused on most cast especially for reduction, so I think it would be great to set that to ta, and we already provide _tu variant, so user could use that explicitly using that.

We change the behavior of our GCC(compare with llvm) based on our experience with using intrinsics. So these intrinsics behave as you suggest in our internal GCC.  And if the redsum_vs_i8m1_i8m1(vd, vs1, vs2, vl) be ta, then vd parameter is not necessary. I think the breaking change of removing the vd parameter of the redsum_vs_i8m1_i8m1 is necessary.

@nick-knight

I believe vlm.v and vsm.v are always (EDIT ~tu~) ta and unmasked.

You are right. Thank you for your review.
So move vlm and vsm to ignore mask policy and ignore tail policy category.

Is it tu or ta for these _m legacy intrinsics(e.g. vmacc_vv_i8m1_m)? I think ta is more commonly used.

We will make a PR for these new set of API in next week to make anything clear, sorry for the inconvenience.

Thanks @zakk0610, I agree a PR would help us review this more efficiently. I will hold off on further comments.

Looking forward to the new PR, thanks.

@kito-cheng  @zakk0610. Hi, Can you tell me redsum_vs_i8m1 api is going to be redsum_vs_i8m1(vd, vs1, vs2, vl) or redsum_vs_i8m1(vs1, vs2, vl) ? The argument is different. I want to confirm about this. Thank you.

Please look at https://github.com/riscv-non-isa/rvv-intrinsic-doc/pull/137, we could have discussion there.

Closing this issue since https://github.com/riscv-non-isa/rvv-intrinsic-doc/issues/47 have landed. Thanks everyone for all the efforts.


Create tower_of_Hanoi.py

Fixes issue:

#29 Add a tower of Hanoi Game
Changes:

Add a tower of Hanoi Game

Thank you for contributing @Mjcev
Keep it up


glassbreak and motion sensor support

First of all, thank you so much for this plugin! it works more consistently than a previous one I tried (that one was solid, but often didn't update the alarm status and camera never work nor automations), AND the cameras actually work!! Some feedback however in your plugin you mentioned the motion sensor has no state, but in SS3 they have silent notifications and can be detected by HomeKit (not sure if this is new or what, but the other plugin had it) thought I'd share that and ask if you plan on supporting it. Thank you, def donating! I was so close to returning SS3 and going with Abode which would've cost me $600 dollars more

Glad you found this plugin, I agree its more stable.
Not sure what you mean by "silent" notifications? The glass break and motion sensors only report state while the alarm is armed. Meaning when the system isnt armed they will always show "no motion" which is both inaccurate and not helpful assuming that someone would want to setup automations based on motion. Notifications are provided for the other sensors, contact sensors, etc. Are you saying the other plugin provided motion notifications even when the system was disarmed—are you sure? AFAIK there is no working alternative solution to this, unless something has changed.

Hi @nikonratm thanks for the input! Basically, the motion and entry sensor don’t send notifications when system is off, by default but they send “secret alerts” which i think what the other plugin was leveraging. Am I incorrect in my understanding? I don’t have the other plugin anymore so I can’t test the motion sensor anymore. I hope i didn’t confuse another sensor for the motion... i attached screenshots for contact and motion with the secret alert. Maybe I’m confused about that setting, but when the system is off and door is open and i have secret alerts then my phone gets notified and with the other plugin it logs the entry was opened. Thanks again!

Interesting, thanks for bringing this up, I think it’s new as I had never seen this before!
I switched secret alerts on for one of my motion sensors, I’ll test them out over the coming days and issue an update to include support if they do work properly!

Oh wow, I was not aware of that "secret alert" setting. It seems that motion and contact sensors behave differently in that when a contact sensor is set to "disabled" it still sends a push notification via the API which allows us to use it in this plugin (but without getting an alert via SimpliSafe app). Motion sensors on the other hand do not send any notification via API unless its set to a "secret alert" (or alarm). I just tested this and I did in fact get notifications via the API.
My only hesitation is that it might be a bit confusing for people but I guess we can add this as a caveat in the setup instructions? What do you think @nzapponi

Ps. I can volunteer to implement this

Glad I’m of help! My thinking was since their sensors look nice and to avoid buying another brand and install more apps, i can put one in the bathroom etc and set to secret alerts to turn on lights or trigger the dimmer switch. Thanks again fellas!

That’s awesome. I think we should implement it and describe in the instructions how to set it up.
Contact sensors work differently in that they have a state that is always provided.
The only annoying thing which seems to be happening is that if I turn secret alerts on in the hallway motion sensor, moving in front of it triggers an “event” and therefore my living room camera starts recording, making the privacy shutter open, which is definitely not something I want.
 I can do it on Monday, but if you feel like having fun on this on a Sunday, you’re more than welcome to 😉

See here regarding the behavior I described above with the camera: https://simplisafe.com/forum/customer-support-forum/installing-and-using-simplisafe/secret-alert-triggers-camera

So this applies for all Cameras? Like i have four cans if the sensor sends a secret alert all four record lol? Its not a big deal i guess...

Okay if I am right it is the hiddenevent. That does this call. I knew it was on the original and now I know where on the v3. Great... I will make changes :)

I submitted an initial PR for motion sensor support. I dont have a glass break so not sure about that one.
Should we think about adding a config "toggle" for this? As in, by default motion sensors dont show up since I suspect most people will not be using "silent alarm" setting (the camera privacy shutter thing is pretty annoying) unless you enable the config setting. That way only people who use "silent alerts" can optionally enable support?

I added more explanation to the readme, I suppose that might be enough information to leave it to users to understand the limitations and decide what they want to do without necessarily implementing the config toggle idea.

Thanks for this. I’ll review this first thing on Monday! I think I have a pretty cool idea on how to minimize confusion for the end user, I’ll test it out on Monday and report results back here!

Just released this in v1.4.0. Can anyone please try it?
Please take a look at the readme too! For data consistency, motion sensors will only appear if they are configured with Secret Alert or Alarm in every alarm mode. This is to ensure data consistency in the Home app.
Any feedback is appreciated!
If this works well, we can move to other sensor types with similar settings.

@nzapponi sweet! I’ll test today and report back. Explanation in readme is clear and make sense.

I can confirm this is (still! =) working for me. A couple of notes:

Now that I had previously setup the accessory in HomeKit, changing the SS settings to "disabled" for Off / Home doesn't actually make the motion sensor disappear in HomeKit. I still see that (helpful!) 'warning' in the log Sensor xxx requires secret alerts to be added to Homebridge but of course its kinda inaccurate in this case. Do we need to explicitly remove the accessory? If I follow plugin logic correctly on the initial run of the plugin after restart it calls refreshAccessories with addAndRemove set to true, do we need to explicitly remove the disabled sensor(s) during that call?
This little feature also points out another related issue which is that the plugin isnt updated when SS settings change (I noticed this before with camera settings). Im pretty sure theres no socket event to notify the plugin of settings changes so I guess is in order to implement "dynamic" updating of SS settings we'd need to setup another polling method, which perhaps is kinda icky, not to mention whatever other challenges of this. But yea, just mentioning. And if we dont implement, perhaps also worth noting in the readme ("changes take effect after plugin is restarted").

Thoughts?

I hate polling and you can with the api use it to change those settings to secret alerts secondly there is tricks that you can do to update setting changes about the camera but why bother. Just pull the stream without settings so those setting come automatically. Also the camera does have a socket.io being pushed which gives you status updates on the camera. Offline online updating etc.
I wish SS did push out the socket.io with more data.

I confirm that this is by design.
Regarding the point of sensors not disappearing, this is due to the fact that in the past I have experienced Homebridge suddenly removing and re-adding accessories, meaning that all scenes & automations were lost. As a result, the plugin doesn't automatically clear the existing accessories unless you tell it to do so: just add "persistAccessories": false in the config and it'll remove accessories that no longer exist (see Readme)!
Now, regarding SS settings changing, I agree, the only way we can do it today is via polling, and I feel that the situation is bad enough already with the rate limiting / throttling that SS applies to their API endpoints to add any further API calls. I think the compromise for the time being (at least until we better understand the rate limiting) is to ask users to restart Homebridge following a config change.
Far from ideal, I know. Any ideas or feedback about this?
I'll check if there's an event that specifically defines a config update, but I can't recall seeing one in the past!
Hope this makes sense

My idea behind forcing users to set up secret alerts for every alarm mode on a sensor is my belief (potentially wrong!) that if someone wants to use a motion sensor for something, they want that to work at all times. So it only makes sense that secret alerts are always on.
I personally keep them off due to the camera behavior and the annoying privacy shutter click, but if I did turn it on, I would have it always on!
Would you agree?

Yea the settings thing doesnt seem worth it, I forgot about the rate-limiting annoyance too.
But the first issue where the "disabled" motion sensor doesn't automatically disappear after you disable it does feel a bit like unexpected behavior. As in, the plugin is "smart" enough to detect whether the sensor will function properly but only the first time you run the plugin? Here's what I was thinking to change it to:
let uuid = UUIDGen.generate(sensor.serial);
let accessory = this.accessories.find(acc => acc.UUID === uuid);

// Check if secret alerts are enabled
if (sensor.setting.off == 0 || sensor.setting.home == 0 || sensor.setting.away == 0) {
     this.log(`Sensor ${sensor.name} requires secret alerts to be added to Homebridge.`);
     if (accessory) {
          // Sensor won't work properly so we remove it from HomeKit
          this.removeAccessory(accessory);
          this.log(`Removing disabled sensor ${sensor.name}`);
     }
     continue;
}

I mostly agree with you that if someone wants a motion sensor they want it to work all of the time but then again I can perhaps imagine a scenario where someone only cares about motion alerts (in HomeKit) when their system is armed. Theres no "right" answer I think, Im sure people will have their own opinions but I guess my thinking is for the plugin to be 100% consistent. Either we show the motion sensor all of the time and let the user decide whether they want a partially-functional sensor in HomeKit or we go all-the-way with the current version where the plugin just doesnt let you have the sensor in HomeKit unless it'll work all of the time.
Thoughts?

I think we're mixing up two separate issues here:

Should the motion sensor work with secret alerts only being enabled some of the time?
Should the plugin automatically remove accessories from Home once they're removed from SimpliSafe?

Regarding point 1, I think we can go either way, I don't mind. The rationale behind not allowing it to begin with is down to consistency of data in the Home app, but I'm open to changing it if people feel that it would still be useful with partial functionality. @afalahi , what are your thoughts here? What's the use case for you using a SS motion sensor in the Home app?
Regarding point 2, the obvious answer should be yes, however I did have some trouble with the plugin clearing out all accessories at times, making it really annoying to set up again. I never managed to troubleshoot it properly but I suspect it might have been due to the API not being reachable due to rate limiting when initializing Homebridge, causing the plugin not to find any accessories and thus clearing existing ones. I'd love to find a better way of managing this, or a way to better troubleshoot the issue so that we solve for it once and for all, and remove the need for persistAccessories altogether. I agree, this one is not user friendly at the moment... @nikonratm any ideas? Have you ever had this with any other Homebridge plugins?

I dont have experience with that particular issue no. I agree its sort of mixing the two issues but I was just addressing this one question which is exactly the overlap between the two issues. But I wanted to tackle the removing just for this specific case, not for the situation where the entire accessory is removed from the SS system. In this situation I think the little snippet above would do it. Again, assuming that is the final decision!

Mmm I'm not too keen on adding a workaround just for one accessory... what you're doing is effectively overriding persistAccessories for motion sensors. I'd rather solve the bigger problem if you don't mind!
Could we test keeping "persistAccessories": false for a week or so and see if it works fine? If it does, I'm happy to set the default to false, which will then make the motion sensor act exactly like you expect it to. What do you think?

Really weird how they don’t push notifications for a removal and yet they have it for adding of a sensor device. I guess it because they think that if you buy a sensor your going to use it and not remove it. I’ll have to look into the api more to figure that out.

@nzapponi Totally see your point there. I will test out "persistAccessories": false (creating a backup with third party app right now! 😳)


Fix: use hac-dev as COMPONENT

Fixes

Quick fix for PR checks that are breaking hac-core deploys.
Description

Fixes an issue that causes bonfire to deploy hac-core incorrectly in PR checks for e2e.

/lgtm

/approve


Razzle momentarily rendering the page before styling is applied

I'm using default create-razzle-app using the default components and css. The page content is being loaded and displayed before styling is rendered.
This is not a good UX experience. Would it make more sense to load the bundle so all styling is available before rendering an unstyled page?
thanks

This is only in dev since everything is loaded via js.

thanks.


How to open new tab when generating pdf

Hello,
Is there any documentation on how to open new browser tab to preview the PDF when i click generate PDF button?

Not sure about opening a new tab but there is an option to open a preview modal:
<vue-html2pdf
     :preview-modal="true"
>

[SOLVED]
I just did this to beforeDownload function :
window.open(pdf.output('bloburl'), '_blank');


Cherry-pick graceful LB changes

Cherry-pick commits 4aeb1fc0edaf28dbc610b0bc0c164a498a85a2dd and 2af06a083b9710f1a9711934b4c0aa6e0bd136e0 to the bump_17.06 branch.  These commits combined allow libnetwork to gracefully remove load balancing endpoints while not disconnecting the backend endpoints until they finish servicing existing connections.

how was this tested?

The TestRollingUpdate e2e test validates this change.  Flavio updated it to
activate under the appropriate versions of EE and tested that it passed.
The PR to merge his change into e2e is here: https://github.com/
docker/e2e/pull/206 .
Cheers,
-- Chris Telfer
On Thu, May 24, 2018 at 1:50 AM, Mehdi Ghazizdeh<EMAIL_ADDRESS>wrote:

how was this tested?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/docker/libnetwork/pull/2157#issuecomment-391596415,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AK8iXpeUX-5Go1JD0U7Zfq4YjEPhDOHpks5t1kolgaJpZM4UJeZA
.

cherry-picked commits come from https://github.com/docker/libnetwork/pull/1824 and https://github.com/docker/libnetwork/pull/2112


Use Environment.NewLine in AppendIndentedString

Replace assumption of \n with a different assumption...
This behavior could be perhaps stored in JsonOptions, similar to JsonOptions.PrettyPrintIndent as someone may want a specific line-ending instead of their system standard.

Looks like it'll take a bit of unit test tweaking.

Thanks for finding this and just creating a PR.  Looks like the failing test is JsonValueToStringTest.GetIndentedString_Object_ReturnsCorrectIndention

@schwjm if you can fix the failing test, I'll approve the PR an merge in.  I have a few other issues to resolve in a patch as well.


[AddressLowering] Factored out unconditional_checked_cast rewriting.

Previously, there were three places where unconditional_checked_cast instructions were rewritten as unconditional_checked_cast_addr instructions:

from address-only
to address-only
neither

Here, all three are made to factor through the new rewriteUnconditionalCheckedCast function.

Replace this paragraph with a description of your changes and rationale. Provide links to external references/discussions if appropriate.

Resolves #NNNNN, fix apple/llvm-project#MMMMM.

@swift-ci please test

@swift-ci please test and merge

@swift-ci please test linux platform


Can we resize the panels ?

I'm playing wit the storybook and it looks like I can't resize a panel and I can only move them around. Can you confirm ?
Thanks

yes! as of version 2.0, but i still need to deploy the new storybook.


Add conda recipe

@timkpaine do you mean, "get jupyter celltests onto conda-forge" (from where it could be taken into the "defaults" channel too)? Or just have a recipe here in the celltests repository, to use for building "our own" conda packages (e.g. on travis, which we might then make available somewhere)?
(The first one makes more sense to me in general. But you could also consider having a 'timkpaine' conda channel where you make available conda packages you've built.)

the former

xref https://github.com/conda-forge/staged-recipes/pull/11425

https://anaconda.org/conda-forge/nbcelltests


The Game always into NO RESPONDING mode when use Speed Limt control. And other bugs.

The Game always into NO RESPONDING mode when use Speed Limt control.
Lane controller is not friendly to use, when adjust the lanes, the point always change to a banned cursor, and cannot be rescovered, unless reactive the function.
Some Road Intersection cannot set NO TURN. Some Intersection will not work properly,
When click "reset the stucked people & vehicle", Buses will stuck at arrived stations.
Mod will influent the performance of the game.
Intersection settings buttion always overlap on compounded road intersection settings, such as CSUR

Why did you remove template... Provide more info plus add log.

Already solved in 11.6.6+ (Test, soon in Stable)
Already solved in 11.6.6+
I have no idea what does that mean, no one reported anything similar. Create new issue and describe the problem in details, add screenshot, maybe record short clip showing the problem?
I've never heard of that issue. That feature does not affect any vehicles other than passenger cars. Use Compatibility report mod to search for incompatible mods.
Will or is currently influencing performance? How much? Did you test it properly to know it's this mod and not any other you use?
CSUR roads use numerous hacks to even work properly. Create new issue, provide some screenshots etc.

You didn't provide any info about your system, used mods, city size. I can't say anything else.

Thank you for your answering!
The 3rd, I means that I set the road intersection with NO U-TURN,but it still make U-TURN.
I'm now in game, later I'll upload a log about I was described problem above.

2022-08-05_122008.zip

That is crash log, from +-2 days ago, completely unrelated to this mod. See here https://github.com/CitiesSkylinesMods/TMPE/wiki/Share-your-Cities-Skylines-log-file
U-turn works for new paths, so you need to wait for a while (assuming you have reckless driver setting at 0%, otherwise some percentage may perform u-turn regardless of settings)

Closing due to inactivity. Create new issue (one per problem) if necessary,


Build error when using Cocoapods frameworks

Hi,
I've been using libjingle_peerconnection for some time using Cocoapods (pod 'libjingle_peerconnection', '~> 9024.2') and it worked fine.
Now I'm having build error after I added pod which is written in Swift. That pod required using framework instead of static libraries (use_frameworks! command in Podfile). Now when I want to import files I'm getting "Could not build module 'libjingle_peerconnection'" build error.
Problem is that compiler wants to build RTCNSGLVideoView class which, of course, shouldn't be built. Do you know how can I remove that class for building? I've tried removing it from libjingle_peerconnection.framework pod target but it didn't help.
Please see attached screenshots for more details.
Hope this helps and great job overall!

I faced same issue. @josipbernat have you found any solution?

Unfortunately I didn't find solution. Previously I built library using this shell script https://github.com/lunastorm/webrtc-ios and I'm using that .framework until this problem isn't fixed.

I'm having the same problem. I noticed that when using use_frameworks! that there will not be a dynamic link library for  libjingle_peerconnection. could it be that it only has header files? maybe adding a fwdummy.m class can help?

Any update on this one? Thanks!

Is there any solution for this issue?

Same issue here. Objective-c-based pods depending on static libraries can't be used in conjunction with swift based pods.
As fast as Swift is growing in popularity this is going to have to be looked at.

https://github.com/otalk/iOS-demo/issues/10#issuecomment-107152292 helped me

Create script that make apple WebRTC frameworks from libjingle_peerconntection repo, also upload to cocoapods. https://github.com/sdkdimon/WebRTC-appl-framework

Working on this ASAP. Do we just need to publish a pod using a framework?

it looks like frameworks cannot include static libraries. i think cocoapods has a bug but you can add webrtc to the root level. look at  http://stackoverflow.com/questions/34553684/import-objective-c-framework-cocoapod-into-swift


Simplify FlashAlgorithm::assemble_from_raw

This PR - step-by-step - gets rid of the very cryptic loop in assemble_from_raw. This code was very confusing so I've included every single step I made in a different commit so you can catch any mistakes I made.
This PR also fixes a suspected issue where the stack may overlap with the data pages

I promise this PR does not cause [2/4](nRF5340_xxAA) - Error message: Failed to open probe with selector 1366:1054:000960167765: An error specific to a probe type occurred: A USB transport error occurred.: timed out (also present in #2092 )


When downloading an Excel file in Gmail, it turns into a .txt file

Expected Behavior

A client has sent me an .XLSX file, i want to download it to my compuster

Current Behavior

The file is saved, but without an extension. When i rename it to an .xlsx file, it works and i can open it.

Screenshots (if appropriate):
Possible Solution

Steps to Reproduce (for bugs)

Receive a file with .xlsx extension as attachment in gmail
Download the file from the e-mail message

Context

Your Environment

Franz Version used: 5.0.0-beta.10
Operating System and version: macOS High Sierra ver 10.13

Duplicate of #81


Phaser.Math.midpoint(x1,y1,x2,y2)

Thought it would be useful to have a function for determining the midpoint between two coordinates. It's a pretty simple formula and has tons of applications for game logic:
function getMidpoint(x1, y1, x2, y2) {
var midX = (x1 + x2) / 2;
var midY = (y1 + y2) / 2;

return [midX, midY];

}

I personally prefer to do 'less' in the Math util (I had a whack at throwing @deprecated all over a year ago), especially when such is not complicated to do locally ..

This exact function is already available in Line.midPoint, but I can see it could be useful for Point objects too, and just generally. So I don't mind adding it, because it's already in the code base, but it needs to be added once, in one single place, and then all the other functions can use that one single implementation.

Also there are Phaser.Point.interpolate() and Phaser.Math.linear()
I don't think we need 4th implementation of same thing.

Yes those two could be merged into one single call, but they don't do the same thing as midPoint does.

Ok I'm going to close this one off. The feature is available already in the Line class and I'm trying to minimise changes to the API.

Just to add, this is also what Point.centroid returns when passed two points.


'ng-template' is not a known element:

I am getting following error
Unhandled Promise rejection: Template parse errors:
'ng-template' is not a known element:

If 'ng-template' is an Angular component, then verify that it is part of this module.
If 'ng-template' is a Web Component then add "CUSTOM_ELEMENTS_SCHEMA" to the<EMAIL_ADDRESS>of this component to suppress this message. ("" (click)="!option.isLabel && setSelected($event, option)" [class.dropdown-header]="option.isLabel">[ERROR ->]<ng-template [ngIf]="option.isLabel">{{ option.name }}<a *ngIf="!option.isLabel" href=""): MultiselectDropdown@0:2214 ; Zone:  ; Task: Promise.then ; Value:

This is a breaking change with angular 4, there's already an issue raised.

Please refer to #168 for updates.


[WIP] i2c_spi_buses: add '-q' for quiet startup flag

And enable for optional board sensors.
E.g:
nsh> ist8310 start -X
WARN  [SPI_I2C] ist8310: no instance started (no device on bus?)

Fixes  #14946
@davids5 does this work for you?

I was going to suggest printing all the attempted buses (and optionally i2c addresses) tried, but I suppose that will make a mess of the intended cases.

Merged in current master and added -q to all the optional external i2c peripherals in rc.sensors.


[CLOSED] requesting apoc-#.#.#.#-core.jar be available from maven

 Issue by Dcanzano
Wednesday Aug 04, 2021 at 19:46 GMT
Originally opened as https://github.com/neo4j-contrib/neo4j-apoc-procedures/issues/2147

Feature description (Mandatory)
requesting apoc--core.jar, i.e. the same which is delivered to labs/ be available via a maven repository.  Today the only thing available it apoc--all.jar
How this feature can improve the project?
Would like to download apoc--core.jar via maven as it is same as what is in labs\

 Comment by klauspgross
Friday Aug 20, 2021 at 18:47 GMT

We are using only the capabilities exposed in the core in our product and don't want to include the entire tar ball of apoc in our deployment.  To do this, our CI/CD pipeline requires a maven repository and we don't want to maintain our own for apoc-core maven repo


Executing git tfs reset-remote help command reports null pointer exception

Hi,
I'm trying to run following command git tfs reset-remote help and I getting standard .NET exception returned to me in command line: Object reference not set to an instance of an object.
Though, when I revert command to git tfs help reset-remote (help word goes before reset-remote) I get expected result.
All other commands seems provide identical output, without any exceptions regardless of position of help keyword.

This would work if you used git tfs reset-remote --help  instead of git tfs reset-remote help
Pls close the issue

Indeed that could be improved but not a high priority...


ZoomToExtent and ZoomSlider overlap on each other

The built in control.ZoomToExtent() and control.ZoomSlider() would overlap on each other when added to the same map.
I tried to add them in different sequences, but the issue continued. The latter added one would always appear on top of the former added one.
Can I put the zoom slider somewhere else by passing some parameters when creating it using the following code?
map.addControl(new ol.control.ZoomSlider());

Want to back this issue? Place a bounty on it! We accept bounties via Bountysource.

I would like to know that too!

@zalf Finally someone replied, more than one year later...
My solution is stopping using ZoomToExtent control.

I should be doable with CSS. Have you tried that?

I like to try it with CSS, but I don't know how.

It's been too long. No longer have the access to the codes. Can't recall the details.
—
Sent from Mailbox
On Fri, Aug 28, 2015 at 6:54 PM, Marc Jansen<EMAIL_ADDRESS>wrote:

I should be doable with CSS. Have you tried that?
Reply to this email directly or view it on GitHub:
https://github.com/openlayers/ol3/issues/2046#issuecomment-135738860

You could try:
.ol-zoomslider {
   top: 110px; /* or whatever you want */
}

See: http://jsfiddle.net/hk1nrekq/

Ok, that loks good.

I just tried it, it works without further references! Thank you very much!


Switch route53 provider to the official AWS SDK

Fixes https://github.com/rancher/rancher/issues/3257
Fixes blocking issue for accounts with many zones
(only the first 100 zones where parsed)

@janeczku thank you! Is there a corresponding catalog PR? I'm going to version next external dns release as v0.4.0

@alena1108 Yes there is 😄  https://github.com/rancher/rancher-catalog/pull/145
Note, that i pushed an additional patch the let's users specify the hosted zone ID in case that there are multiple zones for same domain name (e.g. one private, one public). Currently we would arbitrarily use the first zone matching the name in the list returned by the API.

@janeczku

Note, that i pushed an additional patch the let's users specify the hosted zone ID

:thumbsup: you rock
Could you share what kind of tests you've executed against your PR? Something like: added service with port exposed, made sure it got programmed to route53. Scaled up the service, made sure one more IP was added to the A record. Scale down, service remove, etc.
I'm going to test this PR locally myself sometime early next week.

@alena1108
Tested:

Added service with exposed port and made sure IP was added to A record
Removed service with exposed port and made sure IP was removed from A record
Start service with hosted zone name
Start service with hosted zone name and hosted zone id

Not tested:

Scaling

@janeczku sorry for delay with releasing the image, got swamped by other projects and couldn't test those extra use cases for scale. Any chance you could test the scale up/down scenarios locally? If that works, I'll release.

@alena1108 NP. I'll do the scaling test case tomorrow (now :sleeping:-time on this side of the pond).

@janeczku thank you :)

@alena1108 see amended tests above: https://github.com/rancher/external-dns/pull/31#issuecomment-206990537

LGTM


Skip key lookup if we already have arn

Skip calling the api and fake the KEY_METADATA cache entry.

+1


The compiler issues field comparisons for loops at the SSA level

Aim
Consider the following code:
fn main() -> pub Field {
    let mut x = 0;
    for i in 0..10 {
        x += i;
    }
    x
}

Expected Behavior
The compiler is generating a comparison of i with the range 0..10 as can be seen in the following SSA:
Initial SSA:
acir fn main f0 {
  b0():
    v1 = allocate
    store Field 0 at v1
    jmp b1(Field 0)
  b1(v2: Field):
    v4 = lt v2, Field 10
    jmpif v4 then: b2, else: b3
  b2():
    v5 = load v1
    v6 = add v5, v2
    store v6 at v1
    v8 = add v2, Field 1
    jmp b1(v8)
  b3():
    v9 = load v1
    return v9
}

Which is a comparison with field operands, but the compiler does not allow the user to perform a similar kind of comparison themselves:
error: Comparisons are invalid on Field types. Try casting the operands to a sized integer type first
  ┌─ src/main.nr:5:12
  │
5 │         if i > 1 {
  │            -----

Bug
Since loops are unrolled for ACIR, this field comparison never reaches ACIR gen and is simplified away before. But for brillig, loops are runtime and the field comparison reaches brillig gen. This makes brillig having to handle Field comparisons generated by the compiler itself via casting to integer types.
To Reproduce

Installation Method
None
Nargo Version
No response
Additional Context
No response
Would you like to submit a PR for this Issue?
No
Support Needs
No response

Note for when this is fixed, we can remove handling of this in brillig. See https://github.com/noir-lang/noir/pull/1973#discussion_r1268322967

For reference: This is fixed if:

Cast x to an integer
Allow field comparisons to extend to > and <
Use a default type which is not a Field

Have opened #2008 which feeds into this as just allowing Field to have < and > would be a possible fix


Array of Hashes

I see that this supports simple arrays. What about array of hashes..
My Profile model has a links hstore array column...
The correct fields should be..
profile[links][][name]
profile[links][][url]
but I keep getting...
profile[links][name]
profile[links][url]
I've played around with build_link and build_links.. but no go..

Could you show some code, to see what you tried?

I got it working with the following in my model..

 def build_link
    {"" => ""}
  end

and this in the partial for dynamic fields.

= f.text_field "][name"
= f.text_field "][url"

this is my partial for the existing fields..

= f.label :name
= f.label :url


GetAssertionFromXMLDoc(XmlDocument SAMLXML) doesnt seem to work

I get an exception in GetAssertionFromXMLDoc. It looks like there is a new MemoryStream being instantiated but doesn't contain the XML.

Joe, there are some issues with the current code. It is in an unfinished state in some parts. I hope to have a PR that addresses this shortly.
Thanks for taking a look at it and the interest though.

I think this will fix the issues you were seeing. It's upgraded to VS2013 so hopefully that won't cause any issue for you. However the full stack works now with Identity Provider -> Service Provider -> Target
https://github.com/covermymeds/saml-http-post-reference/pull/3


Error while performing "init" step: Error: connection not open

Which Caliper version are you using?
v0.4.0
Which Node.JS version are you using?
v10
Which operating system are you using?
Ubuntu 20.04 lts
Please provide some context for your error. For example, when did the error occur? What were you trying to achieve, and how?
Hello,
I am new to Hyperledger Caliper and I would like to benchmark my Besu (IBFT2) private network by adding the URL (websocket) of its RPC endpoint, in the networkconfig.json located in networks/ethereum/1node-clique.
What was the observed incorrect behavior?
When I am trying to launch caliper, I’m gettting an error message which indicates that Caliper cannot communicate with my  private network.
Logs seem to indicate that Caliper cannot communicate with my private network and I don't understand why since my private network is running.
Please provide the error logs and their surroundings.
Here are the logs:

2022.02.25-00:22:34.962 error [caliper] [caliper-engine]        Error while performing "init" step: Error: connection not open
2022.02.25-00:22:35.818 error [caliper] [cli-launch-manager]    Benchmark failed with error code 4

Please provide your network configuration file content, if possible.
Here is my networkconfig.json:
{
    "caliper": {
        "blockchain": "ethereum",
        "command" : {
            "start": "sudo docker-compose -f ./networks/besu/1node-clique/docker-compose.yml up -d && sleep 60",
            "end" : "sudo docker-compose -f ./networks/besu/1node-clique/docker-compose.yml down"
          }
    },
    "ethereum": {
        "url": "ws://xx.xxx.xxx.xxx:8546",
        "contractDeployerAddress": "0xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
        "contractDeployerAddressPrivateKey": "0xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
        "fromAddressSeed": "0xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
        "transactionConfirmationBlocks": 2,
        "contracts": {
            "simple": {
                "path": "./src/ethereum/simple/simple.json",
                "estimateGas": true,
                "gas": {
                    "query": 100000,
                    "transfer": 70000
                }
            }
        }
    }
}

Please provide any additional information you deem relevant to the error.
Here are the commands that I’m using:
npm init -y
npm install --only=prod \<EMAIL_ADDRESS>npx caliper launch manager \
    --caliper-bind-sut besu:latest \
    --caliper-workspace . \
    --caliper-benchconfig benchmarks/scenario/simple/config.yaml \
    --caliper-networkconfig networks/ethereum/1node-clique/networkconfig.json

There is some detail on making the besu artifacts in this repo work, see #172 for more info to see if it helps you

Hello @davidkel,
Thank you very much for your answer!
It working fine with "ws://localhost:8546" !
However, when I reproduce the same steps, in order to benchmark my Besu private network by adding the URL ( "ws://xx.xxx.xxx.xxx:8546") of its RPC endpoint, I get the following logs:
2022.03.03-19:41:51.662 error [caliper] [caliper-engine]        Error while performing "install" step: Error: connection not open on send()
...
...
...
2022.03.03-19:41:51.664 error [caliper] [cli-launch-manager]    Benchmark failed with error code 5

I'd like to mention that I didn't merge all commands into a single one and my private network is running. I can see transactions on my block explorer.
What did I do wrong ?
Here is my networkconfig.yml
{
    "caliper": {
        "blockchain": "ethereum",
        "command" : {
            "start": "sudo docker-compose -f ./networks/ethereum/1node-clique/docker-compose.yml up -d && sleep 60s",
            "end" : "sudo docker-compose -f ./networks/ethereum/1node-clique/docker-compose.yml down"
          }
    },
    "ethereum": {
        "url": "ws://xx.xxx.xxx.xxx:8546",
        "contractDeployerAddress": "0xc0A8e4D217eB85b812aeb1226fAb6F588943C2C2",
        "contractDeployerAddressPassword": "password",
        "fromAddress": "0xc0A8e4D217eB85b812aeb1226fAb6F588943C2C2",
        "fromAddressPassword": "password",
        "transactionConfirmationBlocks": 2,
        "contracts": {
            "simple": {
                "path": "./src/ethereum/simple/simple.json",
                "estimateGas": true,
                "gas": {
                    "query": 100000,
                    "transfer": 70000
                }
            }
        }
    }
}

@andyafene I'm not familiar with Besu/Ethereum sorry, have you tested that you can connect on the url provided where caliper runs to eliminate any network issue. A quick google should this which might help https://gist.github.com/htp/fbce19069187ec1cc486b594104f01d0

I get a HTTP/1.1 200 OK
After running this:
curl -i -N -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Host: <IP_ADDRESS>" -H "Origin: http://<IP_ADDRESS>" http://<IP_ADDRESS>

So I don't think it's a network issue. Tell me if I'm wrong but otherwise I'd have a error code 4.
However,  I get an error code 5.... According to this link this error happen when you fail to install smart contract.
Thus, since I the contractDeployerAddress and the contractDeployerAddressPrivateKey that I'm using are coming from the genesis.json of my private network, why am I getting a error code 5?

@andyafene have you tried not using caliper to deploy your smart contracts ? I've seen other suggestions like that. It could be that the deploy process doesn't work anymore, so just use caliper to test an already deployed setup ?

Hi @davidkel ,
Sorry for my late answer. I had to go deeper in my understanding of how Caliper works.
Now, let say that the deploy process doesn't work anymore , are you telling me that, in order to skip the smart-contract deployement step, I have to make sure that the smart-contract with wich my workers will interact is already deployed on my SUT?  Or I don't even need smart-contract, in both case, to benchmark my SUT?
If it's the case, how workers can interact with SUT without smart contract?
I might be wrong but from my understanding of the official documentation, workers need smart-contract in order to interact with SUT.
Here is what I get when I'm trying to skip the smart-contract deployement step by using this flag :  --caliper-flow-skip-install :
petaleadmin@CaliperVM:~/caliper-benchmarks$ sudo npx caliper launch manager --caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig ./networks/besu/1node-clique/networkconfig.json --caliper-workspace . --caliper-flow-skip-install
2022.03.06-18:29:00.982 info  [caliper] [cli-launch-manager]    Set workspace path: /home/petaleadmin/caliper-benchmarks
2022.03.06-18:29:00.983 info  [caliper] [cli-launch-manager]    Set benchmark configuration path: /home/petaleadmin/caliper-benchmarks/benchmarks/scenario/simple/config.yaml
2022.03.06-18:29:00.984 info  [caliper] [cli-launch-manager]    Set network configuration path: /home/petaleadmin/caliper-benchmarks/networks/besu/1node-clique/networkconfig.json
2022.03.06-18:29:00.984 info  [caliper] [cli-launch-manager]    Set SUT type: ethereum
2022.03.06-18:29:01.420 info  [caliper] [benchmark-validator]   No observer specified, will default to `none`
2022.03.06-18:29:01.421 info  [caliper] [caliper-engine]        Starting benchmark flow
2022.03.06-18:29:01.446 info  [caliper] [caliper-utils]         Executing command: cd .; docker-compose -f ./networks/besu/1node-clique/docker-compose.yml up -d && sleep 3
Creating network "1node-clique_default" with the default driver
Creating besu_clique ... done
2022.03.06-18:29:05.643 info  [caliper] [caliper-engine]        Executed start command in 4.197 seconds
2022.03.06-18:29:05.681 info  [caliper] [caliper-engine]        Executed "init" step in 0.037 seconds
**2022.03.06-18:29:05.682 info  [caliper] [caliper-engine]        Skipping install smart contract phase due to benchmark flow conditioning**
2022.03.06-18:29:05.685 info  [caliper] [monitor.js]    No resource monitors specified
2022.03.06-18:29:05.688 info  [caliper] [default-observer]      Observer interval set to 5000 seconds
2022.03.06-18:29:05.694 info  [caliper] [round-orchestrator]    Preparing worker connections
2022.03.06-18:29:05.695 info  [caliper] [worker-orchestrator]   Launching worker 1 of 1
2022.03.06-18:29:05.706 info  [caliper] [worker-orchestrator]   Messenger not configured, entering configure phase...
2022.03.06-18:29:05.707 info  [caliper] [worker-orchestrator]   No existing workers detected, entering worker launch phase...
2022.03.06-18:29:05.708 info  [caliper] [worker-orchestrator]   Waiting for 1 workers to be connected...
2022.03.06-18:29:07.467 info  [caliper] [cli-launch-worker]     Set workspace path: /home/petaleadmin/caliper-benchmarks
2022.03.06-18:29:07.469 info  [caliper] [cli-launch-worker]     Set benchmark configuration path: /home/petaleadmin/caliper-benchmarks/benchmarks/scenario/simple/config.yaml
2022.03.06-18:29:07.469 info  [caliper] [cli-launch-worker]     Set network configuration path: /home/petaleadmin/caliper-benchmarks/networks/besu/1node-clique/networkconfig.json
2022.03.06-18:29:07.471 info  [caliper] [cli-launch-worker]     Set SUT type: ethereum
2022.03.06-18:29:08.360 info  [caliper] [worker-orchestrator]   1 workers connected, progressing to worker assignment phase.
2022.03.06-18:29:08.366 info  [caliper] [worker-orchestrator]   Workers currently unassigned, awaiting index assignment...
2022.03.06-18:29:08.367 info  [caliper] [worker-orchestrator]   Waiting for 1 workers to be assigned...
2022.03.06-18:29:08.501 info  [caliper] [worker-orchestrator]   1 workers assigned, progressing to worker initialization phase.
2022.03.06-18:29:08.502 info  [caliper] [worker-orchestrator]   Waiting for 1 workers to be ready...
2022.03.06-18:29:08.526 info  [caliper] [worker-orchestrator]   1 workers ready, progressing to test preparation phase.
2022.03.06-18:29:08.527 info  [caliper] [round-orchestrator]    Started round 1 (open)
2022.03.06-18:29:08.922 info  [caliper] [worker-message-handler]        Initializing Worker#0...
2022.03.06-18:29:08.922 info  [caliper] [worker-message-handler]        Worker#0 initialized
2022.03.06-18:29:08.926 info  [caliper] [worker-message-handler]        Preparing Worker#0 for Round#0
2022.03.06-18:31:19.458 info  [caliper] [caliper-worker]        Worker [0] encountered an error during prepare test phase for round 0: Error: connection not open on send()
    at Object.ConnectionError (/home/petaleadmin/caliper-benchmarks/node_modules/web3-core-helpers/lib/errors.js:66:23)
    at Object.ConnectionNotOpenError (/home/petaleadmin/caliper-benchmarks/node_modules/web3-core-helpers/lib/errors.js:49:21)
    at /home/petaleadmin/caliper-benchmarks/node_modules/web3-providers-ws/lib/index.js:155:37
    at Map.forEach (<anonymous>)
    at WebsocketProvider._onClose (/home/petaleadmin/caliper-benchmarks/node_modules/web3-providers-ws/lib/index.js:154:27)
    at W3CWebSocket._dispatchEvent [as dispatchEvent] (/home/petaleadmin/caliper-benchmarks/node_modules/yaeti/lib/EventTarget.js:115:12)
    at W3CWebSocket.onConnectFailed (/home/petaleadmin/caliper-benchmarks/node_modules/websocket/lib/W3CWebSocket.js:219:14)
    at WebSocketClient.<anonymous> (/home/petaleadmin/caliper-benchmarks/node_modules/websocket/lib/W3CWebSocket.js:59:25)
    at WebSocketClient.emit (events.js:198:13)
    at ClientRequest.handleRequestError (/home/petaleadmin/caliper-benchmarks/node_modules/websocket/lib/WebSocketClient.js:227:14)
    at ClientRequest.emit (events.js:198:13)
    at Socket.socketErrorListener (_http_client.js:401:9)
    at Socket.emit (events.js:198:13)
    at emitErrorNT (internal/streams/destroy.js:91:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
    at process._tickCallback (internal/process/next_tick.js:63:19)
**2022.03.06-18:31:19.459 info  [caliper] [caliper-worker]        Info: worker 0 prepare test phase for round 0 is completed
2022.03.06-18:31:19.459 error [caliper] [worker-message-handler]        Error while handling "prepare" message for Worker (1919441): Error: connection not open on send()**
...

That's why deploying a smart contract seems to be a required step to benchmark my SUT.
So, when you're telling me to just use caliper to test an already deployed setup,  are you talking about a setup with a smart-contract already deployed on it ?

@andyafene I'm sorry I'm out of suggestions as my expertise is fabric and not ethereum/besu. The only thing I could suggest would be to ask on the besu channel on discord. Caliper currently doesn't have anyone active on besu so I've no-one to suggest to help from a caliper point of view.

Thank you anyway @davidkel ! I really appreciated your help.

hey @0x3N3jVhPUV did you find the response? Regards


1.18.2 port

Is 1.18.2 port planned as 1.18.1 version is not working?

It will be ported to 1.18.2 soon. Ran into some issues with preening that I'm unable to fix at the moment so I will remove preening temporarily and it back in a minor update to the 1.18.2 port soon.


It is possible to show autosuggestions list after user click in show input?

Hi!
I have question - it is possible to show suggestions list after user click in input ?
I mean something like google, show list only click in input
thanks for answer!

Yes, it's possible.
You can save all your result on one array, and in the data prop, put and empty array. Then you trigger your click event on whatever you want, and equals the empty array to your original array with all your results.
<vue-bootstrap-typeahead :data="emptyArray"></vue-bootstrap-typeahead>
triggerMethod: function(){         this.emptyArray = this.originalArray; }
I think this is what you want :)

it's not working

I merged a fix for this into my fork (https://github.com/mattzollinhofer/vue-typeahead-bootstrap) of this project that I'm actively maintaining.
You can find it on npm here: https://www.npmjs.com/package/vue-typeahead-bootstrap.
I hope this helps!


Error "Current working directory is not a Cordova-based project" when it definitely is!

I was able to compile this app for iOS a few weeks ago (just 14-21 days!), but put off compiling for Android until now because the wait time for publishing is basically nothing. And now this! 😭 And of course I need it today.
It's been a few weeks so a few things about my machine could have changed, but I most definitely did not upgrade node. I might have upgraded npm but I don't recall for sure.
$ node --version && npm --version && phonegap --version
v6.1.0
3.8.6
(node:42356) fs: re-evaluating native module sources is not supported. If you are using the graceful-fs module, please update it to a more recent version.
6.2.5

I don't know what triggers the "Current working directory is not a Cordova-based project" error, but I have another similar app, structured the same way, for which phonegap prepare android works fine!

I was able to get a build together by starting a "new project" (phonegap create), installing the various plugins and platforms, and copying my content & config... but what a pain.
I tried to debug the issue in the CLI but couldn't find where this message was generated and gave up. :-\

Hey @atuttle, let's see if we can fix this issue for you!
The Error: Current working directory is not a Cordova-based project. is called here and this is the function that evaluates whether it is a Cordova project and here is the criteria that it uses.
Basically, it looks like it expects:

www/
platforms/`
config.xml or www/config.xml

For your project:

All of those files and directories exist
Permissions look good

What stands out to me is that the www/ is a symbolic link. In the past, I've had success using sym-links, but perhaps that's causing the issue or the linked directory has an odd permission?

The symlink is created using: phonegap create [...] --link-to elsewhere/, and as you can see from my screen shots, both the working and non-working directories use symlinks. I can appreciate the fact that this may be an issue, though. Symlinks cause so many problems! :)

If this has been answered to your satisfaction, please close it.
Thank you for bringing this to our attention @atuttle

I mean... Maybe? I was able to work around the issue by recreating the project, but as far as I can tell the underlying issue remains -- that symlinks can be unpredictable for this type of thing.
If you want it closed, that's fine with me. I've got a useable, if unpleasant, workaround for the future when this will surely crop up again. But I could also see the case for leaving it open as a reminder to investigate symlink issues.

Do you know for sure that you did not destroy the contents of the symlink? because that would of course fail.
Otherwise, we need steps to reproduce the issue.
Next time it happens, please try a ls www/ to see if it is still valid.

Dang, that does indeed appear to have been the problem. It never occurred to me that the directory structure could have changed. And in fact it did. Funny how our brains can block out seemingly insignificant details of the recent history.

:)
Thanks for following up!

adding my comment here; the www folder is apparently super important. I have a script generating my www folder (due to platform asset differences at build time), so sharing the project didn't have a www folder in Git, and my colleague was getting this error. This thread helped me fix that.

If problem still persist, try to remove anything inside your /platforms if any. Then, re-add your preferred platform again.

I found that I can get this after doing an ng build to my cordova directory but cancelling early.  The ng build apparently deletes the www folder first before deploying.  The folder isn't re-created until it's finished building.


Tiny polishing macOS and Linux docs

Description
New tool, Bug fixing, or Improvement?
Please include a summary of the change and which issue is fixed. Also include relevant motivation and context.
For new tools, please provide total size and installation time.

Related issue:
Check list

[ ] Related issue / work item is attached
[ ] Tests are written (if applicable)
[ ] Documentation is updated (if applicable)
[ ] Changes are tested and related VM images are successfully generated

/azp run macos11, macos12, ubuntu1804, ubuntu2004, ubuntu2204


Removes Addressbook Parameter in DisplayedPerson Constructor

Codecov Report

Merging #55 (539201b) into master (ee37aa3) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##             master      #55   +/-   ##
=========================================
  Coverage     60.44%   60.44%
  Complexity      407      407
=========================================
  Files            86       86
  Lines          1537     1537
  Branches        158      158
=========================================
  Hits            929      929
  Misses          569      569
  Partials         39       39

Impacted Files
Coverage Δ

...rc/main/java/seedu/address/model/ModelManager.java
77.14% <100.00%> (ø)

...va/seedu/address/model/person/DisplayedPerson.java
21.05% <100.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


gl_VertexID broken on Vulkan

Not sure if this is on purpose, using gl_VertexID worked at https://github.com/Kode/krafix/commit/ea222cde885484ad44e68d3ee0bd4cf288473985 but now it assets when calling vkCreateGraphicsPipelines.

Hu, I cut that out because the validation layers told me vertexId isn't allowed.

So, gl_VertexID is indeed not a thing in Vulkan but it looks like drivers are generous. Instead there's gl_VertexIndex - which apparently is similar but different in details I still have to find out about. I'll rewrite gl_VertexID to gl_VertexIndex for now.

Super cool!

On no, it looks like this re-introduced https://github.com/Kode/krafix/issues/83, ie. getting black screen for https://github.com/Kinc-Samples/Texture-Kinc.

Reopening...

Reclosing.


Add minho-k8s service

The idea is to create a Kubernetes client as a service in the registry.
Then, other services can get the client from the registry and interact with k8s.

Did you have an existing client library in mind?

Yeah the one from Fabric8 is pretty good.


Add meta data to files

Language version and other meta-data can be added directly to files. This can help compiler and tooling on deciding how to handle the file.

Fixed in https://github.com/siren-lang/siren/commit/6934388ec09b169b9b030d657407129114dcf6fc


dot net not installing on debian 9 parrot linux error E: Unable to correct problems, you have held broken packages.

Problem encountered on https://dotnet.microsoft.com/download/linux-package-manager/debian9/sdk-current
Operating System: Linux Debian 9
Provide details about the problem you are experiencing. Include your operating system version, exact error message, code sample, and anything else that is relevant.

So here i find a fix now went to this link
https://dotnet.microsoft.com/download/thank-you/dotnet-sdk-3.0.100-preview3-linux-x64-binaries
and installed dotnet core 3.0
after that open a terminal in download folder and follow the commands
mkdir /usr/share/dotnet   (if available alredy then ignore)
sudo tar -zxf dotnet-sdk-3.0.100-preview3-010431-linux-x64.tar.gz -C /usr/share/dotnet
sudo ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet
dotnet run
dotnet new console
dotnet run
hope this save your time and save you from getting pissed off!


Use a different app name for storybook

Storybook uses the same name as the app so it will be replaced in the device/simulator. Use a different name (maybe suffix "Storybook" to the app name) so both the app and storybook can be on the same device at the same time.

Try to do this when writing the package script if possible https://github.com/kadirahq/react-native-storybook/issues/4

This is a valid point.

It's ready for iOS. I think @roonyh wrote a guide for the Android as well. We can close this one as soon as we merge the Android guide.

Fixed with #32


MDS Support for Policies, Policy Managed Indices, Rollup Jobs and Transform Jobs

Description
This PR adds MDS support for the remaining index management pages
Issues Resolved
Resolves https://github.com/opensearch-project/index-management-dashboards-plugin/issues/982
Check List

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@SuZhou-Joe , @BionIT Please review the PR


Update version to 0.2.8

Maybe #105 should be merged first?

I was approving the changes — not necessarily that it be merged immediately :-).
@blu3beri @genaris @TimoGlastra @dbluhm — are there any other unmerged PRs (such as #105) that we should merge before this final 0.2.8 PR is merged?

#105 and #107 are related to some issues found during integration with React Native environment. There is also at least another remaining fix for this platform (erro thrown when attempting to open a non-existant wallet). If @blu3beri has some time to quickly review them and they are fine, I think it would be nice to incorporate them to this release.
That being said, as we are still testing it, it's likely that we'll have some other issues, so we might need to do further fixes anyway.

I would like to get #104 in. If we cannot do this then it would be good for the JS wrapper if we do a 0.2.9 release rather quickly afterwards as our integration into Bifold and finishing up the 0.4.0 release depends on the migration script.

Yeah if we can get the migration script in, it would then be possible to keep iterating on the wrapper dev versions while the 0.2.8 binary is already released.


support combined datetime format with subseconds (yyyyMMddhhmmss.SSS)

Fixes #143
Signed-off-by: Daniel Ferstay<EMAIL_ADDRESS>

@araddon , I've opened a few issues and PRs recently; any chance you will have time to review them?


ERROR: No matching distribution found for onnxruntime-gpu==1.10.0

Describe the bug
tools/mac_setup.sh fails with:
[InstallError]:       raise exceptions.InstallError(c.dep.name, extra=err_lines)
[pipenv.exceptions.InstallError]: ERROR: Could not find a version that satisfies the requirement onnxruntime-gpu==1.10.0 (from versions: none)
[pipenv.exceptions.InstallError]: ERROR: No matching distribution found for onnxruntime-gpu==1.10.0
ERROR: Couldn't install package: onnxruntime-gpu

OS Version
macOS Catalina 10.15.7 (19H1519
openpilot version or commit
fed7cfeef064b12f76b413298ffdf71fec1f537e
Additional info
According to here there is no GPU build for macOS.

Fixing up the Mac support is still a WIP. We're tracking it in #22562.


added start cones (left and right) and start heading in json export

@papalotis Can this be merged?


[IMPROVED] Better attempt at delivering messages to queue subscriptions

This PR is based out of #633. It imroves parsing QRSID so that the
TestRouteQueueSemantics test now passes (when dealing with malformed
QRSID).
A test similar to what is reported in #632 was also added. This
test however, uncovers a race condition that will be fixed in a
separate PR.
Resolves #632

Coverage increased (+0.01%) to 92.096% when pulling ee8f001131a492e9621737da09fbbe7ea344b8e2 on fix_632 into dd3dccc55a2368bed195baf1327da412a432d97a on master.

@derekcollison I believe I have addressed the issues regarding comments. We need to think if we want this behavior to be merged or stick with the old one. I believe that this change still honor the at-most and there should not be duplicates. But original behavior was "correct" too (since we don't guarantee at-least-once, but at-most-once).

As long as we can guarantee that we are still at most-once then LGTM. If we can not be sure of that then we need to revisit the changes.

@derekcollison After careful review and to the best of my knowledge, as the code stands in this PR, we still honor at-most-once delivery but do a better job at delivery messages to a queue group. If you approve, please approve the PR (it is currently in Request Changes status).


Place smoke test build output in the tarball's artifacts directory

The value of doing this is all artifacts are placed in a single location which makes cleanup easier.  Another goal is to eliminate net6.0 from the artifacts path which gets referenced in the build pipeline.  This eliminates chances of breaking the build over time.

This was completed with https://github.com/dotnet/installer/pull/19290


investigate the use of watchdog for monitoring trace dir for new files

Because of several issues when running the FileImporter in a separate process in background using multiprocessing the #44 PR removed the long running process. With these changes the FileImporter does no longer have a infinite while loop and only runs a single time (when triggered).
Currently only a newly connected device (garmin watch) will trigger the FileImporter when the device gets mounted. This leads to the problem, that new gpx files which are saved to the trace directory won't get imported.
In order to fix this it might be helpful to investigate watchdog and find out whether it could be used to watch the trace dir and trigger the FileImporter once new files are added.
Note: It should be verified, that the watchdog process is also stopped when running the cli command wkz stop to prevent dangling processes.

probably easier to solve using the django functionality of autoreloader.py, see https://stackoverflow.com/a/43593959/5384702

probably easier to solve using the django functionality of autoreloader.py, see https://stackoverflow.com/a/43593959/5384702


Add link to GitHub to the "About" page

You're not going to get pull requests if we can't find the source!

LGTM :+1:


how to add header content and footer content and their styles in pdf report ?

Versions

PHP version: 7.2
Laravel version:5.7
Package version:3.1

please tell us how to add header content,footer content and make the changes in style.
of the content for pdf format
Additional Information
here is my code
<?php
namespace App\Exports;

use App\Order;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Events\BeforeExport;
use Maatwebsite\Excel\Events\BeforeWriting;
use Maatwebsite\Excel\Events\BeforeSheet;
use Maatwebsite\Excel\Concerns\WithTitle;

class InvoicesExport implements FromCollection, WithHeadings, ShouldAutoSize, WithEvents, WithTitle
{
    public function collection()
    {
        return Order::all('id','name','qty','price');
    }

      public function headings(): array
    {
        return [
            'Sl No',
            'Name of Product',
            'Qty',
            'Total',
        ];
    }

    public function registerEvents(): array
    {
        return [
            // Handle by a closure.
            BeforeExport::class => function(BeforeExport $event) {
                $event->writer->getProperties()->setTitle('Patrick');
            },
        ];
    }

    public function title(): string
    {
    	return 'Some Text';
    }
}
?>

Any additional information, configuration or data that might be necessary to reproduce the issue.

Using a AfterSheet event and the following PhpSpreadsheet logic:
https://phpspreadsheet.readthedocs.io/en/latest/topics/recipes/#setting-the-print-header-and-footer-of-a-worksheet

Closing due to inactivity. Please feel free to reopen this issue if you need more help.


Add Socratic 22

Closes #9

Checked that all links return 200.

Brilliant, LGTM. Just added some general links at the top.