Pass custom scrollToHandler through if defined in options.

This exposes the scrollToHandler option so that a custom function can be passed in. For example:
    let topScrollHandler = () => {
      Ember.$('#main-scroll-container').animate({
        scrollTop: 0
      }, 600);
    };

    let steps = [
      {id: 'step-one',
       options: {
          attachTo: '#example-element right',
          title: 'Example Step Title',
          text: [stepOneLabel],
          scrollTo: true,
          scrollToHandler: topScrollHandler
        }
      }
    ];

Tests seem to be failing, not sure why 😞

I guess that was it. Anyway, I wanted to expose this option because it was useful to me for fine-tuning the scroll position and animation. Your original default is probably the most widely-compatible approach anyway. Thanks!

@sirvine sorry to be picky, but could you write a test for the default as well, to ensure everything still scrolls as it should, when a custom one is not passed?
Also, could you document this new option in the README please?

No problem. Let me know if you need any adjustments. I struggled a bit with the best way to test for proper operation in the absence of the custom scrollToHandler option. In the end, my test for that condition is largely redundant with the existing scrollTo works with disableScroll on test.

Thanks for making those changes @sirvine! It all looks good, from a code perspective, but for some reason, the tests are failing on Travis for Ember 1.13 😢

Looks like it was a fluke that the tests failed. Ran again and they passed. Going to go ahead and merge. Thanks! Any other features you'd like to see implemented @sirvine?

I noticed the same (or similar problem) with Travis on one of my earlier commits, for the record. I have only begun to play with shepherd in my app, so I may have more to come. For now, it is quite useful to me. Funny enough, your question prompted to me to look at the shepherd.js docs, and I see that scrollToHandler is undocumented since 2014! So now maybe we can say that ember-shepherd has better documentation of this feature than the library that it wraps!
For some context, the reason that I felt it would be useful to add custom scrolling is that I worried that it would be too jarring for my users if the first step scrolled down to the element top. At first, I just turned scrollTo to false on the first step, but that caused problems when backing up from step 2 to step 1. As a result, I wanted a scrollTo that pinned step 1 at the top of the window.
Thank you!


HitBtc not closing stream properly

2020-12-14 07:22:20.046  WARN 3892554 --- [tLoopGroup-15-2] i.b.x.hitbtc.HitbtcStreamingService      : The message has been received from disconnected channel 'orderbook-ETHBTC'. Skipped.
2020-12-14 07:22:20.046  WARN 3892554 --- [tLoopGroup-15-2] i.b.x.hitbtc.HitbtcStreamingService      : The message has been received from disconnected channel 'orderbook-XRPBTC'. Skipped.
2020-12-14 07:22:20.046  WARN 3892554 --- [tLoopGroup-15-2] i.b.x.hitbtc.HitbtcStreamingService      : The message has been received from disconnected channel 'orderbook-BCHETH'. Skipped.

This has been issued already in the olrd bitrich-lib https://github.com/bitrich-info/xchange-stream/issues/168
i cannot really tell where the problem stems from.

I have seen this too, so far it has not annoyed me enough to look very deep into it, but please fix it, if you can find it.

I thought it might be timing issue, because was not always reconnecting, when i saw it.


[MINT-1793] Add/rename lockable sections

MINT-0000
Description

How to test this change

PR Author Checklist

[ ] I have provided a detailed description of the changes in this PR.
[ ] I have provided clear instructions on how to test the changes in this PR.
[ ] I have updated tests or written new tests as appropriate in this PR.
[ ] Updated the Postman Collection if necessary.

PR Reviewer Guidelines

It's best to pull the branch locally and test it, rather than just looking at the code online!
When approving a PR, provide a reason why you're approving it

e.g. "Approving because I tested it locally and all functionality works as expected"
e.g. "Approving because the change is simple and matches the Figma design"

Don't be afraid to leave comments or ask questions, especially if you don't understand why something was done! (This is often a great time to suggest code comments or documentation updates)
Check that all code is adequately covered by tests - if it isn't feel free to suggest the addition of tests.

Thanks @ClayBenson94 , I took a look and this good to me. I have confidence as well because of the passing server_tests


Prevent app loader fetching token info before decimals are set

ContractsProvider mounts before the token decimals value has been fetched resulting in no decimals being applied on first render. This flashes up until the request for token.decimals completes. In some cases it appears to persist in this state.
https://vegaprotocol.slack.com/archives/C8WS7M50E/p1635430276210800

This issue didn't appear for me on Staging. The issue seemed to be random without any perfect way to reproduce but I'm satisfied for now that the issue has been resolved. Hence marking the ticket as closed.


ISODate format output bug

I stored some crawled data in mongodb and there is a field "created" which value format looks like this in mongo-express：

It looks fine, but when I tend to export it to JSON file, there appears a character error：

Closing as inactive


IMN-72: get attribute registry routes in attribute-registry-process

To merge only after https://github.com/pagopa/interop-be-monorepo/pull/83

Can I get your review on this @Carminepo2 ?


Fix Message Fees with v0.46 changes.

Description
closes: #1006
closes: #1091
This straightens out the message fees stuff that was broken when bumping to cosmos v0.46.
There is one outward-facing change:

Changed the TxGasLimitDecorator bypass.

Old: If one of the Msgs in a Tx was a gov Msg, bypass max check.
New: All Msgs in a Tx need to be gov to bypass max check.

And several logic and organizational changes:

Re-enabled all previously disabled unit tests and simulations.
Created a MinGasPricesDecorator to replace the MempoolFeeDecorator that was removed from the SDK.

It checks that the fee is greater than the validator's min gas fee.

Refactored the MsgFeesDecorator.

It now only makes sure the provided fee has enough to cover both the base fee plus any message based fees.
It no longer checks the payer's account.
It no longer deducts or consumes the base fee.
Moved CalculateAdditionalFeesToBePaid into to the x/msgfees module.

Refactored the ProvenanceDeductFeeDecorator.

Makes sure the payer has enough to cover the additional (msg-based) fees.
Deducts and consumes the base fee (and uses it on the feegrant if applicable).
Added an sdk.AttributeKeyFeePayer attribute to the events.

Added the sdk.AttributeKeyFeePayer to the event with AttributeKeyAdditionalFee (created in the msg fee invoker).
Updated the message service router:

