General philosophy and vision

Original post
Spinning this out of https://github.com/js-choi/proposal-bigint-math/issues/8#issuecomment-912126129 and https://github.com/js-choi/proposal-bigint-math/issues/9#issuecomment-914745763.
There are two dueling philosophies we could take for this proposal.

“BigInts and Numbers should always be interchangeable by default, unless there’s a strong reason they should not be (like precision loss or computational intractability).
“It’s weird and confusing that they’re not already more interchangeable.”

“BigInts and Numbers should not be interchangeable by default. Floating point and arbitrary-precision integers are fundamentally different. The choice of which to use should be thought through by the programmer.
“We already can’t have most of Math work for BigInts due to intractability [see #4], so even if we would like them to be interchangeable by default, that intuition just can’t hold up in practice. We need specific use cases for each one.”

Note that both philosophies would agree to add support for BigInt sign, abs, min, and max: there are clear use cases for all of these. (And if a clear use case appears in the future for certain other functions, then even the second philosophy would agree that we can add it in a future proposal.)
The proposal’s philosophy so far has been the first one (so it currently includes floor, ceil, etc. in #8). But the engine implementers have concerns about that, and we’re open to changing it. It would be good to make which philosophy we choose—and why we chose it—explicit.
There are also some relevant snippets from the 2021-08 meeting notes; I’ll wait until they’re public before I put them here.
CC: @syg, @yulia, @ljharb, @michaelficarra, @waldemarhorwat, @littledan

Edit (2021-09-17): The current answer is: The philosophy is neither maximizing interchangeability or maximizing separation. We maximize consistency with precedent instead.

It's great to see this fundamental question being addressed!
I think issue #10 is also related: if interchangeability is to be maximized, then putting functions on the Math object makes sense; whereas if the core strategy is to extend BigInt functionality while preserving separation from Numbers, then the BigInt object makes sense as a home.
My personal take is that there is already so much intentional non-interchangeability [1] that has been decided when BigInts were introduced, that maintaining a clear separation line is more consistent with earlier decisions, and less confusing for JS developers than blurring that line. To illustrate what I see as confusion risk: "Math.* is for Numbers, not for BigInts" is far easier to remember than "most of the Math.* functions are Number-only, but there is this more-or-less arbitrary [2] list of exceptions where you can also use BigInts". So personally I wouldn't start my reasoning with either of the two philosophies, instead I'd start with looking at the status quo and its history, and that brings me to "philosophy (2)" as a conclusion.
Aside from JavaScript-specific spec consistency issues, the argument that floating-point/rational/real math and integer math are fundamentally different also holds a lot of water. Certainly, there is a (comparatively small) set of calculations that both Numbers and BigInts can express, but there are also plenty of examples where they produce different results: pretty much any expression that involves non-integer values, or values beyond a certain "safe" range. To illustrate:
1 / 2 * 4 == 2, but 1n / 2n * 4n == 0n.
4 / (1 / 2) == 8, but 4n / (1n / 2n) throws a RangeError.
This proposal, as currently drafted, would add more differences:
Math.pow(2, Math.log2(7)) == 7, but Math.pow(2n, Math.log2(7n)) == 4n
Math.sqrt(11) * Math.sqrt(11) == 11, but Math.sqrt(11n) * Math.sqrt(11n) == 9n
Of course, chances are real code wouldn't spell out these constants; it'd have let d = a / b * c etc as part of a potentially long and involved sequence of computations, and someone would get to debug why it works for Numbers but doesn't work for BigInts, or vice versa. As @syg put it: The choice of which to use should be thought through by the programmer. Interchangeability at first glance seems like a nice idea, but doesn't hold up to reality.
[1] There is no precision loss or computational intractability reason why my_uint32_array[0] = 0n or my_biguint64_array[0] = 0 should throw, yet they do: at the time, TC39 decided that maintaining clear separation lines between Numbers and BigInts was more desirable than allowing interchangeability where it's possible. (Full disclosure: I argued against this restriction at the time and still think it's overly strict in this scenario; however given that this decision has been made, I believe that we should stick with it, because overall clarity and consistency is way more important than individual people's "but wouldn't this other bikeshed color have been prettier, and can't we at least paint the bikeshed's new door differently?" pet peeves, including my own.)
For another example of non-interchangeability, compare 1 >> -1 and 1n >> -1n (or various other shifts, e.g. 1 << 32 vs 1n << 32n).
[2] "None of the transcendental functions take BigInt arguments" would be less arbitrary (assuming you're sufficiently well-versed in math to know what a transcendental function is [3]), "most of the transcendental functions don't take BigInts, except log2 and log10, because... uh... maybe they looked a little less transcendental to someone?" is more arbitrary and yet another special case to remember.
[3] Does it have to do with teeth?

@jakobkummerow: Thank you for the excellent insights.
Your point about trying to stick with decisions that have already been made is well taken. Interchangeability

The decision was made to overload/extend existing math operations like / to accept BigInts. In a real sense, BigInts are interchangeable with Numbers in expressions involving +, -, *, /, and **. To me, this is an argument for overloading/extending existing Math methods as possible. (The only exception I know of, unary +, was excluded explicitly because of asm.js, rather than any argument .)
In other words, the decision was made to overload math operations in spite of differing behavior (1 / 2 * 4 == 2 and 1n / 2n * 4n == 0n). I think that adding methods to BigInt such as a BigInt.sign or a BigInt.sqrt would actually be breaking with this decision, but I understand that there’s more than one way to look at it.
The confusion risk from replacing the current “Math.* is for Numbers, not for BigInts” with “most of the Math.* functions are Number-only, with exceptions” is a good point. However, I think the precedent is already to accept inconsistent overloading (i.e., “at least one of the math operations is Number-only, with exceptions” is already true).

In addition, BigInts and Numbers can be compared with one another using < and <=. This decision was presumably made because comparison between BigInts and Numbers is well defined.
I feel that adding a BigInt.min and BigInt.max and continuing to have Math.min and Math.max support only Numbers—rather than allowing mixing of BigInts—breaks with this decision. After all, min and max are basically variadic, reducing versions of </<=, and the status quo of </<= is to allow mixing.

However, even though I feel that the precedent has been set to overload math operations, that does not mean that we should be maximizing interchangeability. In fact, I might be leaning more towards the second philosophy—but with the caveat that I think we should continue to overload math operations where appropriate.
The current BigInt status quo, I feel, is:

BigInts and Numbers are fundamentally not interchangeable by default.
Many (but not all) of the old math operations are overloaded/extended to allow BigInts, but they will act differently than their Number behaviors (1 / 2 * 4 == 2 and 1n / 2n * 4n == 0n), and the programmer should plan accordingly.
Some of the math operations still only accept Numbers (e.g., unary +). The programmer does have to remember which ones are like this.

But I understand that there are many points of view on what the “current precedent” is, and we should be open to them all. In any case, the point that we should be consistent with current precedent is a good point.
Perhaps other TC39 delegates who participated in BigInts’ original design (particularly @littledan, but perhaps also @caiolima, @martinthomson, @sarahghp, @chicoxyzzy, @jmdyck, @bakkot, and otherse) can give some insight into what they feel would be most in keeping with the original design’s precedent.

See here for some earlier discussion: https://github.com/tc39/proposal-bigint/issues/197
Key quote from @littledan:

the hope is to encourage people to be deliberate about whether they are using Number or BigInt--APIs are deliberately discouraged to "just work" between Number and BigInt, as sooner or later, this would lead to the risk of an accidental loss of precision for a BigInt.

@jakobkummerow: Great find with that quote; thank you!
That quote embodies a tension between avoiding accidental loss of precision due to interchangeability…and reusing the same operations (which is, in fact, a form of that interchangeability). (I include the Math methods as “operations” in this context; addition, pow, and sqrt are operations.)
If we followed @littledan’s quote there to the letter, then we would not have overloaded +, -, *, /, **, etc, but rather have created. TC39 didn’t because creating new operators is a big cognitive load and also complicated. So, it’s all a matter of balance.
To make this balance more explicit, I see a spectrum between “maximizing interoperability” and “no interoperability”.

Perhaps every single math operation should accept both Numbers and BigInts unless it is impossible. BigInts and Numbers should be as interchangeable in the language as possible.
Perhaps there should be no BigInt floor/ceil/round/trunc. BigInts are fundamentally different than Numbers. floor/ceil/round/trunc are meaningless with BigInts.
Perhaps there should also be separate Math functions for BigInts. BigInts are fundamentally different than Numbers. Math.pow shouldn’t accept BigInts; it should be BigInt.pow.
Perhaps there should also be separate syntactic operators for BigInts. BigInts are fundamentally different than Numbers. Like Math.pow, ** shouldn’t accept BigInts; it should be something like **{b}.

TC39 designed BigInts and Numbers not to be fully interchangeable, and for good reason. But they did not go all the way—they did not make the fourth choice.
I think there are good arguments for the second choice (avoiding BigInt floor etc.). But it gets weirder when you consider something like Math.pow. Why is ** overloaded for both Numbers and BigInts, but Math.pow isn’t?
Consistency with previous decisions should be our goal (as eloquently put in #14), but the previous decisions are already striking a fine balance between full interoperability and no interoperability. So it’s kind of tough.
Having said that, I understand @syg’s finding of “completeness” to be a very weak argument. I agree. I think that instead of “completeness”, we should strike for “consistency”…but how precisely to go about being more consistent will be a bit tricky.

This is a great issue — thanks for creating the space to discuss, @js-choi. I keep mulling over the bigger points, but there are two things that stand out for me just now:

I'm not certain that restricting interoperability is as much a protector against unintentional loss of precision as we expect. I don't expect folks to know every operation they want to perform and then pick the correct representation; rather I think we'd see precision lost in order to perform an operation: Oh now I need to do this math, let's throw the data in, oh no doesn't work on BigInt, better make it a Number... That is, it's a nice idea that developers can intentionally choose which representation to work with and then deliberately build up a system, but that's not a situation most folks I know tend to find themselves in all so often. Rather it's like, Here's a system twenty people built over five years, please add this here and change as little else as possible., and in that situation one people only has so much control over the initial representation of the data they will be working with.

Whatever we do here is going to end up influencing what we do with Decimal — we won't want to have a hodgepodge of methods that work with Number and Decimal but not BigInt or some sort of other combo that devs need to memorize. I think it's worth keeping that future in mind here.

Why is ** overloaded for both Numbers and BigInts, but Math.pow isn’t?

BigInts use the usual operators because the creators/champion(s) of the BigInt proposal strongly believed that that syntax is the most ergonomic way to denote common mathematical operations; in other words they strongly preferred bigint1 + bigint2 over BigInt.add(bigint1, bigint2) or bigint1 +{b} bigint2 or any such alternatives; and the committee agreed with that stance and accepted the proposal.
I don't think "interchangeability" was ever a goal behind this syntax decision, just programmer convenience and readability of BigInt-using code. In fact, making all binary operators throw for mixed BigInt/Number operands can be seen as minimizing interchangeability, while preserving the familiar and concise operator syntax. There's no technical reason why x ** 2 or x >> 2 couldn't "just work" when x is a BigInt, just an intention to keep BigInts and Numbers separate and non-interchangeable.
For the Math object, the BigInt proposal decided to follow the simple rule "Math.* is for Numbers, period".

Oh now I need to do this math, let's throw the data in, oh no doesn't work on BigInt, better make it a Number...

The hypothesis is that that by introducing an "oh no doesn't work on BigInt", there is at least an opportunity for reflection and education that would nudge folks down the path of thinking harder about their number representation.
@jakobkummerow gave me this compelling example the other day. Suppose Math.floor worked on BigInts, and I typed Math.ceil(3n / 2n). If I'm not one to ponder much about number representations, it's pretty reasonable to think that should return 2n. But it doesn't, because 3n / 2n already truncates to 1n. This is arguably worse than having an "oh no doesn't work on BigInt" error point, because you might not notice this kind of numeric inaccuracy for a long time.

Since floor and ceil are meaningless operations on things that have no decimal part, not allowing these to take BigInts seems fine with me, and your footgun example is compelling. I don't think that thinking automatically precludes every method, though (and certainly not max/min)

@syg: This is a great point. It might be specific to floor/ceil/round/trunc, right? Do you think it applies to pow, abs, sign, min, and max? Those are the five operations that I think have the strongest argument for type overloading.
I do plan to drop floor/ceil/round/trunc from the proposal completely. The Math.ceil(3n / 2n) anti-example is compelling.

@ljharb @js-choi That's right, that was a narrower point for rounding functions, not every function.

The broader point isn't that no Math functions make sense and we shouldn't provide BigInt functionality for them, but that a sufficiently small enough subset does that we might still want to keep them separate.

I’ll try to figure out if there are similar anti-examples for BigInt-truncating sqrt/cbrt/log2/log10

The first post in this thread states that "precision loss" is a "strong reason" not to aim for interchangeability. The fact that sqrt(4n) == sqrt(5n) == sqrt(6n) == sqrt(7n) == sqrt(8n) == 2n is a pretty bad case of precision loss: much worse than a Number result truncating to 53 bits of precision, here we observe a truncation to 2 significant bits.
cbrt/log2/log10/hypot have the same problem, of course.

Yes, that is true—avoiding precision loss is also a spectrum. @waldemarhorwat pointed out in the August plenary that there is precedent for truncation in /. It was decided that overloading / with a truncating BigInt division was acceptable. So it’s already not an all-precision-loss-or-no-precision-loss binary decision.
Anyways, I’d be happy to drop sqrt/cbrt/log2/log10 based on lack of clear use cases, too, though. Like I said at plenary, we could do this piecemeal. (log2 does have a use case as bit length, but, as you point out in #14, we could create a bitLength method with a different name—and that’s another debate that we should probably make an issue for.)

I think I’ve settled pretty firmly on eschewing both “maximal interchangeability” and “maximal interoperability” in favor of “maximal consistency with precedent”. I’ve edited the explainer with the following:

Philosophy
The philosophy is to be consistent with the precedents already set by the language.
These precedent include the following five rules:

BigInts and Numbers are not semantically interchangeable.
It is important for the developer to reason about them differently.
But, for ease of use, many (but not all) numeric operations
(such as division / and exponentiation **)
are type overloaded to accept both Numbers and BigInts.
These type-overloaded numeric operations
cannot mix Numbers and BigInts, with the exception of comparison operations.
Some numeric operations are not overloaded (such as unary +).
The programmer has to remember which operations are overloaded and which ones are not.
asm.js is still important, and operations on which it depends are not type overloaded.

In this precedent, only syntactic operators are currently considered as math operations.
We extend this precedent such that Math methods are also considered math operations.
Vision
This initial proposal overloads only a few first Math methods.
The vision is that this proposal would open up the way
to new proposals that would further extend Math with type-overloaded methods.
These may include:

Math.popCount
Math.bitLength
Math.modInv
Math.gcd
Math.clz64
Math.modInv
Math.range

@sarahghp: Whatever we do here is going to end up influencing what we do with Decimal — we won't want to have a hodgepodge of methods that work with Number and Decimal but not BigInt or some sort of other combo that devs need to memorize. I think it's worth keeping that future in mind here.

This is a good point. I think, unfortunately, that some amount of developer memorization is inevitable.
We’re either going to require developers to:

Memorize which operations accept BigInts/Decimals: “Does Math.log accept Decimals? Does it accept BigInts?”.
Memorize which methods are present on the Decimal/BigInt objects: “Does Decimal.log exist? Does BigInt.log exist?”

I think these two approaches are basically equivalent in memorization burden. And both approaches throw TypeErrors when invalid operations are attempted on invalid types. But I think the former approach (type-overloaded math methods with some exceptions) is more consistent with precedence (type-overloaded operations with some exceptions like unary +).

We should keep sqrt and cbrt for BigInts because we have pow. The truncation towards zero behavior is unsurprising (it matches /) and mathematically useful, both directly and in various algorithms.
For example, if you want to compute an arbitrary-precision square root of a BigInt, the truncated square root provides a great first step of the algorithm. You then square the truncated square root, subtract it from the original number, and proceed with the algorithm.
For another example, if you want to compute a truncated square root of a BigInt to 2 decimal places, multiply your original BigInt by 10000n, take the truncated square root, and you'll get the answer times 100n.

Another example: Suppose you want to compute the square root of a BigInt n rounded to the nearest integer instead of truncated. This is how you'd do it:
roundedSqrt = (Math.sqrt(4n * n) + 1n)/2n

Combining the two examples above, here's how to compute the square root of a BigInt n rounded to nearest to two decimal places:
let t = (Math.sqrt(40000n * n) + 1n)/2n;
let i = t / 100n; // Integral part of result
let f = t % 100n; // 00-99 decimal part of result```

We should keep sqrt and cbrt for BigInts because we have pow.
The truncation towards zero behavior is unsurprising (it matches /) and mathematically useful, both directly and in various algorithms.
For example, if you want to compute an arbitrary-precision square root of a BigInt, the truncated square root provides a great first step of the algorithm. You then square the truncated square root, subtract it from the original number, and proceed with the algorithm.

@waldemarhorwat: Thanks warmly for the comments.
Some feedback that we’ve gotten from engine implementers like @syg, @codehag, and @jakobkummerow is that they do not find “completion” rationales compelling (this is why floor, ceil, round, and trunc were also dropped, although of course those are also useless on BigInts). In response to that feedback, the general philosophy has been to greatly contract to a minimum core of obviously useful type overloads and deferring less-certainly-useful overloads to the future.
Having said that, I suspect that BigInt truncating sqrt and cbrt would be useful, but the pushback that I’ve gotten is that I cannot give any specific, definite use cases in which calculating the square/cube root of a BigInt would be useful. To use the example above, calculating arbitrary-precision square roots might conceivably be useful in applications, but what specific such applications would those be? We probably need specific applications to convince the engine implementers.
This is part of why I am soliciting research from the TC39 research incubator group as well as from developer surveys. I would welcome further suggestions regarding applications.
(This all falls under the greater general philosophy of now-restricting type overloads to obviously useful use cases. I guess that’s another piece of the philosophy that needs to get documented in the explainer.)

floor, ceil, round, and trunc are useless on BigInts and provide no value. In fact, they add to the confusion as some of the discussion has indicated.
sqrt and cbrt are just inverses of the most common cases of pow. It would be as weird to have one and not the other as it would be to have * but not /. They're easy and very lightweight to implement — the implementation cost of including them is trivial enough that it's not worth the effort to conduct developer surveys.
I'm afraid we're getting into analysis paralysis and design-by-voting rather than picking the simplest option, which is including the Math functions that mathematically make sense.

Suppose you want to compute the square root of a BigInt n rounded to the nearest integer

Then I suggest you do Math.round(Math.sqrt(Number(my_bigint))). In fact, if you're interested in results rounded to integer (or to two decimal places, for that matter), then your entire calculation is probably better off with Numbers.

sqrt and cbrt are just inverses of the most common cases of pow. It would be as weird to have one and not the other

That argument cuts both ways: pow is a legacy function rendered obsolete by the introduction of **, so there's little reason to extend it in any way (for BigInts or otherwise). So if the only reason to have sqrt is that we have pow, but the latter isn't really motivated other than by "because we could", then we might as well have neither of them.

the implementation cost of including them is trivial enough

From that claim, in turn, one could also conclude that it's perfectly fine to leave implementations to user space, especially as long as we know of no use cases.

To be accurate, let's keep the distinction between "sqrt is useful" (of which no evidence has been presented) and "it's weird not to have sqrt" (which is an opinion that some individuals have expressed).

@Yaffle I agree that bitLength would be useful.

Then I suggest you do Math.round(Math.sqrt(Number(my_bigint))).

And then you'd sometimes get the wrong answer.

In fact, if you're interested in results rounded to integer (or to two decimal places, for that matter), then your entire calculation is probably better off with Numbers.

Yes, lots of things can be done using Numbers. That doesn't say anything about the cases where you want guaranteed precision and rounding/truncating behavior. I'm not interested in rehashing the debate about the general usefulness of BigInts.

the implementation cost of including them is trivial enough

From that claim, in turn, one could also conclude that it's perfectly fine to leave implementations to user space, especially as long as we know of no use cases.

One could reach an incorrect conclusion. I was referring to the amount of code this would take, which is minuscule — smaller than some of the comments on this thread. However, the knowledge required to do it correctly is quite specialized and not accessible to most users. Also, a user-space implementation would not work as well as a built-in one because it would not be able to take advantage of the internal representation.


Add issue and pull_request templates.

I think all 3 categories "Type of Issue", "Development Phase", and "Impact" should be present for both issues and PRs. While not all values are possible for both issues and PRs, just having "Type of Issue" for issues and "Development Phase" and "Impact" for PRs isn't sufficient to describe either.

If you want to keep all the categories in there, can you phrase it in a way that won't cause confusion if it doesn't apply? For example, something like "list categories or link the relevant issue" or "this is applicable when..."

I think the only "Development Phase" has values that don't apply to both issues and PRs. Issues can't be "implementation" and PR's generally can't be "request". Removing those two check boxes from the issues and PRs template respectively should be enough. All the values for "Type of Issue" and "Impact" seem like they apply to both issues and PRs. @ducky64 do you see any other values that don't apply?

Kind of, but there's probably going to be quite a few edge cases. For example, the "impact" field makes sense for a proposal, but might not be obvious during a bug report. I guess the options in "type of issue" makes sense for a PR, but it should be re-labeled as "type of change"?

Ok I see, the impact field might be hard to determine for some thing like a bug fix request. How about just adding a "unknown" options to that field? I think issues still do need to have the impact field because some proposals aren't associated with code and will be filed as issues.
I agree with the suggestion to relabel "type of issue" as "type of change" for PRs.

retest this please


Does not aggregate zeros

Using the aggregator node to reduce the number of datapoints in my nodered dashboard that monitors solar generation.
Works well for both positive & negative numbers, but when solar generation is zero (at night), the aggregator does not produce an output.
It seems to struggle finding the mean value of 0 + 0 + 0 + 0 + 0, which I expected to be '0'.

I was surprised that I haven't recognised this error before. Anyhow I published version 1.1.1 to npm which fixes this issue. Please update the node to this version and try again. Please let me know again if you have any further issues.

Great, thank you.
Works well now.
Paul


Feature Request: Add labels for X and Y axes

Any chance of adding support for labeling the X and Y axes?

As a work-around, you can use table colspan and rowspan to easily add chart labels and titles surrounding the cssplot div.
Thanks, James.

Cool.


Add full name parsing utilities and improve module/model initialization

Proposed changes

Modules will only be initialized once

Program will be quicker but might require more memory as modules now stay loaded in memory until program is exited

From my own testing it initially required more memory at start but then stayed at the same size unlike the current design where the memory stack keeps growing during use.

All verbs/keywords now correspond to a single object instead of a module object for each keyword

Modules now have access to a shared NLP model pool

For NLP models that are used or will be used by many automation modules
Keeps memory usage lower as they are shared and only needs to load once

Name Entity Recognition utilities added, to be able to parse full names from text

Only implemented in send module but followup still happens (bug?)

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce.
Run all with python lib/cli/cli.py -d DEBUG

Open htop in a window and then run the program

Run the different modules and multiple times and check that the RES (resident size) doesn't increase for each call to the same module

send an email to John Doe and see that a full name will be parsed from the debug output (but followup still occurs!)
To check that the modules don't load several times, the easiest way is to add print(id(self)) in the Module.prepare methods. And see that the id always stays the same for the same module for each call to it

Related issue
Fixes #115 and fixes #126
Checkboxes

[x] I have run the unit tests with pytest
[x] I formatted the changes with ./scripts/formatter.sh

Pushed a fix for the problem with follow ups even though an exact match exists


Action nw

Rabia this is BRILLIANT
Sorry for the delay in reviewing. It works great and the code looks excellent to me. It was a fair bit of work I can see -- thank you!!


Merge current into next

Again, for 0.10.3 changes.

I'm not sure if this will absolutely botch next's history.

I'm not sure if this will absolutely botch next's history.

I think this looks fine. I would just suggest to not use the merge button on GitHub, but to push your existing merge commit from command-line now, to avoid GitHub adding another useless merge commit.


[fixed] Storage for Aliyun Block Storage

change default created diskCatagory (cloud -> cloud_ssd) and size(5 -> 20)
change script logic
enforce judgment

@Tracy1994 ,
#9807
#9808

@Tracy1994 ,
here is the testing catalog.

@Tracy1994 please test.

Also @thxCode please link to original general issue: https://github.com/rancher/rancher/issues/9194

I'll do follow-up changes to handle mentioned issues.

I've updated the PR.
@yasker PTAL
test catalog:
repo: https://github.com/gitlawr/rancher-catalog.git
branch: abs

And fix https://github.com/rancher/rancher/issues/9820

Very stale. Closing. Thanks! Please open a new PR if there is still a relevant change.


Support running ADAM/GATK pipeline on local storage

Bypass storage to S3
Run Spark using local

@fnothaft This still an issue?

Yes, leave open.


Add custom Fine-Tuning to ProcessingView

Add custom Fine-Tuning to ProcessingView
Refactor ProcessingView
Minor fixes

Merging without review to unblock partner.


Build script error for i386

platform: Debian i386.
error: while running script/build, the script bombs due to looking for x87 instead of x86 at nodejs.org
the build script is looking for:
http://nodejs.org/dist/v0.10.40/node-v0.10.40-linux-x87.tar.gz
when it should be looking for:
http://nodejs.org/dist/v0.10.40/node-v0.10.40-linux-x86.tar.gz

Build log
```
root@kali2-i386:~/Desktop/PROJECTS/atom# script/build
Node: v4.3.1
npm: v1.4.21
Installing build modules...
=> Took 83365ms.
Installing apm...
download not found: http://nodejs.org/dist/v0.10.40/node-v0.10.40-linux-x87.tar.gz
npm ERR! Linux 4.6.0-kali1-686-pae
npm ERR! argv "/usr/bin/nodejs" "/root/Desktop/PROJECTS/atom/build/node_modules/.bin/npm" "--userconfig=/root/Desktop/PROJECTS/atom/build/.npmrc" "--target=0.10.35" "install" "--loglevel" "error"
npm ERR! node v4.3.1
npm ERR! npm v2.13.3
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>install: node ./script/download-node.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script 'node ./script/download-node.js'.
npm ERR! This is most likely a problem with the atom-package-manager package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node ./script/download-node.js
npm ERR! You can get their info via:
npm ERR! npm owner ls atom-package-manager
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /root/Desktop/PROJECTS/atom/apm/npm-debug.log
root@kali2-i386:~/Desktop/PROJECTS/atom#
</details>

Hi, I am unable to replicate the error.
I set up a VM with Debian jessie i386 (https://atlas.hashicorp.com/deb/boxes/jessie-i386), 2GB RAM, and installed git version 2.1.4 and node version 6.3.0, and ran the following, using the build instructions here
sudo apt-get install build-essential git libgnome-keyring-dev fakeroot
git clone https://github.com/atom/atom.git
cd atom
git fetch -p
git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
script/build

```
vagrant@jessie-i386:~/atom$ script/build
Node: v6.3.0
npm: v3.10.3
Installing build modules...
=> Took 83458ms.
Installing apm...
=> Took 60232ms.
Deleting old packages...
=> Took 408ms.

Deduping modules ✓
=> Took 39750ms.
Running "download-electron" task
Running "download-electron-chromedriver" task
Running "build" task
Running "babel:dist" (babel) task
Running "coffee:glob_to_multiple" (coffee) task

336 files created.

Running "prebuild-less:src" (prebuild-less) task

1891 files compiled, 0 files reused

Running "cson:glob_to_multiple" (cson) task

172 files compiled to JSON.

Running "peg:glob_to_multiple" (peg) task
Generating parser from "node_modules/snippets/lib/snippet-body.pegjs"...
Parser "/home/vagrant/atom/out/Atom/resources/app/node_modules/snippets/lib/snippet-body.js" generated in 36ms.
Running "generate-license:save" (generate-license) task
Running "generate-module-cache" task
Running "compile-packages-slug" task
Running "set-version" task
Running "generate-asar" task
Done, without errors.
Execution Time (2016-07-08 22:05:22 UTC)
loading tasks                       2.4s  ▇ 1%
download-electron               1m 44.8s  ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 55%
download-electron-chromedriver      3.1s  ▇ 2%
build                               5.8s  ▇ 3%
coffee:glob_to_multiple            14.7s  ▇▇▇ 8%
prebuild-less:src                    38s  ▇▇▇▇▇▇▇ 20%
cson:glob_to_multiple               4.6s  ▇ 2%
generate-asar                      11.5s  ▇▇ 6%
Total 3m 8.8s
</detail>

I tried skipping the lines

git fetch -p
git checkout $(git describe --tags git rev-list --tags --max-count=1)
to run it on the latest developer version (currently https://github.com/atom/atom/tree/98fc8db3daa2021d391f03f93b1de8f40e424cb4), and that worked fine too. I'm not sure why, but in this case I had to run `script/build` twice.

<detail>

vagrant@jessie-i386:~/atom$ script/build
Node: v6.3.0
npm: v3.10.3
Installing build modules...
npm ERR! Linux 3.16.0-4-686-pae
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "--userconfig=/home/vagrant/atom/build/.npmrc" "install" "--loglevel" "error"
npm ERR! node v6.3.0
npm ERR! npm  v3.10.3
npm ERR! path /home/vagrant/.atom/.npm/registry.npmjs.org/escope/.cache.json.880692309
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall lstat
npm ERR! enoent ENOENT: no such file or directory, lstat '/home/vagrant/.atom/.npm/registry.npmjs.org/escope/.cache.json.880692309'
npm ERR! enoent ENOENT: no such file or directory, lstat '/home/vagrant/.atom/.npm/registry.npmjs.org/escope/.cache.json.880692309'
npm ERR! enoent This is most likely not a problem with npm itself
npm ERR! enoent and is related to npm not being able to find a file.
npm ERR! enoent
npm ERR! Please include the following file with any support request:
npm ERR!     /home/vagrant/atom/build/npm-debug.log
vagrant@jessie-i386:~/atom$
vagrant@jessie-i386:~/atom$ script/build
Node: v6.3.0
npm: v3.10.3
Installing build modules...
=> Took 86018ms.
Installing apm...
=> Took 71408ms.
Deleting old packages...
=> Took 424ms.

Deduping modules ✓
=> Took 47531ms.
Running "download-electron" task
Running "download-electron-chromedriver" task
Running "build" task
Running "babel:dist" (babel) task
Running "coffee:glob_to_multiple" (coffee) task

343 files created.

Running "prebuild-less:src" (prebuild-less) task

1610 files compiled, 0 files reused

Running "cson:glob_to_multiple" (cson) task

172 files compiled to JSON.

Running "peg:glob_to_multiple" (peg) task
Generating parser from "node_modules/snippets/lib/snippet-body.pegjs"...
Parser "/home/vagrant/atom/out/Atom/resources/app/node_modules/snippets/lib/snippet-body.js" generated in 39ms.
Running "generate-license:save" (generate-license) task
Running "generate-module-cache" task
Running "compile-packages-slug" task
Running "set-version" task
Running "generate-asar" task
Done, without errors.
Execution Time (2016-07-08 22:37:26 UTC)
loading tasks                       3.5s  ▇ 2%
download-electron               1m 59.6s  ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 60%
download-electron-chromedriver      2.5s  ▇ 1%
build                                13s  ▇▇ 6%
coffee:glob_to_multiple            11.7s  ▇▇ 6%
prebuild-less:src                  33.1s  ▇▇▇▇▇ 16%
cson:glob_to_multiple               4.2s  ▇ 2%
generate-asar                       9.3s  ▇▇ 5%
Total 3m 20.6s
</detail>

@ddm3rr1tt Do you have any more information? We haven't been able to reproduce the problem you're describing.

I can confirm this. Debian Testing (Stretch), i386.
@lee-dohm, what kind of informations would you like to have ?

If you can help track down why it would be asking for x87 instead of x86 that would be a big help, because we haven't been able to figure it out so far.

npm-debug.txt
What else can I do ? I tried to look at the atom/apm repo, but didn't see anything. But I think it may be an error in some kind of library/function or idk what called (here)[https://github.com/atom/apm/blob/v1.9.2/script/download-node.js].

i was using Kali i386...the script selected teh URL with x87 instead of
x86...i got around it by download teh package and installing it then
running the script again
On Tue, Jul 12, 2016 at 3:09 AM, Lee Dohm<EMAIL_ADDRESS>wrote:

@ddm3rr1tt https://github.com/ddm3rr1tt Do you have any more
information? We haven't been able to reproduce the problem you're
describing.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/atom/atom/issues/12116#issuecomment-231955780, or mute
the thread
https://github.com/notifications/unsubscribe/AGVc3z1vCjTaIEWO76FkiYyiDHPJeAxwks5qUz2jgaJpZM4JHYdW
.

It looks like nodejs on Kali was built with target arch=x87 (process.arch evaluates to "x87"). Installing a build from nodesource should solve it as it is built for ia32. Seems like most recent debian release also uses ia32, but I don't know if it was different in the past (unlikely).

Issue with Kali's node configuration. Closing.


Once supper

hi how can retrive changes once?
you support once call?

@boardmain Yes you can use "singleValueListener" instead of valueListener same as here:
https://github.com/Android-Embed/ti-firebase/blob/master/example/lib/firebase.js#L43


If an ID in a simulation has been used, it should not be used again

The program should check that the requested combination of simulation and id has not been used.

Currently it errors and provides no feedback so we should add a UI element to explain this to the user too.

Yes please


Problem with video 3, angular 2 dev script missing

http://stackoverflow.com/questions/34727341/which-angular2-script-needs-to-be-included-in-order-to-run-basic-angular-2-app
The following script does not exist node_modules/angular2/bundles/angular2.sfx.dev.js

These lines worked for me
    <script src="node_modules/es6-shim/es6-shim.js"></script>
    <script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
    <script src="node_modules/systemjs/dist/system.src.js"></script>
    <script src="node_modules/rxjs/bundles/Rx.js"></script>
    <script src="node_modules/angular2/bundles/angular2.dev.js"></script>


Rewrite HTTP BBE contents

Description:

$Subject

Describe your task(s)
Progress is tracked here : https://docs.google.com/spreadsheets/d/18C0iO3NtB5-KxqQpk58Wf0I0M82-fmNJwsjJBHjMBgo/edit#gid=1686985416

https://github.com/ballerina-platform/ballerina-distribution/pull/3779
https://github.com/ballerina-platform/ballerina-distribution/pull/3789
https://github.com/ballerina-platform/ballerina-distribution/pull/3795

https://github.com/ballerina-platform/ballerina-distribution/pull/3939
https://github.com/ballerina-platform/ballerina-distribution/pull/3925
https://github.com/ballerina-platform/ballerina-distribution/pull/3921
https://github.com/ballerina-platform/ballerina-distribution/pull/3916
https://github.com/ballerina-platform/ballerina-distribution/pull/3908
https://github.com/ballerina-platform/ballerina-distribution/pull/3895
https://github.com/ballerina-platform/ballerina-distribution/pull/3886
https://github.com/ballerina-platform/ballerina-distribution/pull/3855
https://github.com/ballerina-platform/ballerina-distribution/pull/3838
https://github.com/ballerina-platform/ballerina-distribution/pull/3795
https://github.com/ballerina-platform/ballerina-distribution/pull/3789
https://github.com/ballerina-platform/ballerina-distribution/pull/3779
https://github.com/ballerina-platform/ballerina-distribution/pull/3590
https://github.com/ballerina-platform/ballerina-distribution/pull/3589
https://github.com/ballerina-platform/ballerina-distribution/pull/3587
https://github.com/ballerina-platform/ballerina-distribution/pull/3585
https://github.com/ballerina-platform/ballerina-distribution/pull/3566


Added follow or unfollow account

Added follow or unfollow an account using the account id.

throws Instagram exception
account details of the followed or unfollowed account will be the response

bugs found


Focus search by default

Again me, again with feature request :)
Would it be possible to focus search by default?
It would be quite useful for heavy keyboard users.

Done in v1.3.0

Thank you!


A few issues with the examples

So I tried the PerfRender file you suggested to test out scaling and such, and that works! :+1:
I am running into a few issues, though:

In its original configuration PerfRender.js was set to 3 rows and 4 columns. My screen isn't HD, so I had to set that to 2x2, otherwise I got a black screen after the first 2 renders started drawing (some kind of "out of bounds" issue?)

PerfGLGrid.js is only showing a blue screen. The texture property of all the ws (WritableFilter) instances is always undefined :/ (And yeah, I also changed the rows & columns here)

When I try PerfGLGrid.js a few times in a row (only ever getting the dark blue screen), I get an Error: OMX_GetState() returned error: OMX_ErrorInsufficientResources. PerfRender.js will now only show 1 video, instead of 4. To get everything back to normal again I have to reboot the pi.

Also:

SimpleVideoDecoderRender.js plays the video 'till the end
SimpleVideoDecoderRenderTunner.js stops just about after the "presents..." title, never exiting the script. Seems like it's caused by tunnel-ing the data into the renderer instead of using pipe

About the 'out of bound' issue, try changing the width and height to the size of your monitor, I do adjust the videos to that dimension.
Any example with gl in the name uses the experimental OpenGL library and they are not fully functional, I should add experimental in their name. I do believe they leak GL ressources, and you have to restart the PI to get them working again.
I will try SimpleVideoDecoderRenderTunnel.js when I get a chance. I believe it worked last time. Try restarting your PI and try again.

If you don't mind, I will close this bug, if you have more info, please feel free to re-open.


php artisan "Call to undefined method [package]"

After placing the service provider in my providers array, php artisan commands no longer work. Any ideas?
It seems to be the line 29 in the LaravelDoctrineServiceProvider class:
$this->package('mitchellvanw/laravel-doctrine', 'doctrine', __DIR__ . '/..');

that it fails on

I now see that the package function no longer exists in Laravel 5.
Laravel 4.2: http://laravel.com/api/4.2/Illuminate/Support/ServiceProvider.html
Laravel 5: http://laravel.com/api/5.0/Illuminate/Support/ServiceProvider.html

What version of laravel-doctrine are you using? I believe this issue has already been resolved on the dev branch. laravel-doctrine is not yet L5 supported, but we're almost there.

Ahhh I see, yes... I'm using Laravel 5... That'd be why!

You can start using the master branch if you like as we move towards L5 support.

Unfortunately still uses the package method... But will stay tuned for your updates :)

@jamestrusleroval will close this for now as it is resolved on the laravel 5 dev branch.


Hi GOST-UA ,there is some bugs in the PR

https://github.com/everettjf/vscode-filter-line/pull/19
Hi, @GOST-UA
I found that the basic filter string not work after I merged and published.
So I rollback the master code to version 1.5.1 and republish it to 2.0.1
The branch dev (https://github.com/everettjf/vscode-filter-line/tree/dev) contains your code. You could debug :)
I will focus on the dev these days maybe~
Sorry for that.

OK, I'll try debug today, if not I will continue on Monday

I just tried to reproduce this issue and it works. Could you provide some additional info: OS which you used, logs from FilterLine Output, maybe sample file.

any file that already saved on disk. Do you have telegram account? add me if you have. My account is everettjf

From: GOST-UA<EMAIL_ADDRESS>Sent: Saturday, February 8, 2020 4:37:37 AM
To: everettjf/vscode-filter-line<EMAIL_ADDRESS>Cc: everettjf<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [everettjf/vscode-filter-line] Hi GOST-UA ,there is some bugs in the PR (#21)
I just tried to reproduce this issue and it works. Could you provide some additional info: OS which you used, logs from FilterLine Output, maybe sample file.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/everettjf/vscode-filter-line/issues/21?email_source=notifications&email_token=AAMWQVOOKKT3TETSKS24XILRBXBBDA5CNFSM4KRROLI2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELEQNDY#issuecomment-583599759, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAMWQVJRLRXAVRTYSFC6RX3RBXBBDANCNFSM4KRROLIQ.

os: macOS


test: ensure smooth error conversion from rusqlite

Coverage: 93.983% (+5.4%) from 88.589% when pulling 6bd003a9ea8ad21cda4daff222bbea29aa6479d9 on error-tests into f3c45cd7d288eaaf80810e59aba48594553d170e on master.


Organization signup not ready page closes #4246

@xavijam CR this, please. This closes #4246.

Further to html, ok!, do you need me to review rest?

Frontend tests were OK :+1: (details)

@xavijam no, that's enough, Ruby code is quite straightforward. Let's summon @rafatower just in case :)

:+1:

Frontend tests were OK :+1: (details)


Recognize block_encryption_mode from downstream

Lightning as of 4.0.9 always use the default block_encryption_mode. Since block_encryption_mode affects result of aes_encrypt() and aes_decrypt(), using the wrong mode may produce incorrect result for stored generated columns.
We should always copy the block_encryption_mode from downstream, just like tidb_row_format_version.

I'm a little confused about this, In what condition, will lightning call the aes_encrypt() and aes_decrypt? Maybe in column default value expression?
Is there any other session or global variables like this? 🤔

@glorv stored generated columns, default expression (this one seems not yet supported by parser), maybe expression index.
(P.S. turns out Lightning doesn't support stored generated columns yet and will produce wrong result.)

/label severity/critical

System variables required by MySQL 8.0 functions
max_allowed_packet
Affects almost all string functions, even as intermediate step. Produced NULL if exceeding @@max_allowed_packet.
Demo
mysql> select sha1(space(999999));
+------------------------------------------+
| sha1(space(999999))                      |
+------------------------------------------+
| dd20a2d11138f380cae145cd4361b2ac885e591d |
+------------------------------------------+
1 row in set (0.09 sec)

mysql> set max_allowed_packet=4096;
Query OK, 0 rows affected (0.06 sec)

mysql> select sha1(space(999999));
+---------------------+
| sha1(space(999999)) |
+---------------------+
| NULL                |
+---------------------+
1 row in set, 1 warning (0.04 sec)

div_precision_increment
Not implemented by TiDB yet (pingcap/tidb#21485), but affects the result of the / operator.
Demo
mysql> select 1/3, length(1/3);
+--------+-------------+
| 1/3    | length(1/3) |
+--------+-------------+
| 0.3333 |           6 |
+--------+-------------+
1 row in set (0.00 sec)

mysql> set @@div_precision_increment = 10;
Query OK, 0 rows affected (0.00 sec)

mysql> select 1/3, length(1/3);
+--------------+-------------+
| 1/3          | length(1/3) |
+--------------+-------------+
| 0.3333333333 |          12 |
+--------------+-------------+
1 row in set (0.00 sec)

time_zone
Our docs does mention that Lightning and TiDB should be running in the same time zone, so should be fine whether we replicate this or not.
Demo
mysql> set time_zone='-08:00';
Query OK, 0 rows affected (0.07 sec)

mysql> select cast(from_unixtime(1) as char);
+--------------------------------+
| cast(from_unixtime(1) as char) |
+--------------------------------+
| 1969-12-31 16:00:01            |
+--------------------------------+
1 row in set (0.04 sec)

mysql> set time_zone='+00:00';
Query OK, 0 rows affected (0.05 sec)

mysql> select cast(from_unixtime(1) as char);
+--------------------------------+
| cast(from_unixtime(1) as char) |
+--------------------------------+
| 1970-01-01 00:00:01            |
+--------------------------------+
1 row in set (0.04 sec)

lc_time_names
Another feature not yet implemented in TiDB. Affects the DATE_FORMAT, DAYNAME and MONTHNAME functions.
Demo
mysql> select date_format('2000-01-01', '%M');
+---------------------------------+
| date_format('2000-01-01', '%M') |
+---------------------------------+
| January                         |
+---------------------------------+
1 row in set (0.04 sec)

mysql> set lc_time_names = 'ja_JP';
Query OK, 0 rows affected (0.06 sec)

mysql> select date_format('2000-01-01', '%M');
+---------------------------------+
| date_format('2000-01-01', '%M') |
+---------------------------------+
| 1月                             |
+---------------------------------+
1 row in set (0.00 sec)

default_week_format
Affects the WEEK function if the mode argument was not provided.
Demo
mysql> select week('2020-02-02');
+--------------------+
| week('2020-02-02') |
+--------------------+
|                  5 |
+--------------------+
1 row in set (0.05 sec)

mysql> set @@default_week_format = 4;
Query OK, 0 rows affected (0.05 sec)

mysql> select week('2020-02-02');
+--------------------+
| week('2020-02-02') |
+--------------------+
|                  6 |
+--------------------+
1 row in set (0.04 sec)

regexp_stack_limit, regexp_time_limit
Not implemented by TiDB, and seems irrelevant due to regexp engine difference.
block_encryption_mode
This issue. Affects AES_ENCRYPT and AES_DECRYPT.
pseudo_thread_id
Affects the result of CONNECTION_ID function, but it makes no sense evaluating this in Lightning, and this is unsupported in TiDB.
group_concat_max_len
Affects GROUP_CONCAT, but aggregation functions are disallowed so we are fine to not copy it.


Warning about deprecated constants in the log file.

Version of the custom_component

V.0.2.0
Installation method (hacs / manual)
HACS
Installation method of hass (venv, docker, hassio,...)
Configuration

Add your configuration here.

Describe the bug
Deprecation error in the log file with HA 2024.1.1
Debug log

Logger: homeassistant.components.device_tracker
Source: helpers/deprecation.py:205
Integration: Device Tracker (documentation, issues)
First occurred: 10:45:36 (2 occurrences)
Last logged: 10:45:36

SOURCE_TYPE_GPS was used from volkswagen_we_connect_id, this is a deprecated constant which will be removed in HA Core 2025.1. Use SourceType.GPS instead, please report it to the author of the 'volkswagen_we_connect_id' custom integration

and

Logger: homeassistant.const
Source: helpers/deprecation.py:205
First occurred: 10:45:35 (5 occurrences)
Last logged: 10:45:35

LENGTH_KILOMETERS was used from volkswagen_we_connect_id, this is a deprecated constant which will be removed in HA Core 2025.1. Use UnitOfLength.KILOMETERS instead, please report it to the author of the 'volkswagen_we_connect_id' custom integration
SPEED_KILOMETERS_PER_HOUR was used from volkswagen_we_connect_id, this is a deprecated constant which will be removed in HA Core 2025.1. Use UnitOfSpeed.KILOMETERS_PER_HOUR instead, please report it to the author of the 'volkswagen_we_connect_id' custom integration
TIME_DAYS was used from volkswagen_we_connect_id, this is a deprecated constant which will be removed in HA Core 2025.1. Use UnitOfTime.DAYS instead, please report it to the author of the 'volkswagen_we_connect_id' custom integration
TIME_MINUTES was used from volkswagen_we_connect_id, this is a deprecated constant which will be removed in HA Core 2025.1. Use UnitOfTime.MINUTES instead, please report it to the author of the 'volkswagen_we_connect_id' custom integration
TEMP_CELSIUS was used from volkswagen_we_connect_id, this is a deprecated constant which will be removed in HA Core 2025.1. Use UnitOfTemperature.CELSIUS instead, please report it to the author of the 'volkswagen_we_connect_id' custom integration

this seems to be fixed in master via #243 and is not present in main anymore, so a new release will incorporate this.

Problem gone away


implement end-points

server end-point
add model methods
add packages to packages.json

 [2] set up  request handlers for service api


Error when connecting to Docker

Hello,
When connecting to Docker v19 (maybe the same for older version), i get this error
Process returned exit code 1: Template parsing error: template: :1:13: executing "" at <.State>: can't evaluate field State in type *formatter.containerContext
And the details
io.xpipe.core.process.ProcessOutputException: Process returned exit code 1: Template parsing error: template: :1:13: executing "" at <.State>: can't evaluate field State in type *formatter.containerContext at io.xpipe.core.process.ProcessOutputException.of(ProcessOutputException.java:36) at io.xpipe.ext.proc.a.a(SourceFile:249) at io.xpipe.ext.proc.a.readStdoutOrThrow(SourceFile:294) at io.xpipe.ext.proc.docker.i.g(SourceFile:178) at io.xpipe.ext.proc.docker.i.a(SourceFile:147) at io.xpipe.ext.proc.docker.DockerCmdStore.listChildren(SourceFile:65) at io.xpipe.app.storage.DataStorage.refreshChildren(DataStorage.java:230) at io.xpipe.ext.base.action.RefreshStoreAction$Action.execute(RefreshStoreAction.java:26) at io.xpipe.app.comp.store.StoreEntryWrapper.executeDefaultAction(StoreEntryWrapper.java:205) at io.xpipe.app.comp.store.StoreEntryComp.lambda$createSimple$0(StoreEntryComp.java:101) at io.xpipe.app.util.ThreadHelper.lambda$runFailableAsync$1(ThreadHelper.java:40) at io.xpipe.app.util.ThreadHelper.lambda$wrap$0(ThreadHelper.java:19) at java.lang.VirtualThread.run(VirtualThread.java:309)
Xpipe Version 1.7.10
No problem with Docker v20

Yeah I think that is caused by older versions of docker not supporting that option. I'm not sure whether I want to support older versions, as that is quite some work.
Is there any reason why you run an old docker version?

So good news, it seems like I can replace .State with .Status, which also has the nice side effect of showing better status messages:

This has now been implemented in the latest PTB build at https://github.com/xpipe-io/xpipe-ptb, so you can try it out if you want

I will 😄😄😄

This feature is now released, you can try it out in the latest version

Closing this for now, feel free to reopen if something does not work as expected


Finer-graded control of responses

Is your feature request related to a problem? Please describe.
I would like to be able to implement fine-graded control of responses e.g. to response first with response A then next time with response B, or to assign weightings e.g. respond 70% of the time with the OK response (think HTTP 200 response), 10% with a server-error response (think HTTP 5xx responses), and 20% with a your request failed response (think HTTP 4xx responses).
These would enable me to automate and test using richer conversations.
Describe the solution you'd like
A mechanism where I could:

pre-specify the 'rules' that qontract (or a delegated utility) would return;
control the responses on-the-fly where I can do so without needing to shutdown or restart the qontract server.

Describe alternatives you've considered
hmmmm. Looking for another tool? To be honest, I've not really considered many alternatives, I can envisage this being a great enhancement if it's practical to implement.
Additional context
I mentioned a wishful idea of using a plugin architecture in #148 perhaps this is another example of where plugins might work well?

BTW: I'd like similar abilities to do things such as delay responses by varying amounts. It would also be useful if the server logs would include the details used (and optionally e.g. if configured to run in verbose mode, to include the rule that was applied to the response).

If I've understood the bit about delayed responses, it's supported.
However, there's nothing in the logs that tells you that a delay was introduced, and by which stub expectation.


Override themeData

Hello, I'd like to customize the theme of the picker but it only accepts the main themeData.
Wrapping the calling widget into a Theme() widget is not working.
What solution can be used to independently from the main theme change the styles?
Here an example:
Widget build(BuildContext context) {
    return Theme(
      data: ThemeData(scaffoldBackgroundColor: Colors.black),
      child: FloatingActionButton(
        backgroundColor: backgroundDarkColor,
        onPressed: () async {
          Directory appDocDir = gitPath.folder != null
              ? Directory(gitPath.folder)
              : Directory('C:/');
          String path = await FilesystemPicker.open(
            title: 'Git Folder',
            context: context,
            rootDirectory: appDocDir,
            fsType: FilesystemType.folder,
            pickText: 'Pick this folder',
            folderIconColor: Colors.white,
          );
          gitPath.setPath(path);
        },
        child: Icon(
          Icons.folder_open,
        ),
      ),
    );
  }

I expect the background of the picker to be black.

@jim012 Wrapping a button with a Theme that calls FileSystemPicker will not work, because The FileSystemPicker is opened via Navigator.push. It takes the theme data from the application widget (MaterialApp/CupertinoApp). To customize the theme in FileSystemPicker, I need to inject custom theme support in FileSystemPicker. I will think about how it can be done, but it will not be implemented quickly.

@jim012 Please try the beta version 3.0, will it solve your problem?

@andyduke it worked, thanks!


stringValue() crashes on formula cell pointing to string cell

I'm trying to print out all the cells string values of one worksheet using:
if let worksheets = imported.worksheets {
                    if let firstWS = worksheets.first {
                        let cells = firstWS.cells.flatMap { $0 as? BRACell }
                        cells.forEach { cell in
                            print("\(cell.reference) \(cell.type)")
                            print("\(cell.stringValue())")
                        }
                    }
                }

But I get the following error/crash on I7 after a few cells in:
Optional("I7") BRACellContentType(rawValue: 6)
2016-10-23 09:12:30.129381 SwiftCell[37351:15115644] -[__NSDictionaryI length]: unrecognized selector sent to instance 0x600000e665c0
2016-10-23 09:12:30.130061 SwiftCell[37351:15115644] [General] <private>
2016-10-23 09:12:30.139817 SwiftCell[37351:15115644] [General] <private>

To uncover what might be behind the error, I tried to print the v property of the dictionaryRepresentation by using:
print("\(cell.dictionaryRepresentation[AnyHashable("v")])") // instead of printing the string value

When I do that, it no longer crashes and I get the following printout for the same I7 cell reference where it previous crashed when printing out the string value:
Optional("I7") BRACellContentType(rawValue: 6)
Optional({
    "__text" = "Vendas e servic\U0327os prestados ";
    "_xml:space" = preserve;
})

Additional context on I7 cell:
I7 is formula cell and the formula is "=A7"
A7 has the string "Vendas e serviços prestados".

Can't have the same problem here with your code.
Are you using the latest version from git (cocoapods is not up to date) ?
Note that reading the string value of a cell with formula is never a good idea since those values are never updated.


some node packages are omissive

when I compile the source,  I foudn some node packages are omissive, and it really spend a lot time for me to fix them. I write a list:
message/package.json
update:
"dependencies" : {
    "socket.io": "^1.3.7"
}

add:
"dependencies" : {
    "engine.io": "^1.5.4",
    "socket.io-client": "^1.3.7",
    "socket.io-parser": "^2.2.5"
}

ui-dev/bower.json
update:
"socket.io-client": "~1.3.7"

ui-dev/package.json
update:
"dependencies" : {
    "socket.io": "^1.3.7",
    "socket.io-client": "^1.3.7",
}
"devDependencies" : {
    "gulp-useref": "~3.0.2",
    "gulp-util": "~3.0.7",
}

add:
"dependencies" : {
    "wrappy": "~1.0.1",
    "glob": "~6.0.1",
    "minimatch": "~3.0.0"
}
"devDependencies": {
    "end-of-stream": "^1.1.0",
    "nodes": "~0.1.0",
    "readable-stream": "~2.0.4",
    "xtend": "~4.0.1"
}

ui-user/package.json
add:
"devDependencies" : {
    "core-util-is": "~1.0.2",
    "isarray": "~0.0.1"
}

ui-widgets/package.json
add:
"devDependencies" : {
    "to-fast-properties": "~1.0.1",
    "esutils": "~2.0.2",
    "repeating": "~2.0.0",
    "globals": "~8.12.0",
    "line-numbers": "~0.2.0",
    "js-tokens": "~1.0.2",
    "chalk": "~1.1.1",
    "babylon": "~6.2.0",
    "convert-source-map": "~1.1.2",
    "minimatch": "~3.0.0",
    "slash": "~1.0.0",
    "path-exists": "~2.1.0",
    "json5": "~0.4.0",
    "path-is-absolute": "~1.0.0",
    "shebang-regex": "~1.0.0",
    "source-map": "~0.5.3",
    "detect-indent": "~4.0.0",
    "trim-right": "~1.0.1",
    "is-integer": "~1.0.6",
    "try-resolve": "~1.0.1",
    "debug": "~2.2.0",
    "babel-plugin-constant-folding": "~1.0.1",
    "babel-plugin-eval": "~1.0.1",
    "babel-plugin-remove-debugger": "~1.0.1",
    "babel-plugin-remove-console": "~1.0.1",
    "babel-plugin-inline-environment-variables": "~1.0.1",
    "babel-plugin-dead-code-elimination": "~1.0.2",
    "babel-plugin-react-display-name": "~2.0.0",
    "babel-plugin-undeclared-variables-check": "~6.1.18",
    "babel-plugin-react-constant-elements": "~1.0.3",
    "regexpu": "~1.3.0",
    "babel-plugin-proto-to-assign": "~1.0.4",
    "babel-plugin-undefined-to-void": "~1.1.6",
    "regenerator": "~0.8.42",
    "babel-plugin-runtime": "~1.0.7",
    "babel-plugin-member-expression-literals": "~1.0.1",
    "babel-plugin-property-literals": "~1.0.1",
    "babel-plugin-jscript": "~1.0.4"
}

the gulp file also reports error, i fix it like that, it work.
ui-dev/gulpfile.js
// var assets = $.useref.assets({searchPath: [".tmp", "ui"]});
var assets = $.useref({searchPath: [".tmp", "ui"]});

has anyone else these same problems? I have made a fork with the fixed version.  https://github.com/callblueday/intel-iot-services-orchestration-layer

Hi callblueday,
Would you kindly please provide your environment (OS and node.js version) and steps so that I could try to reproduce this?
I just tried on my Ubuntu with node.js 0.12, and didn't encounter this issue. Actually a lot of packages you added aren't directly used by us. They seem to be next level dependencies of the packages we used. For example, we may use package X, but X uses Y. But we don't directly use Y actually and no need to add in package.json
I suspected that maybe when npm install X in your environment, it failed to automatically install Y while it should. As the result, you would see error of missing Y. While adding Y to package.json would workaround this (doing so installs Y at top level rather than node_moudles of X), it isn't the issue of package.json and we shouldn't do this fix.
These are steps I did on my Ubuntu trying to reproduce:
  # get a clean code
  git clone http://..........
  cd ...
  # clean local npm caches to ensure I download caches from remote
  npm cache clear
  # build
  ./link-npms.sh
  ./build.sh
 # try
  cd dist
  ./start_mock_demo.sh

 # and then http://localhost:8080 in a browser

Thanks, @jonathanding . The OS is Mac OSX Yosemite 10.10.5,  and my node version is v0.12.2.
I'll try it again in other os, thanks a lot for your reply!

Thanks callblueday. Please also help dump the stdin and stderr to a file if you continue to see this issue. This would help a lot for my diagnose :)

OK!


New release

Hi @tiaod,
when will you make a new release? I'm trying to use it with moleculer-web but the last release doesn't contain this line: https://github.com/tiaod/moleculer-io/blob/master/src/index.js#L40
Thanks!

The latest version on NPM is 0.12.1
{ name: 'moleculer-io',
  'dist-tags': { latest: '0.12.1' },

Oh, I am so sorry that I had forgot to release the latest version. :sweat_smile:
Thanks for reminding.


Title: Null check operator used on a null value. Error thrown Instance of 'ErrorDescription'. in box.dart

Overview
The following crash happened on our iOS/Android flutter app.
Unfortunately, the stack trace does not have application code information so I could not create a reproduction code.
Non-fatal Exception: io.flutter.plugins.firebase.crashlytics.FlutterError: Null check operator used on a null value. Error thrown Instance of 'ErrorDescription'.
       at RenderBox.size(box.dart:1951)
       at InkDecoration.paintFeature(ink_decoration.dart:374)
       at InkFeature._paint(material.dart:649)
       at _RenderInkFeatures.paint(material.dart:550)
       at RenderObject._paintWithContext(object.dart:2409)
       at PaintingContext.paintChild(object.dart:189)
       at RenderProxyBoxMixin.paint(proxy_box.dart:140)
       at PaintingContext.pushLayer(object.dart:398)
       at RenderPhysicalModel.paint(proxy_box.dart:1941)
       at RenderObject._paintWithContext(object.dart:2409)
       at PaintingContext.paintChild(object.dart:189)
       at RenderProxyBoxMixin.paint(proxy_box.dart:140)
       at RenderObject._paintWithContext(object.dart:2409)
       at PaintingContext.paintChild(object.dart:189)
       at RenderProxyBoxMixin.paint(proxy_box.dart:140)
       at RenderObject._paintWithContext(object.dart:2409)
       at PaintingContext._repaintCompositedChild(object.dart:141)
       at PaintingContext.repaintCompositedChild(object.dart:100)
       at PipelineOwner.flushPaint(object.dart:979)
       at RendererBinding.drawFrame(binding.dart:455)
       at WidgetsBinding.drawFrame(binding.dart:883)
       at RendererBinding._handlePersistentFrameCallback(binding.dart:319)
       at SchedulerBinding._invokeFrameCallback(binding.dart:1143)
       at SchedulerBinding.handleDrawFrame(binding.dart:1080)
       at SchedulerBinding._handleDrawFrame(binding.dart:996)

Could you share any information about the crash if you have any ideas?

  flutter doctor -v
➜ flutter doctor -v
[✓] Flutter (Channel stable, 2.5.2, on macOS 11.6 20G165 darwin-arm, locale ja-JP)
    • Flutter version 2.5.2 at /Users/rls01036096/fvm/versions/2.5.2
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 3595343e20 (9 months ago), 2021-09-30 12:58:18 -0700
    • Engine revision 6ac856380f
    • Dart version 2.14.3

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/rls01036096/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • ANDROID_HOME = /Users/rls01036096/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode13.app/Contents/Developer
    • Xcode 13.0, Build version 13A233
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)

[✓] VS Code (version 1.68.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.44.0
[✓] Connected device (2 available)
    • iPod touch (7th generation) (mobile) • 78B35B14-ABFB-4238-9DE3-5BC42C012352 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-15-0
      (simulator)
    • Chrome (web)                         • chrome                               • web-javascript • Google Chrome 103.0.5060.114

Hi @SShayashi, thanks for filing the issue.
Can you please provide the device details for this?
Is this issue reproducible locally? If so, can you please share the output of flutter run -v?
Also, from your flutter doctor -v, I can see that you are using the old Flutter version 2.5.2, the latest Flutter stable is 3.0.4 and the master is 3.1.0-0.0.pre.1609. Please try upgrading them and retry to see if this issue still reproduces.

@huycozy

Can you please provide the device details for this?

We checked out Firebase Crashlytics and the followings are device information.
In the most recent month, the crash happend in 4 iOS users and 7 Android users.
iOS
device, os
iPhone 13, 15.5.0
iPhone 12 Mini, 15.5.0
iPhone 12, 15.5.0
iPhone 7, 15.5.0

Android
device, os
moto g(8) power lite, Android 10
Galaxy A30, Android 9
AQUOS R3 808SH, Android 9
Galaxy S9, Android 10
AQUOS R2 SH-03K, Android 10
Galaxy A41, Android 11
Xperia XZ3, Android 10

Is this issue reproducible locally? If so, can you please share the output of flutter run -v?

We are sorry, but we have not been able to reproduce the problem because we do not know the cause.

Also, from your flutter doctor -v, I can see that you are using the old Flutter version 2.5.2, the latest Flutter stable is 3.0.4 and the master is 3.1.0-0.0.pre.1609. Please try upgrading them and retry to see if this issue still reproduces.

We are considering upgrading but it is unlikely to be implemented soon. If it is still occurring after the upgrade, we can share it again.

@SShayashi Thanks for responding. Labeling the issue for further investigation/updates.

Hey @huycozy any updates on this one?
Firebase Crashlytics is reporting this issue on the latest Flutter version 3.3.4.

@vlazdra This issue has been prioritized with p4 which means the team agrees that it is important to work on. You might want to take a look at this: How issue prioritization works

We're also facing this issue.
_CastError
Null check operator used on a null value

box.dart in RenderBox.size at line 2023 within flutter
button_content.dart in _ButtonContentState.getTextWidgetWidth at line 97 within auth_buttons
button_content.dart in _ButtonContentState.initState.<fn> at line 50 within auth_buttons
binding.dart in SchedulerBinding._invokeFrameCallback at line 1175 within flutter

We are also having this issue in Release from a user.  iOS 15.6.1, iPhone 8 Plus, Flutter 3.7.4
We can not replicate, FYI.
_CastError: Null check operator used on a null value
  File "box.dart", line 2031, in RenderBox.size
  File "custom_layout.dart", line 172, in MultiChildLayoutDelegate.layoutChild
  File "widget_layout_delegate.dart", line 80, in WidgetLayoutDelegate.performLayout
  File "custom_layout.dart", line 240, in MultiChildLayoutDelegate._callPerformLayout
  File "custom_layout.dart", line 410, in RenderCustomMultiChildLayoutBox.performLayout
  File "object.dart", line 2189, in RenderObject.layout
  File "box.dart", line 2430, in RenderBox.layout
  File "shifted_box.dart", line 240, in RenderPadding.performLayout
  File "object.dart", line 2189, in RenderObject.layout
  File "box.dart", line 2430, in RenderBox.layout
  File "layout_helper.dart", line 56, in ChildLayoutHelper.layoutChild
  File "flex.dart", line 903, in RenderFlex._computeSizes
  File "flex.dart", line 938, in RenderFlex.performLayout
  File "object.dart", line 2027, in RenderObject._layoutWithoutResize
  File "object.dart", line 1020, in PipelineOwner.flushLayout
  File "binding.dart", line 516, in RendererBinding.drawFrame
  File "binding.dart", line 865, in WidgetsBinding.drawFrame
  File "binding.dart", line 381, in RendererBinding._handlePersistentFrameCallback
  File "binding.dart", line 1289, in SchedulerBinding._invokeFrameCallback
  File "binding.dart", line 1218, in SchedulerBinding.handleDrawFrame
  File "binding.dart", line 1076, in SchedulerBinding._handleDrawFrame
  File "hooks.dart", line 145, in _invoke
  File "platform_dispatcher.dart", line 338, in PlatformDispatcher._drawFrame
  File "hooks.dart", line 112, in _drawFrame

Same issue here with Flutter v3.10.5, and only on iOS. ~700 crashes, 200 users impacted in the last week.
FlutterError - Null check operator used on a null value. Error thrown Instance of 'ErrorDescription'.
Fatal Exception: FlutterError
0  ???                            0x0 RenderBox.size + 2031 (box.dart:2031)
1  ???                            0x0 RenderUiKitView._handleGlobalPointerEvent + 408 (platform_view.dart:408)
2  ???                            0x0 PointerRouter._dispatch + 98 (pointer_router.dart:98)
3  ???                            0x0 PointerRouter._dispatchEventToRoutes.<fn> + 143 (pointer_router.dart:143)
4  ???                            0x0 _LinkedHashMapMixin.forEach (dart:collection)
5  ???                            0x0 PointerRouter._dispatchEventToRoutes + 141 (pointer_router.dart:141)
6  ???                            0x0 PointerRouter.route + 133 (pointer_router.dart:133)
7  ???                            0x0 GestureBinding.handleEvent + 460 (binding.dart:460)
8  ???                            0x0 GestureBinding.dispatchEvent + 440 (binding.dart:440)
9  ???                            0x0 RendererBinding.dispatchEvent + 336 (binding.dart:336)
10 ???                            0x0 GestureBinding._handlePointerEventImmediately + 395 (binding.dart:395)
11 ???                            0x0 GestureBinding.handlePointerEvent + 357 (binding.dart:357)
12 ???                            0x0 GestureBinding._flushPointerEventQueue + 314 (binding.dart:314)
13 ???                            0x0 GestureBinding._handlePointerDataPacket + 295 (binding.dart:295)


Removing filelocation

The fixed version of library.bib includes the file field, which includes the location of the saved pdf. This seems unnecessary for a bibliography, could you remove it?

Thanks for the suggestion. Yes, the file field isn't necessary and it shouldn't be too hard to remove it.

Done. Updated version to 1.2


Allow plotlib to accept overriding of axes titles

Would allow for a cleaner integration of LaTeX directives.

Adds an unnecessary extra step to plot command.


Webpack Rebuilds When Swap Files (*.swp, *.swo, *.swn, ...) Change

OS?
Linux (Ubuntu 16.04)
Versions.
@angular/cli: 1.0.0-beta.31
node: 6.9.4
os: linux x64
@angular/common: 4.0.0-beta.7
@angular/compiler: 4.0.0-beta.7
@angular/core: 4.0.0-beta.7
@angular/forms: 4.0.0-beta.7
@angular/http: 4.0.0-beta.7
@angular/platform-browser: 4.0.0-beta.7
@angular/platform-browser-dynamic: 4.0.0-beta.7
@angular/router: 3.4.7
@angular/cli: 1.0.0-beta.31
@angular/compiler-cli: 2.4.7
Repro steps.

Run ng serve
Edit any source file in vim (or similar) but do not save
Webpack recompiles even though you didn't save.

This is most likely due to vim saving any edit to swap files (*.swp, *.swo, *.swn, ...). Webpack registers the change to the swap file and triggers the recompilation.

This seems unnecessary and slows down the workflow. When I actually do want to trigger an update, I save the file. However, now I have to wait for the previous (unnecessary) compilation of the swap files to finish before my actual changed files will be compiled again.
Also, webpack constantly recompiles in the background (due to vim saving to the swap files for every new line) which is a little distracting.
Can you configure webpack to ignore common swap files (*.swp, *.swo, *.swn, ...) or allow me—the user—to specify, which files to ignore?
I like @angular/cli. I like webpack. I like vim. Can there be peace?

@frederikaalund - As a workaround, you could tell vim / neovim to store swap files somewhere else.
Something to the effect of ...
#vimrc

set dir=$HOME/.vim_tmp/swap
if !isdirectory(&dir) | call mkdir(&dir, 'p', 0700) | endif

This should send all of the .swp / .swn / .swo to whatever directory you define & create it if it doesn't exist. Not quite sure how tight you can make the permissions in vim, the above is what I use with neovim so you may need to tinker a bit.
That said, @frederikaalund is correct .swp$ and it's counterparts should be excluded for us *nix folks :)

@d3viant0ne Thanks for the workaround. I'm now using
set dir=$HOME/.vimtmp/swap//
if !isdirectory(&dir) | call mkdir(&dir, 'p', 0700) | endif

This is good for now. Though I'd still like to see this just work out of the box as part of @angular/cli.

Agreed. It does the same thing if you open finder on macOS in a project directory.

Can this be addressed?  I was surprised by this behavior when the builder kicks off any time the swap file gets written.

This seems to be at the core of https://webpack.github.io/docs/troubleshooting.html#file-saves-in-webstorm-don-t-trigger-the-watcher as well, right?
If webpack supports ignoring these changes we're happy to implement it.

No, I don't think it is related. The issue with saves not triggering rebuilds is caused by well-behaved editors being very careful to never lose data and hence not directly overwriting the file being edited (they mention it with Vim, and it is a potential issue with Emacs and other well-behaved editors as well).
The problem here is that some editors write other temporary files besides the one you're actually working on, and it seems that webpack is picking up changes in them too.
JFTR, Emacs checkpoint files (.#) and backup files (~) could do with being excluded as well.

To my knowledge, webpack's default behavior is to only watch for files that meet the following criteria:

File is specifically imported or required by the entry point or one of its imports/requirements.
File name matches regex for the "test" value in any included loader config.

Here's a very basic webpack config I'm using for a react project. The dev server only rebuilds the project when the above conditions are satisfied.
I tried messing around with the webpack.config.js file generated by ng eject in an angular-cli project to figure out what the offending setting was, but I haven't made any real progress towards understanding the problem.
Maybe someone more well-versed in webpack can take a look?

@frederikaalund @d3viant0ne @filipesilva
Those are temporary files created by the vim editor. The .swp is created when a file is opened in the editor. The .swo is created if the file is edited and the .swp already exists. Edit it a third time and you get a .swn, and so on. When vim is closed, those files should go away. If vim crashes or is killed, they may be left behind. They are safe to ignore.

@shaileshgoogler Thank you for your input. However, we are all already aware of the purpose of the .sw* files. The issue at hand is how angular-cli treats these files.

Related to: https://github.com/angular/angular-cli/issues/2425

https://github.com/angular/angular-cli/pull/7310 should have fixed this. It's released in 1.3.1/1.4.0-beta.1.


Apache2 on RPi

Hi,
on RPi Apache2 uses different config file. will you be able to help in installing Healthstone one RPi
while installing, I had supplied below mention path,  Hope thats correct.
`
/etc/apache2/
|-- apache2.conf
|       --  ports.conf |-- mods-enabled |       |-- *.load |       -- *.conf
|-- conf-enabled
|       -- *.conf |-- sites-enabled |       -- *.conf
`
I can view empty dashboard on http://<IP_ADDRESS>/healthstone  ,  but if I try to do any change in settings or while adding probe in settings, I get error Could not add probe to the database.  Also I had install linux client on ubuntu 16 , which runs the py file from cron every 1min. but I dont get any info on dashboard, when I run py file manually I get only below
Content-Type: text/html; charset=utf-8

Checking probes...

I'm guessing the Apache user you specified was probably wrong. Try this, assuming you installed it in /use/share/healthstone:
chmod -R 777 /usr/share/healthstone/db


Custom radio protocol

Describe the solution you'd like
Some custom protocol like logitech unifying are very interesting, are there any instructions to add to my radio protocol?

For example IEEE 802.15.4 has a radio API described in include/net/ieee802154_radio.h, search ieee802154_radio_api struct for details. That API separates the L2 protocol layer from the device drivers. You can do things in similar ways in your radio protocol.

@mrninhvn if what you are looking for is raw 2.4GHz access to the radio to implement a radio protocol, then I recommend looking at Nordic's implementation of ESB here: https://github.com/nrfconnect/sdk-nrf/tree/master/subsys/esb
There's also a PR to add Gazell support: https://github.com/nrfconnect/sdk-nrf/pull/5281


Problem loading css with webpack

Webpack gives me an error when I try to import the css file as decribed in the tutorial, even having css loaders. I think this is a matter of configuration, but I could not figure it out.
Import line:
import 'pure-react-carousel/dist/react-carousel.es.css';
Error message:
ERROR in ./node_modules/pure-react-carousel/dist/react-carousel.es.css Module parse failed: Unexpected token (1:0) You may need an appropriate loader to handle this file type. | ._buttonBack_113ph_1{cursor:pointer} | ._buttonFirst_y31jn_1{cursor:pointer} | ._buttonNext_p1bs6_1{cursor:pointer}  @ ./src/components/UI/Carousel/Carousel.jsx 23:0-57  @ ./src/components/ClientsEvaluation/ClientsEvaluation.jsx  @ ./src/screens/Main.jsx  @ ./src/index.jsx
webpack.config file:
{
    entry: APP_DIR + '/index.jsx',
    output: {
        path: BUILD_DIR,
        filename: 'bundle.js'
    },
    module: {
        rules: [
            {
                test: /\.jsx?/,
                include: APP_DIR,
                loader: 'babel-loader',
	            query: {
		            plugins: ['transform-class-properties'],
		            presets: ['stage-2']
	            }

            },
            {
                test: /\.css/,
                include: APP_DIR,
                loaders: ['style-loader', 'css-loader']
            },
            {
                test: /\.(woff|woff2|eot|ttf|otf)$/,
                loader: 'url-loader?limit=100000'
            },
	        {
		        test: /\.(gif|png|jpe?g|svg)$/i,
		        use: [
			        'file-loader',
			        {
				        loader: 'image-webpack-loader',
				        options: {
					        bypassOnDebug: true,
				        },
			        },
		        ]
	        }
        ]
    },
	resolve: {
		modules: ['node_modules'],
		extensions: ['.js', '.json', '.jsx', '.css'],
		mainFields: ['loader', 'main']
	}

};

Any help?

A figured out the problem, it was just a matter of removing the include property of the css rule. I can't quite explain what the problem was, but I think that this property was causing webpack to ignore the css file as it was on node_modules folder.
The webpack config became as follow:
`{
entry: APP_DIR + '/index.jsx',
output: {
path: BUILD_DIR,
filename: 'bundle.js'
},
module: {
rules: [
{
test: /.jsx?/,
include: APP_DIR,
loader: 'babel-loader',
query: {
plugins: ['transform-class-properties'],
presets: ['stage-2']
}
        },
        {
            test: /\.css/,
            **//Here is where I removed the property**
            loaders: ['style-loader', 'css-loader']
        },
        {
            test: /\.(woff|woff2|eot|ttf|otf)$/,
            loader: 'url-loader?limit=100000'
        },
        {
	        test: /\.(gif|png|jpe?g|svg)$/i,
	        use: [
		        'file-loader',
		        {
			        loader: 'image-webpack-loader',
			        options: {
				        bypassOnDebug: true,
			        },
		        },
	        ]
        }
    ]
},
resolve: {
	modules: ['node_modules'],
	extensions: ['.js', '.json', '.jsx', '.css'],
	mainFields: ['loader', 'main']
}

};`

Anyone else run into this issue? I tried the above and it did not work for me. I also tried changing the test and the loaders. I've posted in stackoverflow but never got a response.


fix check for systemd-timesyncd.service

systemd-timesyncd.service will not be the only ntp implementation enabled by default on all platforms, so the test needs to take that into account.

Test ran successfully. http://jenkins.infra.kinvolk.io:8080/job/container/job/test/20926/


Add missing TryFrom and TryFrom<Vec> impls.

Also fix PathAndQuery's TryFrom impl to not copy the bytes into
a new Bytes.

@seanmonstar Ping.

Thanks for catching this!


GitHub Marketplace Models for Remote Inference

Hello,
How can I make GitHub models work with AI Toolkit?

Perhaps it's bc I cannot append the model name to the body as the example suggests.
curl -X POST "https://models.inference.ai.azure.com/chat/completions" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $GITHUB_TOKEN" \
    -d '{
        "messages": [
            {
                "role": "system",
                "content": "You are a helpful assistant."
            },
            {
                "role": "user",
                "content": "What is the capital of France?"
            },
            {
                "role": "assistant",
                "content": "The capital of France is Paris."
            },
            {
                "role": "user",
                "content": "What about Spain?"
            }
        ],
        "model": "gpt-4o-mini"
    }'

The latest pre-release of AI Toolkit has integrated GitHub models in model catalog.
(cc @a1exwang if I missed anything)
Please try:

Install latest pre-release

Open Model Catalog

Add and try GitHub models in playground

Oh! Didn't realize these were from GitHub. Does this count against our github.com/marketplace models limits?
https://docs.github.com/en/github-models/prototyping-with-ai-models#rate-limits
Can people who don't have preview access to the model marketplace access it via AI Toolkit?

Oh! Didn't realize these were from GitHub. Does this count against our github.com/marketplace models limits?
https://docs.github.com/en/github-models/prototyping-with-ai-models#rate-limits
Can people who don't have preview access to the model marketplace access it via AI Toolkit?

Opening model in AI Toolkit shares the same access&limit as opening on GitHub.
If signing in an account in VSCode without preview access, you cannot chat with those models in AI Toolkit.

Merci 👍🏼


Attempt to suppress reroute of switcher JSON for dev

Trying to fix the switcher when using latest (dev)

It looks like it might work on https://nwb-guide--851.org.readthedocs.build/en/851/ but not sure if that will apply to main /
latest
WDYT?

Worth a try!


Suggestions

Hi there, I'm actually building my own similar tool and stumbled on yours. Some suggestions:

https://github.com/piwik/referrer-spam-blacklist/blob/master/spammers.txt is a great list for known referral spammers.
The filters are regular expressions, so technically you want to escape the period character (e.g. foo\.com). In practice, this doesn't matter too much as there aren't hostnames without periods that we need to worry about matching accidentally.
You can combine domains to make shorter expressions (e.g. foo\.com|bar\.com|baz\.com into (foo|bar|baz)\.com). In fact, you can take it even further (e.g. (foo|ba[rz])\.com).

Hi,
I'm offline until wednesday evening on a sailboat without Wifi. ;-)
When you're bored, I suggest you start (re)reading all blogposts on www.dailybits.be
Greetings,
Herman
www.dailybits.be
<EMAIL_ADDRESS>

Hey,
Thanks for the suggestions!
I'm using the Loan Goat resource which provides pre-edited RegEx filters, and I'm happy with that. You can, of course, simply modify the Array in the JS to suit your needs better, and improve the RegEx yourself.
As for the period character, as you say, hostnames always require a period, so we're actually saving characters by omitting the backward slash.
There's some work going on around an API that would pull from the Piwik list, so I will probably adapt the library to start using that instead at some point. Then I'll definitely work on the algorithm that chops up an arbitrary list of host names into usable GA filter regexes.
Simo


[hi] localize content/en/docs/concepts/overview/_index.md to Hindi

This is a Feature Request
What would you like to be added
Localize content/en/docs/concepts/overview/_index.md to Hindi
Why is this needed
There is no Hindi localization for this file.
Comments
I would like to work on this
/kind feature
/language hi
/sig docs
/assign

/triage duplicate
This looks like a duplicate of issue https://github.com/kubernetes/website/issues/42844

As it's a proper duplicate of issue #42844 and doesn't adding any value as a separate issue.
/close not-planned


typo in customized decider example in user guide.

credit: https://stackoverflow.com/questions/39856184/does-scons-customized-decider-function-require-to-be-class-member

Coverage decreased (-0.2%) to 79.713% when pulling 881dbcf2ef36b31be29ad6aff17ee54f04865329 on swuecho:swuecho-doc-fix into 8c9aa75f2069bd3c0d2369c404899d457e391d0c on SCons:master.

@bdbaddog  If it is not a strict policy, probably too small change to worth another commit.

I like to call attention all committers and also to changes in documentation. Please make the addition to the src/CHANGES.txt. Thanks!

@bdbaddog  thanks. updated.

thanks!


typo fix / text changes

...in "Custom derivation paths" paragraph.
Which I noticed while proof-reading an update to the SeedSigner entry in walletsrecovery.org here

Copy editor's note since we're making changes in here anyway: Stepan does not capitalize "embit".
And in Markdown I always(?) wrap it in backticks: embit.


Model saving functionality missing

Thanks for creating this library, I was trying to implement the same, coz segmentation models pytorch library doesn't really provide the convnext as encoder.
I hope you implement the saving functionality soon..
Thank you.

Hello @Tharunkumar01, First of all, thank you. I will add an automatic model saving feature based on the validation step (like the save best model only) and number of epochs. However, since I am busy, you could customize the trainer class by adding a simple step that saves a checkpoint for each epoch until this feature is implementing.
Example Custom Trainer:
`class CustomTrainer(Trainer):
def init(
self,
model,
criterion,
optimizer,
epochs,
save_path=None,
scaler=None,
lr_scheduler=None,
device=None
):
super().init(
model=model,
criterion=criterion,
optimizer=optimizer,
epochs=epochs,
scaler=scaler,
lr_scheduler=lr_scheduler,
device=device
)
self.save_path = save_path
def fit(self, train_loader, val_loader):
    """
    Customized fit function
    """
    # attributes
    self.train_losses_ = torch.zeros(self.epochs)
    self.val_losses_ = torch.zeros(self.epochs)
    # ---- train process ----
    for epoch in trange(1, self.epochs + 1, desc='Traning Model on {} epochs'.format(self.epochs)):
        # train
        self._train_one_epoch(train_loader, epoch)
        # validate
        self._evaluate(val_loader, epoch)
        # model save
        if self.save_path:
            torch.save(self.model.state_dict(), self.save_path + f'ckpt_{epoch}.pt')`

Hello @Tharunkumar01, First of all, thank you. I will add an automatic model saving feature based on the validation step (like the save best model only) and number of epochs. However, since I am busy, you could customize the trainer class by adding a simple step that saves a checkpoint for each epoch until this feature is implementing.
Example Custom Trainer:
from backbones_unet.utils.trainer import Trainer

class CustomTrainer(Trainer):
    def __init__(
        self,
        model,
        criterion,
        optimizer,
        epochs,
        save_path=None,
        scaler=None,
        lr_scheduler=None,
        device=None
    ):
        super().__init__(
            model=model,
            criterion=criterion,
            optimizer=optimizer,
            epochs=epochs,
            scaler=scaler,
            lr_scheduler=lr_scheduler,
            device=device
        )
        self.save_path = save_path

    def fit(self, train_loader, val_loader):
        """
        Customized fit function
        """
        # attributes
        self.train_losses_ = torch.zeros(self.epochs)
        self.val_losses_ = torch.zeros(self.epochs)
        # ---- train process ----
        for epoch in trange(1, self.epochs + 1, desc='Traning Model on {} epochs'.format(self.epochs)):
            # train
            self._train_one_epoch(train_loader, epoch)
            # validate
            self._evaluate(val_loader, epoch)
            # model save
            if self.save_path:
                torch.save(self.model.state_dict(), self.save_path + f'ckpt_{epoch}.pt')


Added OTA checksum verification

See #172
Here is a little test script for triggering OTA updates with a checksum:
#!/bin/bash

DEVICE=homie/awesome-relay
BROKER=localhost
FW_VER=1.0.0
FW_BIN=/path/to/firmware.bin
FW_MD5=$(md5sum -b $FW_BIN | cut -d" " -f1)

mosquitto_pub -h $BROKER -t "$DEVICE/\$ota" -m "$FW_VER"
sleep 1
mosquitto_pub -h $BROKER -t "$DEVICE/\$implementation/ota/checksum" -m $FW_MD5
sleep 1
mosquitto_pub -h $BROKER -t "$DEVICE/\$implementation/ota/firmware" -f $FW_BIN

I would not unsubscribe from firmware and checksum0, otherwise you need, as you've done in your script, to wait a little bit before sending next messages. What do you think? Maybe you have a good reason to do so?

Thanks for your feedback. Staying subscribed is actually what I was preferring when I was poking around in the code. I only left dynamic subscribe/unsubscribe in because that's what you had chosen for payload (now firmware) before. I was wondering why you had the if (!_flaggedForOta) check in the code. It should never have triggered because Homie only subscribed to the payload topic when _flaggedForOta was also true. Did you observe a race condition or something? Anyways. I added a commit to remove dynamic subscribe/unsubscribe.
BTW, the delay in my little test script is just for me to be able to observe what's going on looking at two terminals. I don't think the delay is needed. A real implementation would obviously evaluate Homie's status responses.

Well we chose this because the payload was retained, so to receive it we had to subscribe only when receiving the $ota message. But at first the payload was not retained, and it looks like I forgot the flagged for OTA check. So yes, it was actually useless.
Great! LGTM 👍