create directive?

I love the simplicity of how symlinking works, but is it possible to add a create directive, which would create a directory (and any parent directories, if necessary), without symlinking?  Right now I'm running this as a shell command:
  - description: Creating vim undo cache
    command: "[ -d ~/.vim/undo ] || mkdir ~/.vim/undo"

Sure, this seems reasonable. What should the format be?
- mkdir:
    - ~/.vim/undo
    - ~/path/to/some/other/folder

I would say:
- create:
    - ~/.vim/undo
    - ~/path/to/some/other/folder
    - ~/path/to/some/other/blankfile.txt

With create instead of mkdir, because you already abstract terminology like shell and link, opposed to bash and ln.  Also, I'm not sure when creating a blank file might be desirable, but why not support it as well?

Also not sure how far I'll get, but going to attempt a PR for Hacktoberfest 😅 ...if that's okay with you?

Sure, PRs are always appreciated 😄
Agree re: abstract terminology.
Hmm, I don't know if we can handle both files and folders (also, are empty files useful?). Consider your example (repeated below for convenience):
- create:
    - ~/.vim/undo
    - ~/path/to/some/other/folder
    - ~/path/to/some/other/blankfile.txt

Here, how would Dotbot know that folder is supposed to be a folder, rather than a file with no file extension? Similarly, how would it know that blankfile.txt is a file, rather than a folder that happens to have a "." in the name?

I think files could be useful for creating blank log files, though I don't have a concrete example.  I figure if link can link both files and folders, why not create both files and folders?
That said, I think you're right about detecting file vs folder, and files should be an explicitly optional thing...
- create:
  - path: ~/.vim/undo
    recreate: true
  - path: ~/path/to/some/other/blank-log-file.txt
    recreate: true
    file: true

What are your thoughts on that?

What are the semantics of recreate?

Basically like relink and force, but for the new create directive.  Would remove the old target and re-create it.

I think relink and force make sense in the context of link, e.g. when there is a regular file, and you want it replaced with the symlink. I don't think recreate makes sense in the context of making a directory? The way I'd interpret create: foo/bar in a config is that the user wants that folder to be created. If it already exists, then do nothing. I can't think of cases where it makes sense to unlink it and then recreate it. (/ this seems to go against Dotbot's philosophy of idempotence)

Fair enough, I can leave the options out.  Even the file: true option could be left out until someone presents a valid use case for it.  I figured it could be useful, but don't have a concrete use case example.

Sounds good. Let’s leave out the file option until someone has a use case for it.
Let me know when your PR is ready for review :)

On Oct 6, 2019, at 12:51 PM, Jesse Leite<EMAIL_ADDRESS>wrote:
Fair enough, I can leave the options out. Even the file: true option could be left out until someone presents a valid use case for it. I figured it could be useful, but don't have a concrete use case example.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

Closes by #200.


feat: add faq section and hover on social icons

Title and Issue number

Title :  add faq section and hover on social icons
Issue No. : #1099
Code Stack : html css and js
Close #1099

Video (mandatory)

https://github.com/user-attachments/assets/ecb514f4-2a42-469d-b432-79849fe8ca78
Checklist:

[X] I have mentioned the issue number in my Pull Request.
[X] I have commented my code, particularly in hard-to-understand areas
[X] I have created a helpful and easy to understand README.md
[X] I have gone through the  contributing.md file before contributing

Additional context (Mandatory )
Are you contributing under any Open-source programme?

[X] I'm a GSSOC'24 contributor

@apu52 please review and merge my pr


Tensorflow more tutorial on java?

Tensorflow more tutorial on java? I can run the introductory program, but that's far enough and i want to learn more，I do not understand python,Can provide more java tutorials? Sorry for my bad english!

What kind of tutorial you want to see? I'd like to contribute some.

I would like to learn image recognition model training and application, the use of java to identify the characters on the picture or animals, my request can be too much! Thanks!

would see what i can do

I think the best one for java tutorial is that a mnist example by loading graph file which generated by python such as mnist_deep.py python file in mnist tutorials.
and the tutorial verify the same test accuracy ( ex : 0.9921 ) between java and python approach.

Hi @youngho1203
They already have a similar thing:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/java/src/main/java/org/tensorflow/examples/LabelImage.java

Thanks for pointing that out @snnn.
@oahzuw If you really want to build and train models, you'll have a much easier time learning python and doing it there. The java API operates at a much lower level, enough to run an existing model, but you wouldn't want to work in it directly.
It looks like there's already a link to that LabelImage.java example on the install/install_java page. Does anyone have other suggestions on how to make it easier to find?

@snnn   @MarkDaoust  @youngho1203   Thanks to everyone, decided to learn Python, too few examples of Java, thank you for your reply


Unsupported engine

The project doesn't support the latest Node engine.
  "engines": {
    "node": "^20 || ^18 || ^16",
    "npm": ">= 6.13.4",
    "yarn": ">= 1.21.1"
  }

I have Node v21.6.0 installed and I get this error when installing the modules with yarn:
error<EMAIL_ADDRESS>The engine "node" is incompatible with this module. Expected version "^20 || ^18 || ^16". Got "21.6.0"

Is there any update on this issue?

@29-29

I believe this issue is on my end and my local machine. My machine has the latest LTS version of NodeJS (v22) while the project supports up to the previous LTS version (v20).

Aight boys


Make the customization and settings Page Front End

Make a rough outline of the customization page so that when we work on tasks, if we choose to change them later, the customization option can be put up.

Definition of Done

[ ] Make a new directory for a customization/settings in app.py
[ ] Create the following options for the customization

[ ] Password Reset Option
[ ] Email Reset Option (We may not implement this, but it can be taken off later)
[ ] Default view option
[ ] Notification options (I don't know that we will implement this either, but if we do)
[ ] Dark Mode / Color inverse
[ ] Font Size/Type
[ ] About information or way to access it from this page
[ ] Options for what is displayed on task view (Days, Tasks for upcoming, how many etc.)
[ ] Customize how the dashboard looks
[ ] Weekly option to start from Sunday or to start from the current Day
[ ] Option for how the weekly view looks (Stacked drop downs, Box view, etc.)


DB: fix DB connection and query format

Pulldasher was totally broken and would boot until it ran a REPLACE INTO query and then crash.
oof, see the second change.
First: The .query().then() was just changed to make use of the new
promise interface instead of promisifying the old callback interface.
It wasn't the problem.
Second: Add support for utf8mb3 to the library (we'll open a pull to add
it upstream). See the code comment.

This seems to be working fine now!
QA :+1:
I've opened a pull upstream: https://github.com/sidorares/node-mysql2/pull/3007

Ref: https://github.com/iFixit/server-templates/issues/4731
Are we still using mb3 for the metrics schema?

The tables and columbs are all mb4, but some of the defaults are still mb3:
mysql> SHOW VARIABLES LIKE 'character_set_server';
SHOW VARIABLES LIKE 'collation_server';
+----------------------+---------+
| Variable_name        | Value   |
+----------------------+---------+
| character_set_server | utf8mb3 |
+----------------------+---------+
1 row in set (0.00 sec)

+------------------+--------------------+
| Variable_name    | Value              |
+------------------+--------------------+
| collation_server | utf8mb3_unicode_ci |
+------------------+--------------------+
1 row in set (0.00 sec)


Add tutorial on how to estimate a Cox Proportional Hazards Model in glum

And: Add link to Matt Mills' tutorial on fitting penalized splines in glum.
Checklist

[ ] Added a CHANGELOG.rst entry

Thank you Matthias, I like this tutorial a lot!
Maybe we could also mention that the model we estimate is conceptually a piecewise constant hazard model, but because we have a different constant for each event time, it becomes essentially non-parametric. As a corollary, if one wants to reduce the number of parameters, they can opt for merging some categories and estimating fewer "constants".

Thanks! I incorporated your suggestion and added a small conclusion section describing how one might want to depart from the Cox model. Feel free to have another look :).


Added push() and pop() in draw function to reset styles

Addresses (part of) #16

Thank you! I've been absent for most of 2020, so sorry for the late reply and thank you again for your contribution!

Thank you! I've been absent for most of 2020, so sorry for the late reply and thank you again for your contribution!


✨ Make CURLable

Summary
Perhaps this could deprecate the client

A little work around I'm using for now. It just requires jq for json parsing
curl -sS 'https://tinker.nz/api/p/OPF7x8sB' | jq -r .data.content

A little work around I'm using for now. It just requires jq for json parsing
curl -sS 'https:///api/p/' | jq -r .data.content

A little work around I'm using for now. It just requires jq for json parsing
curl -sS 'https://tinker.nz/api/p/aBcDeFgH' | jq -r .data.content


feature enhancement: strip javascript comments in lexer

I implemented a working draft to strip singleline and multiline comments from JSON.
Multiline: /* comment \n next line comment*/
Singleline: //comment\n
I did functional testing and have not implemented json flag and test cases yet:
https://github.com/jerryjacobs/jansson/tree/comment
This feature is usefull when using jansson for reading application configuration and adding javascript style comments inside the configuration file.
Kind regards,
Jerry