Extracted Provenance-specific code into its own function.
Brought the rest of RegisterService in-line with the SDK's version, with the addition of a call to that new function.

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[ ] Targeted PR against correct branch (see CONTRIBUTING.md)
[ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[ ] Wrote unit and integration tests
[ ] Updated relevant documentation (docs/) or specification (x/<module>/spec/)
[ ] Added relevant godoc comments.
[ ] Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
[ ] Re-reviewed Files changed in the Github PR explorer
[ ] Review Codecov Report in the comment section below once CI passes

After a nice 2-day deep-dive....
The panic was coming during genutil's InitGenesis, as it was trying to set the initial validator.
Before this change, in the MsgFeesDecorator, we checked that the paying account has enough balance to cover the msg-based fees. After this change, that check was moved to ProvenanceDeductFeeDecorator and expanded to make sure they had the balance to cover both the base fee and the additional fees.
During genutil's InitGenesis, the accounts haven't been funded yet (even though the bank module's InitGenesis is run first). Both before and after, the additional fees on that were 0. But now, we were checking for additional fees plus base fee. Those genutil transactions come with some gas, so there was a positive base fee which the account didn't yet have the funds to pay.
So I changed this PR so that the balance check only looks at additional fees again. I also made it skip the base fee deduction (and consumption) during InitGenesis.
I also found a loop over a map in the msgfees keeper, and fixed that.

Have you tested bank transfers with this? I am seeing a panic...
  +0xa8\npanic({0x1071cb0c0, 0x140016e37b0})\n\truntime/panic.go:884 +0x204\ngithub.com/cosmos/cosmos-sdk/x/auth/ante.SetUpContextDecorator.AnteHandle.func1()\n\tgithub.com/cosmos/cosmos-sdk@v0.46.0/x/auth/ante/setup.go:59
  +0x1c0\npanic({0x1071cb0c0, 0x140016e37b0})\n\truntime/panic.go:884 +0x204\ngithub.com/cosmos/cosmos-sdk/x/bank/keeper.BaseViewKeeper.GetBalance({{_,
  _}, {_, _}, {_, _}}, {{0x10752adf0, 0x14000124008}, {0x10753e040, 0x140013bdf40},
  ...}, ...)\n\tgithub.com/cosmos/cosmos-sdk@v0.46.0/x/bank/keeper/view.go:108 +0x164\ngithub.com/provenance-io/provenance/internal/antewrapper.ProvenanceDeductFeeDecorator.checkDeductBaseFee({{_,
  _}, {_, _}, {_, _}, {_, _}}, {{0x10752adf0, 0x14000124008}, ...}, ...)\n\tgithub.com/provenance-io/provenance/internal/antewrapper/provenance_fee.go:104
  +0xc5c\ngithub.com/provenance-io/provenance/internal/antewrapper.ProvenanceDeductFeeDecorator.AnteHandle({{_,
  _}, {_, _}, {_, _}, {_, _}}, {{0x10752adf0, 0x14000124008}, ...}, ...)\n\tgithub.com/provenance-io/provenance/internal/antewrapper/provenance_fee.go:58

I used make run and then tried a basic bank send with the validator address...
%%>  ./build/provenanced --home ./build/run/provenanced/ keys list -t | grep tp1
- address: tp1897u88g4arvjckkg3lmqaehjde6nds6tw8e077
%%>  ./build/provenanced --home ./build/run/provenanced/ tx bank send tp1897u88g4arvjckkg3lmqaehjde6nds6tw8e077 tp1xje8w56t8xs2ea2srx8jl4c4t6e64kt5tq9hz3 100nhash -t --fees<PHONE_NUMBER>00nhash

After the fix I just pushed up, I was able to make run as well as do the same send. So it should be good again.

After a tweak, here's what the events look like in a few cases.
In all of these, gas price is 1stake and gas is 100000.
For the failures, I was sending 2stake but the account only had 1stake more than the fee.
Failure, no msg-based fee:
[0]: coin_spent: "spender" = "cosmos1x0u49ngf9pmzfc79mmztzaf2ffztqwdzhegrxd", "amount" = "100000stake"
[1]: coin_received: "receiver" = "cosmos17xpfvakm2amg962yls6f84z3kell8c5lserqta", "amount" = "100000stake"
[2]: transfer: "recipient" = "cosmos17xpfvakm2amg962yls6f84z3kell8c5lserqta", "sender" = "cosmos1x0u49ngf9pmzfc79mmztzaf2ffztqwdzhegrxd", "amount" = "100000stake"
[3]: message: "sender" = "cosmos1x0u49ngf9pmzfc79mmztzaf2ffztqwdzhegrxd"
[4]: tx: "fee" = "100000stake", "fee_payer" = "cosmos1x0u49ngf9pmzfc79mmztzaf2ffztqwdzhegrxd"
[5]: tx: "min_fee_charged" = "100000stake", "fee_payer" = "cosmos1x0u49ngf9pmzfc79mmztzaf2ffztqwdzhegrxd"
[6]: tx: "acc_seq" = "cosmos1x0u49ngf9pmzfc79mmztzaf2ffztqwdzhegrxd/0"
[7]: tx: "signature" = "1QqpGO9Lgi7+BK+mKJhogiPW2LFTWDHBTmLipGkdbtYEhpswc6T4/pHlT3HswLFnI31fsy/rOjEVG4IINsvtSA=="

Failure, 10stake msg-based fee:
[0]: coin_spent: "spender" = "cosmos1pm6w5u95lljq0a3datwxx70yjxga7xf9wd6myw", "amount" = "100000stake"
[1]: coin_received: "receiver" = "cosmos17xpfvakm2amg962yls6f84z3kell8c5lserqta", "amount" = "100000stake"
[2]: transfer: "recipient" = "cosmos17xpfvakm2amg962yls6f84z3kell8c5lserqta", "sender" = "cosmos1pm6w5u95lljq0a3datwxx70yjxga7xf9wd6myw", "amount" = "100000stake"
[3]: message: "sender" = "cosmos1pm6w5u95lljq0a3datwxx70yjxga7xf9wd6myw"
[4]: tx: "fee" = "100010stake", "fee_payer" = "cosmos1pm6w5u95lljq0a3datwxx70yjxga7xf9wd6myw"
[5]: tx: "min_fee_charged" = "100000stake", "fee_payer" = "cosmos1pm6w5u95lljq0a3datwxx70yjxga7xf9wd6myw"
[6]: tx: "acc_seq" = "cosmos1pm6w5u95lljq0a3datwxx70yjxga7xf9wd6myw/1"
[7]: tx: "signature" = "CdwKGCYGcZYFPI2hhc5kGSjus38ycfSjoMRtmU20SzxYn7NaAl0MB6bOiuDHCop2HALWE9tTc6yUUE4K8kIj8w=="

Success, no msg-based fee:
[0]: coin_spent: "spender" = "cosmos1euf7v78cv2h670828wv8m2xnamu7egxrj5lcch", "amount" = "100000stake"
[1]: coin_received: "receiver" = "cosmos17xpfvakm2amg962yls6f84z3kell8c5lserqta", "amount" = "100000stake"
[2]: transfer: "recipient" = "cosmos17xpfvakm2amg962yls6f84z3kell8c5lserqta", "sender" = "cosmos1euf7v78cv2h670828wv8m2xnamu7egxrj5lcch", "amount" = "100000stake"
[3]: message: "sender" = "cosmos1euf7v78cv2h670828wv8m2xnamu7egxrj5lcch"
[4]: tx: "fee" = "100000stake", "fee_payer" = "cosmos1euf7v78cv2h670828wv8m2xnamu7egxrj5lcch"
[5]: tx: "min_fee_charged" = "100000stake", "fee_payer" = "cosmos1euf7v78cv2h670828wv8m2xnamu7egxrj5lcch"
[6]: tx: "acc_seq" = "cosmos1euf7v78cv2h670828wv8m2xnamu7egxrj5lcch/0"
[7]: tx: "signature" = "YQYjxLxeRDcbkRkY4kJTIHs8xHl5Q8wTWp3wYY5OL/MIuOeOt1WlTIKmkA/xIykg/0r2M6ScTkLibGZlFdgzyA=="
[8]: message: "action" = "/cosmos.bank.v1beta1.MsgSend"
[9]: coin_spent: "spender" = "cosmos1euf7v78cv2h670828wv8m2xnamu7egxrj5lcch", "amount" = "100hotdog"
[10]: coin_received: "receiver" = "cosmos1tv8059kc6ssfgcy5nnt9wlcz8ul52h05vag87e", "amount" = "100hotdog"
[11]: transfer: "recipient" = "cosmos1tv8059kc6ssfgcy5nnt9wlcz8ul52h05vag87e", "sender" = "cosmos1euf7v78cv2h670828wv8m2xnamu7egxrj5lcch", "amount" = "100hotdog"
[12]: message: "sender" = "cosmos1euf7v78cv2h670828wv8m2xnamu7egxrj5lcch"
[13]: message: "module" = "bank"

Succes, 800hotodg msg-based fee:
[0]: coin_spent: "spender" = "cosmos1euf7v78cv2h670828wv8m2xnamu7egxrj5lcch", "amount" = "100000stake"
[1]: coin_received: "receiver" = "cosmos17xpfvakm2amg962yls6f84z3kell8c5lserqta", "amount" = "100000stake"
[2]: transfer: "recipient" = "cosmos17xpfvakm2amg962yls6f84z3kell8c5lserqta", "sender" = "cosmos1euf7v78cv2h670828wv8m2xnamu7egxrj5lcch", "amount" = "100000stake"
[3]: message: "sender" = "cosmos1euf7v78cv2h670828wv8m2xnamu7egxrj5lcch"
[4]: tx: "fee" = "800hotdog,100100stake", "fee_payer" = "cosmos1euf7v78cv2h670828wv8m2xnamu7egxrj5lcch"
[5]: tx: "min_fee_charged" = "100000stake", "fee_payer" = "cosmos1euf7v78cv2h670828wv8m2xnamu7egxrj5lcch"
[6]: tx: "acc_seq" = "cosmos1euf7v78cv2h670828wv8m2xnamu7egxrj5lcch/1"
[7]: tx: "signature" = "vjfPobRc1BxAu6sFVl6JUjWZmkWCH896+b5B16M9qcRo+ZyXN+/hSE/fF0TQ6lIVKyMU+UCTrbhJxhpSZ1W33A=="
[8]: message: "action" = "/cosmos.bank.v1beta1.MsgSend"
[9]: coin_spent: "spender" = "cosmos1euf7v78cv2h670828wv8m2xnamu7egxrj5lcch", "amount" = "50hotdog"
[10]: coin_received: "receiver" = "cosmos1tv8059kc6ssfgcy5nnt9wlcz8ul52h05vag87e", "amount" = "50hotdog"
[11]: transfer: "recipient" = "cosmos1tv8059kc6ssfgcy5nnt9wlcz8ul52h05vag87e", "sender" = "cosmos1euf7v78cv2h670828wv8m2xnamu7egxrj5lcch", "amount" = "50hotdog"
[12]: message: "sender" = "cosmos1euf7v78cv2h670828wv8m2xnamu7egxrj5lcch"
[13]: message: "module" = "bank"
[14]: tx: "additionalfee" = "800hotdog", "basefee" = "100100stake", "fee_payer" = "cosmos1euf7v78cv2h670828wv8m2xnamu7egxrj5lcch"
[15]: provenance.msgfees.v1.EventMsgFees: "msg_fees" = `[{"msg_type":"/cosmos.bank.v1beta1.MsgSend","count":"1","total":"800hotdog","recipient":""}]`

I did some testing on events to compare them to a send in v1.12 vs after this PR. Here's a summary:

All cases:
A "fee_payer" attribute has been added to the events of type "tx" that have the "fee", "min_fee_charged", "additionalfee", and/or "basefee" attributes.
failure, no msg-based fee (but the min fee was still charged):
No further changes.
failure, with msg-based fee (but the min fee was still charged):
No further changes.
success, no msg-based fee:
The event of type "tx" with the "basefee" attribute is no longer emitted in this case.
success, with msg-based fee:
In v1.12, there were two events, both of type "tx", one with attribute "additionalfee" and the other with attribute "basefee".
After this PR, those two events are combined into a single event with type "tx" and both attributes.


Add SendersReceiversWithQueues and AutoForward sample

Description
Add the sample that retrieves from the queue using the receive handler.

@ramya-rao-a anything else needed for this? Otherwise I'll rebase and merge.


Improve CPU temperature measurement

There can be a mis-match between the CPU temperature reported by the operating system and the CPU temperature shown in the OPNsense dashboard.
This happens for N100, N200 and possibly other CPU types.
The issue seems to be that the sysctl -a command (which returns around 14,000 lines of output) causes a short-lived spike in CPU temperature. This spike causes an elevated temperature value to be reported in the dashboard.
Avoiding "sysctl -a" means that the dashboard temperature matches the OS reported temperature.
Current script:
 # /usr/local/opnsense/scripts/system/temperature.sh
 dev.cpu.0.temperature=46.0C
 .
 .
 .

With this change:
 # ./temperature.sh
 dev.cpu.0.temperature=40.0C
 .
 .
 .

This issue was previously reported here:
https://github.com/opnsense/core/issues/6911

The idle temps are wrong too if you follow that logic. Changing the script slightly does nothing but skew the result and the next one will complain later. We need some sort of averaging strategy and sanely placed intervals to fetch data evenly spaced out.

Besides you are probably going to destroy readings for some platforms by assuming there are only two possibilities.

The idle temps are wrong too if you follow that logic.

Can you clarify what you mean here? Thanks.

The temperature reading is real time. You get a different reading on idle, pseudo-idle and busy and pseudo-busy. The pseudo values are wrong readings because you either miss or hit the computation peak temperature.

The issue actually extends further upstream than just the sysctl -a command.
The call to "temperature.sh" is a "new backend".  There is a lot of processing going on even before sysctl -a is run.
The sysctl -a can be avoided pretty easily by saving/retrieving from ramdisk (/tmp).
But the new backend not so much.  A very short delay seems to do the trick though.
temperature.sh:
else
	# The grep is opportunistic, but at least we only grep the
	# variable names and not their content at the same time and
	# as long as we can find something that matches our search.
-	SYSCTLS=$(sysctl -aN | grep temperature)
+
+	# Save to file instead of constructing every time.
+	SYSCTLS_FILE='/tmp/SYSCTLS_Thermal_Sensors_Widget'
+	if [ ! -s "${SYSCTLS_FILE}" ]; then
+		sysctl -aN | grep temperature" > "${SYSCTLS_FILE}"
+	fi
+
+	SYSCTLS=$(cat "${SYSCTLS_FILE}")
+
	if [ -n "${SYSCTLS}" ]; then
+		sleep 0.5	# Avoid returning elevated and highly fluctuating "CPU" (core) temperatures
		sysctl -e ${SYSCTLS} | sort
	fi
fi

https://github.com/opnsense/core/issues/7730

The temperature reading is real time. You get a different reading on idle, pseudo-idle and busy and pseudo-busy. The pseudo values are wrong readings because you either miss or hit the computation peak temperature.

Thanks for clarifying.
I think what's happening is slightly different.

The issue actually extends further upstream than just the sysctl -a command.

Yes, I can see that effect too. (I'd experimented with "sleep 1".)
But I think there's something else going on not random/that's specific to "sysctl -a".
Consider this script:
#!/bin/sh
i=0
while [ "$i" -lt 4 ]
do
  i=$(($i + 1))
  sysctl dev.cpu.0.temperature
done
sysctl -a | grep dev.cpu.0.temperature

Running it (on some hardware) can give something like this:
dev.cpu.0.temperature: 49.0C
dev.cpu.0.temperature: 49.0C
dev.cpu.0.temperature: 49.0C
dev.cpu.0.temperature: 49.0C
dev.cpu.0.temperature: 57.0C <<< "sysctl -a" reading
This jump doesn't seem to be random variation due to cpu activity. It's
more like a large "observer effect" [1]. The effect goes away when "sysctl -a" is
not used.
Even if you want to calculate average numbers, you will need to get
numbers that exclude this effect.
A side note: cpus can shutdown if their temperature exceeds a certain threshold.
It's extremely unlikely, but in principle, the temperature spike caused by "sysctl -a" could cause an outage.
Would the following be reasonable?
I can update the existing patch to add "sleep 0.5".
This gives the following benefits (with no downside?):

Removes the inefficient filtering of 14,000 lines to extract
~5 lines of output (pfsense made an equivalent change in 2017 [2])
Avoids the perception that opnsense boxes are running hotter than they really are

Thanks.
[1] https://en.wikipedia.org/wiki/Observer_effect_(physics)
[2] https://github.com/pfsense/pfsense/pull/4475

the high fluctuations are usually just an effect of an inefficient cooling solution, in which case the higher boundary (doing something) might even be closer to reality anyway when looking at averages.

We could do something like f473d9a5c74 and be done with it. It does have the benefit to be able to ignore the mocked per-CPU values at least for AMD it seems a sane sensor point exists, but needs better numbering.

re: Ad comment
The dev.cpu temperatures are from on-die sensors that are very fast reacting.  The peaks are very momentary.  Like a few hundred milliseconds.  Cooling system is not going to have much impact on that.  Like a transistor heat sink vs. transient junction temperatures.

I'm beginning to understand some people would like the monitoring to lie to them showing a lower temperature than reality, but also not trusting in averages. It's almost funny if it wasn't so exhausting to talk about it.

I want to understand why this is all such a big deal. Shouldn't it all be okay as long as the temperatures stay below the hardware threshold?
For an N100 for example the T Junction is 105°C. https://ark.intel.com/content/www/us/en/ark/products/231803/intel-processor-n100-6m-cache-up-to-3-40-ghz.html
Why does it matter if it now reads 47 or 50°C? It does not affect anything.
Most Server boards have an ambient temperature sensor so the component temperature can be put into proper perspective (mostly on the PSU air inlet)

In the grand scheme of things this is quite irrelevant. If the issue is different cores report different values, averaging for the same cpu might work, but there certainly are bigger fish to fry than this.

Can't we just do something like echo(rand(20,100));, or - bonus points - perhaps let the user choose whether they prefer their CPUs raw, medium or well done and adjust the range accordingly?

I have just tested with an IR thermometer on my DEC 740 at home. Widget shows 53°C, case temperature on heatsink measures 49.7°C. So its pretty accurate.

some people would like the monitoring to lie to them

Can you let me know if that was comment was directed at me? Thanks.
What would people like to do here?
The idea that the number in the dashboard should match the number reported by the operating system doesn't seem to be something that we can get consensus on.
Putting that aside: the patch does still prevent 'overmatching' of the oids (ie avoids generating thousands of lines that aren't needed). Equivalent to https://github.com/pfsense/pfsense/pull/4475.
Is that something that people would see as a (small) improvement?
Let me know. If not I can close the PR.

I wrote f473d9a5c74ed7466 but unless there is some consensus over what we can achieve and should and shouldn't do it's pointless to continue with any sort of "solution to the "problem".

Personally I want to get all the available temperature readings from the kernel now or in the future. There is no database, so some sort of data collections needs to take place. The current code tries to do it, the commit above does it with 100% certainty.
Temperature readings should reflect the system state and we need to assume temperature readings are correct all the time from a processor perspective. That means no side-stepping and idle-forcing of readings prolonging the measurement fetch. That also means we can't avoid the GUI heating the CPU while collecting data from the dashboard.
Stick with a solution instead of always criticising the reported CPU temperature in edge cases (as done in the above commit).
Bonus point: not hiding shell command injection in the code. Another PR is guilty of this.

Maybe point two is futile. We could also use averages but I doubt we can settle for this as it probably also needs a backend service to do that polling and averaging. Point 3 seems equally out of reach at the moment.
Cheers,
Franco

I'll close this PR.
If anyone revisits temperature measurement in the future, I'd encourage them to
to take into account that calling "sysctl -a" appears to skew the temperature readings, introducing an "observer effect", at least on some systems.
Again, this script:
#!/bin/sh
i=0
while [ "$i" -lt 4 ]
do
  i=$(($i + 1))
  sysctl dev.cpu.0.temperature
done
sysctl -a | grep dev.cpu.0.temperature

Can produce output like this:
dev.cpu.0.temperature: 50.0C
dev.cpu.0.temperature: 50.0C
dev.cpu.0.temperature: 50.0C
dev.cpu.0.temperature: 50.0C
dev.cpu.0.temperature: 59.0C  <<< skewed "sysctl -a" reading

A probe that significantly alters what it is probing/measuring is typically undesirable.
The sysctl -a command significantly alters (increases) the temperature of the on-die sensors being measured.  Grepping all that output adds insult to injury so to speak.  As does instantiating a backend.
Though the temperature being reported is correct for a very brief moment while the probe is doing it's thing (maybe a couple hundred milliseconds).  It is not the temperature absent the probe (many thousands of milliseconds interval between the probe events).
Like taking a person's temperature by a means that gives them a fever.  Sure, okay, the person has a fever.  But it was the taking of their temperature that gave them the fever.
Don't think anyone is suggesting that the temperature reading is not accurate.  But that it is being significantly influenced by the "probe" for the very brief time that the temperature is being read.

Ok, how do we offer temperature readings if we cannot query for eligible OIDs even once because that's a "hot" subject?

You can clearly see this was an issue at least in 2016 when 90a31b13da54fd as written. But the old code also did a sysctl -a .. so maybe FreeBSD 14.1 is "wrong" now creating all this heat? Or where does the sudden change come from.

Pre create them so that the probe is not dependent on a "sysctl -a" command.
There can be a variety of reasons for an issue not being highlighted for a period of time and doesn't necessarily mean that it didn't exist.

But you're also not disputing the fact that the change from 24.1 to 24.7 suddenly made a decade old behaviour more obvious? ;)

I'm on 24.1
# opnsense-version
OPNsense 24.1.10_3

The cache-ttl was on the right track and I thought it was/is a positive thing.  But there are other pieces that come into play with it too.
Such as doing the probe right on it's heals the first time.  Also right on the heals of instantiating the backend every time.
Perhaps the OIDs could be put into an environment var at OPNsense startup?  Then it's just the backend instantiation.
Actually I'm neither disputing nor acknowledging that the change from 24.1 to 24.7 suddenly made a decade old behavior more obvious.  I simply don't know if it has been made more obvious or not.  As for it's previous behavior I never looked.  So would know.  What I do know is that it exists.


testcase Error: failed to get consistent fee data (operation="signer.getFeeData", code=UNSUPPORTED_OPERATION

https://github.com/nervosnetwork/godwoken-tests/runs/4301298436?check_suite_focus=true#step:19:42
$ /home/runner/work/godwoken-tests/godwoken-tests/testcases/godwoken-polyjuice-compatibility-examples/node_modules/.bin/ts-node ./scripts/multi-sign-wallet.ts
Running: Initialize Godwoken account for 0xcbBcD4691175e20eB71106F7ec5FDb991044d842 by deposit
    It may take a few minutes...
    Initialized, id: 4
Running: Initialize Godwoken account for 0xc0bf5e5072294950F1ac54989b58BF5ebb020b28 by deposit
    It may take a few minutes...
    Initialized, id: 5
Deployer address: 0x6DaF63D8411D6E23552658E3cFb48416A6A2CA78
Deployer godwoken address: 0xdfb94d6794165b96668b4308607afc05790dc211
Running: Load transaction history multi-sign-wallet-gwk-devnet.json
    New history created
Running transaction: Deploy WalletSimple
err Error: failed to get consistent fee data (operation="signer.getFeeData", code=UNSUPPORTED_OPERATION, version=abstract-signer/5.4.0)
    at Logger.makeError (/home/runner/work/godwoken-tests/godwoken-tests/testcases/godwoken-polyjuice-compatibility-examples/node_modules/@ethersproject/logger/src.ts/index.ts:213:28)
    at Logger.throwError (/home/runner/work/godwoken-tests/godwoken-tests/testcases/godwoken-polyjuice-compatibility-examples/node_modules/@ethersproject/logger/src.ts/index.ts:225:20)
    at PolyjuiceWallet.<anonymous> (/home/runner/work/godwoken-tests/godwoken-tests/testcases/godwoken-polyjuice-compatibility-examples/node_modules/@ethersproject/abstract-signer/src.ts/index.ts:278:28)
    at step (/home/runner/work/godwoken-tests/godwoken-tests/testcases/godwoken-polyjuice-compatibility-examples/node_modules/@ethersproject/abstract-signer/lib/index.js:48:23)
    at Object.next (/home/runner/work/godwoken-tests/godwoken-tests/testcases/godwoken-polyjuice-compatibility-examples/node_modules/@ethersproject/abstract-signer/lib/index.js:29:53)
    at fulfilled (/home/runner/work/godwoken-tests/godwoken-tests/testcases/godwoken-polyjuice-compatibility-examples/node_modules/@ethersproject/abstract-signer/lib/index.js:20:58) {
  reason: 'failed to get consistent fee data',
  code: 'UNSUPPORTED_OPERATION',
  operation: 'signer.getFeeData'
}
error Command failed with exit code 1.

outdated


writing images from outside to canvas... ctx.drawImage( )

Here is an example I would like to work in Elm
    var width  = 960;
    var height = 500;

    var canvas = document.getElementById('vincent');
    var ctx = canvas.getContext("2d");
    canvas.width  = width;
    canvas.height = height;

    var image = new Image();
    image.src= "starry-night.jpg";
    image.onload = function () { ctx.drawImage(image, 0, 0); }

unfortunately I can't find anything in the Graphics library.
Possibly since "starry-night.jpg" is an image from the outside world...  such a function could have type Form -> Maybe Form
I wrote a subscription if you want to see it... I might try writing a NativeJS library for that one thing...

Why can't you use one of the functions "image" etc. from http://package.elm-lang.org/packages/evancz/elm-graphics/1.0.0/Element#image to achieve what you want?

@jvoigtlaender perfect. moving down the chain here is context.getImageData(0, 0, width, height);
even my first question, not to many people were familiar with it.  Perhaps you can add a code example in the docs? Element.image 960 500 "starry-night.jpg"
http://stackoverflow.com/questions/37548314/how-to-access-image-data-in-elm

The croppedImage and tiledImage functions do have code examples in the docs. Certainly you can add corresponding examples for image and fittedImage in a pull request.
The question about getting image dimension data is separate, and should be opened as a separate issue, I think.
And this issue here can now be closed?

I will close this issue.


Fix local remote switch

ping @jourdain

:tada: This PR is included in version 3.1.7 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Misc cleanup

CC @Pacane

Do you have the rights to merge? If not I'll merge/bump version/publish on sunday/Monday.
Thanks!

@Pacane pushed one more commit. I don't have the ability to merge, though.
Thanks!

I thought I had the pub rights to publish, but it seems only @kaendfinger has them.

@Pacane I made you an uploader 👍 🥇 💯 😄

@kevmoo I deployed your stuff on pub.


Extract wallet handle from 'WalletAlreadyOpenedError' instead of throwing error on initialization

Currently when initializing (mostly a problem on react native) the framework tries to open the wallet. If the wallet is already opened, it will throw an error.
Looking at the NodeJS wrapper docs, the error thrown will contain the wallet handle of the already opened wallet. We should use that wallet handle instead of throwing the error.
https://github.com/hyperledger/indy-sdk/tree/master/wrappers/nodejs#openwallet--config-credentials----handle
-> handle: Handle (Number) - err: Error code handle: Handle to opened wallet to use in methods that require wallet access.

Seems like this is not possible after all

How did you manage to work with this @TimoGlastra ? As every change makes RN to reload, and you get the error

See https://github.com/AbsaOSS/rn-indy-sdk/issues/41
I didn't get around to finishing it yet, but made a start.

Fixed it, thx for the initial code: https://github.com/AbsaOSS/rn-indy-sdk/pull/47


Add doc on setting adapter options in Repo configuration.

I had to set the unamed prepared statements option for the postgres adapter earlier today and it was a bit confusing on how to do just that via config. So, here's some doc ❤
Notes:

Not sure this is the best place for it, it felt right :)
Not sure if there needs to be more elaboration

Awesome @starbelly! Can you please add it to Ecto.Adapters.Postgres as @fishcakez suggested? Thanks.

N/P... will do that and rebase.

@josevalim @fishcakez done... Unless we want to elaborate more on adapter options.

Tks @starbelly! All options here are adapter options, so I merged the lists together, thanks!
:heart: :green_heart: :blue_heart: :yellow_heart: :purple_heart:

@josevalim Awesome, more to come ❤  Have a great weekend!


feat(tuning): :sparkles: introduce new Ratio, Cent and move .cents to former class

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

27 of 27 (100.0%)  changed or added relevant lines in 5 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
872

Relevant Lines:
872

💛  - Coveralls


jenkins::job::present issue

Is there any known issue with jenkins::job::present resource ? It looks like that if you try to create a job with it, the first run (when job doesn't exist) everything is fine, but then it fails because it tries to create the job again (using jenkins-cli) and it already exists though failing.
I didn't see any onlyif or unless statement within jenkins-cli create-job command

@zonArt It uses the creates parameter on the exec resource for idempotence.  Could you give us the log output from puppet, and relevant snippet of your manifest, and the versions in use?

Hi,
After a little more analysis, I found why it was not working, there is actually a bug (at least in tag v1.6.0) at line 30 of present.pp where you define job_dir = ${::jenins::jobs_dir}/${job_name}. Note that ::jenkins::jobs_dir param doesn't exist and should be replaced by ::jenkins::job_dir

PR may follow with some more modification on split of present.pp with split of responsibility

It's actually corrected in version 1.6.1, you can close this issue, sorry


Remove reflection from platform view implementation on Android

See https://github.com/flutter/engine/pull/33599#discussion_r903373898 for context.
That code was written at a point in time where we were very behind on the Android SDK, We have since rolled the SDK forward several times and should be good to kill at least some of the reflection now.

This is both technical debt and an reasonable bug to build expertise working in the engine since the level of functionality should stay the same.

For anyone searching issues in the future that notices, that the original fix was reverted, it was relanded in https://github.com/flutter/engine/pull/50890.


Fixed .gitignore and maven-clean-plugin for admin-ui

Interesting, I don't have any node_tmp folder locally, can it be a leftover from an inconsistent state?

@lfryc yes, if you have an exception during install node and npm step, this folder won't be removed

Nice catch @idelpivnitskiy

:+1: tested locally, looks fine

:rocket: Landed: https://github.com/aerogear/aerogear-unifiedpush-server/commit/d4fb0e0d6f61e8dc311ee1fe51c671d7e96f39a6

@lfryc thanks!)


[type:fix] Fix websocket plugin

Make sure that:

[ ] You have read the contribution guidelines.
[ ] You submit test cases (unit or integration tests) that back your changes.
[ ] Your local test passed ./mvnw clean install -Dmaven.javadoc.skip=true.

Codecov Report

Merging #5126 (e4ae312) into master (824ebac) will decrease coverage by 0.76%.
The diff coverage is 33.33%.

@@             Coverage Diff              @@
##             master    #5126      +/-   ##
============================================
- Coverage     61.72%   60.97%   -0.76%
+ Complexity     8498     8420      -78
============================================
  Files          1232     1232
  Lines         36990    36990
  Branches       3512     3508       -4
============================================
- Hits          22833    22554     -279
- Misses        12196    12534     +338
+ Partials       1961     1902      -59

Files Changed
Coverage Δ

...in/response/strategy/NettyClientMessageWriter.java
71.42% <0.00%> (-3.58%)
:arrow_down:

...ugin/response/strategy/WebClientMessageWriter.java
73.01% <0.00%> (ø)

...pache/shenyu/plugin/websocket/WebSocketPlugin.java
54.66% <100.00%> (+0.61%)
:arrow_up:

... and 25 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more
:loudspeaker: Have feedback on the report? Share it here.


Which version should I use

Which version should I use and support android12

You can use the latest published version: v2.1.1


Show the column that's meant in deprecation warning

This saves the developer some debugging time to figure out which column is actually meant in the deprecation warning.

Thanks!


jetbrains.goland: fix delve in remote dev situations

Description of changes
the wrapper which prefixes the CGO_CPPFLAGS env variable used to be skipped by the remote dev launcher, as the wrapper was in $out/bin/goland and the remote dev launcher runs $out/goland/bin/goland.sh
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

obsoleted by #244500


UnboundLocalError when trying to add a new slice for the first time.

Make sure these boxes are checked before submitting your issue - thank you!

[x] I have checked the superset logs for python stacktraces and included it here as text if any
[X] I have reproduced the issue with at least the latest released version of superset (at least the newest version from pip)
[X] I have checked the issue tracker for the same issue and I haven't found one similar

Superset version
0.14.1
Expected results
I should see a page where I can add new slices.
Actual results
A 500 error and this stacktrace:
2016-12-07 15:30:30,701:ERROR:superset:Exception on /slicemodelview/add [GET]
Traceback (most recent call last):
  File "/Users/roger/projects/superset/lib/python3.5/site-packages/flask/app.py", line 1988, in wsgi_app
    response = self.full_dispatch_request()
  File "/Users/roger/projects/superset/lib/python3.5/site-packages/flask/app.py", line 1641, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/Users/roger/projects/superset/lib/python3.5/site-packages/flask/app.py", line 1544, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/Users/roger/projects/superset/lib/python3.5/site-packages/flask/_compat.py", line 33, in reraise
    raise value
  File "/Users/roger/projects/superset/lib/python3.5/site-packages/flask/app.py", line 1639, in full_dispatch_request
    rv = self.dispatch_request()
  File "/Users/roger/projects/superset/lib/python3.5/site-packages/flask/app.py", line 1625, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/Users/roger/projects/superset/lib/python3.5/site-packages/flask_appbuilder/security/decorators.py", line 26, in wraps
    return f(self, *args, **kwargs)
  File "/Users/roger/projects/superset/lib/python3.5/site-packages/superset/views.py", line 858, in add
    redirect_url = "/r/msg/?url={}&msg={}".format(url, msg)

which points to this line of code.
Steps to reproduce

Go to the "slices" tab.
Click the + (Add a new record) button
500 error.

I have basically just installed superset from scratch. I only have one database, a Redshift (via postgres/psycopg2) database where I can see tables and columns in the SQL lab.

Indeed, code looks broken, thanks for reporting.

hm, broken on master :(

Is there a workaround for this?
Tx
Peter

Dup of #2564, will be fixed by #2565


Don't wrap the flyout header.

This makes it so the version doesn't overflow as badly:
Before

After

Unfortunately, both options have issues. I don't think we should shrink the flex grid down without addressing content widths of the labels
While at least it doesn't appear under the logo, the long strings now wrap oddly and can look worse with icons:

We should truncate the text to fix this: https://css-tricks.com/flexbox-truncated-text/


Color Picker New UI, translation mistake into German

Microsoft PowerToys version
0.79.0
Utility with translation issue
ColorPicker
🌐 Language affected
German
❌ Actual phrase(s)
"Picke"
✔ Expected phrase(s)
"Farbwähler"
ℹ Why is the current translation wrong
The current translation, "Picke" would translate back to the English word "pickaxe".

/dup #31699


Make schema/namespace configurable

The vote service is going to require the tables poll and objects, cf. schema.sql.  Especially objects strikes me as a name that could potentially clash with other services in the future if they all tried to create their tables in the same namespace.
I would like to propose to either a) add a schema configuration option, e.g., to reconfigure public.objects to vote.objects, or b) rename the tables to hopefully unique names such as vote_objects.  Personally, I consider the former method to be cleaner and safer.
The media service's table name is also configurable, by the way, so its table can be stored as, e.g., media.mediafile_data.

I can create a vote schema.
When I created the service, I thought it would use its own database. In this case, there would not be any name collision.
But you are correct. A Schema would be better.
Does the schema has to be configurable or is a fixed schema like "vote" or "vote_service" also ok? The library that I am using does not support variable schemas. So I either have to trust that the given schema is valid or add extra logic to prevent SQL injections in the schema name.

A reasonable hard-coded name such as vote would be fine by me.
I was merely suggesting configurability in case the public schema was supposed to remain the default.


Scripts for Ego-Exo Correspondence

Hi, thank you for the great job!
I noticed that PSALM has capability to handle Ego-exo correspondence in Ego-Exo4d and the paper shows results for that, but the repository doesn't seem to provide scripts for the task. I'm wondering if you plan to release scripts for that, and if not, can you provide some hints about how to evaluate or train on the Ego-exo correspondence using PSALM?
Thanks in advance!

@RZkiller
Hi, We evaluated Ego-Exo4d (also video segmentation) by interactive segmentation schema. Specifically, we use the mask in ego (exo) view to generate visual prompt embedding and predict exo (ego) view mask. You can change the input of interactive segmentation to adapt Ego-Exo4d.

There is a better way! You can directly follow the video object segmentation script.
You need to adapt dataloader to Ego-Exo4d task, like
https://github.com/zamling/PSALM/blob/1f7eece2f3c3bb8e0d07e4c84835ec278315fceb/psalm/eval/eval_davis.py#L286
The vp_annotations and vp_image are the ego (exo) mask prompt and image, while file_name and annotations are exo (ego) GT and image

@zamling
Thank you for your reply! I have a few more questions about the implementation of Ego-Exo Correspondence:

Your reply mentions the need to adapt dataloader to Ego-Exo4d task, but I noticed that Davis_Dataset and its inherited parent class COCO_interactive_dataset didn't particularly need to be changed. Does this mean we just need a json file like trainval_val_psalm.json? If not, can you tell me the exact places that need to be changed?
Do I need to set up new coco_class_name and coco_class_ids for the Ego-Exo4d dataset? Or just follow the coco_class_name and coco_class_ids provided by the parent class COCO_interactive_dataset?

@RZkiller
For dataset load, it seems that you only need to rewrite the IO to define the vp_image and vp_annotation. But we only write the inference forward for davis, so that you also need to rewrite the training codes for Ego-Exo. The main modification may be prepare_inputs_labels_for_multimodal function like
https://github.com/zamling/PSALM/blob/1f7eece2f3c3bb8e0d07e4c84835ec278315fceb/psalm/model/language_model/llava_phi.py#L1639
And others follow interactive coco training.

Following your method, I have implemented ego-exo correspond evaluation(ego2exo setting), but the result is totally not good.

As shown in the pictures, some frames do not segment the object at all, and some frames segment not the object of interest (in this case is basketball)
So I still have some questions about the implementation of ego-exo evaluation:

I noticed that the size of vp_image in the original davis inference script is the same as the size of the subsequent predicted frame. But in the ego-exo4d dataset, exo ! =ego size, i.e. the size of vp_image is not the same as the size of the subsequently predicted exo frames. I'd like to know if this has any effect on the results, or can you tell me how you dealt with this issue
If I choose the first frame of ego as vp_image, should the predicted exo start from the first frame or the second frame?
https://github.com/zamling/PSALM/blob/main/datasets/build_DAVIS.py#L58
Because I found that for the same predicted frame, if exo start from the first frame then the ball is not segmented. If exo start from the second frame then it can be segmented. So how to set the start frame of exo?

Hi @RZkiller
For your questions:

The different size of image and vp_image does not affect the results. PSALM solve interactive segmentation (also video object segmentation and Ego-Exo4D) by mask pooling vp_image features, rather than absolute position info. So that you can find that when you want to segment a ball, PSALM will segment the light in the ceiling in the second figure you showed.
It should be the first frame.

We only download a lower resolution images (may be 448P) and rebuild the Ego-Exo4D data. But the rebuilt data is on another machine and I can not use it when I want to refactor this code. Also this is the reason why I can not release the evaluation pipline for Ego-Exo4D...
Ego-Exo4D is only a zero-shot test in our method and also we only evaluate it on val set, as shown in Tab. 18. You can see that the performance is not good enough. So may be you need to ft or make extra designs for this task, rather than use interactive segmentation pipline.
In addition, I can provide you the getitem method for Ego-Exo4D, although I foget its data format...
    def __getitem__(self, idx):
        ego_query = False
        data = self.data[idx]
        image_root = os.path.join(self.data_args.image_folder,data['root_dir'],'frame_aligned_videos/downscaled/448')
        image_frame = str(data['take_frame']) + '.jpg'
        image_path = None
        vp_image_path = None
        vp_mask_list = []
        gt_mask_list = []
        object_pool = []
        object_list = data['object_list']
        for object in object_list:
            for key, value in data[object].items():
                cur_object_info = (os.path.join(image_root,key,image_frame),value)
                object_pool.append(cur_object_info)

        if ego_query:
            for obj in object_pool:
                name, mask = obj
                if 'ari' not in name:
                    if image_path is None:
                        image_path = name
                    else:
                        assert image_path == name, f'exsit name is {image_path}, while also a name {name}'
                    gt_mask_list.append(mask)
                else:
                    if vp_image_path is None:
                        vp_image_path = name
                    else:
                        assert vp_image_path == name, f'exsit vp name is {image_path}, while also a name {name}'
                    vp_mask_list.append(mask)
        else:
            for obj in object_pool:
                name, mask = obj
                if 'ari' in name:
                    if image_path is None:
                        image_path = name
                    else:
                        assert image_path == name, f'exsit name is {image_path}, while also a name {name}'
                    gt_mask_list.append(mask)

                else:
                    if vp_image_path is None:
                        vp_image_path = name
                    else:
                        assert vp_image_path == name, f'exsit vp name is {image_path}, while also a name {name}'
                    vp_mask_list.append(mask)

        # resize mask
        if not os.path.exists(image_path) or not os.path.exists(vp_image_path):
            print(f'cannot find {image_path}')
            return {}
        # image = cv2.imread(image_path)
        # h,w = image.shape[:2]
        # vp_image = cv2.imread(vp_image_path)
        # vp_h,vp_w = vp_image.shape[:2]
        gt_mask_h,gt_mask_w = decode_mask(gt_mask_list[0]).shape[:2]
        vp_mask_h,vp_mask_w = decode_mask(vp_mask_list[0]).shape[:2]
        img = utils.read_image(image_path, format='RGB')
        vp_img = utils.read_image(vp_image_path, format='RGB')
        img = cv2.resize(img,(gt_mask_w,gt_mask_h))
        vp_img = cv2.resize(vp_img,(vp_mask_w,vp_mask_h))
        # gt_mask_list = [decode_mask(mask_) for mask_ in gt_mask_list]
        # vp_mask_list = [decode_mask(mask_) for mask_ in vp_mask_list]
        data_dict = {}
        data_dict['file_path'] = image_path
        data_dict['gt_mask_list'] = copy.deepcopy(gt_mask_list)
        data_dict['vp_file_path'] = vp_image_path
        data_dict['file_name'] = img
        data_dict['vp_image'] = vp_img
        data_dict['height'] = gt_mask_h
        data_dict['width'] = gt_mask_w
        data_dict['image_id'] = idx
        data_dict['annotations'] = []
        data_dict['vp_annotations'] = []
        for mask in gt_mask_list:
            anno = {}
            anno['bbox_mode'] = BoxMode.XYXY_ABS
            anno['bbox'] = [0, 0, 0, 0]
            anno['image_id'] = idx
            anno['category_id'] = 1
            anno['segmentation'] = mask
            data_dict['annotations'].append(anno)
        for mask in vp_mask_list:
            anno = {}
            anno['bbox_mode'] = BoxMode.XYXY_ABS
            anno['bbox'] = [0, 0, 0, 0]
            anno['image_id'] = idx
            anno['category_id'] = 1
            anno['segmentation'] = mask
            data_dict['vp_annotations'].append(anno)
        try:
            if isinstance(self.data_args.image_processor,dict):
                processor = self.data_args.image_processor['instance']
            else:
                processor = self.data_args.image_processor
            region_mask_type = getattr(self.data_args,'region_mask_type',None)
            if region_mask_type is not None:
                region_mask_type = region_mask_type.split('||')
            data_dict = processor.preprocess(data_dict,region_mask_type=region_mask_type,mask_format='bitmask')
        except:
            print('load data wrong')
            return {}

        num_target = len(data_dict['instances'])
        prefix_inst = 'This is an image <image>, Please segment by given regions'
        # prompt_inst = 'Iteractive segmentation: using provided region as a reference'
        regions_inst = ' <region>,' * (num_target - 1) + ' <region>.'
        sources_value = f'\nThis is all regions: {regions_inst}\n'

        if self.data_args.seg_last:
            sources = [
                [{'from': 'human', 'value': prefix_inst + sources_value},
                 {'from': 'gpt', 'value': '\n[SEG]<seg>'}]]
        else:
            sources = [
                [{'from': 'human', 'value': prefix_inst + sources_value},
                 {'from': 'gpt', 'value': '\n[SEG]'}]]
        # sources = self.preprocess_multimodal(copy.deepcopy(sources))

        text_dict = self.preprocess_llama2(sources, self.tokenizer)
        input_ids = text_dict['input_ids'][0]
        labels = text_dict['labels'][0]
        data_dict['input_ids'] = input_ids
        data_dict['labels'] = labels
        data_dict['dataset_type'] = 'region_coco'

        return data_dict


v2.9.1

This is an automated message from CI:
Docker Image for build 1 is available on DockerHub as jc21/nginx-proxy-manager:github-pr-1076
Note: ensure you backup your NPM instance before testing this PR image! Especially if this PR contains database changes.


Not able to create app

Administrators-MacBook-Pro-2:Curefit ce388$ npm create-react-app my-app
Usage: npm
where  is one of:
access, adduser, bin, bugs, c, cache, completion, config,
ddp, dedupe, deprecate, dist-tag, docs, edit, explore, get,
help, help-search, i, init, install, install-test, it, link,
list, ln, login, logout, ls, outdated, owner, pack, ping,
prefix, prune, publish, rb, rebuild, repo, restart, root,
run, run-script, s, se, search, set, shrinkwrap, star,
stars, start, stop, t, tag, team, test, tst, un, uninstall,
unpublish, unstar, up, update, v, version, view, whoami
npm  -h     quick help on
npm -l           display full usage info
npm help   search for help on
npm help npm     involved overview
Specify configs in the ini-formatted file:
/Users/ce388/.npmrc
or on the command line via: npm  --key value
Config info can be viewed via: npm help config
<EMAIL_ADDRESS>/usr/local/lib/node_modules/npm

did you try $ create-react-app ?

-bash: create-react-app: command not found
Getting this error

I have an error likes this:
191 verbose stack SyntaxError: Unexpected end of JSON input while parsing near '...,"6.0.2":{"name":"bab'
191 verbose stack     at JSON.parse ()
191 verbose stack     at parseJson (C:\Users\Liang Han Xian\AppData\Roaming\npm\node_modules\npm\node_modules\json-parse-better-errors\index.js:7:17)
191 verbose stack     at consumeBody.call.then.buffer (C:\Users\Liang Han Xian\AppData\Roaming\npm\node_modules\npm\node_modules\node-fetch-npm\src\body.js:96:50)
191 verbose stack     at
191 verbose stack     at process._tickCallback (internal/process/next_tick.js:188:7)

@lohithkumarnadella It's npx not npm
npx create-react-app my-app
cd my-app
npm start

See response from @reyronald.

resolved thank you


how to remove ECS to exit fullscreen

I want to remove the ESC  function which can exit fullscreen

That's not possible. It's the browser that enforces the ability to Esc to exit.

use navigator.keyboard.lock(['escape'])


platform upgrade to 2024.2.6

@jean-noumena Ideally we also udpate the variable reflecting the platform version in cloud.mk, so that newly created NC apps are created with same version (2024.2.6)


Adds the LitStore useStore hook

Thanks @JordanMarr!

I've published the package and added you as a maintainer 👍

Awesome, thanks!


Multi part library

Thanks for the wonderful CLI first!
What problem does this feature solve?
I'm trying to build libraries with @vue/cli. I wanna know if it's possible to build a multi part library that can import sub-library directly like import subLib from 'my-lib/sub-lib' ?
For now I can only build single file library with common and umd by using --target lib.
What does the proposed API look like?
Maybe determine this from webpack entry?

you will have to run separate build commands for those sub libs, with a different entry and output path.
the build command has a --no-clean flag so that the other build commands won't remove the results of the previous ones.


concurrent output is wrong and uncertain

test code:
`
package main
import (
"fmt"
"github.com/streamrail/concurrent-map"
"sync"
)
var m = cmap.New()
func fun(wg *sync.WaitGroup) {
v := 1
if value, ok := m.Get("key"); ok {
v += value.(int)
}
m.Set("key",v)
wg.Done()
}
func main(){
var wg sync.WaitGroup
for i := 0; i < 10; i++ {
wg.Add(1)
go fun(&wg)
}
wg.Wait()
fmt.Println(m.Get("key"))
}
`
output:

this is actually the correct behavior, and it has nothing to do with the library.  the function fun is not atomic, so the value of key is easily overwritten by an unexpected value.  if you want it to to behave the way you're expecting you have to wrap the following lines with a mutex
if value, ok := m.Get("key"); ok {
    v += value.(int)
}
m.Set("key",v)

Thanks for contributing by having this discussion.


Added missing icons, using LaunchScreen storyboard, example in dark mode

Added missing icons,
now using LaunchScreen storyboard,
example supports Dark mode,
min target is 9.0

@tache if you don't mind, I would like to partially integrate your changes (LaunchScreen storyboard and icons), other changes may be not quite relevant at this point. Or you can try to update this PR if you like.

closing in favour of https://github.com/vikmeup/SCLAlertView-Swift/pull/503

👍


Wired display in Settings Context Menu

Hi,
The last build (after the last Utilities change ?), when compiled, gives me this on my Galaxy Note 4 Android M device

Problem is that I cannot reproduce it on any of my other devices and also not in the emulator. Closing + kill app did not fix it.
I uninstalled SMBSync2, reinstalled + restored my settings, the problem is gone and I can no longer reproduce it.
Just to let you know if it tells you something...

Thank you.
I tested it with Sony Xperia (Android 6) and Emulator but could not reproduce it.
I've been developing this since Android 2.3, but this is the first time I've seen this happen.
Best regards.

I close as i cannot reproduce it too


Wrong cursor move by arrow keys in TextField with rtl characters

Steps to Reproduce

Execute flutter run on the code sample
Click on textfield
Move textfield's cursor by arrow keys

Expected results:
cursor must move correctly in TextField when using arrow keys
Actual results:
cursor moves incorrectly when using arrow keys
https://user-images.githubusercontent.com/24822764/169886139-1449896c-65ea-4a27-8755-0b47efdf58f3.mp4

Code sample

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  MyHomePage({Key? key}) : super(key: key);
  late final _textController = TextEditingController()..text = 'فلاتر';

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Flutter Demo Home Page'),
      ),
      body: Center(
        child: Directionality(
          textDirection: TextDirection.rtl,
          child: TextField(
            controller: _textController,
            textAlign: TextAlign.right,
            textDirection: TextDirection.rtl,
          ),
        ),
      ),
    );
  }
}

