Add scipy.special.hyp2f1?

It would be great if hyp2f1 could be added under jax.scipy.special! Are there any plans to do this?
My application uses a special case of the hyp2f1 that seems like it can be written using special functions already implemented in jax (gammaln and betainc, but it turns out that the scipy implementation of hyp2f1 uses a transformation on the input that prevents hyp2f1 from being written in terms of these other functions. As far as I can tell there is not another convenient substitution in terms of existing jax functions.
Thanks!

Thanks for the feature request! cc @srvasude just to be in the loop about special functions.
We don't have any current plans to add this, but we love feature requests (and +1's on them) because they help us prioritize.
This might actually be a good first issue for contributors to take on. We'd basically just need to implement this in pure Python + NumPy, and rely on the XLA compiler (via jit) to generate a decently-optimized compiled function. Take a look at, for example, ndtr and ndtri in jax/scipy/special.py to see how that might look. (We also rely on XLA to compile functions for gammaln and betainc, but instead of writing those in Python and just using jit to build the XLA computation, the XLA program is built in C++ for the sole purpose of sharing its implementation with TensorFlow. But for that sharing consideration, performance-wise it's just as good to write things in pure JAX NumPy and use jit, and it's easier to develop that way too!)

I think adding a link to a implementation of hyp2r1 (or a mathematical formula) using gammaln and betainc may help

@mattjj
Thanks for the info!
@joaogui1
The relationship between hyp2f1 and betainc + gammaln (specified on the jax documentation for betainc, also eqn. 3 here) is only valid for the special combination of arguments hyp2f1(a,1-b,a+1,x), and valid only when 1>x>0. My application requires handling of the case where -1<x<0. This negative value of the argument is implemented in scipy.special.hyp2f1 (and is mentioned here) via a transformation which changes the arguments of hyp2f1 such that when the first argument is a, the third argument is no longer a+1, so the ability to write hyp2f1 in terms of betainc + gammaln goes away.
A more general handling of hyp2f1 as scipy does is I think required.

Hey @jmsull I started implementing this over the weekend (rather translating the implementation you linked to) but life got in the way and I haven't finished it yet,
Are you still interested in a JAX implementation of this function? I think I can be done by Friday, modulo some debugging.

@joaogui1
Still interested - great to hear you started working on it!

What is the status of this issue? I want to start making contributions to this project but wondering if this issue is a good place to start.

@FrescoFlacko life got in the way and I never finished it, but it's a rather large and tedious implementation, so I don't think it's a good first issue

@FrescoFlacko life got in the way and I never finished it, but it's a rather large and tedious implementation, so I don't think it's a good first issue

can you guide me how to go about it please.

@milind-soni I looked around Scipy until I found the implementation and then proceeded to translate it to jax, guess that's the general idea (the implementation was probably written in C though, so you'll need some understanding of it to do a good port)

Not sure if there's still any interest in this topic, but the following function is a workaround that uses the method in John Pearson's MSc thesis based on a Taylor series approximation (see Sec. 4.2). The code below doesn't treat various corner cases such as when differences between a, b, and c are integer, when z = exp(i pi / 3), etc., but I thought I'll leave it here in case someone wants to build on it
@jax.jit
def hyp2f1(a, b, c, z, n_max_iter=500, tol=1e-10, debug_mode=False):
    """
    Hypergeometric function implemented in jax, based on John Pearson's MSc thesis
    Computation of Hypergeometric Functions, specifically taylora2f1
    :param a: a (1D jax device array)
    :param b: b (1D jax device array)
    :param c: c (1D jax device array)
    :param z: z (1D jax device array), either one value of z for each (a, b, c) or different z-values for a single (a, b, c)
    :param n_max_iter: maximum number of iterations
    :param tol: tolerance
    :param debug_mode: debugging mode, doesn't use jitted operations
    :return: Gauss hypergeometric function 1F2(a, b, c, z)
    """

    a, b, c, z = jnp.atleast_1d(a), jnp.atleast_1d(b), jnp.atleast_1d(c), jnp.atleast_1d(z)
    assert a.ndim == b.ndim == c.ndim == z.ndim == 1

    # If only a single value for a, b, c is provided, but multiple values of z: tile a, b, c
    if a.shape[0] == b.shape[0] == c.shape[0] == 1 and z.shape[0] > 1:
        a = a * jnp.ones_like(z)
        b = b * jnp.ones_like(z)
        c = c * jnp.ones_like(z)

    assert a.shape[0] == b.shape[0] == c.shape[0] == z.shape[0], f"{a.shape[0], b.shape[0], c.shape[0], z.shape[0]}"

    def compute_output(a_loc, b_loc, c_loc, z_loc):

        def cond_fun(val):
            step_, a_, b_, c_, z_, coeff_old_, coeff_new_, sum_new_, tol_, n_max_iter_ = val
            cond_steps = jnp.all(step_ < n_max_iter_)
            cond_tol = jnp.all(jnp.logical_or(jnp.abs(coeff_old_) / jnp.abs(sum_new_) > tol_,
                                              jnp.abs(coeff_new_) / jnp.abs(sum_new_) > tol_))
            return jnp.all(jnp.logical_and(cond_steps, cond_tol))

        def body_fun(val):
            step_, a_, b_, c_, z_, coeff_old_, coeff_new_, sum_new_, tol_, n_max_iter_ = val
            coeff_new_ = (a_ + step_ - 1.0) * (b_ + step_ - 1.0) / (c_ + step_ - 1.0) * z_ / step_ * coeff_old_
            sum_new_ += coeff_new_
            return step_ + 1, a_, b_, c_, z_, coeff_new_, coeff_new_, sum_new_, tol_, n_max_iter_

        init_val = (jnp.asarray(1.0, ), a_loc * 1.0, b_loc * 1.0, c_loc * 1.0, z_loc * 1.0, jnp.asarray(1.0, ),
                    a_loc * 1.0, jnp.asarray(1.0, ), jnp.asarray(tol), jnp.asarray(n_max_iter * 1.0))

        if debug_mode:
            def while_loop(cond_fun, body_fun, init_val):
                val = init_val
                while cond_fun(val):
                    val = body_fun(val)
                return val

        else:
            while_loop = jax.lax.while_loop

        final_step, _, _, _, _, _, _, sum_out, _, _ = while_loop(cond_fun, body_fun, init_val=init_val)
        return sum_out

    def gamma(val):
        return jnp.where(val >= 0, jnp.exp(gammaln(val)), -jnp.exp(gammaln(val)))

    # Set indices for the different cases of the transformation mapping z to within the radius rho < 0.5
    # where Taylor series converges fast
    cases = jnp.where(z < -1,
                      1, jnp.where(z < 0,
                                   2, jnp.where(z <= 0.5,
                                                3, jnp.where(z <= 1,
                                                             4, jnp.where(z <= 2,
                                                                          5, 6)))))

    cases -= 1  # 0-based indexing

    # Define the branches
    def branch_1(this_a, this_b, this_c, this_z):
        term_1 = (1 - this_z) ** (-this_a) * (
                gamma(this_c) * gamma(this_b - this_a) / gamma(this_b) / gamma(this_c - this_a)) \
                 * compute_output(this_a, this_c - this_b, this_a - this_b + 1.0, 1.0 / (1.0 - this_z))
        term_2 = (1 - this_z) ** (-this_b) * (
                gamma(this_c) * gamma(this_a - this_b) / gamma(this_a) / gamma(this_c - this_b)) \
                 * compute_output(this_b, this_c - this_a, this_b - this_a + 1.0, 1.0 / (1.0 - this_z))
        return term_1 + term_2

    def branch_2(this_a, this_b, this_c, this_z):
        return (1 - this_z) ** (-this_a) * compute_output(this_a, this_c - this_b, this_c,
                                                          this_z / (this_z - 1.0))

    def branch_3(this_a, this_b, this_c, this_z):
        return compute_output(this_a, this_b, this_c, this_z)

    def branch_4(this_a, this_b, this_c, this_z):
        term_1 = (gamma(this_c) * gamma(this_c - this_a - this_b)
                  / gamma(this_c - this_a) / gamma(this_c - this_b)) \
                 * compute_output(this_a, this_b, this_a + this_b - this_c + 1.0, 1.0 - this_z)
        term_2 = (1 - this_z) ** (this_c - this_a - this_b) * \
                 (gamma(this_c) * gamma(this_a + this_b - this_c) / gamma(this_a) / gamma(this_b)) \
                 * compute_output(this_c - this_a, this_c - this_b, this_c - this_a - this_b + 1.0, 1.0 - this_z)
        return term_1 + term_2

    def branch_5(this_a, this_b, this_c, this_z):
        term_1 = this_z ** (-this_a) * (gamma(this_c) * gamma(this_c - this_a - this_b)
                                        / gamma(this_c - this_a) / gamma(this_c - this_b)) \
                 * compute_output(this_a, this_a - this_c + 1.0, this_a + this_b - this_c + 1.0, 1.0 - 1.0 / this_z)
        term_2 = this_z ** (this_a - this_c) * (1 - this_z) ** (this_c - this_a - this_b) \
                 * (gamma(this_c) * gamma(this_a + this_b - this_c) / gamma(this_a) / gamma(this_b)) \
                 * compute_output(this_c - this_a, 1.0 - this_a, this_c - this_a - this_b + 1.0, 1.0 - 1.0 / this_z)
        return term_1 + term_2

    def branch_6(this_a, this_b, this_c, this_z):
        term_1 = (-this_z) ** (-this_a) * (
                gamma(this_c) * gamma(this_b - this_a) / gamma(this_b) / gamma(this_c - this_a)) \
                 * compute_output(this_a, this_a - this_c + 1.0, this_a - this_b + 1.0, 1.0 / this_z)
        term_2 = (-this_z) ** (-this_b) * (
                gamma(this_c) + gamma(this_a - this_b) / gamma(this_a) / gamma(this_c - this_b)) \
                 * compute_output(this_b - this_c + 1.0, this_b, this_b - this_a + 1.0, 1.0 / this_z)
        return term_1 + term_2

    branches = [branch_1, branch_2, branch_3, branch_4, branch_5, branch_6]

    def single_computation(val, branches_):
        case_, a_, b_, c_, z_ = val

        if debug_mode:
            def switch_fun(index, branches, *operands):
                index = jnp.clip(0, index, len(branches) - 1)
                return branches[index](*operands)

        else:
            switch_fun = jax.lax.switch

        return switch_fun(case_, branches_, a_, b_, c_, z_)

    # Compute outputs
    if debug_mode:
        def map_fun(f, xs):
            return np.stack([f(x) for x in zip(*xs)])
    else:
        map_fun = jax.lax.map

    all_outputs = map_fun(lambda val: single_computation(val, branches), (cases, a, b, c, z))

    return all_outputs

