Feature request: Fine tuning for overload

I started experimenting with home row mods again, this time on QMK using its fine tuning options and was finally able to get a usable configuration.
The crux for me (as I type rather fast) is to only enable the modifier behaviour if the overloaded key has been held for a certain amount of time (independently of other pressed keys). Unfortunately, I don't think that this is currently possible on keyd using a combination of overload() and timeout() (please correct me if I'm wrong).
To explain better what I mean, let's assume that the f key should output an f if tapped and act as shift if held while another key is pressed.
The event sequence when I want to input J is then
1. f down
2. j down
3. f up
4. j up

which is problematic as those precise events are regularly generated as well upon entering fj.
To disambiguate, one would need to examine how long the f key has been held down and then apply the mod if some threshold has been exceeded.
I thought about an overload2(layer, action, tap_time) action, which only shifts the layer if the key is held down for at least tap_time ms (independently of whether other keys are pressed before the key is released).
An implementation of this could be to waits for tap_time ms upon key press, buffering all occuring key events during that time. If at any point a keyup event of the overloaded key is seen, execute action and then process the buffered key events on the current layer. If tap_time expired without such a keyup event, process the buffered (and all other incoming) key events on layer until the keyup event occurs.
For the same reasons as in my other recent feature request, overload2 might not be the best name for this and a more user friendly way would simply be to allow tap_time as an optional argument (otherwise applying a default which the user could modify in the [globals] section).

The crux for me (as I type rather fast) is to only enable the modifier behaviour if the overloaded key has been held for a certain amount of time (independently of other pressed keys).
[...]
To disambiguate, one would need to examine how long the f key has been held down and then apply the mod if some threshold has been exceeded.

I suspect I have misunderstood something. timeout(f, 300ms, layer(shift)) should do precisely that, no? This was timeout's motivating application (a thread to which you were party)
The above should produce J given the sequence:
f down
j down
f up
j up

If you find it confusing, then I definitely need to document it better. I've been meaning to add some recipes for common tasks.

The only difference to the current timeout thus is that another keypress should not interrupt the timer.

Can you provide an example of when this would be useful? It seems odd not to resolve the timeout on the next keypress, as it allows for pathological cases like this:
f down j down j up <300ms> -> C-j

whereas the overlap in the fj-case only occurs because of the user's typing speed, which causes j to
be pressed while f hasn't been [released].

This is the crux of the problem. Most touch typists don't actually release the first key before striking the second.

Regarding the pathological use case: I think this is an unavoidable side effect.

Indeed. This was discussed at length in #81 with @slakkenhuis when timeouts were originally introduced. As outlined in that thread, I remain unconvinced that the inherent ambiguity, latency, and additional complexity make it a worthwhile tradeoff, but I am open to persuasion on the point.

One could think about only applying the modifier if f is released before j, but then f could no longer serve to apply shift to multiple following keys.

It's possible I've misunderstood something, but I can't think of a reason anyone would want to do this.

As has been noted before, a lot here is reminiscent of #34 and #81. Back then, I ended up agreeing with rvaiya: the inevitable visual latency and (perhaps less inevitable) misfires due to inconsistent timing make for a hair-pulling typing experience for me personally. There's one very crucial difference here:

I'm actively using the described feature on a qmk keyboard since a few days (the whole homerow is overloaded) and it's working great so far.

The fact that ZMK/QMK/kmonad provide this behaviour is encouraging, but not decisive because their design is less opinionated, at the expense of simplicity and guidance. I certainly made a lot more unusuable keyboards in kmonad than in keyd. But the fact that you have made it work for you is convincing.
I assume that you do experience some visual latency (ie normal characters don't appear instantaneously but with a delay measuring in some tenths of a second). Are you just not bothered by it?

I highly doubt one can give a valid argument that one of these behaviours is better than the four others.

Imho it is "better" in the sense that it gives a smooth typing experience with minimal visual latency and no fiddling with personal, millisecond-level sweet spots. That said, that does not mean that the other behaviours have no right to exist :)
So, while I do think your explanation makes intuitive sense, I remain convinced (as in #277) that the current behaviour is what users should be guided towards. Event queues may work for some, but users wishing to visit those depths can be expected to do some digging. That is, your <interrupt-handling-logic> would be an optional argument with a default value of 1.
All that said, I need some more time to digest this. And experimentation.

Apologies for the belated response, I was putting this off until I had some time to read and respond to it in full. Moving forward it might be better to proceed one use case at a time, to ensure we have a shared understanding of the problem and to create a tighter feedback loop (I myself have a habit of being too verbose at times :P).

While Keyd already supports timeouts, it forces a specific interrupt logic on the user.

A veritable feature ;).

which is not optimal in all cases, sometimes even resulting in the overload being unusable.

I maintain that in conjunction with the proposed timeout2, the current implementation supports the majority of real world use cases with composition.

There is hence no universal solution and instead, the other popular “advanced” key remappers I know offer a sufficiently general mechanism to fine tune the behaviour.

I am personally of the opinion that many of these 'solutions' involve undesirable tradeoffs for what is fundamentally an intractable problem, but my views on the subject have already been stated in other threads, and I am not inclined to foist them upon the userbase.
Here I will contend that most of the use cases you describe are already covered by keyd's composable timeout (and the proposed timeout2) construct.

keyd's overload mechanism should be able to decide whether to activate the layer or an action
based on the following parameters:
[...]
Specifically, the following interrupting key logic should be configurable
[...]

I) Decide what to do purely on the hold time (ignoring any interrupting key presses)

Addressed with timeout2(noop, <timeout>, <action>)

II) Interrupting key press within timeout triggers layer activation

Currently possible with timeout(overload(<layer>, <key>), <timeout>, <key>)

III) Interrupting key press within timeout triggers action

Just a more generic form of the above: timeout(<action>, <timeout>, <key>)

IV) Interrupting key press and release within timeout triggers layer activation

A little more involved, but possible like so:
timeout2(layer(stage2), <timeout>, <key>)`

[stage2]
<second key> = toggle(<target-layer>)

though I'm not sure why anyone would want to do this.
V) Interrupting key press and release within timeout triggers action
A more general form of IV:
timeout2(layer(stage2), <timeout>, <key>)`

[stage2]
<second key> = <action>

Current keyd support and implementation notes If I'm not mistaken, the only case keyd already covers is III

See above :P. It's possible I have misunderstood some of the behaviours you describe. Corrections are welcome.

so maybe it is a good idea to at least forbid nesting timeouts.

This is already forbidden.

I read that overload once already had an optional timeout flag and suppose that it was removed after the more general timeout action was introduced.

Indeed. The current design favours composition over having a dedicated action for every conceivable use case. Easy things should be easy, and more involved things should be possible (within reason).

timeout2(, , , ) in the
[...]
An interrupt-handling-logic value of 0 ignores (i.e. just buffers) interrupting key events until  has expired, a value of 1 and 2 chooses the first and second action, respectively, if an interrupting key press occurs within  and analogously for 3 and 4, with key press replaced by key press and release.

Can you provide a real world use case that this addresses?

a prime use case are still overloaded non-modifier keys

As discussed in #277, this is what timeout2 is intended to address.

The mere fact that QMK, ZMK and Kmonad all offer not only timeout [...]
does not seem to be pure coincidence and proves that these features are actually useful.

Never underestimate the twin powers of rationalization and group think ;). Just because you can do something doesn't mean that you should. My personal views aside, I have yet to encounter a use case not covered by either timeout or timeout2.

Apart from that, it seems a bit deliberate that timeout always chooses one of these five possible interrupt handling behaviours.

As demonstrated, the timeout actions are flexible enough to handle the five cases you enumerated.
Fundamentally there are two intervals of interest:

The intrakey interval (that is, the time between a key's depression and its release, [covered by timeout]).

and

The interkey interval (the time between two distinct keys [covered by timeout2]).

Taking these as primitives, it should be possible to compositionally realize most interesting applications. This approach differs from the QMK approach of implement all the things, but should have comparable expressive power.

Finally, I did some quick measurements and confirmed that when typing regular words, I'm basically never tapping letters in isolation.
[...]

Indeed! I pointed this out here. It is the main impetus for timeout based solutions, but as I outlined in that post I think it is misguided.

So in my case, which I strongly believe to not being that uncommon, the ability to specify interrupt handling logic would enable overloading letter keys (and the space key) without any loss in typing speed.

I encourage you to actually try this (if you haven't already). I maintain that it will either force you to change your typing habits (lowering your speed ceiling), or give you modifier PTSD.  Having said that, it should be facilitated by timeout2 as outlined above.

Sorry, I omitted the crucial bit of I, namely (ignoring any interrupting key presses).
Barring nesting (which I agree is ugly) this would necessitate the addition of the third timeout (tentatively called timeout3), as you proposed.
To summarize, the goal would be for:
<a down> <b down> <b up> <200ms> <a up>
and
<a down> <b down> <b up> <100ms> <a up>
to produce C-b and ab respectively given a = timeout3(a, 200, layer(control)).
The proposed timeout2 (among other things) allows for distinguishing between:
<a down> <100ms> <b down> <b up> <a up>
and
<a down> <200ms> <b down> <b up> <a up>
The idea being that the pause before the second key is struck is more indicative of the user's intention to use the first key as a modifier than the total amount of time <a> is held.
This method involves less visual latency than the first, but is presumably not as effective given the latter's ubiquity (though I still think neither is a worthwhile tradeoff).

The following cases are relevant for the discussion:
f_down j_down j_up f_up (nested tap)
f_down j_down f_up j_up (key roll)
What I would like to have is the following behaviour:
[...]
[...] all of the following should output J:
f_down j_down j_up f_up
f_down j_down j_up  f_up

It's not clear what role the timeout is serving in this example. Under which conditions involving a 'nested tap' is fj produced?
Your wording would suggest that if the timeout has not elapsed by <T> then fj is produced, which would imply that all of:

<f down> <j down> <j up> <100ms> <f up>
<f down> <j down> <100ms> <j up> <f up>
<f down> <100ms>  <j down> <j up> <f up>

yield tap behaviour (assuming a timeout of 200ms).
in which case it's not clear what the difference between:

f_down j_down j_up f_up

and

f_down j_down j_up  f_up

is.
If my understanding is correct, then the behaviour you describe is identical to the proposed timeout3 (an 'uninterrupted timeout' disambiguating intention upon expiry (or key up)).
Having said that, it's not clear to me that this is the optimal approach.
For example, it's not obvious that:
<f down> <200ms>  <j down> <j up> <f up>
should necessarily be treated the same as:
<f down> <j down> <j up> <200ms> <f up>
since the location of the pause potentially correlates with intention.
timeout2 can be used to specifically deal with the timeout between $$k1_down$$ and $$k2_down$$ (the interkey interval) without conflating it with cases 1 and 2. Given that QMK seems to favour timeout3 (which I believe is its default behaviour), I assume this is probably not an issue in practice (or no one has bothered to measure the alternatives).

Therefore, the sequences
f_down <T> j_down f_up j_up
f_down j_down <T> >f_up j_up
f_down j_down <f_up> <T> j_up

should result in J, J and fj, respectively.

I believe this should already be a byproduct of timeout3 ('resolve on timeout or $$k1_up$$').

While QMK fully supports point 2, I haven't found a way to get 1, which is why I will probably order some nice!nanos so that I can try the setup on ZMK (where it is called “balanced mode”).

Interesting. Are you suggesting QMK does not interpret:
<f down> <200ms> <j down>

as J (for timeout = 100ms)? This would seem like a deliberate exception. It has been a few years since I have experimented with QMK timeouts, so I am not familiar with their current behaviour.

Like I already replied to @slakkenhuis: I think that there should at least be a way to select the second action on interrupt.
[...]
I think that it is completely arbitrary to select the first (unless one has a very specific use case in mind).

I don't agree with this. The rationale behind interpreting the timeout interrupt ([$$k1_down$$, $$k2_down$$]) as a 'tap action' by default, is that holding a key is a deliberate action that the user should have to consciously pause to achieve.
That is given space=timeout(space, 500, layer(control)), you almost always want:
<space down> <400 ms> <j down> <space up>
to resolve as:
<space down> <j>
rather than:
C-j
The reverse only becomes desirable if you introduce more sophisticated timeouts in conjunction with event queuing (timeout3) to try and guess the user's intent, which introduces the host of issues previously discussed (visual latency, misfires, etc).

That last sentence is the thin straw of hope that drives my replies, in the hope that you have mercy with those users who yet have to find their holy grail.

You've persuaded me that my former obstinacy was unwarranted. Though I still think 'home row mods' are the domain of the swivel eyed loon ;).

I think that we misunderstood each other regarding the desired functionality, mostly because I was not clear enough.

No, it was my fault. I should have read your examples more clearly. The first one you provided clearly necessitates the addition of a third action. I was previously opposed to it because of my instinctive aversion to event queuing, but since there seems to be a fair amount demand for it, I will acquiesce.

IV) Interrupting key press and release within timeout triggers layer activation
Again we apparently misunderstood each other. What I actually meant is that upon key press and release within timeout, the first key should act as a modifier (activate the layer). I think for this, an action akin to the planned timeout2 would be needed, which listens for a complete tap within the timeout, not just a key press.

In that case, how does this differ from timeout(overload(layer, key), 300ms, layer)?

instead of writing timeout(overload(, ), , ), the user could just state overload(, , , 1), and all other cases could simply be achieved by varying the last argument as described.

I am more inclined to favour the existing composition approach. If a real world use case can't be achieved using the existing (or proposed) actions, feel free to file a separate issue.

The _intra_key interval
[...]
The _inter_key interval
[...]

If I'm not mistaken, out of the five cases, this allows to cover two, and I still think that all five cases are useful.

I think this is solved by distinguishing between the 'interrupted intrakey interval' ([$$k1_down$$,  $$first(k1_up, k2_down)$$] (i.e timeout)) and the 'uninterrupted intrakey interval' ([$$k1_down$$,$$k1_up$$] timeout3). The second can probably properly be called the 'intrakey interval', though the first probably deserves a better name, since it doesn't strictly deal with the time between key down and key up.

I think so, but to be on the safe side, let's be very verbose: Disambiguation should be done purely based on the hold time of the a key,

+1. This is the key bit. I think we are in agreement on this point.

the other one acting like timeout2, but listening for key taps instead of key presses within the timeout

I'm not entirely sure how this is different from the proposal outlined in #277, but this is probably not the place to discuss it.
I still think we are discussing too many things at once. I've created a dedicated issue for timeout3 (#309) and will shortly create one for timout2. If you think something remains uncovered feel free to post in those threads.
I'm closing this for now.


Fix NearestNeighbors _ensureIdCol to check whether id_col in df.columns instead of relying on isSet(idCol)

build

build

build


Prototype/fdb layer ebtree

Overview
Implements a B+Tree on top of FoundationDB with a configurable Order. The tree remains balanced at all times.
Ebtree supports a reduce function and stores intermediate reduction values on inner nodes (and the root node).
The full reduce CouchDB functionality is possible with this module.
Testing recommendations
Contains its own tests
Related Issues or Pull Requests
N/A
Checklist

[x] Code is written and works correctly
[x] Changes are covered by tests
[x] Any new configurable parameters are documented in rel/overlay/etc/default.ini
[ ] A PR for documentation changes has been made in https://github.com/apache/couchdb-documentation

(Importing all the history)

I skimmed this over and ti looks very clean. Great job everybody involved!


Apiato v7.2.0 (2017-11-11)

php artisan vendor:publish --provider="App\Containers\Crud\Providers\MainServiceProvider" --tag=classes
In Application.php line 635:
Class 'Collective\Html\HtmlServiceProvider' not found

Same here

same

exec  before
composer update

composer require laravelcollective/html
https://stackoverflow.com/questions/32795154/laravel-5-class-collective-html-htmlserviceprovider-not-found-on-aws


Bad npm package for 2.0.0-rc2

The node_modules/history issue is back in the 2.0.0-rc2 npm package:
http://registry.npmjs.org/react-router/-/react-router-2.0.0-rc2.tgz

Is this the issue you are referring to?
ERROR in ./~/react-router/~/history/lib/useQueries.js
Module not found: Error: Cannot resolve module 'query-string' in node_modules/react-router/node_modules/history/lib
 @ ./~/react-router/~/history/lib/useQueries.js 15:19-42

ERROR in ./~/react-router/~/history/lib/createHistory.js
Module not found: Error: Cannot resolve module 'deep-equal' in node_modules/react-router/node_modules/history/lib
 @ ./~/react-router/~/history/lib/createHistory.js 10:17-38

If so, I am experiencing this as well.

@ryanflorence What version of npm are you on?

Contra the npm3 release notes, it looks like this fix wasn't applied to npm3 because the relevant check got vendored. I backed out my build tooling change: https://github.com/rackt/react-router/pull/2789. I guess we'll have to re-release. Sorry.

If it ain't broke... :P
On Wed, Dec 30, 2015 at 2:37 PM Jimmy Jia<EMAIL_ADDRESS>wrote:

Contra the npm3 release notes, it looks like this fix wasn't applied to
npm3 because the relevant check got vendored. I backed out my build tooling
change: #2789 https://github.com/rackt/react-router/pull/2789. I guess
we'll have to re-release. Sorry.
—
Reply to this email directly or view it on GitHub
https://github.com/rackt/react-router/issues/2785#issuecomment-168087893
.

@mjackson The npm release notes claimed it was fixed. I even checked that it was... just not for npm3, which I don't use. Oops.
The relevant npm issue is https://github.com/npm/npm/pull/10445, for those interested.

It's ok :) I break stuff all the time. nbd
On Wed, Dec 30, 2015 at 2:56 PM Jimmy Jia<EMAIL_ADDRESS>wrote:

@mjackson https://github.com/mjackson The npm release notes claimed it
was fixed. I even checked that it was... just not for npm3, which I don't
use. Oops.
The relevant npm issue is npm/npm#10445
https://github.com/npm/npm/pull/10445, for those interested.
—
Reply to this email directly or view it on GitHub
https://github.com/rackt/react-router/issues/2785#issuecomment-168090951
.

2.0.0-rc3 looks good :+1:

i'm on it
On Thu, Dec 31, 2015 at 9:22 AM Ryan Florence<EMAIL_ADDRESS>wrote:

soon as @mjackson https://github.com/mjackson ships it, will do.
—
Reply to this email directly or view it on GitHub
https://github.com/rackt/react-router/issues/2785#issuecomment-168225160
.

i'm on it
On Thu, Dec 31, 2015 at 9:22 AM Ryan Florence<EMAIL_ADDRESS>wrote:

soon as @mjackson https://github.com/mjackson ships it, will do.
—
Reply to this email directly or view it on GitHub
https://github.com/rackt/react-router/issues/2785#issuecomment-168225160
.


oakd compressed topics not appearing

Robot Model
Turtlebot4 Standard
ROS distro
Humble
Networking Configuration
Discovery Server
OS
Ubuntu 22.04
Built from source or installed?
Installed
Package version
Unknown
Type of issue
Camera
Expected behaviour
Should see ROS topics:
/oakd/rgb/preview/camera_info
/oakd/rgb/preview/image_raw
/oakd/rgb/preview/image_raw/compressed
/oakd/rgb/preview/image_raw/compressedDepth
/oakd/rgb/preview/image_raw/theora
Actual behaviour
Actaully see ROS topics:
/oakd/rgb/preview/camera_info
/oakd/rgb/preview/image_raw
Error messages
No response
To Reproduce
Just start turtlebot4 and undock
Other notes
Note this is NOT the same issue as mentioned in https://turtlebot.github.io/turtlebot4-user-manual/troubleshooting/faq.html#4-oakd-topics-not-present which was related to NO oakd ROS topics is robot docked.
This issue is when undocked.
Have on Turtlebot4 displaying all the expected topics and a number only displaying the two topics.

<EMAIL_ADDRESS>

Hi Andrew - thank you for submitting the ticket.
Can you please provide the outputs of the below from both TB4 (with and without the extra topics)
ros-humble-depthai-ros-driver
ros-humble-turtlebot4-robot

Hi @arkcom55  - any updates? did you resolve the issue?
Thanks,
Rusty

Updated and now just:
oakd/rgb/preview/camera_info
/oakd/rgb/preview/image_raw
Perhaps I am looking at this wrong.  Do I just want to do something with "ros2 run image_transport republish ..." to get compressed images?

Hi @arkcom55
These are the standard ROS topics you should see out of the box.
Please see this reply related to additional depth camera topics: https://github.com/turtlebot/turtlebot4/issues/277#issuecomment-1815024838

Closing due to no updates or activity.


CovalentMessageModule fails to import

I can import it in the above import statement in app.module
import { CovalentMessageModule } from '@covalent/core';
but adding it in
imports : [CovalentMessageModule]
causes this error
/node_modules/@covalent/core/index"' has no exported member 'CovalentMessageModule'.
I'm running vers. 1.0.0-beta.4
UPDATE:
Turns out it was a cache issue! sorry : /
I cleared node_modules and reinstalled, and restarted my computer for good measure and it worked :)
UPDATE 2:
This may be a separate issue but the color="primary" or accent/warn doesn't seem to work, but class selector for colors does.

Hmm.. we dont have this issue in our internal products.
Can you provide more information? Also try doing rm -rf node_modules dist tmp since also the cache of npm might be affecting this.

Turns out it was a cache issue! sorry : /
I cleared node_modules and reinstalled, and restarted my computer for good measure and it worked :)

haha no worries 😄 , closing this then


using isRateLimitError fails on Error

If any other errors are called downstream of a function with rateLimiter.limit() i get this error on the ui when processing the error via isRateLimitError.
"TypeError: cannot use 'in' operator to search for "kind" in " if non-rate limit error gets triggered.
export function isRateLimitError(
  error: unknown,
): error is { data: RateLimitError } {
  return (
    error instanceof ConvexError &&
    "kind" in error.data &&
    error.data.kind === "RateLimited"
  );
}

the fix would be
export function isRateLimitError(
  error: unknown
): error is { data: RateLimitError } {
  console.log('isRateLimitError', { error })
  return error instanceof ConvexError &&
    error.data['kind'] &&
    error.data.kind === 'RateLimited'
    ? true
    : false
}

this is also a issue on convex-helpers

Thanks for the report! Just published a fix to npm for helpers & the
component
On Sat, Nov 9, 2024 at 1:55 AM amp127 @.***> wrote:

If any other errors are called downstream of a function with
rateLimiter.limit() i get this error on the ui when processing the error
via isRateLimitError.
"TypeError: cannot use 'in' operator to search for "kind" in " if non-rate
limit error gets triggered.
export function isRateLimitError(
error: unknown,
): error is { data: RateLimitError } {
return (
error instanceof ConvexError &&
"kind" in error.data &&
error.data.kind === "RateLimited"
);
}
the fix would be
export function isRateLimitError(
error: unknown
): error is { data: RateLimitError } {
console.log('isRateLimitError', { error })
return error instanceof ConvexError &&
error.data['kind'] &&
error.data.kind === 'RateLimited'
? true
: false
}
this is also a issue on convex-helpers
—
Reply to this email directly, view it on GitHub
https://github.com/get-convex/rate-limiter/issues/3, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACZQWYUVS7HY5G55GWGSTTZ7XLZ7AVCNFSM6AAAAABRO64TTOVHI2DSMVQWIX3LMV43ASLTON2WKOZSGY2DKOBXHE4DINY
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


Add the unlisted endpoints to WARP with firewall

PCX-10848

@kkrum, here's another PR related to #12509

addressed in #14682


Better Loading Bars

BFME 1 Loading Bar

BFME 2 Loading Bar

RotWK Loading Bar

I just added the previous pull request with the cli building stuff, can i also now accept this pull request and it will work?

I've pulled your main again, so now it will

It would work before too, because after merging it does its own build, but the CICD will work on this PR now


The forward function of a model

Hi, Tong Xiao.
In the forward function of ResNet or InceptionNet, I am confused by the following two lines:
if self.norm:
    x = F.normalize(x)
elif self.has_embedding:
    x = F.relu(x)

Why should normalize and relu be exclusive to each other? Should the elif here be if instead?
Waiting for your response. Thanks a lot!

Normalization will make features unit vector. ReLU will violate such constraints.

Thank you! I understand it now.


Jquery Error

I love what you have done here. I have run into one problem. I am using this to insert a dynamic menu into my pages. I don't want to have to edit every page when I need to make an update. The problem is that the menu relies on Jquery and CSS within the menu. It is looking for a specific ID tag, but because the source code doesn't show the actual HTML, it can't find it. Any ideas on how to fix this?

This is likely due to the fact that the event bound to initialize the menu is on document.ready or window.onload. When those events fire, csi.js may not have yet added the include file.
We are currently working to correct this scenario by holding the document.ready event and firing it after all of the includes are done.

Was this issue ever solved?  I have a similar situation, where in the document.ready I show/hide content coming from a CSI, and it's not working.