Logs

[√] Flutter (Channel stable, 3.0.1, on Microsoft Windows [Version 10.0.22000.675], locale en-US)
    • Flutter version 3.0.1 at C:\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision fb57da5f94 (4 days ago), 2022-05-19 15:50:29 -0700
    • Engine revision caaafc5604
    • Dart version 2.17.1
    • DevTools version 2.12.2

[√] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at C:\Android\sdk
    • Platform android-30, build-tools 30.0.2
    • ANDROID_HOME = C:\Android\sdk
    • Java binary at: C:\Program Files\Java\jdk1.8.0_301\bin\java.exe
    • Java version Java(TM) SE Runtime Environment (build 1.8.0_301-b09)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop for Windows (Visual Studio Enterprise 2022 17.1.0)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Enterprise
    • Visual Studio Enterprise 2022 version 17.1.32210.238
    • Windows 10 SDK version 10.0.19041.0

[!] Android Studio (not installed)
    • Android Studio not found; download from https://developer.android.com/studio/index.html
      (or visit https://flutter.dev/docs/get-started/install/windows#android-setup for detailed instructions).

[√] IntelliJ IDEA Ultimate Edition (version 2021.3)
    • IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA 2019.3
    • Flutter plugin version 67.1.3
    • Dart plugin version 213.5744.122

[√] VS Code (version 1.66.1)
    • VS Code at C:\Users\Peyman\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension can be installed from:
       https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[√] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.22000.675]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 101.0.4951.67
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 101.0.1210.53