@FloList Thank you for starting on this. I'm still trying to wrap my head around it, but it does seem to fail for z <=-1.
I doubled checked the branch_1 function and don't see anything wrong. I'm not sure if you or anyone else might see something I don't. Thanks in advance!
Note: the only modification I made was changing gammaln to jax.scipy.special.gammaln

As one of the contributors to the pymc-marketing library, I've an interest in this as well. It could dramatically reduce training times for one of our models. Our particular hyp2f1  application doesn't involve any unusual edge cases, so the code provided by @FloList may suffice.

@FloList I've taken a look at your code, did some testing, and found several issues. I haven't gotten around to fixing them all yet (and don't know if I will), so I thought I'd just mention what I've spotted in case someone else wants to fix it.
The first problem is that your definition of gamma for negative arguments is not correct. The gamma function isn't an odd function so you can't just move the negative sign to the outside. This explains why @jguerra-astro got some incorrect results in the case where z <= -1. The branch_4 function also sometimes gets incorrect results for the same reason, and I imagine some of the other branch functions do as well. Using jax.scipy.special.gamma fixes the problem.
The second problem is that when you set up the conditions for cases, you are only looking at Re(z) which doesn't work. Take for example z = 0.3 + 2.5i. The code will execute branch_3, which is incorrect because the series representation of 2F1 diverges outside of the unit disk. Similar problems arise with branch_4 with e.g. z = 0.7 + 2.5i, and potentially other branches as well. The conditions on when to use which branch needs to be worked out more carefully.
The third problem is that there is a typo in branch_6. I'm guessing you took it directly from equation 4.20 in the MSc thesis you linked, but that equation has a typo on the second line. The arguments b and b-c+1 in 2F1 need to be swapped (check e.g. Abramowitz and Stegun equation 15.3.7). However, even after fixing this issue, branch_6 still gives incorrect results, and I haven't figured out why.


Wrong js error checking for decimal numbers

I habe an activeForm field using MaskedInput widget with this client options
'clientOptions' => [
        'alias' =>  'decimal',
       'groupSeparator' => '.',
        'radixPoint' => ',',
        'autoGroup' => true
    ]

and a this rule defined for the field [['ablesewert',], 'number'],
After editing the filed I get the error message : Ablesewert is not a number.
How can I achive the goal to show and edit a decimal field using a redixPoint = ','?

you have to configure the http://www.yiiframework.com/doc-2.0/yii-validators-numbervalidator.html#$numberPattern-detail to match your locale.

this could be taken as an enhacement request, the validator could respond to application locale settings itself, using intl.

Only allowing the locale's decimal separator would break websites that use a locale with ,, but didn't change the number format from the default - loading existing data with a . into a form would not allow you to edit it after upgrading.
You could change the default numberPattern to allow both . and ,. This wouldn't break BC, and it would improve usability for users who use a keyboard with a , on the numpad and wish to enter a number on a website that's set to a locale that uses .. The only possible issue is someone entering a thousands separator , without a decimal separator ., which would then be interpreted as a decimal separator ,.
There's also the problem that php can only convert strings with . as a decimal separator to floats, and will actually cut off the decimals ((float)'8,7' === 8), and a decimal comma will probably also cause problems with database insertions. So without proper conversion, the value would pass validation, only to fail at a later stage or cause data loss.
The validator also shouldn't change the value, because in case of a validation error in another attribute during submission, the user will get the form back with a decimal point instead of a decimal comma. You could use a separate attribute for the converted value (like timestampAttribute in DateValidator), but that would complicate the model. I think a possible solution to this and the timestampAttribute would be to allow a validator to modify the data after validation and before database insertion. This would make working with dates and times easier as well. You could also add a function to modify the value before displaying it in a form, so that a unix timestamp or a number with a decimal point could be converted automatically to a formatted datetime or a number with a decimal comma before displaying it to the user. Currently you have to do this manually.

Any news here?
This improvement would be very good!
I am suffering with this issue now.

Won't be implemented in 2.0.


feat: Better upload button customization

Describe the feature you'd like to request
Currently when I set content={{ button: "Anything" }}, the loading percentage text will not show. Also the colored progress bar covers the text.

This is supposed to be "Custom text".
Since the content field is not meant for customizing default values and completely replaces the button content, I think we need that alternative too. Because in my case, except for the default text, everything else is fine.
Also for allowed content specifically, I would like to have access to the configuration in case I want to change it. I'll provide an example in the next section.
Describe the solution you'd like to see
<UploadButton
  endpoint="profilePictureUploader"
  somePropName={{
    button: "Custom button text",
	allowedContent: ([mime1, mime2]) => `${mime1.name} Max ${mime1.size}, ${mime2.name} Max ${mime2.size}.`
  }}
>
  Custom button text // this could be used instead
</UploadButton>

Additional information
No response
👨👧👦 Contributing

[ ] 🙋♂ Yes, I'd be down to file a PR implementing this feature!

Adding a bug label as well, since

Also the colored progress bar covers the text.

should be considered a bug, IMO.
if you manually apply a z-index: 50 to the custom text, does it work correctly?

if you manually apply a z-index: 50 to the custom text, does it work correctly?

<UploadButton content={{ button: Custom text }} />

If you mean this then yes it fixes it.

Could we possibly get the building blocks for an UploadButton and build one ourselves? The functionality can be in a wrapper but the UI in our control. This way you could get rid of the whole appearance object and Tailwind long prefixed class names. I don't know the internals so I'm not sure if it's doable. If UI components need a shared state the wrapper can have a context.
<UploadButton>
	<UploadButtonLabel>Custom text</UploadButtonLabel>
	<AllowedContent>{([mime1]) => `${mime1.name}. Max ${mime1.size}`}</AllowedContent>
</UploadButton>

The provided components are intended to be a quick drop-in that supports 99% of use cases, but if you need more granular
customization, I think it is probably better to build your own custom components using our hooks.

Hey there @markflorkowski,
I didn't think this issue was finished.

Describe the solution you'd like to see
<UploadButton
  endpoint="profilePictureUploader"
  somePropName={{
    button: "Custom button text",
	allowedContent: ([mime1, mime2]) => `${mime1.name} Max ${mime1.size}, ${mime2.name} Max ${mime2.size}.`
  }}
>
  Custom button text // this could be used instead
</UploadButton>

Does this mean we'll never see this option?

@ahkhanjani I believe that what you are asking for already exists in uploadthing. You can use the content prop, which will accept a function to generate the allowedContent text as follows:
<UploadButton
  content={{
    button({ ready }) {
      if (ready) return
Upload stuff
;

      return "Getting ready...";
    },
    allowedContent({ ready, fileTypes, isUploading }) {
      // do some stuff here to generate your text.
    },
  }}
/>

if you need the endpoint config, you can get that via the useUploadthing hook:
const { permittedFileInfo } = useUploadThing("imageUploader");

// permittedFileInfo will be formatted as:
// {"slug":"imageUploader","config":{"image":{"maxFileSize":"4MB","maxFileCount":1,"contentDisposition":"inline"}}}

@ahkhanjani I believe that what you are asking for already exists in uploadthing. You can use the content prop, which will accept a function to generate the allowedContent text as follows:

It's unfortunate that we have to override the whole existing behavior such as loading spinner, rather than just changing the button's default text. But I understand. Might not be something worth changing. We could use a bit of DX improvement though.

I will discuss with the team, we might consider if you pass a string rather than a  component/function for it to just replace the text, but we would then need a way to access other states, and deciding which will get overridden gets complicated kinda fast.


Update screenshots and steps for Azure Pipelines

Updating screenshots and steps for setting up Azure Pipelines.

Azure Devops will automaticly create a pipeline when checking in azure-pipleines.yaml to root of a repo.
Some steps/screens have changed when manually creating the pipeline
Must set branch policy to validate build in order to trigger PR build.  Also add pr: trigger to azure-pipelines.yaml

Hi @drewby, thanks for the PR. Most of the changes look good. In the future it would be great to see the context of these changes in GitHub issue prior to a PR so we can work with you on addressing testing concerns and documentation continuity.

Where did we end up with this PR @andrebriggs and @samiyaakhtar - do we think changes are necessary or ... ?

Since this has been lingering I created #458 and will close this PR.


Collapse ingame status bar

Users should be able to collapse and expand the ingame status bar by tapping the 🚀🦀  logo.

done in 73f8725b99da03181af9ba5cd8fc5d8e2d1e8aac


DiscordHttpResource is not available when using DiscordBotPlugin

I'm using this with Azalea, and after updating from 0.13 to 0.15 I noticed that the DiscordHttpResource isn't available by the time the main schedule starts, which causes any plugin/system that uses the resource to fail and not work.
I found the DiscordHttpPlugin and noticed the comment about it being inserted after the bot is ready, but I don't think that can work because by that time the main schedule is running, and any plugin requesting the resource has failed and won't run.
2024-12-21T15:31:52.256268Z  WARN Schedule Update has ambiguities.
42 pairs of systems with conflicting data access have indeterminate execution order. Consider adding `before`, `after`, or `ambiguous_with` relationships between these:
 -- AutoExitPlugin::handle_add_entity_packets and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- AutoExitPlugin::handle_add_entity_packets and DiscordLoggerPlugin::handle_disconnect_events
    conflict on: ["bevy_ecs::event::collections::Events<azalea_client::disconnect::DisconnectEvent>"]
 -- chat_listener and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- BlockStatePlugin::handle_block_update_packets and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- insert_bot and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- look_at_listener and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- handle_menu_opened_event and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- AutoPearlPlugin::handle_resend_pearl_events and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- PlayerProfilePlugin::handle_add_entity_packets and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- check_ready and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- disconnect_listener and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- keepalive_listener and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- handle_chunk_batch_start_event and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- handle_receive_chunk_events and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- handle_chunk_batch_finished_event and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- remove_player_listener and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- update_player_listener and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- add_player_listener and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- AutoExitPlugin::handle_disconnect_events and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- packet_listener and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- login_listener and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- chat_listener and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- update_on_climbable and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- update_fluid_on_eyes and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- clamp_look_direction and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- add_dead and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- jump_listener and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- debug_new_entity and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- debug_detect_updates_received_on_local_entities and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- update_entity_chunk_positions (in set Index) and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- insert_entity_chunk_position (in set Index) and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- retroactively_add_game_profile_component and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- death_event and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- AutoPearlPlugin::handle_goto_pearl_events and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- goto_listener and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- death_event_on_0_health and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- auto_respawn and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- death_listener and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- MinecraftChatPlugin::handle_whisper_events and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- handle_send_chat_event and send_events (in set DiscordSet)
    conflict on: bevy_ecs::world::World
 -- send_events (in set DiscordSet) and handle_send_packet_event
    conflict on: bevy_ecs::world::World
 -- send_events (in set DiscordSet) and handle_in_configuration_state
    conflict on: bevy_ecs::world::World

2024-12-21T15:31:52.256488Z  WARN shaysbot::chat::discord::DiscordChatPlugin::handle_whisper_events did not run because it requested inaccessible system parameter Res<DiscordHttpResource>
2024-12-21T15:31:52.256527Z  WARN shaysbot::modules::discord_logger::DiscordLoggerPlugin::handle_remove_entities_packets did not run because it requested inaccessible system parameter Res<DiscordHttpResource>
2024-12-21T15:31:52.256532Z  WARN shaysbot::modules::discord_logger::DiscordLoggerPlugin::handle_player_info_update_packets did not run because it requested inaccessible system parameter Res<DiscordHttpResource>
2024-12-21T15:31:52.256536Z  WARN shaysbot::modules::discord_logger::DiscordLoggerPlugin::handle_player_info_remove_packets did not run because it requested inaccessible system parameter Res<DiscordHttpResource>
2024-12-21T15:31:52.256540Z  WARN shaysbot::modules::discord_logger::DiscordLoggerPlugin::handle_disconnect_events did not run because it requested inaccessible system parameter Res<DiscordHttpResource>
2024-12-21T15:31:52.256544Z  WARN shaysbot::modules::discord_logger::DiscordLoggerPlugin::handle_block_update_packets did not run because it requested inaccessible system parameter Res<DiscordHttpResource>
2024-12-21T15:31:52.256548Z  WARN shaysbot::modules::discord_logger::DiscordLoggerPlugin::handle_block_break_packets did not run because it requested inaccessible system parameter Res<DiscordHttpResource>
2024-12-21T15:31:52.256563Z  WARN shaysbot::modules::discord_logger::DiscordLoggerPlugin::handle_add_entity_packets did not run because it requested inaccessible system parameter Res<DiscordHttpResource>
2024-12-21T15:31:52.257769Z  WARN Schedule GameTick has ambiguities.
1 pairs of systems with conflicting data access have indeterminate execution order. Consider adding `before`, `after`, or `ambiguous_with` relationships between these:
 -- GameTickPlugin::handle_game_ticks and DiscordLoggerPlugin::handle_check_for_updates
    conflict on: ["shaysbot::trackers::game_tick::GameTicks"]

2024-12-21T15:31:52.257805Z  WARN shaysbot::modules::discord_logger::DiscordLoggerPlugin::handle_check_for_updates did not run because it requested inaccessible system parameter Res<DiscordHttpResource>
2024-12-21T15:31:52.361205Z  INFO start:start_connection{start_shard=0 end_shard=0 total_shards=1}:initialize:boot{shard_info=[ShardId(0), ShardId(1)]}: Telling shard queuer to start shard 0
2024-12-21T15:31:52.574805Z  INFO run: [ShardRunner ShardInfo { id: ShardId(0), total: 1 }] Running

There are two ways by which you can fix the issue:

Access the resource using Option:

fn my_system(http_res: Option<Res<DiscordHttpRes>>) {
    if let Some(http) = http_res {
        // Now you can use the resource, once it is initialized
    }
}

If above method isn't suitable, then you can use DiscordHttpPlugin before DiscordBotPlugin to ensure that DiscordHttpRes is available before BReadyEvent is emitted.
NOTE: Using this approach, the DiscordHttpRes will be overwritten once, BReadyEvent is emitted


Replacing a deferred transaction is temporarily disabled.

how to deal with this problem?not allow to replace?

The first parameter to send_deferred is a contract controlled ID that represents the transaction at an internal level: https://github.com/EOSIO/eos/blob/d34240966309739914c4c2ae85c4c51bde5e8c12/contracts/eosiolib/transaction.h#L56
if that ID is already in use and you try to replace the deferred transaction you get this issue.
To prevent it, call cancel_deferred using that ID before calling send_deferred.  This is safe to do even if no transaction with that ID is currently scheduled:
https://github.com/EOSIO/eos/blob/d34240966309739914c4c2ae85c4c51bde5e8c12/contracts/eosiolib/transaction.h#L77


Load image match sequence problem

When using load image latch, the order of the images is changed and loaded, but can't the order be printed out properly.. For example, the order of the image and the file name start at 0,1,2,3,4,5 and the output comes in 0,5,3,2,1. ... I think I came in a few days ago in a different order, but now I've been coming in strangely for a few days. How do I do it? Please help me.

There hasn't been any changes to the Image Batch Load, so that's weird. The list of filenames is just passed through the sorted() function. Which would make the files align in Ascending Lexicographic and Numeric order.

Hi, I don't know if it the same problem, but I added a natural sorting function to get the proper sorting order (from this example), not sure if it is the best way though.


Add Rodux.createAction

We should introduce a more standardized way of creating and using Rodux actions to prevent common errors and more closely associate actions with the reducers that handle them. A file defining an action would look like this:
-- necessary requires to include Rodux

return Rodux.createAction(script.name, function(value)
	return {
		value = value,
	}
end)

Dispatching that action would look like this:
local MyAction = require(Actions.MyAction)

-- ...

store:Dispatch(MyAction(value))

A reducer that handles this action would look like this:
local MyAction = require(Actions.MyAction)

-- ...

if action.type == MyAction.name then
	-- change some state!
end

We should model Rodux.createAction off of the following Action.lua implementation:
return function(name, fn)
	assert(type(name) == "string", "A name must be provided to create an Action")
	assert(type(fn) == "function", "A function must be provided to create an Action")

	return setmetatable({
		name = name,
	}, {
		__call = function(self, ...)
			local result = fn(...)

			assert(type(result) == "table", "An action must return a table")

			result.type = name

			return result
		end
	})
end

I kind of like the fact that this proposal

Mirrors Rodux.createReducer
Does not affect users' ability to use actions normally

Having a formal pattern for this at least as an option might be nice.  Action is a thing I copy into a lot of projects in order to use it specifically with Rodux.
I also often like to add something like this to the __call function in the sample implementation that @SlartibartfastFjords provided:
setmetatable(result, {
   __index = function(table, key)
      error("Attempted to access nonexistent key " .. tostring(key) .. " on action " .. name, 2)
   end
})

That way if I ever make typos in reducers I'll find it right away instead of quietly setting things to nil.

We have to be careful with trying to define when table indexes are mistakes, since Lua doesn't differentiate between a value in a table being nil and it being an invalid key!

Right, I agree. I find it useful for my cases, but it's too presumptive to put in a common version.  I think having one at all would be nice though.

I'd like to bring this issue up again. I think since this helper is used as the standard way to create actions across so many different projects it seems sufficiently useful to add to the core Rodux API. This would stop this action helper being duplicated in so many different places. Alternatively we could make a separate action helper package but I think this will be harder to discover than something in the Rodux API.


Teleported tokens don't snap to grid if source and destination scene have different grid sizes

When tokens are teleported between scenes that use a different grid size the token won't be snapped to the grid (though the setting is activated). Instead it will be snapped to some position near the target cell but misaligned with the gird.
Steps to reproduce:

Create two scenes, one with gird size 128 pixels and one with grid size 70 pixels
Place a in teleporter in the 128 scene, filling exactly one cell of the grid
Place the corresponding out teleporter in the 70 scene, filling excatly one cell of the grid and make sure that "snap to grid" is enabled
Move a token into the teleporter

The token will appear near the teleporter, but will be misaligned with the grid.

Foundry VTT Version: 0.7.7
Multilevel Tokens Version: 1.3.4

I am also having this same issue

Having the same issue on
Foundry Virtual Tabletop                0.7.9
DnD5e - Fifth Edition System         1.2.0
Multilevel Tokens                            1.3.4

Fixed for upcoming release


when clustered  the  emqttd_dashboard port is close

On 0.10.0-beta , two node cluster
 run command :
./bin/emqttd_ctl cluster<EMAIL_ADDRESS>then the emqttd_dashboard port 18083 is close

Fixed. Please check PR: https://github.com/emqtt/emqttd/pull/261


Provide version for Visual Studio 2019

Hi,
I'm still running Visual Studio 2019. Would it be possible to provide the catppuccin theme also for VS 2019?
Best,
Stefan

@therealpyro I believe so, would you be willing to test a pre-release out to verify it works?

Sure, no problem. Do you need any special information, log files or similar?
(I have never tested/developed a VS extension, so not sure what you require)

You will need to download the file 'Catppuccin.VS.Themes.vsix'
If you then double-click it, you should open it with 'VS Version Selector' (If asked). The VSIX installed should run and prompt you to close Visual Studio and allow it to install.
After allowing the install to complete, you should be able to choose a theme from Tools>Theme>Catppuccin x (Where x is the 'flavor' you want).
Mostly, I'm just looking for some screenshots to verify it is working as intended.

I have attached some screenshots from a simple C++ project.  One thing I noticed is that the cursor is not translucent and blocks the underlying letter. But I am not sure, if this is an issue with catppuccin or with VsVim (which I also use).

Okay, the black cursor block is due to VsVim (it has its own configuration parameters for the cursor color). If I disable VsVim, I get the default cursor, which looks okay to me.

@therealpyro ok, perfect. Looks good. I don't personally use vim (I hate it with passion), but the color scheming for it could be set I think.
In any case, I'm very glad it works - feel free to use that version for now. When the new version is published, you will need to uninstall that version (via extensions menu) and install the new version so updates can be tracked.
Thanks again for helping test it out!

@therealpyro New version that supports 2019 is here:
https://marketplace.visualstudio.com/items?itemName=Catppuccin.CatppuccinVS

Thanks, much appreciated!


Generate Signature Method

Hello,
I have tried to generate signature from your library – for test my webhook and validate signature.
But I got invalid signature.
I attached my unit test code, What Am I doing wrong ?
I think the data that i send as the first param to GenerateSignature method, it is wrong.
Thanks!

Instructions for manually generating a hash can be found here:
https://developer.nexmo.com/concepts/guides/signing-messages#manually-generate-a-signature
This will let you generate a hash that can be used to validate an incoming SMS webhook. The biggest issue is usually the ordering of the parameters.
The above instructions only work for the SMS/Messaging API. This does not apply to the newer Messages API (which supports Facebook, WhatsApp, SMS, and more) as it uses a different authentication method. You will also need to make sure that you have contacted support and they have enabled webhook signatures for your account. Enabling signatures in the dashboard will only enable it for the sending of SMS, not any callbacks we make to your application.

Instructions for manually generating a hash can be found here:
https://developer.nexmo.com/concepts/guides/signing-messages#manually-generate-a-signature
This will let you generate a hash that can be used to validate an incoming SMS webhook. The biggest issue is usually the ordering of the parameters.
The above instructions only work for the SMS/Messaging API. This does not apply to the newer Messages API (which supports Facebook, WhatsApp, SMS, and more) as it uses a different authentication method. You will also need to make sure that you have contacted support and they have enabled webhook signatures for your account. Enabling signatures in the dashboard will only enable it for the sending of SMS, not any callbacks we make to your application.

Hi @baroved1 - looks like you posted a .NET question in our Java SDK :) - did you check out the https://github.com/nexmo-community/vonage-aspnetcore library we just published last month? It has a capability for adding a middleware component to validate inbound SMS messages. Also the InboundSms class has a ValidateSignature method you can use.