I don't see any reason why you can't fix this by just changing window.onload=function() to document.addEventListener("DOMContentLoaded", function()
And then just make sure that you load csi.js BEFORE jquery.

OK, here's how I solved the problem.

Add a tag called data-callback="" to your data-include element.

In your $(document).ready function, define the callback function at the window level:

$(document).ready(function () {
window.searchLoaded = function () {
$("#searchBox").val('test');
}
});

In csi.js, add the following before replacing the element (after "var localtest ="):

var callback;
if (el.hasAttribute("data-callback")) {
callback = el.getAttribute("data-callback");
}

After replacement (after el.outerHTML =), add this:

if (callback) {
var fn = window[callback];
if (typeof (fn) === 'function') {
fn();
}
}
Now you have an immediate callback for any template element that's loaded.


Need inputs about WinAppDriver

Hi,
I am trying to automate WPF desktop application with WinAppDriver using java language binding. Able to recognize the controls, but while executing the script, some times the script is failing with out any reason, even though the element is present in application, it says element could not be found. But when I run the script again, it runs very smooth.
Just wanted to know the feedback of WinAppDriver users during this initial stages of automation:
1. Is the performance good when huge number of scripts are executed?
2. Will Microsoft give support for WinAppDriver in future? bit worried if it is similar to CodedUI/White Framework etc which are not supported now.
Please share your valuable ideas and thoughts on this topic.
Thanks in advance,
Praveen.

We run a large number of WinAppDriver tests on a Jenkins server, it's running them pretty much constantly. We restart winappdriver.exe at the beginning of every job, the shortest test is about 2 minutes and the longest job takes about 5 hours. So far (~18 months of this) the tests have been pretty consistent when running them on the server. I archive detailed logs and screenshots of failing jobs, and it's almost always the application under test that's at fault. The only consistent error that springs to mind is that it regularly fails to find the application window on launch, so I have to fall back to a desktop session which adds some time to each run.
When developing and running the tests on my work computer though, I find that I have to make sure that I've closed every desktop window possible apart from my IDE. Some application windows (e.g. Spotify, Windows Event Viewer) have a seriously detrimental effect on performance, so for example WinAppDriver will spend about a minute trying to find the context menu from a desktop session and then give up, when the same operation takes ~1s after closing Spotify or Event Viewer or whatever.

@trashbat , Do you mind me asking do you managed to get code coverage from the tests? If so, would you mind sharing how it is achieved? We've been having trouble that the only code coverage we can get is on the testing code instead of production code when using WinAppDriver.

@pzgrenadier I don't know how I'd go about getting code coverage data from the production code either, sorry.

@praveenvinnakota your first comment about sometimes the tests failing because it cant find an element is a common thing when building an automated testing solution. If it fails sometimes, passes other times, this normally implies that you need to improve the stability of your automation code, does not have anything to do with WinAppDriver. For instance, I wrote a WaitForObject method that catches errors like these and retries to find elements when an exception is caught. On to the other questions

This does not impact WinAppDriver. There might be faster automation tools out there, but WinAppDriver in my experience comes close.
This confuses me as WinAppDriver is a Microsoft tool. Unless you mean actual customer support which in that case I have no idea. This forum is a great place to solve issues though.

@trashbat A bit of a sidebar but what code or process did you use to make sure that your jenkins node had an open RDP connection during the test execution? It seems that running it in jenkins without an open RDP session gets us a lot of errors.

@Wolfe1 Sorry, I missed your question.
Our Jenkins test node is a physical machine in the office, with screensaver and power saving mode etc. disabled. The monitor is switched off. We use VNC to connect to it and check what it's running, RDP caused us all kinds of problems. Typically I connect to it in a view-only session unless I need to intervene.


Can't replace database sqlite file even when closed the old database instance

Hi,
I facing a problem when I implementing the backup & restore feature.
When restoring I call the database.close() method and then replace the current SQLite database file with the new one. Then I use flutter_phoenix to refresh my app and create a new database instance.
But after that, I can't query the database anymore and the console was showing below errors:
[logging] BUG IN CLIENT OF libsqlite3.dylib: database integrity compromised by API violation: vnode unlinked while in use: /private/var/mobile/Containers/Data/Application/.../Documents/todolist.sqlite

The app will work again when I kill the app or re-run flutter run.
It seems that the connection of SQLite wasn't close correctly when I call database.close() method. Or am i doing something wrong?
There is a part of my restore code:
    Database db = Provider.of<Database>(context, listen: false);

    // Close the current database
    await db.close();
    // Just added waiting 10 seconds to make sure the connection was closed
    await Future.delayed(Duration(seconds: 10));

    await CloudStorage().download(
      fileName: DB_FILE_NAME,
      destinationFilePath: dbPath,
      onProgress: (stream) {
        ...
      },
    );

   // Restart app after restored
   Phoenix.rebirth(context);

Thanks in advance 🍺

BTW, I'm using moor_flutter ^4.0.0

This sounds like something that should be reproducible, you could you try to setup a small repro for this? Calling (and awaiting) .close() should make sure that the underlying database is closed.
If you're using a FlutterQueryExecutor multiple times without setting sharedInstance: false, the database may still be open if you have another database somewhere.

I trying to create a reproduce but this issue doesn't occur.
It means I have something wrong with my database provider creation, sorry for that.
I will close this issue and trying to understand what happened.
Thanks 🍻


Fetch account/collective with githubHandle

Coverage decreased (-0.1%) to 64.993% when pulling c17bc5000a881258ce7fca81ef3780b34e823b19 on graphql/fetch-with-githubHandle into 9986a537c85a9e6135f4aaa5239880762e5d2f94 on master.


Potential Bug in SMC2

In the first step (t=0) of SMC2, the code seems to wrongly compute both G(x_0) (in the current_target function of _M0) and G(x_1) in the logG function.
If so, the code could be fixed by changing "self.current_target(0, self.init_Nx)(x0)" to "self.current_target(-1, self.init_Nx)(x0)" in the _M0 function on line 1134 of the smc_samplers.py script.

Good catch, thanks a lot. Actually, this bug occurred both in SMC2 and in IBIS. In both cases, method M0 called
self.current_target(0)(x0)
but 0 should have been -1, since, at time 0, before the reweighting step, the target is $pi{-1}$, so to speak.
This issue has been fixed in experimental. I'm going to run more tests before merging this into master.


added missing svg

added svg module for IOS only, otherwise all the svg icons are not rendered in IOS

fyi @anmacdonald


fix: downgrade @nuxt/ui

I'm completely out of ideas now what is wrong.

@pi0 could this be the culprit??


[Bug]: Compile error when building with MSVC in C++14 mode for AVX2

Describe the issue
When building crc32c with MSVC in C++14 mode for AVX2 architecture I get a compilation failure:
C:\Projects\SVN\ThirdPartyLibs\abseil\20230125.3\absl\crc\internal\crc_memcpy_x86_64.cc(391): error C7555: use of designated initializers requires at least '/std:c++20'
Given this error, my educated guess is that the CRC code supporting AVX2 is not compatible with C++14 :(
Even if Abseil claims C++14 compatibility
Maybe there is some preprocessor macro I can activate to avoid this issue?
Steps to reproduce the problem
I am using CMake and ninja, but the actual arror is straightforward to reproduce with the following command line:
cl.exe  /nologo /TP  -IC:\Projects\SVN\ThirdPartyLibs\abseil\20230125.3 /DWIN32 /D_WINDOWS /W3 /GR /EHsc /O2 /Ob2 /DNDEBUG -MD /W3 /bigobj /wd4005 /wd4068 /wd4180 /wd4244 /wd4267 /wd4503 /wd4800 /DNOMINMAX /DWIN32_LEAN_AND_MEAN /D_CRT_SECURE_NO_WARNINGS /D_SCL_SECURE_NO_WARNINGS /D_ENABLE_EXTENDED_ALIGNED_STORAGE -std:c++14 /Foabsl\crc\CMakeFiles\crc32c.dir\internal\crc_memcpy_x86_64.cc.obj /Fdabsl\crc\CMakeFiles\crc32c.dir\crc32c.pdb /FS -c C:\Projects\SVN\ThirdPartyLibs\abseil\20230125.3\absl\crc\internal\crc_memcpy_x86_64.cc /arch:AVX2
Removing /arch:AVX2 gets rid of the compiler error, but I'm compiling my project with that flag and it is not straightforward to disable it selectively for only this source file (not to mention potential ODR problems that non-uniform compilation flags may bring).
What version of Abseil are you using?
LTS 20230125.3
What operating system and version are you using?
OS Name:                   Microsoft Windows 10 Enterprise
OS Version:                10.0.19045 N/A Build 19045
What compiler and version are you using?
Microsoft (R) C/C++ Optimizing Compiler Version 19.35.32217.1 for x64
What build system are you using?
cmake version 3.25.1-msvc1
ninja --version
1.11.0
Additional context
I am building abseil as a dependency for libprotobuf, which is a dependency for my C++ library that I must build with /arch:AVX2 for performance reasons.

Thank you!
I see this was fixed in head on Mar 15.
Would you happen to know when this change will make it into a Release?

There should be a release in the next week.

Thank you for the info!


window size and font changed when run command

Steps to reproduce
open pwsh
set window font to cascadia mono
run command "adb logcat"

Expected behavior
font should not change
window size should not change

Actual behavior
window font changed to system default font
window size changed

Environment data

Name                           Value
----                           -----
PSVersion                      7.0.0
PSEdition                      Core
GitCommitId                    7.0.0
OS                             Microsoft Windows 10.0.18363
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

Can you repo without PSReadline module?

it's almost OK without PSReadLine module except that I cannot set font to cascadia after the module removed...

Can you repo without PSReadline module?

I think you need to report the issue in PSReadline repo.


Batching doesn't work/isn't supported for CanvasItem draw commands.

Godot version
3.3.2 stable
System information
Linux 5.10 manjaro / 1070 with nvidia driver, using gles3
Issue description
It is suggested in the docs on both the "drawing in 2d" and "batching" pages that this should work:
https://docs.godotengine.org/en/stable/tutorials/2d/custom_drawing_in_2d.html#but

"Drawing a large number of simple objects. Custom drawing avoids the overhead of using nodes which makes it less memory intensive and potentially faster."
https://docs.godotengine.org/en/stable/tutorials/optimization/batching.html#how-it-works
"Consecutive commands within an item can be joined to form a batch."
you can break batching by: "Change of primitive type (say, going from rectangles to lines)."

with this info, it seems like batching is supported for 2d drawing so long as its the same type of draw command, and maybe same color. however this doesn't seem to be the case.
I have a project that will reproduce the issue for me, it just spawns 1000 identical circles in place, and in the monitors tab you can see that its not batching the draw calls. (theres 1000 calls when there should be less)
I know batching works on my system as I have a separate project that uses tilemaps and batching works great for it.
this is the code used in the _draw function:
func _draw():
	var col = Color.red
	var pos = Vector2.ZERO
	var rad = 100.0
	for i in 1000:
		draw_circle(pos,rad,col)

and this is the output of a diagnostic:
canvas_begin FRAME 526
items
	joined_item 1 refs,
			batch D 0-1000 c c c c c c c c c c c c c c c c
canvas_end

^^^
it is lacking MULIT
this is also an issue in gdnative if it matters, im sure it would work there if it worked in gdscript though.
Steps to reproduce

Open and run project in editor, see red balls in center (there is 1000 of them)
view draw count in monitors for 2D
observe it is 1000 and not less.

Minimal reproduction project
drawcommandbatching.zip

Not all primitives can currently be batched, circles are one of those that can't (yet). This is probably something we could add in the docs.
Originally, only rects were batched then I added primitives based on whether it was possible, and the popularity of the primitive.
Currently:

Rects
Ninepatches (not all types)
Lines (lines in the rasterizer, some 'lines' are drawn as polys)
Polys (except anti-aliased)
Software skinned polys

There are also a lot of special cases determining whether a particular situation / primitive can be batched, so it is difficult to be exhaustive / keep up to date.
It is possible that a later date myself or another contributor will be able to get circles batching by converting them to polys (Godot 4 does a lot more of this kind of thing, rendering higher order primitives by converting to polys etc).

It is possible that a later date myself or another contributor will be able to get circles batching by converting them to polys (Godot 4 does a lot more of this kind of thing, rendering higher order primitives by converting to polys etc).

https://github.com/godotengine/godot/pull/43828 could be worth remaking for 3.x to get working antialiasing for lines everywhere, including GLES2 and mobile/web platforms.

The method shown in the doc drawing the arc or circle with a single draw_polygon may do the trick.

this at least will batch the draw calls, thank you for that info. i'm able to manually draw octogons instead of circles and it runs much faster.

Fixed in the sense we have added some notes on this to the docs, and we may be able to batch some more primitives at some point. I don't think there anything more immediately actionable on the issue.


SVD routine for sparse matrices (to handle huge matrices like 500Kx500K)

Hello,
I would like to suggest to implement an SVD routine for sparse matrices.
Main motivation is recommender system algorithms:
Such algorithms deal with initialization of input matices (which are products of SVD) having huge data array (such as 500 000 x 500 000) of sparse data.
The resulting SVD matrices are 4*500Kx500K (Dense). As a result we cannot fit all these data volume in the memory and therefore we cannot use SVD from Math.Net for such sparse matrices.
Few more discussions on the topic were here:
https://mathnetnumerics.codeplex.com/discussions/441313
Best regards, Alex.

Hello, I am wondering if you have any suggestions for how to handle sparse matrix SVDs.  I know this issue has been open for a while, and I'm just looking for any more modern ways to handle it (preferably in C# or .NET compatible).
The SVD calculation in Math.NET does not seem to handle sparse matrices in any performant way, so I've been using dense matrices, but it's taking too much memory for empty space (99.99% 0's).  For reference, my test-run matrix is approximately 20,000x20,000 doubles.
Control.UseNativeMKL(); Control.MaxDegreeOfParallelism = Environment.ProcessorCount; // # of logical cores MathNet.Numerics.LinearAlgebra.Factorization.Svd<double> svd = myMatrix.Svd(true); // <-- this line is slow if myMatrix is Sparse. Runs fine if it's Dense.
Thank you!


Add option to read license key from secret arn instead of passing the secret as a value

The value is passed as a variable and possibly stored in the terraform state. This is a lambda after all and it can read from the secret manager instead.
Desired Behavior
Have secret_arn as input that can be used instead of license key value.
Possible Solution
Use ARN when available, and fallback to secret value input.

Hi Ivan, thanks for your suggestion.
I understand the concern for storing secret data in state and unfortunately there is no going around that, especially when developing a module which accepts such secret as input.
This is true even when using a aws_secretsmanager_secret_version data resource, since the value is still kept in state.
The best practice is to always treat your Terraform state itself as a secret and store it encrypted in a remote backend (see here).
Also, I rather not implement any specific solution to retrieve a secret for the license key since not everyone uses AWS Secrets Manager, and I'd like to keep this module agnostic.
However, I believe there's still room for improvement, and therefore will upgrade the module to support Terraform v0.14 which has the ability to declare sensitive input variables.

I agree with everything above, specially with the need of sensitive input variables.


How can we connect MQTT over WIFI in AWS freertos in esp32

Briefly summarize the issue being raised/
I need to publish data from esp32 to aws console through mqtt over wifi.How could I perform that?
System information

Hardware board: [ ESP32 DEVKITC ]
IDE used: [ UBUNTU terminal ]
Operating System: [ Linux

Hi @aditi230,
You can find detailed instructions for getting started with ESP32 and FreeRTOS here. From there, you should be able to run the coreMQTT Mutual Authentication demo to connect to AWS IoT over MQTT.

I followed the same step but still facing the error. Do I need to any changes in cmake file?

Could you provide more details on the error or at what step of your setup its failing so that we can assist further in troubleshooting.


python3.pkgs.docstr-coverage: init at 2.3.0

Description of changes

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

@fabaff not sure who to ask for this. Would appreciate you giving this a review or pinging a more appropriate reviewer :)

@SuperSandro2000 sorry, I don't know who else to ask ^^'


Change the require

require('kraken-api') don't work.

This should be done in the kraken-exchange-api branch: https://github.com/5an1ty/kraken-api


[chunckhash] cannot be used with hmr

Laravel Mix Version: 0.7.2
Node Version (node -v): 7.4.0
NPM Version (npm -v): 4.0.5
OS: macOS 10.12.2

Description:
When running laravel-mix in hmr mode (having this as the command in scripts in my package.json: "hmr": "cross-env NODE_ENV=development webpack-dev-server --inline --hot") and the following in my webpack.mix.js:
mix.js('resources/assets/js/app.js', 'dist/')
  .extract(['react'])
  .sass('resources/assets/sass/app.scss', 'dist/')
  .version();

I get the following error:
error  in [name].[chunkhash].js

Cannot use [chunkhash] for chunk in '[name].[chunkhash].js' (use [hash] instead)

I've done a Google search (obviously) and I found this issue which seems related:
Cannot use 'chunkhash' in webpack dev server
So it seems that 'chunkhash' cannot be used in conjunction with webpack-dev-server --inline --hot. I can confirm that the other modes dev, watch and production given respectively by
...
"dev": "cross-env NODE_ENV=development webpack --progress --hide-modules",
"watch": "cross-env NODE_ENV=development webpack --watch --progress --hide-modules",
"production": "cross-env NODE_ENV=production webpack --progress --hide-modules",
...

do not throw this error.
Steps To Reproduce:
1 - use version() to append a hash to any bundled files
2 - use hot module replacement cross-env NODE_ENV=development webpack-dev-server --inline --hot
Thanks

See #153.
But just remove .version()

Yes, it's the same. Thanks for pointing in that direction. I missed that issue on first sight.

How is that a solution? What if I want versioning in my project and want to use HMR? I need to comment out the .version() call every time?


Can't fix the problem

subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.

me too

subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.

For this question, you need to change  '['ninja', '-v']' to  '['ninja', '--version']'

subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.

Modify in this file : lib/python3.6/site-packages/torch/utils/cpp_extension.py
The related link is this:https://blog.csdn.net/weixin_43731803/article/details/116787152

I want to add one more think to this error "subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1."
One can also try to go to the ~/.cache/torch_extensions/something directory and that "something" should be the cuda directory that your python program uses. In that folder, you can delete the "lock" file and make sure your CUDA_HOME and LD_LIBRARY_PATH are set correctly. You can check that by simply running these in your env:
echo $CUDA_HOME
echo $LD_LIBRARY_PATH
In my case, they are pointing to "/usr/local/cuda" and "/usr/local/cuda/lib64" respectively.

I had the same problem. To solve it, I did the following steps:

Run this command under DiffusionMBIR folder:

conda env create -f environment.yml

In my case, since torch version in this environment does not see my GPUs, I run the following command:

conda install -c conda-forge pytorch-gpu

After that, if your gcc version is higher than 10, you will probably get the error that @Oubit1 mentioned. To fix that, you need to install gcc-9 and g++-9.
After installing them, you need to set the following environment variables:

export CC=/usr/bin/gcc-9 export CXX=/usr/bin/g++-9
After these steps, it should work. Last thing, if you don't want to set the env variables every time you activate the conda environment, you can check here: https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#setting-environment-variables

@Sunses-hub Sorry to trouble you，but I can't get it.My computer's system is a Windows system，how can I solve the problem?

My computer's system is a Windows system，how can I solve the problem?

@Sunses-hub ， I need your help ，And another problem:  ImportError: No module named 'fused'

@ormosia6，How to solve this problem? ImportError: No module named 'fused'  Thank you in advance!


add checkVersion Task to keep track of published gem versions

Wrote a little helper task called checkVersion to keep track of published gem versions.
Here is an example of the tasks output:
gradle checkVersion
Configuration(s) specified but the install task does not exist in project :asciidoctorj-distribution.
:asciidoctorj:checkVersion
up-to-date
:asciidoctorj-diagram:checkVersion

WARNING
Version mismatch: Current Version: 1.3.1, Gem Version: 1.4.0

:asciidoctorj-epub3:checkVersion
up-to-date
:asciidoctorj-pdf:checkVersion
up-to-date

BUILD SUCCESSFUL

It prints a brief warning for each project which version is less than the published gem.
You can skip the the check with -P skip.checkVersion
The task is disabled in offline mode.
Maybe it helps.

Nice! Thank you!


Visual Spectrum talent not appearing

Per the Modiphius post, Visual Spectrum isn't showing up when Efrosian is selected as race, despite appearing in the main page talent list as an Efrosian talent. In fact, it isn't showing up even when 'allow cross-species talents' is selected.
Edit: I looked at the talents list, it appears that this talent not appearing when 'allow cross-species' is selected is intended, if I'm reading helpers/talents.ts correctly.

Fix was committed with 16974cd2870feee41eef3e8dc6c424a1a0925569. It is now pushed to the server.


apiserver: add apis to manage registration tokens.

I'll work on using these new APIs from nexd in a separate PR.


Resume a QWATCH subscription

Perhaps I've missed this in the docs – is there a way to resume a QWATCH subscription from a point in the changelog stream (eg a bookmark in k8s watch, revision in etcd watch, offset in kafka, etc)?
EDIT: seems like I misunderstood QWATCH -- the entire snapshot appears to be sent on all changes. Is there any way to turn this into a snapshot-then-changelog (w/ inserts/retractions, eg) instead, as well as changelog-only? Redis Streams seems to tackle the changelog piece, but QWATCH is nice in that it can maintain the initial snapshot. Materialize's SUBSCRIBE offers nice options to customize this behavior: https://materialize.com/docs/sql/subscribe/#with-options

QWATCH command output customization to support changelog generation is not on our roadmap for now. However, we would be interested in understanding your usecase to see if there are other ways in which dicedb could tackle them.

Use case I'm thinking about is the k8s controller pattern (https://kubernetes.io/docs/concepts/architecture/controller/), where a Watch gets the full snapshot and then all changes afterwards, as well as being able to resume from a bookmark in the changelog instead of full snapshot.


local_git scm deploy failed

Run example code, failing below error.
$ bundle exec cap local_git deploy
[Deprecation Notice] `set :scm, :bundle_rsync` is deprecated.
To ensure this custom SCM will work with future versions of Capistrano,
please upgrade it to a version that uses the new SCM plugin mechanism
documented here:

http://capistranorb.com/documentation/advanced-features/custom-scm

00:00 bundle_rsync:check
      01 git ls-remote /home/hkobayash/capistrano-bundle_rsync/example/try_rails4 HEAD
      01 78656aba46a28872d1f5f0ae6196f7e5496e1817       HEAD
      01 78656aba46a28872d1f5f0ae6196f7e5496e1817       refs/remotes/origin/HEAD
    ✔ 01 hkobayash@localhost 0.028s
      02 mkdir -p /home/hkobayash/capistrano-bundle_rsync/example/.local_repo
    ✔ 02 hkobayash@localhost 0.001s
00:00 deploy:check:directories
      01 mkdir -p /home/hkobayash/sample/shared /home/hkobayash/sample/releases
    ✔ 01<EMAIL_ADDRESS>0.017s
00:00 deploy:check:linked_dirs
      01 mkdir -p /home/hkobayash/sample/shared/log /home/hkobayash/sample/shared/tmp/pids /home/hkobayash/sample/shared/vendor/bundle
    ✔ 01<EMAIL_ADDRESS>0.017s
00:00 bundle_rsync:bundler:install
      01 $HOME/.rbenv/bin/rbenv exec bundle --gemfile /home/hkobayash/capistrano-bundle_rsync/example/.local_repo/releases/20170206212205/Gemfile --deployment --quiet --path /home/hkobayash/capistrano-bundle…
      01 The --deployment flag requires a Gemfile.lock. Please make sure you have checked
      01 your Gemfile.lock into version control before deploying.
(Backtrace restricted to imported tasks)
cap aborted!
SSHKit::Command::Failed: bundle exit status: 4096
bundle stdout: The --deployment flag requires a Gemfile.lock. Please make sure you have checked
your Gemfile.lock into version control before deploying.
bundle stderr: Nothing written

--gemfile options passed no exist Gemfile.
I looks like bundle_rsync_local_release_path need to set as repo_url.

Ah 😨

Thanks!

:D


[ENHANCEMENT] Add ILM based data retention support

Describe the use case:
We would like to enable ILM based elasticsearch retention policy to prevent the elasticsearch cluster overloading.
Describe the enhancement/feature:
The official camunda documentation give a very good option to enable and configure this:
https://docs.camunda.io/docs/self-managed/operate-deployment/data-retention/
Unfortunately this feature cannot be configured from the helm chart:
https://github.com/camunda/camunda-platform-helm/blob/main/charts/camunda-platform/charts/operate/templates/configmap.yaml#L9
Desired outcome and acceptance tests:
ILM archive function can be enabled and configured in the helm chart.

Hi @bendzsak-dpc,
I faced an similar issue and was able to handle it via environment variables:
optimize:
  enabled: true
# Possible starting from 3.11.0-alpha4
  env:
  - name: CAMUNDA_OPTIMIZE_HISTORY_CLEANUP_CRON_TRIGGER
    value: "0 1 * * *"
  - name: CAMUNDA_OPTIMIZE_HISTORY_CLEANUP_TTL
    value: "P2Y"
  - name: CAMUNDA_OPTIMIZE_HISTORY_CLEANUP_PROCESS_DATA_CLEANUP_ENABLED
    value: "true"
  - name: CAMUNDA_OPTIMIZE_HISTORY_CLEANUP_PROCESS_DATA_CLEANUP_CLEANUP_MODE
    value: "all"
  - name: CAMUNDA_OPTIMIZE_HISTORY_CLEANUP_PROCESS_DATA_CLEANUP_BATCH_SIZE
    value: "10000"
# prior to 3.11.0-alpha4
  extraVolumeMounts:
        - name: config-volume
          mountPath: /optimize/config/environment-config.yaml
          subPath: environment-config.yaml
  extraVolumes:
    - name: config-volume
      configMap:
        name: optimize-config

operate:
  enabled: true
  env:
# Retention
  - name: CAMUNDA_OPERATE_ARCHIVER_ILMENABLED
    value: "true"
  - name: CAMUNDA_OPERATE_ARCHIVER_ILMMINAGEFORDELETEARCHIVEDINDICES
    value: 31d
# Archive https://docs.camunda.io/docs/self-managed/operate-deployment/importer-and-archiver/#archive-period
  - name: CAMUNDA_OPERATE_ARCHIVER_WAITPERIODBEFOREARCHIVING
    value: 5s

tasklist:
  enabled: true
  env:
# Retention
  - name: CAMUNDA_TASKLIST_ARCHIVER_ILMENABLED
    value: "true"
  - name: CAMUNDA_TASKLIST_ARCHIVER_ILMMINAGEFORDELETEARCHIVEDINDICES
    value: 31d
# Archive NOT Documented
  - name: CAMUNDA_TASKLIST_ARCHIVER_WAITPERIODBEFOREARCHIVING
    value: 5s

# Reduce for Zeebe and Gateway the configured replicas and with that the required resources
# to get it running locally
zeebe:
  affinity:
    podAntiAffinity: null
  clusterSize: 1
  partitionCount: 1
  replicationFactor: 1
  pvcSize: 3Gi
  resources:
    requests:
      cpu: "100m"
      memory: "1Gi"
    limits:
      cpu: "512m"
      memory: "3Gi"
  env:
# Retention
  - name: ZEEBE_BROKER_EXPORTERS_ELASTICSEARCH_ARGS_RETENTION_ENABLED
    value: "true"
  - name: ZEEBE_BROKER_EXPORTERS_ELASTICSEARCH_ARGS_RETENTION_MINIMUMAGE
    value: 31d
  - name: ZEEBE_BROKER_EXPORTERS_ELASTICSEARCH_ARGS_RETENTION_POLICYNAME
    value: zeebe-records-retention-policy

Configmap for Optimize:

apiVersion: v1
data:
  environment-config.yaml: |
    ---
    ###############################################################################
    #                                                                             #
    #                     Optimize Environment Configuration                      #
    #                                                                             #
    ###############################################################################

    # Note: for all possible configuration options please have a look
    #       at the Optimize documentation:
    #       https://docs.camunda.org/optimize/${docs.version}/technical-guide/setup/configuration/
    historyCleanup:
      # cron expression for when the cleanup should run
      cronTrigger: '*/2 * * * *'
      # default time to live (ttl) for data, when reached the corresponding process/decision/event instances will get cleaned up
      # Format is ISO_8601 duration  https://en.wikipedia.org/wiki/ISO_8601#Durations
      ttl: 'P1D'
      processDataCleanup:
        # switch for the Camunda process data cleanup, defaults to false
        enabled: true
        # type of process data cleanup to perform, possible values:
        # 'all' - delete everything related to the process instance
        # 'variables' - only delete associated variables of a process instance
        cleanupMode: 'all'
        # process definition specific configuration parameters that will overwrite the general parameters (ttl, processDataCleanupMode)
        # for the specific processDefinition key
        perProcessDefinitionConfig:
        # 'myProcessDefinitionKey':
        #   ttl: 'P2M'
        #   cleanupMode: 'variables'
      decisionDataCleanup:
        # switch for the Camunda decision data cleanup, defaults to false
        enabled: false
        # decision definition specific configuration parameters that will overwrite the general parameters (ttl)
        # for the specific decisionDefinition key
        perDecisionDefinitionConfig:
        # 'myDecisionDefinitionKey':
        #   ttl: 'P2M'
      ingestedEventCleanup:
        # switch for the ingested event data cleanup, defaults to false
        enabled: false
kind: ConfigMap
metadata:
  name: optimize-config
  namespace: default

The feature has been added in v8.3.0 for Operate, Tasklist, and Zeebe.
For Optimize, as I know it doesn't use the ES ILM but its own mechanism and it will be added soon.

Thanks for the update @aabouzaid, moving to the backlog until Optimize supports ES ILM.

@hisImminence @theburi ,  in this thread:
https://camunda.slack.com/archives/C02UMKN3DTL/p1705006824487639
@Zelldon and @akeller brought up some concerns about SM  ILM policies differing from SaaS, and whether there should be a default ILM policy in SM. Perhaps we should clarify as part of this ticket (or on a different ticket)  what we believe the default ILM policy should be. As in, should it mirror SaaS? Should it be disabled by default?  That step could be done separately from actually implementing this ticket.

https://github.com/camunda/camunda-platform-helm/issues/827#issuecomment-1686635122
Hi @ManuelDittmar, How can we setup ES ILM for camunda Self Managed 8.2.0? I was unable to find the application.yaml file for operate/tasklist/zeebe.
Is the above ES ILM data retention settings for version 8.3 will also work for 8.2?


changed db to covid19 and added global test script

Also added a dev script to run all tests instead of having to change directory and run npm test in all of them.

Is anyone using the db in Atlas right now? I can create new ones to reflect this change

I haven't used atlas so far, feel free to rename/recreate the DB


Bump eslint

Description

Provide description here

Type of change

[ ] Bug fix
[ ] New feature
[ ] Breaking change

Related issues

Fix #1

Migration notes

Describe migration notes if any

Extra info

Add any additional information

@cjwooo you're on 🔥


Prefer enforce to throw

Code refactoring - Prefer enforce (from std.exception) over if-test plus throw new Exception. Minor, but reduces the volume of code, especially in command line argument validation.
Found one bug in the process - Field ranges ending in zero were not getting caught during command line argument checking. Only occurs in cases where zero is a valid value, and its for field ranges in reverse order so a rare case.
Added a couple missed unit tests, all in command line argument validation.

Codecov Report

Merging #279 into master will increase coverage by 0.08%.
The diff coverage is 99.38%.


View digitised archives with open status

Measures

Are all fully open archive items accessible on the site?

Link to feature: https://wellcomecollection.productboard.com/feature-board/planning/features/4911417


How to save a model?

Thank you for sharing analog with us. How do we save a model in anago? Is it similar to Keras?

Hi @ersinyar .
In anago, you can save the model as follows:
model = anago.Sequence()
model.train(x_train, y_train, x_valid, y_valid)
model.save(dir_path='model')


Is there an easy way to change the default port when i type in react-native run-android?

My steps to change the default port:

react-native start --port 9999.
react-native run-android.
change the port in the app.

Is there an easy way?

This issue looks like a question that would be best asked on StackOverflow.
StackOverflow is amazing for Q&A: it has a reputation system, voting, the ability to mark a question as answered. Because of the reputation system it is likely the community will see and answer your question there. This also helps us use the GitHub bug tracker for bugs only.
Will close this as this is really a question that should be asked on StackOverflow.


android 4.4 kitkat arryr.form error

cordova: 8.0
android: 7.0
framework7-template-vue-webpack used
android 5.0 higher not problem
but
android 4.4 kitkat error message
"Uncaught TypeError: Object function Array() { [native code] } has no method 'from'", source: file:///android_asset/www/app.js (13)

You need to know that the from method belongs to the ES6 grammar, which is not recognized correctly in Android 4.4's webview. You need to use bable to convert the code that it can use normally.


[#136605385] Auto-deploy PaaS Roadmap

What
We'd like to include roadmap deployment, in our production pipeline by default.
In any other environment, it should default to a false value, preventing it from being deployed without a need.
Also, as part of this PR
As part of #136550911 we will be replacing our CVE Notifier with a better approach.
We've decided, to remove the notifier sooner rather than later, in order to prevent it from spamming our support email.
How to review
Note: It may prove itself to be difficult, if you're reviewing changes in the Files changed tab rather than separate Commits. Github may think I am replacing cve-notifier with paas-dashboard.

Deploy from this branch, with DEPLOY_ROADMAP=true applied.
Visit https://paas-roadmap.${DEPLOY_ENV}.dev.cloudpipelineapps.digital/ and see if everything in order.

Optionally extra checks

Deploy from this branch, with ENABLE_CVE_NOTIFIER=true applied.
After running cf apps, make sure cve-notifier app does not exist.

Who can review
Anyone but @paroxp

Manual steps for prod:

Remove paas-roadmap before this change is applied to prod to avoid a route conflict
Remove CVE notifier whenever


operatorhub: operatorgroup.create docs slightly miss-leading

operatorhub chart supports: operatorgroup.create in the docs;

https://github.com/rht-labs/helm-charts/tree/master/charts/operatorhub#configuration

Since the example is true, it's inferred that the below should not create the operator group:
operatorgroup:
        create: false

But the code just checks for the existence of the 'operatorgroup', so it doesn't matter what create is set to.

https://github.com/rht-labs/helm-charts/blob/master/charts/operatorhub/templates/operatorgroup.yaml#L3

the wording of the docs just needs tweaking to make this clear.
CC @springdo @ckavili

Hi all,
Gareth you are right about the slightly misleading issue, I did not notice that even if I run the template. However, should it be like in the docs that will be changed in the helm template, or the docs should say "whether it is create, delete, foo, bar it will check the existence".
The options are:

The values.yaml should be changed regarding defining the right terminology:

operatorgroup: "" or sth like this

Helm template(s) should be changed and check the operatorgroup.create false/true condition not the operatorgroup obj itself.

Docs should be changed as I mentioned above.

IMHO, the elegant way is to choose whether 1 or 2.


Remove immutability and add psalm-mutation-free where possible

Codecov Report

Merging #4 into 0.3.x will not change coverage.
The diff coverage is n/a.

@@             Coverage Diff             @@
##               0.3.x        #4   +/-   ##
===========================================
  Coverage     100.00%   100.00%
  Complexity        62        62
===========================================
  Files              3         3
  Lines            243       243
===========================================
  Hits             243       243

Impacted Files
Coverage Δ
Complexity Δ

src/Array_.php
100.00% <ø> (ø)
17.00 <0.00> (ø)

src/Map.php
100.00% <ø> (ø)
26.00 <0.00> (ø)

src/OrderedList.php
100.00% <ø> (ø)
19.00 <0.00> (ø)

Continue to review full report at Codecov.

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


git clone is enormous

don't know if your aware but a git clone takes ages.
I guess because binaries are in the repo...
Update: Seems that its probably from the past git repo history, since main has no big files.

this worked
git clone --filter=blob:none --no-checkout https://github.com/pojntfx/hydrapp -b $(REPO_VERSION)

cd hydrapp && git checkout $(REPO_VERSION)

Nice 👍


Install command needs to be modified - kuberhealthy

Hello, the command listed in the "Install" section of: https://hub.helm.sh/charts/kuberhealthy/kuberhealthy
needs to be modified to work properly.  It's listed as helm install kuberhealthy/kuberhealthy --version 2.1.0 but should be helm install kuberhealthy kuberhealthy/kuberhealthy --version 2.1.0
Is that a manual config by the helm/hub maintainers or was that generated automatically with variables from our repo?
Thanks!

@chadbitzer that's a great catch. Thanks.

The Helm Hub now redirects to the Artifact Hub. Closing this issue as it is overcome by events.


added some mlh resources

I added a bunch of resources that we've produced. Hope they're helpful.

Thanks appreciate it!


Can't mount same API in nested path

I tried mount method and seems if I mount same class, only the last one will be valid.
A simple example, it's not production ready codes:
If I have models House, Room and Alarm.

A house can have many rooms and many alarms.
A room belongs to a house and can have many alarms.
An alarm can belongs to a house or a room.

I create API::AlarmAPI to CRUD alarms or one alarm(omit the codes here), and mount it twice to API::AlarmAPI in different place.
module API
  class HouseAPI < Grape::API

    resource :houses do
      route_param :hid do
        mount API::AlarmAPI

        desc 'get specific house',{
          :entity => API::Entities::House
        }
        get do
          present :success, true
          present :house, current_house, with: API::Entities::House
        end

        resource :rooms do
        	route_param :rid do
        	  mount API::AlarmAPI

        	  desc 'get specific room under specific house',{
	          :entity => API::Entities::Room
	        }
	        get do
	          present :success, true
	          present :room, current_room, with: API::Entities::Room
	        end

        	end
        end

      end
    end
  end
end

Then I can only get /houses/:hid/rooms/:rid/alarms, but no /houses/:hid/alarms.

This is a duplicate of https://github.com/ruby-grape/grape/issues/570 I am afraid. Nobody was able to implement a solution for that, maybe you will!


Partitioning not working when ran in random mode

Bug Report
Steps to Reproduce:
Debug a profile in random mode with partitioning enabled
Expected Result:
The related field tree partitioner is invoked
Actual Result:
The noop tree partitioner is invoked instead
Additional Context:
Partitioning is meant to be on by default
The reason this is the case is that tree partitioning does will emit the same data for all but 1 partition when in random mode.

Is this a duplicate of #861?


Request: ability to set callbacks with LCEL at instantiation

Feature request
With LLMChain, it was possible to instantiate with callbacks, and just pass around the LLMChain.
With LCEL, the only way to handle callbacks is to pass them to every invoke call.  This requires one to pass around both the runnable LCEL object as well as the callbacks.
Motivation
It's preferable to bake the callbacks into the LCEL object in advance at instantiation, then they get called each invoke.
Your contribution
I can contribute something if I can get a confirm this is desirable.  The callbacks would be inserted at the base of the LCEL:
from langchain.chat_models import ChatOpenAI
from langchain.prompts import PromptTemplate
from langchain.schema.callbacks.stdout import StdOutCallbackHandler
from langchain.schema.runnable import RunnableConfig

config = RunnableConfig(callbacks=[StdOutCallbackHandler()])
prompt = PromptTemplate.from_template(
    "What is a good name for a company that makes {product}?"
)
runnable = config | prompt | ChatOpenAI()
runnable.invoke(input={"product": "colorful socks"})

Is this implemented or part of the roadmap somewhere so I can track it?
The example doesn't seem to run at least on v0.1.3

I'd also be interested in this feature.

You can sort of do this already using .with_config (but it's not well documented, as you've mentioned in #14134) and doesn't give as full logging as you get from using callbacks in LLMChain (as mentioned in #14135):
config = RunnableConfig(callbacks=[StdOutCallbackHandler()])
prompt = PromptTemplate.from_template(
    "What is a good name for a company that makes {product}?"
)

# in two lines
runnable = prompt | ChatOpenAI()
runnable = runnable.with_config(config)

# OR in one line
runnable = (prompt | ChatOpenAI()).with_config(config)

runnable.invoke(input={"product": "colorful socks"})

The callbacks are then baked in to the object in advance, and get called on each invoke.

@s-pike Hi,
If you get a moment, using your method, how could I print info from the following callback?
from langchain_community.callbacks.bedrock_anthropic_callback import BedrockAnthropicTokenUsageCallbackHandler


deploy: let the pool/fs name be required

Describe what this PR does
Obviously expecting a pool with name rbd or CephFS name myfs
will be a limitation, as the pool/fs is created by admin manually,
let them choose the name that suits their requirement and come back
edit it in the storage class.
Making the pool/fs name as required field will give more attention,
else with new users it will be mostly left unedited until one hit
the errors saying no pool/fs exists.
This patch clips-off the default pool/fs name and make it a mandatory
field.
Signed-off-by: Prasanna Kumar Kalever<EMAIL_ADDRESS>

/retest ci/centos/upgrade-tests-cephfs

/retest ci/centos/upgrade-tests-rbd

/retest ci/centos/upgrade-tests

@pkalever thanks.. in general we can also group the parameters under label
For ex:
(Required)
(Optional)

The labels like Optional and Required are "Source code comments" any way, but give a warning to an admin they should fill it.

@pkalever thanks.. in general we can also group the parameters under label
For ex:
(Required)
(Optional)

The labels like Optional and Required are "Source code comments" any way, but give a warning to an admin they should fill it.

@humblec that is a cool addition. Will add. Thanks!
Thanks!

@humblec done now PTAL. Thanks!

/retest all

The ci/centos/upgrade-tests* tests are only being tested now, so no need to retry them. The other e2e tests should succeed though, a rebase is needed to fix issues with the CI that were introduced today in CentOS-8 / Docker.

/retest ci/centos/mini-e2e-helm/k8s-1.19

/retest all

@nixpanic @Madhu-1 ptal .

@Madhu-1 here is the test logs, I had fixed the parameter to required now based on the test results.
[0] pkalever 😎 rbd✨ git diff
index d4305b58e..2bab278f0 100644
--- a/examples/rbd/storageclass.yaml
+++ b/examples/rbd/storageclass.yaml
[...]
    # (optional) RBD image features, CSI creates image with image-format 2
    # CSI RBD currently supports only `layering` feature.
-   imageFeatures: layering
+   # imageFeatures: layering

[0] pkalever 😎 rbd✨ kubectl create -f storageclass.yaml
storageclass.storage.k8s.io/csi-rbd-sc created

[0] pkalever 😎 rbd✨ kubectl create -f pvc.yaml
persistentvolumeclaim/rbd-pvc created

[0] pkalever 😎 rbd✨ kubectl get pvc
NAME      STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
rbd-pvc   Bound    pvc-cec90cb9-8273-4eb1-b2fa-32d3206a1f7d   1Gi        RWO            csi-rbd-sc     5s

[0] pkalever 😎 rbd✨ kubectl create -f pod.yaml
pod/csi-rbd-demo-pod created

[0] pkalever 😎 rbd✨ kubectl get pods
NAME                                         READY   STATUS              RESTARTS   AGE
csi-rbd-demo-pod                             0/1     ContainerCreating   0          10m
csi-rbdplugin-hbpq5                          3/3     Running             0          17m
csi-rbdplugin-provisioner-75485f85db-5frvk   6/6     Running             0          17m
csi-rbdplugin-provisioner-75485f85db-sfkl4   6/6     Running             0          17m
csi-rbdplugin-provisioner-75485f85db-zwsfp   6/6     Running             0          17m
vault-867cf4b4d4-qqdt2                       1/1     Running             0          17m
vault-init-job-96d9q                         0/1     Completed           0          17m

[0] pkalever 😎 rbd✨ kubectl describe pods csi-rbd-demo-pod
[...]
Events:
  Type     Reason                  Age                  From                     Message
  ----     ------                  ----                 ----                     -------
  Normal   Scheduled               10m                  default-scheduler        Successfully assigned default/csi-rbd-demo-pod to minikube
  Normal   SuccessfulAttachVolume  10m                  attachdetach-controller  AttachVolume.Attach succeeded for volume "pvc-cec90cb9-8273-4eb1-b2fa-32d3206a1f7d"
  Warning  FailedMount             113s (x12 over 10m)  kubelet, minikube        MountVolume.MountDevice failed for volume "pvc-cec90cb9-8273-4eb1-b2fa-32d3206a1f7d" : rpc error: code = Internal desc = an error (exit status 2) occurred while running ceph args: [rbd task add flatten rbd-pool/csi-vol-1dae0d96-0238-11eb-93fe-0242ac110004 --id admin --keyfile=***stripped*** -m <IP_ADDRESS>]
  Warning  FailedMount             93s (x4 over 8m21s)  kubelet, minikube        Unable to attach or mount volumes: unmounted volumes=[mypvc], unattached volumes=[mypvc default-token-2xr4n]: timed out waiting for the condition

Good catch, thanks!

@pkalever can  you please paste rbd info output and also the CSI version you used for the testing

@pkalever can you please paste rbd info output and also the CSI version you used for the testing

Sure
[root@minikube /]# cephcsi --version
Cephcsi Version: canary
Git Commit: fd4328cd5333f4275be52c604c30801fc612fa75
Go Version: go1.15
Compiler: gc
Platform: linux/amd64
Kernel: 4.19.114
[root@minikube /]#

[root@ceph-node1 ~]# rados lspools
rbd-pool
cephfs-datapool
cephfs-metapool
[root@ceph-node1 ~]# rbd ls -l rbd-pool
NAME                                         SIZE  PARENT FMT PROT LOCK
csi-vol-e15f6413-023f-11eb-93fe-0242ac110004 1 GiB          2
image1                                       1 GiB          2
[root@ceph-node1 ~]# rbd info rbd-pool/csi-vol-e15f6413-023f-11eb-93fe-0242ac110004
rbd image 'csi-vol-e15f6413-023f-11eb-93fe-0242ac110004':
        size 1 GiB in 256 objects
        order 22 (4 MiB objects)
        snapshot_count: 0
        id: 10d75105603c
        block_name_prefix: rbd_data.10d75105603c
        format: 2
        features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
        op_features:
        flags:
        create_timestamp: Tue Sep 29 10:38:15 2020
        access_timestamp: Tue Sep 29 10:38:15 2020
        modify_timestamp: Tue Sep 29 10:38:15 2020
[root@ceph-node1 ~]#

@Madhu-1 I had recreated the problem and pasted you the rbd-info, so please note that the image name might not match.

/  Warning  FailedMount             113s (x12 over 10m)  kubelet, minikube        MountVolume.MountDevice failed for volume "pvc-cec90cb9-8273-4eb1-b2fa-32d3206a1f7d" : rpc error: code = Internal desc = an error (exit status 2) occurred while running ceph args: [rbd task add flatten rbd-pool/csi-vol-1dae0d96-0238-11eb-93fe-0242ac110004 --id admin --keyfile=stripped -m <IP_ADDRESS>]
we should not add a flatten task for this image as image doesn't have any children (can you please open an issue for it and lets make image feature as a required parameter for now)

/ Warning FailedMount 113s (x12 over 10m) kubelet, minikube MountVolume.MountDevice failed for volume "pvc-cec90cb9-8273-4eb1-b2fa-32d3206a1f7d" : rpc error: code = Internal desc = an error (exit status 2) occurred while running ceph args: [rbd task add flatten rbd-pool/csi-vol-1dae0d96-0238-11eb-93fe-0242ac110004 --id admin --keyfile=stripped -m <IP_ADDRESS>]
we should not add a flatten task for this image as image doesn't have any children (can you please open an issue for it and lets make image feature as a required parameter for now)

Ah! I saw this error but thought there might be some reason behind it.

Ok, so the image creation shouldn't run flatten task when there are no children. Make sense.
I would like to send a PR for this as soon as I could, do we still need an issue for tracking?
Yes the latest changes make it required, both in the example and the deploy rbd doc, PTAL.

Thanks again!

/ Warning FailedMount 113s (x12 over 10m) kubelet, minikube MountVolume.MountDevice failed for volume "pvc-cec90cb9-8273-4eb1-b2fa-32d3206a1f7d" : rpc error: code = Internal desc = an error (exit status 2) occurred while running ceph args: [rbd task add flatten rbd-pool/csi-vol-1dae0d96-0238-11eb-93fe-0242ac110004 --id admin --keyfile=stripped -m <IP_ADDRESS>]
we should not add a flatten task for this image as image doesn't have any children (can you please open an issue for it and lets make image feature as a required parameter for now)

Ah! I saw this error but thought there might be some reason behind it.

Ok, so the image creation shouldn't run flatten task when there are no children. Make sense.
I would like to send a PR for this as soon as I could, do we still need an issue for tracking?

just for tracking, so that we don't miss it

Yes the latest changes make it required, both in the example and the deploy rbd doc, PTAL.

Thanks again!

CI failure in Travis CI for commitlint

@Madhu-1 I had recreated the problem and pasted you the rbd-info, so please note that the image name might not match.

sorry for going back and forth, if we fix the rbd flatten issue can we have imageFeature still as an optional parameter? just need to test this with kernel 3.x and 4.x and 5.x version

sorry for going back and forth, if we fix the rbd flatten issue can we have imageFeature still as an optional parameter? just need to test this with kernel 3.x and 4.x and 5.x version

@Madhu-1 I don't have 4.x and 5.x setups at the moment.
But this is what happends on 3.x atleast:
[root@ceph-node1 ~]# uname -a
Linux ceph-node1 3.10.0-1127.el7.x86_64 #1 SMP Tue Mar 31 23:36:51 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

[root@ceph-node1 ~]# rbd create --size 1024 rbd-pool/myimage1
[root@ceph-node1 ~]# rbd device map rbd-pool/myimage1
rbd: sysfs write failed
RBD image feature set mismatch. You can disable features unsupported by the kernel with "rbd feature disable rbd-pool/myimage1 object-map fast-diff deep-flatten".
In some cases useful info is found in syslog - try "dmesg | tail".
rbd: map failed: (6) No such device or address
[root@ceph-node1 ~]#

[root@ceph-node1 ~]# rbd create --size 1024 rbd-pool/myimage2 --image-feature layering
[root@ceph-node1 ~]# rbd device map rbd-pool/myimage2
/dev/rbd1
[root@ceph-node1 ~]#

So from the test, this doesn't seem to be an optional parameter at 3.x at least.

So from the test, this doesn't seem to be an optional parameter at 3.x at least.

@dillaman @ShyamsundarR can we make imageFeature as a mandatory parameter in storageclass?

@Madhu-1 After fixing the flatten issue, here are the pod logs:
Events:
  Type     Reason                  Age               From                     Message
  ----     ------                  ----              ----                     -------
  Normal   Scheduled               17s               default-scheduler        Successfully assigned default/csi-rbd-demo-pod to minikube
  Normal   SuccessfulAttachVolume  17s               attachdetach-controller  AttachVolume.Attach succeeded for volume "pvc-5e37238d-caf4-4add-8422-47f2b4b2d723"
  Warning  FailedMount             4s (x3 over 13s)  kubelet, minikube        MountVolume.MountDevice failed for volume "pvc-5e37238d-caf4-4add-8422-47f2b4b2d723" : rpc error: code = Internal desc = rbd: map failed with error an error (exit status 6) occurred while running rbd args: [--id admin -m <IP_ADDRESS> --keyfile=***stripped*** map rbd-pool/csi-vol-5f93d7a2-0254-11eb-8178-0242ac110005 --device-type krbd], rbd error output: rbd: sysfs write failed
rbd: map failed: (6) No such device or address

@Madhu-1 After fixing the flatten issue, here are the pod logs:
Events:
  Type     Reason                  Age               From                     Message
  ----     ------                  ----              ----                     -------
  Normal   Scheduled               17s               default-scheduler        Successfully assigned default/csi-rbd-demo-pod to minikube
  Normal   SuccessfulAttachVolume  17s               attachdetach-controller  AttachVolume.Attach succeeded for volume "pvc-5e37238d-caf4-4add-8422-47f2b4b2d723"
  Warning  FailedMount             4s (x3 over 13s)  kubelet, minikube        MountVolume.MountDevice failed for volume "pvc-5e37238d-caf4-4add-8422-47f2b4b2d723" : rpc error: code = Internal desc = rbd: map failed with error an error (exit status 6) occurred while running rbd args: [--id admin -m <IP_ADDRESS> --keyfile=***stripped*** map rbd-pool/csi-vol-5f93d7a2-0254-11eb-8178-0242ac110005 --device-type krbd], rbd error output: rbd: sysfs write failed
rbd: map failed: (6) No such device or address

what are the image features of this image?

what are the image features of this image?

I don't have the setup in place to check the rbd info, but I had commented out the imageFeatures parameter as mentioned at https://github.com/ceph/ceph-csi/pull/1507#issuecomment-700610662

@Madhu-1 is this waiting on anything else?

/test all

/test all


Fix test_vsock failure on VMADDR_CID_LOCAL testing and re-enable it

Starting from Linux 5.6, VMADDR_CID_LOCAL is supported to do local communication (loopback device).
Before Linux 5.6 it was called VMADDR_CID_RESERVED and was not supported, so we could expect an EADDRNOTAVAIL, but now this address is supported and handled by the 'vsock_loopback' kernel module loaded automatically if no other vsock transports are loaded.
Issue #1310
Issue #1403
Signed-off-by: Stefano Garzarella<EMAIL_ADDRESS>

bors retry


Fix sky in ZoneOut and Varoom

This PR makes the following changes:

"Centers" ZoneOut background
Makes the sky appear about the same height on multiple resolutions in Varoom

This PR also addresses issue #47.

I've looked over the code changes for this PR and it looks fine, today or tomorrow when I have a little time I'll checkout the changes locally, test them, and then merge the PR

After testing, the ZoneOut horizon looks fully fixed, but the Varoom sky fix doesn't look much different than the bugged behavior. The horizon is supposed to extend to just above where the highest portions of the track/trees are rendered, rather than how it currently renders as a thin blue stripe at the top of the screen.


Add config to require client certs

Please correct me if I'm wrong, but it seems like in the current configuration file, it is not possible to require a client cert.

I'll have a go at this over next week, although if someone beats me to it, go ahead :)

Certificate Revocation Lists would be a nice addition to this issue too. There's no point using client certs if you can't tell if they're revoked.

Closed by #283.


Support EIP-1271: Standard Signature Validation Method for Contracts

EIP-1271: https://eips.ethereum.org/EIPS/eip-1271
Adding support for checking smart contract wallet signatures.
Resolves #16

Ultimately (if we support contracts), this just needs some mock testing added.


WARNING (SyncWorker_4) [supervisor.addons.validate]

Not sure if this is the right place. But get this message but I uninstalled Frigate a while ago: 23-09-06 11:04:21 WARNING (SyncWorker_4) [supervisor.addons.validate] Add-on have full device access, and selective device access in the configuration. Please report this to the maintainer of Frigate (Full Access) Beta (0.12.0)

Same here with logentry for beta.
But I had uninstalled beta a while ago and now  on normal frigate release.

the same on HA core-2024.4.2 / supervisor-2024.04.0 without any Frigate
2024-04-11 15:40:16.455 WARNING (SyncWorker_4) [supervisor.addons.validate] Add-on have full device access, and selective device access in the configuration. Please report this to the maintainer of Frigate (Full Access)
2024-04-11 15:40:16.666 WARNING (SyncWorker_7) [supervisor.addons.validate] Add-on have full device access, and selective device access in the configuration. Please report this to the maintainer of Frigate (Full Access) Beta

I got these messages right after testing the Full-access and Beta versions more than six months ago.
FA & Beta have been completely deleted for a long time ago and currently Frigate 0.13.2 are running ( without Full Access), but messages appear every three hours sharp.
I tried to identify the source, but unfortunately I couldn't find it.
It is quite clear that this is "garbage", but annoying...
Sys info:
core-2024.4.3
Home Assistant OS 12.2
supervisor-2024.04.0
Frigate (0.13.2)
...
2024-04-16 05:00:07.760 WARNING (SyncWorker_7) [supervisor.addons.validate] Add-on have full device access, and selective device access in the configuration. Please report this to the maintainer of Frigate (Full Access)
2024-04-16 05:00:07.761 WARNING (SyncWorker_7) [supervisor.addons.validate] Add-on have full device access, and selective device access in the configuration. Please report this to the maintainer of Frigate (Full Access) Beta
2024-04-16 05:00:07.893 WARNING (SyncWorker_0) [supervisor.addons.validate] Add-on have full device access, and selective device access in the configuration. Please report this to the maintainer of Frigate (Full Access)
2024-04-16 05:00:07.894 WARNING (SyncWorker_0) [supervisor.addons.validate] Add-on have full device access, and selective device access in the configuration. Please report this to the maintainer of Frigate (Full Access) Beta
...
2024-04-16 08:00:08.951 WARNING (SyncWorker_0) [supervisor.addons.validate] Add-on have full device access, and selective device access in the configuration. Please report this to the maintainer of Frigate (Full Access)
2024-04-16 08:00:08.952 WARNING (SyncWorker_0) [supervisor.addons.validate] Add-on have full device access, and selective device access in the configuration. Please report this to the maintainer of Frigate (Full Access) Beta
2024-04-16 08:00:09.078 WARNING (SyncWorker_6) [supervisor.addons.validate] Add-on have full device access, and selective device access in the configuration. Please report this to the maintainer of Frigate (Full Access)
2024-04-16 08:00:09.079 WARNING (SyncWorker_6) [supervisor.addons.validate] Add-on have full device access, and selective device access in the configuration. Please report this to the maintainer of Frigate (Full Access) Beta
...
2024-04-16 11:00:10.172 WARNING (SyncWorker_4) [supervisor.addons.validate] Add-on have full device access, and selective device access in the configuration. Please report this to the maintainer of Frigate (Full Access)
2024-04-16 11:00:10.174 WARNING (SyncWorker_4) [supervisor.addons.validate] Add-on have full device access, and selective device access in the configuration. Please report this to the maintainer of Frigate (Full Access) Beta
2024-04-16 11:00:10.313 WARNING (SyncWorker_3) [supervisor.addons.validate] Add-on have full device access, and selective device access in the configuration. Please report this to the maintainer of Frigate (Full Access)
2024-04-16 11:00:10.314 WARNING (SyncWorker_3) [supervisor.addons.validate] Add-on have full device access, and selective device access in the configuration. Please report this to the maintainer of Frigate (Full Access) Beta
...


Scheme Design and Development for Improving Authentication Efficiency

Is your feature request related to a problem? Please describe.（如果该特性或者功能和已知某个问题相关，请描述问题是什么）
The current authentication scheme PBKDF2 is very inefficient, because it will do a lot of hashes, and it will do a lot of hash calculations for each request, which is a waste of CPU resources.
related
https://github.com/openGemini/openGemini/issues/232
https://github.com/golang/crypto/blob/master/pbkdf2/pbkdf2.go
Describe the solution you'd like（问题的解决办法是什么）
Solution reference:

token（ref influxdb 2.x）
cache
others

Describe alternatives you've considered（描述您考虑过的替代方案）
No response
Additional context（其他补充内容）
No response

I will support it.

CREATE TOKEN
Interface definition

POST  /authorizations
Args

username
password
Privileges  map[string]originql.Privilege
timeout (no more than 7 days)

Create

Determine whether the token is duplicate
Interact with meta through RPC and save to meta.（refThe logic of creating a new user）

Durability
Meta metadata is stored in boltdb.
After the token is encrypted, it is stored on the disk, and after restarting, the token is decrypted and put into memory. The encryption algorithm is pending.
Authorization

http header specifies the use of token for identity authorization. ref influxdb 2.0

Other logical references use username and password verification logic.
https://github.com/openGemini/openGemini/blob/61135cdf5d36ca9d424585be5d2d39179456137e/open_src/influx/auth/auth.go#L28-L55
https://github.com/openGemini/openGemini/blob/61135cdf5d36ca9d424585be5d2d39179456137e/open_src/influx/httpd/handler.go#L535-L553

DELETE TOKEN
Interface definition

DELETE  /authorizations/:ID
Params:

username
password

The new plan is as follows:
token

The token is stored in memory and the mapping relationship between the token and permissions is saved using a map

Use a go routine to evict timeout tokens
type tokenStore struct {
    sync.RWMutex
    token  map[string]originql.Privilege
    expire map[string]int64
}

func (m *tokenStore) clear() {
    for {
        <-time.After(time.Second)
        m.Lock()
        now := time.Now().UnixNano()
        for key, expire := range m.expire {
            if expire < now {
                delete(m.expire, key)
                delete(m.data, key)
            }
        }
        m.Unlock()
    }
}

Token is a randomly generated string with a length of 64 (refer to Influxdb)

create token

POST /authorizations

Args

username
password
privileges
timeout

After receiving the request, the server will verify username, password, and privilege. Only if the privilege is within the corresponding user's permission range can it be successfully created

User can set the maximum timeout time max through config_ Timeout, if the timeout parameter is greater than the maximum timeout time, the timeout time for newly created tokens is max_ timeout.

token authentification

When using, token authentication should be specified in the HTTP request header. Verification logic refers to the verification logic of the user password
https://github.com/openGemini/openGemini/blob/61135cdf5d36ca9d424585be5d2d39179456137e/open_src/influx/auth/auth.go#L28-L55
https://github.com/openGemini/openGemini/blob/61135cdf5d36ca9d424585be5d2d39179456137e/open_src/influx/httpd/handler.go#L535-L553

file change
/openGemini/open_src/influx/meta/data.go：Adding token storage in the Data structure
open_src/influx/httpd/handler.go：Add token validation logic to the authenticate function, and add a route for creating tokens and a function for creating routes


Tic-Tac-Toe in Python added

Tic Tac Toe, to be played on console., complete code is written. For playing, the Instruction set is always present on top of the screen, and positions are marked on board.

What a great code :smile: !
Thank you for contributing! :rocket:


Wire up lifetime earnings and pending yield

It seems that the lifetime earnings and pending yield numbers are either not working or incorrect. Here's an example of an account that has earned 0.041834 and should have a non-zero pending yield but is showing otherwise.
https://etherscan.io/token/0x856c4Efb76C1D1AE02e20CEB03A2A6a08b0b8dC3?a=0x57b0dd7967955c92b6e34a038b47fee63e1efd1a

This was a bug on the backend API. Have fixed it now


Make etcd listen on both mgmt and storage network

At the moment, to push data to etcd cluster we pick random etcd service and use it to push the data to the whole cluster. And this approach is risky since that etcd maybe down. Alternatively if etcd servers listened to the mgmt network then we can push data to it using the etcd python/golang package directly without the need for etcdctl binary

Looks like the python-etcd  package isn't stable with etcd v3, therefore I will close this issue to brainstorm and find better solution

Looks like https://github.com/kragniz/python-etcd3 is good option to investigate. So I'm gonna reopen this issue for investigation

Khaled figured out that the above python client does not take a cluster into consideration so using that specific client doesnt help the current situation.

We could just use the one that supports connecting to a single node and loop over the servers from the ays code instead.

Software Version
112ce78e9924585b2bed71c4fdf87df6db2f1c57


Remove hello command from m30pm

In source and in package.json... there is a hello topic in there. Not sure why there is not a project topic.

The topics entry in package.json is for topic level help.
Removing that entry and adding one for project topic.


Vulnerabilities patch

Added Helmet
Added Request Delay
Change to HTTPS

Thanks for the contribution, however, the software isn't complete yet.
I won't be merging nor closing this pull request (at least for now).

Thanks for the contribution, however, the software isn't complete yet. I won't be merging nor closing this pull request (at least for now).

👍


add setMute() method to docs

add setMute() method to docs #1041

setMute() has boolean parameter, so it can mute on true and unmute on false.

please see prev comment

@thijstriemstra updated

is it really called boolean?

@thijstriemstra updated, set it as boolean since it had true/false values ><