[√] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

Hi @Viper-Bit
I see there's an open issue addressing the case you described #78660.
Please follow up on that issue, I'm closing the current one as a duplicate.
If you disagree, please write in the comments and I will reopen it.
Thank you


feat: Adds support for Terrascan

This adds terrascan as an additional hook option. Closes #145

Finally! :) Thank you, Cesar!
v1.50.0 has been just released.

Thanks Anton!


Day84: LeetCode-1807. Evaluate the Bracket Pairs of a String - HashTable

Evaluate the Bracket Pairs of a String
https://leetcode.com/problems/evaluate-the-bracket-pairs-of-a-string/
You are given a string s that contains some bracket pairs, with each pair containing a non-empty key.
For example, in the string "(name)is(age)yearsold", there are two bracket pairs that contain the keys "name" and "age".
You know the values of a wide range of keys. This is represented by a 2D string array knowledge where each knowledge[i] = [keyi, valuei] indicates that key keyi has a value of valuei.
You are tasked to evaluate all of the bracket pairs. When you evaluate a bracket pair that contains some key keyi, you will:
Replace keyi and the bracket pair with the key's corresponding valuei.
If you do not know the value of the key, you will replace keyi and the bracket pair with a question mark "?" (without the quotation marks).
Each key will appear at most once in your knowledge. There will not be any nested brackets in s.