Hi @baroved1 - looks like you posted a .NET question in our Java SDK :) - did you check out the https://github.com/nexmo-community/vonage-aspnetcore library we just published last month? It has a capability for adding a middleware component to validate inbound SMS messages. Also the InboundSms class has a ValidateSignature method you can use.

yes, I use in ValidateSignature Method but i get false(Invalid Signature), I think i am missing something when i use in generateSignature Method.

yes, I use in ValidateSignature Method but i get false(Invalid Signature), I think i am missing something when i use in generateSignature Method.

closing as this issue was opened in the .NET SDKs repo.

closing as this issue was opened in the .NET SDKs repo.


Any plans to publish on crates.io?

Hi,
I'm experimenting with domain as a part of my effort to make generic/pluggable name resolution for tokio.  It would be easier to play with the library if it was published on the crates.io.
So are there issues with that?

I’m currently in a big re-factoring of the bits module as a result of actually using it for real in the resolver. As there’s only documentation and some tests left, that should be done quite soon.
After that, I’m planning on doing some more thorough tests on the resolver since so far I’ve only quickly checked the happy path.
Once I’m convinced that the resolver actually does what it says on the box, I’m happy to release 0.1.

There! Let’s hope it’s not too broken …

Great. Thanks!


Port to DNXCORE50

