replace functions @ethersproject/bytes

Replace most of our utils functions, like:

@ethersproject/bytes

...by using the audited noble and scure packages by https://github.com/paulmillr (base64, utils like utf8tohex etc) that are potentially not covered through https://github.com/0xs34n/starknet.js/issues/407

I'm interested to work on this issue


UIMARCAUTH-191 MARC authority app: Authority source/Thesaurus Facet option does not display value when zero results are returned

Description
Remove filters from url when clicking "Reset all"
Screenshots
https://user-images.githubusercontent.com/19309423/196977840-60537202-ade2-4ccc-bcca-af1bb54b1cb3.mp4
Issues
UIMARCAUTH-191

Hey @artem-blazhko, that's correct, I just forgot to mention another PR with related changes
https://github.com/folio-org/stripes-authority-components/pull/35


03.01.01 Part 3 - view personal profile

As a participant, I want to be able to view my profile, so I can see the details of my profile
Story Points: 5
#16
Task List

[ ] Create xml for viewing profile
[ ] grab profile info from database
[ ] insert profile info to be viewed by user

This issue is a duplicate of Issue #42 so now closing


Documentation does not mention that hot reloader only checks for reload if you call a function (at least once?)

While retrofiring my project to use hot-lib-reloader-rs I ran into a very confusing issue, the notification from wait_for_about_to_reload never came back to me. I spent 2 hours comparing my project to the sample, refactoring, debugging, etc.
It turns out that if you don't call into any function in your hot reload API consistently (or at least once?) you don't get any notification.
My use case involves waiting for a reload, and then doing a bunch of work. I was not calling any API before the notification.
Once I created an empty API that I called in my message loop everything started working.
I'm filing this to suggest a documentation change to explain how\when the listening occurs.

Thank you, let me look into this.

Thank you for the report. This was indeed not intentional and has been fixed in 0.6.3. The wait function should always return if the library was reloaded, no matter if a call into it was made or not.

Thanks for the super quick turn around!


Experimental macros left out

When converting a file that contains :experimental: macros (kbd:[], menu:[]), asciidoctor-latex prints a warning (e.g. Node to implement: inline_kbd, class = Asciidoctor::Inline), but it leaves the content out of the resulting latex.
Until the macros are supported, it would be better if they were left untouched (as if :experimental: was undefined).

Unfortunately, that's no possible. By setting the experimental attribute, it changes the behavior of the parser, so the converter has to handle them at this point. One way it could handle them is to restore them back to the original source, but then you might as well just implement it.


Add support for delete tags

If it's useful for a user, we should provide it. https://github.com/channel-mirrors/conda-oci-mirror/blob/2923b364ea0bfd2b10d755c97242b77c9c8e7d3b/conda_oci_mirror/tests/conftest.py#L66-L83 Of course the registry will have to allow this action!

Added with https://github.com/oras-project/oras-py/releases/tag/0.1.16


content too long

Describe the bug
Memos can not be saved with error content too long, 0.18.1 can be saved normally, request to restore the limit, or customize the save size
Steps to reproduce
Memos can not be saved with error content too long, 0.18.1 can be saved normally, request to restore the limit, or customize the save size
The version of Memos you're using
0.19.0
Screenshots or additional context
No response

Reference to https://github.com/usememos/memos/issues/2748


Minimal changes for Python 3.x compatibility. Fixes #1.

This set of changes is somewhat smaller than that in pull request #7. I've verified that the library now works on Python 2.7 and Python 3.5 (on Fedora Linux) with a real-life script which fetches user and trade data from the API.

Finally got time to merge this and fix the small problems. Thanks for your contribution and sorry about the long waiting time!


Lagoon API doesn't return IDs for added deploys

Describe the bug
The API provides several different methods to add a deploy but they each have their faults.

deployEnvironmentLatest: Works great for starting deploys and is actually nicely versatile when it comes to specifying which environment to deploy. Only issue is it gives no output beyond a string "success" so you have no way to track /which/ deployment was created.
deployEnvironmentBranch: See deployEnvironmentLatest
deployEnvironmentPromote: See deployEnvironmentLatest
deployEnvironmentPullrequest: See deployEnvironmentLatest
addDeployment: This gives output that you can use to determine which deploy was added, but unfortunately doesn't actually deploy anything, it will just leave deploys in pending state forever. An added issue is that it expects more input than it should need like expecting a name and a created date.

To Reproduce
Attempt to add a deploy, you won't be able to add one that runs and get the ID from it.

Try deployEnvironmentLatest, observe that input/output doesn't give you a way to determine which deploy was added
Try addDeployment, observe the deploy not leading to a build instance and remaining in pending state.

Expected behavior
It'd be better to always output the added deployment, even if the deploy name isn't available yet. Just being able to get the deploy ID would make it so that I can track the record when I create it rather than having to guess which deploy maps to which local record using the AMQP deploy updated exchange.

I think this is a duplicate of #2652?

Totally forgot I opened an issue for this earlier. Should've searched harder sorry!


Add 'nest' method to ArrayHelper

I think we would be nice to introduce method 'nest' similar to CakePHP one to ArrayHelper. It is used to create threaded data (with children nodes).
More information regarding it:
https://book.cakephp.org/3.0/en/core-libraries/hash.html#Cake\Utility\Hash::nest
https://github.com/cakephp/utility/blob/master/Hash.php#L1172
Is it possible to get same response using ArrayHelper::map somehow ?

What are you going to use it for?

@samdark
Here are some use cases:

When you want to generate/print multi-level structure for comments
When you want to generate/print multi-level menu
When you want to generate  tree (nested set) for use with js plugins:
https://mbraak.github.io/jqTree/
http://mjsarfatti.com/sandbox/nestedSortable/

When you want to generate/print multi-level structure for comments
When you want to generate/print multi-level menu

Why aren't you iterating and outputting it right away?
protected function renderComments($parentID = null, $i = 0)
{
    $out = '';
    foreach ($this->comments as $comment) {
        if ($comment->parent_id === $parentID) {

            $out .= $this->render('comment', [
                'comment' => $comment, 'class' => $parentID !== null && $i !== 0 ? 'child-comment' : ''
            ]);
            $i++;
            $out .= $this->renderComments($comment->id, $i);
        }
    }

    return $out;
}

When you want to generate tree (nested set) for use with js plugins

OK, that one makes sense...

Is it possible to get same response using ArrayHelper::map somehow ?

No.

@johonunu CakePHP releases their utility classes in a separate package; you could use that.
https://packagist.org/packages/cakephp/utility

@SamMousa I know that, I just wanted to note that it would be good idea to have it in the core. Most of the methods in Hash class are available inside ArrayHelper, but something like "nest" isn't. I can live without it in core, if I am the only one missing it ;)


cleanup(sinsp): handle path too long in a better way

What type of PR is this?
/kind cleanup
Any specific area of the project related to this PR?
/area libsinsp
Does this PR require a change in the driver versions?
No
What this PR does / why we need it:
Today in case of path is too long we return /PATH_TOO_LONG. This means:

fd_directory  = "/"
fd_filename = "PATH_TOO_LONG"

The directory is definitely wrong and misleading as a workaround I propose something like this /DIR_TOO_LONG/FILENAME_TOO_LONG, so:

fd_directory  = "/DIR_TOO_LONG"
fd_filename = "FILENAME_TOO_LONG"

We probably need to find something better but at least we remove the wrong dir
Which issue(s) this PR fixes:
Special notes for your reviewer:
Does this PR introduce a user-facing change?:
NONE

LGTM label has been added.  Git tree hash: f7bbdc97c9cd5ce6fe6c6e822a3ddde031fa5f41

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: Andreagit97, FedeDP
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [Andreagit97,FedeDP]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


BUG set_repo doesn't work, though it is mentioned in the documentation

Describe the bug
I was going through the documentation here: https://rocketry.readthedocs.io/en/stable/cookbook/robust_applications.html?highlight=email#to-csv , and following the steps to add a repo to an app session, I get the error:
AttributeError: 'Session' object has no attribute 'set_repo'

To Reproduce
This simple scripts will produce the error:
from rocketry import Rocketry
from rocketry.log import LogRecord
from redbird.repos import CSVFileRepo

app = Rocketry(config={
    'task_execution': 'async',
    'silence_task_prerun': True,
    'silence_task_logging': True,
    'silence_cond_check': True
})
repo = CSVFileRepo(model=LogRecord, filename="tasks.csv")
repo.create()
app.session.set_repo(repo, delete_existing=True)

Expected behavior
The repo is set without any errors
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: MacOs
Python version: Python 3.9.13

Additional context
What else can I do to set the repo in the meantime?