Return the resulting string after evaluating all of the bracket pairs.
Example 1:
Input: s = "(name)is(age)yearsold", knowledge = [["name","bob"],["age","two"]]
Output: "bobistwoyearsold"
Explanation:
The key "name" has a value of "bob", so replace "(name)" with "bob".
The key "age" has a value of "two", so replace "(age)" with "two".
Example 2:
Input: s = "hi(name)", knowledge = [["a","b"]]
Output: "hi?"
Explanation: As you do not know the value of the key "name", replace "(name)" with "?".
Example 3:
Input: s = "(a)(a)(a)aaa", knowledge = [["a","yes"]]
Output: "yesyesyesaaa"
Explanation: The same key can appear multiple times.
The key "a" has a value of "yes", so replace all occurrences of "(a)" with "yes".
Notice that the "a"s not in a bracket pair are not evaluated.


Heyo, thanks for the bookmark feature, but regex coming out too long to paste

hit 50 char limit with ^(.*bloodlines|.*hordes|.*monstrous.lineage|.*wisps)$
I wonder if there is a open regex solver type thing to shorten it computationally lol. rather where to find it since it definitely exists with how evil regex is. Thanks again! now I just gotta get steam to record the tool with the game next lool
was shortening by hand and I am not sure what ^ and $ do in regex off hand but i had to delete them to get it to work
.*bloodlines|.*hordes|.*monstrous.lineage|.*wisps
but both wisp scarabs show up, and with their names its... inconvenient to regex im sure with the limit.
well I cant figure out how to do something like wisp not ritual, but I realized I was avoiding the flavor text, when its the issue anyway! so I could just use that .... and violina- "ocht con" for scarab of wisps, "rit.*wisp" for ritual scarab of wisps. terrible to upkeep if they changed flavor texts often but I dont think thats likely, moreso just the scarabs themselves changing lol.
ugh I deleted some stuff apparently,  but ho.*od for bloodlines since it pulls up the lineage one from the flavor text..  I went and bought the two scarabs I was missing so I could test better.. really should just look up a solver lmao
ok for this set of regex at least...
"ho.*od|hordes|us lin|cht con"
fun times of over focusing on random stuff instead of farming! let me know what you find if you look into a solver, I can pluck away at this by hand over time its not too bad fun wise and regex do be a useful skill.... Ill make sure to keep it away from stuff that could knock commerce down globally though dw.