I've categorically rejected all requests of adding support for non-standard JSON syntax, like comments.

akheron, please give any grounds?
We want it as an option, default off.
But we definitely need it.
Our grounds:
we plan to use configs as JSON, and in configs 100% sysadmins in the world want comments.

Before you feed JSON to a json library you could strip the single/multiline comments with my C application I created for this purpose here:
https://github.com/jerryjacobs/striptease

@jerryjacobs, I still hope to persuade Petri (@akheron).
And yes, we'd have to do something like that if he'll refuse (it's his project = his rules).
Thanks for sharing.

it should be possible for the library by adding a extra flag to use the strip comments functionality


Added plugin for stream.me

Can you open a pull request for this for streamlink as well, since this project is abandoned?

It seems like the rtmp streams won't load, it encouters a Read timeout. HLS works perfectly.


iOS : 'routeChangeNotification' has been renamed to 'NSNotification.Name.AVAudioSessionRouteChange'

Version-
"react-native": "0.63.4"
"react-airplay": "^1.2.0"

I believe it's still under AVAudioSession.routeChangeNotification.


Admin userlist

Added a UserList component only accessible by an admin. As a result, only an admin can access the /api/user routes, as well.

this closed #17


[SDPA-4307] add table col classes to control width

JIRA issue: https://digital-engagement.atlassian.net/browse/SDPA-SDPA-4307
Changed

Added table classes to control column width

Screenshots

Thanks @rubyllamadora for updating docs. We all should do it if possible. Can you please add one story for using classes you added?

Forgot about it 😬  adding...


Discarding original exception when reporting failsafe

in these places:

https://github.com/rollbar/rollbar-gem/blob/51b637167c26015571ecc154dac96dcadb4efe04/lib/rollbar/notifier.rb#L148-L155
https://github.com/rollbar/rollbar-gem/blob/51b637167c26015571ecc154dac96dcadb4efe04/lib/rollbar/notifier.rb#L236-L243
https://github.com/rollbar/rollbar-gem/blob/51b637167c26015571ecc154dac96dcadb4efe04/lib/rollbar/notifier.rb#L411-L416

When an exception happens while putting together the item, only the error that happened while doing that (e) is reported. The original error (item, exception) is discarded.
What do you think of writing the original error to STDOUT in these cases?

That sounds good to me. What do you think @ArturMoczulski?

Would you like me to take a stab at this?

That would be great @jjb!

Done in master and will be released in v2.18.0.


Indefinite simulation length

There is no reason that simulations have to finish after a fixed number of blocks (--time_blocks), as all History arrays are now held in circular buffers. If time_blocks is None, the simulation should continue indefinitely.

Ensure money/time/distance conversions are implemented properly. How best to display these?


Fix https://github.com/mozilla/thimble.webmaker.org/issues/635 - proper resize code for sidebar on startup

On startup, I was manually adjusting the size of the sidebar element, but not triggering all the necessary resizing code that has to happen in order to update the selection width, etc.  This fixes that by exposing a proper resize() method on the sidebar, and calling the same code that would happen with a real resize.
I've also filed https://github.com/adobe/brackets/issues/11341 upstream to deal with the resize case.

Code looks good.

Merged with de5842fa7c52b3399b7790645d07178f183e4d8e


Run command line for a docker image?

Hi again,
Is there any way to run a custom docker command like this ?
I wanna install gitlab ce from a docker image. I know this is not the complete command, but is there any thing like this ?
docker run --name gitlab-postgresql -d
--env 'DB_NAME=gitlabhq_production'
--env 'DB_USER=gitlab' --env 'DB_PASS=password'
--env 'DB_EXTENSION=pg_trgm'
--volume /srv/docker/gitlab/postgresql:/var/lib/postgresql
sameersbn/postgresql:9.5-1

@aghasoroush you can deploy Docker images to Flynn by following the steps outlined in the following documentation:
https://flynn.io/docs/docker
Flynn does however have a built-in PostgreSQL appliance so it probably makes sense to configure GitLab to use that:
https://flynn.io/docs/databases/postgres

Cannot understand how can it be related to my question!
I know about pushing images to flynn, but my question is about passing parameters to docker command

@aghasoroush once you have pushed the Docker image, you can set environment variables with flynn env set, e.g.:
$ flynn -a APPNAME env set DB_NAME="gitlabhq_production" DB_USER="gitlab" DB_PASS="password" DB_EXTENSION="pg_trgm"

You cannot however achieve the equivalent of the --volume flag because Flynn does not support exposing arbitrary host directories to jobs.
PostgreSQL persistence is instead achieved by using the following state machine design:
https://flynn.io/docs/databases#state-machine-design
which is used by the built-in PostgreSQL appliance.

@lmars Thanks about great description. I will try it


Return lock id from BeginForceUnlock

What is the purpose of the change
Return lock id from BeginForceUnlock. This PR is 1st part of implementing partial withdraw from super fluid
https://github.com/osmosis-labs/osmosis/issues/3830
Algorithm for SF partial withdraw is the following
1. SuperfluidUndelegate
2. Unbond lock for partial amount of the lock and return the new underlying lock that was split
3. Re-delegate remainder
4. Create synthetic unlocking lock for the new lock from step 2

This PR makes step 2 possible.
Brief Changelog

Return lock id from BeginForceUnlock

Testing and Verifying
(Please pick one of the following options)

[x] This change is a trivial rework / code cleanup without any test coverage.

Documentation and Release Note

Does this pull request introduce a new feature or user-facing behavior changes? (no)
Is a relevant changelog entry added to the Unreleased section in CHANGELOG.md? (no)
How is the feature or change documented? (not applicable)

Can you please add a test case for this

Merging since no more eyes so far. Other reviewers can take a look later.
Thank you @t4sk


[CHORE] - Adjust "license": ... in package.json

What work needs to be performed?
Inside the json I forgot to update the license type after a license was actually applied. Can this get updated to reflect the project's actual license type.
Additional information
Information regarding the type of license can be found here or in the LICENSE.md file in the project root.
Hint
It's here 👇

Hey there, mind if I fix this?

@rutterjt It would be much appreciated!


s6-overlay-suexec: fatal: can only run as pid 1

When I launch the addon, I get the following message in the console
s6-overlay-suexec: fatal: can only run as pid 1
It doesn't work. How do I fix this?

I added a line to the configuration file and it worked
"init": false,

COuld you please eloborate where to add the script I am on HasOS raspberry pi and using as addon
the following change on addon configuration did not workout:

name: hass
proto: http
addr: 8123
inspect: false
init: false

I added a line to the configuration file and it worked "init": false,

COuld you please eloborate where to add the script I am on HasOS raspberry pi and using as addon
the following change on addon configuration did not workout:
name: hass
proto: http
addr: 8123
inspect: false
init: false


Re-draw images with iqp style

In most cases, code in the docs has been updated to use style="iqp" (note: still need to fix several code blocks that do not have this update!).
In order to bring the images in line with IBM Quantum colors etc., we need to regenerate the images in the docs so that the output style matches the updated code.
This means re-running notebooks for ipynb files, and for .mdx files it means running the code and import the output image file.

Now that we're using Qiskit 1.0, it's not necessary to set style="iqp". Notebooks should be handled via https://github.com/Qiskit/documentation/pull/795.
But MDX does indeed need regeneration of images.

Thanks for the clarification @Eric-Arellano :)

So the places where i'm still seeing iqp need to be removed? @Eric-Arellano

The colors do change when we add/subtract the iqp, so would be good for consistency!


feat(net): batch-import received txs

Went ahead and implemented #6289, cc @emhane since you were assigned
Still need to adjust the pending_pool_imports metric, which tracks num of transactions, but now we have batches.

I like this.
as for updating pending_pool_imports metric, good point, https://github.com/paradigmxyz/reth/pull/6295 changes the flow in the TransactionsManager though so that metrics in end effect are update per imported batch.


New Logo For Kickstarter

Hello.
I wanted to contribute to kickstarter and I designed a logo for kickstarter. If you like it, you can use it. I'll send you files and pr, is there anything you want ?

Hey thanks for the contribution! We're happy with our current logo 👍


Add support for weak references

Hello,
We currently have a use case where weak references would useful.
We're using duktape to bind some C++ classes which implement reference counting.  These instances can be handed over to duktape wrapped as an Object as the result of a native method call.  In order to get the same object back across multiple calls, there is a lookup table held in Javascript with a pointer to instance key and the Object value.  So, if the object is already wrapped, script gets back the same JS object which preserves any user added properties and saves cycles as it doesn't need to setup the object every time.
Unfortunately, the value being held in the pointer/object table means that the Object will never be finalized script side, which will never decref the native side.  This could be implemented with a weak reference.  I am not sure of the implementation details on this, seems like it could be hairy.