Thanks for reporting this! Indeed, it seems the method was forgotten to be implemented. Cannot remember what I though when I wrote that piece of docs.
Rocketry simply extends the logging library and basically you just need a redbird.logging.RepoHandler in the logger called ```rocketry.task``:
import logging
from redbird.repos import CSVFileRepo
from rocketry.log import LogRecord

from redbird.logging import RepoHandler

repo = CSVFileRepo(model=LogRecord, filename="tasks.csv")
repo.create()

task_logger = logging.getLogger("rocketry.task")
task_logger.handlers.insert(0, RepoHandler(repo=repo))

Put this somewhere before starting the app. Note that I used insert to make sure this is the first RepoHandler as the first repo handler is used for read and write from task logs. You can add other handlers as well as you wish.
I'll revisit this on the weekend.

Thank you for your help and quickly reply. I just tried it out and it works!

Ye, it seems I meant to merge this to master before creating the latest version: https://github.com/Miksus/rocketry/pull/88
It seems I forgot (and still have some timezone issues with the new tests (my time zone is different than CI's). It seems I changed them in the docs before doing this.
So I'll fix the PR soon and merge it and then this issue should be fixed as well.

Doing the same for MongoRepo fails.


Reading List of Network Theory and Political Science

Patty, J. W., & Penn, E. M. (2016). Network Theory and Political Science. Oxford Handbooks Online. doi:10.1093/oxfordhb/9780190228217.013.12

Distances in Organizations: Innovation in an R&D Lab

Download from http://wilfreddolfsma.net/site/assets/files/1015/bjom_distances_in_orgs_dolfsma_vandereijk.pdf


JSON output does not show in Expandable format

Environment data

VS Code version: 1.59.0
Jupyter Extension version: v2021.8.1195043623
Python Extension version (available under the Extensions sidebar): v2021.8.1105858891
OS (Windows | Mac | Linux distro) and version: Windows 10 64bit
Python and/or Anaconda version: Python 3.9.6 64bit
Type of virtual environment used (N/A | venv | virtualenv | conda | ...): Conda
Jupyter server running: Local

Expected behaviour
When having an output in JSON format (example: A plotly Figure [object) I'm expected the following behaviour (expandable format), for example in Jypyter Lab:

Actual behaviour
Instead, in VSCode-Jupyter I obtain the JSON output without any type of format in 1 line:

Steps to reproduce:
import plotly.graph_objects as go
fig = go.Figure()
fig.add_scatter(x=[1 ,2 ,3], y=[4, 2, 3])
fig.add_scatter(x=[1, 2, 3, 4], y=[4, 5, 2, 3])
fig.show('json')

@Episkiliski Thanks for the report, I repro the same UI for the JSON output.


Fixed the broken links in Terraform examples documentation related to…

What this PR does / why we need it:
Fix broken link in the terraform examples documentation related to reference to terraform configs documentation.
Does this PR introduce a user-facing change?:

NONE

/retest
/approve


Docs: Fix links of Solutions in getting_started JavaScript page.

This PR fixes the links of Solutions in getting_started JavaScript page.

duplicate of #1434

duplicate of #1434

#1434 doesn't seem to touch [*-pg] in JS document page.

#1434 doesn't seem to touch [*-pg] in JS document page.

Would you like to contribute to my patch, then combine the PRs? It's just a few links haha

Would you like to contribute to my patch, then combine the PRs? It's just a few links haha


Upload only from tags

Recipes in authors repositories will get benefited from having and upload_only_if_tag. CI will run always, but we usually want to upload only tagged versions.

this is a excellent feature, for now I need to validate ci env vars or run some regex.

For example, in Gitlab CI there is a single convenient variable to use (present only when building from a tag): CI_COMMIT_TAG. So the CI manager class could be extended with an get_tag method, probably?
I currently use hacks as v* branch wildcard (assuming tags of the form v0.1 and tag name is  taken as a branch name when building from tags).

we could create STABLE_TAG_PATTERN for cases where there is no properly env var.

never mind, STABLE_BRANCH_PATTERN is enough.


Link href is not updated when it's dynamic

I'm using Navigo with dynamic links - I have a simple href link with data-navigo attribute. When I click it, everything works out well, I get new data from the server.
But then I update the href attribute, using something like:
$('#link').attr('href', '/new/value');

Unfortunately this does not work properly. I first tried calling updatePageLinks, which is not documented but it's available as a function. It kind of works, but it attaches a lot of listeners to the very same link, because old ones are not cleared. I guess it just fires up a lot of redirects and I end up on the right one, I don't know (didn't investigate it too much).
I think the location property should be checked inside the click listener, instead before that:
updatePageLinks: function updatePageLinks() {
    var _this = this;

    if (typeof document === 'undefined') return;
    this._findLinks().forEach(function (link) {
        var location = link.getAttribute('href'); // do NOT use this one, as it's set only once

        link.addEventListener('click', function (e) {
            if (!_this._destroyed) {
                e.preventDefault();
                //_this.navigate(clean(location)); // don't use pre-saved location
                // get one each time the link is clicked
                // it's slower, but more robust and works for dynamic href changes
                // I found out that pathname is the actual href
                // as href gets transformed to the real address
                // ex: href="/test" -> e.currentTarget.href = "www.example.com/test"
                _this.navigate(clean(e.currentTarget.pathname));
            }
        });
    });
}

I can make PR if you find this helpful :)

Any news? :)

Sorry, for some reason the first email from GitHub ended up in my junk folder. I would love to see a PR. If not I'll prepare one next week (Monday).

Can you please try the new 2.1.1 version.

Yeah I forgot about the multiple listeners added :-$
Works like a charm now - thanks!

I was still having this problem, even on the new version. Submitted #28, which fixed it for me by moving link.hasListener = true outside of the event handler. Hope that helps.

#28 merged in.


:recycle: Delete checks gitdiff step

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

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


Sort sessions by modification time

I really miss having sessions sorted by time, the same way as the "dir" list. Would it be possible to add such option?

That's certainly possible. I'll add an option for this.

Done!
Put this in your vimrc:
let g:startify_session_sort = 1

Wow, thank you!


Revert to one release notes file

We have the 0.44.1/0.25.1 release coming up soon. We decided it makes most sense for those docs to live in the same legacy_release_notes.rst file where we already have 0.44.0/0.25.0 because the versioning is still unusual there and we want the prelude explaining what is going on.
For 0.45.0 in October, we will switch to a new layout where each Qiskit version gets a dedicated HTML page. But it's premature to do that now.
So, this PR restores legacy_release_notes.rst to be release_notes.rst like before. But, it is still a manually generated file to avoid all the complexity from the metapackage we don't need anymore. For the 0.44.1/0.25.1 release, we will manually generate the notes using reno. In 0.45.0, we will go back to using the Reno Sphinx extension.
An added benefit of going back to a single file is we avoid breaking any links to release_notes.html.

Cc @mtreinish. You'll want to review this commit-by-commit for useful diffs.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.03%) to 87.239%

Totals

Change from base Build<PHONE_NUMBER>:
-0.03%

Covered Lines:
74281

Relevant Lines:
85147

💛  - Coveralls


Support complex parameters in DPP problems

I am trying to parameterize a CVXPY program as I need to repeatedly solve the problem, but I noticed that when my parameters are complex numbers, CVXPY models the problem in each iteration.
<img src="https://latex.codecogs.com/svg.image?\underset{\mathbf&space;x}{\text{minimize}}&space;\Vert&space;\mathbf&space;A&space;\mathbf&space;x&space;-&space;\mathbf&space;b\Vert&space;+&space;&space;|\boldsymbol{\gamma}&space;\mathbf&space;x|,&space;" title="\underset{\mathbf x}{\text{minimize}} \Vert \mathbf A \mathbf x - \mathbf b\Vert + |\boldsymbol{\gamma} \mathbf x|, " />

minimize𝐱‖𝐀𝐱−𝐛‖+|𝜸𝐱|,
Please note: I don't need to solve this problem repeatedly, but I am forcefully doing so to check whether I can consider 𝜸 as a parameter or not?
import cvxpy as cp
import numpy as np

m = 4
n = 3
A = np.random.randn(n,m)+1j*np.random.randn(n,m)
b = np.random.randn(n)+1j*np.random.randn(n)

x = cp.Variable((m,),complex=True)
gamma = cp.Parameter((1,m),complex=True)
obj = cp.norm(A@x-b)+cp.abs(gamma@x)
prob = cp.Problem(cp.Minimize(obj))

for iIter in range(5):
    gamma.value = np.random.randn(1,m)+1j*np.random.randn(1,m)
    prob.solve(verbose=True)

What I see from verbose is that CVXPY first models my problem in each iteration and then solves it. On the other hand, if I assume 𝜸∈ℝ1×4, it bypasses the modeling from the next iteration. Why is this so? Are we not allowed to create complex-valued parameters?

Hi @vkumar-ucd, thanks for your question and sorry for not getting back to you earlier.
I've slightly modified your code to make our investigation easier:
import cvxpy as cp
import numpy as np

m = 20
n = 10
A = np.random.randn(n,m)+1j*np.random.randn(n, m)
b = np.random.randn(n)+1j*np.random.randn(n)

x = cp.Variable((m,), complex=True)
complex = True  # or complex = False
gamma = cp.Parameter((1,m), complex=complex)
obj = cp.norm(A@x-b)+cp.abs(gamma@x)
prob = cp.Problem(cp.Minimize(obj))

for iIter in range(5):
    gamma.value = np.random.randn(1, m)
    if complex:
        gamma.value = gamma.value + 1j*np.random.randn(1, m)
    prob.solve(verbose=True)

When I use that code with complex = False I get the following output at the first call to prob.solve().
===============================================================================
(CVXPY) Feb 22 09:07:56 PM: Your problem has 20 variables, 0 constraints, and 20 parameters.
(CVXPY) Feb 22 09:07:56 PM: It is compliant with the following grammars: DCP, DQCP
(CVXPY) Feb 22 09:07:56 PM: CVXPY will first compile your problem; then, it will invoke a numerical solver to obtain a solution.
-------------------------------------------------------------------------------
                                  Compilation
-------------------------------------------------------------------------------
(CVXPY) Feb 22 09:07:56 PM: Compiling problem (target solver=MOSEK).
(CVXPY) Feb 22 09:07:56 PM: Reduction chain: Complex2Real -> Dcp2Cone -> CvxAttr2Constr -> ConeMatrixStuffing -> MOSEK
(CVXPY) Feb 22 09:07:56 PM: Applying reduction Complex2Real
(CVXPY) Feb 22 09:07:56 PM: Applying reduction Dcp2Cone
(CVXPY) Feb 22 09:07:56 PM: Applying reduction CvxAttr2Constr
(CVXPY) Feb 22 09:07:56 PM: Applying reduction ConeMatrixStuffing
(CVXPY) Feb 22 09:07:56 PM: Applying reduction MOSEK
(CVXPY) Feb 22 09:07:56 PM: Finished problem compilation (took 1.429e-02 seconds).
(CVXPY) Feb 22 09:07:56 PM: (Subsequent compilations of this problem, using the same arguments, should take less time.)

Then, calls to prob.solve() after updating gamma's value results in output like:
===============================================================================
(CVXPY) Feb 22 09:07:56 PM: Your problem has 20 variables, 0 constraints, and 20 parameters.
(CVXPY) Feb 22 09:07:56 PM: It is compliant with the following grammars: DCP, DQCP
(CVXPY) Feb 22 09:07:56 PM: CVXPY will first compile your problem; then, it will invoke a numerical solver to obtain a solution.
-------------------------------------------------------------------------------
                                  Compilation
-------------------------------------------------------------------------------
(CVXPY) Feb 22 09:07:56 PM: Using cached ASA map, for faster compilation (bypassing reduction chain).
(CVXPY) Feb 22 09:07:56 PM: Finished problem compilation (took 2.218e-03 seconds).

The compilation log mentions that it bypasses the reduction chain in this case.
Compare to when complex = True, you get output like the following at every solve. (Note that there is no reference to using a cached ASA map.)
(CVXPY) Feb 22 09:12:11 PM: Your problem has 20 variables, 0 constraints, and 20 parameters.
(CVXPY) Feb 22 09:12:11 PM: It is compliant with the following grammars: DCP, DQCP
(CVXPY) Feb 22 09:12:11 PM: CVXPY will first compile your problem; then, it will invoke a numerical solver to obtain a solution.
-------------------------------------------------------------------------------
                                  Compilation
-------------------------------------------------------------------------------
(CVXPY) Feb 22 09:12:11 PM: Compiling problem (target solver=MOSEK).
(CVXPY) Feb 22 09:12:11 PM: Reduction chain: EvalParams -> Complex2Real -> Dcp2Cone -> CvxAttr2Constr -> ConeMatrixStuffing -> MOSEK
(CVXPY) Feb 22 09:12:11 PM: Applying reduction EvalParams
(CVXPY) Feb 22 09:12:11 PM: Applying reduction Complex2Real
(CVXPY) Feb 22 09:12:11 PM: Applying reduction Dcp2Cone
(CVXPY) Feb 22 09:12:11 PM: Applying reduction CvxAttr2Constr
(CVXPY) Feb 22 09:12:11 PM: Applying reduction ConeMatrixStuffing
(CVXPY) Feb 22 09:12:11 PM: Applying reduction MOSEK
(CVXPY) Feb 22 09:12:11 PM: Finished problem compilation (took 2.157e-02 seconds).

It seems that although compilation produces correct results in both cases, the potential performance benefit of using Parameter objects disappears when the Parameter is complex. @SteveDiamond @akshayka it would be good if one of you could look into this.

Our implementation for extracting the ASA maps doesn't support complex paramters:
https://github.com/cvxpy/cvxpy/blob/master/cvxpy/reductions/solvers/solving_chain.py#L171-L172
We should document this here: https://www.cvxpy.org/tutorial/advanced/index.html#disciplined-parametrized-programming

@akshayka @rileyjmurray Thanks for your comments. What I am confused that if using complex-valued parameters doesn't support ASA maps, what is the need for allowing parameters to be complex-valued?

Eventually complex-valued parameters will support ASA maps. Adding that functionality was more than we could handle at the time ASA was introduced.

@SteveDiamond Makes sense. Thanks a lot for the clarification. Hope that this new feature will be supported soon.

@vkumar-ucd we'll do our best! I've re-opened this issue so it's clear that this is something we would like to do in the future.

Is there still an interest in caching compilations for problems with complex parameters?
Upon inspecting the canonicalization chain, one solution I see is to subclass Parameter to take in a parent parameter and a transformation function. Accessing subclass's .value attr should apply the transformation fn to the value of the parent param.
Then, during complex2real parameter canon, we can simply split a complex parameter into two, one with np.real and the other with np.imag as transformation fns.
Creating a new class with an unconstrained transformation fn is perhaps less than ideal but appears cleaner/easier than passing around problem metadata linking new params to their original. Plus, it looks like this could potentially be adapted to simplify the log(param) logic of solving DGP problems? Any feedback/thoughts on this would be great!
Also, I'm not too familiar with the gradient features of cvxpy and it's admittedly been a while since complex analysis for me, but iirc the only holomorphic real-valued functions are constant -- so there shouldn't be huge use cases for differentiating objective wrt complex params? But an exception might be finding the derivative of the solution vars wrt complex param?
If there's any interest/if this is even viable at all I can turn these changes into a PR -- thanks!

Hi Jeff,
Many thanks for your email. Owing to the fact that complex-valued
parameters are used mostly in wireless communications, adding the new
feature will be of great help to researchers and practitioners in the
domain. However, I am not sure how much this be helpful in other domains
like computer science and controls.
As far as I am concerned, this is still of great interest to me.
Cheers,
Vaibhav
On Mon, Jan 23, 2023 at 3:06 AM Jeffrey Chen @.***>
wrote:

Is there still an interest in caching compilations for problems with
complex parameters?
Upon inspecting the canonicalization chain, one solution I see is to
subclass Parameter to take in a parent parameter and a transformation
function. Accessing subclass's .value attr should apply the
transformation fn to the value of the parent param.
Then, during complex2real parameter canon, we can simply split a complex
parameter into two, one with np.real and the other with np.imag as
transformation fns.
Creating a new class with an unconstrained transformation fn is perhaps
less than ideal but appears cleaner/easier than passing around problem
metadata linking new params to their original. Plus, it looks like this
could potentially be adapted to simplify the log(param) logic of solving
DGP problems? Any feedback/thoughts on this would be great!
Also, I'm not too familiar with the gradient features of cvxpy and it's
admittedly been a while since complex analysis for me, but iirc the only
holomorphic real-valued functions are constant -- so there shouldn't be
huge use cases for differentiating objective wrt complex params? But an
exception might be finding the derivative of the solution vars wrt complex
param?
If there's any interest/if this is even viable at all I can turn these
changes into a PR -- thanks!
—
Reply to this email directly, view it on GitHub
https://github.com/cvxpy/cvxpy/issues/1666#issuecomment-1399731536, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AN442A33CZKD4AXTS7JIMK3WTXYS7ANCNFSM5O3IT2DQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

I would say we’re always interested in having different CVXPY features work
seamlessly together :)
On Tue, Jan 24, 2023 at 5:11 AM vkumar-ucd @.***> wrote:

Hi Jeff,
Many thanks for your email. Owing to the fact that complex-valued
parameters are used mostly in wireless communications, adding the new
feature will be of great help to researchers and practitioners in the
domain. However, I am not sure how much this be helpful in other domains
like computer science and controls.
As far as I am concerned, this is still of great interest to me.
Cheers,
Vaibhav
On Mon, Jan 23, 2023 at 3:06 AM Jeffrey Chen @.***>
wrote:

Is there still an interest in caching compilations for problems with
complex parameters?
Upon inspecting the canonicalization chain, one solution I see is to
subclass Parameter to take in a parent parameter and a transformation
function. Accessing subclass's .value attr should apply the
transformation fn to the value of the parent param.
Then, during complex2real parameter canon, we can simply split a complex
parameter into two, one with np.real and the other with np.imag as
transformation fns.
Creating a new class with an unconstrained transformation fn is perhaps
less than ideal but appears cleaner/easier than passing around problem
metadata linking new params to their original. Plus, it looks like this
could potentially be adapted to simplify the log(param) logic of solving
DGP problems? Any feedback/thoughts on this would be great!
Also, I'm not too familiar with the gradient features of cvxpy and it's
admittedly been a while since complex analysis for me, but iirc the only
holomorphic real-valued functions are constant -- so there shouldn't be
huge use cases for differentiating objective wrt complex params? But an
exception might be finding the derivative of the solution vars wrt
complex
param?
If there's any interest/if this is even viable at all I can turn these
changes into a PR -- thanks!
—
Reply to this email directly, view it on GitHub
https://github.com/cvxpy/cvxpy/issues/1666#issuecomment-1399731536, or
unsubscribe
<
https://github.com/notifications/unsubscribe-auth/AN442A33CZKD4AXTS7JIMK3WTXYS7ANCNFSM5O3IT2DQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub
https://github.com/cvxpy/cvxpy/issues/1666#issuecomment-1401926268, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ACRLIFEQJ3UCK3LM5GAS2A3WT7IG3ANCNFSM5O3IT2DQ
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

Hey @jlchen0 are you still working on this? I am trying to tackle this issue.
PS: any help is appreciated :)

I found some interesting discussions on a similar implementation for julia.
Automatic Differentiation for Julia
Zygote.jl
ForwardDiff.jl


mapStateToProps - camelCase Object Key which Contains Object Transformed Into a Function

Here is an example of this issue. Suppose we have two objects looks like below.
const mapStateToProps = state => ({
  userId: state.auth.user.id,

  conversations: {
    data: state.messageThread.data,
    error: state.messageThread.error,
    message: state.messageThread.message,
    fetching: state.messageThread.fetching,
  },

  createDraft: {
    data: state.messageCompose.data,
    error: state.messageCompose.error,
    message: state.messageCompose.message,
    fetching: state.messageCompose.fetching,
  },
})

userId using camelCase and the value is a positive integer. Working fine.
conversations doesn't use camelCase and the value is an object. Working fine.
createDraft using camelCase and the value is an object. When using componentWillReceiveProps(nextProps) method, calling nextProps.createDraft will return a function like below.

function createDraft(...) {
  return dispatch(...);
}

The another two are working fine. If we rename createDraft to createdraft, it will working correctly and the return value is an object just like in the mapStateToProps.

Something else is going on in that case. Check your reducers. Object keys are case sensitive.

What was that? There is no problem with my reducers. I'm just asking why using camelCase with objects in it transformed to function? I've tested it several cases as well.

Are you sure you don't have createDraft in your mapDispatchToProps?

I've one.

Then that's your problem. They're all getting mapped to this.props, and your action dispatchers are overwriting your state props.

Ah, I got it now. Thanks a lot!


Icecast2 is hanging

If I run icecast2 overnight, it doesn't stream in the morning even though the processes are running and there are no errors in syslogs.  Streaming clients connect but no sound is heard.  Restarting icecast2 sometimes fixes it but often need a reboot.  We could reboot on the Playa but that drops all the streams and users would need to reconnect.
Sometimes icecast runs all day without fail so not sure what's wrong here.
Do some more testing and see if it's the queue size or whatever.  The opensource icecast is used by a lot of folks so we expect it to run continously.

Almost sounds like the codec is crashing... is this on rpi 4 or 5?  (rpi 5
software support is still lacking in some areas...)
On Tue, Jul 16, 2024 at 12:27 PM Harper Mann @.***>
wrote:

If I run icecast2 overnight, it doesn't stream in the morning even though
the processes are running and there are no errors in syslogs. Streaming
clients connect but no sound is heard. Restarting icecast2 sometimes fixes
it but often need a reboot. We could reboot on the Playa but that drops all
the streams and users would need to reconnect.
Sometimes icecast runs all day without fail so not sure what's wrong here.
Do some more testing and see if it's the queue size or whatever. The
opensource icecast is used by a lot of folks so we expect it to run
continously.
—
Reply to this email directly, view it on GitHub
https://github.com/eastham/adsb_actions/issues/26, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAC4UPCRVTYEWIEGL2HAMVDZMVX3VAVCNFSM6AAAAABK7G2XF6VHI2DSMVQWIX3LMV43ASLTON2WKOZSGQYTCOBZGY3TANI
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Ahh, that's a good thought.  I'll try a 4 since this is a 5.  Any idea how
to tell if the codec crashed?  Log or something?  I'm using -acodec
libmp3lame which is alternately said to be unsupported and yet
recommended.  Could try another but mp4 was what I could get working.
Harper Mann
510-599-2075 mobile
On Tue, Jul 16, 2024 at 12:32 PM Paul Eastham @.***>
wrote:

Almost sounds like the codec is crashing... is this on rpi 4 or 5? (rpi 5
software support is still lacking in some areas...)
On Tue, Jul 16, 2024 at 12:27 PM Harper Mann @.***>
wrote:

If I run icecast2 overnight, it doesn't stream in the morning even
though
the processes are running and there are no errors in syslogs. Streaming
clients connect but no sound is heard. Restarting icecast2 sometimes
fixes
it but often need a reboot. We could reboot on the Playa but that drops
all
the streams and users would need to reconnect.
Sometimes icecast runs all day without fail so not sure what's wrong
here.
Do some more testing and see if it's the queue size or whatever. The
opensource icecast is used by a lot of folks so we expect it to run
continously.
—
Reply to this email directly, view it on GitHub
https://github.com/eastham/adsb_actions/issues/26, or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/AAC4UPCRVTYEWIEGL2HAMVDZMVX3VAVCNFSM6AAAAABK7G2XF6VHI2DSMVQWIX3LMV43ASLTON2WKOZSGQYTCOBZGY3TANI>

.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

—
Reply to this email directly, view it on GitHub
https://github.com/eastham/adsb_actions/issues/26#issuecomment-2231689040,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AATOAZCDIDZLYB4V6NDJCPLZMVYOPAVCNFSM6AAAAABK7G2XF6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMZRGY4DSMBUGA
.
You are receiving this because you were assigned.Message ID:
@.***>

Unfortunately I am not at all an expert on this...it might spew a syslog.
It is definitely possible for codecs (in other operating systems) to get
totally wedged in hardware and you will have absolutely no feedback.

Agree there!  And I suspect hardware as there aren't software changes unless it's some timeout or queue.  These tools take a while to fully grok but that's expected, at least with my pea brain.


Future of vite-plugin-mdx

I'm willing to give away this Vite plugin to someone willing to maintain it.
For the npm package vie-plugin-mdx, see https://github.com/vitejs/vite-plugin-react-pages/issues/6
CC @csr632 (the author of https://github.com/vitejs/vite-plugin-react-pages/tree/master/packages/vite-plugin-mdx)

Note that I will maintain this in the meantime.

I'd be happy to co-maintain. I dont know a ton about the internals of MDX, but it seems like the intregration with frameworks would be fairly small. Only React/Preact/Vue most likely? The svelte ecosystem seems to have their own MDX-like package https://github.com/pngwn/MDsveX.

As far as maintaining the plugin by myself, I dont think that would be terribly hard, as long as the plugins scope doesn't get too big.

👍 Added you as maintainer of @brillout/vite-plugin-mdx. Let's co-maintain for a while and then we can move it to https://github.com/ajstrand/vite-plugin-mdx.

Only React/Preact/Vue most likely

Looking at https://github.com/mdx-js/mdx/tree/main/packages it seems like there are only integrations for React, Preact, and Vue. So we're only missing Vue and then we are feature complete I guess?

plugins scope doesn't get too big.

Feature-wise, it seems like only Vue support is missing (but I don't know much about MDX either). I don't see how scope would grow much.

From the conversation you were having inn the other MDX repo for vite, it appears that the general consensus is that folks are wanting to move towards thee other vite plugin mdx and have this plugin be deprecated.
I see no issue with that as long as the two projects have the same goals and one isnt a duplicate of the other.

I see the confusion, let me clarify.
Current state:

https://github.com/brillout/vite-plugin-mdx is published as https://www.npmjs.com/package/@brillout/vite-plugin-mdx
https://github.com/vitejs/vite-plugin-react-pages/tree/master/packages/vite-plugin-mdx is published as https://www.npmjs.com/package/vite-plugin-mdx

Proposed state:

https://github.com/brillout/vite-plugin-mdx is published as https://www.npmjs.com/package/vite-plugin-mdx
https://www.npmjs.com/package/@brillout/vite-plugin-mdx is deprecated
https://github.com/vitejs/vite-plugin-react-pages/tree/master/packages/vite-plugin-mdx is deprecated

Ok, thanks for clarifying, your explanation makes more sense. I'm onboard with the proposed plan.

https://github.com/brillout/vite-plugin-mdx is now live as https://www.npmjs.com/package/vite-plugin-mdx
I invited @silvenon as collaborator.
I guess we can close this ticket for now.
If anyone wants to join in maintaining vite-plugin-mdx, let us know in this ticket.

🙏 @brillout just wanted to thank you for your continued maintenance of this package. I just switched to using Vite, and it thrills me that there is support for MDX. I just got it set up and working within 5 minutes because of your excellent documentation. Thanks again!

:-)


VF load error with .lvf and casting to (pointer uint128)

Also svf! appeared

Not sure what this was, seems like it's probably fixed though.


Linting / Stylechecking of Python scripts

We should include some basic style checking and linting for all Python scripts, I would suggest black for formatting and pylint for linting.

should we add them as a part of gh-actions ? or only format the python scripts before commiting them to repo ?
Thanks and Regards,
Henil Shalin Panchal
CC @awvwgk

I have seen projects auto-apply those using precommit hooks. A GH action check to just run black and pylint might be sufficient for our purpose.

Could add a pre-commit config and then use the pre-commit Action

added a pre-commit config and a pre-commit hook thus would run before every commt.
Thanks and Regards,
Henil Shalin Panchal
CC @awvwgk

PR #24 resolves this. thus, I request this issue to be closed.
Thanks and Regards,
Henil Shalin Panchal
CC @awvwgk


Commit okta playbook

Folder + 2 files ( readme.md + deploy.json)
Fixes #
Proposed Changes

@Yaniv-Shasha could you update the ARM template to parametrize the URL and API key?  so someone deploying can enter them on deployment,


Newbie basics: how to share

Brand new to librephotos, can't figure out how to share photos to another (non-admin) account.
If the answer is RTFM, I'm fine with that, I just need a pointer to a non-developer manual. Everything I find is install notes or bugs or enhancement requests on Github.
Is there a forum somewhere that's not Github issues and enhancement requests? If there is, it does not fall over easily to Google searches.
If the answer is it's early, go read the code, I'm fine with that too, just don't want to put in that work if there is an obvious simpler answer.
Details:
Installed Librephotos on my QNAP NAS using docker-compose 'latest' path. Created admin account, set up an originals directory, scanned some stuff and everything worked beautifully. Especially facial recognition. Great work, folks.
Created a second, non-admin account with the same originals directory. Zero photos. Scanned the directory, went fast because sidecars are configured, but still zero photos.
Went back and made all Admin's photos public. No change.
Went back and tried to share all Admin's photos to 2nd account (maybe sharing originals directories isn't supported?). Still no change, but the sharing interface is non-intuitive (asks me about unsharing when I'm trying to share), maybe I'm not doing it right.
So, I'm stumped. This is so basic it seems it can't be a bug (or I'd provide more details and follow the bug report process). Can someone point me in the right direction?

Only one user at a time owns a directory and it's child folders. If you want to share photos between users, use the share function of LibrePhotos instead.


Replace most canvas dependences for viewport in Tracks

In the way to make unit tests in OrbitGl we are replacing GlCanvas for Viewport which is easier to mock for Unit-tests (http://b/185214650).
There are following commits, but I want to merge this first because I'll have a lot of conflicts.
Tested by running a capture, stopping several times and loaded a capture.

Make a fiw small commit, but rebase it to main now


add support for our DEX to the Markets tab for AE Coin

placeholder
to collaborate with @kenodressel
Please describe the problem that your request should resolve.

Describe the solution you'd like

Is it already possible to achieve the same outcome in any other way? If so, how?

Additional context

@kenodressel didn't get much info about that. Please elaborate freely

Not to sure about this either tbh :sweat_smile:


Create Apinf UI specification

Create a Hackpad document that lists the views that will be available in MVP.
Definition of done

[ ] Apinf UI specification document has been created in Hackpad.
[ ] Views and fields that will be available in MVP have been identified in the document.

Document created. Currently the views listed in the document are views from API Umbrella.

The UI specification now contains a list of views to be implemented along with relevant routes.


Transfer the Information regarding Hactoberfest from about page to hacktoberfest page , also populate the about page.

Currently the information regarding the hacktoberfest lies in the about page which should lie in the contributors page instead , the about page should be populated with information like 1.More info about the project , 2. TechStack used in making the project , 3. about the api from where we are fetching the superheroes images and information . 3. other information which is relevant to the project.
while the contributors page should include the steps to clone and setup the project , rules for making pull request etc
can you assign me this issue , thanks .

You can start working on this issue @092vk

can you please assign me this issue


Extension breaks renaming files via the Explorer window

When the files explorer window has focus, and a file selected, you should be able to press enter to edit the filename in place. With this extension enabled, instead, the editor window becomes focused, and there's no opportunity to rename the file.
If I disable this extension, it works as expected.

    {
        "key": "enter",
        "command": "renameFile",
        "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
    },

Try adding this to your keybindings.json

Solved it for me, thanks!

A better solution would be to open the keybindings editor and delete the offending binding.

A better solution would be to open the keybindings editor and delete the offending binding.

{
    "key": "r",
    "command": "-renameFile",
    "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
},
{
    "key": "enter",
    "command": "-list.select",
    "when": "listFocus && !inputFocus && !notebookCellListFocused"
},


Manually compile MXNet1.3.0 release code, which is very inefficient after testing.

I compiled the 1.3.0 release code according to the official way.
Code download address: https://github.com/apache/incubator-mxnet/releases/tag/1.3.0
Compile method reference: https://mxnet.incubator.apache.org/install/ubuntu_setup.html
Build MXNet from Source
The compile command is:
Make -j $(nproc) USE_OPENCV=1 USE_BLAS=openblas USE_CUDA=1 USE_CUDA_PATH=/usr/local/cuda USE_CUDNN=1
The compilation is successful, but the performance of the resulting libmxnet.so is quite different from that of the published version of libmxnet.so.
Testing method: Face detection using mtcnn algorithm on a single GPU, the speed of publishing version processing is 90 sheets per second, and I compiled only 20 sheets per second (GPU utilization is very low at this time).
I would like to ask you a few questions:

I found that the compiled libmxnet. so is only 295M, while the official release is 500M. What's the difference?
Later, it was found that the libmxnet.so I compiled is a Debug version. How can I compile the release version?
why do I compile my own performance so low?

Hello @chenyujing1234  Thank you very much for submitting the issue. I'm labeling it so MXNet community members can help resolve it. In order to help triage the issue further could you provide some information?

Which MXNet released/published version you have used for comparison with built from source library ? There are pip versions such as mxnet-cu90, mxnet-cu90mkl, etc available.
The performance numbers that are mentioned are for the Debug version? Typically debug version binaries tend to show lower performance.

@mxnet-label-bot [Build, Performance, Pending-requestor-info]

Hello @chenyujing1234 Thank you very much for submitting the issue. I'm labeling it so MXNet community members can help resolve it. In order to help triage the issue further could you provide some information?

Which MXNet released/published version you have used for comparison with built from source library ? There are pip versions such as mxnet-cu90, mxnet-cu90mkl, etc available.
The performance numbers that are mentioned are for the Debug version? Typically debug version binaries tend to show lower performance.

@mxnet-label-bot [Build, Performance, Pending-requestor-info]

I  Build In Ubuntu14.04.1 With cuda9.0( No MKL). GPU is GTX 1080
I am not sure Is it Debug version,  I Foud the libmxnet.so (readelf -S libmxnet.so), Found there are debug information in the file。 But I am sure  i build it with DEBUG=0

Hello @chenyujing1234 Thank you very much for submitting the issue. I'm labeling it so MXNet community members can help resolve it. In order to help triage the issue further could you provide some information?

Which MXNet released/published version you have used for comparison with built from source library ? There are pip versions such as mxnet-cu90, mxnet-cu90mkl, etc available.
The performance numbers that are mentioned are for the Debug version? Typically debug version binaries tend to show lower performance.

@mxnet-label-bot [Build, Performance, Pending-requestor-info]

I  Build In Ubuntu14.04.1 With cuda9.0( No MKL). GPU is GTX 1080
I am not sure Is it Debug version,  I Foud the libmxnet.so (readelf -S libmxnet.so), Found there are debug information in the file。 But I am sure  i build it with DEBUG=0

Today I found that tensorRT is not used in compile phase.  Does it have any effect?

Please help me , I've been troubled for a long time.

Would you be able to run a simple test (in which you see a performance difference) and run with nvprof for both cases and post the result.  Just run the same python script you'd normally run and prefix your bash command with nvprof.  This should get you some output when the process finishes that will be useful for determining where the perf difference is.

a solution was found. It's normal not to link openblash

It looks like it's openblash that causes me to use only one CPU

This problem can be closed. Thank you.


[SMALLFIX] Use static imports for standard test utilities for AbstractShellTest

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/17856/
Test PASSed.


Show description of alert if available

Pull Request Test Coverage Report for Build 1424

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.007%) to 86.472%

Totals

Change from base Build 1407:
0.007%

Covered Lines:
3644

Relevant Lines:
4039

💛  - Coveralls


#177 Add test for input adapters only

Before this PR, there were no test cases only for input adapters.
To ensure that input adapters work as they are expected with no dependencies on the other classes, new test cases for input adapters have been added with some test data files.
Along with the above implementation, some unused members in input adapter classes have been deleted.

coverage: 100.0%. remained the same when pulling 3b187a71d6500154ed270543b6444d4d7c887016 on feature/177_add_test_for_input_adapters_only into 81f9b4eb2bf91081c0ea9c2bd7ad414d1f797eca on develop.

CTest failed in reading a test data file in the unit test cases for input adapters, just with MSVC (not with gcc/clang).
So I made a quick workaround to specify the test data directory path by creating a header file in test/unit_test/CMakeLists.txt file.


Do I need to keep the external directories if I don't have an SSD installed?

Second sanity check please, opening a second issue for this because it's not directly related to my first question, but wanted to ask about this BEFORE I make any more local changes to your scripts on my device.
I have no external SSD in my Deck, I bought the highest tier one and currently have no space constraints, so I haven't had to get an external SSD. So when I run your scripts, I'm seeing an error get thrown when it tries to copy stuff out to the APPDATA_EXTERNAL path your script sets up.
Would there be any problem with my removing the parts of the script relevant to that directory? It doesn't seem to be having an impact on my ability to set up Skyrim otherwise, as near as I can tell.
Again, thanks very much in advance!

Those errors are just for logging, they should be ignored and the rest of the script should proceed.
If not, then it's probably a bug.

Noted and thank you! I'll close this out.


Gitlab Provider

Added Gitlab Provider

Thanks @SabariVig - appreciate the documentation and fixes to the broken URLs too!
For consistency, we will probably use the name GitLab (vs Gitlab) when it's published.
I hope it will go out in an update later today.

Hey There I just realized that gitlab does nit show up in the dropdown list in the documentation website. I went through the code cannot figure out why its causing the issue

Ah, good catch! Forgot about that.
It looks like we need to add GitLab, Box and Yandex to www/sidebars.js.


cannot install avidemux due to sha256 mismatch

$ brew cask install avidemux --force
==> Downloading http://downloads.sourceforge.net/avidemux/Avidemux_2.6.8_ml_64bits.dmg
######################################################################## 100.0%
==> Verifying checksum for Cask avidemux
==> Note: running "brew update" may fix sha256 checksum errors
Error: sha256 mismatch
Expected: 2478fbdf6e7bfc32dd98a53bb95e6a7d217d294d446910942c4904bf2094b90a
Actual: 832bdcf361dc7c4088a2e74103f629698affe44b83cf00da923abbdd4a48a8c2
File: /Library/Caches/Homebrew/avidemux-2.6.8.dmg
To retry an incomplete download, remove the file above.

I also:

ran brew update and tried again; same message
removed the .dmg and tried again; same message

Fixed.

Fixed.

Too fast for me, @vitorgalvao :wink:

Too fast for me, @vitorgalvao :wink:

@adityadalal924 This time I even forgot to self-assign the issue (I usually do so so as to not step on any toes).

@adityadalal924 This time I even forgot to self-assign the issue (I usually do so so as to not step on any toes).


Move docs to /docs

This change is so the project's manager can go in the repos settings and activate Github Pages with the /docs option, making the documentation available at https://polidea.github.io/react-native-ble-plx/
Example on my fork: https://cretezy.github.io/react-native-ble-plx/

Thanks for your effort! It looks good except automatic part. I think that BLE configuration should be done manually as there are few steps to consider based on your needs.

The automatic part covers about 80% of use cases. I think it's a good middle ground between ease of use and complexity.

In that case I think user should know which steps needs to manually performed. Could you add notes about that in this PR?

I've added the step (android permission) which must be done manually. The rest should be automatic.


Pipeline x read dep without read with insert

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


create-platformatic: Runtime project: Default services path that's displayed is incorrect

Expected
Where would you like to load your services from? (services)

This would be consistent with how other paths are displayed by create-platformatic, and with the actual path value that is set in autoload.path in platformatic.runtime.json: ./services
Actual
Where would you like to load your services from? (library-app/services)

can I work on this issue?

go for it!


[Open discussion] Model-driven apps support

Hi team 👋🏼
First, thank you for the amazing work you have already done on this project 👍🏼
Based on the introduction of the Overview section of the README file of the project, I am making the assumption that one of your goals for this project is to also cover model-driven apps.
I have done some tests and explored a bit the source code of PowerApps-TestsEngine the day the announcement blog article was published, and I arrived at the conclusion that currently the tool does not cover model-driven apps (or even cover only canvas apps).
First, am I wrong or PowerApps-TestsEngine does not currently cover model-driven apps?
If the answer is "You are wrong, model-driven apps are already covered", I will be really happy but will need some help to make it work 😅 The good news in this situation would be that we would be able to quickly close this issue 😉
But if you confirm I am not wrong and model-driven are not already covered, could you provide some answers to the question below please?

Is model-driven apps' support already in your backlog or even in your roadmap? If yes, do you have (even at a high level) an ETA for this part?
Are you looking for some contributions / help to help you bring model-driven apps support to PowerApps-TestsEngine?

Thank you again for all your work on this project and also for taking the time to take a look to this issue.

Hi @jt000,
Thank you very much for this detailed answer.
It makes me a little bit sad but I understand 😊
Working mainly on Dynamics 365 CE implementations with not a lot of canvas apps or custom pages (at least for now). So I will try to see if the teams I am working with would be interested to invest some time on PowerApps-TestEngine, but I guess they prefer to focus more on approaches they will allow us to also cover the model-driven apps side.
Obviously I will let you know if we have something interesting to share.
Thank you again for your work on this tool, and good luck for the next steps.


UIBlocks don't flush at the correct time

I upgraded from a much lower version (I had a personal fork) to 0.4.4 and the POPAnimation native module I made is now having issues.
RCT_EXPORT_METHOD(addAnimation:(NSNumber *)tag animation:(NSNumber *)animation callback:(RCTResponseSenderBlock)callback) {
  POPAnimation *anim = self.internalAnimations[animation];
  [self.internalAnimations removeObjectForKey:animation];
  anim.completionBlock = ^(POPAnimation *anim2, BOOL finished) {
    callback(@[@(finished)]);
  };

  [self.bridge.uiManager addUIBlock:^(RCTUIManager *uiManager, RCTSparseArray *viewRegistry) {
      RCTAssertMainThread();

      UIView *view = viewRegistry[tag];
      if (view) {
        [view.layer pop_addAnimation:anim forKey:[animation stringValue]];
      }
  }];
}

This is all I am doing to add animations to a view, but now sometimes the UIBlock won't execute until the next user interaction after this function was called or even more oddly if I just leave the simulator running within a minute or so it executes.
@vjeux told me to tag @tadeuzagallo on this :smile:
Any ideas?

Curious to see what the solution is here!

I had a problem where a native action i was executing (animation related) was only happening after a while. The solution I found worked was to add
- (dispatch_queue_t)methodQueue {
    return dispatch_get_main_queue();
}

To my native module implementation

Running your module on the main queue as @JohnyDays suggested should fix it.
The issue is that when you call -[UIManager addUIBlock] the block will later be called by -[UIManager flushUIBlocks]. That happens on -[UIManager batchDidComplete], that is called on -[RCTBridge _handleBuffer:], but that only happens when there was a call made from JS to objc.
-[UIManager flushUIBlocks] will be dispatched on the main queue, so if your module is running on a different queue (the default is the bridge's _methodQueue) there's no way to be sure it'll finish before flushUIBlocks is called, and if it hasn't finished, it'll be called (as mentioned above) on the next time JS calls objc, that should be on the next time you interact with the app.
Hope that explains the behavior :smiley:

@tadeuzagallo should we make -[UIManager addUIBlock] schedule a task to run -[UIManager batchDidComplete] on the next iteration of the run loop if JS hasn't sent any commands?

@tadeuzagallo Thanks I will try that out soon :)

@ide Hum, not sure, it'd introduce a 1 frame delay, that's probably not desired in most cases.
I think it'd make more sense to just allow accessing the UIManager on the main thread, but might be a little too much. What I believe makes more sense is to dispatch the blocks on the VSync, but that'd be a bigger change.
/cc @nicklockwood

If I correctly understand your explanation, then perhaps my case was actually bug, since no calls to UIManager were actually being made in the native method. In fact I attempted to just call a native Alert (not through the react alert manager) and it still displayed the same behaviour, only appearing after a significant amount of time.

@JohnyDays that is expected behavior because you were calling into UIKit off of the main thread. Almost always dispatch_async(dispatch_get_main_queue()) when doing UIKit work.

Here's our internal POP module implementation. This will probably never be released as it will be made obsolete by the official animation API that @vjeux is working on, but if you're using it anyway, you may as well use something that works:
RKPOPAnimationManager.h
// Copyright 2004-present Facebook. All Rights Reserved.

#import "RCTBridgeModule.h"
#import "RCTInvalidating.h"

#import <POP/POPAnimation.h>

@interface RKPOPAnimationManager : NSObject <RCTInvalidating, RCTBridgeModule>

@end

RKPOPAnimationManager.m
// Copyright 2004-present Facebook. All Rights Reserved.
#import "RKPOPAnimationManager.h"

#import "RCTAssert.h"
#import "RCTBridge.h"
#import "RCTConvert.h"
#import "RCTLog.h"
#import "RCTSparseArray.h"
#import "RCTUIManager.h"

#import <POP/POP.h>

typedef NS_ENUM(NSInteger, RKPOPAnimationType) {
  RKPOPAnimationTypeSpring = 0,
  RKPOPAnimationTypeDecay,
  RKPOPAnimationTypeLinear,
  RKPOPAnimationTypeEaseIn,
  RKPOPAnimationTypeEaseOut,
  RKPOPAnimationTypeEaseInEaseOut,
};

/**
 * Properties for all animations that can be specified in JavaScript via
 * RKPOPAnimationManager.createAnimation().  These generally map directly
 * to POPAnimation properties.
 */
static const struct {
  __unsafe_unretained NSString *property;
  __unsafe_unretained NSString *velocity;
  __unsafe_unretained NSString *fromValue;
  __unsafe_unretained NSString *toValue;
  __unsafe_unretained NSString *springBounciness;
  __unsafe_unretained NSString *dynamicsTension;
  __unsafe_unretained NSString *dynamicsFriction;
  __unsafe_unretained NSString *dynamicsMass;
  __unsafe_unretained NSString *deceleration;
  __unsafe_unretained NSString *duration;
} RKPOPAnimationManagerProperties = {
  // Not all of these properties apply to all animation types
  .property = @"property",
  .velocity = @"velocity",
  .fromValue = @"fromValue",
  .toValue = @"toValue",
  .springBounciness = @"springBounciness",
  .dynamicsTension = @"dynamicsTension",
  .dynamicsFriction = @"dynamicsFriction",
  .dynamicsMass = @"dynamicsMass",
  .deceleration = @"deceleration",
  .duration = @"duration",
};

@implementation RKPOPAnimationManager
{
  RCTSparseArray *_animationRegistry;
}

@synthesize bridge = _bridge;

RCT_EXPORT_MODULE()

- (instancetype)init
{
  if ((self = [super init])) {
    _animationRegistry = [[RCTSparseArray alloc] init];
  }
  return self;
}

- (dispatch_queue_t)methodQueue
{
  return _bridge.uiManager.methodQueue;
}

- (NSDictionary *)constantsToExport
{
  return @{
    @"Types": @{
      @"spring": @(RKPOPAnimationTypeSpring),
      @"decay": @(RKPOPAnimationTypeDecay),
      @"linear": @(RKPOPAnimationTypeLinear),
      @"easeIn": @(RKPOPAnimationTypeEaseIn),
      @"easeOut": @(RKPOPAnimationTypeEaseOut),
      @"easeInEaseOut": @(RKPOPAnimationTypeEaseInEaseOut)
    },
    @"Properties": @{
      @"bounds": kPOPLayerBounds,
      @"position": kPOPLayerPosition,
      @"positionX": kPOPLayerPositionX,
      @"positionY": kPOPLayerPositionY,
      @"opacity": kPOPLayerOpacity,
      @"scaleX": kPOPLayerScaleX,
      @"scaleY": kPOPLayerScaleY,
      @"scaleXY": kPOPLayerScaleXY,
      @"subscaleXY": kPOPLayerSubscaleXY,
      @"translationX": kPOPLayerTranslationX,
      @"translationY": kPOPLayerTranslationY,
      @"translationZ": kPOPLayerTranslationZ,
      @"translationXY": kPOPLayerTranslationXY,
      @"subtranslationX": kPOPLayerSubtranslationX,
      @"subtranslationY": kPOPLayerSubtranslationY,
      @"subtranslationZ": kPOPLayerSubtranslationZ,
      @"subtranslationXY": kPOPLayerSubtranslationXY,
      @"zPosition": kPOPLayerZPosition,
      @"size": kPOPLayerSize,
      @"rotation": kPOPLayerRotation,
      @"rotationX": kPOPLayerRotationX,
      @"rotationY": kPOPLayerRotationY,
      @"shadowColor": kPOPLayerShadowColor,
      @"shadowOffset": kPOPLayerShadowOffset,
      @"shadowOpacity": kPOPLayerShadowOpacity,
      @"shadowRadius": kPOPLayerShadowRadius
    }
  };
}

- (void)dealloc
{
  RCTAssert(!self.valid, @"must call -invalidate before -dealloc");
}

- (BOOL)isValid
{
  return _animationRegistry != nil;
}

- (void)invalidate
{
  _animationRegistry = nil;
  _bridge = nil;
}

RCT_EXPORT_METHOD(createAnimationInternal:(NSNumber *)animationTag
                  type:(NSInteger)type
                  props:(NSDictionary *)props)
{
  RCTAssert(props != nil, @"props should exist");
  [_bridge.uiManager addUIBlock:^(RCTUIManager *uiManager, RCTSparseArray *viewRegistry) {

    NSString *propertyName = [props objectForKey:RKPOPAnimationManagerProperties.property];
    if (!propertyName) {
      RCTLogError(@"Animation has no property to animate: %@", props);
    }
    POPAnimatableProperty *property = [POPAnimatableProperty propertyWithName:propertyName];

    static NSDictionary *animationsByType;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
      animationsByType = @{
        @(RKPOPAnimationTypeSpring): ^{return [POPSpringAnimation animation];},
        @(RKPOPAnimationTypeDecay): ^{return [POPDecayAnimation animation];},
        @(RKPOPAnimationTypeLinear): ^{return [POPBasicAnimation linearAnimation];},
        @(RKPOPAnimationTypeEaseIn): ^{return [POPBasicAnimation easeInAnimation];},
        @(RKPOPAnimationTypeEaseOut): ^{return [POPBasicAnimation easeOutAnimation];},
        @(RKPOPAnimationTypeEaseInEaseOut): ^{return [POPBasicAnimation easeInEaseOutAnimation];},
      };
    });

    POPPropertyAnimation *(^animationBlock)() = animationsByType[@(type)];
    if (!animationBlock) {
      RCTLogError(@"Unknown animation type: %zd", type);
      animationBlock = ^{return [POPBasicAnimation easeInEaseOutAnimation];};
    }

    POPPropertyAnimation *animation = animationBlock();
    animation.property = property;

    [props enumerateKeysAndObjectsUsingBlock:^(NSString *key, id jsonValue, BOOL *stop) {
      // Specially handled these keys above.
      if ([key isEqualToString:RKPOPAnimationManagerProperties.property] || [key isEqualToString:@"type"]) {
        return;
      }

      if ([RKPOPAnimationManager _propertyKeyIsPOPAnimationKey:key]) {
        id animationValue;
        if ([jsonValue isKindOfClass:[NSNumber class]]) {
          //
          // JSON number -> NSNumber
          //
          animationValue = jsonValue;

          // Make sure it's actually an NSNumber(float) or NSNumber(double); POPAnimation fails on NSNumber(int).
          animationValue = @([animationValue doubleValue]);
        } else if ([jsonValue isKindOfClass:[NSArray class]]) {
          NSArray *jsonArray = (NSArray *)jsonValue;
          if (jsonArray.count == 2) {
            //
            // JSON array -> NSValue(CGPoint)
            //
            CGPoint point = [RCTConvert CGPoint:jsonArray];
            animationValue = [NSValue valueWithCGPoint:point];
          } else if (jsonArray.count == 4) {
            //
            // JSON array -> NSValue(CGRect)
            //
            CGRect rect = [RCTConvert CGRect:jsonArray];
            animationValue = [NSValue valueWithCGRect:rect];
          } else {
            RCTLogError(@"Only two-dimensional (point) values supported for %@ of property: %@", key, propertyName);
            return;
          }

        }

        // Various POPAnimation methods, such as -setToValue:, throw if the value is of a type not supported for the animated property (for example, if the animated property is 'scaleXY', the toValue should be a CGPoint, never an NSNumber or some other type).  Catch and log errors instead of crashing.
        @try {
          [animation setValue:animationValue forKey:key];
        } @catch (NSException *exception) {
          RCTLogError(@"Error setting animation property \"%@\" to %@: %@", key, animationValue, exception);
        }
      } else {
        RCTLogError(@"Unknown animation property: %@", key);
      }
    }];

    _animationRegistry[animationTag] = animation;
  }];
}

RCT_EXPORT_METHOD(addAnimation:(NSNumber *)viewTag
                  withTag:(NSNumber *)animationTag
                  completion:(RCTResponseSenderBlock)callback)
{
  if (!animationTag || !viewTag) {
    RCTLogError(@"addAnimation requires both animationTag and viewTag, received (#%@, #%@)", animationTag, viewTag);
    return;
  }

  [_bridge.uiManager addUIBlock:^(RCTUIManager *uiManager, RCTSparseArray *viewRegistry) {
    UIView *view = viewRegistry[viewTag];
    POPAnimation *animation = _animationRegistry[animationTag];
    if (!view) {
      RCTLogError(@"addAnimation cannot find view with tag #%@, attempting to add animation:\n%@", viewTag, animation);
      return;
    }

    if (!animation) {
      RCTLogError(@"addAnimation cannot find animation with tag #%@, attempting to animate view %@ with tag #%@", animationTag, view, viewTag);
    }

    if (callback) {
      animation.completionBlock = ^(POPAnimation *anim, BOOL finished) {
        callback(@[@(finished)]);
      };
    }

    CALayer *layer = view.layer;
    [layer pop_addAnimation:animation forKey:[animationTag stringValue]];
  }];
}

RCT_EXPORT_METHOD(removeAnimation:(NSNumber *)viewTag
                  withTag:(NSNumber *)animationTag)
{
  if (!animationTag || !viewTag) {
    RCTLogError(@"removeAnimation requires both animationTag and viewTag, received (%zd, %zd)", animationTag, viewTag);
    return;
  }

  [_bridge.uiManager addUIBlock:^(RCTUIManager *uiManager, RCTSparseArray *viewRegistry) {
    UIView *view = viewRegistry[viewTag];
    // Simply getting the animation to verify that it exists.
    POPAnimation *animation = _animationRegistry[animationTag];
    if (!view) {
      RCTLogError(@"removeAnimation cannot find view with tag #%@, attempting to remove animation:\n%@", viewTag, animation);
      return;
    }
    if (!animation) {
      RCTLogError(@"removeAnimation cannot find animation with tag #%@, attempting to remove from view %@ with tag #%@", animationTag, view, viewTag);
    }

    CALayer *layer = view.layer;
    [layer pop_removeAnimationForKey:[animationTag stringValue]];
  }];
}

+ (BOOL)_propertyKeyIsPOPAnimationKey:(NSString *)propertyKey
{
  // These are RKAnimationProperties which correspond exactly to CGFloat or NSValue(CGPoint) properties of POPAnimation.  Specifying one of these in the animation properties means that it'll be set directly on the underlying POPAnimation.  This is for convenience so that -createAndRegisterAnimationWithTag:type:props: can parse various similar properties in the same way.
  static NSSet *POPAnimationPropertyKeys = nil;
  static dispatch_once_t onceToken;
  dispatch_once(&onceToken, ^{
    __unsafe_unretained NSString **objects = (__unsafe_unretained NSString **)(void *)&RKPOPAnimationManagerProperties;
    POPAnimationPropertyKeys = [NSSet setWithObjects:objects count:sizeof(RKPOPAnimationManagerProperties) / sizeof(*objects)];
  });
  return [POPAnimationPropertyKeys containsObject:propertyKey];
}

@end

Awesome thx :) I just reimplemented the API and it worked for me but this is more complete than mine.

Thanks @ide, I did not know method calls to UIKit were limited to the main thread, very new to Obj-C and the Apple APIs(didn't actually know what UIKit was, had to check).

@tadeuzagallo So I added this to my module.

- (dispatch_queue_t)methodQueue {
  return dispatch_get_main_queue();
}

The end result is the same. The weirder part is some of my animations do multiple invokes to addAnimation some of them play instantly and others wait till next interaction or just after sometime.
An example is fading in a backdrop and transforming a modal upwards.

Actually using this from the FB implementation.
- (dispatch_queue_t)methodQueue {
  return _bridge.uiManager.methodQueue;
}

Solved the problem

Yes, that makes sense, sorry about that. I read the answer and forgot to check the actual queue, but the chain I explained remains the same. I'll update the answer accordingly for future references. :)

@tadeuzagallo - what I was thinking is that it is confusing that the UI blocks do not run until some other unrelated piece of code or a UI interaction causes the UIManager to flush the blocks.
To make this less surprising, here are two ideas: one idea is to schedule the the UI blocks to run ASAP (probably after the next vsync iteration as you suggested). The other idea is to print a warning message if -[UIManager addBlock:] is not called on the shadow queue. Either way, my hope is to help guide module authors in the right direction.

Asserting that [UIManager addBlock:] is called on the shadowQueue seems like a good solution.

@nicklockwood when do you guys think @vjeux 's animation library will land?

@mcz: hopefully a month from now

@vjeux React Europe deadline? :dart:

On a side note - having something with a POP similar API would be very beneficial to those who are already familiar with your animation library when writing native apps in the old way!

@tadeuzagallo Still, sometimes the UIBlock won't execute until the next user interaction after this function was called. I met this situation in iPhone6s, but iPhone6, iPhone6sp are fine.


Combination Sum IV

Aim
Given an array of distinct integers nums and a target integer target, return the number of possible combinations that add up to target.
Example 1:
Input: nums = [1,2,3], target = 4
Output: 7
Explanation:
The possible combination ways are:
(1, 1, 1, 1)
(1, 1, 2)
(1, 2, 1)
(1, 3)
(2, 1, 1)
(2, 2)
(3, 1)
Note that different sequences are counted as different combinations.
Details
I would like to solve Combination Sum IV in C++ under LGMSOC'21. I will also state time complexity and space complexity along
with the well commented solution.
Programming language
**

[ ] C
[x] C++
[ ] Java
[ ] Python

@ravikr126 Kindly assign me this issue under LGMSOC'21.
I am a C++ Coder and will be able to solve it in an optimised manner keeping track of time complexity and space complexity.
It will be a cakewalk to understand the code as I'll be commenting it on each line.

Please review my pr @ravikr126 @Ayush7614


Consider Doing BetterNether & BetterEnd Support?

These Mods have some nice wood types, and there very popular mods too, it would be cool to have furniture to match them as well, would you consider adding support for these in the future maybe? ^~^

I think that's definitely worth looking into. Thanks for the suggestion!

Added in dev. This will be released with the next version (hopefully this weekend, but we'll see)


Support for scrolling with mouse

neovim TUI and vanilla gvim both support scrolling with the mouse, would be nice to have that in neovim.as too.

Right.
One difficult thing is that the scroll event is different across systems, I'll check how Atom is handling it.

@rygwdn which platform were you working on? There are a few issues reported that scrolling is not working on Ubuntu.

I've only tested on OS X


TextInput issue

Software Versions
Python 3.12.1
Windows 10
Kivy 2.3.0
pip install kivy
Issue
The content in the TextInput box cannot be changed through self.ids["fluxus_text_input"].text = "example text" (when there is other code below this code)
def change_text_input_text(self):
    self.ids["fluxus_text_input"].text = 'wait for bypass key....'
    # if i don't do time sleep it's no problem;  but when i have code after this line it can't be change the text

    time.sleep(5)

Share a runnable minimal example.
FWIW you do not want to use sleep in the main thread of a kivy program.  It stalls the event loop, effectively locking up the program.  To create a delay use Clock.schedule_once() to schedule a callback or another Clock method.

Share a runnable minimal example.
FWIW you do not want to use sleep in the main thread of a kivy program.  It stalls the event loop, effectively locking up the program.  To create a delay use Clock.schedule_once() to schedule a callback or another Clock method.

I resolved, thenks for your method！


Can you get a User's history?

I don't think it is possible but is there currently any way of retrieving a User's history of what they have changed in other models. For example if user1 has made changes to Poll models and other User models is there a way of retrieving those changes without having to query each historic model?

You'd have to query each historical model since they're all in separate tables. You could build a way to automatically detect which models are historical and get them though.


Add standalone feature plugins

This PR exports each feature as its own plugin.
This is so frameworks like Remix/React Router can opt into a subset of the plugin's behaviour without inheriting defaults (including future defaults). Most notably this will allow React Router to use the denyFiles feature to implement .server modules without inadvertently adding support for macros.

Closing this for now, will re-open with a new API.


feat: remove feature __internal_proxy_sys_no_cache

Completely remove the __internal_proxy_sys_no_cache feature and all related caching logic for system proxies.
Now, every time a new Client is created, it always reflects the current system proxy settings.
The reason for upgrading proc-macro2 from 1.0.62 to 1.0.87 is that the author has yanked version 1.0.62.
fix this issue #2441

Let's go

Great work, thank you!

When will there be a new version with this fix?)


Support managed identity auth for using queue & cosmos clients

Is your feature request related to a problem? Please describe.
Currently Managed identity is supported for storage & cosmos db. But the node js api doesnt seem to have support for this yet. I am only able to create the client objects by passing the the secret keys as mentioned in Cosmosdb & storage-queue

For queue, I was able to use the TokenCredential like this:
 const creds = await msRestNodeAuth.loginWithVmMSI({ resource: 'https://storage.azure.com/' });
 const token = await creds.getToken()
 const tokenCred = new storageQueue.TokenCredential(token.accessToken);

 const pipeline = storageQueue.StorageURL.newPipeline(tokenCred, {
 });

(but with this workaround we may need to manage the token expiration).
For cosmos:
Looks like cosmos db doesn't natively support ad auth yet. (https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/tutorial-windows-vm-access-cosmos-db) this doc just says we can get the master/ secondary key & use that for authentication.

@XiaoningLiu, @vinjiang from the storage team, can you please take a look at this issue?
@southpolesteve, @christopheranderson  from the cosmos team, can you please take a look at this issue?

@devaradhanm I believe TokenCredential is the way storage-queue JS SDK works with Managed Identity authentication. It's by design to let SDK users control the expiry of tokens. We had a long discussion to implement a auto refresh inside storage SDK, however it will cause unexpected memory leaking due to there is no good week reference provided in JavaScript.

@XiaoningLiu, shouldn't this behavior be consistent across other azure services? for eg, to create keyvaultclient, i don't manage the cred token expiration, since I pass the credentials object.
const creds = await msRestNodeAuth.loginWithVmMSI({ resource: 'https://vault.azure.net });
const client = new KeyVaultClient(credentials);

in the above code credentials object takes care of refreshing  & caching token. keyvaultClient just seems to get the token from credentials object everytime it makes a rest call.

Thanks for bringing up this. Currently, all storage SDKs keep align. Will investigate how to improve this.

This behavior is expected for Cosmos. We currently do not support managed identity via the SDK. You'll need to pass the Cosmos specific access keys.

Thanks @southpolesteve . Is there any ETA for this support for cosmosdb?

@XiaoningLiu , is there any update on this? I would like to know how this memory leak if exists is solved in other services that supports credentials object (batch, keyvault etc.) Can you provide more information about the memory leak you were facing? Can you also look at https://github.com/Azure/azure-sdk-for-js/tree/master/sdk/keyvault/keyvault to see if they have the same memory leak issue.

@devaradhanm no ETA at this time. If you need to grab the keys programmatically, you can do that via the ARM APIs https://docs.microsoft.com/en-us/rest/api/cosmos-db-resource-provider/databaseaccounts/listkeys

@devaradhanm
KeyVault sample you mentioned leveraging ms-rest-nodeauth, tries to get a new token every time before the request. And this is not acceptable for storage high through put scenarios. See this
https://github.com/Azure/ms-rest-nodeauth/blob/cd6b21b33066b01885dd5d9db4e05aa9d0825e9e/lib/credentials/msiTokenCredentials.ts#L134
Storage parallel upload/download are high IOPS operations, and every request needs to be signed with token. The best way to refresh token is to set timers instead of getting a new token every time. When we design storage SDK, first thinking is to let storage SDK manage a timer refreshing the token periodly. However, in this way, the resource pointed by the timer cannot be GCed without manually stopping the timer. We gave timer design up finally. The memory leak topic referring to about the timer.

@XiaoningLiu , even though they call getToken api, internally it caches the token & gets a new token whenever the token has expired. check this for example - https://github.com/Azure/ms-rest-nodeauth/blob/cd6b21b33066b01885dd5d9db4e05aa9d0825e9e/lib/credentials/applicationTokenCredentials.ts#L47

@devaradhanm Yes, token should be cached.
I understand this's inconvenience, but I don't have a perfect answer for this.
We can say "ms-rest-nodeauth doesn't provide credentials compatible with storage SDK", or "storage SDK doesn't compatible with ms-rest-nodeauth". The credentials in these 2 SDKs have different meanings and designs.
The good news is both ms-rest-nodeauthand sotrage SDK depend on @azure/ms-rest-js, and sharing the same Pipeline definition. A Pipeline includes array of RequestPolicyFactory

In storage SDK, every credential is a RequestPolicyFactory
In ms-rest-nodeauth, every credential is a ServiceClientCredentials. Before sending out request, @azure/ms-rest-js wraps ServiceClientCredentials into RequestPolicyFactory
https://github.com/Azure/ms-rest-js/blob/master/lib/policies/signingPolicy.ts
https://github.com/Azure/ms-rest-js/blob/451f17e3e52159ea15b77fbca4b979cc751878cc/lib/serviceClient.ts#L407

My preferred way is ms-rest-nodeauth library could wrap these credentials to RequestPolicyFactory, instead of ServiceClientCredentials. Or provide a helper method for the wrapping, just like above sample code. Then these credentials can be injected into storage SDK pipeline array or used as storage SDK credential very easily.
Or developers could also manually do the wrapping.
Then you may ask can storage SDK accept credentials from ms-rest-nodeauth, or do the wrap? Technically it's possible, but I do have concerns:

Reason is storage only accepts limited credential types, like SharedKey, SAS, and OAuth with Bearer schema. Storage SDK provided Credential implementations for all these authentications. However, credential generated in ms-rest-nodeauth may vary, some of them may not be supported by storage service yet.
All storage SDKs have similar TokenCredential design, which accepts a token string.That's the existing boundary.

Thanks for explaining @XiaoningLiu. We can add the work around on our end. But, just to make it clear, do you suggest everyone who consumes the storage package to write this wrapper? Do you have this in your backlog & have plans to add this support to make it more aligned with other azure lib package usage?

I put it into our backlog for more discussion. But currently I don't a accurate date. Before that, you can do the wrap by your self easily like (JavaScript code):
const Azure = require("@azure/storage-blob");

class CustomizedCredential extends Azure.Credential {
  constructor(authenticationProvider) {
    this.authenticationProvider = authenticationProvider;
  }

  create(nextPolicy, options) {
    return new CustomizedCredentialPolicy(nextPolicy, options, this.authenticationProvider);
  }
}

class CustomizedCredentialPolicy extends Azure.CredentialPolicy {
  constructor(nextPolicy, options, authenticationProvider) {
    super(nextPolicy, options);
    this.authenticationProvider = authenticationProvider;
  }

  signRequest(request) {
    return this.authenticationProvider.signRequest(request);
  }
}

  const creds = await msRestNodeAuth.loginWithVmMSI({ resource: 'https://storage.azure.com/' });

  const pipeline = Azure.StorageURL.newPipeline(
    new CustomizedCredential(creds)
  );

  // Following URL needs include a valid SAS token
  let serviceURL = new Azure.ServiceURL(
    "https://account.blob.core.windows.net?sas",
    pipeline
  );

Thanks @XiaoningLiu

@XiaoningLiu Thank you for providing work around! Could you please share the work item link? Then we can close this issue. Thanks!

Released v12.0.0-preview.1 already integrates authentication with @azure/dientity package, refer to this sample
https://github.com/Azure/azure-sdk-for-js/blob/feature/storage/sdk/storage/storage-blob/samples/javascript/azureAdAuth.js

@XiaoningLiu Thank you for the information! Close the issue. Please reopen if there is more question.


example in which we submit too many extrinsics at once

Make 1000 test users and submit extrinsics from each of them simultaneously

Deemed not necessary in offline convo


Set the framework that we will use to generate more input-based data

An instruction-based dataset is a collection of tasks and solutions that we can use to fine-tune a pre-trained Large Language Model to perform different tasks including: Questions and Answers, Multiple Choice Questions, Medical Tasks

done


ftp support

Good day!
There is any chance to auto update via ftp using updates-r-simple project?
Thanks

Here is some try to do this: https://github.com/creepid/updates-r-simple


toFormat('tiff'...) ignores bithDepth if  compression is used

Possible bug
Is this a possible bug in a feature of sharp, unrelated to installation?

[x] Running npm install sharp completes without error.
[x] Running node -e "require('sharp')" completes without error.
[x] I am using the latest version of sharp as reported by npm view sharp dist-tags.latest.

What is the output of running npx envinfo --binaries --system --npmPackages=sharp --npmGlobalPackages=sharp?
System:
OS: Windows 10 10.0.22621
CPU: (6) x64 Intel(R) Core(TM) i5-8600K CPU @ 3.60GHz
Memory: 20.28 GB / 63.95 GB
Binaries:
Node: 19.2.0 - C:\Program Files\nodejs\node.EXE
npm: 9.1.3 - C:\Program Files\nodejs\npm.CMD
(tried also node 16.x and npm 8.x)
What are the steps to reproduce?
image.toColorspace('b-w').toFormat('tiff', { bitdepth: 1 }) // works, exports a 1-bit tiff file
image.toColorspace('b-w').toFormat('tiff', { bitdepth: 1, compression: 'lzw' }) // works, but exports a 24-bit file.

What is the expected behaviour?
the second row will export a 1-bit (or 2 or 4) bit  TIFF file.
Thanks for all ! I like the package and it works good and fast.

Hi, I had to add predictor: 'none' to the second example to prevent the following error:

Horizontal differencing "Predictor" not supported with 1-bit samples

await sharp(input)
  .toColorspace("b-w")
  .toFormat("tiff", { bitdepth: 1 })
  .toFile("out1.tiff");

await sharp(input)
  .toColorspace("b-w")
  .toFormat("tiff", { bitdepth: 1, compression: "lzw", predictor: "none" })
  .toFile("out2.tiff");

Then, with this input, the output was as expected (latest version, using Linux):
$ ls *.tiff
 759008 out1.tiff
  77446 out2.tiff

$ tiffinfo out1.tiff
TIFF Directory at offset 0x758734 (b93ce)
  Image Width: 2725 Image Length: 2225
  Resolution: 25.4, 25.4 pixels/inch
  Bits/Sample: 1
  Sample Format: unsigned integer
  Compression Scheme: None
  Photometric Interpretation: min-is-black
  Orientation: row 0 top, col 0 lhs
  Samples/Pixel: 1
  Rows/Strip: 256
  Planar Configuration: single image plane

$ tiffinfo out2.tiff
TIFF Directory at offset 0x77172 (12d74)
  Image Width: 2725 Image Length: 2225
  Resolution: 25.4, 25.4 pixels/inch
  Bits/Sample: 1
  Sample Format: unsigned integer
  Compression Scheme: LZW
  Photometric Interpretation: min-is-black
  Orientation: row 0 top, col 0 lhs
  Samples/Pixel: 1
  Rows/Strip: 256
  Planar Configuration: single image plane

If you're still having problems, please provide complete, standalone code with input image that allows someone else to reproduce.

Thanks for response.
For me, you solve the problem. Thanks. maybe this need to be documented somewhere for the next developer.

there is no error  message. the code in the example is working byt responded with a 24-bit.
an error can be good.
thanks.

When specifying { bitdepth: 1, compression: 'lzw' } I always receive an error message plus a partial output that might look like 24-bit but has been truncated.
If you don't see the error message, please can you provide a sample image and complete, standalone code that includes appropriate error handling, which might allow someone else to reproduce.

You are right, but not always.
When I am using a image without alpha channel, it working as you descibe in your comment.
but if not, it not working as my bug is described.
I was used sharp-bmp here. sharp-bmp is working by exporting a  4-channel picture.
When I was used a 1-bpp PNG image it was works  (or more, but without Alpha channel).
here is a working example  code, as I added .removeAlpha() before saving.
const sharp = require("sharp")
const fs = require("fs/promises")
const bmp = require('sharp-bmp');

async function a() {
	const buffer = await fs.readFile('./1.bmp');
	var bitmap = bmp.decode(buffer);

	//image = await sharp(buffer);
	image = await sharp(bitmap.data, {
		raw: {
			width: bitmap.width,
			height: bitmap.height,
			channels: 4,
		},
	})
	///image = await sharp(buffer);
	const md = await image.metadata();
	bpp = md.paletteBitDepth || 4;
	console.log(bpp);

	await image.toColorspace('b-w').removeAlpha().toFormat('tiff', { bitdepth: 1, compression: "lzw", predictor: "none" })
		.toFile(`./1.tiff`);

	image = await sharp(bitmap.data, {
		raw: {
			width: bitmap.width,
			height: bitmap.height,
			channels: 4,
		},
	})

	await image.toColorspace('b-w').toFormat('tiff', { bitdepth: 1 })
		.toFile(`./2.tiff`);
}
a()


add anyof combinator

Is your feature request related to a problem? Please describe.
There is no way to fall through another path when a subparser fails. this makes it impossible to parse things like a json item where a value can be either null, number, string, array, or object, which all of them have different starting sequence and different ruleset.
Describe the solution you'd like
A combinator that can retract the parser cursor and fall back into the next possible match could be quite useful. for example a string literal could be parsed by anyof combinator:
auto expect_string() {
    const auto escaped_charset = parsi::Charset("\"'nra");
    return parsi::sequence(
        parsi::expect('"'),
        parsi::repeat(
            parsi::anyof(
                parsi::sequence(parsi::expect('\\'), parsi::expect(escaped_charset)),
                parsi::expect(normal_charset)
            )
        ),
        parsi::expect('"')
    );
}

or a json value as:
const auto item_parser = parsi::anyof(
  expect_null(visitor),
  expect_decimal(visitor),
  expect_integer(visitor),
  expect_string(visitor),
  [=](parsi::Stream stream) -> parsi::Result {  // recursive
    retrun expect_array(visitor)(stream);
  },
  [=](parsi::Stream stream) -> parsi::Result {  // indirect recursive
    retrun expect_object(visitor)(stream);
  }
);

Describe alternatives you've considered
There aren't. there must be a retracting combinator.

closing as #21 is a more detailed duplicate.


zlib 1.2.10

New upstream release
Drop patch which is now incorporated upstream

Superseded by 942d6cb8cbb9fbd99a16c9bed87e1166a76a81a3.  Thank you for the contribution!


Disable lldb build in PR testing

@swift-ci Please test and merge

@swift-ci Please test and merge

Merged to unblock CI

Thanks Mishal!


Support for custom tool frame

The current code assumes the tool point is the same as the moveit end-link.  This makes reusing IK solvers difficult.  Instead the system should accept a custom tool frame name and perform the necessary frame conversions itself.

@MauleshSTrivedi, can you please look at this issue?

@shaun-edwards I will get onto this right away.

FYI @MauleshSTrivedi, I was able to run the moveit_simple tests using catkin run_tests.  I had some trouble with catkin tools, but they seem to work on Travis.
BTW, I forgot to mention, the following is also needed to build/test moveit_simple: https://github.com/shaun-edwards/prettyprint

@shaun-edwards Yeah I cloned prettyprint so that's fine. The test are running for me, but I am getting the overall results as a FAILURE.. Basically, 6/9 tests PASSED while 3 of them generated a FAILURE. I will look at your latest build results to corroborate.
There are some other errors that I seem to be getting (ROS Errors and not test errors), and I need to look into that as well.

Some ROS errors are a normal part of the tests. I have a half dozen or so.

Got it. Will take that into consideration.
Sent from my iPhone

On Sep 21, 2017, at 5:34 AM, Shaun Edwards<EMAIL_ADDRESS>wrote:
Some ROS errors are a normal part of the tests. I have a half dozen or so.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

FYI...here's my output
shaun@shaun-Precision-5510:~/plusone/moveit_simple$ catkin_make run_tests
Base path: /home/shaun/plusone/moveit_simple
Source space: /home/shaun/plusone/moveit_simple/src
Build space: /home/shaun/plusone/moveit_simple/build
Devel space: /home/shaun/plusone/moveit_simple/devel
Install space: /home/shaun/plusone/moveit_simple/install
####
#### Running command: "make cmake_check_build_system" in "/home/shaun/plusone/moveit_simple/build"
####
####
#### Running command: "make run_tests -j8 -l8" in "/home/shaun/plusone/moveit_simple/build"
####
Scanning dependencies of target clean_test_results_moveit_simple

<build steps>

Scanning dependencies of target _run_tests_moveit_simple_rostest_test_launch_utest.launch
-- run_tests.py: execute commands
  /opt/ros/indigo/share/rostest/cmake/../../../bin/rostest --pkgdir=/home/shaun/plusone/moveit_simple/src/moveit_simple/moveit_simple --package=moveit_simple --results-filename test_launch_utest.xml --results-base-dir /home/shaun/plusone/moveit_simple/build/test_results /home/shaun/plusone/moveit_simple/src/moveit_simple/moveit_simple/test/launch/utest.launch
... logging to /home/shaun/.ros/log/rostest-shaun-Precision-5510-22419.log
[ROSUNIT] Outputting test results to /home/shaun/plusone/moveit_simple/build/test_results/moveit_simple/rostest-test_launch_utest.xml
[ERROR] [1505962163.078212836]: Failed to find point unknown_name, consider implementing more look ups
[ERROR] [1505962163.078355890]: Invalid point for reach check
[ERROR] [1505962183.997010578]: Failed to find point unknown_name, consider implementing more look ups
[ERROR] [1505962183.997157973]: Invalid point unknown_name to add to bad_traj
[ERROR] [1505962188.998454582]: Add to trajectory failed for arbitrary pose point: "random_link" passed to lookupTransform argument target_frame does not exist.
[ERROR] [1505962194.465599078]: Conversion to joint trajectory failed for traj2 due to IK failure of waypoint4
[ERROR] [1505962194.465642606]: Failed to convert traj2 to joint trajectory
[ERROR] [1505962194.465771793]: Trajectoy bad_traj not found
[ERROR] [1505962224.894703268]: Failed to find proper IK (no config change) in 2 attempts
[ERROR] [1505962230.293423643]: Collision detected in the traj1
testutest ... ok

[ROSTEST]-----------------------------------------------------------------------

[moveit_simple.rosunit-utest/construction][passed]
[moveit_simple.rosunit-utest/reachability][passed]
[moveit_simple.rosunit-utest/Singularity][passed]
[moveit_simple.rosunit-utest/add_trajectory][passed]
[moveit_simple.rosunit-utest/kinematics][passed]
[moveit_simple.rosunit-utest/copy_current_pose][passed]
[moveit_simple.rosunit-utest/planning][passed]
[moveit_simple.rosunit-utest/interpolation][passed]
[moveit_simple.rosunit-utest/collision][passed]

SUMMARY
 * RESULT: SUCCESS
 * TESTS: 9
 * ERRORS: 0
 * FAILURES: 0

rostest log file is in /home/shaun/.ros/log/rostest-shaun-Precision-5510-22419.log
-- run_tests.py: verify result "/home/shaun/plusone/moveit_simple/build/test_results/moveit_simple/rostest-test_launch_utest.xml"

I believe this has done through various merges....closing for now.


Provide documentation for comparators

The README.md provides a beginning description of query formats (Quick and Detailed).
Can coverage of the legal comparators be provided, or a link to where that exists?
In the absence of looking for documentation I tried one guess at something I speculated might be legal and got the following
ValueError: Invalid value for node_type (in), must be one of ['column', 'quoted', 'unquoted', '>=', '<=', '<', '>', '=', '~', 'AND', 'OR', 'NOT', 'SUBQUERY']
At which point one remembers that Read The Manual is 'best practice', which leads to the request for documentation.
(Note this raises the question whether this is one manifestation of a #BigIssue - the more fundamental one of 'query language' )

This is a good point, the documentation for cda-python should definitely have this information. Currently it's in the swagger docs, but even there you'd have to know where to look. If you open the swagger page (https://cda.cda-dev.broadinstitute.org/api/swagger-ui.html) and expand Query at the bottom of the page, you can see a description of the different node types. The complete list of accepted node_type values is visible by expanding the Enum array under node_type.

closing, this is documented here: https://cda.readthedocs.io/en/latest/usage.html#q-comparison-operators


Change from camelCase to snake_case

Currently we are not following the Julia style-standard, as variable names and function names use camelCase.
This should be changed, with priority for the exported functions.
This is a breaking change for any user, but at this early stage (where I think we have few if any users) I do not see any problem with this.

PEtab 2.0 is now released, where this has been addressed.
Are likely some minor artifacts in the code, but all exported methods use snake_case, and these artifacts will likely be addressed with time.