The regex is specifically for the in-game exchange since that is seemingly not as restricted as other in-game searches.

oh wild I figured it would be the same char limit. It still has the two wisp scarab overlap but nbd if intent was never for stash anyway- exchange is much easier to tell what you are grabbing with the text right there lol


Fix CreateEntry Dialog create action for reports

i18n-check

The following components have not been translated
component.collections-structure (ru)component.collections-structure (en)

Wait for the reviewers to check your changes in Weblate and try running github action again.


Mapbox integration

Hi, I have an error to add the pod for mapbox
[!] Unable to satisfy the following requirements:

ClusterKit/Mapbox required by Podfile

None of your spec sources contain a spec satisfying the dependency: ClusterKit/Mapbox.
Can you help me ?

didi you run pod repo update?

Hi,
Is the first time that I am using this pod. I used pod install
Daniele Rapali
iOS Developer
e<EMAIL_ADDRESS>m: +44 (0) 7427 350162
Infinite Intelligence Technologies Limited
8-9 Frith Street, Soho
London W1D 3JB

On 20 Nov 2017, at 16:44, Maxime<EMAIL_ADDRESS>wrote:
didi you run pod repo update?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/hulab/ClusterKit/issues/29#issuecomment-345754458, or mute the thread https://github.com/notifications/unsubscribe-auth/AfXynDGv8VHX8NfG2pGSEgdnkQwfifrZks5s4axjgaJpZM4Qb-EK.

Try to run pod repo update before install.