Initial port to dnxcore and fix issue with always using durable stream even when no path is specified.
Targets DNXCORE50 as AWS SDK still targets DNXCORE50 as of 5/13/2016

hi @DarrelH  - thanks for the PR.
we'll try to get to this sometime - this is very much a side project so might not be soon sorry.
cc @mstepura

No longer relevant


Adding interfaces for common AST elements

For now, we introduce only Statement, Expression, and EntityDeclaration (for classes, interfaces, structs).
They are also added in the Kolasu metamodel.

Fix #86

Looks OK to me!

Thanks!


.net standard 2.1 availability

#4815
Right now version google.cloud.speech.v1 version 2.0 is available for use by .net standard 2.0. Is there a time frame for a .net standard 2.1 version of google.cloud.speech.v1 for use by .net core 3 apps?

There's no need for that - you can use netstandard2.0 libraries in .NET Core 3.x.

Unable to resolve service for type 'Google.Cloud.Speech.V1.SpeechClient' while attempting to activate -- not sure why it's throwing this fit. Everything build fine, but it's during runtime that it throws this in the Program.cs > CreateHostBuilder(args).Build().Run();


google api allow users to connect when 3P cookies are not available

I use google/apiclient and version 2.12 for develop authentification system with google but in private navigation I found button blocked cookies enabled for default and this button blocked authentification and acces , where is solution with google api to allow user connect with gmail when blocked cookies in private navigation

Hi @mabaied, thanks for raising this issue.
I think if you should be able to use backend authentication: https://developers.google.com/identity/sign-in/web/backend-auth if your backend auth server is on the same TLD. Lemme know how that goes.

@mabaied closing this issue, looks like there's no more update to share.


Update staring-node to v5

Statsig-node v5 has removed export from stating-node/interfaces

Latest version now works with statsig-node v5


Bug: Official logos are not being leverage.

Describe the bug

This PR https://github.com/open-sauced/insights/pull/995 deleted the work ins PR https://github.com/open-sauced/insights/pull/966
Steps to reproduce

Topic thumbnails should be what appears above. The interest emojis should be different.
Affected services
insights.opensauced.pizza
Platforms
No response
Browsers
No response
Environment
No response
Additional context
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Contributing Docs

[ ] I agree to follow this project's Contribution Docs

git checkout -b good-icons-branch 6af4a5572e8fff14ba73d88b63a3a8156ac2efa8


Question TR missing TripService

See request/response https://gist.github.com/vasile/ee0ecf34664ea5decc2a7a0d315cc610

trip BE - ZH
departure time 09:31

The response is missing a service, IR36 from 09:36, see the screenshot below

Question

the service is missing due to a OJP 2.0 search optimisation?
if yes, what is the parameter that can tweak to show it? is it Params/OptimisationMethod

@vasile in OJP1.0, we just implemented a Feature called "CalcDirectConnections", where also service like the direct train IR35 is shown. It's not implemented yet in OJP2.0, but on the Roadmap, see: https://github.com/openTdataCH/ojp-sdk/issues/52

see also https://github.com/openTdataCH/ojp-sdk/issues/52

Released on INT: https://tools.odpch.ch/ojp-demo-v2/search?from=8507000&to=8503000&trip_datetime=2024-12-11 09:14&stage=v2-int


Validator doesn't handle some schema object properties

Hello,
I am using this wonderful validator to check my openapi 3.0 files, but I have a little issue.
When the validator finds a response schema object, it forces it to be followed by a named ref, and this is fine.
But per openpi 3.0 spec, one schema could be any kind of a list, oneOf, and that's exactly my use case. The validator is throwing me an error about that, but it's a valid thing to do.
So, with the following example:
components:
  responses:
    Test:
      description: Just a test
      content:
        'application/json':
          schema:
            oneOf:
              - $ref: "#/components/schemas/Status"
              - $ref: "#/components/schemas/Error"
          examples:
            ok:
              summary: No conflicts
              value: {"status": "OK"}
            error:
              summary: Conflicts
              value: {"error": "Houston! Help!"}

I would expect the validator to be able to handle it, but right now it throws: Response schemas should be defined with a named ref.
If someone needs more info about this, please don't mind to ask.
Regards.

It may be that the validator should not complain about this form of response schema, but the particular example you give looks like a very bad design. If this truly does represent your use case, I encourage you to rethink it. Specifically, it will be confusing a cumbersome to your users if you indeed return either a successful result or an error in the same response type. Typically only responses for 2xx status codes will be successful responses, and only response for non-2xx status codes will contain error data. Combining the two in a single response definition is mightily discouraged.

Hello Mike,
yeah, it was just an example, my real case is multiple success responses but with different response schemas/structures.
Because of the different schemas, I wrote one for each possible schema, and not filling a generic one with a lot of nullable: true.
This only happens once in my API, it's a very special endpoint with a lot of options.

Changes to the validator are being made to handle this issue, should be done soon.

Thanks guys!!!


Verify metadata mappings that need to be completed

Start a new deposit in sul-h2-qa, fill in all fields, deposit the object, go to argo-qa and look at the descMetadata datastream.  We need to determine which fields in the H2 deposit form are still missing and need to be mapped.
This should spawn new mapping tickets.

Connects to #240, #241, #340, #341

Here are my findings after depositing a fully fleshed out H2 work in stage.
The Good

uploaded two files to item, one hidden, one not, both with labels and all of this comes over ok
title looks ok
contact email looks ok
author looks ok
publisher looks ok
pub date looks ok
create date range looks ok
abstract looks ok
two keywords look ok
citation looks ok
one related work (citation) looks ok
one related link (DOI) looks ok
CC-BY license looks ok

The Bad

release immediately (to EVERYONE)... but rightsMD is set w/ stanford read instead?
article / journal subtypes of text type NOT MAPPED

This means #241 (waiting to be picked up), #240 (in progress), and #429 are the remaining mapping tendrils we know about. No other tickets need to be written at this time. FYI @jcoyne @peetucket @amyehodge
Closing


[Prototype] Using Configuration Monitor in Logging

Logging consumption side of the proposed changes to move away from IChangeToken, we should expose something similar for the equivalent of IFileProvider.Watch as well...
https://github.com/aspnet/Configuration/pull/412
@divega @lodejard thoughts?  I definitely think hiding the logic revolving change token subscriptions is worth doing if we can

Hi @HaoK, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by .NET Foundation and real humans are currently evaluating your PR.
TTYL, DNFBOT;


Remain compatible with tasty-quickcheck-0.9

Restoring compatibility after tasty-quickcheck-0.9 introduced a breaking change in its replay seed argument. The pragmas are a bit ugly, but the only alternative I could think of was to drop backwards compatibility.
Steps to reproduce with current master:

Set stack.yaml to
resolver: nightly-2017-06-18
extra-deps:
  - tasty-quickcheck-0.9

Run stack build

You should see the following error:

tasty-hspec-<IP_ADDRESS>: build (lib)
Preprocessing library tasty-hspec-<IP_ADDRESS>...
[1 of 1] Compiling Test.Tasty.Hspec ( Test/Tasty/Hspec.hs, .stack-work/dist/x86_64-osx/Cabal-<IP_ADDRESS>/build/Test/Tasty/Hspec.o )

/Users/jan/Documents/Programmierung/Haskell/tasty-hspec/Test/Tasty/Hspec.hs:91:32: error:
    • Couldn't match type ‘Int’
                     with ‘(Test.QuickCheck.Random.QCGen, Int)’
      Expected type: Maybe (Test.QuickCheck.Random.QCGen, Int)
        Actual type: Maybe Int
    • In the ‘replay’ field of a record
      In the expression:
        QC.stdArgs
          {QC.chatty = False, QC.maxDiscardRatio = max_ratio,
           QC.maxSize = max_size, QC.maxSuccess = num_tests,
           QC.replay = replay}
      In an equation for ‘qc_args’:
          qc_args
            = QC.stdArgs
                {QC.chatty = False, QC.maxDiscardRatio = max_ratio,
                 QC.maxSize = max_size, QC.maxSuccess = num_tests,
                 QC.replay = replay}
            where
                QuickCheckTests num_tests = T.lookupOption opts
                QuickCheckReplay replay = T.lookupOption opts
                QuickCheckMaxSize max_size = T.lookupOption opts
                QuickCheckMaxRatio max_ratio = T.lookupOption opts