I needed limited support for weak references to implement Workers on top of pthreads with a Duktape heap / context for each worker (you want to GC workers once the Worker object is no longer reachable and it has an empty message queue and is paused, otherwise you have problems with the thing that needs to handle replies having disappeared).
For this specific case, I know that I need precisely one weak reference to each object (and I know where it is - in an array in the heap stash), so I can simply iterate over the array once replacing each object pointer with a bare pointer (the heapptr value for the object), then invoke the GC twice, and in the finalizer for the object have it replace the value in the array with undef.  Finally, iterate over the array again, remove any undef values and replace each pointer value with a heapptr.
You can implement something more general entirely with the current code by making sure that your WeakMap objects are all visible from somewhere and periodically (e.g. on each 100th insertion or removal into a map) doing the same trick, but wrapping the finalizer of the objects in the maps with one that removes it.
Ideally, this would be integrated with the GC.  The simplest method is to add a weak ref count for each object and, once its strong ref count reaches 0 run its finalizer (and remove all of its properties) but don't actually delete it.  On each get prop of a weak property, check the strong ref count and if it's zero then remove the reference (you also need to increment it to make sure that you materialise a strong reference from the weak one and temporary refs still count as valid) and decrement the weak ref count, then finally delete the object once the weak ref count.
When tracing, you'd need to have some mechanism for having references that aren't followed.  I don't have strong feelings about whether that should be at per-object or per-property granularity.
I'd recommend against exposing the refcount via the public API.  Objective-C made this mistake and it's been quite problematic as we've tried to add better memory management to the language.  Accessing the refcount is now deprecated.

Thinking about the discussion that ended at https://github.com/svaarala/duktape/pull/982#issuecomment-264607953, it occurs to me that internally, what is needed to support WeakMap in particular isn't really weak references but some kind of system of "half references".  That is:

If the WeakMap and key are alive, the value is reachable and so must be kept alive
If either one of the key or WeakMap is collected, the value is by definition no longer reachable and can be collected too

So if both "half references" are alive it amounts to a strong reference but if either one is severed, the other becomes a weak reference and doesn't prevent garbage collection.  I can't think of any other way to feasibly implement the required GC semantics.

Just generally speaking key, value, or both could be weak references (not talking about ES6 here), see e.g. https://www.lua.org/pil/17.html.
With a more practical view, the weak references prototype which I implemented a while ago basically integrated into mark-and-sweep:

Weak keys/values would not be marked reachable based on being present in a weak reference position alone. So if no strong references exist, the mark phase would leave the weakly referenced objects marked "unreachable".
In the sweep phase, any unreachable object would be removed, and all weak references to them removed. This allows, for example, removing of a strongly referenced key from a property table when the corresponding value is removed. This requires scanning of property tables in the sweep phase.

The downside of this approach is that it's only driven by mark-and-sweep so the semantics can't be made snappy. But that's also good in some ways: it allows the weakly referenced value to (usually) stick around a while and maybe be reused.
For caching (again speaking generally, outside of ES6) there are several variants of weak references; for example, one might want to postpone collection until an emergency GC happened so that a cached object (perhaps expensive to recreate) could be reused whenever possible. This is fine for fixed memory pools, but not necessarily the best approach when sharing the same allocator functions with other application code.
So there's definitely a lot of small details to figure out.

While it's probably preferable to rely on the standard ES6 WeakMap and WeakSet APIs instead of custom data structures (as in the weak reference prototype), having fine grained control over the weak reference behavior at least in the C API might be useful.
Memory management is somewhat of a special case compared to other features: non-standard features like finalizers may be very useful even if not required or supported by the standard (so few would argue that finalizers shouldn't be supported because they're non-standard). Memory management is mostly abstracted outside the standard text on purpose, and contexts vary a great deal in how memory needs to be managed.

Yeah, I was just referring to (what I perceived as) the GC requirements for ES6 WeakMap specifically.  For an object which is stored solely in a WeakMap, it is reachable if and only if both the map and key are reachable.  The key is weakly referenced by the WeakMap, but the value (conceptually) has a strong reference which is "split" between both the containing map and the associated key.  I just thought that was interesting is all. :)

@fatcerberus: So basically WeakMap entries are (weak key, strong value) pairs, where GCing the key removes the whole pair?

@fatcerberus I think that's quite common for weak references that reside in maps / property tables? In essence, the entry is collected as a unit. Or from another viewpoint, when the weak reference in the entry gets collected, the entry is scrubbed because it no longer needs to exist. This may then cause the strongly referenced part of the entry to get collected too (or not, if there are references elsewhere).

I find it interesting because I'm used to thinking of references in binary terms; that is, reference is either weak (0) or strong (1).  But that doesn't work for thinking about weak maps, because you can cause a stored object to become unreachable in two ways:

weakmap = null;
keyObj = null;

Thus the reference graph conceptually looks something like:
map    key
 |      |
0.5r  0.5r
 v      v
  value

Reachability index for 'value':
1.0r (reachable)

Neither reference can be purely strong because that might prevent timely collection (depending on object lifetimes); but neither can they be purely weak because then the object might be collected prematurely.  So it's an interesting situation from an implementation perspective.
By the way, I apologize if I'm being annoying here; I just find the theory behind garbage collectors very interesting for whatever reason. :)

By the way, I apologize if I'm being annoying here; I just find the theory behind garbage collectors very interesting for whatever reason. :)

Not at all - it's quite relevant discussion for understanding what Duktape needs to do.
One way to think about this conceptually is that the map entry is a (just conceptually) an object itself. The object can react to a weak key/value being collected by deleting itself from the map.

One way to think about this conceptually is that the map entry is a (just conceptually) an object itself. The object can react to a weak key/value being collected by deleting itself from the map.

Hm, I guess that works.  The value is strongly referenced by the entry, which is strongly referenced by the map, but the key is only weakly referenced, so that it can be collected if not needed anywhere else.  If it is, the entry then deletes itself automatically, making the value eligible for collection.
Of course that's all conceptual: As far as the concrete implementation goes, the "partial reference" setup described above seems to be the most feasible to me (maybe I'm just not using my imagination enough though).  It might become a performance issue if Duktape had to go through every WeakMap/Set looking for collected keys on every GC cycle :)

Actually like I described above, the mark-and-sweep approach pretty much works like the conceptual algorithm: when a weakly referenced object is ready for collection, it is "purged" from whatever maps reference it before being freed. Of course there are several variations on how to do that but the basic approach is like this.

Note that Duktape needs to walk every property table on every mark-and-sweep regardless of weak references. It's then just a matter of doing it again in the sweep cycle - preferably with a fast path which avoids the process if not weak objects are collected. For example, start sweeping and if a weakly referenced object is about to be swept, then purge all objects from any weak references (not just the one encountered) and then finish the sweep phase.
But there are of course many variations to this approach. One approach is to leave the objects in place and sweep them in the next mark cycle unless someone made a strong reference to them again. How to detect that efficiently has some practical questions of course. Another is to leave them in place but ignore the property entries if they're looked up (i.e. pretend they don't exist) and collect them in the next mark cycle.

Anyway, it occurs to me that duk_get_heapptr() is already a kind of weak reference, the only problem is that it's unsafe (if the object gets collected, it's just a dangling pointer).  It might be possible to piggyback on the mark-and-sweep algorithm to determine whether a heap allocation is still valid; the only problem is if the allocator reuses the same address for a new object (which may happen especially with pool allocators).  So we obviously couldn't use bare pointers in a true weak reference API.

I'm not sure if the terminology is 100% standardized but Duktape internals use the term "borrowed reference" for duk_get_heapptr(). It's not a weak reference as such because the reference is entirely invisible to Duktape. At least I would expect a weak reference to be visible to the GC and have some special handling.

It might be possible to piggyback on the mark-and-sweep algorithm to determine whether a heap allocation is still valid.

This is IMO very much infeasible in practice exactly because you would need to guarantee that the address is not reused, potentially indefinitely, which essentially means that the memory can never be freed safely.

Hm, I guess the only special handling would be "if you have a weak reference and try to use it after the referenced object is otherwise unreachable, you get an error".  Borrowed references are kind of the same thing--it's just that the error is "segfaulting your application" :)
I'm not sure what special handling is needed beyond that in the general case (for weak maps, etc. of course you have the automatic scrubbing and such, but I'm talking about the basic "weak reference" primitive itself).
Regarding this:

This is IMO very much infeasible in practice exactly because you would need to guarantee that the address is not reused, potentially indefinitely, which essentially means that the memory can never be freed safely.

Yes, I agree.  You can't use bare pointers to implement real weak references in the C API - you'd need some sort of handle system instead.

So we obviously couldn't use bare pointers in a true weak reference API.

The minimal baseline would be implementing the ES6 WeakMap/WeakSet, and implementing a similar C API. In those APIs the references themselves would be held by the data structures and you wouldn't hold a weak reference yourself. For example, when you look up a weakly referenced value, the lookup result becomes strongly referenced until you're done with it and the value stack entry is unwound.
So I wasn't thinking about implementing any weak reference C type at least initially. But I'm probably not understanding your use case? Do you mean something like duk_get_heapptr() but with some sort of notification when the value goes unreachable?

but I'm talking about the basic "weak reference" primitive itself [...]