--  While building package tasty-hspec-<IP_ADDRESS> using:
      /Users/jan/.stack/setup-exe-cache/x86_64-osx/Cabal-simple_mPHDZzAJ_<IP_ADDRESS>_ghc-8.0.2 --builddir=.stack-work/dist/x86_64-osx/Cabal-<IP_ADDRESS> build lib:tasty-hspec --ghc-options " -ddump-hi -ddump-to-file"
    Process exited with code: ExitFailure 1

Thanks!
Hmm... tasty seems to be rather opinionated about this replay arg now. I think breaking compatibility is the right move here, as I don't want surprising changes in behavior when interfacing with QuickCheck either directly through tasty-quickcheck, or proxying through tasty-hspec.
What do you think?

Oh, and don't mind the travis failures. I'm fixing them up now.

I did a few revisions on Hackage, now the matrix is a bit greener: https://matrix.hackage.haskell.org/package/tasty-hspec
Cheers,
Oleg, your Hackage Trustee.

@phadej Thanks! I will soon upload a version compatible with tasty-0.9.

Having a function in tasty-quickcheck certainly is the better approach. So I'd say just wait for <IP_ADDRESS>, bump up the min bounds and close this PR. But up to you, if you want to remain backwards copatible. 😉

@JanGe Roman did some quick work merging a patch and pushing 0.9.1, so I will just close this out and fix the code up. Thanks anyways for the patch. Cheers


Add simple healthcheck to app container nginx template

Hey, I just made a Pull Request!
The default app docker container setup does not have an explicit healthcheck. This adds a basic /healthcheck route in the nginx config template to support a simple health/liveness check.
:heavy_check_mark: Checklist

[x] All tests are passing yarn test
[x] Screenshots attached (for UI changes)
[x] Relevant documentation updated
[x] Prettier run on changed files
[x] Tests added for new functionality
[x] Regression tests added for bug fixes

@Rugvip - Would you mind taking another look at this?


RPC-Call getrawtransaction response differs to C# CLI response

Current behavior
Transaction references in the VIN's of the transaction response are missing the 0x prefix.
Tested on latest Python version 0.7.7 and also latest NEO CLI V2.8.0
 "vin": [
                {
                    "txid": "8d3cb1d3191014b21312698e33742d0cd7548bb95ca52ad51758a9f3b1e5e2bf",
                    "vout": 0
                },
                {
                    "txid": "b93453a52f0806809003b69a4b1e2d3278b5950f1cdb3a6176b563dd108f92c8",
                    "vout": 40
                }
            ],

Expected behavior
Expect:
 "vin": [
                {
                    "txid": "0x8d3cb1d3191014b21312698e33742d0cd7548bb95ca52ad51758a9f3b1e5e2bf",
                    "vout": 0
                },
                {
                    "txid": "0xb93453a52f0806809003b69a4b1e2d3278b5950f1cdb3a6176b563dd108f92c8",
                    "vout": 40
                }
            ],

How to reproduce
Python:
https://http://happynodes.f27.ventures/unconfirmedtxinfo/24/83b710d92074b4141e4b1a8e50c559fa15e31ee1bb066f4d75d294be2a6ed57e
NEO-CLI
https://http://happynodes.f27.ventures/unconfirmedtxinfo/445/83b710d92074b4141e4b1a8e50c559fa15e31ee1bb066f4d75d294be2a6ed57e
Or just do the standard JSON-RPC call
{
        "jsonrpc": "2.0",
        "method": "getrawtransaction",
        "params": ["0x83b710d92074b4141e4b1a8e50c559fa15e31ee1bb066f4d75d294be2a6ed57e",1],
        "id": 3
}

Your environment
Any - tested on multiple using Happynodes to test production nodes on Python and NEO-CLI.

Is this scheduled for release @ixje? Unfortunately Im going to have to keep my polyfill live until the whole network moves onto this version..

@wy we don't really have a fixed release schedule. It's a bit up to feeling (how long ago was last release, how severe are issues currently fixed in dev branch, etc)


Causes error in st.status

This code fails:
import time
import streamlit as st
import streamlit_nested_layout

with st.status("Downloading data..."):
    st.write("Searching for data...")
    time.sleep(2)
    st.write("Found URL.")
    time.sleep(1)
    st.write("Downloading data...")
    time.sleep(1)

With error:
TypeError: _nestable_block() got an unexpected keyword argument 'dg_type'
The code works if one removes streamlit_nested_layout

@mkleinbort-ic what is the version of Python & Streamlit that you are using?

Python 3.10.9, Streamlit 1.32.2

@mkleinbort-ic just pushed an update to adapt the code to streamlit 1.32.2.
New demo results in README. Can you check again?

@joy13975 Seems to be fixed - will let you know if I hit issues.
Also... regarding the speed of this fix: https://youtu.be/DHNfCXioIVU

Glad to hear.
It’s also a complete coincidence that I happen to have a few minutes for this 😉


feat(animation): Add animation polish

Description
This PR adds some light animation polish around the app as well as shows a possible animation organizational pattern to follow. Also a good amount more ux cleanup and code deletion:
https://user-images.githubusercontent.com/236943/225479480-47e8d172-a120-4b37-8e0a-f3072b301fa3.mp4
cc @artsy/mobile-platform
PR Checklist

[x] I have tested my changes on iOS and Android.
[x] I have included screenshots or videos, or I have not changed the UI.
[x] I have added tests, or my changes don't require any.
[x] I added an app state migration, or my changes do not require one.
[x] I have documented any follow-up work that this PR will require, or it does not require any.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Need help with something? Have a look at our docs, or get in touch with us.

Commented out the toast stuff for the time being while we wait for some eyes from design.


changed http:// to https to prevent mixed content

While visiting **https://**keycode.info/ i noticed fonts didn't load after taking a look into my devtools i noticed there was mixed content because of a font url prefixed with http:// so pretty much changed this url to https

Good catch! thank you


Don't claim linked get-pip version to exist

Fixes #149.
I know the issue was marked as wontfix, but I'm taking the chance you'll eventually reconsider :-)

Heck, wrong repo.


Persist Result

We should add the ability to persist instances of Result across sessions. This makes the interface consistent with all other mlte types that support this functionality.
This capability is critical for allowing mlte to interoperate with other ML workflows. For instance, if users wish to communicate results in some manner other than the MLTE report, then the ability to load all previously-collected Result instances provides this opportunity.

Update this issue to reference Result rather than ValidationResult to reflect rename.

Currently this can also be done through the ValidatedSpec, though in that case all results are put together. We would still have to evaluate if we want to persist results separately. One option is to add this ability, even if it is not used in the "standard" workflow.


Load obj file to a trimesh object

Hi,
Is there a way to load obj file to a trimesh object in cannon.js?
Thx

Actually, I want to do a collision detection project with cannon.js.
I used the bunny.js model in https://schteppe.github.io/cannon.js/demos/bunny.html
I made two bunnies moving toward each other to collide.
When they collided, the FPS dropped down to only 1. It is extremely slow.
I am wondering why. And I want to know if connon.js uses any AABB tree structure (Bounding Volume Hierarchy) to improve the efficiency.
Thank you very much.

@danielszh AABB is helpful when two bodies are distant, and you want to quickly verify that they're not close enough to bother examining closely. Where your FPS is dropping, the bodies were close enough that Cannonjs needed to examine every face on each model, and this is slow.
If your game/scene doesn't depend too much on highly realistic bunny collision simulation, you should consider simulating each model with a less complex shape. At the minimum, lowering the polycount is a good idea. Better would be to use a convex hull around each bunny, or a bounding box for best performance. Example code for generating convex hulls and bounding boxes for a model here.

@danielszh AABB is helpful when two bodies are distant, and you want to quickly verify that they're not close enough to bother examining closely. Where your FPS is dropping, the bodies were close enough that Cannonjs needed to examine every face on each model, and this is slow.
If your game/scene doesn't depend too much on highly realistic bunny collision simulation, you should consider simulating each model with a less complex shape. At the minimum, lowering the polycount is a good idea. Better would be to use a convex hull around each bunny, or a bounding box for best performance. Example code for generating convex hulls and bounding boxes for a model here.

If my scene  depend on highly realistic bunny collision simulation,what should i do to improve performance


Is there is a native way to automate selection of USB/tcpip conection?

Problem: You can't have an automated selection of best possible connection with the phone.
So there is -select-usb and --select-tcpip, and if your phone is conected thrue USB and tcpip, you forsed to use one of them or --serial.
In device.md i did not found a native way to "if USB is connected then select USB and if it does not then select tcpip".
Describe the solution you'd like
Command that alows to automate devide selection for example "--select-usb-tcpip".
Behavior:

If there is only 2 devices: one usb and another tcpip then usb is selected.
If only one then: that one is selected.

There is no such command to configure a more complex behavior. Just -d and -e like on adb.
But if the initial connection cannot be established, scrcpy terminates with exit code 1 (while if it disconnects afterwards, the exit code is 2). So you can first run scrcpy -d and if it returns 1 then run scrcpy -e. In bash:
scrcpy -d; [[ $? == 1 ]] && scrcpy -e

(to be adapted for other script languages)


[GUI] Masternodes tab date format

Win7 64bit - v<IP_ADDRESS>-1ceca7e
Masternodes tab -> date format is different than transactions tab date format.
I think it should follow transactions date format.

heh, good catch! 👍

Fixed with https://github.com/dashpay/dash/pull/799


Add IBDesignable

Allow the label to be used in interface builder

I think the use_frameworks line has broken the Travis build somehow. Can you remove that, then I'll merge this in.

use_frameworks removed

Thanks for making this change!

Thank you for this amazing library!


CapWords naming sytle

Is there a reason why the names of the contracts and libraries don't begin with a capital letter?
E.g. stdCheats --> StdCheats

Whoa, this issue is old; I barely knew how to use Foundry back then.
But, yeah, I'm still for this.

Closing as #wontfix per conversation here. LMK if anyone disagrees / feels strongly about re-opening.

Reopening this as something we may implement as part of breaking changes as discussed in https://github.com/foundry-rs/forge-std/pull/126#discussion_r924699853


Revealing pre-images beyond the end of the enrollment cycle

Now that the pre-images are based on height we can reveal them into the next cycle and thus reduce the risk of being slashed when the next cycle starts.

Good. It would be better to separate into more atomic PRs, like a PR for trivial change and a PR for revealing pre-images if there are so many commits in a PR.

I agree but whilst we do not have green builds it is difficult to get those trivial changes approved. I will split this once I have green again. Until then I need the changes to help with the debugging.

Closing as it has been split up.


Rows reordering not working after columns visibility changed with 'fieldOption' method.

Hi!
I've used sortable from demo together with showing/hiding columns. And found that rows become inactive after .jsGrid('fieldOption','field_name','visible',true/false) called on any field/column.

Yes. This emo uses jquery sortable plugin. When field is shown or hidden the grid renders rows again. So the reordering won't work. The possible fix could be initializing sortable in onRefreshed callback. Then each time grid rows are rendered the sortable will be initialized.
Maybe it really make sense to improve the demo. Thanks for the report.

Not at all.
Thanks for jsGrid.
Placing sortable in onRefreshed solves the issue.


Regex results do not match nesting of groups

Version
110.99.4 (Latest)
Operating System

[X] Any
[ ] Linux
[ ] macOS
[ ] Windows
[ ] Other Unix

OS Version
No response
Processor

[X] Any
[ ] Arm (using Rosetta)
[ ] PowerPC
[ ] Sparc
[ ] x86 (32-bit)
[ ] x86-64 (64-bit)
[ ] Other

System Component
SML/NJ Library
Severity
Minor
Description
From the MatchTree structure:

The tree structure corresponds to the nesting of groups in the regular expression.