This part I didn't understand - just implementing ES6 WeakMap/WeakSet doesn't lead to any need for a weak reference primitive. The weak references are only held inside the WeakMap/WeakSet data structures and the GC is aware of them. Whenever a weakly referenced value is read from the map/set, it becomes strongly referenced while it is being handled by script or C code. This is how weak references work for ES6 script code too.
But I think you're referring to some generic weak reference concept beyond the specific weak reference data structures?

I'm mostly thinking about how weak references would be implemented internally, so not any specific use case other than "how to implement this in Duktape".

As for the talk of a weak reference "primitive", I'm mostly thinking of C#'s WeakReference:
https://msdn.microsoft.com/en-us/library/system.weakreference(v=vs.110).aspx
If you try to access the weakly referenced object after it's been GC'd, you throw an error.
Ecmascript doesn't have any analogue to this.  You have WeakSet, for which you can ask "does my object exist in this set?" and WeakMap, "what value is associated with this object"?  There's no way for Ecmascript code to actually hold a weak reference.  However, Duktape, at least internally, would need to have such a concept I think.

Internally the most likely implementation is along the lines of the mark-and-sweep weak-reference prototype (https://github.com/svaarala/duktape/tree/weak-references): the GC would be aware of WeakMap and WeakSet specifically, and know how to treat the keys and values (weak or strong). There wouldn't be a separate weak reference value: weak references only really make sense in some container that knows how to deal with them.
It might be possible to add some kind of weak reference type with callback registration and such, but it would be quite inefficient for WeakMap/WeakSet entries to be individually tracked weak references as opposed to the whole data structure being specifically designed for weak references.
Here's the relatively old weak references prototype: https://github.com/svaarala/duktape/tree/weak-references. That doesn't implement WeakSet/WeakMap but just demonstrated how weak references would be handled by GC. In the branch each duk_hobject can be marked weak, using Duktape.weak() or duk_set_weak().

There's no way for Ecmascript code to actually hold a weak reference. However, Duktape, at least internally, would need to have such a concept I think.

It's not necessary in the mark-and-sweep approach. The data structures would just reference e.g. duk_hstrings and duk_hobjects. Code that looks up the values just copies the reference, does an INCREF on the value, and the value is then strongly reachable. The only places aware of the weakness are the map operations and GC, but these operations automatically know they're dealing with a weak structure and the references themselves in the C data structures don't need to be marked or "wrapped" specifically.

The prototype branch https://github.com/svaarala/duktape/compare/weak-references should make it clearer how the mark-and-sweep approach basically works -- it's a mostly functional prototype but doesn't implement the WeakSet / WeakMap API but rather allows any duk_hobject to be made weak using Duktape.weak() or duk_set_weak().
I'm not suggesting that as a solution baseline as such (it's better to implement WeakMap and WeakSet directly), but the mark-and-sweep technique should be applicable more or less as is.

I think that C#'s WeakReference would more or less map to a WeakMap with a single element? Having a data structure for holding just a single reference might be useful, but it's not a good building block to implement a map with many references (mainly because of the overhead such an approach carries).

I'm no C# expert but I guess with WeakReference you also don't directly hold a weak reference?
Rather, you hold a strong reference to the WeakReference object, which holds the weak reference for you and provides a get/set API for it. This is the same situation as with a WeakMap / WeakSet: strong reference to the holder data structure, and internal weak references that you access through an API.

I think that C#'s WeakReference would more or less map to a WeakMap with a single element?

No, because you can't enumerate the keys of a WeakMap.  A WeakMap maps a key to a value - but you need to have a (strong) reference to the key to access the entry at all.  WeakReference gives you direct access to the object (through weakref.Target) as long as it remains reachable.

So how would that differ from using a WeakMap with a fixed, globally known key?

That's easy: fixedKnownKey=>value is a strong reference.  Only the key is weakly referenced.

Ok, I see what you mean.

As described in ES6+, WeakMap is useful for associating global state with an object without preventing the object from being garbage collected.  They're not all that useful for, e.g. caching because the cached value itself is strongly referenced by the map.
note: WeakSet is effectively just a WeakMap which maps the keys to true/false (i.e. does it exist in the set or not?)

But in any case, the basic approach I think makes most sense is to:

Implement WeakSet / WeakMap directly as a first class internal data structure and make GC aware of it. This makes them footprint efficient and as efficiently managed as possible, at the cost of not having an efficient data structure for a single weak reference. This is basically what the weak-references branch does in a different form.
Add a C API to create WeakSet / WeakMap objects, and maybe shorthand API calls to query them (instead of doing actual method calls).

I'm quite sure that the ES2015 semantics as is won't work for all (or even most) use cases because memory management is a very target specific thing. So if it makes sense, I'd like to:

Provide more weak reference control in the C API beyond standard WeakMap and WeakSet (similarly to how finalizers are a custom feature, but still useful).
For example, being able to create a WeakMap with strong keys and weak values would be relatively straightforward for the GC to handle, and useful in some scenarios.
Also being able to control how eagerly weak references are collected is sometimes useful. For example, when using a pool allocator (that can't "rob" other parts of the system from useful memory) cache structures can hold on to references indefinitely unless an emergency GC kicks in. This is very useful compared to weak references being collected on every mark-and-sweep cycle.

Adding support for non-standard types like WeakReference seems a bit more uncomfortable, but if there's a really good use case for them, I wouldn't object to that.
Like I said above, I think memory management is one of those areas where custom C features (like finalizer support) may be useful even if it's not mandated in the specification. It's an area which the specification cannot really address in depth because it's so environment specific.

So, you do understand why I said heap pointers are effectively weak references now, yes?  They map pretty closely to C# WeakReference, with the caveat that instead of throwing a catchable error, they are completely unsafe and may crash or corrupt your application if you access them postmortem ;-)

I still see them as "borrowed references" because the crucial difference is that GC is entirely unaware of them. For a reference to be weak, GC must necessarily be very much aware of its existence and deal with it specifically.

Borrowed references are of course similar to weak references in that they don't involve a reference count bump. But the similarity ends there becaues of GC involvement, which really is the defining feature of weak references IMO.

@fatcerberus I can try to update that weak-references branch to provide a very rough implementation of WeakMap, maybe next week. It might be more useful to discuss these issues with some running code.

I did look at that prototype by the way - it's actually a bit different from WeakMap because the keys are strings (or Symbols) and the values are weak references.  WeakMap is the opposite (weak key, strong value).  So it's a lot closer to the use case for WeakReference than any of the ES6 types.

Sure, it's different - but the mark-and-sweep technique is the same. That's the part I've been referring to.

Ah, okay.  I'll shut up then, I understand now. :)

To elaborate a bit on the mark-and-sweep technique, it should be relatively easy to support weak keys, weak values, and weak keys+values simply by how the keys/values are marked. It's just a matter what positions are marked or not.
To support weak references that are collected only by emergency GC it might be possible just to treat such references as strong references when emergency GC flag is not set (so they won't be collected) and as weak references when the GC flag is set. This would allow useful cache structures to be built with very few GC changes.

One dependency that's been affecting this work a bit is the necessary data structure changes. Maps accept arbitrary keys and values (duk_tval key, duk_tval value) while WeakMaps only accept object keys (duk_hobject *key, duk_tval value). Similarly for Sets and WeakSets. In the current tagged type model each key/value type pair creates essentially a different structure with respect to memory layout and how the data structure is handled; nothing really difficult, but still some trivia to deal with.
I've been experimenting a bit with using tagged pointers (void *) for the duk_tval representation. In essence all values, both heap allocated and primitive, would be tagged pointers. This has a footprint and performance benefits (more natural to pass by value, etc); but also downsides like IEEE doubles becoming heap allocated. Earlier I rejected tagged pointers because of the IEEE double issue, but with Float64Array providing a fast way to manipulate IEEE double data sets (and integers being most common otherwise) it's now a potentially good option.
Coming back to weak references - one upside of tagged pointers is that both Map and WeakMap would then have (void *, void *) keys and values. The only difference is that WeakMap keys would be restricted to duk_hobject pointers whereas Map allows all pointer (and non-pointer) types. This needs some special handling, but as far as allocations, resizing, etc go, WeakMap can be treated as just a restricted Map without any footprint cost. The data structures, their resize algorithms, etc, could then be shared more naturally.
This is not of course a blocker as such, but as always it's nice to try to find an order of implementing things that minimizes mind-numbing rework ;-)

Heap-allocating doubles might have performance issues for number-heavy JS code though, unless you pool them.  Also it might become necessary to have some sort of "interning" for numbers just like for strings...
Maybe I'm completely off base with the above though, I have no idea what exactly you have in mind.

In a tagged pointer model each IEEE double is a pointer + a bare 8-byte allocation (assuming doubles are not interned which I think is not worth the hassle and also prevents some optimizations). On a 64-bit system that's 8+8=16 bytes - same as a duk_tval currently, not accounting for allocation overhead. For low memory targets where memory matters, zero-overhead allocators are common so it comes out 1:1 footprint-wise for doubles, and 50% savings for other types (8 bytes vs. 16 bytes).
For a 32-bit system there's a difference, 4+8=12 bytes for an IEEE double vs. 8 bytes for duk_tval. However, if you have an IEEE double and just one other value (say a true boolean) you'll come out even: 4+8+4=16 vs. 2x8=16 bytes. So unless the tagged values being passed around represent over 50% of all tagged values (which I would argue is quite uncommon -- though of course possible in specific cases), there's always a net savings in footprint. For non-double types there's a 50% saving in footprint (4 bytes vs. 8 bytes).
There's certainly a small performance issue for heap-allocated doubles because creating new result values involves an allocation. Sometimes that can be avoided, e.g. when adding a number to a number in a VM register, the same allocation can be reused. Same thing for writing to an array index which already contains a double. These reuse possibilities are quite common for number heavy code which operates with doubles "in place". But, even when reusing the storage location there's a small cost in the pointer indirection for the storage location.
But like almost always in design, it's not really a question if A is always better than B, but which trade-offs are better for most practical applications. For the duk_tval representation, if performance is improved for non-double operations (including integers, and all other non-double types), are there enough double operations to make the net situation worse? Applications will certainly behave differently in this respect, and that's to be expected for nearly all design decisions.
Initial performance testing seems to indicate it's a mixed bag: many cases are improved, but number heavy cases like Mandelbrot calculation are slowed down. Whether that trade-off makes sense is ultimately arbitrary and the "right" choice depends on what application types one favors. I'm considering taking the trade-off because the upsides (smaller footprint, better performance for everything but double heavy code) may be worth the downsides (worse behavior for double heavy code).
But don't worry, I won't be merging this kind of change without measuring carefully :-) I'm also trying to see if I can preseve the union duk_tval as the other option because it involves the least assumptions about the target and is thus maximally portable. Tagged pointers will assume align-by-8 for allocations which is not always the case and needs some additional massaging to work out right by default.

I was mostly concerned about performance because my own experience has been, on desktop platforms using standard malloc(), doing many alloc/free cycles in a tight loop, regardless of allocation size, is very bad for performance.  Fragmentation is sometimes a concern as well, but not so much here because we're only talking about small 8-byte allocations.
It's also worth noting that in Ecmascript, all numbers are doubles by definition, so things you might do with integers in C will actually be done with doubles in JS.  Fastints can mitigate that somewhat, but you still pay for the fastint checks.
Anyway, we should continue this discussion elsewhere because it's way off the original topic of weak references. :)

It's also worth noting that in Ecmascript, all numbers are doubles by definition, so things you might do with integers in C will actually be done with doubles in JS.

Right, but to be precise, the specification only requires that things work as if IEEE doubles were used. Many engines (at least V8) have specific fast paths for integers for footprint and/or performance reasons (or perhaps because they're using tagged pointers).
So what really matters is what specific numbers application code works with, and what the frequency for integers vs. non-integers are. I think if you look at most Ecmascript code, you'll find a lot of loop counters, count fields, millisecond (integer) timeout fields, etc. This is actually why fastints were originally implemented, and why they are (usually) a net performance win.

Fastints can mitigate that somewhat, but you still pay for the fastint checks.

Even with the overhead fastints are a clear net performance win even on modern x86/x64 platforms, at least in my measurements. I'm sure one can find a specific application where that's not the case, but even IEEE double heavy code tends to involve loop counters, for example.

Anyway, we should continue this discussion elsewhere because it's way off the original topic of weak references. :)

Strongly agree :)

It seems that there's a Stage 1 proposal to add a WeakReference type to Ecmascript:
https://github.com/tc39/proposal-weakrefs
So, just something to keep in mind when implementing weak reference support.

Thanks, one more piece to the puzzle.


The file ITKConfigVersion.cmake and ITKConfig.cmake of ITK 4.13.1 still indicate the version 4.13.0

The file ITKConfigVersion.cmake of ITK 4.13.1 still indicate the version 4.13.0. In the CMakeLists.txt file at the root of the source directory, the version number is defined two times.
Versions
4.13.1
Environment
Visual studio 2017
Windows 10

@Siron777 Thanks for the report. This has been fixed in https://github.com/InsightSoftwareConsortium/ITK/commit/dcab5c04e19781b4843bd6eeb7d9ea3a5f77e6a9
It will be released in ITK 4.13.2.


not reponding

Describe your problem here.

its not responding some one help me please
Are you modding a build from source or with Lua?
Lua
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
idk

more info pls. we dont know how to fix your issue if info is insufficient

0.5.1 is not responding for some reason

on 64bit

That's barely any info, what are your specs, where does it freeze, is it consistent or only sometimes, literally describe what's actually happening. you also didn't answer if this build has any modifications


Isn't working with TinyPICO with mono DAC output.

As the header describes, I'm trying to use this on a TinyPICO (ESP32-PICO-D4) with the TinyPICO Audio Shield.
The TinyPICO Audio Shield only uses one of the two DAC outputs, so it is a mono amplifier.
I don't know if that has anything to do with why this isn't working, but I'm getting no audio. The only thing I can hear is crackling which does not correspond to the audio I'm trying to play at all. The device does show up and connect on my phone.
To be clear, I'm only trying to use the provided example with internal DAC output. I tried the I2S example as well just for kicks, and in that case, I was able to hear a difference when audio was paused and unpaused, but it is still (obviously in this case) just static.

For added clarity, the DAC pin in use is Pin 25.

https://github.com/pschatzmann/ESP32-A2DP/issues/76
I see you addressed mono in the issue above but I'm afraid I don't know how to implement your method. Could you provide an example? Perhaps of how it would be added to your bt_music_receiver_to_dac example?

I suggest to split up the problem and to

try to figure out if my library works:  just use the the bt_music_receiver_to_dac example and test with some earphones using GND and GPIO25 or GPIO26.

audio shield: As far as I can see the TinyPICO Audio Shield  is not using I2S but it's own audio interface. So you would need to provide your own implementation by getting the data as described in 'Accessing the Sink Data Stream with Callbacks'

I also would suggest to set the Core Debug Level setting to Verbose just to get more logging info

I think I have it working again: the communication format needs to be I2S_COMM_FORMAT_STAND_MSB
The corrections have been committed to the main branch...

I tried it. I can definitely hear the audio deep in the background for the first time but it's overpowered by a sin wave like beeping sound (difficult to explain).


Pagination, orderBy with querybuilder

entity:
@Entity({ tableName: 'departaments' })
export class Departament {
  @PrimaryKey()
  public readonly id: string;
  @Property()
  @Unique({ name: 'name' })
  public departament_name: string;
  @OneToMany(() => Employee, employee => employee.departament)
  public employees = new Collection<Employee>(this);
  @Property()
  public createdAt = new Date();
  @Property({ onUpdate: () => new Date() })
  public updatedAt = new Date();
  @Property()
  public deletedAt?: Date;
  constructor(departament_name: string, id?: string) {
    if (!id) this.id = v4();
    this.departament_name = departament_name;
  }
  static build = (departament_name: string, id?: string): Departament => {
    const isValidUUID = id ? validate(id) : null;
    if (isValidUUID === false) throw new Error(`Invalid UUID V4`);
    if (!isString(departament_name))
      throw new Error(`name expect a string type`);
    return new Departament(departament_name, id);
  };
}

function:
public all = async (pagination: Pagination): Promise<Departament[]> => {
   const qb = await this.em.createQueryBuilder(Departament);
   qb.select('*')
     .limit(pagination.perPage())
     .offset(pagination.offset())
     .orderBy("created_at", "desc")
   const departaments = await qb.getResult();
   console.log(departaments)
   return departaments;
 };

i got this error on orderBy:
"select \"e0\".* from \"departaments\" as \"e0\" order by 0 c, 1 r, 2 e, 3 a, 4 t, 5 e, 6 d, 7 _, 8 a, 9 t limit 10 - syntax error at or near \"c\""
if i use groupBy, is ok, but orderBy got this error...
is possible pagination without qb?

I solved it with this:
    const res:Departament[] = await this.em.find(
      Departament,
      {},
      {
        orderBy: { createdAt: QueryOrder.ASC},
        offset: pagination.offset(),
        limit: pagination.perPage(),
        flags: [QueryFlag.PAGINATE],
      },
      ['employees']
    );
    for(let dep of res){
      await dep.employees.init()
    }
    console.log(res)

but there was a doubt about the populates, there are many employees to one departments, and I would like to know if there is a simpler way to load all the employees in the department, without needing 2 queries?
I tried ['employees'] but it is not initialized I have to use the init that generates two queries:
[query] select "e0".* from "departaments" as "e0" where "e0"."id" in (select "e0"."id" from (select "e0"."id" from (select "e0"."id" from "departaments" as "e0" order by "e0"."created_at" asc) as "e0" group by "e0"."id" limit 10) as "e0") order by "e0"."created_at" asc [took 3 ms]
[query] select "e0".*, "e1"."id" as "user_id" from "employees" as "e0" left join "users" as "e1" on "e0"."id" = "e1"."id" where "e0"."departament_id" = '8b87c2c0-b824-4145-bc41-92e6d62e384b' order by "e0"."id" asc [took 2 ms]

You must be using some very weird typescript config or badly typed EM or something like that, as your code would never even compile under strict mode. The qb.orderBy method has different signature, it has only one parameter and it needs to be object. Also it needs to be object with property keys, not column names - so createdBy, not created_by.
Your second try is also wrong call, it should look like this:
const res:Departament[] = await this.em.find(
  Departament,
  {},
  {
    orderBy: { createdAt: QueryOrder.ASC},
    offset: pagination.offset(),
    limit: pagination.perPage(),
    flags: [QueryFlag.PAGINATE],
    populate: ['employees'],
  },
);


[Key Vault Admin] Tests

Tests for the Key Vault Admin clients.
This PR will fail until these PRs are merged:

~[Key Vault Admin] Convenience layer - KeyVaultAccessControlClient #10815~ Merged.
~[Key Vault Admin] Convenience layer - KeyVaultBackupClient #11009~ Merged.
~[Key Vault Admin] Recordings #11042~ Merged.
~[Key Vault Admin] No LROs on the generated code for now #11008~ Merged.

For: https://github.com/Azure/azure-sdk-for-js/issues/10799

Thank you, @deyaaeldeen , for the review 🙌♥


Deploy multiple nextcloud replicas with RollingUpdate and RWX volume once upstream NFS issue is solved

https://github.com/cloudlane-one/k8s-cloud/blob/a73536647bfb651d97b29edc272c67e070d22847/charts/cloud-stack/templates/nextcloud.yaml#L86

It could very well be that Nextcloud just needs even longer setup time (>10 min) when deployed with RWX volumes.

Also depends on #115


Add NATS publisher support to reminder

Summary
Provide a brief overview of the changes and the issue being addressed.
Explain the rationale and any background necessary for understanding the changes.
List dependencies required by this change, if any.
Add NATS as an option for reminder to publish events.
Change Type
Mark the type of change your PR introduces:

[ ] Bug fix (resolves an issue without affecting existing features)
[x] Feature (adds new functionality without breaking changes)
[ ] Breaking change (may impact existing functionalities or require documentation updates)
[ ] Documentation (updates or additions to documentation)
[ ] Refactoring or test improvements (no bug fixes or new functionality)

Testing
Outline how the changes were tested, including steps to reproduce and any relevant configurations.
Attach screenshots if helpful.
Tested locally, working fine (nats stream view output):
...
[269] Subject: minder.internal.repo.reconciler.event Received: 1970-01-01T05:30:02+05:30

  ce-source: minder
  ce-specversion: 1.0
  ce-subject: TODO
  ce-type: minder.internal.repo.reconciler.event
  ce-datacontenttype: application/json
  ce-id: 36f8fc06-6b36-48e8-ad92-3cde66759a13
  ce-minderpublished0at: 2024-10-26T18:39:07Z

{"entity_id":"ca6f63c7-672b-4906-ae2d-ce050cd0b6bc","project":"f6bf23d3-ace6-4652-b858-8f9addf7bea5","provider":"a3c63545-59d7-4d46-9a4c-5028876ad236"}

...

Review Checklist:

[x] Reviewed my own code for quality and clarity.
[ ] Added comments to complex or tricky code sections.
[ ] Updated any affected documentation.
[ ] Included tests that validate the fix or feature.
[ ] Checked that related changes are merged.

Sorry for the delay on this @evankanderson. Please ignore the failing CI, that's not the main point. I'm confused between how to refactor this properly, because there isn't any easy and good way imo, in all approaches, we either have some duplication or break some pattern (unless we refactor a lot of code in serverconfig and internal/events/events.go).
Three problems right now:

Where to move NatsConfig?
Changing signature of BuildNatsChannelDriver?
Should we move reminderconfig to the serverconfig section?

Importing serverconfig.EventConfig directly made things simpler (although the init code does things not required by reminder, but it gets the job done). CI failure is the golang net CVE. I also added simple checking for not selecting the unsupported driver.


fix: 26505 Losing focus on the amount input field when switching between apps

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/26505
PROPOSAL: https://github.com/Expensify/App/issues/26505#issuecomment-1712818332
Tests

web/mweb/desktop

Open app in fullscreen view
Tap on FAB
Tap on Request money or Split bill
Switch to other app by swiping with 3 fingers gesture (do not use comant +tab)
Open back the New Expensify app by swiping with 3 fingers gesture (do not use comant +tab)
Press any number keys on the keyboard
Verify that the amount input should be focused when user switched back to the app

native

Open app
Tap on FAB
Tap on Request money or Split bill
Minimize app
Open app again
Verify that the amount input should be blurred when users opened back to the app, and it's focused when they press the big number button

[x] Verify that no errors appear in the JS console

Offline tests

Same as above
QA Steps

web/mweb/desktop

Open app in fullscreen view
Tap on FAB
Tap on Request money or Split bill
Switch to other app by swiping with 3 fingers gesture (do not use comant +tab)
Open back the New Expensify app by swiping with 3 fingers gesture (do not use comant +tab)
Press any number keys on the keyboard
Verify that the amount input should be focused when user switched back to the app

native

Open app
Tap on FAB
Tap on Request money or Split bill
Minimize app
Open app again
Verify that the amount input should be blurred when users opened back to the app, and it's focused when they press the big number button

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

https://github.com/Expensify/App/assets/113963320/3a229609-6f4b-4f54-9c38-73bdbdcb42e5

Mobile Web - Chrome

https://github.com/Expensify/App/assets/113963320/8f213fbd-aaae-4f40-8430-1cc7cb40b490

Mobile Web - Safari

https://github.com/Expensify/App/assets/113963320/847c3157-a6ab-411f-ab82-db2dbd330fa2

Desktop

https://github.com/Expensify/App/assets/113963320/f2e340ef-984c-4117-8154-6aa339225f3a

iOS

https://github.com/Expensify/App/assets/113963320/b2195ebb-3a45-4e10-8ddb-e3e524430b41

Android

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

I've tested it on latest main and the input will not be focused when we come back from another app.

Huh, I distinctly remember testing this yesterday and it was focused, but you are correct, it isn't in prod. I think what happened is I was testing in DEV, and since native platforms are painfully slow, it was still focused when I came back to the app (background handler didn't kick in at that point and didn't blur the input). Apologies for the confusion

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/thienlnam in version: 1.3.73-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/mountiny in version: 1.3.73-1 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/thienlnam in version: 1.3.74-0 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/chiragsalian in version: 1.3.74-3 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


bump to stripe-go version containing StringSlice

I added StringSlice to stripe-go, use it here

That's really neat, thanks!


[Makefile] the issues of make docs-build

Tracking some issues I found when make docs-build
issue 1:
Error msg:
hack/website/test-build.sh: 20: hack/website/test-build.sh: source: not found

Reason: In my linux machine(ubuntu 18.04), /bin/sh is the symbolic of /bin/dash having no source builtin command
How to fix: replace sh of sh hack/website/test-build.sh  to bash.
issue 2:
When kustomize/node/yarn command are missed, add some hints or install-links-or-commands wouble be more friendly for new-learners.
issue 3:
Error msg:
Error: Docs markdown link couldn't be resolved: (vela_system.md) in /root/kubevela/git-page/docs/cli/vela_system_cue-packages.md for version current
    at Array.forEach (<anonymous>)
Error: Docs markdown link couldn't be resolved: (vela_system.md) in /root/kubevela/git-page/docs/cli/vela_system_live-diff.md for version current
    at Array.forEach (<anonymous>)
Client bundle compiled with errors therefore further build is impossible.

Reason:
vela_system_live-diff.md as said in this one doc
How to fix:

add python3 ./hack/website/clean-md.py ./docs/en in docs-build target before bash hack/website/test-build.sh as done in https://github.com/oam-dev/kubevela/blob/master/.github/workflows/check-docs.yml#L21
Or fix the master files to remove .md suffix?

issue 4:
make docs server host(default <IP_ADDRESS>)/port(3000) configurable especially host, since in general linux os has no browser.
How:  read some envs(e.g. HOST/PORT) and modify the start of package.json    "start": "docusaurus start --host <IP_ADDRESS> --port 8000"

Thanks for reporting. All good catches!

In the bash function checkDocusaurus,  [ --d $1 ] should be  [ -d $1 ]
https://github.com/oam-dev/kubevela/blob/a11ae2f95d3f1023e65a6355905da2f6852f7da1/hack/website/helpers.sh#L21


Update linear-gradient syntax from left to to right

Fixes #881

Nice, thanks! We also don't need the prefixes anymore.


Add redist function to telepath proxy.

Originally named it dist, but it made all my tests hang.

This feels like an API that would force consumers to be aware they are using a telepath proxy rather than a local object. I try to avoid designs that make that distinction, any reason that calling fire() directly in the proposed use case would not work?

I'll try that out.

I had hoped to end up with a pattern in my application more like
self.core.on(event, self.proxy.dist)

but that doesn't send events over the proxy. My original implementation was more along the lines of:
    def dist(self, event):
        if event[0] in telelocal:
            return s_eventbus.EventBus.dist(self, event)

        # events fired on a proxy go through the remove first...
        job = self.call('dist', event)
        return self.syncjob(job)

But it exploded tests with errors like:
RecursionError: maximum recursion depth exceeded while calling a Python object

I'm just going to run with:
self.core.on(event, lambda evtfo: self.proxy.fire(evtfo[0], **evtfo[1]))

which wastes small cycles unwrapping and rewrapping events.


[Event Request] Codeunit 7324 "Whse.-Activity-Post" – Add Handled Pattern to “OnBeforeCode”

Could you please add the Handled-Pattern to the event [OnBeforeCode] in Codeunit 7324 "Whse.-Activity-Post"?
It would be great if at this point, under certain conditions, we could move on to our own processing.
OLD
    local procedure "Code"()
    var
        TransferOrderPostPrint: Codeunit "TransferOrder-Post + Print";
        ItemTrackingRequired: Boolean;
        Selection: Option " ",Shipment,Receipt;
        ForceDelete: Boolean;
    begin
        OnBeforeCode(WhseActivLine, SuppressCommit);

        GetPostingReference();
        ...
        ...

NEW
    local procedure "Code"()
    var
        TransferOrderPostPrint: Codeunit "TransferOrder-Post + Print";
        ItemTrackingRequired: Boolean;
        Selection: Option " ",Shipment,Receipt;
        ForceDelete: Boolean;
    begin
        IsHandled := false;
        OnBeforeCode(WhseActivLine, SuppressCommit, IsHandled);
        IF IsHandled then
            exit;

        GetPostingReference();
        ...
        ...

    local procedure OnBeforeCode(var WarehouseActivityLine: Record "Warehouse Activity Line"; var SuppressCommit: Boolean; var IsHandled: Boolean)
    begin
    end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


What is Bollinger SubChannels ?

I don't see any reference on internet regarding this indicator. How is it calculated ?

Find the answer to your question in the Layers page of the Wiki.

Thanks ! @julian-molina


Crashes reading a large file

I am assuming this is the project behind the wonderful thing I found yesterday that lets me browse hdf5 files in jupyterlab? It looks fantastic. I wish I could figure out how to select x and y axes for a plot? I always see data versus point number. The rest of the message is a bug report for how I seem to have broke something already (sorry!) :
Describe the bug
jupyterlab crashes when reading large dataset, perhaps an out of memory error?
To Reproduce
1 - Log into jupyter-slurm.esrf.fr with one single core and the lab interface
2 - Navigate to open : /data/id11/nanoscope/blc12407/id11/CeO2_38keV/CeO2_38keV_CeO2_rotation/CeO2_38keV_CeO2_rotation.h5
3 - open dataset /1.1/measurement/eiger : it displays
4 - open dataset /1.1/measurement/fpico6 : it displays
5 - go back to /1.1/measurement/eiger : jupyterlab stops running
6 - all the other tabs and kernels appear to exit when jupyterlab fails
Expected behaviour
In the worst case, a plugin would crash without taking down all of the other kernels. Ideally it would not crash.
Is there  a way to use hdf5 slice operations (maybe combined with fast histograms) so you only hold in memory what is going to be displayed on the screen (e.g. maximum data is a 2D image)? Then libhdf5 should manage the memory cache in some sensible way.
Context

OS: ubuntu20.04
Browser: Chrome
Version: 94.0.4606.81
JupyterLab version: 2.3.1 (ESRF slurm installation

Extension lists
This is based on a bit of guesswork as to what is actually running when I use jupyter-slurm :

jupyter-slurm:~ % /scisoft/users/jupyter/jupy38ubuntu/bin/jupyter labextension list
JupyterLab v2.3.1
Known labextensions:
   app dir: /home/esrf/jupyter/jupy38ubuntu/share/jupyter/lab
        @jupyter-widgets/jupyterlab-manager v2.0.0  enabled  OK
        jupyter-matplotlib v0.7.4  enabled  OK
        jupyter-threejs v2.2.0  enabled  OK
        jupyterlab-datawidgets v6.3.0  enabled  OK
        jupyterlab-h5web v0.0.10  enabled  OK
        k3d v2.9.3  enabled  OK
jupyter-slurm:~ % /scisoft/users/jupyter/jupy38ubuntu/bin/jupyter serverextension list
config dir: /home/esrf/jupyter/jupy38ubuntu/etc/jupyter
    jupyterlab_h5web  enabled
    - Validating...
      jupyterlab_h5web  OK
    jupyterlab  enabled
    - Validating...
      jupyterlab 2.3.1 OK
    jupyterlab_hdf  enabled
    - Validating...
      jupyterlab_hdf 0.5.1 OK
    jupyter_nbextensions_configurator  enabled
    - Validating...
      jupyter_nbextensions_configurator 0.4.1 OK

@jonwright thanks for the +ve feedback.
@loichuder thanks for the explanations.  It seems like we are missing a tool to do flexible viewing of Nexus files i.e. selecting what to display against what. AM I right to say that users have to build their own tool with a mixture of h5py and matplotlib for now? Does bragy address this?

This is outside of the scope of Braggy, for sure. It's always possible to make a new GUI for this, but note that a solution to this problem is to generate a NeXus-compliant HDF5 file with external links to the relevant datasets, and then open this file in H5Web. Obviously not as practical as a GUI, but we could easily provide a Python utility to make generating this sort of file a breeze.

There is already some helpers to save NXData: nexusformat or silx.io.nxdata.save_NXdata.
Otherwise since this runs in a notebook, using matplotlib or any other plot library is probably best suited for tailored plots if not saved as NXData.
BTW, in silx view, there is a feature to create "virtual NXData" by dragging and dropping datasets as signal and axes, but to me it is a bit complex since one needs to know about NeXus to use it.

Following on the crash issue, we have something in the works to solve it: https://github.com/silx-kit/h5web/issues/616#issuecomment-982734122
I will close this once this is shipped in a jupyterlab-h5web release.

https://github.com/silx-kit/h5web/issues/616#issuecomment-982734122 was integrated in v0.1.0 that is now deployed in jupyter-slurm.


Windows qt4 builds are failing

See https://github.com/conda-forge/qt-feedstock/pull/25#issuecomment-277495615
(C:\bld\recipe_1486323778895\_b_env) C:\bld\recipe_1486323778895\work\qt-everywhere-opensource-src-4.8.7>set LIB=C:\bld\recipe_1486323778895\_b_env\Library\lib;C:\bld\recipe_1486323778895\_b_env\Library\lib;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\ATLMFC\LIB;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\LIB;C:\Program Files\Microsoft SDKs\Windows\v7.0\lib;
(C:\bld\recipe_1486323778895\_b_env) C:\bld\recipe_1486323778895\work\qt-everywhere-opensource-src-4.8.7>cd qt-everywhere-opensource-src-4.8.7
The system cannot find the path specified.
(C:\bld\recipe_1486323778895\_b_env) C:\bld\recipe_1486323778895\work\qt-everywhere-opensource-src-4.8.7>echo y   | configure.exe -prefix C:\bld\recipe_1486323778895\_b_env\Library                        -libdir C:\bld\recipe_1486323778895\_b_env\Library\lib                        -bindir C:\bld\recipe_1486323778895\_b_env\Library\bin                        -headerdir C:\bld\recipe_1486323778895\_b_env\Library\include\qt                        -datadir C:\bld\recipe_1486323778895\_b_env\Library                        -release                        -shared                        -opensource                        -fast                        -no-qt3support                        -nomake examples                        -nomake demos                        -nomake docs                        -openssl                        -webkit                        -system-zlib                        -system-libpng                        -system-libtiff                        -system-libjpeg
'configure.exe' is not recognized as an internal or external command,
operable program or batch file.

Full log: https://ci.appveyor.com/project/conda-forge/qt-feedstock/build/1.0.46/job/ivbno65k5gylt99e
cc: @gillins

Fixed by https://github.com/conda-forge/qt-feedstock/pull/28


Global binding Edit.GoToFindCombo overridden

In VS2019's default mapping Ctrl-D is still bound to Edit.GoToFindCombo in the Global context, but it has no effect that I can see because Ctrl-D is mapped to Edit.Duplicate in the Text Editor context so change this doc to reflect what actually happens.

@angusgraham : Thanks for your contribution! The author, @gewarren, has been notified to review your proposed change.

@gewarren - I'm unable to resolve the merge conflicts in the GitHub web editor UI for some reason. these will need to be resolved, and you should sign off if this is ready for merge.
thanks.
tagging @angusgraham @kendrahavens

I switched to the Default profile and now Ctrl+D works. I guess it just doesn't work in the Visual C# profile. I'll clone this repo now so I can resolve the conflict.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: angusgraham sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

@angusgraham I'm not sure why it's now asking you to sign the CLA. Have you previously signed it?

#sign-off

@gewarren : Thanks for your contribution! The author, @gewarren, has been notified to review your proposed change.

@angusgraham I'm not sure why it's now asking you to sign the CLA. Have you previously signed it?

Yeah that was weird I thought I had. In any case it's def signed now.


Add email validation and password recovery feature

use Jinja for managing the templates:
https://jinja.palletsprojects.com/en/2.11.x/

Because we are using a restful backend, therefore, we can't rely on any web interface so this is the idea:

There should be an endpoint in our API that accepts username and send a temporary (5 minutes lifetime) short secure number to the user's Email, something like 424861
The user will put this number to the client and the client will send it to the API and if it was expired API will through an error
Otherwise, the API will generate a long temporary token and will send it back as the response of the client
The client will send the new password within the acceptable time window (something like 5 minutes max) to the server alongside the token and username and if the data was valid password will be reset and the desired output will return to the client


Simplify time-service usage

The class time_service was polymorphic before, and "created" by the backend.
The idea was nice, but in reality usage was mixed between the backend and the environment. I tried centralizing it in context but ran into difficulties requiring refactoring in other places, and in the end decided that it just wasn't worth the effort and code complexity:

The backends (all of them) ended up using the default one in the environment (which is why mixing usage worked), so the polymorphism wasn't in use
Its place in environment is really not good, as that's really used for the extrinsics information and we were abusing it

The code is now much simpler and easier to read/write. No weird backend usage in weird places, etc.
Tracked on [LRS-889]

Is it possible that the polymorphism was used in Software Device?

I don't see how... there's no way to set the time-service per device. And I had to touch no code in the software device itself. I had 0 problems removing the polymorphism, and it was only exposed internally, inside librealsense.


fix: Don't send successfull verification result to the Broker if not all interactions are verified

…all interactions are verified

Thanks for the PR! Does this fix #889, or is there still more needed?
I will backport it into the 3.6.x branch.

Actually I was thinking if we need some sort of global aggregation of all the test class with a PactRunner. While this PR prevents false positives, in the case where the verification tests for a PACT are split among different classes (filtered) the verification won’t be considered successful even if it semantically is.

@uglyog What do you think about @aplsup consideration above?
Also, when you reckon we could have a 3.6.8 release?

I have cherry-picked the changes onto the v3.6.x branch.
A global aggregation will work as long as the tests run in the same JVM. If parallel test execution is enabled, then it won't work.

I'll organise a release this weekend


added water intake calculator #182

Issue Id you have worked upon -
#182
Briefly explain your program logic -
The program does the following:

Takes user input for weight, activity level, temperature, gender, and units (kg or lb).
Calculates the baseline water intake based on weight and gender.
Adjusts the intake based on activity level and temperature.
Displays the recommended daily water intake in milliliters (ml).

Screenshots(Attach 2 screenshots of your own input and output) -

By raising this PR I affirm that -

[x] My code follows the guidelines of this project.

[x] I have performed a self-review of my own code.

[x] I have commented my code.

[x] My code gives the correct output.

[x] I affirm that I strictly follow contributing guidelines and code of conduct.

Congratulations 🎉 @tiwari00ayush on your contribution.
Thanks for adding value to this repository. 😊
Let's celebrate this fest 😃 by providing more developers 👨💻👩💻 an opportunity to contribute. Help us make this repository reach far and more by sharing this to your friends and colleagues.
Your efforts can make difference.

Hey 👋, may you also encourage us by clicking the star icon on the repository main page. ⭐

Thank you so much! 😊 I'm glad I could contribute to this repository. 🎉 I will surely add some new contributors to this project. 👨💻👩💻. Star +1 done.


Programmatic Cassandra schema migration

Creating and updating the database schema (cassandra) manually is onerous and error prone. Creating a programmatic method for schema migration would help significantly in reducing human error and improve interaction with continuous build and delivery systems.

This can be done with the Repository.java class now.
Schema creation is automatic and tested.
I'm thinking with migration it's just about versioning the keyspace name and creating a new keyspace whenever there's an incompatible change.
Simple migrations for compatible changes can also be achieved (eg "ALTER TABLE...")


[backport] Support ChainerX in DCGAN example

Backport of #6773

[automatic post] Jenkins, test this please.

Jenkins CI test (for commit<PHONE_NUMBER>754f06972834645e376a13be91183f, target branch v6) failed with status FAILURE.

LGTM


[Feat] Enterprise linux icons

This PR adds OS logos for RockyLinux and AlmaLinux, from Simple Icons
This should close issue #12
For the future:

Images were downloaded as SVGs, and converted into 32x32 PNGs with white item color, via: DEEditor
PNG padding was added to the PNGs, with a padding of 16px, via: OnlinePNGTools

Thanks!


Feat/cu 8689mr819/karina aguirre/location validation  categorization

Pull Request

Location and categorization service
Description

I created the location service using the Mapbox API to calculate the distance between the given location and the store, it was also used to verify that the location belongs within Bolivia, and then categorize it as agreed.
Link To Tasks

Location validaton and categorization
Type of Change

[x] ✨ New feature (non-breaking change which adds functionality)
[ ] 🛠 Bug fix (non-breaking change which fixes an issue)
[ ] ❌ Breaking change (fix or feature that would cause existing functionality
to change)
[ ] 🧹 Code refactor
[ ] ✅ Build configuration change
[ ] 📝 Documentation
[ ] 🗑 Chore

Task linked: CU-8689mr819 Location validation & categorization


Error on mount

It is weird when I run vagrant up,compute1 is fine with exit,but compute2 is always stuck at mount action ,error showed like this:
ERROR: mount[/mnt/instances] (compute_conf::default line 30) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '32'
FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)

@idonotknow thanks for the report. Are you running the stack.sh in controller node when this happened?

@sampathP no,just when I run vagrant up,it said that chef did not successfully complete. The whole process failed before ssh to each vm.


Names for tp-link switches all show as unnamed_device

Make sure you are running the latest version of Home Assistant before reporting an issue.
You should only file an issue if you found a bug. Feature and enhancement requests should go in the Feature Requests section of our community forum:
Home Assistant release (hass --version):
0.56.0
Python release (python3 --version):
3.4
Component/platform:
Switch.tplink
Description of problem:
Names of all switches show up as:
unnamed_device_ then a random number
This prevents the switch from being used for any automation because the entity id will always be unknown.
Name set in configuration.yaml is being ignored
Expected:
For example:
switch 4:
platform: tplink
scan_interval: 1
host: <IP_ADDRESS>
name: SideDoor
The name in this case should end up being switch.sidedoor but it ends up as switch.unnamed_device_5
Problem-relevant configuration.yaml entries and steps to reproduce:

Traceback (if applicable):

Additional info:

@rytilahti wanted to make you aware of this in case it relates to your contribution in 0.56.0

Also note that in testing I reverted to 0.55 and everything worked properly again. Problem only exists in 0.56

Most likely related to:
https://github.com/home-assistant/home-assistant/issues/10015
https://github.com/home-assistant/home-assistant/issues/10018

Confirmed, seeing this as well with my TP-Link switches, only on 0.56

I can confirm this too.


search package imports if node not found in current package

For some reason, in my test files imported structs were not being found.
Searching the imports as well fixes this issue for me.
Removing this ObjectOf() check entirely also seems to work for me.
Why is this check here in the first place?

Hmm.  The idea here was to ascend the AST until we could find a definition for the identifier.
Can you show me a test case that fails prior to your change and succeeds when the commit is applied?

I'm unable to reproduce this now.  closing.


Uncaught TypeError: Cannot use 'in' operator to search for '' in

Description
See MRE https://stackblitz.com/edit/sveltekit-superforms-testing-evgwd4

Click "Submit" -> validation error "Need at least two persons" is shown
Click "Add person"

Expected: new person input gets added
Actual:
sveltekit-superforms_client.js?v=e57f7f69:1089 Uncaught TypeError: Cannot use 'in' operator to search for 'name' in Need at least two persons
    at Tainted__validate (sveltekit-superforms_client.js?v=e57f7f69:1089:51)
    at Tainted_update (sveltekit-superforms_client.js?v=e57f7f69:1115:9)
    at Object.set (sveltekit-superforms_client.js?v=e57f7f69:974:9)
    at set_store_value (chunk-UJLIVLOQ.js?v=e57f7f69:150:9)
    at HTMLButtonElement.addPerson (+page.svelte:11:21)
    at HTMLButtonElement.<anonymous> (chunk-UJLIVLOQ.js?v=e57f7f69:374:15)

MRE
https://stackblitz.com/edit/sveltekit-superforms-testing-evgwd4

The problem seems to be that the zod schema sets a custom error on path 'persons'. Superforms somehow fails to validate this path during Tainted_update.

This is a tricky issue that will be documented in the upcoming 1.0 release. Adding errors to objects or arrays in the schema isn't really supported, as you did with persons (which is an array), and will cause problematic behavior like you experience.
The problem is that you can't really prevent this though, Zod doesn't stop you from adding errors to any path, but it doesn't work with Superforms, that only supports errors for leafs in the schema, if you look at it as a tree structure.
However, you can add form-level errors in almost the same manner, here's a working version of your MRE: https://stackblitz.com/edit/sveltekit-superforms-testing-mpvand?file=src%2Froutes%2F%2Bpage.svelte,src%2Flib%2Fschema.ts

The refine method adds a form-level message (no path), which is used on the page as $errors._errors.
Since you are using nested data, you need dataType: 'json'
You probably don't want to taint the fields when adding a person, so addPerson has been modified to handle that.

This is related to array-level errors, which is added now in 1.0.0-rc.3, so I'm closing this since the 1.0 release is very close.