However this does not seem to be implemented.
Transcript
- val re = Option.valOf (StringCvt.scanString AwkSyntax.scan "(a(b)a)c")
val re = Concat [Group (Alt [Concat [Char #"a", Group (Alt [#]), Char #"a"]]), Char#"c"] : syntax
- StringCvt.scanString (ThompsonEngine.find (ThompsonEngine.compile re)) "abac";
val it = SOME (Match ({len=4,pos=0}, [])) : StringCvt.cs match option

Expected Behavior
- val re = Option.valOf (StringCvt.scanString AwkSyntax.scan "(a(b)a)c")
val re = Concat [Group (Alt [Concat [Char #"a", Group (Alt [#]), Char #"a"]]), Char#"c"] : syntax
- StringCvt.scanString (ThompsonEngine.find (ThompsonEngine.compile re)) "abac";
val it = SOME (Match ({len=4,pos=0}, [Match ({len=3,pos=0}, [Match ({len=1,pos=1}, [])])])) : StringCvt.cs match option

Steps to Reproduce
See transcript
Additional Information
I'm not sure if the regexp module is used, since the BackTrackEngine doesn't seem to be maintained.
If this is the intended behavior, I would just like to see the expected behavior documented properly.
Email address
<EMAIL_ADDRESS>

Currently, only the BackTrackEngine structure provides support for groups.  I'm converting this to a enhancement request.

As someone who has not used the RegExp library, I don’t have much to contribute.  But I am certainly open to volunteer contributors adding functionality and improving or augmenting the documentation of the libraries.  In other words, I think smlnj-lib
should be treated as “open source” in the broad sense (read/write rather than read only).  I also think it is good to have an
“owner” or “editor” who is responsible for quality control of contributions to particular libraries.
Dave

On Mar 5, 2024, at 3:40 PM, John Reppy @.***> wrote:
Currently, only the BackTrackEngine structure provides support for groups. I'm converting this to a enhancement request.
—
Reply to this email directly, view it on GitHub https://github.com/smlnj/legacy/issues/301#issuecomment-1979819514, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAGXNPLOZRZEEIG33JZ3OELYWZJVJAVCNFSM6AAAAABEIAQG62VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZZHAYTSNJRGQ.
You are receiving this because you are subscribed to this thread.

David MacQueen
@.***


Android SVG Image Size not respected

Hi,
It works great on IOS. Thanks.
However, on Android the SVG image size is not respected. It displays a larger image.
In my style I've specified the width and height {width:32,height:32}.
The beginning of my svg Image code is the following  :
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="none" x="0px" y="0px" width="32px" height="32px" viewBox="0 0 32 32"}>
Here you should simply see a cross in the circle, but you can only see the top left of the cross.

Hi. I have updated react-native-remote-svg.
Now it works.
My config:
Test on Android Platform 23.
React 0.54.1
React Native 2.0.1
React Native Remote SVG 1.1.1

@gwenfisch Thank you for updating your issue. You just saved me probably hours of troubleshooting :)


InteractiveViewer pans and scales uncontrollably on mobile browsers

Hi there! I'm making a simple pixel art app (web preview available here) and I encountered a weird issue with InteractiveViewer on mobile web. If you refresh the page and then zoom before doing anything, then trying to pan with a single finger will cause InteractiveViewer to jump around uncontrollably. It will pan despite panning being disabled in the code sample below and it will also scale even though InteractiveViewer does not have a single-finger scaling gesture as far as I know.
Also, if you pan before zooming, then the problem does not occur.
I've only managed to reproduce it in iOS/iPadOS browsers. I've tried the following so far:

installing the app on iOS: no issues
installing the app on iPadOS: no issues
running the app on macOS: no issues
running the app in Safari & Chrome on macOS: no issues

At first I thought it might have been related to Canvaskit, since that's what I'm building my project with but building with html-renderer does not change anything.
You can experience the issue in my app(link here), but the code sample below is sufficient to reproduce it.
I have also attached a screen recording below. Thanks in advance!
https://user-images.githubusercontent.com/56913364/197798990-fa267e30-e457-4db7-9250-976410cc73d5.MP4
Steps to Reproduce

Execute flutter run -d web-server --web-port 8080 --web-hostname <IP_ADDRESS> on the code sample and then open the app in your mobile browser via your local network
Zoom somewhere on the page before you do anything else, it's easier to zoom on the background. Now try to pan with a single finger. At this point nothing should happen since InteractiveViewer has its panEnabled property set to false.
Now refresh the page, and then repeat a few times.

Expected results:
After zooming, panning shouldn't work at all and the text color should switch to red.
Actual results:
Zooming then panning after the refresh causes InteractiveViewer to pan and scale uncontrollably, and the text color does not change.

Code sample

import 'package:flutter/material.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const SafeArea(
        child: Scaffold(
          backgroundColor: Colors.white,
          // backgroundColor: Colors.black,
          body: ProblemCausingWidget(),
        ),
      ),
    );
  }
}

class ProblemCausingWidget extends StatefulWidget {
  const ProblemCausingWidget({
    super.key,
  });

  @override
  State<ProblemCausingWidget> createState() => _ProblemCausingWidgetState();
}

class _ProblemCausingWidgetState extends State<ProblemCausingWidget> {
  bool isTextHighlighted = false;
  @override
  Widget build(BuildContext context) {
    return SizedBox(
      height: MediaQuery.of(context).size.height,
      width: MediaQuery.of(context).size.width,
      child: InteractiveViewer(
        panEnabled: false,
        child: GestureDetector(
          onVerticalDragUpdate: _highlightText,
          onHorizontalDragUpdate: _highlightText,
          onHorizontalDragEnd: _restoreText,
          onVerticalDragEnd: _restoreText,
          child: FittedBox(
            child: Text(
              "Hey",
              style: TextStyle(
                color: isTextHighlighted ? Colors.red : Colors.black,
              ),
            ),
          ),
        ),
      ),
    );
  }

  void _restoreText(_) => setState(() {
        isTextHighlighted = false;
      });

  void _highlightText(_) => setState(() {
        isTextHighlighted = true;
      });
}

Logs

❯ flutter run -d web-server --web-port 8080 --web-hostname <IP_ADDRESS> --verbose
[  +43 ms] executing: sysctl
hw.optional.arm64
[   +9 ms] Exit code 0 from: sysctl
hw.optional.arm64
[        ] hw.optional.arm64: 1
[   +2 ms] executing:
[/Users/lemomar/.asdf/installs/flutter/
3.3.4-stable/] git -c
log.showSignature=false log -n 1
--pretty=format:%H
[  +10 ms] Exit code 0 from: git -c
log.showSignature=false log -n 1
--pretty=format:%H
[        ]
eb6d86ee27deecba4a83536aa20f366a6044895
c
[        ] executing:
[/Users/lemomar/.asdf/installs/flutter/
3.3.4-stable/] git tag --points-at
eb6d86ee27deecba4a83536aa20f366a6044895
c
[  +17 ms] Exit code 0 from: git tag
--points-at
eb6d86ee27deecba4a83536aa20f366a6044895
c
[        ] 3.3.4
[  +22 ms] executing:
[/Users/lemomar/.asdf/installs/flutter/
3.3.4-stable/] git rev-parse
--abbrev-ref --symbolic @{upstream}
[  +11 ms] Exit code 0 from: git
rev-parse --abbrev-ref --symbolic
@{upstream}
[        ] origin/stable
[        ] executing:
[/Users/lemomar/.asdf/installs/flutter/
3.3.4-stable/] git ls-remote --get-url
origin
[  +10 ms] Exit code 0 from: git
ls-remote --get-url origin
[        ]
https://github.com/flutter/flutter.git
[  +27 ms] Unable to locate an Android
SDK.
[   +2 ms] executing:
[/Users/lemomar/.asdf/installs/flutter/
3.3.4-stable/] git rev-parse
--abbrev-ref HEAD
[  +13 ms] Exit code 0 from: git
rev-parse --abbrev-ref HEAD
[        ] stable
[   +3 ms] executing: sw_vers
-productName
[  +10 ms] Exit code 0 from: sw_vers
-productName
[        ] macOS
[        ] executing: sw_vers
-productVersion
[   +9 ms] Exit code 0 from: sw_vers
-productVersion
[        ] 13.0
[        ] executing: sw_vers
-buildVersion
[   +9 ms] Exit code 0 from: sw_vers
-buildVersion
[        ] 22A380
[        ] executing: uname -m
[   +3 ms] Exit code 0 from: uname -m
[        ] arm64
[  +23 ms] Artifact Instance of
'AndroidGenSnapshotArtifacts' is not
required, skipping update.
[        ] Artifact Instance of
'AndroidInternalBuildArtifacts' is not
required, skipping update.
[        ] Artifact Instance of
'IOSEngineArtifacts' is not required,
skipping update.
[        ] Artifact Instance of
'FlutterWebSdk' is not required,
skipping update.
[   +1 ms] Artifact Instance of
'WindowsEngineArtifacts' is not
required, skipping update.
[        ] Artifact Instance of
'MacOSEngineArtifacts' is not required,
skipping update.
[        ] Artifact Instance of
'LinuxEngineArtifacts' is not required,
skipping update.
[        ] Artifact Instance of
'LinuxFuchsiaSDKArtifacts' is not
required, skipping update.
[        ] Artifact Instance of
'MacOSFuchsiaSDKArtifacts' is not
required, skipping update.
[        ] Artifact Instance of
'FlutterRunnerSDKArtifacts' is not
required, skipping update.
[        ] Artifact Instance of
'FlutterRunnerDebugSymbols' is not
required, skipping update.
[  +28 ms] Artifact Instance of
'AndroidGenSnapshotArtifacts' is not
required, skipping update.
[        ] Artifact Instance of
'AndroidInternalBuildArtifacts' is not
required, skipping update.
[        ] Artifact Instance of
'IOSEngineArtifacts' is not required,
skipping update.
[   +1 ms] Artifact Instance of
'WindowsEngineArtifacts' is not
required, skipping update.
[        ] Artifact Instance of
'MacOSEngineArtifacts' is not required,
skipping update.
[        ] Artifact Instance of
'LinuxEngineArtifacts' is not required,
skipping update.
[        ] Artifact Instance of
'LinuxFuchsiaSDKArtifacts' is not
required, skipping update.
[        ] Artifact Instance of
'MacOSFuchsiaSDKArtifacts' is not
required, skipping update.
[        ] Artifact Instance of
'FlutterRunnerSDKArtifacts' is not
required, skipping update.
[        ] Artifact Instance of
'FlutterRunnerDebugSymbols' is not
required, skipping update.
[  +19 ms] executing: sysctl
hw.optional.arm64
[   +3 ms] Exit code 0 from: sysctl
hw.optional.arm64
[        ] hw.optional.arm64: 1
[        ] executing: /usr/bin/arch
-arm64e xcrun xcodebuild -version
[ +118 ms] Exit code 0 from:
/usr/bin/arch -arm64e xcrun xcodebuild
-version
[        ] Xcode 14.0.1
           Build version 14A400
[  +26 ms] Skipping pub get: version
match.
[  +59 ms] Generating
/Users/lemomar/dev/flutter/problem_show
case/android/app/src/main/java/io/flutt
er/plugins/GeneratedPluginRegistrant.ja
va
[  +40 ms] Launching lib/main.dart on
Web Server
           in debug mode...
[  +48 ms] Updating assets
[  +38 ms] Waiting for connection from
debug
           service on Web Server...
[ +128 ms] <- reset
[   +2 ms]
/Users/lemomar/.asdf/installs/flutter/3
.3.4-stable/bin/cache/dart-sdk/bin/dart
--disable-dart-dev
/Users/lemomar/.asdf/installs/flutter/3
.3.4-stable/bin/cache/dart-sdk/bin/snap
shots/frontend_server.dart.snapshot
--sdk-root
/Users/lemomar/.asdf/installs/flutter/3
.3.4-stable/bin/cache/flutter_web_sdk/
--incremental --target=dartdevc
--debugger-module-names
--experimental-emit-debug-metadata
-DFLUTTER_WEB_AUTO_DETECT=true
--output-dill
/var/folders/qp/zsnqt5ss0t1ddggg2589l_j
m0000gn/T/flutter_tools.mYT6Na/flutter_
tool.Bp7HNR/app.dill --libraries-spec
file:///Users/lemomar/.asdf/installs/fl
utter/3.3.4-stable/bin/cache/flutter_we
b_sdk/libraries.json --packages
/Users/lemomar/dev/flutter/problem_show
case/.dart_tool/package_config.json
-Ddart.vm.profile=false
-Ddart.vm.product=false
--enable-asserts
--track-widget-creation
--filesystem-root
/var/folders/qp/zsnqt5ss0t1ddggg2589l_j
m0000gn/T/flutter_tools.mYT6Na/flutter_
tools.mhs5SC --filesystem-scheme
org-dartlang-app --initialize-from-dill
build/b1b715402d823b7fd5c2b68d2edcb2ce.
cache.dill.track.dill --platform
file:///Users/lemomar/.asdf/installs/fl
utter/3.3.4-stable/bin/cache/flutter_we
b_sdk/kernel/flutter_ddc_sdk_sound.dill
--verbosity=error --sound-null-safety
[   +7 ms] <- compile
org-dartlang-app:/web_entrypoint.dart
[+9562 ms] Waiting for connection from
debug service on Web Server...
(completed in 9.7s)
[        ] Synced 30.7MB.
[        ] <- accept
[        ] Caching compiled dill
[  +10 ms] lib/main.dart is being
served at
           http://<IP_ADDRESS>:8080
[        ] The web-server device
requires the Dart
           Debug Chrome extension for
debugging.
           Consider using the Chrome or
Edge
           devices for an improved
development
           workflow.
[   +2 ms] 🔥  To hot restart changes
while
           running, press "r" or "R".
[        ] For a more detailed help
message, press
           "h". To quit, press "q".

❯ flutter analyze
Analyzing problem_showcase...
No issues found! (ran in 1.2s)

[✓] Flutter (Channel stable, 3.3.4, on macOS 13.0 22A380 darwin-arm, locale en-FR)
    • Flutter version 3.3.4 on channel stable at /Users/lemomar/.asdf/installs/flutter/3.3.4-stable
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision eb6d86ee27 (3 weeks ago), 2022-10-04 22:31:45 -0700
    • Engine revision c08d7d5efc
    • Dart version 2.18.2
    • DevTools version 2.15.0

[✗] Android toolchain - develop for Android devices
    ✗ Unable to locate Android SDK.
      Install Android Studio from: https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK components.
      (or visit https://flutter.dev/docs/get-started/install/macos#android-setup for detailed instructions).
      If the Android SDK has been installed to a custom location, please use
      `flutter config --android-sdk` to update to that location.

[✓] Xcode - develop for iOS and macOS (Xcode 14.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14A400
    • CocoaPods version 1.11.3

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

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

[✓] VS Code (version 1.72.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.50.0

[✓] VS Code (version 1.72.0-insider)
    • VS Code at /Applications/Visual Studio Code - Insiders.app/Contents
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (3 available)
    • iPad (mobile)   • 00008027-000A31A83C05802E • ios            • iOS 16.1 20B82
    • macOS (desktop) • macos                     • darwin-arm64   • macOS 13.0 22A380 darwin-arm
    • Chrome (web)    • chrome                    • web-javascript • Google Chrome 106.0.5249.119

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

! Doctor found issues in 1 category.

Hi @lemomar This is a known issue being tracked at #111468 with similar Steps to reproduce and behavior.
Closing this issue as a duplicate, so please follow up on it for further updates. Thank you!


Cannot open LP Editor

Description

wen /lp editor is inputed, the response is (lp editor.... is running
Reproduction steps

do /lp editor
Expected behaviour

the webpage to open
Environment details

Luckperms latest version, paper 1.7.1

Server type/version: ExampleSpigot running version 1.12.2 build ???
LuckPerms version: v???

Any other relevant details

Please put some effort into supplying the requested information. I cannot help you without it.


[npm-installer] support more than tar.gz

cargo-dist currently lets you select your binary archive format:

.zip (default windows)
.tar.gz
.tar.xz (default unix)
.tar.zstd

But the npm installer can only handle .tar.gz! This is a limitation inherited from the binary-install npm package (yes the "fork" is the Real One), which in turn inherits the limitation from the npm tar package which in turn inherits the limitation from "node-js bundles a gzip encoder/decoder and that's all we use".
As a workaround I will be making the new interactive UX default to .tar.gz compression if you enable npm installers, but we should really deal with by fixing/forking/ditching binary-install.

We have now forked/vendored binary-install, and so we have the ability to fix this.
The JS code that needs to change is here:
https://github.com/axodotdev/cargo-dist/blob/e64776d69f7dda13f4e7dcb99d2714efc187740a/cargo-dist/templates/installer/npm/binary-install.js#L83-L91
Given the above researach I think we should just invoke on-end-user-system CLIs for greater support. This would make the npm installer as reliable as the shell/powershell installers.
Relevant shell code:
https://github.com/axodotdev/cargo-dist/blob/e64776d69f7dda13f4e7dcb99d2714efc187740a/cargo-dist/templates/installer/installer.sh.j2#L209-L220
Relevant Powershell code:
https://github.com/axodotdev/cargo-dist/blob/e64776d69f7dda13f4e7dcb99d2714efc187740a/cargo-dist/templates/installer/installer.ps1.j2#L166-L177


Fix some MissingPluginExceptions in tests

Please can you publish this to pub.dev?

Please can you publish this to pub.dev?

Will do

Can you bump version and update changelog

Yeah np


Train time per sample grows with dataset tensor size, even though it is always cropped to the same size

Please make sure that this is a bug. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:bug_template
System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow):
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Ubuntu 18.04
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:
TensorFlow installed from (source or binary): binary
TensorFlow version (use command below): 2.0
Python version: 3.7.5
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version:
GPU model and memory:

Describe the current behavior
When using dataset.from_tensor_slices on a tensor with shape (1, 10000, 1000) then .map(tf.image.random_crop((20, 20))), training is 100 times faster par one iteration than when using  dataset.from_tensor_slices on a tensor with shape (1, 100000, 10000)
Describe the expected behavior
I expect that as long as the tensor can be kept in RAM, its size would not affect performance (putting aside tensors small enough to be kept in CPU cache)
Code to reproduce the issue
This is the simplest form of data and model that reproduces this.. not very interesting, but I really can't see any reason why this would be so much slower when the ones and zeros are bigger.
ones = tf.ones((1, 10000, 1000))
zeros = tf.zeros((1, 10000, 1000))
data = tf.data.Dataset.from_tensor_slices(
    (
        ones,
        tf.ones((1, 1))
    )
).concatenate(
    tf.data.Dataset.from_tensor_slices(
        (
            zeros,
            tf.zeros((1, 1))
        )
    )
).map(lambda x, y: (tf.image.random_crop(x, (20, 20)), y)).repeat().batch(10)

x = tf.keras.layers.Input((20, 20))
y = tf.keras.layers.Dense(1, tf.keras.activations.sigmoid)(x)
model = tf.keras.models.Model(inputs=[x], outputs=[y])
model.compile(loss='mean_squared_error', optimizer='ADAM')
model.fit(x=data, epochs=100, steps_per_epoch=100, validation_data=validation, validation_steps=3)

Other info / logs
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached.

Tried running the code in colab, did not see any performance issue. kindly find the gist of colab.Thanks!

@oanush Did you try changing the size of ones and zeros? It drastically affects the training time..
I have added another cell to your gist, the only difference being, zeros and one in the first cell have 100 times more values. Since we randomly crop them before processing them in our network, the original size should not affect performance. But try comparing the training performance of these two cells, and you'll find that one take 100 times more time to train.

The problem seems to stem from dataset's map method, not from the random_crop... I've added a timeit on the random_crop, and changing the input size of that function has no repercussions, as expected.
So it would seem that the the map method is the inefficient link here.

I have opened a new issue, since this one's title, as well as example code distracts from the root cause:  see issue #35135

The issue was due to the use of from_tensor_slices, which apparently means the tensors passed as arguments to from_tensor_slices are being copied on each iteration over the dataset.
Replacing from_tensor_slices with from_tensors fixed the performance issue.


hdf5 1.14.1, petsc 3.19

closes #184
closes #183
closes #188

@conda-forge-admin please rerender

every build is passing, but tests are failing on mac with a weird link error to libsystem_network

@conda-forge-admin please rerender

seems to have fixed the failing osx-64 builds, applied automerge assuming the slow emulated builds pass like they have been.
Need to investigate the linkage problem, but I'm guessing it's ultimately in petsc overzealously linking things it doesn't need, as usual, and finding more things to over-link when the compiler version is different from what petsc itself is compiled with.


Update dockerfile for adservice to use different base images

Changes
Minor change for the adservice: Similar to frauddetectionservice this makes use of the gradle image to save some time downloading gradle (since both use the same gradle image then this even saves some extra time downloading the image). It also replaces the jdk with a jre image for the final image, saves some ~190MB (518 down to 328)

10s build time improvement and same size reduction. lgtm

followed @jack-berg's comment and changed the builder once again

Thanks @svrnm and @jack-berg 🔥


Add version bump script

@kattrali updated the changeset. I've kept the cocoapods gitignore as otherwise Pods could be added to VCS.

We can put Pods in the root .gitignore file to the same effect.


(FACT-1244) Correctly report Xen Dom0 vs DomU

Previously, our virt-what reader would return the first line of output
it found. For cases where the machine is Xen, however, this first line
is simple "xen", with Dom0 or DomU information being provided
after. In that case we want to skip the first line and move on to the
detailed hypervisor info.

So this didn't lead to a generalized approach to virt-what parsing?

CLA signed by all contributors.


Sideeffects: false

Adding "sideEffects": false to package.json should make it tree-shakeable by Webpack, right?

:tada: This issue has been resolved in version 9.2.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Support i18n…?

🤔

@NeKoOuO
The data source I am using only supports Japanese and English, so it's difficult to achieve perfect internationalization.
I will make an effort to support multiple languages in other areas of this app.

I know,the fact that I actually mean is App language


New Validate tool issue (v2.11.4): Warning about ValueConfidence (IsoValueLines) definition missing from Glossary

Running the tool on a database that previously passed validation gives the following Warning:
Warnings
    Terms in GeMS-like fields that do not have definitions in the Glossary.
    All fields ending in type, method, or confidence are checked.
    Please define these terms in Glossary, provide a look-up table, or at minimum define in the metadata
    table IsoValueLines, field ValueConfidence, value 2.0
    table IsoValueLines, field ValueConfidence, value 5.0

The suggestion to add a definition to the Glossary for ValueConfidence seems like a good idea to me, so I did just that. Unfortunately, this causes an error and does not remove the Warning:
Level 3 errors
    3.5 Terms in Glossary that are not used in geodatabase
    ValueConfidence
Warnings
    Terms in GeMS-like fields that do not have definitions in the Glossary.
    All fields ending in type, method, or confidence are checked.
    Please define these terms in Glossary, provide a look-up table, or at minimum define in the metadata
    table IsoValueLines, field ValueConfidence, value 2.0
    table IsoValueLines, field ValueConfidence, value 5.0

I understand that if a GeMS-like "type", "method", or "confidence" attribute was used and populated with a text string, that term would need to be defined in the Glossary like other terms. But the ValueConfidence attribute is a special case where the value in the field is not really a definable term, the attribute itself needs explanation as to the purpose of the values contained within it.
Can this be adjusted so if the field ValueConfidence occurs in the database a matching Glossary entry is perceived as valid (and suppress the Warning)? Or should it be ignored by the validation aside from being non-null (e.g., LocationConfidenceMeters)?

The problem is that ValueConfidence is a number field (float) and Term is text so values never match. I changed the tool to only check text fields. See v2.12.1

Excellent.  And I will just make sure that ValueConfidence has its meaning explained in the feature class metadata.


fix: utc timing for initial command log as well

Summary
Simplest fix for timezone inconsistencies
**Related issues: #428
Changes these areas

[x] Bugfixes
[ ] Feature behavior
[ ] Command line interface
[ ] Configuration options
[ ] Internal architecture
[ ] Archived data layout on disk

I'm game, lets try it. If it doesn't fix it, then we go back to trying to reproduce it and debugging it the methodical way 😉.


feat: Web UI for ML Stable Diffusion

Simply added a web UI to make ML Stable Diffusion easier to use.
// The seed parameter used to reproduce the results was removed
pr: https://github.com/apple/ml-stable-diffusion/pull/55

Perhaps for long-term maintenance, it would be better to contribute to AUTOMATIC1111/WebUI? Apple hasn't responded to a single PR yet, while AUTOMATIC1111 seems much more open to contributions.
https://github.com/AUTOMATIC1111/stable-diffusion-webui/discussions/5461#discussioncomment-4365479

Maybe branch this to another repo? Also, I’m using SD 2.0 which is 768x768. Glad you put together a web UI!

Also, maybe there’s a bridge for Auto1111 - he said he didn’t have time to create it.

My performance report was kind of a false alarm. I tested WebUI with the exact same settings as Apple's ML stable diffusion. It does consume 600 J of energy/image when running entirely on GPU, but the PyTorch version completes in 26 seconds. That compares favorably to the minimum 24 seconds with this repository and better than the 37 seconds with default .cpuAndGPU. Also, 3 hours of generating images nonstop on battery isn't that bad.
Settings changed:

Sampling steps: 20 -> 50
Sampling method: Euler a -> PLMS
CFG Scale: 7 -> 7.5

Batch Size
Startup
Inference
Total

1
2 sec
24 sec
26 sec

2
2 sec
48 sec
50 sec

@philipturner my personal opinion is that the ML Stable Diffusion project should have a simple web interface for ease of use.
It is a good choice to integrate ML into project AUTOMATIC1111/stable-diffusion-webui. I have tried it in the previous, and it is indeed more convenient to use.
Maybe after the project PR is merged, create a new PR for this. After all, if this PR is not accepted, it will feel more difficult to merge more complex implementations.

@AntonioCiolino SD released 2.1,  3 days ago,
I recently wrote two blog posts about "sd in web ui".
Maybe later, I can write a new article on how to integrate this kind of project into AUTOMATIC1111/stable-diffusion-webui with relatively few changes.

If you could mention on the benefit of power efficiency from using the neural engine, that would be cool. Otherwise, I don't see much to gain from investing such time into improving AUTO 1111's Web UI.

If the project is not convenient and easy to use, fewer people will use it, and fewer people will use it, and fewer people will contribute and improve the project.
Therefore, the usability and ease of use in the initial stage of the personal opinion project are still very important.
If there is no "interface", using this project currently, it takes a few minutes to generate each image through the pipeline (bootstrap, loading models, inferences, change prompt text in command).
For 80% of people, after running it once, they may not want to waste any more time.
Especially, if he has other equipment and models to choose from :D
@philipturner

I do understand where you’re coming from. I’ve just found Stable Diffusion WebUI sufficient for my research purposes. I wish you well on your efforts though!

@soulteary Hello, I'd like webui with CoreML caused I only have a mac, does there a way to use it now?


Inconsistent display of save/cancel buttons in work item detail display

Can we change the order (left/right) of the buttons consistent? See attached screenshot.

@nimishamukherjee has done it. It's on the PR. SO we can close it.


Deprecated import from flask.ext.sqlalchemy

This import is throwing a deprecation warning with Flask 0.11
flask_debugtoolbar/panels/sqlalchemy.py:2:    from flask.ext.sqlalchemy import get_debug_queries, SQLAlchemy

And your PR : https://github.com/mgood/flask-debugtoolbar/pull/94

Jup, that warning is annoying (I see it twice on startup).

Fixed in #93 and #97

Can you make a release with this change, or is there a milestone planned for it?  Thank you!

Fix is now live on Pypi under 0.10.1


Service Member clicks "Add Shipment" button and can add Date + Location information.

Description
This PR addresses two Pivotal stories (see reference below) that are focused on (1) #161467476 -service member clicks on "Add shipment" button and (2) #161732093 - service member can add pickup, origin and destination information for PPM shipment.
Reviewer Notes

This PR involves two different stories.
The Complete Button on the Add Dates+Locations page (see screenshot) will be Next once more pages are added to the flow. The way the WizardPageForm logic works assumes that the last page's button will be complete. Given that this is the first and only page in the flow currently, the Complete button is there.
Add Shipment will always show on the / route given that there is no Move Summary for a HHG_PPM move currently. Please see conversation for more details.
Removes routes /ppm-transition and /hhg-transition, as well as unit tests referencing these routes, as they are no longer being used.
Converting a move to HHG_PPM on the SM side will also affect the tsp/office apps and what queues it falls into

Setup

make server_run
make db_populate_e2e
make client_run
Local log in to a user with a completed HHG move.
Login will redirect you to the Move Summary page.
Click + Add PPM Shipment

Code Review Verification Steps

[ ] Request review from a member of a different team.
[ ] Have the Pivotal acceptance criteria been met for this change?
[ ] Get design approval from SBD - this will happen early 11/9/18

References

Pivotal story for this change
Pivotal story for this change

Screenshots

Still some work to be done here, but I agree with merging this in and finishing it out in a separate PR. The feature is hidden behind a flag for now in production, so we can take the time to finish writing good tests in a separate PR. Merging now will unblock other work.

Ok no problem. Thanks everyone for the feedback. It sounds like the work that's left on this is primarily concerned with testing, per @kahlouie's and @kilbergr's comments:
@kahlouie: "I'd really love us to test a flow where a user has already gone through the full HHG flow prior to the combination of HHG and PPM, especially since that's what our users will test first. Can you add a test that does that?"
@kilbergr: "could you make a separate hhg + ppm shipment entry in e2ebasic.go and use that instead of BACON1 for your tsp/checkHeader.js tests? There are two benefits to this approach: you don't rely on the MyMove e2e tests being run before the TSP e2e tests AND we'll be able to experiment with more easily on the TSP and office sides."
Am I missing anything else? Thanks again!